It’s fascinating how sometimes rather small companies disrupt a (niche-)market that is controlled by one or two big players. That is what happened in the bike computer/navigation market. It was almost exclusively controlled by Garmin just a few years back. When I started cycling I bought a bike computer from Garmin. I knew Garmin’s GPS devices from cars and they offered a devices made for cyclists who ride longer, non-competitive rides - the ‘Touring Edge’.
More...

Often I’m working in quiet places like libraries or shared office spaces. This led to the desire to have my laptop muted everytime I open it. And it should be muted not with 2 seconds delay but instant, no matter the load.
Years ago I created a very small piece of software to mute macOS everytime it is going into sleep mode or gets shutdown. It works pretty well for me and since people kept asking about it, I published it to Github.
More...

ZFS is one of the best parts of FreeBSD and it is widely used for installations of all size. Since a few years it’s possible to have the complete root fileystem on ZFS. The snapshotting capabilities and the builtin zfs send and zfs recv commands make it easy to transfer a server to another system (given a compatible hardware).
This short guide will show you how to migrate a running FreeBSD installation to another server.
More...

I already wrote something about how I do backups of my important data. However, some things changed and as the article gets quite a lot of traffic, I wanted to give an update on the details.
A major change is that I use BitTorrent Sync only for syncing, not for backups. In fact I don’t use btsync any more but I’ll get to that. While btsync works pretty well to keep data in multiple places up to date, it is simply not designed to do good backups.
More...

You have probably heard of FreeBSD (or any other BSD). Have you used it? If yes: stop reading right here. If no: read on, maybe you want to try it.
I know plenty of developers who feel very comfortable with Linux (especially Ubuntu is common these days). They have their developer server and probably production server running on Linux. But why Linux and not FreeBSD? There are several reasons, maybe one applies to you.
More...

*Disclaimer: I reported this vulnerability on September 12th, 2013 and got a response by September 16th. Nothing happened since. I asked for an update on February 4th and haven’t received a response, yet. Update February 12th: The TYPO3 security team released a security bulletin and a fixed version for the issue. Thanks!*
Object Injection What is object injection and why is it a problem? An object injection vulnerability allows the attacker to instantiate arbitrary objects.
More...

The day you lose important data due to a head crash of your hard disk, you start getting a little paranoid about backups. It’s not only important to have backups at all, they should also be the right ones. After some experimenting I’ve found a setup that works for my needs. So here’s how I backup my workstations and servers.
Macs I use Macs and therefore OS X. The obvious choice here is OS X’s build-in mechanism: Time Machine.
More...

When you’re working with Vagrant and your production servers are running FreeBSD, chances are that you also want to use FreeBSD as the Vagrant guest OS so the behaviour is consistent. The combination will not work out-of-the-box because FreeBSD doesn’t support the standard synced folder method Vagrant uses. So you need to switch to NFS sharing which needs a host-only (:private_network) network. Once you enable that, Vagrant cannot connect anymore to the virtual machine over SSH and it will look as if the machine halted.
More...

Using Devise to authenticate users with OAuth and Facebook I was having a problem with SSL. I got a verification error:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed There’s lots of advice on how to fix the certificate verification error on Windows and Linux systems. However, providing a :ca_path doesn’t work on FreeBSD as the certificates are located in one file. You need to specify :ca_file in your config/initializers/devise.
More...