Live data from Hacker News

Google Tasks API Released

code.google.com

31–40 of 41 posts

Re: Google Tasks API Released

#31

PLEASE someone make a Notational Velocity equivalent for GTasks. I would pay for that.

+1 I use NV like a boss every day. Syncing with Dropbox/Simplenote is by far the best note taking workflow I've ever used. Zero barrier to fast fluid input.

Which is probably why I love TaskPaper for GTD. Plain text but with smart data-detection.

Re: Google Tasks API Released

#32
Anyone knows what's the name of the algorithm / strategy that they use to allocate tasks position numbers?

I've created a new list and added 4 tasks a, b, c and d, and later added a2 after a.

Here's what they are doing:

		Position:
	a	01111111111111111111111111111111	
	b	10111111111111111111111111111111	
	c	11011111111111111111111111111111	
	d	11100111111111111111111111111111
	a2	10011111111111111111111111111111	
So it seems a clever way of allocating the position numbers without having to change them all everytime a task is moved, but I'd love to read more about it.

Re: Google Tasks API Released

#33
What do you think of JSON for documenting data structures in this project? http://code.google.com/apis/tasks/v1/using.html (scroll down for the "Protocol" sections; there are about 10)

They're using JSON to describe sets of possible JSON instances, using conventions of "..." to represent other items in a list; and italics to represent variables (though not always: example text such as "My Task" is used for some variables).

Perhaps a shell-style convention, like $taskListID and ${My Task} would be clearer? It's going outside the JSON syntax, but so is "..." - and obviously extra-linguistic constructs help alert the reader that it isn't part of the instance syntax (like italics).

I've looked at some "JSON schema" proposals, but they take the same meta-approach as XML Schema, which somehow seems even worse applied to JSON.

Regarding the actual format, they the kind attribute (kind="tasks#taskList") like a class. Since it defines the type of the message, maybe it would be clearer if it were distinguished in some way (like XML tags: - invalid, I know).

disclaimer: I don't mean to rag on these guys - their focus is Google Tasks, not a schema for JSON. It's just that it's very well documented, and so it's a clear example of using JSON as a schema. This issue will become more important over time.

Re: Google Tasks API Released

#34

Anyone knows what's the name of the algorithm / strategy that they use to allocate tasks position numbers? I've created a new list and added 4 tasks a, b, c and d, and later added a2 after a. Here's what they are doing: Position: a 01111111111111111111111111111111 b 10111111111111111111111111111111 c 11011111111111111111111111111111 d 11100111111111111111111111111111 a2 10011111111111111111111111111111 So it seems a…

Nevermind, I found the answer. It looks like a self-balancing binary search tree.

http://en.wikipedia.org/wiki/Self-balancing_binary_search_tr...

Re: Google Tasks API Released

#35

Anyone knows what's the name of the algorithm / strategy that they use to allocate tasks position numbers? I've created a new list and added 4 tasks a, b, c and d, and later added a2 after a. Here's what they are doing: Position: a 01111111111111111111111111111111 b 10111111111111111111111111111111 c 11011111111111111111111111111111 d 11100111111111111111111111111111 a2 10011111111111111111111111111111 So it seems a…

That is clever, it's like a binary version of the old BASIC convention of numbering lines 10, 20, 30 etc, to leave space in case you want to add lines in between.

But why number them at all - why not just use the order in the list as the ordering? I haven't studied their API, so there may be a good reason.

Re: Google Tasks API Released

#36
post #35

Anyone knows what's the name of the algorithm / strategy that they use to allocate tasks position numbers? I've created a new list and added 4 tasks a, b, c and d, and later added a2 after a. Here's what they are doing: Position: a 01111111111111111111111111111111 b 10111111111111111111111111111111 c 11011111111111111111111111111111 d 11100111111111111111111111111111 a2 10011111111111111111111111111111 So it seems a…

That is clever, it's like a binary version of the old BASIC convention of numbering lines 10, 20, 30 etc, to leave space in case you want to add lines in between. But why number them at all - why not just use the order in the list as the ordering? I haven't studied their API, so there may be a good reason.

Because the 'order in the list' usually is the creation order of the items. If you want to change the tasks order, you need to save the position numbers in the database.

This is not specific to Google tasks. If you tried to display a list of items that your users could reorder, you'd run into the same problem.

Re: Google Tasks API Released

#37
post #35

Earlier quoted context omitted.

That is clever, it's like a binary version of the old BASIC convention of numbering lines 10, 20, 30 etc, to leave space in case you want to add lines in between. But why number them at all - why not just use the order in the list as the ordering? I haven't studied their API, so there may be a good reason.

Because the 'order in the list' usually is the creation order of the items. If you want to change the tasks order, you need to save the position numbers in the database. This is not specific to Google tasks. If you tried to display a list of items that your users could reorder, you'd run into the same problem.

Thanks. You could also recreate the list with the new ordering; or record the changes in list order and replay them on server (e.g. insert the 5th one after the 2nd one), perhaps even reducing it to the simplest change if the user played around with the order a lot.

But I guess for RDB (and other DB?), the "physical" order isn't meant to be used as a "logical" order, and it might not even be reliable - so you need some other ordering mechanism, like position numbers. Also, not good if anything in the system depends on that physical ordering.

\not a DB programmer

Re: Google Tasks API Released

#39
post #23

Why are so many people using Google tasks ? Give alternatives like Workflowy a chance? Evernote works much better than GTasks even if it's not designed for it.

It is simple and minimalist. Keyboard shortcut in Gmail to create a task out of an email. Tasks with dates show up on Google Calendar.

Didn't know about the Calendar. That's pretty cool.

Re: Google Tasks API Released

#40
post #30
post #25

Earlier quoted context omitted.

The general problem of sync is just too large for a comment, a blog post, or even a research paper. One who wants to pursue this route should buckle up and start here: http://www.ysaito.com/survey.pdf If you tell me your specific problem I might be able to help. Shoot me an email via support page on geetasks.com If your problem is specific to Google Tasks API I will not help you. Sorry, business is business. :)

Great response, and I think you're right. But I wonder... lets say you show how to solve some problems with Google Tasks, you get a higher page rank, and people with a problem with Google Tasks arrive at your page... where you incidentally note problems that your solution solves better than Google Tasks (which will be true, since they are mass market and general, and you can be happy with a smaller, more specific nic…

That kind of post can only attract a small number of developers, and developers are not my target users. The only thing I can get from it is SEO juice, but I have better ways of getting that.
Post reply on HN