Bitcoin Lessons https://www.tbray.org/ongoing/When/202x/2025/01/04/Bitcoin-capitalism
Here we are, it’s 2025 and Bitcoin is surging. Around $100K last time I looked. While its creation spews megatons of carbon into our atmosphere, investors line up to buy it in respectable ETFs, and long-term players like retirement pools and university endowments are looking to get in. Many of us are finding this extremely annoying. But I look at Bitcoin and I think what I’m seeing is Modern Capitalism itself, writ large and in brutally sharp focus
QRS: Dot-matching Redux https://www.tbray.org/ongoing/When/202x/2024/12/29/Matching-Dot-Redux
Recently I posted Matching “.” in UTF-8, in which I claimed that you could match the regular-expression “.” in a UTF-8 stream with either four or five states in a byte-driven finite automaton, depending how you define the problem. That statement was arguably wrong, and you might need three more states, for a total of eight. But you can make a case that really, only four should be needed, and another case calling for quite a few more. Because that phrase “depending how you define the problem” is doing a lot of work
QRS: Matching “.” in UTF-8 https://www.tbray.org/ongoing/When/202x/2024/12/18/Matching-Dot-in-UTF8
Back on December 13th, I posted a challenge on Mastodon: In a simple UTF-8 byte-driven finite automaton, how many states does it take to match the regular-expression construct “.”, i.e. “any character”? Commenter Anthony Williams responded, getting it almost right I think, but I found his description a little hard to understand. In this piece I’m going to dig into what . actually means, and then how many states you need to match it.
[Update: Lots more on this subject and some of the material below is arguably wrong, but just “arguably”; see Dot-matching Redux.]
1994 Hong Kong Adventure https://www.tbray.org/ongoing/When/202x/2024/12/14/Hong-Kong-Ferries-1994
This story is about Hong Kong and mountains and ferries and food and beer. What happened was, there’s a thirty-year-old picture I wanted to share and it brought the story to mind. I was sure I’d written it up but can’t find it here on the blog, hard as I try, so here we go. Happy ending promised!
QRS: Parsing Regexps https://www.tbray.org/ongoing/When/202x/2024/12/12/QRS-Parsing-Regular-Expressions
Parsing regular expression syntax is hard. I’ve written a lot of parsers and,for this one, adopted a couple of new techniques that I haven’t used before. I learned things that might be of general interest
QRS: Quamina Regexp Series https://www.tbray.org/ongoing/When/202x/2024/12/12/Quamina-Regular-Expression-Series
Implementing regular expressions is hard. Hard in interesting ways that make me want to share the lessons. Thus this series, QRS for short
Remembering Bonnie https://www.tbray.org/ongoing/When/202x/2024/12/02/Remembering-Bonnie
The murderer I emailed with is still in prison. And the software that got him pissed off at me still runs, so I ran it. Now here I am to pass on the history and then go all geeky. Here’s the tell: If you don’t know what a “filesystem” is (that’s perfectly OK, few reasonable adults need to) you might want to stay for the murderer story then step off the train
TV In 2024 https://www.tbray.org/ongoing/When/202x/2024/11/11/TV-land
It’s probably part of your life too. What happened was, we moved to a new place and it had a room set up for a huge TV, so I was left with no choice but to get one. Which got me thinking about TV in general and naturally it spilled over here into the blog. There is good and bad news
Why Not Bluesky https://www.tbray.org/ongoing/When/202x/2024/11/15/Not-Bluesky
As a dangerous and evil man drives people away from Xitter, many stories are talking up Bluesky as the destination for the diaspora. This piece explains why I kind of like Bluesky but, for the moment, have no intention of moving my online social life away from the Fediverse
Privacy, Why? https://www.tbray.org/ongoing/When/202x/2024/11/14/Why-Privacy
They’re listening to us too much, and watching too. We’re not happy about it. The feeling is appropriate but we’ve been unclear about why we feel it
C2PA Progress https://www.tbray.org/ongoing/When/202x/2024/10/29/Lane-Provenance
I took a picture looking down a lane at sunset and liked the way it came out, so I prettied it up a bit in Lightroom to post on Mastodon. When I exported the JPG, I was suddenly in the world of C2PA, so here’s a report on progress and problems. This article is a bit on the geeky side but I think the most interesting bits concern policy issues. So if you’re interested in online truth and disinformation you might want to read on
LLMM https://www.tbray.org/ongoing/When/202x/2024/10/28/Peak-Bubble
The ads are everywhere; on bus shelters and in big-money live-sportscasts and Web interstitials. They say Apple’s products are great because Apple Intelligence and Google’s too because Google Gemini. I think what’s going on here is pretty obvious and a little sad. AI and GG are LLMM: Large Language Mobile Marketing!
Cursiveness https://www.tbray.org/ongoing/When/202x/2024/10/18/Penmanship
I’ve found relief from current personal stress in an unexpected place: what my mother calls “penmanship”, i.e. cursive writing that is pleasing to the eye and clearly legible. (Wikipedia’s definition of “penmanship” differs, interestingly. Later.) Herewith notes from the handwriting front
Voting Green October 19th https://www.tbray.org/ongoing/When/202x/2024/10/15/2024-BC-Vote-Green
I’m old enough that I remember voting in the Seventies. I never miss a chance to vote so that’s a lot of elections. In all but one or two my vote has gone to the NDP, Canada’s social democrats. There’s a provincial election Saturday, and I’ll be voting Green, against the current NDP government
Unbackslash https://www.tbray.org/ongoing/When/202x/2024/09/22/Unbackslashing
Old software joke: “After the apocalypse, all that’ll be left will be cockroaches, Keith Richards, and markup characters that have been escaped (or unescaped) one too many (or few) times.” I’m working on a programming problem where escaping is a major pain in the ass, specifically “”. So, for reasons that seem good to me, I want to replace it. What with?
New Amplification https://www.tbray.org/ongoing/When/202x/2024/09/09/Next-Step-Audiophile
The less interesting part of the story is that my big home stereo has new amplification: Tiny Class-D Monoblocks! (Terminology explained below.) More interesting, another audiophile tenet has been holed below the waterline by Moore’s Law. This is a good thing, both for people who just want good sound to be cheaper, and for deranged audiophiles like me
Standing on High Ground https://www.tbray.org/ongoing/When/202x/2024/09/08/Standing-On-High-Ground
That’s the title of a book coming out October 29th that has my name on the cover. The subtitle is “Civil Disobedience on Burnaby Mountain”. It’s an anthology; I’m both an author and co-editor. The other authors are people who, like me, were arrested resisting the awful “TMX” Trans Mountain pipeline project
Long Links https://www.tbray.org/ongoing/When/202x/2024/09/02/Long-Links
It’s been a while. Between 2020 and mid-2023, I wrote pretty regular “Long Links” posts, curating links to long-form pieces that I thought were good and I had time to read all of because, unlike my readers, I was lightly employed. Well, then along came my Uncle Sam gig, then fun Open Source with Topfew and Quamina, then personal turmoil, and I’ve got really a lot of browser tabs that I thought I’d share one day. That day is today
0 dependencies! https://www.tbray.org/ongoing/When/202x/2024/09/04/0dependencies
Here’s a tiny little done-in-a-couple-hours project consisting of a single static Web page and a cute little badge you can slap on your GitHub project
Q Numbers Redux https://www.tbray.org/ongoing/When/202x/2024/08/28/Q-Numbers-2
Back in July I wrote about Q numbers, which make it possible to compare numeric values using a finite automaton. It represented a subset of numbers as 14-hex-digit strings. In a remarkable instance of BDD (Blog-Driven Development, obviously) Arne Hormann and Axel Wagner figured out a way to represent all 64-bit floats in at most ten bytes of UTF-8 and often fewer. This feels nearly miraculous to me; read on for heroic bit-twiddling