-
Appreciating impermanence
Our friends hosted dinner yesterday. They live just down the street, and theyâve been living through a major home renovation project for the past couple of years. The whole place is getting gutted, walls are coming down, and theyâre meticulously building the home of their dreams. They just finishing the kitchen, and itâs a thing of beauty - the place just feels like their home.
Whatâs wild to me is that theyâre in the middle of talks with a developer to sell the house to them, and the developerâs just going to tear it all down anyway. âWhatâs the point?â, I wondered. But for them, thatâs not the point at all. Theyâre just enjoying the act of making the place they want to live in, and seem unconcerned that itâs all going to get destroyed, maybe even in a few months.
And thatâs just a great, healthy approach to life. Lifeâs marred with impermanence - it always feels like thereâs going to be a better, calmer, happier time. âWeâll do X once Y settles downâ has been too common of a phrase in our household, and Iâd like to break that cycle.
âI wish there was a way to know youâre in a good old daysâ - The Office
We are in the good old days, and visiting our friends was a great reminder of that, and a permission to not slow down building a life just because something might change in the future.
-
On corporate jobs and self-worth
As someone who works at a large corporation - Google - and someone who always thought working at Google would be really cool, I put a lot of my self-worth into my job. When things go well at work - Iâm doing well. When theyâre going awry - my well-being follows.
Yeah, thatâs not a very healthy take, and I know it, but as someone whoâs been in the tech industry for the past 14 years, itâs a difficult worldview to escape. At this point itâs probably a deep seated core belief.
A close friend of mine is leaving Google this week. Sheâs taking a voluntary exit program, which is effectively a more humane way for a large company to organize workforce reductions. Itâs better than the layoffs weâve also seen quite a few of lately. After being a model employee for the past decade, sheâs leaving the company (and tech in general) to focus her passions elsewhere. Sheâs excited for the future ahead, and sheâs lost too, and I think I would be too.
Itâs understandable - humans are wired to want to provide some social value. You want to be working for the good of the tribe, and you want the tribe to see and recognize that. Moochers will be shunned, and in the olden days being shunned would spell certain death. People usually can only survive together, in a group.
But in a modern world, itâs remarkably hard to connect the value of the work you do to a greater whole, to the goodness of your tribe.
I had a short opportunity to not be in the workforce for 3 months as I took my paternity leave. I didnât experience a sense of decreased self-worth, but many other factors were in play. Naturally, my daughter was born and it was exciting, and so many things were happening. Figuring out how to parent a newborn isnât easy and doesnât leave much room for existential crises. But thereâs also a lot of social value to being a dad and raising a child, which felt extremely gratifying. I imagine if I were to just take extended time off without a purpose like that one - I wouldnât be as satisfied, and Iâd begin to question my own self-worth.
Iâve been an aspirational FIRE practitioner for over a decade. FIRE stands for Financial Independence Retire Early - a terrible acronym, but the idea behind it is solid: reduce expenses, increase income, invest the difference. Many FIRE practitioners retire in their 30s or 40s, but Iâm not quite there, and I enjoy aspects of work (and paycheck doesnât hurt, either). What I like about FIRE as a philosophy is that it forces me to confront what itâs like to not have to work. Thatâs the end goal after all, but hearing from my retired friends, it always sounds like you just replace old problems with new ones.
In the end, I feel like it all comes down to finding things to value about myself that are outside of the job. Iâm learning that itâs all about moderation. Iâm trying to find a way to balance the different parts of my life, so that no single aspect, like my career, outweighs all the others. Because I feel like when I put all my self-worth eggs in one basket, itâs not a question of if things will break, but when.
-
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.