Publications

Awesome Privacy — A curated list of privacy-preserving apps

Many popular cloud applications collect enormous amounts of information on their users. [...] Raising awareness of the issue, and providing ways to reduce it, is a worthy goal.

Digital Trust 2025

Functional shell scripting

I’m quite a huge fan of functional programming, since I learnt about it some years ago. I was doing imperative programming for years and was quite used to it. But learning a new way to conceptualize programs was a real pleasure. Now that I’m deep into it, I want to…

SASE or VPN?

Today I Learnt (TIL): SASE [sæsɪ]- so what is it, how does it compare to a VPN, and should I use Tor? I heard about it from Ria at C4DT, who told me SASE is the new VPN.It might be better than VPN and will solve all the world’s problems.…

C4DT FOCUS 1 Focus on China Tech regulation

This edition has been written by scientific writer Lionel Pousaz

Choosing a Web Framework

At the C4DT Factory, one of our tasks is to develop demonstrators for research projects. The goal is to provide a quick introduction to a project, and allow visitors to interact and get a feel for the technology.

cheat, examples for CLIs

CLIs are very powerful, from the tip of fingers, you can quickly make the computer do anything you want. No need to wave your mouse around, hoping to find the right sub-sub-sub-menu where the feature you want is implemented. But it comes at a cost: for each command, you need…

Vitalik’s answers to the big questions

I found this nice twitter thread from Vitalik Buterin, the inventor of the Ethereum blockchain: Doing a random twitter experiment just on this day. Only the 268 people I follow can reply to this tweet. Feel free to ask things and I'll talk about anything crypto or non-crypto related. —…

libsodium’ encrypted stream in Rust

NaCl is one of the most used cryptography library around, and it is understandable: it is easy to use (it hides the crypto-magic used), portable (via the libsodium fork), and available in many languages. It is used by one of the project we are helping, drop, written in Rust, which…

Zero-trust cloud week

Should we trust digital immunity passports?

Why Blockchain is Not Yet Working – 2021

This Monday I presented the following article. It discusses blockchains shortcomings. Even if it has been written in 2018, it is still very up-to-date… What follows here is a very opinionated piece. As such it reflects the journey I did in blockchains over the past 6 years. And I’m sure…

immutable.js, concurrent-safe data structures

Concurrent programming is one the oldest and hardest issues in the Computer Science Book. For years, we have been using locks, big threads sharing the minimum, using optimistic reasoning for “how data will be updated”. And we are still stuck with the same issues of some part of the code…

Zoom it out

We’ve been looking at the very nice https://gather.town and played around with it. Instead of having a fixed view of all participants, you can walk around and ‘meet’ different persons in gather.town. You can edit the space your liking. It looks very much like a very old-school Zelda: What I…

Ansible: powerful automation made easy

The management of IT infrastructure is a constantly evolving topic. A very interesting concept that emerged in the last decades is the idea of infrastructure as code: instead of configuring servers in an artisanal fashion, the process is formalized into definition files, which are then automatically “executed”. There are multiple…

Prettier, a uncompromising code formatter

Code formatting is the most known instance of bikeshedding: everyone has a different opinion on it and nobody is willing to compromise. Do you remember the hours-long discussions on using tabs versus spaces? Where to add empty lines? Alignment of fields? For some years now, many languages provide their own…

2020 Annual Report – C4DT

Go compiler optimizations for structs

This article looks into the optimizations of the golang compiler with regard to different usage of structs. It answers the following questions: Does it avoid unnecessary structure copies? Does it inline where necessary? To answer theses questions, I wrote a small example and decompiled it to see how well it…

Failing OmniLedger login

Connection Failures There are some common reasons why the OmniLedger login can fail. So far we have seen the following ones: Corporate firewalls Private browser settings If you have a corporate firewall that blocks access to non-standard ports, the only thing you can do is to remove the VPN. This…

Maturity Evaluations

The C4DT/Factory works to bring EPFL’s great ideas to our partners. We do so by working on the existing code created in the labs. Because most of the code written in the labs has the goal to create graphs in a paper, it is not directly usable in another project.…

Data 2025 v.2.0

TLDR for “Managing Technical Quality”

Some notes from https://lethain.com/managing-technical-quality/ – most of the comments are copy/pasted, so ‘I’ is the author… In italic some more C4DT-specific notes. Technical quality is a long-term game. There’s no such thing as winning, only learning and earning the chance to keep playing. Do the quick stuff first! Hot Spots…

Manipulating elections in cyberspace: are democracies in danger?

Recover data on ByzCoin

How to get data back on ByzCoin OK, now it happened – I lost my addressbook on ByzCoin. As we’re using the Partner-login internally, I have a list of all accounts I created on the blockchain. Currently it’s not encrypted using Calypso yet, work in progress. So my account on…