Hi, all. I'm replying to the conversation about synching which was 
happening here: 
https:
//groups.google.com/forum/#!msg/mylifeorganized/6IPX0WSNwYA/TteMfhEUpA0J
I moved it because I didn't think "goodbye everyone" was a good title for 
what we are discussing.

I want to thank Lisa and ctenorman for thoughtful and constructive posts 
which attempted to promote better understanding of the issue or maybe move 
towards a solution. As requested I will attempt to lay out what I have 
observed, and will also review what I have attempted, so far, to do about 
it.

The first and biggest point is that I have made several attempts to create 
a small file with test cases where I could reproduce the problem in a 
simplified context, but I have been unsuccessful. Perhaps because a true 
test case would probably involve a different cloud sync file as well as a 
different set of task scheduler entries in Windows and I have never quite 
had the time it would take to get all of that set up correctly.

Before describing the symptoms, here is a little about my setup. The first 
folder in my outline is "routines" and contains seven repeating projects: 
daily tasks, weekly, monthly, quarterly and three annual projects: spring 
autumn and taxtime. Each project repeats as suggested by its name and 
contains a number of tasks. The tasks themselves are not repeating but are 
recreated when the project repeats. Advanced recurrence options are set to 
recur the project when all subtasks are complete and to reset all subtasks 
when the project recurrs. This means that when I complete the last task in 
today's daily project the project will reset for tomorrow, with all the 
tasks ready to go but none of them in "active tasks" until tomorrow. It 
also means that if tomorrow arrives and there are a couple of tasks I 
didn't get to, I can just click the project complete and the tasks are all 
reset to today. This is all functionality that MLO explicitly supports, and 
it matches quite well with the way that I think about my work. I would be 
totally happy with all of this were it not for the sync issues.

The core of the problem is that about two to three times a week, I will 
open the daily project in the morning and find that the due date is the day 
before yesterday. Very occasionally the date will be yesterday but usually 
its the day before. It's often the case that by the time I notice, I have 
already ticked off some of today's tasks, not realizing they were actually 
for the day before yesterday. There's a very high probability that when I 
get the parent date set correctly, the completed tasks will be reset to 
uncomplete. For the daily tasks, I usually can remember which ones I did 
and check them again but every once in a while I get it wrong. (If I was so 
good at remembering whether I did a task today or if it was yesterday, I 
would not need MLO as much as I do). 

I am completely sure of the accuracy of the above paragraph. This next 
thing I am less sure of, but in the interest of completeness I will mention 
it: I believe that when I add a new subtask to the daily project and later 
that day there's a sync problem, that sometimes the new task vanishes.

Once every month or two, I will be checking off tasks in the weekly project 
and discover that it is for two weeks ago. This is pretty similar to the 
daily problem except that I am much less likely to have an active memory of 
which monthly tasks I have already completed this month.

It happened to me once for a monthly project that was dated for two months 
prior.

If I pay total attention and check the dates of each task before completing 
it, I can avoid most but not all occurrences of this problem. But my 
purpose in using MLO is to use less of my brain thinking about the status 
of my tasks and more of my brain getting them done. The need for this kind 
of hypervigilance defeats my purpose. The worst thing is that I learned 
from GTD the value of having a trusted repository of things to do and then 
letting go of the energy I was spending holding on to my mental lists. In 
the current circumstance I have to maintain a mental shadow list of what 
MLO should look like, and continuously check MLO against expected. I 
experienced real productivity gains after I adopted MLO and learned to let 
go. I have lost that and I miss it.

Here's what I have done about it:

1. I implemented a scheduled task on Windows that launches a copy of MLO 
with a command-line parameter to force a cloud sync. I wrote this myself 
before it showed up in the forums, based on the user guide's documentation 
of command line parameters and my knowledge of the Windows task scheduler. 
I run this hourly. About once every week or two it fails. My belief is that 
failure entails a conflict between a foreground copy of MLO and the 
background copy launched by the scheduler. Symptoms involve windows error 
messages and reports by the foreground copy that it cannot access the 
profile file. The most likely time for me to see these symptoms would be 
first thing in the morning, at which there might be a couple of dozen 
windows error messages outstanding. It is possible to answer them all, as 
well as the five or so additional errors that pop up for each one when its 
closed, but it's usually easier to reboot. I have reported the error 
messages to MLO support and not heard anything back, which is okay by me 
because I do not believe MLO was or should be designed to accomodate 
multiple copies running off of a single profile. The reason I am describing 
these errors is, this is the reason I do not run the scheduled process more 
frequently. I believe that I could reduce my sync errors by increasing the 
scheduled sync to run, say, ten times per hour but I believe that this 
would lead to increased profile conflicts.

2. For "both sides changed" on Android I set to take the server version. 
Either answer to this question leads to errors but the errors from 
accepting server version are easier to fix than the errors from accepting 
local version.

3. "Autosync on close" is enabled on Android.

4. Sync via wifi only is enabled. I have a 200mb data plan (to save on 
fees) and another 10-20 mb/month would make a real difference.

5. I do not enable synching on profile switch, because I never switch 
profiles.

6. "check cloud periodically" is enabled every 5 minutes.

7. I hit the synch icon on Android as often as I can remember to do so.

The symptoms I described above are what I get *after* having put these 
seven steps in place months ago.

Here's what I think is happening:

A. I think that sometimes, every task in a project has been completed, and 
some of them are completed on Android awaiting sync to Windows while others 
are completed on Windows awaiting sync to Android. When the sync is 
completed in both directions I would like to see everyone agree that all 
tasks are completed and that therefore the project is completed for this 
cycle and needs to be rolled to the next cycle. I do not think that 
happens, at least I do not think it always happens. The results may vary 
depending on whether the Windows side or the Android side was the first to 
see the project with all tasks in completed state.

B. I think that at least sometimes, completing a task causes the parent to 
sync. If I change the parent on Android and a minute later (before any 
sync) change a subtask on Windows in a way that causes the parent to sync, 
the (unchanged) windows parent will overwrite the changed Android parent 
and the change from the Android side will be lost.

C. In these circumstances it can be devilishly hard to ensure that items 
(especially project/parent items) are changed only on one side. If they get 
changed on both sides and the version you want to keep is on Android, the 
"both sides changed" setting to server guarantees that the desired change 
on Android will be lost. (note, changing "both sides changed" to use the 
local copy makes the problems worse, believe me).

D. Lisa noted that in the event of a sync conflict, on the Windows side you 
always get notified and can choose which version to keep. I think most 
users with an opinion would agree, but it's not always true. Start with the 
case described in (C) above. When Sync overwrites the good version on 
Android with a bad version from Windows, the next sync sends the bad update 
back to Windows. Since the update exactly matches the Windows version no 
conflict is detected and the bad version is retained, with no notice or 
choice on the Windows side.

E. Along the lines suggested by ctenorman I believe that frequent 
background syncs on both Windows and Android would reduce (but not 
eliminate) the window in which an error could occur. Ideally, either side 
would sync whenever a change is saved to the profile, or whenever unsynched 
cloud changes are detected. I had asked for this in one of these forums 
long ago and was challenged by other readers who felt that the storage and 
processing costs would be exorbitant, and that windows/android performance 
would suffer. Meanwhile there have been several successful implementations, 
such as Google Drive and Evernote. I understand that Google can afford 
unlimited storage and processing for a product with little if any revenue, 
but Evernote needs revenue the same way MLO does and yet Evernote gets this 
right. 

F. I think that maybe a very helpful step would be if I could hit the sync 
icon right before putting the phone down for the night. Unfortunately I 
don't often know when that is - I will be working on something, there's an 
interruption which gets interrupted by something else and I don't get back 
to it till morning. More often than not, MLO was the active program at the 
time of the interruption, which means that "MLO Close" never happens and 
the changes sit there unsynched for hours. Maybe MLO/Android should include 
an option that if MLO has been the foreground program continuously for more 
than X minutes, with the "needs sync" icon lit for the whole time and no 
activity at all, run a sync.

G. So long as there is a window greater than zero, sync conflicts may 
continue to arise. I would like to see either a "pick which version" dialog 
on Android or have both versions preserved and presented to the user on 
Windows MLO for a choice, the next time there's a Windows sync.

H. I was considering going to Wifi sync - my hope was that whenever there 
was a sync, both Windows and Android clients would be present and Windows 
conflict processing could occur. But I see that in Wifi setup there, a 
setting for always keeping the server version versus always keeping the 
local version. Whichever option you chose will be correct sometimes and 
wrong sometimes and when its wrong there will be a problem. So Wifi won't 
help me.

I. It's worth noting that several people recently have posted complaints 
that wifi sync is one-directional, windows to mobile. In MLO/Windows 
File>Synchronization>Edit>Advanced there's a dropdown for selecting one 
versus two directional sync but it does not appear that this would affect 
wifi. I don't see anything in wifi options for directionality. It would 
probably be a good thing if we could identify how to control directionality 
in wifi sync so we could respond to the next person who raises this issue.

-- 
You received this message because you are subscribed to the Google Groups 
"MyLifeOrganized" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/mylifeorganized/-/zpLvEPfmkVAJ.
To post to this group, send email to mylifeorganized@googlegroups.com.
To unsubscribe from this group, send email to 
mylifeorganized+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/mylifeorganized?hl=en.

Reply via email to