CakePHP/Ruby - MyBank
I've become somewhat familiar with CakePHP recently, which I used (along with some ruby and wget kung-fu) to create this envelope based budgeting system. Right now, the way it works is the script calls wget a few times (with ssl of course) to download the transaction information from our bank, which is entered into a local database.
All transactions initially come in without a description, and are put in the "general" envelope, which is sort of a floating in/out balance. After that, we assign transactions to other envelopes, which updates the envelope balances accordingly. (EX: If I spend 5 bucks on a pop, when the transaction is first grabbed from the bank, 5 dollars is removed from General's balance and the transaction is assigned to category General. When I move it from General to Shawn Cash, 5 dollars is taken from my spending money and put back into General.) Ideally, no transaction or incoming money will stay in general, but will be assigned to some category.
Finally, there is a special "category" called Distributed. When we get a paycheck/incoming money, assigning it to Distributed removes the money from General (or wherever it was) and distributes it to other accounts, based on percentages set up in the envelopes section.
PHP - phpMpChanger
This is a PHP client I made for the Music Player Daemon project. Its aim is not to be a full featured client, but instead to act as a quick way to browse a music library like a CD changer would, using a Mac-Finder like interface. As such, it caters primarily to those who have their music libraries organized in an Artist/Album/Songs hierarchy. It also optionally supports displaying locally stored cover images (if the client has direct access to the library.)
You can get it here: phpMpChanger_0.5.tar.gz
Java - Cellular Automata
- Rough version of Conway's game of life. Incremental stepping.
- Rough version of Conway's game of life. Automatic stepping.
- Simple version of Conway's game of life. Automatic stepping and Control of Rules.
- Game of Life, Control of rules, and sizes.
- Game of Life, With two Races. Controls for racism and crowdability.
- Game of Life. Two Races, Controls for racism, crowdability, and size.
- Cellular Automata package.
- Digital Braitenberg
CS422 - Algorithms Design and Analysis
- C++, Linear Time Selection --- selection.cpp
- C++, Dynamic Programming for Optimal Matrix Multiplication --- chain.cpp
- C++, RSA Encrypt/Decrypt --- RSA.cpp
- Java, Dynamic Programming for Fitting songs on a tape(?) --- tape.java
CS322 - Principles of Programming Languages
- C, Emulation of Multidimensional Arrays --- mdarray.c --- mdarray.h --- testmain.c
- C, Quicksort Using only If and Goto for Control --- quicksort.c
- C, Emulation of Diamond Inheritance --- PG3.c --- PG3.h
- Lisp, Determining Skew of Binary Trees written out in Prefix --- skew.lisp
- Prolog(!), MergeSort --- mergesort.pl
CS228 - Network Programming
- C++ - Simple File Transfer --- server.cc --- client.cc
- C++ - An http fortune server --- server.cc --- helpfile
- C++ - Auction bidding program --- server.cc --- client.cc
- C++ - Auction bidding program 2, supports multiple clients --- server.cc --- client.cc
- C++ - Simple Webserver, supports binary files --- server.cc
- C++ - Better Webserver, binary, ~user, http 0.9, 1.0, other stuff --- server.cc
- C++ - Some sort of Port Scanner maybe? --- server.cc --- client.cc
CS222 - Data Structures
- C++ - Integer division for very long integers (strings.) --- divide.cpp
- C++ - Merge Sort on a Linked List --- ll.h --- llmethods.cpp
- C++ - Infix to Postfix and Prefix --- StringStack.h --- SSMethods2.cpp
- C++ - Binary Tree with Delete --- tree1.h --- treemethods.cpp
- C++ - AVL Tree with Delete, all Recursive --- tree1.h --- treemethods.cpp
- C++ - Hash table with basic functionality --- htable.h --- hash.cpp --- list.h --- llist.cpp
CS201 - Programming in C++
- C++, Base Conversion --- baseconvert.cc
- C++, Binary Tree Implementation --- planesearch.cc
- C++, Operation Overloading on Strings --- string2.cc
- C++, Another Binary Tree --- wordtree.cc
Java - CS122 - Java 2
- Program 1: Addition of large integers
- Program 2: Comparison of Sort Methods (Currently Broken)
- Program 3a: Determining a value from a PostFix Expression
- Program 3b: Infix to PostFix to Value, with a variable.
- Program 3c: Infix to PostFix to Value, with a variable, negation, parenthasis, and functions.
- Program 3d: Infix to PostFix to Value, with a variable, negation, parenthasis, function, and multi-digit numbers.
- Program 3e: A Grapher, using the calculator in Program 3d.
- Program 4a: Keeps asorted list of names and ages using linked lists.
- Program 4b: Keeps a sorted list of names and ages using linked lists, with saving and restoring.
- Program 4c: Keeps a sorted list of names, phone numbers, balances, and hours using extended classes.
- Program 5 Preliminary: Queens problem solver with user inputted board size and graphic display.
- Program 5a: Queens problem solver with board size, display, and removal of duplicates.
- Program 5b: Pegs and a triangle board problem solver with two board size options.