Sticker: “Fresh meat for the grinder”

Over on the other blog I recently enthused about SyncTrain, an iOS SyncThing client. I still maintain it is very good, but wow did I end up foot-gunning with it:

I set Journelly up to use a SyncTrain share on my iPhone, promising myself I’d make sure to do the occasional manual sync, never leave my Journelly file open when not editing it on one of the real computers, etc. I still managed to end up with a sync error, and SyncThing dutifully created a sync error file. The Journelly app picked up that file and started using it as the default file to write to – I’m assuming iOS filesystem arcana is involved – which I wouldn’t have noticed if I hadn’t manually peeked in the directory instead of just using an org-capture template to make Journelly entries on my Mac.

This was only going on for two days and three short entries, but it was pesky: I had a Journelly.org file that went up to Sunday, then a Journelly.sync-error.org file that had grabbed those three short entries, and also spawned a Journelly media folder with the same name. The fix, in the end, was to move my Journelly.org file and media folder into an empty iCloud folder, delete the Journelly app, then reinstall it and immediately tell it to use the new iCloud location. Then I was able to go in and tack on the three entries from the conflicted version. So no data lost, but in hindsight it was a bad move to try to use SyncThing on iOS for app data: There is no reliable background syncing on iOS, just semi-manual workarounds, so it’s inevitable that there’ll be a conflict.

The recommended non-in-app storage method for Journelly is iCloud, and I’d endorse that if being able to edit your Journelly file on the desktop is mandatory.

It’s not a ding on Journelly. It can only work with the files it tells you to. It’s not a ding on SyncThing, which I use for several other applications. It’s not a ding on SyncTrain, which does the best it can with the limitations iOS imposes. And it’s not a ding on iOS, which we all understand quite well at this point: It doesn’t really tolerate long-lived background services and nobody has ever pretended otherwise. It’s on me for thinking it was a good idea in the first place.