Bookmarks

My own little curated list of links to creative works, news articles, software tools and other resources I've found on the web. This is a mixture of things I've found useful, or thought-provoking, or fun, or that maybe hold some kind of special meaning to me.

Using Simple Tools as a Radical Act of Independence

Stuff like this is why I still think there’s some magic left in tech.

This is why the simplicity of HTML and CSS now feels like a radical act. To build a website with just these tools is a small protest against platform capitalism: a way to assert sustainability, independence, longevity.

How I Read Rails Source Code

Worth bookmarking just for the bundle open gem tip. But also full of other little bits of wisdom.

The obvious benefit of a test is to make sure that the code still works after making a change. However, another hidden benefit is that a test can help us get familiar with the codebase quickly. You can execute the code without launching the application in the browser or running the complete program.

This is an underrated upside of having lots of unit tests and it's an onboarding hack I use a lot myself for learning new codebases quickly.

The UX of UUIDs | Unkey

Love anything about UUIDs and ULIDs. The base58 stuff here was a new one on me.

Base58 encoding uses a larger character set and avoids ambiguous characters, such as upper case I and lower case l resulting in shorter identifier strings without compromising readability.

Genius. Love it.

Learning to code with and without AI

This paragraph really jumped out at me here.

Additionally, students in the Codex group were more eager and excited to continue learning about programming, and felt much less stressed and discouraged during the training.

There’s a lot to think about in the overall issue of the role of LLMs in education. This factor is easy to miss.

The hardest thing with learning to code is persevering through all the constant getting stuck. If you’re young, childless and have lots of time and computer access, it’s always been easier to overcome.

The equation’s changed I guess.

DB Indexes Do Not Magically Compose

Sometimes you stumble on something that seems to be written to call you out personally somehow. This is one of those things. I have definitely been doing an awful lot of magical thinking when working with database indexes and this post is my intervention.

Old CSS, new CSS

Quite a comprehensive historical perspective. I remember this!

My guess, then, is that the push for CSS 3 really began when Firefox took off and designers discovered -moz-border-radius. Suddenly, built-in rounded corners were available! No more fucking around in Photoshop; you only needed to write a single line! Practically overnight, everything everywhere had its corners filed down.

On Developer Fetishes

We use tmux. Mainly so we can see a big clock. We have a custom prompt. It tells us how many minutes until our JavaScript framework becomes obsolete.

💀💀💀💀💀💀

<css-doodle />

Wish I would do more with this. Bookmarking it in case doing so helps me remember to make some time to do so.

Latest News

Heartbroken about this. Been expecting it for a while, but it makes no difference. Jane's work has had a profound influence on me. The world will be a darker place without her.

The LLMentalist Effect: how chat-based Large Language Models rep…

Very compelling LLM critique based on a comparison with how psychics operate.

Taken together, these flaws make LLMs look less like an information technology and more like a modern mechanisation of the psychic hotline.

Delegating your decision-making, ranking, assessment, strategising, analysis, or any other form of reasoning to a chatbot becomes the functional equivalent to phoning a psychic for advice.

The impact of the technology is undeniable in my opinion but there’s also an alarming golden hammer syndrome associated with it and I think this is a good mental model for that.

Im finding there’s a strong correlation with how prominent the AI contribution to something is and the likelihood of it being crappy. I think it’s at its best when used as a very effective new form of autocomplete, and I personally see a lot of emperor’s new clothes hype about what it achieves when it takes centre stage.

Engineer Showboating

There’s more of me in this post than I’d prefer.

The reason I learned vim wasn't because I felt particularly inhibited by my editing speed in graphical environments, it's because it conferred authority.

There’s a truth to this. I do also definitely think there’s a magic in injecting meaning into the boring mechanical aspects of your work but it’s undeniable that these tool choices are also at least partly social.

Demystifying the Shadow DOM

It’s time I looked into this again. Wonder if they made any progress on the accessibility problems yet.

I am not a supplier

Compelling argument!

There is a small problem here. We are not suppliers. All the people writing and maintaining these projects, we are not suppliers. We do not have a business relationship with all these organisations. We are volunteers, writing code and putting it online under these Licenses. And yes, we put it online for people to use them. But we do not get anything from it.

Fuck trees, use tags | Garrit's Notes

As a certified trees-disliker I loved to stumble on this. I don't even bother with tags though. Chronological order is plenty. My ~/Documents folder is 5GB and contains zero folders. Sort by date. It's plenty.

10 Years of Hacker News "Ask HN: Who is hiring" Trends

Surprised by some of this. The location stuff in particular.

The remote work trends definitely have effected where jobs are located. The term "San Francisco" fell off a cliff in 2020. The term "New York" fell off too, but a little less. It looks like "Europe" and "European" have been steadily increasing over time.

Optimizing SQLite for servers

Will always bookmark a SQLite in production post. Learned something I didn't love in this one!

SQLite doesn't keep statistics about its indexes, unlike PostgreSQL, so COUNT queries are slow, even when using a WHERE clause on an indexed field: SQLite has to scan for all the matching records.

Bloody hell, SQLite.

Planet B

Enjoyed this a lot. Very fun mix of different media.

Moving Abroad (Pt.2)

Nice sentence here that perfectly captures early days immigrant alienation.

My sensation after spending almost eight months here is that everyone is invited to a party that you are not.

Vim: Seven habits of effective text editing

Rest in peace Bram lad. This article stuck with me from early on and had a big impact on my approch to the everyday labour of coding.

There's something magic in injecting meaning into the boring mechanical aspects of your work. Since reading this post I've lost count of how many times I've heard "But the typing isn't the bottleneck" from people who get less than half as much work done as I do.

Fidinpamp

Love a good conspiracy theory. This one feels mundane enough to be credible.

The one about the web developer job market

Very interesting perspective. Some of the pessimism is a little bit undermined by the software quality crisis stuff in my opinion (I simply don't buy that premise at all), but I found this an insightful piece all the same.

This paragraph in particular will stick with me I think.

Historically, whenever management adopts an adversarial attitude towards labour, the only recourse labour has is to unionise. Collective action limits the abuses of management and unionised industries tend to be more stable. This might have been a detriment to the sharply growing tech industry of a decade ago (if you believe anti-union messaging, that is), but today we are facing being outright cut out of the success of the industry. Why should we care if unionising hypothetically dampens the overall growth of the industry? It definitely dampens the downturns and since we are being cut out of the upside anyway, we might as well take measures to increase our job security.

Why We're Dropping Basecamp

Enjoyed reading a critique like this from outside the software industry.

When we enter into business with a company whose boss takes delight in the mass layoffs of tech workers because it disempowers those who might speak out against their company keeping a list of non-Anglophone names that some members of the team find hilarious, we have a decent sense of who we’re dealing with.

Can’t help wondering if their much-publicized “cloud exit” cost-cutting exercise might have been related to lost business like this.

Ask HN: I'm a software engineer going blind, how should I prepare?

Fascinating discussion initiated by an engineer preparing for vision loss resulting from an Usher syndrome diagnosis. This reply has stuck with me:

You'll become the fastest and most proficient proof reader on your team. Typos will be easily spotted as they just won't "sound right". It will be like listening to a familiar song and then hitting an off note in the melody. And this includes code. Also, because code is no longer represented visually as blocks, you'll find you're building an increasingly detailed memory model of your code. Sighted people do this, too, but they tend to visualize in their mind. When you abandon this two dimensional representation, your non-visual mental map suffers no spatial limits. You'll be amazed how good your memory will get without the crutch of sight. Good luck.

WebAIM: History of the browser user-agent string

In the beginning there was NCSA Mosaic, and Mosaic called itself NCSA_Mosaic/2.0 (Windows 3.1), and Mosaic displayed pictures along with text, and there was much rejoicing.

Adore this post.

Picotron by Lexaloffle

Ridiculously excited about this. From a quick glance at the Picotron BBS, the community is already in full flow porting coreutils etc to this.

Text analysis of Trump's tweets confirms he writes only the (angrier) Android half

Absolute classic piece of data journalism.

Words like "join" and "tomorrow", and times like "7pm", also came only from the iPhone. The iPhone is clearly responsible for event announcements like this one ("Join me in Houston, Texas tomorrow night at 7pm!")

A lot of "emotionally charged" words, like "badly", "crazy", "weak", and "dumb", were overwhelmingly more common on Android. This supports the original hypothesis that this is the "angrier" or more hyperbolic account.

timelines:protect_and_survive [alternatehistory.com wiki]

Haunting alternative history fiction about a nuclear war in the 1980s.

The Controller was trying to avoid the Food Officer as much as possible - yes, he was a bit abrasive, but who wasn't after a week in a shoebox? The more pressing reason was the fact that both men had signed the order denying food stocks to Category 2 and 3 survivors (i.e those who can't work). The Controller had almost been able to keep it together after telling the Food Officer, and the rest of the bunker, that 'babies can't work'. The words had echoed in the silence yesterday and they echoed in his head every single second today.

Sensible Firefox Setup

There's a few things in here I'm installing right away and a few I'm bookmarking this so that I can revisit it later to try them out when I'm less busy. Embarassed I didn't already know about the I still don't care about cookies extension.

lua-users wiki: Lua Power Patches

These patches are kind of my fav thing about Lua. Like the fact that this thing exists in this form where it can have these little patches in this way.

LinuxCzar: My Philosophy On Alerting

Fantastic post. Alerting is such a delicate balance. You start to involuntarily develop Opinions about it once you've been paged in the night a few times due to some bullshit like Googlebot indexing the site and tipping CPU usage just above the alerting threshold. Or for downtime on an unimportant page that could realistically have stayed down until morning without consequence.

They're Made out of Meat

I'm always sending people this. Permanently stuck in my head since whenever I first read it.

Churn

A surprising statistic about Hotwire's bundle size, a fun what-if scenario about React, a refreshing sociotechnical perspective on why the frontend JS ecosystem looks the way it does, and some good old fashioned cautious optimism about web components. Lovely post.

The quiet, pervasive devaluation of frontend

Nothing but stone cold facts here.

Design itself is typically conflated with frontend, and design has long been colored as a “feminine” pursuit. The deep technical challenges of frontend functionality are often mistakenly regarded more as a sort of painting with pixels; making things look right, rather than work correctly.

Incidentally, folks involved in UI and design tend to be hit harder in layoffs than their peers, who are perceived as “more technical.” Women, too, are often laid off in greater numbers than men. So it’s hard not to see frontend devaluation and sexism as intertwined. (If they’re even separate things at all, that is.)

Goodbye, Clean Code

I read Clean Code myself sometime in the early 2010s. It kicked off a years-long phase of obsessing over things like DRY and refactoring methods into shorter and shorter pieces.

It took until around 2017 for it to wear off and it harmed my career along the way. I was always very grateful to Dan for writing this post. It explains the problem with Clean Code so clearly, and his reputation gives the words a lot of power.

The phenomemon of Clean Code was a net negative for the software industry and the cleanup work is still ongoing.

I Love Ruby

I love Ruby, and I love this post. Very happy 666a returned this language and its community to my everyday life.

Skit in ger skit ut, också med AI och polariseringen förstärks

Martin's been doing some excellent writing since stepping down as president of Unionen. Lately he's been focusing on AI and it's warmed my heart to see someone with his level of influence digging so deep into this issue. He's correct to describe the discourse around the topic within Sweden as naive and I'm glad someone like him is going deeper than the listicle clickbait angle.

On "owning" software

Thoughtfully written piece by Avdi exploring the trade-offs of various software licensing models.

No, Utility Classes Aren't the Same As Inline Styles

The controversy around Tailwind in the front-end community is a personal fixation of mine. Personally I have a foot in both camps and I'm not realy rooting for either side to win. It's just a super interesting debate to follow.

A One Handed Accessible Keyboard, Inspired by FrogPad

I've often daydreamed about how typing would work for me if I lost mobility in one of my arms. This article is a fun exploration of a variant of that scenario where the author had several months of advance warning and was able to prepare.

You can't parse [X]HTML with regex

The infamous Zalgo answer about parsing HTML with regex on Stack Overflow. I'm decently sure this answer was how I first discovered Zalgo.

WebAIM: Contrast Checker

One of the easiest contrast accessibility checker tools out there. This is a great option if you can't or don't want to install something on your computer. My favourite thing about this one is how pedagogical it is. If you spot a problematic use of colour and then stick the hex values into this thing and take a screenshot of it, that screenshot contains everything you need to make your point to whatever colleagues and stakeholders need convincing.

Abuse as DDoS | Julie Pagano

A post from nearly 10 years ago about abuse and harassment in the tech industry. 2014 was more or less when started learning about things like capitalism and misogyny. This post is a good representative example of the kind of stuff I was reading at the time.

Flexbox Froggy

An old favourite and still a valuable learning resource nearly a decade later. Learned some of my first ever flexbox skills here and still find myself sharing this link frequently today.

Accessibility Support

An accessibility-oriented reimagining of caniuse.com providing information about which browser semantics are supported by which assistive technologies.

Routing: Parallel Routes | Next.js

Came across this Next.js functionality while trying to get something else working. I'd never heard of it before but could immediately think of a bunch of different examples where it would've been useful. Bookmarking so that I remember to come back and try it out.

Enhancing your Rails app with SQLite

The blog post that inspired me and showed me how to use ULIDs with SQLite in a Rails app. I shipped ULID primary keys in 666a because of this post.

Night Work, Tech, And Swedish Labour Law

To agree to be randomly awoken in the night to urgently defend your employer's business is to take a level of responsibility more commonly associated with a parent of a newborn baby. It's fair for workers willing to invest this much of themselves in a business to expect their employer to respect them as an equal counterpart in negotiations about working conditions and the like.

Incident Report

A quick incident write-up about a mistake I made that caused 666a to over-alert for a day or so.

I take operating this service really seriously and wanted to get in touch and explain. I’ve been tweaking the diarium update algorithm this week to try to avoid missing documents if they’re filed late and then backdated to earlier in the week. While doing so I made a small coding mistake that turned on email notifications for all documents.

English translations of Swedish laws

Announcing a linkable web-based version of the unofficial English translations of Swedish laws that the Swedish government sometimes produce.

The data entry work that's gone into creating this resource was gruelling. The reason it was worth the trouble is simple. I saw first-hand during the Spotify campaign how the absence of this kind of resource is a strategic weakness for Sweden's labour movement, with its dreams of organising the country's influential tech immigrant workforce.

Announcing 666a

Launch announcement for my new work environment email alerts service.

The idea for this tool comes from personal experience with union involvement in the workplace. As a union representative at Spotify, a problem I often encountered in my work was the difficulty of keeping up to date with public filings at the Work Environment Authority, which was information that was crucial to our campaign to secure a collective bargaining agreement.

“Spotify is going to find that a union deal is a competitive advantage”

"Fair play to them on this, they stayed out of it. They left it to us, which I think is the right thing to do," Catalini Smith recalls. "They haven't tried to stop us. You hear about in America, these meetings they have, these consultants they bring in. They play these silly games. And it's not really the way things are done in Sweden. They've become a bit of an American company in some ways over the years, but they've held on to some core Swedish values."

Unionen begär förhandling om kollektivavtal på Spotify

Ingen förstår arbetstagarna bättre än vi själva och vi vill ta plats vid bordet där beslut som påverkar vår arbetsvardag fattas. Vi ser en enorm möjlighet både för oss själva och för arbetsgivaren. Facket gör företag bättre, säger Henry Catalini Smith.

Spotify och Klarna vill bana väg för fler klubbar

Det är otroligt skrämmande att få erbjudande om att bli utköpt. Men Sen Kanner, klubbordföranden på Klarna tackade nej till sitt erbjudande och därför gör jag det också. Jag vill inte vara sämre.