Hands Down The Most Important Thing In Using SuperMemo
If you are not doing this one thing, whatever else you are doing doesn’t matter. The most important thing when using SuperMemo is…
BACKUP. Period. The only takeaway is to back up automatically.
The Nightmare, The Horror, The Unimaginable
It happens to almost every SuperMemo user: something will go wrong and SuperMemo will stop responding or working. This has happened to me a few times. Whenever this happens, my heart would skip a beat, my stomach/gut/soul would sink; I would literally freeze (with SuperMemo) and just stare at the screen. Then I would instantly regret not backing up more often and sooner, imagining all the data loss and having to waste time doing all the reps all over again.
Fortunately, I’ve never encountered any major collection corruption. Whenever there is an error message I just use the repair function, and if it doesn’t work I’d restore to the previous latest backup and Voila! Crisis averted.
How important is your SuperMemo collection to you?
Your willingness and effort to back up your SuperMemo collection is proportional to how important and valuable the collection is to you. Backups are absolutely essential in protecting your collection and repetition history. Many things can go wrong besides SuperMemo: The whole machine just wouldn’t boot up for whatever reasons, SSD/HDD suddenly stopped working, catching a virus etc. Worse, what if your laptop got stolen?
It is beyond horror to lose weeks or even months of hard work. Imagine working on your collection for weeks or even months, and only one day to have lost all of it. No, you can’t imagine the horror unless you’ve experienced it.
Backing up your SuperMemo collection
Although the native backup solution in SuperMemo is rather
inferior primitive, we’re not doomed by it. These are minor shortcomings that are easily addressed and fixed with almost any backup software. For example:
Redundant copies –> snapchots with incremental updates
Only local copy –> cloud integration
PS: Make sure SuperMemo is closed before backing up. When SuperMemo is running, it’s making changes to its files. If your backup software tries to access or change those files, it might result in a corrupted SuperMemo collection. Although most backup software can still copy opened files without issues, personally I would not risk it. Better be safe than sorry.
My Backup Strategy: BitShelter + Duplicati
One day, as usual, I was trying to import articles into SuperMemo for Incremental Reading. Then this message popped up:
I was completely frozen. I tried the repair function but it didn’t work. I didn’t get a sinking feeling in my stomach this time because I had my trusty backups in Duplicati. So I made a local copy of the corrupted SuperMemo collection, then restored from the previous version. It took an hour for both operations to finish. In the meantime…
Then it struck me I should follow this Recommended backup setup to set up an extra layer of protection. The guide, written by Alexis, is a very clear step-by-step solution.
[BitShelter] is a mirror for a Snapshot & Backup Software that I developed with SuperMemo in mind.
BitShelter is developed by Alexis, an active SuperMemo user. The repositories are filled with SuperMemo related utilities like SuperMemoAssistant and ImageOcclusionEditor that are incredibly powerful and useful.
I’ve been using the software Duplicati ever since using automatic backup. It’s open-source, simple and clean. A simple web-based interface, with incremental change, encryption and cloud integration. The scheduling feature is handy in making automatic backups hourily, both locally and on the cloud.
Currently, BitShelter will take an hourly snapshot of my SuperMemo collection. Then Duplicati will make one copy to another local drive, then send that (encrypted) backup to OneDrive and Google Drive. This all happens automagically. Sometimes I’d even go through the SuperMemo manual backup process, encrypt, zip it and send it to the two clouds. So, two local and two cloud copies.
Your solution doesn’t have to be limited to the above. There are a lot of existing backup software to choose from, both commercial and open-source. It can be overwhelming and lead to decision paralysis. My suggestion? Just follow this Recommended backup setup.
3-2-1 Backup Rule
2019-06-09 update: As suggestion by u/ijgnord:
Keep at least 3 copies Store 2 backup copies on different media at least 1 is located offsite. For example, after making one local backup, I would immediately upload the encrypted local backup to two different cloud storage. Then I would (infrequently) store one backup to a USB. You can never be too safe with backups.
Don’t force close SuperMemo so easily
Tips: Sometimes, the freezing would stop and SuperMemo would resume and respond; it turns out SuperMemo is just loading behind the scene, so don’t force close immediately if SuperMemo freezes. It might just be loading or processing. Waiting for at least 30 min is a safe bet. Other times, it really has crashed and you need to force close it.
Update from u/alessivs:
I would stress “at least.” Depending on when it freezes I would wait much longer than 30 minutes, e.g. if you are sorting a 80k pending queue on an old and slow Computer. Then there’s a good chance that the Windows Task Manager lists “not responding” as the status of Supermemo and that still it finishes after an hour or two.
I was wrong, again.
When I first started out, I would back up manually whenever there are significant changes to my collection. It usually means I backed up manually every few days.
After generating the two backup files (one .Know and another folder), I would zip them into one .zip, uploading one to the cloud and another one to a USB stick. So two local copies and one cloud copy.
I didn’t use any backup software because I opened and closed SuperMemo many times every day. I don’t want the software to generate 5 or 6 backups every day. However, it was purely my ignorance that made me completely neglect the power of backup software. I thought those software would only automate what I do manually. I was totally wrong. They are packed with powerful features.
Anki vs. SuperMemo: Backup System
With regards to backup, Anki has a more sophisticated system. Anki creates a local backup automatically every time you close it. The backup is zipped nicely in an
.akpg format. The best part is, you can just back up the repetition data without the media collection, as it takes up most of the file size. Also, all your data is synchronized to the server, such that even if your machine fails, you can rest assured that there is a copy in the server.
SuperMemo, on the other hand, is lacking behind:
1. When backing up, there is no option to separate the repetition data from the media. Storage is cheap and I don’t mind having 100 backups taking more than 150GB. But still, it’s just unnecessary.
2. The backup results in two separated files: one .Kno and one folder. The folder consists of your whole collection with millions of files. For example, for my main collection, inside the 3GB folder generated, there are 3816 folders with 38,639 files.
Update from r/alessivs from the comment session:
SuperMemo is able to separate repetition data from media (some of the large media at least), behind the feature" secondary storage". Only playing with this feature from a backup or test collection. First, you need to set a different secondary storage for the collection under Toolkit : Options : Access : Secondary storage. With secondary storage enabled, you may explore the context menu entries “Tools : Externalize files” and “Tools : Internalize files” from most registry browsers.
I can’t describe the ease of mind you’ll have after knowing that your collection is (relatively) safe. It’s a big relief after setting up a solid backup strategy and having multiple hourly backups, both locally and on the cloud. Spending an hour or two setting up an automatic backup system described is absolutely worth it. After pouring so much life into my SuperMemo collection, at this point, I can’t imagine what it’d be like to lose my collection.