In Search of the Perfect eReader

A decade of e-readers, my hunt for privacy in the digital reading world.

Chasing Powder in Valle d’Aosta

Exploring Crévacol, La Thuile and Pila in Italy.

Masters of Doom

The two Johns that defined my teenage gaming years.


A stunning, brilliant videogame trip.


My takeaways from FOSDEM 2024.

High system load on a RPi without SD card

Raspberry Pi 3 locking up polling for a missing SD card.

The Invincible

A journey into Stanisław Lem’s space adventure.

Spicing my Kindle with KOReader

In search of a more privacy-friendly e-reader.

Visiting the LEGO House in Billund

If ever there was a “children’s” museum, then this is it.

Nix Runtime Environment Variables

Assigning environment variables at runtime in nix configurations.

Self updating ad blocking with AdGuard Home

Fully automated network-wide DNS ad blocking for free.

The Time Machine

Book review of H. G. Wells’ first novel.

Homebrew E-ink Calendar Display

A digital calendar for the family.

Joining the Fediverse with honk

Self-hosting a Fediverse server with honk.

Receiving APRS Packets with a Baofeng Radio

Receiving APRS and running an IGate with a Baofeng UV-5R, a Digirig and Linux.

Jekyll Development Environment on Nix

An isolated and reproducible Ruby development environment for my website.

Garmin Bike GPS Without Account

Uploading tracks and downloading activities without Garmin account.

High contrast design

A simpler website design.

Building a Nix package

How to package a simple Go application for NixOS.

Influx Time Series

Building beautiful dashboards with InfluxDB and Telegraf.

GNOME extensions form the distro’s package manager

Installing GNOME extensions via Fedora’s ‘dnf’ instead of Firefox.

Micro:bit Dishwasher Tracking

Programming MicroPython on a micro:bit with the kids.

About RDFa Lite, Microdata, and Microformats

Why I am switching from microformats to RDFa Lite.

Switching to Fedora

Five years ago, I switched from macOS to Ubuntu, last week I hopped to Fedora.

Restore a single Clonezilla file or folder

Mount a Clonezilla backup image to restore only a few files or folders.


A new hobby.

DuckDuckGo style !bang searches in Firefox

Replicate !bang searches locally in Firefox.

Logging solar photovoltaic output with Arduino

Using a kilowatt meter with S0 contacts to log Voltage pulses via MQTT.

Google Maps Alternatives

OpenStreetMap alternatives for maps and navigation.

Project Hail Mary

Book review of Andy Weir’s latest novel.

Baofeng GT-22 radios

Programming, possibly illegal, Baofeng GT-22 walky-talkies.

Blank home page in Microsoft Edge

Change Microsoft’s Edge browser’s home page to a blank page.

Opt-out of Google’s FLoC in Rails

Opting out from Google’s Federated Learning of Cohorts in Ruby on Rails.

Matroska .mkv files in Synology’s DS Video app

Playing Matroska files via Synology’s DS Video app on iOS.

Summer Camp Tournament 2021

Abusing a website API to give my kids an edge.

Hosting this Blog

What does it cost to host this blog?

A Family YouTube

Converting videotapes to digital files for viewing, archiving, and sharing.

Screen Time

Rules and habits around smartphone use at home.

Add a Transparent Stamp or Signature to a PDF

Quickly add a transparent image to a PDF file from the command-line on Linux using qpdf or PDFtk.

Signed URLs with Backblaze B2

Temporary access to private files in Backblaze B2 with secure links.

Bought an Office Chair: the Herman Miller Aeron

Cross one off the bucket list: replacing my old kitchen chair with a Herman Miller Aeron ergonomic office chair.

Radio Telescope Effelsberg

A visit to an impressive hidden radio telescope in the German Eifel mountains.

Decoding Images from Space

Using an SDR dongle to listen to weather images from NOAA satellites.

Second Factor Authentication for SSH

Using ecdsa-sk or ed25519-sk combined with a hardware security key for multifactor SSH authentication.

Building a Website with my Kids

Introducing web development to my two younger kids.

Firefox’s Site Specific Browser

Firefox 73 has a built-in server-specific browser mode.

Making PDFs Searchable

Using pdfsandwich to OCR PDFs from the command-line.

Network-Wide Ad-Blocking with UniFi

Implementing network-wide ad-blocking with a Ubiquiti UniFi Security Gateway (USG).

Live Streaming on a Budget

Live streaming on a budget with OBS and an iPhone.

My Firefox Extensions for 2020

A list of my currently installed, privacy-focused, Firefox extensions.

i3, again

Given the i3 window manager another try after my failed attempt 12 months ago.

Unique Email per Service

Use a unique email per service, like you do for passwords.

Dark Theme

Enable website dark mode in browsers on Linux.

Villa Empain, Brussels

Visit to Villa Empain, Art Deco in Brussels.

Configuring a JCM Tech WAVE motion receiver

How to add or remove access cards on a JSM Technologies WAVE 500 garage door motion receiver.

Landing your First Developer Job

Dos and don’ts for beginning programming job interviews.

The InterPlanetary File System

Introduction to IPFS, the distributed web.

Switching to i3

Switching to a tiling window manager on Ubuntu.


Eleven years of blogging, a retrospective.

Linux Application Development

Programming CODAv, my first native desktop Linux application.

Restore color of old LEGO bricks

Whitening old LEGO bricks with hydrogen peroxide.

Raspberry Pi emulation

Running ARM Raspian in a QEMU virtual machine.

The year of my Linux desktop

First experience of switching to desktop Linux from macOS as a web developer

Configuring a wireless network adapter on Ubuntu

Connecting to a WiFi network from the Ubuntu command-line terminal, without a graphical interface.

Palmer Writing Method

Discovering Palmer’s Penmanship coursebook (1919) as a web developer.

Continuous integration with Drone

Installing a Drone continuous integration (CI) Ubuntu 14.04 server.

The Mutt e-mail client

Configuring mutt as a text-based e-mail client.

HSTS in Rails

Setting up Strict Transport Security in Ruby on Rails 4.

2014 Reading List

Books I read in 2014.

Archiving our digital heritage

Archiving as much as possible before online services go dark.

Thunderbird and Google SMTP timeouts

Debugging e-mail sending issues only to learn my VPN blocked outgoing traffic.

Error handling with Ember Data

Formatting errors with Ember’s ActiveModelAdapter.

Switching to Linux

Leaving Apple and switching to Linux as my main OS.

Public & private keys for a Bitcoin address

Find the public and private key for a Bitcoin address in Bitcoin Core.

Highlight debug code in Vim

Automatically highlight words in Vim to spot them easily.

Send coins to a multisig address

Creating a Bitcoin multi-signature address with Ruby.

The Bitcoin testnet

Getting started with the Bitcoin testnet.

MongoHQ review

Using MongoDB in production via MongoHQ.

1% for Open Source

Frequent donations to open-source projects.

My daily worklog workflow

Keeping simple timesheets.

Photovoltaic output with a Flukso

Measuring solar panels with a Flukso utility meter.

LaTeX invoice package and MacTex

Generating invoices in LaTeX.

Ruby and OpenSSL certificates

Fixing the Ruby 1.9 “certificate verify failed” error.

Samsung ML-2165W printer review

A basic €60 laser printer.

Advance WB-IP02W WiFi-G IP-camera review

Reviewing a crappy cheap WiFi camera.

Getting started: relays

Opening our parking’s lift gate with an Arduino and smartphone.

Programming an Arduino Ethernet via FTDI adapter

What is an FTDI adapter?

Simple getters in Backbone.js

Overriding default Backbone getter to more complex logic.

Rake and multiple arguments

Beware of spaces when passing Rake arguments.

Rails 3.1 asset pipeline in production

Compress assets during Rake deploy.

Sinatra view tests with Capybara & HAML

Using Capybara for unit, instead of acceptance testing.

Capybara POST requests

Force Ruby’s Capybara gem to make an HTTP POST request even when it’s not recommended.

An internet-connected lamp

A homebrew color changing lamp with Arduino.

Send data from a computer to an Arduino

Most tutorials will explain how to send data from an Arduino to a computer, what about the opposite?

Lightroom to iPhoto export update 1.2

Upgrading my Lightroom export plugin to support Lightroom 3 and Mac OS X Snow Leopard.

Click on an image in a link with Capybara

Using Capybara’s ‘click_link’ to open a link or button without text.

Ruby 1.9 server encoding

Configuring UTF-8 to fix incompatible character encodings.

Thinking Sphinx and God

Using the Ruby God gem to monitor a Sphinx search deamon.

Sinatra, DataMapper and RSpec 2

Getting up and running with Sinatra, DataMapper and the new RSpec.

Rails 3, time to give back

Please donate a few bucks to the “Rails 3: Appreciate with Charity” campaign.

Rendering GPS logs in Ruby

Plotting a GPS log as a SVG image with Ruby.

Form submit in a Rails functional test

Getting started with functional tests in Ruby on Rails.

No more ‘error_messages_for’ in Rails 3

Ruby on Rails 3 depreciates the ‘error_messages_for’ method.

Validate composite keys in Rails 3

Comparing model validations between Ruby on Rails 2 and 3 with composite database keys.

Shuffle an array in Ruby

A quick look at the ‘shuffle’, ‘rand’ and ‘sample’ array methods in Ruby.

Building a 64-bit prefpane

Configuring Xcode to build for 64 instead of 32-bit architectures.

How many days in a month

Ruby one-liner to calculate how many days there are in a month.

Multi size default images with paperclip

Create multiple versions of an image in Ruby on Rails with Paperclip.

Sync data with Dropbox

Use applications on different computers by synchronizing data via Dropbox.

RuPy 2009 roundup

Review of the 2009 Rupy conference in Poznań.

Belgian iPhone & iPad apps

A list with all Belgian iPhone and iPad apps I could find.

RailsRumble reflections

Our entry for the 2009 RailsRumble programming competition.

Moving my ISP: from Telenet to Dommel

Switching service providers for my Belgian home internet connection.

Favorite iPhone apps

The iOS apps installed om my smartphone.

Updating bundles with Sparkle

Using Sparkle, a software update framework, in a Mac OS X Cocoa bundle.

Fishy EcoStrip

A power strip with USB plug, but is it real?

ZooCamp Antwerp

A BarCamp in the Antwerp Zoo.

A Belgian web conference

Announcing twiist, a web conference in Leuven, Belgium.

Sharecard for iPhone

Send an iPhone vCard contact via mail.

Wikipodium meeting Gent

“Wikis and Classification, or Water and Fire?” meeting notes.

BarCamp Antwerp

My experiences from this weekend’s BarCamp in Antwerp.

LazyPoken, a Poken auto starter

A tiny Mac OS X application to automatically open a Poken when connected.

Bind user defaults to different identifier

Save perferences for a Mac OS X bundle.

Do you Poken?

First review of the Poken USB ‘business’ card.

The future of business cards

Ideas to replace paper business cards with something more automated.

BarCamp Gent

My BarCamp Ghent experience.

Twitter as news source?

Could Twitter play a role as a new source?

Mobile Momentum?

Is it time for a mobile revolution?

Mobile Monday Brussels

Review of yesterday’s Mobile Monday presentations in Brussels.

TechCrunch Euro Tour

Impression from some of the pitches at the Belgian TechCrunch event.

Mobile Monday Amsterdam

Impressions from Mobile Monday 8 at Amsterdam.

From Dopplr to OpenStreetMap

Generate an image of a map based on your current Dopplr location with Ruby.

A TLD for Flanders?

Proposal for a Flemish top-level domain by the NV-A.

Drupal multi-site without subdomains

Setting up a multi-tenant Drupal using subdirectories instead of subdomains.

Welcome Geode

Mozilla rolling out location awareness in Firefox.

Warehouse is now open source

Refreshing corporate communication by entp.

Adobe CS4 launch in Ghent

Impressions from the Adobe CS4 launch event with Aral Balkan.

dConstruct 2008 roundup

Impressions from the dConstruct conference in Brighton.

Happy 1st Birthday!

Today marks the first-year anniversary of this site.

iPhone barcode scanners

Comparison of barcode scanner apps for iOS.

Mac apps for switchers

A list of my favorite Mac OS X applications.

Lustro on the streets

Adding Google Contacts and hCard exports to our Lustro application.

Launching milkcarton with Lustro

A new home for our Mac OS X applications.

Firefox Download Day

Break a record and help the web by downloading Firefox 3.

Disposable RSS feeds

Proposal to add a TTL attribute to RSS feeds.

Automated website spell checks with Spellr

Web application to scan websites for spelling errors.

GeoRSS with Ruby on Rails

Adding GPS coordinates to an RSS feed.

Generated maps with Ruby on Rails

Generating an image of a map with my current location.

iTunes song ratings with Funes

Small taskbar application for Mac OS X to quickly rate your iTunes songs. file sharing

An effortless service to share larger files over the internet.

Google Social Graph

Building a social graph with Ruby on Rails Google’s Social Graph API.

Missing gems in LightTPD

Gem issues after upgrading to Ruby on Rails 2.

DIY flash diffuser

Making a simple cardbox diffuser for my camera.

Remember The Milk interface for iPhone

Mobile Safari alternative for RTM’s to-do list application.

Small disk images

Create even smaller Mac OS X disk images via the command line.

Unlocked French iPhone upgrade to 1.1.3

Our French iPhones finally work in Belgium without jailbreaking.

iPodia for Wikipedia

An optimized mobile Wikipedia for iPhone.

Freemarker syntax highlighting for TextPad

Color coding for Freemarker templates in TextPad.

Lightroom to iPhoto export

An Adobe Lightroom to iPhone export plugin for Mac OS X.

Unlocking a French iPhone

How we bought an iPhone in France… as Belgians.

Leopard Tech Talk notes

My review of the Mac OS X Leopard Tech Talk in Amsterdam.

Microformats book review

Microformats: Empowering Your Markup for Web 2.0 by John Allsopp.

Installing ImageMagick & RMagick for Ruby on Rails

Getting up and running with RMagick on Mac OS X.

Sitemaps in Ruby on Rails

Helping search engines by adding a sitemap to my website.

My Flickr photos with RoR

Adding photos to my website via the Flickr API.

GZIP output compression

Add HTTP compression to all Ruby on Rails requests.

Apache versus LightTPD

Ever wondered why none of the Ruby on Rails websites run on Apache?

Automated Technorati ping

Automatically update Technorati when publishing new posts.

Web design checklist

Attention points to check off before launching a website.

Apache AddHandler or AddType directive?

What are the differences between the AddHandler and AddType Apache directives?