Skip to content

Releases: nigelfenton/shackbook

ShackBook v0.7.0

Choose a tag to compare

@github-actions github-actions released this 28 Aug 00:16
e915527

ShackLog is now ShackBook

If you already use this program, read this first — but you do not need to do anything.

A UK amateur radio logging program has used the name ShackLog since at least 2005, holds shacklog.co.uk and shacklog.com, and is listed on DXZone. There is no connection between the two projects. Continuing under that name would have been confusing for operators and unfair to the people who had it first, so this project moved.

Your logbooks come with you, automatically. The first time you run this version, your existing data directory is copied — not moved — from …/G0JKN/ShackLog/ to …/G0JKN/ShackBook/, and the program tells you it has done so. Your originals are left exactly where they were; delete them by hand once you are satisfied everything arrived. If you have already started logging under the new name, nothing is overwritten.

This was tested against a real 16,538-QSO logbook before release, not only in unit tests.

Two things worth knowing:

  • ADIF and Cabrillo exports now carry ShackBook as the program ID. Logs you exported before today keep ShackLog, which is correct — that is what produced them.
  • The Windows installer upgrades in place. Its application ID is deliberately unchanged, so this replaces your existing install rather than sitting alongside it.

Session Map

Maps → Session Map… — where did tonight's QSOs actually go?

The Grid Map answers what have I ever worked. After an evening at the radio the more interesting question is where the signal got out tonight: which bands were open, which direction was working, whether that new antenna changed the footprint. Until now the only way to see that was to leave the program for PSKReporter, which shows reception reports rather than logged QSOs and only for digital modes.

Contacts are plotted at their grid square with a great-circle path from your own grid, coloured by band so a multi-band evening reads as separate footprints. Previous / Next walk back through earlier sessions.

A session is derived rather than stored: a gap of more than two hours starts a new one. That keeps an evening which crosses midnight UTC in one piece — which a plain date filter gets wrong, and which lands mid-evening for US operators — while still separating an afternoon session from an evening one.

The paths are real great circles, not straight lines on the map. Maryland to Japan drawn straight runs across the Pacific; the actual path goes over the pole, and drawing the wrong one would misrepresent the very thing the map exists to show.

It tells you what it could not place. QSOs without a usable grid square cannot be plotted, and the window says how many rather than quietly dropping them — for example "13 QSOs | 11 plotted | 2 without a usable grid — not shown". In a real log that is a meaningful fraction, since hand-logged SSB contacts often carry no grid at all.


QSO Party mode

Tools → QSO Party… — worked/needed counties, and what is on.

One window rather than two, because during a party "what is running" and "which counties do I still need for it" are the same question. The party picker preselects whatever is running today, so opening it mid-event lands on the right one without a click.

The worked/needed table is the part that changes how you operate. It turns "have I got Calvert yet?" from a memory question into a glance. Needed counties are listed, not merely counted — a count tells you how far there is to go, a list tells you what to chase — and the list is selectable so it pastes into a spot or a club chat.

Backing it is a bundled US county reference list: 3,235 counties from the US Census 2020 FIPS data, covering all 50 states plus DC, Puerto Rico, the US Virgin Islands, Guam, American Samoa and the Northern Mariana Islands. It includes the awkward cases — Virginia's 38 independent cities, Louisiana's 64 parishes, Alaska's boroughs and census areas, Puerto Rico's municipios.

It is bundled rather than fetched for a reason: the machine that most needs this is often the one at a field site with no internet.

The matcher is strict, and says so when it cannot place a value. On a real logbook it immediately surfaced nine genuine logging errors — FL,Alameda (Alameda is California), FL,Ponce and FL,Aibonito (both Puerto Rico), FL,Pinal (Arizona). Silently ignoring those would have turned nine data-entry mistakes into a quietly wrong needed count.

A contest calendar shows what is on now and coming up. It stores recurrence rules rather than dates — "the second full weekend of August" — and computes the dates for whatever year you ask about. A bundled table of dates would be silently stale the following year, on precisely the machine least able to refresh it.


Notes

The bundled contest definitions each carry their own provenance marker. Every one currently reads UNCONFIRMED: the exchange shapes are the common county-party form and are probably right, but nobody has checked them line by line against each sponsor's published rules. They are fine for chasing counties, where being wrong costs a mis-labelled column — check before relying on one for a submitted log.

The calendar's recurrence rules carry the same caveat. A wrong rule shows you the wrong weekend, which is annoying but visible.

Downloads below: Windows installer and zip, Linux AppImage, macOS DMG.


Full commit list

What's Changed

  • feat(counties): bundle a US county reference list so needed can be shown (#5) by @nigelfenton in #6
  • feat(contest): contest definitions and a worked/needed county table (#4) by @nigelfenton in #8
  • feat(maps): Session Map — where did tonight's QSOs actually go? (#3) by @nigelfenton in #7

Full Changelog: v0.6.0...v0.7.0

ShackLog v0.6.0

Choose a tag to compare

@github-actions github-actions released this 05 Aug 20:04

Full Changelog: v0.5.0...v0.6.0

ShackLog v0.5.0

Choose a tag to compare

@github-actions github-actions released this 05 Aug 06:42

Full Changelog: v0.4.1...v0.5.0

ShackLog v0.4.1

Choose a tag to compare

@github-actions github-actions released this 30 Jul 23:41
b44d0de

Full Changelog: v0.4.0...v0.4.1

ShackLog v0.4.0

Choose a tag to compare

@github-actions github-actions released this 30 Jul 16:32
2ff69dd

What's Changed

  • APRS Activity window (KISS TNC live roster + messaging) by @nigelfenton in #1

New Contributors

Full Changelog: v0.3.2...v0.4.0

ShackLog v0.3.2

Choose a tag to compare

@github-actions github-actions released this 12 Jun 19:15

Full Changelog: v0.3.1...v0.3.2

ShackLog v0.3.1

Choose a tag to compare

@github-actions github-actions released this 12 Jun 05:56
6ee698a

ShackLog v0.3.1 — lookup & cluster fixes

Two bugs found in the field on v0.3.0's first night:

HamQTH / QRZ lookups always reported "login failed"

The XML parser consumed the whole response while reading the outer element, so the session key never came out — both XML providers were broken regardless of credentials (callook.info was unaffected). Fixed; verified live against HamQTH with a real account.

DX cluster reconnect storm on duplicate logins

DXSpider nodes allow one session per callsign-SSID: a new login wins and the old session is dropped. ShackLog reset its retry backoff the instant TCP connected, so two clients sharing a login (say, your desktop and your laptop both as CALL-2) kicked each other off the node about once a second, forever. Now:

  • the backoff only resets after 45 s of sustained connection,
  • the DXSpider kick message is recognised and shown in the status bar and DX Cluster Log ("another program logged in with our callsign…"),
  • the retry waits the full 30 s maximum instead of storming back.

Tip: if you run ShackLog on two machines, give them different login suffixes in Settings → DX Cluster (e.g. -2 and -3) and they'll coexist peacefully.

Downloads

Platform File
Windows installer ShackLog-Setup-0.3.1-windows-x64.exe
Windows portable ShackLog-v0.3.1-windows-x64.zip
Linux ShackLog-v0.3.1-linux-x86_64.AppImage
macOS (Apple Silicon) ShackLog-v0.3.1-macos-arm64.dmg (unsigned — right-click → Open on first launch)

ShackLog v0.3.0

Choose a tag to compare

@github-actions github-actions released this 12 Jun 05:07
4b08b78

ShackLog v0.3.0 — callsign lookup

Type a call (or let spot autofill find one) and ShackLog now fills in the operator's name and location automatically, through a three-tier chain:

  1. Worked before — if the call is already in your log, your previous QSO's name/QTH/grid/state/country are reused. Your own log always wins.
  2. Offline country lookup — AD1C's cty.dat is bundled inside the binary: instant prefix → country / continent / CQ & ITU zones, no internet needed (Field-Day-proof).
  3. Online providers (new Settings → Lookup tab):
    • QRZ.com — requires their paid XML-data subscription
    • HamQTH.com — free account
    • callook.info — US calls, no account; enabled by default as a fallback

Looked-up details only ever fill empty fields at save — anything you type wins, and a late lookup result can never leak into the wrong QSO. The status bar previews what will be filled.

Also in this release (since v0.2.0): version shown in Help → About.

Downloads

Platform File
Windows installer ShackLog-Setup-0.3.0-windows-x64.exe
Windows portable ShackLog-v0.3.0-windows-x64.zip
Linux ShackLog-v0.3.0-linux-x86_64.AppImage (chmod +x, run)
macOS (Apple Silicon) ShackLog-v0.3.0-macos-arm64.dmg (unsigned — right-click → Open on first launch)

Verified built and running on Windows (Qt 6.10/MSVC), Linux (Qt 6.4/GCC) and macOS (Qt 6.11/clang).

ShackLog v0.2.0

Choose a tag to compare

@nigelfenton nigelfenton released this 11 Jun 02:15
161ea35

ShackLog v0.2.0 — the logbook learns some serious new tricks.

New features

  • ADIF import (File → Import ADIF): tolerant ADIF 3.x reader — handles HRD, N3FJP, WSJT-X exports; duplicate guard (same call/date/band/mode to the minute) makes re-imports safe; tested against a real 17.5 MB / 16,952-QSO HamRadioDeluxe log (imports in seconds).
  • Multi-operator logs: one logbook file per callsign with a startup operator chooser (last-used default), live switching via File → Switch Operator/Log, and automatic adoption of a pre-0.2 single logbook. Title bar always shows whose log is open.
  • Awards panel (Tools → Awards): one-pass scan of the open log for DXCC / WAS / WAC / WAZ / grid standings — worked vs confirmed (LoTW/QSL card), with "still needed" chase lists you can copy straight out. WAS validated against the real 50-state list (DC counts as MD); junk STATE values reported, not counted.
  • "How far?" button: opens the PSK Reporter map pre-filtered to stations that heard YOUR signal in the last 15 minutes on the current band. One click from logging to seeing your RF footprint.
  • WSJT-X direct ingest: point WSJT-X's "Secondary UDP Server" (Reporting tab) at 127.0.0.1:1100 and logged contacts appear in the open log in real time.
  • shacklog-server (Linux/headless): the Field Day shadow logger — N3FJP-compatible TCP API, WSJT-X UDP/ADIF receiver (same port 1100, TCP+UDP), and an HTTP JSON API, all writing one auditable SQLite logbook.

Notes

  • Windows binary attached (x64, Qt 6.10 bundled — unzip and run ShackLog.exe).
  • Linux: builds clean from source on stock Ubuntu 24.04 Qt 6.4 (cmake -B build -G Ninja && cmake --build build). macOS build validation pending.
  • 73 de G0JKN

🤖 Release prepared with Claude Code

Full Changelog: v0.1.2...v0.2.0

ShackLog v0.1.2

Choose a tag to compare

@github-actions github-actions released this 09 May 01:42

Full Changelog: v0.1.1...v0.1.2