Thursday, August 31, 2006

JSON vs. XML

I recently was dragged into a JSON vs. XML debate. There are definitely some people out there with strong opinions on this matter. I'm not really one of them. However, most web developers I've worked with like how easy JSON is to work with. That's good enough for me. Plus, some of the typical pro-XML arguments are particularly disturbing to me:

  1. XML has strong typing. That's great if you're doing some kind of B2B data/document exchange. Is it really well-suited for the web? Do you want to run a schema-validating XML parser inside a browser? If your server dishes up an XML doc, do you really want your browser to reject it?
  2. XML is extensible. Being able to extend a schema and thus add to a document is great, but do you really want data objects that have a lot more information than is needed by your browser? Perhaps you'll want to wait until the net neutrality debate is over before you answer that...
  3. XML allows your client and server to use the same data model. Again this sounds great, but there are big problems. First, it implies your server is storing everything (or a lot of things) as XML. You better have some really good reasons for doing this, as either your neglecting the considerable strengths of relational data storage or you're probably misusing it. Second, you're creating a strong coupling between the Models and Views in your system. I know this has become more popular as it is viewed as a tenet of "lightweight" development, but it is a design flaw. That doesn't mean you should never do it, just that it must be weighed against the positives that it would bring. In my experience, even when such tightly coupled systems work well at first, they become a nightmare on versions 1.1+

Again, it's not that I'm against XML on the browser... I'm just wary of some of the arguments for it. I think it is often a wash between the two technologies, which is why I say "so be it" when a web dev tells me they prefer JSON because it makes some of the programming easier.

Tuesday, August 29, 2006

Spring MVC and Servlets

I've been using Spring MVC for a variety of web applications. It really does have a lot of nice advantages over Struts making it one of the better request-based frameworks (as opposed to the component based frameworks like Seam.) I came across an interesting use case that doesn't seem to be covered by Spring MVC.

I had a URL mapped to a controller. The URL needed to work for a variety of devices, not just
"full" web browsers like IE and Firefox. In particular it needed to work with a J2ME application. The controller needed to inspect the user agent of the HTTP request, build a model based on this information, and then forward to a view. The view would be different for different devices.

The wrinkle came when the developer working on the J2ME application told me he wanted the view to output a binary data stream. This could be done in a JSP, but is more suited to using a servlet. So I needed to configure a view in Spring MVC that was a servlet.

Spring MVC includes many view implementations. Several JSP-variants, and many other specialized views for working with various technologies such as Jasper Reports, Free Market, POI, PDF, etc. But nothing for a user built servlet like the one I needed to forward to. Seems like kind of a hole in Spring MVC.

Turns out it is not too hard to work around. The key is using the "forward:" prefix. Simply append this to the URL path specified in your servlet mapping, and it will short-circuit the Spring view lookup and forward directly to the desired servlet. So for example, if in your web.xml you had specified "/myServlet" as the mapping to your servlet, then having your controller return something like new ModelAndView("forward:/myServlet", "myModel", model) would forward to your servlet, and allow you to retrieve the model you had built in your controller using a simple request.getAttribute("myModel").

So it was easy to work around, but it still seems like Spring should have a servlet view. Maybe I will try to submit one to them...



technorati tags:,



Blogged with Flock

Saturday, August 26, 2006

Stoned

I've been away for awhile, sidelines for medical reasons. I had a kidney stone that wound up requiring surgery. The surgery was laser lithotripsy. It was the first surgery I've ever had, and the first time I've experienced general anathesia. Recovery from the surgery was actually much more painful than the actual kidney stone, but I was fully recovered in just a couple of days after the surgery. I had suffered with the kidney stone for over a week, and there was no end in sight.

Anywyas, my urologist is running a couple of tests on me in a couple of weeks to analyze my metabolism. This was my second kidney stone in two years, so he wants to see if there's anything in my diet that needs to be changed to prevent me from having another one anytime soon. I'm certainly hoping for as many stone-free years as possible.

Tuesday, August 08, 2006

ESPN FFL and Java Web Start

I've been playing fantasy football for more than ten years. I started playing with friends from college. In fact our fantasy football league was the very first web site I developed. I maintained and enhanced it for a couple of years, passed it on to some of my other friends to run awhile, before we eventually started using a hosted site through CBS Sportsline. I've also played fantasy sports on ESPN for many years. In 1998, one of my fantasy basketball teams finished third overall out of all teams on ESPN. I would've won a leather jacket, if I didn't live in Florida where it was not allowed because it was too valuable a prize and would cause the game to be classified as gambling... I digress.

In short, I've been playing fantasy sports online for a decade. I decided to play on ESPN this year, and had my first draft on Sunday. I was surprised to see that ESPN was now using Java Web Start for their draft application. This mostly made sense as for years they used a Java Applet for it. Actually for several years their applet used Microsoft's Java "extensions" (the ones that caused Sun to sue Microsoft and force Microsoft to stop making their own Windows-integrates JVM) and would only work with Internet Explorer. ESPN has Flash more and more in recent years, so I expected them to switch to that for their draft application.

Instead they've gone to a more powerful Java application requiring the latest JVM from Sun, and used Web Start as a platform for distributing and launching the application from a browser. It's a great use of the technology and I am happy to report it was a very smooth draft. I've had many, many ESPN drafts that were plagued with all kinds of problems, especially in the late 90's. They've seemed to solve all the old problems, and I'm guessing using a more robust application via Web Start was a big part of that solution. Kudos to them.

Not to diss Flash. It has come a long way towards being a powerful application platform. I don't know enough about it to say if ESPN could have pulled off the same thing with Flash instead of using JWS, but JWS was surely a more straightforward upgrade path since their old drafting app was a Java applet.

technorati tags:, , ,

Blogged with Flock

Tuesday, August 01, 2006

Church and State

Here's a great blog about a NY Times article on an amazing preacher. He refused to use his position as a religious leader to endorse politicians or political ideologies. Of course historically religion and politics have gone hand-in-hand. The idea of separating church and state, while not new (see The Greeks) was one of the most revolutionary concepts of The Enlightenment. After all, government that claimed its authority from a god could not be questioned. Thus a separation of church and state was needed so that government would have to derive its authority from the people -- and thus be responsible to the people.

Still, in many governments today we still see religious leaders with tremendous political power. Most people would say "oh that's only the case in backwards, third world countries." Enter Exhibit A: George W. Bush.

Bush was elected (though not without great controversy) but has repeatedly invoked the name of god as an integral part of his administration. He's made statements that he thinks he's on a mission from god. He's used his personal religion to discourage scientific research. He's tried to influence the education system to promote religion over science. His tactic of claiming "treason" when somebody disagrees with his wars is not unique to him or to religious leaders. Still it's no different than claiming "heretic" when confronted with criticism.

There's a huge difference between Bush and the ayatollahs in Iran. Despite his fondness and pride in his religion, Bush is not a religious leader. He has not spent his life devoted to a religious following. No, he is a politician. He simply uses religion. These churches with their American flags and "no gay marriage" banners are just puppets of the GOP.

Saturday, July 29, 2006

Calero Reservoir

Today I cycled the most challenging route I've attempted so far. I cycle out to the Calero Reservoir. This was the longest route (20 miles) I've done, but only by a little. What made it the most challenging is that it's highest elevation I've cycled to, at around 560 feet. My house is around 160 feet, so it's only 400 feet of rise. That rise is over a long distance, though the last 250 feet or so comes in about a 2 mile stretch. Not much by Tour de France standards, but excruciating for me!

Here's a picture I took with my phone of the reservoir:

Nice port-a-potties... And here's the entrance to the park at the reservoir:

It was a fun ride that I will definitely do again soon.

technorati tags:

Blogged with Flock

Friday, July 28, 2006

Fixing Iraq

I have a decent number of news/blog feeds that I read. One thing I try to do is read things that I know I will disagree with. I think it's the best way to keep my mind open. Sometimes it's really frustrating though. For example, today I read this article on the Opinion Journal.

It's a horribly partisan piece, as it quickly reveals in its subtitle "Some alternatives to pre-emptive retreat." So it immediately makes the assumption that exiting Iraq is "pre-emptive retreat." As if leaving a sovereign country alone is retreat, and is if any such exit could not be pre-emptive, i.e. someone would force us out. Such an opening to an article sguarantees that it will never motivate someone who thinks we should leave Iraq to re-consider their opinion. Instead this just becomes a ra-ra article with no chance of having real substance.

The author (name not listed) does offer a single argument against leaving Iraq:

"former U.S. Ambassador Peter Galbraith suggests resigning ourselves to the partition of Iraq into Sunni, Shiite and Kurdish states. The big problem with that idea is that Baghdad is a multiethnic city, and dividing it along ethnic and sectarian lines would entail displacing at least two million Iraqis and a lot more bloodshed."

So we shouldn't let the people there decide their own future because ... they could hurt themselves? News flash: they're doing that already. Too bad for the US that England or France didn't step in 150 years ago to stop us from hurting ourselves in The American Civil War. If only England could have been occupied and guided America, then a lot of American lives could have been saved...

The unidentified author then goes to provide his list for fixing Iraq:

  • More security forces for Baghdad -- Sounds like Vietnam all over again. Just pour more troops in. That's sure to go over well with the population. Even better, "embed" more troops with Iraqi police forces. Yeah that's really going to make people respect the Iraqi police as legitimate authority.

  • Better intelligence -- When all else fails, blame the troops. We've already seen the President do this. I love how some writer for OJ can claim "it shouldn't be as hard as it has been to identify the likely troublemakers." Maybe the CIA should "pre-emptively retreat" and let this guy take over for them. Clearly he could find out who those "troublemakers" are. Just using such a term shows the author's overwhelming arrogance and ignorance.

  • Iraqi leadership -- What's this, an elected Iraqi spoke poorly about Americans? That's clearly causing violence in Iraq. There was probably no violence until these elected leaders started saying bad things about Americans. So we should definitely do as the author suggests and threaten any Iraqis who say things we don't like. That will definitely stop the violence.

  • International support -- He claims that Iran and Syria are supporting the militia groups by giving them weapons, but a bigger problem is "tacit encouragement" from other Arab states. So let the guns and bombs keep flowing in, but get those Arab leaders in line damnit!

  • U.S. resolve -- Hear we go with the typical Republican tactic of all-but-claiming treason on anybody who questions the President. The real reason for violence in Iraq is the Democrats! If you say that you think we should leave Iraq, you are causing violence in Iraq! So shut up before more people die!

technorati tags:,

Blogged with Flock

Thursday, July 27, 2006

The Ups and Downs of Floyd Landis

This year was the first year that I was really interested in the Tour de France. The exploits of Lance Armstrong were always admirable to me, but never that interesting. This year was different.

I started cycling last year. I bike three days a week, usually about 10-15 miles. This year was also the first year of the Tour of California race. The combination of cycling myself and having a major event near my home motivated me to follow the Tour of California. Not only did it come through the Bay Area, but it's two most important stages were in San Jose. This included a time trial just miles from my house. I would have loved to watch the race in person, but I have a job. I still followed it closely. That important time trial was won by Floyd Landis. It gave him a sizeable lead in the race, a lead that he never gave up.

So when the Tour de France came around, I not only followed it, I rooted for Floyd Landis. If you followed the Tour, you know what a tumultous yet glorious event it was for Landis. I could not believe it when he fell from first place to eleventh with just a couple of stages left. I was thrilled when he came back the next day and crushed everyone in the last Alpine stage. I made sure to record the last time trial and rooted him on as he clenched the yellow jersey. It was a lot of fun. It was the kind of thing that cements one as a fan of a sport. My first time following the Tour, the rider I rooted for not only won, but did it in amazing, come-from-behind fashion.

That was last week. Today I was shocked to see that Landis had failed a drug test. I've often said that I don't care if Barry Bonds or whoever uses performance enhancing drugs. Similarly I don't care if Landis (or Lance Armstrong) use them. Still, it was a really bad feeling to read that somebody I had rooted for could have his victory taken away because of a drug test. I can't imagine what it must be like for Landis.

Here's the thing though. I don't think he's guilty. The test indicated a high ratio of testosterone to epitestosterone. If an athlete is using a steroid, it is easy to beat this particular test by also injecting epitestosterone. In other words, if Landis was really cheating, he should not have been caught like this. Further, it takes a long time for testosterone enhancing drugs to be effective. Thus if Landis was taking some kind of steroid, he would have had to have taken for a long time before the failed test. Otherwise, it would have done him no good. If that was the case, then it would be crazy for him to have not failed an earlier test (he had been tested several times during the race including just two days before, as the race leader is tested after each stage.) I guess he could have been taking steroids for a long time, and just forgot to take his epitestosterone. What other "Landis was cheating" based explanation makes any sense?

So I really don't think he was cheating. If that is the case, that makes this an even worse tragedy. It also shows the many reasons why drug testing is stupid. It certainly leads to the possibility of false accusations and unfairly ruined reputations and careers. And as pointed above, it's easy for "true" cheaters to defeat the testing. Not convinced? Look at the human growth hormone scandal in baseball...

Update: Today it was reported that a mass-spec of Landis's urine revealed synthetic testosterone. Ouch. This story just gets worse and worse...

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