Critical Section

open source

Monday,  01/18/16  08:45 PM

go open!In our world there are a vast number of software tools which are "open source".  That means 1) anyone can use them, for free, and 2) anyone can fix them, enhance them, or otherwise change them, for free.  These open source tools are mostly maintained by a small group of individuals, as a labor of love, although sometimes companies will contribute some of their people's time or even their intellectual property, as a sort of public good.

There are a significant number of benefits to open source, but one of the least appreciated is the quick response possible for making enhancements.  I experienced just such a case yesterday.

I'd been working on eyesFinder's Visual Search Engine, adding support for PNG images (we already support JPEG, TIFF, and JP2).  To do so, I chose to integrate an open source library called libpng.  Using this standard library made sense to ensure compatibility with the widest range of possible images, not to mention it's out there and it works, so using it saved a metric ton of effort.

As I started using it, I realized there was an API capability I'd like to have which wasn't exposed; the capability was already there, but it wasn't neatly packaged.  At this point I had two options, 1) use the existing API, or 2) make a custom change to implement a new function which did what I want.  To help me decide, I emailed Glenn Randers-Pehrson, a maintainer of the library.  Two hours later (on a Sunday), I received a response; Glenn had copied John Bowler, the primary developer of the part of the API of interest.  Shortly after that (on a Sunday), I received an email from John.  We discussed a potential change in email, he improved my idea of what should be done, and I offered to make the change.  John replied that he was already making the change, and should have it available in about an hour.  Which he did!

So I now have a spiffy custom slightly-enhanced version of libpng, and was able to cleanly integrate it into eyesFinder's VSE.  And yay, we now have PNG image support.

What's absolutely remarkable about this is that Glenn and especially John gladly gave their time to be responsive and help.  Not only do I have the tool I need, but this version of the tool will be released to "everyone", so everyone will have a slightly enhanced tool.  This process, repeated hundreds of times, yields incredible software; solid, robust, functional, debugged, and secure. 

Some of the most important software around is open source; the Linux+GNU operating system, which runs most of the servers on the Internet (and most of the phones, via the Android derivative), the Apache webserver, which runs most of the websites on the Internet, the Chrome and Safari web browsers, which are based on the open-source webkit library, Open SSL, which provides security for most of the communications on the Internet, MySQL, the database which powers more online systems than any other, etc.  Not to mention thousands of support libraries, some of which encapsulate imaging standards like libjpeg, libtiff, and of course libpng.

It's amazing that this works, and yet it does.  Yay, open source :)

About Me

Greatest Hits
Correlation vs. Causality
The Tyranny of Email
Unnatural Selection
Aperio's Mission = Automating Pathology
On Blame
Try, or Try Not
Books and Wine
Emergent Properties
God and Beauty
Moving Mount Fuji The Nest Rock 'n Roll
IQ and Populations
Are You a Bright?
Adding Value
The Joy of Craftsmanship
The Emperor's New Code
Toy Story
The Return of the King
Religion vs IQ
In the Wet
the big day
solving bongard problems
visiting Titan
unintelligent design
the nuclear option
estimating in meatspace
second gear
On the Persistence of Bad Design...
Texas chili cookoff
almost famous design and stochastic debugging
may I take your order?
universal healthcare
triple double
New Yorker covers
Death Rider! (da da dum)
how did I get here (Mt.Whitney)?
the Law of Significance
Holiday Inn
Daniel Jacoby's photographs
the first bird
Gödel Escher Bach: Birthday Cantatatata
Father's Day (in pictures)
your cat for my car
Jobsnotes of note
world population map
no joy in Baker
vote smart
exact nonsense
introducing eyesFinder
to space
where are the desktop apps?