Well, I'm back.
Hope you've all had a happy, safe, not-too-exhausting holiday season. Happy New Year! I've been MIA for three months, here on Coding the Wheel, and for that I apologize. I haven't been abducted by PokerStars or clobbered by goons from the 2+2 forum, contrary to what you may have read in the comments. In fact, I briefly tried to go to work for PokerStars, on a lark; but for some reason, I never got a response—go figure. I'll tell that story, and say a few words about the recent harassment letter PokerStars sent to Coding the Wheel readers, in the next installment.
I don't want to start the year on a negative note.
Speaking of PokerStars: today marks the first day of the 2009 PokerStars Supernova Elite program.
To earn the rank of a Supernova Elite VIP you must accumulate 1,000,000 VIP Player Points during the calendar year (January 1st through December 31st). Once you have earned the required VPPs you're a Supernova Elite through at least the end of January of the following year.
Not many people have the time or motivation to "go Supernova"...

...and it's too bad, as this particular promotion can be (I've said it before) life-changing. If you can find between six and twelve months of empty time this year, without losing your job, defaulting on your mortgage, and/or getting divorced by your spouse—and if you can hold your own at the poker table—what are you waiting for?
Go for it.
If you do, make sure to check out the Official 2009 Supernova Elite Pursuit thread on 2+2. The signal-to-noise ratio is abysmal, as always on 2+2, but there's still an awful lot of signal. By the end of the year, this thread will have grown to monstrous proportions. To see what I mean, take a look at last year's Official 2008 Supernova Elite Pursuit thread which went 890 pages, with some 13,344 individual comments.
For some, Supernova Elite is a true obsession, and I support that.
What amazes me is that we live in a world where any of this is possible. Sit down at your computer. Click certain locations on the screen. Key certain letters on the keyboard. Congratulations, you've just achieved PokerStars Supernova Elite status, written a best-selling novel, gotten a cushy telecommuting job, or built the next killer app. It's crazy. Keystrokes and button-clicks have transformative power all out of proportion to their muscle cost, and as the world grows more connected, that power increases.
Of course, you have to pick the right permutation of keys and clicks.
If you had enough time, you could mash the keyboard randomly, like an angry child, and eventually, you'd get lucky and end up with one of Shakespeare's plays, or who knows, perhaps the authentic story of JFK's assassination. This, of course, is the million monkeys scenario. Another, more structured, way to go about it, would be to calculate the value of Pi to some arbitrarily huge number of digits and convert to binary, although in so doing you'd be guilty of child pornography, violations of national security, and death threats against every politician in the world.
Jorge Luis Borges gives the classic exposition of the idea in his famous short story, The Library of Babel (also available in this eye-straining online version):
He also alleged a fact which travelers have confirmed: In the vast Library there are no two identical books. From these two incontrovertible premises he deduced that the Library is total and that its shelves register all the possible combinations of the twenty-odd orthographical symbols (a number which, though extremely vast, is not infinite): Everything: the minutely detailed history of the future, the archangels' autobiographies, the faithful catalogues of the Library, thousands and thousands of false catalogues, the demonstration of the fallacy of those catalogues, the demonstration of the fallacy of the true catalogue, the Gnostic gospel of Basilides, the commentary on that gospel, the commentary on the commentary on that gospel, the true story of your death, the translation of every book in all languages, the interpolations of every book in all books.
The lesson I take from this, on New Year's Day, is that Borges's Library, the value of Pi, and the cubicle farm with a trillion monkeys all contain the exact, second-by-second account of the next year of your life, in all the languages that have been or will ever be spoken. That doesn't mean the next year is set in stone; contained within the value of Pi is the history of every possible and every impossible permutation of events that could befall you in a minute, a year, or a century.
Choose one.
And that, ladies and gents, is the only New Year's Resolution that really matters.
49 comment(s)
Hurrah, welcome back!
Terry Smith on Thursday, January 01, 2009Need....
Stealth....
Must talk...
Stealth...
Anonymous on Thursday, January 01, 2009JD's back. Best news of the year thus far.
Anonymous on Thursday, January 01, 2009Welcome back. Looking forward to digest your future posts. Even with no interest in poker bots they contain a wealth of difficult to assemble technical information. Thank you for writing this up and making it available to us all.
Steffen on Thursday, January 01, 2009I was making my daily rounds and decided to swing by CTW to see if you'd come out of hibernation for the new year. Looks like I guessed right.
Anybody know what the original source of the link (DONT CALCULATE THE VALUE OF PI) is? Is the version you linked to (from alt.whatever on Google) the original?
Ed K. on Thursday, January 01, 2009So cool!! Welcome back!
D on Thursday, January 01, 2009Awesome quote:
"Keystrokes and button-clicks have transformative power all out of proportion to their muscle cost, and as the world grows more connected, that power increases."
Great artcile mate. This is a great way to look at the power of the internet and computers.
Anonymous on Thursday, January 01, 2009I got to Gold Star after 9 tabling NL50 on PokerStars for a month and almost hit Platinum. I was playing about 7 hours a day on average... It's insane! I do wish to be super nova elite at some point! The rakeback is immense. Thanks for another great article
Poker Forums on Thursday, January 01, 2009Hooray you are back!
Ed M on Friday, January 02, 2009Wellcome back James!!!
Nice to read you again.
somatxigun on Friday, January 02, 2009Lol, James, you have to setup registration for your forums. The guy trolling with God above isn't me. Let's see if he at least did it from anonymous IP :)
Indiana on Friday, January 02, 2009Yay ! I missed your postings !
Az on Friday, January 02, 2009Great, so you'll be back to bad-mouth and hurt the online poker cause with your straw-man arguments. Yippee. Like we don't have enough problems to deal with.
Anonymous on Friday, January 02, 2009Huzaa; Welcome back and I look forward to more awesome posts this year!
Anonymous on Friday, January 02, 2009At last...
Flava404 on Friday, January 02, 2009Cool. I was a little worried the poker mafia got you :)
Aredhel on Friday, January 02, 2009For the guy who asked for stealth a class to stealth.... Use it like this for hiding the window of your bot from prying eyes..
private void button1_Click(object sender, EventArgs e) { Stealth window = new Stealth(this.Text, this.Handle, ""); window.Visible = false; } Create a hotkey to bring the window / process back to the windows life And don't forget that .NET makes every static thread safe (almost ;) )
class Stealth { /// <summary> /// Win32 API Imports /// </summary> [DllImport("user32.dll")] private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); [DllImport("user32.dll")] private static extern bool SetForegroundWindow(IntPtr hWnd); [DllImport("user32.dll")] private static extern bool IsIconic(IntPtr hWnd); [DllImport("user32.dll")] private static extern bool IsZoomed(IntPtr hWnd); [DllImport("user32.dll")] private static extern IntPtr GetForegroundWindow(); [DllImport("user32.dll")] private static extern IntPtr GetWindowThreadProcessId(IntPtr hWnd, IntPtr ProcessId); [DllImport("user32.dll")] private static extern IntPtr AttachThreadInput(IntPtr idAttach, IntPtr idAttachTo, int fAttach);
CodingInCSharp on Saturday, January 03, 2009thank you CodingInCSharp!! i'm working too in c# and I'm using EasyHook to inject my dll into pokerstars account. Do you know how to get text from the chat window? the old method (ovveriding the DrawText winAPI) is not working anymore cause they have created a new window to draw the text in the chatbox.
Right now i'm usin WinaApiOvveride ( http://jacquelin.potier.free.fr/winapioverride32/ ) to see which WinApi calls are used but with no real success... does anybody can point me to the right direction? thank you in advance.
myro on Saturday, January 03, 2009C# the wave of the future.....
Download the sourcecode to SNGEGT it's a working botlike program written in c#. It has screenscraping and ocr for pokerstars and fulltilt. Works like a charm and i used it in conjunction with the stealth class to write a new (real)bot. Don't use dll hooking if you want your bot to do stealth. To inject and use a hook is something we used to do in the old days when writing a virus... It's easy to detect for the pokerclient. Screenscraping however is not easy to detect. Because pokerroomsoftware is not allowed to take a picture or look at your system (privacy laws etc.. http://www.privacylaws.com) However they may look and test their own software. So if you wanna stay undetected scrape the screen, hide and don't stack 12 pokerrooms on each other. (Yes people, that's where the most of the bots get caught. No human interface can handle 12 turbo rooms at a time. Stay with 3 per bot per account and you'll almost never get caught. at least i didn't)
The url for source SNGEGT http://www.sngegt.com/index.php?action=Downloads
By the way, you don't need to drive a stick to code a working bot. c# and .NET are fast enough. So write as much as you can in managed code because memory leaks, buffer and stack errors are more prone when you code in c++. And if you realy want speed. Use ASM :)
CodingInCSharp on Saturday, January 03, 2009good
alex on Saturday, January 03, 2009thank you very much CodingInCSharp... i have downloaded sngegt and tomorrow i'll give it a try....
you said: "To inject and use a hook is something we used to do in the old days when writing a virus... It's easy to detect for the pokerclient."
can you please explain me how it can be detected? how a program can see if a dll is injected into a program's process?
thanks in advance!
myro on Saturday, January 03, 2009Anyone using Wine to run the PS client under Linux?
anonimaguy on Sunday, January 04, 20091 st: It's easy to detect, because you can send an extra indentifier with the text, not visible for de hook dll. At the other side, you test if that indentifier has arrived. If not, there must be a hook reroute. (this is when changing text) second : You can test who is accessing the dll, hooks need a point of entry. (works allways)
Allmost every virus scanner checks on hooks / injection, so how do you think they get those virussus? If it was impossible to check on injection or hooks, then you could write a virus that was undetectable. We know that is not true. So injection / hooking is not save...
Screenscraping however is undetectable, you make a copy of the screen and scrape it in memory. Just look at SNGEGT, it makes a copy of the screen (and saves it for debugging, but i cut that out) in own memory. It's done in OwnImage.cs. Just take a look and see how it's done. Then it uses ocr to trace the pixels in an small stack / bet window. it's fast and save to do.
CodingInCSharp on Sunday, January 04, 2009Glad to see you're back JD.
You never explained about the 'going to work for PokerStars'.
Would it even be legal?
JeremyX on Sunday, January 04, 2009What we need is something like Murata Boy ( http://www.murataboy.com/en ). Place one of these wonders in front of the computer and have it to operate the keyboard and mouse, and let's see PokerStars detect this baby!
BotterWannabe on Monday, January 05, 2009thx codingInCSharp for your reply! I have been already caught by pokerstars developing my bot. it uses to work by injecting a dll into pokerstars process. Looks like those guys watches if your Visual Studio IDE is opened too ;) Thx to your suggestions, i'm now developing an ocr based bot and let's see what happens... OpenHoldem ( http://pokerai.org/openholdem.html ) is also doing a great job in screenscraping thw pokerstars window, but as you told, let's see where i can get just with c# and with SNGEGT even if it doesn't give me all i need... like the cards on the table...
myro on Tuesday, January 06, 2009oleeeee, congrats all!!!
Anonymous on Friday, January 09, 2009Myro i'm rewriting sngegt at this moment and i only focus on fulltilt, but i get everything that's visible. From stacks, bets and cards. The ocr is very fast and i made some adjustments by not saving the image so there is only a copy in memory. It's very fast and i get enough images per second (i have to slow it down manualy, otherwise it will hijack the processor).
The hand ev odds etc... calculation in sngegt is only done pre flop, but i've changed it to do it with every card. But i use a separate thread for the calculations. Only if the cards have changed from the new image compared to the old image i start that thread for that table again to do the calc. So low overhead on the heavy calculations.
If you focus on just one pokerroom (pokerstars in your case) in sngegt and follow the sourcecode flow with breakpoints then everything should become obvious.
CodingInCSharp on Friday, January 09, 2009hi CodingInCSharp! could u please contact me at nemesisattax@hushmail.com?
nemesisattax on Saturday, January 17, 2009Good new year for everybody!
Poker on Friday, February 13, 2009Online sale for mens Nike Air Max Limited shoes, Cheap Nike Air Max Limited shoes, Top quality and low price. Buy Nike Air Max Shoes Now!
Nike Air Max Limited on Thursday, July 08, 2010nice article. keep post like this...
Fendi replica watches on Tuesday, July 20, 2010I loved this post so much. This was great. Keep it up!
Tudor replica watches on Saturday, July 24, 2010PerformingGraham for sale that will create a one-wayswiss watches backlink to your website whichMaurice Lacroix watches is a good point to have. It is Patek Philippe watchesa time-consuming Tag Heuer for saleprocess even though it produces good outcomes U-boat for saleand works. You can also swiss watchespost comments on blogs alongMaurice Lacroix watches together with your link, but make sureGraham watches these blogs are do-follow, which dolce & gabbana handbagsindicates the link that youreplica coach handbags simply post will probably be replica handbagscounted by the search engines jimmy choo replicaas a backlink.There are many thingsversace replica handbags that contribute to online businessjuicy couture replica failure, and the lack of good action thomas wyldeis surely one of the deadliest business-killersdolce gabbana handbags on the net. Take action like by no means chloe handbags replicaprior to, and don’t get struck by analysis paralysisburberry replica. Your achievement lies in your rapid actionchanel replica and how well you apply numerous strategies.
replica watches on Saturday, July 24, 2010nike air jordan 2010 nike air jordan 5 nike air jordan 3 nike air jordan 11 cheap nike air jordan 2 nike air jordan 1 nike air jordan shoes discount nike air jordan shoes nike air jordan 6 wholesale nike air jordan 1 discount nike air jordan 6 nike air jordan 7 nike air jordan 8 top quality nike air jordan shoes 23 nike air jordan 21 nike air jordan 22 nike air jordan 6 rings cheap nike air jordan 22 nike air lebron james shoes nike air lebron james shoes nike air jordan 2010 nike air joredan lebron james nike air jordan 2009 discount nike air jordan 2009 nike lebron james wholesale nike air jordan 2010 cheap nike air jordan 2009 discount nike air jordan 19 cheap nike air jordan 3 discount nike air jordan 18 brand nike air jordan 12 wholesale nike air jordan 2 nike air jordan 13 nike air jordan 14 nike air jordan 6 rings discount jordan shoes7 discount jordan shoes1 jordan shoes2010 jordan shoes 6 rings cheap jordan shoes2 discountjordan shoes3 discount jordan shoes4 jordan shoes uk23 jordan shoes classic bw22 cheap jordan shoes 21 ltd discount jordan shoes20 discountjordan shoes19 jordan shoes 18 uk nike air jordan shoes 17 cheap nike air jordan shoes 16 discount air jordan shoes 15 discount air jordan shoes 14 nike air jordan shoes 3 uk nike air jordan shoes 13 cheap nike air jordan shoes 11 discount air jordan shoes 6 discount jordan shoes 10 nike air jordan shoes 8 nike air jordan shoes 7 cheap louis vuitton bags cheap kobe bryant shoes cheap lebron james shoes .
cheapjordan on Saturday, July 24, 2010I will keep visiting this blog very often. Blu ray to iPad /
ipad converter on Sunday, July 25, 2010The variety links of london items bearing depends on the occasion. You are plain, but you are elegant. links of London sweetie braceletIf presence a groove, especially nightfall outfit, you are allowed to be very gentle in truth. What you should do is to links of london charms choose some delicate sweetie bracelets with your subtle sensation of fashion on Christmas Day, Easter, Halloween and Valentines Day. Discovering links of London friendship bracelet on the net is an excellent choice for your needs and can also assure you may benefit from the best insurance coverage at the best price tag. The links of London braceletis one kind of those brands that basically level the start a time honored design and style and design untreated. links of london necklace and links of london earringswill be the consultant of level and higher personal taste; so many people contain the hopes for donning links of London sweetie bracelets. Nevertheless, in the large price, so most of us cannot pay the big money. links of London friendship bracelets charm bracelets links of london sale charm bracelet silver friendship bracelets links of london charm bracelet
links of london on Monday, July 26, 2010ed hardy, cheap ed hardy, ed hardy clothing, ed hardy outlet, ed hardy jeans, ed hardy bags, ed hardy swimwear, ed hardy shirts, ed hardy tee, ed hardy caps, ed hardy purse, ed hardy board shorts, ed hardy shoes, ed hardy for men, ed hardy for women, ed hardy jeans for women.
cheap ed hardy on Tuesday, July 27, 2010ed hardy, cheap ed hardy, ed hardy clothing, ed hardy outlet, ed hardy jeans, ed hardy bags, ed hardy swimwear, ed hardy shirts, ed hardy tee, ed hardy caps, ed hardy purse, ed hardy board shorts, ed hardy shoes, ed hardy for men, ed hardy for women, ed hardy jeans for women.
cheap ed hardy on Tuesday, July 27, 2010http://www.coachoutletmalls.com/ Coach outlet http://www.coachoutletmalls.com/ coach bags http://www.guccihandbagsoutlet.com/ gucci outlet http://www.coachoutletmalls.com/coach-handbags-new-coach-handbags-c-6573.html New Coach Handbags http://www.coachoutletmalls.com/coach-handbags-coach-baby-bags-c-6572.html Coach Baby Bags http://www.coachoutletmalls.com/coach-handbags-coach-claire-bags-c-65114.html Coach Claire Bags http://www.coachoutletmalls.com/coach-handbags-coach-leather-handags-c-65125.html Coach Leather Handags http://www.coachoutletmalls.com/coach-handbags-coach-patchwork-purse-c-65112.html Coach Patchwork Purse http://www.coachoutletmalls.com/coach-handbags-coach-ergo-bags-c-65115.html Coach Ergo Bags http://www.guccihandbagsoutlet.com/gucci-barrette-c-8.html Gucci Barrette http://www.guccihandbagsoutlet.com/gucci-earrings-c-12.html Gucci Earrings http://www.guccihandbagsoutlet.com/gucci-handbags-gucci-backpacks-c-1023.html Gucci Backpacks http://www.guccihandbagsoutlet.com/gucci-handbags-gucci-duffels-c-1027.html Gucci Duffels http://www.guccihandbagsoutlet.com/gucci-handbags-gucci-jolicoeur-c-1029.html Gucci Jolicoeur http://www.guccihandbagsoutlet.com/gucci-handbags-gucci-shoulder-bags-c-1031.html Gucci Shoulder Bags http://www.guccihandbagsoutlet.com/gucci-hats-c-5.html Gucci Hats
CoachHeels on Wednesday, July 28, 2010Coach outlet coach bags gucci outlet Coach High Heels Coach Heels coach sunglasses New Coach Handbags Coach Baby Bags Coach Claire Bags Coach Leather Handags Coach Patchwork Purse Gucci Leather Wallets Gucci Sunglasses Gucci Shoes Gucci Leather Shoes Gucci Men Slippers Gucci Sandals
CoachHeels on Wednesday, July 28, 2010Gucci Hats
Just how do you tell a best Louis vuitton online store from the real thing? ... getting the perfect back-to-school outfit, we've got you covered with the best tips.
Best Replicas Wholesaler, Wholesale high quality and lowest price replica watches, ... Cartier Lighters Gold Series · Louis vuitton wallets auto 3 fold umbrella
sale4louisvuitton.com specializes in replica Louis vuitton handbags for over 8 years. Our mission is to provide the highest quality replica Louis vuitton.com with
louisvuitton4 on Thursday, July 29, 2010Wholesale NFL Jerseys
Cheap NFL Jerseys
NFL Jerseys
NFL Football Jerseys
Women NFL Jerseys
Kid NFL Jerseys
Super Bowl Jerseys
Super Bowl NFL Jerseys
Throwback Jerseys
Throwback NFL Jerseys
Cheap Throwback Jerseys
Wholesale Throwback Jerseys
Cheap Super Bowl Jerseys
Wholesale Super Bowl Jerseys
youth nfl jerseys wholesale
youth nfl jerseys cheap
nfl youth jerseys
Baltimore Ravens Jerseys
Chicago Bears Jerseys
Cincinnati Bengals Jerseys
Denver Broncos Jerseys
Dallas Cowboys Jerseys
Green Bay Packers Jerseys
Indianapolis Colts Jerseys
Minnesota Vikings Jerseys
New England Patriots Jerseys
New Orleans Saints Jerseys
New York Jets Jerseys
Arizona Cardinals Jerseys
Buffalo Bills Jerseys
Atlanta Falcons Jerseys
Carolina Panthers Jerseys
Cleveland Browns Jerseys
Houston Texans Jerseys
Detroit Lions Jerseys
Jacksonville Jaguars Jerseys
Kansas City Chiefs Jerseys
Miami Dolphins Jerseys
New York Giants Jerseys
Philadelphia Eagles Jerseys
San Francisco 49ers Jerseys
Oakland Raiders Jerseys
Seattle Seahawks Jerseys
Pittsburgh Steelers Jerseys
St Louis Rams Jerseys
San Diego Chargers Jerseys
Tampa Bay Buccaneers Jerseys
Tennessee Titans Jerseys
Washington Redskins Jerseys
Ray Lewis Jerseys
Ed Reed Jerseys
Joe Flacco Jerseys
Terrell Suggs Jerseys
Dick Butkus Jerseys
Greg Olsen Jerseys
Matt Forte Jerseys
Devin Hester Jerseys
Walter Payton Jerseys
Brian Urlacher Jerseys
Lance Briggs Jerseys
Jay Cutler Jerseys
Carson Palmer Jerseys
Rey Maualuga Jerseys
Chad Johnson Jerseys
Demarcus Ware Jerseys
Jason Witten Jerseys
Terrell Owens Jerseys
Felix Jones Jerseys
Marion Barber Navy Jerseys
Marion Barber Jerseys
Emmitt Smith Jerseys
Miles Austin Jerseys
Roger Staubach Jerseys
Troy Aikman Jerseys
Tony Romo Jerseys
Eddie Royal Jerseys
Brandon Marshall Jerseys
Aaron Rodgers Jerseys
A.J. Hawk Jerseys
Donald Driver Jerseys
Greg Jennings Jerseys
Peyton Manning Jerseys
Dallas Clark Jerseys
Robert Mathis Jerseys
Marvin Harrison Jerseys
Drew Brees Jerseys
Marques Colston Jerseys
Pierre Thomas Jerseys
Reggie Bush Jerseys
Jeremy Shockey Jerseys
Tarvaris Jackson Jerseys
Adrian Peterson Jerseys
Jared Allen Jerseys
Mark Sanchez Jerseys
Thomas Jones Jerseys
Leon Washington Jerseys
Brett Favre Jerseys
buynflshop on Thursday, July 29, 2010Louis Vuitton is no more a luxury if you find www.sale4louisvuitton.com, the best online source of top quality mirror image
wallets.html" tItlE="Louis Vuitton wallets">Louis Vuitton wallets, ...
Everybody who is interested in Louis Vuitton Belt, please come here ,it is surprised Louis Vuitton outlet you a huge
selecting of top quality AAA replica Watches .
Welcome to our Buy Louis Vuitton Exhibition, we have all the best and newest styles of Louis
Vuitton Handbags that you want to look at ...
louis vuitton on Thursday, July 29, 2010essay essay writing essay writing service essay writing service uk
jane on Friday, July 30, 2010Pool Temperature Madera Jobs Madera Pest Control Madera Dentist Merced Dentist Visalia Dentist Modesto Dentist Fresno Limousine Fresno Granite briefcases leather leather briefcases prospect solution | prospect solutions | prospectsolution | prospectsolutions | prospectsolution.com prospect solution | prospect solutions | prospectsolution | prospectsolutions | prospectsolution.com prospect solution | prospect solutions | prospectsolution | prospectsolutions | prospectsolution.com
carmi on Friday, July 30, 2010www.thesuitshoes.com can provide you the best MBT shoes to choice.
mbt shoes on Friday, July 30, 2010good news
hermes birkin on Friday, July 30, 2010thanks for your kindly sharing
abercrombie and fitch on Friday, July 30, 2010