Archive for February, 2010

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.

New Page: Why I Blog

Monday, February 15th, 2010

When I have something I want to write about that I’d like to be able to keep up-to-date, I put it on its own page rather than a new post. The first such page was a rundown of what I do with OCRI to help introduce high-school students to careers in high-tech, and today I’m adding another one — why I blog. Go check it out! The idea is that these pages will change over time, and I want a slightly more formal space to keep them so that I can make sure they always reflect how I currently feel.

In other news, today is my birthday! You don’t have to get me anything, but if you really want to make my day here is something small you can do: Think of your favourite post on this blog, and email me or leave a comment below to tell me what it is. Simple, right? But it would really mean a lot.

The Present and Future of Flash

Monday, February 8th, 2010

Adobe Flash is at an interesting point in its existence. For about a decade, it was the only way to get rich, dynamic content onto the web. If it was the year 2001 and you wanted a really sleek UI, or video, or any kind of animation, Flash was your best bet — it was pretty much a monopoly. Then things started to change:

  • DHTML started to take over some of the really basic use-cases for dynamic events like rollovers and showing/hiding content.
  • AJAX made truly dynamic content easier for the non-flash world.
  • The mobile web started to take off, with most devices not capable of supporting Flash.
  • Microsoft released Silverlight, a competitor to Flash in the rich interface space.
  • Apple started releasing wildly popular devices that intentionally avoided supporting Flash.
  • Browsers started implementing support for HTML5 and CSS3, which are slowly being adopted by designs that would historically require Flash.

Slowly but surely, alternatives to Flash have been picking up speed, and things beyond Adobe’s control have prevented Flash from penetrating certain markets (mobile in particular). What does this mean for Flash as a technology?

Flash isn’t going away anytime soon…

This isn’t one of those posts about how HTML5 or the iPad or global warming is going to spell the end of Flash. Flash is a major player in many areas of the web, most of which won’t change anytime soon. In particular:

Games — There are tons of online Flash games. This is a huge market that Flash has absolutely dominated since day one, and none of the technologies mentioned above can compete with Flash on this level of interactivity.

Video — Like it or not, HTML5 is not yet strong enough to handle cross-browser, web-based video. Even when it is (and it will be sooner than you think) Flash will still be used well into the future because it’s the only solution for legacy browsers, and the vast majority of users don’t update their browsers as often as they should.

On top of that, Adobe has created an entire ecosystem of software and a vibrant community for designing, building, and publishing Flash-based applications. Plenty of people are heavily invested in these tools, and no amount of evangalism is going to convince them that their problems could be better solved by today’s Flash-alternative du jour.

…but Flash will start having a reduced role on the web in general.

It would be unrealistic to pretend that these new technologies aren’t eating into Flash’s market share. For one, even in the most complex cases, some projects are choosing Silverlight over Flash. Not the majority (not even close) but more than none, and Microsoft is a powerful competitor that can compete with Adobe on the development tools and community levels.

Secondly, HTML5 and CSS3 can do some pretty neat things. For cases such as modern, dynamic navigation and simple logo animation, it will soon make much more sense to use features supported by the browser than a heavyweight proprietary plug-in; especially if all you need is a quick piece of eye candy.

Finally, there are the problems caused by Apple. I can think of three:

No iPad/iPhone Support — The longer this keeps up (and I don’t see it changing anytime soon), the more likely it is that someone will create a cool, interesting way to do fancy, Flash-like things in an iFriendly format. And then a general-mobile format. And then a web format. The last thing Flash needs right now is for some brilliant start-up to shake things up even further.

Macbooks are getting popular — Adobe claims that Flash runs on every platform ever, but as Chris Rawson astutely points out in this excellent article, that’s been easy to say while most of the world has been running Windows. With Apple’s laptops gaining popularity, people are starting to realize that Flash doesn’t run as well in OSX. The more Macbooks Apple sells, the more Adobe’s claims of market domination will start to dissolve.

No iPad/iPhone Support: take two — I want this website to be viewable on the iPhone, the iPad, and whatever whimsical hardware Apple comes up with next. That alone means I’m not going to use Flash in my blog’s design, ever. I’m admittedly in a minority here, but I wouldn’t be surprised if today’s kids getting into web design are also going to want to show off their cool, new, standards-compliant sites on their cool, new, iApproved devices. This sort of trend will slowly but surely push Flash out of the cool-new-site space.

Getting along with OSX is something that Adobe is going to have to work towards to keep Flash competitive, especially as new markets evolve out Apple’s hardware.

I’m not anti-Flash.

I’ve been using Flex Builder to build cutting-edge Flash applications for years, and I still believe there are many cases where Flash is a legitimate choice for creating a rich internet experience; there just aren’t as many as there used to be, and this combination of new, exciting technologies and pressure from Apple are making for some exciting times in the world of web design.

2010 is shaping up to be a wild ride for Flash and its competitors, and I can’t wait to see where it takes us. What are your predictions?

The iPad Dilemma

Wednesday, February 3rd, 2010

Up until very recently, I was seriously considering getting a Macbook. I have a desktop PC that covers my day-to-day tasks, but I want something I can use from my couch, and in particular I’ve started to really miss OSX (I used an iBook as my primary machine up until more recently than I’m willing to admit).

Then Apple releases the iPad, which promises to do everything I was planning to use my Macbook for at nearly 1/3 the price. Now what? Do I keep eying the Macbook or start counting the days until the iPad hits stores? I’m completely torn.

First let’s get a few things out of the way. I don’t want the 3G version of the iPad. I have enough monthly bills already, and my iPhone covers all my 3G needs. I’m also not the kind of person that needs much space, so the low-end iPad suits me just fine. And I don’t want a Macbook Pro; a regular Macbook is easily enough power for me, though I would probably take the ram upgrade for an extra $100. With that in mind, we’re looking at $500 for the iPad vs $1200 for the Macbook.

I want something I can use while sitting on my couch, and all it has to support is writing blog posts and your standard email/browsing activities. Both machines are perfectly capable of performing these tasks, and I’m already fluent in both OSX variants from owning an iBook and an iPhone.

Now for the interesting part: the advantages each device offers.

Advantages of the iPad:

  • It’s significantly less expensive, as we’ve already discussed.
  • You can turn it sideways. That may sound ridiculous, but I much prefer web browsing on a screen with more height than width.
  • I love the form factor. Watching the video on Apple’s website… It doesn’t look like he’s holding a tablet and running a browser; it looks like he’s holding a browser. This level of UX is absolutely a step above anything else on the market, Macbook included.
  • It has substantially more novelty, and all kinds of potential that we don’t know about yet.

Advantages of the Macbook:

  • It’s a well-established line. You know exactly what you’re getting, and how awesome it is.
  • Multitasking. I’d like to be able to have a browser open at the same time as Twitter and an IM client.
  • The platform is more open. I like using browsers other than Safari, running commands in Terminal, and hacking together useful AppleScripts.
  • What if I want to do some iPhone development? I’d need a Macbook, unless Apple releases some sort of iPhone-specific XCode for iPad (and who’s to say they won’t?)

It’s a mess. There are so many differences, but the advantages of each individual device are so appealing that I can’t make up my mind. Worst of all, I’ll probably regret either decision — if I go with the Macbook, I’ll sigh longingly every time I see an iPad; if I go with the iPad, I’ll curse every time it can’t do something that the Macbook can. I’m still undecided, and that’s not likely to change anytime soon.

What’s your take?

Should I go with the iPad or the Macbook? Are you in a similar position?

Design Blogs I Follow

Tuesday, February 2nd, 2010

Back in January I wrote a post about how I’m going to try to update every Monday for the entire year, and keep track of how many weeks work and how many weeks don’t. For the first time all year, I missed a week.

I’d like to say it’s because I’ve been busy (I have) or because the computer I normally use for blogging won’t boot (it won’t) but the truth is I had a really good post I wanted to write that I didn’t get done, and that’s lame. I’ll have it up in a couple of days, but until then I’ve prepared a list of pretty things for you to look at while you wait.

Last week, a friend of mine asked me what design blogs I currently follow, and here’s what I sent back:

Smashing Magazine — Easily the most popular name on the list. I find they do post a fair bit of noise, but they have some really good stuff every now and then that’s certainly worth following for.

For a Beautiful Web — Probably the best design blog I follow. Lots of interesting stuff, highly recommend.

I Love Typography — This is the only strictly-typography blog that I follow. Gives a very good summary of new and interesting type-related things once/week and a few other misc posts here and there (which are usually pretty interesting).

100 Redesigns — This guy is doing something really cool: every week he picks some ugly looking major website and posts a redesign for it. They’re good designs, and I find them inspiring because redesigning web sites is a valuable skill.

Dustin Curtis — This guy makes a completely new design for every post on his blog, and he’s a totally ace designer. Oh, and his posts are great too.

Jason Santa Maria — This guy has some remarkable credentials and his blog is a great source for interesting design-related ideas (though posts are often few and far between).

Stop Design — Another guy with an awesome design blog that doesn’t update often. He’s a graphic designer that used to work for Google but now works for Twitter, and his website is literally the best-designed website I’ve ever seen. Every time I visit I find something new about it that I totally love.

Colour Lovers — This isn’t really a design blog, but it’s good inspiration for colour palettes, and every once in a while they post a gem of an article about colour theory or how colours are interpreted on a biological level.

The Oatmeal — Ok, so this is clearly a web comic of sorts, but the design of the comics is always top-notch and I learn more from one of these comics than I do from ten self-proclaimed ‘awesome CSS galleries’.

Who do you Follow?

If you follow any great design blogs, I’d love to hear about them; leave your own list in the comments.