The Poker Copilot Blog

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

Saturday, 31 October 2009

Above and Beyond from Sun and Apple

I had a problem with Sun's JVisualVM tool, when trying to profile Poker Copilot. It seems that one of the libraries I use stops JVisualVM was working fully on Mac OS X. I asked on Apple's java-dev mailing list if anyone else had encountered and had a work-around.

I got a personal reply from Tomas Hurka, the Sun employee who created JVisualVM. We interchanged several e-mails over two days until we had a small test case that reproduced the problem.

I now expected the problem to go into the ether, maybe to be solved in a year or two. How cynical of me.

Over the next two weeks I received continual updates from the Sun employee on the progress of this issue. He worked together with an Apple engineer to determine that the problem lay in Apple's Java virtual machine (JVM), in an obscure but essential aspect of the JVM called class verification.

The Apple engineer found a work-around and shared it with the Sun employee. He then forwarded it to me. Problem identified and solved. Total time elapsed: 15 days.

This is not the level of attention I've come to expect from large organisations. :-)

For the record: the library that causes the problem is Spring. The work-around is adding -Xverify:none to the JVM command line arguments.

Thursday, 29 October 2009

A Poker Copilot update

You can download Poker Copilot 2.17 here: http://pokercopilot.com/downloads/pokercopilot2.17.dmg. Your hand history database will be reset the first time you use this update.

Did you ever read The Cat in the Hat Comes Back? Do you remember how, when he cleaned up a mess, he created a new problem? Sometimes when fixing Poker Copilot problems I feel like I'm the Cat in the Hat. Which is why, even though I've tested this release on Tiger, Leopard, and Snow Leopard, in lots of scenarios, I am not making this an official release yet.

This is purely a bug-fix release. Here's what changed:

  • Start-up is quick, even if you have a million hands in your Poker Copilot database
  • Poker Copilot now fits once more into 1024x768 displays.
  • Tournament results for Full Tilt guarantee cash-out tournaments are now correctly loaded.
  • Tournament results for Full Tilt satellites are now correctly loaded.
  • PokerStars freeroll tournaments are now handled better.
  • A slight discrepancy in "Went to Showdown %" stat in Full Tilt is fixed.
  • "Went to showdown" and related statistics now work properly with Ongame Network poker rooms.
  • Errors in Ongame Network take calculation for split pots are fixed
  • Errors in Ongame Network take calculation for all-in pots are fixed
  • If you put your Mac to sleep while Poker Copilot is running, the HUD would stop working until you restarted Poker Copilot. This is now fixed.
  • The custom charts now includes all available statistics.


Update Instructions:
  1. Download version 2.17 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.

Wednesday, 28 October 2009

Build or Buy? Redux

Last week I wrote:

Now that my one-person software company is well-established, some decisions that used to be hard to make have become no-brainers. For example, should I code a Java component myself, or should I buy a quality third-party component that does the same thing? Unless it is outrageously expensive, the answer is easy: buy, buy, buy.


An insightful anonymous commenter wrote:
A problem is that the more 3rd party APIs you add, the more bugs you get that are close to impossible to fix.

If you have a bug or a performance problem in your own API, you know it, it can be fixed.

When it's in a closed 3rd party component, you have to cross your fingers they'll respond (and be able to reproduce the bugs), etc.


I thought this comment was right on the money.

So what happened when I tried JXFileWatcher and found it didn't work in Mac OS X 10.4 (Tiger)? I reported this to them. A few days later they e-mailed me to say that it was fixed. They also included a link directly to the new download.

JXFileWatcher is a product from TeamDev, a small Ukrainian company.

There's a third part to this story, which I'll share soon...

Monday, 26 October 2009

Idea of the Day: DropBox and Poker Copilot

Loyal Poker Copilot customer Keith X shared an elegant and simple way to keep your Poker hand history folders in sync if you play on more than one computer. Say, one at home and one on the road. Keith writes:

Sharing hand histories between two computers is very simple with Dropbox. (Use this link to join up with DropBox and Keith gets an extra 250MB of free storage. Steve.)

Install Dropbox on both systems, it's stable and much faster than Apple's iDisk. Make a Poker subfolder inside your Dropbox folder, then do an option-click drag on your history files to copy them into the shared folder. To make things simple, put aliases on your desktops to the hand history folder on each system. At the end of each session copy files to the sharepoint, and whenever you switch systems do a quick copy into your local history folder. It's super simple to keep in sync, Dropbox does all the heavy lifting.


Sounds great. I wonder if you could even tell the Full Till or PokerStars software to use DropBox directly.

I love DropBox, and I often use it to transfer files between two computers on the same wifi network. Why? Because I don't need to have both computers on at the same time.

Must... Not... Rant...

I try not to rant in this blog. So I'll present this clearly and objectively.

Until recently Full Tilt Poker indicated in the tournament summary file that you won a tournament entry as such:

1: Phil_Ivey, Entry to Tournament #70051699


But recently this has changed to

1: Phil_Hellmuth, entry to tournament 113552656


A human can recognise the difference without a moment's thought. The eye skips over the change of upper case letters into lower case letters. Likewise with the disappearing #. But computer are not humans. Artificial intelligence never did get the hang of understanding arbitrary minor changes.

And so, the Poker Copilot parser breaks again.

I'm curious as to why Full Tilt makes such changes from time to time. A new developer who prefers lower-case to upper-case? who doesn't like # signs? Is it in order to deal with internal Full Tilt bugs? Is it intentional to keep us developers of poker tracking software on our toes?

Fixing the problem is trivial. Identifying the problem is a bit harder. Predicting the problem in advance is fiendishly difficult.

This problem will be fixed in the next Poker Copilot update.

Usability Testing: The Results

Rico and Valou read yesterday's post about my first usability testing session for Poker Copilot. They asked for my findings. Here's what I jotted down while conducting the testing:

  • When stuck, users scan the menus. So every feature should be accessible via the menu bar.
  • Consistency is golden. A couple of drop-downs in Poker Copilot behave differently to other identical-looking drop-downs (they don't trigger a chart refresh). This is confusing.
  • If something is double-clickable, there should be some indication. For example, make it look like a hyperlink, or change the appearance on mouse over, or have a little indicator next to it. It is not immediately obvious that double-clicking on item in a Poker Copilot table will do something.
  • The user's mental model is not always the same as the developer's mental model. In the case of Poker Copilot, the user may want to go from viewing a statistic to charting it, rather than the other way around.
  • In general, copy what Apple does (or MS for Windows developers). They probably do a lot of usability testing in their design. They set the standard on what users expect.

All of this is based on a sample size of 2. So please do your own testing before accepting my findings.

Sunday, 25 October 2009

My First Usability Test

I've long read about usability tests. I've long intended to use usability tests in developing software. But you know, it was just a little too complicated to arrange.

A few days ago I finally performed a usability test on Poker Copilot. An online poker-playing who lives nearby was kind enough to accept my offer of a free copy of Poker Copilot in return for his participation. The basic gist of the test was to give the participant some tasks to perform, such as "Find the Poker Copilot website", "Download and install Poker Copilot" or "Find out player XYZ's 'Went to showdown %'". While he did this, I sat back and silently watch, taking notes on any difficulties I notice.

It was revealing. And surprising. I use Poker Copilot without any problems, because I designed it and coded it. Someone without that background (that is, the whole population of the earth minus me) may find it somewhat harder.

As a result, I'll be tweaking some aspects of the UI in the weeks ahead.

If you also create software, I recommend giving usability testing a try.

Monday, 19 October 2009

Build or Buy?

Now that my one-person software company is well-established, some decisions that used to be hard to make have become no-brainers. For example, should I code a Java component myself, or should I buy a quality third-party component that does the same thing? Unless it is outrageously expensive, the answer is easy: buy, buy, buy.

The back story

I'm in an ongoing battle to make Poker Copilot less resource-hungry. It is a battle on multiple fronts. One front is detecting updated hand history files.

Poker Copilot scans every few seconds for new or updated hand history files. The scanning is inefficient, especially if you have thousands of hand history file. If you are a hard-core techie who finds it fun to watch Activity Monitor, you'll notice that every few seconds Poker Copilot's CPU usage spikes. This is due to the scanning for changed files.

The scanning is necessary, because Java doesn't provide a way to be automatically informed of file updates. The upcoming Java 7 promises to have this feature, but Java 7 is not yet released. Java 7 seems to be one of those products that is promised and promised and promised for years but is never delivered.

On Mac OS X you can be notified of file system changes in Objective C, using the File System Events API. So I could code a small component in Objective C that sends a notification to Poker Copilot's Java code. But this is messy and I'm an amateur at Objective C. And frankly, I don't like Objective C, with its multiple personalities. When I mess around in Objective C, I feel like I need to have a shower to cleanse myself.

Enter JxFileWatcher. This is a commercial Java component that hooks into Mac OS X's native file notifications. It's not cheap, but if makes Poker Copilot better, and saves me as little as a couple of day's work, it is easily worth it.

I've been running some tests on JxFileWatcher using the brilliant JVisualVM to make sure it doesn't eat memory or CPU. So far, so good.

Sunday, 18 October 2009

The Week of Small Islands

This week I had a sale to Christmas Island and a sale to Netherlands Antilles.

All hail the power of the Internet, where one-person companies can sell to anywhere in the world.

Novel Poker Board

There's a brand spanking new Poker Q&A board called Outflopped that works on reputation and upvoting. It uses the same engine used by StackOverflow, the excellent programmer's Q&A board.

Out of curiosity, I posed a question about overbetting, to see how good the answers are.

Poker Copilot 2.16 Released

Poker Copilot 2.16 is now ready for download.

What's new?

  • Mucked cards are shown directly on the poker table, a few seconds after a hand is completed. You can disable this in the HUD preferences.
  • The cash/play money toggle is now only shown on the toolbar if you have play money hands in your Poker Copilot database.

Known issues
  • For some people some of the time (including me), Poker Copilot takes a loooong time to open the database. If this happens to you, the best thing to do is simply wait. It could take a few seconds or a few minutes, depending on the size of your database. Work is in progress in fixing this.

Update Instructions:
  1. Download the latest version from http://pokercopilot.com/download.html.
  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.

Saturday, 17 October 2009

An "I'm on Tilt" Detector Bracelet

Imagine a device that tells you when you have too much emotional intensity to make rational decisions. This emotion-detecting bracelet from Philips is designed for day traders, but it might functionally equally well for online poker players:

It acts as an 'emotion mirror' in which the intensity of the user’s feelings is reflected. Research shows that home investors do not act purely rationally: their behavior is influenced by emotions, most notably fear and greed, which can compromise their ability to take an objective, factual stance. This insight led to the Rationalizer concept in which online traders are alerted when it may be wise to take a time-out, wind down and re-consider their actions.

Sentence of the Day

This comes from one of Marc Andreessen's productivity tips:

The best way to to make sure that you are never asked to do something again is to royally screw it up the first time you are asked to do it.


Wally from Dilbert comes to mind.

Friday, 16 October 2009

Can I import into Poker Copilot hands that I purchased?

I've been asked this question via e-mail at least once a day lately. So I've made the position very clear in a FAQ entry:


The official answer from Full Tilt Support:

"We can confirm with you that Poker Copilot is allowed to be used as long as it contains only hand histories from hands in which you yourself have participated."

and

"The bottom line is that you are not permitted to view hand histories that you did not participate in."

The official answer from PokerStars:

"The practice of datamining (observing games without playing in order to build up a database of hand histories for future reference) is prohibited."

Our position:

We don't want Poker Copilot banned. And we don't want our customers' accounts frozen. Therefore we don't allow importing of purchased, observed, or datamined hands.


A Brazilian Poker Copilot Review

MaisEV.com, a leading Brazilian Poker site, has published a Poker Copilot review. It's the first review in Portuguese that I know of.

Wednesday, 14 October 2009

A Good Poker Player is...

When I started playing poker and scoured books and websites for info, I read over and again that a good poker player is...

...tight. Only put money in the pot when you have a good combination of hand and position.

...aggressive. Once you decide to play, play hard.

...not driven by emotion. Don't let normal human emotion dictate how you play. When you lose big when playing pockets aces, shrug it off.

...calculating. It helps to have a strong understanding of probability.

A calculating, aggressive, emotionless person? I'm not sure I want to be a calculating psychopath.

psychopath: noun. A person with an antisocial personality disorder, manifested in aggressive, perverted, criminal, or amoral behavior without empathy or remorse.


(Yes, this is supposed to be tongue-in-cheek!)

Interactive Feature Design

A popular request for Poker Copilot is to show the table's VPiP (voluntarily put $ in pot). It's time for me to do something about this. It's also time for an experiment: interactive feature design.

Here's what I've mocked up so far:


mockup.png



Here's what I propose:
* the nature of a table can change quickly as players come and go, so only the last 25 hands should be included in the stats.
* less than 25 hands of data will show the table stats in grey, to indicate the uncertainty, just like with the player HUDs
* VPiP, for example, will be calculated by adding up for each player the number of times that a player has put money in the pot. That total will be divided by the sum of each player's "times seen". Alternatively, I could take an average for each player, but I think the first approach is more sound.
* displaying this is optional and can be toggled on/off in the HUD preferences.

I haven't written a lick of code yet. So please send me your feedback.

Oops

In my rush to update the broken update of Poker Copilot two days ago, I made a mistake and released another broken update. I accidentally included a half-finished, hitherto-unannounced feature. Mucked cards from the previous hand on a table are now shown briefly for a few seconds next to each player after the hand is complete. That's the aim, anyway. I had been concentrating on the process of detecting, revealing, and hiding the cards, and not concentrating on the small details. Like making sure the cards show next to the right person.

The secret is out. This will be included - in a full working version - in the next update.

I should be angry at my quality assurance team for letting this get through pre-release testing. But I don't have a quality assurance team. So I'm not angry. Just apologetic.

Tuesday, 13 October 2009

Unexpected Consequences

I recently changed a pair of toggle buttons on the Poker Copilot toolbar into one toggle button. From this:



to this:



The reason: to free up some toolbar space. Seemed reasonable. Unfortunately this change caused a spate of support e-mails asking, "Where'd my stats go? Everything is always zero." New users are not really sure what the dollar sign means, so they click it, unaware they've turned on "play money" mode.

I'm going to do two things about this. First, the cash/play money toggle will only show if you have play money. Second, when in play money mode, I'll prominently indicate this, through text or colour.

Why support play money?, you might ask. Who'd spend $59.95 on a Poker tracking product if they are not playing for cash? You'd be surprised. Before I added play money support I received many e-mails from people asking for it.

Monday, 12 October 2009

Poker Copilot 2.14 Released

Poker Copilot 2.14 is now ready for download.

The major difference is that I've had to disable tournament filtering by buy-in. For obscure reasons, making this feature available leads to horrid hand importing performance in some cases. This removal is temporary, until I find a high-performance solution.

What's new?

  • Support for the PokerStars client in German
  • A huge improvement in hand loading time compared to 2.13
  • Use Poker Copilot just for the HUD? Clicking on the red circle in top-right hand corner of the main Poker Copilot now hides the window instead of closing Poker Copilot
  • HotKey ⌘+1 to hide/show the main Poker Copilot window
  • Hand history folders for all Ongame Network poker rooms should be automatically detected (although this is somewhat difficult for me to test exhaustively)
  • Right-click on any hand in the "Recent Hands" screen to view the raw hand history text.
What's fixed?
  • Some custom chart stats by hand were causing graphing problems. But no longer.
  • PokerStars cancelled hands are now detected correctly.
  • Poker Copilot no longer crashes when you exceed $22 million in summed tournament chips) in the summary screens.

Update Instructions:
  1. Download the latest version from http://pokercopilot.com/download.html.
  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.

UPDATE: If you don't have Winamax or another Ongame Network app installed, 2.14 won't work. You want the second update for the day, 2.15. http://pokercopilot.com/download.html

Wednesday, 7 October 2009

Poker Copilot for $20,693.69?

20,693.69 Zimbabwean dollars, that is:

Screen shot 2009-10-07 at 12.38.42 PM.png


I was flicking through the list of nations and currencies my payment processor, FastSpring, supports. It is an impressive list. It includes a disputed "non-self-governing territory:
Screen shot 2009-10-07 at 12.43.04 PM.png


A place I've never heard of:
Screen shot 2009-10-07 at 12.43.54 PM.png


And is sometimes in languages I can't read:
Screen shot 2009-10-07 at 12.45.06 PM.png



To the customer it appears to be a part of the official Poker Copilot site. Actually it is served up on FastSpring's secure servers:

Screen shot 2009-10-07 at 12.48.24 PM.png


Tuesday, 6 October 2009

Steve, Two: Bugs, Zero

Two obscure bugs turned up today.

First, someone played a PokerStars hand that was cancelled, because no-one coughed up the big blind. In a year or more of Poker Copilot, no-one previously reported this. Finding it was a stroke of luck and some good detective work from loyal Poker Copilot user Jonathan.

Second, if you stayed in a tournament until the stakes got crazy high, like hours and hours, then some of the summary screens couldn't cope with the combined total of chips won/lost. Like 250K/500K crazy high. (For my fellow geeks, some summed values were too big to fit in a Java int.)

Both bugs have been located and eliminated. It was deeply satisfying.

The next update will contain the fix.

Two thoughts:

1. If there was a formal spec of the poker room hand history files, it would help me detect these razor-thin edge cases earlier.

2. When creating software that depends heavily on an informal interface with other rapidly-changing software, bugs will never stop appearing.


Monday, 5 October 2009

Poker Copilot 2.13 Released

Poker Copilot 2.13 is now ready for download.

This is a bug fix and stability update. There are no significant new features.

What's New?

  • File -> Reset Database lets you clear out the database and load your hand histories again.

What's Fixed?
  • Preflop 3-bet calculation is fixed
  • Check-raise calculation is fixed
  • I've reverted to an earlier, more reliable version of the database engine.
  • Players sitting out in Full Tilt are now (hopefully) treated as such all the time.
  • Tournament players don't have hands counted as played if they are sitting out.
Update Instructions:
  1. Download the latest version from http://pokercopilot.com/download.html
  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.

A Surprising Leak

Loyal long-time Poker Copilot user dbtoots89 uses the new filters to find a surprising leak:

Since starting my heads up journey, I always assumed that a majority of my losses came when I was out of position. When I am out of position, I am out of power. I am first to act so I don't have the advantage of knowing what my opponent does on every street. I checked my Copilot and found something extremely surprising. I am winning when out of position and losing when in position.

Convincing People to Buy Your Software: An Introspective Case Study

Short Summary: No Update in almost 3 years. Dead Blog. They Failed.

In a forum comment, I read of iClip, a Mac OS X utility that allows you to have multiple items in your clipboard. Sounds good. Sometimes I wish I had such a thing. So I type iClip into Google and see this as the top Google result:

Screen shot 2009-10-05 at 10.35.50 AM.png


So far, so good.

I go to the site, it's nice, stylish, polished. All good signs that this is a strong company. This bit jumps out at me:

Screen shot 2009-10-05 at 10.37.54 AM.png


Let's see: 40,000 users times $30 a copy...more than a million dollars in sales. Yep, that's reassuring.

Let's download this sucker, I think to myself, and go to the Download page, where I see this:
Screen shot 2009-10-05 at 10.39.39 AM.png


Hmm, the newest version is almost three years old. No update since the days of Tiger (Mac OS X 10.4). That's worrying. This could be a dead product.

Lesson: if you are going to have a date in your version history, you better release at least yearly.

Does it work properly on Snow Leopard? Maybe the blog will tell me. There's a blog link in the main navigation bar.
Screen shot 2009-10-05 at 10.42.44 AM.png


Okaaaaaay. Not much of a blog. Never got past the first test entry. This site seems dead. I'm outta here.

I didn't even bother downloading.

Sunday, 4 October 2009

Sentence of the Day

From Patrick McKenzie's very long blog post/manifesto:

I have come to the conclusion, over the last three years, that working hard is overrated.

Although I've never met Patrick, he was a strong influence on my decision to launch Poker Copilot.

Poker Copilot Discussion Forum

You asked for a place to discuss Poker Copilot. I listened. Discuss Poker Copilot.

I've been using FogBugz for Poker Copilot issue tracking. It has discussion forum software built in. It's hosted by Fog Creek Software themselves, so I can trust them to keep the software updated when security flaws are detected. I'm using the free Startup edition, so it costs me nothing. It has spam and abuse detection built-in, which is a big, big plus. The search works pretty well and has no user-unfriendly Captcha. The design is simple and uncluttered.

That's the good points.

You can't use any kind of mark-up in your post. That, for me, is the bad point.

For free, I'm willing to accept a 90% solution.

So go post something illuminating!

Changes to some Poker Copilot Stats

Loyal Poker Copilot user Dorey detected that two of the Poker Copilot stats were suspicious:

  • check-raise was (check-raised)/(times seen) instead of (check-raise)/(check-raise opportunities)
  • 3-bet preflop was simply wrong, although unless you play mostly heads up, it was pretty close to the correct value.

Dorey went above and beyond in helping me locate the problems. These are now fixed and will be included in the next update. Historical values won't be corrected, but hand history files read after you update will be correct. If you need correct historical values, then you'll need to reset your database after updating.

Saturday, 3 October 2009

No HUD for Ongame Network?

Ongame Network's Mac client is different from the other poker rooms. My attempts to create a working HUD are going nowhere.

Attempt 1: Querying the Accessibility API. The technique Poker Copilot uses to track table windows does not work with Ongame. I use Mac OS X's Accessibility API to ask an application where its windows are, what size they are, and the text in the window title. Ongame's software freezes software that uses this technique for roughly 30 seconds at a time.

Attempt 2: Querying the Windows Server. From Mac OS X 10.5 (Leopard) onwards, it's possible to ask OS X directly for a list of all windows, including location, size, application name, and window name. This technique works for Full Tilt and Poker Stars, but in Ongame only the first letter of the window title text is returned.

I don't know whether Ongame has intentionally made it hard to track this information, possibly as a counter-measure for poker-playing bots that use screen-scraping.

I am at a dead end. Unless a flash of inspiration strikes, Poker Copilot won't have a HUD for Ongame rooms any time soon.

Germans, Unite!

Today is a public holiday here in Germany, to celebrate the Day of German Unity. It commemorates the day in 1990 when East Germany and West Germany officially united.

content_berlin_wall.jpg


A much more significant day to celebrate this would be November 9, the day in 1989 when the Berlin Wall was breached. I love quizzing Germans of their memories of that day. They range from "I was too young to care", to "I went to see my grandparents for the first time in my life".

Unfortunately, November 9th has other significance in Germany:
  • Reichskristallnacht (Night of Broken Glass), the beginning of 6 years of unrestrained terror against German Jews.
  • Hitler's Beer Hall Putsch in 1923 was on November 8th and 9th, and was a sacred day amongst the old guard of the Nazi party.
So it would be an unsuitable day of German celebration.

Friday, 2 October 2009

Poker Copilot 2.12 Now the Official Release

After two days and plenty of downloads, as well as some good feedback, I quietly moved Poker Copilot 2.12 into official release yesterday. It's now the version that new users download. Poker Copilot users with "update notifications" enabled will be informed of this new update during the next week.

Here's what's new:

  • More filters: buy-in for tournaments and stake level for ring games
  • Faster retrieval of data
  • Database Console
  • Work-around for more PokerStars character encoding problems
  • Fixed the suit mix-up in the hand replayer
  • Auto-detection mode, where hand history folders are detected whenever you start Poker Copilot. This is disabled by default for existing users, enabled for new users
  • Work-around for Full Tilt language mix-up. (Full Tilt sometimes writes some non-English text into english tournament summaries)
  • Work-arounds for some Snow Leopard issues. To be precise, these are Java 6 issues, which Poker Copilot uses on Snow Leopard because Apple removed Java 5.
  • Several small issues fixed


Update Instructions:
  1. Download the latest version from http://pokercopilot.com/download.html
  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.

Thursday, 1 October 2009

A Day in the Life of an Indie Software Developer

J, a would-be customer can't run Poker Copilot. It crashes on start-up with an error message I haven't encountered in Poker Copilot yet. I'm concerned. J reported this because he is keen to try Poker Copilot. There's probably many others who had the same problem but gave up immediately.

I have no idea what is causing this problem. I ask J for a few minutes of remote access to his computer to look for clues. He generously obliges. Using Copilot (no relation to Poker Copilot), I connect across the Atlantic (the world is amazing) to his computer, check a few things, and find that on his computer Poker Copilot is loading the wrong copy of an essential file.

I investigate the erroneous lines of code on my own computer. It is a Java class loader problem, picking up an external file that has the same name as an internal Poker Copilot file. I never fully grokked the Java class loader. I post a question on Stack Overflow, with the misbehaving line of code.

Within 10 minutes, the solution to my problem is posted. The problem solver chides me lightly for using an anti-pattern.

I make the necessary changes to Poker Copilot. I create a new build. I send it to J.

An hour later J tells me it works.

I upload the fixed build to the Poker Copilot website, replacing the current unofficial latest build.

I break for coffee and reflect that a) even 10 years ago, all this could not have been accomplished in a day, and b) tools like Copilot and Stack Overflow and high-speed intercontinental internet make my job easy, and c) I'm lucky to have enthusiastic and helpful users and wonder if other indie software developers also have such users.

Coda: Later in the day, J switched from would-be customer to paying customer. We both gained. J got personal attention to solve the problem. I got a critical bug dealt with, which will almost certainly lead to an increase in sales.

 

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