I noticed that SNYS was having trouble with Lion, and I think some of the later Snow Leopard security updates, and wasn’t able to spawn processes properly. I’ve updated it so that it is able to do so. (Basically this just involved re-saving the script as a new application in Applescript Editor and then copying the resources back in.) This is v0.41 which is now available for download at http://daisychase.net/software/snys/SimplenoteYojimboSync.zip as usual.
A few people have mentioned that SNYS seems to be duplicating notes recently, which I experienced myself. I’m not entirely sure what caused this – perhaps a brief Simplenote blip – but after some testing, I can say that after resetting sync by deleting all my Simplenotes and re-uploading, SNYS is behaving fine for me.
I’ve added a page that explains how to reset sync – basically, quit SNYS, delete everything in either Yojimbo or Simplenote, and then run SNYS again. Because it is a pain to delete everything in Simplenote manually, and there are often metadata worth preserving in Yojimbo, I’ve also uploaded the script I use to delete all of my Simplenotes automatically, which I’ve had to use while testing a few times.
Finally, I’ve uploaded version 0.4 of SNYS, which is basically the same as the previous one but has some more data checks to try to make sure that, if there is a communication issue, it is less likely to duplicate your notes. If it finds what it thinks is a zero note count in either Yojimbo or Simplenote, it will ask you to confirm before syncing. The auto-update function should alert you of this, or you can get it from the usual page.
Sorry, I’ve been tremendously busy recently and haven’t had much time to work on the existing bugs in SNYS. I do hope to be able to patch a few up this Christmas, and also write some diagnostic scripts which may help track down why some people just can’t use it at all. (This is still really baffling me.)
I have a new version which traps some syncing bugs more effectively for those who can use it, which I will upload later today.
It barely deserves a whole new post, but in case anyone is following this tag, I’ve added a version 0.31 of SNYS with a few new debugging checks in it now. I won’t put comments on here – please add any you have to the v0.3 post.
As the previous post suggest I’ve uploaded a new version of SNYS, 0.3. This has some more extensive logging options as some people are still having issues, but for those who aren’t, this version stays running and repeats the sync once per hour. You might wish to have it run on startup if you are that way inclined; I am.
Edit: Please can you post (a) the version of OS X you are using and (b) the version of Yojimbo you are using, when reporting a bug? I have a feeling that there may be some subtle Applescript differences involved here, and even if there aren’t, I’d like to eliminate that possibility.
I was wondering how I could have Simplenote Yojimbo Sync (henceforth, SNYS) running regularly, and thinking of all sorts of methods involving launchd, but actually it seems very simple to do with Applescript, which is where I should have looked in the first place.
From p76 of the Applescript Language Guide:
Stay-open script applications can perform periodic actions, even in the background, as long as the script application is running.
What I need therefore is an idle handler.
If a stay-open script application includes an idle handler, AppleScript sends the script application periodic idle commands—by default, every 30 seconds—allowing it to perform background tasks when it is not performing other actions.
So, I will put one of those in and it will run the sync periodically and everything will be happy. That should be straightforward.
I’ve produced a new version of SNYS, 0.2, with the following changes:
- Version checking at startup, with the option to download now or later, or skip a version.
- Logging information to ~/Library/Logs/Simplenote Yojimbo Sync.log, which is the primary purpose of this version, to get some more debugging information for the people for whom it doesn’t seem to work. If you are one of these people, please leave a comment or get in touch with me on the Yojimbo or Simplenote API lists.
- A couple of little coding improvements which probably aren’t very interesting to most people, but which you can see if you’d like to open the bundle and peer at the scripts.
There is also now a dedicated project page for this, which will always contain a link to the latest version, so you should go there to download it.
Planned future improvements
- It’s been suggested that the app have an option to sync with the simpletext.ws website used by Writeroom as well as or instead of Simplenote. I think this is a good idea, as there is an API and also I do own a copy of Writeroom for the iPhone, and it shouldn’t be very hard to just change the method of finding notes, but I’ll make sure the basic sync structure works for everyone first.
- I find it a bit counter-intuitive that deleting a note on one platform doesn’t delete it on the other one and in fact re-syncs it next time unless you delete it on both. However, again, until I’m sure the basic sync structure works for everyone, I’m going to keep it like that, because it minimises the chance of data loss. Once that’s sorted out, I plan to fix it so that deleting a note deletes it on both.
- There needs to be an automatic sync option. At the moment you could use something like Lingon to run it, but that isn’t a very user-friendly method. Unfortunately, adding this feature is complicated by the fact that I have no idea how to do it. I’m sure it can’t be that hard.
This is the first version of my syncing script between Simplenote and Yojimbo. (Well, v0.1 was the first, and was pretty much the same just without Growl support, but this is the first public version.)
If you would care to try it out, I would be delighted – please leave any comments, bug reports etc on this post. (Even just “works as expected” would be appreciated.)
Documentation and download
Edit: Of course, Sod’s Law, there was an installation bug in the initial version. I’ve now fixed this.