It’s 30th June, 8:43pm, it’s the target launch date, and I’ve made it.
A few minutes ago I uploaded the live version of the Poker Copilot website. Now you can download the trial version. You can also buy Poker Copilot.
Let me just reach over my own shoulder and pat myself on the back. Okay, done. That felt good. Now I can take a break from development for a few days at least. Time for me to fire up this Poker Copilot thing and see if it can’t help me play a mean game of poker.
Today I did systematic testing. Not fun. Not fun at all. But necessary. We (my tester and I) decided on a workable approach and determined some “equivalence classes”. That phrase “equivalance classes” probably suggests how tedious the day was.
The good thing is, we did find some bugs in the calculations of the charts and tables. I got rid of all the known bugs, then did a retest.
Now I’ve generated a new build. I also fixed the small flaws in the web site. That means everything is ready to be uploaded tomorrow. Launch is on track.
Finally, today’s my birthday. So enough work for today. Time to relax and celebrate.
It’s amazing how productive I am when I tackle a task in the morning, fully rested, without distractions. After trying repeatedly to get the website for Poker Copilot together, but getting nowhere fast, today I finally got it done. Screenshots are currently missing, because I want to massage them a little first, but otherwise it is done. Take a look at www.pokercopilot.com. Feedback, as always, is appreciated.
…brief pause…
I just used browsershots.org to do multi-OS, multi-browser website layout testing and it seems things look a bit odd in the IE family of browsers. Sigh…
Being a Friday, and having a full-time consulting gig currently, I chose to spend the evening relaxing rather than frantically working on the last steps towards launching next week.
While working on Poker Copilot over the last month, I talked extensively to my poker guru. I also talked extensively to my Mac guru. Fortunately they happen to be the same person. Today my poker/Mac guru and I talked a little about what features I should introduce in Poker Copilot version 1.1. We thought of two features that I believe will make Poker Copilot a compelling companion product for online poker players. Naturally the temptation was to start designing and implementing these features right away. However I exercised some restraint and added them instead to the future feature list.
Poker Copilot 1.0, my Mac OS X app for tracking and analysing online poker hand histories is now finished. No, that’s not quite true. Testing and debugging still await. The weekend is dedicated for testing with the help of my girlfriend, who just happens to be a software tester. Very convenient.
It’s nice to see my own app in the Applications folder in Finder, right next to Full Tilt Poker:
I went through my to-do list this evening with brutality. Anything that isn’t essential for version 1.0 has been assigned to a later version. Everything else I took care of in a burst of energy. I intend to release version 1.1 within a few weeks of launching, which will add many small touches, especially improved data visualisation.
I’m also still to finish the website. That’s looking ever more like a last minute task.
I contacted a talented graphic designer I know. I asked him to make me the logo and icon for Poker Copilot. He told me that he would be too expensive and I should use a web based offering such as http://logopond.com/. Personally I thought his rough estimate was a good price, but if he as a professional thought a low-cost solution would do for now…well, I won’t argue with that.
So I ran a competition on crowdSPRING, received 20 entries, and chose something I can launch with. If I sell more than a few copies I’ll revisit the design issues again later.
Now I’m struggling with the website. The struggles are partly with the design and partly with the final copy. I just keep reminding myself, if I can’t get it right now, it’s easy to change all this stuff again in a week, two weeks, a month’s time.
I’ve been getting the occasional e-mail from an online poker player who is interested in my software. Each e-mail helps boost my enthusiasm and my motivation to get Poker Copilot out by next Monday.
Today I got stuck into a task I’ve been avoiding: the license key generator. Fortunately it wasn’t so hard once I had worked out how I would do it. It took a few sketches on paper, some time getting familiar with Java’s cryptography API again, and an evening of coding.
The basic model is this:
30-Day Evaluation when you download Poker Copilot you have an automatic 30-day evaluation.
Creating a License Key When you buy a license I generate a key from your user name and a couple of other things. I encrypt this using public-private key encryption. I send you the encrypted key by e-mail.
Using a License Key Poker Copilot knows how to decrypt the key but not how to encrypt. It decrypts the key and checks that it contains your username and some other information.
With this model, anyone who reverse engineers Poker Copilot will be able to decrypt keys. However only I can encrypt – and therefore create – keys.
I hope the concept proves valid. Now I’m going to finish the day with 30 minutes of poker.
Poker Copilot. That’s the name for my application. I bought the domain, pokercopilot.com, although the content on that domain is, shall we say, somewhat spare.
Email should now be functioning too, via Google Apps. If you feel like it, you can help me test it out by emailing me at AnyNameYouLike at pokercopilot dot com.
I had limited Internet connectivity all weekend. This meant no blogging but high productivity.
It’s going to be a stressful week getting all the bits and pieces together. Not quite finished tasks include: the logo, the website, integration with the payment processor, testing and debugging, and putting on the finishing touches. But there’s one big task I haven’t started yet: the software licensing system.
I’ve decided to issue license-free 30-day evaluation copies. When the user buys a license, it will be only functional for the specified user’s name and the current version of my poker app. Now I’ve got to design and implement the algorithm for this in Java. Any advice gratefully received.
Today I had a super productive coding session where I was “in the zone”. Everything I coded seemed to work first time and the cause of bugs seemed to leap out of the screen at me. These types of sessions don’t happen often but I love it when they do.
Here are some screenshots showing the current state of affairs: