The Poker Copilot Blog

Tracking the development of Poker Copilot, Mac OS X software for poker analysis and statistics.

Sunday, 10 January 2010

92.2% Borrowed Code

92.2%. That's how much of Poker Copilot was not written by me.

Let me explain. Poker Copilot consists of 15.4 MB of Java code. 14.2 MB of that code is third party libraries. 1.2 MB is code I wrote directly.

In that 14.2 MB of third party libraries, here's what you'll find:

Awesome libraries I use daily in my coding

Google Collections - Java Collections on steroids. Preconditions. Functional Programming

Joda Time - how Java's Date and Time APIs should have been done


Awesome libraries important for Poker Copilot

JFreeChart - makes all of Poker Copilot's charts

Commons IO - has some code-bloat removing IO libraries

Commons Lang - has some code-bloat removing String manipulation libraries

Ehcache - allows Poker Copilot to cache many database results

JGoodies Forms framework - makes laying out Swing GUIs a cinch. But I really wish I could use something like Apple's Interface Builder

Quaqua Look and Feel - helps Java integrate better with Mac

Mac Widgets - a swag of UI components that make Java look like native Mac

Rococoa - lets Java use Cocoa libraries when there is no Java alternative

Spring JDBC - removes the boilerplate code from Java database access

Swing Worker - handles long-running GUI tasks

IntelliJ's Forms Runtime - makes GUI forms work that I built with IntelliJ's GUI Designer

H2 Java SQL Database


Libraries I use sometimes or seldomly

Cobra - Java HTML Renderer that nicely renders bullet points, in contrast to Java's built-in HTML renderer

Pure Java Hand Evaluator - a library to give descriptions of Poker hands that I hacked a little to fit in better with Poker Copilot

javacsv - parses CSV files

JDatePicker - used in the custom date filter

JavaMail - for reading Gmail Inboxes


The rest are dependencies of the third party libraries.

This is, for most of us, modern programming. Few programmers create low-level driver code, compilers, or operating systems. Seldom do we have to write a charting component or implement a hashing algorithm. Our task is often wiring together many different high-level components and third party libraries. The challenge is to make the libraries co-operate, to make the interaction between components reliable and fast, and to make the user interface that controls the components responsive and intuitive.

0 comments:

 

Poker Copilot

Free 30 Day Trial

Only $69

Order risk free with our 30-day money back guarantee.

  • Poker software for Mac OS X
  • Supports Full Tilt Poker and PokerStars
  • Analyses your opponents while you play
  • On-table HUD for Mac
  • Easy to use, easy to understand

Watch a demo of the major features of Poker Copilot