Frustrations with Gmail

Not every relationship is all rosy…

(man, I never thought I’d say this, but the on-screen keyboard is actually faster and easier to use than the hardware keyboard!!!)

Anyhow… when I switched to Android I switched my email notifications from SMS to Gmail. A little background:

I run my own personal email server, and while it supports IMAP Push, I’ve never found a client implementation of that protocol that had acceptable battery usage. Regardless, while it’s nice to get your emails immediately and be able to perform some action on them immediately, I’ve always wanted to maintain strict control over which emails generate a “new mail” alert.

There are a number of ways around that triage problem. But then you get into complexities over how you want your mail organized vs. what you want to be notified about… Long story short, I opted to create an out-of-band notification system specifically for the emails I was interested in. This has the added bonus of being extensible, so that I can define times of day that notifications are active, complex state tables that affect notification eligibility, and things like remote awareness.

Anyhow, these out-of-band notifications were traditionally delivered via SMS, and in the WinMo world I had coded a solution whereby a second, specially-formatted SMS would tell Pocket Outlook to sync email. The result was a poor-man’s push solution – perfectly functional, if not the most efficient.

So that’s the background. Since I place great value on the flexibility of this notification system, it was paramount that I could carry over its core intent to my Android smartphone. And I opted to ditch SMS and go with Gmail as the delivery mechanism.

So that’s the background then.

What I’ve been finding, much to my dismay, is that I’ve been missing notifications. In the SMS world it was possible that a notification would get delayed, or lost altogether – but I didn’t expect that from Gmail’s push notification system running on Android 2.2.

After some digging I came to realize that quite a few of these missed notifications were indeed making it to my phone, but they were ending up in the trash and hence no alert was being generated by the Gmail app.

Gosh darnit! Chock it up to Gmail’s “conversatons”, where your emails are grouped (ie., “threaded”) by subject. So if you decide to delete a single message in a conversation (which is something you can’t do in the mobile app – more on that in a minute) then the whole conversation would have a “trash” label applied to it.

And it seems that when a conversation has the trash label applied, the mobile Gmail app removes it from the inbox view. Critically, it won’t alert because the new message is part of a “deleted” conversation.

Now, I haven’t tested this, but it’s possible that things would work differently if you delete a single message in the Gmail web app. But on the Android app no such option exists – it’s the conversation or nothing at all.

Now I have to imagine that this is of the utmost frustration to people who use Gmail (and the Gmail mobile app) as their primary mail client. Fortunately I’m not one of those people, so I’m testing a solution (and it may be that this can apply to the aforementioned group of people too – unless they’ve figured it out already).

Basically, you don’t delete anything.

This is something that Gmail originally trumpeted – that you now had so much space that you’d never to delete an email again. And because you need some way to manage a huge inbox with email that’s never deleted, and people generally pout if they can’t permanentky delete their own email, Google acquiesced and added some trash “label” and other what-not to appease the masses.

But in my case those solutions don’t work. I can get by without deleting because I only care about new emails – or more accurately, new notifications of new emails.

So my solution is not to delete, but also, to only sync 1 day worth of email out of my inbox. That way, the old undeleted stuff will fall out of view in the mobile Gmail app. I’m also syncing “all” starred items, so if something is of interest and I need it to stick around for a few days – like a URL that I’ve emailed myself – then I can star it and it will remain in view.

That’s the theory. I’ve only just now made all the changes, so you’ll need to follow tradition and give me a few days to deal with the (inevitable?) fallout.

Droooooooid!

Okay, so I’m not rocking a Moto Droid, but I am now rocking an HTC Desire Z.  The wifey helped to make this happen so thanks go out to her.

It’s currently 2:47AM so this will be short to begin with; I’ll have to come back later to flesh out this post a little more.

First impressions:

  • I will not be rocking CM6.1 or CM7 (?) on this device.  As it turns out, HTC Sense is cooler than I thought, and it’s a more polished experience than standard Android.  Yes, I realize that this places me at the mercy of HTC/Bell to feed any potential update craving that may arise in the future, but for now I’m willing to live with that
  • The screen is beautfil.  Nuff said.
  • Hinge isn’t the snappiest but I can definitely live with it.
  • It’s really nice to have a phone that actually hangs up when I tell it to (and not a few seconds later – Touch Pro, here’s looking at you kid)
  • It’s a little weird going into so many apps and just… leaving them to go elsewhere.  I could do this with the Touch Pro as well, but given the speed of that device it wasn’t often that I’d go into 6-7 apps in one sitting.  Perhaps it’s the new-car-small of the Z that’s got me bouncing around in apps (particularly as I’m still trying to get the thing setup to my liking).  However, I will say that some apps do seem to restart when you go back to them, and that’s definitely weird coming from WinMo, which would leave apps open until memory constraints forced them closed.  I don’t think I’ve hit any memory issues on the Z yet, so it may just be that Android is a little more aggressive in the task management department.
  • Battery life isn’t as good as the Touch Pro.  Again I’ll say that I’m using the device extensively in order to get it setup, and I have a feeling that two mail apps were trying to IMAP IDLE on my mail account – a consequence of not having my mail setup correctly yet.
  • I never thought I’d say this, but I like that I can link my local contacts to my Facebook contacts.  Having this integration – provided by HTC Sense – is nice, although I’m still adamant that I wouldn’t go so far as Windows Phone 7’s penchant for throwing Facebook photos into your local photo gallery.
  • L-O-V-E the way that the notification bar works.  Very cool to finally be able to see what a notification is  about without having to make any overt gestures or load the relevant app.
  • Maps on Android is AWESOME.  Especially Maps 5.0.  Check it out if you’re rocking an Android phone.

I’m sure there’s more, and they’ll come when I follow-up on this post.  It may be possible that many of these enhancements could be had on the WinMo platform, particularly considering that HTC Sense is available (indeed, was conceived) on Windows Mobile.  Still, the speed of my Touch Pro can’t compare with the Z, not to mention the screen resolution, vibrancy and size.  I will say that for now I prefer the layout of the hardware keyboard on the Touch Pro, but that could be a case of a year’s worth of familiarity with said keyboard.

One negative I noticed today – and I hope that this is was an isolated occurence – was trouble staying connected to the Bluetooth kit in the car.  I had problems like that on WinMo, where Bluetooth on the phone would actually turn off.  My solution was to write a native program and some Mortscript to force Bluetooth on whenever it inexplicably turned off.  Well, it seems that the Z’s Bluetooth is staying on, but the connection is dropping.  Will investigate more later.

Off to bed now.

Fateful decisions

Fear not, there will be no dark foreboding here 🙂

I’ve made a couple of game-changing decisions recently.  One, is that Android is definitely in my smartphone future.  Two, is that UPnP is in my Home Automation future.

We’ll look at each decision in order.

Android

My PDA/Smartphone history started with Palm and has been mostly devoted to Windows Mobile.  Then, Microsoft decided that its mobile future lay in Windows Phone 7, thereby rendering Windows Mobile 6.x a parent-less drifter.  This isn’t entirely true, as they’ve pledged to support 6.x in the enterprise space; but for consumers, Windows Phone 7 rang the official death knell for WinMo 6.x.

I honestly can’t recall the timing, but around this time last year I decided that my TyTN wasn’t cutting it anymore and I sourced a used HTC Touch Pro, which I promptly upgraded with a WinMo 6.5 build.  It was never my intention to use this device for Many Years To Come(tm), but I think I was looking to get maybe two years out of the thing.

And, if push came to shove, I probably could deal with the software limitations.  But I’ve been getting increasingly frustrated of late over touch sensitivity, system lockups, speed… the gamut of issues that people typically cite when thumbing their noses at Windows Mobile.  Add to that the GPS that I’ve all but abandoned, since it seems almost impossible to get a lock these days.

It’s a crying shame, to be honest.  I don’t have money to be throwing around on phones, and I never want/wanted to be one of thoese people who buys a new phone every year.  I was either blindsided by Windows Phone 7, or didn’t take the threat seriously, but when that OS was announced and devices actually started shipping – well, my 2-year investment dead-ended rather quickly.

The larger problem is the dearth of development activity.  No reputable company is releasing WinMo apps anymore.  It goes without saying that iOS and Android are occupying the hearts and minds of mobile developers across the globe.  More accurately, Windows Mobile is on nary a developer’s lips.  So the gist is that I’m stuck with buggy/slow versions of mildly interesting software (Facebook, Twitter), and staples – like my software keyboard and UI shell – are frozen in time, bugs and all, and I’ve got to deal with said bugs every single day.

Don’t get me wrong.  When the software is running smoothly, it’s All Good(tm).  Unfortunately, I get hair-pullingly frustrated even after 2 or 3 soft resets in one day.  Nobody should have to reset their phone 2 or 3 times a day.  And then there’s the one thing, the most intrusive and dasterdly demon of them all – the resistive touchscreen.

Sure, pinch-to-zoom would be nice.  I can live without it – for now – but what I can’t live without is accurate touch response.  I’m sick and tired of trying to scroll but selecting an item instead, or trying to select an item but scrolling instead.  And this isn’t the sort of thing that happens, oh, once or twice a day.  It’s a regular occurence!  It’s so annoying that I toyed with the idea of writing a touch driver to smooth out inputs, but that’s a large undertaking whose value is severely lessened by the diminished attractiveness of the platform as a whole.

My recent foray into tablet research opened my eyes to the wondrous world that is a modern mobile OS.  Even Shelly’s Nokia E71 has outshined my Touch Pro since the moment her phone came into our house.  She has jokingly said to me – on more than one occasion – “It’s okay Deryk, you can have my phone”, as a result of my penchant for Getting Things Done(tm) on her phone quickly and easily.  The problem with her phone is that it’s not a touch device, and it’s not a slider.  Those things aside, she has nothing to be ashamed of for wielding that thing.

Although, she’s pined for an Android device herself.  I think she’s been starstruck by the touch experience in general, with all the whiz-bang animations and such.  But she’ll also put on her Practicality hat, and realize that nothing beats a hardware keyboard and numeric keypad when it comes to calling people and texting/emailing.  I can even navigate faster in Opera Mobile on her phone, with the D-Pad, than I can on my phone using touch or the D-Pad.

But I digress.  Being somebody who values functional technology, rather than having the latest and greatest (witness my T1i when the T2i was already out), I was rather impressed at how easy it is to get things done when using a modern mobile OS.  And there are two pieces to that particular puzzle: a capacitive screen and properly-tuned touch driver, and native apps that are constantly refined under the banner of getting things done easily and accurately.  My Touch Pro has neither of these things going for it, and it shows.

This culminated quite nicely (and shockingly) the other day when I realized that I don’t want to have to tweak my mobile phone anymore.  It should just do what I want, period.  I’ve never been big on custom wallpapers and ringtones – everything I’ve tweaked on my Touch Pro has been to make it useable, not to make it fancy.  I decided that I want my device to be useable from Day One(tm), and I want somebody out there working to make it useable throughout its useful life.

I also like a pure experience.  And it may surprise you to learn that, if I did get an Android phone, I’d either want to flash a stock, non-branded ROM – or install a credible custom ROM like CyanogenMod 6.1.  But really, that’s as far as I’d want to take it.  I thought I’d be able to do the same sort of thing with the Touch Pro and the Energy series of ROMs, but again – people are moving away from WinMo, certainly from the TouchPro.  Regardless, you can’t tweak away a resistive screen, or the other things that probably could be nailed down in time by the ROM developer but which won’t be nailed down by the ROM developer since nobody wants to develop for the platform anymore.

So why Android?  I played with a Windows Phone 7 device in the stores, but from the first set of leaked videos it was apparent to me that Windows Phone 7 would not be in my future.  I’m a developer at heart – and I have a very strong feeling that Android is the closest you can get to development/tinkering nirvana.  Windows Phone 7 is getting a very glossy treatment as a social, consumer device – just look at the supporting ads that are airing, citing the ability to get in and get out quickly.  But it’s a guided experience that I don’t care for.  I’m quite content to run a Facebook app when I want to see what’s going on on Facebook.  I would not be at all content to have Facebook’s crap smeared all over my phone in every nook and cranny.

And iPhone?  You should know how (un)impressed with the whole walled-garden approach in general.

Really, I probably would have skipped the Touch Pro and gone straight for a Milestone if not for a few reasons:

  • holding out for carrier promotional pricing (the Milestone never showed up on Rogers)
  • a preference for HTC hardware vs. Motorola hardware
  • wanting to see how dominant the Android platform became

Let’s face it though – what I’m really talking about is obsolescence.  And it’s true that every piece of consumer electronics out there is obsolete as soon as it hits the store shelves.  Wouldn’t it be the case that anything I got now – Android-based or otherwise – would suffer the same fate, and I’d find myself back here in a year?

I’m not entirely convinced of that.  I pride myself on having a particular set of criteria, and not compromising on that core set.  I’m not trying to chase the latest and greatest, I’m simply trying to get something that works for me.  I never believed that the Touch Pro would be my main phone for the forseeable future; rather, it is/was a stopgap since the TyTN couldn’t get my basic needs accomplished anymore.

Well as it happens, the Touch Pro now has certain limitations – some of which are inherent, like the finicky GPS and crappy camera – and others which only became apparent after trying to make the device do what I had envisioned it doing.  My expectation of the Touch Pro is that it’s finger-friendly, as this was one of the primary reasons why I sought to replace the TyTN.  And while the Touch Pro is more finger-friendly than the TyTN, it has become apparent – after a year of using it in a manner that the TyTN could not support – that a resistive touchscreen simply cannot get the job done.  This is not something I would have known implicitely from using the TyTN in this capacity, as the TyTN had other problems which restricted its finger-friendly usefulness.

Basically, the software and hardware of the Touch Pro was never designed for a seamless touch experience.  Even the latest versions of WinMo cannot make this claim, as the shell itself simply is not designed appropriately.  However, even a device like the HTC G1 – with a capacitive screen – has a leg up, despite its age.  And yes, you can flash CM6.1 to a G1 and have the latest Android kernel on your old device (well, the latest up to a few days ago, when 2.3 was released).  The hardware wouldn’t be as svelte as a G2, the camera not as nice, the processor not as speedy – but assuming you could live with those things, the fact of the matter is that you would not be left behind in the software world.

Yes, you have to consider things like available memory, and that’s something that you can never beat without investing in new hardware.  But for comparison, here it is that I’ve installed all my apps to the Touch Pro’s internal memory and I haven’t really had any memory issues to speak of.  I think it’s the case that most modern smartphones have way more memory available than you actually need – particularly somebody like me who is very adverse to storing media on my phone.

Ultimately, the undeniable truth here is that it’s time for me to switch platforms.  And I have to tell you, the prospect is exciting, if only because it means learning something new – and if you know me, you know that I like to learn.  I don’t often do an “out with the old, in with the new” paradigm shift, but when it happens it does make me quite giddy at the prospect of building a whole new suite of solutions that I simply could not do before.

Android is now mature, in my mind, and the hardware is at that point that I believe it could serve me adequately for the next three years.

UPnP

This is another doozy.  I’ve spent the last, what, 3-4 years (longer?) designing this Home Audio system and making incremental updates to the interface and backend. I had visions of a very dynamic interface with DHTML transitions galore and loads of AJAX.  And that’s admirable, but it’s time for more.

Again, this was partially spurred by my tablet research, and a major dislike of placing media – music, photos, videos – on any one particular device.  My belief is that those things should be “in the cloud” and accessed on demand.  Not the Google cloud, not the Amazon cloud – rather, my own personal cloud.

My approach has always been network-centric, where devices are simply clients to my network.  The Home Audio interface is an example of a project that encompasses both the network – the DBMS, the filesystem – and the client – the physical zones and SHOUTcast servers.  But it’s still closed in that you can’t take full advantage of the network unless you pass through the web interface first.

And for physical zones, this is fine.  For consuming media on tablets, not so fine.  But I don’t want to just throw a media server on my network and let it have at my filesystem.  One – that’s not very challenging.  Two – it sidesteps years of development work on my part, and it doesn’t allow any future development.

I realized the other day that my approach to my Home Audio setup may have been the Right One(tm).  It’s all HTTP-based.  It’s all database-driven.  A new media server would have to catalog my filesystem in its own native database in order to function.  Well, why reinvent the wheel?  Why throw away design and useability decisions that I’ve made?

In this modern age of standards, there’s no reason why I can’t take the work I’ve done and evolve it to support different types of clients.

That’s where UPnP comes in.

So my current design goals are to add UPnP support to my Home Audio system.  And by extension, this will actually allow my media to be consumed by a UPnP client device.  I can finally rip my movies to disk and play them on a wide array of devices.  I’m getting a little ahead of myself here, but even without a single UPnP client on my network today I can say that I firmly believe that this is the correct direction to go in.

WinMo power hog strikes again!

Gosh darnit!

You may recall that my TyTN exhibited power-sucking tendencies once upon a time. After some consternation I successfully tracked that issue down to some misbehaving virus-infected PC’s on my carrier’s 3G network, coupled – IIRC – custom power-state changed that I had made.

Well the TyTN was retired some time last yea in favour of a used HTC Touch Pro, and wouldn’t you know it, the power vampire decided to awaken a few days ago.

I figured that perhaps I had cooked this battery, but the theory wasn’t holding up. Next, I thought that perhaps the latest Google Maps update had a power-drain issue. But after some trial and error I was also able to dismiss that theory.

As it turns out, some dasterdly application (also known as HTC’s WiFi tethering app) had set my WiFi module in max performance mode, vs. max battery. The result, in my estimation, was that the phone was never hitting suspend mode – the same sort of problem that had befallen the TyTN.

So all is once again (mostly) well in my mobile world.