Links The RSS feed for Links.

Link to good posts and articles on the web.

  • 🔗 Birchtree: Browser agent modes are fucking stupid

    The demos seem designed for people who don’t book their own plane tickets, who aren’t concerned with cost when doing anything, and who haven’t been grocery shopping in a decade.

    I’ve not used any AI browser agents, mainly because I have no personal need of them, so I can’t lay claim to how relatable these demos are. But it is amusing to consider the people coming up with these demos being so out of touch that they would benefit from getting out more often than I do. And this is from someone who doesn’t get out that often. 😀

  • 🔗 Annie’s Blog: Duck duck duck dichotomy

    I was a bit late in coming to this one but this post really resonated with me.

  • 🔗 ByteSauna: AI can code, but it can’t build software

    When you look at the code these people send you, you realize that “making the app production-ready” really means torching the whole thing and starting from scratch.

    I do use GenAI in my personal projects occasionally, but I wouldn’t describe what I do as vibe coding. I know what I want done and how I would do it, which helps in knowing whether the generated code is any good. The thought of doing this for an entire software project without the knowledge of what good code looks like doesn’t give me confidence that these vibe coders would see much success for long. Pretty soon, someone who knows what they’re doing will eventually need to come in and clean up the mess.

    The fact that I get these requests says something about software engineering. I mean, if software engineering was automated, no one would be looking for technical cofounders.

    Indeed.

    Via: Birchtree

  • 🔗 Anil Dash: Founders Over Funders. Inventors Over Investors

    Enjoyed this post from Anil Dash; although being a tech practitioner, that probably wouldn’t be too surprising. But I don’t think it makes it any less true.

  • 🔗 The Guardian: Tawny frogmouth named 2025 Australian bird of the year winner

    Runners up include the gang-gang, which would’ve been my vote between the two. But still a worthy winner. Congrats, Tawnies. 🏆

  • 🔗 Alex Edwards: A modern approach to preventing CSRF in Go

    Have we finally reached the point where CSRF attacks can be prevented without relying on a token-based check (like double-submit cookies)? Can we build secure web applications without bringing in third-party packages like justinas/nosurf or gorilla/csrf?

    And I think the answer now may be a cautious “yes” — so long as a few important conditions are met.

    This looks interesting, and I like how this middleware is included in the standard library. Filing this to look at later.

    Via: Simon Willison

  • 🔗 Martin Hähnel: Write Like You’re Ron Jeffries

    The meandering pace of solving a problem, of how ideas develop and how people create are not replaced by the slick surface of the perfect how-to in which everything seemed to have worked on the first try, was clear from the beginning. Jeffries’ texts […] document the doing in the making, learning in the making. It makes it obvious that that which is presented is very often not how it was derived.

    It would be nice to do more of this style of writing.

  • 🔗 Brandon’s Journal: Save Your Writing

    Some good advice about saving your previous creations, even if you feel you’ll never look at it again. Maybe you won’t, but if it’s writing, what’s a couple of megabytes in this world swimming in storage? Move it out of sight if you must, but don’t delete it.

  • 🔗 Robert Birming: The world’s worst blogger

    I moved my blog from Bear to Micro.blog because, as I put it, it “started to feel limited”. I had begun creating photo albums, a status log, and some other stuff. It became harder and harder to manage…

    So I moved [to Micro.blog]. A place with great features for adding photo collections, logging books, writing both long posts and short ones without titles. All just a click away…

    Now that I have all these possibilities, I can’t seem to do it. No matter how I try, it never feels right to mix things up. And when I tried running two blogs on the same platform, it just got confusing.

    I can’t pretend to fully understand Robert’s feelings, but I that I’ve gone through similar feelings myself: wondering if this bit of content should be on this blog, or that one should be there, etc. And always looking at the next shiny thing glittering on the horizon: a new CMS I haven’t tried, a fresh theme. There’s always something else to look at.

    And I think much of this is all a distraction from a worry that took me a while to acknowledge: is what I write of interest to anyone? If I were to write about this, will they get upset or board? Who am I to waste their time on writing about topics that are of no interest to my readers?

    ​I’m trying to get better at not worrying too much about this. Although I can’t fully know what others are thinking, I have at least one data point that can provide me an answer to this, which is being a reader of blogs myself. And I’m aware that not everything I get from my feeds is going to interest me. That’s fine, I’ll just skip over that one post and wait for the next one. I’d probably prefer that over someone splitting their posts across multiple feeds and knowing that I’m only getting part of what they’re writing.

    So if I were to provide some advice to Robert, it’s to try and simplify. Have a single site that others can subscribe to and write everything there. The hassle of deciding where to write isn’t really worth the worry. Plus your simplifying things for your readers, who want to read stuff from you. That’s why they’ve subscribed.

    Anyway, like I said, I can’t pretend to fully understand the feelings. I definitely don’t think Robert is the “world’s worst blogger.” I enjoy reading his posts and I look forward to seeing them pop up in my RSS reader. I just hope this helps in some way. And I know how much easier it is to give advice than to follow it yourself. Go through my archive where I’ve spun out topics into separate blogs/CMS myself. All in all, keeping things simple is probably good advice for both of us.

  • 🔗 Steph Ango: File over app

    The files you create are more important than the tools you use to create them. Apps are ephemeral, but your files have a chance to last.

    This is excellent advice, and one that I’m trying to practice better. I’d also argue that this can be extended to a software design principal, which is to assume the data will outlive the system. Therefore, prefer a data scheme that will be long lasting, and worry less about the systems that operate over it. This is why I found it distasteful to offload schema designs to ORMs.

  • 🔗 Ditch those words!

    Liked this post by Robin Rendle.

    Folks will spend so much time adding fancy illustrations and making sure the icons aren’t blurry but when it comes to words and actions in interfaces they seem to gloss right over them.

    It’s a well known trope in UI design that the user generally doesn’t read things. So I can forgive those who feel that words in UIs are not as important as icons. But I do occasionally wonder if the pendulum has swung too far. More than once I’ve encountered a UI with icons, without any description, that I didn’t understand, and it had an effect of my ability to use it.

    Every word in a UI needs to act like a hammer, with each successive word the interface should become clearer, more easily understood. If you put a word like Explore in an interface it might make sense but now add another navigation item like Discover beneath it and now both words make no sense. The UI has collapsed into meaninglessness and folks are forced to click and think and furrow their brows to understand the difference between the two.

    I didn’t even consider the case where words could interact with each other this way, like elements in a chemical reaction. But seeing it described like this, it makes total sense.

    The cynic in me worries that the folks who made this interface don’t want me to read the popup or modal or alert or web page or list of settings or whatever and they really just want me to click a button. The words are designed to be longwinded and confusing. They just want the click.

    I think it’s easy to read this as the UI design being intentionally obscure, just to herd the user through specific interaction flows that benefit the company. I’m sure there’s a bit of that. But I also think that some designers are simply trying to help the user trying to achieve what they want out of their software. It may be that they just haven’t got the right words to explain it, being someone who’s working on the software every workday. And I don’t know how this could be improved. Adding more words for the user to not read doesn’t seem to be the solution. Maybe more user testing? Some way to better understand how the user thinks the software works.

    Anyway, very interesting post.

  • 🔗 Rebooting the blogosphere

    Under the heading Don’t be shy:

    Tell everyone you see. Be a nuisance.

    I find the hardest part of blogging is telling people I have a blog. 🙂

  • 🔗 Manuel Moreale: On em dashes

    What if they tweak the instructions next week and tell it to use more full stops or commas? What are we gonna do then? Stop using those as well? Hell no. I’ll keep writing however I want, and if someone decides to stop reading what I write because they suspect it’s AI-generated because I use too many em dashes, or parentheses, or any other punctuation or word or whatever, well, good riddance.

    My feelings exactly. To stop using em dashes because of AI chatbots seems ludicrous to me.

  • 🔗 HN Comment by IanCal in a discussion about RDF (emphasis added):

    Someone will suggest modelling to solve this but here lies the biggest problem: The correct modelling depends on the questions you want to answer. Our modelling had good tradeoffs for mapping academic citation tracking. It had bad modelling for legal ownership. There isn’t one modelling that solves both well.

    That may be why I was turned off by RDF all those years ago. One seeks to model a domain, but domains can be extremely complicated, and even if you cover everything, it’s still only one domain. But the biggest crime is assuming that the model is necessary for all use cases. And it just isn’t. Does every website that tracks books need to know the full legal name, publisher name, the legal entity of the company that supplied the typesetting? Simplify, man.

    Via: Simon Willison

  • 🔗 Dave Winer: We Make Shitty Software

    We know our software sucks. But it’s shipping! Next time we’ll do better, but even then it will be shitty. The only software that’s perfect is one you’re dreaming about. Real software crashes, loses data, is hard to learn and hard to use. But it’s a process. We’ll make it less shitty. Just watch!

    It’s true. Speaking for myself, I too make shitty software. Probably have my entire career. It’s only today that I’ve internalised it. And it’s a hard thing to admit. How hard? Well, try four attempts at posting this declaration publicly.

    Via: Coding Horror

  • 🔗 GitHub: Gopher Hawaiian Shirts

    Patterns for printing Hawaiian shirts with the Go gopher. I think I’ve found what I’ll be wearing to work in the future. 😄

    Via: Golang Weekly

  • 🔗 PCjs Machines

    Virtual machines of early PC operating systems, such as Windows and OS/2 1.0, that run in the browser. For anyone else who’s interested in a nostalgic kick. Don’t forget to check-out the list of included software installable via the virtual floppy drive.

  • 🔗 Ludipe: Intro to Puzzle Design

    Filing this under good tips for game development.

    Via: GMTK weekly digest.

  • 🔗 Wikipedia: White-winged chough

    I’ve seen this bird before and I had no idea what they are: black, white tips on the wings, red eyes, and an interesting call. Their presence in a random YouTube video I was watching revealed the answer.

  • 🔗 The Monospace Web

    A very nice exploration of webpage design using a monospace font. The first thought I had when I saw this was that this would work great for online man pages, which never look as good online as they do in the terminal.

    Via: Robb Knight

  • 🔗 How we built Bluey’s world: tales from original series art director, Catriona Drummond

    As someone who knows absolutely nothing about animation, I found this fascinating. Some nice bits of theory in this, such as the “language” of shapes:

    Circles are round, friendly and soft. No hard edges!
    Triangles are sharp, aggressive and evoke pain.
    Squares are sturdy, steady and firmly planted.
    Then on top of that, even directional lines have implicit associations! Horizontals are calm, verticals awake and upright, and diagonals off balanced.

  • 🔗 Aresluna: Frame of preference

    This walk through the various preference windows of MacOS is amazing. The way they integrate Infinite Mac alongside it: genius. Best explored while listening to ATP Overtime.

    Via: ATP #650: Whatever It Takes to Get the Laundry Folded

  • 🔗 Daring Fireball: Microsoft Introduces ‘Copilot Mode’ in Edge

    Some follow-up from my recent pondering about chatbots in browsers. From Gruber:

    I think something similar is behind Microsoft trying to make Copilot front-and-center in Edge, and Google’s concurrent move to junk up Chrome with AI-generated suggestions. Their goal is to make their web browsers chatbots faster than OpenAI can make ChatGPT a web browser.

    Okay, that’s plausible. If it’s just a fight for mindshare than I can understand this. Still not sure what OpenAI’s motivations are, but it does look like these other companies are just reacting here.

  • 🔗 Daring Fireball: Google Chrome Adds AI-Generated Store Summaries

    Now browsers themselves will be adding their own layers of distracting cruft atop the websites. The entire premise of Chrome — the reason for its name — is that it was originally designed to simplify the UI of the browser app itself, the “chrome”, at a time when Internet Explorer and even Firefox were increasingly cluttered and confusing.

    I’m confused as to why Google and all these AI companies are so gun-ho about adding AI agents to browsers. What do they get out of this deal? Is it just a way for them to win users and get data from their browsing habits? Is it protection against Google potentially dissuading these users away from using their chat-bots? These are not problems Google has, so why are they doing this?

    They seem like features designed to turn the dial up on Google’s slice of commissions from web transactions.

    Maybe, but how can they collect? If they run AI over the web-pages that a user visits, when the user converts, how are they going to tell the website owner that they help “bring in the eye-balls” thanks to AI and have earned X% off the top? Maybe they’ll only run these AI agents on sites that “opt-in” in some way, either by using Google Pay or paying more for Google ads. I can see that happening.

    All very strange. In either case, I’m glad I’m rocking Vivaldi these days.

  • 🔗 Manuel Moreale: Why this matters

    Manuel Moreale celebrates and reflects on reaching the 100th People and Blogs. Congratulations, Manuel! Here’s to many more.

    We’re entering the 3 digits era of People and Blogs, and the next milestone is going to be the beginning of the 4 digits era, which will arrive in the year 2042. […] I’m not even sure if blogs will still be a thing by then.

    Oh, I bet you they will be a thing.