Using the typos CLI tool

I recently discovered the typos command line tool and created the following workflow around it in Git repositories: typos -w # writes the changes to file git add -p # allows you to review the changes interactively Some git clients use line-based diffs, which make the differences difficult to see. In these cases, you may want to switch to the diff-highlight tool, which is shipped with Git. On macOS with Apple Silicon and a Brew-installed git, you can use these commands to make git use it:...

September 29, 2025

Research ideas for graph processing

I recently attended SIGMOD and chatted with people in the data management and graph processing communities. These conversations and other interactions led me to come up with a few research ideas. I lack the time to actively pursue them, but I list them below for future reference. If you are working on something similar or would like to collaborate, please drop me a line! Single-node LDBC Datagen: I have long thought about developing a single-node variant of the LDBC Datagen....

July 6, 2025

Cards and apps in the Netherlands

I moved to the Netherlands during the summer of 2020 — about five years ago. Over time, I’ve learned about a bunch of useful apps and cards that make everyday life easier. Here’s a brief collection of them. Apps You’ll very likely need the DigiD app for dealing with taxes, accessing municipal messages, vaccination records, etc. The built-in iOS weather app and widget are quite unreliable. Most people use the Buienradar app, which also has its own widget....

July 6, 2025

Graph news – May 2025

A lot of things happened in the graph space so far. Here’s a quick summary with a few comments. On DB Engines ranking, graph databases have continued their rebound and have been on a growth trajectory for the last 5 months. In 2021, Gartner predicted that “by 2025, graph technologies will be used in 80% of data and analytics innovations, up from 10% in 2021, facilitating rapid decision making across the organization”....

May 25, 2025

Reading and watching list

Being Glue by Tanya Reilly How to Write Blog Posts that Developers Read by Michael Lynch Reality has a surprising amount of detail by John Salvatier The Bitter Lesson by Rich Sutton Cottagecore Programmers by Theodore Morley The lethal trifecta for AI agents: private data, untrusted content, and external communication by Simon Willison I Regret My $46k Website Redesign by Michael Lynch ...

May 20, 2025

Regular expressions for catching typical writing errors

Some regular expressions for catching typical writing errors – spelling issues (US spelling), repeat words, etc.: ag --md " a [aeioAEIO]" ag --md " an [bcdfghjklmnpqrstvxzwyBCDGHJKPQRTVWXYZ]" ag --md -i "\s\b(\w+) +\1\b" ag --md -i "\s\b(\w+ +\w+) +\1\b" ag --md '\w+isation\b' ag --md 'e\.g\. ' ag --md 'i\.e\. ' ...

April 28, 2025

Database conferences in 2025

In 2025, both top-tier database conferences will be in Europe: SIGMOD in Berlin (June 22–27) and VLDB in London (September 1–5). There are quite a few papers and satellite events I am looking forward to – I listed them below. SIGMOD 2025 The papers presented at SIGMOD are listed on the website: research track, industry track. Update: the detailed programme is out! Keynotes: How to Build a Brain by Christos H....

April 27, 2025

Generating TPCx-BB data sets

TPCx-BB (née BigBench) is a Big Data benchmark. To generate the TPCx-BB data sets, download the TPCX-BB_Tools_vX.Y.Z.zip package from the TPC website. To run the generator, you’ll need a Java 8-compatible Java Virtual Machine. To obtain this, you can, e.g., install the Zulu JVM via SDKMAN!. Then, you can run the generator as follows: java -cp pdgf.jar pdgf.Controller To list the available commands, run: help To start the data generation, run:...

April 7, 2025

Cloudflare R2 command line snippet

I am a big fan of Cloudflare R2, an object storage that provides egress-free downloads. R2 is compatible with the AWS S3 API, so you can use the AWS CLI tool – with a few caveats. These include: You need to add the --endpoint-url https://<account_id>.r2.cloudflarestorage.com argument for every call. When copying to R2, you need to pass the --checksum-algorithm CRC32 argument. I often store multiple AWS configurations, which requires passing an additional argument: --profile <your_r2_profile_name>....

April 6, 2025

DuckDB vs. coreutils

A few months ago, I wrote a post on the DuckDB blog where I explained how DuckDB’s SQL can express operations that developers typically implement with UNIX commands. Then earlier this week, I published a light-hearted social media post about DuckDB beating the UNIX wc -l command for counting the lines in a CSV file by a significant margin (1.2 vs. 2.9 seconds). This post received a lot of feedback with the criticisms centered around two points:...

December 4, 2024