Monday, November 30, 2009

The Google Phone

So, apparently Google is going to come out with their own phone - personally I've seen this coming for a while now, and I've got some ideas as to how it would work.
Actually, I can't say I really predicted Google coming out with their own device - I figured that they would only come out with their own phone if they couldn't get partners to agree to supporting their vision on the Android platform; since Google's building their own device, I'm guessing they couldn't.
So, how will it work? From a user perspective, here's how I think it'll go.
I want to talk to my friend, John Doe, and I'll just dial "John Doe" on my phone. The GPhone will automatically see if he's on Google Chat / Voice, and if so directly connect me to him that way - entirely via IP - if I'm on a wifi point then it'll use that, otherwise it'll use my data carrier. If John isn't on some kind of IP-enabled system, then it'll dial him by regular old phone, but of course doing it in a Skype / Calling-Card kind of way, using VOIP to get to the closest POTS switch and then dialing from there. If I want to dial a phone number directly without going through this username mumbo-jumbo, then I'll just dial it like a normal phone - the difference is that I'll be paying for that, either as a direct payment or by using up minutes in my plan. My guess is that Google will make calls to a persons Google ID free of charge, even if they're really doing some Google Voice mumbo-jumbo behind the scenes.
From a receiving standpoint, the phone will do the same thing - I'll have a Google Voice phone number, which will be tied into my Google ID - when someone calls my number or my ID, that'll get piped to my phone. I don't know if Google will charge for minutes when someone calls my number instead of my ID, but I suspect they might in order to further persuade folks to keep it all within the Google IP universe.
This phone's going to mark yet another change in the way we view communications, one that I think we're ready for. Not that long ago, we had to remember (or write down) people's phone numbers. Once cell phones came along, we slowly adjusted to not needing to remember numbers - I don't know about everyone else, but I haven't memorized a phone number in quite a few years (with the exception of my own or my wife's, and that's just so I can give it to people quickly). Over time, the association of numbers to people has even started to fade; I mean, if I think about it, I know that a person's entry in my phone is tied to a number, but I don't actually _think_ about it - if I send an SMS, I just send it to that person. I think part of Google's vision is to capitalize on this thought trend, and get people to stop caring about phone numbers entirely. If you get a person's phone number, you can call their phone; get their Google ID and you can IM (GTalk), send them email (GMail), see their public calendar (GCal), see where they physically are (Latitude), and, or course, call them on the phone - why would you ever bother to get a phone number again?
The only think that I wonder is where Google will find a carrier who is willing to support this device - after all, voice calls are the bread-and-butter of mobile telecoms, and SMS is the icing on the cake - the Google phone would destroy all of that. In order for this to work, Google needs to partner with a carrier that's willing to give folks a pure data plan that's going to have a _lot_ of bytes shoved through it, for a price that more than competes with a traditional plan - what carrier in the U.S. is going to willingly sign up for that? I'm guessing not Verizon, or else this would already be standard on the Droid (OK, maybe not "standard", but the phone would at least have some apps to replicate the functionality I'm talking about). Or, maybe Google has some plan to shift most of the data burden to something else that they control? Only time will tell, but expect we're going to find out RSN.

Friday, November 20, 2009

yay new meme!

I don't know why this didn't become an Internet pastime sooner. Start with the self portrait of 18th-Centure painter Joseph Ducreux:



Man that's a pimpin' pose? Why not slap some modern pimpin' lyrics on top, such as "I got 99 problems but a bitch ain't one". Or, even better:



Loving it! Check here for the whole shebang.
And, of course, some folks just have to cross the streams, thus creating a delightful meme mashup:

Dumbing down my poker

I've been on a very bad run of poker lately. It's been impossible to get a read on anybody. Every time I get some playable cards, I encounter raises and re-raises and re-re-raises. Every time I have a monster, everyone folks to my modest raise. My bluffs fail: I go through a lot of trouble to set up a tight image, but then everyone calls my raises, no matter how infrequent they are. Every bet / semi-bluff / bluff I make gets called or raised, despite my telling a beautiful, well-crafted story about exactly what I have. Nobody else's bets make sense; they're folding good hands and pushing all-in with nothing. Add to this a general card-deadness and lack of hitting draws, and you have the recipe for a very bad losing streak.
After about a month of failing, I read this post, which gave me a moment of clarity: I'm thinking too deeply. I'm trying to represent a particular hand or image to folks who aren't even paying attention. When I make that check-call with two hearts on the board, then bet big after the third heart comes in, folks aren't paying attention. Conversely, when I over-bet the pot on a board with two to a flush, folks are calling it with flush draws. Basically, I'm giving everyone too much credit. I mean, in a sense, I knew this already, but it hadn't really registered. So, now I'm back to basics: tight play, sit around and watch the other folks until I get a really good sense of what level they're thinking on. The only problem with this is that the donkeys' money tends to go to other folks who are willing to make questionable calls earlier on in the game. Since making this adjustment, things are going much better. Oddly enough, I now seem to also be getting better cards in better positions - or, maybe now I'm just calling at the right time, after taking the time to carefully analyze how my opponents are playing. At any rate, I'm enjoying it again, and that's what's important. Seriously considering heading down to Salzburg or up to the Spielbanken casino one of these weekends for a session.

The bank / tax debacle

The problem with not writing for a long time is that after awhile so many things build up that you have no idea where to start. There's life developments, job developments, tech developments, poker developments. I guess I may as well start with the life developments, then see what else happens.
So, let's start with my latest FML moment. A bit of backstory:
After I transferred to Munich, someone forgot to mention to payroll that I was no longer working in the U.S. As a result, I was getting paid in both the U.S. and in Germany. I figured this out pretty quickly and did the appropriate thing: I notified H.R. I pestered H.R. after each U.S. paycheck until they told me (nicely): it's being dealt with, don't worry, now piss off. A month after that, I told my boss, who really set off the alarms and fixed the issue.
Since I'm a responsible person, I figured that my employer would eventually figure out the mistake and ask for the money back. The money had been going into a bank account in California, which had remained our principal bank account even after moving to New York, and had been used to pay all our bills / mortgage / etc in the U.S. After moving to Germany, the bank account never got used, so I kept the money in it (along with some savings that was there before the debacle started), untouched, waiting for my employer to ask for it back. See how responsible I am? I didn't get any indication from them, but then again it's a very large company, and I assumed - no, I KNEW - that someone, eventually, would notice, and I wanted to be able to say I did the right thing and even tell them "just take it right back from the same bank account". Flash forward to 6 months later...
Right before taking our vacation to the U.S., we (Clau and I) realized that there was a potential problem with our ATM cards for our bank in New York. As a backup procedure, I grabbed the ATM card for the California bank and went online to transfer some money from the savings account to the checking account (again, to avoid touching the mistaken payment money). To my horror, I discovered that both the checking and savings accounts were empty. Heart racing, I called up the CA bank and asked what had happened. After quite a few phone transfers, it was determined that the great state of California had seized ALL my money for reasons unknown.
Some phone calls later to the CA FTB (franchise tax board), I was told that I had not filed a CA tax return for 2005, which was the year we sold our house in CA, after a year of renting it out and deciding it wasn't worth it. Apparently, if you sell a house in CA, you are required to file a CA tax return for that year, regardless of your state of residence for the year. Ironically, Clau and I filed our taxes with H&R block that year for that EXACT reason: we didn't know what we were required / supposed to do, and we wanted to make sure there were no screwups.
(Side note: H&R block are a bunch of idiots, set up for people who are too stupid / lazy to fill out a 1040. Don't give them anything more complicated than that or they WILL screw it up. They supposedly offer a warantee that will reimburse you if you get audited and found wanting; I'd be curious to see if that warantee has EVER been successfully used. Also, their "rapid refund" service is just a patently evil scheme designed to further screw folks in need to the wall. In retrospect, I should have just fronted the cash and time and gone to a real accountant. Lesson learned.)
Getting back to the story, apparently someone in cash-strapped California had noticed the house sale from 2005 and decided that CA was entitled to taxes on the SALE PRICE of the house, which of course added up to a boatload of money. So, they took all the money from my bank account (for which the bank charged ME $100, but they were at least kind enough to subtract that from the bank accounts before giving the remainder to the CA FTB).
The folks at the CA FTB were surprisingly nice, and cheerfully told me that all I had to do was file a retroactive tax return for 2005, and they would happily send me a reimbursement to my address (in Germany!) after receiving my return. Needless to say, I filed the return post-haste and sent it certified receipt mail from CA while I was there.
What the CA FTB failed to mention is that they take their sweet time with retroactive returns; I've called once every two weeks and each time the response is "we haven't even opened it yet. Check back in a month." Somehow, I have a feeling that if there had been a check enclosed in the return, they might have gotten to it sooner.
I really don't like this, of course, but then again, the money was just sitting there waiting for my employer to eventually ask for it, so in this case I'll survive. Of course, imagine if that wasn't the case? What if that were still my main bank account, as it was when Clau and I lived in New York? We would be all kinds of screwed - Clau's salary wasn't enough to cover all the bills - we wouldn't have been able to make our mortgage payment (ironically to the same bank that couldn't hand our money to the FTP fast enough). All our family and friends would be receiving candy bars for Christmas gifts. Seriously - how can the CA FTB do that and get away with it? Particularly when everyone agrees that I ultimately should be receiving the money back?
So, that was bad enough: here comes the kicker. A week or so ago I get an email from one of our neighbors in our old apartment building in NY, saying that a FedEx package had come for me. Turns out that my employer had, after all, figured out quite a while ago that they had been paying me twice, and had been sending letters to my OLD address (despite my having updated my address in all applicable areas in my company) asking for the money back. The FedEx envelope contained a "final warning before collections" letter. And now, of course, the money is not there. F.M.L.
For those who might be concerned, it's all gonna work out OK. My company's payroll dept has been really nice about the whole thing, especially after confirming that they had, in fact, been sending the letters to the wrong address. I was also quick to point out that, had they sent the original notices to the correct address, or via email, or given me a phone call (I still have the same extension), they would have received the money. Now, they just have to wait. It has, however, cost me a lot of time, which fortunately I have an abundance of lately. More on that in subsequent posts.

Monday, October 19, 2009

CPAN Module

You may recall my earlier post complaining that Amazon has not created a Perl module to sign AWS REST queries, so I ended up writing my own. It was a good exercise for many reasons; writing your own module gives you a better overall understanding of how the whole process works, and of course helps much later on if you need to debug something. Also, I'm ashamed to say this, but I was never a big fan of OO programming before - generally if I wrote a module, it was going to export functions, because I was just used to my way of thinking (just write functions, export them, and use them with arguments when required). Since I'm not a trained developer, I saw no reason to force a paradigm shift upon myself. Writing a module, of course, forced me re-write my AWS code in an OO way, and now I see the light, or at least I see how for many things that's a better way to go.
Anyway, I wrote this thing a couple of months ago, and I figured it was only a matter of time until Amazon released an official mod to sign requests, but they never did. When I was in NY, Matt encouraged me to submit it to CPAN - if nothing else, it's a resume-builder, plus I'm so dependent on CPAN for everything, it would be nice to give something back. So, I cleaned it up, added a method to create SOAP signatures (since I figured that at least some people would want that), and submitted it to CPAN. Actually getting that module into CPAN, however, was a lot of work: besides creating an account, I had to submit an official request to have the module added, then I had to make sure it was stable and portable, plus I had to write it the "right" way and have it vetted by the CPAN testers. I had no idea it was so much work! But, at the end of the day, I got it in, and until Amazon decides to write their own, I guess I'm the official owner of the Net::Amazon::AWSSign mod. W00t!

Updates

First things first - the vacation was awesome, albeit brief. Clau and I spent as much time as we could enjoying New York, I went to California and Nevada and Clau went to Canada to visit Tatiz. Got to see Adrian, Dottie, and Alistair in Berkeley, then Ted and I went to Reno for two debaucherous days - I had a really, really bad day at the poker table, and although a little voice in my head kept saying "Just leave the table, already" I couldn't really let it go, since I only had two days there. So, not a good gambling time, but nonetheless we still had a great time. After that, went back to Oakland, spent a couple of days seeing Dad, Ania, Neil, and Cora, then back to NYC. Sam had a b-day party with a "white" theme - white clothes, white food, white sangria, white russians, white-themed music. Overall I'd say it was a tremendous success, and also an opportunity to see all the lawyers and other awesome folks that Sam and Matt are friends with. After that, saw our old neighbors in Chelsea and wandered around, then on Monday we flew back. Like I said, far too short, but very sweet. Matt and Sam were wonderful hosts, and hopefully it will be less than another year before we see them again.
Since we got back, I've been having some serious jet lag - can't seem to get my body back to Germany time. I haven't been able to get to sleep until 3am most nights, and waking up at 8 is a bit rough. Slept in till noon on Saturday before getting up to run errands, which in retrospect was probably a good thing, since we went out to Bootie Munich that night. We had a fantastic time, but I have to say the DJs and mashups were not as good as I had hoped. The DJs were all German, which meant that there were lots of mashups with bits of popular German songs, which I actually dug, but they seemed to all be keen on playing lots of recent stuff from German mashup artists. As Pete (the guy who turned me on to Bootie Munich) said "I've got nothing against the new stuff, but I also want to hear the good stuff."
On the work front, we recently had a bit of an organizational shake-up, and the new man in charge of my area (who I like and respect a lot) is doing a re-org, but is taking a little while to get a more detailed picture of what everybody does and how some other folks can better work together. So, right now we're in a holding pattern: no new projects, and since we didn't have anything we were currently working on, it means that we're all taking the time to do documentation and close loose ends.
In semi-related news, I authored my first CPAN module. For the sake of separation of tech- and life-related posts, I'll make that a separate post.

Wednesday, September 23, 2009

Busy week

One of Clau's friends visited us last weekend, we walked all over the friggin' place showing him Munich, and on Sunday we went to Oktoberfest. Wow, is that a lot of people and stuff, huuuuuge tents crammed shoulder-to-shoulder with drunk smoking Europeans. I can, however, make a few observations about Oktoberfest:

  • The Dirndl is a remarkably flattering item - seriously, just about every girl looks really good in them.
  • Oktoberfest beer is really, really tasty and also quite strong.
  • Extra-salty fried chicken is one of the best drunk foods ever.
  • Germans have a tremendous amount of songs that they bust out for Wiesn, and never listen to for the rest of the year. Certain songs, like "Country Roads" (yes, the one by John Denver) seem to never go out of style, whilst others may fade over time. The one that I keep hearing over and over is "So a schöener Tag" (a relative newcomer), which is very catchy the first ten or so times you hear it, but loses its charm over the course of the event. As far as I can tell it was a children's song that someone did a more pop-centric remake of, and is now played incessantly - seriously, if you spend more than an hour in a tent, you're going to hear it. Ditto for "Ein Prosit". But at least "Ein Prosit" is short.
Check it out:


You can stop once you hit about 1:45 because it's ALL THE SAME after that.

So anyway, what else this week: I started a German class on Monday - I have class 2x/week, so hopefully I will learn and practice - I still end up in situations where I understand absolutely NOTHING but I can occasionally have basic conversations. My ideal plan is to speak relatively well by the time we decide to leave (or one of our companies makes us an offer we can't refuse to move somewhere else). We'll see how that goes.
Yesterday I went to football match - it's generally fun to see FC Bayern, but they were playing some podunk team in a smaller division, and it was pretty sad. Still, glad I got to go since the FC Bayern games are generally sold out months in advance.
Today, another German lesson.
Tomorrow, TWO Oktoberfest dates - one for my work and one that we bought tickets for ages ago - not sure which one I'm going to go to - or, theoretically, I may end up trying to do both, which would probably be a VERY bad idea. But, knowing me, after a couple of Maß I might decide it's a good idea.
Friday we head to Madrid to see our friends Alexis and Luis, who are there on vacation. Yeah, we're totally busting in on someone else's vacation - that's how we roll.

And, of course, in early October it's off to NYC, Reno, Oakland, NYC, back home! Woohoo! Can't wait.

Tuesday, August 18, 2009

Amazon gripe

OK, let me start by saying that I'm a total Amazon fanboy, or to be more specific I'm a total AWS fanboy. They've got some great services out there (queue manager, SDB, S3, EC2) with excellent documentation, and they also have a _lot_ of functionality in their APIs for their store, along with pretty good documentation - my only complaint about the documentation is that sometimes it's pretty tough to find what you need.
Amongst many, many other APIs, AWS has an API to get info for a particular ASIN. Every item in Amazon has an ASIN, which is a unique identifier for that specific product. You can actually just enter it in the search bar if you want to find something quick and you happen to know its ASIN (like, for example, if you want to see the info for "Wang Dang Doodle" by Livin' Blues, just pop B000008652 into the Amazon search field).
Combine this with Musicbrainz's XML Webservice (which often has the ASIN for an album as part of its metadata) and a lot of elbow grease, and you theoretically have a relatively quick way to look up all those one-hit tracks that you ripped or downloaded 10 years ago, before people were concerned about tagging or filename conventions or any of those nuisances.
There are other uses, too; unless the album is quite rare (or the song was only released as a single, as often happens with older tracks), Amazon will probably have a decent-quality picture of the album art. I use iTunes for everything, and one irritating thing about iTunes for me is that when you use iTunes to rip a CD, then get the album art, the album art is stored in iTunes and not in the files themselves. So, if you migrate those albums somewhere else, or (as I have done once or twice), screw up something to the point where you have to delete your whole iTunes DB and rebuild it, the album art is gone. Unacceptable! I want my album art embedded in my files dammit!
So, anyway, I've written a lot of scripts to search and tag songs / albums based on what's available in Musicbrainz and / or Amazon. I've gotten past all the easy ones, and now I'm onto the really weird, hard stuff like Hoots Mon and am having to manually search Amazon / Wikipedia / whatever for just about everything.
Anyway, I digress (seriously!). The point is that I'm a huge fan of AWS, but I'll get to the gripe. AWS recently added a requirement that all queries to AWS be digitally signed with your AWS account secret. I received warning emails for about 2 months before they made the official switch, so I can't say I wasn't warned, although when I skimmed the emails I thought it was only for advertising calls, which makes sense (to prevent abuse).
Now, the process of signing a REST query isn't very difficult, but it's a really big pain in the ass; you have to deconstruct the query, add a timestamp, sanitize it, re-order it, build a hash from it and your secret, base64 the hash, add the hash to the arguments, and re-order it again. Not rocket science, but it still took me a good 2 hours to write subroutines to do it. Which makes me wonder - why on earth doesn't Amazon distribute modules for the main languages (Perl, PHP, Ruby, Java, maybe Python, and whatever the IIS folks are using nowadays), or at least C source or Java byte code to do this? Pretty much every developer who works against Amazon APIs has had to do the exact same thing that I have, and if Amazon changes the signing process, then all of us are going to need to re-write our code. That's ridiculous!
Anyway, I'm writing my own damn Perl module (already have the subroutines, just need to clean it up and make it OO), and if I end up having sufficient free time I'll submit it to CPAN. Even though my code will be crap, maybe someone will use it as a jumping point to make it better. But, I ask again, why the hell hasn't Amazon done this?

Friday, August 14, 2009

Combo locks

I had a few old Master combination locks lying around and decided to retrieve the combinations as described here. Being a geek, I wrote a script to help me keep track. Using this I was able to get all combos at less than 10 minutes per lock. Of course, it took me a good 20-30 minutes to write the script, but that was more fun than spinning a combination lock.
Also, this is far from an advanced shell script, but the nice thing about it is that it's quick, dirty, and easy. You can actually do a lot with bash very quickly once you get to know it, and one nice thing about bash vs. Perl is that it's really easy to get a gut feeling when bash isn't going to cut it and Perl is the way to go, for example when you need to parse a huge amount of data or do some really complicated regex work.
Anyway, if this helps you, then great, if not then at least it's documented somewhere...

[Edit: sorry if feed readers got this multiple times, I had to fix a couple of typos...]

##########START#############
#!/bin/bash

# Bash script to print out all likely combos for a master combo lock. Rough and ready but it works
# Written by Nate Aiman-Smith (http://staunchtech.blogspot.com). To be run as-is by a non-priviliged user.

## Variables
# One argument - the last number.
# See http://www.fusor.us/lockpick.html for a simple explanation on how to get it
thirdnum=$1

# File to keep track of tried combos. Replace with your preferred place if required
trackfile="/tmp/triednums_$thirdnum"

# Difference between first and second numbers that we'll print out - more than 24 is, in my very limited experience, unlikely.
# With more practice could probably get a better number.
fastdistance=24

## Functions

verify_nums() {
num=$mod
while [ $num -lt 40 ]
do
if [ $num=$thirdnum ]
then return 0
fi
num=`expr $num '+' 4`
done
return 1
}

print_valid_firstnums() {
num=$mod
while [ $num -lt 40 ]
do
echo -n "$num "
num=`expr $num '+' 4`
done
echo
}

print_combos() {
mod=`expr $firstnum '%' 4`
mod=`expr $mod '+' 2`
mod=`expr $mod '%' 4`
num=$mod
while [ $num -lt 40 ]
do
# Swap the two lines if you want to get the _unlikely_ combos...
if check_distance
#if ! check_distance
then echo "$firstnum $num $thirdnum"
fi
num=`expr $num '+' 4`
done
}

# To facilitate, let's try to stick to second numbers that are
# less than $fastdistance away from the first
check_distance() {
secondnum=$num
# Equal numbers always fail
if [ $secondnum -eq $firstnum ]
then return 1
elif [ $secondnum -lt $firstnum ]
then
secondnum=`expr $secondnum '+' 40`
fi
diff=`expr $secondnum '-' $firstnum`
if [ $diff -gt $fastdistance ]
then
return 1
fi
return 0
}

##Main

if [ ! $thirdnum -lt 40 ]
then
echo "invalid number"
exit 1
fi

if [ -f $trackfile ]
then
echo "Found tracking file $trackfile - hit ctrl-C, delete the file, and start over if you want to start fresh"
fi

mod=`expr $thirdnum '%' 4`
for valid in `print_valid_firstnums`
do
if ! grep "^$valid" $trackfile &> /dev/null
then
echo "Combinations for $valid:"
firstnum=$valid
print_combos
echo "Press return when done, hit ctrl-C if you bail"
read blankline
echo $valid >> $trackfile
fi
done
############END################

Thursday, July 23, 2009

Multitracking

One cool thing about youtube is that it's helping lots of folks push the multitracking envelope - like for example I didn't realize that this was possible:



I mean, that kid is REALLY good on all 4 parts.

Or, another one is this:



And while admittedly there are different folks singing, the (18-year old!) kid playing all the instruments is unreal.

More to come later, just been busy with otehr stuff...

Saturday, May 30, 2009

Simply Red

Forgot to write about this - we just got back from the Simply Red concert. I didn't really want to go but I'm glad I did - it was a good concert.
The lead singer looks pretty old but he was absolutely phenomenal - I don't think I've ever sung that good in my life and I doubt I ever will. Every single note was spot on, and he just sounded amazing.
In other news, Clau and I realized that we live in a fantastic location for going to concerts - 20 minutes on the subway and we're there. Nice.

Vacation!

Finally taking that vacation - we leave for Thailand tomorrow, two glorious weeks of solitude, beach, tropical fruits, and scuba diving. Really, really looking forward to this...

Sunday, May 17, 2009

Poker hand on my mind

OK, just got back from Salzburg, among many other things I went to the casino last night and played some poker. One hand in particular sticks with me.
The table's a mixed group, 7-handed. Twice have I have watched one fellow get all-in when he had the other opponent absolutely crushed, and the other guy sucked out on him. One time a opponent hit a two-outer on the river after being put all-in on the turn, and the second time the opponent actually hit a runner-runner full-house. I don't even know what you call that, when the opponent needs two specific cards on the turn and river and hits them both. I call it "time to call it a night" but I'm sure there's a more technical term for it.
So anyway, I'm playing 2/4 NLH, the only game available at this swanky place, and I've got maybe 120 in chips in front of me. I look down at AKo (that's Ace-King off-suit) in about 4th position. The aforementioned guy in 1st position limps in for 4 along with the fellow behind him, I raise it to 12, everybody folds, and they both call the 12. Flop comes Jh-4c-Th. I now have two over-cards and a gutshot straight draw. Not particularly great, but not terrible, and even if one of these guys has paired the board I probably have 10 cards that will give me a better hand (any A, K, or Q). Both players check, I c-bet out 30 (about 2/3 of the pot), unlucky bastard smooth calls, the other guy bails out.
Turn is a rag, something like 5d. Unlucky fellow checks. The only thing that really makes a lot of sense here is that he's chasing the flush or less likely a straight of his own. I figure if he's chasing the flush, I'm gonna make it totally unreasonable for him to do so. I bet out 60 this time, which is a bit more than 1/2 the pot (leaving me with only about 35 in front of me), and he...calls. So this doesn't make any sense, unless he's just willing to chase the flush at any price. I mean, I know not everyone thinks about odds and all that, but I saw this guy make spectacular shoves before and get screwed, so I have no idea what he's doing. River card is a very unfortunate Qh, giving me my straight, and most likely giving him the flush. He looks at me and says "I put you all in". At this point it's about 35 more to call, and there's already about 200 in the pot, which means that I kinda have to call, even though I fully expect to get beat. I shove my chips in and patiently wait for him to show his hand. Eventually he turns over two tens, for a flopped set. I guess he misread my immediate facial expression (confusion) for defeat, but I very promptly turned over my AK for the rivered straight. He gets a completely disgusted look on his face and starts going off about folks sucking out on him on the river. I said something like, "sorry man, but I had to make that call".
Here's what really confuses me. Thinking about this from his perspective, what should he have assumed I had?
Pre-flop - I've been playing pretty damn tight at this table, so I gotta have something pretty good to be raising on top of two limpers in middle position here - at minimum a med-high pocket pair (like maybe 99) or else two paint cards like AK, AQ, AJ. When the flop comes with two high-ish cards and two hearts and I c-bet, and he's flopped a set, then by far the best thing for him to do is to raise me. Actually, he probably should have bet out in the first place, but check-call is about the worst play he can possibly do. Best to just bet out or check-raise after the flop and put the pressure on me to decide if it's worth it or not. Maybe I've got a flush draw, in which case I'll either call or fold, maybe I've got two overcards, in which case I'll either call or fold (but more likely fold), maybe I've got JJ and I'll re-raise him, and maybe I've flopped a pair or already had an overpair, in which case I'll come along like a lamb to the slaughter. If he just check-calls he's really got very little idea, particularly when it's a c-bet. But, I'm guessing he wanted to milk it - not a good idea with a textured flop (two connected cards and two hearts). Same goes for after the turn when a completely unconnected card showed up - he should have just put the pressure on and forced me to go all-in or fold right there. Now, admittedly he probably thinks I've got an overpair here, so maybe he's just letting me hang myself with my own rope, but a set's not enough of a powerhouse hand to get away with that, unless you've got a completely unconnected board and you've got top set, and even then you're living a bit dangerously.
The final big screwup is when that last card shows up. Puts three connected hearts on the board, and should definitely be a warning sign. I could realistically have a few hands that just connected, like QQ or AK or even AKh for the royal flush (I didn't, but I could have!). So, at that point, perhaps he should have played it ever so slightly safer and just checked, figuring that he'll call if I push all-in. Or, to put it another way, what could I possibly have that would mean that I would fold to the final all-in bet (nothing that I can think of) vs. what might I reasonably have that would beat him?
So, to summarize, he played that hand terribly. I think he got a lot of sympathy based on what other folks had seen before, but anyone who seriously thought about it would probably also conclude that he did a bad job of it.
Incidentally, the session went really interestingly. I started with 125 in chips, at one point was down to about 60 or 70, mostly from just giving away the blinds when the cards were not coming and from a couple of times where my promising pre-flop hands went nowhere. I lost a quick 20 on AcQc when the flop came down with Kc-xQs-x and two cowboys started getting into a pissing match (but at least I got out of the way quickly, needless to say I would have lost it all if I had stayed in) and was starting to wonder if I wanted to try to use my ATM card in Austria or if I should just call it a night. With about 40 or 50 left in my stack I limped into a pot in 1st position with Ac7c with about 5 other players, the BB popped it up to 12, three players call including me. We see a four-way flop of A-3-7 rainbow, BB checks, I push all-in (less than the size of the pot, but the only thing that would make this a bad call is if someone happens to have 33 or 77, and hopefully someone has Ax and wants to come along for the ride), everybody folds to BB, BB calls me with KK, meaning that there are exactly two cards remaining in the deck that can save him, or to put it another way making him about a 10-to-1 underdog. Amazingly he does not suck out on me (this guy had been on a serious suckout roll and I think everyone was actually expecting a king to show up), and suddenly I'm back to about my starting stack. That and the hand I described earlier put me at about 325 when the casino shut down at 2:30am. I got there at about 12:30am so it was definitely a good session!
I just love playing live - it's so much more fun than playing on the computer. I met a young guy there who lives in Munich, he said he comes down once in a while since it's only about 75 minutes away. I might have to start making Salzburg road trips more often.

Friday, May 08, 2009

Mashups

I am soooo into mashups. I really need to thank my buddy Matt for starting me on this road. You already saw the youtube mashups, which I still think is one of the most genius things ever. My buddy James shot me a link for this video and it's also brilliant. Here's the youtube version for those of you without facebook (the FB version is much higher quality, though):



Also on the mashup front, I may have mentioned earlier how in love I am with the 2007 Best of Bootie album. Go download it, it's free, and listen to "Funky Goes to Hollywood" or "Tequila Lip Gloss". I am constantly on the lookout for new and awesome mashups though, so send them my way if you have any good ones...

Chillin' - gettin' paid

After the NDTV project finished, I've been doing probably an average of 3 hours of work per day, and the rest of the time is dedicated to cleaning, errands, catching up on blog posts and TV, etc. It's been grand.
My in-laws are in town for the next few weeks, then Claudia and I are heading to Thailand on vacation. We have booked ourselves into swanky places the whole way though - it's a total red-carpet situation and should be very relaxing.
After we get back from vacation, we have about a week free and then my mom will hopefully be coming to see us. She's never been to the continent before so I think she'll like it.
After that, we'll see. I really, really want to work out a trip back to the states, but that will probably have to wait until late August, since plane fares for June / early August are ludicrously high.
And, of course, at some point there will be another project! Till then, I'm mostly chillin' and gettin' paid...

Cars for po' folks

While they're not generally my type of folks, I have over the course of my many years become friends with some pretty right-wing people. Of these, a few (maybe 5-10) are people that I am truly happy to call my friends, the rest are folks who I ended up meeting or working with and occasionally keep in touch with for whatever reason.

So, a post from one of them (not one of the close friends) got me thinking - he was referencing this article (which in turn references this article) and he had this to say about it:
Disgusting. The state ought to have no part of this - I have no problem with private charities and enterprises taking up the cause of providing for those who are lacking the resources to get by, but tax dollars that are automatically deducted by payroll cannot and should not be used for this purpose. I'm having a hell of a time paying for the car I have already and saving for a minivan, I'm not about to go buy the poor people in my neighborhood cars!!!Which, sadly, is so often the conservative approach to things.
So, my response to his post (which, due to a fat-finger, I didn't send):
From TFA: "Kehoe defended the program, saying the state breaks even by cutting welfare payments to the family - about $6,000 a year."
So I guess it evens out, although since there's apparantly a 20% recidivism rate (for lack of a better term), it still ends up being about $1200/yr/car, and at the rate of 65 cars/year, that's still a net cost of $78k/year for the program.
Also from TFA: "To get the cars, they must be unable to reach work by public transportation and have a clean driving record. The program is only available to families on welfare with children."
You know, this always bothers me; people come up with ideas like this, and in general I think they're a good idea, but could we PLEASE try to come up with a control group?!? I mean, I'm guessing there are a lot more families that qualify for the program than actually receive a car, so can we try to get some stats on families that qualified but for whatever reason (didn't ask for a car, a car wasn't available, etc) didn't get a car. Take the differences in control group vs. families who got cars, and if the cars statistically cost less than the amount of welfare payments you're _not_ giving to the families who receive them, then it's a good deal. If not, then it's a expense that needs to be seriously examined. Why can't we ever get data on these things?!?
I continued on with some other stuff (before I accidentally erased it), but you get the gist. I often wonder about government programs; I mean, it's impossible to account for all the ramifications of these things when you're talking about tens or hundreds of thousands of people, but at least small program like this, you could try! 65 cars per year, the program's been running since 2006, so let's call it 200 cars so far to make the math easier. Spend 10 minutes following up on each family that received a car, you might come up with something like this:

Out of the 200 families, 40 ended up losing the job within the first year but keeping the car. Out of those, 2 ended up re-employed and are no longer receiving welfare assistance. Out of the remaining 38, we're pretty sure that 15 of them intentionally gamed the program just to get the car. The rest, we don't know.
Out of the remaining 160 families, another 10 lost the job after the 1-year period was up and are back to full-time welfare assistance.
Out of the remaining 150, 100 families have been completely without state assistance since receiving the car. Out of those, 5 have risen to a family income of more than $60,000/year (or whatever middle-class benchmark you want to use), etc. etc.

To get most of that data would be a simple matter of looking up the case files of the folks who received cars - for the rest, you would have to talk to 200 families or case workers to catch the really interesting details (like, for example, that one guy who started his own business using the car and is now a successful entrepreneur, or those 10 families who realize that they were actually better off before they made the deal to get the car, and would gladly go back in time and reverse it if they could). Call it an average of 10 minutes per family / case worker, and you're talking 2000 minutes, or about 30 man-hours to get a decent picture of every single family who participated in the program - throw in another 40 hours (and I'm being pretty generous here - it's probably a lot fewer hours) to run data analysis and write a report on it, and you can have a detailed picture of this government program, what works, what doesn't work, and how it can be tuned to improve. Or, if the data is not at all encouraging, then maybe the program should be scrapped.

I've kinda lost momentum with this post due to being forced to work (gasp!) many times during the writing of it, so I'll stop here. I guess if I had to make a conclusion, it would be this: I expect people to be reasonably good at what they do, particularly when there's theoretically some sort of hurdle or test (like an election) that they need to pass in order to get the job. I would expect that folks who come up with programs like these would have a process and resources in place to determine the program's efficacy, hopefully accounting for some of the factors that can't easily be expressed quantitatively. Maybe everything I've described is already being done, but I'm guessing not...

Thursday, April 23, 2009

Wednesday, April 15, 2009

Just about done

So, we launched at the beginning of this week and it's been surprisingly smooth since then. Some issues have come up, but nothing major and nothing that has anything to do with me. I think I'll actually get a couple of days free before I need to head back home.
Since launch I've gotten three consecutive nights of 6+ hours sleep, and it's been fantastic. I feel like a totally new person - I was so stressed that I was about to bite everyone's head off, and I was letting the pressure of the project get to me. My work actually started to suffer - I made a few rookie mistakes because I just wasn't thinking clearly. But, we pulled it off in the end and everyone's happy - the customer, my boss, his boss, his boss, etc. Overall it was a definitely success.
I definitely have some wrap-up to do, but I'm hoping to focus today solely on the stuff that has to get done while I'm here. If possible, I'll also write up some "buttons" in case of emergencies (like breaking news events) so that I rather than talking folks through the process of changing settings, I can talk them through pushing the button. And, if I get that done, then I can just chill here in Delhi and enjoy myself on Thursday and Friday! W00t!
Oddly enough, I have no desire to see the Taj Mahal. I do, however, want to get a feeling for some local culture other than this office building (although it has been interesting to work in an industrial area, where there is not another blond head ANYWHERE). So, assuming I actually get done today, I will check out Delhi for the next couple of days - or, I might just check out the pool and the television tomorrow and check out Delhi Friday with a coworker. At any rate, it feels good to be done!
And, of course, starting Saturday I have to focus on all the personal life that fell by the wayside for the last few months...

Sunday, April 05, 2009

so f'in foreign!

Wow, things are different here. Little things I hadn't seen in quite some time, like extremely persistent beggars, most of them old women and small children, some of whom are trying the old trick of "you distract him, I'll pick his pocket". Thankfully I'm wearing relatively tight jeans and not carrying much with me, anyway.
Just ordered room service from the hotel, ordered a drink called "Jal Jeera" billed as a "refreshing summer drink". It tasted like spiced saltwater, but I figured "hey, I should see this through - maybe I'll acquire the taste by the time I get to the bottom of it." Needless to say, that didn't happen, and as I finished it I found myself wondering where the water to make it came from. I guess we'll find out tomrorow.
Lots of other interesting things so far; lots of programming, particularly soaps, seems to be in a strange Hindi-English pidgin. Of course there are no subtitles for either language, which makes me wonder; does everyone who watches TV speak both languages?
Tomorrow I start in the office - even though the travel time has sucked, it's actually been pretty good to not be working for a couple of days....