EuroBSDCon 2009 – Tutorial Day

EuroBSDCon2009When they announced the venue for EuroBSDCon 2009 I was pretty excited to hear that it was going to be held in Cambridge, just a few minutes down the road from where I work. I was even more excited however when I heard that Dr. Marshall Kirk McKusick was going to be giving a 1 day tutorial on the inner workings of the FreeBSD kernel!

I have been working with FreeBSD for well over 12 years now and have read many a book on the subject, including a few written by Kirk McKusick, one of which was the subject of this tutorial ‘The Design and Implementation of the FreeBSD Operating System’. It’s been a while since I last read the book and as FreeBSD is so reliable I have yet to find an itch within the Kernel that has not been scratched by some other developer.
That does not mean that I am not curious about the inner workings, after all if you do not fully understand something how can you maximise it’s potential.

Justifying the spend in the current economic climate was difficult, but there was no way I was going to miss the tutorial even at the expense of missing the weekend talks which I later found out contained another session by Kirk on SuperPages in FreeBSD 8.0. :(

The tutorial and conference were being held at Robinson College, not too far from the centre and a peaceful walk past the playing fields. Upon arriving I was surprised to see so many beastie T-shirts and many famous faces from the world of Unix!

MusicRoomPaintingSmall

The tutorial was one of 3 being given that day and saw around 20 delegates squeeze into the Music Room, a small yet comfortable room with brick walls and a couple of oil paintings, one of which had what looked like a tiny Beastie painted in a field (check out the photo)….weird huh….

The tutorial began with an explanation that the course had been condensed over time due to the request of conference organisers and was usually taught over several 1hr 30 sessions. This was the first attempt at squeezing the content into a 1 day tutorial and so might be a little unpredictable.

Having read the book previously I could immediately relate to the slides, and as Kirk continued to enlighten us with his graphical view into the Kernel, many areas of the book that I had read but not necessarily understood, slowly began to make sense. In fact after the first session it became apparent that I had a better idea of how the Kernel worked than I first imagined.

The first section flew by real fast and I got the impression that Kirk might have been regretting the decision to allow questions to be thrown throughout the tutorial. For the delegates however this freeflow questioning was priceless as it was clear that there were a few who had come into the tutorial with no prior knowledge of how Unix/Linux Kernels operate. Even for the initiated, just being able to ask a question and get a detailed response was worth the tutorial fee.

RandallandKirkSmall

After a brief coffee break it was full speed ahead for next hour or so until lunch, which was surprisingly tasty, and managed to curb the headache I was feeling, along with other cold-like symptoms I had been fighting. Back at the Music Room Randall Stewart popped in to say hello and joke about his session on SCTP where he was having to throw questions out to the delegates to keep them awake (I’m sure it was a joke!) :)

As everyone returned from lunch, Kirk explained that we had only managed to cover 1 out of 4 of the sessions and asked if we would like to vote for which of the remaining 3 sessions to focus on. All 3 sessions got equal votes, so it was decided that questions be kept to a minimum and Kirk would talk less but still cover all the topics.
By the time we got around to the next coffee break we were back on track and ready for a sprint through Networking and IPC. Speaking of networking, Eric Allman (Sendmail – get it ;) ) dropped in, just in time for the tutorial to finish, and with only 1 minute left for questions!

After the tutorial we were all invited to join the developers for a punt along the river cam joined by food and beer in town, but as I my head was throbbing, I decided to give that a miss on this occasion and head home in search of a dark room to browse the FreeBSD source – or just some sleep. :)

The tutorial was excellent and if you happen to be curious about the inner workings of FreeBSD, or like me had read the book but needed some more clarity, you should try to catch the next one or buy the course on DVD and learn at your own leisure!

A big shout out to Kirk and all those who made EuroBSDCon happen! Thanks folks!!

Flex – It’s like Flash for Coders

Concept2 Flex WidgetAfter a well needed break, spent mostly on a sun lounger reading Masterminds of Programming (Fantastic book if you truly enjoy your code!), The Art of Lean Software Development (A real eye opener and highly recommended) and The Productive Programmer (Common sense for experienced developers, but an easy enough read to help refresh your memory), I arrived home a few pounds heavier than when I left, eager to release the creativity from my well rested brain. ;)

While on holiday I managed to pay a visit to the gym (one day it rained :twisted: ), where I stumbled across an ergometer that is quite simply an impressive piece of engineering!. At first glance the rower looks solid and unobtrusive, however the minute you start to row, you can tell that a lot of work had gone into designing this machine. From the super smooth whir of the flywheel, to the instant gratification from the console, I was hooked and just had to have one!.

It took me a while to finally track down the model (I couldn’t find it in the high street), but after trawling Google images for rowers, I finally found myself at the Concept2 website. It came as no surprise that the Concept2 is regarded as the world’s best rowing machine, and after buying mine from their site I have to agree with that statement.

So what’s rowing got to do with Open Source anyway?, well one of the cool things about owning a Concept2 rower is the ability to log and validate your rowing time online. Doing so allows you to take part in the many challenges offered (I’m looking forward to Skeleton Crew) and compare your ranking with other rowers around the world – rewards help motivate you and keep you rowing!.

It was while I was updating my Online Logbook that I began to think about adding my current progress to this site and wondering what the best method of presenting that information would be. Concept2 are working toward a web based API to access stats, so if I wanted to embed my progress in the meantime I would need to parse the current ranking page.

I started off looking at Javascript, as I knew that most browsers support the language and it would not require any server side code. Finding a decent progressbar that had a nice API and worked well in most browsers, however, proved to be tricky.
I remembered that the Open Source Adobe® Flex® Framework has an easy to use progressbar, and with Adobe Air targeting the desktop I could run the widget on the desktop if needed.

It’s been a while since I last played with Flex, but I am still impressed with the simplicity of MXML and how easy it is to get an working app in no time. Within minutes I had a working widget, my only issue was that when I uploaded to the website, the actionscript that parsed the logbook page failed due to a sandbox violation. A common issue that is easily fixed by uploading a cross-domain policy file to the website you want to access. :( Not something I wanted to request, so I just resorted to mirroring the page on my own site for now – good old Wget and Cron. :)

Adding the app to the site was no trouble either, with the help of SWFObject only a few lines of html are required to embed the app and handle any cross browser Flash issues. If you want to see just how easy Flex is to work with, check out the tutorial on the wiki for details on how the widget was built.

Of course that’s just a start, there’s loads more features that could be added to the widget and if parameterised / themed it could also be shared with other sites – watch this space!.

While working with Flex / Flash I also stumbled across Zero Clipboard, a cool library that allows you to access the clipboard via Javascript – AuthStor now has 1 click copy, a feature that cut out several steps required to copy a password and ensures that nobody can snoop over your shoulder.

Right back to rowing, I have 976433 meters to go before I make it into the Million Meter Club!. :)