RSSAmplifier

Blog

Edouard Klein

Personal homepage of Edouard Klein

rdklein.frRSS feed ↗26 posts

Latest posts

(untitled)

Edouard Klein's personal page Edouard Klein's personal page GNU Guix needs your help 💚 There’s a fundraising campaign right now to help sustain Guix development and infrastructure. Donate / Learn more → Essays and articles [2014] How to climb Mount Kilimanjaro like an alpinist [2018, in french] Introduction à l'apprentissage par renforcement, sans code et presque sans maths ( archived here )…

Dr Glendarme, or How I Learned to stop Kerberos and Love Factotum

Dr Glendarme, or How I Learned to stop Kerberos and Love Factotum Dr Glendarme, or How I Learned to stop Kerberos and Love Factotum 1. Intro This is my talk at the 9th International Workshop On Plan 9, in Waterloo, Canada in April 2023. You can watch it below Votre navigateur ne supporte pas la balise vidéo. or on youtube . You can download the slides or read the paper . 2. Thanks So, I will again…

9P, le protocol parfait pour l'IoT

9P, le protocol parfait pour l'IoT 9P, le protocol parfait pour l'IoT 1. Intro Ceci est la transcription d'un talk donné à l'Open source Expérience 2024 à Paris. Il fait écho à un article publié dans MISC en 2020: 9P, le protocole parfait pour l’IoT , archivé ici . Vous pouvez voir la video ici: Votre navigateur ne supporte pas la balise vidéo. ou sur youtube . Vous pouvez télécharger les slides .…

9P, the perfect protocol for IoT

9P, the perfect protocol for IoT 9P, the perfect protocol for IoT 1. Intro This is a translation of a transcript of talk given at Open Source Experience 2024 in Paris. It echoes an article published in MISC in 2020 (in french): 9P, the perfect protocol for IoT , archived here . You can watch the video here (in french, sorry): Votre navigateur ne supporte pas la balise vidéo. or on youtube . You…

I put a NVMe in my desktop and now my server won't reboot

I put a NVMe in my desktop and now my server won't reboot I put a NVMe in my desktop and now my server won't reboot After my VPS at OVH went up in flames , I switched it to GNU Guix. That VPS had lived through many hours of trial and errors, misconfigurations, reconfigurations, globally installed hand-built software, etc. Despite having kept careful notes, rebuilding it from scratch was just not a…

A purple screen as an anti-cheat feature

A purple screen as an anti-cheat feature A purple screen as an anti-cheat feature Figure 1: 50 shades of purple When there are too many people in the cohort of students I must grade, I resort to an automatically graded challenge. In this particular case, the challenges were written in Go, using Charm , accessible through SSH. The code is not publicly available to prevent students from accessing it…

My Transient UI For Local LLMs

My Transient UI For Local LLMs My Transient UI For Local LLMs Two big frustrations for me when I started using Large Language Models (LLMs) for coding were: copy-pasting large chunk of code back and forth having to painstakingly provide many details about the context of the piece of code I wanted: where it would be called from, what it could call, libraries or other methods from the project, what…

Ted Kaczynski Keeps Popping Up

Ted Kaczynski Keeps Popping Up Ted Kaczynski Keeps Popping Up In what is possibly yet another illustration of the Baader–Meinhof phenomenon , I've been running into Ted Kaczynski, also known as the Unabomber , multiple times recently. If you are one of today'slucky 10.000 who didn't know of him already , here is a rundown : He was a gifted mathematician on the tenure track, then he suddenly quit…

Lisping in Python

Lisping in Python Lisping in Python This is more or less what some students will write to evaluate whether the AI player they just wrote is any good: def win_rate (player, opponents=[ "random_player" , "minimax_player(1)" , "minimax_player(2)" ], N=10): """Return the win rate for the given player against a specifiable roster of opponents, averaged over N trials.""" answer = {} for opponent in…

Unit Of Production

Unit Of Production Unit Of Production Figure 1: This is a simplified model of the capitalistic unit of production It shows the flow of money through the unit, and the counterflow of goods and services and work. The unit can represent anything from part of the time of a single worker, to the global economy as a whole. Its (undrawn) counterparties are the natural environment, from which resources…

Manifest

Manifest Manifest bites/ Small posts, akin to a blog, each developping a single point *.tikz source code for images, to be converted to pdf, then to svg. Written as standalone tikz documents. Author: edouard Created: 2025-01-16 Thu 17:48 Validate

Provably fair Heads Or Tails: the protocol

Provably fair Heads Or Tails: the protocol Provably fair Heads Or Tails: the protocol Let's say you go to an online casino, playing a simple game: a coin toss. Heads: you lose your bet, tails you double your money. How can the casino prove to you that the bet is fair ? That is to say, that the casino is not cheating by using a biased coin ? Here is a simple protocol I devised. The links link to an…

Provably fair Heads or Tails: attacks on the seed parts

Provably fair Heads or Tails: attacks on the seed parts Provably fair Heads or Tails: attacks on the seed parts Let's recall our provably faire Heads or Tails protocol : Assume an agreed upon seedable random generator and bet amount. The casino selects a random seed part \(s_C\) , and sends its signed hash to Alice, along with a proof that twice the bet amount has been put in escrow. This is the…

#+title:Provably fair Heads or Tails: hash collisions

Provably fair Heads or Tails: hash collisions Provably fair Heads or Tails: hash collisions Let's recall our provably fair Heads or Tails protocol : Assume an agreed upon seedable random generator and bet amount. The casino selects a random seed part \(s_C\), and sends its signed hash to Alice, along with a proof that twice the bet amount has been put in escrow. This is the commitment . Alice…

#+title:Provably fair Heads or Tails: non repudiation

Provably fair Heads or Tails: non repudiation Provably fair Heads or Tails: non repudiation Let's recall our provably fair Heads or Tails protocol : Assume an agreed upon seedable random generator and bet amount. The casino selects a random seed part \(s_C\), and sends its signed hash to Alice, along with a proof that twice the bet amount has been put in escrow. This is the commitment . Alice…

Guess the deadline

Guess the deadline Guess the deadline I have written an anomaly detection system on my server to ping me when the logs show some unusual activity (yet another story for another day). I investigated a surge in traffic on one of my webpage: For context, the web page in question is the instructions for my students on how to write and submit the work I'll grade them on. This web page was given to them…

Write a Manifest file in your software repos

Write a Manifest file in your software repos Write a Manifest file in your software repos In my source code repositories, in addition to the expected README file, I maintain a Manifest.org file. In the shipping context, a manifest is a list of what's inside your ship. In a similar fashion, the manifest file of your software project should list the various files in your repos, along with a human…

My LinkedIn-ify Scripts

My LinkedIn-ify Scripts My LinkedIn-ify Scripts Sometimes I post my thoughts on LinkedIn, but I'm writing them in org-mode , in the comfort of my emacs configuration, honed over many years of twiddling various options and adopting new packages. org-mode has many advantages, among which the ability to link to my other notes, to link to external resources, to embed code snippets, etc. Formatting on…

Text is cool again

Text is cool again Text is cool again I'm working with text everyday, whether from my emacs windows or from the terminal. In the terminal, I use pipes everyday. I love this old-school AT&T video featuring Lorinda Cherry 1 1: About which you can know more by reading the obituary Douglas McIlroy wrote for her . demonstrating the use of pipes for spell checking (notice e.g. how uniq is spelled unique…

Inferno Is Cool

Inferno Is Cool Inferno Is Cool Table of Contents 1. VPN The Inferno operating system works according to those three principles, herited from Plan 9: Every resource is a file ( e.g. the network, the screen, the mouse). Each process gets its own view of the filesystem (this is called a namespace ). One can import and export any part of the filesystem, using a protocol called 9P, locally or…

Do as I cite, not as I do

Do as I cite, not as I do Do as I cite, not as I do This was initially intended as a set of rules that I expect my students to adhere to when I'm grading their written work. It has evolved into a bit more of a meandering rant. I still expect my students to adhere by the rules henceforth set, but I hope this document is more than that. 1. TL;DR: Academic citations are a thing , with (mostly…

Applied Cryptography

Applied Cryptography Applied Cryptography Table of Contents 1. Introduction 2. Deliverables 3. Grading 4. Publication 5. Project Ideas 5.1. Topology 5.1.1. One server, many clients 5.1.2. One client, many servers 5.1.3. Rendez vous 5.1.4. Distributed backend 5.1.5. Peer to peer 5.2. Application ideas 5.3. Inferno tools 5.4. Small Web 5.5. Scale 5.6. Helpful questions 6. Avoiding Limbo 7. Advice 8.…

Excel

Excel Excel This is just a link dump of all the resources I point my students to when I teach Excel usage. These resources are not about Excel, but about the adjacent topics one should delve into in order to use Excel effectively. Plotting: Seaborn is a Python graph library with beautiful and sensible defaults. The graph gallery can serve as an inspiration and a catalog. A layered grammar for…

(untitled)

Python 101 Python 101 The goal of this course is to teach beginners how to solve real life problems using a computer. Emphasis is given on autonomy (e.g. searching the web for answers), and finding a solution even if it is not the canonical one. Syllabus About the course Slides for the first session Python basics Evaluating code Finding help Syntax basics <2022-09-28 Wed> challenge This was just…

Getting started with Inferno

Getting started with Inferno Getting started with Inferno Table of Contents 1. Install and run Inferno 2. Documentation 3. Communications with the external world 4. Afterword 5. Changelog 1. Install and run Inferno Inferno can be compiled from sources, but this is difficult to do in practice. I packaged it using GNU Guix. First, install GNU Guix as a package manager on your so-called "foreign"…

Cachez ce bit que je ne saurais voir

Cachez ce bit que je ne saurais voir Cachez ce bit que je ne saurais voir Bit Le mot bit vient de la contraction en anglais de binary digit , chiffre binaire: Figure 1: bit est la contraction de binary digit . Il désigne l'unité d'information manipulée par la quasi totalité des ordinateurs de la planète: un emplacement qui ne peut avoir que deux valeurs. Toutes nos machines électroniques voient le…