User:Timothee Flutre/Notebook/Postdoc/2013/12/27: Difference between revisions
From OpenWetWare
(→About organizing computer-based research: add Rlibs and PYTHONPATH) |
(→About organizing computer-based research: add link to bash_profile + add opt/git) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
* '''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. | * '''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 [https://en.wikipedia.org/wiki/Operating_system operating system]. Yet, in scientific projects where computing is an important aspect of research, the most frequent is [https://en.wikipedia.org/wiki/Linux GNU/Linux]. Thus, even if it's always good to know how to find our way on other operating systems, such as [https://en.wikipedia.org/wiki/Microsoft_Windows Microsoft Windows] and [https://en.wikipedia.org/wiki/OS_X Apple Mac OS X], I will focus in the following on GNU/Linux. | * '''OS choice''': concerning computers, one usually has a preferred [https://en.wikipedia.org/wiki/Operating_system operating system]. Yet, in scientific projects where computing is an important aspect of research, the most frequent is [https://en.wikipedia.org/wiki/Linux GNU/Linux]. Thus, even if it's always good to know how to find our way on other operating systems, such as [https://en.wikipedia.org/wiki/Microsoft_Windows Microsoft Windows] and [https://en.wikipedia.org/wiki/OS_X Apple Mac OS X], I will focus in the following on GNU/Linux. | ||
* '''GNU/Linux''': if you begin on this OS, check out the following links! | |||
** [http://en.flossmanuals.net/command-line/index/ tutorial] on the command-line; | |||
** [http://www.commentcamarche.net/faq/8386-kit-de-survie-linux kit] de survie Linux; | |||
** [http://www.ibm.com/developerworks/aix/library/au-unixtext/index.html lessons] on text manipulations; | |||
** [http://www.tldp.org/LDP/abs/html/ book] on advanced bash scripting. | |||
* '''Home''': | * '''Home''': | ||
Line 22: | Line 28: | ||
*** <code>tmp</code>: contains temporary tasks; | *** <code>tmp</code>: contains temporary tasks; | ||
*** <code>work</code>: contains projects. | *** <code>work</code>: contains projects. | ||
** this structure is reflected in my file <code>~/.bash_profile</code>: | ** this structure is reflected in my file <code>~/.bash_profile</code> (versioned [https://github.com/timflutre/perso/blob/master/bash_profile here]): | ||
*** in my case, it's been necessary to specify [https://en.wikipedia.org/wiki/CFLAGS CFLAGS, CPPFLAGS and CXXFLAGS] | |||
*** I also have access to computer clusters and mainly use one, on which I have my own private git server: <code>mkdir -p ~/opt; mkdir -p ~/opt/git</code> | |||
</ | |||
* '''External packages''': for each external package in <code>src_ext</code>, I create a directory with its usual name, say emacs, in which I create a file <code>install.bash</code> with the necessary commands to compile and install the package, typically: | * '''External packages''': for each external package in <code>src_ext</code>, I create a directory with its usual name, say emacs, in which I create a file <code>install.bash</code> with the necessary commands to compile and install the package, typically: |
Revision as of 07:12, 20 October 2014
Project name | <html><img src="/images/9/94/Report.png" border="0" /></html> Main project page <html><img src="/images/c/c3/Resultset_previous.png" border="0" /></html>Previous entry<html> </html> |
About organizing computer-based research
#!/usr/bin/env bash wget http://gnu.mirrors.hoobly.com/gnu/emacs/emacs-24.3.tar.gz tar xzvf emacs-24.3.tar.gz cd emacs-24.3 ./configure --prefix=$HOME --with-x-toolkit=no --with-xpm=no --with-jpeg=no --with-gif=no --with-tiff=no make make install
#!/usr/bin/env bash # backup.bash <path_to_backup> >& backup.log & date RSYNC_OPT="--compress --recursive --times --perms --links --exclude="*~" --delete --delete-excluded --progress" rsync $RSYNC_OPT ~/remote1/work/project1 $1 rsync $RSYNC_OPT ~/remote1/work/project2 $1 date
|