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.

Monday, December 15, 2008

Going Once!

Less than five hours left on most of my auctions! Strike while the iron is hot!

Baseball Prospectus Needs Some TARP Funds

Joe Sheehan and Jay Jaffe both HATED that the Yankees did not offer arbitratrion to Bobby Abreu and Andy Pettitte. The gist of their argument was that arbitration meant either 1 year of a good player or draft picks, and if the Yankees wouldn't mind either of them on their team, then they turned assets into dust.

But they forgot to look at the other side of the coin. Abreu and Pettitte could be assets or they could be liabilities. The two players each made $16 million each last year. In arbitration they could easily earn $18 million each. Let's look at the opportunity cost of each.

Abreu's offensive has been steadily declining since his then-record-setting performance at the 2005 Home Run Derby, but he's still pretty good at the plate. His defense, however, is terrible. I'll leave the sabrmetric analysis for others, but with Damon, Melky/Gardner (or now Cameron), and Nady as full-time outfielders and Swisher and Matsui as backups, the Yankees hardly need a declining expensive OF taking playing time away from better younger players.

The case with Andy is even simpler. The Yankees knew that Pettitte only wanted to play for the Yankees. That leaves him with no leverage. Cashman wanted to give Andy a paycut, so offering arbitration would just be throwing money at him.

And the final argument is that Cashman knew what we didn't; that the Yankees were going to put the full-court press on CC Sabathia and A.J. Burnett both. Knowing that, tying up $36 million in two players who are not the solution to the Yankees' problems would be dumb*. Fiscal responsibility, folks. It's a good thing.

* Now, none of us knew that, and of course Sheehan and Jaffe didn't know it when they wrote their posts. I disagreed with them well before Cashman signed CC and A.J., but I'm a slow blogger.

Sunday, December 14, 2008

Bill Belichick is a Jerk

I can't believe Belichick challenged that play... up by 29 (five scores) with 2:33 left to go, he challenged the spot of a Raiders 4th-down conversion. This guy has no sportsmanship. 

Wow, the Jets Pulled That One Out of Their Ass

So the Jets finally won a game against a team they should've beat. Thank goodness, it's about time.

The Jets looked like two different teams this game. During the 1st and 4th quarters, they looked like the team that dominated the Titans and went toe-to-toe with the Patriots. In the 2nd and 3rd quarters, however, they looked like the 4-12 Jets of last year.

Quick thoughts:
  • They have GOT to find a way to get Leon "Hot" Washington the ball more (1 rush, 1 reception, 6 kickoff returns). His 47-yard TD run in the 2nd quarter just proved how explosive he can be.
  • Mad props to Steven Johnson of the Bills. After his TD catch in the 2nd quarter, he pulled his celebration right out of "The Replacements" from Clifford Franklin (ball-glued-to-hands spike).
  • Favre's first interception wasn't his fault (two crazy bounces), but the second one was. What was he thinking? I know Favre has thrown his fair share of deep bombs, but he does not have the arm for it anymore. He underthrew the receiver (Cotchery? Clowney?) by 10 yards.
  • David Clowney made an impression in his first NFL game. He made a great catch by tipping the ball to himself twice. I hope he gets more chances to prove himself.
  • The Jets had more luck in this game than they deserved. The Bills choice to throw when all they had to do was run out the clock, and then the lucky bounce into Shaun Ellis' hands... hopefully they had karma to spare.
Miami won and New England is already up 21-0 against Oakland, so the Jets still need to win out.
All rights reserved. Take that!