
It’s a great day today. It’s sunny (though still cold, but I have to appreciate the sunshine since I’m in Germany.), and I found out just after getting up this morning that Remember the Milk Plugin for GNOME Do is introduced at RTM’s official blog, together with the screencast. I am trilled.
I haven’t been able to work on GNOME Do/Plugins too much recently due to the fact it’s close to the deadline to submit my Master Thesis and another paper. I have planned some changes to RTM plugin, including new features suggested here and an approach to display the notes/tags/location etc. These things will probably be implemented slowly (most likely after next month). But luckily enough, Jonathan has joined the fun and started contributing some code.
Stay tuned, Do and RTM lovers!
32 comments:
Hello, i really love Gnome Do, and i use ur rtm plugin everyday, and i face the same connection problem everyday ( https://bugs.launchpad.net/do-plugins/+bug/324980 ). Any estimates for rtm plugin 1.5?
And also, is there any way to order tasks?
You've done a great job, and i also use ur ping.fm plugin everyday.
Thanks for the support! Once I finish my master thesis & presentation (hopefully next week), I will be working on the issues and 1.5 version of rtm plugin ;)
I don't think it's possible to order the task, since they are arranged according to how frequently you access them.
Yes, you are right about the ordering.
I wish you the best for your master thesis, and im really looking forward for your updates. Gnome Do is amazing, and its plugins make it my most useful desktop app.
I have a feature request. Maybe you could a command like "Tasks Today" that will display a list with tasks that have due date for the current date. That way it will be easy to check whats on schedule for today. And maybe also "Tasks Tomorrow" would be useful too.
I've pushed some updates to the rtm-1.5 branch at launchpad, which adds a couple of new features and fixes bug 324980. Here is a link to the dll: http://dl.getdropbox.com/u/110544/do-plugins/debug/RTM.dll
Welcome to test it out and let me know if there is any problem.
We just have to replace the old dll with the new one?
What new features are there so we can test them?
There is several new actions to allow you set the location, url properties of a task, also location, url, notes are currently indexed as a sub-item of a task.
If you are not using the trunk version of GNOME Do, I guess you need to put the dll into ~/.local/share/gnome-do/plugins/ and then restart Do, it will pickup the dll and put it in the right place. Very likely though, you may have duplicated RTM entries in the Preferences dialog -- don't remember if that matters, anyway, if new features are not showing, I suggest to rename the old ~/.local/share/gnome-do/ folder and start everything over.
I installed rtm 1.5. I tried the new features a bit. Everything seem ok. I can add a note, a url but i will try them more in the next few days and come back to you.
About the connection problem. Now, everytime i restart gnome do, after a minute or two, i can see my lists (create a new task and add it to a list) but when i try to see the tasks of each list (right arrow) nothing appears, and the alert which says that i have overdue tasks doesnt appear either. I managed to see them only after a few hours, when also the alert started appearing. When i shut down my wifi and reopen it, i can still see my tasks, but after i close gnome do and reopen it, i cant.
@Knorcedger, I cannot reproduce the behavior you mentioned. Maybe because I'm using the latest do code from trunk? Right at the beginning, you cannot access a list using its name, but you probably can access all lists if typing "remember the milk task lists" and right arrow to the sub-items. This is because the updating of the all the lists/tasks happens asynchronously, so when Do indexed all the items, they are probably not yet retrieved from RTM server. But upon the next updating of Do universe, they should have already been downloaded, so a few minutes after you start Do, it should be possible to type a list's name to access it.
Peng, i now use Gnome Do 0.8.1.3. I open Gnome Do and it takes around 2 minutes before i can type "inbox" to access my inbox list and i can access all my other lists too. The problem is that i cant access the tasks inside those lists, i press the right arrow button and nothing appears. It only starts working a few hours later. I understand that it started working because the notification about my overdue tasks also starts showing up.
Do you want me to test Gnome Do from trunk too?
Just changed the url for testing dll file to http://dl.getdropbox.com/u/110544/do-plugins/edge/RTM.dll This one is with new features
The old link is used solely for the debug dll to solve Bug #370279
@Knorcedger, when you cannot access tasks under lists, could you try opening Preferences dialog, closing it and see if you have the tasks indexed?
If so, I don't see a reason why you don't get the tasks 2 minutes (or 10 min if you are on battery) after you started do, as long as the internet is up. Because they basic do the same thing -- update the do universe.
If you still can not access your tasks after using the preferences dialog, could you run gnome-do from console to see if there is any error in the output, especially an error about XML deserialization?
I downloaded the latest dll you posted above.
I know that opening preferences forces Do to update. If i open preferences just after i start Do, i can almost immediately access my lists, but no tasks, again.
When running Do from console, I see no errors when pressing the right arrow to try to see the tasks. Do I have to do something else to see any related errors?
By the way, with the latest rtm plugin you posted above, theres another error and im just reporting it (you might already know it). When i add a new task, i dont receive a confirmation message, but the task is added and console reports this error
** (Do:14982): WARNING **: Missing method Do.Platform.ICoreService::ReloadItemSource(string) in assembly /usr/lib/gnome-do/Do.Platform.dll, referenced in assembly /home/knorcedger/.local/share/gnome-do/plugins-0.8.1.3/addins/Do.RememberTheMilk.1.5/RTM.dll
RememberTheMilk.RTMNewTask "New Task" encountered an error in Perform: Method not found: 'Do.Platform.ICoreService.ReloadItemSource'..
P.S. Im still using v0.8.1.3, cant compile from branch, it dies with "configure: error: You need to install 'gmcs'", although i have mono-gmcs installed.
The second error is because I used a service call not included in the released or main branch version but a patched version to experiment something. But it seems not likely this patch will be accepted so I remove that part of code. You can download again and it should not have that error. But please notice the current version won't do a manual update after you perform any action, all related changes to list/task will be seen only after next time do updates its universe. It's not a desired result, but this is the only way to keep consistancy before we find a way to let the universe update right after some plugins' actions.
Regarding your problem not being able to access tasks, I still believe there should be an error during updating tasks. Can you please confirm that the "Remember The Milk Tasks" item source contains nothing? (just type it and right arrow)
Yes, the error is gone and everything is back to normal when adding a new task.
About the Remember The Milk Tasks, I cant "open" it with the right arrow, neither can i open the RTM Tags, nor the RTM Locations, the only thing that opens, is the RTM Lists.
I dont know if that can help, or if is possible, but as a web developer, in such situations, i use many "echos" to see the "path" of my data, and where it stucks. If you think that we could find a solution that way, you can upload a "debugging" version of rtm and i will use it and paste you the console messages
OK, I added some debug output and now if you run gnome-do --debug, you should see some info like "xxx tasks indexed", please let me know how many tasks/lists/tags/notes do you have reported as indexed.
ok, i think we now have found something.
[Debug 08:41:20.204] An error happend when updating RTM tasks: Fail to deserialize: invalid response string.
Im also pasting the console messages that contain the output while i first activate the rtm plugin and then open the preferences window again to refresh it
http://pastebin.com/m374c63d8
@Knorcedger, that's what I thought where the problem was, probably you didn't notice this before because I've not asked you to run with "--debug". This is a known problem and is filed as a report here: https://bugs.launchpad.net/do-plugins/+bug/370279. And it is very tricky to solve it. But AFAIK, only very long list of tasks will trigger this bug, so before I found a solution, you could consider reducing the amount of tasks indexed by do (using filter maybe)
I tried using the operator "due:tomorrow", and for tomorrow, there's only 1 task, but i still receive the same deserialize error.
And another weird thing i noticed is that sometimes it says "[Debug 20:16:31.218] [RememberTheMilk] 16 lists indexed." while i have only 8 lists.
Could you please try to download and test again, I think it is because I send requests too frequently to RTM, which may result in API throttling. Now I tried to break down the traffic and it solves to issue at least for a testing account I setup which use to have the same error as yours.
I just managed to catch the output while it started working
[Debug 20:21:45.126] [RememberTheMilk] 0 locations indexed.
[Debug 20:21:47.250] [RememberTheMilk] 16 lists indexed.
[Debug 20:21:49.203] [RememberTheMilk] 64 tasks indexed.
[Debug 20:21:49.203] [RememberTheMilk] 4 notes indexed.
[Debug 20:21:49.204] [RememberTheMilk] 16 tags indexed.
And i still have the due:tomorrow operator, and when i open my lists, i can see all my tasks, not only those due tomorrow. I suppose that something is wrong with the usage of the operator too.
I was also looking around the rtm API, and i noticed this "Please keep requests to an average of 1 request per second. We may throttle certain API keys (or block them entirely) if they utilize too many resources." but as the debug message shows, your plugin tries to index the locations, lists, tasks, tags and notes, the one after the other one without any delay. Do you think this could be the problem?
Great minds think alike ;)
[Debug 20:34:14.566] [RememberTheMilk] Received 16 lists.
[Debug 20:34:14.571] [RememberTheMilk] Received 16 lists.
[Debug 20:34:17.557] [RememberTheMilk] Received 0 locations.
[Debug 20:34:18.555] [RememberTheMilk] Received 0 locations.
[Debug 20:34:48.726] [RememberTheMilk] Received 128 tasks.
[Debug 20:34:48.727] [RememberTheMilk] Received 8 notes.
[Debug 20:34:48.727] [RememberTheMilk] Received 16 tags.
[Debug 20:34:50.557] [RememberTheMilk] Received 128 tasks.
[Debug 20:34:50.557] [RememberTheMilk] Received 8 notes.
[Debug 20:34:50.558] [RememberTheMilk] Received 16 tags.
Everything works flawlessly now!! You just have to fix the fact that you try to index everything twice as shown at the output above.
It didn't index twice with my do installation, maybe the the universe manager works differently with older version?
I will look ...
You know better :)
Now that you found the solution to this bug, im just reposting the feature request i posted above and i think its very important.
"I have a feature request. Maybe you could add command like "Tasks Today" that will display a list with tasks that have due date for the current date. That way it will be easy to check whats on schedule for today. And maybe also "Tasks Tomorrow" would be useful too."
If you ever have something else to be tested, im always willing to help :)
About the feature, I kept that in mind when I was refactorying the code, now actually it can be easily done. The problem I am considering is, if I can give the plugin ability to handle the "smart list", then you can achieve such a feature by setting up a smart list in your RTM account. Otherwise, I could make a lot of meta-lists like that manually if people have different needs. Anyway, I think to combine the smart list is kinda hard, so for the next release I would add one or two meta list as you've suggested. (in fact, we already have a meta list called "All Tasks" :)
I never thought that i could create a smart list with due today tasks. tnx for letting me know :)
I think that everyone needs to know whats on his task list for today and tomorrow. You can also see Tasque that has "Overdue", "Today", "Tomorrow", "Next 7 days" and "Future". Maybe those are the smart lists that everyone will find useful.
@knorcedger, could you please test the latest build again? Because I already realized maybe the throttling is not the real reason for the truncation. Because even if I wait 20 seconds before downloading a very long task list, I will still got the bug. Yesterday it worked for you because I tried breaking down a single task list into several, but as another user has encountered, if one has 40+ tasks in one list, the problem still exists. So I looked IronCow's source code today, and noticed it uses a slightly different user agent and request url in its request. So I modified my code accordingly and surprisingly now even with long list, I don't have any truncation.
Plus, I made 4 meta-list as you've suggested.
My biggest list contains 35 tasks, and i could see all my tasks with the older version (never had any problem the last 2 days im using it), but the new version just downloads some of my tasks, i think a small 2 second delay is needed for it to work fine.
The 4 new meta lists, just rock! But they also have a bug, each task exists twice in each list.
I have around 160 tasks and it only fetches 54
[Debug 23:07:26.818] [RememberTheMilk] Received 13 lists.
[Debug 23:07:28.260] [RememberTheMilk] Received 0 locations.
[Debug 23:07:29.923] [RememberTheMilk] Received 54 tasks.
[Debug 23:07:29.923] [RememberTheMilk] Received 3 notes.
[Debug 23:07:29.923] [RememberTheMilk] Received 10 tags.
Something weird happened the first time i run the new version, but now everything seems just fine. I will let you know if any problem appears.
Sounds good. Maybe you want to download the dll again, I just fixed some synchronization issue, now I can make sure Do will always remove the old/modified/obsolete items during update its universe.
Everything seems fine. Found no problem. So, i will request one more featured. I want to be notified about my overdue tasks, but seeing the notification every few minutes is annoying. Is it possible to add an option to define how often the notification for the overdue tasks will appear?
Grab & Test, please :)
This is also a feature I wanted to add, thanks for remind me! Before, we notify overdue tasks whenever Do updates its universe, now we have the notify loop in its own thread. Check out the preference dialog for setting the interval, the default value is 5 minutes.
BTW, do you have any problem seeing the icon for any tag of tasks in your GNOME Do? When I tested the latest code on a freshly installed Ubuntu 9.04 on a VM, the icon is displayed as it cannot be found ... weird.
You are super fast ;)
I havent noticed any missing icons. I can see the tag icon, the add tag icon and the delete tag icon. Im using Jaunty
Post a Comment