Joe Carstairs

My microlog

How to subscribe to my logs

2026

  • 2026-07-21

    2026-07-21 | joeac's blog

    Nikita Propokov has got me to stop and think about syntax highlighting for the first time. The phrase 'Christmas lights diarrhoea' will stick with me. I'm keen to give his strategy a go!

    => I am sorry, but everyone is getting syntax highlighting wrong

  • 2026-07-06

    2026-07-06 | joeac's blog

    I've been following Ink and Switch's blog for a while. They're working creatively with computers. This is a great discussion about LLMs which covers what they are, how they are being abused to de-humanise the world, and how things could be different, concluding in a call for 'punk computing.' Let's have it!

    => Artificial | Ink and Switch

  • 2026-07-02

    2026-07-02 | joeac's blog

    Writing is hard! I've just spent 2 days fixing 1 paragraph in my dissertation. The problem was to give the reader good reason to think that the fossil fuel industry exerts a strong influence on the majority epistemology. The end result is a single paragraph with four citations. You'd think that would take half a day, not 2 full days.

    I think what made it hard was that I needed to gain understanding. If I just needed a fact or two, it would have been easier: skim a few abstracts, extract a few figures, call it a day. But I didn't know in advance what fossil-think looks like. I couldn't write a paragraph that was almost done but for a few missing statistics. I needed to know the whens, the hows, the whos.

    What I ended up doing was collecting a score of browser tabs with relevant articles and ebooks (which was easy enough), then going through each one and reading it: properly reading it, for understanding, not just skimming abstracts.

    This worked: after about half a dozen articles, I reviewed my notes, realised I had enough to be getting on with, and wrote up my paragraph. Along the way I gained a (very shallow) understanding of how the fossil fuel industry influences public discourse.

    But: it took a heck of a long time for one paragraph.

    I really wish I had an experienced researcher looking over my shoulder, popping by a couple of times a day, to offer advice. Maybe they would tell me: sorry, that's just how it is, you need to gain understanding and that takes time. Or maybe they would say: you should really be cutting the corner here, let me show you how. It's one of the many things you cannot get from a monthly check-in with a supervisor.

  • 2026-06-30

    2026-06-30 | joeac's blog

    So I've now got half a dozen services running on my homelab across two machines. I need to install the services on each machine, keep them running after crashes and reboots, update and restart them when the source code changes, and co-ordinate them with each other (since I can only have one public IP on my home network, but I want to serve stuff over the Internet from both machines).

    I am currently managing this with Podman, some Dockerfiles and Docker-Compose files, Makefiles, and a lot of manual interference. This just about works, and is probably reasonably sensible for the small, low-consequence situation.

    Still, it is a faff. I'm wondering: is this kind of what Kubernetes is for? I've never understood. Looking at the documentation, I find it really hard to understand what Kubernetes is for. Maybe it's for situations kind of like this (only typically much bigger)?

    Answers on a postcard please.

  • 2026-06-25

    2026-06-25 | joeac's blog

    I looked through some concordances while I was bored in the New College Library the other day.

    I really love Robert Young's Analytical Concordance. Young's is a concordance to the Authorised Version, so the entries are the English words used in the AV. But each English-language entry groups together all the words in the Greek New Testament and Hebrew Old Testament which correspond to that English word, and lists all the occurrences of each of those words in their respective source texts. That makes it a perfect tool for understanding the relationships between the biblical source texts. The only disadvantage is that it doesn't seem at all interested in the Septuagint, which is really important for understanding the way New Testament authors use the Old Testament.

    It astonished me that there are concordances available of the NIV and ESV texts. Why would you want that? The texts don't correspond very well to the Greek or Hebrew source texts, and they don't have nearly as much clout as self-standing faith texts as the Authorised Version does. I really don't get it. If I had one, I would probably never open it.

    I couldn't get ahold of a Strong's, but I did happen to drop in Armchair Books on the way back from the library, and they have a beautiful 19th-century Cruden's Concordance. Cruden's was the first English-language concordance when its eponymous author painstakingly constructed it in 1737, and has never been out of print since then. By the looks of it, it remains very relevant for English-speaking readers of the Bible. And going for a bargain as well... if you get there before me, I'll eat your head.

  • 2026-06-02

    2026-06-02 | joeac's blog

    I've just written a new abstract for my upcoming Masters dissertation. Hopefully it shows how my thinking is developing.

    (I'm also just really pleased that I managed to write something today. I've been suffering from blank page syndrome.)

    Since the 1960s, a political movement has emerged in the West, dominated by the middle classes, seeking to defend the non-human world against human abuse: the green movement. Greens have developed a palette of common rhetorical techniques, which we can call ‘green rhetoric’. Since the 1990s, climate change has become the master frame for green issues, and green rhetoric has been dominated by the narrative of an impending climate catastrophe. However, in that time, most of the movement’s most important demands for social-scale change have not happened: green rhetoric is not working. Some scholars, attempting to explain what’s gone wrong, pinpoint how green rhetoric uses apocalyptic language, and implies that green rhetoric would be more effective were it to be less apocalyptic. In this dissertation, I argue against this conclusion, and aim to show that, in order to succeed, green rhetoric must become more apocalyptic, not less.

  • 2026-05-08

    2026-05-08 | joeac's blog

    I've joined a political party. I didn't vote for them. See if you can guess which one.

  • 2026-05-08.1

    2026-05-08.1 | joeac's blog

    I loved ‘Climate Change As Class War’ by Matthew Huber. I realise I'd been hooked into the assumption that the only kinds of green action people outside the corridors of power can take is making green consumption choices, taking up gardening, or going on a protest. This assumption leads to the conclusion that you and I are, ultimately, powerless over the big global problems. I hadn't consider the kind of action Huber considers: industrial action leading to state socialism.

    => ‘Climate Change As Class War’ by Matthew Huber

  • 2026-05-07

    2026-05-07 | joeac's blog

    I've recently found the blog of Dieter Helm, a Professor of Economic Policy at Oxford University. He has revealed a few surprises about energy that have shifted my perspective. Among them:

    • We have never had an energy transition. When we started massively exploiting coal, we also burned more wood. When we started massively exploiting oil and gas, we burned more coal.
    • Nor are we experiencing an energy transition now: although renewables make up an increasing share of global energy consumption, total energy consumption is increasing more than this. Fossil fuel consumption is going up, not down, and shows no sign of slowing.
    • In the 'bad old days' of an electricity system built on fossil fuels, we needed 60GW of capacity to reliably keep the lights on in the UK. In a grid built on renewables, we will need 120GW, because renewables are intermittent. Back-up power will need to come from some combination of fossil fuels, nuclear, and storage. That means power stations spending most of their time idling, and huge new infrastructure to support 120GW of transmission and any storage solutions.
    • These 'system costs' of renewables explain why renewable energy is more expensive than fossil fuels, even though the marginal cost is cheaper, contrary to false promises that renewable energy is now 'ten times cheaper' than fossil fuels.
    • Germany's push for renewables over the last few decades has been a disaster in just about every way, including increasing global CO2 emissions: with higher energy prices, German energy-intensive industries (including solar panel manufacture!) moved to China where energy, mostly fuelled by coal, is much cheaper.
  • 2026-04-28

    2026-04-28 | joeac's blog

    I picked up a random book in the New College Library, and it brought home how much tightly apocalyptic language had been tied to visions of nuclear armageddon, particularly in the 1980s.

    Perhaps this is still shaping, and limiting, how we use apocalyptic language today, even as the subject matter has largely shifted away from nuclear weapons and towards green issues.

  • 2026-04-27

    2026-04-27 | joeac's blog

    Not long ago, I started hosting on Gemini protocol. I'm fascinated by how the wonder that is the Internet seems to have gone so wrong with the rise of the Web, and Gemini protocol had an exciting proposal for what went wrong and how to fix it.

    If you know a little of the technical details about the Web, you'll know that 'the Web' basically refers to five technologies lumped together: the Internet, HTML, TCP/IP, TLS, and DNS.

    Gemini then placed the blame for the failure of the Web on HTML and HTTP. Gemini protocol is far simpler than HTTP and is deliberately non-extensible, and encourages authors to use the gemtext document format (in which I'm writing this post!) which is designed on the same principles. The result is something Web-like, but with plain documents that mostly don't do anything.

    => About the Gemini protocol

    Today, I've just heard about a fairly young network technology called Reticulum.

    => Foundational philosophy of Reticulum
    => What is Reticulum?

    Unlike Gemini, which ditches HTML and HTTP but keeps TCP/IP, TLS, and DNS, Reticulum reforms those latter three technologies. In less geeky speak, Gemini looks at the messages, Reticulum at the medium for transporting the messages.

    Some folk might think this is just for the kind of geek that builds home radios. Maybe it is. But maybe it is also a very piercing analysis of why the Web went wrong and a serious, concrete proposal for what to do about it, in which, in principle, anyone with a bit of time, technical knowledge and some old hardware worth a tenner on eBay can participate.

    Imagine a world where you can connect to the Internet, get all the gob-stopping advantages of an incomprehensibly cheap, fast, and accessible international communications network, without having to tolerate rent-sucking corporations sitting in the way of the information you want to access, without having to throw away your phone every 2-5 years, without having to fight against systems that seem designed to make your life more difficult instead of easier...

    To summarise the headlines:

    • No domain names, only cryptographic hashes
    • You take your identity with you, so there is no concept of 'logging in'
    • There is no trust in the system, in contrast to the Web, which depends on total trust in invisible corporations who hold domain name databases and sign TLS certificates
  • 2026-04-24

    2026-04-24 | joeac's blog

    I wish I had an album or two from Getdown Services. Their recordings are so silly and also sound amazing!

    => Getdown Services on Bandcamp

  • 2026-04-16

    2026-04-16 | joeac's blog

    Today I saw three birds nesting.

    In the morning, I read a book in my shared tenement garden. While I was reading, I caught a blackbird in the corner of my eye. He caught me in the corner of his eye. A worm wriggled in his beak. He froze for a time. Eventually – hop! He watched me suspiciously. Was he really that pea-brained to think I could catch him even if I tried? A long pause. Hop! He was now at the edge of the border, inches away from diving into the bushes. Here, he waited, and seemed ready to wait forever. The worm wriggled in his beak. I realised what was going on. I turned my back to him. When I looked back, he was gone.

    Over lunch, I went for a walk on the Union Canal. Yards past Boroughmuir High School, a huge nest of heavy sticks sat implausibly erected on top of a bank of reeds, like a house on stilts, with a huge swan heaved on top of it. A second swan, presumably its mate, sailed up and down the canal some way further along. But this one was stock still, perhaps sleeping, its whole head nestled in the folds of its own body. Whether it brooded over eggs or chicks, I couldn't tell.

    A little further down, after I passed the second swan, I came to a bridge. When I turned the corner round the abutment of the bridge, I found the towpath strewn with pigeons. As I passed, they whisked up into the iron spars under the bridge. Many of them ended up on a small protruding course along the brickwork on the far side, and I could see why: the iron spars was bristling with anti-bird spikes. Still, more than half the pigeons had seemingly made do with a prickly perch. There must have been at least a dozen nests. They were built of dried plant matter, though I've no idea how they got them to stick together. Spittle? Impressive constructions: large, tall, and deep. I could hear chicks mewling. I watched for a minute. The young ones were pretty much completely obscured in their deep nests. But sure enough, after a couple of minutes, I caught a glimpse of one sticking a head out above the parapet.

  • 2026-04-14

    2026-04-14 | joeac's blog

    Why do I feel like I wrote this? Or like this person stole my opinions somehow?

    => eph – A Book Of Proverbs

  • 2026-04-14.1

    2026-04-14.1 | joeac's blog

    ‘Losing Eden’ by Lucy Jones left me feeling hopeful, inspired. But I can’t imagine what I shall do, and it’s driving me nuts. What I really want is to form a joy brigade at Bruntsfield Evangelical that goes outside regularly, to ‘touch nature from the inside.’ But I tried that before, and no one signed up, and I have no idea how to persuade people to sign up to things, or what sort of thing I could run instead that people would sign up to. And now I feel depressed. I feel I want to do something, and I can do something, but no one will back me up, presumably because there’s something wrong with me.

    That’s how I felt about noon. To burn some energy, I went to walk to the shops and back, and long before I knew what I was doing, I found my toes dangling in the Braid Burn. It was a very particular spot. Last time I came here, I pretty much wrote a sonnet in my head, and came back and wrote it down. Today I did not have many words in my head, but I was astonished at how delicious the light looked through the leaves and the warm bed of wildflowers I couldn’t name.

    When I came back, I was still fizzing with frustrated energy. I didn’t realise hope could be such a terrible emotion. On a whim, I got Edward Thomas off the shelf, and browsed through his poems, including ‘Lob’ and my favourite, ‘Adlestrop.’

    By that point, I’d calmed down enough to get back to my work. I read ‘Wilding’ by Isabella Tree, with illustrations by Angela Harding. It also made me feel hopeful. They have a story about a diamond in the rough, a shining city on a hill in a land still cloaked in darkness, a suggestion that homo sapiens could be a keystone species. I was close to tears three times while reading it.

    After I finished, I went outside in the rain into my tenement’s shared garden. I’ve been there exactly once before: in January last year, when I was viewing the flat. I looked once, and decided it was dark, lifeless and dull: not worth going back to. I was so wrong! I’m plotting to try taking my morning pot of tea in the garden some day when it’s dry. I don’t feel angry any more.

  • 2026-04-13

    2026-04-13 | joeac's blog

    I wish I had a few more fountain pens. Dreadfully useful things.

  • 2026-04-11

    2026-04-11 | joeac's blog

    I should make sure that folk on my Website know how to subscribe to my logs, and how to get to my Gemini capsule. That is, I should write a guide to RSS and a guide to Gemini, and make them accessible from my homepage.

  • 2026-04-11.1

    2026-04-11.1 | joeac's blog

    I went through my work diary from semester 1, and remembered that I came up with a few fun and productive ways of digesting what I'd learned! I wrote a very personal and temporary catechism, summarising important opinions that I had formed, I wrote down a list of quality questions I'd encountered, and I wrote a couple of stories/essays for my longlog. I should totally do all these things again: Semester 2 Edition.

  • 2026-04-09

    2026-04-09 | joeac's blog

    I loved this silly post by ew0k.

    => Married! Was I Scammed?

  • 2026-04-07

    2026-04-07 | joeac's blog

    I should write a post based on my dissertation proposal. Someone else might find my reflections on green apocalypse interesting. And it would be cool for me to look back at the end of the project.

  • 2026-04-06

    2026-04-06 | joeac's blog

    I should get a bunch of my pals together and go poetry busking. If we make any money we can go to the pub afterwards.

  • 2026-04-06.1

    2026-04-06.1 | joeac's blog

    I'd love to get to know more myths and fairy tales. I'd love a good translation of the Odyssey, or a good telling of other Greek myths, or Neil Gaiman's Norse myths, or some sagas, or…

  • 2026-04-05

    2026-04-05 | joeac's blog

    I loved the Easter homily at Sacred Heart of Jesus on Lauriston Street, Edinburgh. I loved it because I couldn't predict where it was going, which meant I had to listen and think. It got me thinking about scapegoating. I agree that there's something a bit morally gross about scapegoating, and I see the connection he made with the theory of penal substitution. I think the priest missed the Lev 16 connection, though, which I think is pretty important.

  • 2026-04-05.1

    2026-04-05.1 | joeac's blog

    I had an unexpected craving to go back to The Elder Scrolls III: Morrowind, a computer game I was obsessed with between the ages of about 16 and 18. I actually got as far as looking at prices for GPUs. I don't currently have a GPU in my computer, since I haven't played computer games for years. Playing Morrowind with enough mods to make it fun would require a GPU of some kind, though I find it really hard to judge what card would be appropriate. In the end, I remembered that I actually quite like not being addicted to computer games, and the sudden craving gradually faded.

  • 2026-04-04

    2026-04-04 | joeac's blog

    I wish I had a copy of Shakespeare's sonnets. I'd love to memorise Sonnet 18.

  • 2026-04-04.1

    2026-04-04.1 | joeac's blog

    I should write a post based on the essay I'm writing for my course, Science and Religion in Literature. I could try to explain to a general audience what's going on in the academic science and religion discourse right now, and my argument as to how Philip Pullman's His Dark Materials trilogy could address this.

  • 2026-04-03

    2026-04-03 | joeac's blog

    I wish I was better at languages.

  • 2026-04-02

    2026-04-02 | joeac's blog

    I wish there was a version of the Bible that was like the Authorised Version but with fewer errors.

  • 2026-04-01

    2026-04-01 | joeac's blog

    I wish I set aside time to read the Bible and read literature and sometimes write sonnets.

  • 2026-04-01.1

    2026-04-01.1 | joeac's blog

    I should write a post about self-hosting a Gemini capsule.

  • 2026-03-30

    2026-03-30 | joeac's blog

    I loved 'Batter my heart' by John Donne. I was surprised that I loved it more than 'Death be not proud' when I bought a collection of his poems today and read through the Divine Meditations. 'Death be not proud' may yet grow on me. I'd love to memorise a few of his Divine Meditations.

  • 2026-03-28

    2026-03-28 | joeac's blog

    I loved the art exhibition today at my church, Bruntsfield Evangelical. I was blown away by the hidden talents in the congregation – sorry for the cliché. I kept coming back to a few works in particular: Brooke's painting of the Samaritan woman at the well, Irena's multi-media interpretation of Ps 139 'you knit me together in my mother's womb,' Sam's prose-poem 'On Words,' and Maggie Shearer's landscapes. And this only scratches the surface. Today ignited my love for this congregation, made me passionately desire to have more art in my life, and inspired me to take up an interest in poetry again.

  • 2026-02-26

    2026-02-26 | joeac's blog

    I loved Brave New World by Aldous Huxley. If you ever intend on doing science, having sex or being human, you should read this book.

  • 2026-02-01

    2026-02-01 | joeac's blog

    My current diary is hand-made using a blank notebook and a bunch of felt-tip pens. It was fun to do, but also really time-consuming, and error-prone. Maybe I could write a script to produce the design in PDF? It'd probably go via HTML just because I know how to do things in HTML.

  • 2026-01-01

    2026-01-01 | joeac's blog

    I should stop listening to radio and recorded music in my house. Music is played by people, not machines. So-called 'recorded music' is fake.

2025

  • 2025-12-10

    2025-12-10 | joeac's blog

    I should write a post about biblical inerrancy.

  • 2025-11-01

    2025-11-01 | joeac's blog

    I should write a post about owning a homelab.

  • 2025-01-28

    2025-01-28 | joeac's blog

    I just donated $40. These guys are promising to do whatever it takes to make sure the AT Protocol is genuinely owned by everyone.

    => Free Our Feeds

  • 2025-01-23

    2025-01-23 | joeac's blog

    There was no long-term price inflation from 1200 (when these data begin) until 1550. WHAT?!

    => s 'Millenium of Macroeconomic Data'

  • 2025-01-01

    2025-01-01 | joeac's blog

    I should write a post about self-hosting a Website.

2024

  • 2024-12-20

    2024-12-20 | joeac's blog

    Handy for the next time you develop a CLI or TUI. Also handy as a user: now I know about readline key bindings, which are everywhere apparently.

    => "Rules" that terminal programs follow
    => Readline key bindings

  • 2024-12-17

    2024-12-17 | joeac's blog

    Alexander Pruss has a bizarre, but at first blush convincing, argument that complementarians about gender don’t have to appeal to morally significant intrinsic differences between men and women.

    => Sexual symmetry and asymmetry

  • 2024-11-11

    2024-11-11 | joeac's blog

    A pretty good case for avoiding the word 'just' in software engineering. I admit I've been guilty, too.

    => just'

  • 2024-10-11

    2024-10-11 | joeac's blog

    In case you'd forgotten: content moderation is still carried out by appalling worker exploitation. This is not news, but nonetheless an excellent and suitably chilling essay on the topic. Be aware that the essay describes some deeply traumatic content.

    => The Human Cost Of Our AI-Driven Future

  • 2024-10-11.1

    2024-10-11.1 | joeac's blog

    I posted on the Scott Logic blog a while ago about how the word 'hallucination' doesn't accurately capture how LLMs work.

    => t 'hallucinate'

  • 2024-07-18

    2024-07-18 | joeac's blog

    Read the interviews. Economists give interesting, and diverse, opinions on the economic potential of LLMs.

    => Goldman Sachs Top of the Mind, Issue 129

  • 2024-07-17

    2024-07-17 | joeac's blog

    Pretty convincing to me. The biggest potential weakness in his argument is his claim that none of the most common reasons why devs disagree on story points exposes anything which ought to be resolved in an estimation meeting. If you can provide other common reasons besides the ones Dave considered, you could rebut his argument. I don't feel experienced enough to judge this myself.

    => Story points are wasting time

  • 2024-07-16

    2024-07-16 | joeac's blog

    Who doesn't like a classic David-and-Goliath hacker story? Also, if you're American, please <a href="https://www.breakupticketmaster.com">break up TicketMaster</a>. If you're in the UK, it's not quite as bad, but <a href="https://assets.publishing.service.gov.uk/media/5519473540f0b61401000087/final_report.pdf">it's still really bad</a>. Use alternatives where you can.

    => s Rotating Barcodes (SafeTix)

  • 2024-07-16.1

    2024-07-16.1 | joeac's blog

    ve got many inter-dependent flags. If you have independent flags, re-writing those as enums will just end up with you re-implementing the boolean type for every parameter, and not getting much profit, I reckon.

    => Don’t use booleans

  • 2024-06-17

    2024-06-17 | joeac's blog

    Did you know that most organisations store less than 100GB, and almost all analytics is run on the last 24h of data? I didn’t. Though take it all with a pinch of salt: the guy’s writing on his company blog which sells traditional data warehouses.

    => Big Data is Dead

  • 2024-06-14

    2024-06-14 | joeac's blog

    Yuck, yuck, yuck. Makes me glad I’m not on Instagram. For people already stuck there, though, this just sucks. Highly recommend either opting out of AI training or quitting Insta, if only to give the twits the middle finger they deserve.

    => Instagram is training AI on your data. It’s nearly impossible to opt out

  • 2024-06-14.1

    2024-06-14.1 | joeac's blog

    Chris Ferdinandi has a hot take here. I would be keen to test this idea out one day: push the limits of how much complex state you can manage within the light DOM.

    => State-based UI is an anti-pattern

  • 2024-06-07

    2024-06-07 | joeac's blog

    A superb tribute to the building and analysis of the failures of the planning system. This was published in my free local newsletter, and is worthy of any broadsheet newspaper.

    => 154 McDonald Road: Gone but not Forgotten

  • 2024-06-07.2

    2024-06-07.2 | joeac's blog

    Cory Doctorow, writing for the Electronic Frontier Foundation, argues that to save news media, we need to dismantle ad-tech monopolies, ban surveillance advertising, open up app stores and have an end-to-end web.

    => Saving the News from Big Tech

  • 2024-06-07.1

    2024-06-07.1 | joeac's blog

    Jay Hoffman spots some striking parallels between the current AI hype and the dot-com bubble.

    => Beware the cloud of hype

  • 2024-06-05

    2024-06-05 | joeac's blog

    Colin McGinn makes the case for primary and secondary moral values, just as there are primary and secondary qualities, apparently thereby managing to assert both moral realism and anti-realism at the same time without contradiction.

    => Primary and Secondary Values

  • 2024-06-05.3

    2024-06-05.3 | joeac's blog

    Catherine Carr did a fantastic job of unveiling how teenage boys are experiencing masculinity in Britain today. Plenty here to surprise, shock and inspire.

    => Boys

  • 2024-06-05.2

    2024-06-05.2 | joeac's blog

    ‘Once you find yourself in the position of being someone’s father you’ll quickly realize that you’re not actually raising anyone here, you just happen to be the veteran in the trenches alongside them, showing them the ropes and hoping they’ll survive and turn out okay.’

    => Parenting

  • 2024-06-05.1

    2024-06-05.1 | joeac's blog

    Cory Doctorow writes incessantly about the harms of monopolised markets. This essay is particularly good, because he collects many of monopolists’ greatest hits from recent years. Do keep reading to the end. It just gets better.

    => Cory Doctorow: autoenshittification

  • 2024-06-04

    2024-06-04 | joeac's blog

    ChatGPT 3.5 gives bad answers half the time, and programmers miss the mistakes almost half the time. Be careful out there, folks.

    => Is Stack Overflow Obsolete? An Empirical Study of the Characteristics of ChatGPT Answers to Stack Overflow Questions