Interesting news on Adobe open sourcing some of the Flex platform. Here is a cool video from the Scoble Show on the architecture.
For the past couple of years I've thought Flex had some clever concepts behind it, but it was going to be collateral damage in the ascension of AJAX. Why? It was too closed on multiple levels. First, to take advantages of its greatest strengths (continuous, bidirectional communication between client and server) required a proprietary Adobe server. Second, the development tools were also proprietary. It's hard to quickly prototype something in Flex, unless you've already made an investment in it. That is poison for innovation. That's also why so much more innovation occurs in Java and PHP rather than .NET, but I digress.
I don't think the above equation has changed with Adobe's new open source initiatives. However, it seems like maybe they are more concerned with competing with .NET/XAML/SilverLight as browser/desktop hybrid technologies. There might be some potential in that, but I still don't think they have the right strategy for it.
Imagine if you were at a mall and you were hungry. There were several hamburger stands in the mall. The hamburgers were pretty cheap and pretty good, and there was a lot of variety. There was one place (Microsoft) that sold hamburgers and fries, but it was very expensive. Now let's say you wanted to sell hamburgers and fries as well. You could make a hamburger and fries that were in similar quality to the sole hamburger+fries vendor, and maybe charge a little less. Or you could make a hamburger that could stand on its merits to the many hamburger-only places, and charge a price similar to those guys. It's riskier, because there's so much competition, but you could still charge a nice premium for the fries. If people start buying your hamburgers, there's a good chance some will splurge on the fries too.
Adobe has chosen to charge a lot for both the hamburger and the fries, just like Microsoft. It's a safer strategy, but with a lot less upside in my opinion. They have to hope that Apollo will lead them to success, because otherwise my original thought will still hold. Flex will be a casualty of Web 2.0.
Thursday, April 26, 2007
Wednesday, April 25, 2007
Outlook 2007 and RSS
One of the touted features of Outlook 2007 is its support for RSS. I use Outlook a lot at work, and I read a lot of RSS feeds. So I should be a fan of this feature, right?
Well, no. I only use Outlook for work email. Most of my personal email is on GMail. I don't need no stinkin' client for that, just a web browser. I do have a Yahoo Small Biz account I use occasionally, too. I used to use Thunderbird for it, but I mostly use Yahoo Mail for it these days.
However, my RSS consumption is personal. I don't want to boot up my work email just to read it. So I have not used RSS with Outlook. Until today that is.
Like a lot of folks out there, my company uses Atlassian's Jira and Wiki products. One of the great features they have is an RSS feed builder. I can create a query in Jira and turn it into an RSS feed. I can get RSS feeds for various parts of our Wiki. Then I can subscribe to these feeds in Outlook. It's a perfect use for Outlook's RSS abilities -- subscribing to internal RSS feeds. These feeds aren't available outside of our corporate firewall, but I would only fire up Outlook inside that firewall anyways.
Now anytime a comment is added to a Jira task assigned to me, I get it as an RSS item. Anytime a discussion on the Wiki gets modified (or a new one added), I get it as RSS. It turns out that Outlook's RSS reader is pretty decent, at least so far. Plus my feeds are stored on our Exchange server. I'm not sure if the feed polling is being done by Outlook or Exchange (it would be most cool if Exchange was doing this,) but either way I can access my feeds through Outlook Web Access. Very nice!
Well, no. I only use Outlook for work email. Most of my personal email is on GMail. I don't need no stinkin' client for that, just a web browser. I do have a Yahoo Small Biz account I use occasionally, too. I used to use Thunderbird for it, but I mostly use Yahoo Mail for it these days.
However, my RSS consumption is personal. I don't want to boot up my work email just to read it. So I have not used RSS with Outlook. Until today that is.
Like a lot of folks out there, my company uses Atlassian's Jira and Wiki products. One of the great features they have is an RSS feed builder. I can create a query in Jira and turn it into an RSS feed. I can get RSS feeds for various parts of our Wiki. Then I can subscribe to these feeds in Outlook. It's a perfect use for Outlook's RSS abilities -- subscribing to internal RSS feeds. These feeds aren't available outside of our corporate firewall, but I would only fire up Outlook inside that firewall anyways.
Now anytime a comment is added to a Jira task assigned to me, I get it as an RSS item. Anytime a discussion on the Wiki gets modified (or a new one added), I get it as RSS. It turns out that Outlook's RSS reader is pretty decent, at least so far. Plus my feeds are stored on our Exchange server. I'm not sure if the feed polling is being done by Outlook or Exchange (it would be most cool if Exchange was doing this,) but either way I can access my feeds through Outlook Web Access. Very nice!
Tuesday, April 24, 2007
A-Rod
I was really annoyed by all the fretting done by New York Yankee fans last year over how disappointed they were in Alex Rodriguez. So it's nice for A-Rod that he is having such an amazing start to this year. I was watching ESPN last night and I have to say : Calm down!
You would think that A-Rod is on the verge of breaking the single season home run and RBI records already. It's April folks. He tied the record for most April HRs (a somewhat meaningless record, since there are a lot more April games played these days than there used to be) last night. That wasn't exactly a Maris-esque feat. The record was set just last year by Albert Pujols. A-Rod is having a great start, but there's a long way to go this season. It would be fun to see him make a run at the home run and RBI records, but he's got a long way to go to do that.
One thing I'm waiting to hear about is how the Yankees keep losing even though A-Rod is hitting a home run every game. This "negative correlation" was touted back when Mark McGwire broke the Maris record and when Barry Bonds broke McGwire's record. McGwire's Cardinals were not even close to making the postseason that year, and Bonds' Giants finished several games out as well. You couldn't escape people saying ridiculous things about how maybe these guys were hurting their teams with their individual exploits. They were taking the focus off the team, or some other nonsense. I'm sure we'll hear garbage like that if the Yankees pitching keeps stinking it up and A-Rod keeps tearing it up.
You would think that A-Rod is on the verge of breaking the single season home run and RBI records already. It's April folks. He tied the record for most April HRs (a somewhat meaningless record, since there are a lot more April games played these days than there used to be) last night. That wasn't exactly a Maris-esque feat. The record was set just last year by Albert Pujols. A-Rod is having a great start, but there's a long way to go this season. It would be fun to see him make a run at the home run and RBI records, but he's got a long way to go to do that.
One thing I'm waiting to hear about is how the Yankees keep losing even though A-Rod is hitting a home run every game. This "negative correlation" was touted back when Mark McGwire broke the Maris record and when Barry Bonds broke McGwire's record. McGwire's Cardinals were not even close to making the postseason that year, and Bonds' Giants finished several games out as well. You couldn't escape people saying ridiculous things about how maybe these guys were hurting their teams with their individual exploits. They were taking the focus off the team, or some other nonsense. I'm sure we'll hear garbage like that if the Yankees pitching keeps stinking it up and A-Rod keeps tearing it up.
Year Zero
Any year with a new Nine Inch Nails CD is a good year. I've watched in amusement as the whole "guerrilla marketing" campaign for Year Zero unfolded. I'm sure I would have ate that up when I was in college. These days I don't have time for researching mystery drugs, calling encrypted telephone numbers, and searching for underground websites. All I have time for is the music, and that does not disappoint.
I was a little nervous about a concept album from NIN. Lyrical has never been Trent Reznor's strength. But like every NIN CD, it doesn't matter. The music on Year Zero is amazing. It made me think about how most artists who make heavy use of technology (like Reznor) make heavy use of sampling. That's how they use modern technology to make music. Not Reznor. NIN is much more organic than artists like contemporaries such as Beck and Moby, or more recent electro-artists like Gorillaz and Gnarls Barkley. Even U2 made heavy use of sampling when they did their technology forrays on Zooropa and Pop. The only band that takes a similar approach to NIN is Radiohead.
Anyways back to Year Zero. The music is intense. The lyrics mine the concept more than adequately. They are a little repetitious at times, but the music keeps you from noticing. This is a lot more like what I would have expected of NIN after The Fragile than With Teeth was. It's an incredible CD. Arguably the best NIN CD from start-to-finish. There's never a weak point and there's one surprise after another.
Don't just take my word for it, since I am unabashed NIN fan. It has received very good reviews across the board. It even got a nice review from traditional NIN-bashers Pitchfork. They make a good point that essentially Reznor has embraced the long tail (they don't use that technology metaphor of course.) Whatever the case, NIN has made my year.
Sunday, April 22, 2007
New Running Gear (and more iTunes/Vista Problems)
I'm running in the Human Race in Mountain View again this year. I ran the 5K last year. It was my second race, and I was really happy with the improvement I made on my time. This year I'm running my first 10K. I'm hoping to run a half-marathon, hopefully in the San Francisco Marathon, later this summer.
I made two purchases recently to help me with my training. First, were a pair of Sennheiser MX75 headphones. I wanted headphones that fitted more securely while I ran. I stopped using the original iPod headphones last year. I always thought their sound was ok for running at least. The fit was terrible though. I had to adjust them a lot and the cord caused lots of vibration and noise. I started using some Sony Fontopia headphones that I'm not even sure when I bought. I think I had bought them to use on an airplane, since I like in-ear headphones for riding in planes. Anyways, those were much better than the iPod headphones, but they still required occasional adjusting while running and had problems with cord noise as well.
So I ponied up for the Sennheiser headphones. They are as good as advertised. The fit is exceptional, though I had to try a few of the different ear pads before I go the best fit. The sound quality is good. Not as sensitive as the Sony ones, but better imaging. My only complaint is the cord. It is long and gets twisted easily. It can be a real pain sometimes.
The other new purchase was a Nike + iPod Sport Kit. This has seemed like a cool gadget that would be particularly useful to me, but I had two concerns. First, I don't wear Nike shoes and I'm not going to buy the "special" Nike+ shoes. I'm a bad overpronator, so I wear Brooks Beasts. If I wore Nike shoes, I would have lots of knee pain. So I was concerned about keeping the pedometer sensor attached to my shoe. Turns this is not a big deal. I slide it in under the laces near the toe of the shoe and it is very secure.
My second concern was with the iPod sensor. It attaches to the dock connector on the Nano, but I have Marware armband that fits very tightly over my Nano. I've been leaving the end flap open on the armband. I guess there is the possibility of sweat getting in that way, but it seems pretty but it seems pretty unlikely.
Using the Sport Kit is really easy. I need to calibrate mine. I have some pretty accurate routes I've drawn up, so I know it's a little off right now. My stride must be slightly longer than average. I'll do that later this week when I run some 400M intervals at the Santa Teresa High School track.
Uploading the workout data to Nike is the best part of the Sport Kit. Unfortunately I had some more Windows Vista problems. iTunes was unable to open a connection to the internet, though it could open a connection to the iTunes Music Store. To fix the problem, I had to re-enable Windows Firewall. That wasn't a typo. iTunes could not connect to nikeplus.com with the firewall turned off, but it could with the firewall turned on. It doesn't make any sense, but it's true.
Once I was able to upload my workouts, I had a lot of fun using the tools on nikeplus.com. It was really interesting to see the graphs of my pace throughout a workout. I could really see where hills were that slowed me down or when I "caught my second wind" and was able to pick up the pace nicely. It really gives me a good idea of my potential. I'm very confident in being able to run under 60 minutes for the 10K next month (I ran faster than that over a longer distance this weekend.) My new goal is to get under 55 minutes. I've looked at some VDOT tables, and I actually think I'm capable of around 50 minutes, but I doubt I'll hit that on my first 10K.
I made two purchases recently to help me with my training. First, were a pair of Sennheiser MX75 headphones. I wanted headphones that fitted more securely while I ran. I stopped using the original iPod headphones last year. I always thought their sound was ok for running at least. The fit was terrible though. I had to adjust them a lot and the cord caused lots of vibration and noise. I started using some Sony Fontopia headphones that I'm not even sure when I bought. I think I had bought them to use on an airplane, since I like in-ear headphones for riding in planes. Anyways, those were much better than the iPod headphones, but they still required occasional adjusting while running and had problems with cord noise as well.
So I ponied up for the Sennheiser headphones. They are as good as advertised. The fit is exceptional, though I had to try a few of the different ear pads before I go the best fit. The sound quality is good. Not as sensitive as the Sony ones, but better imaging. My only complaint is the cord. It is long and gets twisted easily. It can be a real pain sometimes.
The other new purchase was a Nike + iPod Sport Kit. This has seemed like a cool gadget that would be particularly useful to me, but I had two concerns. First, I don't wear Nike shoes and I'm not going to buy the "special" Nike+ shoes. I'm a bad overpronator, so I wear Brooks Beasts. If I wore Nike shoes, I would have lots of knee pain. So I was concerned about keeping the pedometer sensor attached to my shoe. Turns this is not a big deal. I slide it in under the laces near the toe of the shoe and it is very secure.
My second concern was with the iPod sensor. It attaches to the dock connector on the Nano, but I have Marware armband that fits very tightly over my Nano. I've been leaving the end flap open on the armband. I guess there is the possibility of sweat getting in that way, but it seems pretty but it seems pretty unlikely.
Using the Sport Kit is really easy. I need to calibrate mine. I have some pretty accurate routes I've drawn up, so I know it's a little off right now. My stride must be slightly longer than average. I'll do that later this week when I run some 400M intervals at the Santa Teresa High School track.
Uploading the workout data to Nike is the best part of the Sport Kit. Unfortunately I had some more Windows Vista problems. iTunes was unable to open a connection to the internet, though it could open a connection to the iTunes Music Store. To fix the problem, I had to re-enable Windows Firewall. That wasn't a typo. iTunes could not connect to nikeplus.com with the firewall turned off, but it could with the firewall turned on. It doesn't make any sense, but it's true.
Once I was able to upload my workouts, I had a lot of fun using the tools on nikeplus.com. It was really interesting to see the graphs of my pace throughout a workout. I could really see where hills were that slowed me down or when I "caught my second wind" and was able to pick up the pace nicely. It really gives me a good idea of my potential. I'm very confident in being able to run under 60 minutes for the 10K next month (I ran faster than that over a longer distance this weekend.) My new goal is to get under 55 minutes. I've looked at some VDOT tables, and I actually think I'm capable of around 50 minutes, but I doubt I'll hit that on my first 10K.
Saturday, April 21, 2007
First Major Vista Problem: iTunes
Most of my transition to Vista has been pretty smooth. Gmail Notifier does not work on Vista. After reading some Google Groups posts, it doesn't sound like Google is going to fix this. That's not too big of a deal though. I use Google Talk anyways, and Crystal uses the Google Toolbar for Firefox. Both provide the same functionality.
A much bigger deal was iTunes. I could not get iTunes to make a secure connection to the iTunes Music Store, thus I could not authorize my computer. This prevented me from playing any songs that either Crystal or I had bought to play. That was a very big problem. I kept a cryptic error message about "Unknown error -9808."
I ran the iTunes Network Diagnostic (I didn't even know they had this!) It took me to a support page that suggested that I needed to make sure Internet Explorer had either SSL 3.0 or TLS enabled. I found it funny that I had to fiddle with Internet Explorer to get iTunes to work. But that was not the problem.
I turned off the Windows Firewall. No luck. I tried turning down IE's security settings as low as they can go. No luck. I tried telling Vista to run iTunes as an administrator. No luck.
Finally I found this article on Apple's support discussions. This sounded like it would not help, but I tried it anyways. I reduced the Maximum Transfer Unit on my router from 1500 to 1400. I restarted the router. Then I launched iTunes. Mysteriously I got a message from Windows Firewall saying that it had been blocking some iTunes functionality.
WTF!? I had turned Windows Firewall off. I had rebooted since I had done that, and got a complaint from Windows about having it turned off. And yet, it claimed it had been interfering with iTunes. It kindly asked me if I wanted to stop blocking iTunes, and I emphatically clicked in the affirmative. I then tried once again to sign in to the iTunes Music Store and voila!
I wish I could claim to understand what happened here. Did changing the MTU on my router really cause Windows to suddenly ask me about enabling iTunes functionality? Was it just same bizarre coincidence? Who knows. At least it is working. For now.
A much bigger deal was iTunes. I could not get iTunes to make a secure connection to the iTunes Music Store, thus I could not authorize my computer. This prevented me from playing any songs that either Crystal or I had bought to play. That was a very big problem. I kept a cryptic error message about "Unknown error -9808."
I ran the iTunes Network Diagnostic (I didn't even know they had this!) It took me to a support page that suggested that I needed to make sure Internet Explorer had either SSL 3.0 or TLS enabled. I found it funny that I had to fiddle with Internet Explorer to get iTunes to work. But that was not the problem.
I turned off the Windows Firewall. No luck. I tried turning down IE's security settings as low as they can go. No luck. I tried telling Vista to run iTunes as an administrator. No luck.
Finally I found this article on Apple's support discussions. This sounded like it would not help, but I tried it anyways. I reduced the Maximum Transfer Unit on my router from 1500 to 1400. I restarted the router. Then I launched iTunes. Mysteriously I got a message from Windows Firewall saying that it had been blocking some iTunes functionality.
WTF!? I had turned Windows Firewall off. I had rebooted since I had done that, and got a complaint from Windows about having it turned off. And yet, it claimed it had been interfering with iTunes. It kindly asked me if I wanted to stop blocking iTunes, and I emphatically clicked in the affirmative. I then tried once again to sign in to the iTunes Music Store and voila!
I wish I could claim to understand what happened here. Did changing the MTU on my router really cause Windows to suddenly ask me about enabling iTunes functionality? Was it just same bizarre coincidence? Who knows. At least it is working. For now.
Monday, April 16, 2007
Thoughts on GWT
I recently finished the second part of a two-part tutorial on the Google Web Toolkit. It should appear on IBM's developerWorks in the near future. I read a lot of materials on GWT during that time, including quite a few criticisms of it. So I figured I should take the time to put in my $0.02 about it.
GWT is an interesting engineering solution to a hard problem: generating standardized, cross-browser AJAX applications. What makes it unique is that it doesn't require you to understand JavaScript at all. You barely need to understand HTML even. That is really cool. But is it worthwhile?
The answer is, I don't know. It seems like a toy at times, but a really powerful toy. It's hard for me to imagine creating a real website using it, and there is really no way to even use it just for prototyping. As I understood it more though, I realized that there was a real-world workflow possible with it, and maybe that's its biggest strength.
If I were using GWT to build a real site, I would have a web designer build a complete prototype that I would check in and deploy -- as is. Ok, maybe I'd make sure that various visual components had the proper IDs or classes, since that's what GWT uses to identify and replace components. It's the replace part that is really important. The GWT runtime would replace the components created by the designer. It would replace it with JavaScript generated HTML. However, all the CSS created by the designer would be applied. So as long as the CSS was tight, then the GWT-generated component should look how the designer wanted it.
That's nice, really nice. I think having a good workflow between designers and developers is huge. Just look at what Microsoft has tried to do with Web Forms and now with XAML. Web Forms arguably inspired Java Server Faces, which is now part of the JavaEE specification. So maybe that's the real strength of GWT. Everything else is icing on the cake. That being said, here's my favorite and least favorite things about GWT.
Good Stuff
Bad Stuff
I'd like to see GWT leverage Java 5 a lot more. It needs to support generics. It should not only ignore most annotations, it should use them to eliminate the boilerplate code that developers have to write and the redundant interfaces that have to be declared.
GWT is an interesting engineering solution to a hard problem: generating standardized, cross-browser AJAX applications. What makes it unique is that it doesn't require you to understand JavaScript at all. You barely need to understand HTML even. That is really cool. But is it worthwhile?
The answer is, I don't know. It seems like a toy at times, but a really powerful toy. It's hard for me to imagine creating a real website using it, and there is really no way to even use it just for prototyping. As I understood it more though, I realized that there was a real-world workflow possible with it, and maybe that's its biggest strength.
If I were using GWT to build a real site, I would have a web designer build a complete prototype that I would check in and deploy -- as is. Ok, maybe I'd make sure that various visual components had the proper IDs or classes, since that's what GWT uses to identify and replace components. It's the replace part that is really important. The GWT runtime would replace the components created by the designer. It would replace it with JavaScript generated HTML. However, all the CSS created by the designer would be applied. So as long as the CSS was tight, then the GWT-generated component should look how the designer wanted it.
That's nice, really nice. I think having a good workflow between designers and developers is huge. Just look at what Microsoft has tried to do with Web Forms and now with XAML. Web Forms arguably inspired Java Server Faces, which is now part of the JavaEE specification. So maybe that's the real strength of GWT. Everything else is icing on the cake. That being said, here's my favorite and least favorite things about GWT.
Good Stuff
- Debugging -- Being able to debug client side code inside Eclipse (or any IDE) is really nice. I don't know how much time FireBug has saved me in debugging JavaScript. Every JS developer I know uses it. I show those guys what it's like debugging GWT code inside Eclipse and they freak out. The Visual Studio debugger is also really nice, but it's still got nothing on a Java debugger. GWT just enables a Java debugger. Of course it's only valid for hosted mode, but that's another topic.
- Unit Testing -- Ditto for writing unit tests. I know that there are initiatives for creating JavaScript unit tests, such as JsUnit. I've looked at it a little bit, and it's really clever. It still requires all your code to be deployed (of course.) Being able to run a unit test either inside your IDE or with an Ant/Maven target is really nice. Easier unit testing == more unit tests == better software.
- Nice HTML Abstractions -- Really like the FlexTable for example. It's also interesting to port layout managers to HTML. I can definitely see possible conflicts with CSS though. I'm not sure what would happen if your CSS specified a position that really conflicted with the layout algorithm. I'm sure CSS would win, I'm just not sure how bad it's going to make things look.
- RAD Tools -- Nice tools for setting up your project, etc. A lot of GWT was clearly inspired by Ruby on Rails, and this is one of the notable inspirations.
- Architecture -- Encourages UI logic being pushed to the client. Make use of the user's computer, and offload from your server.
Bad Stuff
- Cross Platform Problems -- All those RAD tools are OS dependent. In my experience they work really well on OSX, but are haphazard on Windows. I love OSX, but that's not good.
- Obfuscation -- The generated JS is dense and heavily obfuscated. Maybe that is useful for Google projects, but how is it good for the average developer? It creates a dependency. If you can't debug your client code in hosted mode, you have no chance of debugging it at all.
- No Java 5 -- It's understandable that GWT only supports a subset of Java classes when it comes time to generate JavaScript. But it's really annoying that you can't use things like the improved for loop, generics, and annotations. The annotations present a real problem if you're using Java Persistence or EJB3. An annotated entity bean cannot be passed to the UI essentially. You're forced back into a data transfer object anti-pattern.
- Lots of boilerplate code to write -- To use a remote service, you have to write a client side interface for it (not too bad), an asynchronous version of the same interface, and the actual (server side) implementation of the interface. Then you have to write some obscure looking client side code for registering the service at runtime. Doesn't this all sound familiar? Doesn't this sound like creating remote and home interfaces for an EJB and then having to use JNDI to look it up at runtime? We all know how that turned out for EJBs.
- Better build support needed -- Hosted mode is great, but it's kind of a pain going from hosted mode to a real deployment. GWT can't solve this completely obviously, but they can do more. Hosted mode lets you switch to a "live" mode where GWT creates a Tomcat directory and installs the web application to Tomcat. So clearly they understand the deployment issues, like exposing the RPC servlet endpoint in web.xml.
- RPC is bad -- Ok, I'm not quite as convinced of this as I used to be, but I think it is mostly true. RPC encourages a lot of strong coupling between server and client. However, I think the distinctions between server and client are fading anyways, so this is becoming less of an issue. You're probably going to want the services called by the client to be facades to the "real" services anyways, just because you don't want your real services to be compiled into servlets (which is what happens because you have to extend the RemoteServlet class in GWT.)
I'd like to see GWT leverage Java 5 a lot more. It needs to support generics. It should not only ignore most annotations, it should use them to eliminate the boilerplate code that developers have to write and the redundant interfaces that have to be declared.
Sunday, April 15, 2007
Peter Pasquarelli
I was listening to the radio today. It was the pre-game for ESPN's Sunday night baseball. They had Peter Pasquarelli on there. He's an idiot.
Today is the anniversary of Jackie Robinson's first game in the big leagues. They asked Pasquarelli about how there are less African-Americans in the big leagues these days. He listed two things in particular. The first was that there are more opportunities for African Americans who are into athletics. Presumably he means that a lot of folks are playing football and basketball instead of baseball. Ok, that sounds fine. But his next point is that this is caused by it being too expensive for "inner city" families to go to a professional baseball game, and that MLB needs to do something about that.
Huh? Baseball is by far the most affordable professional sport. Bleacher tickets at a baseball game are way cheaper than anything at an NFL or NBA game. For example, I could get tickets for the A's - Angels game on Tuesday night for $9. If afford ability of professional sports game was in any way correlated to African American participation at the professional level of the same sport (and doesn't this seem like the kind of statement that would get Don Imus fired, if he hadn't already been fired) then clearly African Americans would be over-represented in baseball.
Next up, they actually talked about the Padres-Dodgers game. They asked Pasquarelli about the excellent Padres bullpen. He went off about how good Clay Meredith was and how "the computers" in Boston screwed up big time when they traded him away. This is so classic. "Old school" baseball guys love to deride Theo Epstein's version of Moneyball in Boston -- even though it broke The Curse. Anything negative that happens to the Red Sox is caused by their over-reliance on sabremetric analysis. Damn numbers! Damn computers! Damn Epstein! Damn World Series rings! Oh wait...
Today is the anniversary of Jackie Robinson's first game in the big leagues. They asked Pasquarelli about how there are less African-Americans in the big leagues these days. He listed two things in particular. The first was that there are more opportunities for African Americans who are into athletics. Presumably he means that a lot of folks are playing football and basketball instead of baseball. Ok, that sounds fine. But his next point is that this is caused by it being too expensive for "inner city" families to go to a professional baseball game, and that MLB needs to do something about that.
Huh? Baseball is by far the most affordable professional sport. Bleacher tickets at a baseball game are way cheaper than anything at an NFL or NBA game. For example, I could get tickets for the A's - Angels game on Tuesday night for $9. If afford ability of professional sports game was in any way correlated to African American participation at the professional level of the same sport (and doesn't this seem like the kind of statement that would get Don Imus fired, if he hadn't already been fired) then clearly African Americans would be over-represented in baseball.
Next up, they actually talked about the Padres-Dodgers game. They asked Pasquarelli about the excellent Padres bullpen. He went off about how good Clay Meredith was and how "the computers" in Boston screwed up big time when they traded him away. This is so classic. "Old school" baseball guys love to deride Theo Epstein's version of Moneyball in Boston -- even though it broke The Curse. Anything negative that happens to the Red Sox is caused by their over-reliance on sabremetric analysis. Damn numbers! Damn computers! Damn Epstein! Damn World Series rings! Oh wait...
Job Search 2.0
I read the above blog on how web 2.0 has changed job searching. As somebody who has recently changed jobs, this made for an interesting read. The points from the blog that I found personally relevant were:
Blogs -- Job posts tied to blogs is a great idea. My job was posted on Joel on Software. My company is about to post an opening we have on there. Turns out our CTO reads Joel on Software. I read Joel on Software. Now we work together. The problem with job posting on blogs is fragmentation. I read a lot of blogs. Not all of them have job boards, but several do. It would be pretty expensive and time consuming to post jobs on all of those blogs' job boards.
RSS -- The Joel on Software jobs board has an RSS feed. I could save a search on there and subscribe to its RSS feed. That was how I saw my job. I read it in Google Reader, clicked on it to Joel on Software, etc. There is definitely no downside to this. Every job site should offer RSS feeds for any job search you can make on their site.
Blogs -- Job posts tied to blogs is a great idea. My job was posted on Joel on Software. My company is about to post an opening we have on there. Turns out our CTO reads Joel on Software. I read Joel on Software. Now we work together. The problem with job posting on blogs is fragmentation. I read a lot of blogs. Not all of them have job boards, but several do. It would be pretty expensive and time consuming to post jobs on all of those blogs' job boards.
RSS -- The Joel on Software jobs board has an RSS feed. I could save a search on there and subscribe to its RSS feed. That was how I saw my job. I read it in Google Reader, clicked on it to Joel on Software, etc. There is definitely no downside to this. Every job site should offer RSS feeds for any job search you can make on their site.
Twitter Slowness Explained
Now I know why Twitter is so slow. It was built using Ruby on Rails. That explains so much.
The Wow Starts Now
Yesterday I completed the upgrades to my computer and including installing Windows Vista. I spread the upgrades out over about a month's time. Here they are.
- Upgrade video card. My old Nvidia GeForce4 4400Ti had been really good to me. It was the second highest card from Nvidia (topped only by the 4600Ti) when I bought it in 2002, and it was a good investment. It lasted five years. I upgraded it to an ATI Radeon 9550. That's very much an economy card compared to the old Nvidia, though still a nice upgrade. I don't game anymore, so it didn't make any $ense to through a lot of money at a gaming card. The Radeon is passively cooled, so it really made my system a lot quieter. Price $70.
- Upgrade memory. This was the biggest upgrade, in terms of both performance and price. I had two sticks of PNY 256 MB PC2700 DDR2 RAM in my old system. I replaced that with two sticks of GSkeil 1GB PC3200 DD2 RAM. So not only is 4x the amount of memory, it's faster memory to boot. It's pretty high quality 2.5 latency RAM with nice heat spreaders, too. Price $180.
- Upgrade hard drive. With the video card and memory upgrade, I had more than enough horsepower to run Vista. However, I wanted to do a clean install of Vista, while not losing any old data, and keeping XP around just in case Vista had issues with my hardware (though I seriously doubted this.) My old HD was a 180 GB IBM Desktar IDE drive. It's a nice drive, 7200 RPM with 8 MB of cache. My motherboard supported both IDE and SATA hard drives, so I decided it was time to go SATA. I bought a 200 GB SATA2 Western Digital Caviar SE. My motherboard only supported to SATA (1.5 MB/s) not SATA2 (3.0 MB/s) so this was the trickiest part of the install. I had to user the jumpers on the drive to tell the HD to only server 1.5 MB/s of data. That worked great though. Price $60 (OEM on Newegg) + $10 (SATA cable from Fry's = $70.
- Upgrade Windows. I decided to go with Vista Home Premium. I got it for $120 OEM on Newegg. I installed on the new HD. It was very quick and painless. It recognized XP sitting on the old drive and gave me this as a boot up option. Install time was under 30 minutes. Price $120.
Thursday, April 12, 2007
ESPN Fantasy Baseball Reset
In the aftermath of the problems at ESPN fantasy baseball, they've decided to reset the whole game! I guess it makes sense. I had some great pickups one one of my two teams -- the team that wasn't affected by any of the problems. Maybe other teams in that league were, but I don't think so. It seemed like any problems were on a league-wide basis. My second team had problems, and there were definitely extra messages from ESPN posted to that league that weren't posted to the other league. Oh well, it's not like we're paying any of this. ESPN has offered reasonable compensation to make up for everything, including giving ESPN Insider access for the duration of the baseball season. That's pretty nice. I don't know how many times I would get an RSS post from ESPN that was insider-only, and I wouldn't know it was insider-only until I had clicked on the link back to ESPN's site.
Tuesday, April 10, 2007
JavaScript Benchmarks
Whenever I play with a new computer, one of the things I like to do is run some JavaScript benchmarks (BenchJS.) It's a useful benchmark, since if I'm going to use the computer a lot, chances are that I'll spend a lot of time browsing the web on it. So JavaScript performance will be noticeable to me.
I have two computers at work. The first is a Dell Optiplex. It has a 3.0 GHz Pentium 4 with a 1.5 GB of RAM. I've never had a computer clocked at 3 GHz before. That was near the pinnacle of the NetBurst architecture.
The second computer is an IBM ThinkPad T43p. It has a 2.1 GHz Pentium-M with 2 GB of RAM. Again this was near the pinnacle of the single core Pentium-M's. It has some other nice features, maybe I'll blog about it so more later.
Finally, I recently upgraded my home computer. It's still an AMD 64X2 3800+. I upgraded the RAM to 2 GB. I also upgraded the video card, but I don't think that would matter much for JavaScript performance. I've bought a new hard drive for it, but haven't installed it yet. Again I doubt that would matter. I'm also already bought Vista for it, and will upgrade it soon. Maybe this week, or maybe next weekend, whenever I have time.
Right now, all three computers in question are running Windows XP. I ran Firefox 2.0.03, IE 7, and Opera 9.10. Here are the results:
Interesting results! From the browsers, Opera was always faster than Firefox and Firefox was always faster than IE. No surprises here. I was most surprised to see how well the Pentium-M performed. I thought the AMD would beat it out, but it did not. The biggest difference between the two was on the last test. This test calculates the day of the week for Christmas day for the next 1000 years. This test accounted for almost all of the Pentium-M's advantage on each system. I'd be interested to see the JS code for this, but one would think that it would come down to a lot of integer math. So it would make sense that the Pentium-M would have an advantage here. Actually, you gotta wonder why the P4 didn't do better on this test.
I have two computers at work. The first is a Dell Optiplex. It has a 3.0 GHz Pentium 4 with a 1.5 GB of RAM. I've never had a computer clocked at 3 GHz before. That was near the pinnacle of the NetBurst architecture.
The second computer is an IBM ThinkPad T43p. It has a 2.1 GHz Pentium-M with 2 GB of RAM. Again this was near the pinnacle of the single core Pentium-M's. It has some other nice features, maybe I'll blog about it so more later.
Finally, I recently upgraded my home computer. It's still an AMD 64X2 3800+. I upgraded the RAM to 2 GB. I also upgraded the video card, but I don't think that would matter much for JavaScript performance. I've bought a new hard drive for it, but haven't installed it yet. Again I doubt that would matter. I'm also already bought Vista for it, and will upgrade it soon. Maybe this week, or maybe next weekend, whenever I have time.
Right now, all three computers in question are running Windows XP. I ran Firefox 2.0.03, IE 7, and Opera 9.10. Here are the results:
|
Interesting results! From the browsers, Opera was always faster than Firefox and Firefox was always faster than IE. No surprises here. I was most surprised to see how well the Pentium-M performed. I thought the AMD would beat it out, but it did not. The biggest difference between the two was on the last test. This test calculates the day of the week for Christmas day for the next 1000 years. This test accounted for almost all of the Pentium-M's advantage on each system. I'd be interested to see the JS code for this, but one would think that it would come down to a lot of integer math. So it would make sense that the Pentium-M would have an advantage here. Actually, you gotta wonder why the P4 didn't do better on this test.
Sunday, April 08, 2007
Fantasy Baseball: ESPN vs. Yahoo!
I've played fantasy sports for more than ten years now. A lot of that has been on ESPN. I've spent a lot of money of fantasy teams. Two years ago I started playing a little on Yahoo Sports as well. Their service is free, but it was clearly not as good as ESPN's.
What's interesting though is that this year there seemed to be some pretty fierce competition between ESPN and Yahoo. ESPN started making their fantasy baseball free for the firs time. They reduced the features and eliminated prizes. They kept around more complicated leagues with prizes, but of course they had a price.
Yahoo continued to expand their features. They how had live scoring, something you had to pay for in the past (and something ESPN has had for several years.) They've also added more bling to their interface, with drag-and-drop rosters.
But now something kind of funny has happened. Well at least it's funny to a programmer like me it's funny. ESPN clearly was unprepared for the popularity brought on by making fantasy baseball free. They had simplified the free version of things, but kept most of the features from the $20-30 version. They've had so many problems. On the first day of the season, there were frozen rosters, wrong scores, broken waivers. They've sent out some emails apologizing for the many problems:
Ouch! I like how they've now created "parallels of ESPN Fantasy Baseball leagues in a development and quality assurance environment" and "There are approximately 70 different variations of our game currently in use." Sounds like there are configurations that they didn't test -- at all. They didn't have unit tests for it or functional tests by QA. They've resorted to cloning live data to do their testing against. That's really not good!
I had thought that simply weren't prepared for the scale, but it sounds like their problems are deeper. Talk about an embarrassing situation for their engineering group.
Oh, and for what's it's worth -- I have two ESPN teams, and one Yahoo team. They're all doing crummy so far. My hitting has stunk, though my pitching has been very good. I'm not worrying though. I figure my guys will start hitting. Hopefully ESPN will have their problems worked out by then.
What's interesting though is that this year there seemed to be some pretty fierce competition between ESPN and Yahoo. ESPN started making their fantasy baseball free for the firs time. They reduced the features and eliminated prizes. They kept around more complicated leagues with prizes, but of course they had a price.
Yahoo continued to expand their features. They how had live scoring, something you had to pay for in the past (and something ESPN has had for several years.) They've also added more bling to their interface, with drag-and-drop rosters.
But now something kind of funny has happened. Well at least it's funny to a programmer like me it's funny. ESPN clearly was unprepared for the popularity brought on by making fantasy baseball free. They had simplified the free version of things, but kept most of the features from the $20-30 version. They've had so many problems. On the first day of the season, there were frozen rosters, wrong scores, broken waivers. They've sent out some emails apologizing for the many problems:
To all of our ESPN Fantasy Baseball players,
We wanted to be sure you had the latest update on what is happening with ESPN Fantasy Baseball, and what we're in the midst of doing to get things back on track for you.
We have every resource, including our full technical team as well as additional specialized technical and quality assurance personnel, working to resolve these issues.
Based on extensive ongoing work and testing, we expect to have the problems affecting Fantasy Baseball resolved by Wednesday. It is possible that between now and then testing could reveal complications that would push the resolution to later in the week. However, we are confident in targeting Wednesday and are taking every step during that time to ensure that the solutions we provide for you will be complete and long-lasting.
While it may sound simple, the core problem lies in issues with transaction information being processed incorrectly and at incorrect times - which presents complexities as data progressively compounds.
Here's the latest on what is being done:
Please know -- it is not just rhetoric when we say we continue to work non-stop to resolve this. We owe you the fastest, most effective and stable solution - and that is our sole focus.
We have made significant progress finding and working towards a fix for the core problems responsible for roster irregularities and incorrect waiver, free agent and other transactions.
Due to the nature of software, thorough testing must be performed to ensure that the solutions we implement will fully resolve the issues and preserve the long-term integrity of the game.
To do that, we have created parallels of ESPN Fantasy Baseball leagues in a development and quality assurance environment -- simulating the live game activity.
In this environment we have been, and continue to run extensive testing of potential fixes for the core problems. There are approximately 70 different variations of our game currently in use, and we are simulating all of these.
In parallel, we have programmers and technicians troubleshooting problems that have created scoring and standings irregularities - isolating and testing potential solutions.
We will continue to communicate with you as there are further developments, and you will hear from us again no later than Wednesday at 3 p.m. ET.
We apologize again for the frustration you've experienced and appreciate your continued patience.
You are our number one priority.
John Kosner, senior vice president and general manager, ESPN.com and the entire ESPN.com Fantasy team
Ouch! I like how they've now created "parallels of ESPN Fantasy Baseball leagues in a development and quality assurance environment" and "There are approximately 70 different variations of our game currently in use." Sounds like there are configurations that they didn't test -- at all. They didn't have unit tests for it or functional tests by QA. They've resorted to cloning live data to do their testing against. That's really not good!
I had thought that simply weren't prepared for the scale, but it sounds like their problems are deeper. Talk about an embarrassing situation for their engineering group.
Oh, and for what's it's worth -- I have two ESPN teams, and one Yahoo team. They're all doing crummy so far. My hitting has stunk, though my pitching has been very good. I'm not worrying though. I figure my guys will start hitting. Hopefully ESPN will have their problems worked out by then.
Thursday, April 05, 2007
At Least One Guy is Staying...
After what happened last year with Nick Saban, I was definitely worried that Billy Donovan would bolt for Kentucky. I guess it's easier to stay put coming off back-to-back championships rather than a losing season. Of course the Florida football team won the SEC championship the same year that Steve Spurrier left for the NFL. Anyways, Donovan will be back. I really think Taurean Green should come back. The Gators will start have a lot of rebuilding to do next year. You gotta figure it's an attractive situation for high school stars: defending back-to-back champions, great coach, exciting style of play, etc.
Tuesday, April 03, 2007
National Champions (Again)
I'm starting to feel rather spoiled and a little guilty. The Gators won another national championship. Now we have back-to-back basketball championships and a football championship. That's just ridiculous. If we don't another championship of any sort for a long time, we can't complain.
This championship is by far the least surprising. We won it last year, and everyone came back with only one intention: repeating as champions. I've been a little overwhelmed to see so many sports writers naming the Gators as one of the greatest college basketball teams of all time. I think I'm just feeling a little too appreciative of what's happened to go that far, but it's really true. At the very least the Gator front-line has to go down as the most dominating in a long, lone time. It's amazing in an era where guards generally rule the game, the Gators rule the college game by going big.
Of course big is fine, but its the talent level that matters. Joakim Noah, Al Horford, and Corey Brewer are all future NBA players. Noah and Horford could both play PF and maybe C, and Brewer is a prototypical SF. It's not unreasonable to imagine them as a front-line in the NBA, and that's the biggest reason why Florida has been so unstoppable. Chemistry, unselfishness, etc. are all well and good, but Florida had overwhelming talent.
If you look at in perspective, they haven't really been challenged in the NCAA tournament over the last two years. There's a lot of comparisons being made between Florida and the 91-93 Duke team that had been the last team to repeat. That team played some very close games, including the infamous overtime victory over Kentucky. Florida didn't have any close games. This year's Final Four victories came over two teams that spent a huge amount of time at the top of the rankings all year long: UCLA and Ohio State. Neither team was even close to being good enough to beat Florida.
So yeah, as the cheer goes "Ain't it great to be a Florida Gator!" Of course for next year, Taurean Green is probably the only guy who will be around. The football team has to replace its entire defense. So I expect the reign of glory to come to an end. It doesn't matter though. The beginning of 2007 is something every Gator fan will always remember.
This championship is by far the least surprising. We won it last year, and everyone came back with only one intention: repeating as champions. I've been a little overwhelmed to see so many sports writers naming the Gators as one of the greatest college basketball teams of all time. I think I'm just feeling a little too appreciative of what's happened to go that far, but it's really true. At the very least the Gator front-line has to go down as the most dominating in a long, lone time. It's amazing in an era where guards generally rule the game, the Gators rule the college game by going big.
Of course big is fine, but its the talent level that matters. Joakim Noah, Al Horford, and Corey Brewer are all future NBA players. Noah and Horford could both play PF and maybe C, and Brewer is a prototypical SF. It's not unreasonable to imagine them as a front-line in the NBA, and that's the biggest reason why Florida has been so unstoppable. Chemistry, unselfishness, etc. are all well and good, but Florida had overwhelming talent.
If you look at in perspective, they haven't really been challenged in the NCAA tournament over the last two years. There's a lot of comparisons being made between Florida and the 91-93 Duke team that had been the last team to repeat. That team played some very close games, including the infamous overtime victory over Kentucky. Florida didn't have any close games. This year's Final Four victories came over two teams that spent a huge amount of time at the top of the rankings all year long: UCLA and Ohio State. Neither team was even close to being good enough to beat Florida.
So yeah, as the cheer goes "Ain't it great to be a Florida Gator!" Of course for next year, Taurean Green is probably the only guy who will be around. The football team has to replace its entire defense. So I expect the reign of glory to come to an end. It doesn't matter though. The beginning of 2007 is something every Gator fan will always remember.
New Article on IBM
I've also been busy writing articles and tutorials for IBM. One of them was published today: Get started with Jigloo, a GUI builder for Eclipse. It's an introduction to Jigloo, a nice little plugin for Eclipse for building both Swing and SWT GUIs. The tutorial obviously has a lot more about Jigloo.