Skip to content

This section will provide interesting statistics or tidbits about my life in this exact moment (with maybe a small delay).

It will probably require JavaScript to self-update, but I promise to keep this widget lightweight and open-source!

JavaScript isn't a menace, stop fearing it or I will switch to WebAssembly and knock your nico-nico-kneecaps so fast with its speed you won't even notice that... omae ha mou shindeiru

← An IndieWeb Webring πŸ•ΈπŸ’ β†’

if your CLI tool doesn't have a man page, what the heck are you doing?

and no, auto-generated man pages from clap macros don't count. Conversions from asciidoc or markdown are on thin ice.

go learn troff and write a man page, it's fun~

Webmention counters:

  • 0
  • πŸ’¬0
  • πŸ”„0
  • πŸ”–0

I think default User-Agent headers in HTTP libraries are an anti-pattern.

Any HTTP library's Client object SHOULD require the consumer to explicitly set its User-Agent and MUST throw an error if the User-Agent header is implicitly unset and was not explicitly set.

Webmention counters:

  • 0
  • πŸ’¬0
  • πŸ”„0
  • πŸ”–0

Wow. I forgot how nice passkeys are. Two new devices added to my website in five minutes.

I kind of cheated when logging in on my phone β€” using my password instead of plugging in my NitroKey. But I could do that!

Then I created a device-bound passkey on my phone. At least I think I did β€” Google's passkey UI is rather inconsistent, but my phone is on an older version of Android/GMS and it still has this weird bug that makes Google Password Manager not activate on navigator.credentials.create(). Well, I did want a device-bound passkey anyway (a roaming passkey is only little more secure than a password, since it can be extracted still) so I achieved my goal.

Then I decided my tablet also deserves a passkey. In a fit of whimsy I decided to start acpassley authentication flow right away β€” and quickly found an option to scan a QR code with my phone to leverage a passkey I already created. A tiny bit of fiddling with a QR code and a fingerprint scan later my tablet was in my site's dashboard.

And then I wanted to create a passkey on my tablet. Which immediately tried to shove me into a cloud passkey flow. I had to tap "other" β€” and then it assumed I'd want to plug in a USB key. Sort-of reasonable assumption, but no β€” I had to press "other" again. Finally, the OS gave up and asked me directly: "fine, where do you want your passkey then?" "This device" was the option I wanted.

Aside from this little argument with my tablet… I love living in the passwordless future.

Webmention counters:

  • 0
  • πŸ’¬0
  • πŸ”„0
  • πŸ”–0

i really should stop making my poor raspberry pi 4 compile an entire linux kernel. this is single-board-computer cruelty

Webmention counters:

  • 0
  • πŸ’¬0
  • πŸ”„0
  • πŸ”–0

maybe I'm ignorant but why do a lot of research papers are published in two-column format? it's really inconvenient to read on-screen, I have to scroll up and down and it's distracting

I tried some solutions for rewriting such PDFs to something more acceptable, but they either don't work or rely on outdated dependencies…

Webmention counters:

  • 0
  • πŸ’¬0
  • πŸ”„0
  • πŸ”–0

Getting a proper "storybook"-ish renderer for Kittybox's templates was a good idea β€” now I can quickly iterate on the design of my comments section without actually running the app or populating the database with fake content!

I just pipe an MF2-JSON blob down a single executable, and out comes an HTML page I can view in my browser. Basic CSS is inlined so it looks almost the same as the finished product. The only thing broken is the font style, because the fonts are supposed to be fetched from the static folder, and the static folder isn't there in a self-contained HTML file.

I could probably produce an assets folder and rewrite all <link> URLs to point to that folder, but it's too much hassle for a simple hack. And it allows me to view what my pages would look like without custom fonts, which I heard some people forbid in their browsers anyway for bandwidth reasons.

…or I could just install the same font families on my machine. If I could be bothered doing that.

This solution doesn't require me to spin up a web server, doesn't require me to run anything, doesn't require me to run or manage a staging database filled with fake data, doesn't require me to submit web forms to configure template parameters, it does one thing and does it well. And it would probably run in CI, too, if I wanted to make snapshot tests. (Though in-crate tests are probably better for that purpose.)

Webmention counters:

  • 0
  • πŸ’¬0
  • πŸ”„0
  • πŸ”–0

Noticed some interesting effects on YouTube's buttons today. Turns out they seem to be created by a <yt-light-shape> custom element.

Seems to be mostly CSS, it kind of works when I copy it into a separate file, but not quite (the effect shows, but it doesn't look as good). Something's still missing, and I wonder what exactly. Perhaps the outer elements provide additional styles or settings or variables β€” the text color looked off, too…

Webmention counters:

  • 0
  • πŸ’¬0
  • πŸ”„0
  • πŸ”–0

almost got baited into posting a good-faith argument in a bad-faith discussion

don't make this mistake i beg of you

Webmention counters:

  • 0
  • πŸ’¬0
  • πŸ”„0
  • πŸ”–0

More and more I use my website's media endpoint purely for hosting random images I upload to the internet (most often images that I then post on tangled.org issues).

I guess this, too, is owning your data~

Webmention counters:

  • 0
  • πŸ’¬0
  • πŸ”„0
  • πŸ”–0

shit i can't nerdsnipe myself into reproducing a research paper now I AM EMPLOYED I HAVE A JOB

Webmention counters:

  • 1
  • πŸ’¬0
  • πŸ”„0
  • πŸ”–0

I am appalled at how Bluesky-specific the reference ATProto PDS implementation is. Apparently Bluesky implements several app.bsky.actor calls inside the PDS, giving itself sort-of privileged treatment β€” for example, a preferences store inside the PDS that no other app has; everyone else has to store their apps' settings elsewhere.

I think credible exit is not enough. The protocol and its implementations must also be credibly neutral, and the reference PDS fails the sniff test to me.

A bit disillusioned, but hey, maybe it'll help me finally touch grass instead of looking at my skyline.

Webmention counters:

  • 0
  • πŸ’¬0
  • πŸ”„0
  • πŸ”–0

Not updating OpenWRT for three years? Bad idea, apparently.

TLS ciphers seem to be a moving target on that timescale, and when I came to my countryhouse, the router couldn't negotiate ciphers with a modern hardened TLS setup.

Decided to build a new image with all the configs pre-baked in, flashed that, and it seems to work fine now…

Webmention counters:

  • 0
  • πŸ’¬0
  • πŸ”„0
  • πŸ”–0