What’s Poker Copilot Missing that Hold’em Manager has got?
People often say, “Poker Copilot is not Hold’em Manager, but it’s the best we’ve got on the Mac.” Which makes me curious: which feature would you most like to see in Poker Copilot?
People often say, “Poker Copilot is not Hold’em Manager, but it’s the best we’ve got on the Mac.” Which makes me curious: which feature would you most like to see in Poker Copilot?
I found and fixed a memory leak in Poker Copilot’s HUD this afternoon. That’s the satisfying way I like Fridays to end.
A small component of Poker Copilot is written in Objective-C and Cocoa, the standard tools for Mac OS X programs. (The rest of Poker Copilot is written in Java). In Java, all the memory is cleaned up automatically using Java’s absolutely amazing and astounding garbage collector. For the first few years of Java, its garbage collector was primitive and caused long-running Java programs to freeze for some seconds from time to time. These days, however, the Java garbage collector is a programming work of art, working seamlessly, efficiently, and – most important of all – invisibly.
I’ve got used to that world. So moving into Objective-C, where I have to manually make sure memory is released seems like a jump back a decade or two in time. There is a garbage collector in Objective-C, but it produces code for Mac OS X 10.5+. When I tried to move Poker Copilot away from OS X 10.4 (Tiger) I had the virtual equivalent of an angry mob outside the front door, demanding justice for all. Well, for all the members of the angry mob!
And so, the Poker Copilot HUD had a memory leak. With the help of Xcode, Instruments, and this excellent blog post, I was able to find the leak and banish it forever. And hold of the angry mob.
Now back to the nice world of Java.
A few weeks ago, someone tried to buy Poker Copilot with a credit card. FastSpring, my payment processor, declined the transaction. A couple of minutes later, someone else tried to buy Poker Copilot with a credit card, and FastSpring also declined that transaction.
What did these two attempted purchases have in common, apart from both being declined? The same IP address. In non-tech talk, that means both attempted purchases came from the same computer (or, perhaps, the same computer network).
Over the next 15 minutes or so there were several more attempts from the same IP address to purchase Poker Copilot with a range of different credit cards and names. It was suspicious, FastSpring detected this, and stopped the seemingly fraudulent sales from going through.
This illustrates an important reason to use a solid payment processor for online sales. Rolling good fraud protection yourself is simply too hard. And yet when you do all your business online you need good fraud protection.
In the last week or so, I’m getting this question every day. Ongame Network has released a Mac client and now people want to know: Will we be adding Ongame support to Poker Copilot?
So, here’s the official answer: We’re considering Ongame support but have no firm plans yet. After Poker Copilot 2.0 is released, we’ll investigate whether it’s possible.
For the curious, Poker Copilot 2 early access version build 7 is available at http://pokercopilot.com/eap
What’s changed:
Known problems:
You can run the EAP version without affecting Poker Copilot 1 at all.
James, a loyal Poker Copilot user, kindly wrote a Poker Copilot tutorial in French.
Jon from MacPokerTools.com sent me this tasty screenshot. It shows the still-under-development Poker Copilot 2 with his custom Full Tilt Poker artwork:
An anonymous (but hopefully loyal) Poker Copilot user asks:
Little Snitch shows some Internet sites that Poker Copilot connects to. Could you explain this in some detail?
Sure thing, anonymous.
The world of always-on broadband Internet gives software developers great opportunities for creative solutions to problems. I may add some more background features that use the Internet in the future. But always for good, not evil!
Let’s say that double-clicking on Poker Copilot’s “Position Summary” screen crashes Poker Copilot one time in 100. To find this bug, I’d have to use the screen a lot. Many times to cause the bug, and many times more to reproduce the bug. But if 100 people used the Position Summary screen in one day, chances are that the bug would rear its head at least once most days.
To help track down some obscure issues like this, I added a Crash Reporter to Poker Copilot 2 a couple of weeks ago. If Poker Copilot crashes, the Crash Reporter springs to life, notifying the user, and offering them a chance to send the crash report to Poker Copilot international headquarters. Location: my home office.
The crash report sends the error message plus a snapshot of the state of Poker Copilot. (For the techies: a stack trace and thread dump, plus assorted system properties.)
I’m now getting several crash reports a day, and lordy me, are they ever helpful. That hypothetical once-in-a-100-times bug I described above? It wasn’t hypothetical at all. It was very real, and with the help of crash reports I mercilessly murdered it.
From Joel Spolsky’s latest article in Inc. Magazine.:
I feel like I finally understand what Jeff Bezos meant in 1999 when he described Amazon as facing “insurmountable opportunity.”
I sometimes get the feeling myself that there are too many possible directions, ideas, and opportunities. It’s a nice feeling!