Here I am again! I was going to say that month went by quickly, but when I re-read last month's post it seems like ages ago.
We drove the car on a road trip; other than when I drove twice to West Virginia in a Zipcar to get vaccinated this was my only time significantly far from my house in a year, so that was kind of weird, but good. Still trying to stay outdoors or masked if around potentially unvaccinated people. The main event was to go to southern Connecticut to visit my family, since there is a new nephew (1 year old!) since last we met, and the other nieces and nephews have also grown at least a year, which is a lot for kids. They were excited to show me their video games, and I was excited to show them some science stuff (turns out you can get perfectly decent handheld microscopes for less than $20, which were a hit with the kids, at least for a few minutes), and the siblings were excited to drink beer together. We even got some real New Haven pizza, which is the main reason that most people would consider going to Connecticut. Driving straight through takes over eight hours, which is doable but very tedious, and I'm trying to get in a mindset of not hating driving so much (I mean the act of driving; I don't think I'll ever really "like" the idea of driving, especially the obsession with car infrastructure in cities), so we stopped "on the way" in Watkins Glen, which is in the Finger Lakes. I can recommend this place for a day, especially the state park. It's this mile-long gorge that has stone walkways and bridges and caves built into it where you go up the spiral stairs and emerge behind the waterfall that spills into the giant basin, and then you keep going and again there's another better waterfall that you could just slip and fall into, and soon you are just so completely over waterfalls, not like in a bad way, but say where you feel judgey if you see anybody take a photograph, because like, come on, there are SO many waterfalls. Aside from its many wineries and beereries, I discovered that this town has some kind of car racing history, and if you pay them $30 they let you drive around their race track, so I did that also in the spirit of trying to hate driving less. That is definitely more fun than driving on the highway.
Still working on the Pac Tom endgame, which I have done some significant construction on, although I made one discouraging mistake that set me back a bit. The main problem is that to finish the project and the filming, I need a decent weekend (like: not on a road trip, not hosting visitor, not 95°F, not raining) and these have not been forthcoming. I did a redesign of the Buffer Override UI for Destroy FX (mostly because the current one is so dang tiny) but it's not quite ready to share. Part of that was distracting myself by using my newly minted abilities of generating TTFs to make some bitmap fonts for this project, instead of clicking the pixels by hand (??), which I am pretty efficient at, but jeez. I've been using Aseprite as discussed in the previous post, for both the UI work and the fonting. I do like it, although its similarity to Photoshop keys/behavior does put a spotlight on some of the things I expect to be there but aren't (say, holding shift when drawing with the pencil to constrain it to a straight line). It's great to be able to write scripts, though, and have native support for animation!
I finished Project Hail Mary and I think I basically liked it; a few things fell better into place than I was expecting, or at least it didn't fall apart like the (somewhat similar) "Seveneves" did. By the way I always pronounce that Se-VEN-eh-vess. Now I'm reading The Utopia of Rules which isn't what I was expecting but is interesting, and in some Wikipedia rabbit hole (I think it was about cryogenic brain preservation) I was reminded of how much I like Nick Bostrom's brand of bonkers but nonetheless hard-to-refute writing, and so I have been catching up on some of his papers since I last thought about that guy. I did in fact finish the game Caveblazers (it's no Spelunky or Isaac but it was a very solid Roguelike) in time to pick up Nifflas's new Ynglet. I think Nifflas made some of the best indie "Metroidvanias" out there, with the creative movement and clever hidden challenges, and I was sort of expecting this one to be in that vein. It's not, but it was a very good short game anyway, with a really cool presentation style and vibe. Then I finished Slime Rancher too (charming), and now I am on to Outbuddies DX (I expect to finish it, but I think it has too many rough edges to recommend).
Aw jeez, that month went by fast. Partly because the weather has gotten good here, and with the vaccines kicking in we have been doing some stuff again, like some outdoor dining and hikes and hosting some vaccinated visitors. All of that is good, though.
I think I actually want a compiler that uses the type information to do optimizations/transformations (like say variable and property renaming). I think when I write code I'm often thinking about easy transformations that the compiler can do (discarding unused code, for example) and making use of that; without it, I find I need extra discipline to keep myself from optimizing by hand.
The very first thing I wanted to do with it, which was to parameterize some class by some set of types with operations, was quite awkward to do. This seems partly because of the way TypeScript is committed to erasure-based features (see prev), but also more annoying than it would need to be due to several ergonomic omissions (like, why can't I say "type T = F<T1, T2>" inside a generic class?). jcreed did help me figure out a livable approach though.
The type system is not complete (normal) and I kind of knew it was not actually sound either, but I was surprised to immediately find out how unsound it is. For example, consider this trivial program:
let a = ;
if (a.length != 0) throw 'no';
if (a.length != 1) throw 'no';
Kinda makes you want to just make your own language, right? But aside from that, I needed to do some pixel animations, which Photoshop is only minimally suited for. I was proud of myself for buying the well-liked Aseprite sprite editor (still need that tilemap mode though!!) instead of "just writing my own," although it was a somewhat agonizing decision.
I made some progress on my Pac Tom endgame strategy (video, CAD, basement workshop, and software work) and some other miscellaneous hacking, but a relatively project-light month.
I started reading Project Hail Mary (same author as The Martian), which is fun in its way. I really like the setup of "problem-solving sci-fi where the problems and solutions are compelling," although the writing is mostly just tolerable and the disbelief is inherently (to the genre) fragile if you notice something conceptually wrong with the fiction part (like, why not one waking crewmember and two in comas?). I think it's part of what drives me instead to non-fiction problem solving like "Eight Amazing Engineering Stories." Happy to hear recommendations along these lines though. In video games, I finished Blasphemous (decent exploration platformer with stiff combat/movement but excellent atmosphere), Rite (small hard precision platformer with great controls), Willy Jetman (silly exploration platformer that nonetheless had its charms), and Sayonara Wild Hearts (beautifully stylish animation and music with good-enough gameplay; recommended!). Wow, that's actually a lot. I'm letting myself play another roguelike now, Caveblazers. Might be a mistake though. It's quite fun but the difficulty curve on the later levels is starting to worry me.
SIGBOVIK 2021 and other things of April
(30 Apr at 18:25)
Yeah! Several newsy things from April. First up is my SIGBOVIK project, published on the first of the month (that's right, at Tom 7 Radar you can find out about the newest Tom 7 Projects a mere 29 days after they are announced in other venues!). This year's conference was virtual again, although they mercifully allowed for both audio and video in the submissions. From me the main artifacts are the 24 minute video Uppestcase and Lowestcase Letters and the 18-page paper of the same name. The project site also has some additional downloads. I'll let them speak for themselves! For SIGBOVIK, the presentations were limited to 5 minutes, so there's a highly truncated/ruined version of the video (not recommended unless for some weird reason you gotta catch 'em all) and a "double-blind" Q&A afterwards in the SIGBOVIK 2021 recording. There are some other good parts in there from friends and strangers; I especially liked Jim's "Dada" presentation (29m05s mark).
As usual I was feeling fairly sick of the project as I completed it, so it's nice encouragement that upon completion, it seems that others were not yet sick of the project and were willing to spend 24 minutes on it. It's not like the video is a viral hit at 73k views, but it was nice that it found an enthusiastic audience, and I definitely feel like it was successful. I've come to realize that I get a much bigger kick out of a viewership who is smart and "gets" the technical stuff and strange form of humor more than I do from simply making the numbers go up. Hopefully I can keep up the mood/momentum and finish a few more nearly-complete projects soon.
Speaking of momentum, I got my second vaccine shot, again driving to a Rite-Aid in a tiny town in Ohio for it. Possibly inspired by these two driving day trips but probably more a directly a consequence of cabin fever from staying at home for a year, I ended up buying a car! I've owned a car before (for example Van 7 and Van 7 2) but always a crappy car that was nearly dead, like for example before I donated Van 7 2 to NPR it could only be entered or exited through the back sliding door, and when the car was on it would always and forever play the one CD that was stuck in the CD player at slightly-too-loud volume because the CD player's faceplate was malfunctioning, which at least would cover up (for the unwise passengers and driver) the various scraping, shimmying, and structural unsoundness sounds that the van would make whenever it moved. Among other things. This time I got something that I thought would be fun to drive (we will pretty much only use this thing irregularly for trips or for picking up things at the hardware store that are a bit too large to carry home running, but nonetheless not too big to fit in the actually quite tiny back seat/trunk) and got a Mini Cooper convertible that looks like this:
Vanity license plate idea: POOPERS
Actually that lens angle makes it look bigger than it is. It is a tiny, silly car. And it is more fun to drive than the minivan indeed. We'll see whether it ultimately ends up being a foolish idea, but it should at least let us see family and do some safe outdoor activities as we try to mentally survive through the extended coda of the pandemic.
You know what else was annoying? A few weekends ago I tried rebooting the server that hosts various of my websites including this very blog, and it just failed to come back (dashboard just says like "ERROR" with no diagnostics) and none of the standard things gave me any information about what was wrong. Emergency console gives some internal error. Backup images wouldn't load either. I spent an hour+ on the phone with Rackspace support, who finally concluded the server was "just too old" to turn on. I had been upgrading the OS in place for many years, so this was a pretty annoying outcome (like they could have warned me at some point that the container image or whatever was going to fail to come back?). I never particularly liked Rackspace anyway (they bought the hosting company that I had started with), so I used the "opportunity" to switch to DigitalOcean, which is probably faster and a better deal and their website is certainly way better. So, it was a weekend down the drain, but spacebar.org has a new exoskeleton now. I think that I've gotten everything restored, but partly because some people have nicely sent me bug reports (e.g. muddle was behaving as though no boards had any words, because it couldn't find the dictionary file). So if you see anything amiss, please do lemme know.
I also took the "opportunity" of struggling to get my decades of legacy software running on a new system again to rewrite some of the guts of Escape to separate the UI from the server components a bit more. Now there is a subset of the game that can easily be compiled as standalone standard C++ (e.g. for the server-side components) without needing SDL, which is nice. The main thing I need to do with that before doing another release is to make it compile again for Mac OS and for the new ARM chips, which is somewhat daunting, but I left it in a reasonable state for the next time I have such energy, at least.
Current programming project is something between a game and an overly-complicated technology demo; we'll see how it goes!
Helloo! Things are looking up. Last week I was able to drive to Ohio (from Western PA where I live, only a little over an hour, the main difficulty being that I don't have a car) and get vaccinated for sars-cov-2! This was a good blend for me because it's legitimately available for anyone over 40 (no residency requirement) so it didn't require any funny business, but on the other hand I got to express my eagerness to get one by going significantly out of the way. I got the Pfizer version, which along with the Moderna one is just really cool technology and I'm grateful that we live in a time where such things are possible. I was thinking today that it's probably the coolest thing I ever put in my body? It seems like a lot of people around me are finding one way or another to get their shots, which is a good sign!
While I was out there, I had some extra time on the zipcar so I did this run that's been on my bucket list for a while. There's a narrow sliver of West Virginia surprisingly sandwiched between Ohio and Pennsylvania here, so I ran from Ohio through WV to PA and back. (One of my running side projects is to collect border crossings, with a three-way like this being especially good (although not as coveted as a tour around a triple-point such as in post 1158).)
The portion along the river was pretty awful, basically just running in a breakdown lane of a highway, and it seems that WV and OH are having some kind of "Oh yeah, you're building a factory right here to billow smoke across the river to us? Well then we're going to build an even bigger factory where the exhaust is literally on fire!" back-and-forth, but at least I had my mask with me. Otherwise it wasn't a particularly epic run or anything, except that I was cutting it a little close with the Zipcar deadline, so it worse than it normally is when I made a wrong turn on the way back!
After that I spent pretty much an entire long weekend putting together a video for my latest project (actually finished this one) for SIGBOVIK. (It's good that I got a burst of energy because I unwisely started playing shapez.io the week before this deadline, as recommended by jonas on this very blog's comment section, and the game is both good and tended to keep me up way past my bedtime. I think I won it, though!) This project is also nothing epic but it is kind of funny/interesting I hope, and I'm very glad to have actually finished something given the energy challenges that 2020 posed. There's a paper in SIGBOVIK and a 5 minute version during the conference. It's all taking place online this year and there's both audio and video, so I think it will be a good event that anyone can participate in. I'll post the full 24-minute Director's Cut tomorrow after SIGBOVIK, which is project's true Final Form.
IMO Iron City, a crappy local brewery, should have a beer called Fe Brew Ary (feel free to improve this pun in comments)
(28 Feb at 23:23)
Hello! It is February, the shortest month. Nothing interesting is happening, except biding my time until I can get some Norton Antivirus in me and get out into the world again. Probably I should not write these things right before bed on the last night of the month, since I'm generally pretty much out of energy when I do??
I did check several things off my to-do list wrt in-progress projects, especially this newest silly project, which is fully over the top now, but wrapping up. (I've been having that experience where I broke down a large problem into sub-problems, then chipped away at those, and then the experience, which is where I'm like oh... just "return Rec();" and it's done? The moment of completion sneaking up on you is a curious thing I don't encounter much in other kinds of projects, excepting perhaps math.) I plan to do a sigbovik paper and video about that one (I just wish the "results" were a little better, but that's machine learnin' for ya). Even just to cleanse the system, you know? And though the early part of the month was unacceptably cold, the last week has been unseasonably nice, and I've been doing some long adventure runs; also good to cleanse the system.
In V.G. news, I didn't play that much this month, but I did start and finish Ghostrunner. It wasn't quite what I expected (or even was looking for?) but it's a good game. It's kind of like a super-hard version of Mirror's Edge, or perhaps a cross between that and N+, or when you have that one unlucky checkpoint in Call Of Duty where you have 1 HP and six bullets left and you have to keep practicing some route in a mostly-deterministic fire fight to somehow squeak out survival. The maps were good looking and I appreciated how you could just wall-run your way around pretty much anywhere, way off the intended path, and then basically always die because there's nothing over there. No invisible clipping walls to ruin your day, only the abyss. The story is quite silly and all the male voice actors sound like college kids doing a neck-tendon straining audition for the role of Optimus Prime in a live-action Transformers movie. Now it's on to Super Mario 3D World (this one is what I expected and was looking for) and Noita. Noita is a weird one. I've been looking forward to it since seeing a demo/teaser some years (?) ago... it's like a Roguelike built inside one of those "falling sand pixel" automata engines that went around in the early 2000s. The engine is technically very impressive, with these particle systems and rigid body physics inside a huge destructible world. And it does create some cool moments. I'm still trying to figure out whether I really like it, though, as the main route through the game seems pretty slow-paced (aside from the sudden deaths) and not well balanced (there are so many items that seem completely useless, for example). On the other hand, it is very compelling when you deliberately go off the garden path and there seems to be a lot of (extremely difficult) mystery around...? It seems that they are releasing new beta versions every day, so maybe I just need to wait for a bit more iteration.