SlideShare una empresa de Scribd logo
1 de 68
Descargar para leer sin conexión
Daha Flash bir web?
Murat Can ALPAY
linkedin.com/in/mcalpay
mcatr.blogspot.com
● Ne sunulacak?
● HTML5 mi?
● Yazılım projeleri mi?
VS?



● Adil mi?
İçerik
●   Tarih
●   JavaScript
●   Canvas
●   Audio
●   WebSocket
●   Offline
Neden yeni bir HTML sürümü?

  ●     oyun geliştirilmesi için mi?
  ●     video için mi?
  ●     3d için mi?
  ●     ...




http://net.tutsplus.com/articles/general/a-brief-history-of-html5/
HTML5 Tarihi
  ● 2004
        ○ WHATWG (Apple, Mozilla, Opera)
  ● 2006
        ○ W3C XHTML
  ● 2008
        ○ İlk versiyon
        ○ Firefox 3, sonra diğerleri
  ● 2010
        ○ Steve Jobs, Flash Andıçı
  ● 2014
        ○ Final


http://net.tutsplus.com/articles/general/a-brief-history-of-html5/
W3C (HTML5 Tarihi)
  ● XHTML 2.0
        ○ No Backward Compability!
        ○ Strictly XML




http://net.tutsplus.com/articles/general/a-brief-history-of-html5/
WHAT WG
  ● 2004 W3C Workshop
  ● Backward Compatible
  ● Detailed Spec.
        ○ Non Strict HTML Parser




http://net.tutsplus.com/articles/general/a-brief-history-of-html5/
“The Web is, and should be, driven by technical merit, not consensus. The
       W3C pretends otherwise, and wastes a lot of time for it. The WHATWG
                             does not.” – Ian Hickson
                               Benevolent Dictator for Life

     <time> olayı




http://net.tutsplus.com/articles/general/a-brief-history-of-html5/
Jobs vs Adobe
 ● Kasım 2011
        ○ Adobe: Mobil ve TV için Flash olmayacak




http://en.wikipedia.org/wiki/Adobe_Flash
HTML5 Bugün
● Youtube HTML5 test
  ○ http://www.youtube.com/html5


● Mobile
  ○ Amazon
HTML5 Tarayıcı Desteği
JavaScript ?
● Minecraft
● Quake 3
● Cut the rope




                 JS
Minecraft in JS
● Orjinal MC 17.5 Milyon sattı




                                 JS
Quake in JS
http://media.tojicode.com/q3bsp/




                                   JS
Cut The Rope
http://www.cuttherope.ie/dev/
● Performance
  ○ 37 - 62 FPS




                                JS
JavaScript ?
for(i = 1; i <= 3; i++) {
      print();
}

function print() {
      for(i = 1; i <= 3; i++) {
           console.log(i);
      }
}




                                  JS
JavaScript ? (var)
for(var i = 1; i <= 3; i++) {
      print();
}

function print() {
      for(i = 1; i <= 3; i++) {
           console.log(i);
      }
}




                                  JS
JavaScript ? ( ?, var)
for(i = 1; i <= 3; i++) {
      print();
}

function print() {
      for(var i = 1; i <= 3; i++) {
           console.log(i);
      }
}




                                      JS
JavaScript ? (var, var)
for(var i = 1; i <= 3; i++) {
      print();
}

function print() {
      for(var i = 1; i <= 3; i++) {
           console.log(i);
      }
}




                                      JS
JavaScript ? (Tools)
● Chrome
  ○ Developer Tools


● Ant Scripts




                       JS
Canvas
● Alt seviye çizim kütüphanesi
● 2D
● 3D
  ○ WebGL
  ○ Three.js
Canvas (Context)
<canvas id="canvas" width="800px" height="600px"/>

var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
Canvas (Rectangle)

ctx.fillStyle = "red";
ctx.fillRect(50,50,400,300);
Canvas (State)
for(var i=0; i<data.length; i++) {
   ctx.save();
   ctx.translate(40+i*100, 460-dp*4);
   var dp = data[i];
   ctx.fillRect(0,0,50,dp*4);
   ctx.restore();
}
Canvas (Gradient)
var grad = ctx.createLinearGradient(0, 0, 800, 600);
grad.addColorStop(0, "red");
grad.addColorStop(1, "yellow");
ctx.fillStyle = grad;
Canvas (Path)
ctx.beginPath();
...
ctx.moveTo(x1,y1);
ctx.lineTo(x2,y2);
ctx.lineTo(x3,y3)
ctx.closePath();
Canvas (Image)
var spaceImg = new Image();
spaceImg.src = 'space.png';
ctx.drawImage(spaceImg, 0, 0);
Canvas (Edit an Image)
var img = new Image();
img.onload = function() {
  ctx.drawImage(img,0,0);
  var data =
  ctx.getImageData(0,0,
     canvas.width,canvas.height);
...
  ctx.putImageData(data,0,0);
}
img.src = "space.png";
Canvas (Text)
ctx.fillStyle = "white";
ctx.font = 16 + "pt Arial ";
ctx.fillText("fps :" + Math.floor(1000 / diffTime), 10,
20);
Canvas (Mouse Events)
canvas.addEventListener('mousemove', onMousemove, false);
canvas.addEventListener('mousedown', onMouseclick, false);

function onMousemove(ev) {
    var x, y;
    if (ev.layerX || ev.layerX == 0) { // Firefox
        x = ev.layerX;
        y = ev.layerY;
    } else if (ev.offsetX || ev.offsetX == 0) { // Opera
        x = ev.offsetX;
        y = ev.offsetY;
    }
}
Canvas (Animation)
window.requestAnimFrame = (function () {
    return window.requestAnimationFrame ||
            window.webkitRequestAnimationFrame ||
            window.mozRequestAnimationFrame ||
            window.oRequestAnimationFrame ||
            window.msRequestAnimationFrame ||
            function (callback) {
                window.setTimeout(callback, 1000 / 60);
            };
})();

window.requestAnimFrame(drawIt);
Audio
● 3D Positional Audio
Audio (Basic)
var actx = new window.webkitAudioContext();
var request = new XMLHttpRequest();
request.open('GET', '/blast.wav', true);
request.responseType = 'arraybuffer';
request.onload = function (ev) {
   actx.decodeAudioData(ev.target.response, function (buffer){
       var source = actx.createBufferSource();
       source.buffer = buffer;
       source.connect(actx.destination);
       source.noteOn(0);
   });
};
request.send();
Audio (Gain)
function playSource(buffer, gainVol, loop) {
    var gnode = actx.createGainNode();
    var source = actx.createBufferSource();
    source.loop = loop;
    source.buffer = buffer;
    source.connect(gnode);
    gnode.connect(actx.destination);
    gnode.gain.value = gainVol;
    source.noteOn(0);
}
Audio (AudioPannerNode)
function playPositionalSource(holder, src, dest) {
    var gnode = actx.createGainNode();
    var source = actx.createBufferSource();
    source.buffer = holder.src;
    var panner = actx.createPanner();
    panner.setPosition(src.x / 800, src.y / 600, 0);
    panner.connect(gnode);
    gnode.connect(actx.destination);
    source.connect(panner);
    actx.listener.setPosition(dest.x / 800, dest.y / 600, 0);
    gnode.gain.value = holder.gain;
    source.noteOn(0);
}
WebSocket
●   Basit API
●   Fazladan Başlık Bilgisi Yok
●   Soket / Port Gerek
●   Sunucu Desteği
WebSocket (Callbacks)
var connection = new WebSocket('ws://localhost:8080/play', ['text']);
connection.onopen = function () {
...
}

connection.onerror = function (error) {
  console.log('WebSocket Error ' + error);
}

connection.onmessage = function (e) {
    var jo = JSON.parse(e.data);
...
}
WebSocket (Send)
function send(msg) {
  if(connection.readyState == 1) {
      connection.send(msg)
  }
}
WebSocket (Jetty)
"Don't deploy your app. to Jetty, Deploy Jetty to your app."
WebSocket (WebSocketServlet)
import org.eclipse.jetty.websocket.WebSocketServlet

public class WSGameServlet extends WebSocketServlet {
...
    @Override
    public WebSocket doWebSocketConnect(HttpServletRequest req,
                                        String protocol) {
        return new GameSocket(createNewPlayer(req), world);
    }

}
WebSocket (WebSocket onOpen)
import org.eclipse.jetty.websocket.WebSocket

public class GameSocket implements    WebSocket,
                                       WebSocket.OnTextMessage {
...
      @Override
      public void onOpen(Connection connection) {
          this.connection = connection;
          world.addSocket(this);
      }

}
WebSocket (WebSocket onClose)
import org.eclipse.jetty.websocket.WebSocket

public class GameSocket implements    WebSocket,
                                       WebSocket.OnTextMessage {
...
      @Override
      public void onClose(int closeCode, String msg) {
          world.removeSocket(this);
          world.removePlayer(avatar.getId());
      }

}
WebSocket (WebSocket onMessage)
import org.eclipse.jetty.websocket.WebSocket

public class GameSocket implements   WebSocket,
                                      WebSocket.OnTextMessage {
...
  public void onMessage(String msg) {
    try {
      Map<String, String> attMap = getAttributeMap(msg);
      String pathInfo = attMap.get("path");
      if ("static".equals(pathInfo)) {
        connection.sendMessage("static/" + staticGameMap);
      } else if ("text".equals(pathInfo)) {
      ...
  }
}
WebSocket (sockets)
public class AxeWorld extends TimerTask implements World {
...
    public final Set<GameSocket> sockets;

      @Override public void addSocket(GameSocket gameSocket)...

      @Override public void removeSocket(GameSocket gameSocket)...

      @Override
      public void run() {...
          for (GameSocket gs : sockets) {
              gs.sendMessage(msg);
...
Demo
3D
● WebGL
  ○ experimental


● Three.js
3D (Three.js)

● https://github.com/mrdoob/three.js
● High level
● Renderers
  ○ Canvas
  ○ WebGL
  ○ SVG
3D (Three.js)
 function init() {
    camera = new THREE.PerspectiveCamera( 75, window.innerWidth /
 window.innerHeight, 1, 10000 );
    camera.position.z = 1000;
    scene = new THREE.Scene();
    geometry = new THREE.CubeGeometry( 200, 200, 200 );
    material = new THREE.MeshBasicMaterial( { color: 0xff0000,
 wireframe: true } );
    mesh = new THREE.Mesh( geometry, material );
    scene.add( mesh );
    renderer = new THREE.CanvasRenderer();
    renderer.setSize( window.innerWidth, window.innerHeight );
    document.body.appendChild( renderer.domElement );
 }


https://github.com/mrdoob/three.js
3D (Three.js)
        function animate() {
            // note: three.js includes requestAnimationFrame shim
            requestAnimationFrame( animate );

              mesh.rotation.x += 0.01;
              mesh.rotation.y += 0.02;

              renderer.render( scene, camera );

        }




https://github.com/mrdoob/three.js
3D (Three.js)
Storage
● Local

● Session

● Database
Storage (Local Storage)
● Cookies
  ○ 4KB
  ○ HTTP Headers

● 5 MB key/value
Storage (Local Storage)
localStorage.commands = JSON.stringify(commands);


if (window.addEventListener) {
   window.addEventListener("storage", handle_storage, false);
} else {
   window.attachEvent("onstorage", handle_storage);
};
Storage (Session Storage)
● Oturum için

● sessionStorage
Storage (Database Storage)

● 5 MB'den fazlası

● Web SQL Database
Storage (IndexDB)
● Not yet
Application Cache
● Old Way Directives

● New Way Manifest
ApplicationCache (Cache Directives)
● HTTP
Application Cache (Manifest)
● Cache what?

● mime-type : text/cache-manifest

● CACHE, NETWORK, FALLBACK
Manifest
<!DOCTYPE html>
<html manifest="cache.mf">
<head>...
Manifest (CACHE)
CACHE MANIFEST

CACHE:
/favicon.ico
index.html
stylesheet.css
images/logo.png
scripts/main.js




http://www.html5rocks.com
Manifest (NETWORK)
# online:
NETWORK:
login.php
/myapi
http://api.twitter.com




http://www.html5rocks.com
Manifest (FALLBACK)
# static.html will be served if main.py is inaccessible
# offline.jpg will be served in place of all images in
images/large/
# offline.html will be served in place of all other .html files
FALLBACK:
/main.py /static.html
images/large/ images/offline.jpg
*.html /offline.html




http://www.html5rocks.com
Demo
Teşekkürler
● Mert Çalışkan
● Çağatay Çivici
● Barış Bal
Murat Can ALPAY
linkedin.com/in/mcalpay
mcatr.blogspot.com



   Bir saattir, Riv Riv Riv

Más contenido relacionado

La actualidad más candente

c++ boost and STL
c++  boost and STLc++  boost and STL
c++ boost and STLCOMAQA.BY
 
HTML5 game dev with three.js - HexGL
HTML5 game dev with three.js - HexGLHTML5 game dev with three.js - HexGL
HTML5 game dev with three.js - HexGLThibaut Despoulain
 
WebGL and three.js - Web 3D Graphics
WebGL and three.js - Web 3D Graphics WebGL and three.js - Web 3D Graphics
WebGL and three.js - Web 3D Graphics PSTechSerbia
 
The Ring programming language version 1.6 book - Part 70 of 189
The Ring programming language version 1.6 book - Part 70 of 189The Ring programming language version 1.6 book - Part 70 of 189
The Ring programming language version 1.6 book - Part 70 of 189Mahmoud Samir Fayed
 
The Ring programming language version 1.7 book - Part 72 of 196
The Ring programming language version 1.7 book - Part 72 of 196The Ring programming language version 1.7 book - Part 72 of 196
The Ring programming language version 1.7 book - Part 72 of 196Mahmoud Samir Fayed
 
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014Verold
 
Ogdc 2013 lets remake the wheel
Ogdc 2013 lets remake the wheelOgdc 2013 lets remake the wheel
Ogdc 2013 lets remake the wheelSon Aris
 
OGDC2013_Lets remake the wheel_ Mr Nguyen Trung Hung
OGDC2013_Lets remake the wheel_ Mr Nguyen Trung HungOGDC2013_Lets remake the wheel_ Mr Nguyen Trung Hung
OGDC2013_Lets remake the wheel_ Mr Nguyen Trung Hungogdc
 
The Ring programming language version 1.8 book - Part 74 of 202
The Ring programming language version 1.8 book - Part 74 of 202The Ring programming language version 1.8 book - Part 74 of 202
The Ring programming language version 1.8 book - Part 74 of 202Mahmoud Samir Fayed
 
Creating Applications with WebGL and Three.js
Creating Applications with WebGL and Three.jsCreating Applications with WebGL and Three.js
Creating Applications with WebGL and Three.jsFuture Insights
 
HTML5 Canvas - Let's Draw!
HTML5 Canvas - Let's Draw!HTML5 Canvas - Let's Draw!
HTML5 Canvas - Let's Draw!Phil Reither
 
rx.js make async programming simpler
rx.js make async programming simplerrx.js make async programming simpler
rx.js make async programming simplerAlexander Mostovenko
 
Bs webgl소모임004
Bs webgl소모임004Bs webgl소모임004
Bs webgl소모임004Seonki Paik
 
The Ring programming language version 1.6 book - Part 62 of 189
The Ring programming language version 1.6 book - Part 62 of 189The Ring programming language version 1.6 book - Part 62 of 189
The Ring programming language version 1.6 book - Part 62 of 189Mahmoud Samir Fayed
 
You will learn RxJS in 2017
You will learn RxJS in 2017You will learn RxJS in 2017
You will learn RxJS in 2017名辰 洪
 

La actualidad más candente (20)

c++ boost and STL
c++  boost and STLc++  boost and STL
c++ boost and STL
 
HTML5 game dev with three.js - HexGL
HTML5 game dev with three.js - HexGLHTML5 game dev with three.js - HexGL
HTML5 game dev with three.js - HexGL
 
WebGL and three.js
WebGL and three.jsWebGL and three.js
WebGL and three.js
 
WebGL and three.js - Web 3D Graphics
WebGL and three.js - Web 3D Graphics WebGL and three.js - Web 3D Graphics
WebGL and three.js - Web 3D Graphics
 
The State of JavaScript
The State of JavaScriptThe State of JavaScript
The State of JavaScript
 
The Ring programming language version 1.6 book - Part 70 of 189
The Ring programming language version 1.6 book - Part 70 of 189The Ring programming language version 1.6 book - Part 70 of 189
The Ring programming language version 1.6 book - Part 70 of 189
 
фабрика Blockly
фабрика Blocklyфабрика Blockly
фабрика Blockly
 
The Ring programming language version 1.7 book - Part 72 of 196
The Ring programming language version 1.7 book - Part 72 of 196The Ring programming language version 1.7 book - Part 72 of 196
The Ring programming language version 1.7 book - Part 72 of 196
 
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014
 
Ogdc 2013 lets remake the wheel
Ogdc 2013 lets remake the wheelOgdc 2013 lets remake the wheel
Ogdc 2013 lets remake the wheel
 
OGDC2013_Lets remake the wheel_ Mr Nguyen Trung Hung
OGDC2013_Lets remake the wheel_ Mr Nguyen Trung HungOGDC2013_Lets remake the wheel_ Mr Nguyen Trung Hung
OGDC2013_Lets remake the wheel_ Mr Nguyen Trung Hung
 
The Ring programming language version 1.8 book - Part 74 of 202
The Ring programming language version 1.8 book - Part 74 of 202The Ring programming language version 1.8 book - Part 74 of 202
The Ring programming language version 1.8 book - Part 74 of 202
 
Creating Applications with WebGL and Three.js
Creating Applications with WebGL and Three.jsCreating Applications with WebGL and Three.js
Creating Applications with WebGL and Three.js
 
HTML5 Canvas - Let's Draw!
HTML5 Canvas - Let's Draw!HTML5 Canvas - Let's Draw!
HTML5 Canvas - Let's Draw!
 
rx.js make async programming simpler
rx.js make async programming simplerrx.js make async programming simpler
rx.js make async programming simpler
 
Bs webgl소모임004
Bs webgl소모임004Bs webgl소모임004
Bs webgl소모임004
 
D3.js workshop
D3.js workshopD3.js workshop
D3.js workshop
 
The Ring programming language version 1.6 book - Part 62 of 189
The Ring programming language version 1.6 book - Part 62 of 189The Ring programming language version 1.6 book - Part 62 of 189
The Ring programming language version 1.6 book - Part 62 of 189
 
Rxjs kyivjs 2015
Rxjs kyivjs 2015Rxjs kyivjs 2015
Rxjs kyivjs 2015
 
You will learn RxJS in 2017
You will learn RxJS in 2017You will learn RxJS in 2017
You will learn RxJS in 2017
 

Destacado

Ankara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADFAnkara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADFAnkara JUG
 
Java EE7 Demystified
Java EE7 DemystifiedJava EE7 Demystified
Java EE7 DemystifiedAnkara JUG
 
AnkaraJUG Haziran 2013 - No SQL / Big Data
AnkaraJUG Haziran 2013 - No SQL / Big DataAnkaraJUG Haziran 2013 - No SQL / Big Data
AnkaraJUG Haziran 2013 - No SQL / Big DataAnkara JUG
 
AnkaraJUG Nisan 2013 - Java Persistance API
AnkaraJUG Nisan 2013 - Java Persistance APIAnkaraJUG Nisan 2013 - Java Persistance API
AnkaraJUG Nisan 2013 - Java Persistance APIAnkara JUG
 
Ankara JUG Şubat 2014 Etkinliği - Design Patterns
Ankara JUG Şubat 2014 Etkinliği - Design PatternsAnkara JUG Şubat 2014 Etkinliği - Design Patterns
Ankara JUG Şubat 2014 Etkinliği - Design PatternsAnkara JUG
 
Ankara JUG Eylül 2013 Etkinliği - Eclipse RCP 4
Ankara JUG Eylül 2013 Etkinliği - Eclipse RCP 4Ankara JUG Eylül 2013 Etkinliği - Eclipse RCP 4
Ankara JUG Eylül 2013 Etkinliği - Eclipse RCP 4Ankara JUG
 
Home Automation Using RPI
Home Automation Using  RPIHome Automation Using  RPI
Home Automation Using RPIAnkara JUG
 

Destacado (7)

Ankara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADFAnkara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADF
 
Java EE7 Demystified
Java EE7 DemystifiedJava EE7 Demystified
Java EE7 Demystified
 
AnkaraJUG Haziran 2013 - No SQL / Big Data
AnkaraJUG Haziran 2013 - No SQL / Big DataAnkaraJUG Haziran 2013 - No SQL / Big Data
AnkaraJUG Haziran 2013 - No SQL / Big Data
 
AnkaraJUG Nisan 2013 - Java Persistance API
AnkaraJUG Nisan 2013 - Java Persistance APIAnkaraJUG Nisan 2013 - Java Persistance API
AnkaraJUG Nisan 2013 - Java Persistance API
 
Ankara JUG Şubat 2014 Etkinliği - Design Patterns
Ankara JUG Şubat 2014 Etkinliği - Design PatternsAnkara JUG Şubat 2014 Etkinliği - Design Patterns
Ankara JUG Şubat 2014 Etkinliği - Design Patterns
 
Ankara JUG Eylül 2013 Etkinliği - Eclipse RCP 4
Ankara JUG Eylül 2013 Etkinliği - Eclipse RCP 4Ankara JUG Eylül 2013 Etkinliği - Eclipse RCP 4
Ankara JUG Eylül 2013 Etkinliği - Eclipse RCP 4
 
Home Automation Using RPI
Home Automation Using  RPIHome Automation Using  RPI
Home Automation Using RPI
 

Similar a Daha Flash bir web nasıl olur

Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Patrick Chanezon
 
How to build a html5 websites.v1
How to build a html5 websites.v1How to build a html5 websites.v1
How to build a html5 websites.v1Bitla Software
 
Is html5-ready-workshop-110727181512-phpapp02
Is html5-ready-workshop-110727181512-phpapp02Is html5-ready-workshop-110727181512-phpapp02
Is html5-ready-workshop-110727181512-phpapp02PL dream
 
Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)Remy Sharp
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineRicardo Silva
 
Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...
Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...
Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...GITS Indonesia
 
The State of JavaScript (2015)
The State of JavaScript (2015)The State of JavaScript (2015)
The State of JavaScript (2015)Domenic Denicola
 
Nodejs and WebSockets
Nodejs and WebSocketsNodejs and WebSockets
Nodejs and WebSocketsGonzalo Ayuso
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureSimon Willison
 
JavaScript Advanced - Useful methods to power up your code
JavaScript Advanced - Useful methods to power up your codeJavaScript Advanced - Useful methods to power up your code
JavaScript Advanced - Useful methods to power up your codeLaurence Svekis ✔
 
Brave new world of HTML5
Brave new world of HTML5Brave new world of HTML5
Brave new world of HTML5Chris Mills
 
webinale2011_Chris Mills_Brave new world of HTML5Html5
webinale2011_Chris Mills_Brave new world of HTML5Html5webinale2011_Chris Mills_Brave new world of HTML5Html5
webinale2011_Chris Mills_Brave new world of HTML5Html5smueller_sandsmedia
 
Leaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGLLeaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGLgerbille
 
Browsers with Wings
Browsers with WingsBrowsers with Wings
Browsers with WingsRemy Sharp
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch
 
DotNet 2019 | Marcos Cobeña - Llevando Wave Engine a la web a través de WebGL...
DotNet 2019 | Marcos Cobeña - Llevando Wave Engine a la web a través de WebGL...DotNet 2019 | Marcos Cobeña - Llevando Wave Engine a la web a través de WebGL...
DotNet 2019 | Marcos Cobeña - Llevando Wave Engine a la web a través de WebGL...Plain Concepts
 
Mobile webapplication development
Mobile webapplication developmentMobile webapplication development
Mobile webapplication developmentGanesh Gembali
 

Similar a Daha Flash bir web nasıl olur (20)

Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?
 
How to build a html5 websites.v1
How to build a html5 websites.v1How to build a html5 websites.v1
How to build a html5 websites.v1
 
Is html5-ready-workshop-110727181512-phpapp02
Is html5-ready-workshop-110727181512-phpapp02Is html5-ready-workshop-110727181512-phpapp02
Is html5-ready-workshop-110727181512-phpapp02
 
Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 Engine
 
Intro to HTML5
Intro to HTML5Intro to HTML5
Intro to HTML5
 
mobl
moblmobl
mobl
 
Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...
Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...
Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...
 
The State of JavaScript (2015)
The State of JavaScript (2015)The State of JavaScript (2015)
The State of JavaScript (2015)
 
Nodejs and WebSockets
Nodejs and WebSocketsNodejs and WebSockets
Nodejs and WebSockets
 
Griffon @ Svwjug
Griffon @ SvwjugGriffon @ Svwjug
Griffon @ Svwjug
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big Picture
 
JavaScript Advanced - Useful methods to power up your code
JavaScript Advanced - Useful methods to power up your codeJavaScript Advanced - Useful methods to power up your code
JavaScript Advanced - Useful methods to power up your code
 
Brave new world of HTML5
Brave new world of HTML5Brave new world of HTML5
Brave new world of HTML5
 
webinale2011_Chris Mills_Brave new world of HTML5Html5
webinale2011_Chris Mills_Brave new world of HTML5Html5webinale2011_Chris Mills_Brave new world of HTML5Html5
webinale2011_Chris Mills_Brave new world of HTML5Html5
 
Leaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGLLeaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGL
 
Browsers with Wings
Browsers with WingsBrowsers with Wings
Browsers with Wings
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.js
 
DotNet 2019 | Marcos Cobeña - Llevando Wave Engine a la web a través de WebGL...
DotNet 2019 | Marcos Cobeña - Llevando Wave Engine a la web a través de WebGL...DotNet 2019 | Marcos Cobeña - Llevando Wave Engine a la web a través de WebGL...
DotNet 2019 | Marcos Cobeña - Llevando Wave Engine a la web a través de WebGL...
 
Mobile webapplication development
Mobile webapplication developmentMobile webapplication development
Mobile webapplication development
 

Último

New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 

Último (20)

New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 

Daha Flash bir web nasıl olur