Weeknotes 2025 W04: Scary, man
Quick bits:
-
What a week. Seeing the richest person in the world make multiple Nazi salutes made me physically ill.
-
I’ve still got a cough. I would love to be rid of it. Ugh.
-
I’ve turned off Apple Intelligence on my Mac. I played around with it for a while, but it is of no use to me, and it even gets in the way. (Also: my one-and-a-half year old iPhone is apparently already too old for Apple Intelligence?!)
-
My Brompton bike has been repaired! It now folds properly again, and after a tune-up it just rides a lot better too.
The damage from multiple bike crashes is repaired now, but I’ve still got that big scar along the length of my left arm. It’s been half a year. The scar is fading, but it might take another year for it to go away entirely.
-
I’m back to using my Brita water jug. I’ve been lazy and I got used to the Berlin tap water. The tap water isn’t bad, but quite calcium-heavy. The coffee and tea I make with the filtered water feel smoother, though it is difficult to tell the difference clearly.
The Brita water filter does filter out calcium quite well, in any case. I even tested it out! I made a puddle of non-filtered water and a puddle of filtered water, and let both of them dry up. Only one puddle left behind a distinct white residue.
Shower thoughts:
-
Many years ago, someone on the Internet shouted “WHITE PEOPLE DON’T WASH THEIR LEGS” and ever since then I have felt self-conscious about it every time I’m in the shower. (I want to make it clear that I do, in fact, wash my legs.)
-
I also feel self-conscious about watering my plants with my Hario V60 pour-over kettle. With cool water, obviously. Hey, it functions great as a watering can — why would I use something else?
DHH, the person whose software — Ruby on Rails — I use on a daily basis and get paid well to work with, now openly supports Trump.1
Trump is a nazi. Supporting a nazi makes you a nazi. Ergo, DHH is a nazi.
It’s not a surprise. DHH has quite the history of tirades against DEI and “woke.” He has been at it for years.
But what does this mean for me using Ruby on Rails? I no longer feel comfortable recommending it, purely based on its fascist connections. (Another major contributor is Shopify, a company with far-right leadership.)
Sometimes when the far-right politics of the world get to me, a thought pops into my head: “at least you’re a cis white male.”
I hate that thought. It abhors me that it brings me some sense of comfort.
I think of myself as diametrically opposed to anything that fascism stands for. And yet, as fascism sows division amongst the people, I find myself thinking: “at least I’m not part of them.”
Again, I cannot stress enough how much I hate that thought. It is fascist ideology worming itself into my brain. I don’t want it to — and yet it happens anyway.
It is fucking scary, man.
And that little bit of comfort isn’t even meaningful. What about my friends? My friends who are gay, female, Black, trans, Jewish? I care about you all. You deserve to survive and thrive. You deserve as much as anyone else. And that applies to everyone — not just friends.
Not only that, but fascism will come for me at some point anyway. I will be part of the “them” before I know it. There is no “them” — it’s just us, as long as we stick together and look out for one another.
I’ve released an update to my Solitaire game. This one fixes an unusual bug that could leave the game in an unfinishable and crash-prone state.
Developing third-party applications on macOS is increasingly painful. After downloading the game and moving it into the Applications folder, you’ll need to open up a terminal window and run the following command:
xattr -d com.apple.quarantine /Applications/Denis’\ Solitaire.app
Without it, you’ll get a warning:
I could enroll into the Apple Developer Program, but that’s €99/year which is far too much for what I would use it for. If that limits the audience of the games I create… so be it. Bleh.
I have been making little progress with DELI, the language I’m designing and implementing for my Writing an Interpreter book. The book itself is on hold for now, at least until DELI is finished.
In DELI, I am now using Pratt parsing rather than using the Shunting Yard algorithm. Pratt parsing is easier and more powerful, and it might be the only approach I use from now on.2
I have also been playing with three different DELI implementations:
-
The Ruby implementation of DELI is by far the most complete. It is the one that I started with, after all.
-
I’ve started work on a DELI implementation of DELI (DELI-in-DELI) which is fun, but tough. This one will be worth it simply to confirm that DELI is a fully functional programming language.
-
I’m toying with the idea of creating a DELI implementation in Go. This would make it easy to provide dependency-free executables for multiple platforms, and a one-command installation through Homebrew on macOS.
I am fully aware that working on three implementations at once is silly. I’d like to drop the Ruby implementation and put my focus on DELI-in-DELI, but that only works if I have a host implementation first. I don’t think Ruby is appropriate for hosting the primary implementation, so that means shifting my focus onto the Go implementation.3
It’s a lot of work: finish the host implementation, finish DELI-in-DELI, and then pick up work on the book again.
But it’ll be worth it.
I hope.
I’ve been toying with a variant of D★Mark that has two specific differences:
- Anonymous blocks
- No indentation
But first, have an example of what that could look like:
Laborum vero godard. Veniam readymade ut five dollar toast. %em{Selfies} yolo aperiam et hella qui. Distillery roof magnam quia. Eum offal quia selvage.
#begin:listing[ruby]
def greet(name)
puts "Uhh, hi #{name} I guess"
roll_eyes
end
#end:listing
Pork belly et tattooed aut corporis quidem intelligentsia. Impedit schlitz gastropub nihil meditation voluptatem ullam viral.
When I say anonymous blocks, I mean that paragraphs are no longer explicitly marked up with #p
or #para
. Because D★Mark is intended for prose, any writing is virtually guaranteed to have paragraphs. So, it makes more sense to not have to incessantly mark up paragraphs explicitly — not dissimilar from TeX or Markdown.
As for no indentation: Replacing indentation-based blocks with #begin:something
and #end:something
syntax makes it simpler to author in environments that don’t have explicit support for D★Mark. Specifically, it makes it realistic to write using D★Mark in Scrivener, my favorite long-form writing tool.4
I haven’t gotten around to implementing this variation yet. There is no urgency for me to get to it, though I’d love to play around with it for my interpreter book, once I get back to it.
I’ll need to find a different name for it. FlatMark? D★MarkLite? TomatenMark?! Something else? What do you think?
I might be yak shaving a little with this whole project. Yak shaving just a tiny bit.
Entertainment:
-
Last week I mentioned how The Witcher 35 still looks great after ten years, but I forgot that the game has gotten a graphical update since then (the “Next-gen update”), so the current version of the game is not quite the same as when it came out.
It was a great game when it came out, and it still is a great game today.
I finished the main quest line, by the way. But there is so much more to do — even stuff that I entirely forgot about, or completely missed in my previous walkthroughs.
One of the things that The Witcher does particularly well is that it introduces characters (antagonists) early on, and revisits them across acts, which increases the sense of mystery and creates character arcs. The Ladies of the Wood are a nice example of that.
Links:
-
Don’t Be A Sucker: This 1947 short film warning about fascism and the tricks it uses to gain power is… remarkably relevant today.
-
Elon Musk is a fascist (Paris Marx)
-
Billionaires Should Not Exist (Rebekka Ayres for Teen Vogue, 2021): An older article but still 100% relevant.
-
Hundreds of Subreddits Are Considering Banning All Links to X: Good!
-
Accountability (Adam Newbold): Especially in today’s political climate, it’s important to be careful about the people we rely on.
-
The Socialist guide to surviving in Capitalism (YUGOPNIK): Old, but still relevant.
-
The Alt-Right Playbook: The South Bank of the Rubicon (Innuendo Studios): What is my Rubicon? I don’t know yet, and that scares me. (This is a Nebula link for now, but will end up on YouTube soon.)
-
In The Minority (Tim Bray)
Links, but less political:
-
Nvestigating Nvidia’s world domination (Good Work)
-
The Most Wonderfully Absurd Coffee Brewer Ever Made (James Hoffman): An older video, but one I hadn’t seen before. Delightful!
-
Sound DRAMATICALLY Helps Plants Grow (and why nobody can prove it) (Benn Jordan): I’m at the point where every single new Benn Jordan video is an instant watch. That is why I’ve now joined his Patreon!
-
Best of Picard Tips (Matthew Shields)
-
Start a Website (BinaryDigit): I might’ve shared this before, but it’s still good advice. Start a web site! Screw big platforms — create your own space!
Entertainment links:
-
Fix Your Heart or Die: The Startling Empathy of David Lynch (Zach Vasquez)
-
Why Does VOODOO RAY Still Sound Fresh Today? (Gyu Beats): Gyu Beats’ track breakdowns are great!
-
Liminal Ambient: Gen Z’s Answer to LoFi (Venus Theory)
-
The Most Mario Colors (Louie Mantia, Jr.)
Tech links:
-
Instrumenting Thread Stalling in Ruby Applications (Jean Boussier)
-
Before you buy a domain name, first check to see if it’s haunted (Bryan Braun)
-
Is “Open Source” ever hyphenated?: Look, the Open Source Initiative (OSI) can absolutely have its opinion, but the compound modifier needs a hyphen for it to be unambiguous. Open-source software is open-source software. (The OSI itself isn’t even consistent about its use of the hyphen!)
-
I am not going to link to the article that DHH wrote, because fuck that. But I’ll quote one line from him: “The current American optimism is infectious!” — what the fuck?! This is not normal. ↩︎
-
I might do a write-up on Pratt parsing, because it’s so simple and elegant. There are tutorials on Pratt parsing out there on the Internet, but they overcomplicate the concept. ↩︎
-
I’ll admit that I was tempted to look into other languages, like Rust or Zig, but I don’t want to distract myself with learning another programming language. But now that I think about it, perhaps Crystal wouldn’t be a bad choice. ↩︎
-
As an added benefit, removing the indentation likely makes it faster to parse, too. And much less complex. ↩︎
-
The Witcher 3: Wild Hunt (CD Projekt Red, 2015), published by CD Projekt. ↩︎