Scientific Computing

WMIC.exe removed from Windows

Starting with Windows 25H2, WMIC.exe (Windows Management Instrumentation Command-line) has been removed from the operating system. Microsoft recommends using PowerShell cmdlets for managing and querying system information instead. There is a migration guide available to help users transition from WMIC to PowerShell cmdlets that invoke WMI.

There are a lot of .bat batch scripts and .ps1 PowerShell scripts that use WMIC.exe, but they can be updated to use PowerShell cmdlets instead.

CMake / Meson force shared library

Build systems like CMake and Meson have specific syntax and variables to manage shared library creation and linking. By default, CMake builds static libraries, but this can be changed by setting the BUILD_SHARED_LIBS variable to ON or by setting the SHARED type option of the add_library() command.

To use C, C++, Fortran, etc. library binaries from Python, shared libraries are required to load the compiled code at runtime in Python. Of course, the Python code must be configured to match the symbols in the shared library.


Meson builds shared libraries by default, but this can be changed by setting the default_library option to static in project() or by the shared_library() function.

Strip geotag location from photos

Strip most EXIF and IPTC headers from image:

exiftool -all= -photoshop:all= myphoto.jpg

A copy of the image _original is kept. The image is not recompressed so image quality is not affected.


Compare the metadata present on old and cleaned images using ImageMagick:

magick identify -verbose myphoto.jpg

magick identify -verbose myphoto.jpg_original

Not all headers can be removed, but it usually works.


Install Exiftool:

  • Linux: apt install libimage-exiftool-perl
  • macOS: brew install exiftool
  • Windows installer

Hugo page content variables

Hugo content Markdown files cannot use Hugo variables directly. The way to access variables (including site parameters, data sources, and front matter) from content Markdown files is to use Hugo shortcodes or to use a custom template for those content pages. However, areas inside code fences cannot use shortcodes. What I wanted to do was make examples of code inside code fences used on several pages on my site update with a version number. However, I don’t currently see a feasible way to do this with Hugo that wouldn’t be overly specific to the particular set of examples. It’s OK, I wanted to note this limitation I ran into. An alternative is to use find/replace across files like “sed” or the VSCode GUI.

Install Zello app on Linux

Note: In general, Windows apps frequently update and may break WINE compatibility. This article is a snapshot of what worked at the time of writing.

Check the Zello WINE database for the latest compatibility information.


Zello allows prompt voice push-to-talk group communications worldwide. Zello provides free access for personal use. The push-to-talk audio is shared simultaneously in a “channel” using internet-connected phones, tablets, computers and Zello WiFi walkie-talkies. For those accessing Zello from a computer, the Zello Windows program works from Linux using WINE. Zello requires an internet connection to work.

To use Zello from Linux:

Download Zello for Windows PC. Install Zello with WINE:

wine ZelloDispatchSetup.exe

This creates a Zello icon to launch the Zello app in Linux.

Optionally, start Zello from the Terminal by making a script “zello.sh” like:

#!/bin/sh

wine "$HOME/.wine/drive_c/Program Files/Zello/Zello.exe"

Related: Speaker-mic for mobile phone PTT apps

GNSS-SDR on Windows

To run Linux programs on a Windows computer, normally Windows Subsystem from Linux (built into Windows by Microsoft) is generally the best / most performant way to run most Linux programs, especially programs relevant to data processing and geospace science in general.

The WSL Install Guide notes from Windows Terminal:

wsl --install

That will install Ubuntu. After a few minutes the Ubuntu WSL install will be complete. From Windows terminal type:

wsl

to start Ubuntu.

From there type

sudo apt install gnss-sdr

That installs numerous packages needed to run GNSS-SDR.

Then proceed to the first-run examples.

When building GNSS-SDR and examples, don’t worry about CMake warnings about missing packages, as long as the project builds.

macOS Network Interface priority order

The macOS network interface priority order determines which network interface (like WiFi, Ethernet, etc.) the system uses first when multiple interfaces are available. Set this priority order through the System Preferences or via the command line:

List all network services in priority order:

networksetup -listallnetworkservices

Set the network interface priority order with:

networksetup -ordernetworkservices "Service1" "Service2" ...

Replace "Service1", "Service2", etc., with the actual network service names.


Regarding WiFi SSID priority, macOS automatically scores based on several factors, including the user manually selecting a WiFi network.

CB Radio FM Channels

The USA and Canada permitted FM frequency modulation, optionally with CTCSS and DCS, on 27 MHz CB radio in September 2021. This allows FM operation on the same 40 channels as AM CB radio at 4 watts maximum transmit power. Observations by USA users including the author is that FM is heard mostly in the range of CB radio channels 23 to 31. Any CB radio channel can be used with FM mode, the same as AM or SSB modes. A rise in FM activity over time is also expected on the President P channels that are preprogrammed FM standard CB radio channels with CTCSS / DCS squelch.

8m 40 MHz and 4m 70 MHz ham bands in the USA

Several countries have created an 8 meter ham band near 40 MHz. The USA FCC has a proposed rulemaking RM-11843 to create an 8 meter ham band in the USA. A key conflicting user SNOTEL, which used meteorburst communications to connect very remote sites, has ceased use of the 40 MHz band. As commenters indicate, a rich surplus equipment market exists of military surplus radios and commercial equipment that can be used on the 8 meter ham band. Proposed bandplans allocate FM, CW, and digital modes.


This 8 meter band proposal stands in contrast to the 2014 proposal to make a 4m 70 MHz allocation as exists in numerous other countries around the world. The FCC summarily dismissed the 4m proposal due to incumbent TV channel 4 users. Use this link to query the FCC TV database for channel 4 users. For example, in 2025 there were about 10 full-power DTV licensees (including newly coming on air) across the USA on TV channel 4, an increase from 2014 licensees. Since other countries have allocations close to 70 MHz, the best option for USA ham in the 4m band may be to co-exist in the 72-76 MHz band, perhaps in-between the existing 20 kHz spaced channels. Since typical 4m radios cover 66 MHz - 88 MHz, for international DX, USA hams could receive on 70 MHz and transmit on 72-76 MHz channels. This would be akin to operations for international DX for USA hams in the 60 meter channelized band.