SlideShare a Scribd company logo
1 of 36
Download to read offline
Dojo 1.0:
Great Experiences...
   For Everyone
             Alex Russell
    Project Lead, The Dojo Toolkit
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
The Application Hierachy Of Needs

• Deficiency needs
  - Platform
  - Security
  - Social Capacity
  - Competition
• Growth Needs
  - Integration
  - Platform capacity
If The Platform Isn’t
Ubiquitous And Capable,
 Another Will Emerge
Changes In Cost Are
Changes In Capacity
Complexity Is The New
Dominating Factor In Cost
Where Are We Fighting Complexity?

• HTML
• CSS
• JavaScript
• Server integration
The Wall Of Complexity
http://flickr.com/photos/kidisland/502242023/
Implements Of War

• Grouping + Encapsulation
• Shared Context
• Patterns of Practice
• Separation of Concerns
• Forgiveness
So How Are We Doing?
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
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
Good Semantics Let You Say
     What You Mean
 And Get What You Want
For Applications,
HTML/CSS Are Liabilities
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?
Platform Capacity Is The
  Ability To Grow New
        Semantics
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
When Are You Going To
  Talk About Dojo?
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
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
L&F Responsibility
Developer User Experience


 <a href=quot;images/depot.jpgquot;
    dojoType=quot;dojox.image.Lightboxquot;
    group=quot;myTravelsquot;
    title=quot;Photo of a Train Depotquot;>A Train Depot</a>

 <a href=quot;images/greenville.jpgquot;
    dojoType=quot;dojox.image.Lightboxquot;
    group=quot;myTravelsquot;
    title=quot;A Photo of Greeneville, TNquot;>Greenville</a>
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”)
 });
a11y & i18n Concerns
• Incredibly robust keyboard handling code
• All Dijit widgets fully WAI ARIA augmented
   - role=quot;wairole:dialogquot;
   - 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
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
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
You Can’t Tack These On Later,
  i.e., Systemization Matters
Dojo Expresses
Platform Capacity
...But We Wish
We Didn’t Have To
Our Collective Perception Of
  Where We Are On The
    Hierarchy Is Wrong
The Lack Of Competition Is A
  Deficiency That Prevents
  Access To Growth Needs
You Should Be Demanding A
Better Future From The People
      Who Can Deliver It
Until Then, Toolkits Should Be
   Preparing For A Better
           Future...
For Everyone
Build With, Not On
Maslow's Hierarchy of Needs and the Application to Web Platforms and Toolkits

More Related Content

Viewers also liked

Hunting & Fishing
Hunting & FishingHunting & Fishing
Hunting & Fishingmsmits
 
Flooding
FloodingFlooding
Floodingmsmits
 
University System: Mass. State Colleges Council of Presidents
University System: Mass. State Colleges Council of Presidents University System: Mass. State Colleges Council of Presidents
University System: Mass. State Colleges Council of Presidents Nancy George
 
+ Q Trueke
+ Q Trueke+ Q Trueke
+ Q Truekecpjv
 
Travel To Litoral ´07
Travel To Litoral ´07Travel To Litoral ´07
Travel To Litoral ´07FedeMaTu
 
Resumen Curricular 133740
Resumen Curricular  133740Resumen Curricular  133740
Resumen Curricular 133740guesta2ba29
 
Resumen Curricular 133740
Resumen Curricular  133740Resumen Curricular  133740
Resumen Curricular 133740guesta2ba29
 
Modelado Del Proy Final Vb 2007
Modelado Del Proy Final Vb 2007Modelado Del Proy Final Vb 2007
Modelado Del Proy Final Vb 2007UTP, TA
 
Resumen Curricular 131899
Resumen Curricular 131899Resumen Curricular 131899
Resumen Curricular 131899guesta2ba29
 
Herramientas De ComputacióN
Herramientas De ComputacióNHerramientas De ComputacióN
Herramientas De ComputacióNxxframaxx
 
Resumencurricular 135623
Resumencurricular 135623Resumencurricular 135623
Resumencurricular 135623guesta2ba29
 
Cartel Casa Inteligente
Cartel Casa InteligenteCartel Casa Inteligente
Cartel Casa Inteligenterosendo_ponce
 
Presentacion 135301
Presentacion 135301Presentacion 135301
Presentacion 135301guesta2ba29
 
Hiking & Kayaking
Hiking & KayakingHiking & Kayaking
Hiking & Kayakingmsmits
 
Upa Bangalore Town Hall Oct 19
Upa Bangalore Town Hall Oct 19Upa Bangalore Town Hall Oct 19
Upa Bangalore Town Hall Oct 19Amit Pande
 

Viewers also liked (20)

Hunting & Fishing
Hunting & FishingHunting & Fishing
Hunting & Fishing
 
Cruzada
CruzadaCruzada
Cruzada
 
plano
planoplano
plano
 
Flooding
FloodingFlooding
Flooding
 
2007 P P3 T D
2007  P P3  T D2007  P P3  T D
2007 P P3 T D
 
University System: Mass. State Colleges Council of Presidents
University System: Mass. State Colleges Council of Presidents University System: Mass. State Colleges Council of Presidents
University System: Mass. State Colleges Council of Presidents
 
+ Q Trueke
+ Q Trueke+ Q Trueke
+ Q Trueke
 
Venta Focus
Venta FocusVenta Focus
Venta Focus
 
Travel To Litoral ´07
Travel To Litoral ´07Travel To Litoral ´07
Travel To Litoral ´07
 
Resumen Curricular 133740
Resumen Curricular  133740Resumen Curricular  133740
Resumen Curricular 133740
 
Resumen Curricular 133740
Resumen Curricular  133740Resumen Curricular  133740
Resumen Curricular 133740
 
Modelado Del Proy Final Vb 2007
Modelado Del Proy Final Vb 2007Modelado Del Proy Final Vb 2007
Modelado Del Proy Final Vb 2007
 
Resumen Curricular 131899
Resumen Curricular 131899Resumen Curricular 131899
Resumen Curricular 131899
 
Herramientas De ComputacióN
Herramientas De ComputacióNHerramientas De ComputacióN
Herramientas De ComputacióN
 
grains 6è a
grains 6è agrains 6è a
grains 6è a
 
Resumencurricular 135623
Resumencurricular 135623Resumencurricular 135623
Resumencurricular 135623
 
Cartel Casa Inteligente
Cartel Casa InteligenteCartel Casa Inteligente
Cartel Casa Inteligente
 
Presentacion 135301
Presentacion 135301Presentacion 135301
Presentacion 135301
 
Hiking & Kayaking
Hiking & KayakingHiking & Kayaking
Hiking & Kayaking
 
Upa Bangalore Town Hall Oct 19
Upa Bangalore Town Hall Oct 19Upa Bangalore Town Hall Oct 19
Upa Bangalore Town Hall Oct 19
 

Similar to Maslow's Hierarchy of Needs and the Application to Web Platforms and Toolkits

Sustainable Agile Development
Sustainable Agile DevelopmentSustainable Agile Development
Sustainable Agile DevelopmentGabriele Lana
 
USG Web Tech Day 2017 - CMS Tunnel Vision
USG Web Tech Day 2017 - CMS Tunnel VisionUSG Web Tech Day 2017 - CMS Tunnel Vision
USG Web Tech Day 2017 - CMS Tunnel VisionEric Sembrat
 
Performance testing with your eyes wide open geekweek 2018
Performance testing with your eyes wide open  geekweek 2018Performance testing with your eyes wide open  geekweek 2018
Performance testing with your eyes wide open geekweek 2018Yoav Weiss
 
Cloud Computing Introduction
Cloud Computing IntroductionCloud Computing Introduction
Cloud Computing IntroductionAdomas Svirskas
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScalePatrick Chanezon
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introMykola Kovsh
 
Measure and Increase Developer Productivity with Help of Serverless at Server...
Measure and Increase Developer Productivity with Help of Serverless at Server...Measure and Increase Developer Productivity with Help of Serverless at Server...
Measure and Increase Developer Productivity with Help of Serverless at Server...Vadym Kazulkin
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistMark Fayngersh
 
Manoj(Java Developer)_Resume
Manoj(Java Developer)_ResumeManoj(Java Developer)_Resume
Manoj(Java Developer)_ResumeVamsi Manoj
 
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...Dakiry
 
Progressive Web Apps. What, why and how
Progressive Web Apps. What, why and howProgressive Web Apps. What, why and how
Progressive Web Apps. What, why and howRiza Fahmi
 
"Progressive Web Apps" by Riza Fahmi (Hacktiv8)
"Progressive Web Apps" by Riza Fahmi	(Hacktiv8)"Progressive Web Apps" by Riza Fahmi	(Hacktiv8)
"Progressive Web Apps" by Riza Fahmi (Hacktiv8)Tech in Asia ID
 
MongoDB and In-Memory Computing
MongoDB and In-Memory ComputingMongoDB and In-Memory Computing
MongoDB and In-Memory ComputingDylan Tong
 
Designing Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDesigning Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDave Malouf
 
MetaASO J2EE Web Framework
MetaASO J2EE Web FrameworkMetaASO J2EE Web Framework
MetaASO J2EE Web Frameworkguestc23c1f
 
Streamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web FrameworksStreamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web Frameworksguestf7bc30
 
Web 2.0 = Accessibility 2.0?
Web 2.0 = Accessibility 2.0?Web 2.0 = Accessibility 2.0?
Web 2.0 = Accessibility 2.0?Jared Smith
 
Storage Systems for High Scalable Systems Presentation
Storage Systems for High Scalable Systems PresentationStorage Systems for High Scalable Systems Presentation
Storage Systems for High Scalable Systems Presentationandyman3000
 
CSA on Rails: a practical case-study
CSA on Rails: a practical case-studyCSA on Rails: a practical case-study
CSA on Rails: a practical case-studycalamitas
 
Bruce Lawson Opera Indonesia
Bruce Lawson Opera IndonesiaBruce Lawson Opera Indonesia
Bruce Lawson Opera Indonesiabrucelawson
 

Similar to Maslow's Hierarchy of Needs and the Application to Web Platforms and Toolkits (20)

Sustainable Agile Development
Sustainable Agile DevelopmentSustainable Agile Development
Sustainable Agile Development
 
USG Web Tech Day 2017 - CMS Tunnel Vision
USG Web Tech Day 2017 - CMS Tunnel VisionUSG Web Tech Day 2017 - CMS Tunnel Vision
USG Web Tech Day 2017 - CMS Tunnel Vision
 
Performance testing with your eyes wide open geekweek 2018
Performance testing with your eyes wide open  geekweek 2018Performance testing with your eyes wide open  geekweek 2018
Performance testing with your eyes wide open geekweek 2018
 
Cloud Computing Introduction
Cloud Computing IntroductionCloud Computing Introduction
Cloud Computing Introduction
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter intro
 
Measure and Increase Developer Productivity with Help of Serverless at Server...
Measure and Increase Developer Productivity with Help of Serverless at Server...Measure and Increase Developer Productivity with Help of Serverless at Server...
Measure and Increase Developer Productivity with Help of Serverless at Server...
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwist
 
Manoj(Java Developer)_Resume
Manoj(Java Developer)_ResumeManoj(Java Developer)_Resume
Manoj(Java Developer)_Resume
 
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
 
Progressive Web Apps. What, why and how
Progressive Web Apps. What, why and howProgressive Web Apps. What, why and how
Progressive Web Apps. What, why and how
 
"Progressive Web Apps" by Riza Fahmi (Hacktiv8)
"Progressive Web Apps" by Riza Fahmi	(Hacktiv8)"Progressive Web Apps" by Riza Fahmi	(Hacktiv8)
"Progressive Web Apps" by Riza Fahmi (Hacktiv8)
 
MongoDB and In-Memory Computing
MongoDB and In-Memory ComputingMongoDB and In-Memory Computing
MongoDB and In-Memory Computing
 
Designing Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDesigning Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAs
 
MetaASO J2EE Web Framework
MetaASO J2EE Web FrameworkMetaASO J2EE Web Framework
MetaASO J2EE Web Framework
 
Streamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web FrameworksStreamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web Frameworks
 
Web 2.0 = Accessibility 2.0?
Web 2.0 = Accessibility 2.0?Web 2.0 = Accessibility 2.0?
Web 2.0 = Accessibility 2.0?
 
Storage Systems for High Scalable Systems Presentation
Storage Systems for High Scalable Systems PresentationStorage Systems for High Scalable Systems Presentation
Storage Systems for High Scalable Systems Presentation
 
CSA on Rails: a practical case-study
CSA on Rails: a practical case-studyCSA on Rails: a practical case-study
CSA on Rails: a practical case-study
 
Bruce Lawson Opera Indonesia
Bruce Lawson Opera IndonesiaBruce Lawson Opera Indonesia
Bruce Lawson Opera Indonesia
 

Recently uploaded

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

Maslow's Hierarchy of Needs and the Application to Web Platforms and Toolkits

  • 1. Dojo 1.0: Great Experiences... For Everyone Alex Russell Project Lead, The Dojo Toolkit
  • 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
  • 3. The Application Hierachy Of Needs • Deficiency needs - Platform - Security - Social Capacity - Competition • Growth Needs - Integration - Platform capacity
  • 4. If The Platform Isn’t Ubiquitous And Capable, Another Will Emerge
  • 5. Changes In Cost Are Changes In Capacity
  • 6. Complexity Is The New Dominating Factor In Cost
  • 7. Where Are We Fighting Complexity? • HTML • CSS • JavaScript • Server integration
  • 8. The Wall Of Complexity http://flickr.com/photos/kidisland/502242023/
  • 9. Implements Of War • Grouping + Encapsulation • Shared Context • Patterns of Practice • Separation of Concerns • Forgiveness
  • 10. So How Are We Doing?
  • 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
  • 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
  • 13. Good Semantics Let You Say What You Mean And Get What You Want
  • 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?
  • 16. Platform Capacity Is The Ability To Grow New Semantics
  • 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
  • 18. When Are You Going To Talk About Dojo?
  • 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
  • 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
  • 22. Developer User Experience <a href=quot;images/depot.jpgquot; dojoType=quot;dojox.image.Lightboxquot; group=quot;myTravelsquot; title=quot;Photo of a Train Depotquot;>A Train Depot</a> <a href=quot;images/greenville.jpgquot; dojoType=quot;dojox.image.Lightboxquot; group=quot;myTravelsquot; title=quot;A Photo of Greeneville, TNquot;>Greenville</a>
  • 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”) });
  • 24. a11y & i18n Concerns • Incredibly robust keyboard handling code • All Dijit widgets fully WAI ARIA augmented - role=quot;wairole:dialogquot; - 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
  • 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
  • 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
  • 27. You Can’t Tack These On Later, i.e., Systemization Matters
  • 29. ...But We Wish We Didn’t Have To
  • 30. Our Collective Perception Of Where We Are On The Hierarchy Is Wrong
  • 31. The Lack Of Competition Is A Deficiency That Prevents Access To Growth Needs
  • 32. You Should Be Demanding A Better Future From The People Who Can Deliver It
  • 33. Until Then, Toolkits Should Be Preparing For A Better Future...