A decade flies when your having fun!

10 Years of Wave2While completing this years company return I happened to notice that the date of incorporation for Wave2 Limited was exactly 10 years ago last month, has it really been that long I thought to myself?

Well, no, it’s actually a lot longer than 10 years as the name Wave2 came to life for a particular reason…(insert time machine here)

A name born out of necessity

Rewind 14 years and you’d have found me soaking up every page of the TechNet library while developing ActiveX components with Visual Basic and Delphi. Those were the days eh!

Back then if you wanted to embed an ActiveX control in a webpage without the hassle of scary looking popups, you had to sign your OCX/DLL using a technology called Authenticode. The most reputable (if not only) company that offered code signing certificates was VeriSign, however the service was originally targeted at businesses not individuals and cost around £300, a lot of money for a part time coder!

Being the security conscious developer that I am, I did not want my end users getting into the habit of accepting self signed certificates. I was also aware that people were more likely to trust an application published by XYZ Limited than Joe Bloggs bedroom coder (how naive). First things first, I needed a name.

During the run up to Y2K there was much talk of a second wave of the Internet, one built upon distinct services that communicate using COM and CORBA (a bit like the web 2.0 hype today). As an early adopter of new technology, I was, and still am a big believer in making your mistakes with the first release and fixing them in the second release, the second wave (aka build one to throw away). Can see where I’m going with this? ;)

With all that in mind I somehow managed to piece together a name that would survive the test of time, Wave2 was born.

It was 4 years later in 2000 while reading After the Gold Rush that I was persuaded to take the plunge and form the company Wave2 Limited. The book covered every aspect of software engineering and inspired me to start taking my code seriously, in fact it had such an impact on me that I felt obliged to donate it (along with a few other classics) to the local library in the hope that it might inspire others the same way it did me. I wonder if it’s still there…

Open Source Solutions

It was about the time Wave2 was born that I became hooked on Open Source Software. Linux had been making waves (hehe) in the news for quite some time, and as I followed the trail to it’s roots I stumbled across FreeBSD – I was hooked.

After years of working with closed source/shrink wrapped software it was like discovering TechNet all over again, only this time there were no limits. The complete stack, OS to application could be taken apart and it’s inner workings explored, admired and built upon with no fear of financial recompense. There really are no boundaries with Open Source, so the only thing that stood in the way of my next solution was often simply my imagination, or lack of as my parents used to say. :twisted:

It wasn’t long before Open Source began to have an impact on my day to day employment, from the Python/GTK/MySQL application developed in-house, to the enterprise-grade issue tracker downloaded from Best Practical. As I watched organisations benefit from the solutions I developed/implemented, I realised that small businesses could gain a distinct advantage over mid to large businesses through the use of free software. This had to be the future for Wave2.

To infinity and beyond!

Since Wave2 was born I have been fortunate enough to enjoy the security of full-time employment, nevertheless the companies that I worked for were happy to embrace Open Source and encourage innovation, allowing me to keep this site alive with new ideas and insight.

The concept and meaning behind the name Wave2 is still the same as it was all those years ago, to be the second wave, a creative, innovative and yet progressively stable wave, built upon lessons learned and knowledge gained. I once thought that after Wave2 comes Wave3, Wave4 etc but I realise now that they are all just continuations of the same theme, more second waves.

I can only hope that the code shared on this site and many others provide the same inspiration I managed to gain throughout the last 10 years working in the Open Source space, I still enjoy every minute, and look forward to making waves for many years to come. :)

A massive thank you to all who have helped me out over the years! Here’s to another decade of innovation, knowledge sharing and above all – Fun! :grin:

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!!

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…..

Merry Christmas!

Christmas2008I spent the last month taking a break from Open Source, partly due to FreeBSD 7.1 failing to hit the FTP servers as scheduled (any excuse), but mostly due to Santa’s early delivery of Ableton Live. Not really Open Source I may add but extremely cool nonetheless and a much needed break from coding!.

I find that staring too much at code can hamper the creative process (hehe), and as you know Creativity and Innovation go hand in hand with Open Source Software!.

Speaking of which, while I have been busy playing with waveforms and elastic audio, the Open Source world has been all guns blazing with cool releases like MySQL 5.1 GA, Open Solaris 2008.11, VirtualBox 2.1 and WordPress 2.7 to name a few.
You really cannot take a break these days without something big in the world of Open Source happening in your absence. :)

So the year is nearly at an end which got me thinking, what was the highlight of 2008 in the world of Open Source?.
I have to confess to spending more time than I would have liked this year working with proprietary software, always in combination with Open Source tools of course!. So if I had to highlight anything from 2008 it would be that Open Source is now more pervasive than ever. From your OSX laptop at home to the Linux servers at work, right the way up to the Internet’s biggest sites and services (running FreeBSD ;) ), you’ll find Open Source Software behind every successful venture. In fact it is now so popular even Microsoft could not resist the urge to get in on the game!.

In fact there are so many Companies using Open Source now that proprietary software may actually be the minority! We all know everyone loves an underdog, so maybe propreitary software will be the hit in 2009? Then again with the state of the economy maybe not! ;)

The biggest influence for me this year (both good and bad) had to be Sun Microsystems who played a large part in Open Source adoption in the enterprise and continue to lead the way with their open business model (GlassFish, MySQL, Netbeans, OpenJDK, OpenSolaris and VirtualBox to name just a few of their many contributions).

Although most of the time it seems like they cannot do anything right, one thing is for sure, without the corporate weight of Sun behind the Open Source ethos we may not have made it here so quickly. So while your saving big bucks with your ZFS storage and processing millions of transactions with MySQL, don’t forget to say thank you to Sun next time you are complaining about JavaFX or MySQL 5.1.
You may even want to swap those complaints for contributions (I know complaining is often easier). :twisted: Thanks Sun!

So if you are one of the few companies yet to Open your code to the world, what are you waiting for? This Christmas give the gift of knowledge and share your achievements instead of fearing the competition and wrapping your code in a black box (don’t worry we won’t laugh at it). You’ll feel much better knowing you helped make the world a better place!

Until next year I wish you all a Very Open Source Christmas!! and as always Happy Coding!

Centralised Notification (Aka Informeer)

It’s been a while since I had chance to work on Informeer as my itch was one of multi-user web based password management (AuthStor). Oh and moving house. :)

Now that things are settling down again (Servers back up and running) I decided to take a break from AuthStor and focus on something new – Informeer.

The concept is simple, Centralised Notification.

I am forever configuring notifications from several sources, be it backup alerts, host monitoring notification and even simple applications that send mail via SMTP. When living in a world of change, both software and business, having to visit every application to change an e-mail address or add a new user to a notification schedule can be quite time consuming. Add to that the effort of having to modify firewalls, SMTP servers and XMPP settings etc etc. The idea of a single web interface where all your notifications can be configured is quite appealing. Informeer aims to make that a reality (one day).

While I take my time with the implementation I thought I would post a basic intro to RPC-XML using Perl. The RPC-XML Perl module makes writing your own client/server application a piece of cake, and while not quite point and click, it will give you enough flexibility to centralise your own notifications (or anything else for that matter). It’s not rocket science, but it works!

If you have been looking for a flexible quick and easy fix to the centralised notification problem, or even if you are just looking to push some data from a firewalled site to one of your servers This Tutorial should help get you started.

In between moving house and playing with notifications I found time to upgrade to WordPress 2.5 and MoinMoin 1.6, and wow what an improvement in both camps.
The WordPress dashboard is the most visible improvement – it’s amazingly clean! If you have been waiting for 2.5 to settle down or just cautious about upgrading, I would say take the plunge, you won’t regret it. As for MoinMoin 1.6, there really is no better Wiki engine out there (my opinion) and it just keeps getting better with every release!.

That just leaves me to post a quick MySQL tip that may well be obvious, but happens to catch me out from time to time. :twisted:

MySQL Tip of the month

If you ever get the urge to convert a 1Gig MyISAM table (with 34 million rows) to InnoDB within MySQL, try to avoid the simple ALTER TABLE tablename ENGINE=INNODB; method.
I made the mistake of running that command on a fairly decent server with bags of space and memory only to find the command running over 5 hours later with an InnoDB tablespace at around 4Gig (ok a bit of tuning might have helped) ;)

Your best bet is to dump the table using mysqldump, drop the existing table and re-import the table after modifying the definition to be InnoDB. That worked for me in less than 10 minutes. Alternatively you can create a new InnoDB table and insert directly from the existing table as per MySQL documentation e.g INSERT INTO newtable SELECT * FROM oldtable.

I’m sure I am not the first to make this mistake, and may not be the last…..

Merry Christmas!!

Merry Christmas From Wave22007 is almost over and what a year this has been for Wave2!

My programming preferences have gone full circle, from beginning the year playing snakes and ladders (Python), I spent the summer drinking coffee (Java) and finally settled down surrounded by Camel’s, Lama’s and Parrots (Perl). Bizarre but never dull!

Steady progress has been made all round and as always the Open Source community has proven a valuable resource. Not a day went by where I did not discover something new or think of a new idea that could be built using Open Source Software. I only wish I had more time in the day!.

My Christmas present came early this year in the form of a MySQL 5.1 Cluster DBA Certification Study Guide. I have been putting off the final MySQL certification while waiting for the book to arrive, and now it is in my hands the only thing preventing me from taking the exam is the lack of free space over the Christmas period. Hehe :twisted:

I also ordered a Nokia N810 (My Techie Present). My laptop is not small enough to carry around with me and I am hoping to capture more development time on this device. Either that or feed my mind. ;)

Anyway I’m off to hit the WarHawk servers before getting ready to see the New Year in Amsterdam – home of the Blender Institute. With projects like AuthStor making great progress and ideas such as Unix Architect and BinaryStor slowly maturing, I cannot wait to see what 2008 holds for Wave2!

Before I head off I have to mention the Catalyst Advent Calendar. Every year they pack 24 days of tutorials and tips into the month of December. If you are looking to get the most of the Catalyst Framework you really must take a look at this resource. I was able to prototype AuthStor in under 2 weeks and enjoyed every minute!

Wave2 Wishes You a Very Merry Christmas and an Open Source New Year!!!