The Poker Copilot Blog

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

Sunday, 31 January 2010

Poker Copilot vs Poker Tracker

From a Poker Copilot customer who tried Poker Tracker:

"I downloaded the Poker Tracker 3 60 day trial and gave it a shot. And I didn't just give it a little shot. I played 50,0000+ hands total in the last year (amateur for sure) and I played the last 5,000 using PT3 exclusively. And I prefer Copilot. No doubt I'm partial to your product being the first Mac tracker to market, but I wanted to be intellectually honest about it. Best product wins.

"As a Mac user, Copilot wins for me. There are valuable things I could get out of PT3 that I can't get out of Copilot. BUT you're constantly advancing. And your product is (to me) so perfect for the Mac market. Figure out what 95% of the customers want and go with that rather than trying to please the other 5% too and making an overly complicated product for everybody."


This was an unsolicited email. I've got several emails like this recently. I appreciate them!

I don't want to get caught up in a "My product vs their product" slagging match. Live and let live, as they say. So you probably won't hear much more from me on this issue.

Saturday, 30 January 2010

So _THIS_ is why I can't advertise on Google or Yahoo!

"In 2007, Microsoft, Google, and Yahoo! settled [US government] claims that they profited from gambling ads by agreeing to turn over a total of $31.5 million in cash and public-service warnings."


That comes from Joseph Menn's excellent Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet, a book I'm reading about cyber-crime. It's an eye opener.

Menn discusses PartyPoker and PartyGaming, which he claims was started by Ruth Parasol, who he alleges to be a former porn-site and phone-scam empress and is now an extremely wealthy woman.

Menn also claims that online gambling in the USA is mostly run by organised crime groups, operating out of Costa Rica and Dominican Republic. Many of the characters sound like they are straight out of The Sopranos, and have blackmailed and cleaned out some celebrities. These shady operators themselves were extorted by Russian-based hackers, who threatened (and carried out) DDOS attacks unless they were paid hundreds of thousands of dollars.

Not being American, this is all news to me. Now I know where Patrick's Scum and Villainy concept comes from.

He also discusses the Absolute Poker and UltimateBet scandals. That's the only thing I've read so far in the book that wasn't something I already knew.

Full Tilt, PokerStars, and Ongame Network are, so far, unscathed by Menn.

I highly recommend the book.

Friday, 29 January 2010

Rush Poker "HUD" Available

You can download a special update of Poker Copilot with the Rush Poker HUD window here:
http://pokercopilot.com/downloads/pokercopilot2.30.dmg

I haven't yet worked out a way to automatically determine if a poker room window is Rush Poker or normal poker. So you'll need to

  • manually turn off the normal HUD by pressing the pause button
  • turn on this HUD by selecting Window -> Rush Poker HUD Window

Caveat: This will work on any ring game poker table. It is only setup to work on a single poker table. It always shows session stats for the current table. It doesn't work with tournament tables.

If this works successfully and proves helpful, I'll consider adding the ability to customise the stats shown.

16 Days to First Page of Google Results

This morning I did my daily check of macpokersoftware.com. I typed "Mac Poker Software" into Google, turned off the Google customisations that makes search results tailored to my searching history, and - bingo! There was macpokersoftware.com in spot 8 on the first page of results.

A big thanks to Patrick McKenzie who gave me the strategy to do this. We had our initial email conversation on January 13th. Now, two weeks and two days later, results are already apparent.

The story started here.

Thursday, 28 January 2010

Cool Animation from Google Analytics

I've been using Google Analytics to monitor Poker Copilot web traffic from day one. Using the accumulated data I used the Google Analytics' data visualisation tool to show where my traffic comes from, and how it has changed over time:



There's some amazing free tools available these days to help run a small business on the web.

Rush Poker HUD is Almost Here

Here's a screenshot of where I'm at:



It works. For those who remember Poker Copilot 1, this is eerily reminiscent of the "Classic HUD".

I should have something available for you to try very soon.

Wednesday, 27 January 2010

Poker Copilot 2.29 Now Official Release

There's been a huge surge in Poker Copilot downloads in the last 24 hours, as PokerStars players discover that yesterday's PokerStars update broke Poker Copilot.

The fix, 2.29, seems to be running extremely well. So I'm happy to designate it the official release. Actually I don't have much choice. PokerStars is the most popular Mac online poker room, and it only works with 2.29.

Here's a list of the major improvements since version 2.23:

  • works with latest PokerStars update.
  • you can "star" interesting hands for later review.
  • Absolute Poker support. 
  • almost every screen is much faster. By much faster I mean between 5x and 100x faster. 
  • By default "Recent Hands" will show only 1,000 hands. In the Performance panel in the Preferences you can change this up to 10,000.
  • There's a stronger separation of ring games and tournaments in the user interface.
This is mostly a repeat of information from earlier blog posts.

Rush Poker HUD Mockup

I'm designing an alternative HUD for use with Full Tilt Poker's new Rush Poker. This is where I'm at:

Screen shot 2010-01-27 at 3.31.49 PM.png


It's basically a mini-version of the Poker Copilot player's summary, shown just for one Rush Poker table. The aim is to let you find the info for a player as quickly as possible.

Poker Copilot can't auto-detect who you are currently playing a hand with in Rush Poker because in each hand the players change. Screen-scraping is a possibility but that introduces so many potential problems it makes my head hurt already.

Before I start implementing this, I'd love some feedback.

Tuesday, 26 January 2010

PokerStars Update Breaks Poker Copilot: Fix is Ready

PokerStars updated their software today. If you want Poker Copilot to work with the new PokerStars update, you'll need to update to Poker Copilot 2.29.

Update Instructions:

1. Download the latest version here: http://pokercopilot.com/downloads/pokercopilot2.29.dmg

2. Open the downloaded file.

3. Drag the Poker Copilot icon to the Applications icon. If prompted to replace an existing version, confirm that you do want to replace.

Now you're done and ready to hit the tables.

Note: This is a rushed release that I have to do to prevent an overwhelming deluge of support emails. I've run through my battery of test cases, I've imported 1 million hands, and tested on Leopard and Snow Leopard. However there may be some problems. If so, I'll deal with them immediately.

Technical details:

PokerStars hand history files use UTF-8 encoding. Until today they had no UTF-8 Byte order mark (BOM). Now they do.

Java has a known bug where it can't read UTF-8 text files if they have a BOM. Sun knows about this. They decided not to fix it so as not to break existing Java-based software that relies on this bug.

Fortunately someone made UnicodeReader, a work-around class that I can use as a drop-in replacement for the offending Java class.

Yahoo Doesn't Like MacPokerSoftware.com

[Part of my continuing series on an SEO experiment.]

I mentioned earlier than on Patrick McKenzie's advice I paid Yahoo! to add macpokersoftware.com to the Yahoo! directory.

I received a "we won't be accepting your money" email from Yahoo! yesterday:

We're sorry to report that your site did not qualify for listing using the
Yahoo! Directory Submit service. Yahoo! does not accept listings for
online gambling sites. Online gambling sites are those that
have gambling as their central theme, including those that
accept wagers or require payment in exchange for the chance
to win prizes, as well as sites that offer both information and
links related primarily to the promotion of online gambling.

For this reason, your order has been forwarded to our billing
team for a full refund of the Yahoo! Directory Submit fee.


Frankly, I'm not bothered. I get my money back and I can stick to the "provide useful non-scummy content" strategy.

On a tangent, a good percentage of all the traffic to macpokersoftware.com is coming from Stockholm. Currently 11% and on an upward trend. I have no idea why.

Monday, 25 January 2010

A Breakthrough in Poker Copilot Performance

I've been struggling in my attempts to make the Player Summary in Poker Copilot go fast. So today, I set about rethinking the problem, and I think I've hit on a solution.

I asked myself, what are you most likely using the Player Summary for. My best guess: to look up info on players you are currently facing. So then, why show players you haven't encountered for six months?

So here's what I'm proposing for a coming Poker Copilot update: By default, the Player Summary will only show players you've encountered in the last 30 days. Here's a shot of how it may be controlled:

Screen shot 2010-01-25 at 5.58.51 PM.png


By default that checkbox will be checked.

If you faced philivey a few days ago, then he will show in this screen, and all his hands matching the current filter will be shown, even the data older than the last 30 days.

I think this is a nice compromise: a speed-up for the most common case, but a quick override when you really want to see more data.

Modified HUD for Full Tilt Rush Tables?

Loyal Poker Copilot customer Erle made this suggestion:

I have a suggestion for full tilt's new rush tables. Could you make a modified HUD? Basically about the dimensions of the mucked cards window. It would show the players you've encountered in the last hour. And at least 4 stats in a horizontal list.

Even though you're moved to different tables I'm seeing a lot of the same players. And there are starting to be regulars, so I'm sure I have stats on these guys. It would be great if this Hud only showed their Rush Stats. And there are only a few rush tables so that wouldn't be that bad, right? :)

What do you think?

Why No Absolute Poker Tournament Support in Poker Copilot?


Tournament hand histories produced by Absolute Poker for Mac OS X are missing a line that tells us what the flop was. This makes it hard to determine automatically where the preflop betting stops and the flop betting starts. It also means that in hands where everybody folds to someone who bets on the flop, there is no indication at all of what the flop was.

UltimateBet for Mac OS X also has this problem with tournament hand histories, which makes me suspect the problem lies in the Cereus Network's Mac software. I reported this problem to UltimateBet a couple of months ago.

In ring game hands, the *** FLOP *** line is always present. In Tournament hands, it seems to be always missing.

Here's an example hand history from a Absolute Poker tournament I played in (and donked out of) today:

Stage #8459747 Tourney ID 4988340 Holdem Single Tournament No Limit 10 - 2010-01-25 04:55:59 (ET)
Table: 34093525 (Real Money) Seat #7 is the dealer
Seat 1 - DIRTYD15 (1,500 in chips)
Seat 2 - STEVOSKI222 (1,500 in chips)
Seat 3 - SEANCFITTS (1,500 in chips)
Seat 4 - MITSKEVICH (1,500 in chips)
Seat 5 - PAMBOYC (1,500 in chips)
Seat 6 - CUSE_1 (1,500 in chips)
Seat 7 - STERIO 48 (1,500 in chips)
Seat 8 - HUMBOLDTLIVE (1,500 in chips)
Seat 9 - ELITETEKBRAD (1,500 in chips)
HUMBOLDTLIVE - Posts small blind 5
ELITETEKBRAD - Posts big blind 10
*** POCKET CARDS ***
Dealt to STEVOSKI222 [9d 5c]
DIRTYD15 - Folds
STEVOSKI222 - Folds
SEANCFITTS - Raises 20 to 20
MITSKEVICH - Folds
PAMBOYC - Folds
CUSE_1 - Raises 75 to 75
STERIO 48 - Folds
HUMBOLDTLIVE - Folds
ELITETEKBRAD - Calls 65
SEANCFITTS - Calls 55
ELITETEKBRAD - Checks
SEANCFITTS - Checks
CUSE_1 - Checks
*** TURN *** [Qh 7c 8h] [Ad]
ELITETEKBRAD - Checks
SEANCFITTS - Checks
CUSE_1 - Bets 145
ELITETEKBRAD - Calls 145
SEANCFITTS - Calls 145
*** RIVER *** [Qh 7c 8h Ad] [9h]
ELITETEKBRAD - Checks
SEANCFITTS - Checks
CUSE_1 - Bets 332
ELITETEKBRAD - Folds
SEANCFITTS - Calls 332
*** SHOW DOWN ***
CUSE_1 - Shows [Qd Qc] (Three of a kind, queens)
SEANCFITTS - Mucks
CUSE_1 Collects 1,329 from main pot
*** SUMMARY ***
Total Pot(1,329)
Board [Qh 7c 8h Ad 9h]
Seat 1: DIRTYD15Folded on the POCKET CARDS
Seat 2: STEVOSKI222Folded on the POCKET CARDS
Seat 3: SEANCFITTSHI: [Mucked] [Ks Qs]
Seat 4: MITSKEVICHFolded on the POCKET CARDS
Seat 5: PAMBOYCFolded on the POCKET CARDS
Seat 6: CUSE_1won Total (1,329) HI:(1,329) with Three of a kind, queens [Qd Qc - B:Qh,P:Qd,P:Qc,B:Ad,B:9h]
Seat 7: STERIO 48(dealer) Folded on the POCKET CARDS
Seat 8: HUMBOLDTLIVE(small blind) Folded on the POCKET CARDS
Seat 9: ELITETEKBRAD(big blind) Folded on the RIVER

Between these two lines:
SEANCFITTS - Calls 55
ELITETEKBRAD - Checks


should be the flop, as follows:

SEANCFITTS - Calls 55
*** FLOP *** [Qh 7c 8h]
ELITETEKBRAD - Checks


If you would like to see tournament support in Poker Copilot for Absolute Poker and UltimateBet please report this issue to either or both poker rooms.

Sunday, 24 January 2010

Another Experimental Poker Copilot Release

Yesterday's experimental Poker Copilot update had a problem: it crashed if you had the "Mucked Cards" window open. I've now rectified this.

This release needs to blow away your Poker Copilot database and load your hand history files again.

Update Instructions:

1. Download Update 2.27.

2. Open the downloaded file.

3. Drag the Poker Copilot icon to the Applications icon. If prompted to replace an existing version, confirm that you do want to replace.

Now you're done and ready to hit the tables.

Update on "Mac Poker Software" experiment

Less than two weeks into my experiment with search engine optimisation (SEO), here's the progress:

* Google now returns pages from http://macpokersoftware.com/ in search results.

* In the US version of Google, it ranks on the 9th page of results. It's a start, but it is 8 pages too far down.

* Google Webmaster Tools gives me some helpful information. For example, here's the most common keywords that Google identified on the site:

Screen shot 2010-01-24 at 1.33.37 PM.png


I'm using Google Analytics to track traffic. There's a steady flow of visitors, mostly via this blog, but some are coming from search results:

Screen shot 2010-01-24 at 1.38.06 PM.png

Thought of the Day

From Tim Harford of the Financial Times, plugging John Kay’s Obliquity:

...in a complex world one cannot simply identify a goal and plan your route towards it. Success must be groped towards gradually and with much correction of error.

Anyone running a small business learns this pretty quickly.

Saturday, 23 January 2010

Not a Poker Copilot Update

Well it sorta, kinda is. But not an official update.

Some people are keen to get using the much faster Poker Copilot screen updates already, as well as the starred hands. So here's a trade-off.

What you get:

  • the "starred hands" feature.
  • Absolute Poker support.
  • much faster screens (except Hand Summary and Players Summary - I'm still working on those ones).
  • minor UI tweaks
What you need to know:
  • this release may have some errors and stability problems.
  • By default "Recent Hands" will show only 1,000 hands. In the Performance panel in the Preferences you can change this up to 10,000.
  • this release needs to blow away your Poker Copilot database and load your hand history files again.
If you are adventurous enough to give this a try, I'd love to hear of any problems you encounter.

Update Instructions:

1. Download Update 2.26.

2. Open the downloaded file.

3. Drag the Poker Copilot icon to the Applications icon. If prompted to replace an existing version, confirm that you do want to replace.

Now you're done and ready to hit the tables.

Sentence of the Day

From The Secrets of Looking Good on the Dance Floor in Spiegel, a German news magazine:

British psychologist Peter Lovatt, who has conducted rigorous field work in nightclubs, believes he can explain why some booty shaking is hot -- and some is not.


Thursday, 21 January 2010

The Next Poker Copilot Update will be Faster

How much faster? That depends on which Poker Copilot feature you are using. Here's some time trials for importing 560,000 hands:

Screen shot 2010-01-21 at 8.58.15 PM.png


A 20% improvement. But as loyal Poker Copilot customer Keith X recently stated in a blog comment, "Import time is almost meaningless to me, once the DB is set up I never have to worry about it. So I'd suggest you always make the import time vs. HUD / stats refresh time tradeoff in favor of the actual playing elements." I agree with Keith X. So let's look at how long the stats take to update. The following chart is for 560,000 hands, of which roughly 460,000 are ring game hands and 100,000 are tournament hands. All times are in seconds:

Screen shot 2010-01-21 at 9.03.50 PM.png


Every category except "Ring Game Players Summary" shows improvement. In some cases the improvement is remarkable: only 1/1000th of the time previously needed, so that it doesn't get even a smidgin of a bar in the chart. In other cases, the improvement is more modest.

Here's the data in tabular form:
Screen shot 2010-01-21 at 8.57.22 PM.png


I hope to make every screen much faster than before. I'm still struggling a bit with Hands Summaries and Players Summaries and I want to get it right before I do the next update.

Outsourcing Testing

Andy Brice wrote an excellent post on outsourcing software testing. One line dear to my heart:

It isn’t sufficient to do all your own testing on software you wrote, no matter how hard you try.

Andy, like me, runs a one-person software company. He used two software testing companies, one in India and one in Ukraine, both of which charge $15/hour.

I'm tempted to use one of the companies Andy tried. The problem I foresee, however, is that testing Poker Copilot requires a lot of knowledge about poker and the definition of the statistics. Even trickier is that testing the Head-up Display requires playing online poker.

I'll have to give this one some more thought.

Wednesday, 20 January 2010

"Rush Poker" on Full Tilt

Full Tilt Poker introduced "Rush Poker" overnight. It's a funky concept. As soon as you fold, you get rushed to a new table with a different set of opponents. So you don't get to develop a feel for your opponents.

I played Rush Poker a little today to make sure Poker Copilot works with it. It does, for post-game analysis. However the HUD is useless, seeing as the players change after every single hand.

At first I played ultra-tight on Rush Poker, waiting for a great hand. Then I noticed that everybody was playing ultra-tight. As the wisdom says, when the table is tight, play loose. I did that, raising whenever I had a pocket pair or a picture card, as long as nobody had already bet or raised. It seemed to be a winning strategy.

I'm curious to see what the optimal strategy for Rush Poker will be in a few weeks time when many people have had a chance to develop a strategy.

Monday, 18 January 2010

Amsterdam, Documentation, and Mac Poker Software

I haven't got much work done these last couple of three days. I found somebody to write the Poker Copilot documentation. Conveniently, he lives only a 2.5 hour train ride away from where I live. Better still, he lives in Amsterdam. I'll visit an interesting city on the flimsiest excuse. As far as excuses go, visiting a person working with me is far from flimsy. So to Amsterdam I went.

The trip to Amsterdam meant I spent little time in front of the computer. You don't go to Amsterdam to sit in a hotel room using a computer all day! So please be patient if you've sent me an e-mail recently and I haven't responded yet.

What I did make time for was to check Google far too frequently to see if my "Mac Poker Software" experiment has made progress. Finally, this evening, Google admits that the site exists. I found this out by doing a Google query for "site:macpokersoftware.com"

Until this evening, Google always responded with:

Your search - site:macpokersoftware.com - did not match any documents.


Now Google says:
Screen shot 2010-01-18 at 10.35.55 PM.png


Excellent!

Coping with Apple's Java Policy

Mac OS X 10.6 (Snow Leopard) comes with Java 6. And only Java 6. Want Java 5? Not possible as far as Apple's Java team is concerned, although there are backdoor methods.

This is mostly a good thing. Java 6 is better than Java 5. It runs faster. It starts up faster. Garbage collection is better. It has new APIs and new methods in existing APIs.

But it's not all good. Java 6 does not exist for PPC Macs. Some of my Poker Copilot customers are still using Tiger and Leopard on PPC-based Macs. So Poker Copilot must run on Java 5 as well as Java 6.

This makes things somewhat complex. I use Snow Leopard as my main development operating system. I can ensure that I compile in a format usable by Java 5 by using the "-target 1.5" parameter when compiling. But I also have to make sure I don't use Java 6 APIs or methods.

The solution I have found to this problem is this: to have an automatic build process running on a second-hand PPC Mac Mini running Mac OS X 10.4 (Tiger). When I make changes to Poker Copilot's source code, I commit them into my Subversion source control repository. TeamCity, an automatic build system, detects the commit, gets the latest source, and tries to build Poker Copilot on Mac OS X 10.4 (Tiger) on a PPC machine. If it works there it will work for all my customers. If it doesn't work TeamCity notifies of the problem and I can fix it immediately.

This problem must be faced by Objective-C programmers too, because Apple introduces new Cocoa APIs with each OS X upgrade.

Saturday, 16 January 2010

Poker Copilot Database Improvements

Some Poker Copilot users have been having sporadic hangs or really slow refreshes. I suspect this is happening for users with loads of hands in their database. Like 1 million+. So I've been doing some profiling of Poker Copilot's database queries.

I've stumbled upon a couple of full table scans taking place. To translate into English "full table scan" is database-speak for "dog slow". A simple tweak or two fixed this, and reduced the time it takes to import a million hands by about 10%.

More aggressive caching has given a further 10% improvement. I knocked another 2-3% off the import time by removing some columns that were being populated but never used.

I've also created a new denormalised table for Position Summary and Stake Level Summary. To translate again, "denormalised table" is database-speak for "table that has unnecessary redundant information but goes at light-speed". For big databases, this reduces the time taken for Position Summary and Stake Level Summary updates by two orders of magnitude. Two orders of magnitude? That's right, what was taking 25 seconds now takes 0.25 seconds. I suspect this is mostly happening because the denormalised table is small enough to be entirely held in memory.

The downside of the new denormalised table is that it adds about 10% to the time taken to import a million hands. But I think it is a good trade-off. On my iMac, importing a million hands takes a little under two hours.

These changes have not been straight forward. I find a problem. I implement a trial solution. I run a full import of all my test data, which takes about two hours. I then measure the results, not just for the import but also for the various summaries and filters. Sometimes I find the trial solution has made things worse. So I have to undo the trial solution and go to plan B. Then I repeat the whole escapade.

This takes time. Mostly spent waiting. Which is why I've been spending time on the Mac Poker Software mini-site experiment. I hope that the database profiling pays off to give all users a smoother, faster experience.

Last night, while letting a million hands load, I played two tables simultaneously. The HUD continued to update within a couple of seconds after each hand for the full duration.

I hope to release a test version of this update for you to try out within a few days.



Friday, 15 January 2010

Paid Search Listings?

Part of Patrick Mckenzie's suggestions for giving the Mac Poker Software website a quick rise to Google stardom is to get listed in two search directories: JoeAnt and Yahoo! Directory.

It's so long since I've since used an Internet directory, I forgot that Yahoo! started as a directory, back in the infancy of the world wide web.

To my surprise, you have to pay to be listed in these directories. JoeAnt costs $39.99. Yahoo! charges $299 per year, an amount that made my eyes pop out of their sockets in surprise, shock, and disbelief.

But it's part of the strategy so I gulped loudly and frequently, whipped out my credit card, and went ahead. Let's see, if I can get six extra sales from this strategy then the directory listing fees are covered. Seven extra sales and I'm ahead.

Thursday, 14 January 2010

Mac Poker Software

A couple of weeks ago, I unexpectedly found myself in possession of a new domain name, http://macpokersoftware.com/. I think I put in a backorder for it about a year ago, then forgot all about it.

But what to do with this asset? In a friendly email conversation, Patrick McKenzie gave me a strategy for using the domain to attract focused web traffic: Optimise the heck out of the site with some content and links and let Google go do what Google does well.

The strategy goes something like this:

  1. Put a Wordpress blog on the site.
  2. Put a discrete advertisement for Poker Copilot on the site.
  3. Write some pages of relevant content.
  4. Get the ball rolling with a couple of well-placed links.
  5. Wait a couple of weeks for the Google juice to start flowing.
  6. Gradually make the page promote Poker Copilot more aggressively.


Steps 1 through 3 are done. Step 4 will be done as soon as I click on the "Post New Blog Entry" button. :-)

I hope to post an update here with the results of this experiment in a month or two.

Tuesday, 12 January 2010

If All Support Emails Could Be Like This

C. is using the free 30-day trial of Poker Copilot and hit a problem with importing PokerStars tournament results. Instead of just describing the problem, he sent me a 1 minute 16 second QuickTime movie showing me exactly what he was doing.

With the movie, the solution was immediately clear. It's a common problem. The Poker Copilot filters were set to exclude data he expected to see.

In a recent update I added the filter description bar:

Screen shot 2010-01-12 at 10.51.33 AM.png


I introduced this small addition with little fanfare. No-one commented on it. But I believe it has significantly reduced the number of support emails.

Monday, 11 January 2010

Starring Hands for Later Review

Sometimes while playing online poker, I find myself wanting to look closely at a hand that went unexpectedly. I can't do it while playing so I need a way to remind myself to go back later and look at it.

The next update of Poker Copilot will solve this problem by introducing starred hands:

Screen shot 2010-01-11 at 10.36.04 AM.png


The star is a toggle. Click it once to star a hand, click it again to unstar a hand.

You can filter by starred hands:
Screen shot 2010-01-11 at 10.39.10 AM.png


Poker Copilot's Head-up Display (HUD) has a new icon to let you star the previous hand played at the table:

Screen shot 2010-01-11 at 10.41.30 AM.png


This is a seemingly simple addition that turns out to be hard to implement well. There were several design issues and threading issues that I had to solve.

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.

Amazon Mystery of the Day

I buy a lot of books on Amazon. Amazon has some odd books in the "Our Recommendations for You" section. The titles I buy are diverse, and as a result the recommendations can be surprising. Today's surprise:

sudantravelguide.jpg


A travel guide for Sudan.

I can't say travelling to Sudan is high on my list of things to do.

Thursday, 7 January 2010

Write the Poker Copilot Docs - for $$?

It's time to create some good, solid documentation for Poker Copilot. Can you help? Do you know someone who can?

Ideally you'd be an existing Poker Copilot user, with fluent English. You understand the principles of good writing. (e.g. Prefer the active tense. Keep sentences short. Avoid unnecessary words.)

I imagine this would suit a university student.

If you are interested, please send me an email telling me why you'd be a good choice, as well as your rates. Note: the email should be proof of your excellent writing ability.

Wednesday, 6 January 2010

Poker Copilot Roadmap for 2010

I've enjoyed a restful December. Now I'm fully recharged and it's time to charge ahead with Poker Copilot updates. Here are the high priority tasks for the coming months - in no particular order:

  • All-in EV chart.
  • The ability to "flag" or "star" hands while playing for later review.
  • More stats - because, according to the power users, there can never be enough stats!
  • Hand Replayer improvements, such as keyboard control, stats and pot odds, the ability to sit back and watch several consecutive hands, and a "Save as QuickTime movie" option.
  • Colour-coded Head-up Display.
  • Auto-generated player icons to represent their style. Think donk, shark, rock.
  • Absolute Poker support.
  • Better documentation.
  • Video tutorials.
  • Integration with well-known "product X" where I can't reveal what "product X" is yet.
  • The exclusive, one-of-a-kind Poker Copilot leak detectors.


Will there be a Poker Copilot 3? I haven't decided yet. The approach of continual free updates is working out well so far.

Tuesday, 5 January 2010

Poker Copilot 2009: The Year in Review

Summary: Things went exceedingly well. There were some hiccups. I learnt some lessons.


Let's start with a chart:

Screen shot 2010-01-05 at 10.29.05 AM.png
Each quarter has been significantly better than the previous except for 2009 quarter 2. I'm pretty sure that anomaly was because I announced I was working on Poker Copilot 2, leading many potential purchasers to wait. What a way to scare off potential buyers!

Monthly expenses have remained almost negligibly low.

Personal stuff

Over the year I went from being a full-time IT consultant to a part-time IT consultant, to giving up consulting altogether.

Poker Copilot earns me a good income for Germany, where I live. I work nice, flexible hours. I'm far more satisfied with my work compared to consulting.

Poker Copilot stuff

I released version 2. I released it too soon out of eagerness and there were quality issues. While trying to solve those initial quality issues, both of the major Mac poker rooms made changes that broke Poker Copilot. Trying to deal with quality issues AND make fixes for the Full Tilt and PokerStars changes lead to a painful and somewhat embarrassing couple of months where I felt like I was doing nought but chasing my tail. Since then I've made a forceful push towards better quality, better testing, and better processes.

The software itself has come a long, long, long way from where it was a year ago. Major features added in 2009 include:
  • a hand replayer
  • a better HUD
  • better multi-tabling support
  • more stats
  • a database that can cope with a million hands instead of 150,000 hands
  • the ability to drill down into summaries to see individual hands played
  • more poker rooms supported
  • more filters
  • mucked card display
  • direct database access for SQL junkies
  • support for Full Tilt in a range of European languages
I felt like I dropped the ball on customer support a couple of times. My aim for customer support is:
  • give a meaningful, helpful response to all support requests
  • within 24 hours
I mostly did this but sometimes I failed on either the first count or the second count.

What's coming for 2010...

...will be in a separate blog post soon! I've got lots of good stuff planned.

Monday, 4 January 2010

Poker Copilot 2.23 Ready to Download

Poker Copilot 2.23 is now available to download.

What's new:

  • Poker Copilot can determine addons and rebuys from PokerStars audits
  • Poker Copilot can read PokerStars Tournament Summary emails directly from your Gmail inbox.
  • You can turn off HUD table stats in the HUD preferences.


What's fixed:
  • A subtle but nasty problem where cancelling a dashboard update could jam the system.
  • Numerous minor performance and stability tweaks.
  • A fix for a change to Full Tilt play money summaries.


Update Instructions:
  1. Download version 2.23 here.
  2. Open the downloaded file.
  3. Drag the Poker Copilot icon to the Applications icon.
  4. If prompted to replace an existing version, confirm that you do want to replace.
Now you're done and ready to hit the tables.

Sunday, 3 January 2010

Improved Handling of PokerStars Tournament Rebuys and Addons

In the next update of Poker Copilot, the File menu will have two new options:

Screen shot 2010-01-03 at 11.12.16 AM.png


I mentioned the "Fetch PokerStars Tournament Results from Email..." item previously.

The second new item is "Add PokerStars Tournament Audit..." PokerStars has recently added the ability to request a playing audit. Amongst other things it contains info about tournament buyins, winnings, rebuys, and addons:

Screen shot 2010-01-03 at 11.15.40 AM.png


If you request this from PokerStars in CSV format, Poker Copilot can read it to augment the Tournament Summary e-mails.

Augment? Yep. The tournament summary e-mails contain where you placed, but not info about addons and rebuys. The audit contains addons and rebuys but not info on your where placed. The two together give complete info.

 

Poker Copilot

Free 30 Day Trial

Only $69

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

  • Poker tracking software for Mac OS X
  • Supports PokerStars, Winamax, Merge Network, Ongame Network
  • 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