From EggeWiki
Jump to navigation Jump to search

At ThoughtWorks occasionally a developer will not be assigned to a project, and is hence 'on the beach'. So far, I've been 'on the beach' all of three days. When I was on the beach, I read some of the Spring 2.0 manual and created a COBOL copybook to Java code generator. I'm always thinking of projects that would require at least a day, which I hope to work on next time I'm 'on the beach'.

  • Create an LOLCode implementation in Parrot.
  • Create an iCal feed for PhpGedView. This would remind me of upcoming birthdays and anniversary's.
  • Create a Jeopardy game. I've done this once before and it's worked well for hosting trivia sort of events.
  • Create a trading simulator game. This game would let people trade for short 5-30 minute trading sessions. A variety of different games could be plugged in to teach concepts like index arb or risk arb. A basic Java or Flash GUI would be built and it would connect to a server using FIX. Other clients could be written, i.e., to execute an index arb strategy or VWAP algorithm. The server would be built on top of QuickFix/J and some sort of market feed would need to be produced.
  • Schedule Optimizer - It's a fairly frequent problem where you have a group of people who want to attend a number of course. When you attend a conference, you generally have several different tracks, and have to choose which ones you want to attend. The software app would take everyones preferences and then attempt to find an optimal schedule. The data input could be a Ruby on Rails app, putting the data in a MySql database. Then, a Java app could search for an optimal solution. It could use grid computing with Monte Carlo simulations, or use genetic algorithms.
  • Volunteer for
  • Create my 43Places J2ME App mobile check-in app.
  • Create a VoiceXML app.
  • FixStyle project - like CheckStyle, but it fixes the things CheckStyle complains about.
    • Seems that Uncrustify may already do this. Uncrustify is written in C, so it wouldn't easily integrate with a Java build.
  • Streams library for Java. Create utility classes like 'tr', 'sed,' and 'awk' which operate on streams.
  • FreeTDS like database driver for Ruby, written in pure Ruby.
  • OpenId module for Gallery2
  • Create an ANTLR language target for D.
    • D would be fun, but a PHP target might be more useful. With the PHP target, I could get Wikimedia to colorize all my source code. Given the availability of ANTLR 3 grammars, all I would have to do is specify what color the tokens should be.


  • Contribute to commons-cli. I use this library every time I write a console app in Java. There's some features I'd like to add, and there's a number of bugs which would be nice to fix.
    • After numerous bug fixes, Apache voted to release a version 1.1.
  • Simian replacement. Create a similarity analyser that works at a syntax level. For example, just renaming your variables doesn't make a method different.