Categories
Web Technology

Why I don’t hate Internet Explorer 8 (not that I’d ever use it)

This week’s entry is a double feature about Internet Explorer. Part 1 examined why IE4 was awesome. Read on for part 2, where I’ll admit that I’m grateful for IE8.

Let me start by saying that in general, I find Internet Explorer appalling. The fact that so many people have been supporting an insecure, slow, feature-weak, standards-deviant browser with serious rendering problems and an awful user interface for so many years afflicts my soul with such utter disdain for Microsoft’s line of browsers that I automatically regard every new incantation thereof as an affront to both the web and mankind as a species.

Now that that’s out of my system, I don’t entirely hate Internet Explorer 8. I wouldn’t use it, not with so many better alternatives just waiting to be explored*, but it does offer one massive improvement over its predecessors that I’m very pleased with: IE8 has fantastic CSS 2.1 support.

I’m not making this up.

Check out the standards support table on this page, specifically the secion about CSS 2.1. Look at the massive difference between IE6/IE7 and IE8. Even Firefox 3 and Opera 10 can’t claim the same level of compliance. IE8 isn’t just a competitor when it comes to supporting CSS 2.1, it’s a role model.

This is a big deal.

For the first time ever, web developers can finally count on using standardized CSS to create a modern web experience without having to worry about “how to handle Internet Explorer”. Granted there is still the matter of older versions of IE, but with Windows 7 repairing a lot of the damage done by Vista, more and more users are upgrading to a new OS, and with that, a new browser. Writing cross-browser CSS is becoming easier than ever before.

Of course, many people will argue that simply supporting CSS 2.1 isn’t good enough (and they’re right). Internet Explorer is still way behind its competitors when it comes to newer standards such as HTML 5 and CSS 3. But what if this is just the beginning? Internet Explorer 9 is already well into development, and if Microsoft can turn the hobbled CSS implementations found in IE6 and IE7 into what is now in IE8, who’s to say they won’t be able to step up support for CSS 3 and/or HTML 5 in IE9? In as little as a year or two from now, Internet Explorer may be a legitimate browser for cutting-edge web experiences.

Share some thoughts!

What do you think of IE8? What about Internet Explorer in general?


* For the curious, the browsers linked in that phrase are the ones that were selected to show up in Windows 7’s “browser ballot” in Europe due to antitrust charges brought by the EU against Microsoft’s bundling of Internet Explorer with Windows. Computer World offers a great summary and FAQ on the matter.

Categories
Web Technology

IE4 was the Best Version of Internet Explorer Ever

This week’s entry is a double feature about Internet Explorer. Read on for part 1, which examines why IE4 was awesome, then check out part 2, where I’ll admit that I’m grateful for IE8.

I found an old CD at work the other day; it was an install disk for Internet Explorer 4 SP1 for Windows NT and 95, still in its original packaging. I was quick to grab it, thinking about how great it will be to make fun of what an awful browser it must’ve been (I actually never used Windows NT or 95 or even 98.. I was raised Apple until 2000). So I pulled up Wikipedia and started reading, expecting to find plenty of things to laugh at, only to realize that what I was holding in my hand was actually a remarkable software artifact. IE4 wasn’t just great, it was legendary.

IE4 was the first wildly successful version of Internet Explorer. When it was released in fall of 1997, Netscape Navigator was the default “everyone uses it” browser. Internet Explorer, as a franchise, was the underdog. In merely a year and a half, IE4 had attained over 60% market share — it was the first version of IE to capture the majority of browser users, starting the first-ever browser war and a dynasty of sheer dominance for the Internet Explorer brand that peaked at just over 95% market share and is still running today, 11 years later.

IE4 pioneered the Trident rendering engine, which has been used in every version of IE since (and a few other places). It was bundled with the first official version of Outlook Express, and also included a chat client, a VoIP client (which supported video chat), a stripped-down web development platform, and RealPlayer (which was actually popular back then). There was even an optional download package that added an Active Desktop feature, which was essentially a precursor to the widgets found in Windows Vista/7.

IE4 also made significant UI improvements to the Internet Explorer line, moving from the bevelled-button motif that was popular at the time to the toolbar we still see in browsers today (see this pre-IE4 screenshot, then this one of IE4 — both courtesy of this wonderful IE archive site — and note the difference in the toolbar).

In short, this was one kick-ass cut of software. Can you imagine what it would be like if all of Microsoft’s output was this revolutionary? Where would browsing be today if every version of IE raised the bar this high?

Categories
Software Development

iPhone OS 4.0 Predictions

This week’s entry is for the Apple fanatics, and iPhone owners (or potential iPhone owners) in particular.

There was a post over at TUAW last week encouraging readers to weigh in on what may or may not be present in the forthcoming iPhone OS 4.0. I missed their deadline for submitting comments, but read on to hear my thoughts anyway — I’m going to talk about a couple of things I’d like to see happen to the built-in Maps app.

Voice Navigation

There is a big market for GPS-like turn-by-turn directions on the iPhone, and plenty of companies both big and small have thrown their hats in with varying features and price points (an excellent comparison of such apps is available at Pocket GPS World). While this is enough to show that users really want voice-navigated directions on their phone, the big reason I think this will happen is that Droid users already have this behaviour built straight into Google Maps. This is a big feature, and the difference between having it available by default on the Droid and as a paid app on the iPhone is significant, and something I think Apple will want to address.

Augmented Reality

There are a lot of apps designed to help users find nearby points of interest. Some of the more recent ones have started a trend called augmented reality, which is when a live feed of the camera on the phone is used as the background and information is overlayed on top of it based on what direction the user is facing. With the iPhone’s accelerometer and compass, this technique has proven to be remarkably accurate and holds a lot of “wow” factor; something Apple has consistently been a fan of.

Since most of these apps are simply wrappers for the Maps app, why not cut out the middleman and blend an augmented reality feature into Maps by default? This would be Apple’s first entry into the growing augmented reality market, and would really up the ante for developers who currently offer augmented reality mapping features. Apple is all about shaking things up, so while this is probably pretty unlikely it wouldn’t be entirely out of character.

Your turn!

I’ve given my thoughts about the Maps app, which I think will net a big update come the next iPhone OS release. What do you think will be added/changed/removed in iPhone OS 4.0?

Categories
Web Misc

Opera vs Reality

2009 was an exciting year for the web browser crowd:

  • Google released Chrome.
  • Apple ported Safari to Windows.
  • Firefox picked up a lot of market share.
  • Microsoft actually produced a half-decent version of Internet Explorer.
  • The iPhone and Android finally made mobile browsing popular.
  • Support for HTML5 and CSS3 was way up across the board.

The term crowd is especially appropriate here because it really is starting to get very crowded. For a long time the browser war has been fought largely between two major players at a time (IE/Netscape, IE/Firefox) and all of a sudden we have four major companies with fantastic browsers available to the vast majority of users. Oh, and then there’s Opera.

Here’s the thing about Opera

Opera is in serious trouble because it doesn’t have a “thing”:

  • Internet Explorer’s thing is its existing market share. It has a lot more users than everyone else, so its going to be a major player for the foreseeable future.
  • Firefox’s thing is its community. Not just its core developers, but the people who create addons or personas or rally everyone they know to go download the latest version on launch day. It’s easily the most passionate user group of the bunch.
  • Chrome’s thing is its brand. When people think web, they think Google. Google has the best search, a fantastic email client, why not a great browser? Users rely on Google for a great online experience, and Google has a lot of high-traffic areas where it can push Chrome.
  • Apple’s thing is its loyalty. Apple fanboys are a loyal bunch — most of them will stick with Safari on their Mac and many will consider getting Safari for any Windows computers they’re forced to use. Apple also has the iPhone, which gives it a growing space where it has the only browser (not that any iPhone users mind — loyalty, remember?).

Opera has nothing. It used to be the most advanced browser for HTML5 support, then everyone else caught up. It used to be a major player in the mobile space, then Apple and Google obliterated it. It used to be a fun browser for geeks to talk about, but now the buzz is all Chrome. It’s not enough to be an alternative to IE anymore; users are demanding more from their browsing experience, and they’re flush with places to find it.

What’s even worse is that there isn’t really anything you or I can do to help. Opera’s engine isn’t open source like Gecko (Firefox) or Webkit (Chrome/Safari) and they don’t have the extensibility of Firefox or Chrome. It doesn’t have the de-facto standard advantage in Windows (IE), OSX (Safari) or linux (Firefox), and even if I wanted to rally some Opera enthusiasts together, where would I start? How many people do you know that have even heard of Opera?

I don’t have anything against Opera (it’s a fine browser), it’s just that it’s no longer relevant — there are too many better options around preventing Opera from picking up new users, and I can’t think of a single significant reason for its existing users to stick with it.

Any Opera fans out there?

Do you use Opera? Do you have any thoughts on Opera’s future? Be sure to leave a comment.

Categories
Uncategorized

One Post Per Week

Starting today, this blog will officially be updated on a weekly basis.

This is a small step up in terms of how often I’m posting now, but it’s something I want to try. After all, it’s a new year and that’s a great time to experiment with new ways of doing things — as I’m not an experienced blogger (at all) I haven’t really nailed down any good content-producing habits, and I think the best way for me to do so will be to get into a bit of a groove by sticking to a fixed schedule.

To help me hit my weekly deadline, I’ve developed the following chart, which is posted on the wall next to my desk:

The first column lists the first letter of each month, and the numbers on each row are the dates of all Mondays in the corresponding month for 2010. So the first row, for example, shows that the Mondays in January fall on the 4th, 11th, 18th and 25th. These are all the days on which there will be a new post. When I have a new post done and set to publish automatically, I’ll mark the matching Monday square in green. When I miss a day (though the plan is that I won’t) I’ll mark the matching square in red. This way I’ll have a very clear history of when I did and didn’t meet my deadline.

The purpose of this table is purely motivational. Having it next to my desk gives me a noticeable reminder if I still haven’t finished the next Monday’s post, and marking past Mondays in green (for done) and red (for missed) will give me a very frequent reminder that I’m either doing well or falling behind.

Are you trying anything new this year? Would a visual aid help you stay on track?

Categories
Uncategorized

My Involvement with OCRI

I do some volunteer work helping teach high school students about software development through the Ottawa Centre for Research and Innovation. It’s very rewarding work, and something people ask me about a lot. Taking a page from Chris Brogan’s post about providing stock answers I’ve set up a permanent page about what I do with OCRI. If you’re curious about how the program works or what I do in particular, go have a look.

Categories
Uncategorized

Happy Holidays!

I haven’t prepared a Christmasesque post, which is odd for me because I love the holiday season. I’ll surely have something festive to offer next year, but in the mean time this is my favourite holiday-themed post of 2009 from the rest of the web:

http://www.colourlovers.com/blog/2009/12/21/the-most-colorful-part-of-the-holidays

I hope that everyone is having a fun and relaxing holiday, even if only for a day or two. If you have a cool Christmasesque link to share (or you’re just dying to call me out on making up my own adjective for Christmas) leave a comment below.

Categories
Customer Experience

Are you Selling Winter Tires or Customer Experience?

Note: This article was re-editing and re-posted on the Macadamian blog.

In Canada, right around when the first major snowfall hits, all the last-minute drivers bring their cars into Canadian Tire to get their snow tires put on. Pop Quiz: If you were managing a Canadian Tire, what would you say you’re selling?

The obvious answer is “winter tires”. Someone brings their car in, you put some winter tires on it, then the driver picks it up. This is the naive answer. Yes, ostensibly you’re trading tires for money, but what you’re really doing is providing a service. Anyone can put winter tires on cars, but the people who will be most successful at doing so will be the people who take this opportunity to show off their customer experience skills.

This year, I needed new winter tires and new rims. Let me tell you about how this went for me at Canadian Tire, and as I go, explain some of the ways in which they could have sold the experience of getting winter tires, rather than just some rubber and steel.

I did a bit of research first to make sure I knew what I was doing ahead of time. I got my tire size, the bolt pattern for the rims, looked into which brands of tires they sell and figured out which ones I want. Then I called the store’s automotive department. The conversation was pretty straightforward; juggle the auto-answering system, tell the tire guy my specs, and hear that yes they have tires and rims in stock for me. Good start!

I drive over to the store about 20 minutes later, and walk up to the automotive desk. I mention that I called not long ago, and the guy asks me for my phone number, then does some work on his computer, then asks me what size the tires are.

Why didn’t the guy on the phone enter the tire size into whatever record the behind-the-counter guy pulled up with my phone number? In fact, I’ve been here several times before, including 6 months ago to get my old winters thrown out and summers put on; this data should have all been there already. This would have saved time and a lot of trouble if I hadn’t known my specs off the top of my head.

After mentioning that the rims need to match a 4-bolt pattern and making sure I point this out because the 2008 model of my car is much more popular and has a 5-bolt pattern, the service rep disagrees (!) and insisted we look it up in some book. Lo and behold, it’s a 4-bolt.

Why didn’t the service rep trust me? Again, this could have all been avoided if they’d recorded this information last time they worked on my tires. This is at least the third time I’ve mentioned my tire information to this store, shouldn’t it be worth writing down?

After asking what brand of tires I would like (it didn’t occur to him that I might not know? good thing I did) the service rep informed me that I would have to leave my car there for a day and a half for them to get the tires installed (why didn’t the guy on the phone warn me about this?), then told me the price and that they’d call me when my car was ready. I pulled out my wallet, but he said payments are done when the car is picked up.

By waiting until pick-up, I have to come back into the store and wait in line again to get to the register. Not efficient. I should have been able to complete the transaction right then and there.

The next day, about five hours past the estimated time the service rep gave me, I still hadn’t received a call. So I reluctantly called the store, dialed through the auto-answering system, got transferred from Auto Department: Tires to Auto Department: Service and was finally told that yeah, the car is ready to be picked up.

Gee, thanks for letting me know! Why did they not call me when it was ready like they promised? Why did I have to jump through so many hoops to get a simple answer? If the store is this busy, and calling people back is too much of a hassle, maybe it’s worth investing in some sort of “dial a number/enter your license plate/find out if your car is ready” system.

I ended up walking to the store because it was late and I had no one around to drive me out of their way in the middle of a snowstorm. File this in the over-and-above category, but if they know I don’t have my car, maybe they could run a service offering to pick me up and drive me to the store? I’d gladly have paid them to avoid a 40-minute walk, knee deep in snow. Hell, if they’d let me pay for the tires when I bought them, they could have driven my car to me!

So I get there, half-frozen and covered in snow, wait in line to get to the register, pay for stuff I technically bought yesterday, and they hand me my keys, telling me the car is in the lot. Thanks. Have you seen a parking lot during holiday shopping season? This particular location shares its parking lot with a Starbucks and a Best Buy. It’s massive, completely full, and somewhere in there is my car, covered in a foot of snow.

Rather than having me wander about aimlessly looking for my car, they could have simply noted where they had parked it and told me that when I’d picked up my keys. Better still, they could run a valet service where an employee finds my car, brushes off the snow, then brings it to the front entrance.

I now have my car back with new winter tires and rims, which are working great. So in one sense, you could say that Canadian Tire sold me some great winter tires. That’s true, but what they didn’t even attempt to sell was a great customer experience.

To sum up, the next time I need new tires I’ll be looking for a store that:

  • keeps the guy on the phone and the guy behind the counter in sync.
  • warns me right away if it will be a long wait to get the tires installed.
  • trusts me when I know my specs, or better yet doesn’t expect me to.
  • keeps a history of previous work they’ve done on my car, and uses it to avoid unnecessary questions.
  • eagerly explains the differences between the various tires it carries.
  • lets me buy and pay for tires in one transaction.
  • calls me back when it says it will.
  • offers an easy way to check if my car is ready.
  • brings my car to me, or at least tells me where it’s parked.
  • sells great tires.
Categories
Uncategorized

Update Much?

Wow has this ever been a busy month. I dare say this was the busiest November of my entire life. I’ll be resuming my steady stream of Cutting-Edge Blog Posts and Tech World Commentary soon, but as filler an insightful look into what’s been keeping me busy, I present you with a run-down of some of the more notable things I’ve been up to lately:

Google Wave Hack-a-thon

I’ve been pretty quiet about Google Wave since it came out, which is odd because it’s a technology I fully endorse (ok, I did have one post about the invites). The Ottawa Wave Group was kind enough to hold their own “WaveCamp” hack-a-thon with an open invitation to local technophiles. It was a great time and really strapped my boots for the wonderful world of Wave development. They have posted an event wrap-up for the curious and there are some slides there I’d definitely recommend checking out if you want to start developing for Wave but don’t know how/where to begin.

I’ll definitely have a post or two about Wave in the near future, so keep your eyes peeled and your RSS reader at the ready.

Bringing High Tech to High School

I’m involved with something called the Ottawa High School Technology Program. I should really have a full post about what the program is and what I do there (I’ll make a point to have one up soon) but the jist of it is that enrolment in high-tech fields at the college/university level in Ottawa has been way down in recent years, which is worrisome for a city that has been nicknamed Silicon Valley North. Seeing this problem, a number of local high-tech companies and organizations got together and started cooking up ideas for how to increase enrolment, and the result was a program that takes industry representatives (such as myself) and sends them to local high schools to help students develop real, working software for the XO laptop. It’s always great to see what the students are capable of with a little guidance, and every semester we’re amazed with the results.

November is a significant month for the program because at this point the fall semester students have been ramped up on the XO and its target audience, branched into small groups, and started on actual development. It’s a very fun time for them and for those of us involved, but also very busy when added to an already packed work schedule!

And then there’s my Day Job

After a few extra-busy weeks, the project I’m working on at my nine-to-five has finally hit private beta. While it’s not something I can really talk about (at least not until it goes GA) nor something that would be of much interest to most of you (it’s a very niche product) it does feel good to hit such a major milestone after many months of hard work.

With things cooling off a bit at work, I should be able to get some neat posts up soon. A lot of neat things have been traversing the net the past few weeks, and I’m bursting with arguably valuable input.

Distraction through Gaming

Busy times call for stress relief, and I often rely on gaming to fill those ever-crucial relaxation needs. Here’s a list of what I’ve been into lately:

  • Typewar is a fantastic game that teaches you how to identify popular typefaces. We need more games with this blend of education and fun.
  • Ka-Glom is actually the first game I’ve ever kept
    on my iPhone. It’s an extremely fun and highly addictive tetris/bomberman mash-up made by local mobile gaming firm Magmic. Apparently it’s also widly popular in Japan.

  • Left 4 Dead 2 was released a couple of weeks ago, and on time no less. Some of you may remember the train-wreck of a release that brought us the demo, which we can all learn a few things from. It’s an absolutely wild time, but by now I’m sure you know whether or not this game is for you.
  • Torchlight is something I’ve heard fantastic things about. I haven’t actually gotten around to playing it yet, but I absolutely will as soon as I can spare some time for it.

What’s been Keeping You Busy?

I’d love to hear about it; leave a comment!

Categories
Software Development

Adobe “gets” Integration

In the world of software development, I submit that the hardest thing to do is to continue developing your code after it has been integrated into someone else’s code, which they are also continuing to develop.

The challenge here is that you and this other person are now co-dependent. If you break the build, it’s broken for both of you, and vice-versa. If your next feature requires some "almost finished" feature from the other party, your deadline depends on their deadline. This isn’t so bad with literally you and one other person, but what if you’re part of a large team working on one product, and the other person is an entirely different team working on a different product altogether, with different priorities and different deadlines? That’s just asking for headaches.

Adobe has some kind of magic handle on how to do this really well. Let’s start from the beginning: for a while, they just did Photoshop, which was pretty neat. Then they added Illustrator, a great Photoshop companion. Interoperability was a bit rocky at first, but now it’s a piece of cake moving a design from one tool to the other.

Then from the opposite direction, they released Flex Builder. Web mark-up integrated with Flash. Adobe gets it right again, bridging the gap between two like technologies. But do you know what made things really interesting? Catalyst.

With the release of Catalyst, suddenly everything has to work together. Designs made with a combination of Photoshop and Illustrator have to be compatible with Catalyst, which has to play nice with Flex Builder, which relies on Flash. This is a lot of complex products interacting with a lot of complex technologies; it’s an absolute mess of dependencies. And you know what? They made it work. Seamlessly.

Take a moment and appreciate how awesome that is. Imagine what would happen if they wanted to add a new feature to Catalyst. First, there are the normal issues that may come up in Catalyst:

  • Will this break any of Catalyst’s existing features?
  • Does the user interface match the rest of Catalyst?
  • Does it introduce any new bugs into Catalyst?
  • Does it open up any regressions in Catalyst?
  • etc

Then, you have to consider what this will do to any incoming Photoshop/Illustrator design files:

  • How will new design files take advantage of this feature?
  • How will existing design files react to this feature?
  • Does the underlying design file format have to change?
    • If so, does that cause any bugs/regressions in Photoshop or Illustrator?
    • Who is expected to report/fix/test these issues? The Photoshop/Illustrator guys? The Catalyst team? Some combination of both?
  • Besides that, is there any work at all required on the Photoshop/Illustrator side?
    • If so, do the Photoshop/Illustrator guys have time budgeted for it?
    • What parts of the Photoshop/Illustrator changes depend on what parts of the Catalyst changes?
    • Can any of the Photoshop/Illustrator work be done in parallel with the Catalyst work? How much?
    • How will this affect the deadline?

And of course, that same list applies to how this feature affects the content Catalyst exports for Flex Builder. And that’s just the obvious dependencies &#8212 it gets even worse:

  • What if a team can’t fulfil their side of the changes? Reschedule? Cancel? Release anyway?
  • If one team is late, what does that mean for the others? What if several teams are late? What if everyone is late?
  • What happens if the release cycles between any of these products don’t match up?
    • Can we release Catalyst with its changes before the changes to Photoshop/Illustrator/Flex Builder/Flash are released?
    • What if a user upgrades one product but not another? For that matter, how backwards compatible is this for outdated versions of any of the products?
      • Aren’t there thousands of possible version combinations? How many should be tested? Who’s managing this?

And this is just what I’m thinking of as I type. I can’t even imagine what a mess it must be to coordinate features in all these applications. How do you even measure what effect a new feature in one product will have on any of the other products’ thousands of features?

I don’t know how Adobe does it, but they do it and they do it well. If they can keep this up, they’re going to be around for a very long time.