Since joining the Recurse Center (RC), I’ve been posting about the process, my projects, and what I’m learning. See all the weekly installments or filter for posts with the Recurse tag.
tldr;
This was a lighter-touch week for me on the social and meeting fronts. I also took a bit more time away to consolidate, touch grass, and sail boats.
The main highlight was the fun hedgehog game I made in the Creative Coding session. You can play it here and check out the code. Let me know if you beat my high score of 46.
Learning Rust like a martial art
I worked through chapters 4–7 of the Rust book. I’m impressed with the language design, but I’m still more impressed with the structure and execution of the book itself.
For example, chapter 4 comes full circle at the end and it becomes clear why string literals are just string slices — references to starting addresses in memory — excepted for locations in the binary at compile time, instead of on the heap at runtime. Beautiful!
After many recommendations, I installed Rustlings and drilled 43 exercises throughout the week. The first 25 or so were very easy, but good reps. Then it started getting a little meatier.
The idea is treat these straightforward exercises like martial artists treat their Katas — honing the “muscle memory” of foundational patterns through practice and repetition. It’s a fun and rewarding supplement to the more abstract theory of the main book and I’m thoroughly enjoying learning a new language this way.
Doing the impossible
The RC faculty host “Impossible Stuff Day” periodically. It’s a whole day to spend on something that is well beyond the edge of your abilities and feels totally impossible.
This one didn’t really work for me. I usually bias towards having overly-ambitious and grandiose project ideas, so doubling down on that just sent me further into the same cognitive spirals as before.
Unlike most others in the batch, I didn’t have something concrete I planned to work on going into the day. I did some additional thinking and braindumping on paper, which was helpful reframing, but delayed me actually trying anything for a few hours.
I spent most of the time going deeper on my ideas about simulating entire cells in silico. I looked into GPU.js, Libsoda, LatticeMicrobes, and read some papers. No meaningful headway.
I see the intuition behind the reframing of “impossible stuff day,” but upscaling ambition doesn’t seem to be the nudge I need lately. On the contrary, the explicitly-limited and borderline-ridiculous format of Creative Coding’s setup has been much more fun and productive for me.
You Too? I can’t live with or without you
Creative Coding. This is one of my highlights each Wednesday and really seems to get me into writing code instead of overthinking.
This week’s prompt was the first few lines from “With or Without You” by U2. As usual, I had great fun ideating with the group and then blasted some U2 bangers while going through various game ideas.
See the stone set in your eyes
See the thorn twist in your side
I'll wait for you
Sleight of hand and twist of fate
On a bed of nails she makes me wait
And I'll wait without you
With or without you
With or without you
Guided by the “thorn” and “bed of nails” references, I finally settled on With or without you, where a hedgehog and a balloon explore their complex push-pull relationship with the help of “sleight of hand” from the player and “twist of fate” from the RNG. I whipped this up in just over an hour with p5.js (using GPT-4-turbo to get quick answers about details buried in the docs).
See if you can beat my high score of 46. The experience is best on mobile. Code is at github.com/gianlucatruda/with-or-without-you-game.
UPDATE: I initially tried embedding the game here, but my iFrame trick doesn’t seem to play nicely with the control inputs and screen resizing, so you’re better off playing the game at with-or-without-you.vercel.app.
Build games people love
(I’m working on an entire standalone post on this)
Several people at RC were still posting highscores and comments about the game multiple days after I shared it. And I received the ultimate endorsement in the world of game dev:
After week two’s 3D swarm simulator and now this reception, I’m updating massively in favour of interactive experiences that afford fun and easy sharing. It’s both a more rewarding feedback loop for me and more engaging output for everyone else.
Algorithms to Live By: Return to Anki
I finally got back into doing Anki again — both my technical cards and my language ones.
It started with some improvements. I enabled the more efficient FSRS algorithm that Oliver recommended to me, updated some parameters, customised the retention rates per deck, and then got seriously stuck in!
What I need next is a better workflow (and discipline) for creating new Anki cards. I’m hoping that I can configure a good pipeline with Obsidian and that learning Rust during RC is the right catalyst for getting around to that.
I’m experimenting with format, content, and style in these weeknotes. If you’ve read this whole thing, I’d love to hear from you, even if it’s just “That was <good | bad | meh>.” Please do reach out.