The core of my organizational system for many years has been Microsoft OneNote (most of that experience is with OneNote 2003, although I spent a year with OneNote 2007). In the last year I coupled that Microsoft Live Mesh, and the combination was awesome. I could organize my day and week from home, then walk into the office and find those notes synched up with my work machine.
It was easy to use. It was reliable. I didn’t have to think about it – it just worked.
And then on Friday, it didn’t.
I booted up my machine to find two projects’-worth of notes completely gone. Those two projects just happened to be my MAIN two projects currently – weeks of thoughts, ideas, questions and solutions: gone.
I actually found myself talking to my computer: “Oh no, you did NOT just do that.” Sigh. Oh yes, it did. What a way to start a Friday.
I managed to recover a few of the points from memory, but as Professor Jones would say “I wrote them down…so that I wouldn’t HAVE to remember.” More importantly, I resolved that this weekend I would solve the core issue. Namely – the combination of OneNote and Live Mesh, or more specifically, how OneNote stores its data.
The core of my organizational system was four OneNote “notebooks”. Each notebook contained one or more “pages” where each page contained the notes for a single project. The notebooks were named “Today”, “This Week”, “Work” and “Personal”, and my typical day would begin by moving pages into “Today” so I would have the focus for the day. As I completed them, I’d delete them. If they were put on hold for some reason, I’d move them to “This Week” or one of the others.
Live Mesh, for its part, is configured to watch one specific folder on my machine – the folder where I keep my .one files. If it sees one on my hard drive that’s more recent than the corresponding version in the cloud, it copies it up. If it finds one in the cloud that’s more recent than the corresponding one on my hard drive, it copies it down.
Simple right? Of course not. If it were simple I wouldn’t be writing a blog post about it.
My machine at home is on 24/7. That means that I can move a page from notebook A to B, and within a minute or so that move will be replicated to the cloud. My machine at work, on the other hand, it usually off when I’m not there. So, when I get into work in the morning, I boot up my machine and Live Mesh with it. Live Mesh then takes a minute or two to look at the cloud copies of my .one files, and if it finds any updates it pulls them down.
OneNote manages a single .one file for each notebook. As I moved a page from “Today” to “This Week”, for example, both of the corresponding .one files would be updated to reflect the move. That means that if I move a page from notebook A to notebook B, and then go into work, boot up, and change B at work before Live Mesh has had a chance to bring down the update to B from home, that update will be lost. The page won’t exist in A anymore (because I moved it out of there), and my work-update to B will overwrite the home-update to B (because the work-update is more recent).
I actually had this happen to me a couple of months ago. The damage then was a relatively minor and short-lived project (“schedule dental appointment”, or something like that), so it was easily recovered from memory. At the time I thought I learned my lessons:
1) When I come into the office in the morning, let Live Mesh boot up and synch up before trying to use OneNote locally.
2) When I am about to leave the office in the evening, let Live Mesh post my most recent updates to the cloud before shutting down.
As near as I can tell on Friday, I didn’t do anything with OneNote for the first 15 minutes my machine was running – I didn’t even have OneNote opened.
So, as I sat there is nearly stunned silence last Friday morning trying to will my notes back into existence, I resolved that I would do one of the following:
1) Find a way to store my notebook pages in separate files so simple moves wouldn’t cause entire projects to blink out of existence, or
2) Find another tool to keep my notes organized, or
3) Write a new tool that would meet my needs.
I did some digging into using OneNote and Live Mesh, and found many people raving about the combination, but nobody talking about any synching problems. The closest I got was this post on Microsoft Connect.
The other tools (task managers) that I found were way too UI-heavy: too many buttons, options, colors, etc. I just wanted something very subdued, easy, and flexible. I don’t need or want to subdivide my projects into 500 discrete steps. All I need is a text editor and the ability to indent – after all, that’s basically what I had been using OneNote for all these years.
So, that left me with rolling my own. What I ended up with was a simple desktop application that I call “Tasks”:
Tasks basically allows me to organize and manage a pile of text files – one per project – on the file system. Tasks stores all of the text files in one folder on the file system, and that folder is synched between my two machines via Live Mesh. Additionally, the task groups and there contents (Today, Tomorrow, etc.) are defined in an XML file, also in that same, synched folder. The result is that I see the exact same view at home or at work. Within Tasks I can create new tasks, move them from group to group, reorder them within a group, change the file name, open an editor to modify their contents, and delete them.
I haven’t decided if I’m going to release this as another tool or not (at the very least, it’s not ready for general release now). This was something I crammed in over the weekend, so while it does what I need it to do, there are a lot of little things that were left out due to time constraints. However, today was the first real day in action for Tasks, and it performed well.
For me, the tool to manage tasks has become such a critical application that it needs to be ridiculously dependable. Don’t get me wrong – this isn’t medical monitoring equipment or a spacecraft guidance system, it’s just a task manager. But, it’s that tool that allows me to be as organized and efficient as I am. If that tool isn’t easy to use, if it isn’t reliable, if I have think about it, then questions of “is my data safe” begins to creep in and sap that efficiency. Get those critical tools – task managers, source control, data backup, whatever they are – and work to get them as automatic and as reliable as breathing. The time and anxiety you save by doing that more than makes up for the investment.