global $goodness

Glass half full

So much of the news seems bad.  Domestically and abroad, it seems everyone is at conflict.  After the last few weeks I've had, I thought I should share my perspective; which offers hope.

As a self-employed free software consultant, I work from my home office in Salisbury Beach, Massachusetts (USA).  A few weeks ago, I was working on a monster project converting Subversion repositories to Git.  The best tool for that job is Reposurgeon.  Reposurgeon is written by the famed hacker Eric Raymond who lives in Malvern, PA  I was running into unique malformations and edge cases, and consider myself extremely fortunate to have had Eric helping me get past the maladies in the svn repos.  

The next week I was working on upgrades to MediaWiki. One of the features that I was implementing was a glossary system by Stephan Gambke called Lingo.  Stephan is a rocket scientist in the Netherlands (yes, really, a rocket scientist). There was a minor bug in the Lingo extension and I contributed the one-line patch to fix it. In the process, I discovered that Stephan also created a fantastic mobile-first skin called Chameleon and so now that's the skin in use on the freephile.org wiki.  While contributing the patch, I was helped by Merlijn van Deen who is a physics PhD candidate in the Netherlands, and works as an Operations Engineer for the Wikimedia Foundation.

Then this week, it was back to CiviCRM where I've been trying to get custom data integrated into the system such that I could do mass mailings from Civi, using the custom data for both group segmentation and messaging.  This time it was the extraordinary Eileen McNaughton of New Zealand who saved the day.

The moral of this story? No matter how you look at it, things look good for free software!  The smartest, most wonderful people on the planet are working together to solve problems and THAT is good news.  As an optimistic free software programmer, I guess I would say that the glass is either half full or not empty!

$glass == $half-full ? true : !empty()

Tags: