Publications
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…
Coding Guidelines @ EPFL
There are a variety of coding guidelines at EPFL. Some focus on a lab’s preferred language and their specific tools, some are more on project handling and general git usage. Most are a mix of the above. Sadly, theses guidelines aren’t scrupulously followed, aren’t usually automatically checked and some are…
Matrix on Mobile with OmniLedger login
For some time it was impossible to use the c4dt matrix chat on the mobile phones, as RiotX didn’t work correctly with the OmniLedger login. Now you can use the Element app together with our login to have matrix chat on your phone. TL;DR Of course you just want to…
Critical infrastructures in Switzerland: are they crisis-resilient?
SwissCovid (DP^3T project) – a proximity-tracing app against COVID-19: building trust in a technology solution
Exploring golang with a REPL
It is customary for users familiar with a command-line shell or dynamic languages such as Python to work with a REPL, or Read-Eval-Print-Loop. This kind of interface is very powerful for common exploratory tasks: quickly interact with some data or object, prototype an idea, or learn a particular functionality or…