I am a big Nextcloud user. I use it for my files, notes, images, videos, calendar, mail, newsfeed, collaboration, and much more. So when I couldn’t find an application that seemed a natural match for Nextcloud, I decided, I could try to build it myself. The last time I worked on a Nextcloud app, I used a complicated Vagrant setup, that worked but didn’t feel right. That’s why I tried see if I could create an easier version with docker and docker-compose. Continue reading

Hand Wired Numpad
Following the QMK tutorial for building your own hand-wired keyboard is pretty straight forward until you reach the part where you actually want to flash your keyboard. It just tells you to download the QMK toolbox and click flash. The thing is: The toolbox is only available for Windows. But if you’re using Linux don’t fret. Here is how you flash your own hand-wired keyboard without booting Windows even once. Continue reading

My son has found a spot in a Kindergarten. In Berlin. In 2019. It’s a miracle that comes with a hefty price tag: Kindergarten diseases. Current record is three distinct illnesses in one week. To avoid going insane, I chose to use my new unscheduled down time by learning a new language – “Go” – and use my plight as inspiration for my first, small application: Giving my coworkers the opportunity to bet on the reason for my next absence. Continue reading

In my line of work, you basically have to options to keep your sanity. You either become jaded or you go into full-on paranoia mode. And I recently started to catch myself looking longingly at tin foil hats. That’s why I have my very own cloud! But since I’m currently the sole breadwinner in our expanding family, I’m on a tight budget. So, I present to you, The Frankencloud 3000! Cobbled together from discarded parts I scrapped from our SysAd’s desk: A Raspberry Pi 3 Model B+ and an old 1 TB internal hard disk in an USB case. As this is far from ideal (or stable), I need a good backup strategy. Preferably remote, so that a fire won’t destroy two years of baby and puppy pictures. I have a storage box somewhere that I can rsync to, but then my pictures are on somebody else’s computer which brings me back to my tin foil hats. I don’t want that. Not without some layer of encryption. And that’s where gocryptfs comes into play. What I want is to have my data to be encrypted on the fly before being rsynced to my storage box. And here is my solution.
Continue reading

I have a love/hate relationship with codeception. When it works, it’s my prince charming on a white horse coming to rescue me from the plight of testing. But ever so often it’s a convoluted and badly documented mess that wrecks havoc to my productivity as I frantically search the net for the one blog post that could help me out. Maybe this can be one those blog posts for somebody else. It’s about how to replace a service (i.e. with a mock) inside the symfony container in a functional test.

Continue reading

PHP’s “empty” function is a weird little fellow. Basically, it tests if a given variable exists and is not evaluated to false !isset($var) || $var == false And since PHP and has a unique interpretation of what counts as false, I try to replace it with a more explicit counterparts whenever possible. It still creeps up on me sometimes, in places long forgotten, written by a much less careful version of myself. Like a few days ago, when a colleague of mine walked into my office complaining about why our internal system didn’t except his CSV file anymore.

Continue reading

Two years ago, I got my wife pregnant. That’s one of those sentences, I never imagined saying. “I got somebody else’s wife pregnant”, sure, totally possible. But “my wife”? Still sounds weird. And it wasn’t by accident, either! This kid could not have been more planned, if it had been pre-ordered online.
Continue reading