Utilities
Below are some examples of the utilities that I have built. My programs are built with Lazarus using the Free Pascal Compiler, and some are built with Delphi, they are native Windows executables and should run on any Windows flavour from Vista to Windows 10. These utilities were built to perform a task, I do not claim to be a software developer, but rather a geophysicist who programs to make life easier and more fun. Generally, I like to write programs that are easy to use and integrate the latest technologies; most of these are 64bit, so you may get a complaint if you are still using a 32bit Windows version. I have built many utilities and those shown are only examples.
I have also written many Python scripts to perform tasks that are time consuming to do manually. I tend to use a version of Python that lags behind the latest release, this is just so that any dependent libraries are fully tested and will work according to plan. Currently I am using Python version 3.6.1, this version is compatible with the SEGY libraries that I have found available on GitHub. These scripts use a number of libraries that may not be installed by default when you install Python (see Python for more information about installation).
El Gato
El Gato (Spanish for The Cat) is a text file concatenator. I built this program initially whilst on site in the Argentine South Atlantic to concatenate tide files collected from the GNSS antennae over the vessel network. However, the program will work for any text file(s). Whilst this can be done on the command line in Windows many users don’t know how to do this; so this is a simple tool to help (of course on Linux the solution is trivial).
Com Porter – Serial Interface Analyser
Com_Porter is a serial link network analyser. I got bored testing serial communications using Hyper Terminal as every time I needed to change a baud rate or bit type I had to launch a new instance. I wrote Com_Porter whilst on a project in Morocco, to have four terminals by default; COM settings can be changed on the fly without having to close and open the port. The program can be used at two ends of a link to test for connectivity; additionally, strings may be sent on any link to check for latency etc. This is a dockable application so the terminals can be undocked and viewed on any number of monitors. This program has been used by colleagues on many vessel mobilisations.
Windows Update Control
W10_Update_Checker is a tool that can be run on any Windows 7 or 10 box to control Windows updates. As these updates can consume huge amounts of bandwidth (several GB) this is not always desirable when on board a vessel. The program disables the Windows update service and monitors the service every ten seconds; the service is stopped if the program detects that it is alive. Additionally, it creates a scheduled task that launches the application every time the user logs on to the Windows machine. The program can be disabled at any time and the scheduled task is deleted. The Windows update service is controlled by triggers within Windows so disabling the service manually has no guarantee that the service will remain dormant; this application seeks to keep the service asleep.
Find and Replace
This is a Python script that will find and replace text in files. This script is intended to be used when the file size is very big. Most text editors struggle to find and replace when the file size is very large, typically applications such as Notepad ++, or WordPad freeze or appear to hang when a replace operation is performed on large files; they can also be very time-consuming. This script will work on very large files and is surprisingly fast. The script uses the Gooey argument parser to present the user with a GUI that makes easy selection of files and find and replace text.
Export or Import SEGY navigation bytes
This script exports or imports SEGY navigation bytes to or from a SEGY file. This script can be used to quickly export navigation to view in other applications such a GIS and optionally apply some sort of smoothing or other manipulation. The script can read comma delimited files back into the SEGY file for easy editing of the SEGY navigation values. The script uses the Gooey argument parser to present the user with a GUI and uses the segyio libraries released by Statoil to read and write to the trace header bytes.
Of course the script can be readily extended to include other bytes that may require QC or other manipulation.