Home | | Sailing | | Alaska 2011 | | Share This Page |
Copyright © 2011, P. Lutus. All rights reserved. Message Page
Prior years: |
Alaska 2002 |
Alaska 2003 |
Alaska 2004 |
Alaska 2005 |
Alaska 2006 Alaska 2007 | Alaska 2008 | Alaska 2009 | Alaska 2010 |
(double-click any word to see its definition)
Figure 1: A modern electronic navigation display (OpenCPN)
In this article I discuss what many sailors have come to regard as an essential part of modern boat operation — a combination of GPS (Global Positioning System) position sensing, electronic chart display and tracking software.
Twenty years ago, during my around-the-world solo sail, I had onboard a primitive form of electronic navigation called Transit, a system of polar-orbit satellites that might provide a position every 90 minutes or so. But I also learned how to use a sextant and carried one, in case the electronic navigation system failed — as it did, repeatedly.
In those days I had a huge stack of paper charts of the entire world, along the route I intended to sail — at least 100 charts. It was a constant struggle to keep them from being drenched in salt water, then decaying away or succumbing to mildew.
Since that time, GPS has established itself as the primary satellite-based navigation system, a very reliable scheme that is often accurate to ten meters or less. In the early days of this system, sailors would read a GPS position from a satellite receiver, then locate the coordinates on a paper chart. The charts needed near-constant attention — a boat operator was expected to keep his paper charts up to date, an expensive and time-consuming process.
In the next big change, the paper navigation charts were converted to computer media form. This made it possible to write a computer program that would display the chart and the boat's present position at once, as well as any routes or waypoints the operator cared to include. A number of vendors have appeared in this niche, offering electronic navigation programs and electronic chart collections. Costs are pretty high — an electronic navigation program might cost US$1200.00 (example: NobelTec Admiral), and the electronic chart collections often cost hundreds of dollars for one area.
But two recent, very important developments have led me to write this article:
Some of my readers may know that I'm a software developer, and over the years I've written some free nautical software:
But the program I've always wanted to write, and could not, was an electronic navigation program like that shown in Figure 1 on this page. The primary reason I couldn't write it has to do with a technical issue with present electronic charts — they are encoded using a proprietary, unpublished format called BSB, a format that includes a lot of information essential to their use in navigation but that is not published in detail.
Because I needed a navigation program that I couldn't write, I reluctantly purchased a commercial program for use on my boat. Since I plan to candidly describe this program, I won't name it — in modern times there's no more reliable way to get sued than to tell the truth and to name your target. But it wasn't Nobeltec — when I saw Nobeltec's advertising, I knew I didn't want anything to do with them. To me, a product named "Admiral" with a list price of US$1200.00 is an obvious appeal to narcissism and ignorance, not common sense. A quote from their website: "Your yacht deserves nothing less than the most powerful electronic navigation solution available ...". Yep — only narcissists swallow this sort of appeal. Now if there was a company named Humbletec that sold something called the "Deckhand", and if they paid you to take it away, I might have gone for it.
Anyway, I didn't buy Nobeltec's program, I bought another, and I've had it for many years now. Because I run Linux and because there were no nav programs that ran on anything but Windows, I had to install and maintain a "virtual machine" that ran Windows solely for this one program.
Over the years I've watched this nav program go through endless revisions, each less logical than the last, and the price has perversely crept upward. But in the most recent revision, they added a true computer science breakthrough — a cool new feature that stops all other activities and scans all your route files at one-minute intervals. If you happen to have a lot of route files (I have over 600, covering all the territory between Washington State and the Aleutian Island chain), the program becomes unresponsive for 8-10 seconds while it struggles to reabsorb the meaning of all those route files it just scanned 60 seconds ago. It's a truly brilliant design, and I hope they're getting a patent.
But that's not the best new feature, no. The turning point for me was a side effect of the new feature I described above — if you exit the program and re-enter it right away, the new incarnation of the program fights for control with the old, and in the struggle, all your route files are erased. They've crossed a new frontier in programming mediocrity.
After I discovered this perverse file-eating behavior, and for the remainder of the cruising season, I maintained a backup directory of all my route files, to protect them from a navigation program that clearly intended to destroy them if given a chance. And I resolved to dump this modern technical achievement at my first opportunity — I would either write my own program or find an alternative to the nav program from hell.
When I returned home and began making post-cruise plans, I looked into the issues that had prevented me from writing my own nav program earlier, and discovered things had improved — the BSB file format, although still proprietary, was better-described online, to the degree that I thought I could decipher it. So I started a new Java project, which went rather well and seemed likely to become a full-fledged navigation program.But one day, while doing research on the BSB file format, I noticed a reference to OpenCPN. I didn't know whether the name referred to a library or a file format, so I Googled for it and discovered that a team of sailors had been writing a perfectly acceptable, free, open-source, multi-platform navigation program, and they had released a new version of the program only a month before.
I suspended work on my own program while I evaluated OpenCPN, and I quickly discovered that every item on my wish-list had been included:
I was shocked — this is a really, really good program, obviously written by sailors (unlike most of the available commercial software) with sailors' needs in mind. I hated to suspend work on my own program, but (unlike many of my projects like JWX) OpenCPN was simply better in every way.
For the non-sailors among my readers, I want to show why some of these new features are useful to sailors and are more than conveniences. As one example, quilted charts have safety implications. Every season I pass through Keku Pass in southeast Alaska. Keku Pass is a bit tricky, in places very shallow, strong currents — you must be very vigilant about where your boat is located. Here is a particularly nasty spot in Keku Pass as displayed by the old nav program (without quilted charts) and by the new:
Before chart transition, heading on course
|
After chart transition, heading for a rock
|
Before/After chart transition
|
By looking closely at the quilted image above and by comparing it to the two images above it, you can see the transition line between the two original charts. In this case, the quilted display prevents a nasty surprise in which a dredged channel abruptly ends with a sharp turn to avoid a rock, and where by chance one chart ends and another begins. I can't tell you how many times I've almost plowed into that rock while waiting for the prior program to switch charts.
Opinion Section:
I'm a strong advocate of free and open-source programs. This doesn't mean I think people shouldn't make money by programming, especially since I became wealthy through programming, decades ago (example: Apple Writer). No, it means I think people should be allowed to write their own programs and, if they see fit, offer them for sale, but in such a way that people will understand what they're getting and have options.
As long as there was only Windows available, Microsoft could do anything it wanted, and their behavior was execrable. Now that there is Linux, Microsoft still exists, but they understand their place — they are an option, not the option.
A similar process is underway in the world of navigation software. As long as the BSB file format was a secret, and as long as its owner threatened to sue anyone who tried to decode it and open it up, a small handful of players could and did control the entire market with a blatantly protectionist strategy. The result? Programs like Nobeltec Admiral at an absurd price of US$1200.00.
But the owners of the rights to the BSB format (the format of most present electronic navigation charts) have made a number of very bad moves, and there are some technical legal issues that have resulted in the BSB format becoming de facto open, even though de jure it is someone's property.
It seems to me that the BSB format must be protected either by a patent or a copyright. If it's a patent, then we can wait for the patent to expire and move ahead (whether a patent is in force is not clear). If it's a copyright, then the copyright owners need to understand that copyright law can't be used to protect a file format (reference).
One thing should be clear to everyone — because NOAA chose the BSB format to encode all the government-produced nautical charts and chose Maptech (who claim to own the BSB format) to distribute them, Maptech needs to be careful to avoid any appearance of impropriety, of exploiting their privileged position for private gain.
As to programs like OpenCPN, it's obvious that commercial programs like Nobeltec Admiral were so short on useful features and so expensive that OpenCPN's creators decided it was simpler overall to write their own program and give it away. I often find myself in that same position.
Home | | Sailing | | Alaska 2011 | | Share This Page |