Tuesday, January 30, 2007

FIRE JOE MORGAN

One of my favorite blogs to read is FIRE JOE MORGAN. There's always some funny and insightful rants against baseball talking heads (such as ESPN's Joe Morgan.) I've found an interesting contradiction on there. The writers and reader of FJM are typically fans of sabermetric analysis of baseball. However, many of them are also "anti-steroids", i.e. they like to rail against players who are suspected of steroids use.

Now let me introduce you to two popular sabermetric statistics that FJMers are particularly fond of. The first is OPS+. This is on base percentage plus slugging percentage, adjusted for the park and the league. The second is EqA, equivalent average. This also adjusts for park and league. Both of these stats allow for historical perspective on statistics.

Why do I bring this up? Well, such league-adjusted stats allow sabermetricians to make objective analysis of players from different eras. Thus a player with a .900 OPS in 2006 is not as impressive as a player with a .900 OPS in 1976. Why? Because the league averages are higher in 2006 than they were in 1976.

So why are they higher? Well first off, it doesn't matter from statistical standpoint. You can adjust regardless of the variances. But from a practical standpoint, ballparks are smaller now, pitching is more diluted because of expansion, and players are bigger. Yep, that's right. Players are bigger, and part of that is because of steroids.

In other words, if steroids affect the entire league, then their effects can be statistically quantified and steroids users are "statistically punished." The crux of this argument is that steroids affect the entire league. So let's assume they don't, i.e. steroid is use rare.

Well most reasonable people think that players like Mark McGwire, Sammy Sosa, and Barry Bonds have all used steroids. We pretty much know that Jose Canseco, Jason Giambi, and Rafael Palmeiro used steroids. So if steroids use is rare, then it seems like is a sure fire way to generate huge offensive numbers. Think about, if only a handful of players were using steroids, then there is a high correlation between steroid use and offensive production. So it would seem like a simple equation "use steroids, hit 40+ home runs." So then wouldn't a lot of players use steroids? But wait, our assumption was that few used them. So that had to be wrong. A lot of players use steroids, including a lot of bad players.

So that means stats like EqA do a very good job of adjusting for steroid use. So steroid using players can easily be compared in a historical context using sabermetrics. The key is abandoning raw numbers like hit/home run/RBI totals, and using contextual numbers instead. You would think this would appeal to any sabermetric loving baseball fan.

Monday, January 29, 2007

Scanner

I was recently helping somebody who is taking "beginning Java" kind of class. It's interesting to see Java as a first language, especially Java 5+. Java is unusual as a first language because of its object orientation. I think Pascal, Basic, or C are probably better choices. They're much less useful choices in the long run, I suppose. Java 5 as a first language is an even stranger choice, because of all that syntactic sugar...

For example, the Java student in question needed to write a program that accepted user input. Enter Java 5's java.util.Scanner. This thing is like C's scanf, but an OOP version of scanf. It's not quite as easy as C++'s cin, but you just can't do cin in Java because you can't overload the operator like you can in C++. I guess reading user input is one that is dramatically more difficult in Java than C++, well at least before Scanner.

One weird thing with Scanner is that it breaks on all whitespace by default. So don't use it's next() method to read strings that might have spaces in them. Instead use nextLine(). It accepts a regular expression for it's delimiter. That's pretty novel. Of course it means that if you want to use something other than the default delimiter, you'll need to understand Java's overly verbose version of regular expressions.

So I'd still prefer Pascal or C as a first language for a new programming, but Java has become more accommodating at least for beginners. The "old way" of reading lines of input was always something like:

String str = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
str = br.readLine();
} catch (IOException e) {
e.printStackTrace();
System.exit(1);
}

Talk about ugly! Now with Scanner:

String str = null;
Scanner scanner = new Scanner(System.in);
str = scanner.nextLine();

Or even:

String str = new Scanner(System.in).nextLine();

One of the key things to notice here is that you don't have to catch an IOException. Java has finally started being smarter with exceptions. Scanner's exceptions are not checked, so you don't have to catch them. There's no point in catching exceptions that you can't do anything about. If your program is unable to get input from the command line, it's not like you're going to be able to recover.

Barbaro

I used to be a big horse racing fan. I started going to the track while I was in college. Pasadena is home to Santa Anita race track, arguably one of the most beautiful tracks in the world. It also happened to host The Breeders' Cup while I was there in 1993. My roommate was already a big fan, so it didn't long for me to get hooked.

So I was sad to hear the news that Barbaro was finally put down today. It reminds me of the many times I saw similar happenings while at the track. It's seemed common knowledge back in the early 90's that the combination of heavy inbreeding and the use of "medications" (like Lasix) had severely weakened the breed. There were also numerous trainers notorious for running young horses into the ground all in the name of success in the Triple Crown. The most notorious (and arguably successful) was D. Wayne Lukas.

It's sad that nearly fifteen years later and things seem to have only degenerated even more. I was a little encouraged to see this article on ESPN about some possible reforms to the sport. I would have supported most of these ideas fifteen years ago, but they would have stood little or no chance. Maybe Barbaro's highly public death will motivate the industry. Probably not though. After all, none of these measures would have helped Barbaro. Plus, the horse racing industry is more concerned with slot machines than with the horses anyways.

Saturday, January 27, 2007

Super Bowl

It's about time for my first Super Bowl post. It's really pretty easy for me to make a pick. This is The Year of The Gator after all. So on one hand we have Gator QB Rex Grossman leading the Chicago Bears vs. Tennessee QB Peyton Manning leading the Indianapolis Colts. Clearly I must pick Chicago. 2EZ.

Actually I generally enjoy watching Indianapolis play. It's a pleasure to watch Peyton Manning play at a level that few QBs have ever played at. Peyton is often compared to Dan Marino. It's a very fair comparison, at least in terms of talent and accomplishments. So it was nice to see Peyton beat everybody's golden boy Tom Brady. QB is without a doubt the most important position in football, but too much credit and blame are often assigned to QBs. People who thought Manning "can't win the big one" assigned too much blame to him, just like all the Tom Brady worshipers gave him far too much credit for the Patriots' success. It was all too similar to the kind of things people used to say about Dan Marino and Joe Montana.

Anyways, while it would be a little surprising to see Chicago win (or any NFC team win the Super Bowl,) it would be even more surprising to see them win because of Rex Grossman. They will clearly try to run the ball down the throat of Indianapolis. Rex also seems to have realized that he doesn't have to do so much to wins games for the Bears. They have tremendous talent on defense and solid players on offense.

On the other hand, it would not be shocking at all to see Peyton Manning as Super Bowl MVP. Chicago has been vulnerable through the air. They play a lot of Cover-2 and rely on their front four to get pressure on the QB. That will be tough to do against the Colts fast paced offense.

But hey, Florida was a big underdog against Ohio State a few weeks ago, and we all saw how that turned out... So I will predict that Rex will indeed play well and that Peyton Manning will make some costly mistakes. Chicago 30, Indianapolis 24.

Friday, January 26, 2007

Link Blog

I was playing around with some of the new Blogger features. I was pleased to see you could add different widgets to your blog. I was very interested in looking at the markup code they are using to capture this in your blog's template. I added a couple of widgets to my blog. Most interesting is probably the link blog. I added this by adding a "feed widget" to my blog, and giving it the RSS URL of my link blog from Google Reader. Now whenever I read an interesting article, I just hit "shift-S" and it shows up on my blog.

Sunday, January 21, 2007

Spanking

Each weeknight, I drive home from work and usually talk on my cell phone with Crystal (on my Bluetooth headset.) Earlier this week Crystal asked me if I had heard about a proposed law to ban spanking children under the age of three. I had not heard of it at the time, but I've heard a lot about it since.

This has to be one of the most outrageous laws I've ever heard of. What right does the government have to tell you how to discipline your child? How can we expect parents to be responsible for their children when the government dictates how they raise their children? As horrible as Nazi Germany or Soviet Russia were in terms of oppressive government, did either of them even stoop this low?

Personally, Crystal and I do not spank Michael, Jr. (who turns three in March) or Raymond (age 1.) But that is our decision. If we decide that we need to spank them, then again that is our decision. We have to be responsible for providing care for our children and for teaching and raising them. That is our responsibility.

Now obviously spanking can go too far. Children can be injured by parents who use excessive force to spank them. So maybe we need law to prevent that? Oh wait, we already have one. It's called assault and battery. If I spank my child and hurt him, I have broken a law. Just like if I go out and hit somebody on the street and injure them.

Obviously it's more difficult for a child to report me to the police than it is for a stranger on the street. But if I hurt my child enough that I have to take him to the hospital, doctors and nurses are already instructed to report me to the police.

There's a lot of safeguards already in place. Is it perfect? Of course not. A lot of children still get abused. But even if this ban on spanking was put in place, it's not like that would stop me from beating my children in the privacy of my own home, and obviously that's where most parental discipline occurs. It's a worthless law in terms of being enforceable, but it would catastrophic consequences for all of society. It would tell good parents, you know the ones that don't abuse their children, that they are no longer in charge of their kids. The State of California is instead. They are just there to do what The State tells them to do.

If the state passed this law, and it somehow was upheld by the courts, I would have to leave California. Maybe I would take a job with Microsoft or Amazon and move to Seattle, or maybe somewhere back east. I don't know. But there's no way I could live under a totalitarian regime that will mandate how I raise my children.

Saturday, January 20, 2007

Web APIs: Flickr vs. GMaps

I was doing a little research on web APIs. Two of the better ones (or at least well known and used) out there are Flickr and Google's Map (GMap.) They present two very different ways to enable third party developers to leverage powerful web services. So I thought I'd do a little compare and contrast.

Flickr's API is a classic procedural library. There are calls for almost any action you could possibly do with all things Flickr : photos, account, tags, sets, etc. You can upload photos, access photo streams, search by tags ... pretty much anything you can do on Flickr's site. Each call is a different HTTP request. You can send the package of your request in a variety of formats: REST, XML-RPC, and SOAP. The REST and SOAP follow the usual patterns for these formats. The REST requests are "pure" HTTP requests. Flickr's XML-RPC is very true to the RPC mode. It uses simple XML to specify a procedure to call along with it's parameters.

You can also specify the format of the response you get back from Flickr. Since they support REST, XML-RPC, and SOAP for requests, it's not surprising they support all these for responses. They recently added JSON and PHP as response formats. I was pleased to see JSON. I can imagine that if I was going to use Flickr's API, I would probably choose to use REST+JSON. Make a pure HTTP request and get back a JavaScript object. Seems like the lean-mean approach to me. I was surprised to see PHP as a response type. In this case, they are referring to serialized PHP objects. The structure of these objects is identical to the JSON structures.

GMaps is different in many ways to Flickr. Instead of supporting procedural calls to Google, everything is object oriented JavaScript. You include a library from Google and then use their objects. Many of their objects provide methods for making calls similar to what you see in Flickr. For example, you can geo-code a location, calculate directions, etc. But you don't make the HTTP request and you don't parse a response. Google's JavaScript objects do these for you.

The differences in these web APIs reflect the differences in these web services. Flickr is more of a pure data service. You can modify data (photos) and query that data (search for photos, etc.) Flickr wants to be your photo database. As such, they give you a number of ways to access your data. What you do with the data is up to you. Show your pics on a website, provide tools for uploading, print the pics, make aprons, whatever...

GMaps wants to draw maps for you. They don't want to give you mapping data for you to do whatever for it. They want to draw. They'll take your data and draw maps with it. They always draw the map, so they give your users a familiar interface that also integrates into Google. All roads lead back to Google.

Thus the APIs to these services are very appropriate for the services. I don't know for sure, but I'd wager they also reflect the programming design behind the services. It seems pretty obvious that Flickr is written in PHP and that Google Maps is written in Java (maybe the last one is less obvious, but I do have a little inside information on that one.) So it's not really surprising that a PHP site would have a very flexible, procedural API, and that a Java site would have more closed, object-oriented API.

Thursday, January 18, 2007

Java Properties and Generics

If you've done much Java programming, you've probably used a Properties object at some point. It's been around since JDK 1.0. It's always been backed by a Hashtable. With Java 5, the Hashtable became genericized, just like all the other Java datastructures. The Properties object was always "genericized" in a way. It's getProperty and setProperty methods only took and returned Strings. So it would seem logical that Properties would extend a Hashtable<String,String>, right?

Nope, it's still a Hashtable<?,?>, i.e. a Hashtable<Object,Object>. Where is all this going? Well I had a class that had a Properties object as a member variable. I had a method that needed to return all the property names of that Properties object. I thought it would make sense for my method to return a Collection<String>. Since Properties extends Hashtable, I could just return it's keySet() method. This is a Set of all the keys in the Hashtable backing the Properties, thus it is a Set of Strings (Set<String>) and thus a Collection<String>. Too easy.

Wrong again. The return type of the keySet() method is a Set<object>, because Properties extends Hashtable<Object,Object>. You cannot case a Set<Object> to a Set<String>. I was very surprised by this. I expected to have throw a @SuppressWarning("unchecked") annotation on my method, but I did not expect that it would be a compilation error. I figure this is because I would be casting a generic interface. I guess. I could do something completely ridiculous:

return (HashSet<String>)new HashSet(myProps.keySet());

This worked with a good 'ol @SuppressWarning("unchecked") annotation. I had to copy my keySet() into a concrete Set object, and then I could cast. Totally ridiculous.

This all came because my Properties object was being injected with Spring. In other words I had a Spring context file with something like:

<property name="myProps">
<props>
<prop key="a">1</prop>

...

I simply replaced this with a map:

<property name="myProps">
<map>
<entry key="a" value="1">
....

I could then make myProps into a Map<String,String> instead of a Properties object, and simply return it's keySet() without any casting. Very nice. So this just brings me back to the original question of why doesn't Properties extend Hashtable<String,String>?

Friday, January 12, 2007

Review: Carnavas by Silversun Pickups


I found Carnavas as an Amazon recommendation. I've had a pretty good history with Amazon recommendations. The Amazon review mentioned influences from Smashing Pumpkins and Built to Spill -- both favorites of mine. So I was quick to give this a listen.

I was definitely reward as this is probably the best CD Amazon has recommended to me. It is an outstanding recording. Silversun Pickups have a very unique sound. It definitely has its roots in My Bloody Valentine, but is more melodic with more emotional vocals. But like My Bloody Valentine, Smashing Pumpkins, and Built to Spill, Silversun Pickups absolutely rock. Melodies, vocals, textures, etc. never get in the way of rocking out. It's probably more of a headphones CD than a big speakers CD, mostly from their loud-soft dynamics (did somebody mention Smashing Pumpkins?) but it's infectious rock however you listen to it.

Thursday, January 11, 2007

iPhone -- Redux

It seems the collective shine has begun to fade on the iPhone. A lot of people are having the same questions same questions I had about it. I was disappointed to see Steve Jobs say he wants to keep the iPhone closed. I guess this shouldn't come as a surprise. I've always thought that the biggest reason for Microsoft's greater success than Apple was that Microsoft was always much friendlier to developers. Even if they thought of us as pawns, they still treated us better than Jobs & Co. I was also interested in Cedric's take that MacWorld 2007 signaled Apple's waving of the white flag as a computer company. Kind of seems that way to me, too. Still, their moves have been pleasing to shareholders.

Tuesday, January 09, 2007

Baseball HOF

I wasn't surprised to see Mark McGwire not get into the Hall of Fame today. ESPN had already published the results of a poll they did among HOF voters, and it was clear McGwire was not going to get in. That's a shame. I listened to Jime Rome say that he just wishes McGwire would talk about the past. He had on Sports Illustrated's Tom Verducci, an HOF voter, who said that McGwire had denied ever using steroids back in 1998 and he doesn't understand why he doesn't do that now.

So if McGwire would just say "I've never taken steroids" then he would be voted into the HOF? I guess we just want to believe that McGwire got that huge naturally. Give us our blissful ignorance and we'll put you in the HOF.

Look, we all know he took steroids. We all knew it back then. People need to grow up and realize that McGwire did exactly what we wanted him to do. He got huge so he could hit the ball 500+ ft. and break records. That's what everybody wanted. It gave us the most magical moment in baseball in recent history. It healed all the damage done by the 1994 strike. And it was powered by steroids. Now we need to all just get over that and give McGwire his due.

The iPhone

People have been conjecturing for years about Apple making a cell phone. Then they finally do it, and yet they were still able to blow away people's expectations. That's pretty amazing.

As for the phone itself... Well is there any piece of technology out there that looks sexier? I'm really curious just how functional it's user interface is. It certainly seems like a leap forward and Apple has a pretty good track record of making UIs that people fall in love with.

I'm also incredibly curious about just how much computing power the thing has. Jobs claimed it is running OSX. Clearly it is a lighter version of OSX, a la Windows Mobile vs. Windows. It seemed to have some Apple widgets, but what kind of apps? Will it be able to open Word documents and PDFs? Maybe Excel spreadsheets? It can obviously sync, but can you edit contacts, etc? And speaking of sync, will it sync with Outlook. Or will you have to do some kind of dance like where you use iTunes to put contacts from Outlook onto your iPod? With its high price point, it's going to competing with smart phones that all can do many of the above things.

Personally it's a very tempting gadget! Would it really replace my iPod? If so, then maybe the money would be worth it. It doesn't have enough to storage to be a good video iPod, but I have little interest in that kind of iPod anyways. The $499 iPhone has the same memory as my iPod Nano (4 GB,) though I would assume that a good chunk of that gets eaten by OSX-lite and phone related stuff. Would I be comfortable strapping my $500 phone to my arm and running for two hours with it? Would I be willing to switch from Verizon to Cingular also? Ask me in ten months when my Verizon contract is up...

Monday, January 08, 2007

41-14

What more can I say? I honestly feel bad for Ohio State. They are a great team that had a lot of bad luck and didn't know how to respond. It reminds me of when Florida got thumped by Nebraska in 1996.

But forget Ohio State. This is all about The Gators. Chris Leak goes out on top of a historic career. Who wants to claim that Michigan deserved to be there instead of Florida now? I had to listen to so much pre-game hype about how much better Ohio State was than Florida. This was supposed to be a coronation of King Troy Smith, and instead he got destroyed. The Florida pass rush was devastating. It seemed like Ohio State thought they would control the line of scrimmage (they're the bigger, stronger team, right?) and that Florida would have to blitz to get pressure. Wrong!

Florida's offense benefited from lots of great field position, but also from a tentative Ohio State defense that played a ton of zone. They were too obsessed with not giving up the big play that they let Florida do whatever they wanted to offensively. Maybe that could have worked if Florida would not have been playing on the Ohio State side of the field all night. I thought that Ohio State might be vulnerable because they would be overconfident and conservative on offense, but it was actually on defense where this happened.

So Florida reigns supreme, both in basketball and football. That's never happened before. I think it really shows the importance of coaching.

Finally, I hope that Ron Zook takes some pleasure in tonight's victory. A lot of The Gators were recruited by Zook, especially Chris Leak. The team definitely has a lot of guys recruited by Urban Meyer, and he deserves all the tremendous credit coming his way. But Zook was a great recruiter, and all the Gator Nation should feel a debt to him tonight.

Gator Day

Pardon the crazy colors on the blog. I had to change them for today, since this is Gator Day. My kids and I are all donned in Gator gear. I am planning on leaving work early so I can be home in time for the kickoff of tonight's Championship Game.

This will be the third time for Florida in a BCS Championship Game. I remember the other two times quite well. Actually this year is similar in many ways to their first title game against Nebraska in 1996. That game was also in Tempe, AZ and the Gators were playing a heavily favored midwest team with a Heisman Trophy winning quarterback ("Touchdown" Tommie Frazier.) Let's just hope that's where the similarities end and that this year has more in common with 1997, when the Gators won the BCS Championship in the Sugar Bowl by crushing Florida State.

So how can the Gators beat the heavily favored Ohio State Buckeyes? Well, first I'm hoping for a little help from Ohio State. I'm hoping they will be overconfident and play conservatively. They have a great running game and Jim Tressel has been known to lean on that running game heavily against teams that he thinks his team "should" beat. I'm hoping that he employs that strategy against Florida, because Florida can stop the run. Just ask Arkansas.

I'd love to see Chris Leak get a chance to really do what he does best -- throw the ball all over the place. However, Chris has not had his best games against tough defenses. The Ohio State - Michigan game showed that you can run against Ohio State if you have speed. So I expect to see a lot of Deshawn Wynn and lots of running plays or screens to the wide receivers. Ohio State will be paranoid about Percy Harvin, so don't be surprised if Bubba Caldwell has some opportunities on reverses and screens. Harvin is going to get the ball, though. It doesn't matter that Ohio State may be the first team this year to gameplan specifically for him. I expect to see some kind of trick play involving him catching the ball deep. Maybe from Tim Tebow?

Florida hasn't blown out too many teams this year, and they're not going to start with Ohio State. If Ohio State plays conservatively, I think the game will stay close and that Florida has the advantage in such a game. I'm most worried about Ohio State coming out like they did against Michigan, spreading the field and throwing the ball a lot. Florida's strategy against that kind of offense this year has been to say "you may make some big plays against us, but we'll force some negative ones too." I think they would play the same way against Ohio State, I'm just not sure if they could cause enough negative plays to negate the big plays that Ohio State is capable of. I'm also worried that Ohio State could actually run the ball in that scenario.

Sunday, January 07, 2007

Thanks Nancy

I've been a registered Democrat since I turned 18. I voted for Bill Clinton twice, Al Gore, and John Kerry. Still, I generally disagree with the Democratic at least as often as I agree with them. That didn't stop me from being encouraged when the Democrats won control of Congress in November.

When I heard about the First 100 Hours Agenda, I wasn't overly impressed. I am definitely not a fan of raising the minimum wage or lowering student loan interest rates, for example. However, with President Bush preparing to announce his plan to increase troop levels in Iraq, I am relieved to finally see the Democrats stand up on Iraq. It's been one of the most disappointing things as a Democrat. They've been so afraid of being labeled unpatriotic or soft on terrorism that they've never gone out and demanded a withdrawal from Iraq. Granted a few Democrats have done this on their own, but the whole party. Pelosi is (supposedly) going do just that. No more "let's adopt the whatever-commissions recommendations" blah blah blah... Instead the Dems are goings to finally deliver the message their constituents have been shouting at them: "Get out of Iraq."

Friday, January 05, 2007

Blogging from Google Docs

I had heard about using Google Docs to blog. This seemed like it could be promising, since Google Docs has a little nicer interface than Blogger. Also, one had to figure the integration should work really well given that my blog is on Blogger -- which is also part of Google. I'm actually writing this blog using Google Docs (what used to be Writely.)

Setting up the integration wasn't quite smooth. I entered my blog as a Blogger(beta) (even though I thought it isn't a beta anymore...) and it told to optionally list the name of the blog. I put in "Programming and Politics." I hit the "test settings" button and it said everything worked. I then wrote a blog and published it to my blog. It was posted to the wrong blog: Mike's Photo Blog . I had misspelled the title "Programming and politics" so it instead defaulted to the first blog it found under my account: Mike's Photo Blog. Once I corrected the title, it posted to the right blog. It would have been nice if it would have told me I got the name wrong, or if it would have provided me a list of blogs to pick from (seems like that would be the best solution, and it show just be a simple AJAX call.)

Next issue was the title. Supposedly it would use the title of the document for the title of the blog if your blog "supported titles." Certainly my blog has titles to its document. I titled the blog, but it's title did not go through to the blog. So I had to re-edit it inside Blogger to give it the right title.

Next issue was tags. Blogger calls tags labels, but Google Docs calls them tags (like the rest of the world, and other Google apps.) It claimed that any tags for the document would become tags for the blog. Only problem was that there was no tagging option from either the edit doc or publish doc screen. It actually does exist from the "Active Documents & Spreadsheets" screen.

One other kind of frustrating thing is spell checking. One thing I really like about Firefox 2.0 is that it checks spelling for you automatically. When I want to fix the spelling, I just right click on the misspelled word. Only Google Docs takes over the contextual menu. So instead I have to use it's own spell checker. I can understand them taking over the contextual menu, but they should put spelling corrections as part of it. That's MS Word does, too, of course.

Thursday, January 04, 2007

Disappointing Dolphins

Yesterday's news that Nick Saban had left Miami for Alabama was not surprising. It was yet another disappointment in a season of the for Miami. The Dolphins finished so strong last season that I really thought they would be a playoff team this season. When they traded for Daunte Culpepper, I thought they could go deep in the playoffs, depending on how well Daunte had recovered from knee surgery.

Then reality struck. Daunte was nowhere near ready. The offense struggled because of his knee problems, but that wasn't all there was to blame. Losing offensive coordinator Scott Linehan really hurt too. Joey Harrington at QB made the Dolphins passing game roughly equivalent to what it had been at the end of last season, except that Chris Chambers was now missing. I have no idea what happened to him. He looked like he could be the best receiver in the game at the end of last season and that was with nobody throwing to him. Harrington was no worse than Gus Frerotte. Frerotte's QB rating last season was 71.9 while Harrington's rating this season 68.2. Not a huge difference. One can only imagine that if Chambers was playing at anywhere near the level he had played at in 2005 that Harrington's rating would have certainly been higher.

The only good news was that the defense stayed solid. It was another good year for veterans Jason Taylor and Zach Thomas. I think Taylor has a good shot at NFL Defensive Player of the Year, especially since his top competitor, Shawn Merriman, has a steroid cloud hanging over his head. Of course now Taylor is talking about retiring... Having your coach quit probably isn't going to help convince him to stay.

As for Saban going to Alabama... It sucks he has to go to an SEC team! He's a good coach. He's not really getting any more money there, I think he just wanted an easier job. The NFL was too much for him. So it's probably a good thing for Miami in the long run. An offensive minded coach is really needed in Miami. I think Culpepper can still come back as can Chambers. Ronnie Brown definitely progressed this year, and could blow up with a good passing game around him.

Tuesday, January 02, 2007

Digital Holidays

The holidays are over, but hopefully we all have fond memories from the time we spent with our friends and families. The modern spin on this is that it's really easy to digitize those memories now, in this day and age of digital photography. It's easy for everyone to take tons of digital pictures. No more running out of film, and you don't have to wait to get the photos developed. A lot of printers now support direct printing -- just plug in your camera once you're done snapping up shots of the kids opening their presents and print them out to mail them to grandma.

A company downstairs from my company, Presto, has an even easier way to share those digital pictures with grandma. Buy grandma a Presto/HP printer and she'll get a Presto email address. Send your pics to her and they'll print out on her HP printer automagically.

I like to download my pics to my computer still. I usually use Picasa and then upload the pics to Flickr. My friend Terry often has good tips on digital photography in his blog.

Note: This post is sponsored by HP.

Monday, January 01, 2007

NFL Season: Thoughts

The season is over. The playoffs start next week, but first some thoughts about the 2006 regular season.

Surprise Team: Obviously this has to be the New Orleans Saints. I definitely underestimated Drew Brees. I didn't think he had a pro arm. Honestly, I'm still not completely convinced. His season reminds me of Kurt Warner's monster seasons with the Rams. Warner didn't have a pro-arm, benefited from playing in a dome, was surrounded by great talent, played in a great offensive system, and was extremely smart and accurate. That combined for two regular season MVPs (would have been three if his finger wouldn't have been broken) and a Super Bowl MVP. This year's Saints aren't quite as good as those Rams. Brees is as good as Warner, but their combo of McCallister and Reggie Bush is not equal to Marshall Faulk. Marques Colston may be as good as Torry Holt, but Joe Horn is no Isaac Bruce at this point (remember Bruce was #1 with a bullet on that Super Bowl team.) They don't have the O-Line that the Rams had either. The other big surprise to me was how well the Eagles played down the stretch.

Disappointing Team: Pittsburgh Steelers. Yeah I know they had a tough schedule, but it's to understand what happened to them. Their defense was good, but not as good as they were last year (or the year before or the year before that or...) I don't think a tough schedule is enough to justify them being #20 in Pass Defense, especially given their record. The bigger problem though was Roethlisberger. It seemed like he was really becoming a dominant QB in the playoffs last year, and his stats in his first two seasons were excellent. But a 75 QB rating this year is just terrible. Everybody fretted over them losing Jerome Bettis, but Willie Parker was #6 in the NFL in rushing and was tied for 4th in rushing TDs. That's huge. No, the problem on offense was the QB. Pittsburgh proved that the passing game is the most important thing in pro football. They ran the ball well, and they did a great job in stopping the run (#3 in the NFL at 88 ypg,) but they did not throw the ball well and they did not stop the pass well. The result was an 8-8 season. Of course I was also very disappointed with my team, the Miami Dolphins. I'll have to devote an entire blog to that though.

Surprise Players: As mentioned earlier, Drew Brees was a big surprise, as was Jeff Garcia at the end of the season. Frank Gore was awesome for the 49ers. Norv Turner is the greatest RB coach, ever. Look at the amazing success he had with Emmitt Smith, Stephen Davis, Ricky Williams, Lamont Jordan, and now Frank Gore. Sure Emmitt and Ricky Williams were great talents, but even they clearly had their best years playing for Turner. Steven Jackson was also dominant at the end of the season for St. Louis. Who would have guessed that Mike Furrey would have 98 catches? Or that Lee Evans would have 1292 receiving yards. I thought that future Hall-of-Fame WR Marvin Harrison would decline some this year, but instead he had 95 catches, 1366 yards, and 12 TDs. Wow. And what about Aaron Kampman? That's a lot of sacks on a bad team.

Disappointing Players: Also as mentioned, Ben Roethlisberger was a huge disappointment. Same thing for Eli Manning and Michael Vick. The Giants made the playoffs in spite of Manning, and Vick shows no sign of ever being able to quarterback a pro team. His QB rating entering the season was 75.7 and his rating for the season was... 75.7. At leas that was a little better than last year's dismal 73.1. He set a record for QB rushing with 1039 rushing yards. A lot of good that did. He had a career high in rushing attempts and interceptions. Funny that. Other disappointing non-QBs: Shaun Alexander, Willis McGahee, Randy Moss, and Chris Chambers.

MVP: Obviously it's Ladanian Tomlinson. He lead the league in rushing, had a great 5.2 yards/carry, and of course he set a new TD record. He was also the best player on the team with the most wins. Drew Brees was amazing as well, and so was Peyton Manning for that matter. It's easy to take him for granted, but he had less running game and his defense stunk at stopping the run, yet look at all the wins. It's amazing that his team could be so bad against the run, and he could post a 100+ QB rating at the same time.

Playoff Predictions: Super-upset... Kansas City over Indianapolis. Peyton Manning is supposed to be a choker. Indianapolis can't stop the run, and Larry Johnson is a pretty good running back. Dallas also has a good chance against Seattle, who never seemed to play all that well this season. Dallas didn't play so well down the stretch, but at least they looked good at times. There's no way the Jets will beat the Patriots. It's hard to imagine the Giants beating Philadelphia, mostly because of how good the Eagles have played down the stretch and how bad Eli Manning has been... Chicago is very vulnerable in the next round, and I hate to say it, but it's because of Rex Grossman. You just can't turn the ball over like Rex does and win in the playoffs. San Diego definitely seems like the team to beat. They have great balance. Philip Rivers has played great this year, but you have to wonder what he'll do if he's asked to win a game late in the 4th quarter. So... San Diego over New Orleans in the Super Bowl? That's too chalky, so I'll pick San Diego over Philadelphia instead.