This page is discontinued. All new articles and updates of existing articles are posted on

image Fields of interest
Parce que j’aime cette vie, j’aimerai la mort aussi. [1]

— Rabîndranâth Tagore
L’Offrande lyrique

On this page you will find some of my works and files. Before using them please read copyright license and disclaimer of liability.

New blogs and articles

Information technology / computer programming


  • sudox (sudo for X) is  a bash script that executes commands under X in UNIX and LINUX as an arbitrary user with sudo. It provides  the necessary privileges using xauth over a pipe. I use it for example to execute firefox as  a different user with low privileges. Maybe you use sux allready. So what sux is to su, sudox is to sudo.

secbak, secrest
  • secbak and secrest are scripts for use with afio a cpio replacement. The scripts implement incremental multi-volume backups and restore. Unlike with tar, files are compressed individually and can be optionally encrypted.

Publish only PUBLIC marked subtrees
  • is a bash script that reconstructs parts of a UNIX or LINUX directory tree with symbolic links. I use it in order to publish automatically selected parts of my hard disk on a web server. Only files and directories within folders named PUBLIC are published.

lnr -s
  • lnr -s is a bash script which creates symbolic links with the same syntax as the UNIX command ln -s. Unlike ln -s it searches the shortest relative path between the source and destination and creates the link with a relative path. Most of the time symbolic links are very short in distance and used mainly to reduce redundancy. The advantage of relative symbolic links is that whole branches can be moved without breaking links. If you do so, please make sure that branch you want to move does not does not contain relative links pointing outside the moving branch.

Note taking with Asciidoctor
Note taking with reStructuredText
  • Markup languages like reStructuredText are perfectly suited for quick note taking. Type your notes with your favourite editor, view and browse them with Chromium, Chrome or Firefox.

    All you need is the so called rst-note ash-script, the python packages restview, docutuils, pygments and any browser of your choice: Chromium, Chrome or Firefox.

    Scripts and manual: Note taking with reStructuredText (pdf)
    The project is hosted Github: getreu/restructuredtext-notetaking



C / C++



Additional European circuit stencils


Java transcoder
  • Transcoderjava is a small helper tool to change the encoding of all *.java files in directory tree after having checked the encoding of the input files.

  • Transcoderjava est un petit utilitaire de transcodage. Il permet de changer le codage de tout les fichiers *.java dans une arborescence en même temps après avoir vérifié le codage des fichiers d’origine.

Java tool collection
BlueJ CNPI edition
  • BlueJ CNPI edition is a fork of the unchanged BlueJ Sources especially configured to fit our class room needs. This version requires Java 7!
    The main differences between the original and this distribution:

    1. Support for netbeans-swing applications: Open, compile and execute Netbeans-Projects directly:

    2. General support of UTF-8 and usage of utf8 in writing and reading files for all supported operating systems.

    3. Extensions Klassenkarte.jar and MainRunner.jar are packed in.

IT security

Estonian ID Card Software DigiDoc

Networking server support for IPv6
  • The web-server supports the Internet Protocol version 6 (IPv6). In order to access this site via IPv6 your operating system and Internet Service Provider must also support IPv6. You can test this precondition here. Having 10/10 points your IPv6 connection works fine. It depends on your system settings if IPv4 or IPv6 is used by default. The firefox addon IP6 or not shows your current connection type.

    IPv6 only networks are easy and secure. Address Family Translation (AFT) allows a gradual migration to IPv6 by providing seamless Internet experience to greenfiled IPv6-only users, accessing IPv4 Internet services. Learn about NAT64 gateway technology with this Cisco article. Some commercial products like Cisco ASR 1000 Series router run NAT64. Andrea Dainese published a step by step manual how to Connect an IPv6 only site to an IPv4 only world using the Rasperry PI and OSS to implement a NAT64 gateway.

Access your home server without router configuration

Linux configuration files

Debian 8 Jessie configuration files
i3 window manager extensions
  • i3 is a tiling window manager for advanced Linux users. This article (pdf) presents

    • a file-manager extension,

    • an exit-mode extension and

    • a pass-through-mode extension.

    The source code of the suggested i3 extensions: /etc/i3/config.

Howtos and manuals

Debian legacy to UEFI boot
Debian: mount encrypted logical volume
Linux Restena VPN
  • Connect-Linux-to-Restena-VPN-howto-2 is a German step by step manual for Linux users to connect to the Restena Virtual Private Network (VPN). It is only useful for Restena members who are living outside of Luxembourg and want to use the fichier élèves application. The obsolete Version 1 of this document in French is still available here.  

Linux Luxtrust
  • A short manual explaining the installation of the Luxembourgian Luxtrust Signing Stick on Ubuntu 09.10 Karmic Koala. It has been reported that it also covers Ubuntu 10.04 (lucid).

Redirect the sound of an application
Secure Computer Cluster Administration with SSH
Set up an encrypted NAS on Oroid-C2 or Rasbperry 3 with OpenMediaVault
  • This note explains how to set up a cheap Raid 1 NAS with an Odroid or Rasbperry board and two USB-harddisks using OpenMediaVault. Only very cheap and largely available hardware components are used. When very high availability is required it is recommended to hold available a second Oroid/Rasbperry board with a mirrored SD-card containing the NAS operating system. In this way the system has no single point of failure. Encrypted Raid 1 NAS with Odroid-C2 or Rasbperry (pdf).


Patches of various software
  • My patches of various software can be found here.


ASN.1 tiny decoder
  • ASN.1 tiny decoder is a simple and fast ASN.1 decoder without external libraries designed to parse large files.

    There is a good “Pyasn1” ASN.1 python library out there. It is quite complete, but learning how to use it is very time consuming. Furthermore Pyasn1 is not designed to parse large files. This why I wrote this tiny ASN.1 decoder. It’s design goal was to be as fast as possible (with Python). Download here.

Fast search in large CRL

Rust lang

RSA encryption implemented in Rust
  • rustlang-play-rsa is collection of functions related to RSA implemented in Rust.

    The algorithms are implemented as described on wikipedia. Please find conrete links and pseudocode samples in the source code.

    This code was written for pedagogical purposes only. Do not use it for any serious security requirements!
ASCII Art Hangman for kids
  • is a guessing game for two or more players. One player thinks of a word, phrase or sentence and the other tries to guess it by suggesting letters or numbers, within a certain number of guesses. In this version for children the computer selects a word, phrase or sentence randomly out of a word-list defined in a customisable word-list. In the course of the game Ascii-Art images - designed for children - are progressively disclosed (see documentation, pdf). The source code is hosted on GitHub

Enhance Embedded System Security With Rust
  • Article: Enhance Embedded System Security With Rust: Case Study of Heartbleed:
    Real-time embedded systems have to meet a combination of requirements that are in deep tension: they are expected to deliver timely results, observing strict deadlines, all using only very limited resources, computing power and energy. To this day, the most common programming language in this environment is C/C++ because of its zero-cost abstractions and fine control over memory layout. With the upcoming communication ability through network interfaces, an additional requirement gained in importance: security. Unfortunately, C/C++ supports some secure software design principles only rudimentary. Too many very severe vulnerabilities are directly related to the fact that C/C++ does not guarantee memory safety. To exemplify this, the prominent Heartbleed vulnerability is discussed in terms of causes, technical details and impact (html), (pdf). (slides).

  • Stringsext is a Unicode enhancement of the GNU strings tool with additional functionalities: stringsext recognizes Cyrillic, CJKV characters and other scripts in all supported multi-byte-encodings, while GNU strings fails in finding any of these scripts in UTF-16 and many other encodings (html).

    The source code is hosted on Github: getreu/stringsext

Forensic-Tool Development with Rust
  • Master Thesis: Forensic-Tool Development with Rust.
    Within the framework of this study the suitability of the Rust ecosystem for forensic tool development was evaluated. As case study, the tool Strings­ext was developed. Starting from analysing the specific requirements of forensic software in general and those of the present case study, all stages of the software development life-cycle have been executed, up to the first production release. Strings­ext is a reimplementation and enhancement of the GNU-strings tool, a widely used program in forensic investigations. Strings­ext recognizes Cyrillic, CJKV characters and other scripts in all supported multi-byte-encodings while GNU-strings fails in finding these in UTF-16 and other encodings.+ During the case study it has become apparent that the Rust ecosystem provides good support for secure coding principles and unit testing. Furthermore, the benchmarks showed a satisfactory performance of the resulting Strings­ext binaries comparable to the original C version. (book html), (book pdf), (slides html), (slides pdf).


Pedagogy / study materials

Java exercises for beginners
  • Java à l’école is a collection of Java BlueJ exercises for A-level students in French.

  • Java à l’école est un recueil d’exercices pour débutants sans connaissances d’autres langages de programmation. Contrairement à d’autres méthodes didactiques les exercices introduisent directement les bases de la programmation orientée objet en respectant le concept de programmation "Architecture Modèle/Vue/Contrôleur".

Java teachers guide
  • Java teachers guide is a short computer teachers guide how to write Java exercises. This document is in German.

  • Astuces Java pour enseignants est un ensemble de recommandations destinés aux professeurs d’informatique pour écrire des exercices en Java.

  • Java Tipps für Lehrer ist eine Sammlung von Empfehlungen und Richtlinien für Lehrer zum Erstellen von Schülerübungen. Die Tipps sind das Ergebnis einer Analyse der häufigsten Lehrerfehler beim Umstieg von der prozeduralen Programmierung zur objektorientierten Programmierung.

Oscilloscope screenshot generator
List of free school fonts
  • What computer fonts are suitable for learning handwriting in an international learning environment? The free school fonts list aims to meet the following requirements:

    • comparability with most European text books for beginners (lowest common denominator),

    • all European characters available,

    • excellent typographic quality,

    • real free font without restrictions (see licence),

    • ease of usage.

    To install and use the above fonts on your computer download the free-font-archive and follow instructions in How to use Bienchen handwriting font and How to use Deutsche Normalschrift handwriting font.

    Some fonts did not make into our final selection because they do not meet fully all our above criteria. They may be right for you: List of free alternative fonts.

  • Welche Computer Schriften eignen sich zum Erlernen des Schreibens mit einer internationalen Lernergruppe oder verbessern der Handschrift? Die Liste freier Schulschriften erfüllt die folgenden Kriterien:

    • Übereinstimmung mit den meisten europäischen Schulbüchern für Anfänger (kleinster gemeinsamer Nenner),

    • alle europäischen Zeichen verfügbar,

    • hervorragende typographische Qualität,

    • wirklich freie Schrift ohne Beschränkungen (siehe Lizenzen),

    • einfache Handhabung.

    Um die Schriften auf Ihrem Computer zu installieren, laden Sie bitte das Freie Schriften Archiv herunter und folgen den Anleitungen in How to use Bienchen handwriting font und How to use Deutsche Normalschrift handwriting font.

    Einige Schriften haben es nicht in unsere Finalauswahl geschafft, da sie nicht gänzlich alle der obigen Kriterien erfüllen. Sie könnten aber die richtige Wahl für andere Anwendungszwecke sein: Alternative Liste freier Schriften .


Transactional Analysis

Student pages

A website for my students with additional instructional materials:

  • Website for LJBM students.

  • Website for TES students.


Crime Economy and Bitcoin
  • Mitigate the devastating effects of crime economy through eradicating Bitcoin
    This note first analysis the preconditions for a successful regulation policy on new information technologies. We explain how the new crime economy, based on anonymous division of labour, works. By going back in history we understand that controlling the money flow is the key to mitigate organized crime. Applied to our generation the author argues, that the most efficient way to fight against this new age of crime economy is to eradicate Bitcoin by prohibiting mining. (html), (pdf).

Non-Software Licenses

All works on this web-site distributed under which are not software or its documentation are licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Creative Commons License
Software Licenses

If not stated otherwise in the source code, all software and its documentation distributed under is licensed under a Apache License Version 2.0.

For all content distributed in other directories then and it subdirectories, all rights are reserved.

Disclaimer of liability

The material, programs and information contained on this website are for general information purposes only. You should not rely upon the material or information on the website as a basis for making any business, legal or any other decisions. Whilst I endeavour to keep the information up to date and correct, I make no representations or warranties of any kind, express or implied about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information, products, services or related graphics contained on the website for any purpose. Any reliance you place on such material is therefore strictly at your own risk. I will not be liable for any false, inaccurate, inappropriate or incomplete information presented on the website.

In a nutshell: enjoy and make this world a better place ;)

Please check files for consistency referring to their sha256 message digests.

If you want to contact me try the following email address :


Note that there is a very picky spam filter so there is no guarantee that your email will reach me.

1. Rabîndranâth Tagore: L’Offrande lyrique. Because I love this life, I will love death as much. I first saw this epitaph on grave near a chapel in Clairfontaine Belgium. The grave has been taken away many years ago but the words remained in my mind.