The baseball regular season is almost over, thus fantasy baseball is almost over. I had three teams this year, two on ESPN and one on Yahoo. All three were free, but ESPN's service is far superior to Yahoo's. With ESPN you get live scoring, so at any time you can login and see how your team is doing. That's enough reason right there to play ESPN over Yahoo. I found that Yahoo's player news was not nearly as good as ESPN's. There were numerous times that it didn't indicate that a pitcher was going to be starting until just hours before the game actually started. This info was always available 24-48 hours earlier on ESPN. I wound up relying on ESPN to figure out which of my pitchers on Yahoo were starting.
Of course maybe my opinions are horribly biased. My two ESPN teams are winning their leagues easily, but my Yahoo team is in 8th place. So maybe I think ESPN's game is superior just because I've had more success on there.
Anyways, the end of the season gives me a chance to reflect on players that I did a good job of predicting their performance as well as ones that I did not. I had several players that drafted in all of my leagues because I was sure that they would outperform expectations. I also had some that I was sure would under-perform. Here's the ones that I was especially high on.
Chase Utley
Matt Holliday
Mark Teahen
John Smoltz
C.C. Sabathia
Ben Sheets
Five of the six were pretty good, four of the six really good. Obviously Teahen was the big disappointment on the list, and the biggest reach. So it's ok that he bombed, since he was a very late round draft pick. Sheets was also fairly cheap. He may not have been a slam dunk, but his team yielded my best free agent pickup: Ryan Braun. I picked him up on all three teams, and he's been amazing.
I did have one huge screw-up though. That was Carlos Pena. I picked him up in May, and gave up on him because he wasn't playing everyday. This was especially bad for my Yahoo team that never had a good first basemen all season.
So what about predictions for next year... Eh, it's football season. Ask me again in January.
Saturday, September 29, 2007
No Silverlight for You
I attended an MSDN talk this week on Silverlight. It was given by Microsoft evangelist Anand Iyer. If you've been to any Microsoft developer centric events in the Bay Area, chances are that you've got to listen to Anand. He's an excellent speaker and this week's talks were no different. One of the things that makes his talks so good is the honesty. There's no BS, marketing spin.
My chief interest in Silverlight is as an "RIA" technology. I put RIA in quotes because there are different interpretations of that acronym. I was used to a definition similar to the one in Wikipedia: Rich Internet Application. The key in this definition is bringing a desktop-like experience to web applications.
Microsoft's definition is different. They call RIAs: Rich Interactive Applications. To them it is not about web applications with a desktop-like experience. It's about media. This may seem like a minor point, but actually it's the only point worth mentioning to me. It was the most important thing I took away from Anand's speech: Microsoft is only interested in rich media when it comes to Silverlight.
This seemed contradictory to me. After all, they've made a big deal about bringing the CLR to Silverlight 1.1. But Anand was crystal clear on this. If you want to build web applications, then you should be using ASP.NET and all of its great AJAX goodness. You can use Silverlight, but it's going to be very difficult as this is not the focus of Silverlight.
Indeed this message is consistent with the use of Silverlight. You can create a Silverlight application in Visual Studio 8, but you're going to be editing XAML, i.e. XML. Essentially you're creating low-level vector graphics commands wrapped in XML. One of the other attendees at the MSDN talk asked Anand if there is any kind of nice designer that was going to be built in to Visual Studio to make this easier and the answer was "Yes there will be a design view, but it is awful. You need to use Expression Blend."
And there it is. If you want to do Silverlight work, you need Blend. This is a tool made for designers and is not even available to MSDN subscribers. This tool is not meant for developers, and thus Silverlight is not meant for developers.
It's only meant for designers. It's only meant for creating animations or embedding video, etc. That's all Microsoft is going for. Imagine if Adobe got rid of Flex and said "you have to use Flash CS3." That's Microsoft's position.
Again with CLR support built into Silverlight, you might think that it's just a matter of time before it becomes a developer platform. But from what Anand had to say, it's going to be a long itme. There's not going to be developer support in Silverlight 1.1 and Visual Studio 8. VS8 won't be shipping until February and Silverlight 1.1 won't be shipping until next summer. Given that, I would have to guess that it will be at least two years before Silverlight becomes something that can be used by developers. That's truly disappointing.
My chief interest in Silverlight is as an "RIA" technology. I put RIA in quotes because there are different interpretations of that acronym. I was used to a definition similar to the one in Wikipedia: Rich Internet Application. The key in this definition is bringing a desktop-like experience to web applications.
Microsoft's definition is different. They call RIAs: Rich Interactive Applications. To them it is not about web applications with a desktop-like experience. It's about media. This may seem like a minor point, but actually it's the only point worth mentioning to me. It was the most important thing I took away from Anand's speech: Microsoft is only interested in rich media when it comes to Silverlight.
This seemed contradictory to me. After all, they've made a big deal about bringing the CLR to Silverlight 1.1. But Anand was crystal clear on this. If you want to build web applications, then you should be using ASP.NET and all of its great AJAX goodness. You can use Silverlight, but it's going to be very difficult as this is not the focus of Silverlight.
Indeed this message is consistent with the use of Silverlight. You can create a Silverlight application in Visual Studio 8, but you're going to be editing XAML, i.e. XML. Essentially you're creating low-level vector graphics commands wrapped in XML. One of the other attendees at the MSDN talk asked Anand if there is any kind of nice designer that was going to be built in to Visual Studio to make this easier and the answer was "Yes there will be a design view, but it is awful. You need to use Expression Blend."
And there it is. If you want to do Silverlight work, you need Blend. This is a tool made for designers and is not even available to MSDN subscribers. This tool is not meant for developers, and thus Silverlight is not meant for developers.
It's only meant for designers. It's only meant for creating animations or embedding video, etc. That's all Microsoft is going for. Imagine if Adobe got rid of Flex and said "you have to use Flash CS3." That's Microsoft's position.
Again with CLR support built into Silverlight, you might think that it's just a matter of time before it becomes a developer platform. But from what Anand had to say, it's going to be a long itme. There's not going to be developer support in Silverlight 1.1 and Visual Studio 8. VS8 won't be shipping until February and Silverlight 1.1 won't be shipping until next summer. Given that, I would have to guess that it will be at least two years before Silverlight becomes something that can be used by developers. That's truly disappointing.
Tuesday, September 25, 2007
LINQ
I'm attending an MSDN talk today on several subjects. The one I came for is Silverlight. The first session of the day was on LINQ. It was pretty interesting.
LINQ is a real weird bundle of syntax that is being added to C#. The speaker, Anand Iyer, mentioned that it will be implemented in Mono. First it adds a SQL syntax for slicing in memory data. The classic example is around doing sub-selection and ordering of a List. This is nice, but looks funny. Reminds me of Oracle's attempt to get people to write SQL in the middle of JSP pages.
The second part of LINQ is as an ORM for databases and XML. This winds up looking like a bizarre mix of EJB3 and ActiveRecord. Annotations are used to embed mapping (table to class, property to column, etc.) Or you can use "implied" bindings (convention over configuration-ish.) Obviously the latter gives you a lot less code to write. I think you can also use a mix of these things.
It's funny to watch a language evolve. C# started off copying Java, but improving on it. Like Java, it has started to envy some aspects of dynamic languages. Microsoft has been able to move much faster with C# than Sun has with Java. Of course a big part of that is that it's a younger, much less widely used language. The stuff in LINQ really allows for syntax that looks eerily like Ruby or Python with constructs like someObj.find(name=>"Bob") At the same time, you get to keep a lot IntelliSense, which is huge for developer productivity.
If you've ever wondered what Java would look like if you could mix-in Groovy, then take a look at LINQ. It's a mess. It really looks crazy. It even made the speaker crazy. He kept trying to correct indentation and spacing to make it look legible. I guess that's what we all have to look forward to in Java. It also makes me appreciate ActionScript. It's come from the other direction, starting out completely dynamic and becoming strongly typed (which bought them a 10x+ performance boost.) Look at a complex ActionScript 3.0 class and a C# class that uses LINQ. From a pure "grammarian" perspective, you will really appreciate AS3.
LINQ is a real weird bundle of syntax that is being added to C#. The speaker, Anand Iyer, mentioned that it will be implemented in Mono. First it adds a SQL syntax for slicing in memory data. The classic example is around doing sub-selection and ordering of a List. This is nice, but looks funny. Reminds me of Oracle's attempt to get people to write SQL in the middle of JSP pages.
The second part of LINQ is as an ORM for databases and XML. This winds up looking like a bizarre mix of EJB3 and ActiveRecord. Annotations are used to embed mapping (table to class, property to column, etc.) Or you can use "implied" bindings (convention over configuration-ish.) Obviously the latter gives you a lot less code to write. I think you can also use a mix of these things.
It's funny to watch a language evolve. C# started off copying Java, but improving on it. Like Java, it has started to envy some aspects of dynamic languages. Microsoft has been able to move much faster with C# than Sun has with Java. Of course a big part of that is that it's a younger, much less widely used language. The stuff in LINQ really allows for syntax that looks eerily like Ruby or Python with constructs like someObj.find(name=>"Bob") At the same time, you get to keep a lot IntelliSense, which is huge for developer productivity.
If you've ever wondered what Java would look like if you could mix-in Groovy, then take a look at LINQ. It's a mess. It really looks crazy. It even made the speaker crazy. He kept trying to correct indentation and spacing to make it look legible. I guess that's what we all have to look forward to in Java. It also makes me appreciate ActionScript. It's come from the other direction, starting out completely dynamic and becoming strongly typed (which bought them a 10x+ performance boost.) Look at a complex ActionScript 3.0 class and a C# class that uses LINQ. From a pure "grammarian" perspective, you will really appreciate AS3.
Monday, September 24, 2007
It's That Time Again
Time for Terry to fan the flames and listen to the ROR... In truth Terry is an avid Rails freelancer. He charges even less than what "average" PHP programmers charge for their hackin', just because he enjoys The Rails Way so much. When he says he is "sick" or "drunk", he's actually busy creating another blog site with Rails (he's up to twenty-four now, and is yet to write a single line of configuration.)
Thursday, September 20, 2007
Remembering
I was watching a clip of Move.On's Eli Parser defending their ad against General Petraeus. He made the analogy that he wished he could have attacked then Secretary of State, General Colin Powell after Powell presented the "facts" about Iraq's WMD program to the UN just before the Iraq War started. The brought back memories of the beginning of the war.
Where Were You When?
I'll never forget where I was when the war started. I was on a JetBlue plane going to Las Vegas. I was meeting up with all my old college buddies for the opening weekend of March Madness. JetBlue was DirecTV onboard, so I got to watch CNN showing live coverage of "Shock and Awe." It was a moment that really showed what generation I belong to: flying on a plane, watching satellite television of the beginning of a war in the Middle East.
Obligatory "I told you so" Rant
Later on that evening in Vegas, I was sitting in the coffee shop of the Monte Carlo, where we were all staying. I was talking to two of my friends about what was going on in Iraq. My stance then was simple: Give the public the real reasons for the war and maybe it is justified, but don't give false reasons. We live in a democracy, and we can't undertake the ultimate act of a nation-state, war, without honest reasons for it. My father was the veteran of three wars, and he taught me that war is the most horrible thing in the world, but sometimes it is necessary. Was Iraq necessary? There's no way to answer that question without the real reasons.
Alan Greenspan
Which brings me to Alan Greenspan. You gotta figure this guy is feeling some heat with the housing bubble (that he certainly helped create) busting all around. Talk about terrible timing, too: he just released his memoirs. Can't imagine too many of those foreclosure "victims" will be buying that. It did contain one nugget that has turned into controversy. Greenspan claimed that the "Iraq war is largely about oil."
Wait a minute, didn't I see people in the streets of San Francisco four years ago claiming this? Of course Greenspan has changed his story, I mean clarified his statement. But it brings up an interesting what-if.
Any Reason Will Do
What if the President was honest and had said in 2003 "we need to invade Iraq to secure strategic resources vital to our economy." I'm not saying that would have been honest, though maybe Greenspan thinks it would. Would people have gone along with it? There might have been a typical red-blue divide on it, much more of a divide than we saw back in 2003, but so what?
There was a lot of blood lust in the air because of 9/11, and that was the biggest reason why people were willing for us to go to war. Not lies from the President. Not fear of WMDs. Not thirst for oil. Nope, it was a thirst for payback that Afghanistan did not quench. Any Arabic target with any reason might have done just fine. There was probably no need for Colin Powell to lie to the UN.
The Blood on Our Hands
That's what nobody wants to admit. You can't just blame Bush, Cheney, and Rumsfeld. We're all to blame. Look at all those Democrats who voted for the war, and who even now are reluctant to take real steps to bring it to an end. The American people would love to wash their hands of it now, but unfortunately it's not so easy. We're going to pay for this sin for a long time.
Wednesday, September 19, 2007
MX.Bloat
I've heard lots of folks complain about how using any ActionScript classes from Adobe causes extreme bloat. A lot of this is Flex framework related, and Adobe is hard at work at solving this problem by caching the framework on the Flash player. But sometimes it's even more subtle.
I was writing a library class today. I ran across two common problems. First, I needed to do some value based comparison. There should really be an equals method in ActionScript to make this trivial, but whatever. I came across this blog stating that you need to use the mx.utils.ObjectUtil class to do value based comparison. This is still not as good as having an equals method to override, because it's all or nothing, but it was good enough.
Next, I needed to do some rounding on a floating point number to a given precision. Once again there is something in ActionScript in the mx.formatters.NumberBase class. It has a formatRoundWithPrecision function that was exactly what was needed. It was a little awkward, since it takes in a String not a Number, but again whatever.
Using these two library classes caused my library to triple in size! The SWC went from 11kb to 38kb. I had added some other code, too, but it wasn't that much. So I stripped out these two function calls, implemented them myself. Now my SWC was back down to 13kb.
I knew using the Flex framework was expensive, but this was not the Flex framework. This was just a couple of utility classes.
I was writing a library class today. I ran across two common problems. First, I needed to do some value based comparison. There should really be an equals method in ActionScript to make this trivial, but whatever. I came across this blog stating that you need to use the mx.utils.ObjectUtil class to do value based comparison. This is still not as good as having an equals method to override, because it's all or nothing, but it was good enough.
Next, I needed to do some rounding on a floating point number to a given precision. Once again there is something in ActionScript in the mx.formatters.NumberBase class. It has a formatRoundWithPrecision function that was exactly what was needed. It was a little awkward, since it takes in a String not a Number, but again whatever.
Using these two library classes caused my library to triple in size! The SWC went from 11kb to 38kb. I had added some other code, too, but it wasn't that much. So I stripped out these two function calls, implemented them myself. Now my SWC was back down to 13kb.
I knew using the Flex framework was expensive, but this was not the Flex framework. This was just a couple of utility classes.
Mint
Congrats to Mint for winning the TechCrunch40 Top Company award. I was recruited by Mint's VP of Engineering, David Michaels, earlier this year when Ludi Labs was winding down. I was very impressed with their technology. I was impressed with their business model, too, but what do I know about business models? I'm a lot harder to impress when it comes to technology. Apparently their business model is indeed pretty good. Seems like a killer combination: technology, business model, and now lots of press...
Tuesday, September 18, 2007
Facebook JavaScript
Just yesterday I was reading Marc Andreesen's latest musings on "platforms." He characterized Facebook's F8 platform as a plugin platform, where everything runs on your server but is shown inside the context of a page on Facebook. Technically he's wrong. If your application uses the Facebook Markup Language (FBML) then a Facebook server interprets the response from your server before sending a final response to the end user. After all, no browser supports FBML (yet?) so something has to turn it into HTML and JavaScript.
Of course a lot of applications don't use FBML at all, and use the IFrame approach instead. I am currently working on just such an application. My reason was not using FBML was simple: I needed JavaScript. I didn't even need complicated JavaScript. I just needed to let users click on an image, then set some hidden fields and submit a form. Pretty simple really, but not possible with FBML. Until today.
I go on Facebook this morning and what do I see? An announcement about Facebook JavaScript. I had actually seen this mentioned as being in beta a couple of weeks ago, and I guess it went from beta to production very rapidly.
Looking at its documentation, the were two puzzling things. First, you have to put your JS, err I mean FBJS, inside XML comments... That's a minor thing, and I can easily imagine how it simplifies their parsing of the response from your server. Next, they've wrapped almost all the DOM properties and methods. This makes sense, after all they don't want people to actually get the real DOM object and start screwing around with Facebook's real estate. But their wrapper uses getter/setters for all the properties ... That just seems arbitrary. If Facebook was written using Rails I would expect something like that, but I don't expect something like this from PHP guys.
There were also some very expected things. Like no JS runs on the profile unless it is triggered by what Facebook is calling an "active" event (like clicking on an image or link.) You can't subclass Array or Function. Does this prevent you from accessing their prototype and overriding default behavior?
Anyways, I am happy to see FBJS. I wish it would have been out sooner, as I think it could have simplified some work I've done in the past.
Of course a lot of applications don't use FBML at all, and use the IFrame approach instead. I am currently working on just such an application. My reason was not using FBML was simple: I needed JavaScript. I didn't even need complicated JavaScript. I just needed to let users click on an image, then set some hidden fields and submit a form. Pretty simple really, but not possible with FBML. Until today.
I go on Facebook this morning and what do I see? An announcement about Facebook JavaScript. I had actually seen this mentioned as being in beta a couple of weeks ago, and I guess it went from beta to production very rapidly.
Looking at its documentation, the were two puzzling things. First, you have to put your JS, err I mean FBJS, inside XML comments... That's a minor thing, and I can easily imagine how it simplifies their parsing of the response from your server. Next, they've wrapped almost all the DOM properties and methods. This makes sense, after all they don't want people to actually get the real DOM object and start screwing around with Facebook's real estate. But their wrapper uses getter/setters for all the properties ... That just seems arbitrary. If Facebook was written using Rails I would expect something like that, but I don't expect something like this from PHP guys.
There were also some very expected things. Like no JS runs on the profile unless it is triggered by what Facebook is calling an "active" event (like clicking on an image or link.) You can't subclass Array or Function. Does this prevent you from accessing their prototype and overriding default behavior?
Anyways, I am happy to see FBJS. I wish it would have been out sooner, as I think it could have simplified some work I've done in the past.
johnsonvlissides
Monday, September 17, 2007
Unlucky Braves
My favorite baseball team, the Atlanta Braves, are just about out of the playoff picture. And that's too bad. Statistically, they are one of the best teams in the NL. If you use the Pythagorean formula, then Atlanta would have the second best record in the NL, just behind Arizona and just ahead of New York. In the "but that's why they play the game" world, the Braves have seven fewer wins then they should statistically. That's by far the most unlucky of any team in baseball. The most lucky by the way (no surprise here) is the Arizona Diamondbacks, who is in first place in the NL West despite having been outscored by their opponents.
Most people will blame the Braves pitching staff for their record. That's not really fair. They are middle of the pack in almost every pitching category, and are pretty (5th) in opponents on-base-percentage (despite the most intentional walks by far.) Oh, but it's the bullpen's fault, right? After all, the Braves cut their closer in the middle season. Nope, their bullpen is middle of the pack, too, in terms of blown saves and save percentage. It's not the pitching staff's fault. It's just bad luck. People hate to admit how important luck is in baseball.
If the Braves were having a luckier season, then Chipper Jones (my favorite player) would probably warrant some MVP votes. He had a DL stint which cost him in raw totals. Right now he leads the NL in batting, and is third in on-base percentage, second in slugging. He's second in runs created per 27 outs. He trails Barry Bonds in most of these categories. Yeah that Barry Bonds, the guy that everyone here in the Bay Area can't wait to get rid of at the end of the season.
As it is, it seems all but given that Prince Fielder will be NL MVP. Maybe Matt Holiday or Ryan Howard can sneak in there, just because RBIs are so overrated. Fielder's huge lead in homers and Milwaukee's feel good story seem like too much to overcome. As for the other individual awards:
Most people will blame the Braves pitching staff for their record. That's not really fair. They are middle of the pack in almost every pitching category, and are pretty (5th) in opponents on-base-percentage (despite the most intentional walks by far.) Oh, but it's the bullpen's fault, right? After all, the Braves cut their closer in the middle season. Nope, their bullpen is middle of the pack, too, in terms of blown saves and save percentage. It's not the pitching staff's fault. It's just bad luck. People hate to admit how important luck is in baseball.
If the Braves were having a luckier season, then Chipper Jones (my favorite player) would probably warrant some MVP votes. He had a DL stint which cost him in raw totals. Right now he leads the NL in batting, and is third in on-base percentage, second in slugging. He's second in runs created per 27 outs. He trails Barry Bonds in most of these categories. Yeah that Barry Bonds, the guy that everyone here in the Bay Area can't wait to get rid of at the end of the season.
As it is, it seems all but given that Prince Fielder will be NL MVP. Maybe Matt Holiday or Ryan Howard can sneak in there, just because RBIs are so overrated. Fielder's huge lead in homers and Milwaukee's feel good story seem like too much to overcome. As for the other individual awards:
- NL Cy Yong: Jake Peavy in a landslide. If the season ended today, he'd win the triple crown!
- AL MVP: Alex Rodriguez in a landslide. Magglio Ordononez will get some votes, since he leads the league in batting and is second to A-Rod in RBIs, but that's just silly. A-Rod leads the AL in HRs by 12! Oh and if anybody cares, he's by far the leader in both runs created and runs created per 27 outs.
- AL Cy Young: Statistically no clear front runner. Can you believe there are eight AL pitchers with ERAs less than 3.50! Seems like most folks think it's a two pitcher race between Josh Beckett (leads the league in wins) and C.C. Sabathia. That's funny since C.C.'s teammate, Fausto Carmona, leads the league in ERA (just barely, but still) and has 17 wins just like C.C. I think Beckett will win it, just because Boston is the best team in AL by far.
Sunday, September 16, 2007
Are They Really This Good?
Two weeks ago I was at a friend's house in San Francisco watching Cal play Tennessee. Somebody asked me who I was rooting for. I stated that I would usually root for an SEC team, but that I hate Tennessee. I felt compelled to repeat that with emphasis: I hate Tennessee.
So I really enjoyed watching Florida crush Tennessee yesterday. I found myself wondering: Is Florida really this good? I mean 59-20 !?!?
In all fairness, Florida got lucky. It was 28-20 when Tennessee fumbled the ball and Florida ran it in for a touchdown. Tennessee seemed to really fold after that. But isn't that how any blowout goes? There's some back-breaking play and the loser folds? One of the hallmarks of a great team is sensing this and jumping on it. That's exactly what Florida did yesterday.
Are they a great team? Hard to say. I will say this, barring some kind of awful injuries, Florida's offense is great. I thought they would be great next year, but we didn't have to do wait. When Urban Meyer came to Florida, every Gator fan thought "wow what would this guy's offense look like with the kind of athletic talent the state of Florida grows?" Certainly this had to be part of what Meyer wondered too when he accepted the job at Florida after turning down the Notre Dame job.
Now we know what the answer is. It's not the speed option anymore, it's the supersonic option. It's like watching a kick return on every play. There's so much action going on. And oh man, how it opens up the passing game! Did you see the 49 yard pass from Tebow to Harvin from the Florida 1 yard line? What made it so ridiculous was that it was play action. Play action from your own end zone? Unthinkable normally, but not when you can do play action on a three step drown and not involve the running back. The play action was to Tebow. He faked like he was going to run. Truth be known, that play should have gone a TD. A year from now, you can be sure it will, but Tebow was a little excited on that play and his throw wasn't as accurate as usual.
Harvin is the real key. His health scares me at times. He seems a little fragile. He's as talented as Reggie Bush in my opinion. He is such a perfect fit for Florida's offense. He makes the running game scarier, not to mention the passing game. I can't wait to see what LSU tries to do against him.
And of course that's when we really find out how good Florida is. LSU is such a hard place to win at, and their defense is ridiculous. I'm not too scared of their offense though. It's going to come down to strength against strength.
So I really enjoyed watching Florida crush Tennessee yesterday. I found myself wondering: Is Florida really this good? I mean 59-20 !?!?
In all fairness, Florida got lucky. It was 28-20 when Tennessee fumbled the ball and Florida ran it in for a touchdown. Tennessee seemed to really fold after that. But isn't that how any blowout goes? There's some back-breaking play and the loser folds? One of the hallmarks of a great team is sensing this and jumping on it. That's exactly what Florida did yesterday.
Are they a great team? Hard to say. I will say this, barring some kind of awful injuries, Florida's offense is great. I thought they would be great next year, but we didn't have to do wait. When Urban Meyer came to Florida, every Gator fan thought "wow what would this guy's offense look like with the kind of athletic talent the state of Florida grows?" Certainly this had to be part of what Meyer wondered too when he accepted the job at Florida after turning down the Notre Dame job.
Now we know what the answer is. It's not the speed option anymore, it's the supersonic option. It's like watching a kick return on every play. There's so much action going on. And oh man, how it opens up the passing game! Did you see the 49 yard pass from Tebow to Harvin from the Florida 1 yard line? What made it so ridiculous was that it was play action. Play action from your own end zone? Unthinkable normally, but not when you can do play action on a three step drown and not involve the running back. The play action was to Tebow. He faked like he was going to run. Truth be known, that play should have gone a TD. A year from now, you can be sure it will, but Tebow was a little excited on that play and his throw wasn't as accurate as usual.
Harvin is the real key. His health scares me at times. He seems a little fragile. He's as talented as Reggie Bush in my opinion. He is such a perfect fit for Florida's offense. He makes the running game scarier, not to mention the passing game. I can't wait to see what LSU tries to do against him.
And of course that's when we really find out how good Florida is. LSU is such a hard place to win at, and their defense is ridiculous. I'm not too scared of their offense though. It's going to come down to strength against strength.
Tuesday, September 11, 2007
Open Letter to the President and Congress
I subscribe to several progressive mailing lists. Through those sites, I get lots of "sign this petition" or "donate money" or "write a letter" solicitations. Now I am far from progressive, but that's ok. Sometimes I agree with their topic, and participate. For example, I've signed anti-war petitions and sent anti-war letters to the San Jose Mercury. Sometimes I got solicited and I have the opposite viewpoint. I respond to those too, as that's part of why I subscribe to these mailing lists.
Today I got an email soliciting me to write the President and Congress on bailing out homeowners who are being foreclosed. I'm pretty sure that I was supposed to support more aggressive bailout maneuvers, but of course I advocated just the opposite. Here's what I wrote:
The last seven years have demonstrated the inherent problems with the Federal Reserve System. An attempt to soften a recession lead to massive debt and yet another unsustainable boom. Once again we find ourselves at the beginning of an economic correction. Will we continue to make the same mistakes as in the past? Will we try to soften things again, but this time by spending billions of taxpayer dollars to bail out failed speculators and foolish home buyers? Please let the answer be no this time. Let speculators fail and let homes get foreclosed. It's the only way for the market to correct itself and reward the people who did not make bad decisions by borrowing more than they could repay. Our national debt is so huge and the dollar is so weak, don't make things worse by wasting the tax dollars of future generations on the irresponsibility of the current one.
Today I got an email soliciting me to write the President and Congress on bailing out homeowners who are being foreclosed. I'm pretty sure that I was supposed to support more aggressive bailout maneuvers, but of course I advocated just the opposite. Here's what I wrote:
The last seven years have demonstrated the inherent problems with the Federal Reserve System. An attempt to soften a recession lead to massive debt and yet another unsustainable boom. Once again we find ourselves at the beginning of an economic correction. Will we continue to make the same mistakes as in the past? Will we try to soften things again, but this time by spending billions of taxpayer dollars to bail out failed speculators and foolish home buyers? Please let the answer be no this time. Let speculators fail and let homes get foreclosed. It's the only way for the market to correct itself and reward the people who did not make bad decisions by borrowing more than they could repay. Our national debt is so huge and the dollar is so weak, don't make things worse by wasting the tax dollars of future generations on the irresponsibility of the current one.
Friday, September 07, 2007
Today's Roid Roundup
I'm somewhat embarrassed to say this, but a mainstream journalist (Jayson Stark) actually wrote something that I half-way agree with. His point was that there is a double standard when it comes to steroid controversies. Barry Bonds get crucified, but Rick Ankiel and Rodney Harrison get a pass. He's right that there's a huge double standard, and there shouldn't be. Of course the "single standard" that he and I would prescribe are probably quite different.
I've said it before, but I'll say it again. I don't care that Rick Ankiel used HGH. I don't care if Barry Bonds used HGH. There that is a single standard, and a very easy one. It involves no qualifiers about their positions, the rules of the game, quantification or qualification of empirical evidence, etc. Just say "I don't care." It's easy really.
If I'm watching a baseball game, I hope to see the highest level of play possible. I don't care what it took to get to that level of play, that's somebody else's problem. Now the law might care, and if it does, so be it. Arrest Rick Ankiel if you want, just like you arrested Michael Vick. If we start talking law, I would argue against laws against drugs, but would argue for laws against dog fighting, but that's beside the point. I can't be too unhappy with somebody getting arrested for breaking a well-known law.
Jayson Stark is generally a complete idiot who is wrong too often to be funny. But he's right. It's really all a matter of if people like a particular athlete or not. If they do, then they don't care about steroids. If they don't, then they're just looking for any reason to defame, and steroids is an easy one ("You cheater! Think about the children!") Stark better watch out, or he'll wind up being really cynical about the public. And that's not good for ratings...
I've said it before, but I'll say it again. I don't care that Rick Ankiel used HGH. I don't care if Barry Bonds used HGH. There that is a single standard, and a very easy one. It involves no qualifiers about their positions, the rules of the game, quantification or qualification of empirical evidence, etc. Just say "I don't care." It's easy really.
If I'm watching a baseball game, I hope to see the highest level of play possible. I don't care what it took to get to that level of play, that's somebody else's problem. Now the law might care, and if it does, so be it. Arrest Rick Ankiel if you want, just like you arrested Michael Vick. If we start talking law, I would argue against laws against drugs, but would argue for laws against dog fighting, but that's beside the point. I can't be too unhappy with somebody getting arrested for breaking a well-known law.
Jayson Stark is generally a complete idiot who is wrong too often to be funny. But he's right. It's really all a matter of if people like a particular athlete or not. If they do, then they don't care about steroids. If they don't, then they're just looking for any reason to defame, and steroids is an easy one ("You cheater! Think about the children!") Stark better watch out, or he'll wind up being really cynical about the public. And that's not good for ratings...
GWT 1.4
I recently finished writing a series of four articles for IBM on GWT. You might recall that earlier this year I wrote a two-part tutorial on GWT. The new articles for IBM aren't as introductory, though they don't require a lot of prior GWT knowledge. They're definitely more advanced though. I wrote the articles using the 1.4 release candidates, and then last week 1.4 went final. So I figured it was time to look at how GWT has progressed since the last time I wrote about it.
So that addresses my old pain points. Not much progress has been made. There are some new good points.
So all in all, GWT has made some nice improvements and added some new features. They have not addressed the things that are their most blaring weaknesses (IMO), but then again those are probably the hardest things to address. I was surprised though. From my last big write up, I got a lot of feedback from people talking about how these exact issues were being addressed, i.e. that the work was already in progress. Was that really the case?
- Cross Platform Problems -- Hard for me to say how much things progressed. I did almost everything on my MacBook, and things had always worked well on OSX. I did do a little on Windows. I had to do a little more configuration to get it to correctly run in hosted mode than I did on OSX.
- Obfuscation -- Still a problem. Of course you can turn it off, which is good. Still, I pity the fool trying to debug GWT JS in Firebug.
- No Java 5 -- Still a problem. GWT will choke on a List
, but String[] is ok. Also, any annotations will choke it as well. So no returning @Entity classes from your RPC services. Lots of boilerplate code to write -- Still a problem. You still have to write two interfaces and one class to create an RPC service. Inserting GWT into an existing page is easier, with just a single JS file to include. Better build support needed -- This has a improved a little. The ant script that is generated is slightly more useful than the previous version. Still frustrating that there's no build script generated for creating a WAR file. You don't have to use GWT with a Java application server, but obviously a lot of people are. The RPC services require it as well. RPC is bad -- Of course that can't change! RPC is still bad. I like how in the documentation, the GWT team mentions two different design philosophies for RPC services. One is to create RPC's specifically for the web application. The other is to have general purpose ones that can be re-used by many clients. Good luck on that last one. That would mean your general purpose services can only accept and return classes from the subset of Java 1.4 that GWT supports.
So that addresses my old pain points. Not much progress has been made. There are some new good points.
Performance improvements -- Ok, they've really done a good job here. Things are snappy even on a page where you use lots of generated JS to create your UI. More Widgets -- Steady progress has been made here. You can get pretty far just using their widgets. I haven't tried out any of the commercial WYSIWYGs built for GWT, but these seem more viable and useful with more widgets. Of course, their widgets are very limited. They definitely aren't components. Compare a GWT widget to a Flex component, for example, and it's not even funny. GWT's widgets are pretty lightweight, but are low in functionality compared to similar abstractions found in similar frameworks. Image Bundles -- Very cool new feature. I like how they use CSS to get nice layout of the images from the bundle. It seems like a great way to optimize the static assets in your app. Seems like it might play tricks with a user who wants to right-click on one of your images and do save-as, but oh well. - Localization -- This has always been there, but it seems better documented and exposed now. Plus there is a command line tool for it. It's pretty nice, though I question the logic behind doing your localization in code that is going to be converted to JavaScript and executed on the client.
So all in all, GWT has made some nice improvements and added some new features. They have not addressed the things that are their most blaring weaknesses (IMO), but then again those are probably the hardest things to address. I was surprised though. From my last big write up, I got a lot of feedback from people talking about how these exact issues were being addressed, i.e. that the work was already in progress. Was that really the case?
Thursday, September 06, 2007
More iPhone/iPod Thoughts
I didn't pay much attention to the price discount on the iPhone yesterday. I have no interest in an iPhone since I love my Blackberry and I like being on a 3G network. But in terms of business, the $200 price cut on the iPhone is big news. The obvious analysis from every wannabe Wall Street analyst all the way up to the real guys is that the only reason you'd cut the price of the iPhone is if it is not selling. That is an obvious reason to cut the price, and that is the most likely reason. But let me play devil's advocate for a moment.
The thing that caught my attention yesterday was the iPod Touch. Let's forget about why Apple released this wonderful looking gizmo for a moment. Let's just look at its price point. It's $300 for an 8GB iPod Touch. Imagine if the iPhone was still being priced at $600 for the 8GB version. That would mean you have to pay twice as much to get cell phone features added to your iPod Touch (remember the equation iPhone - phone = iPod Touch.) That's right, $300 just for phone features. In short, the iPod Touch @ $300 would really cut into iPhone sales @ $600.
So maybe Apple should charge more for the iPod Touch? Maybe it should go for $500? Ok, that's one way to go. Keep margins high across the board. Obviously there would be lower sales of the iPod Touch, but unaffected sales of the iPhone. There's clearly some calculus that could be done here with an examination of lower or higher prices for both iPod Touch and iPhone. Looks like the lower prices won out.
Then there's the other option of just not releasing the iPod Touch at all. There's clearly an untapped market for people who like the iPhone but will have nothing to do with AT&T. I should know because I'm in that market. So not releasing the iPod Touch would definitely leave some money on the table. Again there's a clear calculus here. How much money do they lose by cutting iPhone prices vs. how much are they gaining by introducing the iPod Touch. Keep in mind that some of the losses in iPhone prices are bound to be made up by higher sales.
So maybe the iPhone sales have stunk it up, but there's more variables in play here. I personally think that iPhone sales have been better than expected and that this was the plan all along. If you look at it in terms of Apple maintaining their monopoly on MP3 sales, and thus digital music downloads, this seems to make a lot of sense. That's their cash cow, not the iPhone.
One last iPhone related thing... The launch of the iTunes Wi-Fi Music Store is very interesting to me. Is it a pure web app? Apple claimed that there would be no special apps for the iPhone, it would just be a web app device. Are they eating their own dog food here, or is there some kind of binary being downloaded to iPhones via software update and being pre-loaded on the iPod Touch.
The thing that caught my attention yesterday was the iPod Touch. Let's forget about why Apple released this wonderful looking gizmo for a moment. Let's just look at its price point. It's $300 for an 8GB iPod Touch. Imagine if the iPhone was still being priced at $600 for the 8GB version. That would mean you have to pay twice as much to get cell phone features added to your iPod Touch (remember the equation iPhone - phone = iPod Touch.) That's right, $300 just for phone features. In short, the iPod Touch @ $300 would really cut into iPhone sales @ $600.
So maybe Apple should charge more for the iPod Touch? Maybe it should go for $500? Ok, that's one way to go. Keep margins high across the board. Obviously there would be lower sales of the iPod Touch, but unaffected sales of the iPhone. There's clearly some calculus that could be done here with an examination of lower or higher prices for both iPod Touch and iPhone. Looks like the lower prices won out.
Then there's the other option of just not releasing the iPod Touch at all. There's clearly an untapped market for people who like the iPhone but will have nothing to do with AT&T. I should know because I'm in that market. So not releasing the iPod Touch would definitely leave some money on the table. Again there's a clear calculus here. How much money do they lose by cutting iPhone prices vs. how much are they gaining by introducing the iPod Touch. Keep in mind that some of the losses in iPhone prices are bound to be made up by higher sales.
So maybe the iPhone sales have stunk it up, but there's more variables in play here. I personally think that iPhone sales have been better than expected and that this was the plan all along. If you look at it in terms of Apple maintaining their monopoly on MP3 sales, and thus digital music downloads, this seems to make a lot of sense. That's their cash cow, not the iPhone.
One last iPhone related thing... The launch of the iTunes Wi-Fi Music Store is very interesting to me. Is it a pure web app? Apple claimed that there would be no special apps for the iPhone, it would just be a web app device. Are they eating their own dog food here, or is there some kind of binary being downloaded to iPhones via software update and being pre-loaded on the iPod Touch.
Elite Colleges
Just finished reading Paul Graham's latest blog about how overvalued degrees from "elite colleges" are. Obviously I am very biased on this topic, as I went to a college that would be considered elite by folks like Graham. So of course I disagree with Graham, right? Sort of.
I might sound rather arrogant to say "no elite schools produce smarter, more capable professionals." Instead I'm going to say something even more arrogant: most elite schools do not produce more capable professionals, but there is one that does and that's my alma mater, Caltech. So basically Graham is right, except when the school in question is my school!
When I was a freshman at Caltech, I had a very good high school friend who was a freshman at Harvard. She and I would talk on the phone every week. I had also been accepted to Harvard, and a lot of my family and teachers were disappointed that I went to Caltech instead of Harvard. So I was very interested in what life was like there, since I could have gone there.
Anyways, my friend at Harvard told me her schedule one night. My dorm room had a white board on the outside of it. I wrote her schedule on it. Everybody who walked by got a good chuckle out of it. It was humorous for a Caltech student. Why? You could only take four classes at Harvard. You had to get special permission to take more than that. Four classes was the minimum you could take at Caltech. You had to get special permission to take less than that. In amusing mathematical terms Max(Harvard) <= Min(Caltech)
I had another classmate at Caltech who had a tough time there. He felt like it was just too hard, so after his freshman year he transferred to Yale. A year later he transferred back to Caltech. Why? He said that after going to Caltech, Yale was a complete joke. Even though he was miserable at Caltech, he knew he had to go there.
The point of these anecdotes is that Caltech is a unique place. Not everybody who comes out of there is guaranteed for success. Ask Terry about Caltech, and he'll tell you that Google's dominance in search vs. Yahoo is evidence of the inadequacies of a Caltech education. However, Caltech is a tough place to survive. A lot of students don't survive in fact. There's a certain amount of intelligence and even more determination needed to get through. That's why Caltech grads are fundamentally different than grads from other elite schools.
I might sound rather arrogant to say "no elite schools produce smarter, more capable professionals." Instead I'm going to say something even more arrogant: most elite schools do not produce more capable professionals, but there is one that does and that's my alma mater, Caltech. So basically Graham is right, except when the school in question is my school!
When I was a freshman at Caltech, I had a very good high school friend who was a freshman at Harvard. She and I would talk on the phone every week. I had also been accepted to Harvard, and a lot of my family and teachers were disappointed that I went to Caltech instead of Harvard. So I was very interested in what life was like there, since I could have gone there.
Anyways, my friend at Harvard told me her schedule one night. My dorm room had a white board on the outside of it. I wrote her schedule on it. Everybody who walked by got a good chuckle out of it. It was humorous for a Caltech student. Why? You could only take four classes at Harvard. You had to get special permission to take more than that. Four classes was the minimum you could take at Caltech. You had to get special permission to take less than that. In amusing mathematical terms Max(Harvard) <= Min(Caltech)
I had another classmate at Caltech who had a tough time there. He felt like it was just too hard, so after his freshman year he transferred to Yale. A year later he transferred back to Caltech. Why? He said that after going to Caltech, Yale was a complete joke. Even though he was miserable at Caltech, he knew he had to go there.
The point of these anecdotes is that Caltech is a unique place. Not everybody who comes out of there is guaranteed for success. Ask Terry about Caltech, and he'll tell you that Google's dominance in search vs. Yahoo is evidence of the inadequacies of a Caltech education. However, Caltech is a tough place to survive. A lot of students don't survive in fact. There's a certain amount of intelligence and even more determination needed to get through. That's why Caltech grads are fundamentally different than grads from other elite schools.
Wednesday, September 05, 2007
New iPods
I've been thinking about buying a new iPod Nano. I've had mine for two years, and its been a little flaky lately. I had to do a restore on it, losing some workout data. It froze up on me, and I had to do a soft reset. It's had some unexplainable loss of battery, where it suddenly only got an hour of play off a full charge (it then got four hours of play on a subsequent full charge.) I knew Apple was planning on new iPods though, so there was no point in buying one until the new ones rolled out. That day was today.
Thew new Nano is interesting. It's cool that it can play video. The pricing is nice, with 8GB for $200 (my 1st gen Nano was $250 for 4GB.) However, it is not backwards compatible! What do I mean? Well it looks like it would still work with my Nike+iPod kit. That is good. The new form factor will definitely not work with my existing Marware armband. A protective armbad is essential for anybody who uses their Nano to work out. So that is bad. Right now the only armbands are the weak one from Apple. These are not sweat-proof. So maybe I'll buy a new Nano, but only Marware (or somebody) has a protective armband.
But wait, there's more. There was a new iPod, now dubbed the Classic. You gotta love a 160GB iPod.
The big news is obviously the iPod Touch. Apple took the iPhone and ripped out the phone part. Perfect! Perfect! Perfect! For $100 more than the Nano, you get a bigger screen with Wi-Fi and Safari. Ok, so it's not quite the iPhone sans AT&T. Looks like it is missing some of the iPhone's widgets, namely email. Email sucks on the iPhone when compared to my Blackberry anyways. Now somebody just needs to get Skype on the iPod Touch and Apple's conversion to the dark side will be complete.
As for me, I don't think the iPod Touch would be useful for running. I don't think I'd be able to use the Nike+ thing, and I've heard the iPhone's headphones jack is weird. So my Sennheiser sweat-and-wind proof headphones might not work either. That's how Apple rolls.
Thew new Nano is interesting. It's cool that it can play video. The pricing is nice, with 8GB for $200 (my 1st gen Nano was $250 for 4GB.) However, it is not backwards compatible! What do I mean? Well it looks like it would still work with my Nike+iPod kit. That is good. The new form factor will definitely not work with my existing Marware armband. A protective armbad is essential for anybody who uses their Nano to work out. So that is bad. Right now the only armbands are the weak one from Apple. These are not sweat-proof. So maybe I'll buy a new Nano, but only Marware (or somebody) has a protective armband.
But wait, there's more. There was a new iPod, now dubbed the Classic. You gotta love a 160GB iPod.
The big news is obviously the iPod Touch. Apple took the iPhone and ripped out the phone part. Perfect! Perfect! Perfect! For $100 more than the Nano, you get a bigger screen with Wi-Fi and Safari. Ok, so it's not quite the iPhone sans AT&T. Looks like it is missing some of the iPhone's widgets, namely email. Email sucks on the iPhone when compared to my Blackberry anyways. Now somebody just needs to get Skype on the iPod Touch and Apple's conversion to the dark side will be complete.
As for me, I don't think the iPod Touch would be useful for running. I don't think I'd be able to use the Nike+ thing, and I've heard the iPhone's headphones jack is weird. So my Sennheiser sweat-and-wind proof headphones might not work either. That's how Apple rolls.