Archive: August 19th, 2008

In face of exorbitant fees, Pandora may have to pull the plug - MacUser

The muisc "industry" is clearly populated by asshats who actively enjoy displaying their incompetence and malice.

Web Directions: East 08

I'm going to Japan in November to talk about Ajax. I am very excited about this.

An Event Apart: San Francisco [Day 2]...live blogging

Wesley Hodgson liveblogged the talk I just gave at An Event Apart San Francisco — Patterns in the process.

An Event Apart, Day One

The first day of An Event Apart is wrapping up in San Francisco. The quality of talks has been outstanding. Now I’m really bricking it about my talk tomorrow morning. The bar has been set ridiculously high.

I’ve done my best to liveblog throughout the day. Inevitably there will be mistakes and omissions in these second-hand reports but here they are:

  1. Understanding Web Design by Jeffrey Zeldman
  2. The Lessons of CSS Frameworks by Eric Meyer
  3. Storytelling by Design by Jason Santa Maria
  4. Web Application Hierarchy by Luke W.
  5. Shepherding Passionate Users by Heather Champ
  6. The Framework Age by Liz Danzico
  7. Implementing Design: Bulletproof A-Z by Dan Cederholm

I’m kind of wiped out from all the typing. I probably won’t be able to manage a second day of liveblogging. I can’t wait to have my talk out the way and enjoy the rest of the speakers.

Implementing Design: Bulletproof A-Z

Dan Cederholm is in the house at An Event Apart San Francisco. He’s all about the bulletproofing.

Simplebits describe what they do as hand crafted pixels and text. This idea of craft, building something with your hands, is what Dan wants to concentrate on. It isn’t always obvious in web design how well-crafted a web site is. Dan will run through a case study that focus on three aspects of web design: being bulletproof, being adaptable and focusing on the details. Like progressive enhancement for JavaScript, Dan will be using Progressive Enrichment for CSS which really means using cool stuff that doesn’t work in IE.

The case study will be a site all about coffee called Iced or Hot (it doesn’t actually work).

  • A is for anchor links with meta information. If you’re going to put data inside links, think ahead to links with really long text.
  • B is for border-radius. This is progressive enrichment. Rounded corners are usually a pain in the ass. But you can do them today with namespaced webkit- and moz- border-radius declarations. Dan puts these vendor-specific properties into a separate stylesheet called enriched.css to keep them quarantined like hacks. What about other browsers? Well, they don’t get rounded corners but so what? Rounded corners just degrade gracefully to rectangles.
  • C is for colour transparency with RGBa. You could use opacity but that sets the transparency for an element and all its children. Giving colour values with RGBa (background-color: rgba(0,0,0.7);) you only set the opacity of the background. A PNG would reach more users but like border-radius, RGBa is great for prototyping.
  • D is for Do Websites Need To Look Exactly The Same In Every Browser? No!
  • D is also for decision-makers who get that. The example of the semi-transparent menus on the Sundance Festival site (made by Airbag) demonstrates this. IE just gets flat colours and that’s fine. Dan himself used generated content on Foamee to add images to the headlines. Browsers that don’t support generated content don’t get the ornaments and that’s fine.
  • E is for easy clearing of floats. There’s the classic clearfix solution but man, that’s a crappy class name to put in your markup. The alternative of creating a list of wrappers that you want to clear is as bad. Dan uses a class name of group.
  • F is for frameworks. We all use our own frameworks: the code you start from for each project.
  • G is for gridlasticness. From the latin Gridius Lastius Emius which means working with em-based grids. Dan shows some grid-based designs: Mark Boulton, CNN, Erskine. Then he gives a refresher in elastic layout. Em-based layouts force you to ensure ultimate flexibility. You have to think about font sizes, layout, margins and padding in ems. Richard’s 62.5% rule helps make the calculations easier. Set a max-width on elastic layouts (of 100%) you can make sure that the layout won’t go outside the viewport. On Iced or Hot, has four columns of 16em with a 2em gutter between them. The XScope tool is handy for checking your grid lines.
  • H is for horizontal grid? Sure. Vertical grid? Sort of. Here, Dan is talking about that annoying habit that visual designers have of lining everything perfectly on the top and bottom of element. It looks great in Photoshop but it bears no relation to reality. It’s like those people who make the pillows look perfect on the bed. It’s a waste of time because they’re just going to get messed up. But we can uses classes for groups of content so that there are break-points in the vertical layout.
  • I is for IE8 beta still refuses to resize text sized in pixels. WTF? We still need to use relative units for text sizes. Does page zoom change things? Who knows.
  • J is for jQuery. Spontaneous applause from the audience. Dan hates JavaScript and he normally doesn’t talk about it in presentations but jQuery makes his life easier. It uses the familiar CSS selector syntax.
  • K is for Kitty.
  • L is for .last. Dan is constantly having to put a class of .last on the last item in a list (for style reasons). You can use jQuery to add the class programatically. jQuery('ul.lst li:last'),addClass('last');
  • M
  • N
  • O
  • P
  • Q
  • R
  • S is for shifting backgrounds. Heeeeere’s Silverback! Parallax scrolling is a great example of craftmanship. Not everyone is going to see it but it’s a lovely added extra.
  • T is for a testimonial for reset.css.
  • U is for ur stats. When can we…? Drop support for X. Start using Y. Answer: when your site shows the stats to support that decision.

The alphabet ends with U.

Judge Backs Fox on Rights to Superhero Movie - NYTimes.com

I hope this doesn't pan out: "The dark heroes of Warner Brothers’ “Watchmen,” set for release next March, have a new problem on their hands: A federal judge has ruled that they may belong to 20th Century Fox."

The Framework Age

Liz Danzico is talking at An Event Apart San Francisco about frameworks. Not CSS frameworks, not JavaScript frameworks, not Rails, not Django, but websites as frameworks. These days we’re designing frameworks for user interaction rather than static artefacts.

Liz tells a story about Miles Davis who showed up at the studio with six slips of paper listing the six musicians he wanted to play with on his record. Over the course of one day, these people who had never played this music together recorded a whole album. Davis wanted to capture something called creative instability. Kind of Blue came out of this framework that he created.

Liz wants to talk about frameworks that are uninscribed and detectable cues that loosely govern a set of actions. These are interaction frameworks, frameworks that shape how people behave.

Back to music. Classical music uses classical notation. If you can’t read notation, you can’t make sense of it so it’s kind of elitist. It also provides rules like tempo and key. If you step outside these boundaries, you are deviating from the notation. Also, every note is accounted for in the notation. You can’t improvise it. Jazz notation is different. It provides chord progressions. It’s up to the musician to improvise around this framework. Modal jazz is even more abstract. That’s what Miles Davis invented that day in the studio. Kind of Blue was created out of just a scale.

On the web, we’re making the same transition from classical to jazz. We’re improvising. We’ve moved from a hard-coded system of building pages to an open system of creating participatory environments.

But this kind of tension is nothing new. It’s being going on for years. There’s been a long-running tension between orality and literacy. The printing press destroyed a lot of oral tradition but we still use word of mouth to pass on urban legends and recipes. Liz mentions Alex Wright’s observation in Glut that we are seeing a resurgence in this kind of oral tradition online. Even though we’re writing in blogs and mailing lists, we’re not so much publishing as talking.

There’s evidence of improv online. Exquisite simplicity was how pianist Bill Evans described Miles Davis’s framework of six slips of paper.

Quoting from The Paradox of Choice, Liz shows how the default settings can make a big difference (in the number of organ donations, for example, which could be opt-in or opt-out). Geni has some smart default settings. Same with Tripit. All you need to do is forward an email and it will take care of the rest. Focus on creating smart defaults.

In improv, you need to involve the audience. It’s important to adapt to what your audience is doing. Here’s an example from architecture: there was a fountain that was built in Washington Square Park in New York but before they got ‘round to turning it on, people started using it as a seating area. When the city tried to turn on the fountain, people revolted. The fountain is dry to this day and is used for public theatre.

Referring to the redesign of the Wordpress admin, Liz points out that it’s really important to involve users in the design process. There’s a difference between asking your audience what they think of a system compared to looking at how they are actually using that system.

Listen and watch. That’s another lesson we can take from music and apply to the web. When you’re playing with other people, not only do you have to listen to what the other people are doing, you have to watch them too. It’s the same with architecture. Desire paths are created by people actually using a space. They show clearly where paths should be built. Eyetracking can reveal the desire paths of users interacting with an application. There are other tools like User Voice which can involve the audience. Observe. Listen. Pay attention.

A common technique in Jazz is call and response when musicians play off one another. You see this online in reviews where the reviews start reacting to each other rather than the original item being reviewed. Allow users to build on one another.

User-centred design and participatory design are great ways of involving the users in the design process but that’s still different to actual use. It’s time for a new way of working: designing for improvisation (but remember that no one single process will ever be successful). Our design process should reflect the trend towards user participation that we’re seeing on the web. People’s tolerance for improvisation is increasing and our role as framework providers should reflect that.