Skip to main content


My employer is looking for a Junior and a Senior Web Developer in Wallisellen, Switzerland. Please feel free to share and/or message me privately or publicly, if you want to know more about the company.

#hiring #jobs #JeRecrute (pas moi)


Good morning, currently reading a book called:

10 PRINT CHR$(205.5+RND(1)); : GOTO 10

The book's title and subject is the one liner that produces a maze on the Commodore 64 BASIC V2. In one of the chapters the books authors consider ports to other 8 bit systems, as well as modern scripting languages, using unicode characters. Here is their port to perl:

perl -e 'binmode STDOUT,"utf8";{print chr(9585.5+rand);redo}'

Got me inspired, here are my attempts for python (the second one cheats a bit, as it uses POSIX shell to format the script):

python3 -c 'import random;exec("while True:\n\tprint(chr(int(9585.5+random.random())),end=\"\");")'
printf "import random\nwhile True:\n\tprint(chr(int(9585.5+random.random())),end='')" | python3 -

and php (still no native unicode support, so have to build the 3 bytes for the utf-8 symbol one by one):

php -r 'while(1){echo chr(226),chr(149),chr(177.5+rand(0,1));}'

bash -c 'while true;do printf %b "\U$(printf %08x $((9585 + $RANDOM % 2)))";done'


Shell parsing is hard.

Yes, shell parsing is non-obvious - it does help enormously to understand that the shell takes what you type on the command line after you hit enter, parses it, replacing variables, expanding globs (wildcards) and other language constructs in the process and only then issues a system call, passing the resulting argv structure to the kernel for execution.

Exhibit A (source of the above quote): How the local shell ssh and the remote shell interact, in unexpected ways

Exhibit B: skarnet's introduction to the execline language design and grammar goes into further details of the argv structure

Exhibit C: How to use execlineb for nginx to wait for up to 10s on the startup of php-fpm, avoiding involvment of a shell process



PrivateBin 1.3.5 released - Fixing several smaller issues, adding new translations


Many folks don't know that the Unicode standard is actually much older then they think. Here's the spec as of 1889 ;-)


Started looking into gemini space. Love how it feels - it's like the web ca. mid-90s. UI is back under your control and you can focus on reading the content instead of getting the site to work (because either you have issues with noscript turned on and sites requiring JS to display text or you have it disabled and have to click through modal windows informing you of cookie settings, sign up for that newsletter, etc. to get to the content).

I'm using Castor and wanted to merry it to my Gnome desktop, so clicking links in Firefox/Chromium opens them in Castor. Oh, and I got a gopher client for free with it as well. Was bummed when Firefox dropped gopher support. Here's how to register the gemini protocol in Gnome (and build castor):

Setting up castor as handler for gemini URLs on a Gnome desktop


While grep and sed are commoly used, awk fills a valuable niche when processing structured text, avoiding multiple pipes or more complicated regex extractions. Here is a handy flowchart to pick the ideal tool for your text processing task:


A plaintext chart and a simple example making use of several awk features can be found here:

Which UNIX tool to use for text processing?


Small tools to use as (non-sharable) sketchpads - if you need a quick spreadsheet calculation or text editor and are to lazy to open a terminal. Good example of #minimalism and very #privacy minded.


Maybe a concept we could evaluate for use in our fediverse software as well:
This forms a relative reputation system. As uncomfortable as it may be, one man’s terrorist is another man’s freedom fighter, and different jurisdictions have different laws - and it’s not up to the Foundation to play God and adjudicate. Each user/moderator/admin should be free to make up their own mind and decide which reputation feeds to align themselves with.


Everything you always wanted to know about punch card data encoding, but were afraid to ask:

@Retrocomputing Forum #RetroComputing


Das Gerät (32620) hinter dem Zahlensender


Having fun learning how to use flex box CSS rules by playing this tower defense game:


Für mein erstes Projekt in Rust suche ich noch eine geeignete freie Lizenz. Da es sich um einen Dienst handelt, welcher hauptsächlich als Webseite genutzt wird, hatte ich an die AGPL gedacht. Mir fiel aber auf, das die meisten darin verwendeten Bibliotheken MIT und Apache lizenziert sind, was ich eher von Software kenne, die auch kommerziell genutzt werden soll. Für Empfehlungen die für oder gegen eine der genannten Lizenzen sprechen bin ich dankbar. #FollowerPower



Spass am weniger bekannten 8-Bit-Gerät - BASIC-Labyrinth auf den KC 85/4 portieren



Duff's device (ca. 1984)
register n = (count + 7) / 8; /* count > 0 assumed */

switch (count % 8)
case 0: do { *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while (--n > 0);

Via jargon file, Kommentar von Tom Duff


Der wahrscheinlich kleinste SMS gateway der Welt: VoCore2 + OpenWRT + smstools + USB-GSM-Modem



Dinge die Programmierer meinen über die Welt zu Wissen:

"Hausnummern sind immer ganze Zahlen!"
Ein Schild mit der Hausnummer "Savoyen Straße 2 1/2".

Seien wir froh, müssen wir uns nur mit den modernen Datums- & Zeit-Problemen herumschlagen. Hier hat jemand eine ähnliche Liste mit Ausnahmen in alt-römischen Kalender-Problemen zusammengetragen:

Dealing with Time in the Roman Calendar


PrivateBin v1.3.4 released - Fixing HTML entities, custom expiration, pasting into password field


PrivateBin v1.3.3 & v1.2.3 - Fixing HTML entity double encoding issues introduced in 1.3.2 & 1.2.2


PrivateBin 1.3.2 & 1.2.2 released - Fix for persistent XSS vulnerability in filenames of attached files


Ross Andersons presentation at the #36C3 introduced me to the concept of security economics: "If Alice guards a system, but Bobs bears the cost of it failing, expect trouble." (quoting from memory)


PrivateBin 1.3 released - Fixing mangled URLs, switching encryption & compression libraries


Sehr schön: PHP 7.3 ist endlich wieder so schnell wie 7.0. Habe ich bemerkt als ich 7.3 zur unit test suite von PrivateBin in TravisCI hinzugefügt habe - Somit habe ich nun auch das unit test docker image auf 7.3 ge-upgraded


PrivateBin 1.2.1 released


PrivateBin 1.2 released - QR codes, inline media display, 6 new languages & JS refactoring


PrivateBin 1.1.1 released - fixing a data leak vulnerability


PrivateBin 1.1 released - added Italian and Russian translations and fixes for XSS and database issue

This release adds Italian and Russian translations to PrivateBin and fixes an XSS and a database issue.


PrivateBin 1.0 released - ZeroBin fork renamed to PrivateBin, more translations, lots of UI glitches fixed

This is the first release of PrivateBin after renaming the ZeroBin fork.


ZeroBin 0.22 released - More themes, some fixes and a bunch of small improvements

ZeroBin - A minimalist, opensource online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256 bits AES.


Man könnte statt von einer "Vireninfektion", auch von einem „Systembrand" sprechen:


Manchmal frage ich mich, wie sehr Sprache unser Denken wirklich beeinflusst. Können Franzosen wegen Ihrer Sprache wirklich schlechter Rechnen? Könnte eine neue Sprache kulturelle Differenzen überwinden und den "Weltfrieden" bringen?


ZeroBin 0.21 released - Markdown, file upload and translations added

ZeroBin - A minimalist, opensource online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256 bits AES.


ZeroBin 0.20 released

ZeroBin - A minimalist, opensource online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256 bits AES.
This entry was edited (6 years ago)


Dieser Test sollte Pflicht werden für alle die ne' Datenbank anfassen wollen.


Glaubst du noch, dass SQL-Performance Tuning schwarze Magie ist? Beantworte diese fünf Fragen und lerne dabei worum es bei SQL-Tuning wirklich geht.



Bitcoin und ähnliche digitale Währungen basieren auf einer via Peer-to-Peer-Verbindungen synchronisierten Datenbank, welche eine zentrale Buchhaltung implementiert. Diese Technologie könnte aber auch zu ganz anderen Zwecken genutzt werden und das Internet um völlig neue Funktionen erweitern.
This entry was edited (7 years ago)


Man kann gar nicht früh genug damit anfangen, Kindern das programmieren beizubringen: