Tech

Git is eating the world

The inception of Git (2005) is more or less the halfway point between the inception of Linux (1991) and today (2019). A lot has happened since. One thing is clear however: software is eating the world and Git is the fork with which it is being eaten. (Yes, pun intended). Linux and Git In 2005, as far as Linus Torvalds’ legacy was concerned, he didn’t need to worry. His pet… Read More »Git is eating the world

Gid – Get it done!

Last weekend I built a personal ToDo app. Partly as an excuse to mess around a bit with all this ‘new and hip’ Web 2.0 technology (jQuery and Bootstrap) πŸ™ˆ But mostly because I needed one, and I couldn’t find a decent one. Decent? Decent in my opinion would be: Self hosted Self contained Use a plain text file Mobile friendly Able to track / see DONE items And Gid… Read More »Gid – Get it done!

Create a Chrome bookmark html file to import list of URLs

I recently switched RSS providers and I could only extract my saved posts as a list of URLs. So I thought I’d add these to a bookmark folder in Chrome. However, Chrome bookmark import only accepts a specifically formatted .html file. So if you have a file with all your urls, name this file ‘url.txt’ and run this script to create a .html file that you can import in Chrome… Read More »Create a Chrome bookmark html file to import list of URLs

About WordPress, emojis, MySQL and latin1, utf8 and utf8mb4 character sets

PSA: the MySQL utf8 character set is not real Unicode utf8. Instead use utf8mb4. So you landed here because some parts of your website are garbled. And this happened after a server or website migration. You exported your database and imported this export or dump on the new server. And now your posts look like this: When they should look like this: These are screenshots from this website. This website… Read More »About WordPress, emojis, MySQL and latin1, utf8 and utf8mb4 character sets

Use PostgreSQL REPLACE() to replace dots with commas (dollar to euro)

If you have set up your database tables correctly you might be using double-precision floating numbers to store currency values. This works great because dollars use dots to represent decimals. The problem starts when it’s not actually dollars you are storing but euros, and maybe you need to copy query output to Excel or LibreOffice Calc to work with these Euro values. Both of these spreadsheet programs don’t know how… Read More »Use PostgreSQL REPLACE() to replace dots with commas (dollar to euro)

Ten years on Twitter πŸ”Ÿβ€οΈ

Today marks my ten year anniversary on Twitter! There are few other web services I have been using for ten years. Sure, I have been e-mailing and blogging for longer, but those are activities — like browsing — and not specifically tied to one service (e.g. Gmail is just one of many mail services). And after ten years, Twitter is still a valuable and fun addition to life online. But it… Read More »Ten years on Twitter πŸ”Ÿβ€οΈ

Can we replace paper?

Paper always beats rock and scissors. Because one of the few inventions greater than writing itself, is writing on paper. Paper writings are absolute, self-contained and transferable units of knowledge, which after publishing become and stay available and accessible for hundreds of years or more. Don’t take my word for it, there is this great quote by J.C.R. Licklider found in Libraries of the Future and brought to my attention… Read More »Can we replace paper?

Advent of Code

The yearly Advent of Code contest created by Eric Wastl is currently being held at adventofcode.com. That means the site is sprouting two daily programming challenges — until Christmas — to see who can solve them the fastest. But it is not just about being fast, of course, Advent of Code is also a great way to improve your programming skills with daily puzzles. And because everyone gets the same… Read More »Advent of Code

Save data from your broken Raspberry Pi SD card with GNU ddrescue

This week my Pi stopped working. After hooking up a monitor I saw kernel errors related to VFS. So the file system was obviously broken. Oops. The end conclusion is that the SD card is physically ‘broken’, but I still managed to salvage my data β€” which is more important than the card. Here’s how. Broken file system: fsck or dd? What didn’t work for me, but you might want… Read More »Save data from your broken Raspberry Pi SD card with GNU ddrescue

The Phoenix Project

When a co-worker handed me a copy of The Phoenix Project, the 8-bit art on the cover looked fun. But the tagline β€” ‘A Novel About IT, DevOps and Helping your Business Win’ β€” sounded a bit like the usual buzzword management lingo. But I was clearly wrong, I loved this book! It is unlike anything I’ve read before and it really spoke to me because the situations were so… Read More »The Phoenix Project

Linux server principles

This is a list, in no particular order, of principles to adhere when running a secure Linux server. SSH – Never allow direct SSH root access (set PermitRootLogin No). SSH – Do not use SSH keys without a passphrase. SSH – If possible, do not run SSH on a public IP interface (preferably use a management VLAN). SSH/SSL – Use strong SSH ciphers and MAC algorithms (Check with https://testssl.sh/). Never… Read More »Linux server principles

GNU coreutils comm is amazing

Most people know sort and uniq (or even diff)Β and usually use a mix of these tools when comparing two files. However sometimes, there is a shorter solution than piping different commands together: comm is your answer! The comm(1) command is one of the most powerful but also underused text tools in the coreutils package. Comm’s manpage description is as simple as it gets: “compare two sorted files line by line”.Β … Read More »GNU coreutils comm is amazing