Getting my App through QA and Migrating to New Hardware

Today has been interesting, and even a little fun. I've been pushing my web app through QA and they have interestingly come up with some issues - primarily UI issues, but ugly nonetheless. Also, there were a few issues with the new sliding median filter on the data, and I needed to take care of that zippy pronto.

A Set Means Unique Elements

Seems obvious, no? But I forgot it. I was looking to make a clever median filter and rather than continually sort the array with Collections.sort(), I thought Hey! I'll use a TreeSet and then get the middle element. Clever idea, if it worked. But the TreeSet is, after all, a Set, and that doesn't allow for duplicate values. This meant that when I put in a new value that was the same, numerically, as one already in the list, I was loosing it as only unique members can be in the set. When I then removed a value from the set, I ended up removing the one value, but that might have stood for multiple originals. Nasty.

In the end, I needed to replace the TreeSet with a simple ArrayList and then after I added the new point and removed the old, I sorted the List<Double> using Collections.sort() and then picked out the middle value and that was the median.

When I did this, the data started making a lot more sense.

Big Duh on my part.

Migrating to New Hardware

It's not glamorous, and there's a ton of things that can go wrong, but I think they are all working put pretty well on the migration from the old linux VMs to the new linux hardware. Four servers in all at this time - one I did several weeks ago in London, but they all had to be phased in smoothly.

For the two web servers for my main visualization app, I also set up mod_proxy and proxy_ajp.conf on the apache servers for these boxes. It was a little time-consuming because I had to see the changes, tell the admins what to change, and then iterate. It took a few times, but that's not too bad. The advantage here is that I don't have to hassle with the maintenance, and can enlist them when things go south.

The vanity URLs that I set up are making the access to the sites a ton easier. The long, drawn-out URLs for a typical Tomcat app are just too clumsy for users to really remember. The vanity URLs are just what the doctor ordered.