Posts Tagged ‘Google’

Software is all about Context

Monday, February 22nd, 2010

Context is a very important factor in software development. Knowing the conditions under which your software will be used is an integral part of crafting a positive experience for your users. Many companies take this to heart and create truly engaging software that really connects with its users, but the vast majority miss the mark. While I’m sure I’d have no trouble pointing out a myriad of context-related issues in software made by Average Joe Developer, today’s focus will be on showing that even the top names in software aren’t perfect.

Exhibit A: The iPhone’s Clock.app

Let me tell you a story. A few weeks ago, the fiancée and I were scheduled to meet with a potential wedding venue early Saturday morning. Given that it was a bit out of the way and we tend to oversleep, we thought we’d be smart and set an alarm using the iPhone’s default clock app.

So Friday night, we set an alarm thinking it would wake us up Saturday morning. It did not; it turns out the alarm we set was for weekdays only! While this was entirely our fault, I’m still going to call Apple out on not taking context fully into account: when we set the alarm, why didn’t the app warn us that the alarm wouldn’t go off the next morning? I would imagine it’s very rare that anyone sets an alarm more than a day in advance. It’s much more likely that when someone sets an alarm at night, they expect it to wake them up the next day. This is a case where a neat feature is actually an annoyance because context isn’t handled as well as it could be.

Exhibit B: Google Maps

Continuing our story, while I was frantically trying to get ready I was loading Google Maps to get directions to our appointment. After punching in the address and asking it to route us there, Google Maps told me the trip would take over 9 hours. I freaked out! We don’t have 9 hours, we have 30 minutes; is this the right address? Did we accidentally book an appointment at a venue 9 hours out of Ottawa?

Actually, it turns out I had Google Maps set to give walking directions. Again, my fault, but again, where were the developers on this one? Did they really think I wanted to walk over 9 hours to get somewhere? Why not recognize that I was probably looking for driving directions and put a message at the top of the screen asking if that’s what I meant?

(For the curious, this story did have a happy ending: we made it there a slight 15 minutes late, and this was the venue we eventually chose for our wedding.)

Exhibit C: Firefox’s Spell-Check

Firefox is an incredible piece of software. It is currently the browser of choice for about one quarter of all internet users, and in many ways helped to revolutionize the web browser market. But one area where it hasn’t really advanced as far as it could have is its built-in spell checker. I don’t have a fancy story for this one; the data speaks for itself. Here is a list of words that show up as spelling errors in Firefox 3.6:

Some of the internet’s most popular websites:

  • YouTube
  • Facebook
  • Myspace
  • Flickr

Well-known web technologies:

  • Skype
  • Silverlight
  • Webkit
  • Wordpress, CMS
  • PHP, CSS (it gets HTML)

Very common computer words:

  • Inbox
  • USB

Extremely successful desktop software:

  • Photoshop
  • PowerPoint

Apple products:

  • iPod, iPhone, iPad
  • Macbook
  • iMac
  • OSX (it gets Linux and UNIX)

These are all very common words in internet parlance, and it’s ridiculous that they are highlighted as possible spelling errors. Why not add them to the dictionary? A simple white-list that could be crowd-sourced to the community seems right up Firefox’s alley; I wouldn’t be at all surprised to see this addressed in a future release.

What can we learn from this?

My main take-away here is that context is a big factor in software development, and one of the hardest to get right. Even the big guns have room for improvement, which means the rest of us likely do as well.

An Excellent Use-Case for Google Wave

Friday, January 29th, 2010

Yes, another post about being engaged (it’s kind of this week’s theme). I promise this will be the last one, at least for a while; there are just a lot of interesting thoughts coming out of planning a wedding. We’ll resume our regular totally-non-marital posts at one per week on Monday.

I’ve been meaning to write up a good post regarding my take on Google Wave pretty much since I launched this blog in October ‘09. The trouble was, I could never find a really good use-case that demonstrated how powerful and useful Wave is — until now. So without further ado:

I don’t understand how people planned weddings before there was Google Wave.

My fiancée and I are both the type to do a lot of research and planning before a big financial decision. So when it came to booking a venue, with so many different options and associated costs, we both dove right in. The only problem was that we had a really hard time staying in sync; we would both research the same venue or lose track of contact information for a place we really liked — it was a disaster. We tried ad-hoc discussions in person (this didn’t work; human memory is far too fallible) and a mess of emails (I had to scrub my inbox with a sponge after that one) but we found we were still stepping on each others’ toes. Then it dawned on me:

What we really needed was a wiki.

We needed someplace where we could both see and add and edit information, highlight important dates or phone numbers, and easily compare venues to one another. Nothing huge (a CRM would have been way overkill), just a light-weight wiki that would be approachable for my not-very-geeky soulmate.

So I fired up Google Wave and spent a couple of minutes explaining it to her. Now we have a wave for wedding venues, where each wavelet (that’s what the posts in a wave are called) is about one venue. When either of us comes across a cool-looking venue, we can quickly scan the wave to see if it’s already there, and if it isn’t we can add it and fill in some quick details. If we want to contact them, we highlight the contact info, and if we make an appointment to visit a venue, we highlight the date as well; this way even at a quick glance we can quickly see when our appointments are and if there are any left to make. If either of us have comments about a venue, we can reply to its wavelet; this takes care of the usual meta-discussion in an informal but persisted way (the indent makes it easy to ignore when skimming).

So far, this is working incredibly well. We’re both completely in sync all the time, and it’s easy to find key information by quickly looking in one place. We’re already starting to add new waves for other things we’ll both want input on, like the photographer, the DJ and the cake. I have no idea how else we could be doing this as efficiently as we are; Wave is suddenly crucial to our planning process.

What went right?

I’d like to touch briefly on why this has worked out so much better than my previous experiences with Wave. I think one of the big problems with Wave is that information tends to get scattered — it’s easy to lose something in a mountain of replies, and the inability to hide or mass-delete old content causes a lot of unnecessary and frustrating sifting. What I did differently this time was enforce some basic rules about how the wave should be structured: one venue per wavelet, replies are allowed for discussion if required. This way there’s no checking to see if that golf course with the gorgeous gazebo is nested somewhere in a chain of replies, or deciding what depth to add that maple farm that four different people have recommended. They’re both easy decisions, and sticking to these informal rules really pays off in terms of keeping the wave easy to read and update.

Have you found a good use for Wave?

I’m curious to know what other creative uses people have found for Wave. If you’ve got something good, please share!

We Live in a Communication Age

Wednesday, January 27th, 2010

Suppose the year is 1990, and you have some big news to share with those close to you and the world in general. How can you do it? There are a few ways:

  • In person
  • Over the phone
  • In a mailed letter
  • Through a printed announcement (say, in a newspaper)

Fast forward to today, a mere 20 years later. How much has changed? In addition to the ways mentioned above, look at all the new tools we have:

  • Voice chat (Skype, Google Voice)
  • Video conference (Skype, iChat)
  • Instant message (from any number of clients)
  • Text message (or MMS)
  • Email
  • Facebook (status update, wall post, private message)
  • Twitter (tweet, @someone, DM)
  • Blog post

And this is just what I used on Monday; there are many others. We’re more connected than ever before. We can reach more people, faster, through whatever means is convenient for them, and the list of applicable technologies just keeps growing. It’s incredible!

A brief take-away

Monday reminded me how many tools there are for spreading messages that I don’t normally use, and made me realize that sometimes I have to look outside of my usual channels to reach people in a way that is most effective to them. I’m sure there are other things I will think of over the next little while that I can communicate more efficiently using tools other than my defaults; perhaps the same is true for you?

Are Google Wave invites to blame for recent Hotmail/Gmail phishing attacks?

Wednesday, October 7th, 2009

I have no idea how the recent Hotmail/Gmail account compromises actually took place. What follows is a simple hypothesis based on a somewhat embarrassing anecdote.

Like many of you, I am currently waiting for an invite to Google Wave. Imagine my joy when this came across my inbox one Tuesday morning:

Subject: Google Wave invite

Congratulations! You’ve been invited to Google Wave by your friend {a close friend of mine with a Wave account}. Click the link below to register:

http://bit.ly/3lBnzB

Still half asleep (and now bursting with joy!) I open the link, suddenly thinking it’s strange that Google would use a url-shortener to send me a Wave invite. As you may have guessed, what was waiting for me was not a desirable HTML5 product but was in fact a YouTube video of Rick Astley performing Never Gonna Give you Up — yeah, I got rick-rolled a year after rick-rolling people was cool.

Now I’m fortunate that my dear friend (it was davefp) has a sense of humour – the truth is I technically just fell for a phishing scam, and I’m lucky there was no malicious intent involved. This got Dave and I talking; phony Wave invites would be a very opportunistic way to steal account credentials from eager Gmail users, and could be what caused the recent account compromises.

Let’s look at the reasons why I was inclined to trust the link in the email I received:

  1. I was expecting an invite
  2. It looked like an invite
  3. I was half asleep
  4. I was overjoyed

I was expecting an invite. There are thousands upon thousands of Gmail users anxiously awaiting Wave invites. There are thousands upon thousands more that have no reason to expect an invite but would still take one if one were offered to them. This is an exciting product, after all.

It looked like an invite. Sure the shortened url was one possible give-away, but even that could have been improved by masking the url with text that looked like a safe url, such as http://wave.google.com/mygmailaccount. Add a couple of Google images and maybe a formal signature and this could have been a lot closer to foolproof.

I was half asleep. Admit it, you’re not always paying attention when you check your mail either. We check our email late at night, early in the morning, on our mobile phones, while we’re eating or playing with a pet; there are all kinds of distractions that may contribute to not paying full attention to routine tasks like checking email.

I was overjoyed. Don’t discount this one — human emotion is what sells a social engineering attack such as phishing. I had a rush of feelings and thoughts flying through my head as I clicked a link I barely looked at: who do I know that already has wave? I hope it’s awesome! who will I invite? I should thank Dave for inviting me! where’s the link for that two-minute introduction video I saw the other day?

Of course it could just be a coincidence that Wave launched a few days before a high-profile phishing scam, and it could be that I’m the only one stupid enough to fall for a prank like this, but at the very least I think it’s conceivable that a phishing attack based on Google Wave invites could have snagged 30 000 users or so from a group of major email providers.

Am I out of my mind? Have you heard a better explanation? Share some thoughts and leave a comment.

Does Chrome Frame do more harm than good?

Wednesday, October 7th, 2009

There’s been a bit of buzz around the web lately after Google proposed a solution to the IE6 problem in Chrome Frame. While it seems like a great idea up front, there’s actually quite a bit of controversy behind whether or not this is a valid solution. Read on for a quick summary of anything you might have missed, followed by my own take on the matter and a chance to share yours.

Let’s get you caught up

Internet Explorer 6 is a browser that was created for Windows XP and released in 2001. Due to the massive popularity of XP and the widespread adoption of the Internet Explorer name going into this millennium, it’s still used today by a non-ignorable portion of web users. This is a problem for web developers, because it’s often necessary to bend over backwards in order to get new and exciting web products to perform reasonably in a browser that is about half as old as the world wide web itself.

While developing Wave, Google had to come up with a solution for IE6, and decided to do something novel by creating a plug-in for Internet Explorer which replaces the entire web page with an instance of Google Chrome, a very modern browser capable of rendering the latest-and-greatest the web has to offer. This “Chrome Frame” is then used to render the intended page, all completely transparent to the user who is still using and looking at Internet Explorer.

Now obviously this was met with a bit of backlash from Microsoft, who was none too happy seeing Google inject its Chrome rendering engine into Redmond’s (in)famous browser. They pointed out that this makes IE less secure, which Google obviously disagrees with, and some blogs noted (correctly) that Chrome Frame breaks accessibility features in IE which is kind of a big deal. Further supporting Microsoft was Mozilla (!) who referred to the Chrome Frame solution as “browser soup”.

Of course there are many proponents of Chrome Frame as well; it is a very convenient way to handle the growing discrepancy between IE6 and the modern web, and in some cases that benefit alone will outweigh the issues described above. There’s an article about how Chrome Frame will affect the corporate world which has sparked some very interesting discussion in the comments (which are now more enlightening than the article itself) — I highly recommend taking a look.

My thoughts on the matter

I think an underrated aspect of this debate is that this is about users, and what they expect from a browser. It’s not a technical problem, and it shouldn’t be met with a technical solution. Google is essentially offering a patch that will encourage users to continue browsing the web with a broken browser. What Google should do is inform users of the problems with IE6 and explain the benefits of a new browser with a very strong recommendation to upgrade. This will result in more educated users using better browsers, which is far more valuable to Google and the web as a whole than more users still clinging to IE6.

What’s your take?

There are a lot of different ways to look at this issue. Share your perspective and leave a comment!