T H E   S I T E S   T O   S E E   
SCRiTCH's Stuff
About Me
Cal Projects    tri.gif (623 bytes)
My MR2
Art Gallery
Game Projects
Multilingual Swear List
Offshore Sites
Friends' Links
Random Links

Copyright 2004 Scritch Productions

berkeley.gif (3577 bytes)

[ About me ] [ Resume ] [ Cal Projects ] [ My MR2 ]

[CS186] Databases - DBMS
Our primary project in cs186 is to create from scratch a fullblown database.  It is a client-server architecture DBMS using TCP/IP for connectivity.   It implements a subset of standard SQL, and B+ tree data storage for the tuples.   Other features include multithreaded, multi-user operation, 2-phase locking, and rollback/transactions.  Implemented in C++.
[EECS122] Networks - Web Server
Our project is to write a web server, implementing HTTP/1.0, with CGI support, and some server "extensions" of our choice, in this case, basic HTTP auth, CGI POST, and SSI support.  Our server is multithreaded, and is fairly platform independent.  It will run in Windows NT/95/98, and various flavors of unix, including Linux, HPUX, and Solaris.  See the "Other Projects and stuff" section of the webpage for more info and an executable.
Implemented in C++.
[CS160] User Interfaces - Rendezvous Scheduler for Palm Pilot
We developped for the PalmOS platform for the main project in this class.   Our group's product was an interface implementation of a group meeting scheduling solution.  The primary challenge was to work within the more than somewhat weak API given for PalmOS development.  Along the way, we also used Visual Basic to prototype the interface.  It ended up being a wizard-like interface. 
Our project was voted as one of the top 3 class projects that semester, and we *almost* won PalmPilot III's for being the best.  So close, yet, so far.  Implemented in C.
[CS169] Software Engineering - Naval Wars!
Naval Wars! is a game based loosely on Battleship (TM).  This class focussed more on the process of developping a major software project from spec design, through product/object design and implementation, and finally through maintenance.   Although most of the class opted to use Java, our group went with Visual C++ and MFC, due to the more powerful interface elements.  Ours was the only project with real graphics and a nice interface.  See the "Other Projects and stuff" section of the webpage for more info and an executable.
[CS184] Graphics - SLIDE, Scorpi-Eye
SLIDE is a rendering system that we used to learn how various parts of a standard rendering pipeline are implemented.  During the semester, the TA would remove various parts of the system and have us implement them.  This included modules such as lighting, OpenGL rendering calls, rasterization, clipping, backface culling, etc.   At the end of the semester, our project was to make a scene that included a dynamic scene (ie one that moves) with the SLIDE scene description language that involves a bug or insect of some sort.  Ours was to be ScorpiEye, a scorpion with an eye on its tail.   To see screen shots and to download the scene, and for links to the SLIDE viewer, see the "Other Projects and stuff" section of the webpage.
[CS164] Compilers - Java derivative compiler
The compiler we wrote was for a Java sublanguage that the professor dubbed "Jo98" (ie a cup o' Jo).  We used JLex and JavaCup (the Java versions of Lex and YACC) to create a lexical analyzer and parser, wrote the rest in plain Java (ie semantic checker and code generator).  It produced object binaries that could be run by a standard Java VM.  Implemented in Java
[CS150] Digital Logic Design - VidTracer
We used Xilinx FPGAs as the main programmable processor for this project, along with a few other parts such as a small memory chip, A/D converter chip, and mini camera.  Logic design was done with Viewlogic design tools.  The idea is that the hardware takes frames from the camera and finds the brightest spot on the frame.   This spot (and the image itself) is transmitted via a serial link to a PC, where a program interprets the data that is sent (a display of the image and/or a dot representing the brightest spot).

Here is a screen shot of the finished project looking at my partner and myself:
sidnrichfinal.jpg (11756 bytes)

[CS162] Operating Systems - Hacking FreeBSD
I was lucky enough to have taken the OS class during the only semester that was taught with FreeBSD instead of Nachos.  We went in and changed several parts of the FreeBSD kernel, including adding semaphores and condition variables via system calls, changing the scheduling system to a lottery algorithm scheduler, adding file sharing checks to the filesystem, and writing a client/server battleship game using standard BSD sockets.
Implemented mostly in C.
[CS61B] DataStructures - Fish n Sharks
This program is basically a modified version of the ancient algorithm called "Life".  Fish behave similarly to the "cells" in "Life", ie they grow if they have a certain number of neighbors, but die if they have too many neighbors (crowding) or not enough (loneliness).  The variation is that sharks swim around and eat adjacent fishes and that the ocean size is unlimited in all directions.  The display of the ocean was a grid using a standard XWindows API package.  Implemented in C++.