SlideShare a Scribd company logo
HTML5 for PHP Developers


Thorsten Rinne I 25. September 2010
PHP UnConference Hamburg 2010




                                      © 2010 Mayflower GmbH
Senior Developer / Team Lead
 Head of Open Source Labs
             @
    MAYFLOWER GMBH


                 HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 2
@ThorstenRinne




          HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 3
Topic:


  HTML5 for
PHP Developers
Topic:


  HTML5 for
PHP Developers
I won‘t talk about
<video> and <audio>


            HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 5
Yes,
Youporn is using
 HTML5 video!


          HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 6
Who‘s already using
     HTML5?

           HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 7
HTML5 in one sentence?


             HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 8
„HTML5 is about moving
  from documents to
 applications and from
  hacks to solutions.“
                                                Christian Heilmann on Twitter
             HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 9
HTML5 for developers?


            HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 10
HTML5 ~= HTML + CSS + JS



              HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 11
1999:
PHP 3.0 - MySQL 3.22
     Apache 1.3
            HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 12
1999:
 Internet Explorer 5.0
XMLHttpRequest Object
             HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 13
As time goes by ...


           HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 14
since 5.0 (1999)

    since 1.0 (2004)


         since 1.2 (2004)

             since 7.6 (2004)
              HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 15
2005:
Ajax: A New Approach
 to Web Applications
      Jesse James Garrett: http://www.adaptivepath.com/ideas/essays/archives/000385.php
                                   HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 16
HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 17
Google Suggest

 Google Mail

Google Maps
         HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 18
2006:
  Comet
 Jesse James Garrett: http://www.adaptivepath.com/ideas/essays/archives/000385.php
                              HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 19
HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 20
HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 21
Push




       HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 21
Push   Ajax




              HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 21
Push   Ajax



              Push




                     HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 21
Okay, what‘s happening?




              HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 22
Content
  vs.
Context
     HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 23
Facebook is an
 application!



         HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 24
Page
  vs.
Stream
    HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 25
Twitter is an
application!



         HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 26
Applications?




         HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 27
Apps!




        HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 28
HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 29
online == offline == online


               HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 30
Is this the new web?




                       HTML5 for PHP Developers I   Mayflower GmbH I 10. September 2010 I 31
The future is a web app!



              HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 32
The mobile browser ...



 I ... is identical to the desktop browser
 I ... speaks HTML5
    •Geolocation support
    •Websockets support
    •Offline apps
 I Faster update cycles than on the desktop
 I it‘s a



cross plattform realtime runtime
                                              HTML5 for PHP Developers I   Mayflower GmbH I 10. September 2010 I 33
But what about HTML5?
 And what about PHP?


             HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 34
2000: PHP chat style polling




Client                                Server




                   HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 35
2000: PHP chat style polling

    Hey, Wazzup?




Client                                Server




                   HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 35
2000: PHP chat style polling
                         Um,
                       nothing,
                       actually.
    Hey, Wazzup?




Client                                Server




                   HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 35
2000: PHP chat style polling
                            Um,
                          nothing,
                          actually.
    Hey, Wazzup?




              1 sec ...
Client                                   Server




                      HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 35
2000: PHP chat style polling




Client                                Server




                   HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 35
2000: PHP chat style polling

    Hey, Wazzup?




Client                                Server




                   HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 35
2000: PHP chat style polling
                        Um,
                      nothing,
                      actually.
    Hey, Wazzup?




Client                                Server




                   HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 35
2000: PHP chat style polling
                            Um,
                          nothing,
                          actually.
    Hey, Wazzup?




              1 sec ...
Client                                   Server




                      HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 35
2000: PHP chat style polling




Client                                Server




                   HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 35
2000: PHP chat style polling


    Hey, Wazzup?




Client                                Server




                   HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 35
2000: PHP chat style polling
                          Um,
                        nothing,
                        actually.
    Hey, Wazzup?




Client                                Server




                   HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 35
2000: PHP chat style polling
                             Um,
                           nothing,
                           actually.
    Hey, Wazzup?




              1 sec ...
Client                                   Server




                      HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 35
2000: PHP chat style polling




Client                                Server




                   HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 35
2000: PHP chat style polling

              WTF ?!




Client                                    Server




                       HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 35
1 User = 1 req / sec
    CPU #FAIL


            HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 36
2006: COMET style long poll




 Client                              Server




                  HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 37
2006: COMET style long poll


     Hey, Wazzup?




 Client                                Server




                    HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 37
2006: COMET style long poll
                           Um, nothing,
                            actually ...
     Hey, Wazzup?




 Client                                Server




                    HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 37
2006: COMET style long poll

                                      well ...
     Hey, Wazzup?




 Client                                Server




                    HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 37
2006: COMET style long poll

                                      wait ...
     Hey, Wazzup?




 Client                                Server




                    HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 37
2006: COMET style long poll
                               Uh, there is
                              something ...
     Hey, Wazzup?




 Client                                Server




                    HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 37
2006: COMET style long poll

                              No, nothing.
     Hey, Wazzup?




 Client                                Server




                    HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 37
2006: COMET style long poll


           WTF ?!




 Client                                Server




                    HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 37
1 User = 1 Apache child
   MEMORY #FAIL


              HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 38
HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 39
MEMORY: WIN
CPU: 1/2 WIN

        HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 40
Client           PHP-
                 Server

Client


 Client


          HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 41
WebSockets to the rescue!
var ws = new WebSocket("ws://example.com/service");

ws.onopen = function() {
    ws.send("message to send"); ....
};

ws.onmessage = function (event) {
   var received_msg = event.data; ...
};

ws.onclose = function() {
   // websocket is closed.
};


                               HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 42
WebSockets & PHP
    I http://code.google.com/p/phpwebsocket/
    I Currently an ugly hack
    I But quite easy:

    list($resource,$host,$origin) = getheaders($buffer);
    $upgrade = "HTTP/1.1 101 Web Socket Protocol Handshakern" .
               "Upgrade: WebSocketrn" .
               "Connection: Upgradern" .
               "WebSocket-Origin: " . $origin . "rn" .
               "WebSocket-Location: ws://" . $host . $resource .
               "rnrn";

    $handshake = true;
    socket_write($socket,$upgrade.chr(0),strlen($upgrade.chr(0)));


                                           HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 43
More logic will move to the
  client... the browser!


                HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 44
Web Worker
I Multi-threaded JavaScript
I Easy example:

main.js:
 var worker = new Worker('backgroundtask.js');
 worker.onmessage = function(event) { alert(event.data); };




backgroundtask.js:
 self.onmessage = function(event) {
   // Do some tough work...
   self.postMessage(some_data);
 }



                                       HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 45
Offline Application Cache
index.html:

 <html manifest="cache.manifest">
 window.applicationCache.addEventListener('checking',
                                          updateCacheStatus,
                                          false);



cache.manifest:

 CACHE MANIFEST

 CACHE:
 /html5/demo/index.html
 /html5/demo/style.css
 /html5/demo/background.png


                                       HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 46
Web Messaging
    <iframe src="http://www.example.org/message/" id="iframe">
    </iframe>

    <form id="form">
      <input type="text" id="msg" value="Message to send"/>
      <input type="submit"/>
    </form>
    <script>
      window.onload = function() {
         var win = document.getElementById("iframe").contentWindow;
        document.getElementById("form").onsubmit = function(e) {
           win.postMessage(document.getElementById("msg").value);
          e.preventDefault();
        };
      };
    </script>



                                        HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 47
Web Messaging
  <strong>This iframe is located on www.example.com</strong>
  <div id="test">Hello, World!</div>
  <script>
    document.addEventListener("message", function(e){
      document.getElementById("test").textContent =
        e.domain + " said: " + e.data;
      }, false);
  </script>




                                      HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 48
WebStorage
I Short living data
   I sessionStorage object
   I will be deleted after closing the browser
I Long living data
   I localStorage object
   I will not be deleted after closing the browser



                               HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 49
WebStorage
  if (!sessionStorage['counter']) {
   sessionStorage['counter'] = 0;
  } else {
   sessionStorage['counter']++;
  }

  document.querySelector('#content').innerHTML =
    '<p>This sample has been run ' +
    sessionStorage.getItem('counter') +
    ' times</p>' +
    '<p>(The value will be available until ' +
    we close the tab)</p>';




                                      HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 50
Web SQL Database
var db = window.openDatabase("Database Name",
                              "Database Version");
db.transaction(function(tx) {
  tx.executeSql("SELECT * FROM test",
                [],
                successCallback,
                errorCallback);
});




                                      HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 51
Geolocation
if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(function(position) {
    var lat = position.coords.latitude;
    var lng = position.coords.longitude;
    var options = {
      position: new google.maps.LatLng(lat, lng) }
    var marker = new google.maps.Marker(options);
    marker.setMap(map);
  });
}




                                      HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 52
Drag and Drop API
  <li draggable="true" id="pic1" ondragstart="drag(this, event)">
    <span>foobar.png</span>
  </li>



  <div id="trash" ondrop="drop(this, event)" ondragenter="return
false" ondragover="return false"></div>



  function drag(target, e) {
    e.dataTransfer.setData('Text', target.id);
  }
  function drop(target, e) {
    var id = e.dataTransfer.getData('Text');
    target.appendChild(document.getElementById(id));
    e.preventDefault();
  }

                                         HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 53
Using the File API (I)
var reader = new FileReader();
reader.onload = function(e) {
   var bin = e.target.result;
   // „bin“ is the binary string
};
reader.readAsBinaryString(file);




                     HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 54
Using the File API (II)
   var xhr = new XMLHttpRequest();
   xhr.open("POST", "upload.php");
   xhr.overrideMimeType('text/plain;
     charset=x-user-defined-binary');
   xhr.sendAsBinary(bin);




                           HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 55
Using the File API (II)
            var xhr = new XMLHttpRequest();
            xhr.open("POST", "upload.php");
            xhr.overrideMimeType('text/plain;
              charset=x-user-defined-binary');
            xhr.sendAsBinary(bin);




xhr.upload.addEventListener("progress", function(e) {
  if (e.lengthComputable) {
    var percentage = Math.round((e.loaded * 100) / e.total);
    // do something
  }
}, false);



                                    HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 55
This was just the JavaScript
       beginning...


                 HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 56
What‘s left for us
PHP developers?


           HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 57
HTML5 is part of an
application framework!


             HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 58
The LAMP stack gets a
       bust of Janus

 real time web component

web application component

               HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 59
PHP developers have to
learn JavaScript as well!


               HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 60
Modern PHP applications
      use both:

     JavaScript   PHP
       50%        50%



                   HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 61
HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 62
<!DOCTYPE html>



         HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 63
<!DOCTYPE html>



         HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 63
HTML5 page structure
    <header>
    <hgroup>
      <nav>
    <article>
    <footer>
            HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 64
HTML5 article structure

     <section>
      <aside>



              HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 65
New semantic tags
    <time>
  <details>
   <figure>
 <figcaption>
    <mark>

           HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 66
New link relations

<link rel="alternate" type="application/rss+xml" href="http://www.php.net/feed">
<link rel="icon" href="/favicon.ico">
<link rel="pingback" href="http://www.phpmyfaq.de/xmlrpc.php">
<link rel="prefetch" href="http://www.phpmyfaq.de/main.php">
...
<a rel="archives" href="http://www.phpmyfaq.de/archives">Old posts</a>
<a rel="external" href="http://www.php.net">PHP Homepage</a>
<a rel="license" href="http://www.apache.org/licenses/LICENSE-2.0">License</a>
<a rel="nofollow" href="http://www.ruby-lang.org/">Ruby Homepage</a>
<a rel="tag" href="http://devblog.phpmyfaq/category/PHP">PHP tagged postes</a>




                                                HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 67
WebForms
<input placeholder="Search Bookmarks and History">




                after clicking...



                              HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 68
WebForms
  <input maxlength="256" name="q" value="" autofocus>




<input maxlength="256" name="q" value="" required="true">




                                  HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 69
WebForms
<input type="tel"> for telephone numbers
<input type="url"> for web addresses
<input type="email"> for email addresses




                                HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 70
WebForms
<input type="number" min="0" max="10" step="2" value="6">



                                  0
                                  2
                                  4
                                  6
                                  8
                                 10

                                  HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 71
WebForms
<input type="range" min="0" max="10" step="2" value="6">




                                  HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 72
Datepicker WebForms
<input   type="date">
<input   type="month">
<input   type="week">
<input   type="time">
<input   type="datetime">
<input   type="datetime-local">




                            HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 73
WebForm Color picker
    <input type="color">




                  HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 74
contenteditable
<p contenteditable="true">Edit foobar!</p>


I Save it with
  I sessionStorage
  I localStorage
  I PHP powered backend with Ajax :-)


                            HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 75
<canvas>
<canvas id="canvas" width="838" height="220"></canvas>

<script>
  var canvasContext = $("#canvas").getContext("2d");
  canvasContext.fillRect(250, 25, 150, 100);

  canvasContext.beginPath();
  canvasContext.arc(450, 110, 100,
    Math.PI * 1/2, Math.PI * 3/2);
  canvasContext.lineWidth = 15;
  canvasContext.lineCap = 'round';
  canvasContext.strokeStyle = 'rgba(255, 127, 0, 0.5)';
  canvasContext.stroke();
</script>




                                     HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 76
<canvas>




      HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 77
WebGL



    HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 78
Have fun with HTML5!




            HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 79
And what about CSS3?



            HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 80
New selectors



  .row:nth-child(even) { background: #cccccc; }
  .row:nth-child(odd) { background: #ffffff; }


   row 1

   row 2

   row 3

   row 4


                              HTML5 for PHP Developers I   Mayflower GmbH I 10. September 2010 I 81
The state of WebFonts...



@font-face {
    font-family: 'FuturaNew';
    src: url(FuturaNew.otf);
}
header {
    font-family: 'LeagueGothic';
    colour: red;
}



        No font replacement! :-)
                                   HTML5 for PHP Developers I   Mayflower GmbH I 10. September 2010 I 82
More new CSS3 features...



I better font support
I better text wrapping
I columns
I opacity
I Hue/saturation/luminance color model
I Rounded corners, finally! ;-)
I Gradients
I Shadows
I better backgrounds
I transitions
I animations
                                         HTML5 for PHP Developers I   Mayflower GmbH I 10. September 2010 I 83
HTML5 readiness



         HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 84
HTML5 readiness
                    86 %
         77 %                     79 %
                                                                     72 %




26 %


IE8    Firefox 3.6 Chrome 5.0
                                Safari 5.0
                                                            Opera 10.5
                                   HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 85
HTML5 readiness
    2010


         HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 86
HTML5 readiness
              Cross-     content      New
                                               getElementsBy
             document               semantic                                 <video>             <audio>
                         editable              ClassName()
             messaging                tags


IE 8.0

FF 3.6

Chrome 5

Safari 5

Opera 10.5
                                                HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 87
HTML5 readiness
               Basic    Text API for         Offline Web                     HTML5
             <canvas>            Drag n Drop                                        Inline SVG
                        <canvas>             Applications                  WebForms
              support


IE 8.0

FF 3.6

Chrome 5

Safari 5

Opera 10.5
                                              HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 88
HTML5 readiness
    201 1


         HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 89
HTML5 readiness
             Cross-     content      New
                                              getElementsBy
            document               semantic                                 <video>             <audio>
                        editable              ClassName()
            messaging                tags


IE 9.0

FF 4.0

Chrome 6

Safari

Opera
                                               HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 90
HTML5 readiness
              Basic    Text API for         Offline Web                     HTML5
            <canvas>            Drag n Drop                                        Inline SVG
                       <canvas>             Applications                  WebForms
             support


IE 9.0

FF 4.0

Chrome 6

Safari

Opera
                                             HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 91
But...




         HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 92
Browser stats 2010
      IE 8.0                                                                                                       29,0 %
 Firefox 3.6                                                                                   24,0 %
       IE 7.0                                         13,0 %
      IE 6.0                                  7,5 %
Chrome 6.0                                 6,4 %
Chrome 5.0                            4,5 %
 Firefox 3.5                          4,4 %
  Safari 5.0                       2,9 %
 Firefox 3.0                   2,4 %
Opera 10.6                   1,4 %
  Safari 4.0               0,8 %
 Firefox 2.0               0,4 %
       Other                       2,9 %

StatCounter Global Stats
                                                           HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 93
What‘s already safe for
        using?


              HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 94
contenteditable
postMessage (same domain)
postMessage (cross domain)
  WebStorage with IE 8+

               HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 95
Any help?
A cool JavaScript library!
    e.g. Modernizr

                HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 96
HTML5 helper No.1




          HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 97
Questions?




       HTML5 for PHP Developers I   Mayflower GmbH I 23. September 2010 I 98
Thank you very much!




Contact   Thorsten Rinne
          thorsten.rinne@mayflower.de
          +49 89 242054-31

          Mayflower GmbH
          Mannhardtstr. 6
          80538 München




                                       © 2010 Mayflower GmbH

More Related Content

Viewers also liked (13)

Gamifying Moms
Gamifying MomsGamifying Moms
Gamifying Moms
Jack DeManche
 
португалия
португалияпортугалия
португалия
IroK_N1
 
ExposicióN De Foto, Trab Final
ExposicióN De Foto, Trab FinalExposicióN De Foto, Trab Final
ExposicióN De Foto, Trab Final
dianachavezp
 
Flash Lite in Nokia Devices
Flash Lite in Nokia DevicesFlash Lite in Nokia Devices
Flash Lite in Nokia Devices
Risto Alminen
 
BDD
BDDBDD
BDD
Mayflower GmbH
 
Max Köhler - Real-Time-Monitoring
Max Köhler - Real-Time-MonitoringMax Köhler - Real-Time-Monitoring
Max Köhler - Real-Time-Monitoring
Mayflower GmbH
 
Zend Framework meets Doctrine 2
Zend Framework meets Doctrine 2Zend Framework meets Doctrine 2
Zend Framework meets Doctrine 2
Mayflower GmbH
 
Mayflower Mobile Apps Entwickeln
Mayflower Mobile Apps EntwickelnMayflower Mobile Apps Entwickeln
Mayflower Mobile Apps Entwickeln
Mayflower GmbH
 
Kognitiivinen Mallintaminen
Kognitiivinen MallintaminenKognitiivinen Mallintaminen
Kognitiivinen Mallintaminen
Jari Sjölund
 
Yhteisöllinen toimintakulttuuri ja arviointi sähköisesti lukiossa
Yhteisöllinen toimintakulttuuri ja arviointi sähköisesti lukiossaYhteisöllinen toimintakulttuuri ja arviointi sähköisesti lukiossa
Yhteisöllinen toimintakulttuuri ja arviointi sähköisesti lukiossa
Jari Sjölund
 
Ylioppilaskokeen sähköistyminen - muutoksia mafyke-opetuksessa? - lukion mafy...
Ylioppilaskokeen sähköistyminen - muutoksia mafyke-opetuksessa? - lukion mafy...Ylioppilaskokeen sähköistyminen - muutoksia mafyke-opetuksessa? - lukion mafy...
Ylioppilaskokeen sähköistyminen - muutoksia mafyke-opetuksessa? - lukion mafy...
Jari Sjölund
 
One Click Deployment with Jenkins - PHP Unconference 2011
One Click Deployment with Jenkins - PHP Unconference 2011One Click Deployment with Jenkins - PHP Unconference 2011
One Click Deployment with Jenkins - PHP Unconference 2011
Mayflower GmbH
 
One click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP MunichOne click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP Munich
Mayflower GmbH
 
португалия
португалияпортугалия
португалия
IroK_N1
 
ExposicióN De Foto, Trab Final
ExposicióN De Foto, Trab FinalExposicióN De Foto, Trab Final
ExposicióN De Foto, Trab Final
dianachavezp
 
Flash Lite in Nokia Devices
Flash Lite in Nokia DevicesFlash Lite in Nokia Devices
Flash Lite in Nokia Devices
Risto Alminen
 
Max Köhler - Real-Time-Monitoring
Max Köhler - Real-Time-MonitoringMax Köhler - Real-Time-Monitoring
Max Köhler - Real-Time-Monitoring
Mayflower GmbH
 
Zend Framework meets Doctrine 2
Zend Framework meets Doctrine 2Zend Framework meets Doctrine 2
Zend Framework meets Doctrine 2
Mayflower GmbH
 
Mayflower Mobile Apps Entwickeln
Mayflower Mobile Apps EntwickelnMayflower Mobile Apps Entwickeln
Mayflower Mobile Apps Entwickeln
Mayflower GmbH
 
Kognitiivinen Mallintaminen
Kognitiivinen MallintaminenKognitiivinen Mallintaminen
Kognitiivinen Mallintaminen
Jari Sjölund
 
Yhteisöllinen toimintakulttuuri ja arviointi sähköisesti lukiossa
Yhteisöllinen toimintakulttuuri ja arviointi sähköisesti lukiossaYhteisöllinen toimintakulttuuri ja arviointi sähköisesti lukiossa
Yhteisöllinen toimintakulttuuri ja arviointi sähköisesti lukiossa
Jari Sjölund
 
Ylioppilaskokeen sähköistyminen - muutoksia mafyke-opetuksessa? - lukion mafy...
Ylioppilaskokeen sähköistyminen - muutoksia mafyke-opetuksessa? - lukion mafy...Ylioppilaskokeen sähköistyminen - muutoksia mafyke-opetuksessa? - lukion mafy...
Ylioppilaskokeen sähköistyminen - muutoksia mafyke-opetuksessa? - lukion mafy...
Jari Sjölund
 
One Click Deployment with Jenkins - PHP Unconference 2011
One Click Deployment with Jenkins - PHP Unconference 2011One Click Deployment with Jenkins - PHP Unconference 2011
One Click Deployment with Jenkins - PHP Unconference 2011
Mayflower GmbH
 
One click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP MunichOne click deployment with Jenkins - PHP Munich
One click deployment with Jenkins - PHP Munich
Mayflower GmbH
 

Similar to HTML5 for PHP Developers - IPC (20)

HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPC
Mayflower GmbH
 
HTML5 Workshop
HTML5 WorkshopHTML5 Workshop
HTML5 Workshop
Mayflower GmbH
 
Realtime web
Realtime webRealtime web
Realtime web
Johann-Peter Hartmann
 
One Click Deployment with Jenkins
One Click Deployment with JenkinsOne Click Deployment with Jenkins
One Click Deployment with Jenkins
Mayflower GmbH
 
Intro To JavaScript
Intro To JavaScriptIntro To JavaScript
Intro To JavaScript
Ivy Rueb
 
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-9-52-74
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-9-52-74Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-9-52-74
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-9-52-74
Ivy Rueb
 
2016 Streaming Media West: Transitioning from Flash to HTML5
2016 Streaming Media West: Transitioning from Flash to HTML52016 Streaming Media West: Transitioning from Flash to HTML5
2016 Streaming Media West: Transitioning from Flash to HTML5
Erica Beavers
 
Agile php software development
Agile php software developmentAgile php software development
Agile php software development
Mayflower GmbH
 
State-of-the-art real-time web applications
State-of-the-art real-time web applicationsState-of-the-art real-time web applications
State-of-the-art real-time web applications
Paul Seiffert
 
Microsoft ♥ Open Source
Microsoft ♥ Open SourceMicrosoft ♥ Open Source
Microsoft ♥ Open Source
Ricardo Peres
 
Intro to js august 31
Intro to js august 31Intro to js august 31
Intro to js august 31
Thinkful
 
Flash-based audio and video communication
Flash-based audio and video communicationFlash-based audio and video communication
Flash-based audio and video communication
Kundan Singh
 
Microsoft html5 web camp june 15 in nyc notes
Microsoft html5 web camp june 15 in nyc notesMicrosoft html5 web camp june 15 in nyc notes
Microsoft html5 web camp june 15 in nyc notes
Isidore Gotto
 
Intro to js september 19
Intro to js september 19Intro to js september 19
Intro to js september 19
Thinkful
 
Streaming Media West 2017 - HTML5 Workshop
Streaming Media West 2017 - HTML5 WorkshopStreaming Media West 2017 - HTML5 Workshop
Streaming Media West 2017 - HTML5 Workshop
Erica Beavers
 
Code Quality in an agile world - PHP Usergroup Hamburg
Code Quality in an agile world - PHP Usergroup HamburgCode Quality in an agile world - PHP Usergroup Hamburg
Code Quality in an agile world - PHP Usergroup Hamburg
Frank Sons
 
Everything That You Need To Know About HTML5
Everything That You Need To Know About HTML5Everything That You Need To Know About HTML5
Everything That You Need To Know About HTML5
KaneJordy1
 
Flex And Php 101
Flex And Php 101Flex And Php 101
Flex And Php 101
Kalimulla Kattubadi
 
When e-commerce meets Symfony
When e-commerce meets SymfonyWhen e-commerce meets Symfony
When e-commerce meets Symfony
Marc Morera
 
Flash2HTML Convertions #fbm2012
Flash2HTML Convertions #fbm2012Flash2HTML Convertions #fbm2012
Flash2HTML Convertions #fbm2012
Datamatics Global Services GmbH
 
HTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPCHTML5 for PHP Developers - IPC
HTML5 for PHP Developers - IPC
Mayflower GmbH
 
One Click Deployment with Jenkins
One Click Deployment with JenkinsOne Click Deployment with Jenkins
One Click Deployment with Jenkins
Mayflower GmbH
 
Intro To JavaScript
Intro To JavaScriptIntro To JavaScript
Intro To JavaScript
Ivy Rueb
 
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-9-52-74
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-9-52-74Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-9-52-74
Deck 8983a1d9-68df-4447-8481-3b4fd0de734c-9-52-74
Ivy Rueb
 
2016 Streaming Media West: Transitioning from Flash to HTML5
2016 Streaming Media West: Transitioning from Flash to HTML52016 Streaming Media West: Transitioning from Flash to HTML5
2016 Streaming Media West: Transitioning from Flash to HTML5
Erica Beavers
 
Agile php software development
Agile php software developmentAgile php software development
Agile php software development
Mayflower GmbH
 
State-of-the-art real-time web applications
State-of-the-art real-time web applicationsState-of-the-art real-time web applications
State-of-the-art real-time web applications
Paul Seiffert
 
Microsoft ♥ Open Source
Microsoft ♥ Open SourceMicrosoft ♥ Open Source
Microsoft ♥ Open Source
Ricardo Peres
 
Intro to js august 31
Intro to js august 31Intro to js august 31
Intro to js august 31
Thinkful
 
Flash-based audio and video communication
Flash-based audio and video communicationFlash-based audio and video communication
Flash-based audio and video communication
Kundan Singh
 
Microsoft html5 web camp june 15 in nyc notes
Microsoft html5 web camp june 15 in nyc notesMicrosoft html5 web camp june 15 in nyc notes
Microsoft html5 web camp june 15 in nyc notes
Isidore Gotto
 
Intro to js september 19
Intro to js september 19Intro to js september 19
Intro to js september 19
Thinkful
 
Streaming Media West 2017 - HTML5 Workshop
Streaming Media West 2017 - HTML5 WorkshopStreaming Media West 2017 - HTML5 Workshop
Streaming Media West 2017 - HTML5 Workshop
Erica Beavers
 
Code Quality in an agile world - PHP Usergroup Hamburg
Code Quality in an agile world - PHP Usergroup HamburgCode Quality in an agile world - PHP Usergroup Hamburg
Code Quality in an agile world - PHP Usergroup Hamburg
Frank Sons
 
Everything That You Need To Know About HTML5
Everything That You Need To Know About HTML5Everything That You Need To Know About HTML5
Everything That You Need To Know About HTML5
KaneJordy1
 
When e-commerce meets Symfony
When e-commerce meets SymfonyWhen e-commerce meets Symfony
When e-commerce meets Symfony
Marc Morera
 

More from Mayflower GmbH (20)

Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mayflower GmbH
 
Why and what is go
Why and what is goWhy and what is go
Why and what is go
Mayflower GmbH
 
Agile Anti-Patterns
Agile Anti-PatternsAgile Anti-Patterns
Agile Anti-Patterns
Mayflower GmbH
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: Security
Mayflower GmbH
 
Vom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftVom Entwickler zur Führungskraft
Vom Entwickler zur Führungskraft
Mayflower GmbH
 
Produktive teams
Produktive teamsProduktive teams
Produktive teams
Mayflower GmbH
 
Salt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native ClientSalt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native Client
Mayflower GmbH
 
Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debugging
Mayflower GmbH
 
Usability im web
Usability im webUsability im web
Usability im web
Mayflower GmbH
 
Rewrites überleben
Rewrites überlebenRewrites überleben
Rewrites überleben
Mayflower GmbH
 
JavaScript Security
JavaScript SecurityJavaScript Security
JavaScript Security
Mayflower GmbH
 
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
Mayflower GmbH
 
Responsive Webdesign
Responsive WebdesignResponsive Webdesign
Responsive Webdesign
Mayflower GmbH
 
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyNative Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Mayflower GmbH
 
Pair Programming Mythbusters
Pair Programming MythbustersPair Programming Mythbusters
Pair Programming Mythbusters
Mayflower GmbH
 
Shoeism - Frau im Glück
Shoeism - Frau im GlückShoeism - Frau im Glück
Shoeism - Frau im Glück
Mayflower GmbH
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefern
Mayflower GmbH
 
Von 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsVon 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 Sprints
Mayflower GmbH
 
Piwik anpassen und skalieren
Piwik anpassen und skalierenPiwik anpassen und skalieren
Piwik anpassen und skalieren
Mayflower GmbH
 
Agilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastAgilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce Breakfast
Mayflower GmbH
 
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mayflower GmbH
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: Security
Mayflower GmbH
 
Vom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftVom Entwickler zur Führungskraft
Vom Entwickler zur Führungskraft
Mayflower GmbH
 
Salt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native ClientSalt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native Client
Mayflower GmbH
 
Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debugging
Mayflower GmbH
 
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
Mayflower GmbH
 
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyNative Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Mayflower GmbH
 
Pair Programming Mythbusters
Pair Programming MythbustersPair Programming Mythbusters
Pair Programming Mythbusters
Mayflower GmbH
 
Shoeism - Frau im Glück
Shoeism - Frau im GlückShoeism - Frau im Glück
Shoeism - Frau im Glück
Mayflower GmbH
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefern
Mayflower GmbH
 
Von 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsVon 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 Sprints
Mayflower GmbH
 
Piwik anpassen und skalieren
Piwik anpassen und skalierenPiwik anpassen und skalieren
Piwik anpassen und skalieren
Mayflower GmbH
 
Agilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastAgilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce Breakfast
Mayflower GmbH
 

Recently uploaded (20)

Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
MINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PRMINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PR
MIND CTI
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Social Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTechSocial Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTech
Steve Jonas
 
TrsLabs Consultants - DeFi, WEb3, Token Listing
TrsLabs Consultants - DeFi, WEb3, Token ListingTrsLabs Consultants - DeFi, WEb3, Token Listing
TrsLabs Consultants - DeFi, WEb3, Token Listing
Trs Labs
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Web and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in RajpuraWeb and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in Rajpura
Erginous Technology
 
Unlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive GuideUnlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive Guide
vikasascentbpo
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
MINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PRMINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PR
MIND CTI
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Social Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTechSocial Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTech
Steve Jonas
 
TrsLabs Consultants - DeFi, WEb3, Token Listing
TrsLabs Consultants - DeFi, WEb3, Token ListingTrsLabs Consultants - DeFi, WEb3, Token Listing
TrsLabs Consultants - DeFi, WEb3, Token Listing
Trs Labs
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Web and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in RajpuraWeb and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in Rajpura
Erginous Technology
 
Unlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive GuideUnlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive Guide
vikasascentbpo
 

HTML5 for PHP Developers - IPC

  • 1. HTML5 for PHP Developers Thorsten Rinne I 25. September 2010 PHP UnConference Hamburg 2010 © 2010 Mayflower GmbH
  • 2. Senior Developer / Team Lead Head of Open Source Labs @ MAYFLOWER GMBH HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 2
  • 3. @ThorstenRinne HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 3
  • 4. Topic: HTML5 for PHP Developers
  • 5. Topic: HTML5 for PHP Developers
  • 6. I won‘t talk about <video> and <audio> HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 5
  • 7. Yes, Youporn is using HTML5 video! HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 6
  • 8. Who‘s already using HTML5? HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 7
  • 9. HTML5 in one sentence? HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 8
  • 10. „HTML5 is about moving from documents to applications and from hacks to solutions.“ Christian Heilmann on Twitter HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 9
  • 11. HTML5 for developers? HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 10
  • 12. HTML5 ~= HTML + CSS + JS HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 11
  • 13. 1999: PHP 3.0 - MySQL 3.22 Apache 1.3 HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 12
  • 14. 1999: Internet Explorer 5.0 XMLHttpRequest Object HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 13
  • 15. As time goes by ... HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 14
  • 16. since 5.0 (1999) since 1.0 (2004) since 1.2 (2004) since 7.6 (2004) HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 15
  • 17. 2005: Ajax: A New Approach to Web Applications Jesse James Garrett: http://www.adaptivepath.com/ideas/essays/archives/000385.php HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 16
  • 18. HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 17
  • 19. Google Suggest Google Mail Google Maps HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 18
  • 20. 2006: Comet Jesse James Garrett: http://www.adaptivepath.com/ideas/essays/archives/000385.php HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 19
  • 21. HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 20
  • 22. HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 21
  • 23. Push HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 21
  • 24. Push Ajax HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 21
  • 25. Push Ajax Push HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 21
  • 26. Okay, what‘s happening? HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 22
  • 27. Content vs. Context HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 23
  • 28. Facebook is an application! HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 24
  • 29. Page vs. Stream HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 25
  • 30. Twitter is an application! HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 26
  • 31. Applications? HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 27
  • 32. Apps! HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 28
  • 33. HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 29
  • 34. online == offline == online HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 30
  • 35. Is this the new web? HTML5 for PHP Developers I Mayflower GmbH I 10. September 2010 I 31
  • 36. The future is a web app! HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 32
  • 37. The mobile browser ... I ... is identical to the desktop browser I ... speaks HTML5 •Geolocation support •Websockets support •Offline apps I Faster update cycles than on the desktop I it‘s a cross plattform realtime runtime HTML5 for PHP Developers I Mayflower GmbH I 10. September 2010 I 33
  • 38. But what about HTML5? And what about PHP? HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 34
  • 39. 2000: PHP chat style polling Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 35
  • 40. 2000: PHP chat style polling Hey, Wazzup? Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 35
  • 41. 2000: PHP chat style polling Um, nothing, actually. Hey, Wazzup? Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 35
  • 42. 2000: PHP chat style polling Um, nothing, actually. Hey, Wazzup? 1 sec ... Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 35
  • 43. 2000: PHP chat style polling Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 35
  • 44. 2000: PHP chat style polling Hey, Wazzup? Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 35
  • 45. 2000: PHP chat style polling Um, nothing, actually. Hey, Wazzup? Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 35
  • 46. 2000: PHP chat style polling Um, nothing, actually. Hey, Wazzup? 1 sec ... Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 35
  • 47. 2000: PHP chat style polling Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 35
  • 48. 2000: PHP chat style polling Hey, Wazzup? Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 35
  • 49. 2000: PHP chat style polling Um, nothing, actually. Hey, Wazzup? Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 35
  • 50. 2000: PHP chat style polling Um, nothing, actually. Hey, Wazzup? 1 sec ... Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 35
  • 51. 2000: PHP chat style polling Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 35
  • 52. 2000: PHP chat style polling WTF ?! Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 35
  • 53. 1 User = 1 req / sec CPU #FAIL HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 36
  • 54. 2006: COMET style long poll Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 37
  • 55. 2006: COMET style long poll Hey, Wazzup? Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 37
  • 56. 2006: COMET style long poll Um, nothing, actually ... Hey, Wazzup? Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 37
  • 57. 2006: COMET style long poll well ... Hey, Wazzup? Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 37
  • 58. 2006: COMET style long poll wait ... Hey, Wazzup? Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 37
  • 59. 2006: COMET style long poll Uh, there is something ... Hey, Wazzup? Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 37
  • 60. 2006: COMET style long poll No, nothing. Hey, Wazzup? Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 37
  • 61. 2006: COMET style long poll WTF ?! Client Server HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 37
  • 62. 1 User = 1 Apache child MEMORY #FAIL HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 38
  • 63. HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 39
  • 64. MEMORY: WIN CPU: 1/2 WIN HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 40
  • 65. Client PHP- Server Client Client HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 41
  • 66. WebSockets to the rescue! var ws = new WebSocket("ws://example.com/service"); ws.onopen = function() { ws.send("message to send"); .... }; ws.onmessage = function (event) { var received_msg = event.data; ... }; ws.onclose = function() { // websocket is closed. }; HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 42
  • 67. WebSockets & PHP I http://code.google.com/p/phpwebsocket/ I Currently an ugly hack I But quite easy: list($resource,$host,$origin) = getheaders($buffer); $upgrade = "HTTP/1.1 101 Web Socket Protocol Handshakern" .            "Upgrade: WebSocketrn" .            "Connection: Upgradern" .            "WebSocket-Origin: " . $origin . "rn" .            "WebSocket-Location: ws://" . $host . $resource . "rnrn"; $handshake = true; socket_write($socket,$upgrade.chr(0),strlen($upgrade.chr(0))); HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 43
  • 68. More logic will move to the client... the browser! HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 44
  • 69. Web Worker I Multi-threaded JavaScript I Easy example: main.js: var worker = new Worker('backgroundtask.js'); worker.onmessage = function(event) { alert(event.data); }; backgroundtask.js: self.onmessage = function(event) { // Do some tough work... self.postMessage(some_data); } HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 45
  • 70. Offline Application Cache index.html: <html manifest="cache.manifest"> window.applicationCache.addEventListener('checking', updateCacheStatus, false); cache.manifest: CACHE MANIFEST CACHE: /html5/demo/index.html /html5/demo/style.css /html5/demo/background.png HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 46
  • 71. Web Messaging <iframe src="http://www.example.org/message/" id="iframe"> </iframe> <form id="form">   <input type="text" id="msg" value="Message to send"/>   <input type="submit"/> </form> <script> window.onload = function() {     var win = document.getElementById("iframe").contentWindow;       document.getElementById("form").onsubmit = function(e) {       win.postMessage(document.getElementById("msg").value);         e.preventDefault();       }; }; </script> HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 47
  • 72. Web Messaging <strong>This iframe is located on www.example.com</strong> <div id="test">Hello, World!</div> <script> document.addEventListener("message", function(e){     document.getElementById("test").textContent =       e.domain + " said: " + e.data; }, false); </script> HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 48
  • 73. WebStorage I Short living data I sessionStorage object I will be deleted after closing the browser I Long living data I localStorage object I will not be deleted after closing the browser HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 49
  • 74. WebStorage if (!sessionStorage['counter']) {    sessionStorage['counter'] = 0; } else {    sessionStorage['counter']++; } document.querySelector('#content').innerHTML =     '<p>This sample has been run ' + sessionStorage.getItem('counter') + ' times</p>' +     '<p>(The value will be available until ' + we close the tab)</p>'; HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 50
  • 75. Web SQL Database var db = window.openDatabase("Database Name", "Database Version"); db.transaction(function(tx) { tx.executeSql("SELECT * FROM test", [], successCallback, errorCallback); }); HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 51
  • 76. Geolocation if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { var lat = position.coords.latitude; var lng = position.coords.longitude; var options = { position: new google.maps.LatLng(lat, lng) } var marker = new google.maps.Marker(options); marker.setMap(map); }); } HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 52
  • 77. Drag and Drop API <li draggable="true" id="pic1" ondragstart="drag(this, event)"> <span>foobar.png</span> </li> <div id="trash" ondrop="drop(this, event)" ondragenter="return false" ondragover="return false"></div> function drag(target, e) { e.dataTransfer.setData('Text', target.id); } function drop(target, e) { var id = e.dataTransfer.getData('Text'); target.appendChild(document.getElementById(id)); e.preventDefault(); } HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 53
  • 78. Using the File API (I) var reader = new FileReader(); reader.onload = function(e) { var bin = e.target.result; // „bin“ is the binary string }; reader.readAsBinaryString(file); HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 54
  • 79. Using the File API (II) var xhr = new XMLHttpRequest(); xhr.open("POST", "upload.php"); xhr.overrideMimeType('text/plain; charset=x-user-defined-binary'); xhr.sendAsBinary(bin); HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 55
  • 80. Using the File API (II) var xhr = new XMLHttpRequest(); xhr.open("POST", "upload.php"); xhr.overrideMimeType('text/plain; charset=x-user-defined-binary'); xhr.sendAsBinary(bin); xhr.upload.addEventListener("progress", function(e) { if (e.lengthComputable) { var percentage = Math.round((e.loaded * 100) / e.total); // do something } }, false); HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 55
  • 81. This was just the JavaScript beginning... HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 56
  • 82. What‘s left for us PHP developers? HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 57
  • 83. HTML5 is part of an application framework! HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 58
  • 84. The LAMP stack gets a bust of Janus real time web component web application component HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 59
  • 85. PHP developers have to learn JavaScript as well! HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 60
  • 86. Modern PHP applications use both: JavaScript PHP 50% 50% HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 61
  • 87. HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 62
  • 88. <!DOCTYPE html> HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 63
  • 89. <!DOCTYPE html> HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 63
  • 90. HTML5 page structure <header> <hgroup> <nav> <article> <footer> HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 64
  • 91. HTML5 article structure <section> <aside> HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 65
  • 92. New semantic tags <time> <details> <figure> <figcaption> <mark> HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 66
  • 93. New link relations <link rel="alternate" type="application/rss+xml" href="http://www.php.net/feed"> <link rel="icon" href="/favicon.ico"> <link rel="pingback" href="http://www.phpmyfaq.de/xmlrpc.php"> <link rel="prefetch" href="http://www.phpmyfaq.de/main.php"> ... <a rel="archives" href="http://www.phpmyfaq.de/archives">Old posts</a> <a rel="external" href="http://www.php.net">PHP Homepage</a> <a rel="license" href="http://www.apache.org/licenses/LICENSE-2.0">License</a> <a rel="nofollow" href="http://www.ruby-lang.org/">Ruby Homepage</a> <a rel="tag" href="http://devblog.phpmyfaq/category/PHP">PHP tagged postes</a> HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 67
  • 94. WebForms <input placeholder="Search Bookmarks and History"> after clicking... HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 68
  • 95. WebForms <input maxlength="256" name="q" value="" autofocus> <input maxlength="256" name="q" value="" required="true"> HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 69
  • 96. WebForms <input type="tel"> for telephone numbers <input type="url"> for web addresses <input type="email"> for email addresses HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 70
  • 97. WebForms <input type="number" min="0" max="10" step="2" value="6"> 0 2 4 6 8 10 HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 71
  • 98. WebForms <input type="range" min="0" max="10" step="2" value="6"> HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 72
  • 99. Datepicker WebForms <input type="date"> <input type="month"> <input type="week"> <input type="time"> <input type="datetime"> <input type="datetime-local"> HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 73
  • 100. WebForm Color picker <input type="color"> HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 74
  • 101. contenteditable <p contenteditable="true">Edit foobar!</p> I Save it with I sessionStorage I localStorage I PHP powered backend with Ajax :-) HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 75
  • 102. <canvas> <canvas id="canvas" width="838" height="220"></canvas> <script> var canvasContext = $("#canvas").getContext("2d"); canvasContext.fillRect(250, 25, 150, 100); canvasContext.beginPath(); canvasContext.arc(450, 110, 100, Math.PI * 1/2, Math.PI * 3/2); canvasContext.lineWidth = 15; canvasContext.lineCap = 'round'; canvasContext.strokeStyle = 'rgba(255, 127, 0, 0.5)'; canvasContext.stroke(); </script> HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 76
  • 103. <canvas> HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 77
  • 104. WebGL HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 78
  • 105. Have fun with HTML5! HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 79
  • 106. And what about CSS3? HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 80
  • 107. New selectors .row:nth-child(even) { background: #cccccc; } .row:nth-child(odd) { background: #ffffff; } row 1 row 2 row 3 row 4 HTML5 for PHP Developers I Mayflower GmbH I 10. September 2010 I 81
  • 108. The state of WebFonts... @font-face { font-family: 'FuturaNew'; src: url(FuturaNew.otf); } header { font-family: 'LeagueGothic'; colour: red; } No font replacement! :-) HTML5 for PHP Developers I Mayflower GmbH I 10. September 2010 I 82
  • 109. More new CSS3 features... I better font support I better text wrapping I columns I opacity I Hue/saturation/luminance color model I Rounded corners, finally! ;-) I Gradients I Shadows I better backgrounds I transitions I animations HTML5 for PHP Developers I Mayflower GmbH I 10. September 2010 I 83
  • 110. HTML5 readiness HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 84
  • 111. HTML5 readiness 86 % 77 % 79 % 72 % 26 % IE8 Firefox 3.6 Chrome 5.0 Safari 5.0 Opera 10.5 HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 85
  • 112. HTML5 readiness 2010 HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 86
  • 113. HTML5 readiness Cross- content New getElementsBy document semantic <video> <audio> editable ClassName() messaging tags IE 8.0 FF 3.6 Chrome 5 Safari 5 Opera 10.5 HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 87
  • 114. HTML5 readiness Basic Text API for Offline Web HTML5 <canvas> Drag n Drop Inline SVG <canvas> Applications WebForms support IE 8.0 FF 3.6 Chrome 5 Safari 5 Opera 10.5 HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 88
  • 115. HTML5 readiness 201 1 HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 89
  • 116. HTML5 readiness Cross- content New getElementsBy document semantic <video> <audio> editable ClassName() messaging tags IE 9.0 FF 4.0 Chrome 6 Safari Opera HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 90
  • 117. HTML5 readiness Basic Text API for Offline Web HTML5 <canvas> Drag n Drop Inline SVG <canvas> Applications WebForms support IE 9.0 FF 4.0 Chrome 6 Safari Opera HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 91
  • 118. But... HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 92
  • 119. Browser stats 2010 IE 8.0 29,0 % Firefox 3.6 24,0 % IE 7.0 13,0 % IE 6.0 7,5 % Chrome 6.0 6,4 % Chrome 5.0 4,5 % Firefox 3.5 4,4 % Safari 5.0 2,9 % Firefox 3.0 2,4 % Opera 10.6 1,4 % Safari 4.0 0,8 % Firefox 2.0 0,4 % Other 2,9 % StatCounter Global Stats HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 93
  • 120. What‘s already safe for using? HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 94
  • 121. contenteditable postMessage (same domain) postMessage (cross domain) WebStorage with IE 8+ HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 95
  • 122. Any help? A cool JavaScript library! e.g. Modernizr HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 96
  • 123. HTML5 helper No.1 HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 97
  • 124. Questions? HTML5 for PHP Developers I Mayflower GmbH I 23. September 2010 I 98
  • 125. Thank you very much! Contact Thorsten Rinne thorsten.rinne@mayflower.de +49 89 242054-31 Mayflower GmbH Mannhardtstr. 6 80538 München © 2010 Mayflower GmbH