97
1 Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum, One Size Does Not Fit All Nate Koechley – @Media 2006, London – June 16 th , 2006 [email protected] | http://nate.koechley.com/blog

Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum, One Size Does Not Fit All

  • Upload
    skyler

  • View
    18

  • Download
    0

Embed Size (px)

DESCRIPTION

Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum, One Size Does Not Fit All. Nate Koechley – @Media 2006, London – June 16 th , 2006 [email protected] | http://nate.koechley.com/blog. - PowerPoint PPT Presentation

Citation preview

Page 1: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

1

Y! v. Y! Yahoo! Case Studies

Across the Page—App Spectrum, One Size Does Not Fit All

Nate Koechley – @Media 2006, London – June 16th, 2006

[email protected] | http://nate.koechley.com/blog

Page 2: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

2

Y! v. Y! v. Y! Three Yahoo! Case Studies

Across the Page—App Spectrum, One Size Does Not Fit All

Nate Koechley – @Media 2006, London – June 16th, 2006

[email protected] | http://nate.koechley.com/blog

Page 3: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

3

Nate Koechley

Page 4: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

4

It’s Pronounced “Kek’lee”

Page 5: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

5

Hello, World

• Nate Koechley

– At Yahoo! since 2001

– Charter member of Web Development team

– On Yahoo! User Interface Library (YUI) team

• Three roles:

– Senior Frontend Engineer

– Technical Evangelist

– Design Liaison

Page 6: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

6

Yahoo! User Interface Library (uh, thanks Simon)

• A la carte– Event ~ 2k

• onAvailable

• Custom Events / Pub-Sub

– DOM ~ 3k• Add/replace Class

• Utilities vs. Controls, also CSS

• “There’s no shortage of better things to spend time on.”

Page 8: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

8

12345678

Page 9: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

9

12345678

Page 10: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

10

12345678

Page 11: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

11

12345678

Page 12: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

12

12345678

Page 13: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

13

12345678

Page 14: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

14

12345678

Page 15: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

15

12345678

Page 16: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

16

A Great Community at Yahoo!

Page 17: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

17

Praise Them, Blame Me

Page 18: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

18

You?

Page 19: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

19

OK then, a quick history:

Page 20: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

20

1994

A bit of evolution over the years…

Page 21: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

21

1994

1995

A bit of evolution over the years…

Page 22: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

22

1994

1995

1997

A bit of evolution over the years…

Page 23: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

23

1994

1995

1997

2000

A bit of evolution over the years…

Page 24: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

24

1994

1995

1997

2000

2002

A bit of evolution over the years…

Page 25: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

25

1994

1995

1997

2000

2002

2004

A bit of evolution over the years…

Page 26: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

26

1994

1995

1997

2000

2002

2004

…into the page that today welcomes 188m users every month, 5.2 billion times

A bit of evolution over the years…

Source: Comscore, Feb. 2006

Page 27: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

27

The New Yahoo! Home Page

Video: http://nate.koechley.com/talks/20060616_atmedia/fp_2.avi

Page 28: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

28

It is immensely telling that the new Yahoo! homepage

is a DHTML homepage.

Page 29: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

29

“Getting It Right The Second Time”

Page 30: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

30

Three Case Studies

Page 31: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

31

Case Study 1:

• History

– “Preview” release exactly one month ago today

– From scratch

– Newest development effort to be released

• Massive Scale

– 5.2 billion views per month

– 188 million unique users

• Major DHMTL and Ajax Implementation

Page 32: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

32

Case Study 1:

Yahoo! Home Page Preview

Video: http://nate.koechley.com/talks/20060616_atmedia/fp_2.avi

Page 33: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

33

Case Study 2:

• History

– Beta release exactly eight days ago

– From scratch

– Long development timeline

• Massive Scale

– 30 million unique users

– 2 billion photos

• Major DHTML and Ajax Implementation

Page 34: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

34

Case Study 2:

Yahoo! Photos Beta

Video: http://nate.koechley.com/talks/20060616_atmedia/photos3_2.avi

Page 35: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

35

Case Study 3:

• History– Beta release about one year ago

– Legacy-ish, was Oddpost.com

– Oddpost development began in 1999

• Massive Scale– World’s largest email provider

– Available in 21 languages

• Preeminent DHTML and Ajax Application

Page 36: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

36

Case Study 3:

Yahoo! Mail Beta

Video: http://nate.koechley.com/talks/20060616_atmedia/mail_1.avi

Page 37: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

37

do not worry – not a product pitch

Page 38: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

38

Common Goals:

Page 39: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

39

Common Goals:

1) Performance (x3)

Page 40: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

40

Common Goals:

1) Performance 2) Interactivity

Page 41: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

41

Common Goals:

1) Performance 2) Interactivity3) Stay true to our beliefs

Page 42: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

42

Common Approaches:

Page 43: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

43

The Basics

NoNoNoAbsolute Pos

YesYesYesCompression

YesNoNoObfuscation

YesYesYesMinimization

YesYesYesKeyboard

NoYesYesFont-size Responsive

YesYesYesCSS Sprites

QuirksStrictStrictRender Mode

NoneXHTML 1.0 Strict

HTML 4.01 Strict

Doctype

Page 44: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

44

From Documents to Applications

Page 45: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

45

Page—Application Spectrum

• Historically Web

• Shallow Interaction

• Simple Idioms

• For Consumption

• Markup + Skin

• Sequential Nav

• Passive

• Historically Desktop

• Deep Interaction

• Powerful Idioms

• For Productivity

• JS, DHTML, Ajax, DOM

• Self Contained

• Active

ApplicationApplicationPagePage

Page 46: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

46

Page—Application Spectrum

ApplicationApplicationPagePage

Page 47: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

47

Looking Across the Spectrum

1. Tracking Events

2. Memory Management

3. Delivering JS and CSS

4. Data Format

5. Pagination

6. Browser Support

Page 48: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

48

Looking Across the Spectrum:Tracking Events

1. Tracking Events

2. Memory Management

3. Delivering JS and CSS

4. Data Format

5. Pagination

6. Browser Support

Page 49: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

49

From Page-Granular to Event-Granular Interfaces

Page 50: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

50

Tracking Events:Event Utilities

• Don’t piss off the DOM Scripting Task Force– No JS in attribute space / markup!

• Watch out for memory leaks!!! (yes, three !’s)

• Many great utilities– YUI Event Utility

– Dojo

– Scott Andrew

– many more…

Page 51: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

51

Tracking Events:Event Attachment

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Page 52: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

52

Browsers die when there are too many (objects + listeners)

Page 53: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

53

Tracking Events:Lots and lots

• Objects can have many events:

– Multiple keyboard listeners

– Down+drag

– Down+key

– Down+doubleclick

– Down+click+key

– More…

• Multiple by countless number of objects!

Page 54: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

54

Tracking Events:Event Delegation

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Obj+evnts

Page 55: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

55

Tracking Events:Event Delegation

Obj Obj Obj Obj

Obj Obj Obj Obj

Obj Obj Obj Obj

Page 56: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

56

Tracking Events:Event Delegation

Obj Obj Obj Obj

Obj Obj Obj Obj

Obj Obj Obj Obj

Event

Page 57: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

57

More on “Delegation”

Addressing Object Count1. Listen to document.onmousedown (native)

2. Note which event.target (native)

Addressing Handler Count

3. Then delegate and attach the handlers you need, just in time.

Page 58: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

58

Event Delegation Example:

• Mousedown in vicinity of thumbnail

– If on <img>

• If MouseMove

–Assign Drag and Drop

– If on whitespace

• If MouseMove

–Assign Selection Rectangle

Page 59: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

59

Event Delegation Example:

• Is the click on a photo thumbnail?

• If so, delegate to its related Javascript controller object eg: photoItems[this.index].mousedown();

• Where "this" is the thumbnail <img> clicked, via event.target/srcElement etc.

Page 60: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

60

Tracking Events:Event Delegation

Obj Obj Obj Obj

Obj Obj Obj Obj

Obj Obj Obj Obj

Event

Page 61: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

61

Tracking Events:Details

ApplicationApplicationPagePage

•Few Objects with Simple Handlers

•Event Attachment

•Many Objects w/ Multiple Handlers

•Event Delegation

•Many Objects w/ Multiple Handlers

•Event Delegation

Page 62: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

62

Looking Across the Spectrum:Memory Management

1. Tracking Events

2. Memory Management

3. Delivering JS and CSS

4. Data Format

5. Pagination

6. Browser Support

Page 63: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

63

Memory Management

• With extensive DOM and JS work, there’s the potential for things to get out of hand.

• Goals:

– Don’t leak memory• Also, keep overall memory footprint small

– Offer a quickly-responsive interface

– Stability

Page 64: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

64

Memory Management:General Best Practices

For each constructor have a destructor

1. Create Objects

2. Unhook

3. Remove Handlers

4. Remove References

Page 65: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

65

Memory Management:Three Approaches

1. Destruction (general best practice)

2. Conservation (niche)

3. Recycling (niche)

Page 66: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

66

Memory Management:Details

ApplicationApplicationPagePage

•Conservation

•Destruction

•Destruction, but…

•Recycle iframes (about:blank)

Page 67: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

67

Memory Management Tip:

• Measure and Test

– Drip is a great tool

– Test extreme object counts

– Test long interactions

– Test extensive navigation

Page 68: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

68

Looking Across the Spectrum:Delivering JS and CSS

1. Tracking Events

2. Memory Management

3. Delivering JS and CSS

4. Data Format

5. Pagination

6. Browser Support

Page 69: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

69

Delivering JS and CSS:General Best Practices

• A single large file loads fastest.

– HTTP requests are the nemesis of a well-tuned site.

– Build process is, therefore, very important.

• CSS files as close to the top as possible.

• JS files as close to </body> as possible.

Page 70: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

70

Delivering JS and CSS:Three Other Approaches

1) Many small files at once

– Enables atomic/team development

– Enables partial caching if parts change

Page 71: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

71

Delivering JS and CSS:Three Other Approaches

2) Many small files on demand

– Some demanded functionality may be subtly slower

– Allows tuning in response to use cases and task analysis

Page 72: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

72

Delivering JS and CSS:Three Other Approaches

3) Inline in the <head>

– Caching is not as effective as we imagine, especially on pages set as browser home pages

Page 73: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

73

Delivering CSS and JS:Details

ApplicationApplicationPagePage

•Many smaller files, on demand. Some inline.

•Every feature not used every time. Content is key.

•Uber file of interface JS/CSS. Pay once.

•Objects/data on demand

•Single File (anti-example)

•Functionality is key. Highly interconnected.

Page 74: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

74

Looking Across the Spectrum:Data Format

1. Tracking Events

2. Memory Management

3. Delivering JS and CSS

4. Data Format

5. Pagination

6. Browser Support

Page 75: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

75

Data Format:General Best Practice

• Use JSON for data interchange

– Natively understood

– “The fat-free alternative to XML”

• http://www.json.org

– Tools in every known programming language

Page 76: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

76

Data Format:Other Approaches

• Somebody is going to have to pay the CPU price to render the View– Faster to pass a string that expresses a DOM state

directly than trying to parse and create on the fly.

– Consider client and server in tandem when making architectural choices

• Parsing XML degrades performance greater-than-linearly as XML size increases.

Page 77: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

77

Data Format:Details

ApplicationApplicationPagePage

“JSON rocks”

“We want to move to JSON”

“We’re using some JSON, and will be much more soon”

Recognize strengths of client and server

Page 78: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

78

Looking Across the Spectrum:Pagination

1. Tracking Events

2. Memory Management

3. Delivering JS and CSS

4. Data Format

5. Pagination

6. Browser Support

Page 79: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

79

“Ajax is awesome!! Hmmm, I know: we can do

pagination without refreshing the page!!

Sweet, we’re so totally Web 2.0 now!!”

Page 80: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

80

Could does not equal

should.

Page 81: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

81

Pagination:Details

ApplicationApplicationPagePage

•Single page, so basically not applicable.

•Some Ajax pagination in Personal Assistant module

•Heavy Objects

•Ajax Pagination; No refresh but new collection.

•Light Objects

•Endless-scrolling (and clever caching)

Page 82: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

82

Looking Across the Spectrum:Browser Support

1. Tracking Events

2. Memory Management

3. Delivering JS and CSS

4. Data Format

5. Pagination

6. Browser Support

Page 83: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

83

Which browser to support?

Page 84: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

84http://developer.yahoo.com/yui/articles/gbs/gbs.html

Page 85: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

85

Graded Browser Support:Two Key Ideas

1) Support does not mean “the same”

“Expecting two users using different browser software to have an identical experience fails to embrace or acknowledge the heterogeneous essence of the Web.”

2) Support must not be binary!

Page 86: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

86

Graded Browser Support:General Best Practice

• 3 Grades of Browser Support

C-grade support (core support, 2%)

A-grade support (advanced support, 97%)

X-grade support (the X-Factor, 1%)

Page 87: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

87http://developer.yahoo.com/yui/articles/gbs/gbs.html

Page 88: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

88

A bit about browser stats…

Page 89: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

89

A bit about browser stats…

• More 5.0 than 5.5;

– We consider 5.0 C-Grade

• Note by-country skews

• Note by-content skews

• IE7 already moved the needle

– Historically, SP2 rollout out very quickly

Page 90: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

90

Browser as Development Environment?

Page 91: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

91

Browser Support:Summary

• Still a huge pain in the ass.– The Web is the most hostile software

engineering environment imaginable. (Douglas Crockford)

• Same answer for everybody.– Develop to standards, then patch.

• Maintain discipline in the face of heterogeneity.

Page 92: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

92

The price is always higher to say “no” to Safari and Opera

Page 93: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

93

Browser Support:Details

ApplicationApplicationPagePage

•GBS A-grade

•Developed in Gecko

•GBS A-grade

•Developed in Gecko

•IE and FF

•Developed in IE, then built IE-emulation layer.

Page 94: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

94

We're in this for the long haul.

Page 95: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

95

Quality is OUR job. Be belligerent.

Page 96: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

96

Today’s bad decisions will be tomorrow’s constraints

Page 97: Y! v. Y! Yahoo! Case Studies Across the Page—App Spectrum,  One Size Does  Not  Fit All

97

Thank you. Questions?

Nate Koechley– [email protected]

• http://developer.yahoo.com/yui

• http://yuiblog.com

[email protected]• http://nate.koechley.com/blog

This presentation is available at http://nate.koechley.com/talks/20060616_atmedia/atmedia2006.ppt http://nate.koechley.com/talks/20060616_atmedia/atmedia2006.pdf