RSSAmplifier

Blog

Gabor Szarnyas

Recent content on Gabor Szarnyas

szarnyasg.orgRSS feed ↗30 posts

Latest posts

Verifying residential address for Revolut in Hungary

Recently I was helping a family member setting up a Revolut account in Hungary. A step in this process included verifying their address. It seems to me that – unlike many fintech apps – Revolut does not accept utility statements or bank statements, but instead requires you to upload a picture of your residential address card (in Hungarian: “lakcímkártya”, or “lakcímet igazoló hatósági…

Kùzu forks

Since the acquisition of Kùzu, a number of forks have popped up: LadybugDB/ladybug: Ladybug is an embedded graph database built for query speed and scalability. predictable-labs/ryugraph: Ryu, a fork of Kuzu, is an Embedded Property Graph Database built for speed with vector search and full-text search built in. Kineviz/bighorn: Integrates with Kineviz’s GraphXR visualization platform.…

DuckLake on Leafcloud

This tutorial is an adaptation of “Public DuckLake on Object Storage” to the object storage of Leafcloud, an Amsterdam-based cloud provider. Hosting DuckLake on Leafcloud Setting Up the Object Store Navigate to the Leafcloud dashboard at https://create.leaf.cloud/. Go to Object Store | Containers and create a new container. We’ll use the name ducklake-storage. Tick the checkbox for Public…

Installing Windows 11 on the Framework Laptop 13

(Updated on 27 June 2026 to reflect my latest experience.) Installing Windows 11 on the Framework Laptop 13 turned out to be trickier than I initially envisioned. The main difficulty was that the Windows 11 image does not recognize the disk manager of the laptop’s motherboard. So, without installing that driver first, it was not able to create the partitions required for installation.…

Benchmark lightning talk

“Benchmarking gone wrong”, one of the best and funniest benchmark talks I’ve ever come across – it’s well worth 6 minutes to watch it.

Preparing for long train rides

This year I have taken a few long train rides across Europe, such as Berlin to Amsterdam. I found that these need a bit more preparation than the typical short flights within Europe, so here’s a(n incomplete) checklist for these trips: Gear: Dress comfortably. Take noise cancelling headphones. Take multiple charging cables. Some companies just rolled out USB-A ports, so I would definitely…

Updated graph databases slide deck

Following the recent retirement of KùzuDB, I published an updated version of my Graph Databases slide deck. I originally presented this back in February at FOSDEM 2025. Now I updated it with new systems such as KùzuDB’s fork, LadybugDB.

Sleeping tricks

In the last decade, I had my fair share of bad sleep. Often, I pushed through it helpless and the usual tips – aim for a regular bedtime, stop caffeine intake mid-afternoon, reduce screen time in the evening – did not help much. However, over the years I built up a repertoire of techniques. This is obviously not medical advice. All I can say that if you’re struggling with bad sleep, I…

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…

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:…

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.…

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…

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

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\. '

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…

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…

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…

DuckDB vs. coreutils

A few months ago, I wrote a post on the DuckDB blog where I explained how DuckDB&rsquo;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…

“Data Science at the Command Line” book in DuckDB

Today I solved the exercises in Chapter 5 of the Data Science at the Command Line book using the DuckDB command line client. This page documents my solutions. Prerequisites Clone the https://github.com/jeroenjanssens/dsutils repository and add it to the PATH. To get the results for the reference solutions, you also need csvkit, which contains the csvlook, csvcut, csvsql, etc. CLI tools. brew…

Installing tidyverse on macOS

The tidyverse R package cannot be installed on macOS because one of its dependencies, ragg fails to compile with the following error: clang++ -std=gnu++17 -I"/opt/homebrew/Cellar/r/4.4.1/lib/R/include" -DNDEBUG -I./agg/include -I/opt/homebrew/opt/freetype/include/freetype2 -I/opt/homebrew/opt/libpng/include/libpng16 -I/opt/homebrew/Cellar/libtiff/4.6.0/include -I/opt/homebrew/opt/zstd/include…

Setting up a MacBook for presentations

Overview A recurring task in my day job is to organize technical conferences (most recently, DuckCon #4 and #5), and to run the event from my laptop. To this end, I configure my laptop to ensure the best experience for both speakers and attendees. Most of the events I organize are free, so there is a limited budget available. Additionally, there is a limited amount of time to prepare. For example,…

macOS command line tricks

Make git beep upon failed push Motivation: When I issue a git push command, I immediately navigate away from the terminal. Therefore, if the command fails due to the remote rejecting it after a second, I do not see this and assume that the push was successful. To avoid this, we&rsquo;ll configure the shell so when git push fails, it gives a small beep sound. To do so, follow these steps:

DuckDB workshop

Setup DuckDB installation site duckman: DuckDB Version Manager railway.ipynb Jupyter notebook Weather data set Source: Visual Crossing Weather wget https://blobs.duckdb.org/data/amsterdam-weather.csv Railway data set Source: Rijden de Treinen wget https://blobs.duckdb.org/nl-railway/stations-2022-01.csv wget https://blobs.duckdb.org/nl-railway/tariff-distances-2022-01.csv wget…

Using the Aztec Code on an iPhone to enter the gates at Dutch train stations

TL;DR: To prevent your iPhone from switching to Apple Pay at train station gates when scanning your ticket&rsquo;s code, use Guided Access mode. This can be turned on in the accessibility settings and activated by triple-clicking the side button of your phone. Recently, when travelling to FOSDEM from Amsterdam to Brussels via railway, I ran into the following problem. The Aztec Code for my train…

Publications at VLDB 2023

I co-authored the following papers, to be presented at VLDB 2023 and its satellite events. These papers capture the work on the new and updated benchmarks of the Linked Data Benchmark Council (LDBC), as well as LDBC&rsquo;s organizational restructuring. Additionally, an initial DuckDB-based prototype of the SQL/PGQ language extension was accepted at the demo track. VLDB 2023 main track – G.…

Working without sudo

I spent many years working in academia, where the typical development environment was an on-premises Linux cluster where I was given a user without sudo rights. In the absence of root access, the recommended way to install packages was to ask the system administrators to do so. However, this process can introduce considerable delays, so I was keen to look for alternative solutions. Version…

E-bike rental options in Amsterdam

Recently, I had a few family members visiting me in Amsterdam and I wanted to show them around the Dutch countryside. To give us a larger radius – and put towns like Marken, Zaandam, and Naarden comfortably within reach – I decided to rent e-bikes. In this post, I document my findings about the available options and the bikes I rented. Note that my lessons learnt are valid as of summer 2022 and…

Self-joins

Introduction A self-join is a relational join operation which joins a table to itself, typically based on equivalence predicates. For example, given the table \(\mathsf{knows}(\mathsf{person1\_id}, \mathsf{person2\_id})\), representing a social graph where people know each other, and aliases of this table \(\mathsf{knows1}, \mathsf{knows2}, \ldots\), take the following query: SELECT…

Graph query languages

The maze of graph query languages can be difficult as there are a number of similarly named languages with subtle differences. This document contains a very brief description of popular graph query languages. Languages Property graphs A number of languages exist for defining graph queries over property graphs. Here&rsquo;s a list of 10 popular languages: Cypher: The declarative graph query…

(untitled)

2025 November: I launched the new branding and site design of Graph Data Council (GDC), formerly known as the Linked Data Benchmark Council (LDBC). Now it&rsquo;s also available under ldbc.org, graphdatacouncil.org and graphdata.io. November: I gave a talk about DuckDB at the Compass AI & Data Summit in Budapest, titled DuckDB: Big Data Unplugged. November: I gave a talk about DuckDB and DuckLake…