SlideShare a Scribd company logo
1 of 265
Dojo &
                  HTML5
By Mike Wilcox
September, 2011
Mike W ilcox
Mike W ilcox
Mike W ilcox



      AJAX CSS3     AIR

   AS3   HTML5
             PHP
     MySQL
             DojoFlash Video
Mike W ilcox       Co m mitter!




      AJAX CSS3       AIR

   AS3   HTML5
             PHP
     MySQL
             DojoFlash Video
Mike W ilcox       Co m mitter!




      AJAX CSS3       AIR

   AS3   HTML5
             PHP
     MySQL
             DojoFlash Video
                                  Works there as
                                   Director of
                                   Technology.
Mike W ilcox       Co m mitter!


                            Natch!


      AJAX CSS3       AIR

   AS3   HTML5
             PHP
     MySQL
             DojoFlash Video
                                  Works there as
                                   Director of
                                   Technology.
Mike W ilcox       Co m mitter!


                            Natch!
                                      @clubajax

      AJAX CSS3       AIR

   AS3   HTML5
             PHP
     MySQL
             DojoFlash Video              ITweet!


                                  Works there as
                                   Director of
                                   Technology.
Is Dojo HTML5 Ready?
Is Dojo HTML5 Ready?
Is Dojo HTML5 Ready?
Is Dojo HTML5 Ready?
            HTML5 makes a developer’s job
            easier by specifying uniform APIs
            across browsers and suggest new
            and more powerful features
Is Dojo HTML5 Ready?
            HTML5 makes a developer’s job
            easier by specifying uniform APIs
            across browsers and suggest new
            and more powerful features




  library
Is Dojo HTML5 Ready?
            HTML5 makes a developer’s job
            easier by specifying uniform APIs
            across browsers and suggest new
            and more powerful features




  library
Is Dojo HTML5 Ready?
            HTML5 makes a developer’s job
            easier by specifying uniform APIs
            across browsers and suggest new
            and more powerful features


                Pre-written JavaScript
                designed to make coding
  library       easier for devs
Is Dojo HTML5 Ready?
            HTML5 makes a developer’s job
            easier by specifying uniform APIs
            across browsers and suggest new
            and more powerful features


                Pre-written JavaScript
                designed to make coding
  library       easier for devs
Is Dojo HTML5 Ready?
            HTML5 makes a developer’s job
            easier by specifying uniform APIs
            across browsers and suggest new
            and more powerful features


                Pre-written JavaScript
                designed to make coding
  library       easier for devs
Is Dojo HTML5 Ready?
            HTML5 makes a developer’s job
            easier by specifying uniform APIs
            across browsers and suggest new
            and more powerful features


                Pre-written JavaScript
                designed to make coding
  library       easier for devs

                Pete is the president.
The Top HTML5 Features
The Top HTML5 Features
1. Semantic Elements
2.Forms
3.Canvas / SVG
4.WebGL / Canvas 3D
5.Web Workers
6.Geolocation
7.Storage / Offline
8.WebSockets
9.Web Audio API
10.CSS3 / WOFF
11.Audio
12.Video
The Top HTML5 Features
1. Semantic Elements
2.Forms
3.Canvas / SVG
4.WebGL / Canvas 3D
5.Web Workers
6.Geolocation
7.Storage / Offline
8.WebSockets
9.Web Audio API
10.CSS3 / WOFF
11.Audio
12.Video
Semantic Elements
Semantic Elements


          Don’t be anti-
            semantic!
Semantic Elements
Semantic Elements
Semantic Elements
       Fun new tag names, like: section, header,
       footer, menu, etc.
Semantic Elements
       Fun new tag names, like: section, header,
       footer, menu, etc.
       Allows for nested hgroups, multiple h1 tags
       in a page
Semantic Elements
       Fun new tag names, like: section, header,
       footer, menu, etc.
       Allows for nested hgroups, multiple h1 tags
       in a page
       Crawlers have less trouble determining
       your markup intent
Semantic Elements
       Fun new tag names, like: section, header,
       footer, menu, etc.
       Allows for nested hgroups, multiple h1 tags
       in a page
       Crawlers have less trouble determining
       your markup intent
       Pretty much the first thing people think
       of... since it’s actually HTML
Semantic Elements
       Fun new tag names, like: section, header,
       footer, menu, etc.
       Allows for nested hgroups, multiple h1 tags
       in a page
       Crawlers have less trouble determining
       your markup intent
       Pretty much the first thing people think
       of... since it’s actually HTML
Semantic Elements
       Fun new tag names, like: section, header,
       footer, menu, etc.
       Allows for nested hgroups, multiple h1 tags
       in a page
       Crawlers have less trouble determining
       your markup intent
       Pretty much the first thing people think
       of... since it’s actually HTML

       Surprisingly not very well adopted
       considering XForms was introduced in
       2003.
Semantic Elements
Semantic Elements
 Experiment: Dijit BorderContainer, in markup with
 HTML5 tags
Semantic Elements
Semantic Elements
Semantic Elements
                 Works in
               Firefox! Yay!
Semantic Elements
                      Works in
                    Firefox! Yay!




        IE8...
     Not so much.
Semantic Elements
                      Works in
                    Firefox! Yay!




        IE8...
     Not so much.
Semantic Elements
Semantic Elements
 Experiment: Simple custom widget. Minimal HTML5 tags.
Semantic Elements
 Experiment: Simple custom widget. Minimal HTML5 tags.




Keepin’ it
 simple!
Semantic Elements
 Experiment: Simple custom widget. Minimal HTML5 tags.




Keepin’ it
 simple!
Semantic Elements
 Experiment: Simple custom widget. Minimal HTML5 tags.




Keepin’ it
 simple!
Semantic Elements
D -
Semantic Elements
D -
        Semantic Elements
Pros:
D -
        Semantic Elements
Pros:
  Parser handles some parent tags in the page body
D -
        Semantic Elements
Pros:
  Parser handles some parent tags in the page body
  There *is* a ticket for this in Trac.
D -
        Semantic Elements
Pros:
  Parser handles some parent tags in the page body
  There *is* a ticket for this in Trac.
Cons:
D -
        Semantic Elements
Pros:
  Parser handles some parent tags in the page body
  There *is* a ticket for this in Trac.
Cons:
  Right now, it blows up.
Forms
Forms
Forms
Forms
Forms
        Placeholder text, validation, input widgets,
        uploaders, etc.
Forms
        Placeholder text, validation, input widgets,
        uploaders, etc.
        The second thing people think of for
        HTML5!
Forms
        Placeholder text, validation, input widgets,
        uploaders, etc.
        The second thing people think of for
        HTML5!
Forms
        Placeholder text, validation, input widgets,
        uploaders, etc.
        The second thing people think of for
        HTML5!


        Surprisingly not very well adopted
        considering XForms was introduced in
        2003.
Forms
The following screenshots are an example of an HTML5
forms sub-set.




                http://www.miketaylr.com/code/html5-forms-ui-support.html
Forms
Note the difference between Mac
and Windows... on the same browser.
Forms                                     Toggle th
                                                   ese    two
                                      sli des bac
Note the difference between Mac                  k an d   forth!
and Windows... on the same browser.
Forms
Well, Firefox always seems to lag a little behind...
Forms
The mighty Chrome! Hasn’t done a lot here...
Forms
Nor Safari....
Forms
Hey! I thought IE9 was 99% HTML5 compliant! They said
they were.
Dijit Forms
Dijit Forms Theme Tester in IE8 on Windows
Dijit Forms
Dijit Forms Theme Tester in Firefox on Mac OSX 10
Dijit Forms
Dijit Forms Theme Tester in Firefox on Mac OSX 10
                                        Toggle th
                                                 ese two
                                    sli des bac
                                               k an d for
                                                          th!
DojoX Uploader
DojoX Uploader
DojoX Uploader
DojoX Uploader
      The Uploader successfully handles custom
      uploading cross browser with a standard,
      HTML5-friendly API.
DojoX Uploader
      The Uploader successfully handles custom
      uploading cross browser with a standard,
      HTML5-friendly API.
      I wrote it!




      E ven supp  orts Drag
            a n d Dro p!
DojoX Uploader
      The Uploader successfully handles custom
      uploading cross browser with a standard,
      HTML5-friendly API.
      I wrote it!




      E ven supp  orts Drag
            a n d Dro p!
DojoX Uploader
      The Uploader successfully handles custom
      uploading cross browser with a standard,
      HTML5-friendly API.
      I wrote it!

      Too complicated. Dev users are asking the
      same questions over and over. Advanced is
      default.



      E ven supp  orts Drag
            a n d Dro p!
Forms
A
Forms
Pros:
        A
        Forms
Pros:
              A  Forms
  Pretty much has has the HTML5 Forms spec
  covered for years
Pros:
               A  Forms
  Pretty much has has the HTML5 Forms spec
  covered for years
  Consistent look cross browser (better than HTML5!)
Pros:
               A  Forms
  Pretty much has has the HTML5 Forms spec
  covered for years
  Consistent look cross browser (better than HTML5!)
  dataset & data-* attributes: data-dojo-type
Pros:
               A  Forms
  Pretty much has has the HTML5 Forms spec
  covered for years
  Consistent look cross browser (better than HTML5!)
  dataset & data-* attributes: data-dojo-type
Cons:
Pros:
               A  Forms
  Pretty much has has the HTML5 Forms spec
  covered for years
  Consistent look cross browser (better than HTML5!)
  dataset & data-* attributes: data-dojo-type
Cons:
  Compliance may not be quite 100%
Pros:
               A  Forms
  Pretty much has has the HTML5 Forms spec
  covered for years
  Consistent look cross browser (better than HTML5!)
  dataset & data-* attributes: data-dojo-type
Cons:
  Compliance may not be quite 100%
  No Getters and Setters - custom API
Canvas / SVG
Canvas / SVG
Canvas / SVG
Canvas / SVG
Canvas / SVG
 Canvas / Raster: Grid of pixels
Canvas / SVG
 Canvas / Raster: Grid of pixels




 SVG / Vector: Mathematical representation of a shape
Canvas / SVG
 Canvas / Raster: Grid of pixels




 SVG / Vector: Mathematical representation of a shape
Canvas / SVG
 Canvas / Raster: Grid of pixels




 SVG / Vector: Mathematical representation of a shape



                          Not in old-ass™ IE!
Canvas / SVG
 Canvas / Raster: Grid of pixels




 SVG / Vector: Mathematical representation of a shape



                          Not in old-ass™ IE!
                          Fun security restriction
                          surprises!
DojoX GFX
DojoX GFX



            meow!
DojoX GFX
dojox.gfx (GFX) is a cross-platform vector graphics API
that loosely follows SVG as the underlying model. It
detects the best graphics engine implementation for
your browser and uses that to render the graphics.

                         meow!
DojoX GFX
dojox.gfx (GFX) is a cross-platform vector graphics API
that loosely follows SVG as the underlying model. It
detects the best graphics engine implementation for
your browser and uses that to render the graphics.

                                               meow!



dojox.gfx
                Normalized API


 SVG                                           VML
                   Render

       Canvas
                                 Silverlight
Canvas / SVG
A
 +
Canvas / SVG
A
Pros:
         +
        Canvas / SVG
A
Pros:
              +
           Canvas / SVG

  API works with Canvas, SVG, Silverlight and VML
A
Pros:
              +
           Canvas / SVG

  API works with Canvas, SVG, Silverlight and VML
Cons:
A
Pros:
              +
           Canvas / SVG

  API works with Canvas, SVG, Silverlight and VML
Cons:
  Close, but API is non-standard
WebGL / Canvas 3D
WebGL / Canvas 3D
WebGL / Canvas 3D
WebGL / Canvas 3D
  WebGL is a cross-platform API used to create 3D
  graphics in a browser. Because it runs in the HTML5
  Canvas element, WebGL has full integration with all
  Document Object Model (DOM) interfaces.
WebGL / Canvas 3D
  WebGL is a cross-platform API used to create 3D
  graphics in a browser. Because it runs in the HTML5
  Canvas element, WebGL has full integration with all
  Document Object Model (DOM) interfaces.




       Ma de by
      the se guys!
WebGL / Canvas 3D
  WebGL is a cross-platform API used to create 3D
  graphics in a browser. Because it runs in the HTML5
  Canvas element, WebGL has full integration with all
  Document Object Model (DOM) interfaces.

       Because you can
       make stuff like
       this!

       Ma de by
      the se guys!
Because the
code looks like
that!
function init()
{
    // Initialize
    var gl = initWebGL("example", "vshader", "fshader",
            [ "vNormal", "vColor", "vPosition"], [ 0, 0, 0, 1 ], 10000);
 
    // Set some uniform variables for the shaders
    gl.uniform3f(gl.getUniformLocation(gl.program, "lightDir"), 0, 0, 1);
    gl.uniform1i(gl.getUniformLocation(gl.program, "sampler2d"), 0);

                                                                                     Because the
 
    // Create a box. On return 'gl' contains a 'box' property with
    // the BufferObjects containing the arrays for vertices,
    // normals, texture coords, and indices.
    gl.box = makeBox(gl);                                                            code looks like
                                                                                     that!
 
    // Load an image to use. Returns a WebGLTexture object
    spiritTexture = loadImageTexture(gl, "resources/spirit.jpg");
 
    // Create some matrices to use later and save their locations in the shaders
    gl.mvMatrix = new CanvasMatrix4();
    gl.u_normalMatrixLoc = gl.getUniformLocation(gl.program, "u_normalMatrix");
    gl.normalMatrix = new CanvasMatrix4();
    gl.u_modelViewProjMatrixLoc = gl.getUniformLocation(gl.program, "u_modelViewProjMatrix");
    gl.mvpMatrix = new CanvasMatrix4();
 
    // Enable all of the vertex attribute arrays.
    gl.enableVertexAttribArray(0);
    gl.enableVertexAttribArray(1);
    gl.enableVertexAttribArray(2);
 
    // Set up all the vertex attributes for vertices, normals and texCoords
    gl.bindBuffer(gl.ARRAY_BUFFER, gl.box.vertexObject);
    gl.vertexAttribPointer(2, 3, gl.FLOAT, false, 0, 0);
 
    gl.bindBuffer(gl.ARRAY_BUFFER, gl.box.normalObject);
    gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0);
 
    gl.bindBuffer(gl.ARRAY_BUFFER, gl.box.texCoordObject);
    gl.vertexAttribPointer(1, 2, gl.FLOAT, false, 0, 0);
 
    // Bind the index array
    gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, gl.box.indexObject);
 
    return gl;
}
WebGL / Canvas 3D
Pa ss
WebGL / Canvas 3D
Pa ss
        WebGL / Canvas 3D
Pros:
Pa ss
        WebGL / Canvas 3D
Pros:
  Existing libraries: C3DL, CopperLicht , EnergizeGL,
  GammaJS, GLGE, GTW, O3D, OSG.JS, SceneJS,
  SpiderGL, TDL, Three.js and X3DOM
Pa ss
        WebGL / Canvas 3D
Pros:
  Existing libraries: C3DL, CopperLicht , EnergizeGL,
  GammaJS, GLGE, GTW, O3D, OSG.JS, SceneJS,
  SpiderGL, TDL, Three.js and X3DOM
Cons:
Pa ss
        WebGL / Canvas 3D
Pros:
  Existing libraries: C3DL, CopperLicht , EnergizeGL,
  GammaJS, GLGE, GTW, O3D, OSG.JS, SceneJS,
  SpiderGL, TDL, Three.js and X3DOM
Cons:
  There is a DojoX 3Dgfx, but it’s not WebGL.
Web Workers
Web Workers
Web Workers
Web Workers
Web Workers
     Multithreaded JavaScript?? What’s not cool
     about that!
Web Workers
     Multithreaded JavaScript?? What’s not cool
     about that!
Web Workers
     Multithreaded JavaScript?? What’s not cool
     about that!



       Damn you old-ass™ IE!!
       Workers can’t access the DOM.
       Can you picture some devs trying to use
       threads? Yikes!
Web Workers




http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
Web Workers
Possibilities:




http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
Web Workers
Possibilities:
  Prefetching and/or caching data for
  later use

  Code syntax highlighting or other
  real-time text formatting




http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
Web Workers
Possibilities:
  Prefetching and/or caching data for
  later use

  Code syntax highlighting or other
  real-time text formatting
  Spell checker




http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
Web Workers
Possibilities:
  Prefetching and/or caching data for
  later use

  Code syntax highlighting or other
  real-time text formatting
  Spell checker
  Analyzing video or audio data




http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
Web Workers
Possibilities:
  Prefetching and/or caching data for
  later use

  Code syntax highlighting or other
  real-time text formatting
  Spell checker
  Analyzing video or audio data

  Background I/O or polling of webservices




http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
Web Workers
Possibilities:
  Prefetching and/or caching data for
  later use

  Code syntax highlighting or other
  real-time text formatting
  Spell checker
  Analyzing video or audio data

  Background I/O or polling of webservices
  Processing large arrays or humungous JSON responses




http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
Web Workers
Possibilities:
  Prefetching and/or caching data for
  later use

  Code syntax highlighting or other
  real-time text formatting
  Spell checker
  Analyzing video or audio data

  Background I/O or polling of webservices
  Processing large arrays or humungous JSON responses

  Image filtering in <canvas>



http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
Web Workers
Possibilities:
  Prefetching and/or caching data for
  later use

  Code syntax highlighting or other
  real-time text formatting
  Spell checker
  Analyzing video or audio data

  Background I/O or polling of webservices
  Processing large arrays or humungous JSON responses

  Image filtering in <canvas>

  Updating many rows of a local web database

http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
Web Workers
Web Workers
 pros:
Web Workers
 pros:
    Could be used with gfx3d, Data Stores, Charts, THE GRID, and
    crypto (which does utilize Gears Workers)
Web Workers
 pros:
    Could be used with gfx3d, Data Stores, Charts, THE GRID, and
    crypto (which does utilize Gears Workers)
    IE10 will use messaging between workers - interesting
    possibilities
Web Workers
 pros:
    Could be used with gfx3d, Data Stores, Charts, THE GRID, and
    crypto (which does utilize Gears Workers)
    IE10 will use messaging between workers - interesting
    possibilities
    Safari has child Workers
Web Workers
 pros:
    Could be used with gfx3d, Data Stores, Charts, THE GRID, and
    crypto (which does utilize Gears Workers)
    IE10 will use messaging between workers - interesting
    possibilities
    Safari has child Workers
 cons:
Web Workers
 pros:
    Could be used with gfx3d, Data Stores, Charts, THE GRID, and
    crypto (which does utilize Gears Workers)
    IE10 will use messaging between workers - interesting
    possibilities
    Safari has child Workers
 cons:
    Modern JavaScript performance has minimized the need for
    Workers
Web Workers
 pros:
    Could be used with gfx3d, Data Stores, Charts, THE GRID, and
    crypto (which does utilize Gears Workers)
    IE10 will use messaging between workers - interesting
    possibilities
    Safari has child Workers
 cons:
    Modern JavaScript performance has minimized the need for
    Workers
    JS calc is rarely the bottleneck
Web Workers
 pros:
    Could be used with gfx3d, Data Stores, Charts, THE GRID, and
    crypto (which does utilize Gears Workers)
    IE10 will use messaging between workers - interesting
    possibilities
    Safari has child Workers
 cons:
    Modern JavaScript performance has minimized the need for
    Workers
    JS calc is rarely the bottleneck
    Most devs who understand the need for Workers wouldn't
    necessarily need a DojoX class to help them
Web Workers
 pros:
    Could be used with gfx3d, Data Stores, Charts, THE GRID, and
    crypto (which does utilize Gears Workers)
    IE10 will use messaging between workers - interesting
    possibilities
    Safari has child Workers
 cons:
    Modern JavaScript performance has minimized the need for
    Workers
    JS calc is rarely the bottleneck
    Most devs who understand the need for Workers wouldn't
    necessarily need a DojoX class to help them
    IE9 and older would use timeouts - not very effective
    deprecation. Most likely you would want to disable the
    feature.
Web Workers
 pros:
    Could be used with gfx3d, Data Stores, Charts, THE GRID, and
    crypto (which does utilize Gears Workers)
    IE10 will use messaging between workers - interesting
    possibilities
    Safari has child Workers
 cons:
    Modern JavaScript performance has minimized the need for
    Workers
    JS calc is rarely the bottleneck
    Most devs who understand the need for Workers wouldn't
    necessarily need a DojoX class to help them
    IE9 and older would use timeouts - not very effective
    deprecation. Most likely you would want to disable the
    feature.
    The API isn’t hard! You don’t need Dojo!
Web Workers
Pa ss
Web Workers
Geolocation
Geolocation
Geolocation
Geolocation
Geolocation
      It tells you where you are.
Geolocation
      It tells you where you are.
      The API is:
      navigator.geolocation.getCurrentPosition
Geolocation
      It tells you where you are.
      The API is:
      navigator.geolocation.getCurrentPosition
Geolocation
      It tells you where you are.
      The API is:
      navigator.geolocation.getCurrentPosition

        It has to ask your permission to tell you
        where you are.
        Sometimes it works.
        It returns a longitude and latitude.
Geolocation
         It tells you where you are.
         The API is:
         navigator.geolocation.getCurrentPosition

           It has to ask your permission to tell you
           where you are.
           Sometimes it works.
           It returns a longitude and latitude.

                          This is where we
                                            are!
38 ° 53.9249'                   Who o ho o!
-77 ° 2.2610'
Geolocation
Geolocation
Pros:
Geolocation
Pros:
  Could be used with dojox.geo
Geolocation
Pros:
  Could be used with dojox.geo
Cons:
Geolocation
Pros:
  Could be used with dojox.geo
Cons:
  So simple, Dojo is not needed.
Geolocation
Pros:
  Could be used with dojox.geo
Cons:
  So simple, Dojo is not needed.
  Third party workarounds may have license issues.
Pa ss
             Geolocation
Pros:
  Could be used with dojox.geo
Cons:
  So simple, Dojo is not needed.
  Third party workarounds may have license issues.
Storage
   &
 Offline
Storage
   &
 Offline
Offline
Offline
          You can download all the necessary files for
          a web app and use it when you’re not
          connected.
Offline
          You can download all the necessary files for
          a web app and use it when you’re not
          connected.

          Most people are always
          connected, and most
          devs assume their
          audience is always
          connected. Building an
          app so that someone can
          use it on an airplane is a
          niche case
Offline
          You can download all the necessary files for
          a web app and use it when you’re not
          connected.
                                                I do!
          Most people are always
          connected, and most
          devs assume their
          audience is always
          connected. Building an
          app so that someone can
          use it on an airplane is a
          niche case
Storage
Storage
      Some apps simply need more storage space
      than a 4k cookie
Storage
      Some apps simply need more storage space
      than a 4k cookie
      Doesn’t get sent with, and overload, server
      requests, like cookies
Storage
      Some apps simply need more storage space
      than a 4k cookie
      Doesn’t get sent with, and overload, server
      requests, like cookies

      It’s just a big cookie - with odd security
Storage / Offline




    http://diveintohtml5.org
Storage / Offline
Pros:




            http://diveintohtml5.org
Storage / Offline
Pros:
  DojoX RPC includes offline capabilities




                 http://diveintohtml5.org
Storage / Offline
Pros:
  DojoX RPC includes offline capabilities
  DojoX Storage gets kudos in Mark Pilgrim’s Dive
  Into HTML5, which handles the very complex
  disparity between APIs.




                 http://diveintohtml5.org
Storage / Offline
Pros:
  DojoX RPC includes offline capabilities
  DojoX Storage gets kudos in Mark Pilgrim’s Dive
  Into HTML5, which handles the very complex
  disparity between APIs.
Cons:




                 http://diveintohtml5.org
Storage / Offline
Pros:
  DojoX RPC includes offline capabilities
  DojoX Storage gets kudos in Mark Pilgrim’s Dive
  Into HTML5, which handles the very complex
  disparity between APIs.
Cons:
  Flash solutions are not ready until well after page
  load.




                 http://diveintohtml5.org
Storage / Offline
Pros:
  DojoX RPC includes offline capabilities
  DojoX Storage gets kudos in Mark Pilgrim’s Dive
  Into HTML5, which handles the very complex
  disparity between APIs.
Cons:
  Flash solutions are not ready until well after page
  load.
  IE9 doesn't have Application Cache (offline).



                 http://diveintohtml5.org
Storage / Offline
A-
Storage / Offline
Web Sockets
Web Sockets
Web Sockets
Web Sockets

      The HTML 5 WebSocket specification defines
      a single-socket full-duplex (or bi-directional)
      connection for pushing and pulling
      information between the browser and server.
Web Sockets

      The HTML 5 WebSocket specification defines
      a single-socket full-duplex (or bi-directional)
      connection for pushing and pulling
      information between the browser and server.


                  Stop! You’re
                 turning me on!
Web Sockets
Web Sockets

      WebSockets are not in HTML5 due to
      security disagreements.
Web Sockets

      WebSockets are not in HTML5 due to
      security disagreements.
Web Sockets
A
Web Sockets
A
        Web Sockets
Pros:
A
           Web Sockets
Pros:
  CometD has been around for years and WebSockets
  didn't even make the HTML5 final cut. Nuff said!
A
           Web Sockets
Pros:
  CometD has been around for years and WebSockets
  didn't even make the HTML5 final cut. Nuff said!
Cons:
A
             Web Sockets
Pros:
  CometD has been around for years and WebSockets
  didn't even make the HTML5 final cut. Nuff said!
Cons:
  None! It rocks!
Web Audio API
Web Audio API
Web Audio API
Web Audio API
      Generate sound effects and tones, even voice
      simulations. Modify sound files.
Web Audio API
      Generate sound effects and tones, even voice
      simulations. Modify sound files.


     Chrome and Firefox have the only
     implementations.
Web Audio API
      Generate sound effects and tones, even voice
      simulations. Modify sound files.


     Chrome and Firefox have the only
     implementations.
     Chrome and Firefox have different APIs.
Web Audio API
I
    (Inco mplete)

Web Audio API
I
            (Inco mplete)

        Web Audio API
Pros:
I
                    (Inco

          Web Audio API
                          mplete)



Pros:
  Flash has the capability, but it’s API is even more
  raw than the W3C Audio Incubator Group spec.
I
                    (Inco

          Web Audio API
                          mplete)



Pros:
  Flash has the capability, but it’s API is even more
  raw than the W3C Audio Incubator Group spec.
Cons:
I
                    (Inco

          Web Audio API
                          mplete)



Pros:
  Flash has the capability, but it’s API is even more
  raw than the W3C Audio Incubator Group spec.
Cons:
  Would be a difficult implementation with few real
  uses outside of gaming.
CSS3
CSS3
CSS3
CSS3
       Who doesn’t know what CSS3 is? DUH!! It’s
       HAWT
CSS3
       Who doesn’t know what CSS3 is? DUH!! It’s
       HAWT


       Browser vendors moving WAY too slow on
       some of this.
CSS3
       Who doesn’t know what CSS3 is? DUH!! It’s
       HAWT


       Browser vendors moving WAY too slow on
       some of this.
       How long do you need to agree on how to
       draw a gradient?
CSS3
       Who doesn’t know what CSS3 is? DUH!! It’s
       HAWT


       Browser vendors moving WAY too slow on
       some of this.
       How long do you need to agree on how to
       draw a gradient?
       All those -moz, -webkit, etc prefixes are
       really bulking up and polluting my style
       sheets
CSS3
CSS3

 Pros:
CSS3

 Pros:
   Less CSS helps with some problems
CSS3

 Pros:
   Less CSS helps with some problems
   dojox.css3 transforms rock (Nicola Rizzo)
CSS3

 Pros:
   Less CSS helps with some problems
   dojox.css3 transforms rock (Nicola Rizzo)
   has() can theoretically help with prefix trouble
CSS3

 Pros:
   Less CSS helps with some problems
   dojox.css3 transforms rock (Nicola Rizzo)
   has() can theoretically help with prefix trouble
 Cons:
CSS3

 Pros:
   Less CSS helps with some problems
   dojox.css3 transforms rock (Nicola Rizzo)
   has() can theoretically help with prefix trouble
 Cons:
   has() not helping with prefix trouble (where is it?)
CSS3

 Pros:
   Less CSS helps with some problems
   dojox.css3 transforms rock (Nicola Rizzo)
   has() can theoretically help with prefix trouble
 Cons:
   has() not helping with prefix trouble (where is it?)
   Old-ass IE™ probably impeded proper CSS3
   progress
CSS3
C+
CSS3
Audio Tag
Audio Tag
Audio Tag
Audio Tag
      Generate sound effects and tones, even voice
      simulations. Modify sound files.
Audio Tag
      Generate sound effects and tones, even voice
      simulations. Modify sound files.


     Audio is so 90s! Everyone wants VIDEO now!
Audio Tag
      Generate sound effects and tones, even voice
      simulations. Modify sound files.


     Audio is so 90s! Everyone wants VIDEO now!
     Firefox doesn’t even support MP3 (but they
     support WAV files... WTF??)
Audio Tag
Audio Tag
Pros:
Audio Tag
Pros:
  dojox.av.FLAudio plays MP3 files
Audio Tag
Pros:
  dojox.av.FLAudio plays MP3 files
Cons:
Audio Tag
Pros:
  dojox.av.FLAudio plays MP3 files
Cons:
  ...but it’s no where near HTML5 compliant!
F
               Audio Tag
                                            With the
                                          possibility of
                                      raising the gr
                                      if implemente
                                              1.8!
                                                      a de
                                                      d in




Pros:
  dojox.av.FLAudio plays MP3 files
Cons:
  ...but it’s no where near HTML5 compliant!
Video Tag
Video Tag
Video Tag
Video Tag
      Video is so hot, it’s insane.
Video Tag
      Video is so hot, it’s insane.




                       Remember ? I
                        work here
Video Tag
      Video is so hot, it’s insane.
      Open source (free) players are in large
      demand.




                       Remember ? I
                        work here
Video Tag
      Video is so hot, it’s insane.
      Open source (free) players are in large
      demand.

     Firefox doesn’t play MP4 files.




                       Remember ? I
                        work here
Video Tag
      Video is so hot, it’s insane.
      Open source (free) players are in large
      demand.

     Firefox doesn’t play MP4 files.
     Who loves OGG? Halla!




                       Remember ? I
                        work here
Video Tag
      Video is so hot, it’s insane.
      Open source (free) players are in large
      demand.

     Firefox doesn’t play MP4 files.
     Who loves OGG? Halla!
     Mozilla jacked with the fullscreen API
     crying “SECURITY!”

                       Remember ? I
                        work here
Video
Video
Video
In progress!
Video
In progress!
 A “super” video player that should
 handle most formats in most
 browsers
Video
In progress!
 A “super” video player that should
 handle most formats in most
 browsers

   dojox.av.Video

                 Normalized API


      HTML5                       Silverlight
                    Render

     Quicktime
                                    Flash
Video Tag
Video Tag
Pros:
Video Tag
Pros:
  I’m working on it, so it will be AWESOME!
Video Tag
Pros:
  I’m working on it, so it will be AWESOME!
Cons:
Video Tag
Pros:
  I’m working on it, so it will be AWESOME!
Cons:
  (to be filled out when I think of something)
N GVideo Tag
Pros:
  I’m working on it, so it will be AWESOME!
Cons:
  (to be filled out when I think of something)
N GVideo Tag
                                                  “No gra de”,
                                                 not “no go o d.”


Pros:
  I’m working on it, so it will be AWESOME!
Cons:
  (to be filled out when I think of something)
Final Grade
Final Grade




         B +
Final Word



Our most precious commodity is...
developer brain cells.
                                    - Kris Zyp
Dojo's Support for HTML5 Features
Dojo's Support for HTML5 Features
Dojo's Support for HTML5 Features

More Related Content

What's hot

Angularjs vs Dojo toolkit | SuperSpeaker@CodeCamp Iasi 2014
Angularjs vs Dojo toolkit | SuperSpeaker@CodeCamp Iasi 2014Angularjs vs Dojo toolkit | SuperSpeaker@CodeCamp Iasi 2014
Angularjs vs Dojo toolkit | SuperSpeaker@CodeCamp Iasi 2014Endava
 
Building Real-World Dojo Web Applications
Building Real-World Dojo Web ApplicationsBuilding Real-World Dojo Web Applications
Building Real-World Dojo Web ApplicationsAndrew Ferrier
 
Rich internet application development using the dojo toolkit
Rich internet application development using the dojo toolkitRich internet application development using the dojo toolkit
Rich internet application development using the dojo toolkitalexklaeser
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web appsyoavrubin
 
jQuery Tips Tricks Trivia
jQuery Tips Tricks TriviajQuery Tips Tricks Trivia
jQuery Tips Tricks TriviaCognizant
 
Building Dojo in the Cloud
Building Dojo in the CloudBuilding Dojo in the Cloud
Building Dojo in the CloudJames Thomas
 
Dojo: Beautiful Web Apps, Fast
Dojo: Beautiful Web Apps, FastDojo: Beautiful Web Apps, Fast
Dojo: Beautiful Web Apps, FastGabriel Hamilton
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesTeamstudio
 
Dojo and Zend Framework
Dojo and Zend  FrameworkDojo and Zend  Framework
Dojo and Zend FrameworkKuldeep Singh
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)jeresig
 
MozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: TaichungMozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: Taichunglittlebtc
 
MozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: TaipeiMozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: Taipeilittlebtc
 
Starting with jQuery
Starting with jQueryStarting with jQuery
Starting with jQueryAnil Kumar
 
Jetpack SDK: The new possibility of the extensions on browser
Jetpack SDK: The new possibility of the extensions on browserJetpack SDK: The new possibility of the extensions on browser
Jetpack SDK: The new possibility of the extensions on browserlittlebtc
 
JavaScript Library Overview
JavaScript Library OverviewJavaScript Library Overview
JavaScript Library Overviewjeresig
 

What's hot (20)

Zero To Dojo
Zero To DojoZero To Dojo
Zero To Dojo
 
Dojo toolkit
Dojo toolkitDojo toolkit
Dojo toolkit
 
Angularjs vs Dojo toolkit | SuperSpeaker@CodeCamp Iasi 2014
Angularjs vs Dojo toolkit | SuperSpeaker@CodeCamp Iasi 2014Angularjs vs Dojo toolkit | SuperSpeaker@CodeCamp Iasi 2014
Angularjs vs Dojo toolkit | SuperSpeaker@CodeCamp Iasi 2014
 
Building Real-World Dojo Web Applications
Building Real-World Dojo Web ApplicationsBuilding Real-World Dojo Web Applications
Building Real-World Dojo Web Applications
 
Rich internet application development using the dojo toolkit
Rich internet application development using the dojo toolkitRich internet application development using the dojo toolkit
Rich internet application development using the dojo toolkit
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web apps
 
jQuery Tips Tricks Trivia
jQuery Tips Tricks TriviajQuery Tips Tricks Trivia
jQuery Tips Tricks Trivia
 
Building Dojo in the Cloud
Building Dojo in the CloudBuilding Dojo in the Cloud
Building Dojo in the Cloud
 
Dojo: Beautiful Web Apps, Fast
Dojo: Beautiful Web Apps, FastDojo: Beautiful Web Apps, Fast
Dojo: Beautiful Web Apps, Fast
 
The jQuery Library
The  jQuery LibraryThe  jQuery Library
The jQuery Library
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPages
 
Echo HTML5
Echo HTML5Echo HTML5
Echo HTML5
 
dojo.Patterns
dojo.Patternsdojo.Patterns
dojo.Patterns
 
Dojo and Zend Framework
Dojo and Zend  FrameworkDojo and Zend  Framework
Dojo and Zend Framework
 
JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)JavaScript Libraries (Ajax Exp 2006)
JavaScript Libraries (Ajax Exp 2006)
 
MozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: TaichungMozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: Taichung
 
MozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: TaipeiMozTW Jetpack Workshop: Taipei
MozTW Jetpack Workshop: Taipei
 
Starting with jQuery
Starting with jQueryStarting with jQuery
Starting with jQuery
 
Jetpack SDK: The new possibility of the extensions on browser
Jetpack SDK: The new possibility of the extensions on browserJetpack SDK: The new possibility of the extensions on browser
Jetpack SDK: The new possibility of the extensions on browser
 
JavaScript Library Overview
JavaScript Library OverviewJavaScript Library Overview
JavaScript Library Overview
 

Similar to Dojo's Support for HTML5 Features

HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive SummaryGilad Khen
 
Apache Flex and the imperfect Web
Apache Flex and the imperfect WebApache Flex and the imperfect Web
Apache Flex and the imperfect Webmasuland
 
Why You Need a Front End Developer
Why You Need a Front End DeveloperWhy You Need a Front End Developer
Why You Need a Front End DeveloperMike Wilcox
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1NAILBITER
 
Manual en Dive Into html5
Manual en Dive Into html5Manual en Dive Into html5
Manual en Dive Into html5Erik Gur
 
JavaScript Presentation Frameworks and Libraries
JavaScript Presentation Frameworks and LibrariesJavaScript Presentation Frameworks and Libraries
JavaScript Presentation Frameworks and LibrariesOleksii Prohonnyi
 
Michael(tm) Smith: HTML5 at Web Directions South 2008
Michael(tm) Smith: HTML5 at Web Directions South 2008Michael(tm) Smith: HTML5 at Web Directions South 2008
Michael(tm) Smith: HTML5 at Web Directions South 2008Michael(tm) Smith
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...ijceronline
 
UMK Lecture 5 - HTML5 latest v7
UMK Lecture 5 - HTML5 latest v7UMK Lecture 5 - HTML5 latest v7
UMK Lecture 5 - HTML5 latest v7Hisham Mat Hussin
 
Screw HTML5, make cool shit with AIR
Screw HTML5, make cool shit with AIRScrew HTML5, make cool shit with AIR
Screw HTML5, make cool shit with AIREric Fickes
 
No Feature Solutions with SharePoint
No Feature Solutions with SharePointNo Feature Solutions with SharePoint
No Feature Solutions with SharePointmikehuguet
 
HTML5 introduction for beginners
HTML5 introduction for beginnersHTML5 introduction for beginners
HTML5 introduction for beginnersVineeth N Krishnan
 
Web development tool
Web development toolWeb development tool
Web development toolDeep Bhavsar
 
Everything you need to know about HTML5 in 15 min
Everything you need to know about HTML5 in 15 minEverything you need to know about HTML5 in 15 min
Everything you need to know about HTML5 in 15 minEdgar Parada
 

Similar to Dojo's Support for HTML5 Features (20)

HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive Summary
 
Apache Flex and the imperfect Web
Apache Flex and the imperfect WebApache Flex and the imperfect Web
Apache Flex and the imperfect Web
 
Why You Need a Front End Developer
Why You Need a Front End DeveloperWhy You Need a Front End Developer
Why You Need a Front End Developer
 
web designing course bangalore
web designing course bangaloreweb designing course bangalore
web designing course bangalore
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1
 
HTML 5
HTML 5HTML 5
HTML 5
 
Manual en Dive Into html5
Manual en Dive Into html5Manual en Dive Into html5
Manual en Dive Into html5
 
JavaScript Presentation Frameworks and Libraries
JavaScript Presentation Frameworks and LibrariesJavaScript Presentation Frameworks and Libraries
JavaScript Presentation Frameworks and Libraries
 
Html5/CSS3
Html5/CSS3Html5/CSS3
Html5/CSS3
 
Michael(tm) Smith: HTML5 at Web Directions South 2008
Michael(tm) Smith: HTML5 at Web Directions South 2008Michael(tm) Smith: HTML5 at Web Directions South 2008
Michael(tm) Smith: HTML5 at Web Directions South 2008
 
JavaScript Toolkit
JavaScript ToolkitJavaScript Toolkit
JavaScript Toolkit
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
 
UMK Lecture 5 - HTML5 latest v7
UMK Lecture 5 - HTML5 latest v7UMK Lecture 5 - HTML5 latest v7
UMK Lecture 5 - HTML5 latest v7
 
Screw HTML5, make cool shit with AIR
Screw HTML5, make cool shit with AIRScrew HTML5, make cool shit with AIR
Screw HTML5, make cool shit with AIR
 
No Feature Solutions with SharePoint
No Feature Solutions with SharePointNo Feature Solutions with SharePoint
No Feature Solutions with SharePoint
 
HTML5 introduction for beginners
HTML5 introduction for beginnersHTML5 introduction for beginners
HTML5 introduction for beginners
 
HTML5 Comprehensive Guide
HTML5 Comprehensive GuideHTML5 Comprehensive Guide
HTML5 Comprehensive Guide
 
Web development tool
Web development toolWeb development tool
Web development tool
 
Everything you need to know about HTML5 in 15 min
Everything you need to know about HTML5 in 15 minEverything you need to know about HTML5 in 15 min
Everything you need to know about HTML5 in 15 min
 
WHAT IS HTML5?(20100510)
WHAT IS HTML5?(20100510)WHAT IS HTML5?(20100510)
WHAT IS HTML5?(20100510)
 

More from Mike Wilcox

Accessibility for Fun and Profit
Accessibility for Fun and ProfitAccessibility for Fun and Profit
Accessibility for Fun and ProfitMike Wilcox
 
Webpack: What it is, What it does, Whether you need it
Webpack: What it is, What it does, Whether you need itWebpack: What it is, What it does, Whether you need it
Webpack: What it is, What it does, Whether you need itMike Wilcox
 
Web Components v1
Web Components v1Web Components v1
Web Components v1Mike Wilcox
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web DesignMike Wilcox
 
Professional JavaScript: AntiPatterns
Professional JavaScript: AntiPatternsProfessional JavaScript: AntiPatterns
Professional JavaScript: AntiPatternsMike Wilcox
 
Model View Madness
Model View MadnessModel View Madness
Model View MadnessMike Wilcox
 
Hardcore JavaScript – Write it Right
Hardcore JavaScript – Write it RightHardcore JavaScript – Write it Right
Hardcore JavaScript – Write it RightMike Wilcox
 
The Great Semicolon Debate
The Great Semicolon DebateThe Great Semicolon Debate
The Great Semicolon DebateMike Wilcox
 
AMD - Why, What and How
AMD - Why, What and HowAMD - Why, What and How
AMD - Why, What and HowMike Wilcox
 
Webpage Design Basics for Non-Designers
Webpage Design Basics for Non-DesignersWebpage Design Basics for Non-Designers
Webpage Design Basics for Non-DesignersMike Wilcox
 
A Conversation About REST
A Conversation About RESTA Conversation About REST
A Conversation About RESTMike Wilcox
 
The Fight Over HTML5
The Fight Over HTML5The Fight Over HTML5
The Fight Over HTML5Mike Wilcox
 
The Fight Over HTML5
The Fight Over HTML5The Fight Over HTML5
The Fight Over HTML5Mike Wilcox
 
How to get a Job as a Front End Developer
How to get a Job as a Front End DeveloperHow to get a Job as a Front End Developer
How to get a Job as a Front End DeveloperMike Wilcox
 
The History of HTML5
The History of HTML5The History of HTML5
The History of HTML5Mike Wilcox
 
Thats Not Flash?
Thats Not Flash?Thats Not Flash?
Thats Not Flash?Mike Wilcox
 

More from Mike Wilcox (20)

Accessibility for Fun and Profit
Accessibility for Fun and ProfitAccessibility for Fun and Profit
Accessibility for Fun and Profit
 
WTF R PWAs?
WTF R PWAs?WTF R PWAs?
WTF R PWAs?
 
Advanced React
Advanced ReactAdvanced React
Advanced React
 
Webpack: What it is, What it does, Whether you need it
Webpack: What it is, What it does, Whether you need itWebpack: What it is, What it does, Whether you need it
Webpack: What it is, What it does, Whether you need it
 
Dangerous CSS
Dangerous CSSDangerous CSS
Dangerous CSS
 
Web Components v1
Web Components v1Web Components v1
Web Components v1
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web Design
 
Professional JavaScript: AntiPatterns
Professional JavaScript: AntiPatternsProfessional JavaScript: AntiPatterns
Professional JavaScript: AntiPatterns
 
Model View Madness
Model View MadnessModel View Madness
Model View Madness
 
Hardcore JavaScript – Write it Right
Hardcore JavaScript – Write it RightHardcore JavaScript – Write it Right
Hardcore JavaScript – Write it Right
 
The Great Semicolon Debate
The Great Semicolon DebateThe Great Semicolon Debate
The Great Semicolon Debate
 
AMD - Why, What and How
AMD - Why, What and HowAMD - Why, What and How
AMD - Why, What and How
 
Webpage Design Basics for Non-Designers
Webpage Design Basics for Non-DesignersWebpage Design Basics for Non-Designers
Webpage Design Basics for Non-Designers
 
A Conversation About REST
A Conversation About RESTA Conversation About REST
A Conversation About REST
 
The Fight Over HTML5
The Fight Over HTML5The Fight Over HTML5
The Fight Over HTML5
 
The Fight Over HTML5
The Fight Over HTML5The Fight Over HTML5
The Fight Over HTML5
 
How to get a Job as a Front End Developer
How to get a Job as a Front End DeveloperHow to get a Job as a Front End Developer
How to get a Job as a Front End Developer
 
The History of HTML5
The History of HTML5The History of HTML5
The History of HTML5
 
Thats Not Flash?
Thats Not Flash?Thats Not Flash?
Thats Not Flash?
 
Flash And Dom
Flash And DomFlash And Dom
Flash And Dom
 

Recently uploaded

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Recently uploaded (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Dojo's Support for HTML5 Features

  • 1. Dojo & HTML5 By Mike Wilcox September, 2011
  • 4. Mike W ilcox AJAX CSS3 AIR AS3 HTML5 PHP MySQL DojoFlash Video
  • 5. Mike W ilcox Co m mitter! AJAX CSS3 AIR AS3 HTML5 PHP MySQL DojoFlash Video
  • 6. Mike W ilcox Co m mitter! AJAX CSS3 AIR AS3 HTML5 PHP MySQL DojoFlash Video Works there as Director of Technology.
  • 7. Mike W ilcox Co m mitter! Natch! AJAX CSS3 AIR AS3 HTML5 PHP MySQL DojoFlash Video Works there as Director of Technology.
  • 8. Mike W ilcox Co m mitter! Natch! @clubajax AJAX CSS3 AIR AS3 HTML5 PHP MySQL DojoFlash Video ITweet! Works there as Director of Technology.
  • 9. Is Dojo HTML5 Ready?
  • 10. Is Dojo HTML5 Ready?
  • 11. Is Dojo HTML5 Ready?
  • 12. Is Dojo HTML5 Ready? HTML5 makes a developer’s job easier by specifying uniform APIs across browsers and suggest new and more powerful features
  • 13. Is Dojo HTML5 Ready? HTML5 makes a developer’s job easier by specifying uniform APIs across browsers and suggest new and more powerful features library
  • 14. Is Dojo HTML5 Ready? HTML5 makes a developer’s job easier by specifying uniform APIs across browsers and suggest new and more powerful features library
  • 15. Is Dojo HTML5 Ready? HTML5 makes a developer’s job easier by specifying uniform APIs across browsers and suggest new and more powerful features Pre-written JavaScript designed to make coding library easier for devs
  • 16. Is Dojo HTML5 Ready? HTML5 makes a developer’s job easier by specifying uniform APIs across browsers and suggest new and more powerful features Pre-written JavaScript designed to make coding library easier for devs
  • 17. Is Dojo HTML5 Ready? HTML5 makes a developer’s job easier by specifying uniform APIs across browsers and suggest new and more powerful features Pre-written JavaScript designed to make coding library easier for devs
  • 18. Is Dojo HTML5 Ready? HTML5 makes a developer’s job easier by specifying uniform APIs across browsers and suggest new and more powerful features Pre-written JavaScript designed to make coding library easier for devs Pete is the president.
  • 19. The Top HTML5 Features
  • 20. The Top HTML5 Features 1. Semantic Elements 2.Forms 3.Canvas / SVG 4.WebGL / Canvas 3D 5.Web Workers 6.Geolocation 7.Storage / Offline 8.WebSockets 9.Web Audio API 10.CSS3 / WOFF 11.Audio 12.Video
  • 21. The Top HTML5 Features 1. Semantic Elements 2.Forms 3.Canvas / SVG 4.WebGL / Canvas 3D 5.Web Workers 6.Geolocation 7.Storage / Offline 8.WebSockets 9.Web Audio API 10.CSS3 / WOFF 11.Audio 12.Video
  • 23. Semantic Elements Don’t be anti- semantic!
  • 26. Semantic Elements Fun new tag names, like: section, header, footer, menu, etc.
  • 27. Semantic Elements Fun new tag names, like: section, header, footer, menu, etc. Allows for nested hgroups, multiple h1 tags in a page
  • 28. Semantic Elements Fun new tag names, like: section, header, footer, menu, etc. Allows for nested hgroups, multiple h1 tags in a page Crawlers have less trouble determining your markup intent
  • 29. Semantic Elements Fun new tag names, like: section, header, footer, menu, etc. Allows for nested hgroups, multiple h1 tags in a page Crawlers have less trouble determining your markup intent Pretty much the first thing people think of... since it’s actually HTML
  • 30. Semantic Elements Fun new tag names, like: section, header, footer, menu, etc. Allows for nested hgroups, multiple h1 tags in a page Crawlers have less trouble determining your markup intent Pretty much the first thing people think of... since it’s actually HTML
  • 31. Semantic Elements Fun new tag names, like: section, header, footer, menu, etc. Allows for nested hgroups, multiple h1 tags in a page Crawlers have less trouble determining your markup intent Pretty much the first thing people think of... since it’s actually HTML Surprisingly not very well adopted considering XForms was introduced in 2003.
  • 33. Semantic Elements Experiment: Dijit BorderContainer, in markup with HTML5 tags
  • 36. Semantic Elements Works in Firefox! Yay!
  • 37. Semantic Elements Works in Firefox! Yay! IE8... Not so much.
  • 38. Semantic Elements Works in Firefox! Yay! IE8... Not so much.
  • 40. Semantic Elements Experiment: Simple custom widget. Minimal HTML5 tags.
  • 41. Semantic Elements Experiment: Simple custom widget. Minimal HTML5 tags. Keepin’ it simple!
  • 42. Semantic Elements Experiment: Simple custom widget. Minimal HTML5 tags. Keepin’ it simple!
  • 43. Semantic Elements Experiment: Simple custom widget. Minimal HTML5 tags. Keepin’ it simple!
  • 46. D - Semantic Elements Pros:
  • 47. D - Semantic Elements Pros: Parser handles some parent tags in the page body
  • 48. D - Semantic Elements Pros: Parser handles some parent tags in the page body There *is* a ticket for this in Trac.
  • 49. D - Semantic Elements Pros: Parser handles some parent tags in the page body There *is* a ticket for this in Trac. Cons:
  • 50. D - Semantic Elements Pros: Parser handles some parent tags in the page body There *is* a ticket for this in Trac. Cons: Right now, it blows up.
  • 51. Forms
  • 52. Forms
  • 53. Forms
  • 54. Forms
  • 55. Forms Placeholder text, validation, input widgets, uploaders, etc.
  • 56. Forms Placeholder text, validation, input widgets, uploaders, etc. The second thing people think of for HTML5!
  • 57. Forms Placeholder text, validation, input widgets, uploaders, etc. The second thing people think of for HTML5!
  • 58. Forms Placeholder text, validation, input widgets, uploaders, etc. The second thing people think of for HTML5! Surprisingly not very well adopted considering XForms was introduced in 2003.
  • 59. Forms The following screenshots are an example of an HTML5 forms sub-set. http://www.miketaylr.com/code/html5-forms-ui-support.html
  • 60. Forms Note the difference between Mac and Windows... on the same browser.
  • 61. Forms Toggle th ese two sli des bac Note the difference between Mac k an d forth! and Windows... on the same browser.
  • 62. Forms Well, Firefox always seems to lag a little behind...
  • 63. Forms The mighty Chrome! Hasn’t done a lot here...
  • 65. Forms Hey! I thought IE9 was 99% HTML5 compliant! They said they were.
  • 66. Dijit Forms Dijit Forms Theme Tester in IE8 on Windows
  • 67. Dijit Forms Dijit Forms Theme Tester in Firefox on Mac OSX 10
  • 68. Dijit Forms Dijit Forms Theme Tester in Firefox on Mac OSX 10 Toggle th ese two sli des bac k an d for th!
  • 72. DojoX Uploader The Uploader successfully handles custom uploading cross browser with a standard, HTML5-friendly API.
  • 73. DojoX Uploader The Uploader successfully handles custom uploading cross browser with a standard, HTML5-friendly API. I wrote it! E ven supp orts Drag a n d Dro p!
  • 74. DojoX Uploader The Uploader successfully handles custom uploading cross browser with a standard, HTML5-friendly API. I wrote it! E ven supp orts Drag a n d Dro p!
  • 75. DojoX Uploader The Uploader successfully handles custom uploading cross browser with a standard, HTML5-friendly API. I wrote it! Too complicated. Dev users are asking the same questions over and over. Advanced is default. E ven supp orts Drag a n d Dro p!
  • 76. Forms
  • 78. Pros: A Forms
  • 79. Pros: A Forms Pretty much has has the HTML5 Forms spec covered for years
  • 80. Pros: A Forms Pretty much has has the HTML5 Forms spec covered for years Consistent look cross browser (better than HTML5!)
  • 81. Pros: A Forms Pretty much has has the HTML5 Forms spec covered for years Consistent look cross browser (better than HTML5!) dataset & data-* attributes: data-dojo-type
  • 82. Pros: A Forms Pretty much has has the HTML5 Forms spec covered for years Consistent look cross browser (better than HTML5!) dataset & data-* attributes: data-dojo-type Cons:
  • 83. Pros: A Forms Pretty much has has the HTML5 Forms spec covered for years Consistent look cross browser (better than HTML5!) dataset & data-* attributes: data-dojo-type Cons: Compliance may not be quite 100%
  • 84. Pros: A Forms Pretty much has has the HTML5 Forms spec covered for years Consistent look cross browser (better than HTML5!) dataset & data-* attributes: data-dojo-type Cons: Compliance may not be quite 100% No Getters and Setters - custom API
  • 89. Canvas / SVG Canvas / Raster: Grid of pixels
  • 90. Canvas / SVG Canvas / Raster: Grid of pixels SVG / Vector: Mathematical representation of a shape
  • 91. Canvas / SVG Canvas / Raster: Grid of pixels SVG / Vector: Mathematical representation of a shape
  • 92. Canvas / SVG Canvas / Raster: Grid of pixels SVG / Vector: Mathematical representation of a shape Not in old-ass™ IE!
  • 93. Canvas / SVG Canvas / Raster: Grid of pixels SVG / Vector: Mathematical representation of a shape Not in old-ass™ IE! Fun security restriction surprises!
  • 95. DojoX GFX meow!
  • 96. DojoX GFX dojox.gfx (GFX) is a cross-platform vector graphics API that loosely follows SVG as the underlying model. It detects the best graphics engine implementation for your browser and uses that to render the graphics. meow!
  • 97. DojoX GFX dojox.gfx (GFX) is a cross-platform vector graphics API that loosely follows SVG as the underlying model. It detects the best graphics engine implementation for your browser and uses that to render the graphics. meow! dojox.gfx Normalized API SVG VML Render Canvas Silverlight
  • 100. A Pros: + Canvas / SVG
  • 101. A Pros: + Canvas / SVG API works with Canvas, SVG, Silverlight and VML
  • 102. A Pros: + Canvas / SVG API works with Canvas, SVG, Silverlight and VML Cons:
  • 103. A Pros: + Canvas / SVG API works with Canvas, SVG, Silverlight and VML Cons: Close, but API is non-standard
  • 107. WebGL / Canvas 3D WebGL is a cross-platform API used to create 3D graphics in a browser. Because it runs in the HTML5 Canvas element, WebGL has full integration with all Document Object Model (DOM) interfaces.
  • 108. WebGL / Canvas 3D WebGL is a cross-platform API used to create 3D graphics in a browser. Because it runs in the HTML5 Canvas element, WebGL has full integration with all Document Object Model (DOM) interfaces. Ma de by the se guys!
  • 109. WebGL / Canvas 3D WebGL is a cross-platform API used to create 3D graphics in a browser. Because it runs in the HTML5 Canvas element, WebGL has full integration with all Document Object Model (DOM) interfaces. Because you can make stuff like this! Ma de by the se guys!
  • 110.
  • 111.
  • 112. Because the code looks like that!
  • 113. function init() { // Initialize var gl = initWebGL("example", "vshader", "fshader", [ "vNormal", "vColor", "vPosition"], [ 0, 0, 0, 1 ], 10000);   // Set some uniform variables for the shaders gl.uniform3f(gl.getUniformLocation(gl.program, "lightDir"), 0, 0, 1); gl.uniform1i(gl.getUniformLocation(gl.program, "sampler2d"), 0); Because the   // Create a box. On return 'gl' contains a 'box' property with // the BufferObjects containing the arrays for vertices, // normals, texture coords, and indices. gl.box = makeBox(gl); code looks like that!   // Load an image to use. Returns a WebGLTexture object spiritTexture = loadImageTexture(gl, "resources/spirit.jpg");   // Create some matrices to use later and save their locations in the shaders gl.mvMatrix = new CanvasMatrix4(); gl.u_normalMatrixLoc = gl.getUniformLocation(gl.program, "u_normalMatrix"); gl.normalMatrix = new CanvasMatrix4(); gl.u_modelViewProjMatrixLoc = gl.getUniformLocation(gl.program, "u_modelViewProjMatrix"); gl.mvpMatrix = new CanvasMatrix4();   // Enable all of the vertex attribute arrays. gl.enableVertexAttribArray(0); gl.enableVertexAttribArray(1); gl.enableVertexAttribArray(2);   // Set up all the vertex attributes for vertices, normals and texCoords gl.bindBuffer(gl.ARRAY_BUFFER, gl.box.vertexObject); gl.vertexAttribPointer(2, 3, gl.FLOAT, false, 0, 0);   gl.bindBuffer(gl.ARRAY_BUFFER, gl.box.normalObject); gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0);   gl.bindBuffer(gl.ARRAY_BUFFER, gl.box.texCoordObject); gl.vertexAttribPointer(1, 2, gl.FLOAT, false, 0, 0);   // Bind the index array gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, gl.box.indexObject);   return gl; }
  • 115. Pa ss WebGL / Canvas 3D
  • 116. Pa ss WebGL / Canvas 3D Pros:
  • 117. Pa ss WebGL / Canvas 3D Pros: Existing libraries: C3DL, CopperLicht , EnergizeGL, GammaJS, GLGE, GTW, O3D, OSG.JS, SceneJS, SpiderGL, TDL, Three.js and X3DOM
  • 118. Pa ss WebGL / Canvas 3D Pros: Existing libraries: C3DL, CopperLicht , EnergizeGL, GammaJS, GLGE, GTW, O3D, OSG.JS, SceneJS, SpiderGL, TDL, Three.js and X3DOM Cons:
  • 119. Pa ss WebGL / Canvas 3D Pros: Existing libraries: C3DL, CopperLicht , EnergizeGL, GammaJS, GLGE, GTW, O3D, OSG.JS, SceneJS, SpiderGL, TDL, Three.js and X3DOM Cons: There is a DojoX 3Dgfx, but it’s not WebGL.
  • 124. Web Workers Multithreaded JavaScript?? What’s not cool about that!
  • 125. Web Workers Multithreaded JavaScript?? What’s not cool about that!
  • 126. Web Workers Multithreaded JavaScript?? What’s not cool about that! Damn you old-ass™ IE!! Workers can’t access the DOM. Can you picture some devs trying to use threads? Yikes!
  • 129. Web Workers Possibilities: Prefetching and/or caching data for later use Code syntax highlighting or other real-time text formatting http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
  • 130. Web Workers Possibilities: Prefetching and/or caching data for later use Code syntax highlighting or other real-time text formatting Spell checker http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
  • 131. Web Workers Possibilities: Prefetching and/or caching data for later use Code syntax highlighting or other real-time text formatting Spell checker Analyzing video or audio data http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
  • 132. Web Workers Possibilities: Prefetching and/or caching data for later use Code syntax highlighting or other real-time text formatting Spell checker Analyzing video or audio data Background I/O or polling of webservices http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
  • 133. Web Workers Possibilities: Prefetching and/or caching data for later use Code syntax highlighting or other real-time text formatting Spell checker Analyzing video or audio data Background I/O or polling of webservices Processing large arrays or humungous JSON responses http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
  • 134. Web Workers Possibilities: Prefetching and/or caching data for later use Code syntax highlighting or other real-time text formatting Spell checker Analyzing video or audio data Background I/O or polling of webservices Processing large arrays or humungous JSON responses Image filtering in <canvas> http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
  • 135. Web Workers Possibilities: Prefetching and/or caching data for later use Code syntax highlighting or other real-time text formatting Spell checker Analyzing video or audio data Background I/O or polling of webservices Processing large arrays or humungous JSON responses Image filtering in <canvas> Updating many rows of a local web database http://www.html5rocks.com/en/tutorials/workers/basics/#toc-enviornment-subworkers
  • 138. Web Workers pros: Could be used with gfx3d, Data Stores, Charts, THE GRID, and crypto (which does utilize Gears Workers)
  • 139. Web Workers pros: Could be used with gfx3d, Data Stores, Charts, THE GRID, and crypto (which does utilize Gears Workers) IE10 will use messaging between workers - interesting possibilities
  • 140. Web Workers pros: Could be used with gfx3d, Data Stores, Charts, THE GRID, and crypto (which does utilize Gears Workers) IE10 will use messaging between workers - interesting possibilities Safari has child Workers
  • 141. Web Workers pros: Could be used with gfx3d, Data Stores, Charts, THE GRID, and crypto (which does utilize Gears Workers) IE10 will use messaging between workers - interesting possibilities Safari has child Workers cons:
  • 142. Web Workers pros: Could be used with gfx3d, Data Stores, Charts, THE GRID, and crypto (which does utilize Gears Workers) IE10 will use messaging between workers - interesting possibilities Safari has child Workers cons: Modern JavaScript performance has minimized the need for Workers
  • 143. Web Workers pros: Could be used with gfx3d, Data Stores, Charts, THE GRID, and crypto (which does utilize Gears Workers) IE10 will use messaging between workers - interesting possibilities Safari has child Workers cons: Modern JavaScript performance has minimized the need for Workers JS calc is rarely the bottleneck
  • 144. Web Workers pros: Could be used with gfx3d, Data Stores, Charts, THE GRID, and crypto (which does utilize Gears Workers) IE10 will use messaging between workers - interesting possibilities Safari has child Workers cons: Modern JavaScript performance has minimized the need for Workers JS calc is rarely the bottleneck Most devs who understand the need for Workers wouldn't necessarily need a DojoX class to help them
  • 145. Web Workers pros: Could be used with gfx3d, Data Stores, Charts, THE GRID, and crypto (which does utilize Gears Workers) IE10 will use messaging between workers - interesting possibilities Safari has child Workers cons: Modern JavaScript performance has minimized the need for Workers JS calc is rarely the bottleneck Most devs who understand the need for Workers wouldn't necessarily need a DojoX class to help them IE9 and older would use timeouts - not very effective deprecation. Most likely you would want to disable the feature.
  • 146. Web Workers pros: Could be used with gfx3d, Data Stores, Charts, THE GRID, and crypto (which does utilize Gears Workers) IE10 will use messaging between workers - interesting possibilities Safari has child Workers cons: Modern JavaScript performance has minimized the need for Workers JS calc is rarely the bottleneck Most devs who understand the need for Workers wouldn't necessarily need a DojoX class to help them IE9 and older would use timeouts - not very effective deprecation. Most likely you would want to disable the feature. The API isn’t hard! You don’t need Dojo!
  • 153. Geolocation It tells you where you are.
  • 154. Geolocation It tells you where you are. The API is: navigator.geolocation.getCurrentPosition
  • 155. Geolocation It tells you where you are. The API is: navigator.geolocation.getCurrentPosition
  • 156. Geolocation It tells you where you are. The API is: navigator.geolocation.getCurrentPosition It has to ask your permission to tell you where you are. Sometimes it works. It returns a longitude and latitude.
  • 157. Geolocation It tells you where you are. The API is: navigator.geolocation.getCurrentPosition It has to ask your permission to tell you where you are. Sometimes it works. It returns a longitude and latitude. This is where we are! 38 ° 53.9249' Who o ho o! -77 ° 2.2610'
  • 160. Geolocation Pros: Could be used with dojox.geo
  • 161. Geolocation Pros: Could be used with dojox.geo Cons:
  • 162. Geolocation Pros: Could be used with dojox.geo Cons: So simple, Dojo is not needed.
  • 163. Geolocation Pros: Could be used with dojox.geo Cons: So simple, Dojo is not needed. Third party workarounds may have license issues.
  • 164. Pa ss Geolocation Pros: Could be used with dojox.geo Cons: So simple, Dojo is not needed. Third party workarounds may have license issues.
  • 165. Storage & Offline
  • 166. Storage & Offline
  • 168. Offline You can download all the necessary files for a web app and use it when you’re not connected.
  • 169. Offline You can download all the necessary files for a web app and use it when you’re not connected. Most people are always connected, and most devs assume their audience is always connected. Building an app so that someone can use it on an airplane is a niche case
  • 170. Offline You can download all the necessary files for a web app and use it when you’re not connected. I do! Most people are always connected, and most devs assume their audience is always connected. Building an app so that someone can use it on an airplane is a niche case
  • 172. Storage Some apps simply need more storage space than a 4k cookie
  • 173. Storage Some apps simply need more storage space than a 4k cookie Doesn’t get sent with, and overload, server requests, like cookies
  • 174. Storage Some apps simply need more storage space than a 4k cookie Doesn’t get sent with, and overload, server requests, like cookies It’s just a big cookie - with odd security
  • 175. Storage / Offline http://diveintohtml5.org
  • 176. Storage / Offline Pros: http://diveintohtml5.org
  • 177. Storage / Offline Pros: DojoX RPC includes offline capabilities http://diveintohtml5.org
  • 178. Storage / Offline Pros: DojoX RPC includes offline capabilities DojoX Storage gets kudos in Mark Pilgrim’s Dive Into HTML5, which handles the very complex disparity between APIs. http://diveintohtml5.org
  • 179. Storage / Offline Pros: DojoX RPC includes offline capabilities DojoX Storage gets kudos in Mark Pilgrim’s Dive Into HTML5, which handles the very complex disparity between APIs. Cons: http://diveintohtml5.org
  • 180. Storage / Offline Pros: DojoX RPC includes offline capabilities DojoX Storage gets kudos in Mark Pilgrim’s Dive Into HTML5, which handles the very complex disparity between APIs. Cons: Flash solutions are not ready until well after page load. http://diveintohtml5.org
  • 181. Storage / Offline Pros: DojoX RPC includes offline capabilities DojoX Storage gets kudos in Mark Pilgrim’s Dive Into HTML5, which handles the very complex disparity between APIs. Cons: Flash solutions are not ready until well after page load. IE9 doesn't have Application Cache (offline). http://diveintohtml5.org
  • 187. Web Sockets The HTML 5 WebSocket specification defines a single-socket full-duplex (or bi-directional) connection for pushing and pulling information between the browser and server.
  • 188. Web Sockets The HTML 5 WebSocket specification defines a single-socket full-duplex (or bi-directional) connection for pushing and pulling information between the browser and server. Stop! You’re turning me on!
  • 190. Web Sockets WebSockets are not in HTML5 due to security disagreements.
  • 191. Web Sockets WebSockets are not in HTML5 due to security disagreements.
  • 194. A Web Sockets Pros:
  • 195. A Web Sockets Pros: CometD has been around for years and WebSockets didn't even make the HTML5 final cut. Nuff said!
  • 196. A Web Sockets Pros: CometD has been around for years and WebSockets didn't even make the HTML5 final cut. Nuff said! Cons:
  • 197. A Web Sockets Pros: CometD has been around for years and WebSockets didn't even make the HTML5 final cut. Nuff said! Cons: None! It rocks!
  • 201. Web Audio API Generate sound effects and tones, even voice simulations. Modify sound files.
  • 202. Web Audio API Generate sound effects and tones, even voice simulations. Modify sound files. Chrome and Firefox have the only implementations.
  • 203. Web Audio API Generate sound effects and tones, even voice simulations. Modify sound files. Chrome and Firefox have the only implementations. Chrome and Firefox have different APIs.
  • 205. I (Inco mplete) Web Audio API
  • 206. I (Inco mplete) Web Audio API Pros:
  • 207. I (Inco Web Audio API mplete) Pros: Flash has the capability, but it’s API is even more raw than the W3C Audio Incubator Group spec.
  • 208. I (Inco Web Audio API mplete) Pros: Flash has the capability, but it’s API is even more raw than the W3C Audio Incubator Group spec. Cons:
  • 209. I (Inco Web Audio API mplete) Pros: Flash has the capability, but it’s API is even more raw than the W3C Audio Incubator Group spec. Cons: Would be a difficult implementation with few real uses outside of gaming.
  • 210. CSS3
  • 211. CSS3
  • 212. CSS3
  • 213. CSS3 Who doesn’t know what CSS3 is? DUH!! It’s HAWT
  • 214. CSS3 Who doesn’t know what CSS3 is? DUH!! It’s HAWT Browser vendors moving WAY too slow on some of this.
  • 215. CSS3 Who doesn’t know what CSS3 is? DUH!! It’s HAWT Browser vendors moving WAY too slow on some of this. How long do you need to agree on how to draw a gradient?
  • 216. CSS3 Who doesn’t know what CSS3 is? DUH!! It’s HAWT Browser vendors moving WAY too slow on some of this. How long do you need to agree on how to draw a gradient? All those -moz, -webkit, etc prefixes are really bulking up and polluting my style sheets
  • 217. CSS3
  • 219. CSS3 Pros: Less CSS helps with some problems
  • 220. CSS3 Pros: Less CSS helps with some problems dojox.css3 transforms rock (Nicola Rizzo)
  • 221. CSS3 Pros: Less CSS helps with some problems dojox.css3 transforms rock (Nicola Rizzo) has() can theoretically help with prefix trouble
  • 222. CSS3 Pros: Less CSS helps with some problems dojox.css3 transforms rock (Nicola Rizzo) has() can theoretically help with prefix trouble Cons:
  • 223. CSS3 Pros: Less CSS helps with some problems dojox.css3 transforms rock (Nicola Rizzo) has() can theoretically help with prefix trouble Cons: has() not helping with prefix trouble (where is it?)
  • 224. CSS3 Pros: Less CSS helps with some problems dojox.css3 transforms rock (Nicola Rizzo) has() can theoretically help with prefix trouble Cons: has() not helping with prefix trouble (where is it?) Old-ass IE™ probably impeded proper CSS3 progress
  • 225. CSS3
  • 230. Audio Tag Generate sound effects and tones, even voice simulations. Modify sound files.
  • 231. Audio Tag Generate sound effects and tones, even voice simulations. Modify sound files. Audio is so 90s! Everyone wants VIDEO now!
  • 232. Audio Tag Generate sound effects and tones, even voice simulations. Modify sound files. Audio is so 90s! Everyone wants VIDEO now! Firefox doesn’t even support MP3 (but they support WAV files... WTF??)
  • 235. Audio Tag Pros: dojox.av.FLAudio plays MP3 files
  • 236. Audio Tag Pros: dojox.av.FLAudio plays MP3 files Cons:
  • 237. Audio Tag Pros: dojox.av.FLAudio plays MP3 files Cons: ...but it’s no where near HTML5 compliant!
  • 238. F Audio Tag With the possibility of raising the gr if implemente 1.8! a de d in Pros: dojox.av.FLAudio plays MP3 files Cons: ...but it’s no where near HTML5 compliant!
  • 242. Video Tag Video is so hot, it’s insane.
  • 243. Video Tag Video is so hot, it’s insane. Remember ? I work here
  • 244. Video Tag Video is so hot, it’s insane. Open source (free) players are in large demand. Remember ? I work here
  • 245. Video Tag Video is so hot, it’s insane. Open source (free) players are in large demand. Firefox doesn’t play MP4 files. Remember ? I work here
  • 246. Video Tag Video is so hot, it’s insane. Open source (free) players are in large demand. Firefox doesn’t play MP4 files. Who loves OGG? Halla! Remember ? I work here
  • 247. Video Tag Video is so hot, it’s insane. Open source (free) players are in large demand. Firefox doesn’t play MP4 files. Who loves OGG? Halla! Mozilla jacked with the fullscreen API crying “SECURITY!” Remember ? I work here
  • 248. Video
  • 249. Video
  • 251. Video In progress! A “super” video player that should handle most formats in most browsers
  • 252. Video In progress! A “super” video player that should handle most formats in most browsers dojox.av.Video Normalized API HTML5 Silverlight Render Quicktime Flash
  • 255. Video Tag Pros: I’m working on it, so it will be AWESOME!
  • 256. Video Tag Pros: I’m working on it, so it will be AWESOME! Cons:
  • 257. Video Tag Pros: I’m working on it, so it will be AWESOME! Cons: (to be filled out when I think of something)
  • 258. N GVideo Tag Pros: I’m working on it, so it will be AWESOME! Cons: (to be filled out when I think of something)
  • 259. N GVideo Tag “No gra de”, not “no go o d.” Pros: I’m working on it, so it will be AWESOME! Cons: (to be filled out when I think of something)
  • 261. Final Grade B +
  • 262. Final Word Our most precious commodity is... developer brain cells. - Kris Zyp

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n
  137. \n
  138. \n
  139. \n
  140. \n
  141. \n
  142. \n
  143. \n
  144. \n
  145. \n
  146. \n
  147. \n
  148. \n
  149. \n
  150. \n
  151. \n
  152. \n
  153. \n
  154. \n
  155. \n
  156. \n
  157. \n
  158. \n
  159. \n
  160. \n
  161. \n
  162. \n
  163. \n
  164. \n
  165. \n
  166. \n
  167. \n
  168. \n
  169. \n
  170. \n
  171. \n
  172. \n
  173. \n
  174. \n
  175. \n
  176. \n
  177. \n
  178. \n
  179. \n
  180. \n
  181. \n
  182. \n
  183. \n
  184. \n
  185. \n
  186. \n
  187. \n
  188. \n
  189. \n
  190. \n
  191. \n
  192. \n
  193. \n
  194. \n
  195. \n
  196. \n
  197. \n
  198. \n
  199. \n
  200. \n
  201. \n
  202. \n
  203. \n
  204. \n
  205. \n
  206. \n
  207. \n
  208. \n
  209. \n
  210. \n
  211. \n
  212. \n
  213. \n
  214. \n
  215. \n
  216. \n
  217. \n
  218. \n
  219. \n
  220. \n
  221. \n
  222. \n
  223. \n
  224. \n
  225. \n
  226. \n
  227. \n
  228. \n
  229. \n
  230. \n
  231. \n
  232. \n
  233. \n
  234. \n
  235. \n
  236. \n
  237. \n
  238. \n
  239. \n
  240. \n
  241. \n
  242. \n
  243. \n
  244. \n
  245. \n
  246. \n
  247. \n
  248. \n
  249. \n
  250. \n
  251. \n
  252. \n
  253. \n
  254. \n
  255. \n
  256. \n
  257. \n
  258. \n
  259. \n
  260. \n
  261. \n
  262. \n
  263. \n
  264. \n
  265. \n
  266. \n
  267. \n
  268. \n
  269. \n
  270. \n
  271. \n
  272. \n
  273. \n
  274. \n
  275. \n
  276. \n
  277. \n
  278. \n
  279. \n
  280. \n
  281. \n
  282. \n
  283. \n
  284. \n
  285. \n
  286. \n
  287. \n