Mitch started a discussion in the forums about where we stand re: mobile apps. I thought it would be good to cross-post this here for those who want to be in the know, but might not normally participate in the discussion forums. -Elbert
January 16, 2012 @ 07:26 PM via web
There’s been a lot of talk about development scheduling of the iPhone, Android & iPad version of Nirvana app. I’d like to share a bit of the thinking behind the approach we’re taking. I’ve recently come on board, and am initially working on the mobile app side of things.
File this post under technical fyi / cya / wtf.
For the past few weeks we’ve been working out the kinks in our server-side processing of large data sets relating to scheduled and recurring tasks, which has affected a small but significant subset of users.
In a nutshell, prior to build 358, N2 relied on each client (desktop/mobile browser session) to process nightly task movement locally, and then post any changes (scheduled to next, next to focus etc) to the cloud. Since build 358 the primary responsibility for processing tasks has been moved back to the cloud, which then pushes changes out to the client. Role reversal.
The initial worker scripts we wrote to do all of this processing were a bit over-zealous in their consumption of memory. Kinda saw this coming, and to preempt it being a show-stopper we added some client-side code to detect if there are tasks that should have been processed but weren’t, with a “manual override” that conditionally appears in your Scheduled and Focus lists if relevant.
The appearance of the buttons “Move Scheduled Items Into Place Now” or “Bring Focus Up To Date Now” is N2’s way of letting you manually invoke the routine that moves tasks into place locally, without waiting for the cloud to do the processing. In an ideal world, you would never see these buttons as everything should be automatic. But you know… it’s like when the automatic doors don’t open when you walk up to them, at least you can still push ‘em open to get through. Or something like that.
I’ve been up all night monitoring and adjusting the worker scripts, and it looks like things are finally working as intended. But for folks in timezones GMT +1 ,0, -1, -2, -3, -4, -5 and -6 (ergo, the 8 hours preceding this post) you may see the “Bring Focus Up To Date” button. Just click it if you see it and you’re good to go. Also, if you’re in the aforementioned time zones you may not have received your daily email poke today. Sorry about that.
Will continue to monitor things for awhile, and if things continue to look good we’ll be able to put this issue behind us and move on… to more fun things that all this server-side processing makes possible, like calendar feeds and the like. :-)
Happy New Year Everyone! (it’s not too late to say that right?)
It’s a new year and we’ve been having a blast in Nirvana land. There’s a lot less noise from the agency side of the house (the holiday workload was intense, but wildly successful for our clients and for us), Mitch flew down to sunny Buenos Aires last week, Elbert and Romina will join him soon to escape the brutal winter (forecast says -30 tomorrow, yikes), David’s hanging out in Mexico as usual… iOS and Android apps are on the horizon, looking to remove the beta moniker soon, and the sunsetting of N1 (take 2) will be grounds for a serious party. Life is good.
So about that build that went out a few moments ago. The blog title pretty much says it all, but do read the release notes if you want more details re: some of the other important though perhaps less sexy tweaks/fixes.
As always, feel free to join the party over in the forums. A lot of great discussions, suggestions, tips and tricks.
P.S. We know that there are many people waiting in the queue for access to N2. We’re working as fast as we can to open our doors en masse. Shouldn’t be much longer.
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… firstname.lastname@example.org — 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 email@example.com 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:
Bug Fix: tasks/projects appear in Focus on due date
Bug Fix: tasks/projects appear in Focus on scheduled date
Bug Fix: repeating tasks appear in Focus on spawn date