Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I’ve often said that if we convince ourselves that technology is magic, we risk becoming hostages to it. Just recently, I had a brush with this fate, but happily, I was saved by open source.

I was very pleased to discovered an open-source utility called gpsbabel (thank you gpsbabel! I donated!) that can unpack Garmin’s semi-(?)proprietary “.FIT” file format into the interoperable “.GPX” format.

...and how do you think that utility was created? They probably didn't have access to Garmin's source code or documentation for the format. They just "figured it out". Furthermore, whether that utility is open-source doesn't seem to matter here: it's just doing a format conversion.

but it was mostly a matter of finding the right open-source pieces and gluing them together with Python

Replace "open-source" with "freely usable", and the author would've probably been able to accomplish the same end-goal. Gluing together existing software, treating the pieces as black boxes, doesn't show off any advantages of open-source at all.

Don't get me wrong, I'm not against open-source; I'm just against this rising glorification of it as somehow a be-all and end-all of software freedom. What is worth praise, however, is the rising availability of freely usable software.

To go back to the author's first point, the best way to not "convince ourselves that technology is magic" is to start with a comprehensive low-level education: Computers are just dumb machines executing sequences of instructions, and in a non-hostile environment, you get to choose precisely what instructions they execute.



I think FIT is actually a (somewhat) documented format that's used by a number of non-Garmin devices as well, mostly GPS cycle computers. It's not really any more non-standard than the Garmin extension to GPX being used for heart rate after conversion. Probably a little harder to implement though, given that it's a terse space-optimized binary format. (Though maybe not, since XML namespaces seem to be involved.)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: