N2 Build 268 – Hotfix for Firefox

If you are running Firefox and having troubles, read on.

Found a weird case with N2 Build 267 where Firefox was loading up without data… just an empty shell.  If you’ve experienced this, Don’t Panic!  :)

Try this first:

  • refresh a few times until you see build 268 or higher

If that doesn’t seem to work:

  • go to the FF options, select the Advanced->Network tab
  • in the box at the bottom you’ll see a text box with “The following websites have stored data for offline use:” and there will be an entry for app.nirvanahq.com — select & remove that entry and click OK to close the options
  • refresh your browser until you see build 268 or higher
 

refresh until you see build 268 or higher

Props to Dinis for bringing this to our attention and to David for finding the fix.

Bug in Chrome Frame drops N2 sync requests

Hello Internet Explorer users -

David managed to track down the mystery of why N2 is not syncing properly for Internet Explorer users.  It turns out that there is a known bug in Chrome when used as a Chrome Frame inside Internet Explorer.

Ajax network requests silently fail (requests never make it out to the server) under certain conditions, and as a result the nirvana servers are never notified of changes you make to your data.  N2 is smart enough to realize that you have “unsaved items” — the prompt that comes up if you try to logout after making changes to your data — but because Chrome Frame isn’t actually sending any data to nirvana servers, N2 effectively runs offline forever, and thus your changes are not reflected when you access N2 via another device.

BOTTOM LINE — Don’t use Internet Explorer. Use the standalone Chrome Browser instead, at least until the Google team releases a fix.

Related Links:

Google Chrome Browser http://www.google.com/chrome
Google Chrome Frame http://code.google.com/chrome/chromeframe
Chrome Frame Bug http://code.google.com/p/chromium/issues/detail?id=76439

UPDATE

ChromeFrame 12 (12.0.742.100, file date 13-Jun-2011) now appears to be working in IE 8 / 9, based on a limited amount of testing.

IE Smites Us Again

Where is the much anticipated Nirvana upgrade we were hoping to release over the weekend? Well, ahem, our “friend” the-slow-script-alert decided to haunt our Internet Explorer power users again. We know we know, it’s our responsibility to work out the kinks, and IE accounts for less than 5 percent of our current user base, but we are expecting this number to grow and we must ensure Nirvana plays nice in the Microsoft eco-system.

Granted the alert only affects hard core users of Nirvana (you need to have entered a lot of tasks for the alert to popup) — these are the very last people we want to upset.

We couldn’t upgrade knowing that we’d be stomping on our best IE users.

So getting technical for a moment (or skip this paragraph if you don’t want to), with the user interface overhaul and added features/filters, the number of event listeners (such as click-handlers, mouseenter/leave etc) have been balooning. jQuery, which we use for ajax and DOM manipulation, is absolutely amazing — but is often used sparingly on your typical web site. Nirvana, however, is 99% DOM manipulation, and using jQuery the way most people do (and the way we have been thus far) can really start to push the boundaries of what the average browser was designed to handle. We’ve been attaching listeners to individual elements as they are rendered on screen (think checkboxes, date widgets, context menus, note detail togglers — on every task). This means that as the number of task on screen increases, so do the number of listeners (and the size/complexity of the DOM parsing). So over time with longer and longer lists, you get more and more event listeners that are constantly “listening” to every move, and it just drains your browsers resources. So, while this is the typical jQuery way of listening for events, and while it certainly is convenient for quick coding, we are taking another approach. We are now attaching ONE click event listener to the “body” element, and are determining when to do something (or not) based on what was clicked AFTER the event bubbles up. This is how many other js libraries work by default, and there’s really no reason not to do things this way with the jQuery we know and love (…except that it really is so much more convinient to simply attach listeners to DOM elements with CSS style selectors, but whatever). The boost in performance for YOU outweighs the development convenience for US. So, you win.

The upshot: we are heads-down rewriting a large chunk of the application, with the added benefit that it has sped up Nirvana performance not only for users of IE, but for other browsers as well. A huge win at the cost of a few more days of patience.

We will release just as soon as we’re convinced everything is stable.
Thanks for understanding…

Working on fix for context menus

Wanted folks to know that we are actively working on a fix for the context menus (to the far right of each task) so that they actually work on IE8, and stop slowing things down on all other browsers.

For the technically inclined: the hierarchical menu jquery plugin currently in place works great if you only have a handful of tasks, but starts to really drag its feet as the number of tasks grows.  Think we found an alternative that doesn’t exhibit this behavior.  With any luck it won’t be too involved to swap out the old menus for the new.

Minor Fixes

Made a few quick fixes tonight:

  • fixed broken url in the welcome email and daily ticklers.
  • we now check for a valid subject when creating a new task via email-to-inbox.  if no subject is present we insert “no subject”… which is better than having a blank task name that isn’t clickable!

Thanks to everyone who pointed these out.

Nirvana is task management software that's 100% web-based. Based upon the well known Getting Things Done® (GTD®) method of keeping organized, it is fast, easy, available from anywhere.

Spend more time doing your tasks, not managing them. Sign up now!

What is GTD®?

GTD® rests on the principle that a person needs to move tasks out of the mind by recording them externally. That way, the mind is freed from the job of remembering everything that needs to be done, and can concentrate on actually performing those tasks.

Read more about GTD® on David Allen's website »