Published: 2025-01-01
I left Stoke Space and rejoined Amazon. Rockets are undeniably cool. Everyone there was awesome. But the golden handcuffs are hard to shed. Plus, the book thrives when I can mine examples from Amazon's complex Java ecosystem.
Favorite Tech
Swift SW350T Compound Microscope
Microscopy is awesome. I originally picked up a cheapo model. I assumed 10x would be enough for my purposes (hobby "research" into tung oil curing), but the world was cleaved open the first time I looked through the optics. Tiny things are fascinating. About a month later I upgraded to the SW350.
I have gigantic gaps in my early education. The fundamentalist Christian nightmare world I attended for "school" didn't deem biology worthy of exploring in detail. It had more of a "just a theory" disposition. "In the beginning" did the heavy lifting.
So, anyways, microscopy revealed this whole new world to me. I picked up a high school level biology book (embarrassing, given my age) and started filling in that gap. It has been an exciting journey learning about what I'm looking at under this microscope.
The magnet I put on my washing machine to hold the door open
I live in a tiny Seattle apartment. It has a stacked washer/dryer. The dryer is on the top. It's door, if not closed, is open at the perfect angle to slam your head into while transferring clothes. I have lived in constant fear of this door. Arms waving frantically to detect its presence. But the door is stealthy and evil. It defies detection. It demands blood.
Then one day I put a magnet behind the door.
In terms of day-to-day quality of life improvements, nothing has come close to this. The door, once opened, stays open.
Some people contribute great things to the world. Cures for diseases. New scientific knowledge. This year, I figured out how to hold a door open so I don't bump my head.
Noise cancelling headphones and earbuds
I had no idea this tech existed until I got a pair through work. I have the Bose QC45s and QC Earbuds II. They're insanely good. It's like entering another world.
Anki (again)
Anki has become one of my most used pieces of software. I don't know if it's age and I'm actually forgetting more things, or if awareness of the forgetting curve just makes me feel more frustrated when I do. Either way, Anki is my main tool for keeping things loaded into my brain. I wish past me would have used it more. I know at one point I knew Linear Algebra fairly well. I wrote a library in Purescript for it. Designed a home theater layout tool with it. Today? Atrophied from lack of use. All that remains are a few vague rules about matrix multiplication. It's frustrating.
So, this year I've been taking my Anki usage more seriously.
Stuff that's working well:
I've found cards that pose concrete challenges way more valuable for technical knowledge than ones that need only simple retrieval. For instance, subnet "math" refused to stick in my head. So, I started sprinkling in cards that would pose it as a problem to solve: "what is the result of subtracting 10.0.0.0/10 from 10.0.0.0/8?". You could memorize the answer, but the usefulness of the card comes from forgetting the answer and being forced to derive it.
Similarly, this is how I've been approaching all math cards in general. If you can work your way to an answer, you've reinforced all the associated pathways on which that answer is predicated. This paper, Increasing Retention without Increasing Study Time, has been a big influence in adopting this card style (as well as when I choose to make cards).
These cards are obnoxious when they pop up because they require more than a quick recall, but they've proven to be super valuable. I wish Anki had better support for this style of card. The problem with these "problem" cards is that they only become valuable once you've forgotten the answer and are forced to derive it. It would be nice to have card variants that appear in the same recall order, but show different problem/answer contents each time you review it.
Stuff I'm still trying to figure out:
I've found no useful way of using Anki for specific programming knowledge. I spent some time with Agda earlier in the year, but then hit the pause button as I devoted more of my free time towards my book. Six months later, when I try to pick it up again, a lot of rust has formed. I've tried putting code snippets into Anki previously. For instance, Decidability and equality proofs in Idris were hard won knowledge for me. It took several weekends to wrap my head around something as simple as proving that 1 = 1
. I didn't want to lose that progress, so I put in a card like this:
Explain how this code proves whether two numbers are equal
congruent : (prf : k = j) -> S k = S j congruent Refl = Refl nocase : (x : (k = j) -> Void) -> (S k = S j) -> Void nocase contra Refl = contra Refl eqNat : (x : Nat) -> (y : Nat) -> Dec (x = y) eqNat Z Z = Yes Refl eqNat Z (S k) = No zeroNotSuc eqNat (S k) Z = No sucNotZero eqNat (S k) (S j) = case (eqNat k j) of Yes prf => Yes (congruent prf) No x => No (nocase x)
But that card is basically gobbledygook to me now. "Problem" cards would probably help (e.g. "Implement an equality proof for natural numbers in Idris"), but their dependence on a programming environment makes them hard to review in practice. (I do most of my reviewing on the couch before bed).
So, this remains an area of tinkering. It'd be nice to figure out how to "hit pause" on anything I'm learning, so that coming back to it later doesn't involve such substantial restart costs.
Favorite Games
- Super Mario RPG - For all my fretting about not remembering things, I remember everything about this game. SMRPG was the game of my childhood. Its secrets, Easter eggs, and timings are burned into my brain. The QoL improvements are very welcome, but I'm glad they kept the rest of it mostly the same. The only thing I didn't like was the new music. Thankfully, they let you set it back to the old bangers, though
- Tunic (Almost) - This game is kind of like Game of Thrones for me. It starts off good. Really good. Fantastic even. But then you get to those final seasons ("Daenerys kind of forgot about the Iron Fleet"), and it's so bad that it sullies everything that came before it. I loved the exploration and discovery. Slowly realizing just how much information is in the booklet pages is delightful. Then the final boss happens. Boo.
Favorite Films
- The Substance - I've never shouted "no! NO!" at the screen so much.
Progress on Plans from 2024
Only the tiniest bit of progress was made on my Agda plans from last year. Turns out writing a book is kind of all consuming. And I'm a pretty mediocre human being, so at some point, my thinking-about-programming tank is exhausted and I have to go do something else.
I did make decent strides in improving my TLA+ skills. It saw some practical use at work in diagnosing a heisenbug that was plaguing the system (one that required running a pool of antagonistic processes for several hours just to reproduce). Distilling the problem space down to something that can be formally modeled is possibly the most powerful aspect of TLA+ for normies like me. It's such a different an demanding way of thinking. To make any progress at all, you have to get down to the core essence of the problem. That alone has been a valuable thing to explore.
Plans for 2025:
- Finish the Data Oriented Programming in Java.
- As time allows: more Agda!