SlideShare a Scribd company logo
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

More Related Content

What's hot

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
Atlassian
 
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
Allison Baum
 
Scalable system operations presentation
Scalable system operations presentationScalable system operations presentation
Scalable system operations presentation
james tong
 
A Period of Transition
A Period of TransitionA Period of Transition
A Period of Transition
Jens Grochtdreis
 
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)
IWMW
 
The Fight Over HTML5
The Fight Over HTML5The Fight Over HTML5
The Fight Over HTML5
Mike Wilcox
 

What's hot (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
 

Viewers also liked

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
Dev Khare
 
La Brecha Digital
La Brecha DigitalLa Brecha Digital
La Brecha Digitalguest4feec7
 
Lr8.0 Day 2
Lr8.0   Day 2Lr8.0   Day 2
Lr8.0 Day 2ranjithv
 
Kinkajou Microfilm Projector
Kinkajou Microfilm ProjectorKinkajou Microfilm Projector
Kinkajou Microfilm Projector
Design that Matters
 
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 preguntas4esopalamos
 
Kinesis Marketing Social Media Brochure
Kinesis Marketing Social Media BrochureKinesis Marketing Social Media Brochure
Kinesis Marketing Social Media Brochure
Michael Pierre
 
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
amante
 

Viewers also liked (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 to Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 0 Browser Hacks Presentation

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...
Marcel Bruch
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynote
Christian Heilmann
 
ScroIDE Project Dicussion
ScroIDE Project DicussionScroIDE Project Dicussion
ScroIDE Project Dicussion
Mostafa Eweda
 
What is this cloud thing?
What is this cloud thing?What is this cloud thing?
What is this cloud thing?
Andrew Eisenberg
 
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
peter_ibuildings
 
But I'm a Bloody Designer!
But I'm a Bloody Designer!But I'm a Bloody Designer!
But I'm a Bloody Designer!
Mike Stenhouse
 
How HTML5 missed its graduation - #TrondheimDC
How HTML5 missed its graduation - #TrondheimDCHow HTML5 missed its graduation - #TrondheimDC
How HTML5 missed its graduation - #TrondheimDC
Christian Heilmann
 
TypeScript - Javascript done right
TypeScript - Javascript done rightTypeScript - Javascript done right
TypeScript - Javascript done right
Wekoslav Stefanovski
 
Play framework 2 : Peter Hilton
Play framework 2 : Peter HiltonPlay framework 2 : Peter Hilton
Play framework 2 : Peter Hilton
JAX London
 
Mobile for PHP developers
Mobile for PHP developersMobile for PHP developers
Mobile for PHP developers
Ivo Jansch
 
Developers survival-guide
Developers survival-guideDevelopers survival-guide
Developers survival-guide
Dinesh Vasudevan
 
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
Christian Heilmann
 
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
LINAGORA
 
Dart presentation
Dart presentationDart presentation
Dart presentation
Lucas Leal
 
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
Jazkarta, Inc.
 
Elm at large (companies)
Elm at large (companies)Elm at large (companies)
Elm at large (companies)
Fangda Wang
 
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
Christian Heilmann
 
JavaScript - The Universal Platform?
JavaScript - The Universal Platform?JavaScript - The Universal Platform?
JavaScript - The Universal Platform?
Jonas Bandi
 
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
Jazkarta, Inc.
 
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.
Christian Heilmann
 

Similar to 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.
 

More from 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 Presentationjward5519
 
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 Presentationjward5519
 
Global Design Trends Presentation
Global Design Trends PresentationGlobal Design Trends Presentation
Global Design Trends Presentationjward5519
 
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 Presentationjward5519
 
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 Presentationjward5519
 
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 Presentationjward5519
 
Design Learnings From Viral Applications Presentation
Design Learnings From Viral Applications PresentationDesign Learnings From Viral Applications Presentation
Design Learnings From Viral Applications Presentationjward5519
 
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 Presentationjward5519
 
Capacity Planning For Web Operations Presentation
Capacity Planning For Web Operations PresentationCapacity Planning For Web Operations Presentation
Capacity Planning For Web Operations Presentationjward5519
 
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 1jward5519
 
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 1jward5519
 
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 Presentationjward5519
 
Capacity Planning For Web Operations Presentation
Capacity Planning For Web Operations PresentationCapacity Planning For Web Operations Presentation
Capacity Planning For Web Operations Presentationjward5519
 
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 Presentationjward5519
 
A Symfony Answer Presentation
A Symfony Answer PresentationA Symfony Answer Presentation
A Symfony Answer Presentationjward5519
 
Tools For Managing Creative Environment Presentation
Tools For Managing Creative Environment PresentationTools For Managing Creative Environment Presentation
Tools For Managing Creative Environment Presentation
jward5519
 

More from 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
 

Recently uploaded

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 

Recently uploaded (20)

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 

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