Saturday, February 21, 2009

Just Do It

You know, Nike was right. 

Just do it.

Tuesday, February 17, 2009

I Love My Wife

I love Annie because she laughs at my lame jokes.
I love Annie because she picks up some of my lame jokes and uses them herself.
I love Annie because she has the best smile.
I love Annie because she doesn't mind if I burp in bed.
I love Annie because she understands me.
I love Annie because even though she understands me, she still loves me.
I love Annie because she's good with remembering things and I'm not.
I love Annie because she takes care of me when I need it.
I love Annie because she lets me take care of her when she needs it.
I love Annie because she reads my blogs.
I love Annie because she doesn't laugh at me when I have ridiculous thoughts or theories.
I love Annie because she makes me breakfast on Saturday (and usually Sunday) mornings.
I love Annie because for some weird reason she hates to make coffee, so I do it.
I love Annie because she plays fantasy sports and usually beats me.
I love Annie because she hates computers (and in doing so, shows she's smarter than I). 
I love Annie because she gives awesome hugs.
I love Annie because she's a pretty good kisser too.
I love Annie because she knows why I'm writing this list.
I love Annie because she smells really good, before and after perfume.
I love Annie because she loves to snuggle, and we fit together perfectly for snuggling.
I love Annie because she makes me smile.
I love Annie because she gets frustrated at little things that I can easily help her with, and then she smiles and says, "Oh, that was easy."
I love Annie because she likes playing racing video games with me.
I love Annie because she says things like "Why don't you go play Call of Duty with your boys," and she's not being sarcastic.
I love Annie because she has a great ass (oops, there goes the PG rating).
I love Annie because she buys me video games for Valentines Day.
I love Annie because she deals with all the craziness of my life.
I love Annie because she believes in her career and in helping people. 
I love Annie because she loves sitting on the couch and doing nothing.
I love Annie because she loves being productive and getting things done.
I love Annie because she laughs at me for recording Dollhouse because Eliza Dushku is in it.
I love Annie because she needs 8-10 hours of sleep a night.
I love Annie because she lets me keep my eyebrows huge by not trimming them. 
I love Annie because she loves me for me.
I love my wife :)

Sunday, February 8, 2009

A-Rod Did Steroids

When I saw the news on the ESPNNews ticker, I wasn't so much shocked as I was just disheartened. The whole time Bonds had been pushing to break Aaron's record, I wasn't too upset (well, ok, I was, but all those articles I wrote for the now-defuct BostonNow paper are offline so I can pretend I was calm) because I knew A-Rod would break Bonds' record and we'd have a new clean home run champion. But then this news came out. 

In the immortal words of Morpheus, "I have dreamed a dream. But now that dream has gone from me."

So now my whole world of baseball, the years I spent watching and learning and loving the game, are all finally revealed to be a complete fraud. Bonds, McGuire, and Clemens, they're not isolated users now; they were just the first to fall, harbringers of the truth. I really started watching baseball in 1996, right after McGuire started crushing pitches at a rate faster than anyone had ever before. So really, my personal baseball story is now the story of cheating and steroids. 

All right all right, I'm overdoing it a little. I still love baseball. I will still root for A-Rod. Maybe I'll appreciate guys like Jeter and Rivera more now. 

Let's just say that I've shifted my hopes to Pujols now. Man can that guy crush a ball. 

Saturday, February 7, 2009

Joel Vs. Kent Smackdown!

I've been listening to the Stackoverflow podcast for a while now and reading JoelOnSoftware for much longer than that. Joel recently started somewhat of a fight by laying the smackdown on SOLID design principles and 100% unit test code coverage.

Kent Beck was not fond of Joel's (self-admitted) generalization of SOLID principles. You can't really blame Kent, since Joel basically just dismissed Kent's whole deal. 

Joel said that the client-specific interfaces principle was probable designed and practiced by people who don't write much code. Kent did not go into details about why he disagreed, simply lamenting that Joel doesn't understand his own responsibility as a popular personality. 

Now, we could debate the merits of this until our ears turn blue*, but that's not what I have to add here. For people who are supposed to be leaders in their fields, they're not really thinking about things. Joel's most obviously talking about FogCreek-style software; shrinkwrap software that other software does not interface with. You know, where there is no client to have an interface with**? 

All I'm saying is that we need to use our brains before we talk. That's all.

*I happen to come down on the side of Joel on this one, except for public APIs (which Joel acknowledges as an exception as well. 

**Except the human client, but that's a whole other can of worms.

Tuesday, January 27, 2009

Game Log: Farcry 2; or, It's like Mercenaries but it doesn't suck.

Initial impressions: A good game. I like how the story and gameplay is weaved together. Starts with a now-classic "being driven in car but can move camera" scene, then gets you right into the action. A few dynamics have me impressed so far, but we'll see how they hold up.

Tuesday, January 20, 2009

All The Pics from Minnesota

Check out this album:

You can also check out the Flickr album, but it doesn’t have the nice auto-album feature that Windows Live does.

Sunday, January 18, 2009

Coming to You Live from Minnesota!

Annie and I are staying in Minnetonka, MN, in the loving wonderful home of Joe, Liz, and Jacob (Liz and Jake pictures below). We’ve wanted to come visit ever since Jake was born (August 8th, 2008), but various things have gotten in the way.

135413

We finally made it (after my company gave me a sizable bonus… Thank you GLG!)!

On a side note, I’m using this post to try out Windows Live Writer. Paul Thurrott has great things to say about it:

This is the single nicest blog editor I've ever seen ... and it works with just about every single blogging service there is, and not just Microsoft's Spaces service. If you do use Spaces, all the better: Setup is simple, and you'll be up and running in no time.

So far so good.

And check out this scattershot photo album I automatically created! I just selected a bunch of photos and said “Insert as Album”. Sweet.

Thursday, January 15, 2009

The Balance Between Safety and Speed; or, Does the Turtle Really Beat the Rabbit?

Eric and I argue about programming all the time and about every little thing, but we're really just arguing about one thing. I value safety, and he values speed. Let me elaborate.

The safety I'm talking about is making sure my code works right. I'm for strong typing because it can help find errors at compile time. I believe that databases have to enforce their constraints as best they can even if you're the only client. I prefer centralized version control (CVCS) over distributed version control (DVCS) because the restrictions CVCS enforces promote healthy branching and code. I believe in continuous integration, including full unit and integration tests.

The speed Eric talks about is being able to write "5.times.per.day" in Ruby and have it just work the way you expect. Eric loves git because he's able to get input seamlessly from developers around the world and easily integrate new code. And he loves easily discoverable features of his languages of choice.

Most of the time, the programming context determines the value of the two assets. Building a mission-critical app that handles financial data? Safety rules the day. Building a site to determine if it is Christmas or not? Speed please.

Programmer personality also is a significant factor. I know I make mistakes, so I prefer to use tools that prevent/detect said mistakes. I also know that others might use my code at some point, and as anyone who has ever worked with someone else knows, other people are dumb.

The reason I just started writing about this was because I had to change a "Thread.Sleep" call in one of my integration tests from 2 seconds to 5 seconds. To make this change and formally deploy the code to my project's development environment, I had to run the code through the entire 12 minute build process. And that's AFTER running the unit tests locally (5 more minutes). It would've been so nice to circumvent the whole process. And I wanted so much to do just that! But I held fast to my rules, and now I know the published package built from that build is ready to be released to QA.

Wednesday, January 14, 2009

Johan Santana SP +++ Is Pretty Good

Every baseball off season I prepare a note sheet with things I read or learn about baseball players that might help me come draft season. An example note from last season: "michael bourn of + like a cheap Juan Pierre; will get steals but kill your average". Sometimes I'm right ("brad lidge rp + give him a looksee") and sometimes I'm wrong ("nick swisher of/1b + especially in OBP leagues, slg .824 in ST over .464 career"). But I like writing these things down and taking stock.

My HSL note sheet for this off season has grown to 41 players (from A.J. Burnett to Zack Greinke, alpha-sorted by first name). I'm a little concerned that the majority of my notes are on starting pitchers (17). I also only have one negative note (sorry J.J. Putz). I've added a draft column to the sheet to suggest to myself what round I should target the player in. This information will work great with Walrus's "must-draft-by" feature.

There's just so much information out there and we can't keep it all in our heads the whole time. My HSL note sheet has been step one to organize my information. Walrus is step two.

Monday, January 12, 2009

Take That!

Man, I'm looking like an expert myself. I'm not saying that I'm smarter than Joe Sheehan (or am I?), because clearly I'm not (otherwise I'd be writing for Baseball Prospectus). But at least I made one point :)

Haha I Take It Back

Or maybe this is why Dell is at the top:

http://www.chicagotribune.com/business/chi-biz-dell-computer-settlement-jan12,0,3118566.story

Just Let Me Buy the Thing Already!

Most technically people I know hate talking to sales guys, preferring to instead do all their own research and buy from a website. I'm going to share a short story with you all about sales people.

A small web business decided to move from rented servers to owned servers, so the owner bought several server machines and rack space. He decided to save money by buying the hard drives and memory separately from the servers. However, when the server arrived, it did not come with the necessary drive rails for the hard drives. The company did not sell the drive rails, only the hard drives themselves with rails attached... for hundreds of dollars each!

If you follow the Stack Overflow podcast or blog, then you know that this owner was Jeff Atwood, writer behind codinghorror.com and cofounder of Stack Overflow. He ended up buying the drive rails on EBay for the right price, so the story ended well. But when I read his story, it reminded me of an exchange on the SO podcast I heard earlier. Jeff and Joel discussed that Dell sales guys give you a better deal than the website, and that "Dell is paying me [Jeff] to talk to a sales guy, and they are paying the sales guy a commission" (paraphrased).

I think they misunderstand why Dell wants businesses to talk to sales guys, and the story at the top of this post illustrates Dell's thinking. Companies want you to be happy with your purchase. They want you to buy from them again and to tell all your friends/coworkers/everyone how awesome your company is. The sales guys want you to be happy with your purchase so you don't return it and cost them their commission. So everyone at the company wants you to be happy with your purchase.

And they know things! They know how many drive rails come with each server unit and if replacements are available. They know if the laptop you want comes with a replaceable motherboard. They know the answers to the questions you didn't know to ask. And they know that happy customers are worth 5-10% off the bottom line.

The moral of the story is twofold. One, Dell knows what it's doing. It didn't rise to be the #1 seller of computers because of their pretty colors. Two, that people should consider talking to sales guys before making a purchase, no matter how much research they did. [UPDATE: Joel actually mentions this to Jeff in podcast 35, so he's still cool.]

Important caveat: this only goes for legitimate companies concerned with their reputation. Vince from ShamWOW doesn't care if you're happy because he got his $19.99 plus S/H.

Sunday, January 11, 2009

Sins of an Aging Gamer

I'm not old. Not by a long shot. But I am getting older and more mature. I'm also spending more time with my wife. And more time working on my house. I find I have less and less time to play video games. This is a huge bummer!

I had many video games on my wish list, and I got three for Christmas (Orange Box, Rainbow Six Vegas, and Sins of a Solar Empire). I already beat Portal and am playing through Half Life 2 in Orange Box. I'm saving Rainbox Six Vegas for a rainy day (since the online playing opportunities at this point are almost nil). That leaves Sins of a Solar Empire.

I installed it on our new laptop (a sweet rig, I might add) and fired it up the other day. I've been excited about this title ever since I read about (publisher) Stardock's decision to go without DRM. And I've been craving a new RTS to bide my time until Starcraft 2 comes out. 

But after installing the game and going through the tutorials, I found that I had no energy for playing. None. I thought I'd be chomping at the bit to flex my mad RTS skillz, even if just against the computer. But combine the lack of a solid story element (or at least lack of one that pulls me in from the get-go) and no multiplayer aspect (I have no friends to play the game with) and I just have no drive to play.

There are a few elements at play here. I have less time to play games, which means I'm searching for a greater payoff from games I play. That means games I can jump into more quickly (FPS) and games I can play with my friends (Starcraft 2). And that excludes most RTS games that my friends won't play. 

The real final point I'm making is that I realized that I'm getting older and I have to pick the games I want to play more carefully (and maybe let my friends' game selection guide me more). Of course, I can play all the DS games I want; what else am I going to do on the train?

Wednesday, December 31, 2008

Game Log: Fable 2

I've played maybe 8 hours of Fable 2, and all I can say is that it sucks. I don't know how different it is from Fable 1, but I just don't like it.

Sunday, December 28, 2008

Favre and Mangini Should Go

I place the blame for the Jets' not winning the AFC East on Mangini and Favre.

That is all.

Thursday, December 25, 2008

Merry Christmas Everybody!

Hope you all get great gifts! (like the Yankees getting Mark Teixeira)

May your Christmas be merry and joyful!

Monday, December 22, 2008

You Know It's Fantasy Baseball Season When...

  • My Hot Stove League note sheet is already two pages long.
  • I'm posting on other fantasy baseball blogs.
  • I've restarted work on my mid-draft fantasy baseball analysis tool (Walrus).
  • I've had a 2-hour conference call with league co-commissioners to determine rules for next year.

I Sound Like Joe Morgan: Mangini was Inconsistent

When I look at each of Eric Mangini's decisions this past game, I can understand each one of them individually. But when you put them all together, they paint a very inconsistent picture of the third-year coach. Let me go through the key decisions and point out in each case what Mangini must have been valuing.

Opening drive of game, 4th and 2 feet, 2.5 yard line of Seattle (0-0):
Mangini decides to kick the field goal instead of going for it. He takes the (all but) guaranteed 3 points instead of taking a slight risk of no points. His decision here is conservative, valuing points on the board above a higher risk play. He also disregards the field position the Seahawks would start with. That early in the game, I completely understand just wanting to get some points.

Early in 4th quarter, after Feely nails a 45-yard field goal negated by a delay-of-game penalty (10-3 Seattle):
This time Mangini decides to play for field position. He has Hodges punt and pin Seattle on their 6 yard line (way to save your job, Reggies) instead of risking giving them the ball at about midfield. Again Mangini took the conservative play, but this time he was playing for field position instead of points. (And let's not forget that Feely absolutely drilled the 45-yarder so well it would've been good from 55 yards).

Late in 4th quarter, 3rd and 2 on the Jets 21 yard line, about 2:40 left (10-3, Seattle):
Most analysts will tell you Mangini's big mistake came on 4th down, but I think he screwed up on third down. We know in hindsight that Mangini was planning to go for it on 4th down (assuming the Jets didn't lose yardage). Why not run the ball? You have 3 time outs. You have the 2-minute warning. You have plenty of time. Thomas Jones averaged around 4 yards a carry. Or you could call a draw to Leon "Hot" Washington from the shotgun. Here Mangini lost sight of the game clock, really. He had tunnel vision and forgot about the run.

Late in 4th quarter, 4th and 2 on the Jets 21 yard line, 2:21 left (10-3, Seattle):
Ok, so incomplete pass, now it's 4th down. Mangini decides to go for it. Isolated from the rest of his decisions, I like this call. If you punt it, all Seattle has to do is get one first down and the game is basically over. And how hard is it to get 2 yards anyway (see previous play)?

But this decision is on the complete opposite side of the spectrum from his other decisions. He eschews field position, despite knowing that if they don't get a 1st down, the game is really over, as Seattle will kick a field goal to make it a 2-score game. Again, tunnel vision. He was in "4-down situation" and could not consider other options (the CBS crew did a good job pointing out the reasons to punt the ball there).

Of course, they don't get the first down (Favre decides to throw deep into good double coverage when all they needed was 2 yards?). Mangini is clearly showing his inexperience and lack of skill. He's not as smart as I thought he was.

It's My New Workout Regimen

I don't mind shoveling snow. I even have this kind of macho thing going; I like to shovel now becausae I can shovel. There will be a point in my life when I won't be able to. And shoveling fits into my mindset very well.

That said, I shoveled snow for seven hours this weekend. That's not a typo. SEVEN HOURS! 

Sunday, December 21, 2008

Jets Suck

It's a fact of life.
All rights reserved. Take that!