Technobabbles I try to sound like I know what I'm talking about. Don't be fooled.

12Apr/081

Webapp Keyboard Focus Issues

I've found a pretty frequent problem with keyboard-enabled webapps. Gmail, Google Reader, Remember The Milk, and a whole bunch of other services (Google Calendar, for instance) all fit into this category.

It seems that nearly all keyboard shortcut-enabled webapps have one big annoyance in common (no, not AJAX): The shortcuts lose focus in certain scenarios.

The three apps I'm most concerned with are, of course, Gmail, Google Reader, and RTM. I do use them the most, after all.

I've found tab-switching to be the number one cause of focus switching. Keyboard entry is sent to the browser chrome or something, rather than the page. I've noticed that switching tabs with the keyboard (using Firefox's Ctrl+Tab and Ctrl+Shift+Tab keystrokes) is much less likely to cause a problem than clicking the other tab.

At this point, I should mention that I haven't checked other browsers for trouble; I've only been observing Firefox 2.0.0.x.

Yet, the problem does not seem to be webapp-specific. I have trouble with Home, Page Down, Page Up, and End when switching tabs, too. I'll switch to a new tab, hit Home or End (usually), and nothing will happen. I go back to the previous tab and find that the keypress was actioned there. Harrumph.

I really have no idea whose problem this is -- app developers' or Mozilla's -- but it's certainly annoying. When I'm trying to copy data from one site to another, without a clean import/export interface, I would prefer to not have to click in the page to get the shortcuts to work again.

Anybody have a definitive answer as to why this happens?

20Mar/080

Remember The Milk’s Flawed Sharing Model

Two days ago, I discovered my first glaring error in Remember The Milk. Two days ago, my mom signed up for the service. Two days ago, I shared a few lists with her as an experiment. Two days ago, I had to come up with a good hack, and fast.

That hack had to do one thing, and do it well: It had to get the shared lists out of her account. In other words, it had to unshare those lists.

The Dissertation

One would think that the ability to stop sharing something is an integral part of the sharing model. If you share something with a person, and then decide you no longer want them to have access to that data, you should be able to lock them out. True? Apparently not, even though Google Calendar and Google Docs (two examples that I use) both provide sharing and both let you remove other users from the sharing list.

Remember The Milk thinks that once you share something, the other person should have access to it for the rest of time, regardless of what in your relationship has changed:

Once you have shared a list with a contact, you cannot 'unshare' it.

The reason for this is that your contact may have added or changed some of the tasks, and 'unsharing' the list would mean that they would lose the changes they made.

Obviously my relationship with my mother won't change much, but their decision has serious implications for the business world. And that "reason" for not allowing unsharing is complete crap.

Granted, Remember The Milk is not to be used commercially. For people informally collaborating on a project, though, it's still an issue. One member may decide to leave, and the group task list would be stuck in their account. What's more, they retain the power to disrupt the work of the rest of the group, as all people with whom a list is shared are granted the ability to do everything the owner can.

That brings me to another point: Only a list's owner should be able to delete that list. The problems that arise when a user with whom a list is shared deletes the list have wide implications. For instance, none of the other members of that list can view the tasks any more. What's worse, though, is that the tasks are transferred to only one Inbox: that of the user who performs the deletion. Everyone else loses access to the tasks unless they are put in another list and reshared (or shared individually).

Granted, these flaws can be used for good, to transfer a list from one account to another (by modifying the unshare hack I'm about to share [and then unshare -- kidding!]). However, if list transfer is to be supported, it should be a separate feature, not based on hacks using existing flaws.

The Email

I wrote an email to Remember The Milk as well, explaining the problems I see in their sharing model. Here is what I sent to them:

Let me just state that as far as I'm concerned, the sharing feature is broken. Specifically, the fact that tasks and lists cannot be un-shared once contacts have been granted access is absurd. There is no way that everybody will always share something with the right person, or that the other people will be part of the project associate with that list forever.

Say a pair of people who have started a small company together decide to bring in a third person temporarily. They share with that person a list of tasks related to the business. Then the third person quits their job and moves on. That third person should no longer have access to the business's task list. While it could be said that it is up to the user to make sure they avoid situations like this, the real world is never perfect.

Where possible, software should smooth over the experience of using the service, and this includes un-sharing. For now, my mother will have three useless lists in her task screen that were meant to be published, not shared. I have tried deleting contacts on both ends, only succeeding in making the RTM interface say the lists are not shared even though they appear in her view. Deleting the list and then restoring it also failed.

For what it's worth, my RTM username is voyagerfan5761 and my mother's is <scrubbed>. If there's a way you guys can clear the sharing status between the two accounts, that would be wonderful! Implementing un-sharing would also be absolutely priceless (and might earn you guys another Pro subscriber, wink wink :D ).

Anyway, I'm done with my rant. Please keep me apprised of the status of this ticket.

Voyagerfan5761

Note that the letter was written before I figured out that the word 'unshare' was supposed to remain unhyphenated. Oh well. I'll remain true to the quote rather than edit myself.

The Hack

Anyway, I did manage to hack together a workaround to unshare a list in RTM. Here are the steps:

1. Clear your Inbox list by moving everything to a temporary new list to make room for Step 2

2. Take the shared list you want to unshare and delete it in the Settings

3. Create a new list with the same name

4. Go to the Inbox and move all incomplete and complete tasks to the new identically-named list

5. Delete the temporary list created to hold any Inbox tasks (which moves them back to the Inbox list)

6. With that, you should have your list intact, and with you as its only user again

The contacts with whom the list was shared will have to delete it from their accounts themselves, unless they have not yet accepted the list. (I consider it another flaw, BTW, that deleted lists are merely emptied for users with whom they are shared, rather than being removed completely.)

Do not -- repeat: do not -- delete contacts in an effort to unshare something. That will only make matters worse, as RTM will continue sharing but not display the fact (shared items will display as unshared even though the other users(s) still ha(s|ve) access). However, even if you have, this hack will still work. I know because deleting contacts was the first thing I tried.

Conclusion

So anyway, this is a pretty complete write-up of all the things I found wrong with RTM's sharing model. I just hope someone (Emily and/or Omar, preferably) takes notice of this post...

18Mar/083

Remember The Milk’s New “Pro Tester Program”

I just found out not too long ago that Remember The Milk has launched a new sort of alpha-testing service where users can test out unreleased features before they are finished, polished, and released to everyone. Admittedly, it's only been available since the middle of my stay in Milwaukee, so I wouldn't really have found out about it, but now that I'm back I have some things to say about the program.

First, a little background. The Pro Tester Program (more on that first word in a moment) is intended to aid in the testing of new features on multiple and diverse browser/platform combinations. From the RTM blog entry:

PTP members will be given pre-release versions of new RTM features to try out, and will be invited to provide feedback and help us by reporting any problems encountered with said new features.

That sounds exciting. It's a lot like Google's limited roll-outs that happen from time to time as they implement new features in services like Gmail or Google Docs. A few users will see the new features, and nobody else will. The difference? First, it's not random. Users sign up for this testing. Second, the participation requirements are actually published (my emphasis):

  1. An RTM Pro account (the "Pro" bit of "Pro Tester Program").
  2. The ability to keep a secret (you'll be testing features that aren't available to the public yet!).

Wait a minute, I don't pay to use the service so I can't test out new things for you? I'm not completely against paying for RTM -- it is, after all, a wonderful service -- but it seems like I should be getting paid to do your testing for you. After all, users who sign up for the testing service will be saving the RTM team work. Why is a Pro account required?

Granted, RTM needs to make money somehow, and adding Pro-only services as incentive to buy a subscription is a valid business model. If I ever have need of synchronization with my Windows Mobile device, I'll pay for it. If I ever want to get a special iPhone/iPod Touch interface, I'll pay for it. If I'm going to be alpha-testing new features for a beta service, I won't pay for it. I'm sorry RTM. I love testing, but paying for the privilege of saving you guys work just doesn't cut it for me. Make it accessible to all your users and we'll talk.

Oh yeah, my notes for this post (stored, ironically, in a Remember The Milk list) say that your new program is similar to Google's Trusted Tester program as well. Similar because people who apply get access to pre-release features. Dissimilar because you have to pay to get at it (and also because you don't have to be blood with someone at RTM to do so).

So, while this new service has increased the probability of my buying a Pro account, it has definitely diminished my respect for how RTM structures its business. And no, I won't buy a Pro account now, just on the principles I have outlined here. I will not pay for the privilege of saving someone else effort; they should be paying me, or at least not charging me money.

RTM: Try allowing everyone to participate in the Pro Tester Program. You'll probably get more feedback, which means less time overall pushing out updates. Please?

19Dec/070

Review: Remember The Milk for Gmail

Remember The Milk today released a Firefox extension to add an RTM sidebar to Gmail. It looks cool, I must say. The sidebar can create tasks when you star a message or apply a specified label (useful for me, because I usually star messages that require action). It can also auto-suggest events from your calendar and contacts from your Gmail address book. The full feature list is available on the RTM website.

I can see it becoming very useful, because I like to have as few tabs open as possible, and integrating RTM into Gmail would eliminate a tab from my usual setup. However, there is a big bug they need to squish before I can truly start using the extension.

The problem occurs when opening Gmail's Settings pane with the RTM panel collapsed if you open anything with the RTM pane initially collapsed (did I mention you can collapse it, Google Reader sidebar-style?). The Settings page, and all subsequent views, Whatever you open, and all items after it, become squished to the width of the RTM pane. Changing views or re-expanding the pane and changing views does not eliminate the problem. It can only be fixed by reloading the Gmail page.

Oddly enough, it does not happen if the Settings page was opened before collapsing the pane. I'll point out this bug write-up in the RTM forums and see if I can get a statement.

So, once that bug is fixed, I'll definitely be able to eliminate completely a tab from my usual startup set. Well done, RTM!

PS: For the benefit of the RTM staff, if they read this, here's a list of all the extensions I think might be interfering with theirs:

  • CustomizeGoogle
  • Better Gmail 2
  • AdBlock Plus
  • Gmail Manager
  • Greasemonkey

Hope that helps you guys! I'd try to isolate it myself, but I really haven't the time today.

Update (12/20 01:21): Now that I revisit the bug, I see it's more widespread than I thought. I've marked up corrections to the third paragraph above, using (of course) semantically-meaningful <ins> and <del> tags.

! Great job, RTM devs!

15Nov/070

Remember The Milk Updates, Big-Time

Nary a week has gone by since I blogged about how wonderful Remember The Milk is. Now I see they've overhauled their interface. "Again?" you ask. I don't know; I've only been using it a week, remember?

Anyway, they've had a major revolution in how the interface displays itself. For example, there are now icons to see what tasks repeat and which ones have notes. The list view shows tags next to the tasks (configurable in the settings to left, right, or disabled). The list itself has been tweaked to give users endowed with larger monitors a wider view of their tasks. It now stretches half again as wide for me, and were I to have a wider screen, it would probably be bigger.

Now, the list-widening only works up to a certain point; users with super-huge monitors might have issues with their list suddenly becoming two feet wide. I'm assuming, however, that the RTM team has taken this into account and set a limit on how wide the list can be.

One of the coolest changes I see is the addition of connecting lines between the task(s) you're editing and the edit box. I was indeed having issues with remembering what was selected for multi-edit mode, and this looks like it'll help quite a bit. The lines even show up when you mouse over a task. It's more work for the browser, generating and destroying all those lines, but it looks good and it's useful, so I think it's a great feature.

Neatest of all, the code appears to have been reusable, and lines appear on the settings tabs Lists, Locations, and the new Tags tab, described below. Of course, you can't multi-edit lists, locations, and tags, but so far I haven't missed it.

The new Tags tab lets you merge, delete, and rename tags, all without manually going through the list and doing it yourself. It's cool, very cool. Now if only Google Reader would get the ability to rename tags (over a year and no dice yet)...

Speaking of Reader, it looks like I'll be able to subscribe to feeds of my tasks in Google Reader now; they've implemented private URLs to do away with the HTTP authentication requirement, meaning any feed reader should now be able to read task feeds. And completed tasks have feeds, too, now. The Private URLs setting can be changed in the General settings, and it defaults to Off. Like Google Calendar's feeds, you can reset the private URLs if you suspect an unauthorized someone else has gained access to your feeds somehow.

Also new, Smart Lists can now be used in searches (making it possible to find tasks that exist in multiple Smart Lists), and search operators hasNotes, to, from, and isReceived have been introduced to ease searching for tasks with notes and sent/received items.

Finally, they have fixed a bunch of little annoyances and bugs. I have no idea what they were, and the blog post doesn't say, but they do say they've spent time optimizing the code to make it run faster as well, so there's something to be said for that.

All in all, it's a very promising development, quite welcome this week, as I don't have to re-learn the interface after months of experience; it changed about three days after I started heavy use, so it's much easier to get used to. I really like the way it's going.

Oh, and by the way, they've also improved the indication of the current task when using the j and k shortcuts to navigate the task list. Is anyone else reminded of Gmail?

12Nov/070

Task Management is Good with Remember The Milk

I'm sure all y'all have heard way too much already about all the supposed "Web 2.0" services such as Gmail (I'm blogging about it whether you like it or not!), and I'll bet you've heard of Remember The Milk already, but you have to try it to really appreciate what it can do; up until today, I never realized how much potential there is contained in that one little app.

My second quarter of courses started today, and I began as I always do: getting lists of assignments that will be due during the courses. I used Google Calendar first quarter, but RTM looks like it'll be much easier, especially since I found the "Lists" feature that lets you categorize tasks into their own lists. You can even Archive a list, removing it from the tabs on the RTM homepage but still having it available. Sounds like Gmail for task management to me.

The interface is fully keyboard-enabled, which works very well as long as you stay in the tab (I only have experience with Firefox). Switching tabs and then coming back takes the focus out of the keypress/keydown/keyup/whatever-they-use event listener, rendering the keyboard shortcuts non-functional until you click on the page somewhere. It's definitely more efficient for transcribing if the tasks are printed or (theoretically) in a separate window -- I haven't tested the latter case yet.

You can also subscribe to your task list in Google Calendar, where you can edit, complete, and delete tasks just like the main interface. That's a very interesting feature in and of itself. Google has supposedly been working on a task list feature for Calendar since last April or so, but nothing has shown up yet. Ho hum.

One of the best features I have yet to find in RTM -- besides its awesome task-management capabilities -- is its Google Gears-enabledness (yes, I made that word up). Like Google Reader, you can take Remember The Milk offline and use it on a plane, boat, or subway, and even in the middle of the Sahara (provided there's power, of course). When you get back to an Internet connection, you simply sync back up. The offline mode appears to support all task-related functions, but list management and other settings are disabled.

Tasks can be completed, postponed, and shuffled around between lists. Other people can send you tasks, and they will show up in your "Inbox" list. You can, of course, send them tasks right back. Tags, due dates, repeating tasks, notes, sharing, time estimates, and even a URL field round out the task attributes and operations. If you estimate the time for tasks, RTM will display a time estimate for all items on the list, making it useful indeed for deciding what to work on in that spare moment.

Like Gmail, Google Calendar, and 95% of all other Google services, Remember The Milk is a beta. It's a definite Google-quality beta, though; all features are present and accounted for, nothing glitches (not yet, at least; don't jinx me), and it reminds one of Gmail (some of the keyboard shortcuts are even the same). I think RTM will make a fine addition to my arsenal of tools. I've had an account since October, but never really used it until now, as I didn't want to bother importing tasks from Google Calendar. Now that I've begun setting it up for this quarter, my hope is that it will make me more efficient at getting things done (GTD).