Memories Cached

The problem of attaching your ego to Google Analytics and other metrics is that at any moment or month the opaque workings of tech giants can flip on you and ruin your mood.

Maybe my Android phone is always listening to me, because it feels like every time I warn someone that building successful websites is completely dependent on Google algorithms, those algorithms then result in bad news.

After solid and then incredible growth last year, autumn has seen falling visitors, revenue and search rankings for a site that I've only been enhancing.

Maybe it's because I disabled the obnoxious auto ads that Google is punishing me.

The only other issue I can see is that my LCP timing for mobile is averaging 5 seconds.

To try and address the latter, I spent the weekend optimising the front end and back end to try and increase the speeds. I didn't learn a lot about React, because I got AI to refactor that with some lazy and suspense commands.

Memcached is cool, because it's triggered by a visit to a resource, and then it stays in memory of a little while, making it faster and easier to recall again.

It made me realise that a lot of my memories of life are about things I journaled about, or took a photo of, and are therefore cached. Unlike MySQL, human memories deteriorate over time and you can't export them, so using forms of cache is super helpful for tethering your existence to reality like a trail of breadcrumbs through space time.

Here's some things I want to cache from this exercise:


  • Turning on compression in CPanel really helped the speed and download size
  • Pre-Caching a bunch of stuff by making fetch requests to the controller instead of just loading the content through a SQL query is inefficient, but saved me a lot of development time.
  • I probably should have learnt a server-side rendered framework first instead of using React with a PHP back end. Oh well.
  • After doing all the work on the weekend, I realised on Tuesday that I could actually radically improve performance by reducing a chain of dependent API calls and instead do a location lookup inside the event look up. Fuck me for trying to implement a RESTful architecture, right?
  • I do so much IT during my work times, and yet I spent a sunny autumn Sunday implementing memcached. However, the same amount of time could have been used to watch a couple of football games and a movie. I didn't do that, I rarely do that anymore. I just enjoy solving problems with technology. And I really want to beat Google at their ruin-my-mood challenge.
  • Breath of the Wild doesn't hold your hand much. Either that or I'm missing some tutorial somewhere. So when I did take a short break and played it, I had an amazing ah-hah moment when I realised that I could knock down trees with bombs and use the fallen trunk to cross a chasm and reach a shrine. As gaming goes, it was a really rewarding experience and much better than the adrenaline filled checklist ticking exercise that AoE2 build order into resign was back when that was my game of choice. It also has dynamic time of day and when I knocked the tree down it was sunset and so quite a picturesque moment of triumph. I am caching that memory for sure.


If you like Bradism, you'll probably enjoy my stories. You can click a cover below and support me by buying one of my books from Amazon.

The woman with the fake tan stepped into my office, sat across from my desk and lit a cigarette.
At least, she would, sometime in the next 20 minutes. Smelling the future has advantages, but precision isn’t one of them.


Brad's AI Tour - Sydney

There's no doubt about it. AI is going to be even huger in 2024 than it was in 2023. At least from a hype perspective. That's judging by the 16 minute wait I faced to collect my badge at the entrance of the Microsoft AI Tour in Sydney this morning. Regular haircut people of the East Coast are going to make a lot of money from this technology. I just think it's neat.

Dear Chat GPT. Please generate me a harbour side house in Rozelle Bay.

Regardless, I felt extremely hyped myself this afternoon during a short break for fresh air between sessions. This was not just from the sugar of the dozen free desserts I consumed at the event and the hotel breakfast buffet beforehand. I crammed new knowledge into my face with just as much avarice as I had for the food and coffee. I get genuinely excited by the potential of this technology the same way I get tingles every time I get a glimpse of humanity's potential and before some reality snaps me out of it. With the right amount of CPU and ingenuity the possibilities are endless. Human services, healthcare, custom entertainment, massive increases in productivity. All of it could be achieved and most of the world** could commence living like spoiled Golden Retrievers for the rest of our lives, carried through the years in the metaphorical, oversized handbag of big tech and their easy to consume, low code solutions.

Humanity will corrupt it, of course. When there's money to make and social hierarchies to preserve the packaging won't end up matching the product. The margins will ruin things.

AI is ground breaking magic. But if you want to use it in Production, you're going to need a few additional services deployed in between the model and your users.

Anyway, after the sugar rush ended and the afternoon sessions peeled back the curtains on the magic box a bit further, my expectations returned to their temperedness. There's still a lot to do. And I still have excitement about contributing to doing it. After hours of walking around Sydney and its harbour in the past twenty-four hours I am reminded that humanity has not nor will not ever be perfect. But it's far from being bad. We will probably end up living like spoiled Golden Retrievers think they live.

**With the exception of physical labourers and AI developers of course. And then just the developers.

Prioritising

Along with the Azure AI Search functionality I described back on Monday, my time at work so far this year has been mainly dedicated to using Chat GPT to write python code for me that generates Mule projects based on a dictionary of metadata. That is pretty cool, and I do hope it saves upward of the 30+ days of development I have invested so far in creating it.

As I'm currently only 3 days billable, I used my time on Friday to convert a spreadsheet I have for estimating integration development sizes into a webpage for better reuse. Well, Chat GPT did this for me too, but I told it what to do and I fixed its bugs. This started off as a Flask app but as I wasn't persisting any data it quickly became a standalone HTML + pure JavaScript app which is great because I was afraid I was going to have to work out how to containerise it and integrate with Azure AD to protect it. I still might do that…

You'd think all of this gives me enough coding to do, and yet I still find myself spending hours in the evenings adding features to Fireworks using React and PHP to ideally save me minutes in the future. And yet, this could feasibly add up to a time saving.

This maintenance work distracts me from my actual current project, which is a SvelteKit app using PocketBase as a back end. Svelte had a bit of a learning curve coming from React but I kind of cracked it on Sunday and then didn't get a chance to do anything further because my new phone was shipped and I decided I needed to prioritise going through old photos in Lightroom and creating 19.5:9 aspect ratio backgrounds.

Vanessa went to a hen's day this afternoon, so I finally had a chance to spend some time on the projects of my choosing. I wasn't sure what I should focus on first. So for that reason, I decided today I was going to find out if CLR would do to the stains in our toilet bowl what toilet cleaner and bleach could not. It did an amazing job of removing some of the build up that I think was included in the cost of buying this house. It did take me an hour of scrubbing and rinsing though. I think it was a good thing I got away from the computer.


Enjoy what you've read? Want to receive updates and publishing news in your inbox? Sign up to the bradism mailing list. You'll also receive an ebook, free!


What I Did At Work Today, 2024

It's 2024 and my job today was to create a custom skill for a cognitive search indexer. The custom skill was to be invoked after the out-of-the-box skills were used to read text and images, convert them into a single file, split it into smaller chunks, and then detect keywords. The problem was that the keywords it extracted were not very business relevant. So, I built a tiny Node JS function app configured with an array of keywords to detect, deployed it to Azure (well, VS Code deployed it to Azure, I just clicked a button).

I then updated my skillset to pass the chunks to this API to detect matches. ChatGPT wrote the Regexes for me, but I was the one that told it what ones to write, and then the one who tested it and found that it had assumed I wanted to look ahead to the end of the chunk even though I clearly said exclude only the next word. But perhaps I'm the idiot because I didn't create an agent grid and have one model executing predefined test cases. There's only so many hours in a day...

I felt motivated to do this today. Partly because it would be a nice change from SvelteKit/TypeScript/Pocketbase/Tailwind development which I did on the weekend, partly because it was cool. Mostly because I had a 4pm meeting to demo it already scheduled.

I did get the indexing working with the new custom field/skillset. It felt good writing that odata query and seeing the filter bring back records with the matching keywords. Alas the demo did not happen because key people were on holiday.

Hopefully the way this is going we will all be on holiday soon. But perhaps I am looking ahead too far.

Hashtag

Less than three days after professing to having implemented a semantic search with a generative AI front end without any idea how I'd done it, I found myself in a conference room delivering a Powerpoint to about twenty people with authority on the same subject.

This wasn't actually bluster! If you stumbled upon this article due to keyword searching... Since Monday I not only learnt to understand RAG, Semantic Search and hosting models in the cloud a lot better, but I even implemented a Flask UI for one! That's how fast things move in the world of AI in 2023. Or perhaps a sign of how simplified some of these cloud services actually are thanks to the actual geniuses working for the AI and Cloud giants who I admire greatly. Also technically the AI generated the Flask UI for me.

I rode my bike home exactly 160 minutes before sunset. The weather was perfect. Blue skies, a couple of wispy clouds, golden light. I rounded the corner under the King William Bridge and into a panoramic view of beauty. Rowboats cutting through the water. Vibrant grass. Glass buildings shimmering. Water features bubbling. People out enjoying an afternoon beside the Torrens. It was nearly offensively beautiful. What right did I get to pedal my way through a scene like that. I mean the smell wasn't fantastic, but other than that, I felt blessed.

Raggedy

I started this day having no idea how to implement an Azure hosted AI chatbot that used Retrieval Augmented Generation to incorporate my organisation's data into its response.

By the end of the day, I still have no idea how to implement it, but I'd done it!

Themes

I experience a moment of self awareness at lunchtime. I was walking back to the office from the city library. A borrowed book and a kilogram of low fat strawberry yogurt balanced in one hand while I tried to slide my sunglasses on between the headband of my noise cancelling headphones with the other. I realised that I was probably peaking.

Older Office Entries | No Newer Entries