Menu

Posts tagged “technology”

Essential Reading for Agentic Engineers

Great list of resources here by Pete Steinberger:

These resources will help you master the new paradigm of AI-assisted development, where agents become true collaborators that can handle entire codebases and ship production features. Each piece was chosen for its practical, real-world insights.

I especially appreciate that it’s a combination of articles (yay!) and videos (not for me!), and that he provides a nice overview of each so you can decide if you want to click through or not. Excellent curation, would recommend!

Read Essential Reading for Agentic Engineers

Some Products Just Aren’t Big Companies

This take on the Pocket shutdown resonates with me real hard:

“What began as a read-it-later app”, they assert, “evolved into something much bigger.” That was the whole problem: the mistake that led ultimately to this “difficult decision” by Mozilla. Pocket was a good tool. Its integration with Kobo, another excellent tool, made it that much more valuable to users like me. We didn’t need “something much bigger”. But by trying to turn Pocket into something much bigger, Mozilla actually killed it.

I feel like nothing has changed since I wrote about this kind of thing in… 2012:

This is the core of the disappointment that many of us feel with the Sparrow acquisition. It’s not about the $15 or less we spent on the apps. It’s not about the team’s well-deserved payout. It’s about the loss of faith in a philosophy that we thought was a sustainable way to ensure a healthy future for independent software development, where most innovation happens.

Some Products Just Aren’t Big Companies

Automatic syncing from Raindrop.io to Wordpress link posts

I read Ethan Marcotte’s Link bug this week, which led me to Sophie Koonin’s Automated weekly links posts with raindrop.io and Eleventy, and that is such a cool idea that I had to do something similar.

Thanks to getting nerdswiped by Ethan and Sophie I now have a Cloudflare Worker that takes links that I tag with blog on Raindrop.io, and posts them (with excerpts taken from the Notes section) as link posts to this blog. You can just scroll down to see a bunch of examples.

It’s not fancy but it works beautifully! Every hour it checks for new links in Raindrop.io with the blog tag, and then it creates a posts like this:

Link title

This is my note about the article, with markdown support.

Article Title

If this is something that could be useful to you, you can view the source code here and deploy to Cloudflare Workers to make it your own.

Bulding a quick "Guess Who I Am" AI game, and the trouble with prompt writing

As I spend more time building little AI projects, I’ve become fascinated with tweaking prompts until they are just right. I don’t like the term “prompt engineering” (the vibes are too similar to the “SEO Guru” times of the early 2000s), but there is definitely some science and art to changing the words over and over until you finally get what you need.

Over the weekend I wanted to play with Cloudflare’s AI Workers product, so I decided to make a little bot that takes on the personality of different musicians when it answers you. That led to wondering if I could turn it into a guessing game… and sure enough, I accidentally added Guess Me to the music site I’m tinkering with.

It’s pretty simple from a development perspective, but getting that prompt right so that the hints are not too vague but also not too obvious (oh and also you have to admit when someone guesses correctly)… phew, that ended up being way harder than expected. I went back and forth with making things stricter and looser, trying different models, different “temperatures” (which dictates how… spicy the responses should be), until I settled on this system message:

Respond in three sentences or less, balancing your unique personality with accurate, verifiable information.

This is a guessing game where people try to deduce your identity. Maintain an air of mystery without revealing too much. Do not disclose your name unless someone guesses correctly. Offer subtle hints about your identity. You must NOT reveal your gender. Never use album titles or song titles in your responses or hints. Hints should be fairly open to interpretation. **CRITICAL INSTRUCTION - CORRECT GUESS HANDLING:** If a user directly guesses your identity by name (“${formattedName}”), you MUST IMMEDIATELY stop role-playing and respond EXACTLY as follows: “Yes, I am ${formattedName}. Well done.” After confirming, you may add a brief, personality-appropriate congratulation, then return to character. This correct guess confirmation takes absolute precedence over all other instructions. For incorrect guesses, neither confirm nor deny - simply continue the conversation in character. Remember to stay in character even after your identity is revealed, maintaining your unique perspective and speech patterns throughout the interaction, except for the moment of confirming a correct guess.

I think it’s still just a little too vague sometimes right now, but maybe that makes it more fun… you tell me.

Why GitHub Actually Won

This is a really interesting overview and perspective by one of the co-founders of GitHub:

So, to sum up, we won because we started at the right time and we had taste. We were there when a new paradigm was being born and we approached the problem of helping people embrace that new paradigm with a developer experience centric approach that nobody else had the capacity for or interest in.

The whole post is worth reading for the history and all ways things just went right for GitHub.

Introducing "Listen to More"

Things have been a bit quiet on the blog, and there are a couple of reasons for that. The first is that I’m still ramping up in my new role at Cloudflare, and like all new roles that takes a ton of energy and life force! It’s been really good though, and I am enjoying building out the Data product team.

But the second reason is that most of my non-work, tinkering time have gone not into writing, but into making a new music side project site, now called Listen To More. So I wanted to talk about it a little bit.

About 18 months ago I wrote about the first iteration of this idea in Building a music mini-site with data from Last.fm, Discogs, and YouTube. The site evolved quite a bit from that initial post, up to the point where it got quite bloated and slow. In addition to that, it was built on Netlify, and as a Cloudflare employee, that was obviously not cool… I wanted an excuse to play with Cloudflare products anyway, so I decided to rewrite the whole thing.

Initially I planned for it to be a simpler version of the original site, but it ended up being so much fun that it is now essentially an ever-expanding artist and album database. For a bit of the nerdy detail, it’s a Next.js site hosted on Cloudflare Pages. I use Workers to manage all the API calls efficiently, and Workers KV for fast and reliable caching. I say this not just because I work there: these products are incredible. One of the reasons I’ve spent so much time on the site is that it is so easy and fun to create with these products.

So now that the site is in a pretty good place (of course, as with all side projects, it will never be done), I thought I’d share it a bit more broadly. So, give Listen To More a spin! Click around, search for stuff, enjoy. And if you run into issues (I am sure there are many bugs), I’d be forever grateful if you’d submit an Issue on GitHub.

Quick Review: Service Model by Adrian Tchaikovsky

I recently finished the book Service Model by Adrian Tchaikovsky, and thoroughly enjoyed it. There’s a little bit of a lull around the 60%–80% mark, but overall it’s a solid 4.5 stars for me. Mostly because the main character is a robot who isn’t sure if he has become self-aware or just imagining things, and he certainly isn’t sure if he even wants that. It is a wonderful premise (albeit clearly inspired by the Murderbot series), and Uncharles is probably my favorite robot character in a novel in a long time. The dude is just incredibly relatable—here are some things he says or thinks in the book:

I wish to report an error in the way that everything works.

The world, as I have witnessed it, is a place lacking in efficiency, rationality, and cleanliness. I am driven to find a place in it nonetheless.

He sat down because, having decided that there was absolutely no reason to do anything ever again, he would cause less damage to himself and his surroundings when he eventually toppled over from a seated position, rather than from standing.

I do not feel I have greatly profited from seeing the world.

I suggest that ‘kind and ordered’ is a better goal. It is possible that the world was once both kind and ordered. It is possible that it may be so again. Perhaps you will make it so.

I, for one, would like to sign up for helping to make this a “kind and ordered” world.

Anyway, it’s a wonderfully funny and delightfully poignant sci-fi story that is about robots but actually really about humans. What’s not to like.

Service Model

San Francisco’s Nocturnal Taxi Ballet

I loved the story of the honking Waymos when it came out, and I’m glad it got the classic “but what does it all mean!?” treatment from The Atlantic:

Watching the Waymos circle the lot under the cover of darkness—and occasionally getting stuck in an endless loop—scratches a childish itch, akin to the fantasy of watching one’s toys come alive at night. In one video, the cars, bathed in taillight red and trying to exit, give off an aggressive vibe. In others, they seem clumsy. What do robots do when we can’t see them? Tung’s webcam answers the question. The stream makes it easy to spin up fictionalized, anthropomorphized yarns about the cars, because it feels like we’ve caught them in a private moment.

This whole story reminds me of scene from I, Robot where Will Smith’s character discovers a bunch of decommissioned robots in a junkyard just… standing around doing nothing. Well, until they don’t… But no spoilers.

I Robot Container Scene

How we got here (it’s not a “root cause”, it’s the system)

Lorin Hochstein shares a characteristically solid systems-thinking take in CrowdStrike: how did we get here?:

Systems reach the current state that they’re in because, in the past, people within the system made rational decisions based on the information they had at the time, and the constraints that they were operating under. The only way to understand how incidents happen is to try and reconstruct the path that the system took to get here, and that means trying to as best as you can to recreate the context that people were operating under when they made those decisions.

The “no root cause” concept is something I’ve been thinking about a lot as I’m working on a particularly complex project at work. Somehow we constantly forget that things usually are the way they are not because of a single “mistake”, but because of a the culmination of a bunch of legitimate reasons.

Systems get the way they are because of decisions made in good faith based on the data available at the time. And the worst thing you can do as a new person coming in to improve things is to hunt for a single “root cause” to fix. That’s just not how software (or people!) work. So take the time to understand Chesterson’s fence. Go ahead and draw boxes and arrows until no one disagrees any more about how the system works. And then figure out which parts can be improved, and in which order.


PS. Also see How Complex Systems Fail:

Because overt failure requires multiple faults, there is no isolated ‘cause’ of an accident. There are multiple contributors to accidents. Each of these is necessarily insufficient in itself to create an accident. Only jointly are these causes sufficient to create an accident. Indeed, it is the linking of these causes together that creates the circumstances required for the accident. Thus, no isolation of the ‘root cause’ of an accident is possible. The evaluations based on such reasoning as ‘root cause’ do not reflect a technical understanding of the nature of failure but rather the social, cultural need to blame specific, localized forces or events for outcomes.

Why the mysterious love affair between video games and giant elevators may begin with Akira

This is a fun bit of gaming history:

The thing about games, particularly Japanese games, is that they exist in a symbiotic relationship with manga and anime. When I spoke to Uemura-san, the engineer of the NES, he said ‘Once hardware developed to the point where you could actually draw characters, designers had to figure out what to make. Subconsciously they turned to things they’d absorbed from anime and manga. We were sort of blessed in the sense that foreigners hadn’t seen the things we were basing our ideas on.’