In a previous post I’ve already shared a way to deploy private git repositories to a NixOS based server . While the old approach is still working I’m using a different approach today. The previously approach requires the private key to be stored on the server. The new approach uses SSH agent forwarding . This way your ssh key never needs to sit on the server. So this post is basically an update to…
Update 2018: Since this post has been published, I’ve published a newer v2 of this, which is a lot more simple to set up. Check it out here. In a previous post I’ve already mentioned that this jekyll-powered site is served by NixOS and it’s source code is hosted on a private GitHub repository. While there’s lots of documentation on how to create a new nix package where the source code is hosted on…
In a previous blog post I’ve described how to set up and customize Vim on NixOS . One of the open questions was, whether one can use the same configuration also on OS X. Turns out that one can. Later I also found a way to share my zsh configuration across my NixOS server and my MacBook. Vim In the previous post I’ve already described how one can set up and customize Vim on NixOS. As I’d like to…
Some time ago, I’ve moved this jekyll-based blog from GitHub Pages to a self-hosted NixOS server. A few weeks ago, I’ve also moved some parts of my local OS X environment from homebrew over to nix. In this post I will share some of the experiences with using nix on OS X. Package Avaibility nixpkgs , the default source of packages for the nix package manager, has many of the basic command-line…
Modern PHP development favors the use of inversion of control to keep software more configurable and flexible. This leads to the problem that one now has to create a big graph of objects to use the application. E.g. a Mailer object now needs an Transport object. The Transport object needs some other object. At first you might just write new Mailer(new Transport($somethingOther)) , but later you…
A month ago this jekyll-powered blog was hosted on GitHub pages. Now it’s served by NixOS hosted on DigitalOcean . Because many parts of NixOS are rarely documented I’d like to share how I’ve resolved the issues I’ve encountered in the process. The first thing I did after booting into the fresh installed NixOS was trying to check out the default configuration /etc/nixos/configuration.nix with vim…
Deterministic Systems Languages with a strong type system allow for nearly mathematic proof like safety when refactoring systems. The whole system can be seen like a mathematical system, everything is deterministic . You can know certain truths, like that all called functions do exists, without actually needing to run the system. Changes to a system component, e.g. renaming a function, will lead…
If you are looking for a smartphone app to solve a problem you have, you most likely will try out multiple apps. You just install them with a single click from the app store or from google play. You have found the right app. Now you just delete the other ones you have tried out which weren’t the right fit. Awesome, your smartphone just works! Now let’s replay this scenario with a modern computer…
Docker started as a tool to enable easier scaling of your applications. It was built to support the needs of a platform as a service provider [0] . Today docker is usually used to distribute applications instead of just for easier scaling. If you’re using docker for your development environment you’re probably not using docker for scaling, you’re using it to get a reproducable development…
In the last year you could spot a big change in the way javascript applications were built: The javascript world is moving away from unpredictable mutable state architecture to a more predictable immutable application architecture . With frameworks like backbone the common approach was to keep your data and your view in sync by listening manually on some dom change events. This was kind of error…