Oops, July really snuck up on me! Even at the age of 40 I confuse the two adjacent four-letter Ju months and so, I guess especially, the border between them. This post was backdated an hour, which is cheating, but less cheating if I admit it!!
In my hacking time this month I mostly worked on my household distributed temperature/humidity thing, and most of the hacking was fairly boring linux things to keep the things running even if internet connectivity is lost (this is surprisingly hard to do??). This is essential for my garage one, which is right on the edge of wifi and so loses connectivity if anyone so much as walks through the ether wrong. I fixed the attic fan and did a good job that's basically up to code, especially if you compare it to the existing wiring up there. All of a sudden I remembered about the existence of heat shrink tubing, and got a heat gun and all sorts of heat shrink tubing and now everything is heat shrink tubed. Like I fixed the fraying ends of my running shorts string (what is that called anyway, string?) with heat shrink tubing. The raspberry pi in the garage is shrunk into a large heat shrink tube to seal it against the elements and to make sure the wifi has one final struggle.
On the care and feeding theme, just last weekend I picked back up on the Destroy FX plugins, which I hadn't touched for at least a decade. These are weird audio effects that I made with my friend and bandmate Sophia when we were in college or so. They still have solid usage, but I haven't been able to compile them for ages and although I've had some audio processing ideas in the interim, they just have gone in the ideas file. Sophia has been modernizing them for Mac (64-bit, etc.) and last week my coffee and I ground through DLL hell and deprecated headers hell and so on to get the basics working again. Next up is making the GUIs work, which sounds painful, but if I get past that then we can delete all that Visual Studio crap and also maybe build some of the ideas from the ideas file. :)
On the painful theme, I've been running around 50 miles a week pretty consistently (still, not going anywhere near anyone). There's probably no hope of doing an organized race safely, which is a shame because I think I could put up some good times. Did my regular hilly 10k route at a 6m57s pace earlier this week when it was 85°F out, which is not bad given my all-time PR was a 6m22s pace, net downhill, when I was 29!
In video game news, I got the Valve Index, which is their first-party VR system. It is indeed an upgrade to the HTC Vive (highlights are the frame rate and field of view). I'm still struggling a bit to get my eyes to clearly focus in there (some prescription lenses are on the way) but the biggest annoyance is that the tracking base stations make this infuriating high-pitched whining sound. Some other people have been complaining about it but I'm not sure if it's just sensitive hearing or mine are defective (since both seem to do it). I don't think I can recommend the system with this problem, to be honest. So far I've been playing Half-Life: Alyx, which is very good for a VR game and "not bad" for a Half-Life game.
Have not worn pants in like 50 days now
(01 Jun 2020 at 02:48)
So! What happened this month? Again I spent the whole thing inside, only leaving the house for a daily run (not going near any people). Weather's been great, and working at home is making it logistically easy to do like an hour of running every afternoon. So I am getting a ripped summer bod as a project and a way to keep from getting depressed or whatever. The minor Strava segments around town continue to be a good challenge because I can often be competitive for the top spots, which is also good because they just made all the segment stuff paid-only, except for the top 10. I've done some longer runs too, though not to complete the Pac Tom project; I'm worried about being in some situation where I run ten miles out to get one missing dead-end but I can't do it safely because of some block party or something (this is already really awkward when it happens, so the additional death/irresponsibility angle puts me over the edge). So instead I have been doing some trips to neighboring towns outside of Pittsburgh. It's a very weird experience (or weird that it is weird?) on these runs to feel lost, since it's been over a decade of feeling like I know at least the main streets of the entire city. I must admit I'm flirting a little bit with the idea of doing some sort of Pac Project beyond the city limits, but I need to figure out what the appropriate scope/rules would be?
My computer discovered another prime number; this one much more impressive than the last. It's
118568 × 53112069 + 1
which is 2,175,248 digits long and the 70th largest prime known to human-kind. Wow! It is also the largest "base-5" prime (here referring to the 5x term; of course it is prime in any base) known, period. This one is big enough to get a fairly rote official announcement by PrimeGrid. You can see that I was the "double-checker"; each number gets tested by two different computers and the other guy gets the main credit because his finished first. (In fact it's a fluke that I ran this at all—for now I've switched my computer over to Rosetta@Home to help in some small way to look for Coronavirus treatments. I only had PrimeGrid running as "backfill" while I was manually migrating Rosetta from http to https!?) Anyway, primes gonna get bigger and there are infinitely many of them, but one cool thing about this one is that it actually makes some progress towards proving the "Sierpiński base 5 conjecture." A Sierpiński (base b) number is a number k such that k × bn + 1 is composite (not prime) for all n. The conjecture is that 159986 is the smallest even Sierpiński base 5 number; to prove this, we need to find prime numbers of the form k × 5n + 1 for a set of values k < 159986, which proves that they are not Sierpiński (base 5). With this prime, we know that 118568 is not Sierpiński base 5, eliminating 1 of the 31 remaining candidates. Sierpiński is also the guy who invented the Triforce.
Somewhat hard to find the energy to grind through the last stages of some longer-term projects, but I've been starting up new ones and watering some old long-neglected ones. I finally fixed some long-standing issues in my sorta crazy custom web programming language "Aphasia", which I wrote in college, partially rewrote in grad school, and which still powers a lot of my websites (including this one). It is relaxing to address some of those bugs or delete stupid crap from when I didn't know what I was doing (even more than now). Speaking of things that will still haunt me a decade from now, I added more features and support for humidity sensing in my custom distributed temperature monitoring thing, including hooking it up to automatically control my broken attic fan (but the fan is still broken so it's just telling me that my attic is humid and hot, no duh). Started a new secret project which was initially just going to be a toy for my Thursday drinking group but is now becoming some kind of weird technology.
In games, I did finally win Nuclear Throne; thank you for the encouragement. I've been testing my friend Jim's puzzle game The Cubedex of Brass and Wood and have been enjoying trying to solve/break those puzzles and as an excuse to keep my automated theorem proving skills up to date.
My SIGBOVIK 2020 papers, lovingly aged one month
(01 May 2020 at 03:25)
Well, April felt simultaneously short and long! I should have just posted these at the beginning of the month, my SIGBOVIK papers from 2020:
Is this the longest chess game? is another needless chess paper, here trying to figure out the longest possible legal game. There are several rules that make sure games can't go on forever, and some surprisingly subtle details/ambiguity to those rules. The whole game is of course included in the paper (17697 moves), but I was far from being the largest waste of space in this year's proceedings, as one provocateur had a paper with 150 pages of citations. Mathieu made a 5-hour video of the chess game I computed for his companion blog post.
This month I have mostly been trying to keep sane and healthy during the shelter-in-place order. It's been harder than usual to find the energy to be creative, but I have had some spurts. I basically only leave the house to run (not going anywhere near other people). But I have been doing that pretty regularly, so between that and the prohibition against going out to bars and ice cream, I'd say I'm currently in the best I have been in ~6 years. Yesterday I claimed some course records for some Strava segments in my neighborhood! I also finished up Doom: Eternal, which was good but you pretty much already know what it's like and I'm playing Animal Crossing and haven't yet gotten sick of that. The timing for the release of that latter game couldn't have been more perfect, huh? Sometimes I need something with a little challenge, so I just started Nuclear Throne. I'm liking it but not sure if I have decided whether it's good enough to invest the time in to win (I almost always play games to the end but these randomized roguelikes demand a certain kind of potentially infinite investment. Like I never did beat the last boss in Wizard of Legend, and even in Dead Cells, which I loved, I had to settle for some modest personal criteria for "winning.") Any other recs? Could use a good Metroidvania perhaps?
Hi! I've been stuck inside for weeks, probably just like you. I go out running every day, dodging people, but otherwise it's lockdown-mode. Our washing machine promptly broke, so I had to replace that thing. It became a project, because (aside from the difficult but mostly uninteresting process of getting it onto the second floor) one of the things that contributed to the last one's failure was its not-very-stable footing, and I wanted to do this one well. The thing resides inside a nice (but probably unnecessary) tile basin, which poses a few problems: It would make it impossible to get to the bottom doors on the machine, and it makes it impossible to adjust the feet in situ for leveling purposes, and the basin is not at all flat. The weirdly-shaped surface meant that my CAD prospectus was not very useful, which is annoying because I like to measure like 200 times in CAD and then cut once.
The other problem is that I didn't have the right wood for this, and although Home Depot claimed to be able to do a same-day shipment, they gave me the runaround for over a week (I still don't have it). It's understandable, but our piles of laundry were getting a bit dire, so I just had to make do with what I had. In figure 1(a) I sawed through these 6x6 timbers with a 3.5" saw, which took like an hour. Then I used the also-too-small table saw to mill that into the smaller size I actually wanted (figure 1(b)). Then, I painstakingly test fit the logs in the basin, and sawed/planed/chiseled/sanded them until they were sitting stably on that curved surface without wobble. This was a real pain. The best advice I have for doing this was to get the tile sopping wet, then place the wood there for a moment, and then see where the high spots are based on where the wood is wet. (It would work better with some dye or something, but I didn't want to ruin the tile, ugh.) At that point we have some logs that were nice and sturdy, but not necessarily level gravity-wise. My solution here was router-out cups for each of the washer's feet, which I could set the depth of so that the washer would be level without any adjustment. (This also has the nice advantage that the washer can't jump around more than a few millimeters!) This was accomplished by using a laser level for an accurate level, and then putting some objects of fixed height (here the feet from the old washer, which will be disassembled for its more exciting pieces) into each cup, and iteratively routing the depth until they all touch the laser line exactly (Figure 1(c)). All that work paid off, though, because when we finally dropped the washer into place, it was as level as a spirit level can possibly indicate (Figure 1(d)). No pictures of the install here because this is like in my bathroom and that seems weirdly intimate to put on the internet for some reason.
SIGBOVIK is tomorrow, but this year there is no in-person event due to the shelter-in-place order! The proceedings is shaping up nicely though, and there is some "podcast" expected. I have a few silly papers in there, but I'll save those for tomorrow. No talks from me this year; the whole situation in the world has been sort of draining my creative energy, but hopefully I will start feeling good again soon.
It's leap day, which gives me an extra day in the short month to write this boring blog post! Alas, I spent most of the month traveling for work and vacation, and didn't finish my main-series project(s). Is the monthly shaming even motivational for me? Yes, of course, though I am skilled at filling my life up with whatever is currently catching my fancy.
For example, earlier this month I finally got working this fairly straightforward raspberry pi project, which I built to try to diagnose wtf is going on with my overcomplicated 4-zone hot water (hydronic) home heating system. It has a problem whereby my bedroom gets annoyingly hot under certain conditions, even though the thermostat is not being triggered. Just the "boiler room" looks like this:
Of course I could pay someone money to tinker with it but the true satisfaction of problem solving is in suffering that problem for multiple years while you pick up the necessary skills and data to solve it yourself and work up the mental energy to apply the solution. In the above you can perhaps barely make out the diagnostic device hanging from the scary bundle of wires (not my fault) with some of its heat sensors zip-tied to pipes. The needlessly hand-built software can give me one of these:
(I was pretty happy with the cheap but fairly maintainable way I decided to do this, with a templated SVG file. Since they're text, I just left placeholders like [[alice]] (the name of temperature probe "A") and just string-replace it with the temperature string as I deliver the SVG over HTTP. Will use this trick again some day.) Here you can see Floor 2 source is hotter than the others even though its thermostat isn't even on. It also produces time-series graphs of course, which are decidedly more retro (but really is only visible at full size):
I have succeeded in catching it in the act and have some theories about what's happening (the heat appears to be convective but I don't yet understand why the boiler keeps putting out heat in this situation). But I haven't solved it yet, and certainly haven't fixed it.
SIGBOVIK 2020 is in about a month, and so the deadline is coming up imminently. Consider submitting if you have anything to share! I have a few ideas partly done but it looks like the writing will be coming at the last minute, of course.