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 https://blobs.duckdb.org/nl-railway/services-2019.csv.gz
wget https://blobs.duckdb.org/nl-railway/services-2020.csv.gz
wget https://blobs.duckdb.org/nl-railway/services-2021.csv.gz
wget https://blobs.duckdb.org/nl-railway/services-2022.csv.gz
wget https://blobs.duckdb.org/nl-railway/services-2023.csv.gz
wget https://blobs.duckdb.org/nl-railway/services-2024-01.csv.gz
wget https://blobs.duckdb.org/nl-railway/services-2024-02.csv.gz
wget https://blobs.duckdb.org/nl-railway/services-2024-03.csv.gz
wget https://blobs.duckdb.org/nl-railway/services-2024-04.csv.gz
VS Code hotkey Define keyboard shortcut Ctrl + Enter for executing selection in terminal To use the same editor (VS Code) and the same keyboard shortcut (Ctrl + Enter) to run the active line / selected piece of code (for CLI) or the active cell (for Python notebooks), add the CLI hotkey as follows:...
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’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 was saved on my iPhone. When I pulled out the phone to scan it at the entrance gates of Amsterdam Centraal, my phone kept opening the wallet for Apple Pay, making the Aztec Code no longer visible....
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’s organizational restucturing. Additionally, an initial DuckDB-based prototype of the SQL/PGQ language extension was accepted at the demo track.
VLDB 2023 main track – G. Szárnyas et al.: The LDBC Social Network Benchmark: Business Intelligence workload [slide deck] TPCTC 2023 – 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 managers For installing programming language-related tooling, it’s recommended to use version managers (also known as “version multiplexers”)....
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 are likely to change in the future....
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 knows1.person1_id AS pA, knows1.person2_id AS pB, knows2.person2_id AS pC FROM knows knows1 JOIN knows knows2 ON knows2.person1_id = knows1.person2_id; The query specifies a self-join on the \(\mathsf{knows}\) table, \(\mathsf{knows1} \bowtie \mathsf{knows2}\), and produces two-hop paths in the social graph....
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’s a list of 10 popular languages:
Cypher: The declarative graph query language used by the Neo4j graph database. Cypher popularized the ASCII art syntax for defining graph patterns....