Platinum Solutions Corporate Website


Software Development

Windows Command Line Duct Tape

Each night our build machine kicks off a series of automated web tests using a tool called Selenium. Selenium is packaged with - among other things - a server that allows developers to remotely control a browser using many popular programming languages. Like other servers, Selenium listens on a specific port waiting for a client to establish a connection. Once the client (in our case JUnit test code) establishes a connection the tests are run. After the tests are complete the client code tells the Selenium server to shut itself down.

Ruby, Screen Scraping, and a Little Friendly Competition

I've been doing quite a bit of Ruby programming lately and I'm always surprised by how much I can get done with such a small amount of code. Ruby is not my primary development language, but for many of the things I need to do, Ruby is the perfect tool for the job.

SVN and Ant

During some improvements to one of my projects, we needed to report better version information. What we had was the usual manifest.mf with a configurable specification and implementation version. That approach didn't prove to be much help for things like a customer calling with an issue, and we needed to track down the specific build they had. After some discussion, we decided to change our implementation version number to match the SVN revision number at the time of build.

Inconsistent escaping in Spring MVC resource bundles

While our team was working on a Spring MVC application, we found that sometimes a message retrieved from a resource bundle had to have apostrophes escaped (by doubling them) and other times we didn't. I did some research to find out what was happening.

It turns out that Spring requires escaping or not depending upon how the resource is referenced.

Measuring the User Experience with the Net Promoter Score

I'm hearing the phrase User Experience thrown around quite a bit these days. It's become an overloaded term that means different things to different folks, yet we all seem to agree with the premise that a positive user experience is essential.

Zed Shaw interview

So, I was going through a stack of podcasts that had piled up. One of them was an interview with Zed Shaw (creator of Mongrel) at http://ajaxian.com/podcast/. He pontificates about a number of things. It's an hour long, but of particular interest to me was when he was talking about the old Rails-In-The-Enterprise debate. He mentioned three key barriers to Rails in this area:
1. EAI (i.e. interfacing w/ legacy apps, arcane data sources, etc)
2. Authentication (very limited support now)
3. a Rails stack with good management tools (the JBoss or Websphere of Rails, as he puts it)

Fix for date_select in Rails 2.0.2

If you are using Rails 2.0.2 you may notice that you get an Internal Server Error when you do something like this:

<%# fields_for "child[]", Interest.new do |f|%>
<%= f.text_field :name %>
<%= f.date_select :birth %>
<%# end %>

I'm doing something similar to that example and I found out there is a patch scheduled for rails 2.0.3. If you can't wait for the fix then you can add the patch to the stable code base yourself (unfortunately, the fix isn't available in "edge rails" yet).

Use Agile Development to Align Technology-Business

Often in the IT industry publications one reads about horror stories regarding failed projects. Most often the failure is due to bad or misaligned requirements.

A May 2007 CIO magazine article presents studies about how agile development works and can help in aligning technology with business needs/vision.

The Ideal Dialog

I recently read a Coding Horror blog post about how, as a user of free software, one ought to seriously consider donating money to the software's authors. Jeff gave the application Paint.NET as an example, also mentioning just how awesome of an application it was in general. I needed to create some screenshots for a project I was working on, so I thought I'd give MSPaint a rest and give this new-fangled Paint.NET a try.

UML observations: Consolidation and collaboration

I've been working in parallel with two other developers on creating sequence diagrams from use cases. What follows are merely some experiential observations, I'm by no means a UML subject matter expert!