How to become an innovator

Whether you are a website owner, web designer or web developer you need to innovate. But how do you make it happen?

Innovation is at the heart of the web. Innovation is about finding new ways of doing things, building on the work of others and moving it forward. Without innovation, whether you are a designer, developer or website owner, you will struggle.

If you are not innovating you are following, and you do not want to be following the competition. Your competition maybe other freelancers, websites or the person who is going for the same job as you. Whatever the case you do not want to be following them, you want to be one step ahead of them.

How then do you learn to innovate? At the heart of innovation is a desire to challenge preconceptions.

Challenging preconceptions

You can only innovate if you successfully challenge existing best practice. This begins by asking the question “Why not?” Why can’t you do something? Why is something supposedly wrong? Depending on your role these questions may vary. For example:

  • As a web designer you might ask – Why does the site I am designing need navigation?
  • As a web developer you might ask – Why can’t CSS enable me to rotate text?
  • As a website owner you might ask – Why do I need a website at all? Why can’t I just use sites like Facebook and Twitter?

If it wasn’t for people willing to ask “why not” the web would be a poorer place. For example if it wasn’t for people like Jeffrey Zeldman and Eric Meyer asking why can’t we use CSS, we would still be working with HTML tag soup.

Equally if it wasn’t for people like Jeremy Keith we would still view Javascript as an evil tool that creates popups and inaccessible navigation.

Image of a pop-up ad

Of course, there are often good reasons why we cannot or should not do something. The question then becomes “are there ways to work around these problems?” That is where innovation truly begins and the only way to answer that question is to experiment.

Innovation through experimentation

The only way you can innovate is to experiment. The problem is most of us have forgotten how to experiment. We are so focused on deadlines and the bottom line that we feel “playing around” is a waste of time and money. However, it is not. It is vital for staying ahead in what is a very competitive and fast moving medium.

If you are to innovate you need to overcome two hurdles:

  • Finding time to experiment
  • Finding ways to experiment

Let’s address each in turn starting with finding the time.

Finding the time to experiment

We all know that Google encourages their employees to spend 20% of their time working on personal projects. This is their opportunity to experiment and innovate. However, Google is an enormous company sitting on big piles of cash! They can afford to “play.” Most of you will believe you cannot afford to do that!

In reality carving out some time for experimentation is not as hard as you think. Nobody works 100% of they’re working day. We all need breaks from normal work. Grinding away for an entire day is actually damaging to productivity. Working like this tends to take longer than if you take breaks and have time to play.

Experimenting with new ideas can be fun. It is exactly the kind of break you need from normal work. It makes the down time you have anyway more productive.

There is also a lot of evidence to suggest that shorter, more intensive periods of work actually allows you to get more done and to a better standard. Take for example Carsonified that work a 4 day week. They seem to suggest that as much gets done in 4 days than they would in 5. What if they spent the 5th day each week playing and experimenting? Or alternatively, what if they took an hour out of each day to work on new ideas? They would be able to do the same level of work but also gain time to experiment.

We spend our entire lives feeling like we don’t have enough time but in reality that is not true. If we all collectively watched 1% less TV we would be able to create 10,000 wikipedias. Makes you think doesn’t it.


Clay Shirky challenges among other things the belief that we lack time.

So lets presume you have committed to carving out some time for experimentation. How do you actually do it?

Ways to nurture experimentation

Its hard to define a single approach to experimentation. It very much depends on the type of work you do. The way you innovate as a designer is naturally going to be different to that of a website owner or developer. However there are some basic approaches that apply to pretty much everybody. These are not specific ways to experiment, rather they are general approaches you might wish to consider.

Experiment in a sandbox – Create a closed area where you can try out new ideas. This could be a development server or a closed beta website. This is the perfect place to try out new designs, experiment with site structure and content or play with new coding techniques. It is safe and private. Nobody needs to ever see your disastrous attempts at innovation!

Experiment on users – As your confidence grows with experimentation you might want to start exposing some of your ideas to real users. For example you might want to try some user testing with friends or even letting people into your closed sandbox. Admittedly experimenting on users applies more to designers and website owners. However it is useful for developers to get feedback from their peers. You will often find that allowing others into your experimentation process will spark interesting ideas and discussions.

Experiment on live – When did we get so precious about our sites that we are hesitant to explore new ideas on our live sites? Admittedly you might not want to do this on a high profile ecommerce site where the slightest mistake may cost millions. However, for many of the sites we run, it would be quite possible to try out ideas with no measurable impact. After all one of the best things about the web is that sites can easily be changed if things go wrong.

This trend towards conservatism has even extended to web design and personal sites. When was the last time you saw a personal site that really pushed the boundaries? They are few and far between these days. Even when sites do (such as the redesign of 24 Ways) they get criticised. I believe this is wrong. We should be innovating even if we fail. And we certainly shouldn’t be afraid to do so in public.

Screenshot of the 24 Ways website

Conclusions

Although I have focused in this post on the barrier of time and knowing how to experiment, I actually believe the biggest problem is fear. We fear wasting time on ideas that fail. However most of all we fear of being ridiculed for trying an idea that didn’t work. That is a real shame. Without people will to stand up and trying new things the web will never progress.

Ill leave you with these wise words from Winston Churchill:

Success consists of going from failure to failure without loss of enthusiasm.

Amen!

3 ways to make your site stand out from the crowd

Too many websites look the same as their competition. If you want users to remember your site it needs to stand out from the crowd.

I recently gave a presentation entitled the “10 Harsh Truths About Institutional Websites“. One of the point I made was that all Higher Education websites look the same. Nobody is innovating when it comes to design.

Screen captures of 9 higher education websites

However, the problem is not just limited to HE. Almost every sector has a design style. Why is that?

I believe there are 3 reasons:

  • Laziness – It is easy to follow the crowd blindly. To stand out you must innovate and challenge established practice. That takes effort and a lot of thought.
  • Fear – A fear of getting it wrong. What if you upset your users? What if you misjudge what they will like? Its safer to do what others have done because that has been proven to work.
  • Shortsightedness – Too many organisations only look at their own sector for inspiration. They look at what the competition is doing and copy it.

The problem is that if you follow the competition, you will always be one step behind. At best you will be invisible, at worse you will be a poor shadow of your competitors. To create a site design that stands out from the crowd and resonates with users you must take some risks.

Unfortunately this can be hard to do. We can become blinkered in our thinking, convinced a site should look a certain way and have a particular kind of layout. However, there are plenty of examples of sites that break this mould successfully.

Screenshot of Biola Undergraduate website

How then do we join the ranks of designers and website owners who think differently? I suggest there are three ways:

Constantly seek inspiration

The first step in thinking differently is to expose yourself to different types of design. It is easy to only look at your own site and that of your competition. Broaden your horizons.

A lot of people start with CSS galleries and they certainly have their place. However, in my experience you have to work through a lot of crap to find the truly stunning sites. Instead I subscribe to sites like Smashing Magazine, Webdesigners Depot, and Sitepoint who tend to do a lot of “Top 10 inspirational sites” posts. In these posts the author has done all the hard work for you by weeding out the dross and leaving only the best examples.

If you are looking for a specific design style I would also highly recommend Design Meltdown that organises inspirational web sites by categories such as colour, structure, elements and style.

But why stop there? Why limit your sources of inspiration to other websites? What about photography, architecture or print design. ffffound.com is an excellent source of inspiration. It is a massive collection of imagery from every source imaginable, bookmarked by members who consider it interesting. Another similar site is Emberapp which contains illustrations, logos, icons, typography and much more.

Finally, I would also encourage you to carry a camera and look for inspiration in the world around you. Once you get into the habit it is amazing how much inspiration can be found in everyday things. Even sitting here at my desk there are the colours of my houseplant’s leaves, the book cover next to me and the typography on my energy drink. Inspiration is everywhere if we get in the habit of looking for it.

A photo of the houseplant on my desk

But the problem is not just inspiration. It is also the fact we self censor.

Stop designing websites

Part of the reason we struggle to create original design is because we self censor. Recently I shared my personal inspiration library with the designers at Headscape. The response I got back from one of our designers was fascinating:

A quite beautiful collection of elements none of our clients will have the courage to ever use!

It is certainly true that Headscape work for some very conservative clients. However, there is a danger we give up without trying. It is easy to slip into the same old routine because we have convinced ourselves that nothing more is possible. We have a navigation bar, header, footer and content area in the same old places because we know that will get approved.

Even if we believe a client might approve something more adventurous, it can be hard to change our mindsets. After all, websites are meant to look a certain way… aren’t they?

When I was recently discussing this problem with Mike Kus from Carsonified he came up with a brilliant suggestion:

Next time you brief your designers tell them they are designing a poster rather than a website.

Although I am not sure my designers would appreciate being lied to (and I don’t think Mike was suggesting it seriously), it is a superb idea.

Too often we are constrained by the web. The need to add the same old elements and be confined by the same screen resolution. Letting go of that and designing for a different medium (such as a poster) is a superb way of encouraging creative thinking.

In Mike’s article “Web Design is a Journey” it surprised me how long it took his designs to look like an actual website. Where most of us start with a grid or wireframe, Mike starts with an image or other graphic element. He then shapes those elements into a website. It is almost as if he squeezes his design down into the constraints of a website. He certainly does not self censor.

The Stackoverflow website designed by Mike Kus

Of course, sometimes you will loose the battle and a client will insist on a super conservative design. What then?

Surprise and delight your users

Sometimes its just not appropriate to deviate too much from the norm. Does that mean your website is doomed to blend into the crowd? Not neccessarily.

Even when working on the most conservative of designs there is an opportunity to surprise and delight users in such a way that your site is memorable.

Paul Annett from Clearleft gave a stunning talk at SXSW 09 entitled “Ooo… that’s clever!”. He describes it as follows:

My talk was about design delighters and Easter eggs, about hiding clever little gems in websites which people will find, enjoy, and share with their friends. The benefit of this is an intangible viral marketing effect which will help engage your audience and build hype around your product or service.

Adding these little touches makes your site memorable and can be applied to almost any site, no matter how conservative th

e design. One example Paul gave was of innocent smoothies. Although the packaging of these drinks is certainly nice, they do not necessarily strike you as extraordinary. However, look at the bottom of a carton and you will be greeted with one of a number of amusing messages.

View of the bottom of innocent smoothy carton where you can read the words 'Stop looking at my bottom'

Image Credit: Duncan

Once you have read one of these little messages you are unlikely to forget innocent smoothies.

Paul’s talk is packed with examples like this and I highly recommend watching it.

Just by adding some of these little extras you separate your site from the competition in the minds of your users. You become memorable.

Conclusions

At the recent FOWD Tour, Elliot Jay Stocks commented on how boring most websites are, and how we need to innovate. I totally agree. We need to start exposing ourselves to more inspirational design, approaching the design of websites from a different angle and adding features that delight our users. We should not simply settle for what we know works.

Coda

Find out why I am seriously considering abandoning the code editor I have been using for over a decade in favour of Coda for the mac.

I can’t remember when I first started using Dreamweaver but it would have been at least 1998. In those early days I was attracted to it because it could code all of the HTML soup that was necessary for table based design.

When I made the transition to standards I returned to hand coding but after some investigation I could find no better coder for me than Dreamweaver. It did everything I required and so I saw no reason to spend money on a new application.

I regularly look at emerging editors but nothing has tempted me to change. After all you cannot teach old dogs new tricks and changing editor seemed like too much work. That was until I came across Coda. I haven’t made the transition yet but I am seriously considering it.

So why am I tempted to leave Dreamweaver behind? What makes Coda so good?

Why Coda?

Screenshot of the Coda Interface

Its not that Coda is revolutionary. However, it is extremely well considered and has a clean, easy to use interface. They get the basics right including auto-complete, syntax highlighting and integrated FTP. However, in addition to this they add a number of extras which I am finding hugely useful.

Features

The following are the features that impressed me the most (even though they are far from perfect)…

Preview

One of the most impressive functions is the preview facility. I always liked the WYSIWYG function in Dreamweaver even after I moved across to standards based design. I could pull up the design view and click on an element to jump to the appropriate piece of code. On larger more complex pages this was incredibly useful. Unfortunately the Dreamweaver design view was far from WYSIWYG. It rarely rendered a page correctly, and so as my hand coding became more sophisticated it struggled to keep up.

Compared to Coda this looked positively prehistoric. Coda provides a constantly updating preview rendered by Webkit so it looks exactly the same as it would in Safari. What is more it provides basic debugging tools including a Javascript log and the all important inspector which allows me to click on an element in the preview mode and jump to the appropriate code.

My only criticism of the functionality is the constant page refreshes in preview mode. If you are working in split screen this can become distracting after a while.

Symbols

Talking of jumping to a specific place in the code there is also a great tool called symbols. Not the most descriptive name but incredibly useful. Symbols is an interface element that lists all the headings, divs with ids and comments in the current HTML page. You can then click on anyone of these to jump to the specific place in the code.

Clips

Two things I specifically like about Dreamweaver were snippets and configurable keyboard shortcuts. Snippets allowed me to keep a library of useful code that I could drop into the page. Keyboard shortcuts were excellent for quickly adding code without resorting to the mouse.

Coda solves these two problems using clips. Clips are essentially snippets but with the ability to add text expanding shortcuts. For example if you type ‘href’ and then press tab it will add a complete href link with the cursor placed at whatever point you specified when you created the clip.

Although clips are good they are not in my opinion quite as good as snippets in Dreamweaver. For a start you cannot organise your clips into folders which is important as the number of clips increases. Secondly although the text expanding function is useful it does not allow clips to be wrapped around an existing bit of code. This initially appears to only be possible by double clicking on the clip itself (requiring the mouse).

After some experimentation I discovered you could setup keyboard shortcuts in system preferences. However this doesn’t appear to be documented anywhere.

Find and replace

One feature that in my opinion blows Dreamweaver away is the find and replace interface. I have written before about how I like Dreamweaver’s find and replace functionality, however I think Coda’s is even better.

What makes Coda’s functionality so nice is that it easily allows you to add multiple wildcards into your search query. This allows you to be very specific about what code you wish to change and what you want to keep intact.

Unfortunately, although building the queries is a breeze, the scope of each search is seriously limited. You can only find and replace within the current document. Compared with Dreamweaver which allows you to search across all open documents, an entire folder or the whole site, this seems painfully limited.

Nice CSS interface

The final feature that has caught my eye is the CSS coding environment. I have to confess I am yet to put this through its paces, however what I have seen so far has impressed me.

Although it is possible to code CSS by hand there is also a graphical user interface which guides you through the process. I am not entirely sure how much I would use this but it does have some nice features. One I particularly like is that it provides an ordered list of all the styles in a panel at the side of the screen. You can then reorder them using drag and drop. Also, if you are in split screen mode, clicking on a style jumps you to the appropriate place in the code.

Will I, won’t I

So will this dog decide to learn a new trick? I am still not sure. At $79 the price is excellent, however when you have already spent several hundred dollars on one application, shelling out more seems unnecessary. Also the lack of site wide find and replace is frustrating and means that I cannot really get rid of Dreamweaver completely.

That said, I love everything else about this application. I will no doubt get comments suggesting I try Textmate and numerous other editors. Trust me, I have tried them all. However, nothing has managed to tempt me away from what I have been using for years like Coda.

Given a choice I would live with the application for a while longer. However, for some reason I only have a 12 day trial so I will have to make a choice soon. What I do know is that if I hadn’t already spent money on an editor and had years of ingrained habit, then I would definitely choose Coda.

116. Back

Returning with a new site. Jeff Croft talks about his view on web standards and we discover why the personal website is dead.

Play

Download this show.

Launch our podcast player

News and events

Creating grid layouts

Last month I attended the Future of Web Design conference. The speakers were exceptional, however my favorite was a presentation by Jon Hicks on his web development process. The guys at Carsonified are slowly releasing the videos so it wonʼt be long before you get to watch it yourself.

I find it interesting to see how people work and it is amazing how many new techniques you learn. One thing Jon shared was a Javascript library called GridLayouts that overlays a grid systems on top of your pages. This is useful when creating layouts directly in CSS because you can align elements to the grid.

I have since discovered there is a firefox extension called GridFox that does the same thing.

Flash goes open source

Of course, you might be wasting your time designing with CSS. According to Aral Balkan flash is soon going to be everywhere and is the platform we should now be developing on.

The reason for Aralʼs excitement is an announcement by Adobe that Flash is going open source. Not only will the swf format be open source, they are also relaxing the licensing on the flash player.

All of this is good for the flash platform. Although it is never going to replace HTML, it does undermine one of the main arguments used by its detractors.

Accessibility and AJAX

While Flash gets a shot in the arm its main competitor AJAX is under attack. Brothercake has written a passionate article for Operaʼs development site pleading with us to stop using AJAX.

His argument is that AJAX is immature and unnecessary in the majority of cases. He believes that the accessibility cost of using AJAX outweighs it benefits (many of which are oversold).

I cannot say I agree with everything he has written, but the article does make you pause and consider whether your implementation of AJAX has been entirely necessary. Coming within days of the WCAG 2.0 candidate release, I think this article puts accessibility firmly back on the agenda. It will be interesting to see what affect WCAG 2.0. has on the growth of AJAX and web 2.0.

Developing effective forum leadership

Our final news story is anything but web 2.0. because it focuses on the oldest of community tools, the forum. It is an article by Patrick O’Keefe entitled Develop Effective Forum Leadership.

The article is aimed at those website owners who run larger communities and need to provide guidance to their community leaders. I have worked with so many large organisations who have tried and failed to effectively run communities. Their failure is often down to bad decisions concerning moderation and management.

This article helps to address those issues providing solid advice. If you are a community manager or have clients who run (or want to run) a forum then this is a must read.

Back to top

Feature: The personal website is dead

This week Zeldman mourned the decline of the personal site. Several responded rebutting the claim. In this weeks feature I explain why I agree with Zeldman but just don’t care.

Back to top

Interview: Jeff Croft Talks About His View On Web Standards

Paul: OK. Joining me today is Jeff Croft, who no doubt you have heard of. Good to have you on the show Jeff

Jeff: Great to be here Paul, thanks for having me.

Paul: So you work for Blue Flavour, and I have to confess the reason why I wanted you on the show is because you do tend to court a little bit of controversy, shall we say, is that a fair comment?

Jeff: I suppose that’s a fair comment. I don’t necessarily do it on purpose, but it does seem to keep happening!

Paul: Well you say you don’t do it on purpose, but I’ve looked through your blog, and you have some excellent articles on there that are really good and really quite excited me. Not necessarily because I agreed with every word

Jeff: Sure

Paul: But what I like about what you do, Jeff, is that you challenge kind of the standards, you know, you challenge the standard thinking and you kind of come at things from a different angle. So…

Jeff: Right

Paul: As a result of this, you seem to have antagonised a few people, especially in the standards community. Why is that? What have you done and why…why do people find you so annoying, Jeff?

Jeff: Well I was going to ask you that same thing Paul!

Paul: Ha ha ha

Jeff: No, seriously, it’s a good question. Like I said, I won’t ever set out to antagonise anyone. I think sometimes, you know, people take opposing viewpoints on these industry matters, a little personally, that’s, you know, my opinion. I know I write in kind of a pointed way that sometimes is blunt and I tend to be the type of person who doesn’t always have a filter when maybe I should. But, you know, I love everyone in this community, everyone I’ve ever met in this community’s been awesome so I’m not…it certainly isn’t ever personal, but I think, dealing specifically with web standards, it sort of feels a lot like religion to me. Like I sort of see myself as a Protestant of sorts, like I…you know I came up as a firm believer in the dogma of web standards, but more recently I’ve sort of split off from the Church on a few key points, but in the end, I mean Catholics and Protestants are both Christians, right? And we read the same Bible which is, I suppose, designing with web standards, and so you know, just there’s….I usually sort people there’s probably 5% of stuff that I differ on than kind of the purist viewpoints. So I’d see it as a purist versus pragmatist sort of thing
and I like to write about it and I like to write in a kind of a blunt way that I guess sometimes rubs people the wrong way.

Paul: So you’d like to call yourself a pragmatist. Tell us a little bit about where you, you know, what areas you think that other people are being too purist over when it comes to web standards. What are the areas that get under your skin?

Jeff: Well the main thing is just that I don’t really consider…I never think of web standards as the end goal. I think of web standards as a means to the end, and so, you know, when I’m building a website my priorities are, you know, to serve the needs of the client and to create a great user experience, more than my priorities are to validate or to, you know, use all the right ….most semantic elements all the time. I mean I do try to do that, but it’s…those are just in support of the greater goals that I have and I think…sometimes I feel like peoples’ priorities get a little out of whack there, and that’s kind of the purist mentality that I’m talking about.

Paul: I mean the trouble is with writing posts like this, and this is something I get accused of as well, that when you say something like, well web standards, you know, are not the goal, they’re merely a means to an end and all the rest of it

Jeff: Right

Paul: Aren’t you actually encouraging lazy coding?

Jeff: Well I don’t think so. I can see how it seems that way. I mean I definitely do believe that everyone should be writing valid markup and CSS and I just encourage people to remember that web standards are simply tools to advocate, you know, to help achieve the end goal, and you know, if you’re…I don’t know, I guess it’s kind of hard to explain, but if, like…let me use an example. If you’re building a house, I don’t think anybody would have their goal be…I need to use a hammer, and nails and bolts when I’m building this house. I don’t think that would be anybody’s end goal. Their goal would probably be like, I’m going to build a house that is structurally sound and has spaces that serve the needs of the residents and it’s comfortable and it’s aesthetically pleasing. They’d probably have goals like that. And you know, they probably would use a hammer, nails and bolts, but I don’t think they’d probably get so bent out of shape about, well in this house I used, you know, 3½ inch long nails instead of 3 inch nails, but those are the kind of like sort of semantic and pedantic debates that we get into in the industry a lot that irritate me a little bit because I feel like sometimes people just don’t pay attention to, you know, somebody can redesign a site that can be beautiful and amazing, and they make a blog post about it, and they say, you know, this is a new project I’ve done and it’s got all this new innovative stuff and the comments on it are, well you didn’t encode your ampersands and you know, you used too many divs and just to me I’m just like, man you totally missed the point, you totally missed all the great stuff that is there about my site.

Paul: But I mean using your house example that you just gave

Jeff: Right

Paul: I mean, within, you know, construction there are standards. There are, you know, rules that have to be followed and it may be the case that the person that’s getting their house built for them doesn’t…don’t particularly care about those things, you know, they care about the aesthetics, they care about the living space, they care about that kind of stuff, but somebody has to care about, you know, the fact that it’s built to Fire Regulations and things like that. Is that not our job as a Designer to worry about things like that?

Jeff: I think it’s completely our job, I just think that it is our job to …to do those things and to create great user experiences and have beautiful designs and…and it’s mostly just a priorities thing, like it’s just…I think all those things are important. Validating and creating, you know, writing semantic mark-up, all these things are important to me, they’re just… they’re just tools that I use to reach greater goals is all….and I think some people in our industry have turned that around to where they are more interested in writing valid code than they are in creating great experiences.

Paul: Mmm. So do you actually think that there are situations where the, you know, these different objectives come into conflict, because you know, I can’t say that in my experience there have been many situations where you know, I’ve gone, you know, oh I can’t do that because it’ll make the code invalid or whatever, you know, where…or where, you know, I’ve had to over-rule a client because I feel that it would compromise, the, you know, the semantics of the website. They don’t often seem to come into conflict, but I mean do you disagree?

Jeff: No,….no I agree, they’re very rarely in conflict if ever. It’s…you know, it’s more what irritates me and what I have talked about is more it has to do with the discussion and the kind of….community, you know, within the web standards community it’s not something that really affects client work too much or anything like that, it’s just I want to talk about some other stuff; I want to talk about design and I want to talk about users and I want to talk about community and networking and bringing people together and sometimes I feel like those conversations can’t be had because they’re…because as soon as somebody starts to talk about something a little bit more abstract and conceptual, people derail the conversation by saying, again, like your ampersands are unencoded, or you know, why did you use all these divs when you could’ve, you know, been more semantic, or you know, whatever. So….it’s more about the conversation…yes

Paul: I’ve got to say, I can associate with your point of view, I mean at the moment I’m re-building the Headscape website, our corporate website, and you know, although obviously I should primarily be thinking about the client all the time and potential customers that are coming along to the site, after all, that’s the target audience, but you can’t help but almost be a little bit afraid, you know, that …oh is this code of good enough standard, are people going to criticise this, that and the other, and really you shouldn’t have to live your life in fear of what your peers will say.

Jeff: Exactly, that’s exactly wha
t I think.

Paul: But I mean from the point of view of…we were talking about lazy coding weren’t we, and about, you know, does this encourage lazy coding. You guys have taken an interesting position at Blue Flavour, and I have to say this…this is something I think I probably disagree with, which is that you guys use Blueprint, which is the CSS library, actually in a production environment. That’s interesting that you take that point of view. Explain a little bit about how you came to that…that point, you know that position.

Jeff: Well…well first of all I was sort of involved in the creation of Blueprint. It was…I was accidentally involved; I didn’t mean to be, but at my previous job I had…I had created a sort of CSS framework for us to use internally, it was a media company, a newspaper company and we had several different newspaper sites. They were all similar and we had a team of designers and we wanted to just sort of standardise on some….some class names and just some ways of coding things across our sites and across our team, so that you know, we would all kind of be on the same page, and I wrote an article on a A List Apart about that process and somebody found…somebody went and found that code and wrote me an e-mail asking if they could use it, and I said sure, I can’t support it, but if you want to use it, go ahead, and thinking that they were probably going to use it on their personal site or whatever, and it turns out what they’re actually going to do is build Blueprint. So that’s kind of how the whole thing happened and…so that’s how I got involved in it and I gotta say before I go any further that since then, Blueprint is very different from what I wrote and there’s been a lot of changes, and a lot of them are good but a lot of them I don’t like too, so I don’t….at this point in time I’m not as sold on Blueprint as I was three or four months ago just because of some of the changes they’ve made. But I think the reason, I mean the justification to me for using Blueprint or any CSS framework like that is the same justification that you would have for any Open Source project. It’s really good CSS written by smart people that has been tested by the masses, it’s constantly being updated, having bug fixes applied, and you know I believe that most of the time the Open Source community is going to be able to write better code than you or me or any one individual person, so to me that’s the justification, it’s the same reason I would use Apache or Django or Rails or Linux or anything Open Source because it’s just been proven time and time again that….that Open Source methodology works for having good code.

Paul: I mean, I have to say, I had a look at it and played with it for a bit, and I’ve got to say that for some stuff it was very impressive, you know, if you’re putting together wireframes or, you know, doing initial production work then I can see a value in it, but I think what concerned me was some of the limitations surrounded the fact that, you know, it’s designed primarily for a fixed based site, but also…sorry, is that…am I wrong?

Jeff: No, no, you’re absolutely right, although I think adding liquid is on their ‘to do’ list, but yes,

Paul: OK. And then…I mean the other thing was that, you know, I’m trying to avoid using the word ‘semantic’ in order not to get in trouble with you, but I mean the thing that did strike me with it is that there were a lot of class names that you were having to put in, you know, which is fine, you know, I can accept that, you know, it’s not the end of the world if you do that, but you know, if it’s a site that’s going to be around over the long term, I just felt it was a little bit of a second-rate solution for probably the type of clients I do. Now I can understand that if you’re doing, you know, a lower…you know, lower end work, smaller websites, with less of a budget and you need to turn things around quickly then this is better than not using standards at all, but it just felt a little bit of a lightweight solution. Am I being unfair to it?

Jeff: Nope, I don’t think you’re being unfair at all. I think you’re absolutely right and I think, you know, I mean at Blue Flavour, we have used Blueprint before, we don’t use it all the time, and it is…we do tend to use it in those situations where we have a very tight timeframe or a very tight budget, and just need to get things done and get them out the door as quickly as possible. Because like you said, I mean we think it’s a good solution that is better than not using web standards at all, but it’s…it’s never going to be as good as hand-crafting every line of code for, you know, for the particular project. We recognise that, but it’s, you know, sometimes in the real world, when we have deadlines and clients and budgets, sometimes just getting things done on, you know, an efficient way trumps being absolutely perfect every time which is again that pragmatist versus purist sort of view.

Paul: I mean it felt like a bigger compromise, and maybe…I’m using some other, you know, frameworks and libraries, you know, I just jQuery for example in JavaScript, and this felt more of a compromise, more of interfering with the kind of underlying content of the site, and that’s what I was probably slightly uncomfortable with, was the idea that, you know, the content would be in some ways compromised if the site was going to be around a long time, you know, if it was a shorter term project that maybe wasn’t around as long, then the fact that the content is somewhat compromised maybe is not as big a deal.

Jeff: Yeah, well I think, you know, when you were saying that I was thinking, you know, like you use jQuery, so do I. I think there’s a certain…like…those of us who are not great JavaScript people will lean on these frameworks, whereas I bet JavaScript gurus sometimes have the same feelings like about…it being a compromise when using one of those libraries, you know, and there’s probably people in the Ruby community that say, ‘oh, I’m not going to use Rails, it’s a compromise’, because they really know the ins and outs of Ruby or they really know the ins and outs of JavaScript and we really know the ins and outs of HTML CSS so yeah, I wonder if it’s always …these kind of libraries are always going to be a little more popular with people who are…who are like have to use CSS but it’s not really their primary area of expertise.

Paul: So what you’re implying is that I’m a snob?

Jeff: Sort of!

Paul: Ha ha ha…..that’s fair enough, that’s OK. I don’t mind being a snob! So I’ve….so moving on from that then a little bit

Jeff: OK

Paul: Now I’ve read some stuff that you’ve written before critical of validators and you know, some of these automated validators that are out there. Maybe tell us a little bit about why you’re critical of them, why you feel so anti towards them?

Jeff: Well it’s not so much that I’m opposed to the validators, I mean on the contrary actually I use validators almost every single day. What I’m critical of is the way people use them sometimes. I think that, you know, validators are there for…as a tool to help you de-bug during the development process, you know, you have some problem on your page and why isn’t it working? When you validate you find the error and then that helps you move along to solving it. But what irritates me is the use of validators as sort of in unprovoked attacks on other peoples’ code, you know, where again, it’s kind of that same…that same mentality of somebody launches their new site and the first thing somebody does is view source and validate it, so that they can then make a comment that says, you know, this is crap, and that is…that is really irritating. I feel like there’s almost never any reason to validate someone else’s code, I mean unless they’ve asked you to, I can’t understand why….it’s just that mentality of the first thing you do when you get to a site is view source is a little baffling to me, because I’m…I’m more interested in the design and the functionality and what are they doing here that’s new and interesting.

Paul: I guess…but that depends…surely that depends on your priorities, I mean…you know, I find it quite interesting to look at other people’s code and how they’ve built the site. It doesn’t necessarily mean I’m going to validate it.

Jeff: Right, and….no and I mean that’s fine, I do that at times as well and that’s certainly how I learned a lot of what I know, but I don’t do it with the intention of then picking apart every single error they made publicly, which is really the thing that bothers me.

Paul: I have to say the other thing that concerns me a little bit about this is I’m starting to see more clients going and viewing source and validating websites and you know, it’s quite difficult, because I mean obviously like yourselves, we kind of sell ourselves on, you know, being standard based designers and produce good quality code and all the rest of it; it’s part of our sales package. And you know, when a client goes along and validates one of our client sites and it’s invalid, you know, you feel like you have to defend yourself in some way, but, you know, there are good reasons why a site won’t validate sometimes, and…and certainly once a client starts using a content management system you can pretty much kiss goodbye to it can’t you really?

Jeff: In many of them, yeah.

Paul: OK. That’s…it’s interesting to hear a little bit about the way that you operate and the kind of priorities that you have at Blue Flavour. In some of the posts that you’ve put up, I mean you were kind enough to send through a big bunch of your more controversial posts to me which was good. And I was reading through some of them, really enjoying them by the way, but there seemed to be this kind of under-lying current that maybe standards and even the W3C to some extent, a kind of stifling innovation. Where does this kind of feeling come from, you know, is that something you really, really believe and what makes you believe it?

Jeff: I would say again it’s not so much that I think that the W3C themselves or the standards themselves are stifling innovation; it’s the culture of compliance that is around those standards and around the web standards community to where people are so obsessed with being valid and being compliant all the time that they…you know, they tend to…I think it even extends past actually writing mark-up or writing CSS to where people just keep doing things the same way that everybody else is doing them or the way that Jeffrey Zeldman told them is the way to do things, or whatever, and it just kind of….they just keep doing things the same way and not innovating as much as I would like to see. Now I say that, and I…but I know I probably do the same thing myself, like I don’t…I’m not always incredibly innovative either, so…so it’s kind of, you know, it’s a balance there. But I think….I think also, I mean…and this might be a little bit of difference in my viewpoint too, is when I really thing of web standards, the web standards movement, I think about the browsers. I think the…gold web standards movement was to get the browsers all rendering standards correctly and supporting standards, which for the most part has been done, I mean granted there are still little problems here and there, and IE isn’t totally there, but at least we know that they’re on board now. I don’t think of web standards movement so much as being a thing where we’re getting the developers all on board. I mean I guess that’s part of it too, but when I think about the web standards movement when I was, you know, when I was first involved in it four or five years ago or however long it was, to me it was all about the browsers, and so, you know, today I think there’s a sort of chicken and egg problem where…browser makers could be innovating and doing cool new things and the one that consistently has done cool new things is Webkit in Safari, I mean they’re adding the CSS3 properties and they’re adding, you know, they’re coming up with properties of their own and adding them and they’re…and they’re doing it, I mean today we have this name spacing, right, where they can say, you know, it’s going to be hyphen webkit hyphen border radius or whatever, so they can keep it out of the, you know, it’s got its own name spaces, kept out of the global area so it doesn’t conflict with anything else, and I would just like to see a lot more of that kind of innovation from browser makers where they’re trying these new things, they’re throwing them in, they’re letting developers play with them, and like I said, it’s kind of a chicken and egg thing I think where the browser makers would like to do this maybe, but they’re afraid of the backlash from the standards community. If they’re adding new properties that aren’t part of a spec, you know, the standards community is…has proven that it’s going to backlash against them and it’s going to say, ‘why did you add this, this isn’t in the spec’, and so then they don’t do things, but the developers and designers also would like to try new things but…so it’s kind of a chicken and egg thing there a little bit I think. So that’s the…that’s the main …the main plan I have on that, and the, you know, like there are examples, like X….sorry, XML HTTP request or Ajax, you know, was a pr
oprietary IE property that they just put in, and eventually got standardised, and that’s kind of the way that I would like to see it go more is where the browser makers are doing new things and then we’re trying to standardise them, which is the opposite I know if, you know, some really respectable people and friends of mine like Jina Bolton and Andy Clarke which see that it should go the other way, which is that specs are written and then browser makers standardise on them, so…

Paul: Yeah…I must admit, listening to you talk kind of fills me with a certain level of dread, to be honest, when you talk about browser manufacturers. You know, I studied…I studied designing websites back in ’95, and you know, and so I lived through this whole period of time where you have browser manufacturers, you know, introducing all kinds of bizarre tags and it was absolute chaos, you know, and you didn’t know what was happening on what browsers. What’s to stop that happening again, beyond the standards community growling in the corner aggressively?

Jeff: Yeah, well I mean that…I mean I was there for that too. I studied also in ’95 and yeah, it was pure chaos. But I think, you know, I mean first of all I think the standards community has made a lot of inroads to where these, you know, I don’t think it would be complete chaos simply because we understand the value of standards now. And there are some…there are some mechanisms in place like the name spacing I’m talking about, where they can do these things and keep them from conflicting with other…so when …when WebKit decides they’re going to add border radius property, they can do it under dash webkit dash border radius, so that if anybody is actually using the real border radius without a, you know, prefix, you know, there’s no conflict, so I think, you know I just feel like there’s some mechanisms in place that would keep it from being so chaotic and the value of standards we’ve learned through the web standards movement, you know, and the browser makers are now on board with the idea of inter-operability, I think would keep it from being so chaotic, but I guess I don’t know for sure. It is…it’s definitely…there’s definitely a balance there because I definitely feel like the browsers have not been doing as many new things as they did back in those days, but those new things did cause problems too, so it’s, you know, but as a Designer I sometimes get bored, I’m like, I’ve played with all that stuff; I’ve played with all the tools we have and I want to try something different, you know, I want something that will…I want advanced grid positioning and, you know, I want to be able to draw shapes and, you know, it’s not out there.

Paul: I mean that is the only trouble I guess with…you know, you were talking about innovation and we need to be innovating more as Designers as well as browser manufacturers. The trouble with innovation to some degree is that you’re always in danger of undermining users’ expectations. I mean this is something you hear someone like Nielsen go on about loads. How…where do you feel the balance is between kind of doing cool new stuff and…you know, not undermining users’ needs or expectations?

Jeff: Well you’ll probably remember from back in the late ‘90s and that sort of thing that there was….and another sort of interest of mine is the sort of demise of the personal website, but back in those days, there was just so many experimental kind of crazy out there personal projects that were happening, and I think that that is a great place to try those things, because they’re not…they’re not real users accessing them; people that are using them are, you know, expecting that, I mean that sort of thing’s a great place to try new things, is on personal projects. Now again, with the culture of compliance that we have, I don’t know how that would fly today. Like if somebody made some crazy experimental site, I think there’s a certain fear of doing that because of backlash again from the web standards community, like you know, it’s a thing where people aren’t seeing the…the meaning, you know, it’s…I’m putting this out there because I’m trying to do something new and difference and …and it’s almost not allowed by the web standards community. Well, you can’t do that, because it doesn’t validate, or you know, whatever. And again, like I said, that’s not always specifically about validation and mark-up. It goes onto the…to that …into usability and into layout and design where people say, don’t change that because it’s messing with users’ expectations, but I think there are places where you can try those things and personal projects to me are the big place where you can try that.

Paul: You’ve got a good point about personal website. It’s like everybody now …have…you know, it’s all about blogs isn’t it, it’s all about….there’s almost this kind of citizen journalism thing where, you know, we’re all actually trying to create a little audience for ourselves and so therefore we don’t want to do anything too dangerous with our…with our personal sites. I remember my….my first personal site was absolutely chaotic, you know, it had no proper navigation whatsoever, but it was fun, it was a place I could experiment, so yeah…

Jeff: Yeah, that’s a real kind of…pet annoyance of mine is that …the loss of that, and I do think, you know, it’s because everything’s a blog, and I love blogs, and you know I have a blog, but I still wish that there was just a little bit more of that crazy experimentation that we had going on back then.

Paul: Mmm. I mean it’s a good point as well. A question I often get asked by people is, you know, how do I promote myself online. They say, I don’t want to…I don’t want to run a blog because I don’t want to write. Well you know, a personal project in a way you’re trying out different things like a sandbox you can play in. It’s a good way of promoting yourself and showing what you’re capable of, and that you do innovate without having to write reams of stuff, because let’s face it, not all of us are big writers, so….yeah

Jeff: Right.

Paul: Good to have your perspective on things. It’s really nice to have a kind of new perspective and you know, a different point of view, so great to have you on the show, and no doubt we will get you back in again in the future. Good to talk to you.

Jeff: Great. Thanks so much for having me.

Thanks to Anna Debenham for transcribing this interview.

Back to top

Listeners feedback:

Getting a site
off the ground

Shaun writes: Following the headscape redesign and promised boagworld redesign what tips can you give to getting a personal/own site off the drawing board/local machine and actually published.

The problem with internal projects is they lack motivation. They are never as important as client work because they donʼt directly generate income. The answer is to increase their perceived importance. I use a number of techniques:

  • Document the benefits to your business or personal profile.
  • Produce a statement of work just as you would an external client.
  • Price the project so that you can set it against your targets as a marketing cost.
  • Set a deadline and preferably announce that publicly so you are forced to meet it.
  • Block out time for the project rather than attempting to “fit it around” client work.

Ultimately it comes down to determination. However, knowing the value of the project and treating it as any other project really helps.

Testing

Erich writes: Thanks so much for the show, all the work you guys put in really shows. It is great learning about aspects of the business that I donʼt get to deal with much.

I was just wondering if you guys had any kind of a testing station at Headscape. We are looking at putting something like that together at my work. Somewhere you can just go sit at and run through all the browsers, maybe even some with different versions of flash and such. Do you guys run anything like that?

Because our designers are based remotely it is not easy to have a central testing suite. We did try that at one stage but it did not work. Connecting remotely wasnʼt as smooth as it should have been and we found multiple designers often wanted access at the same time.

Currently, each designer runs a number of virtual PCs on their individual machines. Most have two versions of XP one running IE7 and one with IE6. We also run multiple version of Firefox and Opera. Most of our designers also own macs allowing them to test Safari. Those that donʼt connect to a mac in the office.

To be honest our testing environment is not the most sophisticated. Most clients do not want to pay for testing against minority browsers and when they do we setup something specific for their needs usefully using a virtual machine. If you are interested in setting up your own Virtual Machines then I recommend VMWare Fusion(7) for the mac and Virtual PC(8) under windows.

 

Show 89: 404

On this week’s show: Paul talks about creating the perfect 404 page, Marcus covers some of the basics of rich media and Aral Balkan makes working with databases and APIs a whole lot easier in flash.

Download this show.

Launch our podcast player

Before we dive into today’s show I have a small request from you our loyal fans *cough*. As you may have noticed the show notes we produce for this podcast are a lot more comprehensive than once they were. They are almost a complete transcript, which is important to us because we want the show to be as accessible as possible. I have been contacted by a number of deaf users who are frustrated because they cannot access the show and to be honest I sympathize. We have done our best to produce a complete script but we are getting hung up on the expert section. I just do not have the time to go through and reproduce everything say. An alternative would be to use a service like Casting Words but to be frank I am not confident on the quality we would get back. I was therefore wondering if any of you would like to volunteer? I know a number of people have offered to transcribe in the past but quickly became overwhelmed with the amount of work involved. However, transcribing just this section of the show (typically about 10 minutes) shouldn’t be too bad. Hopefully if we can put a rota together it should be too big a job and best of all you would get to listen to the expert sections in advance :)

So, if you can spare the time drop me a line.

News and events

Writing for the web

First up this week is the fact that the latest issue of A List Apart is entirely dedicated to the subject of writing for the web. There are two great articles both of which are definitely worth reading. The first post takes the idea of personas and suggests that your website too should have a persona. What tone of voice should your website have? What character should it project? The second article (and my personal favorite of the two) is a passionate defense of good writing on the web. It fights hard against the attitude that web copy should be kept to a minimum arguing instead that if the content is web written it draws the user in and engages with them in the same way good design can.

Both articles are excellent and has made me reconsider the importance of good copy. It is an area I am constantly frustrated by and just wish I could get my clients to pay for a copywriter to really bring their sites alive.

Microformats in Google Maps

Next up is a really exciting announcement by Google. It would appear that Google Maps now supports Microformats. I can hear your cries of disappointment… thats not that exciting! Well, I think it is. This is a huge boost for the Microformats community and puts literally millions more hcards out there. Not only will this raise the awareness of Microformats but I also think it will lead to some interesting mashups using the massive database of businesses that are displayed on Google Maps.

If you are yet to play with Microformats or haven’t gotten around to adding them to your website then now is the time. They are quick and easy to implement and oh so very cool ;)

There has been a lot written about Microformats but it is nice to see big players picking it up and running with it. Good stuff.

Corporate Web Standards

What you don’t see a lot written about anymore is web standards. Its almost as if all of the arguments have been made. However, I did come across an article this week that convinced me there was more to cover. It was a discussion about implementing web standards in a large corporate environment where you are weighed down under legacy pages and internal politics.

It was a refreshing article because it was so pragmatic. Much of what you read about standards is bordering on fanatical. This article was much more down to earth accepting that you cannot implement the perfect solution especially within a large corporate environment. It talked about little steps and something being better than nothing.

If you work in a large organisation then this is definitely worth reading. You will find it very encouraging.

Web Design advice

Last up is a couple of websites I have stumbled across this last week. Both of them are provide general web design advice and I have to say both look very impressive. The first was sent to me by Charles Russell who recommended it as an alternative to “The Principles of Beautiful Web Design“. I am not sure it is an alternative personally but it is certainly an interesting website. It is called Web Design from Scratch and does exactly what it says on the tin. It literally covers every aspect of web design providing basic advice and then referring you on elsewhere. Ideal for the beginners.

The other site I wanted to mention is the Web Designers Wall which I believe has only just launched. It seems to be filled with all kinds of nice goodies including tutorials, code snippets, commentary, inspiration and more. What is more the site design is beautiful. I have a feeling that this site is only going to improve with age.

Marcus’ bit: Rich media

Multimedia doesn’t really mean that much anymore I think. It used to refer to CD-Rom type content but now I think it refers to any web content that isn’t just plain old text and images.

I have been pricing up some new/interesting/dynamic content for one of our clients and it struck me that I haven’t discussed this sort of thing here before. I guess there isn’t a great deal of point to this other than ‘have you thought of doing…’, so here goes…

Animated shortcut banners

These seem to be all the rage at the moment. Usually quite a large portion of the homepage is dedicated to a rolling carousel of messages or adverts for content deeper in a site. There will usually be 3 or 4 different ads that flow from one to another. Manual controls are also available to go straight to a particular shortcut or pause on an ad.

There’s a good example at Wildfowl and Wetlands Trust.

Video

I don’t really mean just plain video; I’m referring to a piece we did for the Surrey Hills AONB that incorporated:

  • Still shots
  • Video footage
  • Voiceover

All of which were pulled together to create a tourism video that can be downloaded at Surrey Hills.

The voiceover, incidentally, was done by Surrey Hills patron and famous british actress, Penelope Keith. Going to her rather grand house to record the session was a great experience.

Voiceover

Which brings me nicely on the subject of voiceover. I have two rules relating to voiceover recording:

ALWAYS use a professional actor. The girl in the office with the ‘nice’ voice will sound rubbish, so will the ‘posh’ guy in accounts (we know, we’ve done it!). Voiceover actors aren’t that expensive and, because they’re professional they’re quick. I have used Voicebookers in the past and they have been superb.

Less important but… use a proper voiceover recording studio. I have used studios in London that are really very reasonable and the quality is superb. Though of course this isn’t always possible as with Penelope Keith (recorded my laptop).

Panoramic imagery

We have done a few external 360 degree images, again for Surrey Hills and some for National Trails. We haven’t used dedicated equipment that take full spherical shots basically because you end up with an unnecessary amount of sky. I have simply used a decent camera and tripod and done two full sweeps of portrait images (roughly one just below the horizon, the other just above), moving the camera about 10 degrees each time.

The ‘fun’ part with these images is that they are usually taken from high vantage points so expect to have to do a lot of climbing to out of the way places!

There is a compromise to be made with panoramics. The best time to take a good landscape photo is early in the morning or just before sunset. However, for a panoramic that doesn’t work because you will have the sun in view for a large chunk of the image. This is one of the reasons why panoramic images can often look a little ‘flat’.

Dynamic screensaver

This is quite a cool idea where the standard screensaver idea (pretty pictures rolling from one to the next) is enhanced to allow the client to update information to it. Basically, when the screensaver fires up (as long as it connected to the internet) it checks with the client’s site to see if any changes have been made and automatically updates if there has. This is really handy for news stories but could be used for anything.

Mapping

I think I have discussed mapping previously because it is something Headscape has done a lot of in the past. Up until recently we tended to develop maps using Flash where points of interest are dynamically generated using grid references. We also added features such as layering of different categories.

However, recently we have developed a site for River Thames that utilises Google Maps. The site’s main purpose is to promote the River and encourage people to visit. Again, we have used Google Maps to show points of interest such as places to eat, places to stay etc that are controllable in layers. Using GM is very cool though because the points shown alter when the maps are dragged and/or zoomed (apparently lots of brain power went into making this work!).

Finally, we also created a trip planner or itinerary builder that gives site users the opportunity to list all the places they want to visit (inc. contact details, address, directions etc) and print this off in a print friendly design or email to a friend.

Paul’s corner: Handling missing pages

I noticed this last week that I have been getting a lot of traffic from the Smashing Magazine and so I went to check out where it was coming from. Turns out it was an article on 404 error pages and they had used my error page as an example. The article also referenced another site called the 404 Research Lab that provides lots of good information on setting up custom error pages. All of this reminded me I wrote a blog post ages ago about handling missing pages and yet for some reason i have never spoken about it on the show before. Seems strange because it is a subject we all need to deal with. So, I thought it was time I covered the subject properly using my old blog post as the basis.

Review: Aral Balkan on SWX

Paul Boag: OK, so joining me today is Aral Balkan. Hello! How are you?

Aral Balkan: I’m fine, Paul. How are you doing?

Paul: Not too bad. I feel like I’m speaking to you quite a lot recently, one way or the other.

Aral: [laughs] I know, but it’s fun, huh?

Paul: So I was explaining to everybody earlier in the show how we got you into Headscape to give us a little bit of training and kind of bring us up to speed with what was going on with Flash.

Aral: Yeah, that was a lot of fun, too.

Paul: You had a good day, did you? It wasn’t too painful then.

Aral: Yeah. Me and my bunny had a good day. [laughs]

Paul: Yeah, that was deeply disturbing, on so many levels.

Aral: [laughs]

Paul: But I think we’ll just leave it at that. We won’t tell people any more details on that. We’ll just leave them worrying about it. [laughs]

Aral: OK, let’s do that. [laughs]

Paul: So, as part of that day, you mentioned SWX, which is something that you’ve been involved in developing. And it sounded so cool and kind of dragged my attention back when there were points where I was thinking that this is beginning to get a bit out of depth to me.

Aral: [laughs]

Paul: There were techie people in the room that understood what was going on.

Aral: Yeah.

Paul: But then you started talking about SWX, and I started to think, “Ooh, that sounds cool” so I thought I’d get you on the show and ask you a little bit about it.

Aral: That’s great. That’s great, because SWX is what I’m most excited about these days.

Paul: Good stuff. So, do you want to kick us off by telling us a little bit about what SWX is?

Aral: Well, SWX is a couple of things. SWX itself is a new data format for Flash. It’s actually the native data format for Flash, which is kind of weird, because Flash has been around for a while, so why hasn’t it had a native data format until this point? I don’t know. Nobody else did it, so at the end; I was like, “OK. Well, I guess I have to bite the bullet here.”

And when I say native data format, if you’re not very fluent with Flash, think about JSON, or what JSON is for JavaScript. But it’s actually a step beyond that, because, with JSON, you still either have to parse it, or in JavaScript you have to evaluate it, before you can use it. So there’s another step before you can use it, after the data’s loaded.

In SWX, there isn’t. It uses SWF files, which are native Flash files, to store data, so it makes it very easy to work with.

Paul: What’s the kind of target audience for this? Who do you see as using it?

Aral: There are a couple. So, anyone right now who’s working with Flash basically can use this to build mash-ups, to build data-driven Flash applications. And also, mobile developers who are developing with Flash Lite can use SWX to develop mobile Flash applications.

And in fact, that’s where it’s currently, I think, most useful, because with SWX RPC–which is the remote procedure call, the gateway for it–you can make remote procedure calls, so call back-end services and methods, through SWX. And it’s the only RPC solution, really, because Flash Remoting doesn’t work on Flash mobile, on Flash Lite, so it’s the only RPC solution for mobile right now.

Paul: I think what kind of struck me about it was the fact that there are a lot of people out there that maybe have been doing some superficial stuff with Flash…

Aral: Yeah.

Paul: And have been doing some ActionScript and things like that.

Aral: Right.

Paul: But when it gets to things like making data calls, it all seems to get horribly complicated, all of a sudden.

Aral: It does. It gets very hairy, and I don’t know why. I think part of it is because the back-end, the server side, of applications has traditionally been the realm of traditional programmers: the brainiacs, the people who are very comfortable talking in code, thinking in code.

And they’re not always the best people, I find, to simplify concepts, because they’re so intelligent, they can understand all of this, or they have such a focus on this that they don’t mind spending hours trying to set something up. Sometimes, they’re not always the best people to create simpler systems for mere mortals like the rest of us.

Paul: [laughs]

Aral: So that was my main motivation behind it, because I think Flash is great for building mash-ups and data-driven applications. But we don’t get as much experimentation in Flash with that, and I think it’s because it’s too hard. The barrier of entry is too high. You have to jump through so many hoops to get even something basic working, whereas it should just be, off the bat, you should be able to get started with things. And that’s been my focus with SWX.

So, for example, on the Mac, there’s a bundle that you can download that gives you everything you need to start using SWX, with a one-click installer, a disk image.

Paul: Cool.

Aral: My focus, really, with SWX is on simplicity. And when I say simplicity, I mean for the whole process, from the moment you go on the website and download SWX, to the moment you can get up and running. I’m trying to make that whole process as easy as possible, basically.

Paul: From what you showed me when you came into Headscape…

Aral: Yeah.

Paul: Basically, within a few minutes, you can kind of download this bundle onto my Mac. I can run an install file, which sets everything up for me.

Aral: Yeah.

Paul: And you’ve even set up…

Aral: Well, you basically get a development server for free.

Paul: Yeah.

Aral: It uses the MAMP Bundle, which is a great bundle that has Apache, PHP, MySQL. So if you’ve ever been afraid to work with these things, that’s also a way to get started, because there they are on your machine, running, without any configuration or anything on your part.

Paul: And you have also included some kind of interfaces to common APIs, things like Flickr and Twitter and stuff.

Aral: Yes, and in fact, if you remember the installation process and everything that you were talking about, you don’t even have to download and install SWX to start working with the pre-existing APIs that come with it, because I host an instance of the SWX gateway on swxformat.org. It’s the public SWX gateway that you can just hit directly from your Flash applications.

Paul: Ah!

Aral: So if you don’t want to mess with the back-end, but say you want to build a mash-up that uses Flickr or Twitter, currently two of the main APIs that I have on there, you don’t even have to download SWX. You can just open up Flash, write four or five lines of code, and get, for example, the list of your latest photos from Flickr.

Paul: Cool.

Aral: Or your friends’ photos. With nothing else. So you don’t even have to download anything to start working with SWX, because it is native. What you’re getting from the back-end, from that SWX gateway, is a SWF, and Flash knows how to deal with that, and the data in there is a native Flash object and ready for you to use the moment it loads.

Paul: So, how does somebody get started on this? Where do they go? What do they have to do? Especially, you made it sound very simple for the Mac. Is it horribly complicated if you’re a Windows user?

Aral: Oh, not at all, not at all. Like I said, regardless or what platform you’re on, unless you want to build your own server-side services, if you want to use the APIs that it comes with, you don’t even have to download it, actually.

Paul: Oh, OK.

Aral: In fact, just last week, I got moo cards printed. And these little moo cards have all the code you need on the back of them, because there’s only about four lines of text you can put on the back.

Paul: [laughs]

Aral: But they have all the code you need to get the latest public timeline updates from Twitter. So it’s actually, seriously, four lines of code, and it fits on a moo card.

Paul: Wow!

Aral: So, to get started, you don’t have to do anything, really, apart from open up Flash, write four lines of code, and see it run and get the feeling that, “Wow, maybe I can build data-driven applications in Flash, too, because this is simple.”

The next step would be to download SWX onto your own machine. If you have a development server already, if you have a web server with PHP, then you just download the ZIP file, unzip it into your web root, and hit that location in the browser, and the start page comes up and guides you through the rest of it.

Paul: Cool.

Aral: If you’re on a Mac, get the MAMP Bundle, and that’ll get you started even faster. But, like I said, you don’t even need to download anything to start playing with it.

Paul: So these four lines of code to get you going…

Aral: Yeah.

Paul: If they don’t have one of your precious mood cards, where can they go to learn those kind of basics?

Aral: Well, on swxformat.org, there is a screencast right now. It runs you through the MAMP Bundle, but the concepts are exactly the same for all of the rest.

Paul: OK.

Aral: Although, I am going to record a few more screencasts. I’ve started putting them up on Viddler, which is actually really cool. I don’t know if you’re used it.

Paul: Yeah, I have.

Aral: But it’s really great for screencasts, because it keeps the original resolution of your movie. So I’m going to record quite a few more and put them up there, including one that will just get you started, like the moo card does.

Paul: Cool.

Aral: So, look on swxformat.org. And also, look on my blog, because I blog about SWX quite often there: it is aralbalkan.com.

Paul: So as I understand it, at the moment, this is all built on PHP and MySQL. Is that going to change? Are we going to see other platforms supporting this, too?

Aral: Well, basically, the SWX format itself is a data format, so it’s platform-agnostic, in terms of the back-end, etcetera. So if you have a SWX SWF, you’ll be able to load that. Even if it’s offline, if you have if on your hard drive, you’ll be able to load it into Flash and get the data off of it.

Paul: Excellent.

Aral: And then there’s SWX RPC, which is an implementation of a gateway, basically, or an endpoint, that serves SWX SWFs. And the current implementation of that is only in PHP.

Paul: Right.

Aral: So, it will be ported later on. It’s currently in beta. And once we get closer to the release date and certain things are standardized, I’m going to be concentrating on orchestrating the ports. There’s a lot of interest from quite a few people to port it to Ruby, to J2EE, to.NET.

Paul: Excellent.

Aral: And my focus right now is on getting SWX to a level where it’s somewhat of a standard–not like an Internet standard, but at least, within itself, we know what we’re talking about when we say a SWX SWF so that, if it’s being generated from Ruby, it’s the same thing…

Paul: Yeah.

Aral: So there’s no fragmentation. That’s my focus right now. In fact, I’m writing my first RFC…

Paul: [laughs]

Aral: For the SWX formats, just so things are a bit more standardized, before we go porting it to every possible technology.

Paul: Excellent! That just sounds really exciting…

Aral: I’m really excited about it!

Paul: Yeah, I bet you are.

Aral: This has gotten me excited and working with technology again, at a level that I hadn’t been in the past. It’s fun. Because this stuff, the data exchange between tiers, it’s really not rocket science, and it shouldn’t be rocket science. We’re just moving stuff from one place to another. And my philosophy is: make that as simple as possible for people so they can concentrate on the really fun bits…

Paul: Yeah.

Aral: Building the user interface, building a great user experience. Because those are the hardest bits, really, conceptually, and they’re also the most fun.

Paul: Yeah. That’s great stuff, and I wish you all the best with it in the future. And thanks for coming on the show and telling us a little bit about it.

Aral: Thanks so much, Paul, for having me. It was a lot of fun.

Paul: Yeah. OK. Good to talk to you, and we’ll speak to you again soon.

Aral: OK, take care of yourself.

The importance of Undo

An easily available undo function creates a sense of simplicity because it instills in the user the attitude of “what the heck, I can always undo it”.

Many internet users lack confidence when interacting with the web. It is our job as web designers to try and reassure them and provide a safety net when things go wrong. Providing various methods by which users can undo actions is a useful crutch to the less confident user.

Benefits of undo

Undo functionality seems to be in increasingly short supply on the more recent raft of web 2.0. websites, especially on sites that make heavy use of AJAX. This is a sad day for web design as the ability to undo provides three crucial benefits:

Alleviate apprehension

I have said this many times but it always bears repeating; the majority of people do not like computers. It is so easy for us to forget that, as we live and breath computers everyday. I have to confess that I am more comfortable working with a computer than the real world. After all, how many times have you tried to CTRL Z reality!

However, although we are comfortable with computers the majority of people aren’t. They are intimidating, impersonal and far from intuitive. This is not only true for the PC but also for the web. After all who would design a system where the interface changes when you move between sections (sites).

The ability to undo, go back or escape is a lifeline to many users. It is immensely reassuring to know that you can always undo something if you get it wrong and when that option is not available it can be incredibly disturbing. Take for example the first time you ever bought something online. Do you remember a feeling of apprehension when you realized that the next click would place the order and that there was then no going back.

A way to overcome complexity

I am a huge fan of simplicity, largely because I recently finished reading “The Laws of Simplicity” by J Maeda. In his book he talks about the fact that the ability to undo creates an impression of simplicity even in the most complex applications.

An easily available undo function creates a sense of simplicity because it instills in the user the attitude of “what the heck, I can always undo it”. Once the user has that attitude they perceive things as simpler than they actually are.

A method to build confidence

The “what the heck” attitude is largely about confidence. A confidence in the power of undo to do its magic, is what allows us to play and experiment with an application. Through experimentation and play we learn and with knowledge comes a confidence in our own abilities. That is the power of undo.

Opportunities to provide undo

Now that I have established the importance of undo the next step is to look at what options are available to us as web designers to provide undo to our users. I have come up with four ways this is possible, however the sad reality is that we continually undermine these different methods in the way we code and design.

Back Button

I must have sat through hundreds of usability sessions over the last decade and I do not recall one where the user did not use the back button at some point. The back button is the primary life line used by most people to correct problems and yet in more and more sites it does not work. The problem lies in the use of AJAX and Flash which break the page metaphor on which all browsers are built. The same problem occurred with frames and was one of the major reasons that the use of frames died out.

Although there are fixes for this problem in both flash and AJAX, they are far from perfect and rarely implemented. Serious attention needs to be given to this problem when developing modern web applications as a failure to do so not only undermine usability but damages user confidence.

Breadcrumbs

There was a time when users didn’t really understand breadcrumbs. However as has been suggested recently by Jakob Nielsen, that is no longer the case.

Although breadcrumbs should never be seen as a replacement for the back button, they do work as a handy alternative for more experienced users. What is more, although they have traditionally been used on page based websites they can also translate well onto web applications.

Favorites

In usability sessions I have also occasionally seen favorites and bookmarks used as an undo tool to go back to a previous page. However as with the back button this functionality is often broken in modern web applications that update sections of pages instead of the entire page. Favorites provide the valuable ability for the user to quickly return to marked “safe points” in their surfing and as a result we should be doing our upmost to ensure that this ability remains.

Home

Almost all websites have a link back to the home page, however not all of them make that link very obvious. A common practice is to make the logo a link back and although in itself this technique is fine, it is not obvious this link exists and so many users are not aware of it.

Having a link back to the home page is a great way of letting the user “start again” but if you are going to provide that functionality it needs to be obvious.

So there you have it; why undo is important and some techniques to undo easier on your website. Hope it helps.