Project Starting-Up Tutorial

Setup Virtual Environment

Download VMware Virtualization Software for Desktop. For Windows and Linux, you need at least to download and install VMware Player, or VMware Workstation. Mac OS users need to download and install VMware Fusion. The official VMware Download Center can be found here. The Columbia University students who have Computer Science account, can download VMware software for free through CRF website.

Download image with the Ubuntu operating system preconfigured to do the project work. The image can be download from here

Using VMware software, start Ubuntu image. Once the Ubuntu system starts, you can login to the following account:
username: user
password: userDev

Please change your password ASAP. This can be done by entering in the shell:

$ passwd

Setup Public SSH Key

All projects require revision control system that is authenticated through public SSH key. The key consists of two files: private key and public key - the copy of the last one needs to be provided to the revision control system. To generate a new key, use the ssh-keygen tool. To start the process of generating a new key, enter in a shell:

$ ssh-keygen -t dsa

After completing this process, the new key will be stored in your home directory, in ~/.ssh, with private key in id_dsa file and public key in id_dsa.pub file.

Your public key needs to be attached to the authentication system of the revision control. Therefore, please send your key to my email. If you plan to use other computers to do the work, make sure that your ssh-keys are stored on those computers, under ~/.ssh.

Start Working with Git

All project software is stored on a remote server and managed through git version control system. Each project has a dedicated repository which stores source pre of programs and latex files. Please keep in mind that only source pre should be stored in the repository. You should avoid pushing into the repository large files, or executable files. A simple rule to keep in mind is that, if it's not a file I can open with an editor and read it, then probably this file should not be in the repository. The exception are pictures and figures.

Before you start using the repository, please setup your name and email address for the git version control system, as follows:

$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com

So let's say you are working on a project which repository is called hello_world. You can clone (download) a copy of all files stored in this repository as follows. In your working space, you can do:

$ cd ~/workspace
$ git clone git@git.sld.cs.columbia.edu:hello_world.git

If you see request for a password:

git@git.sld.cs.columbia.edu's password:

then it means that your ssh-key is not properly configured. The same may happen when repository name or server name have been mistyped. If everything goes fine, you should see something that looks like this:

Cloning into hello_world...
remote: Counting objects: 44, done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 44 (delta 18), reused 0 (delta 0)
Receiving objects: 100% (44/44), 7.39 KiB, done.
Resolving deltas: 100% (18/18), done.

There will be also a new folder in your ~/workspace called the same way as your project repository name; in this example hello_world.

The following are the most basic git commands that a git user needs to know:

The complete list and explanation can be found at git documentation website.

Try to use the git by adding a new file and modifying it. First, enter repository directory:

$ cd ~/workspace
$ cd hello_world

Second, create a file and write something in the file:

$ touch test_file.txt
$ vi test_file

Note that to start typing in vi, press i, to save and close file, press ESC and enter :wq.

Third, add file to repository control:

$ git add test_file.txt

Next, save the file current version in the local repository:

$ git commit -a -m "This is a test file"

You can check the file status by entering:

$ git status

Finally, send the current version of the repository to the server:

$ git push

You can see the history log by entering:

$ git log

Start Working with Latex

If there is no latex on your system, then you need to install one. You can save the below code in a file a run it as administrator.

#!/bin/bash

apt-get update
apt-get upgrade

apt-get install -y --assume-yes texlive-latex-base 
apt-get install -y --assume-yes texlive-math-extra 
apt-get install -y --assume-yes texlive-science 
apt-get install -y --assume-yes texlive-latex3 
apt-get install -y --assume-yes texlive-latex-extra 
apt-get install -y --assume-yes texlive-latex-recommended 
apt-get install -y --assume-yes ispell 
apt-get install -y --assume-yes vim 

If you save the code in file called latex.sh, then execute it as:

$ sudo sh latex.sh

Note that the script will also install ispell and vim. To run spell-check over a text file called hello_world.txt, do:

$ ispell hello_world.txt

In the project repository there will be latex templates. Latex files are written in tex. To learn more on Latex, how to format text and include figures, see this online book: Latex.

To convert .tex files into .pdf, there will be Makefiles provided. All it is necessary to compile to pdf is just typing make:

$ cd 
$ make

Compiling process will generate various files, including .aux, .dvi, .log, .out, .pdf. These files, however, should not be part of the revision control system, therefore, before commiting and pushing the code, please run:

$ make clean

Installing Fox Family Software

If you need to work with Fennec Fox, please download the code from the following links:

You need to receive a password to be able to login and download the code. Please keep in mind that this code is the development version of the code and should not be distributed.

After downloading the code, the code needs to be compiled and installed in your system. Please follow this short tutorial to install the Fennec Fox, Swift Fox, and Cape Fox. In most cases, this requires running few install scripts.

Copyright Marcin Szczodrak 2005-2012