View My GitHub Profile

Recurse Center Blagg – Jan 25, Day 16

There was an old Japanese golf video game – I think it must have been one of the Hot Shots or Everybody’s Golf releases because the only alternative is Mario Golf and it doesn’t sound like Mario Golf in my head – that would make a big show out of being halfway through the golf course. A jingle would play and it would say AT THE TURN in big letters on the screen.

Anyway, I’m halfway through my time at Recurse!

It feels like a lot of progress so far, though I think that’s because I’ve been very careful not to commit too far to anything, and I should probably get over that – there’s one extra secret big project I’ve been putting off and putting off in the hopes of being able to go broader, but I might have to finally dust it off next week (especially since the only further alternative I’ve come up with is learning Haskell, which sounds like a gag, though I have always admired pandoc and many of the engineers I know love to talk about functional programming, so I might as well learn what that actually is).

But anyway! I’m getting ahead of myself.

I wound up calling my Pico-8 game finished on Wednesday; after I got the basic controls and the game concept mapped out and working on paper, I realized how tedious it was going to be to implement proper collision detection and physics in Pico-8; I couldn’t see myself learning much more about programming from trying to get the ball bouncing in a way that actually felt playable, so I wound up uploading it to the Pico-8 repository and calling it done. I liked getting to work out the curve manipulation controls and Lua’s version of lookup tables and said as much on the landing page; if anyone else ever wants to work on it on that basis; great!

I unexpectedly paired with two people on Thursday to look over their Python code – I got to help Kelly with an issue around SQLAlchemy namespaces and imports, and I got to look at pdb debugging with Azhad. This was a lot of fun, especially as I haven’t been aggressively seeking out opportunities to pair, and in both cases I got to share some pretty simple and effective Python experience, along with an extra set of eyes; I continue to very successfully avoid complexity 😊

I also spent some time playing with WebGL, since I’ve been touching a lot of web canvas elements in the past month over my various experiments, and I wanted to see what shader programming looked like in this context. GLSL is pretty neat and comprehensible, it turns out; there are a lot of really usable examples of simple vertex+fragment shader transforms (mostly using p5.js, which is a semi-port of Processing) for your webcam out there, e.g. here and here, and that led me to make a hair mandala:

mandala of my hair

And then this, which is about where I stopped.

Finally, on Friday, I gave the ffmpeg talk that I had kicking around my brain for the past few weeks. I really love working with ffmpeg and while it’s arguably a way to avoid programming as much as it is a way to program, it’s so fundamental to a lot of audiovisual pipelines these days that I think it should be in everyone’s toolkit.

I promised to share all the links from that talk here, so here they are!

I also wound up using webssh to display my terminal in the browser for that talk, for anyone curious – I used to have a solution for this, and I wound up having to research a new one on Friday morning to find something totally cross-platform that I was happy with again. It even works on Windows, assuming you’re running an ssh server on your Windows machine that can provide an msys bash shell (which I, and maybe five other people in the world, already was – Bitvise).