Open Source
I have done varied open source work along the way. In the perfect world, where money was not a problem, I would do it full time.
- I am/was the lead author in http://abra.sourceforge.net - the Abra project. A light weight Java/JDBC persistence layer. Not currently under development.
- I wrote the first implementation of the JDBC CallableStatement for PostgreSQL (v7.3). I am sure all of my code has been ripped out and replaced since my 2002 submission!
NYU
Working on my Master's, with an expected graduation date of May 2010.
- Spring '08
- Programming Languages - mostly review for me, but learned alot about functional languages, and a critical subject regardless of your field of interest.
- Operating Systems.
- Summer '08
- Open Source Programming - Gitclipse project. Very hard, but rewarding. Unfortunately after the course was over, most of us had to move on. If you are looking for a git-plugin to eclipse, try JGit/EGit
- Independent study on Jeannie. Results were not good, but the experience of failure at research was quite useful.
- Fall '08
- Computer Games Hard work, but so much fun.
- Compiler Construction - although no longer a core course, this is a must take for any serious system programmer.
- Spring '09
- Networks - in the modern world, all CS types should take a networking class.
- Artificial Intelligence - a great course for anyone who likes solving problems.
- Summer '09
- Summer research as a lead in to thesis on automated Bridge play
- Fall '09
- Thesis I - Exploring the reductions in search space, and adversarial rules that can be made when looking for a claim.
Williams
Despite being a great Liberal Arts College, noted for art-history, economics, history and sports, there are lots of great courses in the CS department taught by a strong faculty. All classes are faculty taught (no GAs), and the tutorials are a great experience.
- Computer Architecture CS 237 : This is often referred to as the 'make-or-break' course. For me it was 'make', as at the end of my sophmore fall (after this course) I was ready to declare my major.
- Graphics CS 371 : A good intro to graphics course.
- Compilers CS 434 : now taught as a tutorial, but not when I was there.
- Advanced architecture and CMOS design CS 337 (T) : A deeper analysis of digital architecture... fun.
Bridge Software
Some scripts to help my mom write software for the USBF
- lin2pbn.py: Convert bridge base '.lin' format to PBN. Found here at my mom's bridge downloads section. Amusingly, Bridge Base can read a .pbn file and convert it fine to .lin (but not the other way). There are other utilities out there, like Richard Pavilicek's multi-format, tool but it did not handle BBO alerts or play annotations correctly, thus my tool.
- pbnButler.py: An imperfect butler generating program which takes pbn files from a team segment with duplicated boards. (requires lin2pbn above)
- You run this program either with a closed set of pbn files (all having played the same boards/same segment)
- or using the USBF round robin .INC files and add the argument "-t INC"
- The butSum.py program takes the text file outputs from pbnButler.py and creates the full table.
- run with switch "-c" to create .csv output
Misc
- A wonderful tool JavaCUP - a pure Java Shift/Reduce parser with input files like yacc.
- It's companion JLex just like lex - but again pure Java you can link with CUP to get a yacc/lex stile parser/lexer.
- I have packaged and built JCUP/JLex into a jar file for anyone's convenience. Particularly those using Abra. java_cup.jar Note: this is from 2002, and is way out of date with the current JCup/JLex code-base, however it has the packaging that Abra is looking for. If anyone requests it, I can try to do a re-packaging from current code.