Have a Very Merry Christmas and an Open Source 2010!

Merry Christmas 2009The year is finally drawing to a close, a year that has seen doom and gloom for many, what with the recession shaking things up in every possible way imaginable.

For the world of Open Source (and closed source for that matter), innovation seems to have slowed a little, with many a project focusing on monetization and enterprise penetration (think stability, minor improvements and paid support). This is all good of course and has had the result of positioning Open Source directly in the crosshairs of the CIO’s 2010 budget.

I personally took a step back from Open Source this year (a tiny step) and instead delved into the worlds of IBM, Microsoft (Big thanks for the assistance!) and Oracle (all embracing Open Source in one way or another – click the links), with a view to supporting more platforms with existing / future projects and at the same time feeding my ever hungry brain with fresh ideas. :idea:

While I let a few of my projects slip and failed to post as often as I wanted, I managed to gain insight into the feature sets and API’s of some of the leading closed source platforms (Open up folks – it won’t hurt!). It really pays to diversify, you never know where or how your code will be used, but honestly, I have no intention of changing the name of this site to Closed Source Consultancy any time soon! :twisted:

So after all the ups and downs of 2009 we finally find ourselves slap bang in the festive season, and with 2010 just around the corner, can we finally see the light at the end of the tunnel?

For starters 2010 should see the UK exit the recession (I’m optimistic) and the future of the MySQL database may eventually become clear, but is it too late? Think PostgreSQL 8.5. :roll:

We have Perl 6 to look forward to (has it really been that long!), followed closely by OpenJDK 7 (will Modularization make this a no brainer) and with Google looking to take over the Netbook / Mobile markets (along with every other market you can think of), 2010 is definitely warming up to be an interesting year!

I’m hoping that a decent e-reader device arrives (Google/Apple?). The Kindle etc look impressive but they still feel first generation and I prefer to wait for the second Wave before diving in. ;) .

New years resolutions

I didn’t do too bad with my resolutions for 2009, what with my knowledge upgrade of Microsoft SQL 2008 and Oracle 11G, making a start on the FreeBSD package for AuthStor, and upgrading all my local servers to FreeBSD 7.1+ (FreeBSD 8 rocks!). The only 2 resolutions I failed to achieve were non-techie (Guitar and Ableton) so that’s ok right?

Here’s my attempt at a list for 2010!

1. Redesign this site (and post frequently)
2. Code more (AuthStor, BinaryStor, dbRecorder, Informeer etc) and innovate
3. Upgrade to Perl 6 and Java 7 – not at the same time of course!
4. Play the guitar (maybe once or twice a month this time)
5. Row at least a million meters

Exciting times ahead!

Right I’m off to enjoy Santa Clause The Movie, so without further ado, I wish you all a Very Merry Christmas and a Prosperous Open Source 2010!!

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!. :)

PostgreSQL – Rock Solid in the face of forking MySQL

PostgreSQLEver since Sun Microsystems agreed to acquire MySQL back in 2008, there has been a fair bit of uncertainty and chaos surrounding the world’s most popular Open Source database. With many big names in the MySQL community pulling in different directions and the recent Oracle / Sun acquisition, the choice of which Open Source database to use is now easier than ever – PostgreSQL. :twisted:

One of MySQL’s key strengths has always been its simplicity to both install, manage and code against, resulting in mass adoption over time, which in turn forced the once web bound database to evolve into a near fully fledged enterprise RDBMS.

PostgreSQL on the other hand was born an RDBMS and instead worked silently in the background improving the performance, reliability and feature list of the world’s most advanced Open Source database, and all under the lesser restrictive BSD license – nice work!.

Getting up to speed with PostgreSQL can take a little longer for MySQL veterans, mostly due to the many subtle differences, but more importantly the extensive feature set (one of the reasons it is taking longer to add PostgreSQL support to dbRecorder ;) ) but the rewards are worth it, as companies such as Skype can attest to.

It was installing OpenNMS several years ago that convinced me to get to grips with PostgreSQL, and although there is a distinct lack of new reading material out there the manual covers everything you need to start building your next web app.

The GUI tool pgAdmin has also come a long way and provides a great interface to PostgreSQL, with excellent instructional prompts and support for all major platforms, there really is no better tool to help you work with PostgreSQL while getting to grips with the vast feature set. Check out the latest beta over at the pgAdmin site.

If you’re not yet excited about PostgreSQL, maybe you should check out the feature list planned for release 8.4 (currently at beta2), with cool features such as Column Level Permissions and SSL Connections you can feel less stressed about the security of your data, oh and the performance improvements won’t hurt either!.

While keeping with the BSD license, another notable release last month was FreeBSD 7.2, a great platform to complement the reliability of PostgreSQL and another way to gain some performance improvements.
Speaking of performance I was pleased to read that Jails are much improved in the latest release, and that it seems I am not the only one that prefers Jails / Zones over VM solutions!.

I’m off to make some progress with PostgreSQLDump.java, the worker class that will allow me to add PostgreSQL support to dbRecorder.
Watch this space…..

One eDirectory to rule them all

Novell SUSE Enterprise Linux 11There was a time when Novell ruled the server…a time when CNE was a mark of technical excellence and server uptime was measured in years not weeks…a time and when Novell Directory Services (NDS) provided a single point of administration for every aspect of the enterprise environment, including the then evolving Active Directory!.

Yet just when everything was coming together for Novell the attraction of owning the desktop led them to acquire Ximian, the coolest Linux desktop on the block, before joining forces with IBM and acquiring SuSE – possibly the biggest competitor to RedHat at the time.

It was not long after the SuSE acquisition that Novell announced their intention to phase out NetWare, a move that saw many IT Managers faced with the decision of migrating their servers to the then largely untested OES (Open Enterprise Server) or crumbling under the ever increasing pressure of Active Directory and Exchange. Needless to say not many survived to log in via the Novell Client

I personally focused my energy on FreeBSD and other OpenSource solutions, occasionally rolling out OES to companies that required enterprise support, secure file synchronisation (iFolder) or a rock solid collaboration platform (GroupWise). Novell have always had sensible license fees that were often based on the user model and not server providing massive cost savings.

It was cost savings that I was looking for recently while searching for a cross platform LDAP solution that was easy to manage, secure, reliable and had enterprise support to boot. It was exactly those requirements that led me back to Novell, back to eDirectory, which after all this time continue to offer the Full Service Directory promise that ruled the enterprise several years ago.

Installation of eDirectory on SuSE is seamless, RedHat however required a few dependencies (yum install) but still took under 10 minutes, and that included bolting on iManager the secure web interface to many Novell products (think Console One). Configuring the RedHat clients was just as easy, in fact using the authconfig tool you can configure the client to talk to eDirectory with a single command:

authconfig --enableldap --enableldapauth --enableldaptls --ldapserver=myserver --ldapbasedn=o=myorganisation --enablemkhomedir --updateall

As for adding a replica for resilience, well you only need to install eDirectory onto another server on your network (yes it runs on Windows too!), and as long as you select your existing tree during the install process you have a secure read/write replica – simple eh!.

So it seems Novell never gave up. They focused their energy into migrating all the great tools we took for granted with NetWare while combining the best of breed Linux tools into SUSE Linux Enterprise 11 – Novell’s latest enterprise server platform.

With features such as .NET support for System z mainframes, OCFS2 / cLVM2 and new fine-grained management of CPU, memory, storage and networking resources, it looks like Novell have a worthy contender to the enterprise Linux throne!.
Could Novell be ready to pick up where they left off with NetWare?, only time will tell….now if only eDirectory ran on FreeBSD. ;)

Happy New Year!

Happy New Year 2009!I know it’s a little late but the usual drive of new year innovation and releases within the Open Source world have been keeping me busy recently.

New years resolutions

1. Package AuthStor
2. Learn another RDBMS – Oracle / MSSQL?
3. Upgrade my local servers to FreeBSD 7.1
4. Pick up the guitar at least once a week
5. Lay down my first audio track in Ableton Live

The year started with my attempt at some resolutions (you know the ones you never keep) of which I am already making good progress on.

First on my list was AuthStor which is working on a basic level at the moment but there is so much more that can be done to make it easier to use. Why has it taken so long you may ask?

Well apart from being the only developer last year, I made several attempts to re-write the app in something like JSP or Zend Framework, partly because there is a lot of activity in those communities but mostly due to the complications faced with packaging around 50 Perl modules that each have their own compile time dependencies – some of which change frequently often breaking the application (no strict API/Interfaces to adhere to).

So after several prototypes why did I decide to stick with Perl?
Well for starters the changes that did break the application often forced me to change the app in a way that was more logical or introduced a more structured design. I also found that JSP and Zend although cool frameworks tended to feel incomplete and introduced complexities elsewhere e.g. containers / authentication / roles. Catalyst is simple and extremely powerful providing both a development environment and production framework that takes little effort to introduce new features quickly. I can start 2009 in the knowledge that Perl and Catalyst are the right language / framework for the job. I just need to work on the packaging now!

The next item on my list is to learn yet another RDBMS. Why? Enlightenment first and foremost, plus I am a big believer in gaining as much knowledge as possible in my chosen field. You’ll never complete the jigsaw if you have several pieces missing, and seeing as I spent a good part of last year getting to know DB2 I decided this year that my focus would by Oracle and MSSQL, thus completing the picture.

With the release of FreeBSD 7.1 there are now so many cool features that I decided to upgrade some of my older servers that have been sitting in the corner running nicely on FreeBSD 6 (they never fail). DTrace and ZFS put a stop to FreeBSD slipping behind OpenSolaris and the ULE scheduler helps improve performance over your average Linux distro, and with ULE 3 due for release in FreeBSD 8.0 (June) you can expect to see further dramatic performance improvements. :twisted:

Last on my list will be to pick the Les Paul at least once a week!. One of my prezzies in 2008 was a new orange amp! If that does not encourage me to pick up the guitar I don’t know what will!. You never know I might even mix something up with the copy of Live I got for Christmas ;)