SlideShare une entreprise Scribd logo
1  sur  121
HTML5
AIGA IN CONTROL ORLANDO 2010




CHRISTOPHER SCHMITT
h t t p : / / t w i t t e r. c o m / @ t e l e j e c t
WHO AM I?
• Someone    who doesn’t like to get bored.

 • (Nerd.)

• Web   designer since ’93

• Author   of ~10 books including CSS Cookbook, 3rd Edition*

• Member    of the Web Standards Project

 • Adobe TF    Co-Lead & EduTF member

 • Co-author    of InterACT with Web Standards (Peachpit, due Spring)
WHO ARE YOU?
CASTING OUT XHTML
THINGS ARE GOOD
BETWEEN US, XHTML,
RIGHT?
I MEAN. WE GET ALONG WELL.
AND WE BOTH LIKE STUFF.
“THE ATTEMPT TO GET THE
WORLD TO SWITCH TO XML,
    INCLUDING QUOTES
AROUND ATTRIBUTE VALUES
AND SLASHES IN EMPTY TAGS
  AND NAMESPACES ALL AT
   ONCE DIDN'T WORK.”
   -SIR TIM BERNERS-LEE
5            %




http://dev.opera.com/articles/view/mama-markup-validation-report/
BLUEPRINTS VS REALITY
“TAKE CARE
  OF THE LUXURIES AND
THE NECESSITIES WILL TAKE
 CARE OF THEMSELVES.”
 -FRANK LLOYD WRIGHT
RELEARNING SYNTAX
• Attribute    quotes “not really” required

• UPPERCASE        and lowercase HTML elements allowed

  • So   is CaMeLcAse typing.

• No   more need to do self-closing tags like <IMG /> or <BR />

• Also, no    more minimalization. So, this is okay: <dl compact>

• Basically, everything    that was bad from HTML4 in XHTML5 is good again.

  • Full   circle, baby!
STARTING OUT
BASIC HTML5 LAYOUT
DOCTYPE
HTML 4.01 Transitional DTD:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">

XHTML 1.0 Transitional DTD:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <title>DOWNTOWN ORLANDO RESTAURANTS</title>
</head>
<body>
 <h1>....</h1>
 <p>...</p>
 </body>
</html>
EXERCISE
• Goto HTML validator at
 http://validator.w3.org/#validate_by_input

• Then   type the following HTML (below) and hit validate:

               <!DOCTYPE html>
               <title>Small HTML5</title>
               <p>Hello world</p>
BUILDING WITH
    HTML5
DIV ID=”header”
               DIV ID=”nav”


DIV ID=”section”




                          DIV ID=”sidecolumn”
DIV ID=”article”




             DIV ID=”footer”
<HEADER>
             <NAV>


<SECTION>




                       <ASIDE>
<ARTICLE>




            <FOOTER>
<body>
 <header>
 <h1>Heading </h1>
 </header>
 <nav>
 <h3>Site Navigation</h3>
 <ul>...</ul>
 </nav>
 <section>
  <article>
 <h3>Weblog Entry</h3>
  </article>
 </section>
 <aside>
  <p>You are reading "Chocolate Rain", an entry posted on <time
datetime="2009-03-05">5 March, 2009</time>, to the <a href="#">Misty
collection</a>. See other posts in <a href="#">this collection</a>.</p>
 </aside>
 <footer>
 <p>...</p>
 </footer>
</body>
<script type="text/javascript">
document.createElement('header');
document.createElement('nav');
document.createElement('section');
document.createElement('article');
document.createElement('aside');
document.createElement('footer');
</script>




            http://ejohn.org/blog/html5-shiv/
BASIC CSS FORMATTING
HEADER
           NAV


SECTION




                   ASIDE
ARTICLE




          FOOTER
LESSONS LEARNED
• New   HTML5 elements are treated as inline elements.

  • Need    to use CSS declaration “display:block”

• IE6and IE7 need to be nudged to recognize HTML elements in order
 to have CSS be applied

  • document.createElement(‘html5element’);

  • Dean    Edwards IE7 script doesn’t help

  • There   isn’t a jQuery plugin to make it “easier”
LESSONS LEARNED


• For   Firefox 2 and Camino (Gecko 1.9)

 • HTML5       pages need to be served as XHTML

 • Content-Type: application/xhtml+xml;

 • ...Let   the irony set for a bit.
<?php
if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox/2.0') > -1)
{
header("Content-Type: application/xhtml+xml; charset=UTF-8");
echo'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//
EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">';
}
else {
echo '<!DOCTYPE html><html>';
}?>



                          http://tr.im/h0Rj
NEW HTML5 ELEMENTS

• article        • embed          • nest

• aside          • event-source   • output

• audio          • figure          • progress

• canvas         • footer         • source

• command        • header         • time

• datagrid       • mark           • video

• datalist       • meter

• datatemplate   • nav
HTML5 AUDIO
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Basic HTML5 Web Document Structure</title>

 </head>

 <body>
<h1>Video Example</h1>
<audio src="html5test.ogg" autoplay controls>

 <a href="html5test.ogg">Download audio</a>
</audio>

 </body>
</html>
HTML5 AUDIO

• AUDIO  element attributes are SRC, AUTOBUFFER, AUTOPLAY,
  LOOP, CONTROLS

• If   you don’t have CONTROL, player becomes transparent
HTML5 AUDIO SUPPORT

             FF3.5+   S4+   Ch3+   Op10+


Ogg Vorbis     Y             Y


  MP3                 Y      Y


  WAV          Y      Y              Y
SUPPORTING AUDIO

<audio controls autobuffer>
 <source src="html5audio.mp3" />
 <source src="html5audio.ogg" />
 <!-- include Adobe Flash player EMBED and OBJECT code
here -->
</audio>
SUPPORTING AUDIO

• Ifyou do insert audio, setting the file to autoplay is not
  recommended, as it interferes with the experience for web surfers
  using screen readers.

• Don’t   use WAV file type.

   • Better   to ship a compact disc to the user instead.
HTML5 VIDEO
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Basic HTML5 Web Document Structure</title>

 </head>

 <body>
<h1>Video Example</h1>
<object width="425" height="344"><param name="movie"
value="http://www.youtube.com/v/
4GuKSqAg5xI&hl=en&fs=1"></param><param
name="allowFullScreen" value="true"></param><param
name="allowscriptaccess" value="always"></param><embed
src="http://www.youtube.com/v/4GuKSqAg5xI&hl=en&fs=1"
type="application/x-shockwave-flash" allowscriptaccess="always"
allowfullscreen="true" width="425" height="344"></embed></
object>

 </body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Basic HTML5 Web Document Structure</title>

 </head>

 <body>
<h1>Video Example</h1>
<video src="html5test.ogg"

 width="320" height="240" controls

 poster="html5testvideoposter.jpg">

 <a href="html5testvideo.ogg">Download movie</a>
</video>

 </body>
</html>
VIDEO DEMO



• Play   the demo.
HTML5 VIDEO

• WIDTH   and HEIGHT should be required, IMO, but movie plays
  anyway based on the values in the video file itself.

• Video formats may have their own posterframe. The browser should
  use that by default unless overridden by valid POSTER attribute value.

• Text
     can be included within VIDEO element to allow user to
  download video if their browser doesn’t support.

• If   you want to give users control, use CONTROL attribute.
HTML5 VIDEO


• Videocan start automatically if using the AUTOPLAY=”1” attribute
 and value.

• Spec   provides for LOOP, AUTOBUFFER which also take a value of O
 or 1.

• Codecs   support...
HTML5 VIDEO
   “It would be helpful for interoperability if all browsers could
support the same codecs. However, there are no known codecs
    that satisfy all the current players: we need a codec that is
known to not require per-unit or per-distributor licensing, that is
compatible with the open source development model, that is of
   sufficient quality as to be usable, and that is not an additional
   submarine patent risk for large companies. This is an ongoing
 issue and this section will be updated once more information is
                               available.”
- http://www.whatwg.org/specs/web-apps/current-work/#video-
                and-audio-codecs-for-video-elements
CODECS

• Ogg    (or “Vorbis”)

 • No     need to worry about patents

• H.264

 • Created     by the MPEG group

 • If   you have blu-ray disc player, you are using it
CODEC SUPPORT

         FF3.5+   S   Ch   IE



Ogg        Y          Y



H.264             Y   Y
LESSONS LEARNED
• Used VLC  (http://www.videolan.org/vlc/) to encode common movie
 files types to OGG

• People   really, really, really want this to work,

 • However, feel    like to support every file format will take a lot of time

 • If
    you are hot to trot for HTML5 Video, like, right now, check out
   Mark Pilgrim’s tutorial:
   http://diveintohtml5.org/video.html

 • Good   primer:
   http://dev.opera.com/articles/view/introduction-html5-video/
HTML5 &
MICROFORMATS
REPLACING ABBR

• <ABBR>     element is used by screenreaders to expand abbreviations
 like “lbs” or “NCAAP”

• However unintended consequences occurred trying to workaround
 browser bugs for other HTML elements

• What   happens when a screenreaders text like this:

 • “Let’sgo to <abbr class="geo"
  title="30.300474;-97.747247">Austin, TX</abbr>”

http://www.brucelawson.co.uk/2009/microformats-accessibility-html-5-again/
<div class="vevent">
 <a class="url" href="http://www.web2con.com/">http://
www.web2con.com</a>
 <span class="summary">Web 2.0 Conference</span>:
 <abbr class="dtstart"
title="2007-10-05">October 5</abbr>-
 <abbr class="dtend"
title="2007-10-20">19</abbr>,
at the <span class="location">Argent Hotel, San Francisco,
CA</span>
</div>
<div class="vevent">
  <a class="url" href="http://www.web2con.com/">http://
 www.web2con.com</a>
  <span class="summary">Web 2.0 Conference</span>:
  <time class="dtstart"
 datetime="2007-10-05">October 5</time>-
  <time class="dtend"
 datetime="2007-10-20">19</time>,
 at the <span class="location">Argent Hotel, San Francisco,
 CA</span>
 </div>


http://www.brucelawson.co.uk/2009/microformats-accessibility-html-5-again/
POSTSCRIPT

• <ABBR>    issue has ben resolved with new pattern (dropping <ABBR>
 altogether):
 http://microformats.org/wiki/value-class-pattern

 • <p>Let’sgo to <span class="geo">51° 30' 48.45", -0° 8'
  53.23" (<span class="value">51.513458;-0.14812</span>)
  </span></span> </p>

• Thereby   microformats doesn’t rely on any HTML5 elements, and

• HTML5     spec isn’t looking to include microformats.
HTML5 CANVAS
<canvas id="myCanvas" width="300" height="150">
Fallback content, in case the browser does not support Canvas.
</canvas>
<script type="text/javascript"><!--
window.addEventListener('load', function () {
 // Get the canvas element.
 var elem = document.getElementById('myCanvas');
 if (!elem || !elem.getContext) {
   return;
 }

 // Get the canvas 2d context.
 var context = elem.getContext('2d');
 if (!context) {
   return;
 }

  // Now you are done! Let's draw a blue rectangle.
  context.fillStyle = '#00f';
  context.fillRect(0, 0, 150, 100);
}, false);
// --></script>
// Get the canvas element.
 var elem = document.getElementById('myCanvas');
 if (!elem || !elem.getContext) {
   return;
 }

 // Get the canvas 2d context.
 var context = elem.getContext('2d');
 if (!context) {
   return;
 }

 context.fillStyle = '#00f';
 context.strokeStyle = '#f00';
 context.lineWidth = 4;

  // Draw a right triangle.
  context.beginPath();
  context.moveTo(10, 10);
  context.lineTo(100, 10);
  context.lineTo(10, 100);
  context.lineTo(10, 10);
  context.fill();
  context.stroke();
  context.closePath();
}, false);
// Get the canvas element.
 var elem = document.getElementById('myCanvas');
 if (!elem || !elem.getContext) {
   return;
 }

 // Get the canvas 2d context.
 var context = elem.getContext('2d');
 if (!context) {
   return;
 }

 context.fillStyle = '#00f';
 context.strokeStyle = '#f00';
 context.lineWidth = 4;

  // Draw a right triangle.
  context.beginPath();
  context.moveTo(10, 10);
  context.lineTo(100, 10);
  context.lineTo(10, 100);
  context.lineTo(10, 10);
  context.fill();
  context.stroke();
  context.closePath();
}, false);
http://flickr.com/photos/dunstan/3099313036/
http://www.filamentgroup.com/lab/
jquery_visualize_plugin_accessible_charts_graphs_from_tables_html5_canvas/
http://www.filamentgroup.com/lab/
jquery_visualize_plugin_accessible_charts_graphs_from_tables_html5_canvas/
<table >

    <caption>My Push Ups</caption>

    <thead>
<tr>

    <td></td>

    <th>M</th>

    <th>Tu</th>

    <th>W</th>

    <th>Th</th>

    <th>F</th>

    <th>Sa</th>
</tr>

    </thead>

    <tbody>
<tr>

    <th>Chris</th>

    <td>56</td>

    <td>30</td>

    <td>50</td>

    <td>0</td>

    <td>45</td>

    <td>120</td>

    <td>0</td>
</tr>

    </tbody>
</table>
<link type="text/css" rel="stylesheet"
href="visualize.jQuery.css"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/
jquery/1.3.2/jquery.min.js"></script>
<!--[if IE]><script type="text/javascript" src="excanvas.compiled.js"></
script><![endif]-->
<script type="text/javascript" src="visualize.jQuery.js"></script>
<script type="text/javascript">
$(function(){

 $('table').addClass('accessHide');

 $('table').visualize({type: 'line', colors: ['#fff']});

 });
</script>
<link type="text/css" rel="stylesheet" href="visualize.jQuery.css"/>
<script type="text/javascript" src="http://
ajax.googleapis.com/ajax/libs/jquery/1.3.2/
jquery.min.js"></script>
<!--[if IE]><script type="text/javascript" src="excanvas.compiled.js"></
script><![endif]-->
<script type="text/javascript" src="visualize.jQuery.js"></script>
<script type="text/javascript">
$(function(){

 $('table').addClass('accessHide');

 $('table').visualize({type: 'line', colors: ['#fff']});

 });
</script>
<link type="text/css" rel="stylesheet" href="visualize.jQuery.css"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/
jquery/1.3.2/jquery.min.js"></script>
<!--[if IE]><script type="text/javascript"
src="excanvas.compiled.js"></script><![endif]-->
<script type="text/javascript" src="visualize.jQuery.js"></script>
<script type="text/javascript">
$(function(){

 $('table').addClass('accessHide');

 $('table').visualize({type: 'line', colors: ['#fff']});

 });
</script>
http://msdn.microsoft.com/en-us/library/bb250524(VS.85).aspx
<link type="text/css" rel="stylesheet" href="visualize.jQuery.css"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/
jquery/1.3.2/jquery.min.js"></script>
<!--[if IE]><script type="text/javascript" src="excanvas.compiled.js"></
script><![endif]-->
<script type="text/javascript"
src="visualize.jQuery.js"></script>
<script type="text/javascript">
$(function(){

 $('table').addClass('accessHide');

 $('table').visualize({type: 'line', colors: ['#fff']});

 });
</script>
<link type="text/css" rel="stylesheet" href="visualize.jQuery.css"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/
jquery/1.3.2/jquery.min.js"></script>
<!--[if IE]><script type="text/javascript" src="excanvas.compiled.js"></
script><![endif]-->
<script type="text/javascript" src="visualize.jQuery.js"></script>
<script type="text/javascript">
$(function(){

 $('table').addClass('accessHide');

 $('table').visualize({type: 'line', colors: ['#fff']});

 });
</script>
table.accessHide {
 position: absolute;
 left: -999999px;
}
table { height: 100px; width: 250px;}
<link type="text/css" rel="stylesheet" href="visualize.jQuery.css"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/
jquery/1.3.2/jquery.min.js"></script>
<!--[if IE]><script type="text/javascript" src="excanvas.compiled.js"></
script><![endif]-->
<script type="text/javascript" src="visualize.jQuery.js"></script>
<script type="text/javascript">
$(function(){

 $('table').addClass('accessHide');

 $('table').visualize({type: 'line', colors: ['#fff']});

 });
</script>
http://tr.im/Pjzy
QUICK INTERMISSION
    http://tr.im/Pjzy
HTML5 & LOCAL
  DATABASE,
  APP CACHE,
GEOLOCATION,
 YOUR PHONE
http://www.youtube.com/watch?v=VmjxmOtNZCk&fmt=18
DATABASE, APP CACHE,
           GEOLOCATION LINKS
• W3C HTML5 Database Storage Specification:
 http://tr.im/h13y

• W3C Geolocation API Specification:
 http://tr.im/h12L

• W3C HTML5 Offline Web Applications:
 http://tr.im/h12z

• Safari
      Dev Connection on HTML5 Offline Application Cache:
 http://tr.im/h12f

• WebKit
       Does HTML5 Client-Side Storage:
 http://tr.im/h140
“HTML 5 IS A KLUDGE.”
  - BRUCE LAWSON
http://ishtml5readyyet.com/
CAN HTML5
      TELL US
WHAT’S FOR DINNER?
<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="utf-8">
  <title>Downtown Orlando Restaurants</title>
  <!--[if IE8]>
   <script src="http://html5shiv.googlecode.com/svn/
trunk/html5.js"></script>
  <![endif]-->
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <title>Downtown Orlando Restaurants</title>
 <!--[if IE]>
  <script src="http://
html5shiv.googlecode.com/svn/trunk/
html5.js"></script>
 <![endif]-->
<header>
...
</header>
<nav>
...
</nav>
<section>
...
</section>
<footer>
...
</footer>
<div id="" class="vcard">
 <a class="url fn n" href="http://www.310lakeside.net">

 <span class="given-name">Joanne</span>
 <span class="additional-name"></span>
 <span class="family-name">Smith</span>
</a>
 <div class="org">310 Lakeside</div>
 <div class="adr">
 <div class="street-address">301 East Pine Street</div>
 <span class="locality">Orlando</span>,
 <span class="region">FL</span>,
 <span class="postal-code">32801</span>

 <span class="country-name">USA</span>

</div>
<div class="tel">(407) 447-9310</div>

<div class="note distance">

</div>

</div>
http://zappatic.net/safarimicroformats/
https://addons.mozilla.org/en-US/firefox/addon/4106
<a href=”http://h2vx.com/vcf/example.com/
    page.html”>Download contacts</a>
GREAT, HTML5, BUT I’M
   HUNGRY NOW.
<script src="http://www.google.com/jsapi?
key=yourkeygoeshere"></script>
 <script>
   google.load("maps", "3",{"other_params":"sensor=true"});
   google.load("jquery", "1");
 </script>
if (navigator && navigator.geolocation) {
       // HTML5 GeoLocation
      function getLocation(position) {

 
updateMyLocation(position.coords.latitude,position.coords.lo
ngitude);

       proccessDirections.sortLocations(
          position.coords.latitude,
          position.coords.longitude
       );
     }
     navigator.geolocation.getCurrentPosition(getLocation);
} else {
        // Google AJAX API fallback GeoLocation
       if ((typeof google == 'object') && google.loader &&
google.loader.ClientLocation) {

 
updateMyLocation(google.loader.ClientLocation.latitude,googl
e.loader.ClientLocation.longitude);

                proccessDirections.sortLocations(
                   google.loader.ClientLocation.latitude,
                   google.loader.ClientLocation.longitude
                );
            }
        }

   }
addresses = $(locations).map(function(){
var $adr = $(this).find(".adr"), latLng = null, lat, lng;
WHAT NEXT?

• Check   your current location against the addresses in your listing.

• Withtwo points, we can determine the distance between where I am
 and where the food is located.

• With
     a list of values, I can sort those addresses based on the fewest
 amount of travel (did I mention I was hungry now?)

•I   can then also mention HOW far those distances are, too.
http://2010.incontrolconference.com/eats/
BUT WAIT....

• There   are a lot of restaurants in the list.

 • To   go back and forth for geoencoding the addresses will take time.

 • Wouldn’t    there be a faster way, if I had the time, to bypass that?
<div id="" class="vcard">

 
 
         <a class="url fn n" href="http://www.tmh.com/"> <span
class="given-name">John</span>

 
 
          <span class="additional-name"></span>

 
 
          <span class="family-name">Smith</span>

 
 
 </a>

 
 
         <div class="org">Tallahassee Memorial Hospital</div>

 
 
         <div class="adr" data-longitude="-84.260799"
data-latitude="30.456100" data-lang="js">

 
 
 
 <div class="street-address">1300 Miccosukee Road</div>

 
 
          <span class="locality">Tallahassee</span>,

 
 
          <span class="region">FL</span>


   
   
    <span class="country-name">USA</span>


   
   
   </div>

   
   
   <div class="tel">(850) 431-1155</div>


   
   
   </div>


        http://ejohn.org/blog/html-5-data-attributes/
if ((lat = $adr.attr("data-latitude")) && (lng =
$adr.attr("data-longitude"))) {
 latLng = new google.maps.LatLng(lat,lng);
 }
BUT WAIT....

•I   own an iPhone!
HTML5.
IT’S WHAT FOR DINNER.
THANK YOU!
    Christopher Schmitt
  schmitt@heatvision.com
http://twitter.com/@teleject
Creative Commons Citations

    http://www.flickr.com/photos/gurock20/459901107/
        http://www.flickr.com/photos/wili/214317898/
       http://www.flickr.com/photos/gadl/421838292/
     http://www.flickr.com/photos/tantek/1141384818/
http://dev.opera.com/articles/view/html-5-canvas-the-basics/

Contenu connexe

Tendances

The Rich Standard: Getting Familiar with HTML5
The Rich Standard: Getting Familiar with HTML5The Rich Standard: Getting Familiar with HTML5
The Rich Standard: Getting Familiar with HTML5Todd Anglin
 
HTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use TodayHTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use TodayTodd Anglin
 
What the heck is HTML 5?
What the heck is HTML 5?What the heck is HTML 5?
What the heck is HTML 5?Simon Willison
 
Introduction to html 5
Introduction to html 5Introduction to html 5
Introduction to html 5Nir Elbaz
 
Taiwan Web Standards Talk 2011
Taiwan Web Standards Talk 2011Taiwan Web Standards Talk 2011
Taiwan Web Standards Talk 2011Zi Bin Cheah
 
HTML5: A brave new world of markup
HTML5: A brave new world of markupHTML5: A brave new world of markup
HTML5: A brave new world of markupChris Mills
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5dynamis
 
It's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking ModernizrIt's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking ModernizrMichael Enslow
 
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJRealize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJLeonardo Balter
 
Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)Nicholas Zakas
 
Untangling spring week8
Untangling spring week8Untangling spring week8
Untangling spring week8Derek Jacoby
 
HTML5 Bootcamp: Essential HTML, CSS, & JavaScript
HTML5 Bootcamp: Essential HTML, CSS, & JavaScriptHTML5 Bootcamp: Essential HTML, CSS, & JavaScript
HTML5 Bootcamp: Essential HTML, CSS, & JavaScriptTodd Anglin
 
Html5 shubelal
Html5 shubelalHtml5 shubelal
Html5 shubelalShub
 
Pamela - Brining back the pleasure of hand-written HTML - Montréal Python 8
Pamela - Brining back the pleasure of hand-written HTML - Montréal Python 8Pamela - Brining back the pleasure of hand-written HTML - Montréal Python 8
Pamela - Brining back the pleasure of hand-written HTML - Montréal Python 8spierre
 
Doing More with LESS for CSS
Doing More with LESS for CSSDoing More with LESS for CSS
Doing More with LESS for CSSTodd Anglin
 
Progressive Downloads and Rendering - take #2
Progressive Downloads and Rendering - take #2Progressive Downloads and Rendering - take #2
Progressive Downloads and Rendering - take #2Stoyan Stefanov
 

Tendances (20)

The Rich Standard: Getting Familiar with HTML5
The Rich Standard: Getting Familiar with HTML5The Rich Standard: Getting Familiar with HTML5
The Rich Standard: Getting Familiar with HTML5
 
HTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use TodayHTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use Today
 
What is HTML 5?
What is HTML 5?What is HTML 5?
What is HTML 5?
 
What the heck is HTML 5?
What the heck is HTML 5?What the heck is HTML 5?
What the heck is HTML 5?
 
Introduction to html 5
Introduction to html 5Introduction to html 5
Introduction to html 5
 
Edge of the Web
Edge of the WebEdge of the Web
Edge of the Web
 
Taiwan Web Standards Talk 2011
Taiwan Web Standards Talk 2011Taiwan Web Standards Talk 2011
Taiwan Web Standards Talk 2011
 
HTML5: A brave new world of markup
HTML5: A brave new world of markupHTML5: A brave new world of markup
HTML5: A brave new world of markup
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
 
[O'Reilly] HTML5 Design
[O'Reilly] HTML5 Design[O'Reilly] HTML5 Design
[O'Reilly] HTML5 Design
 
It's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking ModernizrIt's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking Modernizr
 
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJRealize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
 
Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)Progressive Enhancement 2.0 (Conference Agnostic)
Progressive Enhancement 2.0 (Conference Agnostic)
 
WHAT IS HTML5?(20100510)
WHAT IS HTML5?(20100510)WHAT IS HTML5?(20100510)
WHAT IS HTML5?(20100510)
 
Untangling spring week8
Untangling spring week8Untangling spring week8
Untangling spring week8
 
HTML5 Bootcamp: Essential HTML, CSS, & JavaScript
HTML5 Bootcamp: Essential HTML, CSS, & JavaScriptHTML5 Bootcamp: Essential HTML, CSS, & JavaScript
HTML5 Bootcamp: Essential HTML, CSS, & JavaScript
 
Html5 shubelal
Html5 shubelalHtml5 shubelal
Html5 shubelal
 
Pamela - Brining back the pleasure of hand-written HTML - Montréal Python 8
Pamela - Brining back the pleasure of hand-written HTML - Montréal Python 8Pamela - Brining back the pleasure of hand-written HTML - Montréal Python 8
Pamela - Brining back the pleasure of hand-written HTML - Montréal Python 8
 
Doing More with LESS for CSS
Doing More with LESS for CSSDoing More with LESS for CSS
Doing More with LESS for CSS
 
Progressive Downloads and Rendering - take #2
Progressive Downloads and Rendering - take #2Progressive Downloads and Rendering - take #2
Progressive Downloads and Rendering - take #2
 

Similaire à HTML5 AIGA IN CONTROL ORLANDO 2010 DOWNTOWN RESTAURANTS

Similaire à HTML5 AIGA IN CONTROL ORLANDO 2010 DOWNTOWN RESTAURANTS (20)

Fundamentals of HTML5
Fundamentals of HTML5Fundamentals of HTML5
Fundamentals of HTML5
 
[amigos] HTML5 and CSS3
[amigos] HTML5 and CSS3[amigos] HTML5 and CSS3
[amigos] HTML5 and CSS3
 
Webware - from Document to Operating System
Webware - from Document to Operating System Webware - from Document to Operating System
Webware - from Document to Operating System
 
Html5 intro
Html5 introHtml5 intro
Html5 intro
 
HTML 5 - Overview
HTML 5 - OverviewHTML 5 - Overview
HTML 5 - Overview
 
HTML 5
HTML 5HTML 5
HTML 5
 
Introduction to HTML5 and CSS3 (revised)
Introduction to HTML5 and CSS3 (revised)Introduction to HTML5 and CSS3 (revised)
Introduction to HTML5 and CSS3 (revised)
 
HTML5 and Joomla! 2.5 Template
HTML5 and Joomla! 2.5 TemplateHTML5 and Joomla! 2.5 Template
HTML5 and Joomla! 2.5 Template
 
WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)
 
Web Apps
Web AppsWeb Apps
Web Apps
 
Html5 public
Html5 publicHtml5 public
Html5 public
 
HTML5 History & Features
HTML5 History & FeaturesHTML5 History & Features
HTML5 History & Features
 
HTML5
HTML5 HTML5
HTML5
 
HTML5
HTML5HTML5
HTML5
 
Looking into HTML5
Looking into HTML5Looking into HTML5
Looking into HTML5
 
HTML 5
HTML 5HTML 5
HTML 5
 
Echo HTML5
Echo HTML5Echo HTML5
Echo HTML5
 
Html5
Html5Html5
Html5
 
Intro to html5 Boilerplate
Intro to html5 BoilerplateIntro to html5 Boilerplate
Intro to html5 Boilerplate
 
HTML5: Markup Evolved
HTML5: Markup EvolvedHTML5: Markup Evolved
HTML5: Markup Evolved
 

Plus de Christopher Schmitt

Keeping Colors from Killing Your Product
Keeping Colors from Killing Your ProductKeeping Colors from Killing Your Product
Keeping Colors from Killing Your ProductChristopher Schmitt
 
[funka] Adaptive Images in Responsive Web Design
[funka] Adaptive Images in Responsive Web Design[funka] Adaptive Images in Responsive Web Design
[funka] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
[Austin WordPress Meetup] Adaptive Images in Responsive Web Design
[Austin WordPress Meetup] Adaptive Images in Responsive Web Design[Austin WordPress Meetup] Adaptive Images in Responsive Web Design
[Austin WordPress Meetup] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
[CSSDevConf] Adaptive Images in Responsive Web Design 2014
[CSSDevConf] Adaptive Images in Responsive Web Design 2014[CSSDevConf] Adaptive Images in Responsive Web Design 2014
[CSSDevConf] Adaptive Images in Responsive Web Design 2014Christopher Schmitt
 
[rwdsummit] Adaptive Images in Responsive Web Design
[rwdsummit] Adaptive Images in Responsive Web Design[rwdsummit] Adaptive Images in Responsive Web Design
[rwdsummit] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
[artifactconf] Github for People Who Don't Code
[artifactconf] Github for People Who Don't Code[artifactconf] Github for People Who Don't Code
[artifactconf] Github for People Who Don't CodeChristopher Schmitt
 
[cssdevconf] Adaptive Images in Responsive Web Design
[cssdevconf] Adaptive Images in Responsive Web Design[cssdevconf] Adaptive Images in Responsive Web Design
[cssdevconf] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
[parisweb] Adaptive Images in Responsive Web Design
[parisweb] Adaptive Images in Responsive Web Design[parisweb] Adaptive Images in Responsive Web Design
[parisweb] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
[peachpit] Adaptive Images in Responsive Web Design
[peachpit] Adaptive Images in Responsive Web Design[peachpit] Adaptive Images in Responsive Web Design
[peachpit] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
[jqconatx] Adaptive Images for Responsive Web Design
[jqconatx] Adaptive Images for Responsive Web Design[jqconatx] Adaptive Images for Responsive Web Design
[jqconatx] Adaptive Images for Responsive Web DesignChristopher Schmitt
 
[wvbcn] Adaptive Images in Responsive Web Design
[wvbcn] Adaptive Images in Responsive Web Design[wvbcn] Adaptive Images in Responsive Web Design
[wvbcn] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
[drupalcampatx] Adaptive Images in Responsive Web Design
[drupalcampatx] Adaptive Images in Responsive Web Design[drupalcampatx] Adaptive Images in Responsive Web Design
[drupalcampatx] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
[refreshpitt] Adaptive Images in Responsive Web Design
[refreshpitt] Adaptive Images in Responsive Web Design[refreshpitt] Adaptive Images in Responsive Web Design
[refreshpitt] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
[psuweb] Adaptive Images in Responsive Web Design
[psuweb] Adaptive Images in Responsive Web Design[psuweb] Adaptive Images in Responsive Web Design
[psuweb] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
GitHub for People Who Don't Code
GitHub for People Who Don't CodeGitHub for People Who Don't Code
GitHub for People Who Don't CodeChristopher Schmitt
 
[wcatx] Adaptive Images in Responsive Web Design
[wcatx] Adaptive Images in Responsive Web Design[wcatx] Adaptive Images in Responsive Web Design
[wcatx] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
[HEWEBFL] Adaptive Images in Responsive Web Design
[HEWEBFL] Adaptive Images in Responsive Web Design[HEWEBFL] Adaptive Images in Responsive Web Design
[HEWEBFL] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web Design[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web DesignChristopher Schmitt
 
[sxsw2013] Extremely Compressed JPEGs
[sxsw2013] Extremely Compressed JPEGs[sxsw2013] Extremely Compressed JPEGs
[sxsw2013] Extremely Compressed JPEGsChristopher Schmitt
 
[html5tx] Adaptive Images in Responsive Web Design
[html5tx] Adaptive Images in Responsive Web Design[html5tx] Adaptive Images in Responsive Web Design
[html5tx] Adaptive Images in Responsive Web DesignChristopher Schmitt
 

Plus de Christopher Schmitt (20)

Keeping Colors from Killing Your Product
Keeping Colors from Killing Your ProductKeeping Colors from Killing Your Product
Keeping Colors from Killing Your Product
 
[funka] Adaptive Images in Responsive Web Design
[funka] Adaptive Images in Responsive Web Design[funka] Adaptive Images in Responsive Web Design
[funka] Adaptive Images in Responsive Web Design
 
[Austin WordPress Meetup] Adaptive Images in Responsive Web Design
[Austin WordPress Meetup] Adaptive Images in Responsive Web Design[Austin WordPress Meetup] Adaptive Images in Responsive Web Design
[Austin WordPress Meetup] Adaptive Images in Responsive Web Design
 
[CSSDevConf] Adaptive Images in Responsive Web Design 2014
[CSSDevConf] Adaptive Images in Responsive Web Design 2014[CSSDevConf] Adaptive Images in Responsive Web Design 2014
[CSSDevConf] Adaptive Images in Responsive Web Design 2014
 
[rwdsummit] Adaptive Images in Responsive Web Design
[rwdsummit] Adaptive Images in Responsive Web Design[rwdsummit] Adaptive Images in Responsive Web Design
[rwdsummit] Adaptive Images in Responsive Web Design
 
[artifactconf] Github for People Who Don't Code
[artifactconf] Github for People Who Don't Code[artifactconf] Github for People Who Don't Code
[artifactconf] Github for People Who Don't Code
 
[cssdevconf] Adaptive Images in Responsive Web Design
[cssdevconf] Adaptive Images in Responsive Web Design[cssdevconf] Adaptive Images in Responsive Web Design
[cssdevconf] Adaptive Images in Responsive Web Design
 
[parisweb] Adaptive Images in Responsive Web Design
[parisweb] Adaptive Images in Responsive Web Design[parisweb] Adaptive Images in Responsive Web Design
[parisweb] Adaptive Images in Responsive Web Design
 
[peachpit] Adaptive Images in Responsive Web Design
[peachpit] Adaptive Images in Responsive Web Design[peachpit] Adaptive Images in Responsive Web Design
[peachpit] Adaptive Images in Responsive Web Design
 
[jqconatx] Adaptive Images for Responsive Web Design
[jqconatx] Adaptive Images for Responsive Web Design[jqconatx] Adaptive Images for Responsive Web Design
[jqconatx] Adaptive Images for Responsive Web Design
 
[wvbcn] Adaptive Images in Responsive Web Design
[wvbcn] Adaptive Images in Responsive Web Design[wvbcn] Adaptive Images in Responsive Web Design
[wvbcn] Adaptive Images in Responsive Web Design
 
[drupalcampatx] Adaptive Images in Responsive Web Design
[drupalcampatx] Adaptive Images in Responsive Web Design[drupalcampatx] Adaptive Images in Responsive Web Design
[drupalcampatx] Adaptive Images in Responsive Web Design
 
[refreshpitt] Adaptive Images in Responsive Web Design
[refreshpitt] Adaptive Images in Responsive Web Design[refreshpitt] Adaptive Images in Responsive Web Design
[refreshpitt] Adaptive Images in Responsive Web Design
 
[psuweb] Adaptive Images in Responsive Web Design
[psuweb] Adaptive Images in Responsive Web Design[psuweb] Adaptive Images in Responsive Web Design
[psuweb] Adaptive Images in Responsive Web Design
 
GitHub for People Who Don't Code
GitHub for People Who Don't CodeGitHub for People Who Don't Code
GitHub for People Who Don't Code
 
[wcatx] Adaptive Images in Responsive Web Design
[wcatx] Adaptive Images in Responsive Web Design[wcatx] Adaptive Images in Responsive Web Design
[wcatx] Adaptive Images in Responsive Web Design
 
[HEWEBFL] Adaptive Images in Responsive Web Design
[HEWEBFL] Adaptive Images in Responsive Web Design[HEWEBFL] Adaptive Images in Responsive Web Design
[HEWEBFL] Adaptive Images in Responsive Web Design
 
[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web Design[refreshaustin] Adaptive Images in Responsive Web Design
[refreshaustin] Adaptive Images in Responsive Web Design
 
[sxsw2013] Extremely Compressed JPEGs
[sxsw2013] Extremely Compressed JPEGs[sxsw2013] Extremely Compressed JPEGs
[sxsw2013] Extremely Compressed JPEGs
 
[html5tx] Adaptive Images in Responsive Web Design
[html5tx] Adaptive Images in Responsive Web Design[html5tx] Adaptive Images in Responsive Web Design
[html5tx] Adaptive Images in Responsive Web Design
 

Dernier

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
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
 
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
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 

Dernier (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
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
 
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
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
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
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 

HTML5 AIGA IN CONTROL ORLANDO 2010 DOWNTOWN RESTAURANTS

  • 1. HTML5 AIGA IN CONTROL ORLANDO 2010 CHRISTOPHER SCHMITT h t t p : / / t w i t t e r. c o m / @ t e l e j e c t
  • 2. WHO AM I? • Someone who doesn’t like to get bored. • (Nerd.) • Web designer since ’93 • Author of ~10 books including CSS Cookbook, 3rd Edition* • Member of the Web Standards Project • Adobe TF Co-Lead & EduTF member • Co-author of InterACT with Web Standards (Peachpit, due Spring)
  • 4.
  • 5.
  • 6.
  • 8. THINGS ARE GOOD BETWEEN US, XHTML, RIGHT? I MEAN. WE GET ALONG WELL. AND WE BOTH LIKE STUFF.
  • 9. “THE ATTEMPT TO GET THE WORLD TO SWITCH TO XML, INCLUDING QUOTES AROUND ATTRIBUTE VALUES AND SLASHES IN EMPTY TAGS AND NAMESPACES ALL AT ONCE DIDN'T WORK.” -SIR TIM BERNERS-LEE
  • 10. 5 % http://dev.opera.com/articles/view/mama-markup-validation-report/
  • 12.
  • 13.
  • 14.
  • 15.
  • 16. “TAKE CARE OF THE LUXURIES AND THE NECESSITIES WILL TAKE CARE OF THEMSELVES.” -FRANK LLOYD WRIGHT
  • 17. RELEARNING SYNTAX • Attribute quotes “not really” required • UPPERCASE and lowercase HTML elements allowed • So is CaMeLcAse typing. • No more need to do self-closing tags like <IMG /> or <BR /> • Also, no more minimalization. So, this is okay: <dl compact> • Basically, everything that was bad from HTML4 in XHTML5 is good again. • Full circle, baby!
  • 20. HTML 4.01 Transitional DTD: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> XHTML 1.0 Transitional DTD: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  • 21. <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>DOWNTOWN ORLANDO RESTAURANTS</title> </head> <body> <h1>....</h1> <p>...</p> </body> </html>
  • 22. EXERCISE • Goto HTML validator at http://validator.w3.org/#validate_by_input • Then type the following HTML (below) and hit validate: <!DOCTYPE html> <title>Small HTML5</title> <p>Hello world</p>
  • 23.
  • 24.
  • 25. BUILDING WITH HTML5
  • 26. DIV ID=”header” DIV ID=”nav” DIV ID=”section” DIV ID=”sidecolumn” DIV ID=”article” DIV ID=”footer”
  • 27. <HEADER> <NAV> <SECTION> <ASIDE> <ARTICLE> <FOOTER>
  • 28. <body> <header> <h1>Heading </h1> </header> <nav> <h3>Site Navigation</h3> <ul>...</ul> </nav> <section> <article> <h3>Weblog Entry</h3> </article> </section> <aside> <p>You are reading "Chocolate Rain", an entry posted on <time datetime="2009-03-05">5 March, 2009</time>, to the <a href="#">Misty collection</a>. See other posts in <a href="#">this collection</a>.</p> </aside> <footer> <p>...</p> </footer> </body>
  • 29.
  • 30.
  • 32.
  • 34. HEADER NAV SECTION ASIDE ARTICLE FOOTER
  • 35.
  • 36.
  • 37. LESSONS LEARNED • New HTML5 elements are treated as inline elements. • Need to use CSS declaration “display:block” • IE6and IE7 need to be nudged to recognize HTML elements in order to have CSS be applied • document.createElement(‘html5element’); • Dean Edwards IE7 script doesn’t help • There isn’t a jQuery plugin to make it “easier”
  • 38. LESSONS LEARNED • For Firefox 2 and Camino (Gecko 1.9) • HTML5 pages need to be served as XHTML • Content-Type: application/xhtml+xml; • ...Let the irony set for a bit.
  • 39. <?php if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox/2.0') > -1) { header("Content-Type: application/xhtml+xml; charset=UTF-8"); echo'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional// EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">'; } else { echo '<!DOCTYPE html><html>'; }?> http://tr.im/h0Rj
  • 40. NEW HTML5 ELEMENTS • article • embed • nest • aside • event-source • output • audio • figure • progress • canvas • footer • source • command • header • time • datagrid • mark • video • datalist • meter • datatemplate • nav
  • 42. <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Basic HTML5 Web Document Structure</title> </head> <body> <h1>Video Example</h1> <audio src="html5test.ogg" autoplay controls> <a href="html5test.ogg">Download audio</a> </audio> </body> </html>
  • 43.
  • 44. HTML5 AUDIO • AUDIO element attributes are SRC, AUTOBUFFER, AUTOPLAY, LOOP, CONTROLS • If you don’t have CONTROL, player becomes transparent
  • 45. HTML5 AUDIO SUPPORT FF3.5+ S4+ Ch3+ Op10+ Ogg Vorbis Y Y MP3 Y Y WAV Y Y Y
  • 46. SUPPORTING AUDIO <audio controls autobuffer> <source src="html5audio.mp3" /> <source src="html5audio.ogg" /> <!-- include Adobe Flash player EMBED and OBJECT code here --> </audio>
  • 47. SUPPORTING AUDIO • Ifyou do insert audio, setting the file to autoplay is not recommended, as it interferes with the experience for web surfers using screen readers. • Don’t use WAV file type. • Better to ship a compact disc to the user instead.
  • 49. <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Basic HTML5 Web Document Structure</title> </head> <body> <h1>Video Example</h1> <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/ 4GuKSqAg5xI&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/4GuKSqAg5xI&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></ object> </body> </html>
  • 50. <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Basic HTML5 Web Document Structure</title> </head> <body> <h1>Video Example</h1> <video src="html5test.ogg" width="320" height="240" controls poster="html5testvideoposter.jpg"> <a href="html5testvideo.ogg">Download movie</a> </video> </body> </html>
  • 51. VIDEO DEMO • Play the demo.
  • 52. HTML5 VIDEO • WIDTH and HEIGHT should be required, IMO, but movie plays anyway based on the values in the video file itself. • Video formats may have their own posterframe. The browser should use that by default unless overridden by valid POSTER attribute value. • Text can be included within VIDEO element to allow user to download video if their browser doesn’t support. • If you want to give users control, use CONTROL attribute.
  • 53. HTML5 VIDEO • Videocan start automatically if using the AUTOPLAY=”1” attribute and value. • Spec provides for LOOP, AUTOBUFFER which also take a value of O or 1. • Codecs support...
  • 54. HTML5 VIDEO “It would be helpful for interoperability if all browsers could support the same codecs. However, there are no known codecs that satisfy all the current players: we need a codec that is known to not require per-unit or per-distributor licensing, that is compatible with the open source development model, that is of sufficient quality as to be usable, and that is not an additional submarine patent risk for large companies. This is an ongoing issue and this section will be updated once more information is available.” - http://www.whatwg.org/specs/web-apps/current-work/#video- and-audio-codecs-for-video-elements
  • 55. CODECS • Ogg (or “Vorbis”) • No need to worry about patents • H.264 • Created by the MPEG group • If you have blu-ray disc player, you are using it
  • 56. CODEC SUPPORT FF3.5+ S Ch IE Ogg Y Y H.264 Y Y
  • 57. LESSONS LEARNED • Used VLC (http://www.videolan.org/vlc/) to encode common movie files types to OGG • People really, really, really want this to work, • However, feel like to support every file format will take a lot of time • If you are hot to trot for HTML5 Video, like, right now, check out Mark Pilgrim’s tutorial: http://diveintohtml5.org/video.html • Good primer: http://dev.opera.com/articles/view/introduction-html5-video/
  • 58.
  • 59.
  • 61. REPLACING ABBR • <ABBR> element is used by screenreaders to expand abbreviations like “lbs” or “NCAAP” • However unintended consequences occurred trying to workaround browser bugs for other HTML elements • What happens when a screenreaders text like this: • “Let’sgo to <abbr class="geo" title="30.300474;-97.747247">Austin, TX</abbr>” http://www.brucelawson.co.uk/2009/microformats-accessibility-html-5-again/
  • 62. <div class="vevent"> <a class="url" href="http://www.web2con.com/">http:// www.web2con.com</a> <span class="summary">Web 2.0 Conference</span>: <abbr class="dtstart" title="2007-10-05">October 5</abbr>- <abbr class="dtend" title="2007-10-20">19</abbr>, at the <span class="location">Argent Hotel, San Francisco, CA</span> </div>
  • 63. <div class="vevent"> <a class="url" href="http://www.web2con.com/">http:// www.web2con.com</a> <span class="summary">Web 2.0 Conference</span>: <time class="dtstart" datetime="2007-10-05">October 5</time>- <time class="dtend" datetime="2007-10-20">19</time>, at the <span class="location">Argent Hotel, San Francisco, CA</span> </div> http://www.brucelawson.co.uk/2009/microformats-accessibility-html-5-again/
  • 64. POSTSCRIPT • <ABBR> issue has ben resolved with new pattern (dropping <ABBR> altogether): http://microformats.org/wiki/value-class-pattern • <p>Let’sgo to <span class="geo">51° 30' 48.45", -0° 8' 53.23" (<span class="value">51.513458;-0.14812</span>) </span></span> </p> • Thereby microformats doesn’t rely on any HTML5 elements, and • HTML5 spec isn’t looking to include microformats.
  • 66. <canvas id="myCanvas" width="300" height="150"> Fallback content, in case the browser does not support Canvas. </canvas>
  • 67. <script type="text/javascript"><!-- window.addEventListener('load', function () { // Get the canvas element. var elem = document.getElementById('myCanvas'); if (!elem || !elem.getContext) { return; } // Get the canvas 2d context. var context = elem.getContext('2d'); if (!context) { return; } // Now you are done! Let's draw a blue rectangle. context.fillStyle = '#00f'; context.fillRect(0, 0, 150, 100); }, false); // --></script>
  • 68.
  • 69. // Get the canvas element. var elem = document.getElementById('myCanvas'); if (!elem || !elem.getContext) { return; } // Get the canvas 2d context. var context = elem.getContext('2d'); if (!context) { return; } context.fillStyle = '#00f'; context.strokeStyle = '#f00'; context.lineWidth = 4; // Draw a right triangle. context.beginPath(); context.moveTo(10, 10); context.lineTo(100, 10); context.lineTo(10, 100); context.lineTo(10, 10); context.fill(); context.stroke(); context.closePath(); }, false);
  • 70.
  • 71. // Get the canvas element. var elem = document.getElementById('myCanvas'); if (!elem || !elem.getContext) { return; } // Get the canvas 2d context. var context = elem.getContext('2d'); if (!context) { return; } context.fillStyle = '#00f'; context.strokeStyle = '#f00'; context.lineWidth = 4; // Draw a right triangle. context.beginPath(); context.moveTo(10, 10); context.lineTo(100, 10); context.lineTo(10, 100); context.lineTo(10, 10); context.fill(); context.stroke(); context.closePath(); }, false);
  • 75. <table > <caption>My Push Ups</caption> <thead> <tr> <td></td> <th>M</th> <th>Tu</th> <th>W</th> <th>Th</th> <th>F</th> <th>Sa</th> </tr> </thead> <tbody> <tr> <th>Chris</th> <td>56</td> <td>30</td> <td>50</td> <td>0</td> <td>45</td> <td>120</td> <td>0</td> </tr> </tbody> </table>
  • 76.
  • 77. <link type="text/css" rel="stylesheet" href="visualize.jQuery.css"/> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/ jquery/1.3.2/jquery.min.js"></script> <!--[if IE]><script type="text/javascript" src="excanvas.compiled.js"></ script><![endif]--> <script type="text/javascript" src="visualize.jQuery.js"></script> <script type="text/javascript"> $(function(){ $('table').addClass('accessHide'); $('table').visualize({type: 'line', colors: ['#fff']}); }); </script>
  • 78. <link type="text/css" rel="stylesheet" href="visualize.jQuery.css"/> <script type="text/javascript" src="http:// ajax.googleapis.com/ajax/libs/jquery/1.3.2/ jquery.min.js"></script> <!--[if IE]><script type="text/javascript" src="excanvas.compiled.js"></ script><![endif]--> <script type="text/javascript" src="visualize.jQuery.js"></script> <script type="text/javascript"> $(function(){ $('table').addClass('accessHide'); $('table').visualize({type: 'line', colors: ['#fff']}); }); </script>
  • 79. <link type="text/css" rel="stylesheet" href="visualize.jQuery.css"/> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/ jquery/1.3.2/jquery.min.js"></script> <!--[if IE]><script type="text/javascript" src="excanvas.compiled.js"></script><![endif]--> <script type="text/javascript" src="visualize.jQuery.js"></script> <script type="text/javascript"> $(function(){ $('table').addClass('accessHide'); $('table').visualize({type: 'line', colors: ['#fff']}); }); </script>
  • 81. <link type="text/css" rel="stylesheet" href="visualize.jQuery.css"/> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/ jquery/1.3.2/jquery.min.js"></script> <!--[if IE]><script type="text/javascript" src="excanvas.compiled.js"></ script><![endif]--> <script type="text/javascript" src="visualize.jQuery.js"></script> <script type="text/javascript"> $(function(){ $('table').addClass('accessHide'); $('table').visualize({type: 'line', colors: ['#fff']}); }); </script>
  • 82. <link type="text/css" rel="stylesheet" href="visualize.jQuery.css"/> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/ jquery/1.3.2/jquery.min.js"></script> <!--[if IE]><script type="text/javascript" src="excanvas.compiled.js"></ script><![endif]--> <script type="text/javascript" src="visualize.jQuery.js"></script> <script type="text/javascript"> $(function(){ $('table').addClass('accessHide'); $('table').visualize({type: 'line', colors: ['#fff']}); }); </script>
  • 83. table.accessHide { position: absolute; left: -999999px; } table { height: 100px; width: 250px;}
  • 84. <link type="text/css" rel="stylesheet" href="visualize.jQuery.css"/> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/ jquery/1.3.2/jquery.min.js"></script> <!--[if IE]><script type="text/javascript" src="excanvas.compiled.js"></ script><![endif]--> <script type="text/javascript" src="visualize.jQuery.js"></script> <script type="text/javascript"> $(function(){ $('table').addClass('accessHide'); $('table').visualize({type: 'line', colors: ['#fff']}); }); </script>
  • 85.
  • 87. QUICK INTERMISSION http://tr.im/Pjzy
  • 88. HTML5 & LOCAL DATABASE, APP CACHE, GEOLOCATION, YOUR PHONE
  • 90. DATABASE, APP CACHE, GEOLOCATION LINKS • W3C HTML5 Database Storage Specification: http://tr.im/h13y • W3C Geolocation API Specification: http://tr.im/h12L • W3C HTML5 Offline Web Applications: http://tr.im/h12z • Safari Dev Connection on HTML5 Offline Application Cache: http://tr.im/h12f • WebKit Does HTML5 Client-Side Storage: http://tr.im/h140
  • 91. “HTML 5 IS A KLUDGE.” - BRUCE LAWSON
  • 93. CAN HTML5 TELL US WHAT’S FOR DINNER?
  • 94.
  • 95. <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Downtown Orlando Restaurants</title> <!--[if IE8]> <script src="http://html5shiv.googlecode.com/svn/ trunk/html5.js"></script> <![endif]-->
  • 96. <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Downtown Orlando Restaurants</title> <!--[if IE]> <script src="http:// html5shiv.googlecode.com/svn/trunk/ html5.js"></script> <![endif]-->
  • 98. <div id="" class="vcard"> <a class="url fn n" href="http://www.310lakeside.net"> <span class="given-name">Joanne</span> <span class="additional-name"></span> <span class="family-name">Smith</span> </a> <div class="org">310 Lakeside</div> <div class="adr"> <div class="street-address">301 East Pine Street</div> <span class="locality">Orlando</span>, <span class="region">FL</span>, <span class="postal-code">32801</span> <span class="country-name">USA</span> </div> <div class="tel">(407) 447-9310</div> <div class="note distance"> </div> </div>
  • 101.
  • 102. <a href=”http://h2vx.com/vcf/example.com/ page.html”>Download contacts</a>
  • 103.
  • 104. GREAT, HTML5, BUT I’M HUNGRY NOW.
  • 105. <script src="http://www.google.com/jsapi? key=yourkeygoeshere"></script> <script> google.load("maps", "3",{"other_params":"sensor=true"}); google.load("jquery", "1"); </script>
  • 106. if (navigator && navigator.geolocation) { // HTML5 GeoLocation function getLocation(position) { updateMyLocation(position.coords.latitude,position.coords.lo ngitude); proccessDirections.sortLocations( position.coords.latitude, position.coords.longitude ); } navigator.geolocation.getCurrentPosition(getLocation);
  • 107.
  • 108. } else { // Google AJAX API fallback GeoLocation if ((typeof google == 'object') && google.loader && google.loader.ClientLocation) { updateMyLocation(google.loader.ClientLocation.latitude,googl e.loader.ClientLocation.longitude); proccessDirections.sortLocations( google.loader.ClientLocation.latitude, google.loader.ClientLocation.longitude ); } } }
  • 109.
  • 110. addresses = $(locations).map(function(){ var $adr = $(this).find(".adr"), latLng = null, lat, lng;
  • 111. WHAT NEXT? • Check your current location against the addresses in your listing. • Withtwo points, we can determine the distance between where I am and where the food is located. • With a list of values, I can sort those addresses based on the fewest amount of travel (did I mention I was hungry now?) •I can then also mention HOW far those distances are, too.
  • 113. BUT WAIT.... • There are a lot of restaurants in the list. • To go back and forth for geoencoding the addresses will take time. • Wouldn’t there be a faster way, if I had the time, to bypass that?
  • 114. <div id="" class="vcard"> <a class="url fn n" href="http://www.tmh.com/"> <span class="given-name">John</span> <span class="additional-name"></span> <span class="family-name">Smith</span> </a> <div class="org">Tallahassee Memorial Hospital</div> <div class="adr" data-longitude="-84.260799" data-latitude="30.456100" data-lang="js"> <div class="street-address">1300 Miccosukee Road</div> <span class="locality">Tallahassee</span>, <span class="region">FL</span> <span class="country-name">USA</span> </div> <div class="tel">(850) 431-1155</div> </div> http://ejohn.org/blog/html-5-data-attributes/
  • 115. if ((lat = $adr.attr("data-latitude")) && (lng = $adr.attr("data-longitude"))) { latLng = new google.maps.LatLng(lat,lng); }
  • 116. BUT WAIT.... •I own an iPhone!
  • 117.
  • 118.
  • 120. THANK YOU! Christopher Schmitt schmitt@heatvision.com http://twitter.com/@teleject
  • 121. Creative Commons Citations http://www.flickr.com/photos/gurock20/459901107/ http://www.flickr.com/photos/wili/214317898/ http://www.flickr.com/photos/gadl/421838292/ http://www.flickr.com/photos/tantek/1141384818/ http://dev.opera.com/articles/view/html-5-canvas-the-basics/