2025
- 09 Mar — NS Dubbeldekker Nieuwe Generatie's design
- 27 Feb — Using S3 Metadata to list recently uploaded objects
- 04 Feb — Identifying your AWS account when using multiple sessions
- 02 Feb — Save and load Docker images locally
- 02 Feb — Stadler GTW on New Jersey Transit's River LINE
- 31 Jan — Pixel 4a and the inevitable battery issues
- 16 Jan — Get default AWS network resources using Terraform
- 07 Jan — Managing access to AWS accounts through AWS IAM Identity Center
- 04 Jan — Making blogging easier
- 02 Jan — Creating iCalendar files in Python
2024
- 29 Dec — IKEA's search and order kiosk
- 07 Dec — Trams in Luxembourg
- 01 Dec — Import a CSV file into SQLite
- 01 Dec — Bad week for the Dutch Railway
- 24 Nov — Fetching RSS feeds from YouTube
- 23 Nov — The NS International app could be better
- 10 Nov — The 7 hour trip to Metz
- 20 Oct — The 50:HERTZ Club Train at ADE 2024
- 13 Oct — Stadler's Growth in the USA
- 21 Sep — Stabilise video using FFmpeg
- 07 Sep — Departure timers to improve level crossing safety
- 01 Sep — Delays on the drielandentrein
- 15 Aug — Working with dates in Athena and Grafana
- 11 Aug — Better navigation on longer train routes
- 05 Aug — Export a SQLite query results to CSV
- 03 Aug — EuroCity from Brussels to Paris
- 31 Jul — Trams are back at Amstel Station
- 28 Jul — Displaying Gantt charts on GitHub
- 23 Jul — Writing front matter using Python
- 07 Jul — Dynamic partitioning with Amazon Data Firehose using CloudFormation
- 06 Jul — Using sqlite-diffable as a Python module
- 02 Jul — Set environment variables
- 21 Jun — Generating an RSS for AniList activities
- 16 Jun — Accessing GitHub Action variables
- 09 Jun — Cross-border commuting and the Tri-Country Train
- 02 Jun — Creating dynamic text on icons in Leaflet using SVG
- 02 May — Browse objects in the S3 console across accounts
- 14 Apr — Creating rail maps with Cytoscape.js
- 24 Mar — Create rail timetable graphs in R
- 23 Mar — CAF trains for the MerwedeLingelijn
- 16 Mar — RSS: You should use it.
- 08 Mar — Access the AWS console through access and secret keys
- 03 Mar — Good transit: Coverage and Frequency
- 18 Feb — Secure your SQS queues at rest and in transit
- 14 Feb — Schedule EC2 instances in a single-account
- 11 Feb — Time crunch at Venlo to Germany
- 19 Jan — Capture screen as a video device using FFmpeg
- 06 Jan — NS Sprinters: Sprinter Nieuwe Generatie
2023
- 29 Dec — Berlin's tram network
- 11 Dec — Notify on tag updates in AWS using EventBridge
- 10 Dec — Using text embeddings to recommend similar articles
- 07 Dec — Is Amsterdam's metro really a metro?
- 25 Nov — Suggesting related content in Hugo
- 21 Nov — Farewell NS 1700
- 10 Nov — Leaves and trains don't mix: Maliebaan edition
- 04 Nov — Should you really build your own SSG?
- 03 Nov — Insert JSON objects into SQLite
- 01 Nov — Geocode names via API
- 22 Oct — Slipping on autumn leaves
- 14 Oct — Cutting Edge CSS: Nesting
- 08 Oct — Optimize image hosting with Hugo
- 18 Sep — WhatsApp and Markdown-ish?
- 11 Sep — IAM eventual consistency and Terraform
- 27 Aug — NS Sprinters: Sprinter Light Train
- 17 Aug — Combining images with a fade in ffmpeg
- 05 Aug — NS Sprinters: SGM
- 07 Jul — Connecting Keycloak to AWS IAM Identity Center (SSO)
- 24 Jun — Riding the Elizabeth Line!
- 30 May — European Sleeper's first passenger ride!
- 14 May — Geeking out on the Madrid Metro
- 06 May — The FTD Protos on the Valleilijn
- 30 Apr — The Gothic Arches on the Utrecht-Hilversum line
- 19 Apr — The NS ICNG's first passenger ride
- 15 Apr — Talgo II: Building on Innovation
- 01 Apr — List EventBridge Rules that have event bus as a target
- 01 Apr — Spotting Jacobs Bogies
- 05 Mar — Lisbons yellow trams!
- 05 Mar — DDNS with Linode and a Linux machine
- 25 Feb — The Herring Gull: Amsterdams first metro
- 19 Feb — Trans Europ Express DE4 at the Nederdlands Transport Museum
- 17 Feb — Strukton's battery powered 1600 and 1700 locos
- 12 Feb — Consistent strive to efficiency of the Paris metro
- 29 Jan — Steam locomotives at Disneyland Paris!
2022
- 13 Nov — Configuring temporary AWS credentials for GitHub Actions
- 14 May — Remove EXIF data from images
- 08 Mar — Setup Linux Wireguard server and client
- 10 Feb — Delete versioned S3 buckets
2021
- 21 Dec — Get interface IP address from terminal
- 28 Nov — Trim video in ffmpeg
- 20 Nov — Update images used by docker-compose services
- 13 Nov — Mount an NFS share in Linux
- 02 Nov — EBS volume detatch notification
2019
- 25 Oct — Useful tar commands
- 16 Oct — Squash commits already pushed to remote
- 09 Jul — Web Scrapers
- 01 Jun — Trim video
- 01 Jun — Reverse video and audio
- 01 Jun — Merge audio and video
- 01 Jun — Convert video to GIF using FFmpeg
- 09 May — Useful git commands
2018
- 22 Mar — Use refresh tokens with PRAW
- 21 Jan — Crime Hunter - Shoot the enemy before they shoot you! A web game built in JavaScript using Phaser