Instead of using Google Windowing Toolkit, Rich Faces, Django, or any other server side technology to perform build the user interface, we should use Javascript and a client side library like JQuery.
Author Archives: Adam Young
Design guidance for dependency injection
Dependency injection can throw you into analysis paralysis. Here are some rules of thumb.
My “Two Main Problems With Java” Rant
This is not an Anti-Java rant Per Se. It is a rant about the two main things missing from the language that force people into code heavy work-arounds.
Java has two flaws that hurt programmers using the language. The first is that the reflection API does not provide the parameter names for a function. The second is that Java allows null pointers. This article explains why these two flaws are the impetus for many of the workarounds that require a lot of coding to do simple things. This added complexity in turn leads to code that is harder to maintain and less performant.
The overhead of Java
A programming language is a tool. When choosing the right tool for the job, you want to have good information about it. I’ve worked with both C and Java, and have dealt with a lot of misconceptions about both. I’m going to try and generate some data to use in helping guide discussions about the different languages. Consider this, then as the next instalment of my comparison of programming languages that I started in my IPv6 days.
Map Reduce is kinda like “Normalize on the Fly”
One undervalued aspect of Data modeling is that you actually get time to consider the form of the data before you get the data. In a Map reduce job, you kow that your map phase is going to get the data, and that it is not going to be normalized . I could have said, not likely to be normalized, but the reality is that if you are using Map-Reduced, you are not going to get structured data.
Basic Postgres config for remote access
Say you want to set up postgres for use with a web application. If you are running on the same server here’s what you need to do:
Code Review Checklist
What follows is the results of a brainstorming session on items that should be in a code review checklist. As you can see, it needs refining and grouping. Please feel free to add comments with any items you think should be on it, with any organizational approaches, or any criticism. Right now, I want to focus on inclusive instead of exclusive, so please don’t recommend removing things: that willl happen later.
The Wrestle Off
The members of the team had rolled out the resilite mats in the back gym. The air was barely heated, so they had been hard to the touch as the boys rolled them in three straight sheets. The kinetic energy of a pair of teenage boys transferred to the friction of the shoes applied a sheering force that would separate untaped mats. That was acceptable during a normal practice, when the mats would be shared by a half dozen pairs at once. During a real match they would be taped together, to prevent them from separating during the bouts. The tape was an expense that the cash strapped athletic department wouldn’t waste on a practice. But there was no risk of separation during the opening half of this practice. The mats were rimmed with spectators, the members of the team focused on the two participants in the center. During a normal practice, the mats might be rolled out with either side up. The lesser used side had five circles, laid out like the dots on a die showing 5.
Nursery School

Edith Ambrose Nursery School 1975.
Facelets Taglibs
These are my notes on how to reverse engineer what tags are doing in a JSF application. In this case, I am trying to figure out what are the classes behind the Configuration tags in the RHQ. I am trying to figure out what is being done by the tag
onc:config
This tag is activated with the following value at the top of the page:
xmlns:onc=”http://jboss.org/on/component”
To Figure out what this tag means, I look in WEB-INF/web.xml. The web.xml value
facelets.LIBRARIES
Lets me know where the file is that defines the acceptable tags I can add to an xhtml page for this component.
/WEB-INF/tags/on.component.taglib.xml
This taglib defines the values
tag-name config
component-type org.jboss.on.Config
renderer-type org.jboss.on.Config
Note that these are JSF component names, and not Java class names. To resolve these to Java classes, we need to find the mappings. The mapping files are defined in web.xml under the entry:
javax.faces.CONFIG_FILES
In particular, I found what I wanted in
/WEB-INF/jsf-components/configuration-components.xml,
The values I care about are:
component-type org.jboss.on.Config
component-class org.rhq.core.gui.configuration.ConfigUIComponent
and the renderer for Config and ConfigurationSet components
component-family rhq
renderer-type org.jboss.on.Config
renderer-class org.rhq.core.gui.configuration.ConfigRenderer
This render extends javax.faces.render.Renderer. This is a Flyweight that parses and generates HTML. It has two main methods: decode an encode. decode parses the request that comes in, encode injects html into the response that goes out.
Decode appears to be called only on a post. Encode seems to be called even on a get.