Are you really using AI?
Yesterday I was scrolling through my feed when I came across a short video by Allie K. Miller, who’s something of a thought leader in the AI business space. She mentioned that you probably use AI already, but asked if you’re really using it? AI can enable so many novel use cases that merely enhancing your old processes is kind of wasting its full potential.
It made me stop and think. Like many, I’ve been using AI tools here and there - asking ChatGPT to help with writing, generating some ideas, maybe summarizing content. But am I actually reimagining how I work?
Allie mentioned how after 10 years of creating AI content (7 of those without AI tools), she completely rebuilt her workflow. Now she dictates to Otter AI while walking, runs her content through multiple AI systems, and formats everything in Beehiiv with auto-links. More steps, but apparently 80% time saved. That’s not just enhancement.
I wonder if most of us are in that “scratching the surface” phase with AI that Allie mentions. We’re asking AI to help with tasks we already do, rather than rethinking what tasks we should be doing in the first place.
I’m obviously not using AI to its fullest potential either. My current workflows still look pretty much like they did a couple of years ago, with some AI assistance sprinkled in rather than built around them. There’s something to think about there.
(By the way, I don’t often subscribe to newsletters, but I do follow Allie’s work. If any of this piqued your interest, you might want to check out her newsletter at AI with Allie.)
Vibe coding an ant colony simulator
When it comes to household chores, ironing is one of my favorites as it often allows me to shorten my “Watch later” playlist (771 videos there as of writing this…) in YouTube. Last time I did ironing I watched this cool video of an ant colony simulator:
The fun thing is that it creates fascinating emergent behavior from a few simple rules. The ants walk around randomly, leaving behind a trail of pheromones like breadcrumbs pointing back home, and when they encounter food, they pick some up and follow the pheromone trail back to the nest. While carrying food they leave behind another type of pheromone that point the ants to the food source.
This seemed like an interesting exercise in vibe coding where you just describe your need in your own words and let an AI do the actual programming for you. Vibe coding seems to split the opinions sharply: some find that it makes coding more equal and available to anyone, others loathe the idea of an influx of AI-generated trash.
My take is that AI is a tool. Just as you don’t become a better photographer by buying a more expensive camera, you don’t become a (better) programmer by using smarter tools. If you are prone to creating bugs without AI, then AI just enhances your ability to create those bugs faster.
But sometimes it does not matter. If you’re working on a hobby project for yourself and you’re only running it locally, then it might as well have all the security holes in the world. However, the situation quickly changes if you deploy your application online and it has a backend to store any kind of a state.
Also an important reason for this exercise to me, besides wanting to watch virtual ants, was simply to keep up with and assess the current state of AI code generation. We seem to be heading towards ever more advanced and omnipresent AI tools, so it’s for the best if you start getting familiar with them already.
So, how did it go? I’ve had successes with vibe coding so I was very optimistic. I wish I could tell you it was a great success: that I gave ChatGPT one prompt and it gave me a working piece of code right away, and then I spent an hour watching my new virtual ant colony do its things. Alas, it was not a great success.
I started with ChatGPT 4o and described what I wanted to it: a simple ant colony simulator that runs in a browser, and where the ants leave pheromone trails and follow them. Emergent behavior from simple rules, like in the YouTube video I had watched. The system quickly blurted me out an HTML file with Javascript, and it was very promising. The simulation even launched successfully and ants began crawling around! You could even place down the nest, the food, and some walls, though the UI was clunky – you couldn’t even see the item you placed the simulation was running.
I started to iterate the app with ChatGPT, giving it feedback on what works and what does not and got it improved a bit. Then, however, it seemed as if the system started to lose the context: features that had worked stopped working randomly on new iterations. I restarted the process a few times with new prompts and with the o3-mini-high model, but the results were similar. The AI either went for an overly complex model that didn’t work, or left it too simple and added shortcut rules that broke the idea of emergent behavior from simple rules. For example, the AI thought that it would be great if an ant carrying food could head directly to the nest, no need to follow any pheromone trail. Needless to say, that isn’t what I want.
Next I tried with a local Qwen2.5-Coder, running on Ollama and Open WebUI. This seemed promising at first when Open WebUI even opened a browser frame next to the prompt as the model was coming up with the code. However, that approach didn’t work at all when the model split the HTML and the Javascript to different files, and the UI wasn’t made for such a complex setup. I might have retried with a refined prompt to ask it to output all the code into the same file, but I think it fell for one of the mistakes I had already seen ChatGPT make. Also I couldn’t find a way to restart the preview frame if I lost it due to, say, refreshing the window, which was a let-down.
Finally I tried the new Google AI Studio with the Gemini 2.5 Pro Experimental 03-25 model. Previously I had tried to just give the models the task to create the app in one go, but now I had a different approach. I told the model I wanted it to make me an ant colony simulator, but not yet: we should plan it first.
So, next I asked Gemini to explain me like I’m five how ants in real life find food and then back to the nest. I adapted this approach from Zach Bart, founder of Zachtronics, my favorite puzzle game studio. He mentioned in some interview that when he wants to make a new thematic game about, say, chemistry, he checks the teaching material about that subject available for some 10-15 year old kids, because that hits the sweet spot for what most people would find plausible enough but not overly complicated.
Gemini provided me with the description, I asked a few clarifying questions, and off we went again. This time I made the additional request to use the p5.js library, which is apparently very popular with these kind of apps requiring simple graphics. Unfortunately, Gemini’s result was the only one that didn’t do anything at all once run! I quickly debugged it having an invalid reference to the HTML element that was supposed to host the arena, though, and again the ants started crawling. But, long story short, Gemini made roughly the same mistakes that ChatGPT had made, like giving the ants a magical compass pointing to the nest, despite explicitly being told to have them follow the pheromone trails.
In the end this was all about the journey, not the end result, so I don’t mind not having my own ant colony simulator. Key takeaways:
- It’s cumbersome when you need to copy-paste generated code around. The generation should be integrated directly into your actual development environment. You can even do all this with your phone only, but that is very cumbersome.
- If you try to avoid coding, you’ll just end up debugging someone else’s (the AI’s) code. I, for one, usually prefer writing new code to debugging old one. And when the code is not made by yourself, you don’t have a mental model of it, so debugging takes a lot of time.
- The technology is advancing fast. I have no doubt that some other model could’ve successfully created a proper ant colony simulator already, or that the models I tried now will be able to do it in a year.
…and indeed I hope to revisit this topic in the future.
Terry Pratchett: The Colour of Magic
Finished reading: The Colour Of Magic by Terry Pratchett 📚
According to a legend, somewhere on the far side of the Disc, beyond the great sea, lies the Counterweight Continent. Since it’s assumed to balance the Disc’s other landmasses, yet appears relatively small, it’s believed to consist largely of heavy gold. Few sane people, of course, believe this story — until one day, a ship sailing up the smelly Morpork river brings a Tourist to the shores of Ankh-Morpork.
The locals don’t understand what a “tourist” is, but quickly deduce it means roughly the same as “idiot”. The man dresses oddly, acts strangely, and carries an absurd amount of gold — whose value he doesn’t seem to grasp. He’s also accompanied by a sentient pearwood chest, the Luggage, which is generally docile but turns into an unstoppable, murderous beast if its master is threatened.
Rincewind, a wizard who failed utterly at wizardry and is mostly a coward — though otherwise fairly clever — finds that he can speak the tourist’s language. The tourist, Twoflower, hires Rincewind as his guide. Soon, Ankh-Morpork is entirely ablaze, and Rincewind and Twoflower are fleeing by land, sea, and air.
The Colour of Magic launched the now-famous Discworld series in 1983, and over thirty novels have followed. Quite the achievement, especially considering this book alone is so packed with ideas and events that it feels like Pratchett wanted to include every concept he had.
I originally borrowed the book for my second grader, but after he found it too confusing after the first couple dozen pages, I ended up reading it myself. I’ve probably read it long ago, but Pratchett’s absurd British humor still hits the mark for me — and presumably for other fans of Monty Python and Douglas Adams as well.
List(s) of Random Things
About a week ago I was exploring other random blogs when I came across the 7 Things This Week [#172] post by Jarrod Blundy. What caught my eye was the number on the title: Jarrod has been persistently listing seven things each week for more than three years already! In this day and age of single-click fire-and-forget retweets I find it admirable that someone can resist that urge to share the links immediately and do instead a little bit of curating, even adding a sentence or two of their own justifying why a particular link is interesting.
It surprised me too that literally just a random collection of links had this effect on me, so I dug deeper using Gemini’s new Deep Research feature. (And this time I mean that Google AI, not the Gemini protocol.) I must say Gemini is impressive: it formed a research plan according to my ramblings, then went away and crunched the internet for maybe ten minutes or so, and eventually returned with a convincing full report of the history of “lists of things” in print and online media.
I’m not going to bore you with all the details, but I learned, for example, that the Time magazine started a Potpourri column of random things already in 1923. For the online world, an early example of something similar is Dave Winer’s DaveNet newsletter that started in 1994. I looked it up and found the DaveNet archive – and oh boy isn’t it a treasure trove if you’re interested in the early world wide web! Dave covered, for example, the browser wars that I also recently referred to, and the rise of the new and exciting programming language called Java. Dave wrote his newsletter for ten years and posted between one and a dozed emails each month, so check it out!
As for myself, I won’t dare to commit to posting a regular list of things, but I’ll keep the concept in mind and start now with a very short list. Specifically, it’s a shout out to a couple of my favorite YouTubers and their most recent work.
Random Things Sunday
- Mark Rober, known for glitter bombs and squirrel obstacle courses, snuck a LIDAR system into a Disneyland rollercoaster to map it out, and then tested Tesla’s camera based driving aids against another car equipped with a LIDAR.
- Shawn from the Stuff Made Here channel had a rare failed project, trying to make a helicopter powered by a flywheel.
Star Wars Episode IV: A New Hope in 100 words
I figured it would be an interesting little challenge to condense the plot of the original Star Wars into a very short format, but with as many spoilers as possible. I settled for a limit of one hundred words. Here goes; maybe you can use it as a refresher if you haven’t seen the movie in a while, but quit reading now if you haven’t seen it and want to watch and fully enjoy it later: 🍿
Vader intercepts Leia’s ship seeking stolen Death Star plans. R2-D2 and C-3PO escape to Tatooine, are captured by Jawas and sold to Luke. R2-D2 shows message from Leia and goes looking for Obi-Wan Kenobi. Stormtroopers kill Luke’s family. Luke joins Kenobi, meets Han and Chewie in Mos Eisley. They flee in Millennium Falcon but find Alderaan destroyed. Death Star captures Falcon. Kenobi shuts down the tractor beam while the others rescue Leia, visiting a trash compactor. Kenobi faces Vader, is struck down, becomes one with the Force. Falcon escapes, rebels mount an attack, Luke uses the Force, Death Star explodes.
Vivaldi browser
Around the turn of the millennium the browser wars were a thing. The first browser war saw Netscape Navigator unsuccessfully defend against the new Microsoft Internet Explorer. After a few years the remains of Netscape Navigator were forged into a new browser called Phoenix, soon renamed to Firebird, and finally to Firefox. I, however, stayed strongly in camp Opera during this time.
Opera was developed by a Norwegian company by the same name, and it was by far the most innovative browser of the time. They were the first ones to introduce tabs, a speed dial window, customizable shortcuts, quick search bar, and, my favorite, mouse gestures: to go back in the history, press and hold the right mouse button, swipe left, and release. Extremely simple and efficient, and there were gestures for all the other commands you could wish for, too. Opera also recognized the importance of a community and successfully ran the My Opera site for years.
My Opera was, unfortunately, shut down in 2014. Then, two years later in 2016, Opera was sold to China, and I stopped using it. In the same year, however, the former CEO of Opera Software released the first stable version of a new browser called Vivaldi.
Vivaldi is to me the spiritual successor of Opera. You get the familiar full customizability and a bunch of features out of the box that other browsers can only have as plugins, if even that. Notoriously, Google recently basically removed the extremely popular uBlock Origin ad blocker from their plugin store, obviously because showing ads to you is their primary business. 😬 Other than ad blocking and tracker blocking, Vivaldi has, for example, a feed reader, tiling & stacking of tabs, the aforementioned mouse gestures, themes, and much more.
I recently wrote about the Kagi Search, to which someone who read it could’ve wondered if I use the Chrome browser anyway, in which case my privacy wouldn’t be any more protected with Kagi than it is with Google. I do need Chrome for work, but at home I use Vivaldi and haven’t signed in to my Google account with it. I’m under no illusion that Google wouldn’t still be able to track me, but at least I don’t need to make it trivial to them.
If you’ve been looking for a browser that puts you in control, Vivaldi is worth a try. Get it from vivaldi.com to give it a spin!
Kagi Search
About three months ago I ditched Google as my primary search engine and started using Kagi instead – and haven’t looked back.
Kagi is a subscription based service: you get to test it for free for one hundred searches, and if you are satisfied, you can start with the 5 USD/month (+tax) plan that includes 300 searches. I’ve found that with my usage I can usually manage about 27 days, after which I can just renew the monthly subscription a bit early with a couple of clicks.
Why pay for your search engine, then, when Google is free? Well, the old saying goes that if you’re not paying for the product, then you are the product. In practice this means that you will be shown lots of ads and “sponsored links” – which are just ads by another name. It seems that companies often buy ads that target their competitors too, so if you’re looking for info about product X of company Y, then the first “search results” you get are actually about the competing product Z by company W. All this gets quite tiring in the long run. I also noticed that not only because of this but because of ChatGPT my Google searches had dropped dramatically. Google just didn’t have any pull anymore.
What’s Kagi doing better, then? For one, they don’t have ads, so they are not incentivized to serve any advertisers but you, the user. For a user there are some neat features, such as increasing or decreasing the priority of any sites in your search results, something that I have indeed missed in Google. Kagi also has a delightful Small Web initiative highlighting little personal sites that you couldn’t find with Google even by accident. Kagi also has an actual changelog – when have you ever seen a search engine, or any major web site for that, display one proudly? These little details make Kagi feel like it’s made by humans for humans. Kagi’s origin story is also worth reading.
I’d say there’s a growing sense that people are tired of being the product and of the general enshittification of the web. People want control over their own their data, they don’t want Meta, Google, or that dumpster fire X deciding what they may access and see. You constantly get to read about people and businesses that are locked out of their Instagram accounts for no apparent reason and there’s nothing they can do to appeal because it’s all handled by some faceless algorithms. That’s a contributing factor also to why I’m using the Micro.blog platform for hosting this blog and why I’m using Kagi: I want to support the smaller players that are still trying to Do The Right Thing.

Caffeine
There is a common misconception that energy drinks have a particularly high caffeine concentration. Often the people who fuss over this are coffee drinkers themselves.
Energy drinks typically have 32 mg of caffeine per 100 ml. This translates to the following total amounts of caffeine per container:
Container Size | Caffeine (mg) |
---|---|
0.25 L | 80 mg |
0.33 L | 106 mg |
0.5 L | 160 mg |
Now, coffee on the other hand has about 44,8 - 80 mg of caffeine per 100 ml, translating to the following dozages:
Container Size | Caffeine (mg) (Range) |
---|---|
0.125 L (small cup) | 56 - 100 mg |
0.2 L (medium mug) | 90 - 160 mg |
0.25 L (large mug) | 112 - 250 mg |
(Source)
And finally, here’s the same as an image – I hope that by now you’ll agree that if you want to be worried about someone getting too much caffeine, you should be worried of those who drink coffee. Coffee doesn’t even come with any warnings of the max recommended servings per day, unlike energy drinks. And this post doesn’t even begin to address espresso, which is about four times as strong as regular coffee!

Gemini protocol
The other day I was browsing some random Micro.blog blogs when I came across an interesting post about Gemini in the Hey Loura! blog. Gemini in this case does not refer to Google’s AI service but an application layer internet protocol developed quite recently, in 2019.
Gemini is kind of like HTTP but very, very simple. Gemini’s preferred document format is gemtext, which is almost a subset of Markdown: you get headers and lists (but no nested lists) and hyperlinks (that need to be on their own line). You also get quotes and preformatted text for presenting code, but that’s it. It does not support, for example, styles or inline images.
No normal browser supports Gemini. The “Geminispace” can, however, be accessed by a number of custom browsers that can use the gemini://
protocol. Anyone can host a Gemini “capsule” by themself, or use one of the free or paid services to do that.
Somehow I find the idea behind Gemini quite appealing: no ads; no big companies trying to hook you or exploit you; no competing for likes or subscriptions; quick loading times; pages where the content speaks for itself. Even the mobile versions of many web sites are rather heavy these days, which can be observed if you’ve ever tried to use the internet while traveling in a plane, but Gemini pages promise to be even more light-weight.
Learn more from the project’s web site at GeminiProtocol.net or from Wikipedia.
ESC25
Last night it was confirmed that the band KAJ would represent Sweden in this year’s Eurovision Song Contest. This is funny, because KAJ is, in fact, a Finnish band, so in a sense Finland now has two entries in this year’s contest! 😁 KAJ’s song is called Bara bada bastu, and Finland is sending Erika to the contest with Ich komme:
Energy drinks
I’m in the habit of taking a photo of each new energy drink I try. At this point of I can make a nice 4x4 collage out of the ones I’ve tried this year, and I even had to leave one out.

97th Academy Awards
I’ve watched the Oscars live broadcast close to twenty times now, and I’d argue that’s no mean feat, as they are aired here in Finland in the middle of the night. I also post my observations about the show to Facebook every year, and several of my friends there have indicated, either offline or online, that they always look forward to my recap. Waking up in the middle of the night to watch the Oscars feels like madness already, but tradition is tradition! The best way to stay awake is to keep eating snacks. 🍿 The following is a summary of my live observations.
This year’s ceremony faced an unusual challenge, as the wildfires in Hollywood came dangerously close to disrupting the event. Host Conan O’Brien even had to relocate to a hotel due to the fires.
Conan was hosting for the first time, but he made the show his own right from the start. He had some sharp quips, like calling Wicked “a movie for those who watched The Wizard of Oz and wondered what college was like for the side characters” and describing Conclave as “a movie about the Catholic Church — but don’t worry.” He also introduced a new concept: if someone’s speech ran too long, the cameras would cut to John Lithgow, looking extremely disappointed.
One of the surprises came early in the night when Kieran Culkin won Best Supporting Actor for A Real Pain. In his speech, he reminded his wife of a promise she made a year ago: they could try for a fourth child if he won an Oscar — something she might not have expected to happen. 😄
In animation, the underdog triumphed as the Latvian film Flow took home Best Animated Feature, breaking the usual Disney/Pixar dominance. Meanwhile, the Iranian short In the Shadow of the Cypress, a PTSD-themed animation, won Best Animated Short, with its creators only receiving their visas the day before the ceremony.
Unlike previous years, the Costume Design category was given proper attention instead of being rushed through. It was revealed that the same designer from the original Gladiator worked on Gladiator II. The Oscar went to Paul Tazewell for Wicked, making him the first Black man to win in this category.
Similarly, cinematographers were introduced with the same care. Lol Crawley won for The Brutalist, marking the film’s first win of the night. The Brutalist also picked up Best Actor (Adrien Brody) and Best Score, with Brody ignoring attempts to play him offstage.
The first half of the show moved at a leisurely pace, even including a random Bond theme medley, but things sped up in the second half as winners were hurried offstage – although nobody got the ultimate punishment of getting the disappointed look from John Lithgow.
Other notable wins included:
- Best Adapted Screenplay: Conclave, written by Peter Straughan, who wore a Ukraine pin but otherwise, the ceremony remained largely apolitical.
- Best Makeup and Hairstyling: The Substance, a body horror film. Conan played into this by introducing himself in a clip where he crawled out of Demi Moore’s body. 😈
- Best Supporting Actress: Zoe Saldaña for Emilia Pérez, whose speech included a complement about her husband’s hair.
- Best Original Song: El Mal from Emilia Pérez, dashing Diane Warren’s hopes for a win — her 16th nomination without a victory.
One of the few winners I had actually seen, Dune: Part Two, won for Best Sound and Best Visual Effects. At one point, Conan even had the Dune sandworm playing the piano and harp, because why not? 😂
The night’s biggest winner was undoubtedly Sean Baker’s Anora. It took home:
- Best Original Screenplay (Sean Baker)
- Best (Sean Baker)
- Best Director (Sean Baker)
- Best Actress (Mikaela “Mikey” Madison)
- Best Picture
Baker dedicated his wins to the importance of cinema and gave a special shoutout to his mother, whose birthday was that day.
The In Memoriam segment honored legends like Maggie Smith, Donald Sutherland, and James Earl Jones. The ceremony finally wrapped up an hour later than last year at about 05:45, well before the sunrise at 07:12.
Wordle
Today I reached a streak of 100 in Wordle. 😃
Wordle 1,352 4/6 ⬛⬛⬛🟨⬛ ⬛⬛⬛⬛🟨 ⬛⬛🟨⬛🟩 🟩🟩🟩🟩🟩 WordleBot Skill 90/99 Luck 46/99

Currently reading: The Praised, The Loved, The Deplored, The Forgotten: A View into the Wide History of Finnish Games by Kultima, Annakaisa; Peltokangas, Jouni 📚
Finnish games introduced briefly, but also contains a handful of interesting interviews. 🎮
If you think about what your average citizen of today should know about the demoscene, the least would be the fact that such a long line of digital culture exists. Even if it’s quite hidden from the mainstream, it has given rise to a huge amount of talent. Another is the existence of such media art and a community, of which not much is known, but which has been very active and played a significant part for those involved. Rather than thinking of whatever useful business skills were acquired, I would like the latter point to be the takeaway from all this.
–lecturer Markku Reunanen 💬
Clash Royale
Supercell is a successful Finnish mobile game company known for Clash Royale, a strategic real-time card game where players use various units to defeat opponents' towers.
GitHub
My GitHub account is located at github.com/ZeroOne30… Micro.blog claims these posts can be synced there automatically. Let’s see if this triggers the sync! 💻
Watch woes
The number 6 has come loose in my watch. I got a quote for 60-80 € for fixing it. 🤯 That exceeded my expectations 3-10x. I’m still considering what to do… 😞

Currently reading: The End of Everything by Katie Mack 📚
Really interesting stuff! 😃
💻 Cheated by Intel
I feel rather cheated by Intel… I got a new desktop PC in 2020 with an i7-10700K CPU that uses the then-brand-new LGA1200 socket, thinking that as it was brand new, it would have a long and happy life ahead of it and I could safely just upgrade the CPU in the future.
Well, they used the socket for like two years only. Apparently the socket life spans have gone down dramatically from what they were earlier (like 20 years ago; see e.g. the LGA 775 socket), but Intel is especially bad in this respect, vs. AMD who has longer socket life spans. AMD released the AM4 socket in 2016 and the next socket, AM5, wasn’t released until 2022.
I didn’t feel bad for Intel when the news broke the other day that their stock value is plummeting. My next PC won’t feature an Intel CPU.