Bittersweet

We took Andrew to an indoor fair the other day. And while he seemed to enjoy himself, I couldn’t help but feel that the end of one era was imminent and a new one was just around the corner.

He first seemed to be taken with one ride, whose most striking feature was that it was the tallest (or second tallest) ride in the fair. No matter how many times I asked him if he wanted to go on it, the answer was always the same: “Yes”.

So here we have a child who has never been on something that monstrous, yet was keen to undertake the challenge. And while that’s quite admirable, it also felt like the seeds of independence – and specifically, independent thought – had started to sprout.

I took him on that ride, and he enjoyed it. He laughed and giggled as I spun the gondola around and around – slowly at first, then faster as I realized that he wasn’t afraid. I was very proud of him in that moment.

Later he took a turn in kid-sized bumper boats, in a kid-sized pond. And while it was previously the case that he couldn’t bear to let go of Mommy or Daddy’s hand and venture on his own, he now managed to do just that. It took a little coaching, but he allowed the nice lady to help him into the kid-sized boat and float off on a kid-sized adventure while Daddy turned his back – briefly – to ascend to the adult-sized viewing area.

And he was content – until he decided that he had had enough, wanted out, and would stand and get himself out if that’s what it came to.

He’s still an innocent boy after all.

Canada’s Worst Driver – a black-eye on the state of driver education and licensing in Canada

I’ll confess to being among the many who watch CWD, wondering how it is that anybody can be so <snobbish-description-goes-here> as to make the mistakes that the drivers regularly make.

And make no bones about it – in most cases, the drivers on the show find themselves in the woeful real-world situations they confess to have been in solely as a result of their own outlook on the privilege of driving.  Whether through ignorance, or arrogance, or a laissez faire attitude, they simply don’t take the responsibility seriously.  And in so doing, they put themselves and others at risk every day they’re behind the wheel.

Admittedly, CWD is a show.  And like any show, it needs to offer entertainment value.  True to its name then, you’re seeing a microcosm of the worst driving offenders the country has to offer.  I’m sure – or at least, I hope – that the percentage of Canadian drivers who’d make for good CWD viewing is actually a statistically-irrelevant number.

What can’t be denied, however, is that the drivers who appear on CWD have been granted the same privilege that even the best Canadian driver has been granted – which is, obviously, the privilege to drive on public roads.  That’s right – provincial governments have determined that the drivers who make you face-palm week after week on CWD are as capable as you are to pilot a two-ton vehicle down a road covering 28 metres per second, and taking somewhere in the neighborhood of 2/3 of a football field to bring to a standstill from the fastest legal speed.

As far as I’m concerned, Canada’s Worst Driver says much more about the driver training and licensing system in this country – and even the enforcement and insurance systems – than it does about the drivers who appear on the show.

I was among the many who was particularly upset with the HTA 172 act which made it a criminal offense to (among other things) drive 50km/h over the posted speed limit.  Is that because I like to drive 50km/h over the limit?  No – if anything, the act made me raise the speed-limit warning in my car from 13x km/h to 140km/h.  While there are many things wrong with HTA 172, what was and still is upsetting to me is that it goes about solving the wrong problem with the wrong method.  Like, the completely-wrong method. And the completely-wrong problem.

CWD is a perfect example of how HTA 172 solves the wrong problem.  When somebody decides to stop on a 400-series highway because they’re afraid to merge, or gets flustered at a downtown intersection and ends up running a red light at a busy intersection, no application of HTA 172 is going to solve that particular problem.  I’d be willing to bet that the chances of somebody dying due to a distracted driver running a stop sign are significantly higher than the chances of somebody dying from a driver doing 151km/h on highway 407.  Yet a failure-to-stop conviction will run you $110, while a stunt-driving conviction (which can be as innocuous as doing donuts in a parking lot) can take $10,000 out of your wallet, plus a well-deserved six-month break in a detention facility.

If there’s anything that CWD makes perfectly clear, it’s that provinces need to implement regular re-testing, and the driver education system needs a total overhaul.  I find it strange to believe that the province of Ontario happily granted me a full G license without me ever showing them that I could safely drive faster than 50km/h.  Perhaps the parallel-parking test was enough to satisfy their fears.

I’ve said it before, I’ll say it again – I have no problem whatsoever with being re-tested every 5 years.  Even if it amounts to a doubling of my annual car registration expense.  Why?  Because at least then I’d feel safer in my car knowing that everybody else on the road has been regularly-tested as well.  And while I’d prefer that the re-test is a practical driving test, I can admit that I’m sensitive to the potential financial challenge that may pose to the province.  Fine, start off with written re-testing, and make it occur in a controlled environment so that the answer isn’t a Google search away.

Maybe after that we can talk about the lunacy of keeping Ontario limits at 100km/h on highways where people regularly cruise at 130km/h without issue.  Maybe then I’d welcome HTA 172 knowing that 1) drivers are tested regularly, and (2) the posted speed limits actually make sense.

For now though, I can only tune-in to shows like CWD and laugh – at a situation that isn’t really funny regardless of how you look at it.

Does this make me an advanced Android user?

So I finally took the plunge and rooted my HTC Desire Z.

All the goodies – perm-root, S-OFF, engineering hboot, clockwork recovery – in addition to the SIM-unlock I already had.  Probably SuperCID as well.

You may be asking – why, oh why would you do such a thing?!?

Two reasons.

First –

Google recently p’d me off and made some unwelcome changes to two of their core products. Ever since v2.3.5, Gmail has had its database locked to other apps, meaning that things like my handy Missed Reminders app (no longer supported or available on the Market 😦 ) wouldn’t give me repeating alarms for unread Gmail email.  This meant reverting to the version of Gmail that came up on my phone, and suffice it to say that – although functional – I found myself missing some of the newer features.  To get around this, I visited a 3rd-party site to download v2.3.4 of Gmail, but I never felt comfortable running that binary from the untrusted source.

In the same vein, Google Maps post-v5.10 features useless traffic condition colours in Navigation.  I use this feature almost daily during my commutes, so again I went to a 3rd-party site to upgrade my stock version of Maps to 5.10.x.  Same concerns as above.

Rooting allowed me to do some interesting things with Gmail, where you take the official .apk and modify it to restore the database permissions that existed pre-v2.3.5.  So that’s cool.  It does mean that I have to do the same trick on each new version of Gmail that gets released, but at least I can keep up-to-date with an official (though modified) binary.

No solution yet for Google Maps, but this thread has me holding out hope that Google is aware they messed up and will issue a fix in the next release.

And on the subject of security, I figured it best to get ahead of the curve and root my phone myself rather than have some dastardly 3rd-party app do it stealthily without my knowledge.  With Superuser installed I get a notification whenever an app requests root access.

Second –

I’m running the stock Froyo 2.2 ROM that came with this phone.  I’m mostly okay with that, because so far I like the HTC customizations (although I’m using ADW Launcher vs. HTC’s Sense launcher) and I’m not pining for Gingerbread – I’ll most likely go straight to Ice Cream Sandwich some time after CM9 becomes available on the Z.  However, the stock ROM contains bloatware that I really wanted to do without.

Rooting allowed me to remove the bloatware (courtesy of Titanium Backup, although other adb-ish methods exist).  It also allowed me to add some additional functionality, like being able to power-on the screen by pressing the touchpad button vs. pressing the power button.

So that’s all well and good.  But does that alone make me an advanced Android user?

Not exactly, but having delved into adb and manually restoring my SMS history and various app prefs via the adb shell – yes, I think I’m more advanced than your average user, and probably half-way to being as advanced as the guys who wear a different ROM every day and like to flash radios.

A nice side-effect in this adventure is that my phone is running faster than before.  Same ROM, but I ended up having to wipe data and perform a factory reset after the root process left my phone in a constant boot-loop.  Blessing in disguise that was.  Hopefully it offsets the 5-hours-of-sleep price that I had to pay.

My ’11 Gift List

So the first thing you should know is that this post has been sitting in draft status since November 20.  Ya, there’s just been that much going on that I don’t even have the time/inclination to be selfish…

Anyhoo, the wifey is understandably anxious regarding what to get me for the dual-whammy of birthday and Christmas, so my hand is being forced – I have to publish this list.

In keeping to form we’ll first reminisce about those things that used to be desireables, but are now so passé… 🙂

  • An electric toothbrush.  This is dental hygiene we’re talking about people.  C’mon now.
  • White undershirts
  • Doorframe-mounted chin-up/exercise bar.  Father’s Day yo.

Okay, now the items that haven’t gotten any love yet:

And new for 2011:

  • Safety glasses – so I can use my compound mitre saw with something more durable than a pair of high-school chemistry goggles
  • Shop-vac – so I can do woodwork indoors without fear of coating everything in a fine layer of sawdust
  • A “How to get the most out of your digital camera” class – so that I can… you know… get the most out of my Rebel DSLR
  • A clear, concise and practical list of what to get for my wife, complete with any necessary additional information (like size, colour, model, etc)

And there you have it.

My future is (apparently) here; HP TouchPad added to the stable [updated 02/25/12]

As the title says, my WiFi network is now playing host to a 16GB HP TouchPad. And maybe it’s just my tablet newbie-ness, but I’m not getting what all the fuss is about re: thickness.

Granted, my Fujitsu pen computer (whose location is now unknown…) is probably closing in on 1-inch of girth. But looking at the TouchPad, I’m convinced that a thinner device might still be comfortable to hold but I can’t imagine that it would be any more comfortable to hold.

Now I know that HP wrote off the TouchPad hardware for a number of reasons – not just an inability to compete with iPad on the thickness front – but personally I think that the “thin-is-in” mantra is just more good marketing being thrown our way.

Anyhow, on the software front I can say that webOS isn’t as smooth as Android, and most definitely can’t hold a candle to iOS. But if you read a previous article you’ll discover what I find most alluring about webOS, performance issues aside. I’m currently in the process of adding patches to make the interface that much more snappy, and the major project at present is to enable streaming of my network video and TV shows. DLNA (or uPnP) is the name of the game here, and it’s requiring a certain amount of synergy between client and server that I haven’t quite mastered yet.

But so far I’m relatively content. More later.

[update 2011/12/16]

So I’ve had the TouchPad running for almost two months now.  And like most people’s TouchPad experiences, the road hasn’t been entirely smooth.

It all started when I tried to do the initial setup of the TouchPad while tethered to my phone’s WiFi hotspot. The tablet kept complaining that it couldn’t reach the HP servers.  Not knowing if this was an HP issue or a carrier issue or what, I didn’t think much else of it.

I had the same problem using my main WiFi network at home, but again, I figured maybe the HP servers were overloaded.

Many attempts later, I finally completed the setup.  And my main problem was spotty WiFi performance.

I posted a thread over at forums.precentral.net (now webosnation.com) detailing the problem, so you can head over if you want the juicy details (and an idea of how many other TP users have comm. issues).  The Coles Notes version: I had no problem accessing my intranet resources over WiFi, but browsing the interwebs at-large was a hit-or-miss affair.

As a result I finally settled on setting up an Apache forward proxy instance, and considering that the TP tends to “live” at home, this solution has proven acceptable.

So what’s my almost-two-months impression of the tablet?

Truthfully it’s getting the intended job done.  I have to admit that there are some usability issues related to the browser (which, in general, I knew to have some issues before ever joining the webOS camp) – most notably, accessing Hotmail requires some patience. But for the most part it’s quite enjoyable, and having Flash makes things very nice indeed.  That I’ve had no issues with Flash videos running fullscreen up to 720p – added bonus.

So I tend to use the tablet mainly for browsing, and this may involve logging into my Google account via the browser and catching up on Google Reader news.  Or I may surf Engadget.  Or CNN.  Or whatever.  It works, and it works well.

I’ve also taken to setting up a Google account specifically for family use, and this account is in fact linked to the TouchPad.  Now, you may recall some concerns I had about a house guest being able to pick up the tablet and read personal information.  But I figured… the main point of this “family” Google account is to setup a synced calendar.  This is no more private or public to a house guest than the calendar hanging on the fridge that we (attempt) to use to track events of relevance to the family.  So the privacy concerns are somewhat moot.  Add in the ability for said Google calendar to sync across the TouchPad, my phone, and Shelly’s phone – automagically – and you have an appealing organizational tool.

Granted, Shelly has asked me more than once about these calendar entries I keep inserting into her calendar… but that’s beside the point 🙂

So for web browsing and family organization, the TouchPad is useful.  Whatever about media consumption then?

I talked previously about DLNA, and I’m happy to say that the combination of bHome and TouchPlayer and PS3 Media Server results in a (mostly) enjoyable experience of viewing network-stored videos on the TouchPad.  I say “mostly”, because sometimes it takes a few finger-taps in bHome for TouchPlayer to actually start playing the video, but usually it just works.  TouchPlayer has some kinks that need to be worked out – most notable a less-than stellar scrub feature – but the ability to play my MPEG2, Windows Media Video and DivX vids on the TouchPad without real-time transcoding?  Priceless 🙂

So am I pining for an ICS port on the TouchPad?  It would be nice to play with, but from what I’ve seen of ICS, it looks a lot like the Honeycomb experience that I already pooh-pooh’d on a tablet form-factor.  Sure, the apps must be fantastically wicked awesome, but I’m quite happy with the fact that I can pick up the TouchPad, get a specific task done, then put it down without feeling obliged to interact with apps just for the sake of interacting with apps.

The web is the OG “app” my friends.  You bettah ask somebody!

[update 2012/02/25]

Just wanted to say that I’m now rocking ICS on ye olde TouchPad. O still think that WebOS wipes the floor with Google’s offering, but I just can’t deny the: polished state of ICS vs. WebOS; the mountain of apps that is Google Market.

Yes yes yes… I know that I wrote previously stating that the web is a great alternative to mobile apps. But there are just some things that a website simply can’t do (at least on a tablet) – like connect to my servers using RDP.

I still think the card metaphor of WebOS is light-years ahead of what any other tablet OS has to offer (save perhaps Blackberry’s PlayBook OS, but we all know where that got its inspiration from…). But… WebOS is struggling for developer attention, Android isn’t. And it shows, both in the available app catalog as well as in the OS itself.

It’s a shame really 😦

Me <3 Opera Mobile

So I’ve been doing some work off-and-on on a mobile version of the site I use to browse/play music on my home network. I’ve wanted a mobile-optimized version of the site for some time, and a recent development with my SHOUTcast streaming client of choice has made this project more of a necessity than a curiosity.

Critical to the operation of the site is the ability to touch-scroll various regions in the page. That, and the ability of the browser to support HTML5 Audio in the MP3 format. And so far, I’ve only found Opera Mobile to be worthy of solving the HTML5 Audio part of the equation while also remaining my mobile browser of choice.

However, I was having no luck with the touch-scrolling part of the equation. Many mobile browsers seem to have a problem handling straight-up overflow:scroll, and even the iScroll Javascript library wasn’t solving my particular flavour of problem. And what was working was working at a horrible pace.

Then I happened to notice that a manual update for Opera Mobile was sitting in my Android Market queue. Among reported changes was an update to the core (or engine) that the Android version of the browser was using. And wouldn’t you know it – upgrading to this version solved all of my touch-scroll issues, and performance is about as snappy as it is on the desktop Opera Mobile emulator.

So colour me happy. Now that the site is functional, I can work on prettying it up and adding gee-whiz features 🙂

Me <3 jQuery

I’m one to scoff at development tools/libraries which purport to make my like easier. Call me a masochist, but something in my head associates “easy” with “anybody can do it”.

I’m also one to get predictions horribly wrong, and the camps that I choose to align with (most notably in the TV sci-fi genre…) have been been known to get beat down by a difference of opinion or a lack of general interest on the part of society at large.

So it was that I heard of Javascript libraries like Prototype and jQuery, but I never paid them any mind. Big mistake. Having seen the latter library mentioned on all sorts of career-development sites, I decided to take a closer look.  And the result, I’m glad to say, is that I’m quite impressed and very likely to rely heavily on jQuery in the future.

It’s not that jQuery lets me do things in Javascript that I couldn’t do otherwise. Rather, jQuery lets me take mountains of code that performs some function and replace it with one or two lines which perform the same function. It really amounts to a shorthand version of Javascript, such that you still have to know what you’re doing in JS before you can use the shorthand.

Admittedly jQuery also lets you do cool things like perform animations. But from somebody who has written my fair share of Javascript animation functions, take it from me when I say that making a simple jQuery call to animate an element is a welcome relief, particularly when you have to consider browser inconsistencies.

So that’s it then – I’m adding jQuery to my recent spate of new undertakings.

OAuth 2.0 and Latitude API [update: it works!]

So my smart thermostat has been doing its homework and keeping itself abreast of new developments.  I’ve been tweaking the automation code and adding bits of logic to accommodate my particular nuances.

You may recall that one of the most important features of my setup is an ability for the system to automatically determine home/away status.  This is based on Bluetooth detection; and while I’ve still to add a large antenna to extend the detection range, I’m also acutely aware that this method of determining home/away status will always be reactionary vs. predictive.

As usual, the Wifey Factor(tm) is playing a critical role here.  A comment was made recently – well, a question actually – as to whether the HVAC system knows when we’re on the way home so that it can start heating/cooling the house automatically.

Admittedly, such a usage of the system leans more on the side of comfort than efficiency.  And I’ve already made a concession to comfort by setting a small(er) offset between home/away temps.  (IIRC, it’s something like 1C in cooling mode and 1.5C in heating mode).  I’ve also approximated a “should be getting home soon” decision process by setting evening programs which differ from the daytime programs; ideally, you’d really only need an overnight program and a not-overnight program, and the occupant detection would determine the home/away offset.

But I digress. In an effort to solve this little problem while also furthering my understanding of web-based technologies (ie, the Cross-Pollination(tm) effect, search the blog 🙂 I decided that the answer may lie in utiliizing the Google Latitude API.

We already use Latitude for tracking purposes, so the privacy concerns have been addressed already.  The premise, then, is simple – my automation system polls Google, gets our locations as reported by Latitude, and then does some calculations to determine if we’re on the way home.

Simple in practice, yes.  More difficult in execution, but only marginally.  One of the unknowns here was OAuth, which serves as Google’s (and many web services’) API authentication/authorization method.  I’d heard about OAuth, but never had a need to look into it – either for work or personal means.

And that’s a shame, really. Anyhoo, OAuth is done and done and now I’ve got my automation system pinging Latitude, calculating distances, and producing raw-ish data that I’ll later analyze to determine the most suitable “peeps are on the way home” algorithm.  I may even use it to supplement the Bluetooth detection method, which is sometimes hit-or-miss in lieu of that big antenna…

One of the more challenging aspects has been deciding what to do with outlier data points.  Latitude has this habit of sending you off 100’s of kilometers in some random direction for no apparent reason; we certainly don’t want the automation system going bonkers by thinking we’re flying in at Mach 5 from some random city in the US. And while I’m sure that there are many statistical methods that one can use to clean a data-set, such an endeavour would be secondary to the purpose of this project.

So to that end I’m currently using a “line of best-fit” (aka the Least Square Method) to fit a straight line to my Latitude data points.  It doesn’t completely solve the outlier problem, but it lessens the impact somewhat.  Anyhow I’ll pore over the resultant distance calcs over the next few days and…

… I’ll post back when I’ve got useful performance data.

[update 2011/09/15] Seems to be working well!  Check out the thermostat post for info.

The Big Social Three ( != Facebook+Twitter+”Google+” )

On the way into work this morning, while stopped at a red light, a billboard inexplicably caught my attention.  It wasn’t particularly creative, and I could say that it was even a little elementary in its design and message.  Nonetheless I read it, and my eyes finally rested on two little images appended to the bottom of the ad:

One image was the Facebook icon.  The other, the Twitter icon.

As a recent inductee into the Google+ membership, I wondered if the day would ever really come when the little “g+” icon gets added to that ubiquitous twosome.  And on further thought, I decided that it probably would not – at least not to the same degree – and that it probably wouldn’t want to be either.

Facebook and Twitter had a definite head-start on Google+ in the Social Media space.  Now, you can look at Apple’s iPod, and probably Microsoft’s Windows Phone 7 (in a few years) and say that they were behind the curve but quickly rose to relevance (or dominance, in the case of Apple).  The primary contributors to their success: innovation and creativity in the case of Apple, and deep pockets and existing horizontal market penetration (XBox Live, Office, Windows) in the case of Microsoft.

Certainly one can argue that Google has some amount of innovation, creativity, market penetration and deep pockets at its disposal as well.  Even so, I would bet that the absence of a pervasive “g+” icon is all but guaranteed in the physical world.

Firstly, I think that Google+ is intended to target a different demographic than Twitter, and certainly Facebook.  While Facebook is garish and narcissistic, and Twitter is a sea of homogenous 140-character posts, Google+ appears to be positioned far more modestly. It’s a tool for an online presence, yes, but a public/private one – much like we have public and private lives.  Then, it’s a tool for organization and managing that presence – exemplified by the “Circles” feature – as well as seamless links into other properties like Picassa.

In my estimation, the result is that you’re more likely to cultivate your Google+ presence than you would Facebook or Twitter.  I mean, let’s face it – the type of person who’s amassed an army of “friends” on Facebook isn’t likely to make the jump to Google+ just to re-amass the same army.  But.. anybody who’s tried to sort the wheat from the chaff of never-ending wall posts and status updates will likely appreciate Google+’s organizational features, and would make the jump to Google+ if only to get down to the business of bringing order to chaos.  The best analogy that I can think of is: Facebook/Twitter = raves and clubs, while Google+ = dinner, Starbucks, cocktail lounge, family gathering, etc.

The second reason why the g+ icon will never become ubiquitous in meatspace is because, well, Google already owns online search and advertising.  Chances are that somebody reading a billboard will be more apt to “google” the company before they ever go directly to Facebook or Twitter and look for the company.  They may even use Google search to find the company on Facebook and Twitter.  And if you’re using a Google product to perform the search, why does Google need to dilute its Google+ brand by playing also-ran to Facebook and Twitter?  It can continue to do what it does best – offer relevant alternate search results and splash advertising beside the results.  In this sense Google has the lead and Facebook/Twitter are playing catchup: that is, Google is the one that’s synomous with “online web” and Google is the one that’s setting about the task of organizing it (and critically, monetizing it).  Facebook in particular is still cultivating a walled garden, and Twitter – while supremely useful in the worlds of trending topics and celebrity gossip – has design limitations which limit its usefulness for much else.

Google apparently has the bit between its teeth with regards to social media, such that Google+ has become an important product within the Googleplex. But it’s not trying to build a Facebook clone, as the cordoned-off nature of Facebook runs contrary to Google’s core business practices.  Rather, I think Google+ is a big player in the evolution of Google’s strategy – which is to make the online world navigable, relevant, and to bring it closer to home.  They’re not trying to own the web, building some alternate ala Facebook’s strategy.  Facebook needs to plaster its blue “f” all over the place in order to drive traffic to itself.  Meanwhile, Google’s doing the driving – to Facebook and Twitter, yes, but crucially to the rest of the resources strewn across the web – not least important of which are the authoritative sites for many of the companies that have a mere shadow presence on Facebook.

A word of caution for Google though: don’t push too hard with Google+.  Google is great at getting its products “to market” without really advertising them.  And because of this, Google rarely seems desperate and they rarely seem as though they’re trying to sell you something.  Any company is capable of being agressive (and enjoying the fruits of that labor, like antitrust investigations and privacy lawsuits) but few are capable of being truly innovative and sticking to a philosophy that resonates with human nature.  Google is uniquely positioned to do the latter.  Don’t blow it.