<script src="//cdn.optimizely.com/js/187642160.js"></script>


Design Patterns

Android: What I like about you

Anybody who has been to our office knows I am an Android fan. My prediction is that the Android platform will end up with a much, much larger install base than iPhone OS. Originally, I felt this way because you can get a Android phone on every carrier for a lower cost than the iPhone – many of them are now free with a contract. This is good enough, but I have a new insight. The Android OS does a great job of di
Read More

Bean of the Devil: Tally-Ho CMS

Last time we came this way we looked at the misuse of a getter in the java.io.File. Not that it was wrong to have a getter in File, just that it led to misuse of that information in a UI control to determine what file encoding needed to be used to store the model. This time we are looking at the Tally-ho CMS project. This is perhaps a more pernicious example of the shortcomings of getters and setters. We’re not
Read More

Bean of the Devil: Arguing the Affirmative

I’ve gotten lots of feedback, much of it asking “what’s the alternative?” to using beans and getters and setters. I’ll make a deal with my skeptical readers. I’ll argue the negative, with examples, if they argue the affirmative. In other words, you show me some places where you can’t get around using getters and setters and I’ll show you all sorts of places for the next
Read More

Bean of the Devil: Why Getters, Setters and Such are Evil

I felt like I’d already gotten this rant out of my system, but every time I come across the object oriented wreckage that the Java Bean and it’s decendents have wrought, I get all heated up. The problem is, simply stated, that the getters and setters that get used for things like system boundaries — Hibernate for persistence, Spring for dependency injection, Java Beans for UI components — end
Read More

PureMVC, Spanning the Platform Spectrum?

At Pathfinder we do a fair amount of desktop style development — iPhone/Cocoa, WebForms, Swing — and web application development — Grails, Rails, JSP, ASP.NET, etc., etc.. In the last two years we, like a lot of other software development shops, have experienced a convergence in our efforts. The web is coming to the desktop in the form of Air and the Desktop is coming to the web in the form of RIA&#
Read More

GWT and the Discipline of MVC

When you’re developing a desktop or GWT application you’re going to go through a bunch of iterations, tweaking the UI, adding components, etc. Sometimes in all of that work it is very tempting to take a shortcut and update a view directly from a controller (label.setText(model.messsageString)). That way lies madness. Before long you’ve got your view code strewn across the length and breadth of your
Read More

Implementing linked multiselects with jQuery, LiveQuery, and Low Pro: Part 2: First pass at the actual code

In last week’s post, I introduced the linked multiselect widget I was asked to implement on a tight deadline for an unexpected project assignment. I showed some demo code in action and discussed the user experience issues that shaped my requirements. This week, I’ll walk through the actual code – or at least my first pass at it. Like a lot of developers who should know better, I sometimes shirk the
Read More

Design Pattern 7: Required fields

It is one of the first problems of HTML markup that had no standard way to communicate to the user what they should do, I'm talkin' about the required form field. Personally, I have used some sort of asterisk in...
Read More

Design Pattern 6: Definition lists : point/counterpoint

If you have a list that opens and closes by clicking on a header the most fitting markup is a definition list. For some reason these elements are mysterious and not too often used. The trick is to get all the behavior attached to it with no heavy lifting...
Read More

Design Pattern 4 – Inline help

I just had quite an enjoyable spring break trip with the family to Washington DC. For a town with lots of visitors, it was important to help people manage the different ways to get around, or more importantly get out...
Read More