Thursday, July 27, 2006

Led Zeppelin

Rolling Stone's cover story this month is on Led Zeppelin. I read the article this morning. It was funny timing, since I had been listening to their first two albums while commuting the last couple of days. Just this morning, I had been thinking that even though so many subsequent artists have been heavily influenced by Zep, their music still sounds very fresh. I think that's a testimony not only to their songwriting skills, but also their musicianship.

I was not even alive when Zep debuted in the late 60's. So it makes it even more interesting to read about how controversial they were. People thought they were over-hyped even before they released their first album. They were often disliked by critics, though adored by fans. The RS article thinks this was the beginning of the rift between "popular" rock and "elitist" rock. That rift definitely exists, but it's hard to think of Maroon 5 as a descendent of Zep... It's also amusing to read that some pundits criticized Zep for being too macho and violent. Take that Tupac.

I started listening to Zep when I was a teenager. For me, there was little controversy in the band. They were a legend, and discovering their music was like finding buried treasure. It was so superior to the glam metal of the 80's. It wasn't like listening to The Beatles or The Rolling Stones. Those groups sounded old to a teenager. Not Zep. Pink Floyd was the only other similar band for me. If Zep still seemed modern, Pink Floyd seemed almost futuristic.

Since then my tastes have matured, and as I've started liking a wider selection of modern music, I also started liking a lot more classic bands. But Zep is still different than any other band. It's like your first kiss.


technorati tags:, ,

Blogged with Flock

Wednesday, July 26, 2006

Worst President ... Ever?

I was reading this little article from Rolling Stone. It came out a couple of months ago, but is still a pretty entertaining read. It asks the question: Is George W. Bush the worst president in the history of the United States?

The article was written by Princeton historian Sean Wilentz. First off, despite the Wentz's attempts to claim some kind of objectivity, the article is very biased. That's too bad, because he makes some very good, and very objective arguments. It's sad that an American historian would make the mistake of being so partisan. He, of all people, should know better. Instead his partisanship simply makes it all too easy for conservatives to dismiss. Of course it may not matter if he makes it easy to be dismissed or not. But if you follow that line of thinking, what's the point of even writing something like this?

I won't dwell too much longer on his biasses, but they are obvious. He claims that the greatest presidents were George Washington, Abraham Lincoln, and Franklin Roosevelt. The inclusion of Roosevelt shows huge bias. FDR's push into socialism is still a divisive issue. Then there's the court packing...

Which leads to Wilentz's other obvious bias. He talks a lot about various scandals that previous presidents have endured. He dismisses the impeachment of Clinton as partisan. This may be true, but it doesn't change the fact that Clinton was only the second president impeached. He mentions several other scandals, but completely leaves out FDR's court packing. This was one of the worst scandals in American history. Newspapers everywhere depicted FDR as an aspiring king or dictator. Wilentz speaks at length about Bush's signing statements policy, as a huge blow to The Constitution, but it's nothing compared to what FDR did.

So there, Wilentz's credibility is quite questionable because of his obvious bias. That doesn't change the fact that many of his other arguments are sound. Bush used lies to lead us into a disastarous war in Iraq. He has used divisive issues to promote hostility between Americans. He has refused to ever admit any mistakes or faults. He has been an enemy of the scientific community. He showed complete incompetence when faced with the Hurricane Katrina disaster.

That's a pretty bad list, but there's more. Just read Wilentz's article. I'm no historian. It's hard for me to say if Bush is the worst president in history. I disagree with Wilentz and think his tax cuts are (mostly) good. I have problems with Bush that Wilentz does not such as the No Child Left Behind program and the Prescription Drug program (Wilentz says these things just need more funding -- again showing his big government/socialist bias.) Still, Bush has been the worst president in my lifetime.

technorati tags:, ,

Blogged with Flock

Tuesday, July 25, 2006

Welcome to Hell, CA

I've lived in the Bay Area for six years now. I went to college in Pasadena from 1992-1997. So in all I've lived in California for eleven years. Hardly a lifetime, but still a decent amount of time. In that time, I've never experienced heat like we've had the last week. I grew up in Florida, and the combination of heat and humidity there is generally much more uncomfortable than any heat in California. So a hot day in San Jose is rarely too uncomfortable for me. That has not been true for this heat wave. It has been unbearable. I am just thankful to live in an air conditioned house and that the electricity to my house has been uninterrupted. Many of my neighbors have not been so lucky, as there have been a lot of power outages. I live in one of the hotter parts of San Jose.

I'm actually a little surprised that somebody has not claimed that this heat wave is more evidence of global warming. I think that would be a pretty dubious claim (even though I think air pollution is a huge problem,) but I still expect it to be made. Lots of people wanted to blame Hurricane Katrina on global warming, and this would seem like an even more obvious conclusion to draw.

The heat has also made me very diligent in venting my car during the day. I always roll down all four windows about 10% and vent the sunroof. I really think that some car maker should put a "vent" button in the car and/or on the fob to the car. It would be great to hit the lock button on your fob and then hit the vent, too.


technorati tags:, , , ,

Blogged with Flock

Monday, July 24, 2006

Liquid Metal vs. Web 2.0

One of the stations that I've been enjoying on XM lately is XMLM -- XM Liquid Metal. I like metal, though I've never been "really into it." It's fun to listen to casually, but it's usually too flawed to listen to intently. Most of the singers try to sound scary, and that's just too humorous to take seriously. Now I do listen to some of the lighter, crossover stuff like Tool and System of a Down. I did buy Slipknot's last record, too, but it really got old after a while. Anyways, it's the perfect kind of music to listen to on XM. You just turn on Ch. 42 while you drive and don't pay too much attention to the singers.

The other thing about metal bands that is really funny are their names. You've probably seen this survey making fun of Web 2.0 company names by comparing them with names of Star Wars characters. You could easily do the same thing with metal band names like Opeth, Chimaira, Unearth, Mastodon, Adema, Motograter, Taproot, Candiria, Brujeria, Atreyu, Dimmu Borgir, Himsa, Soilwork, and Spineshank. I should've thrown some Web 2.0 sites in there just to prove the point, but those are really all metal bands and links to their sites. Many of them have MySpace pages as well, just demonstrating the depth of the MySpace penetration into youth culture. It's not just cheerleaders and student council members using that place, it's the kids who hate them as well.

technorati tags:, , ,

Blogged with Flock

Friday, July 21, 2006

It's Almost That Time Again...

That's right, it's almost time for more Donovan McNabb vs. Terrell Owens barbs. I found McNabb's comments to reporters somewhat amusing, but mostly sad. He's clearly still in the denial stage of the break-up. You know that stage. It's where you are still convinced that you are better off without your ex than you were with them. Just check out a quote like this:

To be honest withyou, the way that you win anything is by winning games.

So it's all about winning games, eh? You see he still thinks they'll win more games without TO.

Even though they went 6-10 last year.

Even though they were 4-3 with Owens and 2-7 without him.

Even though his QB rating with Owens was 87.3 and without was 74.1

Even though he set career bests in yards, completion percentage, touchdowns, and passer rating in his one full year playing with Owens

Yeah, it's all about winning games Donovan. I just wonder what's going to happen when he finally realizes that TO was the stronger member of the duo. TO has made other quarterbacks shine, but McNabb has never made any receiver shine. TO's only full season with McNabb was his 5th best in receptions, 4th best in yards, and tied for 2nd best in touchdowns. One could make a good argument that Jeff Garcia to TO was a better combination than McNabb to TO.

It's going to be a long, long year in Philadelphia. Philly has the worst fans in sports, so they deserve it.


technorati tags:, , ,

Blogged with Flock

Wednesday, July 19, 2006

Hibernate Annotations

Today I found myself in a familiar position -- needing to write ORM backed code. This was a really simple case actually. I had one new table I needed to add plus a class+DAO to access it from my code. Time to call on my old friend Hibernate.

Perhaps I am "old-fashioned" but I usually like to write DDL first. I can see the logic behind writing an object first and then working from there (object -> mapping -> DDL) but it's just easier for me to write the DDL first. So I wrote that and created my table. Then I fired up Middlegen to create my Hibernate mapping. At that point I paused.

Middlegen is great for generating a Hibernate mapping (hbm) file. I decided not to use this and instead use Java annotations. Hibernate Annotations provides full EJB3 Annotation support for any Hibernate application. So I downloaded it and quickly scanned through some of its documentation. I saw that I needed Hibernate 3.2, so I downloaded the latest version of that 3.2CR3 as 3.2 is not GA yet.

I was already pretty familiar with the EJB3 Annotations as I've been one of the many observers to the evolution of that spec. I was ready to write my annotations, but I still needed a class to annotate. So I went ahead and used Middlegen for that. That required me to generate the hbm file, but I simply discarded it when I was done.

Now I annotated my simple class. I'm using Eclipse 3.2 and it handles annotations very well. I simply write the simple name for the annotation, like @Entity and then I could press ctrl-1 to add the appropriate import statement, just like I would do for a class. It also checked my syntax, so it immediately told me that I didn't need quotes for my nullable attribute when I wrote @Column(name="foo", nullable="false").

Now I had an annotated POJO. Next I wrote the DAO class that accomplished my use cases. They were pretty simple, just two methods. I was using Spring so this was especially easy using its HibernateDaoSupport class.

Next I wrote a simple unit test. I told Eclipse that I wanted a new JUnit test case, and it asked if I wanted to do a 3.x or 4.x test case. I chose 4.x, since I was in an annotative mood. Since this was my first unit test that involved Hibernate Annotations, I decided to keep it as simple as possible and bypass Spring. Thus I simply created my Hibernate session factory in my setUp() method, using the AnnotationConfiguration class, of course.

I ran my test and it failed. Not big surprise, don't all unit tests fail the first time? What was surprising was the error message. I had a stinkin' class not found exception. The class that was not found was org.hibernate.loader.custom.SQLQueryReturn. I looked in my hibernate3.jar and sure enough, it wasn't there!

Luckily it was easy enough to Google for this class and that quickly lead me to a thread on java.net. Turns out while Hibernate Annotations needs Hibernate 3.2, it only works with Hibernate 3.2CR2 not 3.2CR3. In other words, if you download the latest Hibernate and Hibenate Annotations, thye don't work together. I went back to the Hibernate site to download 3.2CR2. I noticed that the general purpose Hibernate download page indicated 3.2CR2 as the latest, even though the home page indicated Hibernate 3.2CR3 was the latest and released on July 6.

So I downloaded 3.2CR2 and used it and ... no problems. I did read on the forums that there definitely were problems with that release, I was just lucky enough not to run into them.

Maybe I should put the annotations on the shelf, for now? I'm guessing that it will be stable well before the code I'm working on will be stable, but it's hard to say given their roadmap...

technorati tags:, , , ,

Blogged with Flock

Monday, July 17, 2006

McAfee AdWare

I recently got a Dell laptop at work. It came loaded with a lot of software. The first thing I did was remove most of what was on there. One of the things that I did not remove was McAfee Security Center. This included anti-virus software, a personal firewall, and spam filter. These are all somewhat useful things, so I left them on.

Soon I disabled the personal firewall. My computer is always either behind my company's firewall or my home firewall. So an personal firewall on my laptop had little value. Next I disabled the spam filter. I use Thunderbird for my email at work, and I don't receive any spam (yet) on that account. I use GMail for my personal email, and it already has a good spam filter. I left the anti-virus on. This is a Windows machine after all. I also just disabled the other services. I reasoned that there could be future circumstances where I might re-enable them.

Every time McAfee downloads and installs a virus definition update, it pops up a little message just above the system tray letting me know. Now it also downloads and updates its spam filter, and lets me know about it in a similar way. These are both acceptable things.

Recently, it started using this notification system for other things. In particular, it keeps reminding me that I only have a trial subscription for the anti-virus/spam definition updates, and that I need to renew said subscription. Luckily for me, they offer deep discounts on subscription renewals:

How annoying is that? I went through the various menus in McAfee Security Center trying to figure out how to disable this kind of advertisement disguised as a notification. This is done easily for the anti-virus/spam definition update notifications, but I have not been able to find out how to do it for these ads. Security Center is the first piece of ad-ware I've had on any of my computers in about four years. Luckily, my company has a volume license of Norton Anti-Virus, so I can just uninstall McAfee and install NAV. That seems like the only way to stop the McAfee ads.

Update: McAfee has decided to spam me as well. You would think a company that sells an anti-spam product would realize their (potential) customers obviously don't like spam...

technorati tags:, , ,

Blogged with Flock

Sunday, July 16, 2006

Leiberman and Lamont ... and Boxer?

Like many Democrats out there, I have been watching Ned Lamont's challenge to Joseph Leiberman with great interest. And like many California Democrats, I was very surprised to hear that one of my state's senators, Barbara Boxer, was not only endorsing Leiberman, but planning to campaign for him. Boxer is a leading critic of the war (even though she voted for it -- we must never forget or forgive this,) while Leiberman is probably the biggest Democratic supporter of the war.

It's an interesting story on many fronts. On one hand, I totally favor Lamot for being so anti-war, and I resent Leiberman. It seems like the essence of democracy that Lamont defeat Leiberman because the people of Connecticut are against the war and Leiberman is for it. As my friend Terry pointed out in a quote from Harold Meyerson "His [Leiberman] problem is Connecticut."

However, I can understand some of the frustrations of Democrats out there. It would help the overall strategy of "beat Republicans" if Leiberman won the Connecticut primary. Plus, I can understand those that feel it is unfair for Leiberman to lose because he "failed a litmus test." It's like the now classic Republican tactics of using divisive issues.

So in some kind of Machiavellian /uber-strategy / median voter theorem way, I see the tragedy in the Leiberman vs. Lamont saga. But who cares? What matters is not that there are more Democrats in Congress, what matter is that there are people in Congress who are going to vote for freedom. You cannot favor the war in Iraq and favor freedom at the same time. You cannot favor things like the Patriot Act and favor freedom at the same time.

As for Boxer, she is just one of many establishment Democrats who is standing with Leiberman. That just shows the weakness in the Democratic Party. It's members care more about power (winning it from the Republicans) than they do about principals.

technorati tags:, , , ,

Blogged with Flock

MySQL Upgrade

  This morning I was doing some work on the PocoTag project. This is the "evolution" of the old PocoPay project. Basically PayPal's introduction of mobile payments did not seem to bode well for PocoPay, so we have a new business plan.

    A big part of the new plan is to provide anonymous email redirection, kind of similar to craigslist. For this I installed Apache James as our email server. I thought I might need to write one of its mailet apps, but it turns out it bundles several mailets including one that does email redirection based on aliases in a DB table. That was almost perfect. Only problem was that we were not storing the alias and "real" email addresses in the same table. I figured that was easy to solve by simply creating a database view.

    Then I remembered that database views were introduced in MySQL 5. We were running MySQL 4.1 for PocoPay/PocoTag, so now views. That meant it was time to upgrade. I read through some of the MySQL documentation, and it claimed that the Windows installer could seamlessly upgrade from 4.1.5+ to 5.0+. We were running 4.1.12, thus I thought the installer was going to make my life easy.

    Turns out I (or the documentation) was wrong. The installer made no interaction with the MySQL 4.1.12, and tried to do a parallel install of 5.0 instead of an upgrade. So I shutdown 4.1.12 manually and backed up its data directory. Then I uninstalled MySQL 4.1.12 (and uninstalled the 5.0 that was installed, though not configured.) I re-installed 5.0 and dropped in my data, and ... voila! Everything worked perfectly. I created my database view just as I wanted. Next I will configure James, enabling its JDBC Alias mailet with the my new view, and PocoTag should be ready to provide anonymous email redirection.


technorati tags:, , ,

Blogged with Flock

Thursday, July 13, 2006

Nike + iPod Sport Kit

I read this article about Apple and Nike releasing the Nike + iPod Sport Kit. This was first announced back in May, but is just no making its way to your local Apple Store. I've been intrigued by this device, since I run three days a week and I listen to my Nano while I run. So I would seem like the target audience for the device.

Reading the review, it does seem like it has a lot of nice features. It's nice to know how far you've gone and how far you need to go still on a run. Personally I run the same route each morning, and I know all the distances on the route. Isn't this necesarry for any runner? In such a case, then the extra data on the Nano during the run is kind of useless. The "power song" feature is kind of amusing, but I could see it being useful.

The big value to me is that uploads this info to the nikeplus website every time you dock your Nano. That website seems to have some nice tools for tracking progress, etc. That seems really useful or at least interesting. I pretty much know my fastest times, but I don't write these things down -- it's not worth the effort. There's no effort with the sport kit.

Of course it's probably a moot point for me anyways. I'm not going to buy one of the special pairs of Nike shoes to run in. Nike does not make running shoes that are good for an over-pronator like me. I'll stick to my Brooks Addictions. Of course it looks like I might be able to attach it to me shoelaces, like a timing chip. However, I have a Marware armband I keep my Nano in while I run. This essential in protecting the Nano from sweat. I don't think my Nano with a sport kit attached to it would fit in my armband. Somehow I'm guessing it will fit fine if I used the Nike armband instead...

The sport kit is not too expensive at $29. The armband costs that much, too. So that's $60 to easily track workout results... Doesn't seem worth it to me.


technorati tags:, , , ,

Blogged with Flock

To XM or Not To XM

Two months ago, I bought a new car, a 2006 Volkswagen Passat that included an XM Radio. I also got three months of XM service for free. Now that I'm two months into my free service, I figure it's time to decide if I'm going to continue with the service or not. Time to do good vs. bad.

The Good: Lots of stations, lots of variety. My brother visited me at the end of May. He told me that several of his friends have XM and really like it. He said that they have a favorite station that they leave it on ad infinitum. There's no commercials on XM and many of the stations have a narrow focus, making them ideal for "lock it and leave it." That's not how I use XM. I have 18 XM presets on my car stereo, and I have all of them programmed. I am constantly switching stations and finding great songs. Often these are songs that I have not heard in a long time, or they are unexpected songs from current releases. Just this morning I came across "Everything is Fair" by A Tribe Called Quest. I listened to that song all the time in college, but had not heard it in years. It's a great song. Later, I heard the new Dixie Chicks song "Not Ready To Make Nice." I don't listen to country (though there is one country preset on my stereo, courtesy of my wife) but this song came on mix station. I was surprised to like the song quite a bit.

The Bad: Repetition and reception/sound quality. I have been very surprised to find some repetition on XM. I have definitely heard the exact same sequences of songs on the same station on consecutive days at almost the exact same time of day (while I was driving to work.) This is very disappointing. I've also heard some particular songs repeated quite a bit over a week's time. For example, this week I've heard Alice In Chain's "Would" at least five times. It's a good song, and I was pleased to hear it the first couple of times, but it's seems crazy for a 10+ year old song to be repeated that much. The other negative is reception and sound quality. I have been surprised to see the reception fade at times. Sure if you're in a parking structure or a tunnel you expect this, but I've seen it fade when parking under a tree or stopping under a freeway overpass in traffic. I've commented before on the sound quality being far from CD or even MP3 quality. I'm really nitpicking there though, it is still a lot better than FM quality.

So what to do? I think the good outweighs the bad, but just barely. I think I will keep XM, though I might go month-to-month for awhile instead of buying a year subscription.

technorati tags:

Blogged with Flock

Wednesday, July 12, 2006

Great Idea and Hope for Education?

I came across this article about a lawsuit in New Jersey. I read it and immediately thought: "Why hasn't somebody done this before?" In the lawsuit, parents of children in "failing" schools (not sure what that means exactly, though it has an obvious conotation) are suing the state to allow them to switch their kids to a school of their choice and (this is the key) to get the money that would have gone to their "old bad school" and use it for the new school. What a great idea! It just makes so much sense. It seems so much smarter than the now "conventional" approach of just pumping more funds into the "failing" school in hope of "fixing" it.

Of course, your kids shouldn't have to go to a particularly bad school just so you get this kind of choice and freedom. Everybody should get such freedom. I'm still hoping these parents succeed, since I think it would lead to everybody (at least in New Jersey) getting the same kind of choices and freedom.


technorati tags:,

Blogged with Flock

Mac Ads

I used to be a Mac user, and Mac ad campaigns have always been interesting. I really love this bit making fun of them.

Ah, it's so funny because it's so true. Maybe I wouldn't find it as funny if I still owned a Mac, especially since I like worn jeans to boot. I think I'd still find it hilarious though. The worst thing about Macs are generally their owners. They definitely tend to be obnoxious elitists. I have a long time friend whose been a Mac for as long as I've known him (almost fifteen years) and he totally fits every Mac-fan stereotype you can think of. I have another acquaintance who is a huge Mac and especially Steve Jobs fan, and she is often guilty of pretentiousness.

Of course it's dangerous to get carried away with generalizations. I know other people who are annoying techno-snobs, too and are not Mac users. Also, I used to have a co-worker who had worked for Apple for ten years. She was a Mac user of course, but she was never arrogant and snobby about it at all. Still, the lost Mac ad is a lot of fun.

Macs are popular at my new workplace. I thought about getting a Mac laptop to go along with my Linux desktop system, but went with a Dell laptop running Windows instead. I like Mac hardware, especially now that they have Core Duos in their laptops, and I really love OSX. I bought my first Mac (an iBook) five years ago because of OSX. Still, when I thought about things objectively, I knew I would be much more productive with a Windows laptop than a Mac. I might buy a Mac laptop for my home use, or maybe another Power Mac when they get revved with Intel chips, but I would really only want it for personal use, not for work. Plus, even with the switch to Intel chips, Macs are expensive. The Dell I got has very similar stats to a 15" MacBook Pro (same processor, screen size/resolution), but I got it with more RAM and a bigger and faster hard drive. It cost around $700 less than a MacBook Pro, partially because it doesn't have a DVD burner, Bluetooth, a built-in webcam, remote control, or the illustrious iLife apps. Maybe those things are worth $700, but I had no need for them. The only thing it had that I might have appreciated was a better video card, but that's not worth $700.

technorati tags:, ,

Blogged with Flock

Monday, July 10, 2006

Expert Bee

Saturday I came across an ad craigslist. I responded to the ad, and got an email from a guy named Diego that I needed to make a bid on the project through a site called Expert Bee. I went ahead and did and won the bid. I then had to pay $8 to get in touch with the actualy client -- this guy Diego was an Expert Bee employee who had just cross-listed the ad on craigslist probably because he realized that not many people were reading the Expert Bee site. Today I get a response from the client. He no longer needs help on the project, so I'm simply out $8. He said that the Expert Bee interface had made it confusing for him to realize what was going on. Can't say I'm too big of a fan of these Expert Bee guys either! At least I paid them through PayPal so I don't have to be too paranoid that there going to (continue) to rip me off in the future...

Update: I exchanged some emails with the aforementioned Diego, and my $8 was refunded to me. So these guys seem a lot more on the up-and-up after all.

technorati tags:, , ,

Blogged with Flock

The Grassy Knoll

Saturday I set my DVR to record The Gentlemen's Finals of Wimbledon. NBC listed it as a six hour affair for some reason. My wife became a little anxious about dropping six hours of HD programming on the DVR, but the machine assured us that it had enough space on its hard drive.

So this let me get up at 8 on Sunday morning to watch the finals, instead of getting up at 6 to see it live. That's nice. I was eager to see a re-match of Roger Federer and Rafael Nadal. Their match in the French Open finals was disappointing. Not because Nadal won, but because the quality of tennis seemed low. However, part of that is because it was clay court tennis and the slowness of clay makes it hard to hit winners and thus more inevitably more points end with errors. Still, it made me wonder if the reason that Federer and Nadal were so dominant was not because they were such great players as most thought, but because tennis is particularly weak these days.

Wimbledon is on grass, of course. Grass has the opposite effect of clay. It is very fast and so it is much easier to hit winners and fewer points end with errors. So not surprisingly, Federer-Nadal was much more enjoyable to watch. The fast surface clearly favored Federer, much as the clay clearly favored Nadal. So it wasn't too surprising that Federer finally beat Nadal in four sets.

The match still left me wondering about how good these two players really were. I was very surprised to see Federer stay behind the baseline. Not only did he not serve-and-volley much, but he didn't even approach the net that much (33 approaches in four sets.) Looking at the match statistics, none of them are that amazing. One could argue that Federer simply won because he has a better second serve -- about 13mph faster than Nadal's and thus he won 57% of his second serve points vs. 42% for Nadal.

It's funny how things change in tennis. I remember a decade ago when people were complaining about the speed of men's tennis. They said that Wimbledon was the worst. Men had such huge serves that it was rare for the opponent to even return it and trivial to volley it away when they did. People complained about Pete Sampras, Boris Becker, Michael Stich, Richard Kraijeck, and Goran Ivanisevic. They pointed to women's tennis as being more interesting because there were still rallies.

In this year's Wimbledon, the last serve-and-volley player in the men's draw was Radek Stepanek, who lost to Jonas Bjorkman in the quarterfinals. The women's game is hardly dominated by big serves, but yet both finalists came to net more often in three sets than Federer did in four sets.

So how would Federer fare against Pete Sampras at Wimbledon? Not well I think. For that matter, I have a hard time imagining him doing well against Becker in his prime either. Even other guys like Ivanisevic and Kraijcek would be tough on Federer I think. Andy Roddick has a big serve like those guys, but he is a baseliner at heart, just like Federer.

Now don't let me sell Federer too short. His game is amazing, especially his forehand. The best forehand ever? Maybe. It reminds me of Steffi Graf's forehand. Actually his game in general is similar to Steffi's, though he probably has a better backhand (though she made a lot less mistakes with her backhand than he does.) He is a lot of fun to watch play. I think he would be tough for mid 90's Sampras on hard courts, but I just don't think he would ever be able to break Sampras on grass. Ever. His return is not good enough and Sampras would swing for the fences so to speak on Federer's serve. And Federer does not seem mentally tough (unlike Nadal.) That was what made last year's US Open final so interesting. Everybody thought that Andre Agassi stood no chance, but then he took a set. You just knew that if he forced a fifth, then either Federer would have to show mental toughness that he had never shown before, or the A-Train would have rolled.

One final note on Wimbledon. This year was the first Wimbledon where I watched most of it in HD. Last year I saw some of the highlights, but usually on the SDTV in my bedroom. I was in Bakersfield during the finals. This year I saw a lot of early round action in HD, and watched all the finals in HD. Tennis is a spectacular sport in HD. It was amazing to see the cracked dirt on the worn parts of Centre Court, and to see the dust and grass fly as players ran down balls. There were also a couple of points they replayed in super-slow as Federer or Nadal hit shots. It was incredibly to see their muscles rippling as they hit forehands and backhands.

technorati tags:, , ,

Blogged with Flock

Friday, July 07, 2006

Required Programming Skill: SEO

As I've mentioned in an earlier post, I occasionally do some moonlighting as a consultant. One thing I've noticed lately is a lot of projects where one of the "programming" skills needed is Search Engine Optimization or SEO.

Programming is my profession. So to see SEO labelled as programming is ... offensive to say the least. SEO is a similar skill as spamming or creating pop-up ads. How can it be compared to "true" programming skills.

Then again creating spam that dodges spam filters or pop-up ads that avoid pop-up blockers is non-trivial. It does indeed involve a skill. It may be a skill that I wouldn't brag about to my friends and family, but it is a skill and it is a skill that involves programming of some sort.

So maybe SEO is a programming skill. I made a post on Slashdot recently talking about so-called Internet Operating Systems or WebOS. To me a WebOS is a different kind of OS that lets people create web applications. Traditional OSses allow you to save bits to disk, whereas a WebOS would allow you to save a photo. Perhaps SEO is a part of WebOS.

In the B2B world I've been working in for many years, there is a lot of talk of using web services. One of the idea of web services is that you can publish a description of your service to a UDDI repository. That's a lot like the old Yahoo directories, which did not work. Search is the easier technology than directories or repositories. If search is an integral part of WebOS, then indeed SEO is part of it too.


technorati tags:, , ,

Blogged with Flock

Thursday, July 06, 2006

Global Warming

Global warming is always a fun subject. It's the Left's abortion, i.e. it's an issue that progressives are as passionate as fundamentalists are on abortion. Actually I don't think that's quite fair. I think progressives are less passionate in general than fundamentalists -- it's jus the nature of the doctrines and the basis of their appeal. I digress.

Anyways, I guess Al Gore's video has really generated a lot of interest in global warming. To me, it's one of those topics where both sides have substantial evidence. It does seem like more scientists are convinced of global warming than are not. I was particularly interested in seeing Stephen Hawking's comments in China recently about global warming.

Much like abortion, there is an easier way to assess the issue than trying to sift through mountains of evidence. The connection that most scientists make is between air pollution and global warming. If there is no connection in these things, then there's not much that can be done about global warming. Opponents say either that the connection cannot be made or that global warming is not occurring.

Personally, I don't care. Pollution is a problem, a big problem. My wife is from Bakersfield, part of California's San Joaquin Valley. Air pollution there is awful. She suffers from asthma, as do many people in the valley. An estimated 16% of all children in Fresno suffer from asthma. That's one out of six. That's a lot of people, particularly children, suffering because of air pollution.

I'm one of the last people you'll find to appeal to the government to solve a problem. The government stinks at solving problems. On the other hand, I'm not a devotee of laissez faire above all. I do believe in freedom, and a corollary of freedom is capitalism. It is ridiculous to think that capitalism can solve all problems, and air pollution seems like one of those.

What disincentive is there for those who pollute the air in San Joaquin Valley? Some of the pollution is from farms, but a lot of it is from large trucks hauling cargo from the ports in Los Angeles and Oakland. If I run a trucking company, why would I care about the health of children in Fresno? For capitalism to work in this situation, there would have to be a reason for the polluter to care about the environment. But there's not. A truck that produces less pollution is not going to be cheaper or more efficient than a conventional truck -- not unless oil hits what $200 or $300 a barrel?

And thus air pollution is one of the rare cases where govnerment intervention is needed. Freedom must be reduced to reduce air pollution. This may well lead to a reduction of global warming -- but probably not. The United States is a huge producer of air pollution, but hardly the only one. Other nations will likely continue to produce air pollution, and thus the reduction from the United States may make little difference in aggregate. But it will make a big difference in the lives of people who live in areas of significant air pollution. It will make a big difference to the lives of children in Fresno and Bakersfield.


technorati tags:, , , , ,

Blogged with Flock

Apps Retry

I've recently taken a new look at a couple of Web 2.0 apps: Flock and Meetro. I had already tried both of them and blogged about Flock last year. I had seen the news about Flock going beta, so gave it a new try.

The good news is that Flock has really improved over the last nine months. I didn't find any of the huge bugs I experienced last year. I did run across some weird issues with its blogging tool, which I'm using now and used for a couple of other recent blogs. It seemed to dump a ton of unclosed font tags into the HTML it generated. Blogger was not too happy with this. It wasn't too hard to fix the HTML by dumping it into a text editor (TextPad) and doing a search/replace, but it was annoying to have to do that. It's only done that on one of the three blog posts I've written using it, so I haven't abandoned it ... yet.

One of the great assets of Flock is that it is based on Firefox. This is a problem too, because Firefox has so many extensions. The two features I like the most about Flock are it's delicious integration and blogging tool. However, I like the Firefox delicious extension better than Flock's delicious integration. Flock is more seamless, but that makes it seem strange. Also there are bookmarks that I want only on one computer somtimes, such as sites on my company's intranet. I don't want thse sent to delicious since I won't even be able to use them from any other computer, unless I VPN'd to my company's intranet. I do like Flock's blogging tool better than Performancing, the tool I've been using on Firefox.

The other app I retried is Meetro. It too has come a long way in the past six months or so. It offers integration with AIM, Yahoo, MSN, and ICQ. That's great, but where's Google Talk? Also, it's buddy list management is really lacking. You can't create aliases and you can't organize the buddy lists.

Of course Meetro's selling point is not as a universal IM client (Gaim is much better for that,) but as a location aware IM client. This seems to work OK. I put in my work address and it insisted I had my zip code incorrect, even though I didn't. It also made an initial guess on my location as Fremont. I was in Los Altos, which is about 22 miles away.

Keep in mind that I am far from the target user of Meetro. That would definitely be teenagers and particularly college students. I might get my teenage nieces to give it a try and see their opinion, and maybe my nephew Daniel, who is a student at FSU.

Update: I have grown tired of Meetro and uninstalled it. I did recommend it to a few of my nieces, so I'll see how they like it. I've really grown fond of Flock and have started using both its RSS aggregator and its Flickr upload features a lot. It's very cool to open my photostream and drag-n-drop pics from it to a blog post I'm working on. It would be nice if there was a sync extension for it, so that if I add a newsfeed on my laptop it is also added on my desktop at home.

technorati tags:, , , , , ,

Blogged with Flock

Wednesday, July 05, 2006

Confirmation Bias

I was catching up on feeds, when I read this post called A Declaration of Cognitive Independence. It links to a Scientific American article on the so-called confirmation bias. This is a great read, though it's one of those "obvious" things after you read it. It says that people don't think when they are faced with information that is contradictory to their opinions/beliefs. This seems anecdotal, but the article offers some modest scientific proof of this phenomenon.

This has to be incredibly obvious to anybody trained in the world of science. Science is built around principles designed to squash the confirmation bias. That's what the scientific method is all about. The article mentions this, and suggests how similar principles could be applied to things like politics and corporate decision making.

There were a couple of interesting thing that this brought up for me. First, it reminded me of my eleventh grade English language course. This class had a huge effect on my life. It was an Advanced Placement class taught by a tough professor who had a Ph.D. and had taught at four-year colleges. It really taught me how to write and express myself. This has been a huge advantage for me both in college and in my career.


The reason I bring it up is that a lot of what we did in that class was write position papers and essays. I had some experience writing these kind of papers from my tenth grade European history class, but the English class took things to a new level. One of the principles that was stressed to me was that if you want to write a convincing essay, you must gather the most convincing evidence to support your position. As a corollary, you add nothing that would contradict your position.

This seemed like a great strategy when I learned it, and I have employed it quite successfully over the years. Now I must wonder if it is fundamentally flawed. I was already indoctrinated in the scientific method and mathematical proof before I took this class, so I'd like to think that I judiciously employed those techniques when forming a position, even if those techniques were not reflected in the statements of the position. I'm sure there are many times when that was not the case though...


The other thing that this article made me think about was personal relationships. Confirmation bias is a big part of most people's relationships with other people. The scientific method is great in science, but as I have learned first hand, it is often inappropriate during social conversations. If you're being scientific when socializing with your friends, then you will often find yourself challenging their statements and trying to discredit their reasoning. That's not a great way to build friendships. Maybe Stephen Hawking and Kip Thorne can interact like that, but I think most people would have a hard time with it. Now there are probably people who actively seek confirmation bias in their friends, but even those who would disavow such sycophants are still guilty of the same thing in one way or another.

technorati tags:, ,

Blogged with Flock

Saturday, July 01, 2006

Moving

Yesterday I moved. It was a short move, in terms of distance between old and new locations (about 1 mile.) I moved to a bigger house: 4 bedrooms vs. 3 bedrooms. We moved to our old house last March. We found out we were having our second baby about a month later, and right then I knew that eventually I would want to move to a bigger place. Eventually turned out to be about 15 months. Our old house had a pool, which was nice for us but not good for kids. The new house has no pool, but a very big backyard -- which is great for kids. It's funny how your priorities change over time. It also has air conditioning, which the old house did not. The recent California heat wave has made me really appreciate air conditioning.

Of course the worst thing about moving is ... moving. We planned things out in great detail, but of course nothing works as you plan it. I shouldn't say that. Our moves arrived when they were supposed to and moved everything to the new house in about 15 minutes less time than we had allotted for it. Everything was downhill from there.


Our stuff on our old lawn, ready to be moved

First, our new refrigerator didn't arrive when it was supposed to. In fact, it didn't arrive until today. Apparently the delivery person who was to deliver it yesterday was involved in an accident, and his boss had already taken off when started calling asking where the hell refrigerator was. So we had to buy a small refrigerator to put a few vital things in to store over night. We still wound up throwing away some food, which is aggravating.

Next we had problems with our washing machine. For some reason the belt on it keeps coming loose after awhile. I guess we will have to get a repairman to look at it. It's a Maytag, so memories of all those old Maytag commercials came to mind. You know the ones where the repairman is moping around lonely because nobody ever has problems with their Maytags thus nobody ever needs his services. Well we're gonna need him now...

Next the Comcast cable guy came over. He got the cable working -- sort of. We had brought over cable boxes and our cable modem from our old house. We hooked it up to our main TV. Most channels were ok, but the high-def ones were not. They were not in HD, and too big for the screen. The repairman made the typical customer service responses, suggesting something was wrong with my TV. Then he thought something was wrong with the connection cables from the cable box to my TV. So he put new ones in, and that had no effect. I suggested that maybe something was wrong with the cable box. So he brought in a new one, and it worked great.

I wasn't done with the cable guy yet. Next we had to get the cable modem working. I had it hooked up directly to my computer. We tried to go online and instead got some special Comcast page that indicated that my computer was connected to their network but could connect to the internet. To fix this problem, the repairman had to download some program from Comcast to my computer! He didn't even ask me if this was ok. Anyways, he installed the program, ran some operations and of course it did not work. The program indicated that my cable modem still belonged to my old account. Apparently Comcast could not just my location, they had to give me a new account. I guess there is some relation of (user, location) -> account. So my modem would only for my old account, not my new one. The guy tried to call somebody at the local Comcast center. That person apparently was inexperienced and incompetent. So the guy called a friend of his at a national center. This person was able to transfer the modem to my account, and everything worked. Of course I un-installed the Comcast software immediately after the guy left..

So now we're moved. We got the refrigerator today. We still need to get the washing machine fixed, but we're making progress!

technorati tags:, ,

Blogged with Flock

Tuesday, June 27, 2006

Burn Baby Burn

I woke up last week and on the morning news they were talking about flag burning. It seemed there was support for a Constitutional ammendment that would give Congress the ability to protect the flag, even though the Supreme Court had ruled that flag burning was a form of speech (hence the need for an ammendment.) I cringed upon hearing this.

I remember when the Court struck down a Texas law banning flag burning. I was incredibly happy. So was my father. My father served in the Air Force for 25 years, including three wars. He enlisted at the end of World War II. I remember him remarking to me "I didn't fight the Nazis just so they could come to power now."

So a showdown on this kind of issue is the ultimate litmus test. Are our leaders willing to trade away freedoms in exchange for jingoistic saber-rattling? Still I have to admit that I was pessimistic about this vote.

That pessimism grew a lot worse when I saw this op-ed article in USA Today from one of my senators, Dianne Feinstein. I'm a Democrat, but I dislike Democrats and Republicans both. Still I usually dislike Republicans more than I dislike Democrats. Why? You can usually count on Democrats to protect civil liberties, even though they can also be counted on to violate property rights. There was once a time when you might expect Republicans to do just the opposite, but now all you can really count on from Republicans is for them to take away civil liberties. They have done a terrible job of protecting property rights.

So why the hell is Feinstein supporting the Flag Protection Ammendment? I thought that maybe she had some kind of argument I had not thought of, so I read her op-ed. Nope. Typical nationalistic drivel:
On the morning of February 24, 1945 — when I was a 12-year-old girl — I picked up a copy of the San Francisco Chronicle. On its cover, there was a full-page picture of the now iconic JoeRosenthal photograph of American marines raising the United States flag at Iwo Jima. For me and for the nation, the photograph was a jolt of electricity boosting our morale during the terrible island-to-island Pacific battles of World War II. The sight of those troops hoisting Old Glory forever cemented my view of our flag.
Boy am I glad I didn't vote for her in the primary this year. I didn't vote for her then because she had voted for invading Iraq. Anyways, this incredibly disppointing. Maybe now I should assume that Democrats will not only abuse my property rights, but will also take away my civil liberties. After all Democrats proposed an alternative bill that would create all kind of situations where flag burning would be illegal.

Maybe that's not fair. One Democrat had an eloquent argument against the bill:

"Our country's unique because our dissidents have a voice," said
Sen. Daniel Inouye, D-Hawaii, a World War II veteran who lost an arm in
the war and was decorated with the Medal of Honor. "While I take offense at disrespect to the flag," he said, "I nonetheless believe it is my continued duty as a veteran, as an American citizen, and as a United States senator to defend the
constitutional right of protesters to use the flag in nonviolent speech."

Sound like he and my dad would have gotten along pretty well. The ammendment failed, by one vote, with most of the nays coming from Democrats. But don't fear! The Republicans in the House voted in support of a bill that would prevent condo and homeowner associations form restricting how the flag can be displayed. It's great to see the Republicans have found a way to use nationalism to remove property rights...

Technorati Tags: , , ,

Monday, June 26, 2006

Hope for Health Care

It's finally happening, and I didn't even realize it. I came across this article on wellness centers at retail stores and pharmacies. This could be huge, and I don't know how I missed it. Health care has needed this kind of innovation for so long it's not even funny. But wait, it gets even better.


The last paragraph in the article mentions that one of the companies that is operating these clinics is using software to generate a recommended diagnosis that a nurse practitioner either approves or overrides. I've been waiting for this to happen for at least six years now. I became convinced that this is what health care needs six years ago when I was sharing a pizza with some friends at Zach's in Berkeley. One of the guys there, Joe, was a recent med school graduate doing his residency at UCSF. He was complaining about the incredibly long hours he had to work, and how zombie like it made him. I commented that it was not encouraging to know that when you see a doctor at a hospital, there is a pretty good chance they are in zombie mode at the end of an eighteen-hour shift. He told me not to worry, that 99% of what he did, "a monkey could do" and that a zombie mode doctor was perfectly effective.



Now of course any fan of Star Wars has had to wish for a medical droid while waiting in a hospital ER. So the idea of replacing doctors with technology (computers generally smell better than monkies) is hardly new. But the medical droids always seemed like such advanced technology. They seemed as fantastic as lightsabers and hyper-drives, and definitely a lot more advanced than a monkey. But that all comes from the myth that what doctors do is so hard. The truth is that what some doctors do is incredibly difficult, but the bulk of what they do is mundane. Not only mundane, but perfectly well suited for technology. Matching symptons to afflictions and making a diagnostic is exactly the kind of logic that a computer excels at.


Anyways, all this reminds of me of several great articles I've read over the years on how to fix the health care industry. First off the problems of health care come from licensure and the barriers to entry that it creates. This was spelled out by Milton Friedman's quintessential Free To Choose:


One effect of restricting entry into occupations through
licensure is to create new disciplines: in medicine, osteopathy and
chiropractic are examples. Each of these, in turn, has resorted to
licensure to try to restrict its numbers. The AMA has engaged in
extensive litigation charging chiropractors and osteopaths with the
unlicensed practice of medicine, in an attempt to restrict them to as
narrow an area as possible. Chiropractors and osteopaths in turn charge
other practitioners with the unlicensed practice of chiropractic and
osteopathy.



This is still a big problem, as these new wellness centers are still restricted in what they can offer and have to partner with MDs on some cases. These barriers to entry make it difficult for disruptive technologies to lead to innovation and cheaper health care. The software mentioned in the article could be viewed as a potential disruptive technology. As such, I would expect the AMA come after it in a big way.


Links
How Medical Boards Nationalized Health Care
Will Disruptive Innovations Cure Health Care?



Technorati Tags: , ,

Friday, June 23, 2006

Good (Java) Programmers

There's been a couple of great blogs out there about the value of good PHP programmers and how to find good PHP programmers. These are all good reads, and I've had some fun in the comment sections of a couple of these blogs.

It made me start thinking about the value of good Java programmers. If you scan craigslist, you'll find a lot less Java freelance work than PHP. Looking at Elance, there were 75 PHP projects but only 29 Java projects, in web development. So it's a lot harder to talk about Java freelance work, and what's valuable, etc. It seems that most Java developer probably work for a company, instead of doing freelance work. It is also well known that Java development is more costly, which is probably why there is less freelance work -- typical food chain kind of thing.

One of the great points that Ben makes is that when doing freelance work, you should never under-bid. I agree with this, even though I definitely don't obey this. You see, I love doing freelance "moonlighting" work in my spare time. To me it's a chance to try out new technologies and hone my craft solving real world problems. Plus it's extra money, and who doesn't like that? Finally, I learned a valuable lesson when I was working for a consulting company. For any given project, there's at least twice as much money to be made as the client says there is. So if I see project out there with a fixed bid of $2000, I assume there's a pretty good chance I'll make $4000 in the end. Still, I think Ben is right. I underbid only when the project is an "investment" for me, i.e. a chance to learn or try out a new technology that I'm interested in.

Ok, so on the other side of things, how do you tell if somebody is a good programmer? I'll talk mostly about Java programmers, though most of my analysis is valid for many other kinds of programming. Let's get that out of the way first, actually.

So what's make a good Java programmer? They need to be a good programmer, period. That means the ability to think analytically and abstractly. Now that is a more difficult combination than you might think. I'm actually not as big on the kind of logic puzzle and brain teasers that are popular at Microsoft and now Google is famous for. I was recruited by Google last summer, and while I found some of the questions fun, I found little value in many of them.

I like problems that I see more of a direct connection to programming. It's not hard to come up with such problems, they're all around you. Just ask a non-programming friend about their job. Listen to what they do, then ask about things that are boring/tedious for them. These are all programming projects waiting to happen.

Of course it's also nice to take more "known" problems, i.e. problems where the solutions involve concepts that are common in the programming world. I was also recruited by Yahoo last summer, and they had much better questions there. Unlike with Google, I didn't sign an NDA about their process so I can talk about some of the questions they asked me. I interviewed with one of their search teams, and one problem I liked was about how to figure out the most frequently searched for terms. This is the basis for their Buzz Index. Anyways the problem boiled down to having lots of different data sources that kept track of searches and having to aggregate things efficiently. It's a real world problem where knowledge of data structures (heaps in this case) were helpful. But even if you didn't know about a heap, you could still come up with a good solution. Or even better, you could come up with a bad solution and the interviewer had the chance the criticize and give you a chance to improve on your solution. An English professor of mine loved to say that "writing is revision" and the same is true of programming.

So to me that was a good programming question. Of course I may be biased since I did well on the question. I think it's a much better question than "what is a heap?" or even "what is a heap and when would you use it?"

As for more Java specific things... Understanding the JVM is important to me, especially with regards to the trade-offs you make when you use Java instead of other programming languages. Despite what I do for a living, I'm a big believer in "right tool for the job." Most people (me included) don't usually have that luxury, i.e. you are quite limited in what tools you can use for a given job. Doesn't dimish the value in recognizing the limits of Java (or whatever) on a given task, and thinking about how some other technology might address the problem more easily. I don't like to get too involved in Java specifics. If people mention specific areas of expertise, then I do feel obliged to probe. That's as much about verifying integrity as it is about testing their knowledge.

And that brings me to my last point. There are many qualitative things that I look for in interviews. It's not just how good of a solution to a problem people come up with, it's how well they articulate it and how quickly they can solve it. If they get stuck, do they ask questions? If you give them help, how do they use it? For that matter, how quickly do they grok the problem at all? I also like to make stupid comments or questions. I like to see if they will reject this. These are all things that are good indicators of how productive they are going to be in the long run, and how much value they will add to my team.


Technorati Tags: , ,

Tuesday, June 20, 2006

Net Neutrality

There's been a lot of debate over net neutrality lately. It's an interesting debate. I can sympathize with the net neutrality supporters, but must oppose their efforts.

They have some good arguments with regards to free speech. One could imagine ISPs blocking "questionable" content from their end users. That could start off being things like kiddie porn sites hosted in the Czech Republic, etc. That's an obviously slippery slope to go down, and sites could be blocked based on politics or religion, much like we see with The Great Firewall of China. Free speech is incredibly important so I can definitely sympathize with the concern here.

Many of the backers of net neutrality have far less noble principles. This includes some of the big web companies like Google and Yahoo. They have an obvious and selfish agenda. They are starting to offer video services online -- services that consume large amounts of bandwidth. They are worried that cable operators will either deny or slow down their services unless some kind of payment is made to them. This would obviously hurt Google's ability to compete with these cable companies on video services.

I can see how that seems awfully unfair Google, but so what? It's not Comcast's duty to make it easy for Google to compete with them. In fact their shareholders would say it's their duty to do just the opposite. Nobody has to make things easy for Google. The world is not fair.

It's ridiculous to say we should pass laws to help Google compete with Comcast. Of course I know the argument that some would make, that such compettition will mean cheaper/better services for consumers. So what? The Constitution is not about cheaper better services for consumers, and when you pass laws you better talk about The Constitution. At the end of the day a net neutrality law would limit the ability of a private part to use its own property as it sees fit. That's a big deal. Anytime you are going to tell people how they can use their property, you better have some real good reasons. Protecting Google is not a good reason.

But what about free speech? The importance of the internet as the ultimate vehicle for speech should not be downplayed. How much of the information you absorb comes from online sources? Ultimately, free speech as a right is with regards to the government. The government cannot prevent people from exercising their right to free speech. Other people can certainly stop you. I can speak in public and get booed. It's the government's job to arrest the boo-birds so that my speech can be heard. I can send a letter to the editor of my newspaper, and my newspaper doesn't have to print it. It's not the government's job to make the newspaper print my letter. I can email a video to my local tv station, but they don't have to show it on the news. It's not the government's job to make show my video. So I can make a website and it's not the government's job to make sure that people can access my website.


Technorati Tags: , , , ,

Seam

Last week marked the 1.0 release of JBoss Seam. This is the latest project from Hibernate founder Gavin King, and so I've been watching it closely over the past couple of months. I downloaded the 1.0 release and built its samples. None of them worked! This was very surprising. I went through the JBoss forums, and found the problem. Even though Seam 1.0 is GA, the version of JBoss that it needs is not. Luckily King posted a link to the beta installer. Once I used this version of the installer, the samples worked fine.

So what is Seam? I think the introduction given by King and other JBoss types is somewhat obtuse. They talk about a lot of different things that Seam involves, all tied around Annotated Pojo-components. Instead of talking about the cool things you can do with Seam, they should really talk about how easy it is to do some of these cool things. That's where its strength lies. Anything you can do with Seam you can do without Seam. It's that Seam makes some things easier.

Take a classic catalog example. You have a catalog of items. Each item has some info on it, name, price, description. You have two web pages, one for showing the list of items, one for adding a new item. With Seam, you would create two classes. One class for modeling the item and one class for providing an item service used by both pages.

For example, to get your catalog page to retrieve the catalog from the database, you would have some method like findItems() and would annotate it with @Factory("catalog") where "catalog" is some logical name for your list of items. Then you just tell your catalog page to use the "catalog" object (#{catalog} using JSF expression language) and Seam would automatically execute your findItems() method, which could initialize your "catalog" object using a query. 

Similarly you could have a saveNewItem() method ony our service, and then in your edit item page you have a button whose action is "itemService.saveNewItem" where "itemService" is just a logical name for your item service.

This is a really simple example, but that's the point. You can do really simple things, really easily. That may seem like a silly statement, but if you've ever tried to write a Struts app that used a Stateless Session EJB and an Entity EJB ... well then you might have moved on to PHP or Ruby on Rails. Well that's essentially what's going on in the example given above. Ok, so JSF and Struts are not really equivalent, but you get the point.

My biggest sore spot with Seam has always been its use of JSF. I'm not a big fan of JSF. I know it was intended to allow for easier WYSIWYG development, but that's of little solace to me. However, its component lifecycle makes it work well with EJB3 and that's how you get Seam.

As for all of Seam's many other features... the new AJAX support sounds promising. I haven't tried it out yet. Sounds very similar to DWR, in that operations on your Seam components (like the item service mentioned above) are exposed via JavaScript. It uses a remoting servlet for processing AJAX requests (maybe they really are using DWR.) One amusing thing I found was that the JS libraries come from the servlet. The developer has to do a lot of the AJAX themselves -- triggering a JS call on some event, handling that event to make a remote call, processing the result of the remote call by updating the page DOM. Seam, like DWR, just makes it easy to make the remote call and get the results back. Seems like with the integrated component model, better AJAX support should be possible.

Saturday, June 17, 2006

Windows Vista Beta 2


Windows Vista had its first public beta released last week. I had tried out the first beta last year, so I was very interested to see the new beta. So I decuded to download it from Microsoft.


Microsoft wants you to use the Akamai download manager. That sounded fine to me. I was using Firefox, so it directed me to a Java version of the download manager. Only problem was that it never worked! I would get a message there were too much traffic. So just for kicks, I tried to do the same thing with IE. For IE, there is an ActiveX control to use instead. What do you know, it worked the first. It opened up four connections and downloaded at a very nice ~850K/sec. So much for too much traffic.


Now there was the question and what version of Windows to download. I have an AMD Athlon X2 processor, so I decided to give the 64-bit version of Vista a try. I am currently running XP Pro, and even though is a supported "upgrade" OS, the upgrade was not possible to the 64-bit version. Why? Simple, the installer is clearly compiled for a 64-bit OS, and thus it won't run inside XP. I had to boot up with the installer DVD, and if you do that then upgrading is no longer an option.


No big deal, I was already planning on installing to my "spare" 40 gig partition I've used for all kinds of things. Once I booted up with the DVD, installation was no problem. It was very slow, but OS installs almost always are I suppose. I then booted into 64-bit Vista.


Here' s where the problems started. I knew that drivers were going to be an issue, so I had already found and downloaded (to my main partition) the drivers for my wireless card and my graphics card. I figured (correctly) that I wouldn't need to do anything special to get the basic on my motherboard working.


I then tried to install the drivers. Vista refused to install the drivers. During the installation process I had remembered something about turning off digital signing of drivers. So I went back to XP, and figured out how to do that. Didn't work.


Time to start over! So I downloaded the 32-bit version of Vista. It was a gig smaller anyways. I re-formatted my spare parittion and installed 32-bit Vista there. This time it already recognized my graphics card driver, so I didn't to install that. I tried the same wireless card driver, and this time it worked.


Now everything worked! I tried out some of my other hardware -- sounds, printers, memory card readers all worked perfectly. I created a VPN connection to my company. This was as easy as in XP. Only weird thing was that once I had the VPN active, only requests inside my company's intranet worked. Anything to the internet did not. This was not the case with XP. There's probably some configuration issue here, but I didn't feel like figuring it out.


Now on to the more subjective parts... The UI has not changed too much from the earlier beta. Lots of dark, glossy colors. The start button is bigger than ever. The windowing system is clunkier. Doing an "explore" on the start button opens Explorer. It's hierarchy of folders jerks around a lot and is slow on refreshing when switching folders. There's also often a big pause when opening or closing Explorer windows.


Here are a few screenshots. More can be found here. Here's Windows Explorer, with the new icons to indicate what's inside folders:





Here's Firefox. You might notice the Google Browser Sync. This is especially useful on a fresh install. I got basically the same setup (cookies and bookmarks) as I had on my XP install. It might be nice if it could sync the extensions as well.





Here's Word 2007. Lots of glossy blackness!





There are a few new apps included. Microsoft's anti-spyware app, Defender is one of them:







Another new one is DVD Maker. I'm guessing that this might be one of the extras you get with Vista Ultimate. Unfortunately I couldn't try it out, since it said my GeForce Ti 4400 was not good enough!





Another new one looks like Microsoft's answer to iPhoto, or Picasa/Adobe Photoshop Album on Windows. It's called Windows Photo Gallery:





Finally, one really weird thing with Vista. I installed my favorite development setup: Java, Eclipse, Tomcat, and MySQL. For Eclipse, I installed Web Tools, but the installation failed. Apparently some of the files in WTP had file paths there were too long for Vista. I tried it with Eclipse installed in C:\, but no luck. I'm curious what this limit is on Vista, and why is shorter than on XP?

Update: I have somehow managed to corrupt IE on my Vista install! When I try to launch it hangs, completely pegging out one of the cores on my cpu (but thankfully only one core, not both.) I have to kill it in the task manager. I thought that maybe I had done by shutting down a few services. Much like XP, there are many useless services launch by default. The only important ones I shut down were Windows Firewall and Windows Defender. I have a real (hardware based) firewall, so I shutdown Windows Firewall on XP. I thought that maybe Defender was causing Windows to be incredibly slow when extracing ZIP files. Switching it off had no effect. Switching it back on did not help with IE. The only other services I shutdown were either things that I shutdown on XP (like computer browser and distributed link management) or new things that seemed related to media center functionality (services for downloading tv schedules and scheduling recordings.) Turning everything back on had no effect! So I'll just use Firefox, as I do on XP. Only problem is that I can't set Firefox as the default browser via Windows. I can even tell Firefox to check for this and make itself the default browser. It's convinced that it is doing this, but it is not. That's one way to keep people using IE, if only it would launch...


Technorati Tags: ,

Monday, June 12, 2006

JAXB-RI

A couple of years ago, I decided to use JAXB for parsing an XML configuration file. There were a lot of other ways to do it, but I liked the strongly typed object references it gave to my runtime classes. I wasn't concerned about performance, since it was only going to be used onced -- to unmarshall a single configuration file at application startup. I looked at a couple of the implementations of the JAXB spec. Sun's reference implementation was commonly used, but I liked the way that Apache's JaxMe worked better. It had some nice JAXB+ extras I liked as well, even though I didn't plan on using any at first.

Two years later I find myself considering using JAXB once again. My use for JAXB would be a lot different this time around. I thought it was good time re-evaluate some of the JAXB implementations.

JaxMe has not changed much in the two years. In fact, I had upgraded the version of JaxMe that the app I wrote two years was using, so I had already used its latest. It had improved in quality quite a bit, with many "features" (support for advanced XSD constructs) added and bugs fixed.

I took a look at Sun's reference implementation, JAXB-RI. The biggest change with it is that it uses Java 5 Annotations to greatly reduce the amount of code generated from a given schema. This is really nice. Now there's no need to generate a separate SAX handler for every complex type, and of course there's no configuration file mapping complex type -> Java class and complex type -> SAX handler. It also no longer generates separate interface and implementation class for each complex type.

Of course this is exactly why Annotations were introduced, to simplify boiler-plate code. The generated code is simple and clean. It has no dependencies on anythin JAXB-RI specific, just the Annotations that are part of th JAXB spec. It would be asy to take an existing class, add some of these annotations and use JAXB to generate XML.

So kudos to the JAXB-RI team. There are still some areas for improvement, but this is a very nice improvement on a useful technology.

Google Killed The Internet?

One of the really great things about going to a great college is that I made friends with some really smart people. Every once in awhile I read something that makes me realize just how smart some of my friends are. That happened today while reading an article on The Motley Fool called How Google Is Killing the Internet.

The article talks about how AdSense "fake sites" are being setup in droves. These sites show up on searches, have either no content of their own or its copied from somewhere else (like Amazon) but they have AdSense ads all over the site. All it takes is a click on one of those ads and they make money. It's annoying, no doubt about it. But does it mark the end of the internet, or is it just another wrinkle in the ever-evolving complexities of the strain of unstructured search known as web search?

Whatever. These sites do provide the stepping stone to some actual insight by the author. The real threat out there is click fraud, not the bogus AdSense sites. This is the ultimate threat for Google, though I'm not sure if that makes it the ultimate threat to the internet (or if it makes a threat to the internet at all.) The author then claims that click fraud is a big problem, much bigger than Google admits. He claims that they don't care about doing anything about it because they are still making money, and that their virtual monopoly (60% market share) on search gives people little choice but to live with the click fraud. He then goes on to claim that is why Google is busting out with so many other offerings, since they know that the AdWords/AdSense money machine is going to fall apart one day because of click fraud. He then points to insider sell-off of Google stock as further evidence that its management sees the end coming.

This is where I realize how smart some of my friends are. The guy writing this article, Seth Jayson, is probably supposed to know a lot about Google. He's probably very technology/internet savvy, and has a nice education. Making this kind of analysis and writing about it is what he does for a living. The article in question is a nice piece of analysis, and makes a lot of sense. It's totally wrong though, and I know this just because of a conversation I had with my friend Terry a couple of weeks ago.

We were talking about Google as well. I don't remember how it came up. Click fraud is indeed the ultimate threat to Google. Offline advertising hurting. DVRs are killing TV ads. Print ads in newspapers and magazines suffer because people would rather get their information online. Radio ads are hurting because people are listening either to their iPod or satellite radio instead. Online ads are the way to go, yet they are suffering too. Unsolicited ads are being stymied by pop-up blockers and spam filters. But targeted ads, as executed by Google, or thriving. Widespread click fraud would crush that. Monopoly or not, people are not going to pay for ineffective advertising.

That's where all the other Google apps come in. Why offer GMail? It does provide more advertising opportunities, but what it does even better is force you to login to Google. It verifies identity. If your identity is verified, it cannot be used for click fraud. Any clicks you make are legit, no fraud. Imagine if Google made you login with an encrypted password whenever you clicked an ad. That would have the same effect as having you login to GMail. Or Blogger. Or Google Pages. Or the new Google Spreadsheet. Or if you use the Google Browser Sync on Firefox. All of these services force you to verify your identity and thus make your clicks certifiable and golden. Take that click fraud.

This was the insight of my friend Terry. This is a level of insight that Mr. Seth Jayson does not posses, even though he's probably a lot more time and effort into thinking about Google and click fraud than my friend Terry has. Yet Jayson's analysis misses the most crucial part of Google's strategy.

French Fried Disappointment

I set my DVR on Saturday to record Sunday's French Open final. Talk about a "game of the century" kind of setup. You had the (current) greatest player in the world (maybe ever) in Roger Federer going for his first French Open and a "Roger" slam -- winning all four grand slam events consecutively. Against him you had the only guy who has beaten him this year and winner of 59 consecutive clay court matches, Rafael Nadal. I was almost tempted to wake up early to watch it, but settled on recording it.

Talk about a major disappointment! The first two sets were terrible. Federer played poorly even though he won the first set 6-1. Nadal definitely clean up his game after the first set, but these two guys are capable of so much better tennis. You have to acknowledge the environment. It was a very hot day, and that certainly contributed to the poor play. Plus this is clay court tennis, where typically it's he who has the least errors (28-51 in favor of Nadal) who wins, not he who has the most winners (35-25 in favor of Federer.) But still, this did not seem like a match between arguably the greatest player ever (Federer) and the greatest clay court player ever (Nadal.)

So all this begs the question, are these guys actually not that good? Are they simply good players in a age of mediocre players? For so many years, tennis has enjoyed a string of great players. In the late 70s and 80s, we had Borg, McEnroe, Connors, and Lendl. Then we had Becker and Edberg. Then it was the golden age of American tennis with Sampras, Agassi, Courier, and Chang. Nobody would question how great all these players were. Federer and Nadal seemed like a continuation, and possibly an evolution of these greats. Federer's game seems nearly flawless at times. His play was impressive defeating Agassi last year at the US Open, but Agassi is far from his prime. Maybe's Agassi's ability to still make the US Open final is more evidence that tennis is very mediocre right now.