Playing with WiFi heatmaps

I’m often called upon by my neighbors to troubleshoot their crummy network connections. I already have good advice for solving bad latency caused by bufferbloat but I also hear, “My network connection is weak”, and I would like a nice tool to give me a visual sense of the facts on the ground.

I looked around for tools that will do this. There’s an NetSpot for Android that has a free tier, but I wanted a free version. I found python-wifi-survey-heatmap, but it only runs on Linux.

Then I found wifi-heatmapper that is a Javascript app, and has been customized for macOS, Windows, and Linux. I’m horsing around with it to see what it’ll do.

Testing out Wordland

I'm checking out Wordland. Let's see if this actually posts to my Random Neurons Firing site… Hokey pokey! It did!

This is very cool. It seems to hit all the important points of textcasting.org

Should this be a header?

Nope, doesn't seem to work yet

Bold, Italic, H4 (?) Lists, too…

  1. a

  2. b

  3. c

    • aardvark
    • banana
    • candle

'Twas brillig and the slithy toves
Did gyre and gimbal in the wabe;
All mimsy were the borogobes,
And the mome raths outgrabe.

And editing a prior post works! I never get it right the first time…

Update: 25Feb2025… Comin' back to add this update…

Creating a macOS application bundle

I really like the Crusader network test application for measuring network throughput and latency. It’s cross-platform and provides a useful reference for network measurements. But the macOS binary opens a Terminal window that’s confusing and “gets in the way”. Furthermore, you have to know which binary to use – Intel or Apple Silicon.

I decided to create a double-clickable “macOS application bundle” that hides the unwanted stuff and launches the proper binary file. In addition, it now has a nice icon file.

It turns out to be pretty straightforward to make the bundle. Even though the bundle isn’t signed (and needs to be granted permission to run the first time), it operates exactly as desired.

I put the process into the create-crusader-macos-app repo. The script shows how to combine all the pieces – downloading the binary file(s) from its own repo, the Info.plist file, the .icns that contains the icons, and a startup script that are required for the bundle.

It’s now easy to build the app anytime a new version gets released.

qStudio & PRQL – a pretty good match

I’ve been following the progress of qStudio – a SQL IDE that runs on Windows, macOS, and Linux. It’s great for running SQL queries against a database. I haven’t used its Pulse features to create real-time graphs of live data, though.

My use of qStudio is driven because it includes the PRQL compiler that takes a modern query language and compiles it to SQL statements. The qStudio IDE allows me to write straightforward PRQL queries and immediately execute them against my SQL database.

Quick Start: My friends want to pick through some of the SQL data we’ve collected for a project. I wrote a series of tutorials that show how to get started using qStudio with PRQL. They are at https://github.com/richb-hanover/qStudio-PRQL_Quick_Start

Installation: There’s a pretty good qStudio installer for Windows on the Downloads page. And the .jar file seems to work fine on Linux. But it’s a bit of a pain to run the .jar file on macOS. So I created a macOS application bundle for the combination of qStudio and PRQL. You can download the macOS file from: https://randomneuronsfiring.com/wp-content/uploads/qStudio.zip Check the Quick Start #2 for details on approving it to run on macOS.

ExceLint is working again

I do a lot of work with spreadsheets. Some are pretty simple, and I can inspect them by hand. Some are enormously complicated – hundreds of rows, dozens of columns, etc. It’s not practical to inspect/test them manually.

Enter ExceLint. It’s an add-in to Microsoft Excel that “lints” a spreadsheet. (A “linter” is a program that picks off ‘bits of fluff’.) The ExceLint team reports they regularly find errors, some material, in spreadsheets they test. (I was pretty lucky – there were a couple minor errors, but I was OK.)

ExceLint requires you to “side-load” a manifest.xml file that points to the resource files the add-in uses. The ExceLint home page describes the side-load process. It stopped working a while ago, so I just started to hope my good spreadsheet-fu continued. But then I decided to do a bit of troubleshooting, and found that ExceLint retrieved its code from a defunct server running on azure.com. I fixed it a couple ways:

  1. I created a Dockerfile that built the resources for the add-in on the local computer. Side-loading a manifest file that points to localhost allowed the add-in to work again.
  2. I realized that the resources – the files loaded by Excel – could be served by a static https server anywhere . So I created a new GitHub Action to build those files with each commit, and then to use Github Pages to serve those files.

You can now use ExceLint again, using publicly served resources from Github. You can even test at https://excelint.github.io/ExceLint-addin. The result isn’t terribly interesting – it displays the ExceLint logo, with a spinner that runs forever.

PRQL Dockerfile works again

The PRQL project provides a simple, powerful, pipelined SQL replacement. To make it easier to share the development environment, there is a Dev Container that bundles the dozens of components into a single container. This makes it easier for new person to start using the project: they don’t have to collect the proper (sometimes conflicting) versions of the tools on their computer.

The Dev Container had been working fine for over a year. I recently noticed that there was a new version of Docker Desktop (old: 4.29.0; new: 4.30.0). After the upgrade, some of the services – the Playground and the “Book” (the documentation) – were not available from the Dev Container.

The fix was to force those services to bind to the address 0.0.0.0 (not “localhost”, not 127.0.0.1) in the task file that configures them. See the PRQL repo for details.