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.
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.
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.
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.
Slides for a one hour class presentation. The paper being presented was "Parallel Evaluation of Composite Aggregate Queries" by Chen, Olston, and Ramakrishnan.
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.
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.
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.
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.
Slides for a one hour class presentation. The paper being presented was "Parallel Evaluation of Composite Aggregate Queries" by Chen, Olston, and Ramakrishnan.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.