Quake Champions is awesome (as in the gameplay — performance is meh).
Amazon Web Services is not awesome: it wasn't really obvious that promotional credits aren't spent on reserved EC2 instances :( Also HardenedBSD was behaving weird on it (secadm kernel panic, Python libssl segfaults).
But with regular FreeBSD I've set up a Matrix homeserver (Synapse) on EC2! I am now @greg:unrelenting.technology :) It's working as my new IRC bouncer, so with that I've been able to say goodbye to the previous VPS that served this website (which was still running my ZNC).
tfw you forget you've installed a browser addon called "falsehoods to bullshit"
Some time ago, Firefox Nightly on Windows displayed SVGs in a… strange way :D
It's terrible hot take time:
React is capitalist. Since it's been ported to many platforms (browsers, node.js, iOS, Android, now even Sketch) it is designed to let businesses reach customers on all platforms with less development effort, instead of hand-crafting apps that care about each individual platform's users. And there's a sort of lock-in, you're not a web/iOS/Android developer, you're a React developer. That's kinda like businesses trying to lock you in to their ecosystems (Apple, Microsoft).
In contrast, Polymer
is good and communist fully embraces the web as the only platform, which is good for the open web.
Since 2017-02-01 I've been working on a big change to Sweetroll, the engine that powers this website, and today it's finally live, right here! (Also it's now on my newer VPS, hosted at prgmr and running HardenedBSD 11. The old one was FreeBSD 10 at DigitalOcean.)
tl;dr about the change: from one Haskell app powered by a Git+JSON store and embedded Duktape templates (lol) to two services (Haskell + Node.js) backed by Postgres. It's really cool. I'll be writing more documentation for it soon.
I just realized that it’s possible to make a WebExtension version of micro-panel. Not sure if that enables any cool benefits though… maybe using one token for the panel and a share panel in the browser or something.
Today in “oddly specific”: Bethesda.net’s code of conduct doesn’t allow you to make a username that references names of modern serial killers.
I made a WebExtension! It’s called Transmitter for Transmission. It lets me add torrents to the
transmission-daemon instance running on my home server. And watch their status. I think Transmission actually allows you to expose the remote API in desktop versions as well.
tl;dr on WebExtensions: it’s Chrome’s extension API, but with
Promises and it’s a W3C standard. Fully supported in Firefox. Chrome/Opera need a tiny polyfill for the
Promise support. MS Edge can be supported too.
Publishing experience: Chrome’s store asks for $5 to get your stuff published (one time payment for up to 20 extensions) and there’s no pre-moderation. Addons.Mozilla is pre-moderated but the extension shows up on its URL before approval. Opera is pre-moderated and the extension doesn’t show up before it’s moderated.
Converted my music library from mostly-AAC to Opus: from 11.3 GB down to 5.2 GB! (using some PowerShell to run ffmpeg on all the things) This is especially good for my phone. For some reason Android still needs the file extension to be
Compression in general seems to be a pretty exciting field… Redox TFS promises full disk compression. Maybe not really “full” but with large huge clusters, instead of ZFS’s per-block compression. Brotli already works in browsers for HTTPS compression. Game texture stuff is improving (because 58 GB texture packs :D). A better video codec is coming.
If you still have AAC or Vorbis files — convert to Opus now!
TIL: Intel chipsets have a hardware watchdog. Just like a Raspberry Pi.
Speaking of the Raspberry Pi watchdog (
bcmwd): it supports 15 seconds max interval. But if you try to run FreeBSD’s
watchdogd with 15 seconds, it’ll still complain. Look in the output — for some reason
watchdogd rounds it up to 17 or something. So the max interval is 9.
Made a small command line app to manage a personal X.509 CA. Better than searching shell command history for arcane
Got my one character patch merged into the FreeBSD kernel :D
Finally upgraded my phone from CM14.1 to LineageOS (via the experimental migration build, everything went smoothly). Noticed a cool feature: partial screenshot (from the power menu).
Also apparently my phone is now supported by the upstream Linux kernel…
Today’s reason for an hour wasted on debugging: Ruby 2.0.0 enforces FD_CLOEXEC on file descriptors by default, need to pass
bundle exec to fix. What the hell? Apparently they were concerned about security. Okay, but doing that on interpreter level was super unexpected.
Noticed a worrying trend in web server libraries: lack of first-class support for running on Unix domain sockets and on user-supplied sockets of any kind. Sometimes it needs third party libraries with over 200 lines of code… but Erlang didn’t have native support for unix sockets until 2015!
In 2017, let’s make sure all web app stacks support opening Unix sockets, running on already opened sockets, socket activation and graceful shutdown! I made a thing that uses that kind of stuff and the only server that was completely ready out of the box was Ruby’s Puma.
Facepalm of the day: “why does my new Xen VPS boot FreeBSD that’s installed via the provider’s console, but when I install it myself, it doesn’t boot?”
Of course, I forgot about
console="comconsole". It was booting, just not showing anything on the Xen console.
Wow, MongoDB still defaults to allowing all connections from anywhere?! This is amazingly terrible.
(Postgres only allows connections from 127.0.0.1/32, ::1/128 and 192.168.1.0/24 by default, which actually makes sense.)