Thursday, September 25, 2008

Abstract This!

I just recently installed Mozilla's Prism, and I gotta say, I love it. I have one set up for GMail, Campfire, and Google Docs (GDocs?), and those windows are super snappy. I do miss my Better Gmail extension for Firefox, but its no big deal.

I only have two big issues with Prism:
  • I cannot customize the download location.
  • All Prism instances run under the same process.
The first is mostly trivial; I download all my files to c:\downloads instead of the desktop, so that's just a copy/paste away. The second issue is more important. Google Chrome created the idea of browser process isolation; if one tab locks up or crashes, it does not bring down the other tabs.

That feature is awesome.

Eric disagrees with me that Prism "needs" process isolation; he thinks that the beauty of Prism is the UI, aesthetics, and speed. Hey look, I have my GMail "application" open, it's just one application, and look how fast and clean it is!

Well, process isolation is a vital part of that abstraction. When Excel crashes, it does not bring down Firefox with it. Likewise, when Prism-GMail crashes, it should not bring down Prism-Campfire with it. If Prism's goal is to abstract websites to be desktop apps, then each one needs to be isolated into its own process.

I Can See the Future

September 24th, 9:16 AM:
Schwehmdog: let's rephrase that to say "Web betas are different than other betas"

September 25th, 9:13AM:
CmdrTaco, Slashdot: Has Google Redefined Beta?

I will be making bold predictions every Wednesday from now until I forget to do it.

Wednesday, September 24, 2008

God I Am Such a Nerd

I recently bought an MP3 player almost exclusively for the Stackoverflow podcast. I don't know why I wanted it so badly, but that's another story. I started listening to just SO and NPR's "Wait Wait Don't Tell Me", but I added like 8 more to my sync list (thanks Mark!). I listened to DotNet Rocks this morning. They were talking about Parallel Extensions to the .NET framework and WPF, and all I wanted to do was run home and start rewriting Walrus to use all these fun new tools. I'm such a nerd.

Possible Yankees 2009 Lineup

C: Jorge Posada
1B: Mark Teixeria
2B: Robinson Cano
3B: Alex Rodriguez
SS: Derek Jeter
LF: Manny Ramirez
CF: Johnny Damon
RF: Xavier Nady
DH: Adam Dunn
4th OF/DH: Hideki Matsui

SP: CC Sabathia
SP: Chien-Ming Wang
SP: Joba Chamberlain (don't even get me started)
SP: Ben Sheets
SP: Phil Hughes
CL: Mariano Rivera
SU: Fransisco Rodriguez
SR: Ryan Dempster (also SP for injury replacement)
SR: Brian Fuentes

That's just gross.

Thursday, September 18, 2008

Classic Pat

From: Ed
To: Pat
Subject: Labels folder

Hey Pat,
Is there a reason you moved the instructions files from the "instructions" folder to a folder called "labels"? Just curious. Thanks!

From: Pat
To: Ed; Coworker1, Coworker2
Cc: ProjectLeader
Subject: RE: Labels folder

I moved them into their own folder because they seemed like files that:
1. Didn't need to be in the same folder as the other files
2. wouldn't need to be changed much
3. we didn't need to look at them everyday in the file list.

From: Ed
To: Pat; Coworker1; Coworker2
Cc: Project Leader
Subject: RE: Labels folder

My only question is why was it called labels; the idea is definitely good, which is why I put the instructions in a folder called "instructions".

To: Ed; Coworker1, Coworker2
Cc: ProjectLeader
Subject: RE: Labels folder

I couldn't think of a better name and they seemed like they were 'labels' at the top of all our forms...

What's the Big Idea, Fox?

I've been thinking about databases a lot lately. It's been sort of related to work and sort of general, but whatever the cause, databases have been in my mind lately. Then, as my mind often does, I started a thought tangent, where my thoughts quickly bounce from topic to topic, and I ended up on Star Fox.

And then from Star Fox, I went to Falco. And from Falco, I remembered this quote:

"You worry about your own hide!"

And it was that moment that I decided my next database would be named "Falco".

I've mentioned before about how I think that databases should be responsible for their own data integrity and not rely on application code (or developers) to maintain it. Somehow, Falco's philosophy just fits that perfectly.

Monday, September 15, 2008

Fantasy Football: Feast or Famine

So for week 1 I lost in three of my fantasy football leagues and tied in the fourth (Boos can be directed to Maurice Jones-Drew, Torry Holt, Braylon Edwards, Steven Jackson, and Chad Johnson). But what goes around comes around; I've won in three leagues and am posed to win in the fourth (Cheers go to Clinton Portis, Ryan Longwell, Plaxico Burress, Donald Driver, and Calvin Johnson).

Four victories is a pyrrhic victory though, because the Jets lost :( I even own Favre, Cotchery, and Jones on a few teams! What more can I do?!

Dr. Schwehm or: How I Learned to Stop Worrying and Love the DRM

Spore is loaded with DRM. I refuse to buy it on that principle, despite that Joe tells me it's awesome and that I should learn to love the DRM. On the other hand, Sins of a Solar Empire has no DRM. That will be my next game.

Am I a techno-hippie? Maybe.

It Was A Good Run

I'm sitting here waiting to go to bed with the TV still on channel 7 following the Steelers-Browns game. The news team is reporting on the Red Sox right now. They stated how the Yankees beat the Rays today. And that's when it hit me.

I was bummed that the Yankees won because then the Sox have a better chance of winning the division.

Sunday, September 14, 2008

XBox Wireless + FiOS Update

I've talked about my XBox 360 wireless adapter not being compatible with FiOS's Actiontec router here and here. A helpful user named Brandon suggested that I upgrade the firmware on my router, as shown on this site. I finally got around to taking a look, since I was so pissed off at the Jets' loss I stormed off to the basement.

Of course, the site he was refering to was older than my experience; I already have the latest firmware (in fact, I now recall the install tech installing the new firmware right away). So I'm still stuck with two wireless routers in my house. Bummer.

I Should Be A Head Coach

Jets are down, 19-10, with 3:53 left on the clock and two timeouts. It's 4th and 23 on their own 7 yard line. What should they do?

It's obvious to me they should go for it. Needing two scores, the Jets would need two possessions. If the Jets punt, they will have to give the ball to the Patriots twice in order to get their two possessions and scores (the first being the punt, the second the kickoff after the first score). In that situation, you've got to limit the Patriots to zero, maybe one first down after the punt, then score and recover an onside kick. If the Jets go for it on 4th and 23, sure they have to get 23 yards, but then they just have to recover an onside kick (or kick it away and limit the Patriots to 0-1 first downs).

Of course, Mangini kicked it, effectively giving up. God I hate traditional play calling.

Friday, September 12, 2008

Tuesday, September 9, 2008

Looking At Value From All Sides

One of the things I love about fantasy sports is trading players. I just love the back and forth negotiation that goes into it. And of course I love it when my trades work out. But I can't guarantee that when I trade Johnny Gomes after he hits 10 HR in April that he'll fall off the face of the earth. You have to make the right trade at the right time, and in order to do that, you really need to understand player value.

As I see it, there are three different aspects of player value:

  • Current value: How well the player is doing right now. You might look at last week's or month's stats to see this. Michael Turner's current value is sky high. Troy Tulowitzki, not so much. Before the season this would be last season's stats.
  • Projected value: How good a player is perceived to be. Albert Pujols's projected value is always near the top. Despite Hank Baskett's awesome performance this weekend, his projected value is still low.
  • Perceived value: A subjective measure of how good a player is. For example, I think Jericho Cotchery is awesome. And I hate Melky Cabrera.
There are also two implied aspects:
  • Potential value: The difference between current and projected value. Tulowitzki has a high projected value, but a low current value, so he has a high potential value.
  • Estimated value: A combination of current and projected value. You would use this to compare a journeyman-type player (similar current and projected values) to a rookie (low current, high projected value) in player evaluations.
When people talk about "buy low, sell high", they're usually refering to the potential value; Baskett is a sell high candidate, Peyton Manning a buy-low. Most people are aware of this phenomenon, so buy-low and sell-high opportunities can be hard to move on (no one is likely to dump Peyton based on his week 1 performance). But you can exploit an owner's perceived value of a player if that value differs from your estimation of that player's value.

How do you determine an owner's perceived value of a player? You can look at several things:
  • Did the owner draft the player higher than average?
  • Does the owner start the player over other players?
  • Did the owner list the player on his trading block?
  • Is the player's name part of the owner's team name?
  • When you proposed a trade for this player, did he counter-offered with another?
  • When you proposed a trade for a different player, did he counter-offered with the player?
If you can figure out an owner's perceived value of players, you can possibly make a trade that leans towards you.

Now, I just finished writing this post and I can't remember what I really wanted to say. This seems obvious, but I know I had a better idea when I started. Oh well, maybe it will come to me later.

Friday, September 5, 2008

The Coolest Phone Ever

No matter how much I hate Google, I can't wait to get my hands on the first Android phone, the HTC Dream. Presales start September 17th (though I will like unable to participate, as Boston is not getting 3G service from T-Mobile right away) for a release date of October 13th. I just can't wait! I haven't been this excited about technology since, well, probably my DS.

Thursday, September 4, 2008

Check Me Out!

If you've got access to the Stack Overflow beta, go ahead and check out my profile. I'm up to 51 reputation as of this post. Booya.

Wednesday, September 3, 2008

Yankees October: 1996-2007, RIP

I watched a little bit of the Red Sox game last night with the sound off (Jay was busy installing his speakers). At one point, they pointed the camera at the scoreboard and showed the Yankees beating the (Devil) Rays. I was excited until I realized that the Sox fans were probably happy at this news, since it brings the Rays closer to the Sox.

My my, how the world has changed.

Tuesday, September 2, 2008

Damn That's a Cool Customer

“I’ll make this easy for you. We basically threw a lot of balls when we should have thrown strikes and we threw some strikes when we should have thrown balls. And that’s the end of the conversation. I’ll see you later.” --Jim Leyland

Monday, September 1, 2008

You'll Receive These Wonderful Parting Gifts!

Pat* gave me a going-away gift. He tried to deploy the latest version of our project via his deployment tool, but none of my changes were included. The conversation went something like this:
me: did you do a getlatest on the utils project before making 0.8.9? Because the code is throwing errors saying it's missing a method I added yesterday.
Pat: I got the latest for the entire solution
me: well the build doesn't work... it's missing at least 2 methods I checked in last night
Pat: what file is broken?
me: clsFile.vb and PSA.vb
Pat: the Files are identical, how can i replicate the error
me: maybe source control didn't actually get the latest for you
me: just load the application and you get the first one.
At this point I decided to get backup. I used the Reflector to confirm that my code was not present in the build he released. Yup, it's not there, and yup, it's in source control. Pat is having none of it.
Pat: That method is not there
Pat: and it's not in source control
Pat: the GetlastyearsAssessment
Pat: the method doesn't exist
Pat: why does VS even let that compile? that's weird too
me: it compiles because it's in the build! you just don't have the latest
Fighting just because. He finally realized the problem:
Pat: ok found it.
Pat: come over here
Sure enough, it was his problem; the deployment software he wrote had about 6 manual steps, and he messed up one of them.

But the moral of the story is Don't blame other people for things you don't understand.
All rights reserved. Take that!