-
Advent of Code is a fun challenge and this year I decided to attempt solving it in Purescript. Today I'm declaring this attempt a failure. This post will serve as a postmortem. Choosing Purescript Last year I solved my first Advent of Code using Go. It was fun and I … -
Benchmarking ssh-agent performance
I have an application idea that would require calling ssh-agent rather frequently - but how many requests per second can it handle? To answer this question I wrote a small benchmark in Go. It runs a tight loop sending messages for ssh-agent to sign. Turns out the agent is pretty fast … -
Many-to-many relationships in Excel data model
This is a quick hack to build many-to-many relationships in Excel data model even though they are not supported out of the box. Create intermediate calculated table and use DAX to fill it with unique values from related columns on both sides of the relationship: EVALUATE FILTER( DISTINCT( UNION( VALUES … -
A pull request 10 years in the making
Once upon a time there was a bug in a free software project that annoyed me for long enough that I've learned C to fix it. And it felt good. Now that we've got a TL;DR out of the way, here is the story. There is a good torrent … -
Advent of Code 2022 was fun!
This was the first year I participated in Advent of Code. In case you're not familiar with it, AoC is a Christmas themed programming competition consisting of 25 challenges published daily (from December 1st to December 25th). The web site produces personalized puzzle inputs for each user and expects only … -
Negotiating down to 100Mbit between two 1Gbit devices
Connecting two gigabit-capable devices via 4-wire UTP cable is an abomination, but sometimes we have to live with it (e.g. when a greedy ISP decides to save a few cents and pulls a cheap cable to your apartment). The fun starts when the devices try to negotiate Ethernet connection … -
"No user exists for uid" when pushing to git repo
Today I tried to automate pushing to a Git repository from a Docker container. And like many others I failed with an error: $ git push No user exists for uid 2918 fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository … -
Pip-installable Pelican themes
Installing Pelican themes the default way is not very pleasant: You need to invoke a separate CLI tool You may need to create some symlinks and ensure that they don't go stale the next time you use Pelican Some people (me) have resorted to git submodules instead of official CLI … -
Unexpected workaround for Libvirt VMs with cgroups v2 in Cirrus CI
Today I wrote a commit message that was several screens long. I think it deserves to be a blog post of its own Update: the commit linked above required some modification to remove flakiness, but the workaround still stands. Diff provided in this blog post was updated to reflect current … -
D-Link DIR-825 (rev.B1) throughput test
So, the year is 2022 and I'm still using D-Link DIR-825, rev.B1 as my edge router at home. Thanks to the power of opensource it is running a modern and secure OS (OpenWRT) long after the manufacturer has abandoned this product. Even though OpenWRT (and Linux in general) has …