Rules for BioComputing Happiness
Inspired by this article "al3x's rules for computing happiness" of Alex Payne, I want to extend this theme to my areas: bioinformatic, computational biology and systems biology.
Coding
Software
- Use as little software as possible.
- Use software that does one thing well.
- Do not use software that does many things poorly.
- Try to understand how a software works before to use.
- Do not use web applications that should be desktop applications.
- Do not use desktop applications that should be web applications.
- Do not use software that isn't made specifically for your operating system.
- Use a plain text editor that you know well. Not a word processor, a plain text editor.
- Do not use your text editor for tasks other than editing text.
- Do not use software that's unmaintained.
- Do not use software unpublished.
- Try to use Open Source code.
- Be in touch with the developers or users in forums, mail-list, ...
- If you don't have a formal IT department, learn to maintain your systems.
- Some basic analysis does not require powerful computers, you can run many locally or in web services. But if you are in a big project or the data is in order of GBs o more, consider to buy a multicore server or build a Linux Cluster.
- Use a Mac/Linux for personal computing or development, Windows ... don't waste your time.
- Use Linux or BSD on commodity hardware for server computing.
- The only peripheral you absolutely need is a hard disk or network drive to put backups on, but get one as big as possible.
- Buy as large an external display as you can afford if you'll be working on the computer for more than three hours at a time.
- If you'll work with DBs locally, be sure you have an appropriate internet connection.
Hardware
File Formats
- Keep as much as possible in plain text. Not Word or Excel documents, plain text.
- For tasks that plain text doesn't fit, store documents in an open standard file format if possible.
Coding
- Learn and dominate a computer language, C, Perl, Python, Ruby, Java, Bash, but be open to others.
- Learn to use the terminal and the commands, don't be afraid.
- Comment your code, try to update regularly.
- Automatize tasks in case of re-running for a DB update.
- Debug your code and try to be modular in designs.
- Remember your objetives, don't waste time solving common tasks or re-invent-the-wheel.
- First chek all works well, later put a pretty interface on it.
Love your rules!
ReplyDeleteHere is an appendix for your rules:
http://nsaunders.wordpress.com/2008/09/08/on-parsing/
It was written thinking in a parser but I think that it works for almost any script!
Yes, the parser rules can extend to many other scripts.
ReplyDeleteThanks Dude.