Ctrl blog

Skip to main content
Daniel Aleksandersen

  • Latest
  • Newsletter
  • Topics
  • Archives
  • Patrons
  • About
Genuine iRobot-brand side-by-side with off-brand side-brushes, debris collectors, and filters for the Roomba 900-series vacuum cleaners.

Genuine Roomba replacement parts vs off-brand clones

I bought authentic and off-brand Roomba 900-series replacement parts to compare their perceived quality. The differences are quite small.

An abstract 3D render of complex machinery.

Fun with Apache HTTPD and subrequest variable inconsistencies

Why does the REQUEST_URI variable return /index.html and not / when requesting a directory? Blame it on the subrequest for the DirectoryIndex file.

A man swirling a torch in front of him forming a wall of fire.

How to block web browser-based localhost port-scans

Websites are port-scanning your localhost. Here’s how to stop random websites from knowing what services are running on your device.

Embed XMP sidecars into image files with embed_xmp

I made a new program for embedding XMP sidecar files (.xmp/.xml) into JPEG, PNG, SVG, and WebP image files.

The Google Authenticator app icon in front of an abstract QR matrix barcode-inspired background.

Google Authenticator enables device-transfers, but no export options

Two-factor authentication requires users to commit to storing a secret code indefinitely. Popular apps lack tools to back up and data transfer those secrets.

A mesh of green ropes.

P2P apps’ connection amnesia makes them less fault-tolerant

Peer-to-peer apps forget the IP addresses it communicated with in the last session and rely on peer-discovery all the time. Caching can make them more robust.

A browser window showing six images that have loaded and three images waiting to load below the viewport.

Make native lazy-loading images load more eagerly

A tutorial on how to load native lazy-loading images earlier in Safari and Firefox. Speed up page loading while keeping visitors from seeing loading images.

A colorful rainbow flag shown in day-mode and SVG-night mode side by side behind the Samsung Internet app icon.

Everything you need to know about Night mode in Samsung Internet

Night mode in Samsung browser explained. How it breaks page contrast and accessibility, pastelify SVG colors, and why web developers can’t do anything about it.

Four P2P distribution tools for Git repositories compared

Comparing how P2P protocols like BitTorrent, Dat, and IPFS can help you distribute your Git repositories without depending on a central server.

A compose email window from GNOME Evolution where the email body has become corrupted.

How I recovered a lost email from my email client’s memory

A bug caused 30 minutes of work on an email to disappear. However, I was able to recover it by poking around in the process memory using gdb/gcore. Here’s how.

New font with Unicode-compatible Creative Commons license symbols

Unicode 13 introduced new Creative Commons license symbols. Here’s a small font with just the new characters so you can use them on your computer or website.

A MacBook laptop resting half-opened on a table.

Disable processor boost mode to prolong your battery life

How to disable Turbo Boost for AMD and Intel. Sacrifice some peak performance and get a cooler and quieter laptop with a longer-lasting battery.

  • Next
  • Previous
Get weekly email updates from Ctrl blog
  • Twitter
  • Newsletter
  • Feed
  • Feedly
  • Newsblur
Ctrl blog by © 2021 Daniel Aleksandersen.
  • About
  • Privacy Policy
  • Colophon
  • Licensing