Ascends Data Visualization And Further Adventures With Gigantron
» 22 Jun 2008
I started work Monday. It's fun to work on an Air Force Base, because your commute gets all sorts of fun things like F-15s and F-22s making their landing approach right over where you are driving. My team is pretty cool so we should be able to get stuff done. When I arrived we hadn't gotten our data yet, so I experimented with the different directions in which my chair could swivel.
The other guys on my team know the admin password and have to do IT grunt work. They have also picked up various data processing tasks from other teams. Because of this, I'm the one currently tasked with working on the actual ASCENDS project.
We got the data Wednesday and were pretty shocked by what we saw. The data formats don't seem to correspond in any sort of logical manner. I can't find the sync-points between altimeter/GPS readings and the CO_2 instrument data. Judging from my skimming of the IDL code that was on the DVD with the data, it can't sync them either. There are magic numbers somewhere that we just don't know. The fallback in the face of ignorance is, of course, plotting what we can and making it pretty in Google Earth.
To this end, I'm using gigantron. It's weird how helpful it is for these sorts of tasks. The "ascends_viz":http://github.com/schleyfox/ascends_viz project on github shows the current work. With the exception of a few hitches (JRuby JDBCSqlite3 driver mostly), it has been pretty smooth for data exploration. My teammates also seem to like what they have seen of gigantron.
Work is also demonstrating how annoying Java is. My team lead has been warring with it for days. CLASSPATH is an evil signature of Satan, and JNI and the hdf4 jars are among the signs of the apocalypse. Observing how well Java complicates and obfuscates nearly everything makes me wonder if humanity has committed some form of mortal sin that has caused God to hate us. Write-once run-anywhere might be the cruelest joke ever. Most of the C/C++ that I write is more cross-platform. Java just makes it difficult enough to even get things working on one platform that you can't be dicked into testing it on others and therefore must assume that it works as advertised. I hate Java.
Most of the JRuby issues we have had have been Java issues (or Ubuntu trying to use gcj without telling us). JRuby is a really cool implementation. The one thing that I hadn't noticed when I was setting up the gigantron database stuff was the Work-In-Progress status of the JDBCSqlite3 driver. It seems to work, but it errors out in odd ways when using migration methods. I believe that MySQL will behave much better for our project, and I will try it and benchmark that tomorrow.
All in all, it is coming together. Code is being written and I am enjoying myself. Cool technical details or fun KML will be posted when I can.