Setting up PCBSD

Packages to install

  • i3
  • i3status
  • dmenu
  • autojump
  • libffi
  • py27-pip
  • py27-virtualenv
  • libxml2
  • libxslt
  • postgresql94-client
  • postgresql94-server
  • readline
  • python3

Various Configurations

  • Set bash as default shell (`sudo pw usermod tomster -s `which bash`)`
  • sudo mount -t fdescfs fdesc /dev/fd (see homeshick issue)
  • to make it permanent: fdesc /dev/fd fdescfs rw 0 0
  • in Konsole change bash to bash -l to make it source .bash_profile
  • in ~/.xsession add line /usr/bin/ssh-agent $HOME/.xsession.script

Going FOSS (again)

Basically ever since Mac OS X came out, it has been my primary development platform, replacing a dualboot MacOS 9 / Yellowdog Linux setup. Over the years I've been quite happy with it and most changes made by Apple were welcome improvements. But while I cannot exactly pin-point when it happened, over time I've been feeling less and less comfortable with a) the direction Apple is taking in regards to 'the cloud™' and b) the fact that I'm handling pretty much all of my digital existence (from my professional work, over finances all the way to the family pictures) using closed-source, proprietary software.

But the final nail in the coffin of my Mac-only setup was a slide at Lunar's talk "How to make your software build reproducibly" where he argues for the need of verifiably non-tampered build chains to avoid malware injection. Specifically, it has transpired, that the NSA has targeted XCode to insert backdoors into the binaries compiled with it – in other words, one no longer has to wear a tinfoil hat to assume such attachs are not merely hypothetical.

I have made several half-assed attempts to switch to Linux as a Desktop OS in the past (either for myself or even just for the relative modest requirements of family members) but they all ended either desastrously or simply underwhelmingly – mainly in the area of multimedia or "lifestyle" applications: way too much tweaking and debugging for far too crappy results.

But this time around I'm thinking: why aim to replace my whole existing setup? How about focussing on what I need for developing (paid or otherwise)? Firstly, that is a significantly smaller set of features and secondly and area where open source has its strong points. As a nice side effect this would allow me to have a cleaner separation between work and non-work related computer usage. Less distractions and temptations while hacking and less reminders of work projects during casualy usage.

Since I have been using FreeBSD pretty much exclusively over the past seventeen years (damn! has it really been this long?) and since I would be targeting a much smaller feature now I decided to give PC-BSD a try.

Hooking up grunt with mynt

During the two most recent work projects I got to appreciate the convenience that a yeoman based workflow can bring. So when I set out to rejuvinate this blog, I naturally tried to incorporate its goodness with the static generator I would use to power the blog.

Well, it turns out, that none of the ususal suspects of Python based site generators is really the way I'd like or need it. So my knee jerk reaction was to go ahead and write my own. Doh! But even with Python's proverbial batteries included, that's not a task for just an afternoon.

Instead, I decided to not only tinker with the existing tools as I did while evaluating them, but to actually use them (in anger, so to speak) to build this website. Starting with the top contender, this site is currently implemented using mynt. But while I was eventually able to bend it to my will, it required quite some dirty workarounds (see the Makefile for the gory details).

Anyway, now that I have a working setup, I can continue to try other approaches in a more leisurely fashion. Next contender will be the venerable Blogofile, which comes closest to my idea of a general purpose 'HTML compiler'.

Blogging again

After a multi-year hiatus, I'm back to blogging.

Why? Well, for starters, there's only so much you can fit into 140 characters. But more importantly, I've found that I owe a great deal of my professional development during that period to other geeks who took the time to write down their experiences. Sure, there's always the official documentation and stackoverflow in any given field, but without geeks who share their successes and failures on their personal blogs (and Google, that let's me find them!), I doubt I'd be at the level of prowess that I enjoy today. Seriously.

So, I've increasingly felt that I'm cheating, by only benefiting from others, without giving anything back. Until last week the level of guilt finally superseded my own laziness and I set out to build myself a blog, the result of which you can see here.

At this point there's obviously no useful content yet, just the bare skeleton and this lonely first entry. But by publishing this state I hope to trick myself into following up with some actual content.