Publications

Mob programming – Adventofcode Day 12

During the month of December, Advent of Code passes out a new puzzle every day. The daily challenges are a fun way to learn new algorithms and getting to know new ways of programming. In our software engineering team we followed along at least the first half of the programming challenges…

2022 Annual Report – C4DT

Observer 7 Der Service Public im digitalen Zeitalter

Observer 6 Obligation of Cyberattack Reporting; Why, How, and for Whom?

eBPF: fast bytecode for the kernel

Why? Nowadays, Linux is deployed in many component of the network fabric. Your home NAT probably runs it, your datacenter’s router also. As it needs to handle incoming packet on gigabits links, the speed at which the system handles the packets becomes important. If you run your router in user-space,…

Book Review: Cloud Empires (2022)

In this book Lehdonvirta powerfully argues that we we are mistaken to consider digital platforms as being businesses that operate in a market. Rather, they are “governments” or “virtual states”, with the only difference being that their leaders enjoy immense power without a commensurate level of accountability.

Revisiting Kademlia

For a side-project of mine I’m looking at Kademlia (Wikipedia), which is used in peer-to-peer (P2P) systems. One problem of P2P systems is that nodes come and go randomly. So it’s not easy to retrieve stored data. Where to store data? And then how to find it again? What happens…

What is DevOps?

DevOps is rather a confusing term. Everyone uses it a lot and not everyone is able to define what it really means. Here are some thoughts of what our team think when we hear DevOps: CI/CD. Source-code, compilation. Kubernetes, Ops responsabilities. Automated tests. These are some good talking point, as…

Developer skill matrix

Some time ago I read the developer skill matrix and thought it was very interesting. I put it in the infamous “Read later” bookmark folder, and actually came back to it! So last Monday, during our regular group catchup time, I presented this page. In fact every week one of…

Book Review: Click Here to Kill Everybody (2018)

In “Click here to Kill Everybody”, computer security, privacy, and cryptography specialist Bruce Schneier argues for the pressing need for greater internet security in the wake of the unrelenting expansion of the Internet into our physical world, specifically the Internet of Things (IoT).

C4DT FOCUS 4 Happy fourth birthday, GDPR!

Book Review: Ruling the Root (2002)

Milton Mueller’s, by now, classic on the history of internet governance is a meticulously researched, documented, and analyzed a work and can arguably be considered is a masterpiece of the social and political history of technology.

Cyberattack Reporting Obligation

Having fun with stackoverflow stats

For our weekly meeting-presentation I took the stackoverflow-stats from 2022. Then with the team we went through it and discussed the different statistics. First I thought we’ll get bored quickly, but after 1h30 I had to push the meeting to other subjects. So here are some things we found: Developer…

asdf: a great way to manage all developers CLI tools

Do you ever code in modern Javascript? Then if you have multiple projects you are probably happy that nvm exists. Or maybe you’re more of a Python person? Then you must know about pyenv. Java? jenv or sdkman! Thing is, you often need to have multiple versions of a tool…

mosh: the mobile shell

Have you ever tried using ssh on a train? Or closed your laptop and found that all of your remote session are now frozen? Or using it via a crowded antenna tower? In all theses cases, ssh fails to work as expected. This is due to the fact that common…

Tauri for cross-platform apps

One of the most well-known framework to create cross-platform apps is Electron. In it you write your app in Javascript or Typescript. This code runs in a node environment and the GUI is displayed in a browser. Like this, the app can be ported easily to different operating systems. Even…

C4DT FOCUS 3 Hacking in times of crises

Omniledger

A fast and efficient blockchain created by the lab of prof. Bryan Ford.

Observer 5 The Challenges of Cryptofinance

test.vim: running tests the easy way

As we all know, writing tests when developing software is very important¹. Indeed, most modern programming environments have frameworks to write and run tests, sometimes even in the standard tooling: pytest for Python, cargo test for Rust, go test for Go, etc. Let’s set aside the actual writing of the…

The SwissCovid App

In response to the COVID-19 disease that has stormed the world since early 2020, many countries launched initiatives seeking to help contact tracing by leveraging the mobile devices people carry with them. The Federal Office of Public Health (FOPH) commissioned the effort for Switzerland, which resulted in the official SwissCovid…

Cross-platform network programming in wasm/libc

I’m still working on my fledger project. It’s goal is to create a node for a decentralized system directly in the browser. For this I want the following: Works in the browser or with a CLI: have a common codebase but use different network implementations Direct browser to browser communication:…

Shoup on Proof of History

For a long time I tried to understand what Proof-of-History brings to the table. What is it useful for? What problem does it solve? At the beginning of may 2022, Victor Shoup, who is a renowned cryptographer and currently working at DFinity, took a deep dive into Proof of History.…