Archive for the ‘freebsd’ tag
You are reading a blog - Innovation in Software - no longer under active maintenance. These pages are kept here for archive purposes. If you wish to find out more about Vagueware please read our current website which will include links to the new blogs when live.
Carpenters Don’t Build Lathes
Many years ago I ran FreeBSD on pretty much every system I touched. I loved it. The lack of political polarisation that touches the GNU/Linux community combined with the power of Unix under the hood sucked me in.
I even, almost infamously, had a rant about another operating system I now use daily. I was a zealot. I am ashamed of my attitude in that email – my only excuse is that I was still quite young, a rather naive and opinionated 26 year old.
Today, I use exclusively OS X, and occasionally boot up a virtual Windows instance to test code on MS code. I have a terminal open nearly all the time and often dive down to the Unix goodness, but more often than not the bulk of my work is in the browser, text editor, IDE or Mail app.
Why then, I was asked the other day, do I not just ditch Apple and get a Linux (or even BSD), machine to work with? The bulk of my work (except for iPhone application development) would continue as before.
My answer is very simple: carpenters don’t build lathes.
To explain, let’s first go back to that rant I had about OS X. About a month later, I ordered my first Apple laptop – an iBook G4 – and was very happy with it. What happened in that month?
I realised when shopping around, I needed to check out the chipsets used for WiFi in each laptop because FreeBSD wireless support was pretty hit-and-miss back then. I also needed to understand the graphics chip-set because I’d need to compile X if I wanted to run a graphical desktop environment. I then realised I’d need to assess pretty much every feature in terms of hardware compatibility to make a purchasing decision. And then, on receipt of my new laptop I would have to spend a few hours doing all the compiling and fixing, and I would then need to do this work every few months as part of an upgrade cycle.
Yes, I’d get the power and flexibility of my own tailored operating system environment, but isn’t that a lot of work?
I recalled a few months previously a friend was playing with his new smart phone. It was running Symbian and he seemed to be doing lots of prodding and poking with it. Enquiring what he was doing, he said he was “doing some maintenance” to keep it in working order. Hang on, was he effectively sysadmin’ing his phone? “Yes, I suppose”, came the reply. When you have to do systems administration work on your phone, your phone is no longer a tool to assist with your work, it is an object of work in itself.
It was this insight when thinking about my operating system choices that directed me to OS X: I wanted the power of Unix, sure, but I wanted it to just work. I wanted to be able to get on with my work, the laptop and operating system as tools rather than objects of work themselves.
This small insight has made my life a great deal easier, and still dictates not using any other operating system. Some of my peers see it as weakness (even more point to my original rant above), but I see it as spending my time doing the things I love.
And it’s also an insight I think that as developers we forget: are we developing tools that assist with objectives, or tools that are objects of work themselves. Are we building interfaces and suggesting business logic that means our customers spend time managing the behaviour to fit around them? If so, why?
In the last few weeks I’ve seen some really interesting “reductions” in functionality that aim to make tools more directly useful, rather than requiring some administration.
Take for example, the role of authentication. You need to “contain” all of your customer’s “stuff” in a way that is linked to their “account”. So we have user registration, user profiles, account activations, password resets, etc. Seems like a lot of stuff. Are we sure we need it?
Take for example, Posterous. Their home page explains it all:

All you need to do is email stuff to post@posterous.com and you’re up and running. No signup, no captchas, no password strength indicators unless you want to add them. You’re a person capturing stuff – why do you need to admin yet another web application?
BootStrap UK (which is worthy of an article in its own right as a concept), needs accounts but has a simpler registration system: just follow @bootstrapuk on Twitter and they’ll follow you and direct message you a password. Done.
There are other examples out there as well, sometimes using software to help break out “lathe obsession” elsewhere in society. One iPhone app I’ve seen reviewed gets the banking system to work around the customer, rather than demand the customer head into a branch to suit the banking system. Brilliant.
We often spend too much time trying to work out how a customers will need to behave around our application, rather than how we need to get out of the way and let our customers use what we produce in order to do their thing. In every customer we need to start seeing the carpenter more, and assume they – perhaps unlike many of us developers – don’t like tinkering with lathes for its own sake.
OS X Leopard – a review, a warning, and alternatives
Last Sunday I trundled up to the local Apple store with company debit card in hand to grab a copy of OS X Leopard. I installed it that afternoon and have spent the last week on the road and at home living with it. I’ve now come to a conclusion:
Leopard is an excellent advertisement for switching to Ubuntu.
Seriously, it sucks. I’m not talking suckiness on a Windows Vista level, but compared to Tiger, it’s awful. Here’s some reasons.
Firstly, perhaps reasonably for a dot-zero release (but still annoyingly), it crashes and/or locks up quite often. In several years of using Panther and then Tiger, I don’t think I had to power-cycle my machine more than twice. I’ve done it five times this week. Sometimes when using an external keyboard on my Macbook Pro, the system “just forgets” it’s there and I’ll have to unplug the keyboard from USB and plug it in again, but sometimes nothing happens even then: Finder stops responding, the mouse stops moving, and then it’s time to hold down the power button for a few seconds and bring it back up.
Whilst we’re talking about peripherals, I grabbed myself a replacement Mighty Mouse whilst buying Leopard (note: the scroll ball clogs and breaks within months, you’ll be buying a lot of replacements for the improved productivity I accept it provides), this time a wireless version. This helped me discover that bluetooth support for mice in Leopard is rubbish. Whether’s it blued taking up 50%-60% of CPU for long stretches of time, to not being able to see the mouse at all on resume, it’s so bad it’s basically useless. I don’t think it’s reasonable load average should be > 0.7 just because I am moving my mouse around.
Then there’s the RAM issue. Sure, with each release of an OS you expect to see more RAM being gobbled up, but I swear, I’ve never seen an OS have a problem with 2Gb of RAM and six applications open, not even Windows. With Tiger I used to be able to do a lot more and have a lot more free space to move around in. Leopard swaps so hard in the same usage scenario that it reminds me of when I was using an iBook G4 with half a gig of RAM.
Let’s now move to the extra features Apple provide in Leopard.
I don’t care what people say, Safari 3.0 is not faster than Firefox – anybody who is saying so just isn’t doing any meaningful measurement. What’s more, Safari still doesn’t “get” the plugin thing, and on my system at least rendered pages like it was spitting out HTML in vomit-like chunks.
The other big upgrade, Mail, is more of a mixed bag. Whilst Mail.app version 3.0 fixes several bugs I had learned to “work around” in 2.0, it introduces a few more niggles. That’s not the big problem though. Quite frankly Mail.app 3.0 needs a stake driving through it’s cold dead heart for producing HTML e-mail that cruddy, insisting all “notes” have yellow ruled-line backgrounds and integrating with iCal as more of an after-thought than as a reasonable feature.
Spaces is worse than 3rd-party solutions I used wth Tiger in my opinion, and gobbles even more RAM – a scarce commodity as it is in Leopard-land.
I’ve not actually tried the new integrated back-up system, because I’ve heard that Time Machine breaks Leopard even more than Leopard does on its own time and you end up fighting reboot screens constantly. I’ll stick with SuperDuper and the odd s3sync
Meanwhile they’ve managed to make sure the Dock is harder to make sense of thanks to little, tiny, blue-ish orbs on a reflective background indicating app state instead of clear arrows. Whilst we’re down there, can somebody please tell me what good are Stacks given that they’re slow, only make sense in ‘grid mode’ and don’t help you find anything you don’t already roughly know the location of.
At least though, that’s a relatively sane way of finding files. Cover-flow in Finder is just slow and silly, although Finder in general is much better. I daren’t even go near Spotlight, fearing that I might accidentally send share prices in CPU fan and RAM manufacturers soaring.
Whilst we’re at it, can I just mention the integrated firewall isn’t a firewall apparently, so unless you’re comfortable with ipfw, you’re about as open as it’s possible to be.
I am not however a typical OS X user. I am a developer who approaches OS X as a Unix with a better GUI than X + your choice of window manager. Some people will be happy with Leopard, and won’t want the stability or flexibility I need. Many switching from Windows will find the random, sporadic instability perfectly normal behaviour. I do not.
For all my problems with Unix as a desktop in the past, after nearly 3 years away from that flock, Leopard has convinced me to start moving back to Open Source. This weekend I’m going to Bootcamp up and put a “proper” Unix on like FreeBSD or a GNU/Linux distro like Ubuntu. That will allow me to slowly transition my data and working environment over and keep OS X (and Windows w/parallels) available for development and testing work.
I’m sorry Apple, this time you blew it, and you blew it hard. I hoped Leopard was meant to be more than an eye-candy release, but ultimately it’s just worse than any other version of OS X. I’d recommend Panther over Leopard right now, never mind Tiger.
A guilty secret
For the last few years I’ve been involved in the co-ordination around the Manchester BSD User Group meetings (first Tuesday of the month, Briton’s Protection, Great Bridgewater Street), because I’ve been so heavily involved in running BSD systems over the years. In fact, I think this Summer marks the 9th year of me running BSD kit. In Unix terms that makes me a baby, but back then many of us were still running FreeBSD 2.x which would make the current crop of young admins nauseous. No package management, no easy deployment, lots of fiddling with drivers to get things working: it was real frontier land back then.
However, due to server consolidation and the fact that the cost of dedicated servers in the UK with FreeBSD are either not an option or prohibitively expensive, something bad just happened:
I no longer admin any BSD machines.
This site is now on a Debian server, and is likely to remain so for some time. All of my current projects deploy out to Linux boxes (some of them in unusual corners of the globe). The closest I can get is that the machine I’m writing this on is OS X which has FreeBSD userland under the skin.
Somehow this bothers me more than I thought it should. BSD (specifically FreeBSD) has been a staunch and loyal friend over the years to me, and without it my work would have been harder, less enjoyable and I wouldn’t have met some of the amazing people I have over the years through the BSD scene.
I expect in about 12 months I’ll be in a position to be buying new hardware of my own rather than leasing somebody else’s kit, but by then I expect it’ll be more economical to be on an elastic cloud based on Xen than it will be to own my own iron in a data centre. Even if it makes sense to own the iron, there is a good chance I might be going down the Solaris route as I like some of the virtualisation work they’re doing. In other words, I’m not sure if BSD is in my future outside of a hobby interest.
For now then, I’ll still be going to the BSD meets, and I’ll probably even try and keep a box running somewhere so I can track -CURRENT, but today is a sad day for me: I don’t know the next time I’ll cvsup the ports tree and portupgrade. I don’t know the next time I’ll be thankful for the sane and consistent documentation of the system I’m using. I don’t know the next time I’ll feel like I’m using a real Unix built by real Unix people.
What I do know is that I’ll always think of the BSD distros out there as the best open source Unix on the planet, and the people working on them as the best developers bar none. Thanks to all of them for their hard work and keeping me entertained whilst earning my rent for the last decade.

