CLog 1.3.0: new modes, ADIF 3, and a little help from AI

[Image]

When I released CLog 1.2 last year, I wrote that there were no new features planned. Well, that didn’t last long. Today I released CLog 1.3.0, and this time I had some help: I used Claude Code, an AI coding assistant, to review and improve the code.

My first adventures with Claude Code

I’ve been curious about AI coding assistants for a while, and CLog seemed a good test case: a modest but real piece of software, written in Perl over many years, and used every day. I basically asked Claude Code to review the code and suggest changes.

It found more than I expected. Some bugs had been hiding in the code for over ten years, like the default_freq setting that was never actually used, or QSOs that could get lost without any warning. It also spotted security problems in the WordPress plugin, and that the cty.dat import no longer worked with modern versions of MariaDB.

What impressed me most was the testing. Claude Code didn’t just change the code, it tested every change against real logbooks: my own, and the log of Adrian PA0RDA, thousands of QSOs going back many years. It also set up automated tests on GitHub, which run CLog on all supported Perl versions and on 14 current Linux distributions.

It wasn’t all smooth sailing, which I found reassuring in a way. One fix worked fine on my laptop but broke CLog on the older Perl version of AlmaLinux 8. The AI found the cause itself, but only after I noticed the problem. And renaming a git branch, at my request, accidentally closed the pull request on GitHub. Both were solved quickly, but they showed me that you still need to keep an eye on things.

That’s how I worked: Claude Code did the heavy lifting, but I made the decisions. It asked for my approval before every push to GitHub. I reviewed the result before merging. And I changed my mind a few times along the way. For example, the callsign column in clog list went from 12 characters to 10 and back to 12 again, and the AI patiently followed along every time.

All in all, I’m impressed. In a few sessions CLog got more attention than in the past ten years together. I don’t think this replaces knowing what you’re doing, but as a very fast and thorough assistant, it’s great.

What’s new in CLog 1.3.0

  • Today’s digital modes. CLog now knows FT8, FT4, JS8, FST4, Q65, JT65, JT9, MSK144, WSPR, MFSK, PSK31/63/125, Olivia, D-STAR, C4FM, DMR and FreeDV. Reports in dB work too, e.g. clog add dl1abc 14.074m ft8 t-10 r+05.
  • ADIF 3 export. Modes like FT4, JS8 and PSK31 are exported as a mode with a submode, as current logging software and QSL services expect.
  • A tidier clog list. The output now always fits your terminal (80 columns by default). Long comments and long callsigns are cut off with a >, so the columns stay aligned. Don’t worry: they are still stored and exported in full.
  • Better recognition of what you type. Special event callsigns with 3 or 4 digits (like PA100MGY) and short frequencies (like 7m) are now recognized. A locator at the start of a comment is no longer silently lost.
  • No more silent data loss. If something went wrong while storing a QSO, the old CLog just carried on without telling you. Now you get an error message.
  • Some old bugs fixed. The default_freq setting in .clogrc finally works (it never did!), and importing the latest cty.dat works again.
  • Easier installation. The repository has a new layout, and sudo make install does the job. The README explains how to install the required Perl modules on Ubuntu, Debian, Linux Mint, RHEL, AlmaLinux, Rocky Linux, SLES and openSUSE.

Upgrading from 1.2 is easy: the database didn’t change, so there’s no need to run clog dbupgrade. Just install the new version. For all the details, see the CHANGES file on GitHub.

CLog is on GitHub: https://github.com/pa3hcm/clog
Release notes: https://github.com/pa3hcm/clog/releases/tag/1.3.0
Download CLog 1.3.0: https://github.com/pa3hcm/clog/archive/refs/tags/1.3.0.tar.gz

As always, special thanks to Adrian PA0RDA, whose logbook again proved to be a great test case.

Leave a Reply

Your email address will not be published. Required fields are marked *