February 27, 2008
I spend the majority of my days working with OpenSource Unix derivatives and have to say I enjoy every minute of it! Not a day goes by where I do not learn something new or discover a new way to solve a problem all thanks to Unics (Everything has a beginning).
If you are passionate about GNU / Unix / Linux / OpenSource I apologise for the generalization “Unix” but wanted to focus on the OS and tools that make moving between one Unix variant and another as easy as pie. 
Putting aside all the nuances that distinguish the many flavors of Unix, once you gain a core understanding of the Community, Tools and Kernels, you find that moving from one OS flavor to another is as simple as uname and man.
Take for instance my latest branch off the Unix tree - HP-UX. Having minimal exposure to HP-UX I wanted to get up to speed quick as possible, so I grabbed a copy of the HP-UX Study Guide and booked the CSA exam knowing that if I had a goal I would not just move onto the next flavor.
The book was a great resource and I only wished I had read it sooner as it covered many tools and concepts that are commonplace in SVR4 Unix derivatives such as Solaris. I felt like I was stepping back 10 years to when I first started to discover basic utilities such as cat, sed and awk but explained in so much detail that I found myself learning some new tricks!. Even if you are not interested in HP-UX this book is so well written and easy to condense that it is worth a place on your Unix bookshelf!.
As for HP-UX, well I felt right at home and only had to spend time learning the key differences such as Software Management and HP’s Partitioning Continuum technology (Virtualization to you and me) - very cool!.
Would I run HP-UX on my own servers? Probably not, it’s not OpenSource for starters (plus I don’t have the hardware), and to be honest I have been running FreeBSD for over 10 years now and no matter how many Unix/Linux derivatives I encounter not one has been able to surpass FreeBSD’s community, stability and manageability. Plus FreeBSD is Free in every sense!.
Speaking of FreeBSD you might have noticed the image in the upper left corner of this post - yes you guessed it; FreeBSD 7.0 has been released!.
I have been running a release candidate for a while now and have to say that the one thing you will notice is how fast it runs. Don’t take my word for that either, check out the Benchmarks and read through the new features explained in detail over at the BSD Devcenter. With performance like that why would you want to run any other OS?
Download your copy from here and never look back. 
October 08, 2007
I read a lot about MySQL backups using LVM Snapshots on Linux, WAFL Snapshots on NetApp and more recently ZFS Snapshots. But did you know you can do the same under FreeBSD?
FreeBSD has had snapshot capability since around 2001 allowing administrators to take a frozen
image of a filesystem at a given instant in time with minimal impact on the server / filesystem. So how does this help with MySQL Backups?
If like me you have loads of space on your database volume and often find yourself making frequent risky modifications to your databases, a snapshot can save you loads of time and headaches by creating a point in time marker that you can fallback on if needed.
Snapshots provide the following benefits:
- Efficient - Only as blocks in the active filesystem are modified and written to new locations on disk does the snapshot begin to consume extra space.
- Fast - It takes about 30 seconds to create a snapshot of an 8Gb filesystem. Of that time 25 seconds is spent in preparation; filesystem activity is only suspended for the final 5 seconds of that period.
- Reliable - FreeBSD ensures that no disk write activity can take place during the setup of the snapshot (typically less than a second). The result is a consistent replica.
If you are running MySQL on FreeBSD, snapshots can certainly help improve your backup strategy. So how do you get started?
Well if you head over to the Wiki you’ll find a detailed guide to creating your first snapshot, but before you click that link there is another new FreeBSD feature that you may not be aware of - Security Event Auditing.
Protecting your data requires more than just regular backups and the security auditing feature in FreeBSD 6.2+ can help assist with the logging of activity on your MySQL server.

Based on Sun’s published Basic Security Module (BSM), the de facto industry standard for auditing, FreeBSD Security Event Auditing provides reliable, fine-grained, and configurable logging of a variety of security-relevant system events, including logins, configuration changes, and file and network access. These log records can be invaluable for live system monitoring, intrusion detection, and postmortem analysis.
At the moment the stable release of FreeBSD will require a Kernel compile to enable audit capability, but future releases should have audit enabled in the generic kernel. You never know by the time FreeBSD 7.0 is available I may have figured out a way to audit MySQL logins using auditd.
If your feeling brave you can download the latest monthly snapshot of the upcoming FreeBSD 7.0 release and put auditing to the test.
Right - I’m off to get a working NetUnit jar ready for the end of the week - I hope 
September 06, 2007
Whenever I decide to take a holiday I can usually guarantee that something cool will occur in the IT industry in my absence.
Now this holiday has been slightly different in many ways. I had to cancel my flight due to a sudden onset of Vertigo 1 day before I was supposed to fly. If like me you have never experienced Vertigo before, thank yourself lucky!. Having no sense of balance and intense room spin whenever you open your eyes is no fun at all, it took at least 2 days for me to stop being sick.
Having been able to actually use my laptop in the last couple of days I notice that the “cool thing” I usually miss on holiday turns out to be big trouble all over OpenSourceVille, the majority of which seems to revolve around licensing and intellectual property.
Who could miss the BSD vs GPL debate that I’m sure will rage for a long time after the ath5k driver had the BSD license removed in favour of the GPL. Stealing code was suddenly the headline for this action and the rift between the “Linux” developers and “BSD” developers increased once more.
Personally I feel the license should be as “Open” as possible and always apply the BSD license where I can. I want to be recognised as the author of any work I produce and protected against any misuse of such work (liability). With OpenSource development taking place in clear view nowadays, such visibility can only enforce your ideas and intellectual property. Why complicate things with over restrictive licenses…
While still on the topic of licensing it seems John Birrell is having to start all over again with a new port of DTrace on FreeBSD. The CDDL this time preventing kernel hooks from being added to the FreeBSD kernel. This seems such a shame as DTrace technology provides a massive benefit for software developers and will starting afresh really change the situation?, If not through licensing I am sure there must be patents on the intellectual property that Sun could enforce on any DTrace port? Just look at what is going on between NetApp and Sun at the moment.
So from licensing issues to patent infringement where it seems ZFS may not be as revolutionary as Sun claim and in fact NetApp actually came up with some of the functionality back in 1998. Dave’s Blog outlines all the details in what I can only describe as an excellent explanation as to how NetApp have had to file a lawsuit against Sun. Strangely enough I originally heard about this from the MySQL Planet! and not from any of the Solaris / OpenSolaris Planets each of which have around 45 Sun employee feeds?
We develop software to improve our way of life. Licensing and Patents although often necessary seem only to be hindering progress… Still it keeps us busy re-inventing the wheel.
On a good note, I was around to see the launch of the iPod Touch - if you can call that good…I might just wait until the drive space increases before I buy one, 16Gig seems tiny these days but then again the Touch would come in handy for on the go web browsing. 
I also noticed Oracle 11g had been released (I obviously missed that one), although only for Linux at the moment?. I’m no Oracle expert but seeing as Oracle provide Java based development tools and my previous installs had a lot of Java involved surely Solaris would make a better fit?
Image combined using artistry from Project TIMEMACHINE - http://www.timemachine.ne.jp/
May 21, 2007
I have been running FreeBSD on my servers for years and have made many attempts during that time to use it on my Laptop - all attempts failed… But with the recent commit of xorg 7.2 to the Ports Tree I might just have to give it another go
The upgrade has been 6 months in the making and would not have been possible without the dedicated work of Florent Thoumie , Dejan Lesjak and many other top FreeBSD developers - cheers folks - I look forward to putting it to the test in the next few weeks.
I have spent the last few days trying to find a decent tool to help with software design. I wanted something that could do everything, UML diagrams, Use Case etc, but of all the tools I tried not one of them felt right. There are many tools out there but the majority seemed too slow to work with or too complicated to just whip up a quick diagram.
After all the searching I have yet to find a tool that works better than good old pencil and paper!
One tool however does stand out from the crowd and although it focuses on a single task, it performs that task exceptionally well. The tool you ask? Freemind.
I have been using Freemind for a few months now and keep finding new ways to make use of the simple Parent / Child Node tree. Project planning, personal achievement records, website maps etc etc. The list is endless and after reading an article on Developer.com now includes Software Design.
See Wave2 Informeer for a simple example.
I hope to get the mmEvents Daemon running this week, time permitting of course. I seem to be having so many ideas at the moment and unfortunately so little time….
April 29, 2007
For quite a while I have been playing with Web Frameworks in the hope that I would find a more “Large Scale” method of writing Web Applications.
Since being hooked on Python at the time I started with Zope, reading the programmers guide from front to back I ended up believing that Zope was indeed a great Framework, It made sense why it was rebuilt from scratch, but I was no closer to being able to use it.
Then came Django and TurboGears. Once again I skimmed the manuals and even gave Django an install but they still felt alien to me and incomplete (Maybe things have changed now - that was over a year ago:)).
So I lay down my Python tools and picked up my Java book, after all Java 6 was much faster now and many Java based Web Frameworks were out there and driving some of the largest sites in the world. My only problem now was choice.
Choosing a decent Framework using Java is tough - not only do you need to choose the Framework you need to choose a container to host your application. Do you use JBoss,Geronimo (My Fave), GlassFish or any of the other App Servers out there? and do they support your chosen OS? Java was written by Sun and always runs faster on Solaris - but I use FreeBSD - something that Sun don’t even offer a download of the JDK for!. In the end I got Geronimo working fine on FreeBSD - but it still did not feel right.
That’s when I found Catalyst

Described as an Elegant MVC Framework, Catalyst felt right, looked right and worked perfectly on FreeBSD.
Written in Perl and designed for Perl developers my enthusiasm for Perl 6 drove me to give it a whirl and am I glad I did!
The documentation is excellent, the built in debugging actually assists the developer and the Framework is so flexible you can write your App pretty much any way you like.
I plan to use the Catalyst Framework for the notification application Wave2 Infomeer and will let you know how things work out, but in the meantime if like me you have tried several Web Frameworks and never felt comfortable I’d suggest you give Catalyst an hour of your time - you’ll be impressed!.