-
Quick tip: AI-generated image captions
Alongside a personal blog, I also run a small gaming blog - and that involves inserting and captioning a large number of screenshots into my posts. Specifically, generating meaningful
alt
text for images can be a bit of a pain - itās the right thing to do, since it allows vision impaired users to understand whatās in the picture - but it tends to be tedious to describe that thereās āa person with a sword in the foreground with mountains and a giant radiant tree in the backgroundā. Well, I found a way to use AI to make my life easier, which I think works fine enough and doesnāt take away from content quality.This fits my litmus test for acceptable AI use in my own writing:
- Itās mostly mechanical, and not really a part of creative expression.
- I probably wouldnāt do what AI does, because itās tedious. AI performing a task is a net positive.
- Itās not a big deal if AI gets it wrong.
I used a Gemini Gem for generating captions and named it Screenshonathan:
Geminiās free tier 2.5 Flash model is sufficient for this use case. You can do the same with the following instructions for the gem:
You are Screenshonathan, a writer's assistant for <INSERT WEBSITE URL>. Your sole function is to process image inputs and generate a specific Markdown snippet for embedding that image in an article. You must strictly adhere to the following output format: `  *TODO: Caption.* ` Your tasks are: 1. **Generate Alt Text:** * Describe the image content succinctly, limiting the description to under 20 words. * Include the name of the game provided by the author in the alt text. * Do not use the words 'screenshot' or 'picture'. 2. **Insert Filename:** * Use the exact filename provided in the input, such as 'elden-ring.webp', and place it in the `<filename>` placeholder. 3. **Strict Adherence to Format:** * Your response must be a single code block containing the specified Markdown format. * Ensure the `*TODO: Caption.*` line is included exactly as written. Example: If the input is an image file named 'elden-ring.webp' and the game is 'Elden Ring', your output will be: `  *TODO: Caption.* ` Your persona is defined by your function and constraints. Do not engage in conversation, provide additional information, or deviate from the required output format. Your entire response is the Markdown snippet.
-
Why RSS readers are still amazing
Most blogs and websites have RSS feeds, and so does mine - you can see it in the main menu (or maybe youāre already reading this through an RSS reader). Itās a simple, powerful way to view content without having to directly visit another website. For consumers, itās a fantastic tool, giving them control over their content consumption.
But for advertisers, itās a disliked feature. And honestly? Iām okay with that. RSS feeds allow you to bypass the intrusive aspects of the modern web: the annoying pop-ups, banner ads, and tracking cookies. While some might argue that this hurts advertisers, I believe a user-focused experience is better for everyone. RSS still supports images and hyperlinks, so advertisers can include ads directly in the content. Itās the street hawkers of the internet that end up suffering, and thatās a good thing. Advertisers will have much better luck selling things based on the content youāre reading, and users get pretty good at ignoring intrusive ads the more tech-savvy they get.
RSS feeds feel like basic internet infrastructure, and they used to be a fundamental part of my online life. I was a huge user of RSS feeds before Google Reader was killed in March 2013. Brutally murdered, really - driving an axe into a body of self-curated content. Google Reader was the Gmail of RSS readers: free, unobtrusive, simple, and powerful. Its death left a void.
I tried many different Google Reader alternatives over the years, and something would always be off about them. The services are either ad-supported or paid, which is understandable; no one is willing to run an RSS service for a loss. But because youāre the customer for the RSS readers, there are often too many bells and whistles to stand out over the competition. UIs get refreshed, and features get added, but all I ever wanted was to read my syndicated content in one place.
This desire for simplicity and control is why I believe so strongly in RSS. Algorithmic curation is a widespread alternative to RSS feeds, and itās something Iāve actively fought against. Technology Connections has a wonderful YouTube video on the subject that I recommend giving a watch. The videoās TL;DW is that recommendation algorithms keep the typical internet user complacent, prioritizing engagement over accuracy or quality. It was a video that inspired me to turn off YouTube recommendations and engage with the platform through subscriptions only. That decision bought me so much time.
And thatās what itās about for me: time and control. Manually curated content ends. I run out of things to read, and there are days when Iāve got nothing in my queue. And thatās great, because I can get bored and do something else with my time. I donāt need another content recommendation engine constantly feeding me new things. I get my recommendations from the blogs and sites I already follow.
This brings me to Miniflux. Miniflux is a fully open-source RSS reader that you can self-host or pay a reasonable hosting fee ($15 a year as of the moment of writing this article). I run Miniflux in a docker container on my home server.
It is the perfect embodiment of what an RSS reader should be. Miniflux is simple to set up but is surprisingly robust. Youāve got your feeds, search, and history. But youāve also got blocklists and integrations, and the ability to ingest custom JavaScript into the client if thatās your thing.
Crucially, Miniflux doesnāt dabble in content discovery, which is something many other RSS readers do. Iām not a power user; Iām subscribed to a few dozen feeds, mostly blogs like mine, and I read through my RSS feeds a few times a week. Miniflux simply does its job, beautifully and without distraction.
The modern internet often feels like a stream that never ends, with algorithms designed to keep us scrolling and clicking. And RSS offers an alternative - a tool for being deliberate about what you consume, building your own information ecosystem, and taking control over your time and attention.
-
Trying to use AI to write
No, this article isnāt AI-generated nor is it AI-assisted. And youāll be confident thatās the case by the end of it, because it meanders, makes random detours and goes on tangents, and doesnāt really go anywhere. But a tiny part of my soulās in it, which I think is enough to make this a hopefully engaging piece of writing.
Let me set the stage. I donāt like the idea of autonomously AI-generated content, but I donāt really frown as much at AI-assisted content. Iāve been trying to use the tooling here and there in my work, with a varying degree of success: itās a tool like any other - sometimes it works okay enough, and sometimes it doesnāt. Outside of work, I write for fun, and I while I used AI for on-the-fly proofreading and even some occasional brainstorming, I havenāt really tried engaging in a writing exercise with AI end-to-end in my leisurely writing. Writing is a creative outlet, itās fun figuring out how ideas come together, and I enjoy the tactile experience of typing out my thoughts.
I have an infant in the house - sheās becoming more active, more engaging, and Iām starting to find less time for hobbies. Earlier today I was walking my daughter in a stroller, my hands were busy, so I tried putting together an article using a voice AI interface. Itās an article for a āsecretā gaming blog I run (reach out - Iāll be happy to share it privately). I spent an hour and a half walking and talking to an AI assistant about the piece. While it was an engaging thing to do, the results were mixed.
First, I recorded voice notes. Talking about the subject, core ideas, some salient points I wanted to cover, as well as some anecdotes I wanted to include. Default voice recorder app transcribes voice memos into text, and I copied the transcript into the Gemini app. I then used Gemini Live (back-and-forth interaction mode) to align on an outline and produce the resulting outline. Iāve also prompted Gemini to review other articles I wrote and try to match the voice, tone, and style of my writing when generating a draft.
Talking to an AI assistant about my writing was engaging - akin to chatting with an overly agreeable friend. Naturally, it was very encouraging, and happy with whatever direction I wanted to take. Gemini felt like a friend who listens to many podcasts and has a lot of interesting takes which are a mile wide but an inch deep - it knows a lot about many things, but isnāt particularly well versed in any subject, and misunderstands many details (and yeah, I know AI doesnāt actually understand things). AI is, as always, overly agreeable, which could discourage divergent thinking, but Iām sure some clever prompting can be used to work around that.
A few weeks ago METR (an AI research non-profit) published, a study on impact of AI on open-source developer productivity. The synopsis is simple: experienced developers felt like they were faster when using AI tooling, while in reality they were working slower. The authors outline a few hypotheses, but the one that connects with me is about friction: AI tooling reduces the friction and cognitive demand for the work, making it easier to stay in the flow.
Just like the participants in the METR study, I felt like I was constantly making progress. I kept refining the ideas, revising the text, and overall I didnāt experience the often painful and unpleasant part of creative process. The part where you donāt really know what to do next, and feel like everything youāve made so far is terrible. But you see, I value that part of the process. I think thatās where the creativity comes from, from a deep hole of āthis isnāt very goodā and āIām terrible at thisā. Thatās how powerful new ideas emerge. Iām a solitary thinker, but not everyone is. Many enjoy processing information on the fly, while engaging with others. And for those type of folks, engaging with an AI assistant may have been more productive.
At the end, Gemini produced a draft, but fine enough is the best I can say for it. When in my voice notes I talked about the struggle of finally beating a Isshin the Sword Saint in Sekiro after weeks of struggle, the AI draft sanitized this into a generic point about how overcoming challenges is fun for players. It captured the words but missed the entire point: the point about painful, frustrating, and ultimately meaningful process. Technically correct, but really not the point I was aiming to make.
In the end, a piece that would have taken me an hour of focused, difficult work took three hours of frictionless, meandering conversation. The time flew by, but I spent most of it re-injecting the nuance the AI had stripped away. I think for writing thatās meant to have a viewpoint, the friction is a critical part of the process. Itās the creative cheese grater that you have to pull yourself through, leaving little bits and pieces of your soul on each page.
-
A campfire story
When I was younger (but not that young, this was just a decade ago) I converted my Prius into a camper and toured the United States for about a year. It was a really fun experience, and you can read some more about some of my reflections on the experience here.
I was reflecting on that part of my life earlier this morning, and I remembered a story I think you might enjoy. Itās a bit creepy, and itās definitely up there with scary stories you tell by the campfire - but I promise itās nothing but the truth!
Thereās this remote campground half way between San Francisco and Los Angeles that I really like. Itās not too far from a highway, but roads arenāt great, and thereās quite a bit of elevation to climb - it takes a good hour to get to the top of the hill where the campgroundās located. Itās managed by the Bureau of Land Management (for those in the know - itās a BLM campsite), meaning that itās free, there are some basic amenities (read: a composting toilet), but it doesnāt have any on-site staff, and tends to not have many visitors. No cell service, either. Park rangers check in once a week to make sure all is well.
You do get gorgeous views in 360 degrees around you, and itās a great place to be alone with your thoughts, or maybe to make a new friend - isolation does tend to bring people closer.
I pulled to the campsite in the late afternoon: itās a small 10-site space, with each site having a space for a car, a firepit, and a camping table. There was one other camper - a weathered trailer hidden away behind a tree.
By the evening, another camper arrived - an old Toyota RV. A friendly guy in his early sixties politely introduced himself and invited me to a campfire later tonight. This is common in remote campsites - he gave me good vibes, and I joined him for some campfire stories, beer, and dessert.
We got to talking, and the guy - George (name changed for privacy) - told me his life story. It was fascinating, and I wish Iād written it down there and then: he was a professional navigator, taking scientists, film crews, and various explorers through hard to reach places: be it through the Amazon jungle knee-deep in rainfall, driving through permafrost in specialized vehicles, or leading a trek into the heart of the desert. I donāt know if George exaggerated or not - and I donāt really care - he was a fantastic storyteller, and I was engrossed in his stories.
Now that I reflect back, I think at some point he talked about wrestling a bear. Thatās fine, tell your tales, gleeman - Iām all ears.
Hours passed, and George noticed something odd - itās been dark for some time, but the other camperās got no lights on. Given how remote we were, it was worth making sure the only other inhabitant of the campsiteās doing well.
We grabbed our flashlights, and made our way to the camper. A few friendly āhey, just checking in that youāre doing wellā yielded no response. Oh well, I was ready to head back, but George decided to knock. He did, and the door just swung wide open.
Okay, thatās definitely weird. Well, back to the campfire, right?
George had a different idea. In we go. Well, youāre the adventurer, George, although Iām pretty sure thatās trespassing. We get inside the old trailer: itās definitely got a lived-in feel: you can see some clothes on a bed, books, food on the table⦠Yeah, a plate with an unfinished meal - some hardly recognizable gruel, with a piece of unfinished apple next to it. Thatās like a still from Resident Evil, thanks - I hate it.
The apple started decomposing but isnāt quite rotten: the mealās a few days old, and the person clearly left in a hurry. āPark rangers check in weekly, and they make sure the campers donāt outstay the limit. So something happened recently. We should investigate.ā - says George.
Well, George, this is creepy. Investigate what? Letās head back to the campfire, have a last round of drinks, and maybe be extra vigilant through the rest of the night. Right?
Nope, George has gotten interested in trying to figure out whatās going on. He tells me of stories of people wandering off from the campsites, and how we need to see if thereās any information here that could hint at the personās whereabouts - maybe we could send help.
A rational person in me wanted nothing to do with this, head back to my car, and lock the doors. So we started looking through the trailer. Iām sure I rationalized that somehow in the moment.
Let me paint the picture for you: itās pitch black, thereās not a living soul for miles around and two men with flashlights are looking through a decrepit trailer. Yeah, itās weird, I know. I mean at this point George is in a full detective mode trying to find any indication on what happened to the person. Iām probably an accomplice to some crime by now.
And we do.
Thereās a stack of papers on the table. Naturally, George dives in, Iām reluctantly looking over his shoulder. Bills, receipts. Itās a woman, in her fifties. A-ha - a journal. Open on the last page. Lots of ramblings about what I could only assume to be a boyfriend. But the last line stands out:
āIām not safe anymore, I think he found me. I should run.ā
Now, this is too creepy even for George. We nope out, head back to our own vehicles, lock the doors, and aim to reconvene in the morning.
In the morning, we have a huddle. Naturally, no one came back to the camper. George tried to get his satellite phone to work through the night - but couldnāt. We both were planning to leave the campsite today, and decided whoever gets out first will call in the authorities. George was planning to leave right after our chat, so weāve decided heāll make the call.
I donāt have a satisfying conclusion for you. George headed down the mountain to call the authorities, and I left shortly after. Iāve tried searching for her name a few times over the years, but never found a trace.
The questions are all that remain. Did she simply drive off, leaving a strange scene behind? Did she wander into the unforgiving wilderness? Or did āheā find her? Was it a story of mental illness, a paranoid fantasy, or the final moments of a lonely, horrifying reality? Iāll never know.
-
Opinions in the age of technocratic totalitarianism
Dear reader, youāre in luck. I was going to spit out more uneducated opinions about how AI might or might not destroy art, but instead Iāll be talking about technocratic totalitarianism, and having said opinions. As always, thanks to Patrick for getting the thought train started through his thoughtful email forwards.
I havenāt finished college. I studied aerospace engineering for about two years: this was back in Russia, where education was free - or actually the opposite - I got paid a small stipend to study. Structured curriculums felt mind-numbingly monolithic, and at the same time I struggled to wrap my head around some subjects. The stipend wasnāt enough to keep me in a university though, and after two years I wanted a major change, so I packed a suitcase and moved to the United States.
If aerospace engineering didnāt work out, I always planned to go into software engineering. It seemed not particularly hard, it was interesting, and it lent itself well to unstructured learning I so very much enjoy. Lady luck smiled, and that worked out - Iāve been working in software engineering for nearly 15 years.
Iām taking you through this preamble for a reason: Iām not particularly well educated, I donāt have an academic background, and I donāt fetishize formal education. Good on you for getting a PhD, but I canāt get myself to place much value on that fact alone. Full transparency: I spelled aerospace engineering wrong when I first published this article, which only illustrates my point. And yet, I found myself nodding along as I was reading Cal Newportās latest blog post:
āWe hesitate to take a strong stance because we fear the data might reveal we were wrong, rendering us guilty of a humiliating sin in technocratic totalitarianism, letting the messiness of individual human emotion derail us from the optimal operating procedure.ā - Cal Newport, Donāt ignore your moral intuition about phones
And it hit me. The quiet, persistent anxiety that hums beneath every opinion I hold. Despite my disdain for the academic institution, Iāve internalized one of its worst dogmas: that any belief not reducible to a peer-reviewed study is fundamentally illegitimate.
Yeah, Iām a technocratic totalitarian on the inside, worshipping science - turns out I am the tech-priest. A blind faith that a world is a complex machine, every aspect of which can be optimized, figured out, and rationalized. In a temple of technocratic totalitarianism being wrong is a āhumiliating sinā, and ultimate act of heresy. And being a devout follower of my faith, a zealot, I fell into shying away from holding strong opinions.
Part of this came from my childhood - I was generally a gifted child, and things came easy to me. School was trivial, new languages werenāt hard to learn, and the only time Iāve faced intellectual adversity was in a university - and my fierce disdain for authority played a huge part in that too (but thatās a story for another day). I grew up with a belief that Iām smart, capable, and nothing is beyond my grasp if I put my mind to it (thanks, mom). A decade and a half of working in tech has played a role too. Surrounded by deeply technical peers and academics, the beliefs rubbed off on me. Software engineering being perceived as a precise and purely mathematical craft, corporate focus on numbers and metrics, and a call for every decision being backed by data only entrenched my beliefs.
And itās really, really hard to hold opinions outside of a narrow field Iām able to build deep expertise in. So here I am, going through life, scared to have opinions about things because deep down Iām afraid to be proven wrong, which isnāt just a social failure - but a violation of my deeply held core beliefs.
Which brings me to parenthood. Watching my daughter grow has made me think about what it means to be a human. About deeply seeded biological instinct, fundamentally irrational behaviors, intuition, intangible human connection, love, and the joys of existing in this world.
For me, parenting is a deeply instinctual activity. While I tried to approach child rearing from a perspective rooted in research, turned out 1) thereās really not that much science about children out there, and 2) babies arenāt inherently rational and logical human beings.
When I started researching baby slings to wear my little one, Iāve read a lot about hip dysplasia - itās a condition in newborns, where the hip bones donāt fit in the joint sockets right. And thereās lots of āmaybesā on the subject, and one point stuck in my mind: āwe are very likely to never know if baby wearing impacts hip dysplasia as studying this on infants would be deeply unethicalā. And yeah, science shouldnāt really toy with childrenās futures, and it largely doesnāt, and because of it raising children isnāt as well understood despite it being an activity humanity has lots of practice with.
And with many decisions, we just had to go with our gut, advise from parents, friends, and doctors - most of which was hearsay. The technocrats could burn me at the stake for this!
And then we met Leila (name changed for privacy). Leila is a lactation consultant - turns out breastfeeding is hard, since both the baby and the mom are figuring out how to do this together for the first time. Leila is also a postpartum doula, a certified marriage councilor, a church pastor, essential oil distributor, and she even has a YouTube plaque sitting in her office, sitting on a shelf among the all the crystals.
Hereās the thing, Leila was instrumental to getting our daughter to take on a breast. And it didnāt stop there. Sheād make many recommendations - from holistic medicine to bizarre techniques that Iām pretty sure summon some kind of spirits. And guess what, when itās 3 am and my baby hasnāt stopped crying for six hours - youāre damn right Iāll follow the instructions to the letter. Because those things worked.
Why did the techniques work? Iām too sleep deprived to analyze or care. They just worked.
In certain social circles - the ones I tend to find myself in often - intuition is devalued. Itās treated as a crutch, something deeply stepped in biases and human emotion, something to be avoided if possible. Itās the enemy of the optimal, and Leila shouldāve been the final boss in my crusade against irrationality.
But at 3 am, with a screaming infant, you canāt run a regression analysis on the efficacy of spiritual-adjacent rocking techniques. You donāt get to wait for a double blind, peer-reviewed studies. You do what works. And Leilaās effectiveness isnāt based in a methodology that can be verified, but something Iāve taught myself into dismissing: embodied wisdom. A messy collection of experience, tradition, and gut feelings.
This is the inflection point: thatās when the technocrat in me had a meltdown. I couldnāt file Leila under the science label, nor could I label her as a fraud. Life isnāt a set of engineering problems that require precise data-backed solutions, and Iād argue engineering problems donāt always require precise, data-backed solutions either.
Raising a child is a deeply human problem - a chaotic, messy, sleep-deprived relationship with an infant often breaks all logic. And parenthood forced me to revisit the lens through which I see the world around me.
Science is an indispensable tool, but itās a terrible god.
I was talking about opinions, wasnāt I? Well, parenthood opened up a new mental framework. You may have engaged with the results of this framework on my blog if youāve read any other pieces this year.
I exist in spaces that worship metrics, and often if something canāt be measured - it doesnāt exist. Robert McNamara, who led the U.S. Defense Department during the Vietnam War, solely relied on quantitative metrics - body counts, sorties flown - to gauge success. Needless to say, he wasnāt very successful in the war efforts. Iāve fallen into this trap a countless number of times, most recently when I realized I pursued high view counts for my blog, for whatever reason. This religious pursuit of truth leaves little room for nuances of being human.
When I was talking about this article to my wife, she made a point Iād like to share: we donāt differentiate well between opinions and facts, and when we do, we discount the former. And Iāve been excited to share and discuss opinions more, and itās been an enriching experience. It invites dialogue, facilitates sharing unfinished ideas, and helps me learn about the world.
Opinions are unique, colorful, and diverse. Opinions are made of scraps of knowledge, thoughts, feelings, and experiences glued together by an essence of humanity. Iām excited about sharing my opinions and I care about hearing yours (shoot me an email).