Quite a lot has changed internally, so there may be some problems I haven’t discovered yet. So I’d like to ask my loyal customers to try this out before I make this release official.
What’s changed:
Tracking of hand history files for the current tables is cleaner and quicker. Less CPU usage spikes.
Community cards for the previous hand are shown for a few seconds with the mucked cards.
Table stats are shown: vpip, pre-flop raise, and aggression.
The order in the position summary has changed.
What’s fixed:
No more “Out of memory exceptions” when dealing with extremely large hand history files
Poker Copilot now co-operates with custom PokerStars themes.
The take for uncalled blind steals in Ongame clients is now correctly calculated.
How do I know this? I don’t really. The data I have is data sent by your browser from the computer you used to purchase Poker Copilot. It’s as close as I’ll get to the real data.
Is it worth still supporting PPC users and Tiger users? At 7% and 8% respectively, I think it is.
First, I feel I should make sure you are aware of the UltimateBet scandal. I’m surprised UltimateBet managed to survive the scandal, trust being paramount when playing online poker.
I recently investigated adding UltimateBet support to Poker Copilot. The good news is it seems feasible. The UltimateBet client is HUD-able. The hand histories are stored locally. I can’t determine from hand histories whether a table is full-sized or 6-max, though.
In my opinion, Objective-C’s big strength is the awesome Cocoa libraries. So as a Java programmer I was pleasantly surprised to discover the Rococoa project. Rococoa allows any Java program on Mac OS X to (sort of) easily access any Cocoa library.
If you want to use Rococoa I recommend learning how to code in Objective-C first. That will make it easier to understand what’s going on and why you need to do things like creating an auto-release memory pool.
The hardest part of Rococoa’s learning curve was getting a small but useful program working. Once I achieved that the other parts fell into place. So to help others, here is a working example, in two classes. The first class, NSWorkspace is an access point to Cocoa’s NSWorkspace class. The second class uses NSWorkspace to dump to the console a list of all applications currently running on your Mac.
You’ll need to add the Rococoa libraries to your classpath.
public static void main(String[] args) { final NSAutoreleasePool pool = NSAutoreleasePool.new_(); try { showRunningApplications(); } finally { pool.drain(); } }
private static void showRunningApplications() { final NSWorkspace nsWorkspace = NSWorkspace.CLASS.sharedWorkspace(); final NSArray nsArray = nsWorkspace.launchedApplications(); final int size = nsArray.count(); for (int i = 0; i < size; i++) { final NSObject nsObject = nsArray.objectAtIndex(i); // dump object to console the Java way System.out.println("nsObject = " + nsObject); // dump object to console the Cocoa way Foundation.nsLog("%@", nsObject.id()); } } }
We’ve gone from two to 25 employees in about a decade by growing, on average, 54 percent a year.
According to Joel’s other writings, he achieved and maintained this growth without a cent of debt or outside funding. I’d call that high growth. Impressive even. Maybe I’d go as far as stellar.
I asked for suggestions about this feature 3 weeks ago. There were 3 main types of feedback: “Awesome!”, “Just something else cluttering the screen”, and “Make this be based on the historical averages of the players at the table.
I hope I’ve managed to find a way to make this discreet enough for the anti-clutter camp, while making it easy to access for others.
I wrote yesterday’s post late at night while tired. On re-reading it today, I realised that it seems arrogant and doesn’t say what I wanted to say. So here’s my second attempt to get my message across.
“Why doesn’t Poker Copilot have feature X that some Windows products have?”
The reason is this: Poker Copilot is a one-person operation. I have a finite amount of time and need to prioritise. He specifically asked about more filters, which is something that’s been on my list of things to do for some time.
This got me thinking about the wider question of competitors in software development. I believe in general that a software development team should not obsess over their competitors. It’s natural to want to keep tabs on the competition, but one should not add features simply because the competitors have it. One should add features because customers want it. And because it helps customers achieve their goals.
My mantra could be: Don’t obsess over competitors. Obsess over customers.
I call it a mantra because I have to repeat it to myself over and over to follow it. It’s natural to obsess over competitors and I have to fight the temptation to do it. And I do sometimes (but seldomly) in my moments of weakness browse through the screenshots of Poker Tracker or Hold’em Manager.
It’s hard to determine if a particular feature your competitor has is one that adds value to customers. If I follow my competitors closely, I’ll become preoccupied with the wrong things. I’ll start obsessing over the features they have. I believe I should be obsessing over the features my customers ask for instead of the features my competitors have.
Some features competitors have are highly valuable. Some are not. It is hard for me to tell the difference.
I’m finding that people tell me what important features Poker Copilot is missing. I try to focus on the most highly requested ones. Sometimes I’ll suddenly get an avalanche of requests for a specific feature. I interpret that as a sign that a) a Windows poker analysis product has added that feature; and b) people like it. And therefore it becomes high priority.