Serialization, Beans and PMD

There is a PMD rule that checks for mutators (getters and setters) on Java Beans: BeanMembersShouldSerialize. I have a lot of these violations in my code. I’d rather understand the issue than just turn it off, but I’m struggling with what it means.

What I learned is: being Serializable does not make a class a Java Bean. And, to be Serializeable, you don’t need mutators.

But PMD thinks my object is a bean. Why? Continue reading

The Duct Tape Programmer

Joel Spolsky‘s latest blog post is entitled “The Duct Tape Programmer” and is getting a lot of attention out there. Uncle Bob says he agrees with most of it, if you ignore the details. (Really!?)

My take is that the Duct Tape Programmer is the type to “git-er-done”. And for small apps that don’t have a future, that’s fine. But if you are to build an app that can easily have features added, then this is not the way to go.

The Duct Tape Programmer mentioned in the article is Jamie Zawinski. He used (?) to work for Netscape. And says “It was decisions like not using C++ and not using threads that made us ship the product on time.” Yea, but what eventually happened to Netscape? Sure, Netscape got it’s browser out the door, but now where are they?

Even the example given about a go-cart seems to strengthen my point: sure, the duct taped go-cart will be shipped faster, but how many times can it race?

It just seems to emphasize my point that duct tape programming is fine for small apps with no future.

Rounded Corners

One of my goals for my websites, including this one, is to look presentable both in print and on a handheld. Well, I found out today that this blog doesn’t look so hot in either mode. I also found out that my tool for rounding corners (a jQuery plugin) runs even when in print mode. So I’ve got to change my site to use CSS so the rounded corners don’t show up in print mode.

(If you hover over “CSS” you’ll see that I’m using the abbr tag. For a good article of abbr vs. acronym, read this.)