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:
- git pull - download updated from repository
- git add - add a file to version control system
- git commit - save work done on files into the local repository
- git push - send all files changed into the server
- git status - list files that have been changed
- git list - list history of the repository commits
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.