About organizing a project
- Motivation: when starting a new project, it is very handy to quickly and easily set up a portable structure allowing the project to be backed-up on other machines, shared with collaborators and the work to be reproduced/replicated by colleagues.
- OS choice: concerning computers, one usually has a preferred operating system. Yet, in scientific projects where computing is an important aspect of research, the most frequent is GNU/Linux. Thus, even if it's always good to know how to find our way on other operating systems, such as Microsoft Windows and Apple Mac OS X, I will focus in the following on GNU/Linux.
- My history: in 2006, during an internship in a bioinformatics lab, I discovered GNU/Linux. More specifically, I worked on a Fedora distribution and was able to install it on my laptop. From 2007 to 2010, during my PhD, I switched to Debian and then Ubuntu for my laptop, and I used several computer clusters running with Solaris and CentOS.
- This looks like an anthology of weird names but, fundamentally, all these distributions are more or less similar to each other and can be described as Unix-like systems. Please note, however, that all these are not equivalent in terms of protecting your freedom. Michael Kerrisk presents this quite well (pdf). It is indeed important to know about the difference between GNU and Linux and, for those who read the biography of Steve Jobs, I highly recommend reading the biography of Richard Stallman (founder of GNU).
- Home structure: bin/, src/, src_ext/, texmf/, tmp/, work/
- Project structure: analysis/, doc/, download/, figures/, preprocessing/, scripts/, src/
- Editor: emacs with org-mode
- Backup: rsync
- Programming: templates, git, Autotools,