Slideshare.net (beta)

 

All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 5 (more)

Dojo 1.0: Great Experiences For Everyone

From slightlyoff, 9 months ago

Slides from my talk at @Media Ajax

2949 views  |  0 comments  |  5 favorites  |  280 downloads  |  9 embeds (Stats)
Embed
options

More Info

This slideshow is Public
Total Views: 2949
on Slideshare: 2845
from embeds: 104

Slideshow transcript

Slide 1: Dojo 1.0: Great Experiences... For Everyone Alex Russell Project Lead, The Dojo Toolkit

Slide 2: Maslow’s Hierarchy of Needs • Deficiency needs - Physiological - Saftety - Love/Belonging - Esteem • Growth needs - Exploration, asthetics - Self-actualization http://en.wikipedia.org/wiki/Maslow's_hierarchy_of_needs

Slide 3: The Application Hierachy Of Needs • Deficiency needs - Platform - Security - Social Capacity - Competition • Growth Needs - Integration - Platform capacity

Slide 4: If The Platform Isn’t Ubiquitous And Capable, Another Will Emerge

Slide 5: Changes In Cost Are Changes In Capacity

Slide 6: Complexity Is The New Dominating Factor In Cost

Slide 7: Where Are We Fighting Complexity? • HTML • CSS • JavaScript • Server integration

Slide 8: The Wall Of Complexity http://flickr.com/photos/kidisland/502242023/

Slide 9: Implements Of War • Grouping + Encapsulation • Shared Context • Patterns of Practice • Separation of Concerns • Forgiveness

Slide 10: So How Are We Doing?

Slide 11: Implements Of Failure • Grouping + Encapsulation - Server-side includes essentially state of the art • Shared Context - HTML/CSS/JS stack wickedly hard to learn • Patterns of Practice - Microformats, CSS as emergent semantics • Separation of Concerns • Forgiveness - XML pipe dreams persist, Semantic Web faffery

Slide 12: Semantic Differences • HTML gives us: - Platform - Some security - Social capacity - Patterns of practice - Shared context (common vocabulary) • The failure to provide sustainable platform competition leaves us arguing over the scraps

Slide 13: Good Semantics Let You Say What You Mean And Get What You Want

Slide 14: For Applications, HTML/CSS Are Liabilities

Slide 15: Ajax: The “Get Out Of Jail Free” Card • Within a small band of capabilities, JavaScript allows us to dig our way out - Cost is enormous • Toolkits have exhibited competition and platform capacity behaviors • Integration nowhere to be seen - Example: mirrored validation - REST? Something else?

Slide 16: Platform Capacity Is The Ability To Grow New Semantics

Slide 17: How The Web Gets New Semantics (decreasing order of leverage) 1.Standardization (W3C, ECMA, etc.) • Byproduct of competition 2.Invention • JavaScript “upgrades” or “hot-patches” to pages 3.Convention • Microformats, CSS patterns of practice

Slide 18: When Are You Going To Talk About Dojo?

Slide 19: Invention vs. Completeness • Invented semantics via JS are disadvantaged: - On the wire - In performance and integration - In access to assistive technologies - In look-and-feel cohesiveness • Only medium/large-scale investment yeild complete results today - Product vs. project

Slide 20: A Toolkit That Invents Semantics Is Responsible For All Of These Concerns* * this argument is both self-serving and disingenuous, however that doesn’t make it false

Slide 21: L&F Responsibility

Slide 22: Developer User Experience <a href="images/depot.jpg" dojoType="dojox.image.Lightbox" group="myTravels" title="Photo of a Train Depot">A Train Depot</a> <a href="images/greenville.jpg" dojoType="dojox.image.Lightbox" group="myTravels" title="A Photo of Greeneville, TN">Greenville</a>

Slide 23: Customization /* structured CSS allows over-rides */ .dijitDialogUnderlay { background: white; } // template system allows complete UI rework dojo.extend(dojox.image._LightboxDialog, { templatePath: dojo.moduleUrl(“myApp.tmpl”, “dialog.html”) });

Slide 24: a11y & i18n Concerns • Incredibly robust keyboard handling code • All Dijit widgets fully WAI ARIA augmented - role="wairole:dialog" - System support for easily adding role/state info to your own widgets • Detection/support for high-contrast mode - separate theme applied for high-contrast - structured CSS cascade allows you to easily provide a11y rules for custom themes and widgets

Slide 25: Performance Responsiblity • Time on the wire • Time-to-render • Data caching, storage • Encourage usage of faster paths through better API design • “Pay-as-you-go” performance optimization strategies - Make each step on the path as painless as possible

Slide 26: Performance Responsiblity • Stragegies: - Tiny Core - Tightly controlled, curated APIs - CDN edge-cached, gzip always enabled - The Build Process - Completely optional, gradual adoption - Package system reduces complexity through grouping

Slide 27: You Can’t Tack These On Later, i.e., Systemization Matters

Slide 28: Dojo Expresses Platform Capacity

Slide 29: ...But We Wish We Didn’t Have To

Slide 30: Our Collective Perception Of Where We Are On The Hierarchy Is Wrong

Slide 31: The Lack Of Competition Is A Deficiency That Prevents Access To Growth Needs

Slide 32: You Should Be Demanding A Better Future From The People Who Can Deliver It

Slide 33: Until Then, Toolkits Should Be Preparing For A Better Future...

Slide 34: For Everyone

Slide 35: Build With, Not On