SlideShare una empresa de Scribd logo
1 de 52
Descargar para leer sin conexión
Do Try This at Home
    Ajax Bookmarking, Cross-site Scripting
     and Other Web 2.0 Browser Hacks




Brian Dillard, Ajax R&D, Pathfinder Development



                                                 1
About this talk
1. Not too much code
2. The high-level stuff
3. The practical stuff
4. The uplifting finale



                          2
Where we are
It’s a really exciting time to be
a web developer. Cool stuff is
 coming out every single day.



                                    3
Where we are
   ... but it’s hard to get too
  excited about technologies
that aren’t yet ready for prime
time. How best to participate?

                                  4
Where we are
Walled gardens
      vs.
 ecosystems




                 5
Where we are
 Open Web
     vs.
 Closed Web



  Jonathan Zittrain

                      6
Where we are
     Ajax
      vs.
  Flash/Flex
      vs.
  Silverlight


                7
Where we are
Prototype/Scriptaculous
          vs.
       MooTools
          vs.
    Dojo/Dijit/Dojox
          vs.
   jQuery/jQuery UI
          vs.
       YUI & Ext

                          8
Where we are
Web standards
     vs.
  quot;embrace,
 extend, then
  innovatequot;


                9
Where we are
 Internet Explorer 8
         vs.
      Firefox 3
         vs.
      Safari 3.1
         vs.
      Opera 9.5




                       10
“   To get a better future, not only do we need a return to
    'the browser wars,' we need to applaud and use the hell
    out of 'non-standard' features until such time as there’s
    a standard to cover equivalent functionality. Non-
    standard features are the future, and suggesting that
    they are somehow 'bad' is to work against your own
    self-interest.

    Alex Russell, President, Dojo Foundation




                                                                11
CSS masks!
             12
CSS variables!
                 13
But ... Webkit? Safari?
                          14
What should I do?




                    15
What should I do?
   What's the
   right thing
     to do?



                    16
What should I do?
   What's the
   right thing
     to do?
  How should I
 invest my time?
                    17
The future lies
    in the tension
       between
 emerging standards
and de facto standards
                         18
Today's technologies grew in the wild
•   xmlHttpRequest

•   DOMContentLoaded

•   Selectors API

•   Canvas supplanted SVG

•   HTML5 Ajax Navigation

•   Microformats




                                        19
Tomorrow’s will grow ... in committees?
•   HTML 5 in two dialects, HTML and XML

•   XHTML 2

•   ECMAScript 4 a.k.a. JavaScript 2

•   CSS 3

•   CSS Layout Module

•   CSSOM

•   DOM storage/client-side database storage

•   Web Forms 2.0

                                               20
Draft specs
are cool ...




               21
Draft specs
  are cool ...
    but live
implementations
  are cooler.



                  22
“   The Gears project started because a group of
    developers at Google were frustrated by the slow
    march of web browsers. Competition and standards
    were producing fantastic results, but it took a long time
    to get implementations on every browser. In some
    cases, we still don’t have compatible implementations,
    years after the standards were finalized.

    Aaron Boodman, Gears Engineer




                                                                23
Who will play a role in determining
   the shape of tomorrow’s web?
• Proprietary runtimes set the pace for
  multimedia and native UI integration
• Standards bodies & browser vendors
  do their little dance
• Ajax libraries & browser plugins paper
  over the differences


                                           24
Who will play a role in determining
 the shape of tomorrow’s web?




So what about individual developers?

                                       25
Build cool stuff!




                    26
Offline storage
• Dojo Storage
 • Flash LSOs (Local Shared Objects)
 • IE userData
 • Form field auto-save
• Google Gears
• DOM storage: sessionStorage/globalStorage
• Client database storage
                                              27
Ajax history and bookmarking

• Dojo Toolkit
• Various Ajax frameworks, including GWT
• Really Simple History
• dsHistory
• IE8 and Ajax Navigation

                                           28
Cross-site scripting
• Doom and gloom from Crockford
• But XSS !== malware
• FF3 cross-window messaging with HTML 5
  postMessage API
• xssinterface - a library that uses
  postMessage, Gears or a cookie hack


                                           29
Other possibilities
• CSSOM
 • CSSOM View Module
   • elementFromPoint for drag/drop
• Web Forms 2.0
 • 2 projects in suspended animation
   • Dust them off?

                                       30
Best practices?
•   If you’re doing something simple, try to use the
    draft-standard API itself.

•   If you’re building a higher-level abstraction, use
    draft standards when they’re available.

•   If you’re going for the big hack, follow the
    conventions of successful libraries.

•   If you don’t need to rely on a specific JavaScript
    framework, don’t.

•   Make informed choices about joining the fray.

                                                         31
How to be part of the conversation




        Build plugins for popular frameworks.
Solve a little problem well while looking to HTML 5.

                                                       32
How to be part of the conversation




    Participate actively in open-source projects.
You don’t need to build a Gears module to use one.

                                                     33
How to be part of the conversation




  Get down and dirty with beta browsers.
 File bug reports. Join forums. Blog about it.

                                                 34
How to be part of the conversation




    Read and comment on draft specs


                                      35
How to be part of the conversation




    Read and comment on draft specs
         ... just not late at night.

                                       36
How to be part of the conversation




             Vote with your feet.
Use technologies whose philosophy you support.

                                                 37
Tools for participating




 Become a beat reporter.

                           38
Research tools
•   RSS: NetNewsWire/FeedDemon/GReader

•   Oversubscribe

    •   labs.pathf.com/ajax/web20expo/

•   Or just bookmark trusted sites

    •   ajaxian.com

    •   quirksmode.org

    •   crockford.com


                                         39
Tools for participating




Frequent browser vendor websites

                                   40
Browser sites
•   Internet Explorer 8

    •   Readiness toolkit/developer forum

•   Firefox 3

    •   Bug tracker

•   Opera 9.5

    •   Bug tracker

•   Safari 3

    •   Bug tracker

                                            41
Tools for participating




 Debuggers for everyone...
 not just Firefox & Firebug

                              42
Debuggers
• Firefox
 • Firebug
 • Web developer toolbar
• Safari
 • Develop menu
 • Web Inspector

                           43
Debuggers
• IE8 Developer Tools
 • Finally built in
• Opera Developer Console
 • Just a bookmarklet



                            44
Tools for participating




 Standards body websites

                           45
Standards bodies
• WC3
 • http://www.w3.org/
• WHATWG
 • http://www.whatwg.org/
• ECMAScript
 • http://www.ecmascript.org/

                                46
“   Neither the CSS WG nor the HTML 5 WG nor, indeed,
    any W3C working group can define the future. They can
    only round off the sharp edges once the future
    becomes the past and that’s all we should ever expect
    of them. ... [T]he W3C cannot save us.

    Alex Russell, President, Dojo Foundation




                                                            47
If you wait for Google,
Prototype, the WC3 and
  Adobe to solve your
  problems, then you’re
       missing out.

                           48
About me
• San Francisco: Reflect.com
• Chicago: United Airlines, Orbitz Worldwide
• Now: Pathfinder Development
• R&D: Playing with shiny new toys
• Blog: Agile Ajax (blogs.pathf.com/agileajax)

                                                 49
Please rate me!
                  50
Please rate me!
                  51
Please rate me!
                  52

Más contenido relacionado

La actualidad más candente

La actualidad más candente (7)

Dev Tools State of the Union (Part II) - Atlassian Summit 2010
Dev Tools State of the Union (Part II) - Atlassian Summit 2010Dev Tools State of the Union (Part II) - Atlassian Summit 2010
Dev Tools State of the Union (Part II) - Atlassian Summit 2010
 
Front-end Web Dev (HK) Info Session
Front-end Web Dev (HK) Info SessionFront-end Web Dev (HK) Info Session
Front-end Web Dev (HK) Info Session
 
Scalable system operations presentation
Scalable system operations presentationScalable system operations presentation
Scalable system operations presentation
 
A Period of Transition
A Period of TransitionA Period of Transition
A Period of Transition
 
Tomas Grails
Tomas GrailsTomas Grails
Tomas Grails
 
IWMW 2002: Web standards briefing (session C2)
IWMW 2002: Web standards briefing (session C2)IWMW 2002: Web standards briefing (session C2)
IWMW 2002: Web standards briefing (session C2)
 
The Fight Over HTML5
The Fight Over HTML5The Fight Over HTML5
The Fight Over HTML5
 

Destacado (9)

Venrock Reception at Where 2.0, May 2008
Venrock Reception at Where 2.0, May 2008Venrock Reception at Where 2.0, May 2008
Venrock Reception at Where 2.0, May 2008
 
La Brecha Digital
La Brecha DigitalLa Brecha Digital
La Brecha Digital
 
Write
WriteWrite
Write
 
Lr8.0 Day 2
Lr8.0   Day 2Lr8.0   Day 2
Lr8.0 Day 2
 
Kinkajou Microfilm Projector
Kinkajou Microfilm ProjectorKinkajou Microfilm Projector
Kinkajou Microfilm Projector
 
Volver
VolverVolver
Volver
 
Martí Ribot, Xavi Pozo, Gerard Melis preguntas
Martí Ribot, Xavi Pozo, Gerard Melis preguntasMartí Ribot, Xavi Pozo, Gerard Melis preguntas
Martí Ribot, Xavi Pozo, Gerard Melis preguntas
 
Kinesis Marketing Social Media Brochure
Kinesis Marketing Social Media BrochureKinesis Marketing Social Media Brochure
Kinesis Marketing Social Media Brochure
 
Cenizas VolcàN ChaitèN 02.05.08 Cosasdivertidas1
Cenizas VolcàN ChaitèN 02.05.08 Cosasdivertidas1Cenizas VolcàN ChaitèN 02.05.08 Cosasdivertidas1
Cenizas VolcàN ChaitèN 02.05.08 Cosasdivertidas1
 

Similar a Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 0 Browser Hacks Presentation

Similar a Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 0 Browser Hacks Presentation (20)

Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Jav...
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynote
 
ScroIDE Project Dicussion
ScroIDE Project DicussionScroIDE Project Dicussion
ScroIDE Project Dicussion
 
What is this cloud thing?
What is this cloud thing?What is this cloud thing?
What is this cloud thing?
 
Surviving a Plane Crash, a NU.nl case-study
Surviving a Plane Crash, a NU.nl case-studySurviving a Plane Crash, a NU.nl case-study
Surviving a Plane Crash, a NU.nl case-study
 
But I'm a Bloody Designer!
But I'm a Bloody Designer!But I'm a Bloody Designer!
But I'm a Bloody Designer!
 
How HTML5 missed its graduation - #TrondheimDC
How HTML5 missed its graduation - #TrondheimDCHow HTML5 missed its graduation - #TrondheimDC
How HTML5 missed its graduation - #TrondheimDC
 
TypeScript - Javascript done right
TypeScript - Javascript done rightTypeScript - Javascript done right
TypeScript - Javascript done right
 
Play framework 2 : Peter Hilton
Play framework 2 : Peter HiltonPlay framework 2 : Peter Hilton
Play framework 2 : Peter Hilton
 
Mobile for PHP developers
Mobile for PHP developersMobile for PHP developers
Mobile for PHP developers
 
Developers survival-guide
Developers survival-guideDevelopers survival-guide
Developers survival-guide
 
Turning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftTurning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and Microsoft
 
Angular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entrepriseAngular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entreprise
 
Dart presentation
Dart presentationDart presentation
Dart presentation
 
10 Things About Plone - Software Freedom Day 2008
10 Things About Plone - Software Freedom Day 200810 Things About Plone - Software Freedom Day 2008
10 Things About Plone - Software Freedom Day 2008
 
Elm at large (companies)
Elm at large (companies)Elm at large (companies)
Elm at large (companies)
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San Francisco
 
JavaScript - The Universal Platform?
JavaScript - The Universal Platform?JavaScript - The Universal Platform?
JavaScript - The Universal Platform?
 
10 Things You Probably Didn't Know About Plone
10 Things You Probably Didn't Know About Plone10 Things You Probably Didn't Know About Plone
10 Things You Probably Didn't Know About Plone
 
Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date. Let’s learn how to use JavaScript responsibly and stay up-to-date.
Let’s learn how to use JavaScript responsibly and stay up-to-date.
 

Más de jward5519

Google App Engine Making It Easier For Developers To Build And Scale Apps P...
Google App Engine  Making It Easier For Developers To Build And Scale Apps  P...Google App Engine  Making It Easier For Developers To Build And Scale Apps  P...
Google App Engine Making It Easier For Developers To Build And Scale Apps P...
jward5519
 
Mashing Up Taking Enterprise Mashups To The Next Level Presentation
Mashing Up  Taking Enterprise Mashups To The Next Level  PresentationMashing Up  Taking Enterprise Mashups To The Next Level  Presentation
Mashing Up Taking Enterprise Mashups To The Next Level Presentation
jward5519
 
Ibm Web 2 0 Goes To Work Presentation
Ibm  Web 2 0 Goes To Work PresentationIbm  Web 2 0 Goes To Work Presentation
Ibm Web 2 0 Goes To Work Presentation
jward5519
 
Global Design Trends Presentation
Global Design Trends PresentationGlobal Design Trends Presentation
Global Design Trends Presentation
jward5519
 
Maximizing Conversions And Overall Campaign Roi Presentation
Maximizing Conversions And Overall Campaign Roi PresentationMaximizing Conversions And Overall Campaign Roi Presentation
Maximizing Conversions And Overall Campaign Roi Presentation
jward5519
 
Maximizing Ad Revenue Through Format Optimization Presentation
Maximizing Ad Revenue Through Format Optimization PresentationMaximizing Ad Revenue Through Format Optimization Presentation
Maximizing Ad Revenue Through Format Optimization Presentation
jward5519
 
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...
Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...
jward5519
 
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...
Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...
jward5519
 
Data Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web PresentationData Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web Presentation
jward5519
 
Design Learnings From Viral Applications Presentation
Design Learnings From Viral Applications PresentationDesign Learnings From Viral Applications Presentation
Design Learnings From Viral Applications Presentation
jward5519
 
Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...
Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...
Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...
jward5519
 
Design Learnings From Viral Applications Presentation
Design Learnings From Viral Applications PresentationDesign Learnings From Viral Applications Presentation
Design Learnings From Viral Applications Presentation
jward5519
 
Capacity Planning For Web Operations Presentation
Capacity Planning For Web Operations PresentationCapacity Planning For Web Operations Presentation
Capacity Planning For Web Operations Presentation
jward5519
 
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
jward5519
 
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
jward5519
 
Data Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web PresentationData Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web Presentation
jward5519
 
Capacity Planning For Web Operations Presentation
Capacity Planning For Web Operations PresentationCapacity Planning For Web Operations Presentation
Capacity Planning For Web Operations Presentation
jward5519
 
Building An App For Social Platforms Presentation
Building An App For Social Platforms PresentationBuilding An App For Social Platforms Presentation
Building An App For Social Platforms Presentation
jward5519
 
A Symfony Answer Presentation
A Symfony Answer PresentationA Symfony Answer Presentation
A Symfony Answer Presentation
jward5519
 
Tools For Managing Creative Environment Presentation
Tools For Managing Creative Environment PresentationTools For Managing Creative Environment Presentation
Tools For Managing Creative Environment Presentation
jward5519
 

Más de jward5519 (20)

Google App Engine Making It Easier For Developers To Build And Scale Apps P...
Google App Engine  Making It Easier For Developers To Build And Scale Apps  P...Google App Engine  Making It Easier For Developers To Build And Scale Apps  P...
Google App Engine Making It Easier For Developers To Build And Scale Apps P...
 
Mashing Up Taking Enterprise Mashups To The Next Level Presentation
Mashing Up  Taking Enterprise Mashups To The Next Level  PresentationMashing Up  Taking Enterprise Mashups To The Next Level  Presentation
Mashing Up Taking Enterprise Mashups To The Next Level Presentation
 
Ibm Web 2 0 Goes To Work Presentation
Ibm  Web 2 0 Goes To Work PresentationIbm  Web 2 0 Goes To Work Presentation
Ibm Web 2 0 Goes To Work Presentation
 
Global Design Trends Presentation
Global Design Trends PresentationGlobal Design Trends Presentation
Global Design Trends Presentation
 
Maximizing Conversions And Overall Campaign Roi Presentation
Maximizing Conversions And Overall Campaign Roi PresentationMaximizing Conversions And Overall Campaign Roi Presentation
Maximizing Conversions And Overall Campaign Roi Presentation
 
Maximizing Ad Revenue Through Format Optimization Presentation
Maximizing Ad Revenue Through Format Optimization PresentationMaximizing Ad Revenue Through Format Optimization Presentation
Maximizing Ad Revenue Through Format Optimization Presentation
 
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...
Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...
 
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...
Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...Free Traffic  Seo Smo 101 (Search Engine   Social Media Optimization) Present...
Free Traffic Seo Smo 101 (Search Engine Social Media Optimization) Present...
 
Data Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web PresentationData Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web Presentation
 
Design Learnings From Viral Applications Presentation
Design Learnings From Viral Applications PresentationDesign Learnings From Viral Applications Presentation
Design Learnings From Viral Applications Presentation
 
Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...
Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...
Developing, Distributing, And Monetizing Web Applications With Web Ex Connect...
 
Design Learnings From Viral Applications Presentation
Design Learnings From Viral Applications PresentationDesign Learnings From Viral Applications Presentation
Design Learnings From Viral Applications Presentation
 
Capacity Planning For Web Operations Presentation
Capacity Planning For Web Operations PresentationCapacity Planning For Web Operations Presentation
Capacity Planning For Web Operations Presentation
 
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
 
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
 
Data Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web PresentationData Portability, Privacy, And The Emergence Of The Social Web Presentation
Data Portability, Privacy, And The Emergence Of The Social Web Presentation
 
Capacity Planning For Web Operations Presentation
Capacity Planning For Web Operations PresentationCapacity Planning For Web Operations Presentation
Capacity Planning For Web Operations Presentation
 
Building An App For Social Platforms Presentation
Building An App For Social Platforms PresentationBuilding An App For Social Platforms Presentation
Building An App For Social Platforms Presentation
 
A Symfony Answer Presentation
A Symfony Answer PresentationA Symfony Answer Presentation
A Symfony Answer Presentation
 
Tools For Managing Creative Environment Presentation
Tools For Managing Creative Environment PresentationTools For Managing Creative Environment Presentation
Tools For Managing Creative Environment Presentation
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 0 Browser Hacks Presentation

  • 1. Do Try This at Home Ajax Bookmarking, Cross-site Scripting and Other Web 2.0 Browser Hacks Brian Dillard, Ajax R&D, Pathfinder Development 1
  • 2. About this talk 1. Not too much code 2. The high-level stuff 3. The practical stuff 4. The uplifting finale 2
  • 3. Where we are It’s a really exciting time to be a web developer. Cool stuff is coming out every single day. 3
  • 4. Where we are ... but it’s hard to get too excited about technologies that aren’t yet ready for prime time. How best to participate? 4
  • 5. Where we are Walled gardens vs. ecosystems 5
  • 6. Where we are Open Web vs. Closed Web Jonathan Zittrain 6
  • 7. Where we are Ajax vs. Flash/Flex vs. Silverlight 7
  • 8. Where we are Prototype/Scriptaculous vs. MooTools vs. Dojo/Dijit/Dojox vs. jQuery/jQuery UI vs. YUI & Ext 8
  • 9. Where we are Web standards vs. quot;embrace, extend, then innovatequot; 9
  • 10. Where we are Internet Explorer 8 vs. Firefox 3 vs. Safari 3.1 vs. Opera 9.5 10
  • 11. To get a better future, not only do we need a return to 'the browser wars,' we need to applaud and use the hell out of 'non-standard' features until such time as there’s a standard to cover equivalent functionality. Non- standard features are the future, and suggesting that they are somehow 'bad' is to work against your own self-interest. Alex Russell, President, Dojo Foundation 11
  • 14. But ... Webkit? Safari? 14
  • 15. What should I do? 15
  • 16. What should I do? What's the right thing to do? 16
  • 17. What should I do? What's the right thing to do? How should I invest my time? 17
  • 18. The future lies in the tension between emerging standards and de facto standards 18
  • 19. Today's technologies grew in the wild • xmlHttpRequest • DOMContentLoaded • Selectors API • Canvas supplanted SVG • HTML5 Ajax Navigation • Microformats 19
  • 20. Tomorrow’s will grow ... in committees? • HTML 5 in two dialects, HTML and XML • XHTML 2 • ECMAScript 4 a.k.a. JavaScript 2 • CSS 3 • CSS Layout Module • CSSOM • DOM storage/client-side database storage • Web Forms 2.0 20
  • 22. Draft specs are cool ... but live implementations are cooler. 22
  • 23. The Gears project started because a group of developers at Google were frustrated by the slow march of web browsers. Competition and standards were producing fantastic results, but it took a long time to get implementations on every browser. In some cases, we still don’t have compatible implementations, years after the standards were finalized. Aaron Boodman, Gears Engineer 23
  • 24. Who will play a role in determining the shape of tomorrow’s web? • Proprietary runtimes set the pace for multimedia and native UI integration • Standards bodies & browser vendors do their little dance • Ajax libraries & browser plugins paper over the differences 24
  • 25. Who will play a role in determining the shape of tomorrow’s web? So what about individual developers? 25
  • 27. Offline storage • Dojo Storage • Flash LSOs (Local Shared Objects) • IE userData • Form field auto-save • Google Gears • DOM storage: sessionStorage/globalStorage • Client database storage 27
  • 28. Ajax history and bookmarking • Dojo Toolkit • Various Ajax frameworks, including GWT • Really Simple History • dsHistory • IE8 and Ajax Navigation 28
  • 29. Cross-site scripting • Doom and gloom from Crockford • But XSS !== malware • FF3 cross-window messaging with HTML 5 postMessage API • xssinterface - a library that uses postMessage, Gears or a cookie hack 29
  • 30. Other possibilities • CSSOM • CSSOM View Module • elementFromPoint for drag/drop • Web Forms 2.0 • 2 projects in suspended animation • Dust them off? 30
  • 31. Best practices? • If you’re doing something simple, try to use the draft-standard API itself. • If you’re building a higher-level abstraction, use draft standards when they’re available. • If you’re going for the big hack, follow the conventions of successful libraries. • If you don’t need to rely on a specific JavaScript framework, don’t. • Make informed choices about joining the fray. 31
  • 32. How to be part of the conversation Build plugins for popular frameworks. Solve a little problem well while looking to HTML 5. 32
  • 33. How to be part of the conversation Participate actively in open-source projects. You don’t need to build a Gears module to use one. 33
  • 34. How to be part of the conversation Get down and dirty with beta browsers. File bug reports. Join forums. Blog about it. 34
  • 35. How to be part of the conversation Read and comment on draft specs 35
  • 36. How to be part of the conversation Read and comment on draft specs ... just not late at night. 36
  • 37. How to be part of the conversation Vote with your feet. Use technologies whose philosophy you support. 37
  • 38. Tools for participating Become a beat reporter. 38
  • 39. Research tools • RSS: NetNewsWire/FeedDemon/GReader • Oversubscribe • labs.pathf.com/ajax/web20expo/ • Or just bookmark trusted sites • ajaxian.com • quirksmode.org • crockford.com 39
  • 40. Tools for participating Frequent browser vendor websites 40
  • 41. Browser sites • Internet Explorer 8 • Readiness toolkit/developer forum • Firefox 3 • Bug tracker • Opera 9.5 • Bug tracker • Safari 3 • Bug tracker 41
  • 42. Tools for participating Debuggers for everyone... not just Firefox & Firebug 42
  • 43. Debuggers • Firefox • Firebug • Web developer toolbar • Safari • Develop menu • Web Inspector 43
  • 44. Debuggers • IE8 Developer Tools • Finally built in • Opera Developer Console • Just a bookmarklet 44
  • 45. Tools for participating Standards body websites 45
  • 46. Standards bodies • WC3 • http://www.w3.org/ • WHATWG • http://www.whatwg.org/ • ECMAScript • http://www.ecmascript.org/ 46
  • 47. Neither the CSS WG nor the HTML 5 WG nor, indeed, any W3C working group can define the future. They can only round off the sharp edges once the future becomes the past and that’s all we should ever expect of them. ... [T]he W3C cannot save us. Alex Russell, President, Dojo Foundation 47
  • 48. If you wait for Google, Prototype, the WC3 and Adobe to solve your problems, then you’re missing out. 48
  • 49. About me • San Francisco: Reflect.com • Chicago: United Airlines, Orbitz Worldwide • Now: Pathfinder Development • R&D: Playing with shiny new toys • Blog: Agile Ajax (blogs.pathf.com/agileajax) 49