each day will be split into a lecture and a laboratory
computational scientist's motivation: reproduce, reproduce, reproduce!
Never trust a result you can't reproduce
computational science perspective
computational science perspective:
software versioning schemes are somewhat arbitrary, generally:
version numbers
computational science perspective (absolutely essential!):
offers free project hosting
- so long as your code is public
- offers both hg and git for version control!
launched in 2008, acquired by Atlassian in 2010
similar to Google Code, Launchpad, github
Looks very similar to SVN, but introduces no abstractions because there is no central repository.
computational scientist's motivation: reproduce, reproduce, reproduce!
Build, Baby Build!
the most popular accompanying tool is the GNU build system
- GNU build system [MacKenzie, 1991]- a suite of programming tools for portably building source-code based distributions
"Unix is hard to learn. The process of learning it is one of multiple small epiphanies. Typically you are just on the verge of inventing some necessary tool or utility when you realize that someone else has already invented it, and built it in, and this explains some odd file or directory or command that you have noticed but never really understood before."
Neil Stephenson "In the Beginning... Was the Command Line"
$ ls
$ ls
Applications ILOG Public games sandbox
Desktop Library Red Kawa homebrew sparse_mutant
Documents Mail Sites hpc@aub thesis
Downloads Movies bac hpc@aub_private tmp
Dropbox Music bin junk from desktop unison
Frameworks Pictures blast ksl
$ ls | wc
29 32 237
$ ls | grep '^D' | wc
4 4 36
grep, wc, and ls are all examples of command line tools. we don't have the time to explore the full capabilities of the command line, but it is important to know of these techniques for getting more information about any tool
ssh-keygen -t rsa -C "user@aub.edu.lb"
ssh-copy-id -i ~/.ssh/id_rsa.pub user@machine
exec ssh-agent $SHELL
ssh-add ~/.ssh/id_rsa