As the sysadmin for GMass, I’ve always wanted an app that lets me log changes that I make to a server configuration or to code, but I’ve never found a logging app that was designed specifically with the sysadmin in mind.
I did, however, find a journaling app called Day One that is meant for personal journaling but I’ve found that it works well for my sysadmin needs. The key feature that makes it better than using Notes, Notepad, Google Docs, Word, or any other app that lets you type stuff, is that its little icon sits in the Mac Menu Bar so that adding a new entry is as easy as clicking the icon, typing your stuff, and hitting a button.
No browser to fire up, no need to remember a URL, and no need to log in. Just a few clicks and I can log an entry. Every time I modify my web.config file, for example, or update the GMass Chrome extension files, I log an entry describing what I’ve done.
Day One changed its business model in 2018
In mid-2018, Day One changed its business model, from a paid app to a subscription service. I welcomed the change because I’ve come to depend on the app and found its prior business model flawed. Since Day One lets you sync your entries across multiple devices, that means there’s a server involved that pushes and pulls information, and servers require maintenance, so it was always a mystery as to how Bloom Built, the company behind Day One, funded the maintenance and programming of servers when only collecting a one-time fee for downloading its app and using its servers.
However, when I switched to the subscription service, one of my devices became out-of-sync with the others. I’m not sure why this happened, but I suspect it’s because when I originally purchased Day One, I had done so with my Apple ID of firstname.lastname@example.org, and when I purchased the subscription service, my Apple ID had changed to email@example.com. The one machine that’s been out of sync with Day One for the last year still showed the user logged in as firstname.lastname@example.org. To make matters worse, I had been making new journal entries from all of my various devices, including the out-of-sync computer. This presented the frustrating problem of getting the out-of-sync computer back in sync and making sure that any entries that were on the out-of-sync computer were also on the in-sync devices (before I resolved this, they were not).
Day One does use Apple’s App Store subscription service to manage their own subscriptions. I wish they didn’t because this requires using iTunes, and I avoid iTunes like the plague…because, well, iTunes is basically the plague. How many times can one piece of software ask you to log in after you’ve hit Cancel a freaking hundred times??? I digress; my war with iTunes will be the subject of another article.
Determining when the sync broke
I eyeballed the changes and noticed that the entries across devices stopped matching up at the same time I purchased my Day One subscription. So I knew exactly what entries were missing from which device.
The issue affected four different journals, out of my ten total, and the in-sync devices were missing anywhere from 1 to 25 entries per journal. I noticed that Day One has an Export/Import option, so I figured I would just manually get everything back in sync.
Exporting the missing journal entries
If you go to File –> Import/Export, that will export an entire journal. I wanted to export select entries, namely the ones after July 2018. Do don’t go to the File Menu. Instead, just highlight the entries you want to export (select them with CMD+A on Mac or CTRL+A on Windows), and then Right Click –> Export. This is detailed here in the official Day One support article on exporting. You’ll get a few export file options. I like JSON because I know it’ll preserve everything, and because I’m partial to JSON since that’s the format GMass uses to communicates with Gmail.
The export will produce a zipped set of JSON files. There is no need to unzip them because when you go to import them later on the other devices, the import will expect a zipped-up file, not the actual JSON file.
Last thing to note: The default filename won’t be very helpful if you have multiple journals. I recommend you rename the file to something that associates it with the journal from which you did the export.
Import the journal entries to the devices that don’t have them
This is where it gets a little tricky. You can’t just use the Import tool and expect everything to match up nicely. That’s because each file that you import isn’t connected to any particular journal at this point. When you go to import the file, Day One will create a new journal for those entries and just call the journal “Journal”. And if you do another set of entries, a “Journal 2” journal will get created, and so on, and so forth.
Let’s say you took any machine Day One was running on, did a full export of all entries, and then imported that same file. You might expect nothing to be different since all the data should match up. But in fact, you would now have duplicate journals with a duplicate set of entries in each.
So here’s what you should do:
- Import the ZIP files, one by one, and let the various new journals be created.
- Then go into each new journal, highlight all the entries, and DRAG them to the journal they should be a part of. They will disappear from the journal created upon import and appear inside the journal you wanted. This Day One support article details this process. Now you can delete the empty journals that were created for you during the import.
And voila! You’re done.
Final Step: Fixing the out-of-sync computer
In my case, I was decommissioning the machine that was out-of-sync in the first place, but since it had journal entries that weren’t present in the properly-syncing machines, I went through this process so that nothing would be lost. I imagine, though, that once the other machines had the missing entries, if I wanted the out-of-sync machine to now properly sync, I could simply log out of Day One, delete all the journals, and then log back in with the correct email@example.com account.
Conclusion–scratch this one off the list.
Day One is an awesome tool to log sysadmin events. The sync feature can be wonky though, especially if the email address of your Apple ID changes,. The import function is “dumb”, meaning it doesn’t apply much logic to figure out how to import entries, but it’s easy to work around it. The most satisfying part of all of this, is I get to check off my “Fix Day One Sync” to-do list on Wunderlist.
Have more questions about Day One?
Feel free to comment below, and I’ll try to answer any questions as a long-time user of Day One. You can also visit the recently created Day One Community Group on Facebook.