Skip To Content

Projects

Last Updated: May 21st, 2007

This is a listing of some of the older projects of mine, generally smaller in scope and not as significant as those in the main project listing.

Anyways, in no particular order:

Name Project Description Approx Time
blackjack PHP script to play a statistically "perfect" game of Blackjack (for codewalkers). Never actually entered the competition, because I realized that the algorithm used was a tertiary factor, while luck was a first-order factor.

I'll have to start doing this again, since

  • it's free
  • even the losers get to pick a prize
  • it's good practice
  • three of the prizes are "any book from (O'Reilly|Sams|PHPTR)"

Looking back, the code is... not my best, let's say. I'm not even sure it's the final version. Oh well. Remove "?source" to see debug output.

20 hours
numbergrid Java "applite" to solve a Knight's Tour-like puzzle -- finding Hamiltonian cycle(s) in a 10x10 grid, with certain rules of movement:
Put a "1" on any square. You may jump up/down/left/right three squares, or diagonally two squares. Object: put a number in every square (1-100).

The code is very much a brute force algorithm (stack based for state-keeping with tail recursion for state transitions). The first solution took 30 minutes to find with a 2.4 GHz P4, in roughly 1.9 billion "passes".

The C++ version, compiled with full optimization, found the first solution in 10 minutes.

16 hours
sudoku Two-stage Python script to solve sudoku puzzles. In partial-debug mode, solves the puzzle on the sudoku.com homepage. (5/18/05) 4 hours
bitwise addition Java function to add two ints without the addition (+) operator 4 hours
dmdQ Modified Daniel Drucker's dmdQ PHP script to use CSS formatting for display and not require MySQL.

I also made a version that uses tables rather than nested divs. Er, wait, no! Scratch that, reverse it.

50 hours
liquidkubrick Modified the Kubrick blog template to have a liquid layout. 18 hours
dates Date-based (calculating signup cutoffs) PHP trickery for Daniel Drucker for a UPenn system. 18 hours