Tag Archives: Linux

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

Advertisements

Solving problems in seconds

Sometimes a given solution to a problem lies much closer at hand than you expect. In my work I usually do the same task repeatedly with between 6 and 50 files. Even though Unix is very efficient in many ways, this still takes time to do by hand. I have thought of various ways around that problem, including using wildcards (*), but never got fully satisfied. But this week, I finally came up with the simplest solution this far. And it took about a minute or two to implement. I don’t know why I didn’t think about this a year ago. Maybe I thought that I would only do these repetitive tasks a couple of times. I was wrong, but thanks to Perl I can now be much more efficient (and write this instead of typing Unix commands…) The good thing about my implementation (in my opinion) is that it’s so flexible. Here’s my code, please comment if you feel that there is more efficient ways. “{}” is replaced by a number for each file name:


#!/usr/bin/perl

## LOOP COMMAND
$versionID = "Version 1.0";
print "LoopCommand\n";
print "Version $versionID\n";
print "Written by Johan Bengtsson, October 2009\n";
print "-----------------------------------------\n";

## GET USER INPUT
print 'Execute command: ';
chomp($command = <STDIN>);
print 'From number: ';
chomp($start = <STDIN>);
print 'To number: ';
chomp($end = <STDIN>);

## EXECUTE
for ($i = $start ; $i <= $end ; $i++) {
$exec = $command;
$exec =~ s/\{\}/$i/g;
$result = `$exec`;
print $result;
}

Where are the Mac viruses?

Quite often I hear the explanation that Macs don’t get infected by viruses, because Apple’s market share is so small, it wouldn’t be worth the time and effort write a proper Mac OS X virus. This implies that once Mac OS X has reached a critical market share level, there will be a sudden outbreak of hundreds of viruses. My simple question is this: how come there has (to my knowledge) been no actual Mac virus affecting Mac OS X while there have been a couple of viruses affecting Linux, despite its even smaller market share? Wikipedia lists the following Linux viruses:

  • Alaeda – Virus.Linux.Alaeda
  • Bad Bunny – Perl.Badbunny
  • Binom – Linux/Binom
  • Bliss
  • Brundle
  • Bukowski
  • Diesel – Virus.Linux.Diesel.962
  • Kagob a – Virus.Linux.Kagob.a
  • Kagob b – Virus.Linux.Kagob.b
  • MetaPHOR (also known as Simile)
  • Nuxbee – Virus.Linux.Nuxbee.1403
  • OSF.8759
  • Podloso – Linux.Podloso (The iPod virus)
  • Rike – Virus.Linux.Rike.1627
  • RST – Virus.Linux.RST.a
  • Satyr – Virus.Linux.Satyr.a
  • Staog
  • Vit – Virus.Linux.Vit.4096
  • Winter – Virus.Linux.Winter.341
  • Winux (also known as Lindose and PEElf)
  • Wit virus
  • ZipWorm – Virus.Linux.ZipWorm

Can someone, please, explain to me in a rational way how this list can be so long, despite Linux being such a terribly small platform? I suppose, as I do not know for certain myself, that most of these viruses are rather harmless, and that most wouldn’t work on modern Linux systems, as they probably explore vulnerabilities that have been patched in revisions of the OS. I also am aware of that there have been proof-of-concept viruses for Mac, that utilize vulnerabilities that later have been fixed. Some of the viruses in the list above may be similar proof-of-concept examples for Linux.

Personally, I think OSX and Linux match up quite well when it comes to virus security, and that this has nothing to do with the size of the platform, but everything to do with the UNIX/UNIX-like foundation underneath. In both cases, the worst threat is the users themselves, who often allow to run malicious code without knowing what they are doing. This is a big threat to any computer platform, regardless of the security measures taken by programmers. As long as the user can install new software, this will be a potential threat (even though sandboxing and securely signing applications can decrease the risk of malware infection).

That being said, Mac OS X is incredibly easy to hack once you have access to the computer. This is a problem, and Apple really should be busy fixing that. But please aim your guns at the right issues. Mac viruses is not a real threat for the moment, just as Linux viruses is not really a big threat to Ubuntu users. That a Mac can be hacked to gain root access in a minute – that is a problem, which have everything to do with OS architecture. However, making the Mac market share smaller will not solve this problem, nor will it get worse as the platform expands. If we’re in luck, though, Apple may acknowledge the problem as its user base grows, and address it before it gets too late.

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!