Software






During my career as an oceanographer/geophysicist/physical scientist/computer systems analyst (but mostly a programmer) I wrote millions of lines of code in FORTRAN, compiled BASIC, C, C++, Pascal, Java, and a couple of assembly languages (UNIVAC and VAX). I used DISSPLA, Calcomp, Athena, Motif, GTK, and Qt (3, 4, and 5) for graphics. The vast majority of that code was for editing multibeam sonar and airborne LiDAR data. I also created a number of compressed data formats. When I retired I spent the next 8 years as the sole proprietor of my own software company supporting all that software. One of the editing packages I wrote (starting in 1999) is still in use. It is called PFMABE. That's Pure File Magic Area Based Editor (I swear the F stands for File, would I lie?) which was a suite of 2D and 3D sonar and LiDAR point cloud editing programs.
I'm not going to provide the non-proprietary parts of PFMABE here. Most of it is in the public domain and somebody has put it on Github so if you're into that sort of thing, knock yourself out.


When COVID hit I decided that I had had enough of software development and just stayed retired. Of course, you never really get to quit. You always have a need to scratch your own itch. Two of the things I most enjoy are playing music and traveling out west to go off road (Utah rocks, no pun intended). Sooooo...

Over the years I've collected a very large cache of song files that I ripped from my CDs. Many times I want to learn how to play a specific song that I'm positive that I have in my collection but for some reason I can't find it. Either it has no id3 information or the wrong id3 information. So, using a normal player/database like Clementine or RhythmBox doesn't work for me. In addition, I like to use different players depending on what I want to do. I use VLC for normal stuff, Audacity if I want to edit the audio (like fade in/fade out or normalize), I mostly use a Windows executable called Riffstation. That program runs in wine and it allows me to change keys, change pitch without changing tempo, change tempo without changing pitch, it tries to determine chords, gives you the tempo in BPM, lets you isolate parts of the stereo field, and it does all of this on the fly. It was originally a standalone program built by some guys in Europe. I bought it from them and then they sold the whole shebang to Fender. Fender tried to make it a commercial success by allowing it to work directly from the web. They gave away the standalone application for free. They finally lost interest and let it drop but you can still find the .exe on the web.

But, I digress. So that I could find my mp3, ogg, flac, wma, etc files I wrote a little C++/Qt5 program that searches based on file names. It ignores case and order and it also ignores underscores and apostrophes. So, for example, you're looking for Shut Up and Dance by Walk the Moon, you can just enter "moon walk shut dance" and it will return all files that have those words (or parts of words) in their complete file name (full path). You have to keep in mind that sometimes things get misspelled so you want to keep the search terms small if at all possible. Once you find the one you want you just select it and click one of the buttons on the bottom to open it (Riffstation, VLC, Audacity, Transcribe [which you have to buy and I don't use anymore]), or SonicVisualiser (which you have to download, install, and rename sonic-visualiser). The program also works with Videos and tab/chord files.

This program only works on Linux and it requires the C++ compiler and the Qt5 development environment. You can figure out how to install that stuff online. Once you've unpacked the TGZ file just cd into the mediaSearch folder and type

./mk

Once it has built correctly just copy the mediaSearch executable to /usr/local/bin or somewhere else in your PATH. Hint: look in the resources folder for the mediaSearch icon and, possibly, some other things you might be able to use. Click on the following link to get the tarball.


mediaSearch





When my wife and I travel out west we always take a ridiculous number of pictures. We're both using Nikon DSLRs that don't have GPS but I use GPX files from OnX Offroad on my phone (if you go offroad, you want OnX) and/or my Garmin to geotag the pictures. For that I use KGeotag. Once the files are geotagged I want to be able to find the location of the picture on a map. In order to do that I wrote a little C++/Qt5 app called xyPic that reads the JPG  (or related XMP) file to get the GPS position. If it has GPS, I open the system browser to Google maps with a pin at the location and the satellite imagery turned on. I used to make KML files and use Google Earth Pro but they quit making that application. It works just as good with Google Maps though and it's much simpler. Just open the image with Gwenview then select Open With->xyPic. You'll probably have to add xyPic to your KMenu to get it to show up in Gwenview but that's pretty easy (just use kmenuedit). The icon is in the resources folder.

This program only works on Linux and it requires the C++ compiler and the Qt5 development environment. Once you've unpacked the TGZ file just cd into the xyPic folder and type

./mk

Once it has built correctly just copy the xyPic executable to /usr/local/bin or somewhere else in your PATH. Click on the following link to get the tarball.


xyPic



Both of the above programs are released under the GPLv3.