Three days ago, I received an email from DigitalOcean. They said that they were doing some maintenance and my VPS, the one that currently runs this website, will be rebooted soon. I didn’t pay much attention to that.

Today, I wanted to look at my website… and it didn’t open. The server didn’t even respond to ping. Yes, yes, I should use a service that monitors my stuff, I know. Few people care about my website though :D

So I rebooted the server, went to the DigitalOcean VNC console, logged in… as a regular user that can’t sudo. Becuase For Security™, my sudoer account does not have a password. Only authorized SSH keys. Fuck.

The solution was to use the JavaScript devtools to automate typing the ssh key into the console and ssh to localhost as the regular user. The script was suggested by someone on DigitalOcean’s support site. I had to modify it a little to work with newlines. However, mistakes were introduced: some letters ended up as lowercase instead of uppercase or vice versa. After getting in as a sudoer, I was able to set up networking.

The actual problem? bsd-cloudinit didn’t work because a symlink in /etc/rc.digitalocean.d was broken, and as a result, the network settings were not set.

I’d say that the actual actual problem is the use of cloud-init stuff instead of, you know, DHCP/SLAAC.

So I’m switching between libressl, libressl-devel and openssl on my FreeBSD Raspberry Pi to see if any of them works (without segfaulting) when used from Python (spoiler: they don’t). And suddenly! Deinstalling openssl results in this:

pkg: sqlite error while executing DELETE FROM packages WHERE id = ?1; in file pkgdb.c:2305: database disk image is malformed

But I can query /var/db/pkg/local.sqlite using the SQLite shell! WTF. Maybe some index got corrupted or something because of the awful microSD storage of the Pi.

So, recovery procedure I figured out: move the database to a different place, recreate a new one (run, like, pkg upgrade), use a clever grep trick to separate the data from the schema (on the old DB, obviously), do some manual editing on the resulting data-only file (the trick doesn’t catch pkg_search because it’s a virtual table created using an INSERT or something), pipe the resulting SQL into the newly created database, use the shell to delete everything related to the offending package.

No, pkgng doesn’t like it when you just dump the DB into a new file, it will try to recreate tables as if you were upgrading. For some reason.

Just experienced the most ridiculous Android FAIL ever.

You know the PIN entry screen on boot, for unlocking disk encryption, right? I rebooted my phone and… the bottom row of the PIN keyboard — the one with the “OK” button — was not usable! Touching anywhere on the bottom row instead was opening the notification center (!!!) which was only visible through a small frame at the top of the screen, same height as the top bar usually is. The unlock icon was also visible on the top of the keyboard.

I took screenshots but they weren’t saved :D I guess it just showed the screenshot animation but couldn’t save it anywhere because of the disk encryption.

Upgraded FreeBSD on my laptop to drm-next-4.6 (branch with GPU drivers ported from Linux 4.6). So, *ERROR* timeout waiting for SBI to complete read transaction dmesg spam (that slowed down booting for a couple seconds) is gone. New dmesg spam is hdac0: Unexpected unsolicited response from address 0: 00000000 at the end of the boot process, right before the login prompt, and not taking any time. clinfo doesn’t show self-test failed anymore. VAAPI video decoding acceleration still works. Haven’t tried connecting an external display yet.

The only real problem is that Firefox with full OpenGL compositing (layers.acceleration.force-enabled) is artifacting, but whatever, it’s fine without that.

Current status: reinstalling 1114 packages because o m g the ABI version changed to 12 :D

The default build options for Blender in FreeBSD are weird. CYCLES=offFFMPEG=offCOLLADA=offCAMERATRACK=off‽ Why. Another package to compile instead of pkg installing…

By the way, only recently I’ve learned that Blender is the FOSS answer to not only 3ds max + V-Ray, but also Premiere/Final Cut and After Effects/Motion. (Damn, that makes so much sense! If you have a 3D animation editor, if you put video into it, it becomes a video editor!)

The sequence editor looks like old Final Cut, not new Final Cut… But it’s Blender. The program that shows Python code in UI elements’ tooltips to show how to do the same things programmatically. I guess I should be able to make a plugin that makes the timeline magnetic, if such a plugin doesn’t exist yet.

Oh also this video series is sooooo pretty