Tuesday, October 23, 2007

Brutal!

In my last live cash-game session, I saw this hand go down (suits aren't relevant, so are omitted):

3 players all-in before the flop. This was a fairly friendly table at the time, so even though it's a cash game, all three turn up their cards.

KK vs ATs vs 77

KK has a big smile as the big favorite. He basically has to dodge two 7s and four As.
Six outs, ~55% to win.

The flop comes with a 7 in the window:

769

So now the guy with the set of 7s is sitting pretty. He has to dodge two Ks and four 8s. ~75% to win.

Turn is an 8:

769 8

Now AT has a straight, and has to dodge a 7, 3 6s, 3 8s, 3 9s for the loss, and 2 Ts for the chop. ~70% to win.

River: a TEN. Everybody gets their money back.

I loved it, because every action of the dealer crushed a different player's hopes of winning the big pot.

Monday, October 22, 2007

Busy

Wow. Haven't had time to update lately, or even play much poker. I've been working on the website for my new a cappella group, the Eclectic Company.

It's a pretty simple site so far, but it's taken me some time to get back up to speed, since I haven't done any real web coding in almost ten years. So, I'm learning all about XHTML and CSS, as well as the Joomla CMS, so I can just worry about content once I get the template all ironed out.

I always enjoy a good intellectual challenge (which is why I love poker), but the load of the new technical learning in addition to learning all the new repertoire (and re-learning repertoire for my other group, since I changed voice parts), has made it a busy time.

OK, for my next post, back to your regularly scheduled poker.

Thursday, August 30, 2007

Statistics and the Game Show

I was thinking about Hoy's post about human intuition and statistics. Since my intuition rejected Hoy's answer as correct (even though I've heard about the problem before), I thought I'd do a little simulation to see what happens.

My first instinct was to run a bunch of trials, and do enough of them to get a statistically significant result. But then I realized the problem-space was small enough to do a full enumeration of the space. Basically, there are three variables, the box the prize is in (p), the box I pick (i), and the box wink picks (w). I will invalidate any point in the problem space that violates the assumptions (Wink won't pick my box to show me, and he won't pick the box the prize is in).

Here's the abbreviated code*:

for p in prize:
for i in i_pick:
for w in wink_picks:
evaluate(p,i,w,True)
Here are the results:

box the prize is in, box I picked, box wink showed
1 1 1 invalid: wink picked my box.
1 1 2 I win!
1 1 3 I win!
1 2 1 invalid: wink picked the winner.
1 2 2 invalid: wink picked my box.
1 2 3 I lose.
1 3 1 invalid: wink picked the winner.
1 3 2 I lose.
1 3 3 invalid: wink picked my box.
2 1 1 invalid: wink picked my box.
2 1 2 invalid: wink picked the winner.
2 1 3 I lose.
2 2 1 I win!
2 2 2 invalid: wink picked my box.
2 2 3 I win!
2 3 1 I lose.
2 3 2 invalid: wink picked the winner.
2 3 3 invalid: wink picked my box.
3 1 1 invalid: wink picked my box.
3 1 2 I lose.
3 1 3 invalid: wink picked the winner.
3 2 1 I lose.
3 2 2 invalid: wink picked my box.
3 2 3 invalid: wink picked the winner.
3 3 1 I win!
3 3 2 I win!
3 3 3 invalid: wink picked my box.
6 wins. 6 losses.
15 invalid. 12 valid. 27 total.
winning percentage: 0.5
losing percentage: 0.5
Huh. So the simulation agrees with our intuition that there's a 50/50 chance the prize is in either our box or the one that's left. Since Marilyn Vos Savant is sure the remaining box has a 2/3 chance of being the winner, maybe this is why she says folks programming the problem "fared a little less well."

So, I tried coding it per my original idea. Simulating the choice a number of times, and seeing what average happens. The code:

while total_trials < number_of_trials:
choices = list([1,2,3])
p = random.choice(choices)
i = random.choice(choices)
choices.remove(i) # make sure wink doesn't pick my box
if p in choices:
choices.remove(p) # make sure wink doesn't pick the box with the prize
w = random.choice(choices)
evaluate(p,i,w)
And the results:

by method 2, 1000 trials:
337 wins. 663 losses.
0 invalid. 1000 valid. 1000 total.
winning percentage: 0.337
losing percentage: 0.663
Even before running the simulation above, it became obvious to me that the answer was going to be 1/3 wins for keeping the same box. In the code, none of the manipulations involving the other boxes ever changed anything relating to the original box.

So, the question is, why does the full enumeration of the problem-space give us the wrong answer?
Let's look at the problem space again, removing the invalid trials:

box the prize is in, box I picked, box wink showed
1 1 2 I win!
1 1 3 I win!
1 2 3 I lose.
1 3 2 I lose.
2 1 3 I lose.
2 2 1 I win!
2 2 3 I win!
2 3 1 I lose.
3 1 2 I lose.
3 2 1 I lose.
3 3 1 I win!
3 3 2 I win!
I've colored the wins to show how they pair up. This is an artifact of there being 2 non-winning boxes for Wink to pick when I've picked the winning box. Since he'll only ever pick one of them, we can collapse these into just 3 winning trials versus the 6 losing trials, giving us the correct 1/3 chance of winning with "our" box.

It turns out the flaw with this method is thinking of it as a problem in 3-dimensional space. It turns out that Wink's choice is completely (or at least mostly) dependent on the combination of where the prize is, and which box we choose. So we change the code to:

def winks_choice(p,i):
choices = list([1,2,3])
choices.remove(i) # make sure wink doesn't pick my box
if p in choices:
choices.remove(p) # make sure wink doesn't pick the box with the prize
return random.choice(choices)

for p in prize:
for i in i_pick:
w = winks_choice(p,i)
evaluate(p,i,w,True)
Giving us the correct result:

box the prize is in, box I picked, box wink showed
1 1 2 I win!
1 2 3 I lose.
1 3 2 I lose.
2 1 3 I lose.
2 2 3 I win!
2 3 1 I lose.
3 1 2 I lose.
3 2 1 I lose.
3 3 2 I win!
3 wins. 6 losses.
0 invalid. 9 valid. 9 total.
winning percentage: 0.333333333333
losing percentage: 0.666666666667


Okay, okay, I believe you now. ;-)


* Here's the full code, if you want to mess with it. (After creating "winks_choice", I refactored method 2 to use it.) Save it to "wink.py", and then type "python wink.py" on almost any mac or unix box.


import random

#
# routines
#

def clear_counters():
global i_win , i_lose , total_valid , total_invalid , total_trials
i_win = 0
i_lose = 0
total_valid = 0
total_invalid = 0
total_trials = 0

def evaluate(p,i,w,print_it=False):
global i_win , i_lose , total_valid , total_invalid , total_trials
if print_it:
print p,i,w,
if w == i:
if print_it:
print "invalid: wink picked my box."
total_invalid += 1
total_trials += 1
return
if w == p:
if print_it:
print "invalid: wink picked the winner."
total_invalid += 1
total_trials += 1
return
if p == i:
if print_it:
print "I win!"
i_win += 1
else:
if print_it:
print "I lose."
i_lose += 1
total_valid += 1
total_trials += 1

def print_results():
print i_win, "wins.", i_lose, "losses."
print total_invalid, "invalid.", total_valid, "valid.", total_trials, "total."
print "winning percentage:", float(i_win) / total_valid
print "losing percentage:", float(i_lose) / total_valid

def winks_choice(p,i):
choices = list([1,2,3])
choices.remove(i)
if p in choices:
choices.remove(p)
return random.choice(choices)

#
# method 1: iteration over the full problem space
#

clear_counters()

prize = [1,2,3]
i_pick = [1,2,3]
wink_picks = [1,2,3]

print "box the prize is in, box I picked, box wink showed"
for p in prize:
for i in i_pick:
for w in wink_picks:
evaluate(p,i,w,True)

print_results()

#
# method 2: tabulate independent trials
#

number_of_trials = 1000
print "by method 2,", number_of_trials, "trials:"

clear_counters()

while total_trials < number_of_trials:
choices = list([1,2,3])
p = random.choice(choices)
i = random.choice(choices)
w = winks_choice(p,i)

evaluate(p,i,w)

print_results()

#
# method 3: iteration over the problem space in *2* dimensions!
#

clear_counters()

print "Method 3. 2-dimensional problem-space."
print "box the prize is in, box I picked, box wink showed"
for p in prize:
for i in i_pick:
w = winks_choice(p,i)
evaluate(p,i,w,True)

print_results()

Monday, August 20, 2007

Snowman Tatermitts

I'm not sure why, but ever since I first heard about Snowman Taterlegs, I've been enamored of the term. It's just a strange juxtaposition of words that I imagine rolls right off the tounge. (I haven't had a chance to use it in any of my live games yet.)

Thanks to the power of Tivo, I don't watch many commercials, but happened to have my head in email while half-watching something when this came on:

Peeling potatoes can take forever! Oh No! Not with a knife, that's dangerous! Now there's a better way! Introducing: Tater Mitts!


It's basically a pair of kitchen gloves with coarse-grit sandpaper built-in to the palms/fingers.

The commercial sucked me in to actually watching, and I had to rewind, because it made me laugh out loud. They had 4 demonstrations of the product "in use", and 3 of them either made the product look bad, or were obviously rigged.

1 - Potato ("in only 8 seconds!") - This potato has obviously been boiled to within an inch of its life. (The instructions apparently state that you must boil the potato first, but it never says so in the commercial. Looks like it works OK, with no obvious doctoring.

2 - Carrot ("works great on other vegetables, too!") - looks like it works OK, but the carrot sawdust is clogging up the sandpaper on the gloves somethin' fierce. Looks like they'd be a bitch to clean.

3 - Apple - This is the one that first got my attention, because they use "time lapse" footage to show the before and after. The after shot has a very clear circle around the stem which makes it completely obvious that the apple has been peeled using a knife.

4 - Sweet Potato ("you can even peel sweet potatoes in a flash, too!") - This is the one that made me laugh. You can see that they're dropping "peelings" out of the gloves as they wave them around the pre-peeled yam under a stream of water.


The spooky thing is, their number has Snowman Taterlegs right in there.
1-800-453-3300.

Call now!

Thursday, August 16, 2007

Over!

I hereby declare my losing streak to be over. My February and March were really bad (down 1k and 1.5k, respectively which is bad at my bankroll level), and I decided to stop playing online until I was winning again. I played 5 sessions in April and May for an average loss of $110. In June, I finally started at least breaking even in the cash games, though I was down 1.7k on the month, due to the WSOP and Binions tournament buyins.

Things finally turned around in July, where I had 7 winning sessions, and my only losing sessions were tournaments. In August, I've had 2 up sessions and 2 down sessions, but my average result is $260 in profit. In cash games, I'm now nearly back to even for the year.

I'm starting to feel like I'm ready to play online again, but I'm thinking of closing out my Full Tilt account, since I don't have rakeback. Chad's been extolling the virtues of rakeback in relation to his Sit-n-go challenge, and I'd like to find a place to play that offers that.

Thursday, August 9, 2007

Welcome to JoboPoko!

Since I'd like to become a more regular member of the poker blogger community, I've moved my poker posts over from Live Journal. I've back-dated them to their original dates, so they make chronological sense. (In case anybody's wondering how I've been "On Blogger Since August 2007", but have posts from August 2006.)

In addition to now having a poker-only (or at least poker-mostly) blog, I'm going to use this as incentive to update more often. Wish me luck! (Or better yet, leave a comment reminding me to post, if you haven't seen an update in a while.)

Saturday, June 9, 2007

I'm out

I felt pretty comfortable at my first table, and though I had a rough start, by the first break (2 hours in), I had chipped up to 4.5k from my 3k starting stack. Shortly before the break, who should walk in and sit two seats to my left, but Phil Hellmuth. I stole (according to him) his blinds a couple times, and I called an all-in bet from him with ATs (He was pretty short-stacked). He also had AT, and we chopped.

By the time that table broke (shortly before the 2nd break), I'd chipped up to 7.5k. Unfortunately, I was apparently in the seat-of-death at my new table. (The last 5 guys sitting at that seat had busted.) I stuck around for a while, but every time I raised, the guy two seats behind me went all-in (he had me covered), and I couldn't call (with hands like AJ, JT, 77). That set up the dynamic for the hand I busted on.

By this time, my M was down to about 5, so I was ready to play a hand for all my chips. I found AQ of clubs 3rd to act, and limped in, hoping the guy two seats behind would raise me, as usual. But he just called, and that let in the blinds for cheap. The flop was 378 with two clubs. The small blind bet 1/3 of the pot, and I figured that I had two overcards and the nut flush draw if he had a pair. I push all-in, he calls with a worse flush draw, and an inside straight draw. He pairs his jack on the turn, and there's no A,Q, or club to save me on the river, and I'm out.

I got greedy by just limping before the flop, and I paid for it. In retrospect, I'd rather have pushed all-in pre-flop, and won the blinds and antes with my AQ.

Oh well. It was definitely a fun experience, and I'll come back next year. Now I'm off to find a good cash game, and there are some other smaller tourneys I might play while I'm here.

I'm in

Table 200, seat 7, in case you want to stop by. ;-)

I think I had very good timing for the registration line, and only had to wait about 20 minutes. By the time I was done, there were enough people that the last one in line would probably wait 90 minutes. I pity the fool who waits until tomorrow morning to register.

OK, off to dream of quads, and get up in time to join some folks for brunch. 'night.

Thursday, June 7, 2007

WSOP or Bust!

...or more likely, WSOP and bust. ;-)

I've decided to play in event #15 ($1500 no-limit Hold'em). I'm leaving for Vegas after work tomorrow, and taking Monday off, in case I make the final table.

I didn't decide to play until it was too late to pre-register, so I may have to forgo sleep to stand in line when I get there. We'll see. I'll try to update at the end of each day.

Sunday, January 28, 2007

WPBT cash

Well, I made the final table and the money in my first Poker Blogger event, the World Poker Blogger Tour event #1.



I went on two nice streaks, one early-on, which put me in the chip lead for a while, where I got AA a couple times and KK a couple of times. Then, when we were down to 2 tables, I got another streak where short stacks were pushing into me, and I would call with a hand *just* good enough to beat them. 66 vs 55, AT vs A9, etc. I was 2nd in chips going into the final table. I lost a race in a blind vs blind situation, and was back down to average stack, then went card dead for a while. Aside from one exciting moment, I basically folded my way into 5th. My M was about 6 when Mean_G, the big stack at the table raised my blind. I had K9, and thought it was a position raise, and pushed. I was wrong, and he called with AT, and IGH 5th.

The exciting moment was one of two times I dropped the hammer in a bluff reraise. I very rarely bluff reraise in my regular game unless I really smell weakness (which I didn't in either case here), and let me tell you, it really gets the heart pumping to put 40% of your chips at risk with the worst hand!

Anyway, I had fun, and it's always nice to finish in the money. I hope I'll get to play in more of these, and get to know some of the folks better, since I already feel like I know many of them from their blogs.

Raveen took it down. Nice going!

Friday, January 19, 2007

STFU

So, I've been watching Poker After Dark, on NBC, and it's not bad. It has the flavor of High Stakes poker, but it's in a tournament format. They show most (all?) of the hands, and most of the time the interactions between the players are featured. Shana Hiatt does exit interviews, and is available throughout if a player feels like getting up to talk to her about what's going on.

All of that is very cool. It even seemed for a while like they were going to not have any commentary, and let the players' conversation and actions be the whole of the entertainment.

But, it turns out there's this annoying announcer, who not only makes informational statements (some of which are useful, but most of which are completely redundant with either the graphics or the obvious actions of the players), but also makes these snarky comments out of the blue, and pretends to be involved in conversations at the table, even though it's obvious he's adding his comments in a studio after-the-fact.)

Here are some examples:

Sheiky rakes in the chips, while Annie's in the middle of a story. The announcer drowns out the story I want to hear to share this pithy thought:
Ann: Shawn wins the pot

Annie: David Grey against Sam [Grizzle] with his crippled hand.
Ann: Sounds like a pay-per-view event.

Sheiky: Don't do that to Steve
Ann: Sheiky the peacemaker.

Gus: Alright, let's try something new [as he pushes all-in].
Ann: Yeah, how about someone calling a raise.

Annie: All-in
Ann: Annie's taking a page out of Gustav's book.

Gus Hansen: I hit my man right away.
Announcer: If Gus keeps hitting men, he may as well sign with Don King.

Gus shows AKs to the hole camera, and we hear the insightful:
Announcer: Another big hand for Gus.

Gus: I guess I could stack them a little bigger.
Ann: Ya think, Gussie?

[Doyle folds T2]
Ann: How do you not play your own hand, Doyle?!?

Mike Matusow: I'm not creative. I'm not here to be creative.
Ann: Oh come on, Mikey, you're a poker artiste.

[out of nowhere]
Ann: David still nursing the tail end of that drink.

David Grey: Wherefor are you Dolly?
Ann: Easy there, Shakespeare.

Ann: Carlos is rockin' the tower of power chip configuration...

[Moneymaker plays his first hand.]
Ann: Nice of you to join us, Moneymaker!

Ann: You think Chris Ferguson wears a suit to bed, like PJs?

Ann: [Johnny Chan] kind of looks like Superman, with that curl. Now we just have to get him a cape.

[After Chan makes a flush (and a straight) on the river]
Ann: Johnny makes a runner-runner straight, and Doyle's stack is now extremely short.


I think the show could be revolutionary, if they just drop any commentary (other than the lead-in for each segment after returning from commercial). If there's silence, so be it. I think the fan base knows how to tell what's going on in a hand without needing to be spoonfed information like:

3 players to the flop.
Daniel's betting with 9-high.
Gus wins the pot.
etc.


I've read other complaints about this, so I hope for next season NBC will either eliminate/replace him, or get him to tone it down.