Alas all the java that is described in the following paragraphs is not currently working.

This has to do with how much effort I am prepared to expend keeping a tomcat server running on for the sole purpose of running these apps, which nobody, including me, ever uses. I had a lot of fun back in 2005-2006 writing these java servlets. But times have changed. It is an enormous pain in the butt to manage these things, principally because Java, though it is aesthetically pleasing to me as a pure language, requires so much upkeep at the boundary with the machine. Over the years a vast array of machinery has been built up in the java world which ostensibly makes it easier to manage large java ee implementations, to distribute java applications to multiple sites, to change out the code of java applications/servlets on the fly, etc. That is wonderful if you use java every day. I use it once every couple of years, and every time I update the linux OS I have to figure out what new improvements have been made that make it impossible for me to get my servlets running now. Just as an example, the interace between java and supporting databases has been radically and completely changed three times — each one an undoubted improvement for those who do a lot of java. But each time it is a learning curve that has to be climbed. Add to this another entire layer of complexity coming from eclipse, which itself has a big pile of machinery to interact with and manage java apps. It is more than a casual user’s life is worth to try to make an eclipse based java environment not only find the databases, but be able to export war files that have all the libraries needed. No thanks, not worth the effort.

Perhaps I will rewrite all these in Ruby for fun.


I built some little apps to support my flying. Maybe it is more accurate to say, I indulged my enjoyment of both programming and airplanes to build some flying related apps, which give me pleasure and are useful to me. But I don’t claim that there aren’t dozens of places on the web where you can get similar stuff.

These are all in java, the “ADF Practice” is a java applet, all the rest are java servlets (i.e. they run in a servlet container – Tomcat – and are logically quite separate from the rest of the site). One difference is that they are unencrypted (they run in http:// rather than https://). I just haven’t gotten around to making https work on tomcat.

Flight Planner

This is a java servlet application that does all the calculations needed in planning cross country flights. As a student they make you learn to do a lot of calculations, and almost right away I built spreadsheets to do all that for me. Then I took on as a project to build a web based app that would do the same thing. The only thing remotely “special” about these is that they are airplane specific. That is, they do calculations which can only be done about a particular plane. There is a drop down to pick the plane I’ll be flying – which was useful before I got my own plane.

This app also derives near real time weather (~5 minutes) from the most recently reported weather station data, housed at NOAA, and gets airspace information from the most recent FAA chart data.

Metar Decoder

The second little servlet accesses java code to decode Metar’s — the coded weather reporting strings which are created by the weather stations at airports, and elsewhere. These weather stations (e.g. the Advance Weather Observation System, AWOS) report every few minutes, and the data is aggregated at NOAA. These are the same reports that I get as a pilot over the air. The Metar strings are encoded. The coding is definitely not designed with computers in mind. There is a lot of variation, multiple ways of reporting the same stuff. It is a mess. I went looking for code to crack it, and found something written in C which I used to help me understand the coding. But ultimately I rewrote it all in java. This servlet enables me to check my decoding. Also, whenever the mainline servlet code finds a string it can’t fully decode, it saves it in a database of troublesome strings, and I can go through those with this app, to improve the code.

TAF Decoder

The third little servlet is more java code to decode TAF’s (“Terminal Aerodrome Forecasts”), the coded weather forecast strings from the weather stations at airports, and elsewhere. TAFs are somewhat different from METARs but many of the terms are very similar.

ADF Practice

This is an older java applet that presents practice problems for steering intercept angles with an Automatic Direction Finder using non-directional beacon signals.

FAA Database Query

The Flight Planner servlet uses a copy of the FAA airspace database, which is downloaded every 56 days from the National Flight Data Center. This little servlet simply enable query into that database.

Leave a Reply