4 Mar 2007

GMail Outage - SLA's Revisited, why not BYOS?

Its not been a good week for the web - on Thursday Google Mail was down for most of the day, also Digg and a few other sites also experienced outages. Is this the end of the world as we know it, or just a reminder that web applications seldom have 100% uptime and availability?

This harks back to the article I wrote last year on Service Level Agreements in a Web 2.0 World, where I talk about the lack of any kind of service agreement in the current generation of web applications, and the consequences for those individuals or business which rely on them.

Since that article, Google has made some steps around SLA's within their Google Apps for Business and Education packages, which is good to see, however for the average user there is still a chance that outages and downtime can leave you without access to your data. But, is there a way round it?

Interestingly, this week a company called Bandwagon unveiled an application which can backup your iTunes music library. The twist? It is based upon a concept labeled BYOS - Bring Your Own Storage. So, Bandwagon backs up your music to Amazon S3 (Amazon's online pay-per-gb storage). If Bandwagon ceases to exist, all your music is safe on S3 and you can access it using a plethora of applications such as JungleDisk, which lets you mount S3 as a normal network drive. There are also plans allow users to backup their music to any FTP server, or other online storage solutions like OmniDisk.

This is perfect for both Bandwagon, who no longer need to maintain the infrastructure and provide the bandwidth for their customers; and for the customer who is always in a position to access their music - even if they choose not to continue the Bandwagon service. So, why can't this technique be applied to other applications?As the saying goes, "Don't put all your eggs in the same basket?". Also from a software architecture sense, one should strive to maintain separation between data, logic and presentation. What is to stop more web applications adopting this BYOS approach? As has already been outlined, its perfect for the developers, keeping the cost of launch down; and if its done in an open sense then its also a great choice for the developer.

So, here is a call for anyone developing a web application which will contain a large quantity of user data - enable your users to store their data where they want, and either maintain that data in an open format, or provide code examples so that other application authors can get at that data.

2 Mar 2007

New York, New York

Friends have asked me "Where should I visit when I'm in New York City?" several times over the past month or so, it seemed appropriate to write a blog post on it. I've spent almost three of the past twelve months in NYC, and I have come to the conclusion that it is one of the favorite places which I have had the pleasure to visit - one which even I haven't fully explored. So, brace yourselves for my six places to visit in New York City.

  1. The Statue of LibertyI've gone and done it, turned the chance to make an interesting list into the stereotypical 'Places to visit in New York' list! I promise it will get more interesting! I'd recommend visiting the statue on the ferry from Battery Park, allowing you to retrace the steps of many immigrants to the United States, sailing down the Hudson River, past the statue and onto Ellis Island. Although a Brit, I couldn't help feeling just a bit patriotic as I looked up at the statue on a summers day (obviously it feels less patriotic ... and colder in the winter!).
  2. Helicopter TourI had the fortune to be sat on the left-hand side of my plane when I first flew in to JFK, and was treated to a spectacular view of lower Manhattan. My mind was blown by the scale of the place - eight million people, god knows how much concrete. As I travelled to my hotel, I watched the sun set behind the skyscrapers, I was speechless! A helicopter tour is a perfect way to appreciate the magnificent scale of the city, and at $120, its fairly decent value.
  3. Union SquareAfter a day's shopping on Broadway this is the perfect place to chill out. Aside from numerous cafe's, restaurants and even a microbrewery; the square is often host to a farmers market, selling fresh fruit, vegetables and crafts. You can watch a magic show, play a ball game or just chill in the shade. Also, in the evenings, it becomes a nice hub for your evenings entertainment.
  4. Coney IslandA short subway journey from the city, and also the location of one of the worlds best hotdogs!
  5. Chumley'sOne of the better bar's in the West Village, and also one of the hardest to find. Located on Bedford Street, it has no signs or markings, but is always a source of great atmosphere.
  6. McSorley's Old Ale HouseQuite literally, my favorite bar on the planet! Its also one of New York's oldest - opened in 1854 and probably not redecorated since. In a place which only serves two drinks - light and dark - its definitely not about the alcohol but more about the atmosphere. McSorley's has an Irish charm about it which is hard to describe, which should be experienced!
24 Feb 2007

The Future of Web Apps, London 2007

This week, I managed to attend the Future of Web Apps conference in London. Having found last years conference a large source of inspiration, I had high hopes for this one, and I'm glad to say that it met most of them!

Obviously, taking a one-day conference and making it a two-day conference means that you need to find double the amount of speakers. Often, you end up with a few big names and several sessions which could be described as filler. In the case of FOWA, the filler-effect was mostly avoided, though there were many 10-20 minute 'spotlight' spots scattered throughout the two days, most were entertaining.

The conference itself seemed to focus on three things in particular: Social Web Apps, Attention/Filtering and Starting Your Own Business. Being a corporate whore, one of those perhaps holds lesser interest to me but it was interesting to hear about it nonetheless. Plus, there were some great opportunities for networking with fellow web geeks; though, ironically, I managed to miss most of the people I wanted to meet!

One thing I did like was the open mic slots - opening the stage to attendees' to present on a topic of their choice. This can always be a bit hit or miss, but kudos to everyone who got up on stage and gave it a go. I think each of the sessions I watched taught an important lesson when it comes to doing a successful presentation:

  • Always make sure your presentation has some kind of point, which the audience will appreciate. Messages like "Well, I started a business and bought all my employees laptops" and "We work remotely so don't see each other" , delivered in an obituary tone don't really educate the audience. They would much rather share your lessons learned from the above, rather than hear about which version of SVN you are using!
  • If your presentation does have a point, is it meaningful and relevant to people/companies other than your own?
  • The best approach is often to prepare your presentation in the pub the night before

    Its hard to compare things to last years conference as in my mind they had much different themes. I was not really inspired this year and on the train home I found myself catching up on this week's '24' rather than designing my next web app. I think that had a lot to do with the content of many of the sessions - rather than grand presentations like Tom Coates' excellent session from last years conference, it was more a case of "Hey, I built xyz.com, here is what I discovered...", most of the sessions were re-treading the same ground rather than perhaps shining some light on a new topic or a new idea. Not that this was the fault of any of the presenters, they all did an excellent job. I think its more the general state of the industry - the AJAX buzz is over and it is no longer 'cool', its the norm. The same with things like tagging, filtering etc. Thankfully, there are still a few cool things on the horizon to get excited about, like Apollo!

24 Feb 2007

Addicted to Statistics

This post has been kicking around in my head for a few weeks now, and I’ve only just found the time to finish it. The last few weeks have been very hectic, in fact, since I returned from Phoenix last weekend I have only spent a few hours at home! For most of the week I was up in London at the Future of Web Apps, that was quite enjoyable and I’ll be writing more about that later. Work aside, I have also been working on building some ActionScript classes which will allow easy interaction of some of the Amazon Web Services and starting to play with some things for Apollo. I also attended a brilliant Skillswap presented by Richard Rutter on the state of Typography which was surprisingly interesting. Anyway onto statistics…

Over the past month, I think I have become addicted to statistics &endash; there, I have admitted it! Part of the reason, I think, is because of the rental car which I have been driving. Aside from the many facts and figures I could access on my fuel consumption and engine temperature, I also had a Garmin GPS device. Now this is an amazing little box of tricks, not only helping you get from a to b but also estimating the time to destination, current speed and compiling consolidated statistics of your average speed/times. It felt as if I was playing Project Gotham Racer!

Within a few days I found myself getting a buzz if I managed to 'beat' the estimated arrival time, as well as trying to set new speed records (unfortunately the rental car seemed to be speed limited, which sent me looking for hills…). I wondered to myself what was different, all I could figure is that normally I wouldn't have access to that kind of data, aside from the speedometer on the dashboard I have nothing which keeps track of my statistics last night. Now, driving around the lovely state of Arizona, I could instantly recall a wealth of information which I had accumulated – I liked this, it was somehow reassuring.

One weekend I took a trip over to Las Vegas, spending most of my time on the MGM Grand poker tables, but taking the time out to see an IMAX movie of a US Air Force training exercise. From the AWAC control room, the supervising General had access to real-time data from many different aircraft. All of this data was represented on a 3D representation of the battlefield, with yet more statistics. Its weird but without lots of numbers on the screen, I'm pretty certain it would have looked much less impressive!

So, why in a world where many designers preach simplicity and minimalism does it actually feel like a better experience when there is so much additional information at my fingertips?I think its a matter of relevance and importance. I found myself using my GPS to monitor my speed a lot more frequently than checking the temperature of my engine, because that particular piece of information was more relevant to my immediate situation, and also because changes to my speed were more immediately reflected. Also, with regard to driving, it is easily the most important piece of information.

If we apply this same principle to interface design, the information presented should be both relevant and important. On a blog post for example, there is value in showing the date of a posting or what it has been tagged with, but there is significantly little value in providing information in perhaps showing the full profile of the poster (assuming blog posts usually come from a single author). Looking at something more technical, such as web reporting, the important pieces of information when monitoring a web site are usually bandwidth usage and page views, so these should be given prominence. Trivial (and often static) pieces of information such as the server's operating system and processes should be removed from the interface or at least relegated to a secondary page.

There is a lot to be said about simplicity, but there is also a lot to be said about providing the user with ample relevant information and feedback on their interactions.

5 Feb 2007

Flash and Windows Vista: Nice one Bill!

Today has been a fairly frustrating day, mainly because most of it has been spent following up on why some of our customers have been experiencing problems with our pages not loading properly. It turns out that these customers have one thing in common - they have all recently updated to Windows Vista... so what is going on?! It appears that updating to Vista has the potential to upset users using the Flash player. Here is what I've discovered so far:

  • Windows Vista does not ship with any version of the Flash Player, so if you buy it in the stores and perform a clean install then you will need to grab the Flash player from Adobe and install it separately.
  • Many OEM's have refused to accept this, and are shipping hardware with both Vista and Flash pre-installed. As far as developers are concerned, there is no way of knowing which version of the player is being loaded, but its probably safe to assume it is a version 9 release.
  • If you upgrade an existing install of Windows, you may break your Flash Player and have to reinstall. Last week Adobe released an updated version of the player, listing Windows Vista support in the feature list. If you have this version installed when you perform the update (9.0.28), then you should be fine. If you have an earlier version of Flash Player 9, then Flash web pages should still work, though you are obviously missing the Vista compatibility updates, whatever they may be. If you have an earlier version of the player, such as Flash Player 8, then the upgrade to Vista will somehow corrupt your player install. You will need to reinstall and the corrupted player will still register as installed to web pages using Flash (though it may not work).

I'll post more updates as I get them, but at the moment its looking a bit messy!I am curious as to why Microsoft chose to ship Vista without Flash, or at least without ensuring that upgrading to the new OS doesn't have any ill effects on browser plug-ins. I'm sure the conspiracy theorists will point to Microsoft wanting to damage the ubiquity of the Flash player ready for the roll-out of Redmond's long rumored Flash-killer, but that doesn't really make sense given that the said Flash-killer is still some time away. If anything this can be seen as a good thing, user experience implications aside, as it is driving updates to Flash 9 - enabling developers to really start kicking with ActionScript 3!

3 Feb 2007

Currency Conversion and Microformats

I see the solution to this problem comprising of three steps - detecting a currency, performing the conversion, and defining the new user interaction model. Being the result-centric person that I am, lets start by taking a look at how this could work in practice.

Designing the Interaction

Skype is an excellent services, and also is the maker of one of the browser plug-ins which I find the most useful. Often when browsing the web, you may be looking for the contact details of a particular person or organization. In fact, you may want to specifically phone them. Skype offers the ability to make phone calls from your PC, wouldn't it be great if you could click on a phone number on a web page and have it function exactly like a normal hyperlink but instead of loading a new page, it starts dialing.

That is exactly what the Skype browser plugin does, highlighting numbers on a page and adding additional menu options, allowing you to start a Skype conversation directly from within the browser. Why not do the exact same thing for currencies?

We are talking about an interface which is very action orientated, exposing the key functionality which most uses want to access. Like Skype, I think selective highlighting and a context menu would do the job quite nicely.

I'm envisioning something like this...

In addition to highlighing and context menu's, on a global level, a user should also be able to setup their local currencies and other preferences. If we want to get more advanced, we could also add the ability to automatically perform currency conversions or a mechanism to convert all the currencies on a page in a single swoop.

Performing a Conversion

This is probably the easier of the three problems to solve, or at least, so it seems. Simply make a call to a Web service which performs currency conversion. Does one of these exist? Good question, and one which I think warrants some further investigation.

Implications to consider are that any solution would be dependent on this service in order to perform conversions, so it may be prudent to consider service abstraction and redundancy. Perhaps configure the solution to use several different services which provide similar functionality, so if one is down, you have a choice of fallbacks.

Detecting Different Currencies

This is an area where Skype has it easy, there are only a finite number of ways to represent a phone number. Granted they may look slightly different, but they are still easy to find through use of regular expressions. Currencies add many more complexities, one of them being that the same symbol may be used to represent different currencies. For an example, we only need to look as far as the dollar, be it American, Canadian, Australian or from even further afield. What we need here is a microformat.

If we look at the microformats wiki, we can see that there are a handful of different proposals for a currency microformat. We can also see that there has been little recent activity, which brings up a pet peeve of mine - there is a lot of focus on hCard, hEvent and other microformats which too be honest are better described as macroformats, and less focus on some of the more basic formats which have the potential to be even more useful, solving issues of parsing.

Anyway, this aside, a currency microformat would solve the problem of detection. But in turn introduces a new problem - adoption.

Without widespread adoption by web developers, microformats are essentially useless. In the context of currency conversion, this is indeed true as the detection model I'm proposing is dependent on e-commerce sites adopting the microformat. Something which is probably not going to happen. Actually, that may be a bit pessimistic, I can see the likes of Amazon, Yahoo and Google getting onboard but thats it. Even if microformat love explodes this valentines day, you are still dependent on the vendors of e-commerce software sharing this love, and the users of said software upgrading to the microformat loving versions. Perhaps sometime in 2012 then we can depend on microformats alone, but for now we need other options.For detection of currencies I propose three methods:

  • Keep an eye out for whatever becomes the officially recognized currency microformat.
  • Keep an eye out for all the proposed currency microformats until an official format is decided upon (unless one of the proposals would impair parser performance).
  • Keep an eye out for currency symbols and values, making an assumption based on the website URL. So, for example on a .ca site, assume any dollar symbol is referring to a Canadian Dollar amount.

So, where do we go from here?

Good question! I'd love to see these ideas made into a Firefox plugin, and I might even take up the challenge if I ever get some time to work on it! If anyone out there is inspired and wants to help me, then drop me an email.

2 Jan 2007

2006: The AJAX Perspective

Its been almost two years since Ajax exploded onto the web, with more and more sites adopting it for pretty much everything. In my view, one of the defining things about 2006 has been the maturity of Ajax as a web technology. Frameworks such as Dojo and Prototype have came a long way, facilitating JavaScript development and offering out-of-the can functionality. We have also seen many hosted applications such as Yahoo Mail and .Mac using Ajax to enhance the user experience available, and we are getting to the stage where this kind of functionality is also cropping up in other web applications, from e-commerce to social networks.

If 2005 was the time when geeks were going wild with the technology, 2006 has been the year where developers have sat down and thought "How can I best use this to create a better website?", and this has really helped Ajax to break into the mainstream.

To compliment this, we have seen some great strides in the tools available to the developer, in particular, browser extensions such as Firebug which really are a godsend when it comes to testing and debugging applications.

Of course its not all good, we are seeing one bad side effect of this Ajax explosion - page bloat. Using the Prototype library adds about 50kb to the page weight, Dojo can add as much as 300kb (especially as very few people seem use the include system). Obviously, if you are building a JavaScript heavy application then this is justifiably, but I do see a lot of sites which use frameworks specifically for a single piece of functionality, such as the $ function or a single visual effect. In these cases, we need a way of stripping down our JavaScript libraries based upon the functionality we, the page authors, require.

Thankfully, for 2007 it looks as though there is a solution for this, in the form of JS Linker. A Java application which analyzes your code and removes JavaScript functions which are not used. Although its currently in its early stages, this one is worth keeping an eye on.

Another such tool to watch is Flash Aid, which uses Flash in order to solve a big challenge faced by Ajax developers - using JavaScript alone, there is no way of knowing if someone is using a screen reader, and thus you cannot offer screen reader specific content/functionality to boost the accessibility of your site. Flash Aid, developed by Jeremy Keith and Aral Balkan, is a small piece of Flash which sits invisibly on your page. It allows JavaScript to check if a screen reader is present, using the built-in API's within Flash.

So, 2005 had lots of developers getting excited, 2006 put a bit more structure around this and presented us with some new challenges (many of which we discover have been faced by the Flash community for years - we can look there for inspiration and potential solutions) and plenty of opportunities for innovation. Here's to a happy 2007 for the Ajax community!

2 Jan 2007

2006: Flashing

In January, if someone asked me what I thought about Flash then I would have probably slated it. Now at the end of the year I find myself tinkering with ActionScript 3.0 and appreciating it as a platform upon which rich internet applications can be built. Perhaps more than Ajax, 2006 has been a great year for the Flash platform.On the technology side, June saw the release of Flex and Flash Player 9 - giving developers a very flexible and refined programming language in the form of ActionScript 3.0 and a set of components specifically designed for creating web applications.

We have also witnessed the explosion of Flash Video, helped by the popularity of sites such as MySpace and YouTube. As a result, Flash is now the number one technology for video distribution over the web, and adoption of newer versions of the player has been increased significantly.

On the creative side we are now past the stage where we have Flash-based intro animations for sites, and totally Flash-centric micro-sites also appear to be on the decline. Instead we are seeing Flash being used as part of progressive enhancement, often in conjunction with traditional HTML content. More and more, I'm seeing pages which I'm not even sure if something is HTML or Flash - I like that feeling, and I think it makes the technology much less intrusive, which in turn makes for a more compelling user experience. A good example of this is on the Sony Ericsson website. Designers are finally starting to realize that Flash is not the answer to everything, there are things that Flash is really good for and things where it is better to stick with HTML/CSS.

Moving into 2007, what's next? I can see Flex (really I mean ActionScript 3.0) being used across the Web and even more examples of Flash and Ajax working together to create great experiences and solve common problems.

I'd like to see advances in how search engines interact with Flash content - one of the number one challenges for anyone who is building Flash websites is SEO. Google makes a token effort to extract keywords from Flash documents, but nothing of the semantic structure is preserved, meaning that Flash pages often find themselves with a much lower search engine ranking. Any solution here needs to come from both Adobe and the search engines - Adobe need to create a solution, or perhaps refine what is available, and the likes of Google and Yahoo need to take responsibility for implementing it. Will it happen? Hopefully, though I wouldn't put big money on it!

The final flash-related technology which I think will make a difference in 2007 is Apollo (just search this blog for more information!). I predict a move to the desktop for more Web applications, and support for offline-mode in many of these applications. Should be fun!

1 Jan 2007

2006: The Browsers

2006 was the year we finally had a proper update to Internet Explorer - I'm sure everyone would agree that it has been long overdue. Internet Explorer 7 has fixed a number of the more irritating bugs faced by developers, such as the CSS box-model implementation and transparent PNG support. Its just a shame that most of us still have to support earlier versions on their websites! For the users, features such as tabbed browsing and RSS have finally been made available.

Firefox 2.0 was also released in November, I'd love to have been more excited by this, but too be honest I see 2.0 as more of a merging of some of the more popular features which were previously available as standalone extensions.

So, what do we have to look forward to in 2007? Good question. Firefox 3.0 is on the horizon, though the only thing which excites me is the promise of improved OS X integration and much better font rendering. There will microformat support, probably derived from Operator, though hopefully with a touch of WebCards! I think on the browser side of things, there isn't really much scope left for innovation - its more polishing the features we all know and love. Any comments?

28 Dec 2006

HSBC and Useful Error Messaging

Everyone seems to be posting about their banking experiences, so I thought I would post one of mine.

I've been a HSBC customer for about as long as I can remember, and not had any reason to complain. However, recently I have been finding more and more things about their online experience which tend to annoy me. Here is the latest...The other day I was attempting to transfer some money from my main account to a savings account, the process seemed easy... select the account you want to transfer money to, enter an amount and specify when I want to make the transfer. I clicked 'confirm', and I was greeted with this screen:

We are unable to proceed with your request. Please select an option from the left hand menu to continue. Hold on a second... why were you unable to proceed with my request? I'm trying to make a simple transaction and you are telling me that you can't do it? Why? This error messaging is missing a critical aspect of usability - the provision of user feedback as to what the problem was, or indeed steps which I can take to resolve whatever is going on. I don't even have any indication if this is a temporary issue with HSBC's website, or if the problem is more fundamental.Oh well... since I can't seem to do what I want to do online I decide to send HSBC an e-mail from the website. I select the account I want to make a query about, and start writing my message, spellcheck, and click 'send'.

We are unable to deal with your request because you have entered unsupported character(s). Please try again. At this point it becomes clear that HSBC are out to get me, I can't even tell them about a problem I encountered with their website! Again, its not providing me with useful or user friendly feedback - its not even telling me what characters are unsupported so that I can amend my message. In fact, why am I seeing this in the first place? Surely a better approach would be to strip unsupported characters and send the message anyway, if further information was required then HSBC could call me to confirm.I go back to my message and remove all characters which are not A-Z or 0-9 and I get the same message again about unsupported characters, at this point I begin scratching my head even further....

I suppose the moral of this story is that designers and developers should think carefully about error messaging in their applications. Granted, only 1 in 1000 users may see a specific error condition, but still if you want your web app to be usable then you should support the user in recovering from an error, even if that means telling them to call a customer services representative. Web applications should provide an experience which users (and/or customers) enjoy using, and would be happy to return to. In HSBC's case, their application does the job, 98% of the time, but for the other 2% when it doesn't work, it leaves the user feeling very unfulfilled, frustrated and dissatisfied.

Chris Korhonen's Posterous

I am a British-born UX designer currently based in New York City, with over 10–years experience developing for the web.

I spent 5 years working at American Express, developing their online services and touching many areas including accessibility, usability, search engine optimization, web strategy, content personalization and social media.

Currently I working for Animoto, an exciting start-up whose product is a cutting-edge, automated, video creation platform.

On the technical side, I have lots of hands on experience building with HTML, CSS, JavaScript, ActionScript, Ruby and Java. Recently I authored a book on using APIs to create mashups using Adobe Flex and AIR.