top | item 2278860

Show HN: I made a better interface for Google Tasks and I can't go back

122 points| cmikec | 15 years ago |gtasker.com | reply

I recently decided to try out Google Tasks as my only task management system, and while I find some things about the interface great, it really isn't suited for someone like me who has multiple lists with lots of elements on each.

So, I whipped this together real fast and I can't imagine using Google Tasks without it anymore.

I realized you might want it too, so I put it on the web.

Enjoy :)

54 comments

order
[+] jasonlotito|15 years ago|reply
He uses frames to pull in tasks. That elementary part of HTML that's been in the spec for some time. I was shocked when loading up comments and I saw many people aghast at how he could have access to their tasks, especially when it's obvious to anyone with a basic knowledge of HTML that the site is using frames.
[+] matt2224|15 years ago|reply
First thing I thought was "frames" when I saw this site. Pretty obvious really.
[+] unknown|15 years ago|reply

[deleted]

[+] ebtalley|15 years ago|reply
question, how did you grab the session and display tasks without authenticating through OAuth or whatever method google provides? Granted I'm logged into gmail but I'm somewhat goosed since it seems your third party domain can pull private data from my account without my explicit permission?
[+] cmikec|15 years ago|reply
Good question. It's actually just an illusion. My page simply instructs your computer to connect to Google's servers, and then "wraps" the responses from Google at the page level into frames. I literally cannot see anything at all that you send to Google or receive from Google. In fact, this entire app is 100% client-side, so it never communicates with my server except to download the initial code (ok, fine, and favicon).

There was an old trick years ago where mischievous webmasters would "wrap" a file:// URL in their web page to make it look like their page had access to all the files on your computer. Again, it's just a wrapper. No data is transmitted to or from the server about what's in the wrapper.

[+] Groxx|15 years ago|reply
It's a handful of iframes going here: https://mail.google.com/tasks/ig , nothing more.

I'll stick to https://mail.google.com/tasks/canvas though this is quite nice. I wish it could remember the lists I had visible, but I realize why it can't :)

To the maker: nice idea! It makes me ponder over what other sites this could be done to... though this is a particularly perfect fit!

[+] route66|15 years ago|reply
In chrome I get a redirect-loop warning... (being logged in in gmail at the same time)
[+] cmikec|15 years ago|reply
Odd, I'm unable to reproduce. What version/OS? Just out of curiosity, what happens if you try it in incognito mode? Is anyone else experiencing this?
[+] lordlarm|15 years ago|reply
This is a great idea. A simple interface for my TODO's. However I do not think iframing Google Tasks is the best idea, why not just create something similar your own?

Since you are iframing it I get this bug: http://i.imgur.com/H7Ytb.png I want three list respectivly "Done", "Today" and "Someday". However as I change one, the others change too.

I'm running Chrome 11 dev

[+] chime|15 years ago|reply
I made https://zetabee.com/text (which many HN users currently use) to provide a similar nested-list interface with keyboard shortcuts, copy-paste across lists, and easy read-only sharing. Before that I made http://untodos.com with 'now', 'soon', and 'whenever' lists but ZetaBee Text is a superset of untodos features so I don't use untodos anymore myself.

I haven't made a "done" feature yet because I haven't found a good way to implement it for tasks at arbitrary depths. Check out the demo: https://zetabee.com/text/demo (save is disabled for demo).

[+] cmikec|15 years ago|reply
In order to get multiple lists working, you'll need to go down to the lower-right corner of each frame and select a different list to be shown in each frame. Otherwise you are just using the same list in different frames.

I'm totally with you that this UI/UX is not ideal. If Google exposed more of a Web API we could do more.

There are plenty of good web-based todo lists, what I wanted specifically was to beef up Google Tasks.

However, now that you mention it, there may not be a good multi-paned todo app out there. Someone should make it. Maybe me, maybe you! ;-)

[+] ricefield|15 years ago|reply
On one hand, its just a wrapper, so no big deal.

On the OTHER hand, this is awesome. Props!

[+] cmikec|15 years ago|reply
It's cuz I got mad wrappin' skillz.

. . .

Thanks :)

[+] troels|15 years ago|reply
This is fantastic. Since you're really just framing google code, I take it that there is no way that you can inject code into the frames and enhance them somehow?
[+] cmikec|15 years ago|reply
It's not possible in traditional browsers, given the way browser security is set up these days. I've done exactly the thing you're talking about though with AIR and my own versions of webkit. So, the effect you desire is possible if you're willing to use a separate executable on your machine. Kinda loses part of the charm for me though, since one of the main reasons I moved to Google Tasks is so that I could do more from my browser.
[+] rocco|15 years ago|reply
Hi cmikec, is you the author of the site?

Google does not seem to provide any API for Gtask(1), which system did you use? scraping? By time seeking a way to integrate Gtask in my app.

(1) The famous issue 987 http://code.google.com/p/gdata-issues/issues/detail?id=987

[+] cmikec|15 years ago|reply
Hi, yes, I'm the author. See this reply of mine to another comment: http://news.ycombinator.com/item?id=2278963

To answer your question directly, I am not using an API and I am not scraping anything, I'm just framing Google's pages in a way that I found useful and productive.

[+] cmikec|15 years ago|reply
Just added a killer feature many people were asking for that I wasn't sure was possible given the iframe approach. In the latest Chrome and Firefox 4 (but apparently not Firefox 3.6), gtasker.com now saves your selections for which lists appear in each cell. Set up your dashboard once, use it forever. :)
[+] Groxx|15 years ago|reply
Since this is your most recent reply:

How did you manage it? I see some of the info, but I haven't picked apart the code yet. This makes it massively more useful, I think you may have a convert :)

[+] writeclick|15 years ago|reply
This is such a simple, elegant solution. Good job. This really makes my life easier. Thanks!
[+] workola|15 years ago|reply
This is great! Simple, Straight forward and easy to use. A nice compliment to the the desktop utility (HTML5) at http://workola.com. I'll add this link to my desktop.
[+] wuster|15 years ago|reply
I know this is a more reputable community than the typical site, but I would be wary of clicking through these links in non-incognito/private mode... it's amazing how trusting people are.
[+] duck|15 years ago|reply
Very cool and an improvement, but I still find Google Tasks too limited. I'll stick with http://todoist.com
[+] rman666|15 years ago|reply
GTasker is awesome! Now, combine GTasker with WorkFlowy (i.e., 3 panes of WorkFlowy) and I will pay money to use it!
[+] robotron|15 years ago|reply
It needed a better interface.
[+] cmikec|15 years ago|reply
Yeah, I really thought so. The old one was just too cramped and constraining. Of course, 99% of the code for the UI here is actually still their code, I just put what I'd like to think is a better wrapper around it :)
[+] BasDirks|15 years ago|reply
I'm releasing something similar soon. This is really helpful :)
[+] wilzy|15 years ago|reply
what's different... perhaps more than a URL would be useful?
[+] seltzered|15 years ago|reply
very cool, thanks! I was using wunderlist until I switched to android, I still feel a need to build a native desktop app for some reason, but this works.
[+] skrebbel|15 years ago|reply
i'm genuinely wondering how they managed to break something this simple in Opera.
[+] bajsejohannes|15 years ago|reply
To a rendering engine, this isn't any simpler or more complex than any other page. The reason we see this bug is probably that something in the page takes a code path that is taken very seldom, and thus has not been discovered before.

I'm not saying it's ok to have this bug, just that it doesn't really make sense to come up with a small testcase and say "How can you break something so simple?".

I reported a bug, by the way.