My Brain, Apple and the Transfer of Fragility
8 Apr 2016, midnight (updated: 8 Apr 2016, 10:19 a.m.)
Let’s talk for a while about trust issues and data robustness. There’s really two interconnecting stories here so bear with me while I go overboard with the backstory.
My aging brain
Not long ago I imagined that my life will probably end by the time I turn 45. For most of my life I’ve been short, weak, short-breathed. I hated sports, especially the kind that required running of any sort. What I didn’t have in muscle I over-compensated with ego. I thought I was smart, I thought I was special, I thought I was going to change the world.
Last month I turned 31. I'm still short but I’ve never been in better health. I do over 2500 miles a year on my bicycle, including multiple rides per year that are 50+ miles each. I stand at work for the entire time, I control my diet so I lost a lot of excess weight that I silently gained in the past few years. I definitely hope to live longer than 45. At the same time, while my ego is still pretty inflated, I had to come to terms with Tyler Durden’s sad realization. I really am the middle child of history. More depressingly, I started noticing the shortcomings of my brain.
For example, I fail to recall the general outlines of books I’ve read during high school, let alone specific details about them. I daily meet people who have very vivid memory of events in novels they read decades ago.
I get hung up on unimportant details of projects, forcefully trying to figure them out and solve them, just to get them out of my brain. That leads me to crazy amounts of yak shaving where I would find Problem B while trying to solve Problem A. Soon enough, I’m proud to announce I solved Problem F instead, which is five times removed from what I was supposed to do. Sometimes I have trouble getting back to the original problem after diving head first to solve the dependencies of dependencies. I daily work with people that spew out impactful contributions in a scarily consistent manner.
I fail to concentrate on a single thing for long enough to actually accomplish it in one sitting. By means of being overloaded with work, I somehow miraculously stopped procrastinating a few years back. But because I have so many things on my plate, I always feel like I’m not doing the most important one. My brain would torture me with ideas, noticed patterns in things, all the time. I rarely can focus on solving one problem at a time.
I need help. I realize I might never become a rock star or a millionaire. But I need help even to achieve my personal full velocity, no matter how small it is. I need something to remember things for me. I need something to organize things for me. I need something to help me understand myself better.
Outsourcing my memories
The original promise of a smart phone for me was that I could have a personal assistant that would remember everything. The iPhone solved some of this for me, including calendar appointments, reminders, contacts, turn-by-turn navigation, checking Wikipedia, IMDb or simply googling things I need to know.
But the biggest thing I had in mind, a repository of my thoughts and ideas, was still scattered across e-mails, voice memos, to do lists of all sorts, documents written in Vim, TextEdit, Word (the oldest) and a bunch of analog calendars and notebooks.
With the release of iOS 9 in September, Apple reminded me of the Notes app that I used to use quite heavily a few years back. Then it was just a feature within Mail.app. I opened it again and discovered some forgotten notes from six years ago that I’ve written there. Most completely useless, some silly, some wrong, some pretty prophetic. As Apple upgraded the app to be much more powerful, I started dumping ideas, inspirations, quotes, plans, etc. on it.
"This is it”, I thought. A low-friction thought recording mechanism, fast and simple to use, with a content-first, searchable UI. “And it synchronizes across devices!” I went all in. Then something terrible happened. But before I get to that, a little backstory on my backstory.
The biggest tech company on Earth
I’ve been using Apple products for more than ten years now. When I started, it was common knowledge in the music production community that you should just get a Mac Pro, fire it up in your music studio and you’re done. It just works. No driver headaches, no crashes, low latency, great usability.
I’ve used Linux before and liked its architecture but hated wasting time fixing sound issues, graphics card issues, ACPI hibernation/sleep issues, wifi issues and the like, all the time. Supposedly it works fine now but that was 1999-2005.
I’ve used Windows before and liked the software selection (including games), driver availability and familiarity. Hated viruses (including unsafe auto-playing CDs and USB drives), instability (including magically fixing issues by rebooting) and the general crappiness of software with horrible and inconsistent UX.
I bought my first Mac on a Thursday. I decided to leave OS X running for the weekend and wipe it and install Windows on Monday at work. At the time this was necessary for my work, university courses, games and backwards compatibility with my data. Over the weekend it turned out OS X 10.4.5 was simply so good at everything that I never wiped it. I kept an old desktop for Windows purposes (that was pre-Boot Camp!). I bought VMWare Fusion on the day of its release but soon found myself using Windows less and less. I have never installed Vista or any newer Windows version.
I was really digging Apple at the time, it felt like creative freedom. I trusted the hardware, I trusted OS X, I trusted the future. I was so excited that I was waiting in the line to the Apple Store to get the DVD with Mac OS X Leopard on the day it went out. I just couldn’t wait to get my hands on the massively cool features it introduced. Some of them proved dumb over the years:
- Cover Flow in Finder;
- transparent menu bar;
- 3D dock;
Others were truly revolutionary:
- Time Machine, still a killer feature;
- iCal sharing, a de-facto standard to this day;
- Notes and To Dos in Mail.app, now separate applications;
- Boot Camp, something that made many of my friends even consider switching to the Mac;
- Quick Look;
- developer features: LLVM-based compiler, Core Animation, application sandboxes, application signing, Python and Ruby support in Cocoa (dropped since, sigh).
All in a single OS release! Those were the days. Admittedly, this release has been so bug-ridden that the following one was focused largely on stability, improved performance and more efficient memory use. But the point is: back then Apple made me feel hopeful for the future because I felt it’s empowering me as a user while keeping me in control.
Things changed with the advent of the iPhone. I started slowly witnessing that Apple’s master plan for technology “for the rest of us” is quite different from what I had in mind. Functionality started shifting, sometimes removing features I was depending on.
Sometimes it was downright removal of deprecated things which is sad but understandable (like Rosetta or Apple Java, which were very useful but I can see how it was painful to maintain them).
Other times it was just letting things slowly deteriorate without ever fixing issues that arise, like SMB support, AirDrop, file compatibility with old Pages documents, iMovie projects, Dashboard widgets, etc. To this day iCould Music Library is known to cause trouble for people with large pre-existing curated local libraries. To this day I can’t use Facetime reliably with my family whereas Skype and Facebook Messenger “just work”.
Worst of all, sometimes the deprecations would come suddenly and unexpectedly, like Aperture, Soundtrack Pro, refusing to support Logic Studio on OS X Lion, or smaller stuff like being able to see the logs of your Airport with Airport Utility (now if something doesn’t work you just see it doesn’t, no way of checking why). Recently a minor OS X upgrade rendered a Firewire-based audio interface I’ve owned for years unusable due to some MIDIServer busy-looping.
Maybe the dream to reinvent computing for the masses really is iPad Pro? Maybe this is where Apple has been progressing all along? If so, that’s okay but it’s clear I’m not invited. This trend is geared more towards prosumers than actual professionals. Just compare Photos.app with Aperture, Final Cut Pro X with Final Cut 7, Logic Pro X with Logic Studio 2, etc. Finally, how could iPad Pro be seriously considered for development work if it cannot drive multiple displays, doesn't let you change the default Web browser, let alone set up compilers, debuggers, etc.
So I’m increasingly considering abandoning this platform, especially now that Thunberbolt 3 equipment is still not being announced, despite how dated the current Thunderbolt Display is. I’ve been waiting for this since the announcement of the single-port Macbook. Maybe it’s good they delayed it, that might have saved me from some unnecessary investment.
But I can’t leave that easily. Me and my wife are heavy iPhone users, my son’s got an old iPad mini. All three of us are using iMessage, as well as sharing photos, calendars and reminders. I’m a heavy Logic user. I stopped worrying about backups at home since Time Capsule became a thing. We use family sharing to reuse app purchases between family members. All of that would need to change. I’ve become trapped by temporary convenience and subject to the whims of the biggest tech company on the planet. Or FBI. I’ve become fragile.
Where is my data?
Two weeks ago I opened up my Notes.app just like every morning. The list of folders and notes in them greeted me as usual. But when I clicked on any note, its contents were empty. They had titles on the list, they had correct metadata (last modified date, etc.). But there was no content.
I panicked, clicked through a bunch of notes, maybe ten or so. All empty. I froze, took my phone and checked if the notes are there. All were… except for the ones I clicked on in the OS X app. Those were wiped clean. iCloud synchronization “just worked” for once. Dammit, the information on those notes lost!
I tried finding the data on disk. I remembered Notes used IMAP in the past and they were stored directly in Mail data. Sadly with the conversion to the “new iOS 9 Notes”, that was no longer the case. I remembered that local notes used to be a CoreData SQLite database in the past, but that also didn’t contain any of my iCloud notes.
There was one last device that contained those notes hopefully intact. A laptop at home used by my son to play with Minecraft mods and Python. Luckily he does that on his own limited account which means I wasn’t logged in. After coming back home, I disconnected the router, opened the laptop, physically copied content of every note to local files. I was lucky to save the data.
To add insult to injury, when I finally solved the situation, the very next day the following greeted me after logging in.
OK, no biggie, let’s try to log in in Preferences then.
Yeah, that’s reassuring.
Back to square one
This event got me thinking about all the possible scenarios that could lead me to lose years of information gathered in some cloud somewhere. After all, I didn’t know if and how it does local backups, how it resolves conflicts, or what the roadmap for future development is.
What if Apple decides a year from now that Notes is not a worthwhile project because it doesn’t translate too well to Apple TV and VR? What if my Apple ID gets hacked one day and somebody wipes all the notes and that gets synchronized to all devices I use? Time Capsule is useless if I can’t easily restore my notes from it. What if iCloud silently "forgets a note" or two in time? How long until I noticed? That’s entirely possible, both due to bugs in software and physical bit rot. Apple doesn’t care about this (HFS+ still holding your data is all the proof you need), which is why I wrote this silly tool that lets me at least discover when it happens. Then I can restore corrupt files from a Time Capsule backup. This saved me a bunch of photos in Aperture and a few of my MP3s in iTunes over the years.
I lost trust in this sort of thing. This also meant I can’t simply switch providers and start using Microsoft OneNote even though I adore the app’s functionality. I can’t use EverNote even though being able to do web clips and scan documents to it seems fantastic. Those products still keep me fragile. I would still be at the whim of software stability, solar flares and product roadmaps.
Fuck that. I am no Mark Twain, I am no Kurt Cobain, I am no Marylin Monroe. But I would like to see my thoughts survive me. I mean both being able to access them myself effortlessly 50 years from now but — more importantly — being able to leave them to my family to browse through when I’m gone. Let them find silly, wrong, maybe cruel or stupid things in it, I don’t care. I hope they could find meaningful, funny and inspiring things there, too. Wouldn’t you like to discover that your late parent or mentor left you a notebook full of personal thoughts, ideas and quips of information? Wouldn’t it make you crazy angry if you knew it’s there somewhere in some fucking cloud but you don’t have any way to access it?
A way out
There’s no clear solution for this. Just read through reviews of any note-taking app on the App Store, both the iOS one and the Mac one. Any such app that promises synchronization, be it through iCloud, Dropbox, simplenotes, you name it, will inevitably have some one star review lamenting data loss of some kind. Or that the developer abandoned it. Or both. I’m not willing to put myself in that situation.
As for Apple Notes, they still support the legacy IMAP notes for now, which is what I reverted to. Yes, you lose a few handy features of “the new Notes” like doodling, rich attachments or header formatting and task checkboxes. I don’t understand why headers and checkboxes couldn’t work in IMAP but whatever, I can live without that for now. This a least lets me:
- find where my notes are on the drive (they’re again in the SQLite database in ~/Library/Containers/com.apple.Notes/Data/Library/Notes/NotesV6.storedata), which means I can find them in Time Capsule if necessary
- understand where “the cloud” is that keeps them (fastmail.com, use them, they’re great)
- understand the synchronization protocol used (in 2016 IMAP implementations are pretty battle-tested)
- keep using the same app on all my devices
I also wrote a simple incremental IMAP notes backup script that is making gradual commits to a local Mercurial repository as we speak.
Not only can I restore things that were borked by external powers, I can also restore things I borked myself. This at least lets me sleep at night now. Imagine writing a script like this for something stored on OneDrive or iCloud.
Is it ideal? Far from it. I have no hope for more advanced features to be added to Notes.app like tagging, rich attachments or Wiki-style linking between notes. Worse, my gut is telling me that soon enough Apple will remove the support for IMAP notes or they won’t care to fix it when it silently stops working due to some minor change in OS X 10.13.3. “Don’t be so stubborn, just use the new thing, old man”, they will say.
But even if Notes.app floats my boat for the next few years, it’s already riddled with minor annoyances. You can nest folders on the Mac app, but not on iOS. Better yet, nested folders don’t display correctly on iOS. Better yet, you can’t even create IMAP notes folders on iOS. Better yet, if you nested folder Child in folder Parent on one Mac, Notes.app on another Mac will not show it properly nested but rather as a flat folder called “Parent.Child” (which is basically IMAP bleeding through).
Lastly, while MIME is a reasonably human-readable text format and should be parseable 50 years from now (as e-mail is already close to 50 years old), it sucks because of the 7bit encoding for rich data, Modified-UTF7 for IMAP folder names and using straight HTML for formatting. A dream situation would be a system that’s literally Markdown files plus external attachments that are stored directly as-is.
Do not implement your own
I already started thinking about how an ideal system like this would look like. This is my yak shaving kicking in, do you see that? I wanted a thing that will help me organize my thoughts so I can be more efficient. I wanted a solution. I don’t want to end up with yet another project on my mind. I don’t want another problem.
It seems such a trivial thing from afar, right? They’re just notes. Scribbles. Pieces of information. What could possibly be easier? That’s deceiving. Just ask Mitch Kapor and the Chandler team. This idea can eat you if you let it.
But if you still consider making your own
I dream of an app that organizes your thoughts, letting them be linked like a Wiki. Easy to record new ones and search existing ones like Apple Notes or Notational Velocity. Working on all devices with close to realtime sync. But working offline as well. Letting me store web clips, receipts and other scanned documents with automatic OCR, too, like EverNote. Letting me keep a diary of sorts but not organized by time but by information. An app that let’s me categorize my information both hierarchically (by means of nested folders) and semantically (by means of tags and/or arbitrary saved searches).
I dream of an app that is open source so nobody can take it away from me and I don’t have to live under the tyranny of the “latest version or bust”. I want to host my data where I choose with minimal effort. I want to be able to access and modify my data by scripts I write myself, so that I can do data mining, trend analysis, automatic summaries, etc.
I dream of an app that keeps my data private but lets trusted people peek in. I want the data to be plaintext-based to ensure easy retrieval for generations to come. This way diff-based incremental backups also become meaningful. We can use a solution like Mercurial or Git to store history. But even if it turns out repositories from 2016 are no longer readable in 2076, you still have the working copy that’s UTF8. But even if nobody is using UTF8 in 2076, ASCII has been with us for more than 50 years, so it’s safe to assume it will be here in 50 years, too.
Phew, finally that’s off my chest. I can go back to work. Now where was I…