JFreeman_Portfolio

Data Management Projects

File Name Description Requirements Action
XPORTMesh Project to build a successor system More
Project to build a successor system to XPORT (see link below).  8000 lines of code in Java.

The new system, "XPORTMesh," allows for the creation of multiple overlay routing trees.  If two nodes are logically connected by more than one tree, they use same underlying socket connection.

http://cs.brown.edu/~yna/paper/XPORTdemo_sigmod06.pdf

n/a
Replica Project A group project built on top More
A group project built on top of the XPORTMesh system.  The system consists of a "Write" tree whose nodes store replicas of objects and whose clients update the objects, and a "Read" tree whose clients read the objects.

Increasing the number of replicas benefits the clients of the Read tree by lowering expected latency, but it also increases bandwidth consumption in the Write tree during replica updates. 

The goal of the project is to find a way to meet the needs of clients while minimizing overall bandwidth usage.  In progress.
n/a
Virtual File System An assignment to create a virtual More
An assignment to create a virtual file system  (see http://www.cs.brandeis.edu/~cs31a/pa3/src/doc/).  My implementation of the FileSystem interface was 750 lines.

The "Disk" managed by the file system is actually a wrapper class for a Random Access file that can only be written to or read from in blocks of 512 bytes.

A bitmap is used to keep track of which blocks on disk are free and which are already being used by a file.

For files that are very large and that require many blocks on disk, indirect blocks (blocks that contain the addresses of other blocks) are used.  This file system implements triple indirection--that is, one layer of indirect blocks points to another layer, and the blocks in that layer point to another layer--making the implementations of read() and write() complex.
n/a
B Tree An implementation of a B+ Tree, More
An implementation of a B+ Tree, which is used as an index on tables in databases (1200 lines).
n/a
TSB Tree An implementation of a Timesplit B-Tree, More
An implementation of a Timesplit B-Tree, which indexes over two dimensions.  It is used in temporal databases to index both the key and the timestamp of a record.

In progress
n/a
Bigtable Slides for a one hour class More
Slides for a one hour class presentation. The paper being presented was "Bigtable: A Distributed Storage System for Structured Data" by Chang et al.
n/a
Parallelizing Queries Slides for a one hour class More
Slides for a one hour class presentation.  The paper being presented was "Parallel Evaluation of Composite Aggregate Queries" by Chen, Olston, and Ramakrishnan.
n/a
Bad Transactions Slides for a one hour class More
Slides for a one hour class presentation. The paper being presented was "Recovery from Bad User Transactions" by Lomet, Vagena, and Barga.
n/a

Various Programs and Code

File Name Description Requirements Action
SelfPrint.java Prints its own code with correct More
Prints its own code with correct spacing and indentation (no file I/O).

Java SE 6 More
Java SE 6
Web Server An assignment to create an HTTP More
An assignment to create an HTTP server in C.

The program listens on a specified port given a specified web root. When it receives a "GET" request, it looks for the file that the client wants in the web root and sends it back to the client.
C More
C
Command Line An assignment to create a simple More
An assignment to create a simple command line environment.

The environment supports a small set of unix commands (cat, grep, lc, pwd, ls, and cd) as well as inter-thread piping to direct output from one command to another.
n/a
ElectionPuzzleSolver.txt Solves a puzzle. The puzzle More
Solves a puzzle.

The puzzle consists of 6 tiles positioned in a 2x3 rectangle.  Each of a tile's 4 sides contain the name of a presidential or vice-presidential candidate (Obama, Biden, McCain, Palin). 

When two tiles are adjacent in the 2x3 grid, their touching sides must contain the same candidate.  Tiles can be moved around and rotated to make all 6 tiles match up.

This program uses a Depth-First Search to find all possible solutions to this puzzle.  As the program scans the "search tree" of all possible tile placements, it truncates branches of the search tree which it determines cannot yield solutions.
Steel Bank Common Lisp More
Steel Bank Common Lisp
SQLqueries.txt File includes a set of SQL More
File includes a set of SQL queries written for a hypothetical Course Registration database.  Relations in the database include Courses, Periods, Teachers, Assigned, Taught_by, etc.

The assignment described in English what logical information is desired from each query, and then asked for each query to be written in SQL.  The assignment prohibited the use of intermediate tables in certain queries, so some of them required extensive nesting.
n/a

Websites

File Name Description Requirements Action
Music Codes Allows you to distribute MP3 files. More
Allows you to distribute MP3 files.

Once you have uploaded a file to your account, you can generate codes for that file and distribute the codes to your friends. When someone enters one of the codes, they gain access to the file and can download it. Codes can be generated to allow access either to songs or to entire albums.

Try logging in as a sample artist (user: Burmas Bravest, pw: bb) and experiment with the functionality.

Made with Chris Gilley
n/a
Bridge Services In progress. Has an More
In progress.

Has an admin section that makes it possible for the website administrator to modify the content of each page without knowledge of HTML and without an FTP utility.

To do this, HTML code is read from a file into an embedded MSWord-like editor (see http://www.fckeditor.net/demo).  The admin then edits the code while it is in the editor, and clicks "Submit" so that new HTML code is written back to the file.

Made for my uncle.
n/a
Brandeis Beat Created with Blogger to present a More
Created with Blogger to present a collaborative student project.

Made as Peer Assistant for a journalism course.
n/a
Smart Balance News Created with Blogger to present a More
Created with Blogger to present a collaborative student project.

Made as a Peer Assistant for a journalism course.
n/a