Archive for February 2006

I could use an iPod and some thoughts on smart cards

February 9, 2006

I have an old second generation iPod. It looks like a brick compared to the Nano. I just read that Sun is giving away Nano’s if you refer someone to signup for JavaOne. How nice. I am already signed up to go but if you are not and want to do a random act of kindness, email me at alex.ipodnano@gmail.com and I can email you my registration Id. I’ll buy you lunch at Quiznos in exchange.

Anyhow, I was reading further through the JavaOne brochure and noticed that there will be a general session on J2ME including information on smart cards. I was part of a startup company a few years ago developing smart card software for connecting patients, payers and providers in health care. As far as I know this technology has slowed and I’ve wondered why. I used OpenCard and was very pleased with how it works. From a Java standpoint, dealing with a smart card and reader was very straightforward. In our case, dealing with the human factor in health care proved to be an extremely difficult problem.

I believe a useful open source project would be to create a higher level abstraction than OpenCard. It would be useful to have a simple file system at one’s disposal for persisting data to smart card media: address lists, favorites, playlists, etc. It would be handy to be able to carry around a smart card and instantly be able to personalize my phone, Mac, smart card enabled iPod, car, etc. based on what I setup on the card.

Going back to the health care scenario, our application stored patient demographic and clinical data. Patient’s felt empowered because the essentials of their medical records could be kept in their wallet. Providers then have the benefit of being able to quickly and uniquely identify a patient as he/she arrives for an office visit. I’m not quite sure why this has not caught on in our country. The technology is here and has been here for some time now. Anyone interested in an open source project?

JavaOne 2006

February 8, 2006

I just signed up to attend JavaOne. The last time I attended was 2004 when Hibernate was all the rage. This year I suppose it will be Spring. I was pleased to see in a recent email from Sun that Spring will be getting some attention.

I haven’t had the opportunity to program with JSF or an of Sun’s tools. I’m hoping to learn al little more about JSF this year at JavaOne.

Java and .Net

February 8, 2006

I’ll start this post of by saying that Java and .Net are difficult to compare in my opinion. I have worked with both frameworks for both web and rich client development.

I do hold the opinion that .Net web development can be accomplished quicker than building a web site with JEE based tools. Although it can boil down to team dynamics and skill, of developers I know that have done both most would agree that it usually takes less time to develop a web site in .Net.

Why is this?

One big factor I believe is setup time. A .Net project can be setup quickly. When I go to build a site in JEE, it takes time to assemble JBoss, Eclipse, Spring, Hibernate, etc. Which Eclipse plugins should I use? Which Jakarta jars will I need? This all takes time. It can be a relief to simply fire up Visual Studio.Net and have a project setup in very little time.

Frameworks are a very different story. With .Net you essentially have one very big player to choose from: ASP.NET. With Java of course there is a vast array of choices and sub choices and bundles i.e. Tapestry/Spring, Spring/Struts, Spring/Spring MVC and so on. Ultimately I think it can be argued that given the extra time, one can complete a more elegant and flexible solution using Java than .Net but at likely no time savings.

Which do I choose? Personally I would choose Java. For me I like the deployment freedom and think it is worth the extra cost. I can develop using Eclipse on a Mac. I can deploy to our staging server that might be running JBoss on FreeBSD and finally I can deploy the production application to a robust Solaris environment for production. Without wading into Mono, this is not easily accomplished with .Net.

A friend of mine and I recently built a .Net site called http://www.topeverything.com. Check it out! It is a ranking site for various categories and we used a very good homegrown .Net framework. The site was completed in a very short amount of time, mostly because of the framework used. We worked with MySQL during development and launched with a low cost ISP. It is important to note that there are lots of choices for low cost ASP.NET hosting. I did not find this to be as true for JEE hosting when we were doing our shopping. JEE can be great if you are hosting it yourself and want to save on licensing fees but ASP.NET would seem to have an edge in the shared hosting market.

Moving to Mac OS

February 2, 2006

I have been using a PC for software development for a long time now, 15 years in fact. The choice has mostly been necessity. I’ve always tried exploring options: Solaris, Ubuntu, and now Mac.

When I started coding for a living it was as a C++ programming writing Windows code. These were the 16 bit days and you really knew who your friends were. I started using Brief which was DOS based. When 32 bit Windows arrived I started using CodeWright. I still use CodeWright but not for Java. The Brief keystrokes are burned into my head. Despite spending the day within Eclipse, CodeWright still stays open on my desktop for quick editing/searching tasks.

Anyhow, even though I do work on .Net application, I am tiring of the Windows OS. I’ve definitely fought enough battles with it and of course made a living being an expert on how to develop applications and web sites that run on it.

Once I opened Terminal and was greeted with a friendly bash prompt the deal was sealed.

So I started using a Mac. I felt like I had come home. Setting things up was intuitive enough and I got a copy of the Tiger Missing Manual book at the library. That was a big help answering a lot of my dumb questions.

I think that one aspect of the Mac OS I like is that it helps me to keep my work organized. Windows IMO does a terrible job of this. The whole My Documents/My Music/My etc. has a very arbitrary setup in Windows and has a very arbitraty origin. It is easy to let your Windows machine get disorganized in a hurry if you aren’t diligent.

I still need some coaching on how to organize the 320983 open source projects that I need for my JEE applications. Where’s a good place to keep all of those?

simple pleasures

February 1, 2006

For far too long I’ve kept to the boundaries of the Java core libraries for my String handling needs. I’ll be the first to admit that this involves pain. Certainly you can do anything you want with String and StringBuffer primatives. Recently though, I’ve collected a few nice tools to make more coding day go easier.

org.apache.common.lang.StringUtils
Where have you been? I wish I knew about you sooner. Removing unwanted characters or validating is such a routine in web programming. This is now at the top of my list to check when I need to manipulate a string.

org.apache.commons.Validator
In this package, isBlankOrNull() was something I discovered late last year when a colleague of mine told me about it. It makes validation code so much more readable and covers over the sins of not checking null in a string.

org.oro.test.perl.Perl5Util
Actually I don’t know beans about perl besides that it has been around for a long time and its a powerful scripting language. I do know regex though and prior to getting involved with the Spring Framework I never had the occasion to apply a regex outside of validation.xml in Struts. I’m glad to know that I can utilize regex with this package. I’m sure there are other ways but this package is working for me.

That’s enough for now but I thought I’d include a few handy methods/packages that make the life of a web developer a little easier.