Soon after I published my plans to upgrade Flight Track through a port to Java, I received one or two suggestions from our community. One exchange inspired a Skype session where we discussed the possibilities of various platforms – desktop and web application.
One of my primary reasons for the port was the cost of maintaining Visual Studio. Within weeks of my post, Microsoft released Visual Studio Community 2013. After downloading and evaluating it, I decided I could use it to upgrade Flight Track and confidently support it through future upgrades of the IDE and my laptop. This was an advantage for since I can use existing Flight Track code in the upgrade. When I couple this decision with my platform conversation, I started the development of Flight Track On Line.
When I started the original Flight Track, I experimented with parsing APRS packets and displaying a location in MapPoint. Having already proved this to myself with the combination of HTML and Google Maps, I thought a better goal was to process the near real-time data from APRS-IS. In these experiments, a connection to the APRS-IS server was required – similar to how Flight Track operates today (Flight Track can monitor a radio or an APRS-IS server feed). However, when I deployed this to my website, my host was “cautious” about having an open socket connection on their server. It seems shared hosting is risk averse.
I thought I might be able to use a different source of APRS-IS data so I contacted administrators at aprs.fi and findu.com. While I came away without a solution, I have greater respect and appreciation for what they do and how they do it. I also received a suggestion to host my own solution.
Hosting a website on my personal computer was both intriguing and concerning. Dedicating the same computer for Flight Track On Line and high school homework would probably have an impact on both, and I had security concerns. About this time, my son had received his Raspberry Pi and, in addition to commandeering our television for his personal monitor, was talking about downloading a Linux distro.
After a couple of hours of setting up his Pi, we saw a GUI and some applications. He spent much of that evening building a Mindcraft world. Something in the set up caught my attention. In the midst of downloads, setting passwords, and learning Linux commands, there was an installation of Apache. There was also a picture of the default web page declaring “It works!”
I was familiar enough with Apache to investigate the Pi as a web server. Multiple code examples and methods of accessing it from the internet prompted an experiment. After a few days, my son and I found we could access the Pi in our living room from my website. At this point, you may be ahead of my story.
Yes indeed, I purchased my own Pi and started developing prototypes in Eclipse. The prototypes ported easily to the Pi and they even executed successfully. During a very geek-filled holiday break, I combined REST libraries, Tomcat, and MySQL to receive and store data from an APRS-IS server feed. In short, I believe I had the ability to monitor balloon flights in near real-time.
I have not put together enough code to follow a flight. All the parts are there waiting for a snowy weekend to be integrated and tested. Stay tuned!