Weeknotes 2024 W47: Memoized
Quick bits:
-
Every few months, I try out bananas in Berlin. Usually I end up disappointed, because fruit in Berlin is, in general, remarkably bad, and bananas are somehow the worst. But! I had a few bananas earlier this week, and they were… actually good? Am I experiencing Stockholm syndrome for bananas?
-
Dark mode is nice in dark environments. But browsing the web in dark mode is risky: once in a while, you’ll end up on a web site that has no dark mode and is basically pure white. Physically painful.
-
International Men’s Day was on Tuesday. I missed it. You probably missed it too. International Men’s Day is only relevant on International Women’s Day, when all the men ask when International men’s day is. It was on Tuesday and you missed it my dudes.
-
I deleted my Facebook account. There’s no particular reason, except that Meta/Facebook is an icky corporation.1 I already deleted my Instagram account a while back.
-
I released Nanoc 4.13.3, which contains a fix that makes the
:haml
filter work nicely with theRendering
helper. -
I dropped off a bunch of old clothes. They were still in decent condition, but they either don’t fit me properly anymore or don’t match my style. That was multiple kilograms of clothes, and I could quite feel it in my arm after lugging that big bag three blocks down the road to the clothing donation bin.
-
I’ve been playing around with Mochi, a flash card tool with spaced repetition. It’s neat, and — unlike Anki — it has a reasonably modern UI. Mochi is helping me with learning lines.
Shower thoughts:
-
Generative AI? More like degenerative AI, am I right?
-
Imagine that advertising becomes so pervasive that you get woken up at 3 AM by a random ad injected into your sleep. Better renew that Premium Sleep subscription, eh?
At long last, I published The intricacies of implementing memoization in Ruby. This article turned out a bit longer than anticipated (it’s well over 5000 words) but it is packed with good stuff. Give it a read!
Now I can move my focus and continue with my Writing an Interpreter in Ruby book, right?
The memoization article is the biggest piece of writing I’ve created so far, and it would have been much harder without Scrivener.
But the software isn’t perfect. One particular snag I hit in writing this article is that Scrivener’s Markdown dialect differs from the dialect of kramdown, the Markdown library that I use for my web site. I was able to work around the issues, but it is a problem that will pop up again in the future.
Another issue is that Scrivener character styles can’t be nested, and hyperlinks are character styles, so a code
element in the middle of a hyperlink breaks up that link in three immediately adjacent links: 1) a link containing the text before the code
, 2) a link containing the code
element itself, and 3) a link containing the text after the code
. I can work around this limitation by using pure Markdown rather than character styles, but that defeats then the point of styles.
The idea of creating a semantics-first, structured prose document editor is still on my mind. I’m avoiding the work on a prototype for that, because I predict it will be a lot of work for which I have neither the time nor the energy.
I read Juha-Matti Santala’s Search your notes first and realized that I wasn’t quite relying on my notes collection as much as I could. To help me out, I created a new Alfred workflow2 that helps me search through my Bear notes. Behold:3
Until this week, I was not aware of Alfred’s Script Filter Input workflow object. It’s very powerful, and essentially turns Alfred into a search engine. Very useful.
Over the last year or so, I’ve been restructuring my files, mostly following the convention that Johnny Decimal sets forth (though I’m by no means following it religiously). Here are the high-level areas of my life:
- 1: Life (insurances, finances, bills, my web site …)
- 2: Software development
- 3: Technical writing
- 4: Fiction writing
- 5: Acting/drama (classes, newsletters, …)
- 6: Creativity (assets, my own designs, …)
- 7: Fun (music, movies, ebooks, …)
- 8: Work (contracts, tech challenges, …)
- 9: Hoard
I’m using this approach not just for my Documents folder, but also my email organization. It works rather well — judging by the fact that I don’t nearly as often lose documents, and can find the important stuff usually very quickly.4
There is also area 0. This is the “system” or “meta” area and contains information about the structure of the system itself, as well as my inbox.5
Still, the whole system is in flux. It has a few problems:
-
Where do I stick stick literature? This concerns books and articles that I find useful. Currently, some books live in the appropriate area (e.g. books on compiler development live in the “Software development” area), but others reside in “Hoard.”
-
Where do I store general writing resources? The split between fiction writing and technical writing doesn’t quite work so well. Scrivener templates and tools (which I use for both fiction and non-fiction) awkwardly live in the “Fiction writing” area.
There aren’t big problems. I’m evolving the system slowly to fit my needs. Besides, I would like to think I am more organized than 95% of the people out there.
Entertainment:
-
Paris is Burning6 — what a movie. Even though it was recommended to me ages ago, I only got around to watching it recently. It’s eye-opening. (Disheartening to realize that most of the people featured in this film are no longer alive today, even though 1990 wasn’t that long ago.)
-
mid90s7 is a surprisingly good coming-of-age film. It’s not my usual genre, but I enjoyed it nonetheless.
-
Half Life 28 is definitely showing its age. Not a surprise, considering the game is 20 years old. But it nonetheless holds up: I’m had fun replaying it. (Except the vehicle parts, which still give me severe motion sickness problems.) I also finished Episode 1, but I’m in no rush to start Episode 2.
-
Slow progress with We Have Always Lived In the Castle.9 Not sure whether it’s my kind of book… or just a slow burn?
Links:
-
Named Blogs (Jim Nielsen): I feel a sense of envy when I stumble upon a blog with a good name. My site doesn’t have a name — it’s just me.
-
Fedi CW: Useful resource for common content warnings used on the Fediverse.
-
The problem with individuality (Annie Mueller, originally published 2017)
-
New divisibility rule! (30,000 of them) (Matt Parker, Stand-up Maths): MATHS!!!
-
Without a Trace: How to Take Your Phone Off the Grid (The Markup, 2023): A reminder to how traceable we all are.
Politics links:
-
The Really Dark Truth About Bots (Benn Jordan)
-
TikTok Ban (Last Week Tonight with John Oliver)
Tech links:
-
What To Use Instead of PGP (Soatok)
-
TIL: Some surprising code execution sources in bash (William Woodruff): Well, that’s terrifying.
-
Layout Guidelines (Mario Guzman): This goes into the treasure chest for whenever I need it.
-
I picture Meta as Evil Corp — I mean E-Corp — from Mr. Robot. ↩︎
-
I forked my workflow from drgrib/alfred-bear to make it suit my needs a little more. ↩︎
-
Yes, I do title all my as-yet-unnamed weeknotes “XXX.” This placeholder makes it clear that the title is still missing, and makes the unfinished weeknotes entry quick and easy to find. ↩︎
-
I often hear people say “just use search.” Search just isn’t sufficient in my experience. A well-organized archive makes files just so much easier to find. ↩︎
-
The inbox is my escape hatch. It’s, uhh, not the prettiest. Hey, I’m not perfect! ↩︎
-
Paris Is Burning, directed by Jennie Livingston (Art Matters Inc., BBC Television, Edelman Family Fund, 1990). ↩︎
-
Mid90s, written and directed by Jonah Hill (A24, IAC Films, Illegal Civ, 2018). ↩︎
-
Half Life 2 (Valve, 2004), published by Valve. ↩︎
-
Shirley Jackson, We have always lived in the castle (London: Penguin, 2009). ↩︎