Tag Archives: Open source

HMMER3 released – with a pre-compiled binary!

As I have recently complained about open source software coming without pre-compiled binaries, I salute the release of HMMER beta 3, which has a pre-compiled Intel/Linux tar-ball. This is exactly the kind of convenience measures I have asked for, and thus I wanted to state that clearly here. Well done, Sean Eddy and company!

HMMER is a bioinformatics software for finding sequence homology. People into bioinformatics may appreciate some of the new features, like multicore support, and better-than-BLAST speeds (unbelievable but true!). For those of you that are interested, the full range of features, as well as the software download can be found here:

HMMER 3.0b3: the final beta test release

LogoMat-M, or how I started to hate source code and opted for precompiled binaries

LogoMat-M and its uses
I have recently struggled to install a bioinformatics program called LogoMat-M. LogoMat-M is a command line based program that creates visual representations of HMM-profiles. An excellent example of the program in action can be viewed at Sanger’s LogoMat-M website. It creates images that looks a bit like this:

The resulting images make it easy to interpret how common a given amino acid is at each position of a sequence alignment, where the alignment usually represent a protein family. So far, so good.

The problem is that the web service was not designed to work with large amounts of sequences, and thus returns nada when such sequence alignments are used. To solve this problem, I thought I would try to install the program locally, on my own computer, at least to receive a proper error message. This was a big mistake.

The “install” process
I started by downloading the LogoMat-M package (i.e. the source code – this is open source software, which often means that there are no pre-compiled binaries). However, the build files for the program complained that my computer missed certain libraries and programs required for the LogoMat software to compile. Well, alright, I went out to find the pieces of missing software. Quite fast I could track down the two missing components and download these. Once again, these were open source programs – meaning no pre-compiled binaries. I tried to compile the first of those and rapidly got the answer that a component called PDL was required and could be obtained via a service called cpan.

I started to get a bit frustrated, since I didn’t want to spend the whole day installing software – I wanted to construct images like the one above. However, I did as the instructions said and text started flashing down my screen. Suddenly, cpan exited and said “Could not compile. Compiler returned bad status.” Wow. How informative! How do you expect me to know what caused that?! So, now I was stuck. I could not compile LogoMat because I was missing another program that was required, and I couldn’t install that program because I lacked a component that wasn’t, for some unknown reason, able to compile.

Now, the big problem here is that there is no way for me to get around this, because the documentation does not mention this kind of situation. I could, of course, contact the developers, but I was on a tight time schedule, and needed this to work. It was possible, if not likely, that it would take days for the developers (who do not get paid for this software, i.e. there is no official support channel) to sort out my problem.

Again, a mentality problem
Many times, open source software is praised for being open, but what people tend to forget is that a lot of this software is not at all easy to use. Or, in this case, even install. On Windows or Mac OS X, I would have fired up an installer, which would have installed a working pre-compiled binary on my system, with all its required libraries. It would work out-of-the-box. And if it didn’t, there would be someone to call.

Now, I don’t want to call for open source developers to set up call centres for supporting their programs, that would just be ridiculous. But I beg you to please make pre-compiled, working versions, including required libraries, and supply these for at least the most common platforms. Depending on the kind of software, that could be Windows, Mac OS X, Ubuntu and Red Hat Linux, for example. Don’t bother with pre-compiled software for strange and uncommon architecture, people running these things probably know how to compile their software anyway. But please, supply some easy to use, pre-compiled program for the rest of us. Because otherwise we will never be able to get our work done using open source alternatives, and that does not benefit either our work or the open source community in general. The situation described above only benefit big corporations selling overpriced software. And that is really, really sad.

The problem with Linux

XKCD sums up the big problem with Linux, and every other open source/free project driven by enthusiasts. You tend to solve the cool things (in a nerdy way – like supporting 4096 processor cores), or the required things (once again, in the enthusiast world) first, and there is no real driving force in solving problems that regular consumers want. Thus, things like flash support, graphics software, games etc. takes years despite the huge open source programmer community working with Linux distributions.

This illustrates well why Linux never has taken off, despite being free, while Mac OS X is steadily eating into Windows market share. The core of the situation is that Apple is a company that would fail miserably if it wasn’t listening to its consumers. Many times, Apple’s manners upset consumers (like me), but even more often they tend to leverage ideas before everyone else, or in a better way than most other tech companies. Or simply at the right time. The iMac, the iPod, the iPhone and the portable Macs all prove that this strategy works. On the other hand, Apple TV have not taken off, probably because it does not have a big enough audience (which Apple acknowledged from the beginning, calling the whole project a “hobby”).

Open source is a great idea, and should be practiced in many situations. But free is not always the same as great, and a business strategy may just what is needed to create what consumers want. And the open source community lacks a such strategy, instead delivering what they need themselves, at the moment. Thus, Linux will never take off on its own. However, initiatives based on Linux, like the Google Chrome OS, targeted specifically at consumers have great chances in challenging both Mac OS X and Windows, because they are free, and supported by a huge company (Google), making its profits on something else. This situation is somewhat similar to the Apple–Mac OS X situation, where Apple is making OSX great to sell more computers, where their real revenue comes in. Probably this is the business model of the future, selling one thing cheap to have consumers buy something else. Drops have already realized this for knitting, giving patterns away for free, hoping that consumers buy their (relatively cheap) yarn. But this is another story I might go into another time. Thanks XKCD for summing it up!