Building A Better Logger
I haven’t been on the air a ton over the past month. I’ve been a little fed up with my logging software and overall logging strategy. I run mainly Linux on my computers and do a lot of FT8 with WSJT-X. CQRLog has worked pretty well since it will accept log entries directly from WSJT-X thanks to UDP integration. However, I’m a programmer and very picky, and there are things in CQRLog that I just can’t stand. For instance, CQRLog will let you backfill a QSO’s name, city (QTH), state, etc. from the QRZ.com database for several records at once, but it basically assumes you want to backfill your entire log; I only want to fill in the last 5 QSOs that are missing that information and then stop. CQRLog also doesn’t have good merging. It will deduplicate, but it just deletes duplicates instead of trying to keep relevant information from matching records. That shortfall makes it painful to run CQRLog on multiple computers, for example a home desktop and a field laptop. To top it off, CQRLog looks terrible on a HiDPI monitor with scaling.
Also, I realized my log strategy was flawed. I was uploading my logs from CQRLog to Logbook of the World and then pulling LotW into my QRZ.com logbook, but eventually realized that LotW was dropping details like the sent and received RST and TX power. Now I have about 200 records in QRZ that are missing those fields. CQRLog has the details but can’t help with fixing them; QRZ.com logbook doesn’t support record merging.
Motivated by all of this, I’ve set out to write my own logging software to fit my personal needs. Right off the bat, I want to have better merging of ADIF files and be able to update records in my QRZ.com logbook. I also want to introduce interactive Google Maps for awards like Worked All States.
My initial effort has been a web application in Golang, very similar to Pat since I’ve been doing some development on that. It’s highlighted some of the difficulty of working with the ADIF format; I’m really missing my JSON and protobufs. There is a decent Golang ADIF parser written by GitHub user tzneal, but it’s still a far cry from more modern formats and generated clients.
I don’t know if I’ll ultimately keep this web app or rethink it. Sure, I have my award progress map and I’ll get to the point that I can fix my QRZ.com logs. But if I’m going to invest more time in this, I don’t really want to make a slightly better CQRLog or a slightly better QRZ.com logbook. The amateur radio logger space hardly needs another half-baked solution. My goal ought to be bringing together advantages from many logger applications and being significantly better than what exists today. But what does that mean, a desktop client that adds peer-to-peer syncing and QRZ.com updates? A cloud web application with offline capability that can support rig control and WSJT-X integration? I’m not sure what’s possible yet.