SlideShare a Scribd company logo
HTML5 APIs
 The New Frontier
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
Video
<video controls src="nasa.webm"></video>
<video controls>
    <source src="nasa.mp4"></source>
    <source src="nasa.webm"></source>
    <p>Oh, you use IE? Really?</p>
</video>
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
<video src="http://vid.ly/4w2g7d?content=video"
controls></video>
HTML5 APIs - The New Frontier - ConFoo 2011
// Methods
video.canPlayType();
video.load();
video.pause();
video.play();
// Properties
video.paused;
video.muted;
video.autobuffer;
video.autoplay;
video.buffered; (Unimplemented)
video.bufferedBytes; (Unimplemented)
video.bufferingRate; (Unimplemented)
video.bufferingThrottled; (Unimplemented)
video.controls;
video.currentSrc;
video.currentTime;
video.defaultPlaybackRate;
video.duration;
video.ended;
video.error;
video.muted;
video.networkState;
video.paused;
video.playbackRate;
video.readyState;
video.seeking;
video.src;
video.totalBytes;
video.volume;
// Events
video.abort;
video.canplay;
video.canplaythrough;
video.canshowcurrentframe;
video.dataunavailable;
video.durationchange;
video.emptied;
video.empty;
video.ended;
video.error;
video.loadedfirstframe;
video.loadedmetadata;
video.loadstart;
video.pause;
video.play;
video.progress; (lengthComputable, loaded, total)
video.ratechange;
video.seeked;
video.seeking;
video.suspend;
video.timeupdate;
video.volumechange;
Canvas
Apple even creates open
 standards for the web
                 -Steve Jobs
<canvas id="my-canvas" width="500" height="500">
    I am canvas
</canvas>
var canvas = document.getElementById("my-canvas"),
    context = canvas.getContext("2d");

context.fillStyle = "#f00";
context.fillRect(0, 0, 100, 100);
context.save();

context.fillStyle = "rgba(0, 0, 200, 0.5)";
context.fillRect(50, 50, 100, 100);

context.clearRect(40, 40, 20, 20);

context.restore();
HTML5 APIs - The New Frontier - ConFoo 2011
context.fillRect(350, 50, 100, 100);

context.lineWidth = "10";
context.lineJoin = "round";

context.moveTo(50, 50);
context.lineTo(200, 200);
context.lineTo(100, 300);
context.closePath();
context.stroke();
context.fill();

context.beginPath();
context.strokeStyle = "#00f";
context.arc(200, 400, 75, 0, Math.PI*2, false);

context.stroke();
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
context.fillStyle = "#fff";
context.fillRect(0, 0, 200, 200);

context.fillStyle = "#f00";
context.fillRect(0, 0, 100, 100);

context.fillRect(100, 100, 100, 100);
HTML5 APIs - The New Frontier - ConFoo 2011
context.strokeStyle = "transparent";

context.arc(100, 100, 75, 0, Math.PI*2, false);
context.clip();
context.stroke();

context.fillStyle = "#fff";
context.fillRect(0, 0, 200, 200);

context.fillStyle = "#f00";
context.fillRect(0, 0, 100, 100);

context.fillRect(100, 100, 100, 100);
HTML5 APIs - The New Frontier - ConFoo 2011
var canvas = document.getElementById("my-canvas"),
    context = canvas.getContext("2d"),
    img = document.createElement("img");

img.addEventListener("load", function () {
    context.drawImage(img, 0, 0, 600, 200);
    // Get canvas content as a base64 image
    var base64Img = canvas.toDataURL("image/png");
}, false);

img.setAttribute("src", "view.jpg");
data:image/png;base64,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
HTML5 Canvas for Internet Explorer <= 8
                   -
            explorercanvas
http://www.nihilogic.dk/labs/mariokart/
http://craftymind.com/factory/html5video/
             CanvasVideo.html
SVG
<svg xmlns="http://www.w3.org/2000/svg"
        width="200" height="110" version="1.1" >
    <circle cx="100" cy="52" r="50" stroke="#0000ff"
            stroke-width="1" fill="#ff0000" />
</svg>
HTML5 APIs - The New Frontier - ConFoo 2011
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg xmlns="http://www.w3.org/2000/svg"
        width="200" height="110" version="1.1" >
    <circle cx="100" cy="52" r="50" stroke="#0000ff"
            stroke-width="1" fill="#ff0000" />
</svg>
var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"),
    circle = document.createElementNS("http://www.w3.org/2000/svg", "circle");
svg.setAttribute("width", "200");
svg.setAttribute("height", "110");
svg.setAttribute("version", "1.1");

circle.setAttribute("cx", "100");
circle.setAttribute("cy", "52");
circle.setAttribute("r", "50");
circle.setAttribute("fill", "#ff0000");
circle.setAttribute("stroke", "#00ffff");
svg.appendChild(circle);
document.getElementById("svg-container").appendChild(svg);
Raphaël JavaScript Library
            -
      SVG and VML
var paper = Raphael(document.getElementById("raphael-demo"), 320, 200),
    circle = paper.circle(150, 62, 60);
circle.attr("fill", "#ff0000");
circle.attr("stroke", "#00ffff");
HTML5 APIs - The New Frontier - ConFoo 2011
Inline only in application/xhtml+xml pages
                                       or
<embed src="circle.svg" width="200" height="110" type="image/svg+xml"></embed>
<iframe src="circle.svg" width="200" height="110" type="image/svg+xml"></iframe>
<object data="circle.svg" width="200" height="110" type="image/svg+xml"></object>



                                       or
                            Plain JavaScript
                                       or
                              Use Raphaël
HTML5 APIs - The New Frontier - ConFoo 2011
Inline in HTML web pages in:

         Firefox 4
     Google Chrome 7
         Safari 5.x?
    Internet Explorer 9
          Opera?
HTML5 APIs - The New Frontier - ConFoo 2011
SVG vs. canvas
Vector vs. bitmap
SVG for interaction, shapes etc
 canvas for speed, animations
SVG = “Real” DOM elements
     Google indexes SVG
Web Storage
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
sessionStorage.setItem("FU", "Sarah Palin");
console.log(sessionStorage.getItem("FU"));
localStorage.setItem("Job", "Politician");
var sarahPalin = {
    "contest" : "Miss Alaska pageant",
    "Talent" : "Flute playing"
};

localStorage.setItem("sarah", JSON.stringify(sarahPalin));

console.log(typeof JSON.parse(localStorage.getItem("sarah")));
Web SQL
IndexedDB
Offline Web Applications
if (window.addEventListener) {
    /*
        Works well in Firefox and Opera with the
        Work Offline option in the File menu.
        Pulling the ethernet cable doesn't seem to trigger it
    */
    window.addEventListener("online", isOnline, false);
    window.addEventListener("offline", isOffline, false);
}
else {
    /*
        Works in IE with the Work Offline option in the
        File menu and pulling the ethernet cable
    */
    document.body.ononline = isOnline;
    document.body.onoffline = isOffline;
}
// Poll the navigator.onLine property
setInterval(function () {
    console.log(navigator.onLine);
}, 1000);
<!DOCTYPE html>
<html manifest="offline.manifest">
<head>
...
CACHE MANIFEST

# VERSION 10

CACHE:
offline.html
base.css

FALLBACK:
online.css offline.css

NETWORK:
/live-updates
Drag and Drop
...I am forced to conclude that the
HTML5 drag and drop module is not
just a disaster, it’s a fucking disaster.
                              -Peter-Paul Koch
<div id="can-be-dragged" draggable></div>
<p id="drop-area">
     Drag and drop files here
</p>
var someImg = document.getElementById("some-image"),
    dropArea = document.getElementById("drop-area");

someImg.ondragstart = function (evt) {
    var event = evt || window.event;
    event.dataTransfer.setData("Text", this.getAttribute("alt"));
    return false;
};

dropArea.ondragenter = function (evt) {
    return false;                          “If the drop is to be
};
                                            accepted, then this
dropArea.ondragover = function (evt) {
    return false;                          event (dragover) has
};
                                             to be canceled.”
dropArea.ondrop = function (evt) {
    var text = event.dataTransfer.getData("Text");
    event.cancelBubble = true; // For IE
    return false;
};
someImg.ondragstart = function (evt) {
    var event = evt || window.event;
    event.dataTransfer.setDragImage(dragIcon, -10, -10);
    return false;
};
File API
<!--
       The multiple attribute allows for
       uploading of multiple files
-->
<input id="files-upload" type="file" multiple>
var filesUpload = document.getElementById("files-upload");
filesUpload.onchange = function () {
    // Access to data about all files
    var files = this.files;
    for (var i=0, il=files.length; i<il; i++) {
        file.name; // Get the name of the file
        file.size; // Get the size of the file, in bytes
        file.type; // Get the type of the file
    };
};
for (var i=0, il=files.length, file, img; i<il; i++) {
    file = files[i];

    if (typeof FileReader !== "undefined") {
        img = document.createElement("img");
        reader = new FileReader();
        reader.onload = (function (theImg) {
            return function (evt) {
                 theImg.src = evt.target.result;
            };
        }(img));
        reader.readAsDataURL(file);
    }
}
// For Firefox, Google Chrome and Safari
var xhr = new XMLHttpRequest();
xhr.open("post", "upload/upload.php", true);
xhr.onreadystatechange = function() {
   if (this.readyState === 4) {
         // File uploaded
     }
};

// Upload file: Firefox, Google Chrome and Safari
xhr.setRequestHeader("Content-Type", "multipart/form-data");
xhr.setRequestHeader("X-File-Name", file.fileName);
xhr.setRequestHeader("X-File-Size", file.fileSize);
xhr.setRequestHeader("X-File-Type", file.type);

xhr.send(file);
HTML5 APIs - The New Frontier - ConFoo 2011
Web Sockets
HTML5 APIs - The New Frontier - ConFoo 2011
var ws = new WebSocket("ws://robertnyman.com/wsmagic");

// Send data
ws.send("Some data");

// Close the connection
ws.close();
var ws = new WebSocket("ws://robertnyman.com/wsmagic");

// When connection is opened
ws.onopen = function () {
    console.log("Connection opened!");
};

// When you receive a message
ws.onmessage = function (evt) {
    console.log(evt.data);
};

// When you close the connection
ws.onclose = function () {
    console.log("Connection closed");
};

// When an error occurred
ws.onerror = function () {
    console.log("An error occurred");
};
web-socket-js
 Socket.IO
HTML5 APIs - The New Frontier - ConFoo 2011
WebGL
http://code.google.com/p/webglsamples/
HTML5 APIs - The New Frontier - ConFoo 2011
Flight of the Navigator
Web browser support
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
HTML5 APIs - The New Frontier - ConFoo 2011
Robert Nyman
                                                       http://robertnyman.com/speaking/
                                                        http://robertnyman.com/html5/

                                                                        Twitter: @robertnyman



Pictures:
                                                                                                Internet hole: http://cheezburger.com/View/3194058752
Robocop: http://www.meh.ro/2010/04/01/murphy-as-robocop/                                        Files: http://www.hannonhill.com/products/index.html
Swedish flag: http://www.olssonfoto.se/JAlbum/SGP%202008%20Ullevi/slides/Svenska%20flaggan.html   Drag me: http://mcus.nu/?cat=25
Euro Coin: http://accidentaldong.blogspot.com/2009/10/euro-uh-oh.html                           History: http://animatedtv.about.com/od/fgmultimedia/ig/-Family-Guy--Pictures/Griffin-Family-History.htm
George W Bush fail 1: http://freetraveler.net/pictures/2.09.06/fun/1.jpg                        Sockets: http://www.gigaweb.com/products/view/31681/plug-socket-adult-costume.html
George W Bush fail 2: http://blogs.warwick.ac.uk/images/akyrtzoglou/2005/06/07/g2.jpg           AJAX: http://www.aqlanza.com/technologies01.html
George W Bush fail 3: http://blogs.warwick.ac.uk/images/akyrtzoglou/2005/06/07/gb3.jpg          Comet: http://www.blogiversity.org/blogs/cstanton/archive/2009/12/16/revealing-hidden-comet-strikes.aspx
                                                                                                Flash: http://www.zerofractal.com/assets/error-flash.jpg
Canvas: http://www.ioffer.com/c/Drawings-1000407                                                Ooompa Loompa: http://www.fugly.com/pictures/19609/oompa-loompa-hit-that-forizzle.html
Oriental studies: http://www.swollenpickles.com/2007/01/29/phallic-logo-awards/                 3D apple: http://3dst.de/typo3temp/pics/974e4144fc.jpg
Clip: http://pics33.blogspot.com/2010/08/best-examples-of-creative-edit-images.html             Elsewhere: http://www.allisonweiner.com/index.php?/posters/elsewhere/
SVG: http://shauser.umwblogs.org/2007/08/28/learning-a-little-svg-from-pgmj/
Today: http://www.nickcannon.com/2009/09/21/mariah-set-to-perform-on-the-today-show-oct-2/      Web browsers: http://www.zamaanonline.com/category/funny-amazing-stuff/geek-fun
Tomorrow: http://www.hulu.com/tales-of-tomorrow                                                 Web browser icons: http://paulirish.com/2010/high-res-browser-icons/
Day after tomorrow: http://www.impawards.com/2004/day_after_tomorrow_ver3.html                  Fallen beaver: http://failsalon.com/?p=183
Fight club: http://www.unique-screenwriting.com/rules-of-fight-club.html                         Beaver win: http://thefourcornersclassroom.wikispaces.com/Group+30+-+Pre-Project
                                                                                                Go where I've never been: http://musicisart.ws/diane-arbus/
Storage fail: http://failfun.com/funny-pictures/gangsta-fail/                                   Head in ground: http://56minus1.com/2009/02/things-well-done-li-wei/
Cookie monster: http://honestviewsfromhonestman.blogspot.com/2009/09/cookie-monster.html        Basketball player: http://www.hemmy.net/2008/03/22/the-fail-collection/
You suck: http://www.crunchgear.com/2009/04/22/gadgets-sucks/                                   Anything is possible: http://www.elektrodrop.com/2009/12/straight-out-of-china/?quick_view=1
                                                                                                Girl taped on wall: http://www.mymodernmet.com/profiles/blogs/a-father-who-creatively
!=
We can’t change history, but we can change the future.
               Be nice to each other.

More Related Content

PDF
Vkmdp cologne
PDF
HTML5 multimedia - browser-native video and audio - JSDay / Verona / 17 May 2012
PDF
JS Days Mobile Meow
PDF
2012 04-19 theory-of_operation
PDF
JS Days HTML5 Flash and the Battle for Faster Cat Videos
PDF
Chrome Devtools Protocol via Selenium/Appium (English)
PPTX
Got &lt;video>? Implementing HTML5 Video for Library Tutorials
PDF
HTML5, Flash, and the Battle For Faster Cat Videos
Vkmdp cologne
HTML5 multimedia - browser-native video and audio - JSDay / Verona / 17 May 2012
JS Days Mobile Meow
2012 04-19 theory-of_operation
JS Days HTML5 Flash and the Battle for Faster Cat Videos
Chrome Devtools Protocol via Selenium/Appium (English)
Got &lt;video>? Implementing HTML5 Video for Library Tutorials
HTML5, Flash, and the Battle For Faster Cat Videos

What's hot (17)

PDF
Craft 2019 - “The Upside Down” Of The Web - Video technologies
PDF
Continuous Integration Testing in Django
PDF
Chrome Devtools Protocol via Selenium/Appium (Japanese)
PDF
Rock-solid Magento Development and Deployment Workflows
PPTX
Responsive browser-based video recording and playback
KEY
Upgrade to HTML5 Video
PDF
Introduction to Selenium and WebDriver
PDF
Html5 - audio and video tags
KEY
HTML5 Video for WordPress
PDF
HTML5 Multimedia: where we are, where we're going
PDF
Diagnosing WordPress: What to do when things go wrong
PDF
One commit, one release. Continuously delivering a Symfony project.
PDF
Continous Delivering a PHP application
PDF
JavaScript Libraries: The Big Picture
PPTX
From Ant to Maven to Gradle a tale of CI tools for JVM
PDF
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
PPTX
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Craft 2019 - “The Upside Down” Of The Web - Video technologies
Continuous Integration Testing in Django
Chrome Devtools Protocol via Selenium/Appium (Japanese)
Rock-solid Magento Development and Deployment Workflows
Responsive browser-based video recording and playback
Upgrade to HTML5 Video
Introduction to Selenium and WebDriver
Html5 - audio and video tags
HTML5 Video for WordPress
HTML5 Multimedia: where we are, where we're going
Diagnosing WordPress: What to do when things go wrong
One commit, one release. Continuously delivering a Symfony project.
Continous Delivering a PHP application
JavaScript Libraries: The Big Picture
From Ant to Maven to Gradle a tale of CI tools for JVM
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Ad

Similar to HTML5 APIs - The New Frontier - ConFoo 2011 (20)

PDF
HTML5 APIs - The New Frontier
PDF
Html5apis thenewfrontier-knowit-110203080245-phpapp02
PDF
HTML5 APIs - The New Frontier 2011
PDF
HTML5 multimedia - browser-native video, audio and canvas - meet.js Summit / ...
PPTX
DoctypeHTML5 (Hyderabad) Presentation on Multimedia
PDF
audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010
KEY
Web Apps
PDF
Web Directions @media 2010
PDF
HTML5 APIs - native multimedia support and beyond - University of Leeds 05.05...
PDF
HTML5 multimedia - where we are, where we're going
PDF
Brave new world of HTML5
PDF
webinale2011_Chris Mills_Brave new world of HTML5Html5
PDF
HTML5 (and friends) - History, overview and current status - jsDay Verona 11....
PDF
Robert Nyman - HTML5 apis where no man has gone before startechconf
PDF
HTML5 APIs - Where No Man Has Gone Before - StarTechConf, Chile
PDF
HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...
PDF
Html5 intro
PDF
Multimedia on the web - HTML5 video and audio
PPTX
HTML5 Video
PDF
Html5 Open Video Tutorial
HTML5 APIs - The New Frontier
Html5apis thenewfrontier-knowit-110203080245-phpapp02
HTML5 APIs - The New Frontier 2011
HTML5 multimedia - browser-native video, audio and canvas - meet.js Summit / ...
DoctypeHTML5 (Hyderabad) Presentation on Multimedia
audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010
Web Apps
Web Directions @media 2010
HTML5 APIs - native multimedia support and beyond - University of Leeds 05.05...
HTML5 multimedia - where we are, where we're going
Brave new world of HTML5
webinale2011_Chris Mills_Brave new world of HTML5Html5
HTML5 (and friends) - History, overview and current status - jsDay Verona 11....
Robert Nyman - HTML5 apis where no man has gone before startechconf
HTML5 APIs - Where No Man Has Gone Before - StarTechConf, Chile
HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...
Html5 intro
Multimedia on the web - HTML5 video and audio
HTML5 Video
Html5 Open Video Tutorial
Ad

More from Robert Nyman (20)

PDF
Have you tried listening?
PDF
Building for Your Next Billion - Google I/O 2017
PDF
Introduction to Google Daydream
PDF
Predictability for the Web
PDF
The Future of Progressive Web Apps - View Source conference, Berlin 2016
PDF
The Future of the Web - Cold Front conference 2016
PDF
The Future of Progressive Web Apps - Google for Indonesia
PDF
Google tech & products
PDF
Introduction to Progressive Web Apps, Google Developer Summit, Seoul - South ...
PDF
Progressive Web Apps keynote, Google Developer Summit, Tokyo, Japan
PDF
The web - What it has, what it lacks and where it must go - keynote at Riga D...
PDF
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
PDF
The web - What it has, what it lacks and where it must go - Istanbul
PDF
The web - What it has, what it lacks and where it must go
PDF
Google, the future and possibilities
PDF
Developer Relations in the Nordics
PDF
What is Developer Relations?
PDF
Android TV Introduction - Stockholm Android TV meetup
PDF
New improvements for web developers - frontend.fi, Helsinki
PDF
Mobile phone trends, user data & developer climate - frontend.fi, Helsinki
Have you tried listening?
Building for Your Next Billion - Google I/O 2017
Introduction to Google Daydream
Predictability for the Web
The Future of Progressive Web Apps - View Source conference, Berlin 2016
The Future of the Web - Cold Front conference 2016
The Future of Progressive Web Apps - Google for Indonesia
Google tech & products
Introduction to Progressive Web Apps, Google Developer Summit, Seoul - South ...
Progressive Web Apps keynote, Google Developer Summit, Tokyo, Japan
The web - What it has, what it lacks and where it must go - keynote at Riga D...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go
Google, the future and possibilities
Developer Relations in the Nordics
What is Developer Relations?
Android TV Introduction - Stockholm Android TV meetup
New improvements for web developers - frontend.fi, Helsinki
Mobile phone trends, user data & developer climate - frontend.fi, Helsinki

Recently uploaded (20)

PPTX
sap open course for s4hana steps from ECC to s4
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
cuic standard and advanced reporting.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Spectroscopy.pptx food analysis technology
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
KodekX | Application Modernization Development
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
sap open course for s4hana steps from ECC to s4
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Spectral efficient network and resource selection model in 5G networks
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation_ Review paper, used for researhc scholars
cuic standard and advanced reporting.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
MIND Revenue Release Quarter 2 2025 Press Release
Spectroscopy.pptx food analysis technology
The AUB Centre for AI in Media Proposal.docx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
KodekX | Application Modernization Development
20250228 LYD VKU AI Blended-Learning.pptx
Machine learning based COVID-19 study performance prediction
NewMind AI Weekly Chronicles - August'25 Week I
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...

HTML5 APIs - The New Frontier - ConFoo 2011