Showing posts from December, 2013

SeeingStars Second Beta Available

I managed to get a few hours over the Christmas period to work on SeeingStars. I’ve added a crash reporter, an issue reporter (accessible from the Help menu), and a “There’s a new update available” mechanism. Not much else has changed.Download it here.

SeeingStars 1.0 Beta Version Available

A few days remain until I release SeeingStars: Real Time Odds for PokerStars on Mac OS XSign up here to be notified when we release AND get a 50% discount.You can now download and use SeeingStars 1.0: Beta Test Version. I’m releasing this early version to help flush out issues, and to make sure things work on a range of computers.Please send feedback to Bug reports welcome.

SeeingStars: Coding yet Procrastinating

A few days remain until I release SeeingStars: Real Time Odds for PokerStars on Mac OS XSign up here to be notified when we release AND get a 50% discount.I spent two hard day’s (well, two hard half-day’s) coding, and realised that I was no closer to releasing SeeingStars at the end of the day. I had avoided doing the dull work that needs to be done to make sure SeeingStars works at all window sizes, and instead decided that the screen-scraping engine underlying SeeingStars just HAD to be turned into an independent service that I can run and use from Terminal. “To make it easier to test and support”, I told myself. “To make the code better structured and aesthetically pleasing”, I imagined. The truth was, I was simply procrastinating.Better-structured, aesthetically pleasing code satisfies my somewhat OCD nature. Spending time doing this gives me the illusion of progress. But actually, for version 1 of a product, I believe the most important thing is getting something usable running i…

SeeingStars: Test test test

A few days remain until I release SeeingStars: Real Time Odds for PokerStars on Mac OS XSign up here to be notified when we release AND get a 50% discount.This screen-scraping stuff is fickle. A small change to the layout of the screen, the window size, or colours, and the screen-scraping techniques can fail. A small change to one part of my screen-scraping code, and card recognition can fail. Like humans, my program doesn’t like change.Therefore I’ve been creating lots of automated tests. So if problems do occur, they’ll be easier to isolate and fix.I like automated tests. They make me feel more confident about my code. They allow me to fine-tune things and still expect existing code to work - or to find out quickly what broke.Meanwhile, SeeingStars is soooo close to being ready for beta-release. Some more testing, some better results at various window sizes, and it’ll be beta-release time.

"Merry Christmas" EASILY outsells "Happy Holiday"

Should you write Merry Christmas or Happy Holidays on cards? That’s a personal choice, but if you are into selling, then ConversionVoodoo claims that their large A/B test results in “Merry Christmas” converting way better:As you can clearly see, “Merry Christmas” killed it, nearly doubling the click through rate of the other subject lines. 5.47% vs 2.90% is a clear winner with statistical confidence.

Multithreading is easy? If only...

There’s a well-argued, thoughtful blog essay on, arguing that multithreaded programming is easy:Perhaps you’ve accepted the common fallacy that “Multithreading is hard.” It’s not. If a multithreaded program is unreliable it’s most likely due to the same reasons that single-threaded programs fail: The programmer didn’t follow basic, well known development practices. Multithreaded programs seem harder or more complex to write because two or more concurrent threads working incorrectly make a much bigger mess a whole lot faster than a single thread can.Oh I wish that “multithreading is hard” were a fallacy.Writing a background thread that performs a long-running calculation? easy. Especially the examples from the multithreading books, which are almost invariably Fibonacci calculations, a somewhat irrelevant example, because Fibonacci numbers can be calculated quickly without the need for multithreading.Writing a background thread that can be cancelled immediately, that…

SeeingStars: Table Size Detection

One of the shortcomings in SeeingStars to date has been that you need to manually tell it whether you are sitting on a 6-max table, a 9-max table, or a heads-up table. This is because my initial attempt to make this automatic wasn’t reliable.Today I tried a new approach for detecting the table size, and it seems to work reliably. My initial tests have passed 100%. Tomorrow I’ll try it with a much larger set of test data.

SeeingStars goes Fuzzy

A few days remain until I release SeeingStars: Real Time Odds for PokerStars on Mac OS XSign up here to be notified when we release AND get a 50% discount.I’ve now added a little bit of fuzzy logic to SeeingStars. SeeingStars (partly) works as follows when determining the rank of the cards (eg. Ace, King, Queen…) displayed:Grab screenshot of poker table window.Convert screenshot to a two-colour image.Extract a sub-image where the card rank is displayed.Convert the sub-image into a string of bits.Check that string of bits against a dictionary I prepared in the lab.However that process can be upset by the nature of automatic image manipulation. Occasionally SeeingStars can’t tell what the card rank is. But there is a solution: by adding some fuzziness to the process, I can get pretty close to 100% accuracy for detecting. Using a core Computer Science concept called the Levenshtein distance, SeeingStars can detect close matches. It makes me content to use and relearn concepts I learnt in…

SeeingStars: Where is it?

I aimed to release SeeingStars on November 9th. But it wasn’t ready. There is a product. It works, but not as well as I’d like. It has a website, a logo, an app icon. But the product itself needed a bit more work. Then I got distracted, by quick trips to Tunisia and Belgium, by a cold, and by an urgent problem with our flagship product Poker Copilot.But I’m working on SeeingStars again. It will be here very soon. Within the next few days I hope to have an “Alpha testing” version available.Stay tuned...