Working from home (and IBM IMM, briefly)

All in all for the last 5 years I've worked exclusively from home, and prior to that it was on and off depending on circumstances, and so on. During this time I've often been asked the same sort of questions over and over again;

  • "Is it lonely?"
  • "How hard is it to motivate yourself? I don't think I could get stuff done!"

The first question I can understand. Sometimes you do need to see someone else, physically there in front of you, but to be frank, I've never been a great social animal, which probably helps massively. Second I speak with the other guys that I work with quite a lot during the day (unless I've got my head stuck in a particularly complex project or issue). We use Skype, our VoIP phone system and an internal IRC server to communicate. We joke, we talk movies, share stupid links occasionally, everything you'd get in a normal office - just with a bit of geographical distance. Often people find this quite hard to grasp when I explain this.

To a certain extent I can understand the view point of the second question; It can be hard sometimes. However (and this is the big secret to working at home) if you love your job, to the point that you'd probably be doing the same sort of things if you were unemployed, then working from home shouldn't be any harder for you than working in an office. If you're not in the same boat as me, which is loving your job, then you're right getting motivated would be frakking hard work.

However, there is a bit of a downside with working from home, and that is simply balancing work and home life. I won't pretend that I have the answers to this one, because honestly I don't. I'm very bad at separating what I'm told should be 2 different ways of life. However, part of the problem is that I do have to do a reasonable amount of stuff outside of the normal 9-5 hours. Sometimes it's hard to perform maintenance on systems when the customers you're working for don't always have the financial, or other, capacity to build highly available systems.

So why the post? Partially I felt that I didn't really have anything interesting to write about from work. There's some stuff about the "new" IBM IMM (Integrated Management Module) that I've only just had the opportunity to play with, since we've not put any new servers in for sometime. At the end of the day by standard IMM is nice, but you really need the Virtual Media Key to make the most of it (which provides remote presence, and remote media features) - which for about £200 is totally worth it and necessary if you've used other fully featured remote management/lights out cards in the past.

The other reason is that I was reading an old copy of .NET magazine that I've half-inched from Chris where the 37Signals partner David Heinemeier Hansson has a page (once you remove the images) article about the worth ethic being 37Signals. One of which is that he believes workaholics should be fired, and he explains why. Great article and interesting to see how creative companies work. I just struggle to see many people in my line of work, and similar ones, that aren't workaholics, simply because they really love what they do. But does that make us workaholics?

Android & Samsung Galaxy S Fun

I've recently acquired a new phone to replace my aging iPhone 3G: The Samsung Galaxy S (or the GT-i9000 everywhere outside of the UK [apparently]). This is my first dip into the Android world, and I've got mixed feelings about it.

In the past I had Windows Mobile devices for work, around the 5 series, and in many ways Android reminds me very much of that experience. Now hear me out before you start tracking me down and attempting to kill me: Applications vary wildly on quality and the operating system gives you a reasonable amount of flexibility at the expensive of battery life and in some instances a complexity of use.

After 2 years of almost exclusive iPhone use I'm starting to remember what the appeal was of the original iPhone, despite the somewhat draconian strangle hold Apple has over the platform. From time to time I yearn for a dictator to swoop down and with an ironfist make every useful application I've installed follow some sort of coherent usability and style guidelines. I long for someone to clear the piles of crap from the Application Marketplace, or at least create some clever system where they don't bubble to the surface.

Despite this I do still love the Android platform, but it just feels like it's not quite finished - yet. The default mail application needs some love (or better yet, to merge the changes from k9), the browser needs a little tweaking, and so on and so on. I'm not yet regretting the move to Android, and I'm not sure that I will for sometime to come, if at all. The fact that I now have a mass storage device in my pocket at all times, which is also a hackable unix box underneath is very comforting.

As for the Samsung Galaxy S, it's a great bit of hardware on paper. In real life I feel it does need more RAM, and the battery really does need to be better. With some faffing it's acceptable. This is in part down to some of the applications that are bundled, and in part down to the massive screen and GPS, but even with just bluetooth on in the car it really does drain more quickly than I've become accustomed to. If anything it's another reminder of the Windows Mobile days of yore. The build quality is one place where I really feel like I've been spoiled by Apple. I've become very used to aluminium laptops[1] and phones that feel solid. On a favourable day I would describe the Galaxy S, as "classic phone" or "classic Samsung", and on an unfavourable day as "cheap". It's a bit of a let down considering the outstanding specs on the rest of the phone.

The one thing that is the "killer app" for this phone is the inclusion of Swype as standard. Whilst not exclusive to the Galaxy S, or even Android, I can tell you that this; Swype should become the defacto standard for input. The fact that the iPhone is inflexible enough to allow modifications to this extent places the nail in Apple's coffin as a mobile phone supplier for me.

If you've got any phone with Swype included in the default ROM I highly recommend that you enable it and have a play. If you're unlucky enough not to have a compatible phone trawl the nearest city until you find someone with one so you can understand why I feel it's so great. It may sound completely nuts, or like a gimmick, but it's really not.

[1] Having had accidents with laptops, ranging from dropping off tables to having rackmount servers and IBM thinkcentres landing on them, only my previous Apple Macbook Pro survived to live another day. To me this makes the case for decent build quality.

Debian on the AppleTV

It's hardly a first, but I did find some of the information out there a bit spread out. So, just incase I need to go through this again, I figured a 'blog post might be interesting - doubly so as I've not really got anything interesting from work, that I can blog about at the moment!

So, a bit of background. The AppleTV (ATV) is basically a dumb x86 PC - Pentium M 1GHz, 256MB of RAM, 40 or 160GB PATA HDD, 1x USB 2, 1x IR receiver, 10/100Mb ethernet, 801.11n Broadcom WiFi and a Nvidia Geforce GO 7300 - all which uses about 17W of power in a fairly compact and quiet, form factor. What I hadn't banked on was the very retarded power supply. I knew that the ATV wasn't able to power off, but I assumed that was a software thing. Oh no. The actual power supply has no concept of switching. It's either on or off. Which is slightly annoying.

The whole "hacking" process is largely taken care of - a bunch of enterprising invididuals have got it running, over the course of several iterations. The most recent is the efforts from the ATV-Bootloader team, who have basically built a small recovery image, which translates some of the EFI structures into BIOS compatible (allowing unpatched kernels to run) and has a very cut down Linux installation which then chainloads (using kexec) another Linux kernel. The really awesome thing is that these guys have made some nice tools to stream line the efforts if you want the ATV OS and Linux to co-habit. I didn't want this particularly.

So first thing first was the old hard disk was removed and a new one was prepared under my desktop install of Linux, via a USB to IDE converter, using the instructions on the ATV-Bootloader project wiki. Pay close attention to the requirements for a patched parted.

Next I used debootstrap to install a basic Debian (squeeze) system into /dev/sda4 (ATV-Bootloader sees all drives as /dev/sd*, where as when you boot into a kexec'ed kernel they will be seen as /dev/hd* - this confused me for a few minutes - not something you want when you're scrabbling around at stupid o'clock in the morning). At this point I then chroot'ed into it and used apt to install a kernel, but no bootloader. Since the ATV-Bootloader uses kexec all you need to do is have a valid one of the following: mb_boot_tv.conf, menu.lst (grub), syslinux.cfg (ISOLinux), or kboot.conf. Having played with grub files quite a lot I thought that I knew the syntax well, but do you think I could get it to work with a grub file? No. I ended up whimping out and using a mb_boot_tv.conf (popped it into the root of the Linux partition) which is a lot simplier[1] and is infact the first file searched for (so its slightly faster to boot). If you don't fancy that then check out boot_linux.sh from the ATV-Bootloader trunk to see all the options and example configs (in-line comments). The only other things you need to remember are the usual when debootstrapping - create a valid /etc/network/interafces (man 5 interfaces, if you're unsure), make sure udev numbers your network cards correctly (/etc/udev/rules.d/70-persistent-net.rules), and of course your root password. Exit, reboot and hey presto, you should be into a very basic Debian install.

My next annoyance was the flashing LED. By default it flashes orange to tell you that its booting, and then the ATV OS would reset it to a white light. Thankfully a great chap by the name of Peter Korsgaard has written a tool (available from git and here - note needs to be compiled) called atvtool to control the LED and the fan. It's a little basic and doesn't play well with lircd at the moment (you can set atvtool to release the controller back, at which point lircd needs to be restarted), although I'm hoping to have a poke and understand why and hopefully fix this.

WiFi is also fairly important to me since I'm going to use the ATV to replace my WRT54G bridging 2 networks here. Sadly the only real options seem to be using ndiswrapper or the Broadcom-STA drivers. I opted for the Broadcom-STA and things are going well, with no issues at present - the only special thing I did, for my own brain, was to rename the adapter to wlan0 (again, udev persistent-net.rules).

From here on out, if you're running headless, everything should be working like a dream. At this point I elected to install the nvidia kernel module only to see if I could get anything useful from lm-sensors, but there wasn't much luck on that front. if you're planning on using the ATV as a media center or with a monitor/TV, then you'll definitely need it.

What does this leave you with? A low power, almost silent, fairly capable machine to run part of your network. The only sad thing, in my eyes, is the limitation of a single USB port. From here you could run forked-daapd to share your music, any of the several network file systems, DHCP, DNS, you name it. Just watch the memory usage - don't forget that there's only 256MB of RAM to play with.

[1] Vaguely what my mb_boot_tv.conf looks like - note the /dev/hda4 instead of /dev/sda4. #try-net-boot kernel /vmlinuz append ro root=/dev/hda4 initrd /initrd.gz

Current Cost - A great company

Over the last few days I've been conversing with Current Cost, a UK based company which produces energy monitoring devices.

After I made a bit of a cock up (I eventually wanted a data cable after some testing with the unit in order to graph our rough power consumption and the Trec unit does not have a serial output) with the order they promptly handled and corrected my mistake.

When my unit arrived there was unfortunately the wrong sort of clamp, within the day a replacement was on its way with a little extra (USB-to-Serial data cable) to say sorry. The next day the clamp arrived and my Current Cost Envi is monitoring our apparent power consumption.

During the whole process the Current Cost staff were courteous and basically pretty damn awesome, and I'd highly recommend doing business with them to any one.

I've not yet decided how I want to grab output from the Envi yet: Perhaps an Arduino, perhaps a slightly modified WRT54G, however given that there's serial out, the fact that the units use Zigbee, and there's a fair bit of documentation out there, it's going to get done one way or another.

Mostly harmless

I've had a few people asking me, via various channels, about my "sudden" change in status on the LFSforum. Rather than deal with it individually again I figured a quick post might help.

  • It's correct that I'm no longer a moderator.
  • It wasn't the result of anything I'd done, or any animosity between myself, any of the other mods, or the LFS devs. Quite the opposite, in fact, and I wish the both the moderation and development team all the luck in the world with LFS.
  • It was the largely the result of the community as a whole, which I no longer felt that I could moderate impartially. I won't go into further details, even if you ask. So please don't.
  • It was also due, in part, to my ever increasing lack of time to post, let alone do consistent and "proper" moderation.

For these reasons I'm taking a break away from the forums, however I intend to return to assist with the programmers forum and various bits of support again at some [undetermined] point in the future.