Open Position at My Employer
  Posted July 31, 2003    PermaLink    Comments (2)  

My employer will soon have an opeing for someone with general J2EE skills (no it's not my position.... sheesh!). The typical J2EE stuff like EJB, XML, Web Services, Servlets, and JMS are what we are looking for (although you don't need all of them at once). Additional skills that are nice to have are Ant, JUnit, Perforce, WebLogic, and WebSphere. Don't forget the gems like "Works Independently," "Is a Good Team Player," and... I'm starting to get hives so I better stop. Also if you are familiar with networking stuff like switches and routers that is a big plus, but don't sweat it if you don't have it. I barely know that acronymns like MPLS, BGP, and IGRP vaugeley relate to routers and I'm doing fine.

The position is in downtown Colorado Springs, CO and AFAIK there is no relocation expenses. You could post your resume on our web-form but because of a couple of recente articles (one in the Denver Post and one in the Colorado Springs Gazette) there's a lot of unsolicitied resumes floating through that account for every position imaginable. A better approach would be to e-mail me at

The person doing the hireing for this position also wants me to keep an eye out for "opportunistic hires" with testing and/or systems integrations skills. "Opportunistic Hires" means we don't have a req for it but having a very good candidate makes it easier to go get one. So smoke 'em if you got 'em!

another test
  Posted July 24, 2003    PermaLink    Comments (0)  

this is another test

I is for Integrated
  Posted July 22, 2003    PermaLink    Comments (0)  

One of the principal features if an IDE is the Integrated part. What it takes to be integrated has gone up from the days of the first IDEs. The way it used to be was you had the compiler and the editor running from the same binary and that was what constituted integrated. Slowly the IDE became more and more integrated. Features like next compiler error and code context highlighting brought the editing and the compiling closer together. Now the bar for integrated is high, and if you know how to use the environment it can speed up your coding time. While it's true that if you don't know how to use the environment that it can slow you down there are some capabilites that could not exist without wich integration.

Lets take NetBeans for an example, and three rather un-related tasks: Source Control, Internationalization, and GUI design. The IDE intrgrates these three facets without making you switch to three differnt applicaitons or even three different panes in the IDE. First I open up the GUI designer and I add some components. However, I cannot just hard code some of the label names in since we plan on selling it outside the US (one of the few places you can get away with monolingualism, and that too is changing). So I click on the label I want to internationalize, and I bring up the property editor for the "text" property. I select a drop down box tha says I want to get the value to be internationalized. Now I am doing some rather common Java I18N tasks: I need to identify the resource bundle I will get the text values from and select the key. I can either create a new bundle or select an existing bundle in my code base. For the keys I can select from one of the existing keys or create a new one as well. The value of the key in the current language is also displayed to me so if I don't unerstand the key name I can select an appropriate key based on it's value. I can even add a new key and it will be added to the bundle for me. Resource selected, key selected, time to press OK. Here's where the source control comes in. If I've selected an existing resource bundle and I've either added or chagned a key NetBeans will save the changes. But if the resource bundle is in source control and is read only NetBeans will also ask me if I want to open it for edit in the source control. All this without me having to navigate pop-up menus and I am prompted only when I need it. When all this is solved and I am back in the GUI designer, the label I just internationalized has the value from the resource bundle shown right in the designer!

Source Control, Inernationalization, and GUI design, all dealt with in the same application in a logically connected fashion. And when you are done no visible warts are sticking out at you. Without these tools the work would have taken me mutliples of time longer because I would have to switch in and out of three seperate programs and mental contexts, where instead the IDE deals with the warts for me and only brings these issue to my attention when being dealt with.

A truly integrated experience is very seductive indeed.

Straw Man, SOAPy Water
  Posted July 16, 2003    PermaLink    Comments (0)  

Here we have a piece of RDF advocacy masquerading as a SOAP RPC vs. Document Encoding article. The problem is that once you get past the first section the arguments the author uses supports in no way the contention made in the opening setction, they are in fact blasting some unrelated topic that he has vaugle associated witht he original contention.

This is a common argumentation fallicy referred to as a "Straw Man Arguement." The layman's definition is that the arguer brings in some unrelated issue (the straw man) and proceeds to destroy it, and then claim that he was actually destroying the original argument, while actually not addressing the issue in any tangible fashion.

Here's the essential summary of the technical porton of the article: "Using RDF is more descriptive than a real bad tree encoding stored in a hash table." A slightly longer version is "Using RDF (let's demonstrate this with a document encoding) is more descriptive than a real bad tree encoding stored in a hash table (let's use RPC encoding for this example)." The issue of SOAP binding encoding has absolutely nothing to do with the real philosphical issue at hand, and instead he is beating the RDF drum. His "perfect" RDF example could just as easily been done with the <soap:binding style="RPC" ... > . But that would have ruined his groove, so he ignores that fact.

Despite the misplaced direction there are some good practices that we can draw from this example. Fist, use the WSDL file as the master definition. In the first example he uses a .jws to deploy the first web service, which is quick and dirty, with an emphasis on the dirty. Despite how hard you try you cannot separate the quick from the dirty using .jws files. By using a WSDL as the master in the second he has also increased the interoperability of the entire system since leaky abstractioins from Java to WSDL won't get translated into any third language, with second level abstracton leaks. With the WSDL as the master each client has to only map the WSDL issues and not inherit old Java issues.

Second: some data structures jus plain old suck. Anything is better than the encoded mess that is the hashtable/tuple mapping with encoded data. Not to mention that using a tree path as a string is so LDAP. Even RDF was better than the first example (it wasn't that hard).

Third: If you have data format already in XML Schema, just go ahead and use it in the WSDL. You don't need to re-invent the wheel if you already have your data format. If you want to use RDF as your message parts in a WSDL call go for it! This issue is totally unrelated to whether the client should consider this an RPC or document/literal call (which they can freely ignore if they choose).

Lots of good issues in that article, but it fell prey to the trendy RPC vs. document debate in the SOAP community while having nothing to do with it. And why the blind allegence to document, is he applying for a job at Microsoft?

Moving Tip: Hire Professionals
  Posted July 15, 2003    PermaLink    Comments (0)  

James Duncan Davidson is moving very soon and has come to the same conclusion that my wife and I did when we moved int our house a couple of years ago: Hire Professional Movers. It's not just a cost effective money thing. You'll be tired enough from packing and unpacking your stuff and by the time you pay the movers you will find it is money well spent. Especially because when you get friends or family to help, you owe them and get to help them move as well.