Every techie dreams of one day writing a considered harmful post and today, my friends, today that honor is finally bestowed on me. Gather round the fire, and I'll tell you the blood-curdling tale of a library once known as PJAX, whose restless ghost still haunts these realms.
I once heard Dave Rupert call types "baby unit tests" and that never really left my mind.
My social media has taken a hard turn for the nerdier since Twitter shut down and everyone with a modicum of moral fibre stopped posting there. So even though I'm not really a Linux developer, I was recently exposed to the drama around Hyprland and its maintainer.
I recently stumbled over a reddit thread about children and parenting. Those threads pop up every now and then and I find them amusing and distressing in roughly similar amounts, because boy howdy are people wrong on the Internet, but also: that nagging dread that parents are always carrying in the back of their mind, that they're being judged by people around them? Yeah, that's absolutely true.
My tech posts often come from kind of a negative place. I wish it wasn't like that, but we all know how the mind works: writing with nuance and positivity is a lot harder than fired-up screeds of the "someone is wrong on the Internet" variety.
It seems to be open season on Tailwind CSS! Go and read this post by Tero Piirainen. Nothing I haven't heard before, it hits basically the same notes as the other stop-using-utility-css posts: it implies that people mostly use Tailwind because of successful PR, and it assumes that its proponents are React-pilled newbies who just haven't been exposed to the beautiful fire stolen from the gods by Jeffrey Zeldman, Prometheus incarnate, in the early aughts. This one goes a step further and includes links for learning CSS! Because you are obviously a lost child in need of guidance! Let me condescend right back, because that's what I do best.
In the dying embers of 2023, Mayank wrote a post that went through the trials and tribulations of React Server Components. I read the article, eyes widening all the way through to the end until my face vaguely resembled a US electrical socket, and it ultimately left me feeling like, man, I'm glad I'm not doing React at the moment.
I'm sometimes linked to Twitter (sorry, I mean X) threads. It's usually updates on the war in Ukraine, because Twitter is still the default medium if you want to see Russian tanks merrily tossing their turrets. That's fine, I guess, if a little weird—why post on a medium where the proprietor is an unhinged plutocrat who is clearly aligned against you?—but every now and then I click on a link to the birdsite and it looks like some people are still on there discussing tech of all topics?
There seems to be a little swirl of anti-Tailwind sentiment brewing. Which is fine! All fine, I assure you. Tailwind is intensely polarizing and I don't want to harsh anyone's mellow. But I'm honestly getting sort of sick of the "skillful and experienced developers don't like Tailwind because it holds them back" trope because it just ain't true. I read a long and pretty entertaining piece yesterday that argued essentially that: Tailwind is a crutch for beginners that blunts the edge of experts. Last week I read another post that, interestingly, used the same craftsmanship metaphor.
Brandon Weaver posted a thread on Mastodon a couple of days ago stressing the importance of planning ahead in software projects, and I caught myself feeling kind of offended. I'm a super-duper senior developer who's been in charge of projects, teams, apps, a company, released open-source, and won awards, and I'm not great at planning ahead. That means I'm not one of those "most senior and skilled leaders" from Brandon's thread. Well, dang.
DHH is in the tech news again! It's a stunt. It usually is, with him. And here I am, shamefully but eagerly taking the bait.
Figma has been in the news lately, probably as a result of their Config event where they announced a bunch of new features. Vercel's CEO gave a talk about something-something React Components, I think. That, in turn, seems to have spawned a few takes about Figma really being an unnecessary intermediate step: designers should just write HTML and CSS. I disagree.
There's a certain trajectory you follow as a developer. Most of us start out as tiny programmer larvae, blindly fumbling our way through trial and error until things seem to work. We then pupate into overly clever Rockstar Ninjas who try to solve everything with ternary operators and arrogance. The Rockstar Ninja's code usually looks like someone lost a bet with Larry Wall and had to drink a whole-ass bottle of Perl 5.0 -- but that doesn't matter: the Ninja is there to kick ass and ship features, unlike you sorry lot. That means things like left-pad dependencies and rolling your own crypto.
I've been the sole developer of Bidders Highway for something like a year and a half now. It's been rewarding in many ways, if kind of lonely at times, and I suppose the distillation of it feels like "my skills and experience having coalesced into something that probably not everyone can do." Good for introspection, not great for getting better at the craft. Velocity is off the charts and has been since day one, but my personal development (and, I suppose, career ‒ I'm at home in front of my screen all day rather than shaking hands and making plans) has been put on the back burner for a while. Maybe that sounds strange? If I'm doing all the development, wouldn't I be getting a whole lot of hands-on practice?
An article came out recently, declaring the seven Swedes still playing in the Russian KHL "a shameful part of Swedish sports history." I am in full agreement. This has to be the easiest moral choice in the world right now: you really shouldn't be sportswashing an aggressive dictatorship currently engaged in a war of conquest, terror, and ethnic cleansing right on the border of your home country.
Many years ago, we went to London to watch football. Arsenal won, of course, so the game itself was sort of forgettable, and what ended up sticking mostly in my mind was the overall experience of Emirates Stadium. I would describe it as solid, pricey, and sort of... sterile? Modern oligarch-owned football trends towards expensive food and drink and a very exit-through-the-gift-shop atmosphere. That's fine, I suppose! Football isn't just about the game itself: it's the pre-game beer, the jam-packed Underground station, the discussions afterwards. And of course, we did some more tourism while we were there. I remember Kew Gardens the most.
I'd never heard of Silicon Valley Bank before it exploded in a shower of pretty sparks last week. Amazingly, upon just hearing the name my brain made a bunch of associations that proved to be mostly correct ‒ it WAS indeed a nasty cross-section of Wall Street and Sand Hill Road, thoroughly infested with both their money and their questionable politics. The whole fracas is obviously going to shake out badly for me and my programmer brethren in the trenches, these things always do, but that's for my dreary future: now is a time for drinking, giggling, and gloating.
There's been a bit of a brouhaha these last weeks as parts of the Internet suddenly woke up to the realization that most Single Page Apps are slow and overcomplicated, and — shock horror — it turns out that Facebook, the lovable scamps that brought us React and QAnon, have conducted themselves badly! Refreshingly, rather than launching a thousand caustic subtweets, this little stormwind has caused the blog posts to start flying again. Thank you, Elon "Vain gobshite" Musk. I'm totally here for it.
I thought I would be the cool dad playing video games with my kid. Turns out I want to go back to the 80s.
The short version is that I'm on Mastodon now and that feels okay, but I'm bitter about it and I wish it never had to go so far.
As you all know I'm a big fan of Twitter. It's really the only social network I spend time on, and honestly it's 99% "interesting links and art directly to the face" and 1% "actual social network" and that's why it works. It's with great sadness I see the Obnoxious Electric Car Man come in like an elephant in a china shop, trying to stir things up.
I like my software boring and stable. I try to keep myself patched and all that, but I don't really trust updates. That said, sometimes you gotta mix it up a little.
I was a late adopter of Tailwind CSS. Now, I've been a fan of atomic CSS for a good many years, but it was a wasteland for the longest time while everyone was off doing CSS-in-JS, and nothing really caught my fancy. I had been eyeing stuff like ACSS and Tachyons and they looked good but I'm very, very tired of pulling in and learning new dependencies. I've also been doing CSS since before you were born, and making an atomic CSS framework really isn't that hard. Make a class for a rule, done. But I kept hearing the whispers and so I tried Tailwind, eventually, and really came around to liking it ‒ it's ergonomic, fast, and leaves a magnificently small footprint.
I keep coming across the phrase "strong opinions, weakly held" and I swear to God I've never heard a more wishy-washy piece of spineless bullshit in my life.
I recently read an article by Jason Swett where he argues against Sandi Metz' old chestnut "duplication is better than the wrong abstraction" and it made me feel like I have to articulate why I'm Team Sandi here. I'm sure I've used the saying a million times in discussions with colleagues and, as such, I feel personally attacked by Jason's article and need to defend my honor.
Look, I'll freely admit to knowing next to nothing about the Enterprise world. It's like a separate universe of its very own, populated by Solutions Architects and threatening-sounding acronyms like ITSM and SAFe.
Unless you're cool enough to commission your own icon set, you're probably using a library like Font Awesome or Google's Material Icons. We're using Material Icons for the new thing we're building. They're good!
I've started a new job! It's kind of hush-hush at the moment. We'll be in stealth mode for a few months while we build this thing out, and then we'll see what happens with the business side of things -- nobody ever knows, right? But we're absolutely going to ship a solid, well-built piece of software.
I've set up a Gemini server for johan.hal.se! You can check it out if you want: gemini://johan.hal.se.
Well, wouldn't you know it! The ol' homepage has a new face. You've probably stared at your RSS feed for a good long while, impatiently tapping your foot, wondering "why hasn't Johan updated with his yearly-ish blog post" and I'm here to tell you that I had good reason! Many good reasons in fact, the biggest of which was, I, uh, ilstmysrcode.
There's a recognizable type of snobbery that stems from mastery, and you can see it practically everywhere. A common one is in architecture: the people chosen to build our cities and houses are generally pretty far removed from what people think of as, well, uh, for lack of a better word, "good."
Welp, here we are: stuck in the blessed land of carbon footprint reduction. Nobody's flying. We stopped buying frivolous takeout lattes. We're not even driving ourselves back and forth from work. The latest number I've seen is an estimated 50% decrease in industrial activity and a global reduction in carbon emissions of around 5%.
A significant chunk of the web runs on Amazon hardware now. I don’t get it.
I can never remember the syntax for find
. And when I do remember it, it tends to be something stupid like find . -name package.json
.
I absent-mindedly leave my headphones at work about once a month. My immediate reaction is always “asdfghjkl no no please god no this will be the bus ride from hell” but it usually turns out to be a surprisingly thoughtful 30 minutes instead. Or a nice long nap.
It’s time to stop what we’re doing for a second and talk about automatic updates! Unsurprisingly, I have Opinions.
Confession time: I’m partly powered by smugness. I’m not even sure that’s a bad thing.
We all know a bunch of good stuff happens when you delete social media apps from your phone. What we didn’t know is that a bunch of bad stuff happens, too! I went there so you don’t have to.