Comfortable Tree Search, Side Quests, High Level ML, RL Test Harness, Localhost, More AI Code Projects Appearing
Week 6, day 2 at Recurse F2’25.
Comfortable Tree Search
I spent time last week really going through DFS order traversals, both recursive and iterative implementations, and confirming BFS is quite plain in comparison (no meaningful order, natural iterative only).
It was validating to have another tree search problem come up today in the daily programming puzzle group,01 and feel immediately comfortable knowing which exact flavors of BFS and/or DFS would work.
It is a good reminder that there’s two separate things to calibrate:
-
do I understand this topic deeply? — I think I’m pretty well calibrated on this. And it’s not binary, but I think I know whether I get something to a sufficient intuitive depth for practical needs.
-
is this topic worth the time to understand deeply right now? — This is my perpetual struggle, especially because I’m always spreading myself a bit broadly.02
Side quests
A new (I think) Recurse feature is “side quests:” randomly assigned weekly tasks, often collaborative, and/or taking advantage of unique equipment at the hub.
I think this is such a delightful idea. It’s just enough of a nudge to get you to try out a few things that you might not otherwise. For me, it also provided a little kick to do things I was planning but procrastinating on.
They’re scoped every 6 weeks (half batch).
Here are the sidequests I did in the first 6 weeks:
-
Office Hours Host: Offer a 1-hour Zoom “ask me anything” slot to others in the cohort on something you’re good at.
- This was painful to imagine (who would want to ask me questions for a whole hour?). But turning it into a bit more of an NLP roundtable, where everyone could share their interests and I could peanut gallery comment, made it fun.
-
Talk Away: Make slides for a non-programming talk (and get a friend to do the same), and then swap them with another Recurser and present them live!
- 4 of us did slide Karaoke, which was delightful and hilarious. The slides I made were How to Be a Coffee Snob, which was great because I have been wanting to rant about that and this let me do it vicariously. I presented on St. Louis, which had a brutal (and in hindsight very entertaining) 3-seconds-per-slide.
-
Server Star: Use the Heap cluster for something, or explore what others have built
- I have long been procrastinating starting a project idea I’ve wanted to pair on: making an RC dashboard! This quest made me actually setup access to the cluster machines, and get a first version of a script running (for the cluster only) that
SSHs into each and grabs core system stats.
- I have long been procrastinating starting a project idea I’ve wanted to pair on: making an RC dashboard! This quest made me actually setup access to the cluster machines, and get a first version of a script running (for the cluster only) that
-
A Safe Haven: Adjust your workspace so it’s more comfortable for you, and share a picture of it on Zulip.
- This inspired me to get a key puller and brush, and finally clean out my home keyboard (a split Kinesis mechanical monstrosity). It was disgusting and extremely satisfying.
-
REMIX: Combine two tools/libraries/etc. into something weird and delightful. Bonus: deploy it and share a link.
- A bit cheeky, but for this I counted rigging up pygame more proper to the RL cart-pole environment (env and loop) so it could be played by hand. I believe we should understand the tasks we ask machines to do. It involved not only reading keyboard inputs and doing more rendering (score and bounds), but also de-constraining the environment to let the pole actually fall all the way to the ground, not just a measly 12°.
-
Public Universal Friend: Write some niceties for your nevergraduating batchmates, and don’t forget to leave one for yourself, too. (You don’t have to write a nicety for everyone.)
- Writing nice stuff is great! Most people nevergraduating right now are from Fall 1, who I don’t know as well, but it was good to do. I look forward to writing a million of them for Fall 2 in December.
-
Passing the Torch: Give me an idea for a future quest, for future adventurers! This is an opportunity for bonus stars, so for every extra idea the questing contingent earns another point towards The Mug.
- I wrote a small quest that’s basically: use the pen plotter! It’s been my favorite thing to play with so far at the hub.
High Level ML
Making an explicit effort to rebalance my ML catchup between two levels:
- low-level (foundational, detail-oriented, deeply-understanding)
- high-level (concept-oriented, big picture, more comprehensive field knowledge)
I default to (1.), so forcing myself to do some of (2.)
This was a good opportunity to try some higher level AI tools.
While getting Claude to both summarize the major research directions in the 2022-2025 period,03 and then actually find all the URLs, then download all the papers (and webpages)—while all that was happening, I said out loud, “holy shit holy shit holy shit.” It was one of those ‘wow’ moments where you’re about to do some very slow high effort grunt work whose detailed outcome you don’t care about that much, but an LLM can just do it. Even better, as a followup, when I had it spawn agents to write NotebookLM prompts from the papers to generate audio summaries from.
It feels a bit like ingesting slop to have the AI pick papers AND create summaries. But I think it’s important to temporarily swallow one’s pride and accept when there’s simply a lot of catching up to do. At the same time, I think it’s healthy to keep in the back of one’s mind: question assumptions and consider alternatives. And before too long, start thinking creatively again about new ideas and directions never before explored. This—truly frontier ideas—is something I wouldn’t (yet) trust LLMs to discuss.
RL Test Harness
Paired to make a small test harness for the CartPole for the tiny agent competition Wednesday: https://github.com/alex-shapiro/cartpolistan
Uses a modified environment:
- agents can balance up to 5000 steps (up from 500)
- the pole can fall all the way down (to 90°, up from 12°)
- live scores rendered in the top left (& some other stuff)
Now, time for the informal user study—will people integrate with it??
Later On
- Prepped my Talk to Me Human talk for tomorrow
- Went to Michael Suguitan’s robots talk at localhost
Final Thought: Seeing More AI Code at Recurse
I’m seeing more projects now where people say, “I/we don’t really know what’s going on, Claude wrote the whole thing.”
I’m also using Claude seriously for the first time, since finally buying Claude Code. For prototyping, and for busywork when I can.
No value judgement, it’s just an interesting change. It makes me start to grapple with what it means to show folks AI-written project in a room of hand-written projects. It’s especially interesting because, before they tell you, you can’t really know, unlike if you were showing AI-generated art in a room of by-hand paintings. Your only clues are that the TUI or GUI looks a little too easily polished. But even the hand-written projects will often have Cursor or Claude up on the side, copy-and-pasting away.
For me, there’s still a clear divide of when I use Claude. For something I just need to get done, it’s great. It really churns out code.04 And for stuff where I want to understand how it works, especially for educational or pleasure programming, I don’t use it to write code at all. Of course, I’ll pop off to the side and ask questions if needed, or seek help learning a new config syntax. But right now, within my coding, it’s all-or-nothing. I still find maddening when the big chunks of text appear in the code editor.
Footnotes
I’m calling our daily 10am meetup to do a leetcode problem “daily programming puzzle group” because it sounds more fun and sophisticated than “leetcode grind” or similar. ↩︎
Though, sometimes things are inevitably broad. E.g., ‘computer science’ and ‘machine learning’ interviews. Many textbooks on each of those! ↩︎
i.e., when I wasn’t actively producing research papers ↩︎
It does make you lazy though. I know there are several instances where I’ll painfully prompt some change several times rather than just fix it myself. ↩︎