Your SlideShare is downloading. ×
DevChatt: The Wonderful World Of Html5
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

DevChatt: The Wonderful World Of Html5


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide
  • © 2010 Cameron Kilgore. Redistribution permitted under CC-BY-ND 3.0. Explain that links and other minor details will be tweeted along with each slide at [twitter]The Wonderful World of HTML5, let’s do this![/twitter]
  • We won’t be discussing CSS3 here.
  • All demos will be displayed in Google Chrome, because it is the shit. YMMV if you use Firefox or Safari.
  • All of these things could take HOURS to demonstrate, and I didn’t have the time go over these.
  • Show Mozilla and Scratchpad demos.
  • Both can be used for different purposes.
  • Show audio demo. Music provided by Kevin MacLeod, and is licensed CC-BY 3.0.
  • Show video demo. Video is “Hot Cakes” by El Ten Eleven, and is © El Ten Eleven and Bar/None Records used with permission. I also want to point out that Safari passes down HTML5 Video to the OS for processing, so any codec can be supported if QuickTime/QTKit supports it (not so on the iPhone).
  • Firefox is the only browsers supporting the W3C Geolocation classes and methods. Opera supports it in a special build. Chrome supports it in the Nightlies. The current release of Chrome supports it only through Gears, so writing code that will interface strictly with Gears. There must be a simpler way…
  • Due to the lack of support across all browsers, in addition to time restrictions (sob story about laptop here), we will only be showing a demo of SQL Storage.
  • Due to time restrictions, we will not be showing a written demo for Web Workers. But the reference I’ve linked to should get you on your way. (Show HTML5 Demos demo of Web Workers) (
  • Dirac is, IMO, the most likely as it has the backing of a large organization (The BBC), but until the W3C breaks its silence, I don’t think we should be discussing what codecs to use.
  • © 2010 Cameron Kilgore. Redistribution permitted under CC-BY-ND 3.0. [twitter]Thanks again for showing up, I hope you’ve enjoyed this![/twitter]
  • Also mention a continuing series on HTML5 to be continued at the Chattanooga PHP Developers meetings.
  • Transcript

    • 1. The Wonderful World of HTML5
      Using and embracing the future of the web
    • 2. What in the world is HTML5?
      The inevitable successor to HTML4 and XHTML1
      XHTML2 no longer the future, or alive for that matter
      HTML over HTML as XML (XHTML)
      Does not mean it’s SGML (HTML5 requires an XML Mime-type)
      But you can still choose to write XHTML in HTML5 (XHTML5)
      HTML made for web applications
      Javascript APIs that implement new services
      Ability to edit data online and offline
      Many things we needed to use Javascript for, we no longer need to
      New tags that improve semantics and expand content
      Less dependent on plugins
      HTML5 is set to become the norm in a few years
      We can use HTML5 today!
      Even in IE6-8 with a bit of Javascript & graceful degradation
    • 3. The Same Old Story
      We already know a bit about the most popular tags
      We’re going to demo these tags
      But that’s just the tipping point…
    • 4. Did you know that HTML5…
      Allows you to insert inline SVG graphics?
      Insert in MathML math equations?
      Points out where page elements are?
      We can create datasets?
      data-fullpath in tag elements
      Easily implement a plugin component?
      Yes, it is now part of the standard
      Add in date fields with calendars?
    • 5. Wait, there’s more!
      Validate form content without JavaScript?
      Run applications offline?
      Store data in two different databases?
      Make any element draggable?
      And much more…
    • 6. Every Direction is North
      Every tag you could ever want
    • 7. The Three Amigos
      Wait, didn’t you just give a speech about these tags at a PHP User Group meeting?
      All Demos:
    • 8. Demonstration Code
      All the demos henceforth can be viewed here
    • 9. <canvas>
      An immediate-mode bitmap element we can draw to
      tl;dr it’s a bitmap element we can alter using Javascript
      Is not based on vector graphics
      Lives in harmony with SVG
      Perfect for fast rendering
      We can even render video in it!
      Currently exists in the form of a 2D Context – that is, we can only draw 2D shapes
      3D context proposed (WebGL)
      Can be partially implemented in Javascript for Internet Explorer
    • 10. Canvas vs. SVG
      Renders very quickly
      2D Context (with 3D context proposed)
      Has no DOM
      Not yet accessible
      Interfaced strictly using Javascript
      This includes animations
      Does not render as fast
      No real 3D context unless you want to get hacky
      Has a DOM
      Can be interfaced with using Javascript and SMIL
      Animated using both
    • 11. <audio>
      An easier way to embed audio into a page
      Audio is just easier now, no need for any kind of plugin
      We can interface with this tag using Javascript
      Codecs used for audio
      PCM Wave (WAV)
      Our Demo is a jukebox with music
      Uses OggVorbis
      The music is also free to download!
    • 12. <video>
      Video in a Flash (without that other thing)
      Can be interfaced with using Javascript
      And <canvas>
      And SVG
      No baseline codec for <video>
      Two generally accepted codecs
      H.264 AVC
      Our Demo uses H.264 and Ogg
      Safari and Chrome only
    • 13. The Working Group APIs
      This is where the magic happens
    • 14. Geolocation
      Not to be used for stalking
      Spec requires all instances of geolocation to be initiated by the user
      Agnostic to browser methods used to determine location
      3G/Wifi triangulation
      IP Traceroute
      Opt-in location
      Not just limited to W3C Implementation
      Blackberry, Palm, Gears, et al have their own Geolocation classes and methods
      Lack of ubiquity between these methods
    • 15. Geolocation Continued
      Our demo uses the Geo.js library
      Provides abstraction between all the Geolocation methods at our disposal
      Gears is typically more accurate at providing location
      Google has been collecting location data using Street View cars
    • 16. Using Geolocation (W3C)
      To poll for location one-time
      To continuously poll for location
      Demonstration function
      navigator.geolocation.getCurrentPosition(function(position) {  
        do_something(position.coords.latitude, position.coords.longitude);  
    • 17. Using geo.js
      To poll for location one-time
      if(geo_position_js.init()){   geo_position_js.getCurrentPosition(success_callback,error_callback);}else{   alert("Functionality not available");}
      To continuously poll for location
      if(geo_position_js.init()){   geo_position_js.watchPosition(success_callback,error_callback);}else{   alert("Functionality not available");}
    • 18. Web Storage
      Considerably better than having to use a lot of cookies
      We can store using two distinct database methods
      Combine with offline support for epic win
    • 19. Key-Value Web Storage
      Quote @chrisdavidmills: “Cookies on Crack”
      A better way to store persistence data
      Works offline
      Cookies can be moved back to being just session data storage
      Easy to add and remove data from
      They even work in Internet Explorer 8!
    • 20. K/V Web Storage Continued
      Two distinct storage classes
      Global storage instance that lasts until the end of the session
      Storage isntance that lasts until either cleared by the browser, the DOM, or the user
      For now we’ll demonstrate localStorage
      Methods to access sessionStorage are the same
    • 21. Using K/V Web Storage
      Store a value
      value = localStorage.setItem(name);
      Recover a value
      value = localStorage.getItem(name);
      Remove a value
      Clear the entire database
    • 22. SQL Web Storage
      Meant for use in Offline web applications
      Based on statements in HTML5 WG Drafts
      Currently W3C Spec calls for featureset “similar” to Sqlite 3.6.19
      Spec is frozen because not all user-agents are expected to use Sqlite nor does the W3C give any baseline of what version of SQL to support
    • 23. Web Workers
      We can use Web Workers to run JavaScript in OS threads
      Abstracting intense algorithms or functions to web workers can significantly improve web app function and decrease risk of failure
      Workers can’t interface with the DOM, so they should be treated like software libraries
    • 24. The Relative Future of HTML5
      Codec and patent trolls, and that company that makes Photoshop
    • 25. The reality of licensing fees
      Thankfully, the MPEG-LA has chosen to extend its current licensing rates on H.264 AVC until 2018 (???)
      Free for the first 100,000 views
      $.35 USD per individual view from content provider after 100,000 views
      Still, no patent-freecodecs has been approved by the W3C
      Nokia and Apple lobbied OggVorbis/Theora out over fears of submarine patents
      Current proposals suggest using older ITU-T standards or Dirac
      Google acquired On2 Media, the supplier of VP6 & VP8
      MP3 will be completely patent-free in 2017
      That is, if submarine patents don’t surface
    • 26. An Adobe isn’t a Glass House
      Much of HTML5 is split into Working Groups
      Canvas (or Context 2D) is a working group that has gained a lot of traction
      Adobe has put this working group on hold over claims revealed to be milestone related
      If Adobe is really doing this to slow down Context 2D while they keep selling Flash, they aren’t being upfront about it
    • 27. Any Questions?
    • 28. The code is yours, take it
      Get the demo code used here
      git clone git://
      Absorb Everything HTML5
      Has a series of podcasts covering HTML5, notably web storage
      Search #HTML5 on Twitter
      Get this slideshow keep pressing F5
      Make My Life Difficult
      @ghostfreeman on Twitter