Snippets
176 short distillations of the longer posts, written per paragraph and each linking to its full article. These are not published on willem.com itself: the current build renders only the full posts, so these pages have been unreachable since. They are complete, hand-written, and exposed here because a machine surface is exactly where a focused answer belongs.
- /e/OS on the Fairphone: Google-free Android with battery life in days: Less software bloat, measurably longer battery life.
- Adding dynamo powered lights to a road bike with a SON28 hub dynamo: Building a dynamo wheel and hiding the wiring inside the frame.
- Adding multi-window support to an iPad app with UIWindowScene: UISceneSession and the design rules Apple set for iPadOS.
- Apple Magic Keyboard vs Smart Keyboard Folio for iPad Pro: Better typing is not the same as a better iPad.
- Apple Watch Series 2 battery life after three months of daily wear: About a day and a half, which limits overnight sleep tracking.
- Assembling a Babboe Big cargo bike yourself, what to expect: 300 euros cheaper, but it costs you hours of careful work.
- Auscultare, an open source podcast and audiobook player for Android: A native MP3 player that remembers where you left off.
- Auto-rotating images by EXIF orientation with exiftool and ImageMagick: Standard Debian tools fix what the camera only flagged.
- Aves Gallery — A Privacy-First Photo Gallery App for Android: No cloud, no Google Photos dependency — a local-first gallery that just works.
- AWStats vs Google Analytics — A Privacy-Friendly Alternative: Server-side analytics that work without cookies, JavaScript, or tracking your visitors.
- Backscatter spam: bounce messages abused by spammers: Why a well-behaved mail server can still spam strangers.
- Batch Rename Photos by Date Using EXIF Data on Linux: Use exiftool to rename thousands of photos to YYYYMMDD-HHMM format in seconds.
- Biostrap, a screenless PPG wristband for health data: Heart rate, HRV, respiration and oxygen, but only at rest.
- Blocking backscatter spam in Postfix at the SMTP stage: Refuse with an error code, never bounce.
- Boot device not found error on an HP laptop: Check whether the disk is actually there.
- Building a buy me a coffee button with Mollie and Apple Pay: One button, a NodeJS backend and a payment provider.
- Building a Cross-Platform Game with HTML5 — The Snake '97 Engine: One codebase, every platform — how a retro game runs on iOS, Android, and web from a single HTML5 engine.
- Building a Framework Laptop 13 with 96GB RAM and 8TB storage: Two RAM slots and an NVMe slot, no glue anywhere.
- Building an offline lossless music library from CDs: Ripping, tagging and playing music you actually own.
- CardDAV-Sync and CalDAV-Sync, connecting Android to your own server: Client setup for Android, with notes for Apple, Windows and Linux.
- Changing a tire on a bike with a Gates carbon belt drive: Loosen the rear axle first and never flex the belt.
- Clearing an on-premise server room, three options per machine: Turn it off, move it to a data centre, or migrate it to the cloud.
- Climbing Mount Etna from Rifugio Sapienza: Cable car, terrain bus and a guide for the last stretch.
- Coding on iPad with Blink, Mosh and a VPS: The work lives on the server, not on the tablet.
- Contactless bank card behind an iPhone case, why payment fails: The phone's own NFC chip blocks the card's signal.
- Copying files from a failing hard drive with rsync: Resume interrupted copies and skip unreadable files.
- Cutting cloud costs by 66% through software optimisation: Do less, delete data and hand work to client devices.
- Cyclemeter — The Best Bike Computer App for iPhone: GPS tracking, sensor support, and Apple Watch integration — without a subscription.
- Debian GNU/Linux on the Surface Go 2: A Linux tablet as daily driver, with the i3 tiling window manager.
- Debian installer asking for non-free WiFi drivers: A WiFi chip without a free driver, and three ways around it.
- Debian Linux on a Surface Go tablet as a daily driver: Six months on my own tablet OS taught me what reliability is worth.
- Debugging web apps on iPad with Inspect Browser: The vital DevTools functions without a desktop nearby.
- Disabling the WordPress REST API to stop username leaks: /wp-json/wp/v2/users tells hackers exactly who can log in.
- Disabling XML-RPC in WordPress: Close the xmlrpc.php backdoor before someone brute forces it.
- Dovecot 2.4 mail_location Has Changed — How to Migrate: The mail_location setting has been split in Dovecot 2.4 — here's the new syntax.
- Dovecot 2.4 SSL Certificate Configuration Change: ssl_cert becomes ssl_server_cert_file — and other encryption changes.
- Electric bike versus normal bike, a heart rate test: Measured on the same circuit at the same speeds.
- Exporting blog posts from HTML to ePub and PDF: epub-gen for ePub, pandoc and LaTeX for PDF.
- Fairphone repairability and Android updates until 2031: An industrial Qualcomm chip chosen for longevity.
- Fietselfstedentocht, a 235 km one-day ride through Friesland: Stamps, wind and an Elfstedenkruisje at the finish.
- Fixing 4G/LTE on the Surface Go 2 under Linux: NetworkManager and ModemManager get the WWAN modem going.
- Fixing an invalid boot disk error on an old laptop: An empty BIOS battery resets the harddisk interface mode.
- Fixing NodeJS image processing memory problems with external tools: Extract the bottleneck instead of feeding it more RAM.
- Fixing the dovecot_config_version Error in Dovecot 2.4: Dovecot 2.4 refuses to start without dovecot_config_version — here's how to fix it.
- Flying in a DC-3, the Dutch PH-PBA Dakota: Prince Bernhard's C-47A, operated by the Dutch Dakota Association.
- Game Localisation — How Snake '97 Supports 45+ Languages: From Arabic to Vietnamese — internationalising a game for a global audience.
- Gates Carbon Drive on a Commuter Bike — Long-Term Review: A carbon belt instead of a chain — after thousands of kilometres, was it worth it?
- Gates CDN vs CDX rear sprocket wear: The weakest part of the budget CDN line, measured over 6000KM.
- Generating RSS, Atom and JSON feeds in NodeJS with the Feed module: One npm module maps your posts to RSS, Atom and JSON.
- Giving an AI coding agent visual feedback with headless browsers and OpenCV: Automated checks make the agentic loop faster.
- Going viral on X, how the algorithm picks up a post: Verified likes give the algorithm its first push.
- Google Search Operators — The Complete List for Power Users: site:, filetype:, intitle:, cache: — every operator explained.
- Gran Fondo, a cycling and running tracker for iPhone: A workout tracker without ads, accounts or data selling.
- Grand Seiko Spring Drive, how the movement works: An electromagnet regulates time without friction.
- Healthy cholesterol values: LDL, HDL and triglycerides in mmol/l: The reference numbers behind a standard lipid panel.
- Hiding server version information from hackers: Web, mail, FTP and SSH servers all leak versions by default.
- How Mollie payment webhooks and status updates work: The webhook says something changed, your backend fetches what.
- How Much Data Does Google Collect from Your Android Phone: The hidden tracking inside a stock Android phone — and what you can do about it.
- How to Clean a Vintage Automatic Watch by Hand: Found at a flea market, taken apart, cleaned, and brought back to life.
- How to Convert HEIC to JPG in Bulk Using ImageMagick: One command to convert all your iPhone HEIC photos to universally compatible JPG.
- How to Export Photos from Apple Photos Without Losing Quality: Export your unmodified originals, batch rename by EXIF date, and convert HEIC to JPG.
- How to Open a 27-inch iMac 5K — Step by Step with Photos: The screen is glued on. Here's how to remove it without breaking anything.
- How to Remove Paint from a Bike Frame: Chemical stripper, sandpaper, patience — the complete strip-and-repaint guide.
- How to Replace a Swollen MacBook Air Battery: The trackpad bulges, the case warps — here's how to save it before it's too late.
- How to Service and Repair an iRobot Roomba Vacuum Cleaner: Complete teardown and service guide — brushes, filters, sensors, wheels.
- How to Upgrade RAM in a 27-inch iMac 5K: The easiest iMac upgrade — accessible through a small hatch behind the screen.
- Importing contacts on the Punkt MP01 with a VCF file: The phone mounts as a USB drive, no cloud needed.
- Installing an operating system on an HPE DL380: Network boot plus iLO replace the missing CD drive.
- Installing and Riding with a 4iiii Power Meter on Your Bike: From installation to first ride — what power data actually tells you about your cycling.
- Installing Debian GNU/Linux on the Framework Laptop 13: Everything worked out of the box.
- Installing Linux on a Microsoft Surface Go: From creating a bootable USB to a working touch-friendly Linux tablet.
- Instant resume on Linux: suspend to RAM, then to disk: systemd combines fast resume with zero battery drain.
- iPad Pro as a primary computer for programming and server management: Great hardware, but iOS kills background SSH sessions.
- iPad Pro with Apple Pencil instead of pencil and paper: Sketching software designs digitally.
- iPadOS keyboard shortcuts for text selection and scrolling: Arrow keys, CMD, OPTION and SHIFT replace the trackpad.
- itobserves.com, an AI that writes daily field notes on world news: How I turned international news feeds into an outside observer.
- jpegoptim, lossless JPG optimisation from the command line: Ten to fifteen percent smaller files with identical quality.
- Laptop keyboard types numbers instead of letters, the Num Lock fix: A free fix for a keyboard that only seems broken.
- Leiden Marathon Review — When the Going Gets Tough: A flat course through Dutch history — and the mental game of pushing through the wall.
- Living with MCADD — A Parent's Guide to the Metabolic Condition: What MCADD means for daily life, what to watch for, and how one family navigates it.
- Managing Your Photo Library with Free Software Instead of iCloud: Shotwell on Linux as a complete replacement for Apple Photos and iCloud.
- MCADD emergency: glucose infusion when a child keeps vomiting: What happens at the hospital when food intake fails.
- Metal scraping noise from a hydraulic disc brake, diagnosis and fix: Check the brake pads before anything else.
- microG on a Google-free Android phone, what it fixes: A re-implementation of Google Play Services for phones without Google.
- Mindfold Sleep Mask — Total Darkness for Better Sleep: Not a regular sleep mask — the Mindfold blocks 100% of light while letting you open your eyes.
- Modern development on Windows 98 using PuTTY and SSH: SSH into a cloud Linux machine turns old hardware into a terminal.
- Monitoring URLs that test function, not just uptime: A harmless database query catches deeper problems than a ping.
- NuPhy Air60 V2 Review — A Compact Mechanical Keyboard for Serious Typing: Low-profile mechanical switches, Bluetooth, compact layout — tested by someone who types for a living.
- ochs und junior annual calendar, fewer parts by design: An annual calendar with 3 extra parts instead of a hundred.
- Omarchy — A Minimal Linux Distribution on an iMac: Arch-based, tiling window manager, designed for focus — running on Apple hardware.
- Omata One analogue GPS bike computer review: Analogue hands, precise GPS, no beeping.
- Open-sourcing Gran Fondo, my privacy-first workout tracker: My iOS run and ride tracker dropped its paywall.
- Optical vs electrode heart rate sensors, how they differ: PPG light measurement against direct ECG electrodes.
- Optimising video for instant playback on a homepage: From 7.3 gigabytes of footage to one-megabyte clips.
- Ortlieb Urban Daypack 15L — The Minimal Business Backpack: Waterproof, compact, and just big enough for a laptop, tablet, and nothing more.
- Pacing a long-distance bike ride, start slower than feels right: Save your energy for the last hours, not the first.
- pngquant versus optipng and pngcrush, a PNG benchmark: Measured file sizes and timings on real server hardware.
- podcast-downloader, a Bash script that fetches podcasts from RSS: One command, common GNU/Linux utilities, GPLv3.
- Powering a phone and tablet with a small solar panel: Ten days off the grid with one panel and two power banks.
- Preparing your website for AI agents: Semantic HTML, schema.org, APIs and machine-readable feeds.
- Programming on an Apple Watch with VIM over SSH: A proof of concept that mirrors a VIM session to the watch screen.
- Protecting web forms from spam without CAPTCHA: A hidden form plus a one-time cryptographic post stamp.
- Punkt MP01, a phone without apps or internet: Calling and texting only, with a battery that lasts weeks.
- Radicale, a self-hosted CardDAV/CalDAV server on Debian: Your own contacts and calendar sync without the big cloud.
- Rate limiting Postfix senders with smtpd parameters or Postfwd: Contain a hacked mail account before it floods the world.
- Reading Bluetooth cadence sensor data on iOS: The sensor sends raw bits, not a cadence number.
- Reading WHOOP HRV, why only your own trend matters: Heart rate variability is personal, so compare yourself to yourself.
- Realtime human pose estimation with TensorFlow and PoseNet: How a pretrained model finds body joints in a video feed.
- Recording an 8-hour bike ride on one iPhone battery charge: Follow Apple's background rules and the battery lasts.
- Recovering photos from an iMac that will not boot: Remove the disk and read it on another Mac.
- Redirecting common feed URLs in NGINX for RSS discovery: Mimic popular blogging software so feeds get found.
- reMarkable paper tablet, reading and writing on better paper: A tablet that fades into the background.
- Repairing a Nintendo Gameboy Advance SP that resets during play: Replacing the logic board cured the random resets.
- Replacing the Roc Loc 5 Retention System on a Giro Helmet: The retention system broke, but the helmet itself is fine — here's the fix.
- Rescuing files from a failing hard disk with Linux: Mount it read-only and copy the important files first.
- Reserving and releasing order capacity with an event stream: Immutable events and negative orders instead of counters.
- Restoring a 1978 Batavus Champion — Vintage Bike Rebuild: Found in a shed, stripped to the frame, rebuilt with modern parts — the bike that started it all.
- Riding the Brompton M6L Superlight folding bike: Unfolds in about twenty seconds, handles like a normal bike.
- rsync Backup Rotation — Daily, Weekly, Monthly Archives: A practical rsync backup scheme with incremental transfers and automatic rotation.
- rsync-backup-rotator, automated backup rotation for rsync: A dependency-free bash script that rotates backups by weekday and month.
- Running a home server in the crawl space under the floor: A dry spot below the floor works fine for backup hardware.
- Running Claude Code on a dedicated Linux VPS: Why the coding agent gets its own always-on machine.
- Schindelhauer Siegfried Road, a single speed road bike with belt drive: Minimal design, Gates carbon drive, completely silent riding.
- Schwalbe Durano Plus tires, 4200KM before the first flat: What puncture resistant means in practice, measured in kilometers.
- Schwalbe Marathon Plus Tour tires, 11.000 km without a puncture: A long-term verdict from daily commuting in all seasons.
- Secure ShellFish, SSH/SFTP storage in the iOS Files app: Every iOS app can reach the files on your own server.
- Securing the VMware ESXi management console with an nginx proxy: Pre-authentication keeps scanners and bots outside.
- Serving static pages with Nginx instead of a WordPress setup: Fewer moving parts means faster loading and fewer security risks.
- Shimano 7-Speed Shift Cable Replacement — Step by Step: The most bookmarked bike repair guide on the site — with photos of every step.
- Sleep tracking with a wrist wearable vs a chest strap: Why optical sensors miss heart rate spikes at night.
- Smart EQ fortwo range and charging in daily use: A week of city driving on a 17.6 kWh battery.
- Smart Roadster — The Impractical Car I Loved and Sold: A tiny sports car with a leaky roof, a sluggish gearbox, and an unforgettable driving experience.
- Stage fright measured with a heart rate monitor: Data from two performance nights, spike by spike.
- Stargazing at Mount Teide on Tenerife: Why the volcano offers some of the clearest night skies.
- Supernova E3 Pro 2 dynamo headlight, specifications and installation: 205 lumen from a 6V dynamo, built to last.
- Supernova M99 DY PRO, a dynamo headlight with high beam: Up to 1,000 lumens and 200 lux from a hub dynamo.
- Surface Slim Pen versus Apple Pencil: Lighter and smaller, with great responsiveness.
- Swimming with Apple Watch — Waterproof Performance Tested: Pool laps, open water, heart rate in the water — does it actually work?
- Syncing Android photos to a laptop with Syncopoli and rsync: Automatic copies over your own wifi, no cloud account.
- Tap Strap review, typing without a keyboard: A Bluetooth wearable that turns finger taps into text.
- TCS Amsterdam Marathon Review — Running 42 km Through the City: One of Europe's fastest marathon courses — through the Vondelpark, along the Amstel, finishing in the Olympic Stadium.
- Tecnam P2002JF specifications, a two-seat light aircraft: Specs and real fuel use of a small Italian plane.
- Telling AI-written text from human writing, the measurable differences: Errors and vocabulary give the origin away.
- The Agentic Web explained: Machines talking to machines on your behalf.
- The idle power cost of an always-on office network: 80 watts around the clock adds up to real money.
- The man with the hammer, running out of energy on a long ride: A small snack and a few minutes on a bench fix more than you think.
- The messy middle: six biases from Google's Decoding Decisions report: How shoppers loop between exploring and evaluating before they buy.
- The security risk of shared hosting, explained: When a neighbour is hacked, your site is exposed too.
- The Solari board, the mechanical flip-flap station display: The clattering departure boards made by Solari di Udine.
- ThinkPad X200 as a Linux terminal with Debian and OpenBox: A 2008 laptop that refuses to become obsolete.
- Tightening bike bolts to the correct torque: Many parts carry their maximum torque in Nm; never guess a value.
- Touch Screen UI Design — What Mouse Interfaces Got Wrong: Why most touch interfaces are broken — they were designed for a cursor, not a finger.
- Traffic Shaping on Linux with iptables and tc — A Practical Guide: Limit bandwidth per IP or service using HTB queuing disciplines.
- Tudor Black Bay 36 — Three Years of Daily Wear: Not a first-week review. This is what happens after 1,000+ days on the wrist.
- Turning old photos into spatial photos on Apple Vision Pro: One tap in Apple Photos adds a third dimension to any picture.
- Unison file sync between Linux and iPhone over SSH: One shared folder on my own NAS instead of a big cloud drive.
- UptimeRobot downtime alerts on iPhone and Apple Watch: Critical alerts that override Do not disturb.
- Using an Apple Watch with Cellular as Your Only Phone: What happens when you ditch the iPhone entirely and live with just the watch.
- Using dig to Query DNS — A Beginner's Guide: The most useful terminal command for debugging domains, email, and web hosting.
- Valencia Marathon Review — Running a World-Class Course in Spain: One of the world's top 5 fastest marathon courses — flat, warm, and finishing through the City of Arts and Sciences.
- VanMoof Electrified S range in daily commuting: Claimed 60 to 120 kilometres, and what I actually got.
- Venloop Half Marathon Review — Running 21 km in Venlo: A first half marathon through Limburg — with sensor data, honest preparation notes, and the finish line feeling.
- Vibe Coding — When AI Writes Code from Natural Language Prompts: The trend of letting AI generate code from descriptions — tested by a developer who's been coding for decades.
- Visual Journal, an open-source Solari flip display built with ThreeJS: Flip-flap panels in 3D, released under the AGPL.
- Volla Phone review, a Google-free Android smartphone: VollaOS without preloaded Google apps, tested as a daily phone.
- Websites on autopilot with scheduling, feeds and AI: Content that shows, hides and refreshes itself without manual work.
- What MCADD is and how newborn screening detects it: A rare metabolic disorder that blocks the body from burning fat.
- WHOOP 4.0, what the sensor tracks and what changed: Smaller, waterproof charging, and more body signals.
- Whoop Heart Rate Accuracy — Tested Against a Chest Strap: Optical wrist sensor vs clinical-grade chest strap — the real numbers.
- Whoop Sleep Tracking — What It Actually Measures: Sleep stages, HRV, respiratory rate — and the limits of wrist-based measurement.
- Why a ThinkPad X200 is Still a Great Laptop: An old machine that outperforms new ones — for the work that actually matters.
- Why cloud hosting is often just rebranded shared hosting: A fancy name for the same shared server.
- Wim Hof Method workshop, ice bath and breathing exercise tested: Cold therapy, breathing and commitment, tried in an Amsterdam ice bath.
- Working in VR — Can Apple Vision Pro Replace Your Monitor?: Spatial computing tested for real work — not demos, not games, but actual productivity.
- Working Offline First — Why Your Software Should Work Without Internet: The case for computing that doesn't break when the WiFi drops.
- Working with the Surface Pro X, an ARM Windows tablet in daily use: Capable hardware, with a keyboard that stands out.