RSS Amplifier

Blog

Jens Getreu's blog

blog.getreu.netSource feed ↗59 posts

Live Last read · last published · next check

Latest posts

keyboard-US.svg

keyboard-US.svg File:KB United States.svg - Wikimedia Commons

Muscle memory friendly home row mods (QMK+ZMK+Vial+Kanata, v1.4.1)

Last updated: 2026-07-12 This article presents a keyboard layout suitable for 40% keyboards, based on “home row mods”. The layout is designed for software developers and authors of multilingual texts. Particular emphasis was placed on ease of learning. The layout presented here is implemented both as a Kanata driver for standard keyboards on Linux, Mac, and Windows computers, and as [ZMK Firmware]…

Setting up an IPv6 only home network with OpenWrt

Almost all ISPs today offer both IPv4 and IPv6. The same applies to network hardware for home use. Modern devices can easily communicate via IPv4 and IPv6 simultaneously using the so-called dual-stack technology. If the server supports both protocols, the end device decides which protocol is used. Of course, this can only work if the software of the entire infrastructure is laid out twice: once…

The long way of the German sharp s "ẞ" into Linux

[Last update: 2025-05-15] The European Keyboard EurKEY is a keyboard layout based on the American keyboard layout. It is very popular with translators and programmers who appreciate the easy access to special characters. It also offers convenient access to many European letters and accents. In 2017 a long awaited new letter joined the German alphabet: the uppercase sharp S: ß . Since then, the…

How to shallow clone a Cow

Rust&#x27;s “copy on write” Cow abstraction is very useful to avoid costly cloning when dealing with vectors or strings. A Cow allows you to defer allocating new memory until it becomes inevitable. Consider the following example: use std :: borrow :: Cow ; fn do_something_or_nothing ( v : Cow < str >) -> Cow < str > { if v . len () > 3 { let s = " Hello " . to_string () + &* v ; Cow :: Owned ( s )…

Sign with your Estonian ID card under NixOS

This note shows how to install the Estonian Electronic Identity Software on NixOS.

Set up a Zettelkasten with Tp-Note

This blog post shows how to set up Luhmann&#x27;s Zettelkasten with Tp-Note and how to work with it.

Tp-Note news: Multilingual note-taking with linguistic heuristics

Tp-Note &#x27;s main design goal is to convert some input text - usually provided by the system&#x27;s clipboard - into a Markdown note file with a descriptive YAML header and meaningful filename. This blog post explains how to configure Tp-Note for multilingual note-taking. Consider the following note file example: --- title : Demokratie und Menschenbild subtitle : Vorlesung author : Prof. Rainer…

Tp-Note renders MathML and adds syntax highlighting

One downside when you take notes with your keyboard and laptop is, that you can not enter mathematical formulas. To remedy this, Tp-Note version 1.19.8 comes with a new feature: its note viewer and internal web-server can now render MathML in note files written in Markdown. It also features syntax highlighting for source code.

Note talking with Helix, Tp-Note and LanguageTool

I recently discovered the text editor Helix , a relatively new project written in Rust. Many features, like Tree-sitter integration or support for the Language Server Protocol LSP are available by default without any plugins or laborious configuration. This short note shows how to integrate Helix with the template tool Tp-Note and the grammar checker LanguageTool under Linux.

Tp-Note news: bidirectional filename synchronization

In one of my previous posts Note Taking for Minimalists we argued about the importance to keep full control over all the tools we take personal notes with. In this approach personal notes are simple text files, that live in the filesystem next to other resources they refer to. As (note) files are identified by their filename, special care needs to be taken to ensure that the files are named…

Install the international US keyboard layout with the European EurKEY extension on Windows

EurKEY - The European Keyboard Layout is based on the American keyboard layout. It is well suited for translators and programmers who are used to the US keyboard layout. It has has a very convenient access to European letters and accents. This note explains how to install the latest version 1.3 on Windows. For Linux instructions please refer to: Install the international US keyboard layout with…

VFS7500 Touch Fingerprint Sensor with Debian 11 Bullseye

This short note shows how to install the software driver for the Validity Sensors, Inc. VFS7500 Touch Fingerprint Sensor which can be found in Lenovo&#x27;s T460s , T470s and many other laptops.

Minimalist Note Taking with Neovim and Tp-Note

In one of my previous blog posts I introduced the concept of minimalist note taking as a note taking method and life style, that tries to improve informational self-determination by restricting oneself to a fully controlled hard and software environment. The presented method solely relies one some UTF-8 text editor application and optionally on a template system like Tp-Note . This note explains…

Generate Vim&#x27;s spell checker language file for Estonian: et.utf-8.spl

This short note shows how to generate Vim &#x27;s spell file format from the .aff and .dic files that Myspell uses. Myspell is distributed, inter alia, with OpenOffice.org and many Mozilla products. The OpenOffice .oxt files are zip packed archives containing Myspells &#x27;s .aff and .dic dictionary files. As the Estonian spell file can not yet be downloaded automatically, we will go through the…

Note Taking for Minimalists

Confidentiality and technology selection Personal notes reveal a lot about us: our unfiltered thoughts expose our (political) opinions and feelings and make us thus vulnerable in a social environment where a thoughtless word could mean the end of our (political) career. This is why note taking is counted as a severely individual, private, intimate activity.

Tp-Note news: produce, retrieve and consume note files on the console

The template based note-taking tool Tp-Note was originally designed as desktop application: Before creating a new note, the user copies interesting bits of text into the clipboard. When Tp-Note starts, it analyses the clipboard&#x27;s content and fills out some template to create a new note. As Tp-Note makes extensive use of the clipboard, it mainly targets desktop systems running a graphical…

Where to store notes? Database? File system?

Seeing the myriad of note-taking software out there, it is not easy to find the right tool for a specific purpose. One way to categorize note talking software is to look at how the software stores the note. Technically, they fall into two categories: Database storage File system storage This short note explains the two approaches to note-taking by means of two chosen free software tools: Zotero…

My Tp-Note usage statistic for 2020 by file size

This note presents a short quantitative analysis on how I used Tp-Note in 2020. Tp-Note is a note taking template system, that generates (by default Markdown) note files from clipboard data.

Tp-Note learns some Asciidoc

This short note describes how Tp-Note &#x27;s internal viewer renders Asciidoc hyperlinks, allowing to open and to follow quickly hyperlinks in Asciidoc formatted note files.

The German keyboard norm DIN 2137-01:2018-12 integrates gender ideology

The German E1 keyboard layout is an extension to the German basic layout containing a complete set of letters for all European languages. It comes with a set of dead keys giving access to all imaginable accents. My verdict after having tested the layout for some months now: this is the keyboard for Latin based languages! Beyond the specific case-related benefits arising out of its universal…

Tp-Note learns RestructuredText

Good news for RestructuredText fans! This short note describes Tp-Note &#x27;s new internal markup rendering feature.

Tp-Note gets a web server and note viewer

One of my favorite use case of Tp-Note is the quick documentation of hyperlinks of any kind. All you need for this, is a browser addon like Firefox add-on to copy selection as Markdown . The rest is automatic, Tp-Note &#x27;s templates generate the note without intervention.

Tp-Note news: fast note taking for system administrators (and console lovers)

The template based note-taking tool Tp-Note was originally designed as desktop application: Before creating a new note, the user copies interesting bits of text into the clipboard. When Tp-Note starts, it analyses the clipboard&#x27;s content and fills out some template to create a new note. This is why people who are working with non-graphical headless systems could not use Tp-Note efficiently:…

Install the international US keyboard layout with the European EurKEY extension on Debian from source

EurKEY - The European Keyboard Layout is based on the American keyboard layout. It is well suited for translators and programmers who are used to the US keyboard layout. It has has a very convenient access to European letters and accents. This note explains how to install the latest version 1.3 on Debian Linux. For Windows instructions please refer to: Install the international US keyboard layout…

Install the international “German E1 keyboard layout” on Debian from source

The “German E1 keyboard layout” is an extension to the German basic layout containing a complete set of letters for all European languages. This layout is of special interest for translators and programmers. This short note explains how to install the German E1 keyboard from source.

ASCII-Hangman for Kids is available as Web-App

ASCII-Hangman is guessing game for children with ASCII-art rewarding. It was originally designed to revise vocabulary in classroom, but can be used alone also. The setting up of the vocabulary list is part of the learning process. I am happy to announce that the newly released ASCII-Hangman version 5.0.0 comes with a Web interface allowing to play online without installation. The desktop versions…

Switch Debian from legacy to UEFI boot mode

This note explains how to switch a legacy boot Debian&#x2F;Ubuntu system into a UEFI boot system.

How to Connect a Turntable to a TV set with Raspberry Pi

This short note explains how to how to connect a turntable to a TV-set and build ab inexpensive multimedia centre with second hand parts.

Announcing Play-RSA Version 0.4

Play-RSA is a Rust implementation of RSA cryptography for pedagogical use.

Index of Downloads

When downloading resources from this server, please verify their SHA1 hash sum to check their integrity and authenticity. [How-to-use-Bienchen-handwriting-font.pdf]How-to-use-Bienchen-handwriting-font.pdf [How-to-use-Deutsche-Normalschrift-font.pdf]How-to-use-Deutsche-Normalschrift-font.pdf [Java-at-school-v1-solutions.pdf]Java-at-school-v1-solutions.pdf…

Announcing Tp-Note: fast note taking with templates and filename synchronization

Abstract: Tp-Note helps you to quickly get started writing notes with its powerful template system. As Tp-Note takes care that the note’s filename is always synchronized with its document title, you will find back your notes easily.

Index of Projects

When downloading resources from this server, please verify their SHA1 hash sum to check their integrity and authenticity. adobe-air-with-wine ascii-hangman asciidoctor-notetaking asn1-tiny-decoder bash-scripts digidoc-open-eid--debian9 digidoc-open-eid--debian10 embedded-system-security-with-Rust encrypted-raid1-nas forensic-tool-development-with-rust--slides forensic-tool-development-with-rust…

Announcing Stringsext Version 2

This blog post is about stringsext version 2 , a major rewrite of the original software . Version 2 comes with performant filter for scripts like “Latin“, “Arabic”, “Hebrew”, “Cyrillic”, ... 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…

Midnight-Commander as console .eml and .mbox email-file-viewer

This short note explains how to configure the GNU-Midnight-Commander to view .eml and .mbox email-files saved by Thunderbird or Evolution .

Scientific publication: Enhancing Forensic-Tool Security with Rust: Development of a String Extraction Utility

Abstract The paper evaluates the suitability of the Rust ecosystem for forensic tool development. As a case study, a forensic tool named Stringsext is developed. Starting from analyzing the specefic requirements of forensic software in general and those of the present case study, all stages of the software development life-cycle are executed and evaluated. Stringsext is a re-implementation and…

Digidoc Open-EID: Installation instructions for Debian 10 Buster

This note shows how to install the Estonian Electronic Identity Software on Debian 10. Update 20191023 : Although not officially supported, RIA decided to modify their software in a way that it also runs on Debian 10 Buster. The following is not needed any more as the installer script is now working out of the box.

ASCII Art Hangman for Kids

ASCII Art Hangman for Kids is a children computer Hangman game designed to revise vocabulary in classroom. The setting up of the vocabulary list is part of the learning process. Hangman is a paper and pencil 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…

Digidoc Open-EID: Installation instructions for Debian 9 Stretch

This note shows how to install the Estonian Electronic Identity Software on Debian 9.

Reverse SSH-tunnel: Access your home server without router configuration

Accessing your home server from outside your local network is usually done by forwarding a port of your server through the router. This note describes a different approach allowing to establish a peer-to-peer connection between hosts on different private networks without having access to the router.

Conference talk at DSS ITSEC 2018: Forensic-Tool Development with Rust

This talk hold in Riga at DSS ITSEC 2018 – 9th Annual International Cyber Security Conference is about technology assessment and a case study evaluating the suitability of Rust in Digital Forensics. 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…

A collection of Bash scripts

Here you find a selection of some of my Bash scripts that you may find useful. I wrote them many ago and they are still in use.

Bucket-NAS: Set up an encrypted NAS on Odroid-C2 or Rasbperry 3 with OpenMediaVault (OVM)

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&#x2F;Rasbperry board with a mirrored SD-card containing the NAS operating system. In this way the system has…

Java at school &#x2F; Java à l&#x27;école

Java at school &#x2F; Java à l&#x27;école is a collection of self-learning Java exercises in French for A-level students. 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…

Secure Programming of Resource Constrained Devices

Slides of a presentation I held in Warsaw, 16 January 2018. Causes of embedded systems vulnerabilities and weaknesses Dealing with malicious input and integrating this in the development process Explanation of Rust programming technology and system response testing

Note taking with Pandoc

This project is discontinued. Please use tp-note instead. The code of tp-note is more generic, works with all markup languages (including Markdown ) . Markup languages like Markdown , ReStructuredText , textile , txt2tags or mediawiki are perfectly suited for fast note taking. Type your notes with your favorite editor, chose your favorite markup language and view them with Chromium , Chrome or…

Tiny and fast ASN.1 decoder in Python

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

Redirecting an audio stream with `aloop`

This manual shows how to record the output of Windows applications using wine , the snd-aloop kernel module and recordMyDesktop .

Install Adobe-Air Applications in Wine

Many older educational study materials do only support Windows. For example the German editor Hüber produced many of its language programs with Adobe AIR . Unfortunately Adobe abandoned AIR for Linux a long time ago. Since then there was no way to run Adobe AIR applications on Linux machines. The improvements in wine 1.8 together with some wine-tricks now allows Adobe AIR applications to run with…

i3 window manager extensions

i3 is a tiling window manager for advanced Linux users. This note introduces some handy extensions to i3 : a file-manager extension with a proper workflow, an exit-mode extension and a pass-through-mode extension.