Improve your shell skills with Clai


I created a very simple command line utility in go that helps you create non-trivial command line / shell commands. It’s actually just a thin wrapper around the openai API’s, but it can be pretty usefull and saves you from switching to a chatgpt session or stackoverflow. E.g. $ clai "group a tab separated file by first column, sum them by third column" awk -F'\t' '{sum[$1] += $3} END {for(group in sum) print group, sum[group]}' file.…
Read more ⟶

When Good Intentions Go Unanswered: The Frustrations of Reporting an Open Redirect Vulnerability


A few weeks ago, after tinkering a bit with the url in my location bar while navigating around ziggo.nl I noticed an Open Redirect Vulnerability. I checked for the proper procedure to report this to Ziggo, not actually expecting any reward, so the report was a really low effort one. But it was sufficent for Ziggo to assess the impact and address the issue. I found Ziggo’s Meldpunt beveiligingslekken which contained an email address and sent them my report.…
Read more ⟶

Deleting documents in CouchDB for real


Recently, while syncing a CouchDB database to a new cluster, we noticed a massive amount of deleted documents being synced. This was completely unnecessary for our migration and slowed things down drastically. I started looking into the proper way to clean up, purge, compact a CouchDB and was surprised that it was actually quite hard (and at first illogical) to really removed old, deleted documents Revisions and deleted documents Whenever a document gets updated (even if unchanged), a new revision gets created.…
Read more ⟶