N2 Build 358 is a rather significant arrival point. It leverages Cloudmailin for email I/O, provides the foundation for plugging in to Chargify for billing, and required some not insignificant changes to our core data structures and subsystems. Took about a week to roll this one out as it had to be done in phases. Few seem to have noticed the steps we took along the way, which means things went smoothly.
Below are some topics that merit expansion, at least for those who like to know how their toaster works.
SCHEDULED AND REPEATING
So we fought the good fight, but after too many months of mixed results trying to get client spawned repeating tasks to flawlessly synchronize amongst multiple disconnected devices through the cloud, we’ve decided to stop with the ivory tower bs and go back to what always works… brute force server-side horse power.
So with this release your browser no longer moves tasks between lists or calculates repeating patterns when you’re offline (unless you tell it to). The default behaviour is for all of this to happen automatically, server-side, centralized, by determining when midnight rolls around for you and your timezone, and then spawning repeating tasks and moving scheduled and due items accordingly.
As such, it is important that Nirvana knows what time it is for you. Nirvana now auto-adjusts your timezone settings at login, so once you’re on build 358 be sure to logout/login to ensure we’re compensating for daylight’s savings, or the fact that you recently moved coasts, or continents, and failed to send us a post card.
PHANTOM TASKS EXORCISED
On the topic of repeating tasks, what has sometimes been referred to as “phantom task spawning” is something that can no longer happen starting from this build, as all repeating task calculations are now centralized in the cloud.
BUT HERE’S THE CAVEAT!!! — If you’ve been using N2 for awhile now, and happen to have a machine/device that you only occasionally use (weekend home, spare ipod/ipad etc) and if that device still has an OLD cached copy of N2 running on it, and you access your account without first flushing the cache and updating to the latest build, that old version may try to spawn tasks like a rabbit in heat.
So we know this is kind of a pain, but try and remember to visit https://app.nirvanahq.com/reset directly (do not load the app from a bookmark first, eh?), then reload a few times until you see build 358 or better. Yeah, we know. Sucks. Sorry. C’est la vie. Yick. Bleaach.
CREATING NEW TASKS VIA EMAIL
On the email front we started fresh again. We are now using Cloudmailin (a great service) to manage and parse inbound messages, including (in the not too distant future) attachments. What this means for you today is that we no longer choke on international characters or long emails, or experience delays between sending an email and seeing it reflected in your account. It’s pretty damn near instantaneous. We’re stoked. Plus, with cloudmailin’s help we will be able to do things like comment threads via email replies for shared projects and the like… with ease and grace.
You’ll notice we have a new domain for this… email@example.com — so whatever your personal N2 inbox address is, replace the .com with .in and you’re good to go. The old addresses will still continue to work, routed through the old email parsing system. In the near future we’d like to let people create humane aliases like firstname.lastname@example.org to make life simpler.
AND BECAUSE IT WAS EASY…
… and because I didn’t feel like creating static screen comps for Mitch and his iOS spit-and-polish, spent an afternoon retooling the mobile web app stylesheets to render tasks as multi-line w/preview text in all list views, and gosh darn it, it’s pretty cool. Better than anything I could’ve produced in balsamiq, plus it’s actually real to boot. I know I know, the mobile web app is a dawg on older iOS devices, but being able to see what you’re supposed to be doing now (almost) rewards your patience.
That, plus a long list of bug fixes and quite a few UI touchups.
As always, release notes can be found here: