Month: November 2005

What is Grid Computing?

I’ve recently discovered that a grid computing service was available at the University of Liege (where I am working), inside the Alma-Grid structure. The “Alma-grid” name is quite confusing since, if I understand correctly, they offer lab solutions for genomics, proteomics, etc., and bioinformatics is only a part of it.

A Grid is a network of many computers sharing their unused ressources (CPU and/or disk storage) to solve large-scale computation problems. We can see that like a distributed computational and/or storage system. Well-known “grid computing” projects are, a.o., SETI@Home or Folding@Home. The main advantage of a grid is that you reach the power of mainframe computers in terms of CPU power and/or storage, without the cost of buying one since a grid usually uses common desktop computers distributed around the world.

Although I am sure biology will need more and more computing power, I was recently able to “feel” it … I compared proteins expressed in two conditions. For that purpose, we are using 2D-DiGE, a powerful technique enhancing classical 2D gel electrophoresis. For the result analysis, we are using a specific image comparison software that requires a lot of CPU. Sometimes, I must wait a few minutes before seeing the results of a filter or a computation; and we are using an Intel P4 with 1Gb of RAM! Later on, we had to find what proteins we’ve found (sequencing step). Only for this simple experiment (we had about 90 proteins to sequence), we generated at least 100Mb of data. Finally, the more time-consuming step was the data analysis since we only have spreadsheet software for that purpose. I impatiently wait for the day when bio-companies will provide adequate software for data analysis. Oh yes, I have one more requirement: it must be relatively cheap (the image comparison software for 2D-DiGE analysis costs more that 50 000 euros!). The dream would be to have free software (with “free” like in “free speech”). So, I hope you can imagine the power and ressources needed for big projects like sequencing all the human genes…

N.B. At least one other grid project exists in Belgium: begrid. The CERN has interesting and easy-to-understand animations on grid computing (Flash plug-in required).

Some links, after the week-end

During this week-end, I’ve met a lot of people but I didn’t worked a lot (and my boss is asking for some results asap …).

Can you trust entertainment and computer-security companies?

In an interesting article on Wired, Bruce Schneier is showing the collusion between computer-security companies and an entertainment corporation.

Sony BMG Music Entertainment distributed a copy-protection scheme with music CDs that secretly installed a rootkit on your computers. A rootkit is a software usually used by an intruder after gaining access to your computer and in order to steal information, track your habits, collect your preferences without your knowledge nor your consent. Moreover, you can’t remove it since it will damage your operating system (the main software of your computer).

Since I like freedom of speech and free software, I doesn’t understand the need to control what the consumer is doing with your product. In my opinion, a “copy-protection scheme” (aka. DRM) is only there to improve the company profits, not the consumer experience with the media. And, here, this scheme gives the consumer a very bad experience: with Sony rootkit, your computer is not only giving your secrets to a third party but crackers can also access it (and all the information you stored inside) without your consent.

But Bruce Schneier is also pointing the fact that big “computer-security” companies like Symantec and McAfee did not react quickly to this threat to your safety. The news revealing the existence of Sony rootkit broke on October 31st. And, on November 15th, they only published tools to remove the software that hides Sony rootkit: the rootkit is still there, in half a million computers! The fallacious excuse is that removing the rootkit may harm the computer. Are they “computer(-security) specialists”? People are paying them for the protection of their computer. They are protecting your computer from virii, worms and malware written by “criminal organizations” but not by a multinational corporation?

This makes me laugh … It is as if you hire a bodyguard that will protect you from any John Doe attempting to steal your money but will allow big corporation guys to steal your identity and social security cards, your agenda, your documents, etc. Will you continue to trust your bodyguard? Will you continue to pay the annual fee for “protection”? I don’t think so.

Looking for a C++ widget toolkit for Linux

I am looking for a widget toolkit (a software bag of things that allow you to create GUI). I have two desideratas: I want to use C++ and I want to use it on GNU/Linux. I’ve found two big lists of widget toolkits: one on Wikipedia and one on atai.org. For the moment, I think of using gtkmm or wxWidgets but I need more information …

Now, some grumpy people will tell me they only use text-based applications 😉

if x==456 then //checks for conditional x and executes code if x is true

In What Workplace Coding Practices Do You Use? (Slashdot), there are some interesting notes about coding practices. The main one is, of course, the use of comments (and good ones: synchronised with code update, not too short, not too long, not explaining obvious lines like (if x == 456) except if it has a very special meaning, it may be interesting to write comments first in order to have clear ideas of what we want from the code, etc.).

A good comment is not describing what is done (since everybody can see that from the code itself), a good comment describes why something is done, or what the overall objective of the statement is.

The best advice I ever got was to write “why”, not “what” a piece of code does. Any Computer Science peon knows that “counter++” increments counter. What they might not know is why.

Other recommendations include good variable and function names, try not to make any absurdly complicated statements, code review by another person, use of unit testing, etc. Finally, I will add two nice links: one /. comment listing 15 things to do (and not to do) and joelonsoftware.

Computer science is there at least since the years 1960 and, since then, people were not able to agree on final standards. Maybe it’s because computer science is not the one it used to be 40 years ago: we have more programming languages, more operating systems, more development environments, etc.