Entries from May 2024
|
|
p e r s o n a l |
Green scream
(31 May at 22:58) |
In a fashion that's thematically appropriate for the project, I'm "taking my time" with this video (e.g. I am still writing new code for it today??). It mostly means that I feel behind a lot. But I think I am truly close now to being done. I got all my new gear working together, 3D-printing rig pieces and so on. This has been generally fun. I'm also enjoying the occasion to experiment with new approaches and video editing techniques. I even cleaned out a significant section of my basement for a temporary studio:
Green scream
I think I have about 120 seconds of finished video here, which is far worse than my usual bad pace of about an hour a minute. Fortunately the rest should be much more straightforward, and I hope to just record the audio and be done with it this weekend. Pro tip, though: Don't install the new version of Adobe Premiere Pro while you're knee-deep in a complicated edit. Why would you press that button?
My procrastination: I fully beat Teardown and all the stakes in Balatro (but I may try to finish the last few challenges). Both good games, recommended. For light procrastination I have been playing Grapple Dog which has cute graphics and writing and is getting better as the levels get more challenging, but I probably wouldn't fully recommend. It's a stage-by-stage linear platformer with three irritations: The controls are a little too "snap-to-nearest" (like you will often initiate an unwelcome wall jump just because you jump near a wall) for me, the music is annoying, and I really want to get all the purple gems, but I can never tell whether I'm going the "right" way or the "wrong" way, and so I will often miss them just because of that. But I do basically like the game. I also started, for procrastination purposes, Humanity, which was recommended to me a while ago. It is good. The Steam videos do not do justice to how slick the game's graphics are (especially the UI has all these fluid little touches and impressive continuity as you transition between levels); I think it needs to run on a big monitor with a high frame rate. At its core it's mostly a puzzle game, with many things you have seen before, but also some new clever stuff (and I am only on the 2nd world, so I presume they have more surprises in store for me).
I believe this is all. |
|
Entries from April 2024
|
|
p e r s o n a l |
"April" 2024
(30 Apr at 23:59) |
Oops! Usually when I fail to post on time and then illegally backdate the post, yielding a penalty of -1,000 points, it's shortly after midnight. Like, as I'm trying to fall asleep (which of course involves and involuntary inventory of everything I may have failed to do), I'm struck with a panic and then get back out of bed to write some dumb pro-forma apology post. This time I just went to bed and actually fell asleep and now here I am noticing that it is May 1. Still, the whole point of doing this every month is to make the grid of months line up nicely, so the post is backdated by 9 hours and nets -1,000 points.
Speaking of lining up nicely: I did get my SIGBOVIK papers in on time and gave a lightning talk at the conference. SIGBOVIK was very popular this year, with our longest-ever proceedings (see SIGBOVIK 2024 PDF or bound volume). This year my project is a paper about a new typesetting system that I wrote to produce the paper (and the talk's slides). That system is called BoVeX and the paper is called Badness 0, which you can read as Badness 0 (Knuth's version) and/or Badness 0 (Epsom's version). You can also maybe find a recorded livestream of the breakneck 5 min presentation, but I would wait for the proper video (in progress now!), which is the same content with much better pacing and details.
Speaking of details: I also presented at An Evening of Unnecessary Detail, which is one of Matt Parker ("Standup Maths")'s live shows. Other than the part where I tried to pack a dense months-long technical project about details into 12 minutes, this was a blast! Lots of cool, interesting people. This took place in a proper comedy club in Brooklyn, like with posters of people that I watch on TV (e.g. Taskmaster legend Fern Brady is performing there in a few weeks, so it seems I'm a mere 5 or 6 steps away from my dream of being a contestant on Taskmaster now), and was sold out (due exclusively to the eminence of others, since it was sold out before I even joined the bill). I finally hung out with Grant Sanderson ("3blue1brown") and told him about math. The audience was amazingly attentive and wholesome, and quite a few of them recognized me and wanted to talk after the show, which is fun. (I do not envy the queue that Matt and Grant endured, though!) Enjoy my technically deficient vacation photography:
I'm photobombing, but Matt is so used to this act that he is reflexively crouching down so as not to appear twice my height
Speaking of technically deficient photography: An additional reason why my video is not done yet (or indeed, why it currently has status Filming 0) is that I finally pulled the shutter release on a new video camera. After much deliberation (and visiting the B&H showroom while in NY, etc.), including on far more ridiculous options, I settled on the Canon R5C. After a complex week-long courtship ritual with the FedEx guy, that finally arrived last night, at which point I immediately realized that I need further accessories. But I'm excited to shoot on this thing and to make my computer suffer with 8k video. It seems to have gotten too complacent with "Full HD."
Finally, I think the main reason I failed to post on time last night was that I was up late playing Balatro. This game is all over the place so you probably don't need me to tell you about it, but it is indeed a good (and addictive) deck-building game that I am enjoying instead of sleep. I am not interested in 100%ing this one, but there are still lots of appealing challenges left for me to do. I'd recommend it if you have the self control to avoid firing it up "for a quick game" when you should be working on your projects or sleeping. |
|
Entries from March 2024
|
|
p e r s o n a l |
THPS Rules!
(30 Mar at 18:05) |
Oof, so busy! I finished up my paper(s) for SIGBOVIK and submitted them. Phew. I'll post 'em here after the embargo ends. I think the papers may be the canonical form of this particular project, but I'm starting on a visual version, which will probably become a video some time this month. (First up: I need to prep a live version for Unnecessary Detail, as mentioned in the previous post.) But right now I'm also on the West coast (in a car traveling from Los Angeles to San Diego) for a short family trip which was cut even shorter by the Spirit of Bad Aircraft Management of Spirit Airlines. Immediately upon arriving at the hotel I looked out our window and saw a little park and thought, "it would be fun to skateboard in that park," (I am not a skateboarder) and then, "did I already skateboard in that park 20 years ago in Tony Hawk's Pro Skater?" and I looked it up and yes, the Los Angeles level in THPS3 is based on that very park.
I thought I wasn't going to be able to make the SIGBOVIK live event at all because of this trip, but it looks like I will be back and might try to make it, depending partly on whether I can get any material together for a talk in time.
I spent most of my free time in March on hacking and writing for this silly paper, but sometimes the brain needs a break, and I continued with Teardown. I think this game is great. It is impressive technically and graphically. The sandbox is fun; I had a great time painstakingly disassembling an enormous blast furnace until the framerate became intolerable. (The way the physics works, the entire blast furnace can be held up by the connection of a single voxel. This is obviously totally unrealistic but it is pretty fun to try to blowtorch around an entire building and then try to hunt down why it is still standing.) But I was also impressed with how they managed to make the missions compelling too. There are a couple of ergonomic annoyances (like: There are limitations on what keys can be rebound to what, so I had to play with a controller. And the quick-save is great, but given that you might spend an hour setting up a heist in a level, it would be nice if you could make an in-level save that was a little less quick, just in case you accidentally stayed up to 2am). Getting close to the end of that one. I also played through Gunlocked, which was a good small Roguelike shoot-em-up. The powerups were really well done; it just could've used a bit more variety in the bad guys.
OK, getting a bit carsick here so I'm going to put the laptop away. See you soon. |
|
Entries from February 2024
|
|
p e r s o n a l |
Leap day!
(29 Feb at 23:08) |
So what? We went to Mexico for vacation, visiting the island of Cozumel and some nameless resort area between Cancún and Playa del Carmen. This was just a vacation, for relaxing, so I spent most of the time programming for fun or writing my SIGBOVIK paper, but with a nice view of the ocean and a little bit of sand in my keyboard, and a little bit of mediocre Mexican beer. Cozumel was a pretty neat place: We happened to be there for the 150th year of their Carnival, which was happening concurrently with the Super Bowl, so there was a wild collision of tourist "culture" and local culture one evening. I added a picture to the Wikipedia article. It's a sparsely populated island, small enough to bike pretty much the whole way around, although as the bike rental guy informed us, "most people leave in the morning." We did some caving and won some bingo games and did some moderate to severe food poisoning, and now I'm back!
So what else? I'm deep into my project now and the end is (sort of?) in sight, but time is running short and I keep adding unnecessary aspects to it. It's fine. Even though I feel some pressure to keep making these elaborate projects, for deadlines, the real point of my hobby is for me to enjoy the spirit of the hack, which sometimes just means reimplementing typed closure conversion for the nth time.
Oh! I will be presenting at An Evening of Unnecessary Detail in Brooklyn on April 14. I have a silly style of beard again so that you can tell me apart from Matt Parker (aside from his very different accent and he's much taller than me and says it as "maths" and actually doesn't even really look like me now that I'm looking at a picture again). I think this will be quite fun.
I've been playing trough Super Monkey Ball Banana Mania, which like Katamari Damacy I had played some of ~20 years ago and had always wanted to finish. I do love struggling with a precision platformer, though as usual with 3D ones the analogueness and camera trouble can be a bit of a drag. It's a good game with a good flow, though, and I'm like 80% of the way through it at this point. And speaking of 3D precision platformers, Celeste 64 is a cute 3Dification of Celeste (which remains one of my all-time favorites in the precision platformer genre) that they released for free recently. Initially I found this game really frustrating; it doesn't have nearly the same attention to detail in the controls that the 2D game does. But by the time I finished it, the controls and camera no longer seemed disastrous to me, and I pretty much liked it. On the other end of the spectrum, I for some reason bought "Yeah! You Want "Those Games," Right? So Here You Go! Now, Let's See You Clear Them!" and then for some reason beat every level of it. This game is an in-depth implementation of some notorious "games" featured in Mobile Game Hell-type advertisements. (If you're not aware of this phenomenon, it's common for the advertisement to depict some kind of casual gameplay that looks kinda fun, but that if you download the app it's linked to, it's like some totally different game like Clash Of Clans or something like that. So there are all these fairly recognizable games that you can't actually play. Bizarre! I'm guessing that there's just a market for "just get us downloads of the app" where they literally don't even care what the content of the advertisement is.) Anyway, this long-titled game is an implementation of some of those, with like hundreds of levels. Honestly I can't tell how ironic it is, but I did appreciate it as artwork even though it was also basically torture. I recommend it if you are my enemy, or if you like is-it-art?-torture. Having finished that and immediately deleted it, I just started Teardown, which I like so far, but I haven't gotten into it enough to provide a full take. |
|
Entries from January 2024
|
|
p e r s o n a l |
From now on, the title of the post is allowed to just be "January 2024" (only when it is January 2024, however)
(31 Jan at 22:08) |
Hello again,
This month I've been plugging away on the project I mentioned in the previous post which involves among other things a PDF generator and now an implementation of ML (as in Standard ML, but also the other one). This is probably the 10th "compiler" I've written in my life, and it's kind of fun to revisit these problems that you've done many times and try out different approaches, although this time one of the approaches is "Use C++" (for reasons of making good on a joke, but also for reasons of mlton doesn't work on my computer any more). And although C++ is a fine tool for many applications, it does have some deficiencies for the task of writing a compiler (one of the most irritating: a very modest limit on the stack depth? Like my computer has 256 Gigabytes of RAM and 2^64 virtual addresses and somehow it can only manage 1 megabyte for the stack and there's no standard way to increase it? Get off my lawn). But then you can also experience new ways of struggling with C++, like: A middle of the night power failure wrecked my computer's GPT (as in GUID Partition Table, but also the other one) and I was deep in the depths of taking the computer apart to reset its parts, its BIOS (its Basic In/Out System, which is where it stores its biography) and its hard drives were everywhere on the floor, and it could not be saved, and this after I already broke my computer this year by trying to put the world's biggest video card in it, too hard. And I could not merely perform recovery because of Unknown Error, so I had to begin anew again and restore from backups. But when you restore from backup and you're in the mood of "why is this so complicated and I don't understand how computers work any more?" it occurs to you (me) to also change your underlying development environment instead of reinstalling the devil you know. So I ended my friendship with Cygwin64 and switched to new best friend MSYS2. Both of these things are different ways of wishing that you were using Linux while you're using Windows. The main reason I tried this new way of struggling is that Cygwin is very behind on its version of x86_64 clang (C++ compiler), which I wanted to try because it supports AddressSanitizer and clangd on Windows, and I wanted to give LSP in emacs a shot (it's finally good!). There were a few growing pains, but I think MSYS2 is what I would recommend now. One of the nice things they did was create multiple different environments depending on what you want to do (e.g. "I want to use clang to compile x86_64 code" or "I want to do 32-bit cross compilation for ARM") and in that environment, you just say "g++" and it invokes the compiler you want, instead of the weird contortions I've been doing for years with manually invoking x86_64-w64-mingw32-g++. I was also able to get clblast working before being too filled with rage to continue, so that is nice for the ML inference on the world's biggest graphics card. I made these graphics to help me tune the correct settings of GPU layers (y axis) and number of threads (x axis):
tune-single tune-batch
In some sense the results are obvious (more threads and more layers is faster) but it was interesting to me how the cliff of performance drops off at a different number of layers for single and batch mode (I guess because the batch needs some memory itself?) and how it's clearly better to use fewer threads than cores for batch as well. I was not surprised to see performance drop off for >32 threads (everybody knows that hyper-threads kinda suck) but I was very surprised to see performance pick up again when it gets back up to 64? And only for single mode? I wish I understood that better. But mostly I'm a sucker for the custom visualizations.
Right but when writing this compiler I realized that I wanted to use some Greek letters, and I can't handle it when some characters are in a different font in my source code, so I finally made some space for those in my programming font FixederSys. These certainly still need some tweaks, but it's already better than just being in some other weird font:
{{{caption}}}
You can also see that I have been adding some "useful" emoji at the top. It is an interesting puzzle to try to make these things recognizable (especially for the 1x version, whose charboxes are 8x16 pixels). I am pretty sure I will not try to do all of the emoji (like, the flags are totally hopeless at 8x16), but it is tempting to round out the Unicode support somewhat. Like I was trying to make a ¯\_(ツ)_/¯ today and had to settle for ~\_( :) )_/~ which is pretty much (ノಠ益ಠ)ノ彡┻━┻.
Also: Adam revived our old game jam game Headcat, which I described in post 927, now over 16 years ago. You can play it online at Headcat.org. It is harder than I remember, perhaps explaining why it did not reach #1 on the One Appstore Per Child charts.
Also: I started and finished (true ending, but just with one character) Slay the Spire. Good game, but you don't need me to tell you that. Same for Alwa's Legacy, which is the sequel to Alwa's Awakening. Both of these are very true-to-form "8-bit" and "16-bit" platformers that I enjoyed and would recommend for genre fans, though I did not try to 100% them. The graphics are the highlight and I thought it was very cute how these could easily have been a pair of games from the NES and SNES. The good old days. And speaking of good-old days, I am now playing Katamari Damacy, which I had played at a friend's house many years ago, and always wanted to spend more time with. It totally holds up (aside from stuff like: You have to play through the tutorial and first level before you can access the menus at all, like to make the game fullscreen?) and it's honestly inspiring how unhinged the game design and writing are, and how fun it manages to be. What an accomplishment! |
|
...
Jan 2024
continued |
|
2 0 2 4
| Posts from 2024 |
Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 2 3
| Posts from 2023 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 2 2
| Posts from 2022 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 2 1
| Posts from 2021 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 2 0
| Posts from 2020 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 1 9
| Posts from 2019 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 1 8
| Posts from 2018 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 1 7
| Posts from 2017 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 1 6
| Posts from 2016 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 1 5
| Posts from 2015 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 1 4
| Posts from 2014 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 1 3
| Posts from 2013 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 1 2
| Posts from 2012 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 1 1
| Posts from 2011 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 1 0
| Posts from 2010 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 0 9
| Posts from 2009 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 0 8
| Posts from 2008 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 0 7
| Posts from 2007 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 0 6
| Posts from 2006 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 0 5
| Posts from 2005 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 0 4
| Posts from 2004 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 0 3
| Posts from 2003 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 0 2
| Posts from 2002 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 0 1
| Posts from 2001 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan |
2 0 0 0
| Posts from 2000 |
Dec Nov Oct Sep Aug Jul Jun May Apr Mar |
|