Go and watch Steve Mould's video about bouncing balls and trampolines . I'll summarise the bits I care about here, but the video's really good. And I guess the rest of this post contains spoilers for it? Anyway I think that Steve Mould's bouncy balls are a really good metaphor for Agile Software Engineering in large organisations. Bouncy Balls So here's what I took away from that video. It's all…
Introducing The Grumpystack Analogue Public Licence . It's like the creative commons Attribution-Sharealike , but: You are not permitted to process, store, or transmit the licensed material using a digital computer. If you're going to EMF Camp , there'll be a table there where folks can share art under this licence. You're welcome to read it, or to take a copy by hand. But if you snap a pic with…
In the 90s, I was one of quite a few angry linux-evangelizing teenagers who hated Microsoft with the kind of all-consuming passion usually only available to the blissfully young and inexperienced. Microsoft were doing Horrible Things with the power they had as owners of the most widely deployed Operating System on the planet. But it could have been worse. Imagine if Microsoft (and what the hell,…
It's in the name. The Inter Net. An interconnected network of networks. From the very beginning, the Internet was designed to allow as many different kinds of computers as possible to talk to each other. This diversity of experience is built in to all our basic protocols. If you email me, I can read your mail on the most expensive most modern Apple MacBook, or on a cheap IBM-compatible from 20…
I really want to write software that's actually good . Increasingly, I believe the trick to doing this isn't type systems, or programming languages, or formal methods, or agile, or XP, or TDD, or any other fancy technique, process, or technology. It's Care . And the reason most software still sucks 1 ? It's not stupidity, and it's not because everyone else has been duped by the "wrong" development…
If you're both an Emacs user and a Nix user, then you should probably be using direnv with the use flake directive, and the emacs-direnv package 1 for the best possible experience. Sadly I cannot do this, because I am far too grumpy . I am trying to live with minimal dependencies, especially in emacs. That means I refuse to run any emacs-lisp unless: It came included with my OS' vanilla Emacs…
A lot of folks seem to be worried about the future of Firefox these days. 1 So what if you have an enormous collection of Firefox bookmarks built up over the years, and you don't want to lose them if you have to switch browsers for whatever reason? I figure there are two problems we need to solve: Getting a good multi-machine bookmark experience with something less centralised than your web…
TL;DR: Here're a couple of handy functions to quickly try out all the dark-mode / light-mode themes you've already got installed, and pick the one that feels right for now. There are too many choices I know that emacs can be as pretty as I want it to be, but when I run M-x load-theme TAB I just see a big list of more-or-less meaningless names: Type M-RET on a completion to select it. Type M-<down>…
The problem I got an email that was sent from a french email client. When the sender quoted some text, it looked like this: Le jeu. 18 déc. 2025, 15:48, This Person <person@place> a écrit : > The thing they quoted …only what it looked like for me was: Le jeu. 18 d?c. 2025, 15:48, This Person <person@place> a ?crit : > The thing they quoted That sucks. So I fixed it. The tech-stack Getting…
A game for as many players as you like. You will need: A large table An infinite number of Jenga blocks Optionally, for advanced play: A glue gun Some hot glue One or more soldering irons Setup Clear as much space as is practical in the middle of the table. This is the play-area . Keep the Jenga blocks to hand, but not on the table. This is the new-blocks pile . How To Play Take it in turns to…
From Agility to Stability I think we could plot basically all software projects 1 on this graph: On the X axis, I'm measuring uncertainty . For now, think of this as "How uncertain am I that I'm building the right thing?" On the Y axis, I'm measuring cost of experiment . For now: "How much time and money will it cost to get a little more certainty that I'm building the right thing? I also think…
Recently, I heard a common argument about the validity of trans people, and their experiences. Content Notes For any trans folks reading: I am going to entertain some hurtful arguments below. I believe you exist, and have a right to live happily. I'm going to do my best to refute the stuff I think is hurtful, but I'm also going to try to empathise with people who might be attacking your right to…
Why don't we inline our tests with our code? One of my favourite things about TDD is that our tests act as documentation for our code. If I'm reading an unfamiliar codebase, and I know that it was properly TDDed, the first place I look is the tests. Well written tests tell me what the intent of some code is. Then if I'm interested in getting into the weeds of how it works, I can always read the…
It is common knowledge that social media "algorithms" (or perhaps "heuristics" if you prefer) in 2022 seem to amplify rage. We, the users of these platforms, are not the customers of the companies that provide them. Instead, our attention is the product that social media companies sell to advertisers. To maximise the amount of attention we pay to the platform, the platforms are optimised for…
In this reddit post , u/awannaphasch2016 asks what tasks cause folks to leave emacs. For OP a love of the command-line is one good reason. Of course the command line is a wonderful place, and lots of emacsers replied with ways to integrate the command line with their emacs – often things like vterm and so on. I was surprised to find that no-one talked about using emacs itself instead of a…
Some cool things I ran across recently: Edbrowse Htmlq Gron Edbrowse You may know of ed (the POSIX standard text editor). If not, open info ed in one terminal and ed ~/myfile.txt in another and have a bit of a play. You can use the q command twice in a row to exit without saving changes. Or once if you've already saved with w . Anyway, as you just discovered, ed has a uniquely uncluttered…
Vi vs Vim vs Emacs There was some chatter at work recently about vim vs emacs. Here are some of my thoughts about which editor I prefer when, and why. If I find myself on an unfamiliar machine , I tend to reach for vi (or vim if available). Pretty much every non-windows machine has vi . If I'm remote pairing with someone who's familiar with the tools, I love the vim / tmux combo. I've found no…
Exploring Bash Process Substitution Recently, while debugging some old bash scripts, my pair and I came across a command that looked like yq eval "$KEY = \"$VAL\"" -- <(echo "$CURRENT_NOTES") My pair hadn't previously had the chance to fully grok the <( things ) construct, so I attempted to explain. This post is a more considered version of the conversation that followed. If you run a command that…
Some things I read about recently… Not being an attrition statistic I really enjoyed reading Julie Pagano's 2016 guide to not being an attrition statistic if you're in a marginalised or under-represented group . Lots of great harm-reduction stuff in here. Well worth a read if you're in a marginalised or under-represented group, since it might help. Definitely worth a read if you're in the…
Hello World As is surely traditional, the first post on this blog is both: A test that the blogging software works. A description of that blogging software. This blog is written using org-static-blog , and should have an automatically generated RSS feed. The link to that feed is in the header, so the appropriate icon ought to appear in your address bar. See below for more on this. I'm writing in…