Slovakia finds Russian backdoor in traffic speed cameras Slovakia's national security service NBU has issued a security alert against the use of NERO R-ONE high-speed traffic cameras. The agency says the cameras contain a backdoor mechanism that grants shell and network access to the devices via an SMS message received from a list of hardcoded Russian phone numbers. https:// risky.biz/risky-bulletin-slova kia-finds-russian-backdoor-in-traffic-speed-cameras/ Another issue with pervasive surveilla…
Feed
All posts
300 recent entries. Last built 27 Aug 2026, 23:00 UTC. RSS
Bookmarks - llm, data, programming, design
These are some things I’ve wandered across on the web this week. 🔖 Do you WANT contributors? An open-source project’s first few artifacts are click-through: license (checkbox), README (template), .gitignore (whatever your framework spits out). Then you hit CONTRIBUTING.md—the first artifact that actually asks you what you want. Sure, there are best practices and helpful guides for you to follow, but it’s where your project starts having opinions instead of defaults. So it’s worth pa…
Organising physical artefacts
I love admiring spaces and thinking about how they work but, when it comes to the physical spaces I use most or every day – my bedroom, my desk, my bookshelves – I haven’t spent as much time thinking about decoration. When an environment functions, I don’t often think about how I can make it beautiful. Indeed, I have never been particularly adept at decorating. This evening I had a discussion about organising mementos from trips: museum maps and guidebooks, and all the other little thing…
Micro language implementation: Calcium
I wrote a tiny language implementation: Calcium . It’s meant as a demonstration of how languages like Python are implemented. It has a tokenizer, a parser, an AST, a compiler, bytecodes, and an execution engine, all in about 300 lines of code. I did it because I often see the question: isn’t Python interpreted? Why do people say it’s compiled? (BTW, I also answered this in an earlier blog post: Is Python interpreted or compiled? Yes. ) It can be hard to explain that your Python program nev…
I'm on Fallthrough: A Modest Proposal Proposal
In this week's Fallthrough podcast episode, I joined Kris Brandow and Matthew Sanabria to talk about a few things, but mainly the new Go proposal proposal . I don't think this was a particularly good appearance from me - I'd been at GopherCon UK the few days before , and was very noticeably flagging 😅 This was very much on me for agreeing to try and squeeze it in, and I think if I'd have had one more sleep, I'd have been a bit more alive. Either way, I hope it's a good episode, and I know Kri…
potential
the potential poetry of the URL: /nature#timeless.
gaze
websites: collaborative poems between reader author -- you can be (are) both. the web makes space. (written as a poem within a poem) My website home page with a poem at the top and a text area between the first and second stanzas in which the poem on this page was written. ALTMy website home page with a poem at the top and a text area between the first and second stanzas in which the poem on this page was written.
seasons
poems embody Nature, of seasons (for)ever- changing; living in time.
Saturday morning
Before I leave this morning, I have to pack some things to read. I picked up a zine and a book on colour and set out to a coffee shop to ease my way into the weekend. I purchased the zine and the book following my reflection on reference works earlier this week, which had me thinking that I wanted to vary the kinds of books on my shelf. This year I haven’t read many fiction books. Most of my reading has been devoted to textbooks and what I read online: blogs and the news and articles and every…
HTML element letter count distribution
How many HTML elements are exactly five letters long? This question came to mind in the context of a discussion I had yesterday about what an indie web version of Wordle would look like. We all started to name elements. table, tbody, input, among others, all have five letters. After the discussion, I wrote a Python script to compute the string lengths of each HTML element. I used the list of HTML elements on the MDN website as my dataset. The MDN list includes some elements (like selectedcontent…
Centralized Logging on OpenBSD with Loki and Grafana
I have 6 OpenBSD machines that I use for self hosting various services: nuc - My main homeserver, hosts general stuff that I use at home. bluebox - My home router, what connects me to the internet. www - A VPS that hosts this website. smtp - A VPS that hosts my mail server. imap - A VPS that serves my mail clients. vpn - A VPS that I use as a VPN exit node when I need to. Right now, if something goes wrong on one of those servers, or if I want to see something in their log files, I need to ssh i…
MOTD for the waifu XMPP bot. `/admin.php?section=motd` pins a notice; waifu pos…
MOTD for the waifu XMPP bot. `/admin.php?section=motd` pins a notice; waifu posts it in `based@conference.sillylaird.ca` on join, on change, and via `!motd`. When `/motd/` changes, waifu posts it to the room. Public copy lives at `/motd/`.
Grobner / Buchberger / Knuth Bendix for Semirings and Seven Trees in One
There is a neat paper https://arxiv.org/abs/math/9405205 Seven Trees in One, where it is shown that there is a nice isomorphism between 7 trees and one tree.
Music; pressure
The sun is shining through the big and small clouds in the sky. The sun shines with such power that the areas that most catch my eye are the periphery of the darkest clouds, illuminated by the yellows of evening. The light coming through the window ebbs between faint and full, casting a shadow of four keys on my typewriter that rests on the coffee table. I looked to the skies after a piano session, one in which I played along to some of my favourite songs to play on piano. These songs in particu…
I've just learned of the death of Richard Heinberg https://www. resilience.org/stories/2026-08 -04/devastating-news-the-loss-of-richard-heinberg/ Followers of the Peak Oil discussion of the mid-aughts through mid-2010s likely came across Heinberg's books on the topic, or the sites Resilience and The Post Carbon Institute with which he was associated. Heinberg died suddenly 19 July 2026 several weeks after a pancreatic cancer diagnosis. There are a number of other rememberances and obituaries onl…
Bookmarked Don't paste the AI. Post details If someone asks you a question, paste your answer — not the chatbot's.
Comment on Using AI to write better code more slowly by Harshil
<!-- wp:paragraph --> <p>Great post! Thanks for sharing this valuable information. Keep up the excellent work.</p> <!-- /wp:paragraph -->
Comment on Using AI to write better code more slowly by Nolan Lawson
In reply to <a href="https://nolanlawson.com/2026/05/25/using-ai-to-write-better-code-more-slowly/#comment-238420">Jordan Taylor</a>. Thank you! What I meant is that if you write a for-loop that uses the wrong less-than, I've found that AI code review will trivially spot this kind of thing. Your note about semantics only applies if what you want is truly ambiguous, which happens for sure, but my experience is that it's usually at a higher level than that. Agents a…
Change; anchors
I look out the window. Every time I look I notice change: the ambering of leaves that are still green in my memory, the movement of clouds as they go from one end of the sky to the other, the movement of leaves as they sway to-and-fro with the light morning breeze; some mornings I see birds in the trees; yesterday I had the pleasure of seeing a small bird take flight, soaring to another tree. I look at the trees outside and see the leaves that have been changing colour for a while, and those in …
Why I wish people a happy day of the week
Zachary and I are trading blog post titles. Zachary has written a blog post in response to the suggested title “What everyone should know about Australia”. I have written my post in response to the title “Why I wish people a happy day of the week”. For the last year or so, whenever I have been on a call with someone, or met up with someone I know, I have often said “Hello, happy [day of week].” On the day I am writing this, for example, I said “happy Thursday!” to people in a gro…
Browser De-Slop
Disable AI slop and bloatware in Chrome and Firefox.
Re: My perfect laptop
The Macbook Air in Carlos‘ response to Michael’s post “My perfect laptop” caught my eye as soon as I saw it. The Macbook (which I will refer to as a “Mac” going forward) in the blog post looks similar to my first Mac. I originally wanted a Mac because I had been following CS193p on YouTube and I wanted to build something along with the course. When I got a Mac I didn’t end up following the course, but my love for programming – specifically for the web – continued to bloom. Here…
Brainstorming site name changes in web readers
Recently, one of the websites I follow (not this one!) changed their name. Artemis, the web reader I maintain, was still using the old name for the feed. This makes sense in the case of Artemis because users can choose their own names for an author; if the author name were synced with what was published in the feed, a user’s preferences would be overwritten. With that said, I think this logic could be extended a bit. I was thinking that Artemis could track the names of a feed every time a feed…
From 18 months to 6: High-velocity database engineering
I recently appeared on the Bug Bash podcast to talk about rqlite, software testing, and the impact of Agentic coding. You check out the audio podcast on Apple Podcasts, and the video on YouTube.
Comment on Using AI to write better code more slowly by Jordan Taylor
In reply to <a href="https://nolanlawson.com/2026/05/25/using-ai-to-write-better-code-more-slowly/#comment-238393">Nolan Lawson</a>. <!-- wp:paragraph --> <p>Really enjoyed your blog and I agree with almost everything! I don’t quite go along with this though: </p> <!-- /wp:paragraph --> <!-- wp:quote --> <blockquote class="wp-block-quote"><!-- wp:paragraph --> <p>“I notice when a developer accidentally uses <c…
The Tower of Babel by Bruegel the Elder
Thomas and I are doing a collaborative writing challenge where we each choose a painting for the other to write about. Thomas chose The Tower of Babel by Pieter Bruegel the Elder for me to write about. You can read about the painting I chose for Thomas, Meindert Hobbema’s Wooden Landscape, on his website. According to Wikipedia, Pieter Bruegel the Elder painted the Tower of Babel three times. Of the three paintings, two remain. For this challenge, I am writing about the painting held in the Ku…
Organising my blog categories
My blog categories page has, until today, been designed with a functional mindset: the purpose of the page was to list all of the categories I use on my website. But, this week, I started thinking about how I could improve the page, to make it more of a hub to explore different parts of my site, and to elevate the different kinds of writing I do most. One of my main design goals was for the page to be organised into groups, each group representing a different topic about which I write. As I star…
Opus 5 doesn't use em-dashes in code comments
I’ve been using Opus 5 as my main coding for the last few days 1, and I noticed something odd: the code comments stopped using em-dashes; everything is double hyphens (--) now. Instead of going off a gut feeling, I decided to actually run some checks. agentsview indexes all my conversations into a SQLite database, so this kind of question is just a query away. Here’s the chart: Seems pretty clear to me! But you might say “maybe it’s not the model, maybe it’s something else”. Well act…
Chafa
After reading What software do you use daily in 2026? on Lobster , I learned about Chafa . Described as: The premier UX of the 21st century just got a little better: With chafa, you can now view very, very reasonable approximations of pictures and animations in the comfort of your favorite terminal emulator. The power of ANSI X3.64 compels you! As a heavy shell user, I decided to install and had a lot of fun opening my images in the terminal :-)
Comment on Adventure game graphics with DALL-E 2 by Kirkified AI
The pixelization workflow you describe—generating at high res and downsampling with adaptive resize—is a clever way to sidestep DALL-E's grid inconsistencies. I've found that tuning the resize percentage to match the final display size helps avoid moiré patterns. Have you experimented with different color palettes after pixelization to push the retro feel further? By the way, for quick style tests, I've used a <a href="https://kirkifiedai.com/" rel="nofollow…
Resisting the flow
Sometimes the bad guys come out on top Sometimes the good guys lose We try not to lose our hearts, not to lose our minds Sometimes the bad days maintain their grip Sometimes the good days fade But the rain today hurts the head to dream But nothing ever stays the same Nothing’s explained The higher we go, the longer we fly ’Cause this is it for all we know So say goodnight to me And lose no more time, no time Resisting the flow. I like how the song transforms into the repeated mantra “Resis…
The Hay Wain by John Constable
V.H. and I are doing a painting exchange challenge where we each choose a painting for the other person to write about. We gave each other three options. From the options given to me, I chose The Hay Wain by John Constable. V.H. wrote about Corot’s “Entrance to the Wood”. Writing about a painting that was voted as one of the “greatest paintings in Britain” feels rather daunting, but that feeling melts away when I look to John Constable’s The Hay Wain and let myself spend a moment in …
The Poet (Le poète) by Picasso
When I was looking for a painting to share with someone to do an art writing exchange – where we each write about a painting we choose for each other – there was one painting that stood out to me that I wanted to analyse: Picasso’s The Poet (Le Poète). The painting, in Cubist style, was cryptic at first but, after reading the description, studying the painting, and talking through the work with a friend (thanks Naty!), I became ever more curious and wanted to write my thoughts. The title …
Movement
When Joe pointed out the movement in Stanley Cursiter’s “Surf” painting, I made a mental note of the word “movement.” I noted in the aforelinked post that Monet, among other Impressionists, such as Berthe Morisot, depicted movement in their works; Monet painted trees blown by wind in his Poplars on the Epte; Morisot created a sense of movement surrounding the two central figures in “Woman and Child in a Garden”. It is fascinating that a painting, an artefact frozen in time, can cre…
Wonders of Web Weaving, Episode 15
The fifteenth episode of Wonders of Web Weaving is out: In Episode 15, I chat with Zoe, the author of zoeloukia.bearblog.dev about, among other things, writing on personal websites, making art from whatever is around, zines, and more. I hope you enjoy the episode! Wonders of Web Weaving also has an RSS feed you can use to follow along from wherever you get your podcasts.
Bookmarked And then the men with guns tell you to do it anyway by Terence Eden Post details In early February 2011 Egypt was in the middle of a political revolution. One morning, everyone's phones suddenly pinged with an alert. The Armed Forces asks Egypt's honest and loyal men to confront the traitors and criminals and protect our people and honour and our precious Egypt. A series of messages arrived all ostensibly from the network provider Vodafone. All pro-regime and all with the…
Announcing some improvements to `renovate-pretty-log-tui`
As I've blogged about before, I've written a tool for improving the experience of working with Renovate's debug logs , providing a more targeted experience for viewing the logs. While there are a few options out there at the moment, including part of our products at Mend, it's also nice having an agnostic tool I can use across different products, or where a customer or a user has provided logs to us. Last week, I finally sat down to listing out some of the key improvements I'd like to have compl…
So Long Relayd, and Thanks for All the Fish
So Long Relayd, and Thanks for All the Fish 2026-08-17 Running relayd alongside httpd on your OpenBSD web servers is no longer necessary for injecting HTTP security headers. Thanks to the incredible work by rsadowski@ we now have the ability to set our security headers directly inside httpd . Pretty awesome, right? Note: I still love relayd and I'm aware that it offers more than simply applying HTTP security headers. If you still prefer using it, that's okay! Please don't yell at me! Requirement…
Why I still hand write my commit messages
For over a decade, I've been a proponent of writing detailed Git commit messages. I find it a valuable use of my time, and continue to double down on it, even in a world where you can get a Large Language Model (LLM) to write it for you. In the past, I've written about at least 89 strong feelings I have about Git commits , so I'm naturally biased to the benefit of commit messages, but why does this still hold in the current age, where a lot of people are delegating that to an AI agent, if at all…
2026W32
Abdominal Fat Predicts Heart Disease Risk Better Than BMI - American College of Cardiology — The number that stuck with me is that people classified as normal weight by BMI still carried 15 to 50% higher risk across most outcomes if their waist-to-hip ratio was high. BMI collapses your whole body into one scalar and throws away where the fat actually sits, and it turns out where it sits is the part that matters. What I keep thinking about is how much medicine leaned on a single cheap number fo…
netwatcher v0.8.0 - the AI bugfix release
My little Rust library netwatcher has a new release and the changelog is unusually long . As you’ve probably already guessed from the title, this is because I took the time to run some LLMs over it looking for bugs and doc inconsistencies. It turns out that even within Rust’s guardrails I wrote plenty of bugs. Who could have seen that coming? This won’t be a surprise to anyone who’s been using LLMs in 2026. There are no special tricks and you don’t have to overthink it [1] . We really …
Archival Poetics Manifesto
Archival Poetics and the War on Memory (Naropa University, 2012) is a panel discussion about the conditions that produce, sustain and delimit archives, and how these processes are intrinsically connected to (or born out of) poetics and creative practice. The panel included a talk from Stacy Szymaszek where she shared her Archival Poetics Manifesto , which I wasn’t able to find on the web. Since it’s 14 years old at this point, I thought I’d make it more searchable with a pointer to the rec…
PyTorch profiles are going to look much better in Perfetto
PyTorch profiles are going to look much better in the next release of Perfetto. Last time, I explained how PyTorch’s profiler emits events that overlap in ways that are technically forbidden by the Chrome JSON Trace Event spec. As a result, Perfetto used to drop these events on the floor. In the last release we stopped doing that, keeping all the events and merging the overlapping ones back together for display. Unfortunately, this fix is more of a workaround: in practice, the trace simply doe…
I’m Old Fashioned by Ben Paterson
Ruben and I are doing a writing challenge where we each gave each other three songs and we picked one to write about. From Ruben’s list, I chose “I’m Old Fashioned” by Ben Paterson. You can read about the song that Ruben chose from my list on his website. The cover of the album on which Ben Paterson’s “I’m Old Fashioned” features, That Old Feeling is what first stood out to me before I started listening to the song. The cover depicts a pianist sitting with their back to the camer…
GitHub Was Never About the Source Code
With GitHub down once again, I decided to write this long-overdue blog post. This was the top comment on Hacker News when I started writing this: For a variety of reasons, we had a centralized place where everyone of a particular set of persuasions could connect, and this had outside benefits for the community as a whole. That place is becoming untenable, and with the loss of goodwill and stability, the community’s started to dissipate. […] But those emergent features like a core community a…
PokéWalker hacking
Complete device takeover by blinking at it!
Plainsong by The Cure
Thamara and I are doing a collaborative writing challenge where we gave each person three songs from which we were to choose one to write about. I chose “Plainsong” by The Cure from Thamara’s list. Thamara chose Gimme Sympathy from my list. You can read Thamara’s post for the challenge on his website. The Cure’s Plainsong starts with an instrumental that is both enchanting and somewhat spooky. In the first twenty seconds or so, wind chimes (according to Wikipedia; I thought the sound w…
Miniatures, reference works, and writing
One of the works at the Stanley Cursiter exhibition I saw at the National Gallery of Scotland this week was a collection of miniatures he had painted. According to the gallery website, Cursiter, who served as keeper, and later director, of the gallery, painted “miniature watercolour copies of 297 paintings in the collection”. The miniatures were a visual aid – a tool, a reference – used for planning displays. When I visited the exhibition, there were two people who were especially fascin…
Week Notes 26#33
The main thing this week has been GopherCon UK - an expensive week, and unfortunately not as good as previous years - but you can see my writeup for more info On Tuesday night when I got in, I went over to Monohon Ramen which was nice Met some nice folks and had some good chats Went up to Smithfields Market to get a view of the eclipse, but as we didn't have glasses, didn't try and actually see it, but had the market obscuring it. Pretty cool experience, but better for folks who could see it saf…
You can just choose how many bugs you want now
There’s a bizarre aspect of AI coding that I’ve been trying to put my finger on, and I think it’s this: you can basically just decide how many bugs you want your software to have now. We discovered this first with security, because of course security bugs are the most non-negotiable ones. But I think […]