Mathematica OCaml HTML Perl Haskell Scheme Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
Testing And Measuring of Brandeis Artifacts =========================================== Installation ------------ Installation is fairly straightforward. If you find that it's not, it's a bug and report it to firstname.lastname@example.org or create an issue on github. First there are a few dependencies: * Vagrant * Ansible * A suitable virtual machine (I use Virtual Box) Once you have those installed, it should just be a simple matter of running `vagrant up` from the root of this repository. Using Vagrant ------------- The first time you run `vagrant up` vagrant will download the appropriate Debian image and install the necessary software (including OCaml, PPL, LattE, etc.). Some things require building from source and therefore this initial provisioning can take quite a while (around 30 minutes on my machine). Part of running `vagrant up` is a provisioning step where vagrant uses ansible to install all of the necessary software on the VM. If anything fails during this step please email email@example.com with as much log information as you have available. After the VM has been provisioned you'll be able to ssh into the VM using `vagrant ssh`. Once logged in you'll be in a standard Linux install with all of the necessary software for TAMBA. The VM will be sharing the root of this repo so any changes you make will reflect both in the VM and on the host machine. This way you can edit in your preferred editor on your host machine and run any software in the VM. The repo's directory is mounted at `/vagrant/` in the VM. When you want stop using the VM you can run `vagrant suspend`. Which will take a snapshot of the VM and stop your virtual machine host. Executing `vagrant up` in the root of this repo will restart the VM using the last snapshot so you will be right where you left off (and vagrant is smart enough to avoid reinstalling everything). Lastly, if we do change any part of the provisioning (for example, we switch to a newer version of OCaml) you just need to run `vagrant provision` and it will make the necessary changes without reinstalling anything it doesn't need to. What is where ------------- The tool of interest to most people is the `prob` tool which is installed by default on the VM. The source for the tool can be found in this directory under `code/prob`, and from within the VM at `/vagrant/code/prob`. Proof of concept implementations of other metrics can be found in `code/MILGF` and `code/R`. `code/coalition-examples` has input queries for use with the `prob` tool based on the coalition CRT scenarios from the Brandeis project. The `computation` directory holds some `mathematica` notebooks that illustrate how one would analyze information leakage for simple SQL queries by hand. Repo Conventions ---------------- Our two main branches will be 'master' and 'dev'. Let's try to ensure that 'master' is always building and working (modulo unknown bugs). You are welcome and encouraged to create your own branches and push them to github. When you want to share what you're working on with the rest of us just make a pull request onto 'dev' on github.