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
Finishing my Master's, with an expected graduation date of May 2010, and then continuing for a part-time Ph.D.
- 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.
- Spring '10
- Fall '10
- Honors Algorithms - the start of the PhD program
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.