(30 Nov 2021 at 22:30)
|Oops! November slipped through my fingers so I actually wrote this on December 1, and backdated it, one of the more egregious misses in my silly life-long pursuit/curse to fill every cell of the calendar at the bottom of radar.spacebar.org. -1,000,000 points!
At the beginning of the month it got cold and my heat immediately failed, as is traditional. It was challenging to get time from any professionals to come out to fix it this time (seems everyone is very busy and short-staffed), and due to multiple previous ceiling waters I am very nervous about my pipes freezing when the temperature drops, so I took matters into my own hands and fixed it myself. Fortunately the problem was basically entirely electrical (where I have some modest understanding): The power-stealing Nest thermostats had finally destroyed the transformer they had been DrACulizing for years, and "all I needed to do" was buy a new zone relay controller and rewire the 12 wires that were going to it, and run new common wires to the Nest thermostats so they could drink normal blood the safe way. Even though I would rather have not spent my own time and stress, it was gratifying to feel like I can do such a repair myself, rather than just slowly freezing to death or whatever normal people do when this happens and they can't find someone to come fix it (?). The other good news is that my homemade distributed temperature and humidity sensor network is getting ever stronger and ever more complicated as a result of increased anxiety here. One downside, though, is that I now realize that if I just redesigned and built my own zone relay controller, I could fix one moderately annoying persistent problem with the heat that was the original reason for the other complicated thing.
Speaking of the thing where I curse myself with my own home-grown technology, I continued hacking on this ML thing that I described in the previous post. The main thing was to work on performance, since otherwise you have to spend a lot of time waiting for it to do its thing while training. I made it several hundred times (!) faster for some smallish toy problems. There were several things I did, but the main thing was to provide OpenCL with more internal parallelism by also parallelizing the kernels over training examples rather than just the e.g. nodes. I had a TODO since the beginning to try this, but it took some delicate rewriting, so I'm not surprised I procrastinated it and glad it paid off. (It can be quite hard to know with GPU workloads. I'm still developing intuitions. Prior to this, the card was still showing "90% utilization"!) I also did a variety of more interesting / fun tricks, even poking at the PTX intermediate code for the first time. Mostly I was working on toy problems, like something that was trying to simultaneously learn a word embedding and use that to predict a missing word, like on this successful example:
✂ clip 'n save
input: [it has been (proposed) that a]
output: [it has been (said) that a]
Here the words "it" "has" "been" "that" "a" are provided as inputs, and must all be encoded with the same function to a 64-place vector. Then those vectors must be used with a simple network to predict the missing word's vector, and then each vector must be decoded the same way to a word. Here it decoded all the given words correctly (not hard, but it has to learn this task simultaneous with the harder one) and it predicts a reasonable guess for the missing word ("said" instead of "proposed"). Others have done much more impressive things with language but this was fun to see happen from scratch. Unfortunately if I let that run for several more days it will all of a sudden start diverging. The time series (of weights, gradient) looks like this, for example
To the left, a sensible distribution of weights with some gentle snowdrifts, then all of a sudden it goes through a series of abrupt regime changes where the error gets super large. I still don't know if this is a bug or I just haven't prayed enough to the dark wizards of hyperparameter tuning, or what. Since I don't even care about the toy problems, I did move on to some of these audio applications I had in mind in the first place (which I do care about), but I'm also experiencing similar problems there. I'm sure I will try to debug once I get some energy back, or else keep rolling the dice until some magic happens.
A quick font sighting. I like this band Snail Mail (especially her album Lush) and took a screenshot of this upcoming concert in Pittsburgh so I guess I could feel bad about not going to it because it still seems a bit too much coronavirus for me. Just now flipping through my phone to look for pictures of my zone relay controller I saw it again, and I'm like yo wait is an ultra rare font sighting?
Snail Mail - Donner
It absolutely is my font Donner, which I made in A.D. 1997, two years before this indie rock prodigy was born! It of course is a terrible-looking font (I wrote, as a Freshman in college, "I would recommend this for headlines only, and it is somewhat difficult to read at small sizes.") although it makes sense for what they were going for here. I think I was thrown off on the first look by the fact that the repeated letters were edited (I appreciate this touch, even if it was intended to obfuscate font copyright!), but I'll also accept the shame for not recognizing one of my children immediately, even if it is one of the worst children. -1,000,000 points!
I finished up Metroid: Dread, which was fun. It has this map system where every pixel of the map remembers whether you've been there, and I can't help myself but catch 'em all. I can confirm that (a) there is no in-game acknowledgement that you are a completely bonkers map completionist and (b) you can't even do it because the escape sequence absolutely does not give you enough time to cover areas that are only accessible during that sequence. Maybe the speedrunning geniuses will figure out some trick. (Actually the speedruns for this game do not disappoint. My favorite trick is "axis skew", where you abuse some animation in order to make Samus face the screen (rather than left or right as would be normal in this "2D" game) so that she has plenty of space to charge up her hyper dash by running in place. See this breakdown for example.) Right now I am working on Garlic which is a precision platformer in the vein of Celeste. Not as magical as that game but it is pretty funny and the challenges are well-designed.
|Also the concert was postponed for almost a year, so maybe I will be able to go!
|Speaking of music, I remember you saying you liked Jay Som a couple years back. Have you tried this collab album she made this year called Doomin' Sun? It's outstanding!
|Don't you get to keep the pixels though if you time out during the escape and retry?
|Fuzzy: Yes, a great album! But thank you for the tip as I always want to know about these things but don't have a systematic way of keeping up :)
jonas: Is that true? Dang... the last boss was kinda hard so I didn't want to fail the escape, since I thought you'd reset to the last save. I screwed up my quest!