RSSAmplifier

Blog

pablotron.org

Recent posts on pablotron.org

pablotron.orgRSS feed ↗15 posts

Latest posts

polycvss v0.4.0

I just released polycvss v0.4.0 . polycvss is a Rust library to parse and score CVSS vector strings. Changes since polycvss v0.3.5 : derive Hash for Vector, Name, Group, MajorVersion, Version, Severity add Err::InvalidChar , check for invalid characters when parsing vector strings remove unused TryFrom<String> add fuzz targets increase coverage to 99% README.md: add Linter, Coverage, and Fuzzing…

GitHub Enshittification

This time it'll be different... Recent GitHub problems: Repeated service outages . GitHub currently has less than one 9 of uptime (85.51%) over the last 90 days according to the (unofficial) Missing GitHub Status Page . Stalled GitHub Actions , even for jobs on self-hosted runners. Broken squash merges in PRs . CVE-2026-3854 , a remote code execution (RCE) vulnerability. Copilot: Aggressive…

Forgejo Setup

Forgejo runners. Several months ago I set up a personal Forgejo server and several runners. I have been using it to manage releases for a couple of projects. I documented the setup process here: Forgejo Setup . Update (2026-04-26): Setup guide updated for Forgejo v15.0 .

Stupid Slop Scrapers Sink Site

This morning I woke up to an oddly unresponsive web server. The TLS handshake would complete and then requests would block until the connection timed out. At first I thought it was a transient error, so I restarted Apache . That didn&rsquo;t fix the problem, so I restarted the VM , and then the physical machine. The cause was a slop bot flood; apparently they discovered git.pablotron.org and…

Disable Firefox AI Slop

I restarted Firefox after an update and my laptop fan started going berzerk. The culprit was a background thread pegged at 100% CPU for one of the new AI &ldquo;features&rdquo; in Firefox ; presumably doing inference for a local model. I disabled this junk, and you should too. Steps: Go to Settings. Click &ldquo;AI Controls&rdquo; on the left sidebar. Click the &ldquo;Block AI enhancements&rdquo;…

pbech32 v0.1.0

I just released the first version of pbech32 , a Rust library for encoding and decoding Bech32 data. Bech32 is a fast and user-friendly base 32 encoding format that includes a namespace and checksum . Links pbech32 Git repository pbech32 package on crates.io pbech32 API Documentation on docs.rs Library Features Bech32 (BIP173) and Bech32m (BIP350) support. Idiomatic encoding and decoding via the…

New Year's Primality Testing by Hand

Happy New Year! The number 2026 has two factors: 2 and 1013. I wondered &ldquo;is 1013 prime?&rdquo; and, for fun, &ldquo;can I solve this in my head?&rdquo; (e.g. no calculator, computer, or pen and paper). If 1013 is not prime, then it is composite and must have at least one odd prime factor ≤ ⌊√1013⌋. (We know the factor &ndash; if it exists &ndash; is odd because factors of odd composites are…

polycvss v0.2.0

I just released polycvss version 0.2.0. polycvss is a Rust library to parse and score CVSS vector strings. Features: CVSS v2 , CVSS v3 , and CVSS v4 support. Version-agnostic parsing and scoring API . Memory efficient: Vectors are 8 bytes. Scores and severities are 1 byte. No dependencies by default except the standard library. Optional serde integration via the serde build feature. Extensive…

Armbian on Odroid N2L

Last week I installed Armbian on an Odroid N2L . The installation steps, installation results, and fixes for some problems are documented below. Installation Download and import the signing key (fingerprint DF00FAF1C577104B50BF1D0093D6889F9F0E78D5 ): wget -O- https://apt.armbian.com/armbian.key | gpg -- import - Download the current &ldquo;Debian 12 (Bookworm)&rdquo; image and the detached…

Nginx Caching and Security Headers

Yesterday I ported the caching and security headers from the Apache configuration for the public site to the Nginx configuration for the Tor mirror . The caching headers are particularly helpful for the Tor mirror . The updated Nginx configuration and additional documentation are here: Site Backend - Onion Service .

Old OpenVPN Article

In 2006 I wrote an article about OpenVPN for the now-defunct Linux Magazine . This week I found a copy of the 2006 article on the Wayback Machine : Casting Your Net with OpenVPN (Wayback Machine) In 2025 you should prefer Wireguard over OpenVPN because Wireguard is faster, more secure, and easier to use . Fun factoid: The AWS Client VPN is just an AWS -branded build of the OpenVPN client.

Uninstall Facebook

You should immediately remove the Facebook and Instagram apps from your Android devices: We disclose a novel tracking method by Meta and Yandex potentially affecting billions of Android users. We found that native Android apps—including Facebook, Instagram, and several Yandex apps including Maps and Browser—silently listen on fixed local ports for tracking purposes. &hellip; This web-to-app ID…

Tor Site Mirror

This site is now mirrored on the Tor network at the following onion address : http://pablotronfils76sk6pwvyoosvfjbhxe3sn4c654e4na4szidbnbqdyd.onion/ See Site Backend - Onion Service for more details. Update (2025-06-02): New vanity .onion address .

ML-KEM vs. DH and ECDH

A couple of months ago I wrote an expanation of ML-KEM in the discussion thread of an Ars Technica article . Folks seemed to like my explanation and the Ars staff marked it as a &ldquo;Staff Pick&rdquo;. Below is the explanation that I wrote with some minor corrections&hellip; Close friend of mine from college works as a cryptographer for some government agency (he jokes he can&rsquo;t tell me…

JupyterLab Reverse Proxying in Apache

I&rsquo;ve been using the SageMath kernel in JupyterLab quite a bit lately. I wanted to reverse proxy through an Apache vhost to JupyterLab . The documentation to do this is surprisingly elusive. Here is a working example: <VirtualHost *:443 > ServerName sage.example.com # proxy http and websocket to http://localhost:1980/ # note: in apache 2.4.47+, use upgrade=websocket to proxy websocket…