Farewell Latitude (for now) (update: it’s back)

So that’s it then – no more Google Latitude on my phone or the wifey’s.

It’s not that Latitude has lost its usefulness.  Far from it – it’s quite handy.  Rather, it has lost its practicality.

For whatever reason, Google took it upon itself to change the update frequency of Latitude, and this has had a noticeably-adverse affect on battery life.  Google’s own search engine will yield results explaining that the frequency went from something like 42/1 to 6/2 – ie, a 42 minute period when not moving and 1 minute when moving, to 6 minutes when not moving and 2 minutes when moving.

Now I don’t know if these numbers are correct, but I do know that something has definitely been amiss in the Latitude department for the past month or two.  It started when Shelly’s S60v3-based phone would no longer post Latitude updates.  Google seemed to have resolved this issue about a week ago, but in looking into the problem I came across other posts talking about increased battery usage, attributing said increases to the change in update/polling period.  So once functionality was restored on Shelly’s phone, I noted that she seemed to have gone from two or three days between requiring a charge, to needing to charge each night.  Hrmm.

So the first phone to have Latitude disabled was hers.  And wouldn’t you know it, battery life was magically restored.  And while I’ve always known that Latitude used some of our precious mobile battery life, I certainly couldn’t justify a 33-50% reduction in said life.

Battery life on my own phone is harder to characterize, as I tend do Do More Things(tm) on it, and I also tend to update my apps regularly.  Nonetheless, even with charging my phone in the car for one or both of the daily commutes, I was still getting alerts every night warning of 10-15% battery remaining – and I distinctly recall the ability to do a good amount of web browsing without any battery concerns in days past.

So today is the first day that I’ve disabled Latitude on my phone as well, and I have no intention of charging it in the car today either.  We’ll see what happens this evening.

It’s unfortunate really, because I’ve found that Latitude is one of those things where you like to Fire and Forget(tm) – that is, turn on the tracking service (privacy concerns notwithstanding) and it’s always available when you need it.  Sometimes it’s a safety consideration, other times it’s a simple matter of convenience.  I’ve even taken to using the Location History to do some data mining.

But until the battery life issues are worked out, it’s no more always-on Latitude for me.

[update 2011/04/06] Well Latitude is back on my phone.  As usual a number of variables have changed on my phone – WiFi is being turned off by Tasker unless I’m on a “home” cell tower, and I’ve upgraded Maps to the latest and greatest (v5.2 I think).

Anyhow, battery life is acceptable at this point (although a Mugen 1800mAh battery is en-route).  And it would seem that updates aren’t going out every 6 minutes – on my phone at least.  Looking through the data logs on Shelly’s phone I was dismayed to see packet data activity every 6 minutes throughout the day – surely an indication of Latitude phoning home.

You may wonder why Latitude is again active on the wifey’s phone.  Hey, you’ll have to ask her – I turned it off a few times and it’s magically gone back on again each time.

So I’ll have to take a look into the WiFi settings on her phone.  I was under the impression that Symbian is very sane about powering the WiFi module, only doing so when an application explicitly requests data access.  And while this could still allow Latitude to request WiFi when it wakes up every 6 minutes, I was of the belief that the user had to explicitely select a predefined WiFi “access point” to use, or else tell the phone to go searching for an available WiFi network.  Which is to say, unless their’s human intervention, the phone shouldn’t be turning the WiFi module on.

So either my understanding of WiFi on Symbian is wrong, or Latitude on Symbian is a just a different beast altogether and it’s misbehaving badly.

More location awareness

Having gotten my feet wet with occupant detection for the home surveillance system, I recently decided to tackle a similar scenario for another application.

This one was bought to the fore courtesy of two seemingly unrelated occurances.  First, was the move to Android from Windows Mobile.  My Touch Pro had a handy menu setup whereby I could easily send automated messages to my home network, and have it Do Things(tm) – notably, whether to notify me on my phone of received work emails.  So far I’ve found no easy solution to do this in Android, save the laborious method of writing and sending the actual emails which command my home network.

But I was willing to let it slide.  Until the second occurence – an apparent increase in the frequency of impromptu meetings at work.  With the need to be away from my desk, but still being at work, I would find myself often penning the emails to my home system telling it to direct work emails to my phone.

The obvious question here is – why not send work emails to my phone all the time?  And the answer should be equally obvious to the (non-existent) masses who read my blog missives; basically, I prefer to exercise a modicum of control over a series of repeating notifications for things that may not be of interest to me at the time.  For personal emails there’s a set of rules that determine what fires a notification and what gets summarized at some point in the future.  For work, I don’t see a point in being notified – by my phone – of a new email if I’m sitting at my desk staring at Outlook.

My excursions into the Bluetooth-powered occupant awareness solution at home have yielded favourable results, and ever since then I’ve sought to automate more tasks.  Many years ago I had written a Win32 program that interfaced with my personal mail server at home, displaying new emails as one-liners in a window that lived in the system tray icon.  The program would determine if I was at my desk based on the screensaver; an active screensaver meant that I was away, and no screensaver meant I was there – much the same way that IM applications determine your away status.  I decided that something similar was required for this new project.

What I ended up with was a combination of a Win32 console application and a WinLogon Notification DLL.  The Win32 console application can poll for the state of the screensaver, but the DLL receives events every time the screensaver starts/stops, or a logon/logoff occurs, or a the workstation is locked/unlocked.  Obviously the DLL has a richer set of conditions available to it than the console app, plus there’s definitely something to be said for event-driven processes vs. polling processes.

But both have their place.  In my implementation, the console app sits on a socket waiting for somebody to connect and tell it that my away state has changed.  This can be the DLL, or it can be a polling thread which is launched by the console app itself – the thread wakes up every x minutes, checks the screensaver, and also pings the main thread with the current state.  The main thread then sends an HTTP request to my home server, which then does all the work required to setup my mail server to notify my phone (or not to notify my phone) when a work email is received.

So long story short – it works.  I’m sure there will be some bugs to work out, but I’m just loving the feeling of having busy little tech bees working behind the scenes, Making Things Happen(tm), without any direction on my part. <g>

Trust (Me)

I’m no psychologist, and most of these Thoughts are based on my own experiences, or my own observations, or some realization that has suddenly made itself apparent – welcome or not – and perhaps a little later than it has to most other people.

Sometimes I’m just Thinking out loud, asking myself (and by extension, asking you) questions in an attempt to gauge my own wisdom – or more accurately, lack thereof.

So on the way to work this morning I started thinking about the notion of Trust.  Admittedly that’s quite a large concept to tackle, but then I got to thinking specifically about something a little easer to handle – what it means when somebody says “Trust me“.

First and foremost: nobody is perfect.  Everybody makes mistakes.  Children may not realize this; they’re too busy Getting On With It(tm), like getting up to run again after they’ve tripped over their own foot (=mistake).  Or crying to seek attention after being admonished for hitting another child (=mistake).  Or squeezing by after Daddy backed into them in the kitchen because Daddy didn’t see them (=Daddy’s mistake).

No, I think that children don’t truly understand what a mistake is until they learn what consequences are, and that there’s something called “Cause and Effect” which links mistakes to consequences.  It’s only after that, I think, that they can start to evaluate their own actions (mistakes), and other people’s actions (their mistakes) and think about what may come next if those actions occur (the consequences).

But I digress.

Adults, at the very least, should know they can make mistakes and that others can make mistakes.  Hopefully they can also admit when they’ve made a mistake.  And – hopefully again – they can understand when somebody else admits to having made a mistake.

So back to Trust (Me).  A classic and well-known trust game has you turn around so that your back faces somebody, then you lean back and hope that the person will catch you.  And assuming that you decide to put your fate in this person’s hands, one of two things can happen next:

  1. The person catches you.
  2. The person does not catch you.

The question is – if the person does not catch you, is your Trust in that person shattered?

The question I asked myself on the way to work this morning was this: was I trusting that I would be caught, or that the person would try their best to catch me?

At that point it dawned on me – and you may disagree – that often times we place our trust in the “thing” rather than placing our trust in the person.  Christians may be used to trusting in God that things will work out, even if the things don’t work out the way we expect them to.  But how often do we extend that same consideration to the people in our lives who have made the same promises to Love, Honour and Protect us?

People who we believe to be responsible.  People who have demonstrated that they have our best interests at heart.  People who seem to be diligent in their efforts.

Children trust their parents implicitly, and forgive them in no time at all.  It’s only as we get older that we start to understand what a mistake is and what the consequences are, and then we focus less on the person and more on the particular outcome – or possible outcome.  Our trust wavers, when in fact our relationship hasn’t changed – only our focus has, on the thing rather than the person.  For some reason we expect perfection, knowing full well that there’s no such thing.

And while I can admit that some things border on unforgiveable – infidelity, crime, lies – I also submit that Trust issues impact us in matters that are far less obvious and consequential yet far more frequent.  Things that seem trivial – like the infamous “backseat driver” – but are serious nonetheless because they speak to the issue of Trust.

It would seem, then, that the question of trusting somebody should be a last resort.  And as is the case with most issues of Life as we age, what was once an implicit thing now requires a decision and concerted effort on our part.  We must make the decision to relegate that question to the back of the line; behind things like practicality (“were my expectations fair?”), relevance (“does it need to be corrected?”), remorse (“is s/he making an effort to correct it?”), and mutual ownership (“how can we correct this?”).

It’s easy to feel betrayed when you lean back and your bum touches the ground.  But then you realize that it’s a Good Thing(tm) to have somebody there who’ll do their best to keep you standing.

Is he smarter than the old man already?

So it’s been interesting putting Andrew to bed lately. Experiences have ranged from incessant screaming – usually as a result of falling asleep in the car and being rudely awakened upon getting home – to a general displeasure with the notion of being left alone to go to bed, to being quite accommodating and laying down when asked.

Being the male parental unit, I have the natural (dis)pleasure of having no natural maternal instinct with which to justify my actions and decisions. Which is a long way of saying that the Mrs. does most of the intricate caretaking, which seems to include bedtime.

But for whatever reason, the little man has been giving Mommy a hard time of late in matters of nocturnal slumber – while I seem to get his best behaviour, which includes laying down upon command and remaining generally content until Sleep finally comes knocking.

Mommy shouldn’t take it personally. Kids can be fickle, especially at the tender age of Almost-2.

But the little guy definitely had me on pins and needles this evening, as he seemed reluctant to lay his head on his little pillow despite my fervent requests. This evening he had elected to be partial to a toy airplane that Mommy had brought home a few weeks ago, and in an effort to keep the boat stable we tend to let him hold on to his favoured toy after bathing and just before bedtime. Normally he’s fine giving it up just before he goes in the crib, but tonight the signals seemed muted.

So there we were – me with blanket in hand and he sitting in the crib with plane held high. “Oh no” I thought; “He won’t be so cooperative tonight”. And for what seemed like an eternity, there he sat, plane held high, with me holding his blanket waiting for him to lay down so I could cover him.

Then my heart leapt into my throat as he stood up; surely this was the beginning of an hour-long protest. My ability to bid him a happy goodnight had apparently waned.

And then, he raised the plane even higher and moved it convincingly in my direction. And finally I understood – it was bedtime Daddy, not playtime. The plane had no business being in bed with him, and he wanted me to take it. And I having done as he wanted, he immediately lay down to begin his customary soft soliloquy, culminating 20 minutes later – as usual – with Sleep.

Thanks son 🙂