Unfollowed pragmatic engineer. We don’t need more of David Rails
Posts by Dave Copeland
Why are you platforming a white supremacist? Plenty of other people to talk to about LLMs. We don’t need more of his opinions.
Former student, class of 95, and as far as I know, The Cellar is still operational :)
Update on Desktop Linux - I'm back to using it, xremap is the only thing making it usable for me, there's a ton of papercuts, fuck snap, but overall it's a solid dev machine.
naildrivin5.com/blog/2026/03...
The Mediocre State of PWAs (via pwa.support, which I vibe coded for science)
naildrivin5.com/blog/2026/03...
[ sparing you all the tedious "Golly Gee Whiz Claude Code is whatever blah blah" post - cannot stand those ]
Happy to see Andre finally speaking publicly about the hostile Ruby Central takeover last year. RC is no longer a trustworthy steward for the Ruby community. I don't see how we repair this rift without Shan stepping down, she has been awful as ED.
andre.arko.net/2026/03/03/f...
On the off-chance you have not heard of the MONA museum, you absolutely MUST find time to go. My wife and I chose Tasmania over Uluru for a) cost and b) the MONA when we went to AUS a while back. It's one of the most memorable museums I've been to.
I have had some gigs like that: a CTO wants to do something that is scoped a well-suited for independent work (coordinated with anyone affected). It has to be done and can afford it, but the day to day eats them. You enter, do it, and shake hands.
TBH this is a good approach for any project - finish quickly and without incident. Don't ask permission for delivering quality work, either (however you want to define it).
And make sure that each Friday, the entire team can walk away from the project, never to return, and it still has value.
That works for something with a business outcome, but just "fix this mess", in my experience means "replace this mess with the consultant's mess" unless you are really lucky on choosing consultants :)
And if you should get cover, time, and/or resources to undertake a major improvement: work you fucking ass off to finish it as quickly as you possibly can, because these types of projects are the top list to be cancelled to reclaim resources for shorter-term gains.
What if a mess already exists? TBH, my answer is too bad. Find a way to make small improvements over time as you work, or find a way to quantify in business, not moral, terms about why a larger improvement is needed.
Using tools to help with changes (e.g. AI or scripts or whatever) is just a thing we have the help us with #1 and #2. I find it highly unlikely a team would have the capability and resources to do good work but somehow not be able to improve the codebase as they work.
Clean as you go.
2 - Do not ask permission to make the improvements that need to be made. Make them. Make them as part of other work, or proposed deliverables that require the improvements. I see so many devs flail in a state of learned helplessness because they cede their agency to some non-programmer, then comply
1 - Don't create cruft in the first place. Many devs think they must go as fast as possible (as opposed to fast enough) and just produce sloppy code. It's way better to just not do this, plus it's easier to manage a process that avoids. This relates to the second strategy
In my experience, it's impossible to justify "paying down" tech debt to anyone outside your team's programmers, and even then it's iffy. Doing a bunch of work without changing the system is hard to quantify, perhaps even impossible.
That said, cruft happens and needs to be dealt with. 2 strategies:
And in theory (strong 'in theory'), the AI is more sophisticated and so could do changes that might be tedious and lengthy for a person but not inherently difficult or time consuming.
I dunno, I'll be interested to see how (or if :) this turns out.
I'm not so sure - consider a case of a codebase with a lot of duplication, but where that duplication could be changed with a basic search & replace across all files. Even though that feels like "tech debt" (or just sloppy programming), practically speaking it doesn't seem that big of a problem
If the AI code generators are capable of adding any feature to any codebase then there is no longer such a thing as technical debt. Tech debt - if it matters at all - is only relevant to people writing code.
The Death of a Software Craftsman (it happens a lot 'round here)
naildrivin5.com/blog/2026/02/2…
AI Abstinence? All in on Agents? Or resign yourself to becoming a niche craftsperson?
Oh nice! Yes that was the behavior I was expecting initially (though clicking a message to select it makes sense too). Thanks so much for your work on that app!
When I click on the top most message, it goes "into" that message, but if I go back (e.g. with cmd-[) again j/k is still stuck on the old message. Is there a way to "select" a message such that keyboard navigation works from that message?
@aeronautapp.com How do I "select" the most read message so that keyboard shortcuts navigate from there.
e.g. If I come to the app after a day of not using it and hit j/k I'm navigating from whatever message I had focused a day ago. cmd+up does take me to the top, but then j/k again scrolls down
Aeronaut 1.6 is now available. This release adds support for selecting list items with the keyboard!
• ▲ or K to move selection up
• ▼ or J to move selection down
• ↵ to perform the default action
• ⌘J to go back to the selected item if you’ve scrolled it out of view
• ⌘+click to deselect
1/2
Awesome! Thanks for the info and your hard work!
Yes, I’ve had lots of requests for more keyboard shortcuts! These already work:
• Scroll to top: ⌘+up-arrow
• Switch tabs: ⌘1 through ⌘8
I’m planning to add a menu item for scroll to top to make it more discoverable. And arrow keys to move between posts is on my todo list.
Thanks for space-to-scroll! I'd love even more keyboard shortcuts (e.g. scroll to top, navigation, etc.)
Screenshot of Synology DSM showing that while 7.3.2-86009 is current, "DSM 7.3.2-86009 Update is available for download", rendered in a way that both old and new versions are vertically aligned and look identical.
I would love to understand why Synology decided to name this new version "$SAME_AS_CURRENT Update 1" instead of bumping the FIVE DIGIT PATCH NUMBER?!?!?!
Trying out @aeronautapp.com (was previously using a Safari web view of the Bluesky website). Much nicer, and look forward to whatever improvements they make.