Monday, September 17, 2007

Stripes Presentation Kansas City JUG Oct 10th

I'll be doing a presentation on Stripes October 10th at the Kansas City Java Users Group. See details here.

Wednesday, September 12, 2007

Requirements Exceeding Web Capabilities

Let me start off with the fact that I like HTML. I like JavaScript. I like CSS. I'm rather proud of my abilities in combining these technologies to make some really interactive sites. The problem is that I keep seeing requirements come down that make using these age old and proven technologies extremely difficult. So there's prototype, scriptaculous, JQuery, Dojo, GWT; I could go on and on. And to a fault these libraries do ease the pain. Well, some of them. Some of them actually cause me more pain.

I'm leading a project now and I spoke with one of my developers and asked him if he thought this would make a really great Desktop application. He agreed. Unfortunately, it's not what the client wants. In fact, Its not what any client wants these days. Its all about the DubDubDub. Enter Flex and Silverlight.

I don't dislike Flex and I know it has been around for a year or so and it is going open source, yada yada and I've not even glanced at Silverlight so I won't bother commenting on it aside from saying it locks you into the .NET world. And looking at Air, linux is once again an afterthought for the flash guys.

It seems to me that web developers are sitting in a very difficult era in web development where clients want the bells and whistles of a true rich client application that runs in a web browser but aren't willing to commit to new technologies (Flex, etc) that actually make these applications possible. What's a developer to do?

Monday, September 10, 2007

Java Forums

I'm in search of a new stomping ground. I've been a member at JavaRanch for 6 years and a staff member for about 4 but I'm needing to part ways and I'm looking for a new community to be a part of and help if I can. I know about Sun's forums and Javalobby's forums but I'm not too impressed with either community. JavaRanch is full of really nice folks and I'm looking for something similar. Any suggestions?

Friday, September 07, 2007

DZone Aggregated on Javablogs?

Does anyone else think that DZone should not be aggregated on Javablogs? I find it pretty annoying that on Thursday I jump to a blog entry from Javablogs to the author's site and then on Friday I see the same blog entry on Javablogs but this time I'm jumped to DZone.

Look, I like DZone. I prefer it to Digg for my technology related information. And I have them subscribed in my Google Reader. It would be one thing if DZone published their own content and every now and again thought a blog was worth linking. I've done that. It happens. But that's not how they operate. They are another version of Javablogs and shouldn't be listed on Javablogs.

Wednesday, September 05, 2007

Invalid Property Binding Feedback

Matt Raible blogged today about why Struts 2 sucks. At the same time he concluded that Stripes sucks as well. Why? Because neither framework handle invalid property binding feedback properly. Well, let's discuss what might be proper and let's talk about Stripes because I love Stripes. I want Stripes to be the best it can be and we can find ways to improve it, let's do that.

Stripes doesn't use OGNL. When Tim designed Stripes he used OGNL in the beginning and later found out that he could write something a bit smaller and faster that was specific for Stripes and remove another dependency from the project. I think that is great. One less JAR I need to fetch.

One of the many nice things about Stripes (specifically over Struts) is the ability to create pages without wiring up the actions on the back end. with Struts (this could be different in Struts 2, someone please correct me) you had to have your form beans, validation, XML all correct and complete before you could even view your JSP. With Stripes, if a binding resource is missing it's ignored. Is this a flaw? I don't believe so.

When you submit the form or when the page requires binding, which typically isn't on view, Stripes will tell you what you've missed. It's in the debug log, not on screen. So if you had a form that required a first name and a last name. In your action bean you have two strings, firstName and lastName. On the JSP you fat finger lastName to lkastName, the form will display just fine. This is what I would want. I want to see my form. When I submit the form, this is what I get in the debug:

DEBUG Could not bind property with name [lkastName] to bean of type: FormTestActionBean : Bean class does not contain a property called 'lkastName'. As a result the following expression could not be evaluated: lkastName

And now I know what I need to fix. I'm not 100% sure that Matt views this as a flaw or if maybe he doesn't understand that Stripes does this. From his post I am led to believe that Matt wants immediate feedback if there are binding issues, even prior to submitting the form. I don't agree that this should be an issue. What do you think?

Java Desktop Jobs

After reviewing Filthy Rich Clients I got all excited about Desktop Java again. It did get me wondering though if there are jobs out there for Swing folks. I'm not looking for one but I am curious what the market is like in this time of Ajax and Flex. Does anyone have any stats or information regarding this?

Tuesday, September 04, 2007

Book Review: Filthy Rich Clients

This review will be in two parts. I was contacted about reviewing Filthy Rich Clients by Chet Haase and Romain Guy and at the same time asked to review Safari's "Rough Cuts" subscription. So first, let's get the not so good out of the way.

Safari's "Rough Cuts" is similar to Manning's MEAP (Manning Early Access Program). If you aren't familiar with either one it's basically a way to read a book as chapters are made available online. The difference, as far as I can tell, between MEAP and Rough Cuts is that chapters released through MEAP are complete whereas chapters released through Rough Cuts often times are incomplete. That isn't to say that reading the final draft of a book versus the Rough Cut version is significantly different but there were things missing like diagrams that are referred to in the text. I may be in the minority here but I actually find them useful in most cases and when a book is talking about a diagram its nice to be able to see it. Add that to my dislike of Safari's interface for reading books online and I give it a thumbs down. I'd rather just read the book when it is complete than have incomplete chapters made available.

And now on to some good news. FRC is a great book. The community has needed a book like this for a long time and I can't think of any better folks to write this kind of book than Chet and Romain. I've been following their blogs for a long time and am a big fan of all the cool things Romain has done with Swing.

FRC is a book about "Developing Animated and Graphical Effects for Desktop Java Applications". Yes, that is on the cover but I couldn't think of a better way to describe this book. FRC gives some much needed insight into the inner workings of Swing, AWT, and Java2D and how they all interact. Sure, you can scour the web and locate a lot of articles and blogs that talk about this but its nice to finally have this in one place. But don't worry, its not that deep. Its just enough to help you understand when things start getting cool later on.

The book does assume a basic understanding of desktop development with Java. If you are new to Swing you might want to get a few basics down before delving into FRC. The book reads very well, even going between the two authors, which you can easily tell who wrote what. If its technical it was probably Chet. If it was pretty it was probably Romain. Not to say that Romain isn't technical in his own right.

There are plenty of code fragments in the book to help convey the author's points. In fact, there is a lot. More than I expected. On a sad note, even though all the examples are available on the book's web site they are Netbeans projects. I download a few and tried to compile them with Ant from the command line but they always complained about Netbeans dependencies. Granted, I didn't research this much so the problem may have easily been resolved.

The book is fun and results are immediate. I've already started trying to come up with a side project for myself just to try out a lot of the techniques described in FRC. I'd recommend this book to anyone looking to spruce up their existing desktop applications or design something entirely new and original. Great work Chet and Romain!!