1. Simplistic Auto Provisioning for BSDs, UNIX and Linux, using just DHCP

    For a few weeks now i've been thinking about better tools to provision our bare-metal servers and VMs. All tools out there are IMHO bloatware. Over-complicated stuff where nobody knows when the next library upstream will break feature X which will prevent shit from working. Typical wobbly constructs we have these days. I'm not a fan of them, you shouldn't be either.

  2. How would an Apple Car look like, from what we have today

    So just today we all got the "surprising" news, that Apple is really interested in autonomous cars. We all knew it for months, but hey, let's play along for a second. Further more, after the groundbreaking innovations we've just witnessed with the new iPhone and MacBook. Yes, leaving out the function bar, replacing it with an ARM based iWatch, that's what's really been missing from MacBooks.

  3. The FreeBSD World

    FreeBSD is my favorite OS, not just recently but all the way back to 2003 when Linux didn't cut it anymore for me. Given that Linux has more device drivers available, it also means more bugs, code duplication and generally speaking bad coding habits.

  4. Deploying #Liftweb .war files on #Jetty in 2015

    If you're running Liftweb Applications in production, you might either be using Tomcat or Jetty. If you're using Jetty, you've probably stumbled across David Pollak's jetty.tgz (i don't find the link anymore).

    While it is a nice collection of scripts and files (having '8G' in file ramsize, '8080' in file baseport, etc), but keeping this (even small) overlay of files in sync with an updated jetty dist tarball can be tricky.

  5. My new working-day schedule

    As we all know, when we're programming we need every bit of concentration. Every disturbance is possibly detrimental to your flow of thought. If you are like me and exclusively work from Home and live in an urban/city area, you might have children in your neighborhood screaming, you might encounter people drilling holes in their walls 3 houses down and you still hear the vibrations through the walls. There are shops outside, you might have a doctor above your appartment who gets visits every 15 minutes or a Waxing Studio. Apart from those "bad" disturbances you might have "good" ones as well like your girlfriend coming home or DHL bringing a package. Good varies from person to person, but you have to make due with those distractions.

  6. #Netty Channels with #Scala Implicits

    Today i just want to share a quick Scala goodie. We all know that i love Netty and Scala, so i wanted to write a little Goodie with Scala's implicits.

    With Implicits we can wrap transparently around an Object (such as io.netty.channel.Channel) and execute our own custom methods onto it.

    Below we use the Netty 4 AttributeMap together with a few nice getters and setters. This makes it typesafe and comfortable to use. :)

  7. Scala Utils with IP Subnet Matching

    Good evening everyone, so you thought i stopped blogging, but i didn't. What i did do? Well, i wrote some amazing Scala stuff.

    Apart from my Liftweb, Netty and Akka Talk at SkillsMatter, London, i was busy coding some awesome stuff for one of the new projects i am involved in. Maybe you've already seen me tweeting about them, but in case you haven't, you may Follow @wastedio on Twitter.

    Since Twitter and everyone has their own "utils" Library, we also had to have our own. But since we don't simply clone other people's work, we did some nice IP Subnet Matching for my high performance audience.

  8. #Xen 4 dynamic VLANs through VIF-script

    So last night i got really bored, so i tried to integrate VLANs in my existing Xen4 setup.

    While googling for solutions, i only found things where i'd have to statically allocate VLANs for every customer on every host through xend-config.sxp network-script.

    This also meant, that if i had a new customer vlan which i want to add to my host, i'd have to either restart xend or run

    /etc/xen/scripts/network-bridge start netdev=eth1 vlan=5

    Since this is absolutely not my style, i started investigating. Turns out there is a much better way to do so!

  9. My #Liftweb and #Scala Events in Fall 2012

    First off, i've never thought of myself as a presenter. My dad always taught me things but i didn't really listen, to my dismay i must add. Anyway, i think i've done quite okay in the past (since i got good feedback).

    But this fall, you have not two, not three, but four chances of seeing (and hearing) me blab on about Scala and Liftweb stuff.

  10. Flexible #CSV Parser in #Scala

    For a few months now i've been doing some CSV Imports in my Liftweb projects. This mostly is because the old databases i am migrating to something normal (PostgreSQL or MongoDB) are badly designed (mostly MySQL) and therefore i don't even want to bother with their API. So XML seemed a bit heavy for most MySQL-Admins and -Users to get, so CSV was the next "best" thing.

  11. cfengine, bcfg2, chef and puppet

    I've been talking with a lot of folks lately about Configuration Management/Automation Systems. Mainly about puppet vs cfengine.

    The first question i usually ask people recommending interpreter solutions (ruby, perl, python..) is "Why?". Why would anyone want an interpreted solution?

  12. #Transparenz ist kein Inhalt - die #Piraten und die Inhaltsleere

    Wir hören ja immer wieder, dass die Piratenpartei kein Programm hat, dass es an Inhalten fehlt. Ganz abgesehen davon, dass dies nicht stimmt, gibt es bestimmt viele Piraten-Wähler, die sich trotzdem nicht mit dem Programm auskennen oder es nichtmal gelesen haben (wie ich).

    Warum? Ganz einfach eigentlich.. Herr Lasse Becker meinte bei ZDF-Login, dass Transparenz kein Inhalt ist. Dieser Aussage stimme ich zu, jedoch kenne ich die Grundeinstellung der Partei: Basisdemokratie.

  13. Liftweb CSS Selectors and implicits

    When using Ruby, i found myself frequently making things like formatting methods to display a variety of things.

    def formatDouble(dbl)
         "%.2f" % dbl

    Often these output formatters are render-specific, so defining them on the model seems kinda unflexible to me. Of course if you only have one Double to format, this is not the best/quickest way to go, but imagine you have a Snippet which has 3-4 BigDecimals to format.

  14. David Pollak's Lift Basics

    Whew, the past few weeks were like a Rollercoaster ride between my personal downs and professional highs. I got even more high on Liftweb when i was voted Liftweb Committer almost two weeks back! So what's coming next?


    Puh, die letzten paar Wochen waren eine reine Achterbahnfahrt zwischen meinen persönlichen Tiefen und meinen professionellen Höhen. Die Höhen wurden noch heftiger, als ich vor knapp zwei Wochen zum Liftweb Committer gewählt wurde. Was kommt als nächstes?

  15. Liftweb Error Reports by Mail

    Having some kind of safety net when something goes wrong is never bad, so today my ass got saved my just a few lines of code (which made this thing much more easier).

  16. Imagine...

    You have a successful company, employ a handfull of people, make enough money to not have to worry about where your food is coming from and how you're going to pay your rent. Yes, it sounds nice.

  17. A polyglots tail - My Scala LiftOff Talk

    Today i held my talk at the Scala LiftOff 2011 in London. It was a very interesting event and i've met lots of interesting People. Before this event i could hardly imagine myself presenting, but i hope i did my job to everybody's satisfaction.

  18. println - a custom made suit

    Since i published println, i've had a hand full of people asking me, why it is so minimalistic, why i didn't implement more options and so on. Since most of the people were open to my view of things, i wanted to write a bit about it, so people don't get the wrong impression.

  19. Bandwidth-tests with my Juniper J2320 Router

    The Juniper J2320 is a modular router for enterprises running desktops, servers, VoIP, CRM/ERP/SCM applications. It offers three PIM slots for additional LAN/WAN connectivity and has all the basic licenses for BGP, OSPF and all that fancy stuff included. This is especially nice since an advanced routing license for an EX-series costs more than the whole J-Series.

  20. Bandwidth-tests with my new Juniper EX2200-48T

    The EX2200 line of Juniper Ethernet switches are ideal for access-layer deployments in branch offices and campus networks, delivers a level of functionality and performance normally associated with higher-cost Ethernet switches. Also i'd say that they are capable of doing Datacenter workload. Anyway, i am planning on using those as Rackswitches over at my Rackhousing business.

  21. How bad MySQL really is

    I've got a customer who has an image gallery, sadly they often have problems with performance. Our first big migration was from Apache with mod_php to nginx with FastCGI and MySQL being on a seperate host. This has worked for almost a year now, but now trouble is here again...

  22. High Performance URL-Shortening with Redis-backed nginx

    I've spent my vacation wisely on writing my new customer interface. While doing that, i've played a lot with redis which is one of the most remarkable pieces of software i've ever seen. Altho it's not usable for "important"/"non-temporary" data (since it's only a key value storage and has limited query capabilities), it's perfectly made for caching stuff.

  23. iOS/iPhoneOS Equalizer with libsox - making it a .framework

    Anyway, i checked out all libraries, ffmpeg, libav and libsox. Since the command line version of sox delivered nice test results with my equalization attempts, i started to try to get the current release to compile on SDK 4.3. I had massive troubles at first, but then i found this post.

  24. My absence

    I want to apologize for my absence in the past few months, but there have been some decision i had to make.One being that i quit my full-time job being an Objective-C/iOS Developer, since my contract says that i am not allowed to perform commercial iOS Coding, i will be doing something else for a while. That does not mean that i won't blog anymore, i will just alter my focus from iOS to something else.

  25. Beware of upper()/lower() in PostgreSQL

    Today i’m going into performance impacts which can come from upper()/lower(). If you were already aware of these things, you won’t be impressed, but if you’re like me, optimizing your setup which is 5 years old, you will be amazed.

  26. ArchLinux domU - Setup Script

    For the past 8 years since the first official release, i was a Gentoo fan. Sure, i used some Debian boxes for this and had BSD boxes for my most precious tasks. Gentoo was always this comfortable distribution that didn’t dictate which features i had in my default packages, since i could choose “USE”-Flags myself.

  27. git lol - the other git log

    So i got tired of the git log default output, since it was simply too bloated for my Macbook Pro Terminal. It’s ok my 30" Apple Cinema Display (or one of the other 22" surrounding it), but even there it doesn’t show me enough for my taste.

  28. Ever forgot to sync one of your hundred git repositories?

    I guess it happens to all of us, you sit at work, you commit your changes, then you go home. While driving in your car, you might come across the thought "darn, did i push my changes?". If you are one of those people who have so much repositories, you cannot track in your head which one needs a pull or push, then git-sync might be your solution.

  29. Why Symbian will go down and Android/iOS will rise

    Probably everyone has used, or at least seen a Symbian based phone.If you're a normal user and don't know what i mean by "Bluetooth Stack", please stop reading or you just might not understand what i am talking about and get angry at me for no real reason.

  30. Why Dell is NOT a good choice

    Today i received a Spam-Mail from Dell Germany about setting up my whole office with Dell computers. At first i laughed about that statement, since i am not the biggest fan. I didn't know that i would be crying about how limited this company really is.

  31. First impressions on Apple's Xcode

    So after my first iPhone (2G) broke almost 1.5 years ago, i finally got another iPhone a few days back. My dad's company (ESIRION AG) is really busy developing all kinds of fancy webapps, so he asked me if i could work my brain into developing applications for the iPhone.

  32. IP-Traffic accounting with PostgreSQL-Triggers

    So i got this DB-server which does nothing but work out NetFlow files with flow-tools. Since i want that data to be as live as possible for my customers, i've decided to go with a 15-minute rotation interval. This leaves me with 96 rows per day per IP. Since i got a /20, we've got to multiply 96 rows with 4096 IP-Addresses.