Quick bits:
-
It’s back to freezing again in Berlin. These low temperatures are wearing me out. At least there is no ice. Fuck ice, if you know what I mean.
-
I cleaned my grinder. My coffee tastes better now.
-
The fucking northern lights were visible in fucking Berlin by some miracle, and I fucking missed it. This feels like a once-in-a-lifetime event if you don’t live quite far north. Gah!
-
The end of the month is approaching, and that means a camera will be in my budget soon. Soooon.
-
If you look up my name on Google, it says I am a French red wine of the Hervé Varenne Gevrey-Chambertin variety. I know nothing about wine, so I’m hoping this is a sophisticated one. With notes of, uh, I dunno, cork? Would that be good? Again, I know nothing about wine.
-
Mid last year, I got hit by a car, and this week, I got the invoice from my health insurance to pay for the ambulance ride. I find it absurd and deeply unfair that it’s me who has to pay for the ambulance even though I was the victim. It’s only €10, but it’s the principle that bothers me.1
-
macOS file system usage is bizarre at best. I had less than 40 GB free on my 0.5 TB drive and was getting low-space notifications. I couldn’t find what was eating up all that space — DaisyDisk showed me that about 50% was “hidden space” — and after rebooting, running drive first-aid, and clearing some caches,2 I ended up with 450 GB free space. This made zero sense — I have more than 100 GB of apps and documents — but then the available space went down to 250 GB. I, uhh, have no idea what is going on here.
Shower thoughts:
- Wouldn’t so many problems be solved if landlords were required to live in the same building that they’re letting?
There is one specific aspect of my digital filing system that I’ve consistently been unhappy with: tracking the lifecycle stage of my projects. I used to use subdirectories per status, but that meant moving directories around, which was a pain.
Just keeping everything in a single directory is not a great solution. I consistently end up in a giant pile where I can’t distinguish what’s important from what’s not. I lose track of things.
As an experiment, I have started using tags to track the lifecycle of my projects. I’ve got prototyping, active, in maintenance, paused, completed, and abandoned. Here’s what that looks like:

That application you’re seeing is Bloom, by the way — my favorite Finder replacement. It’s a breath of fresh air.
My use of tags here reflects the way I think about tags in general. Tags are primarily useful for transient information which can (is expected to?) change over time. For example, in Bear I use #wip to mark notes that are work in progress, and #public to make a note show up on my web site.
While I’m happy with this approach of using filesystem tags, I have two concerns:
-
I’m a little worried how the tag information is stored out of band. What happens if I transfer tagged files/directories to another system? Like a new laptop, which I will inevitably get at some point. Will the tags be kept, or discarded?
-
Another issue is that tags are not mutually exclusive: a directory can have both “active” and “in maintenance” tags.3 It’s easy enough to avoid that situation, but it means that changing the status is a tedious two-step process.
Time will tell how well this works.
Another aspect of my digital filing system that I’ve changed is giving each project a unique identifier.4 For example, 21.0705 is Nanoc.
This is not an over-engineered solution. It’s simple, and it is the minimum I need to get some helpful structure into things. And helpful it definitely is:
-
Find quickly: I can very quickly find all the documents related to a single project. A global search gets me to the project directory immediately.
-
Find everything: I can find all relevant information across apps — not just the filesystem, but also in Bear, in my Fastmail email labels, and in my Things 3 areas.
-
Store quickly: I have the habit of keeping stuff in my Downloads or inbox folders, and then I end up with duplicates in the wrong places. No more! Because there now is a clear place where files belong, that’s where they go.
-
Rename easily: Because the ID is stable, I can punt on coming up with a “forever name” right at the start of a project, before I even truly understand what the project is about. This makes renaming easy. Naming is hard, and this sidesteps that difficulty.
This system, with its speed, high precision and high recall, gets out of my way. It lets me get stuff done. Navigating my well-organized filesystem is fast and reliable, because hierarchies are resilient.
The scheme that I use for these identifiers — DDIDs — is as follows:
-
21for my software projects - two digits for the year
- two digits for the month
For example, ddenv has the ID 21.2405 — I started it in May 2024.
The exact ID isn’t important, as long as it is unique. If an ID is already taken, I use the next available one. TomatenMark got the ID 21.2506 even though I started it in May 2025; it was the second project I started that month.
One drawback of this approach is that I’ve lost alphabetical sorting by name, but I don’t find that’s too big of a deal.
Overall, I’m happy with this system. Time will tell how it works longer-term.
The Nanoc web site has been getting a bit stale:
-
The design has not changed significantly in the last years. I’ve become a better designer since then. I’m craving a redesign.
-
The site is hosted on Netlify, which is fine, but also complete overkill for a static web site. Deploying through Netlify is so slow, and moving the Nanoc web site to Uberspace (where my personal web site is hosted too) would be great.
-
I’d love to drop Sass and move fully to CSS. Modern CSS is quite capable, and I find that Sass has almost no advantage anymore.
-
I’d love to maintain the Nanoc documentation entirely in Scrivener. It would make me much more likely to keep the documentation up to date, which is something I feel like I’ve been failing at.
-
If I were to move the documentation to Scrivener, I’d most likely migrate from D★Mark to TomatenMark. I designed the latter around Scrivener, after all.
None of these changes are important. The Nanoc web site, as far as I’m concerned, is working just fine. But wouldn’t it be nice if it were more than fine? I’ll have to carve out some time for that, and I’ve got too many things going on already.
In any case, I’ve made some improvements to the Nanoc site already:
-
Up until quite recently, it was using hosted assets for fonts, icons, and scripts. I’ve pulled those in; there are no more external assets.
-
I’ve removed jQuery. The slideshow on the homepage is now plain old JavaScript with CSS transitions. I didn’t need jQuery, and it turns out that was using a version from 2014 that I never remembered to update — oops!5
Perhaps the trick is to make changes in small increments.
To close things off, I’d like to share something I randomly found6 in my corporate shitpost folder:

My current employer does not use Asana. Is that good or bad? I don’t know. But I know dropping that image in a Slack channel just won’t have the same effect. Darn!
Links:
-
Email from Family in Minnesota (Brent Simmons)
-
I find them on the street & shadow. (Ethan Marcotte)
-
I am taking the internet back (CHONGQING cyberPUNK): This taught me the word ”obstreperous.”
-
The Paris Suburban Cable Car Is NOW OPEN (And Predictably, I Love It) (The Tim Traveller)
-
The Liquid Hammer Toy You Can't Buy (Steve Mould): Perfect intro to the video. No notes.
Tech links:
-
Light Mode InFFFFFFlation (Will Richardson): I also find the light mode to be increasingly difficult to look at.
-
kip-dili/kip: A programming language in Turkish where grammatical case and mood are part of the type system: I’ll have to learn Turkish! I’ve been told it’s not too difficult.
-
The Only Two Markup Languages (gingerBill): D★Mark and TomatenMark are part of the TeX family.
-
I Made Zig Compute 33 Million Satellite Positions in 3 Seconds. No GPU Required. (Anthony Templeton): This isn’t really about Zig, but it is a neat introduction to the power of SIMD. I haven’t used SIMD myself yet, though — haven’t found a use case for it.
-
Don't Trip[wire] Yourself: Testing Error Recovery in Zig (Mitchell Hashimoto): Neat!
-
Microsoft Gave FBI BitLocker Encryption Keys, Exposing Privacy Flaw: Wow. This isn’t a “privacy flaw,” but a backdoor by design.
AI links:
-
Majority of CEOs report zero payoff from AI splurge (Dan Robinson for The Register): Ooh, is the collapse starting to happen? How exciting!
-
Microsoft CEO Satya Nadella says AI must prove it’s worth the power (techradar)
-
Giving University Exams in the Age of Chatbots (Ploum / Lionel Dricot)
-
‘NVIDIA Contacted Anna’s Archive to Secure Access to Millions of Pirated Books’ (Ernesto Van der Sar for Torrentfreak): Sigh. Unacceptable, but predictable.
-
Also, it is only €10, why doesn’t the insurance just cover everything? Surely the overhead of charging such a small amount costs more than the €10 itself. What’s the reasoning here? ↩︎
-
And deleting all the node_modules
directories! ↩︎ -
This system is a further evolution of my system that is inspired by Johnny.Decimal. I use four-digit IDs rather than two-digit ones, because I have an embarrassingly large amount of projects. ↩︎
-
The images in the slideshow are also woefully out of date. Not only are the screenshots from many macOS versions ago, but most of the sites have disappeared, or moved away from Nanoc. Maybe the slideshow needs to die; there is no need for me to sell Nanoc. ↩︎
-
How does “randomly found” square with my super-organized file system I described earlier? Ahh, well… I’m only organized when it benefits me. My shitpost folders are a mess, and I like it that way. ↩︎