SlideShare a Scribd company logo
1 of 101
HTML5 and CSS3
Evolution & Adoption
 Chris Mills, Opera Software
Who the hell am I?
‣ Opera open standards evangelist and tech writer
‣ Telling the world about open standards & Opera
‣ Improving web education
‣ Drumming in a heavy metal band
Today I'll cover
‣ How HTML5 and CSS3 evolved
‣ Why they are good for web developers (and
  users!)
‣ New features in action
‣ When (and how) you can start using them
Where did they evolve from?




             http://www.flickr.com/photos/dyanna/3202542828/
Brief history: inception
‣ HTML first proposed around 1990/1 by Tim
  Berners-Lee
‣ CSS invented by Håkon Wium Lie and Bert Bos
  around 1994/5
Brief history:
standardisation
‣ HTML3 first standardised around 1995
‣ CSS1 rec published in 1996, CSS2 rec published
 in 1998
Brief history: ironing things
out
‣ CSS 2.1 mostly written by about 1999, to remove
  errors and inconsistencies (although this is still
  not *completely* finished)
‣ HTML 4.01 finished by 2001
Finished! What next?
There’s nothing wrong with
HTML4 and CSS2...




             http://www.flickr.com/photos/birdfarm/519230710/
But things don't stand still!
‣ People started to use HTML and CSS for things
  they weren't originally intended for:
 ‣ Applications
 ‣ Multi-column layouts
 ‣ Animations and interaction
‣ Browsers began to implement new features
‣ New browsing devices appeared
This lead to...
‣ Inefficiency
‣ Inaccessibility
‣ Inconsistency
‣ Incompatibility
CSS3
‣ CSS3 work started around the same time as
  CSS2.1
‣ Earliest CSS3 drafts published in June 1999
‣ As of March 2011, there are over 40 CSS3
  module drafts published
‣ Some a lot more stable than others
CSS3 designed to
‣ Build on top of existing CSS1/2 features
‣ Add more efficient, powerful solutions for
  common design problems
‣ Degrade gracefully where possible
HTML5
‣ W3C decided the future was XHTML
‣ This didn’t go down well, and no-one gave a rat’s
  ass about XHTML2
‣ HTML5 (was web applications 1.0) started by
  WHATWG in 2004ish
‣ Adopted by W3C 2008
‣ WHATWG version became versionless in 2011
HTML5 designed to...
‣ Be backwards compatible
‣ Add more efficient, powerful features to the
  language (markup and APIs)
‣ Compete with plugin technologies
‣ Be more in keeping with what web developers
  are really doing
HTML5 and CSS3 have
more bling!
             As if! Not publishing this one...
Why are HTML5 and CSS3
so good for us?




           http://www.flickr.com/photos/mafleen/3780072133/
We've done most of
this stuff before...




            http://www.flickr.com/photos/monkeytime/4120229885/
... so why should we care?




           http://www.flickr.com/photos/philliecasablanca/2816530573/
Many reasons!
‣ Less inconsistent, unsemantic, presentational
  markup
‣ Less time spent with JavaScript
‣ Less time spent dicking about with Flash
‣ Better accessibility built in
‣ Less time spent in Photoshop
‣ More time spent in the pub
New markup: better
semantics




            http://www.flickr.com/photos/zscheyge/49012397/
Typical website structure
<div
id="header"></div>
<div
id="nav"></div>
<div
id="main">


<div
class="article"></div>


<div
class="article"></div>




...
</div>
<div
id="footer"></div>
Most common classes and
IDs?
Ian Hickson did a study at Google of the most
common classes/IDs on the Web. So did Opera
‣ http://code.google.com/webstats/2005-12/
  classes.html
‣ http://devfiles.myopera.com/articles/572/idlist-
  url.htm
‣ http://devfiles.myopera.com/articles/572/
  classlist-url.htm
Most common IDs
Most common classes
The HTML5 shizzle
<header></header>
<nav></nav>
<section
id="main">


<article></article>


<article></article>




...
</section>
<footer></footer>
<aside>
<aside>


<h2>About
the
author</h2>

 

<p>Chris
Mills
is
a
front‐end
bling
junkie





working
for
Opera
Software...</p>
</aside>
<time>
<p>Article
published
on
the



<time
datetime="2011‐03‐12T09:48"
pubdate>




12th
March
2011,
at
9:48am


</time>
</p>
<hgroup>
<hgroup>


<h1>Top
level
heading</h1>


<h2>This
is
a
really
descriptive
subtitle</h2>
</hgroup>
<figure> and <figcaption>
<figure>


<img
src="bear.jpg"







alt="this
is
the
bear
that
I
wrestled"
/>


<figcaption>This
is
the
bear
that
I


wrestled.</figcaption>
</figure>
Where does this leave the
humble <div>?
Use it for anything that isn’t covered by other new
elements, and is just a general grouping, e.g. for
styling purposes, for which you don’t want to
create a new section. An intro <div>, perhaps?
The HTML5 outlining
algorithm
Heading/section hierarchy based on sectioning
element hierarchy, not <hx> elements used
‣ No longer limited to six heading levels
‣ Hierarchy stays correct when syndicated
‣ You can retain HTML4 heading levels for
 backwards compatibility
The HTML5 outlining
algorithm
<h1>My
title</h1>
<div>


<h2>My
subtitle</h2>
</div>

<h1>My
title</h1>
<section>


<h2>My
subtitle</h2>
</section>
Lax syntax?
Some say that HTML5 syntax is really lax — you:
‣ don’t need to quote or self-close attributes
‣ can minimize attributes
‣ Have a really small doctype: <!doctype
html>
‣ can mix upper and lower case
‣ You don’t even need to include <html>, <head>
 and <body>!
Lax syntax?
This more accurately reflects what real developers
do, rather than what the XHTML spec THINKS they
should
‣ You can use the style you want (although you
  should stick to some best practices)
‣ The browser fills in a lot of this stuff
‣ The HTML5 spec defines how errors should be
  handled
Less Flash, more control:
<video>, web fonts and
more!




             http://www.flickr.com/photos/zscheyge/49012397/
<video> and <audio>
New elements, plus new API for controlling audio
and video
The old school way
<object
width="425"
height="344">
<param
name="movie"

value="http://www.example.com/
v/LtfQg4KkR88&hl=en&fs=1"></param>
<param
name="allowFullScreen"
value="true"></param>
<embed
src="http://www.example.com/v/
LtfQg4KkR88&hl=en&fs=1"


type="application/x‐shockwave‐flash"


allowfullscreen="true"
width="425"

height="344"></embed>
</object>
The badass sexy new way
<video
width="480px"







height="283px"







controls







poster="poster.png">


<source
src="video.mp4"
type="video/mp4">


<source
src="video.webm"
type="video/webm">


<p>Your
browser
doesn’t
support
HTML5
video.
<a

href="video.webm">Download
the
video
instead</a>.</
p>
</video>
Native video rocks!
‣ Plays nicely with other open standards
‣ Better accessibility features
‣ Don't need to use Flash
‣ API for easy customization
Web fonts
‣ Download custom fonts along with your web
  pages
‣ Solve our typography nightmares, without having
  to worry about hackish solutions like siFR and
  Cufon
Include the font
@font‐face
{


font‐family:
'ActionIsRegular';


src:
url('actionis‐webfont.eot?')
format('eot'),







url('actionis‐webfont.woff')
format('woff'),







url('actionis‐webfont.ttf')

format('truetype'),







url('actionis‐webfont.svg#webfontg3JxrxOm')

format('svg');


font‐weight:
normal;


font‐style:
normal;
}
Then use it in your page as
normal
p
{


font‐family:
“My
font”;
}
Going offline




                http://www.flickr.com/photos/zscheyge/49012397/
Offline apps!
‣ Generally, the web doesn't work very well
  without a web connection!
‣ What can we do about this?
Offline applications
‣ AppCache: Save an offline version of your web
  page files and use those to display your web
  page when you lose network.
‣ Web storage: Like cookies, but more powerful.
  Store things such as form data and user
  preferences
‣ WebSQL: A fully-functioning database in your
  browser. Store a user's data so they can
  continue working with it when the network goes
  down
Offline applications
‣ For more information, check out http://
 dev.opera.com/articles/view/taking-your-web-
 apps-offline-web-storage-appcache-websql/
Scriptable graphics with
<canvas>
<canvas>
Scriptable graphics
‣ Standard API for drawing
‣ Supporting across all modern browsers
The basic idea
<canvas
id="canvas"
width="400"
height="300">


...fallback...
</canvas>
<canvas> examples
‣ http://dev.opera.com/articles/view/html-5-
  canvas-the-basics/
‣ http://ejohn.org/blog/processingjs/
‣ http://www.hakim.se/experiments/
‣ http://www.canvasdemos.com/
‣ http://people.opera.com/patrickl/experiments/
  canvas/particle/3/
Cutting down on Photoshop
We need less Photoshop!
Doing things programmatically is so much more
flexible.

Classic examples:
 ‣ Drop shadows
 ‣ Gradients
 ‣ Rounded corners
 ‣ Transparency
Examples
div
{


text‐shadow:
black
3px
3px
5px;


box‐shadow:
black
4px
4px
5px;


background‐image:
‐o‐linear‐gradient(top


left,rgba(0,0,0,0),rgba(0,0,0,0.6));


background‐color:
rgb(204,204,204);


border‐radius:
10px;


//
opacity:
0.6;
}
Less JavaScript needed
with HTML5 forms




            http://www.flickr.com/photos/zscheyge/49012397/
HTML5 forms
Filling up the gaps in HTML4 (and so cutting down
on JS and hacks) with:
‣ More powerful form controls
‣ Built-in validation
Not relying on JS can mean smaller downloads,
and better compatibility
Date-time controls
<input
type=date>
<input
type=datetime>
<input
type=week>
<input
type=month>
color
<input
type=color>
Datalist
<input
type=text
list=mydata>
<datalist
id=mydata>


<option
label=Mr
value=Mister>


<option
label=Mrs
value=Mistress>


<option
label=Ms
value=Miss>
</datalist>
Other new input types
<input
type=email>
<input
type=url>
<input
type=tel>
Validation
Form validation used to be horrendous

var
elements
=
document.getElementsByTagName('input');





//
loop
through
all
input
elements
in
form



for(var
i
=
0;
i
<
elements.length;
i++)
{








Who wants to write this?



//
check
if
element
is
mandatory;
ie
has
a
pattern






var
pattern
=
elements.item(i).getAttribute('pattern');





if
(pattern
!=
null)
{







var
value
=
elements.item(i).value;









//
validate
the
value
of
this
element,
using
its
defined
pattern







var
offendingChar
=
value.match(pattern);









//
if
an
invalid
character
is
found
or
the
element
was
left
empty







if(offendingChar
!=
null
||
value.length
==
0)
{











//
add
up
all
error
messages









str
+=
elements.item(i).getAttribute('errorMsg')
+
"n"
+
















"Found
this
illegal
value:
'"
+
offendingChar
+
"'
n";











//
notify
user
by
changing
background
color,
in
this
case
to
red









elements.item(i).style.background
=
"red";








}





}



}






if
(str
!=
"")
{





//
do
not
submit
the
form





alert("ERROR
ALERT!!n"
+str);






return
false;


HTML5 gives you...
<input
type=text
required








pattern="[A‐z]{1,20}
[A‐z]{1,20}">
Other new attributes
autofocus
placeholder
min
max
step
New output mechanisms
<output>

<progress>

<meter>
CSS form pseudo-classes
input:valid
{
...
}

input:invalid
{
...
}

input:checked
{
...
}
Controlling behaviour with
CSS...
...again, means less
JavaScript
Designers don't like scripting!

Obvious behavioural stuff:
 ‣ Animation
 ‣ Showing/hiding
Animation
‣ CSS keyframe animations allow you to create
  animations that run independently
‣ Transitions allow animation that is dependant
  on state changes
Showing/hiding
‣ :target pseudo-class: apply CSS depending on
  whether the element selected is the target of a
  fragment identifier
‣ So when links are clicked you could make
  panels, etc. appear.
Controlling layouts
Controlling layouts
‣ Media queries allow you to apply CSS
  depending on browser/device attributes such
  as resolution, screen width and height, etc.
‣ Viewport allows you to customise the initial
  display of your pages on mobile devices
‣ Multi-column layout allows you to easily put
  your content into columns
Media queries
Media types on steroids
‣ Apply CSS depending on value of certain media
  features
‣ (http://people.opera.com/danield/css3/vangogh/
  index.php)
‣ http://mediaqueri.es
Media features
         width              color
        height           color-index
     device-width        monochrome
    device-height         resolution
      orientation           scan
     aspect-ratio            grid
   device-aspect-ratio
mediaqueri.es
mediaqueri.es
Viewport
‣ Meta tag introduced by Apple to control display
  of web apps on the iPhone
‣ Adopted by other vendors too
‣ Control initial zoom level, maximum zoom, width
  or displayed area, etc.
‣ Functionality available as CSS @-rule too
‣ http://dev.opera.com/articles/view/an-
  introduction-to-meta-viewport-and-viewport/
Viewport: the premise
‣ It's all about physical versus virtual pixels
‣ Desktop computers are fairly simple
‣ But mobiles lie
‣ Viewport suggests sizing to mobiles
Viewport example
<meta
name="viewport"

content="width=480">

<meta
name="viewport"

content="width=480,
user‐scalable=no">
Viewport properties

       width         initial-scale


       height       minimum-scale


    user-scalable   maximum-scale
CSS viewport
@viewport
{


width:
device‐width;
}

@viewport
{


width:
320px;


zoom:
2.3;


user‐zoom:
fixed;
}
CSS viewport properties
    width/min-width/
                        user-zoom
       max-width

   height/min-height/
                        orientation
       max-height

    zoom/min-zoom/
       max-zoom
CSS multi-col
div
{


column‐width:
100px;


column‐count:
4;


column‐gap:
20px;


column‐rule:
2px
solid
#33c;
}

section
{


break‐after:
column;
}
Less presentational markup
Less presentational markup
‣ CSS3 includes a wide variety of new selectors
  to allow you to select what you want more
  easily, with less classes/ids
‣ Features like multiple background images and
  rounded corners allow you to get rid of some of
  those nested divisions!
CSS3 selectors
[attr*=str]       :nth‐last‐of‐type(n)
[attr^=str]       :nth‐last‐child(n)
[attr~=str]       :only‐child
:first‐child      :only‐of‐type
:last‐child       :checked
:first‐of‐type    :valid
:last‐of‐type     :invalid
:nth‐child(n)     :enabled       :target
:nth‐of‐type(n)   :disabled      And
more!
Multiple backgrounds
header
{


background:
url(icon.gif)
top
left
no‐repeat,














url(pattern.jpg)
repeat,














url(center‐spine.png)
top
center














repeat‐y;


}
When (and how) can we
start using these tools?




               http://www.flickr.com/photos/bre/552152780/
We've already looked at the
spec development history
‣ But what really matters?
Browser adoption
‣ The specs don't matter if the browsers don't
  follow them consistently
‣ We don't have a browser war anymore like the
  days of old
‣ But there is still lots of competition
Developer adoption
‣ Browser adoption doesn't matter if developers
  don't care...
‣ ...although more often this isn't exactly the case
‣ Often we are not in the position to use new
  features
Stuck between a rock and a
hard place
‣ Older browsers don't support this stuff
‣ Some of us are forced to support them
‣ Many clients are still obsessed with "pixel perfect
 layouts" across all browsers
However...
‣ ...most browsers support most of this stuff now,
  even IE9!
‣ (well, the semantic elements need a little help,
  but not much)
‣ Most of it degrades gracefully
‣ And you can work around problems
‣ Depends on what your client needs
‣ By "identical", how similar do you mean??
Try to argue the case...
..."identical in every browser" is outdated
‣ Especially with mobile phones, iPad, tablets...
‣ And IE6 is a decade old now
‣ Flash doesn't even work on iDevices!
‣ Surely providing an acceptable experience in
   each browser is, well, acceptable?
‣ Then you can spend more less time on hacking
Selectivizr
CSS3 pie
Modernizr
I say use them now, as
much as possible!




             http://www.flickr.com/photos/ilamont/5538511847/
Thanks for listening!
‣ cmills@opera.com
‣ @chrisdavidmills
‣ http://dev.opera.com
‣ http://www.opera.com/wsc

More Related Content

Viewers also liked

Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersAccelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersTodd Anglin
 
HTML5, CSS3, and JavaScript
HTML5, CSS3, and JavaScriptHTML5, CSS3, and JavaScript
HTML5, CSS3, and JavaScriptZac Gordon
 
Responsive web designing ppt(1)
Responsive web designing ppt(1)Responsive web designing ppt(1)
Responsive web designing ppt(1)admecindia1
 
Introduction to Responsive Web Design
Introduction to Responsive Web DesignIntroduction to Responsive Web Design
Introduction to Responsive Web DesignClarissa Peterson
 
Design Process in the Responsive Age
Design Process in the Responsive AgeDesign Process in the Responsive Age
Design Process in the Responsive AgePon Kattera
 
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptBuilding Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptSencha
 

Viewers also liked (9)

Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersAccelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
 
HTML5, CSS3, and JavaScript
HTML5, CSS3, and JavaScriptHTML5, CSS3, and JavaScript
HTML5, CSS3, and JavaScript
 
Responsive Webdesign
Responsive WebdesignResponsive Webdesign
Responsive Webdesign
 
Introduction to HTML5 & CSS3
Introduction to HTML5 & CSS3Introduction to HTML5 & CSS3
Introduction to HTML5 & CSS3
 
Responsive web designing ppt(1)
Responsive web designing ppt(1)Responsive web designing ppt(1)
Responsive web designing ppt(1)
 
Introduction to Responsive Web Design
Introduction to Responsive Web DesignIntroduction to Responsive Web Design
Introduction to Responsive Web Design
 
The HTML5 WebSocket API
The HTML5 WebSocket APIThe HTML5 WebSocket API
The HTML5 WebSocket API
 
Design Process in the Responsive Age
Design Process in the Responsive AgeDesign Process in the Responsive Age
Design Process in the Responsive Age
 
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScriptBuilding Rich Mobile Apps with HTML5, CSS3 and JavaScript
Building Rich Mobile Apps with HTML5, CSS3 and JavaScript
 

More from Chris Mills

More efficient, usable web
More efficient, usable webMore efficient, usable web
More efficient, usable webChris Mills
 
Feedback handling, community wrangling, panhandlin’
Feedback handling, community wrangling, panhandlin’Feedback handling, community wrangling, panhandlin’
Feedback handling, community wrangling, panhandlin’Chris Mills
 
APIs for modern web apps
APIs for modern web appsAPIs for modern web apps
APIs for modern web appsChris Mills
 
APIs, now and in the future
APIs, now and in the futureAPIs, now and in the future
APIs, now and in the futureChris Mills
 
Guerrilla education
Guerrilla educationGuerrilla education
Guerrilla educationChris Mills
 
Web versus Native: round 1!
Web versus Native: round 1!Web versus Native: round 1!
Web versus Native: round 1!Chris Mills
 
Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"Chris Mills
 
Documentation and publishing
Documentation and publishingDocumentation and publishing
Documentation and publishingChris Mills
 
Getting rid of images with CSS
Getting rid of images with CSSGetting rid of images with CSS
Getting rid of images with CSSChris Mills
 
Laying out the future
Laying out the futureLaying out the future
Laying out the futureChris Mills
 
Accessibility doesn't exist
Accessibility doesn't existAccessibility doesn't exist
Accessibility doesn't existChris Mills
 
Responsive web design standards?
Responsive web design standards?Responsive web design standards?
Responsive web design standards?Chris Mills
 
Adapt! Media queries and viewport
Adapt! Media queries and viewportAdapt! Media queries and viewport
Adapt! Media queries and viewportChris Mills
 
Adapt and respond: keeping responsive into the future
Adapt and respond: keeping responsive into the futureAdapt and respond: keeping responsive into the future
Adapt and respond: keeping responsive into the futureChris Mills
 
Angels versus demons: balancing shiny and inclusive
Angels versus demons: balancing shiny and inclusiveAngels versus demons: balancing shiny and inclusive
Angels versus demons: balancing shiny and inclusiveChris Mills
 
HTML5 and CSS3: does now really mean now?
HTML5 and CSS3: does now really mean now?HTML5 and CSS3: does now really mean now?
HTML5 and CSS3: does now really mean now?Chris Mills
 
The W3C and the web design ecosystem
The W3C and the web design ecosystemThe W3C and the web design ecosystem
The W3C and the web design ecosystemChris Mills
 

More from Chris Mills (20)

More efficient, usable web
More efficient, usable webMore efficient, usable web
More efficient, usable web
 
Feedback handling, community wrangling, panhandlin’
Feedback handling, community wrangling, panhandlin’Feedback handling, community wrangling, panhandlin’
Feedback handling, community wrangling, panhandlin’
 
APIs for modern web apps
APIs for modern web appsAPIs for modern web apps
APIs for modern web apps
 
APIs, now and in the future
APIs, now and in the futureAPIs, now and in the future
APIs, now and in the future
 
Guerrilla education
Guerrilla educationGuerrilla education
Guerrilla education
 
Web versus Native: round 1!
Web versus Native: round 1!Web versus Native: round 1!
Web versus Native: round 1!
 
BrazilJS MDN
BrazilJS MDNBrazilJS MDN
BrazilJS MDN
 
Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"
 
Documentation and publishing
Documentation and publishingDocumentation and publishing
Documentation and publishing
 
MDN is easy!
MDN is easy!MDN is easy!
MDN is easy!
 
Getting rid of images with CSS
Getting rid of images with CSSGetting rid of images with CSS
Getting rid of images with CSS
 
Future layouts
Future layoutsFuture layouts
Future layouts
 
Laying out the future
Laying out the futureLaying out the future
Laying out the future
 
Accessibility doesn't exist
Accessibility doesn't existAccessibility doesn't exist
Accessibility doesn't exist
 
Responsive web design standards?
Responsive web design standards?Responsive web design standards?
Responsive web design standards?
 
Adapt! Media queries and viewport
Adapt! Media queries and viewportAdapt! Media queries and viewport
Adapt! Media queries and viewport
 
Adapt and respond: keeping responsive into the future
Adapt and respond: keeping responsive into the futureAdapt and respond: keeping responsive into the future
Adapt and respond: keeping responsive into the future
 
Angels versus demons: balancing shiny and inclusive
Angels versus demons: balancing shiny and inclusiveAngels versus demons: balancing shiny and inclusive
Angels versus demons: balancing shiny and inclusive
 
HTML5 and CSS3: does now really mean now?
HTML5 and CSS3: does now really mean now?HTML5 and CSS3: does now really mean now?
HTML5 and CSS3: does now really mean now?
 
The W3C and the web design ecosystem
The W3C and the web design ecosystemThe W3C and the web design ecosystem
The W3C and the web design ecosystem
 

Recently uploaded

Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGDSC PJATK
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FIDO Alliance
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsStefano
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...panagenda
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimaginedpanagenda
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityScyllaDB
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfFIDO Alliance
 

Recently uploaded (20)

Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 

HTML5 and CSS3: evolution and adoption

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n