4. Looking back, there was a lot of innovation going on early in my career, I quickly realised that since I ʻwent proʼ that Iʼd been using the same damn version of HTML.
This bothered me a fair bit. Looking at why: The W3C became increasingly interested in semantics and allowing publication of content on various devices, mobile, print, televisions. They
made some good decisions, but poorly executed them. XHTML went nowhere.
5. 95
96
97
98
99
00
01
02
03
04
05
06
07
08
09
10
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
Looking back, there was a lot of innovation going on early in my career, I quickly realised that since I ʻwent proʼ that Iʼd been using the same damn version of HTML.
This bothered me a fair bit. Looking at why: The W3C became increasingly interested in semantics and allowing publication of content on various devices, mobile, print, televisions. They
made some good decisions, but poorly executed them. XHTML went nowhere.
6. 2.0
95
96
97
98
99
00
01
02
03
04
05
06
07
08
09
10
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
Looking back, there was a lot of innovation going on early in my career, I quickly realised that since I ʻwent proʼ that Iʼd been using the same damn version of HTML.
This bothered me a fair bit. Looking at why: The W3C became increasingly interested in semantics and allowing publication of content on various devices, mobile, print, televisions. They
made some good decisions, but poorly executed them. XHTML went nowhere.
7. 2.0 3.2 4.0
95
96
97
98
99
00
01
02
03
04
05
06
07
08
09
10
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
Looking back, there was a lot of innovation going on early in my career, I quickly realised that since I ʻwent proʼ that Iʼd been using the same damn version of HTML.
This bothered me a fair bit. Looking at why: The W3C became increasingly interested in semantics and allowing publication of content on various devices, mobile, print, televisions. They
made some good decisions, but poorly executed them. XHTML went nowhere.
8. 2.0 3.2 4.0 4.01
95
96
97
98
99
00
01
02
03
04
05
06
07
08
09
10
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
Looking back, there was a lot of innovation going on early in my career, I quickly realised that since I ʻwent proʼ that Iʼd been using the same damn version of HTML.
This bothered me a fair bit. Looking at why: The W3C became increasingly interested in semantics and allowing publication of content on various devices, mobile, print, televisions. They
made some good decisions, but poorly executed them. XHTML went nowhere.
9. XHTML1
2.0 3.2 4.0 4.01
95
96
97
98
99
00
01
02
03
04
05
06
07
08
09
10
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
Looking back, there was a lot of innovation going on early in my career, I quickly realised that since I ʻwent proʼ that Iʼd been using the same damn version of HTML.
This bothered me a fair bit. Looking at why: The W3C became increasingly interested in semantics and allowing publication of content on various devices, mobile, print, televisions. They
made some good decisions, but poorly executed them. XHTML went nowhere.
10. XHTML1
XHTML1.1
2.0 3.2 4.0 4.01
95
96
97
98
99
00
01
02
03
04
05
06
07
08
09
10
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
Looking back, there was a lot of innovation going on early in my career, I quickly realised that since I ʻwent proʼ that Iʼd been using the same damn version of HTML.
This bothered me a fair bit. Looking at why: The W3C became increasingly interested in semantics and allowing publication of content on various devices, mobile, print, televisions. They
made some good decisions, but poorly executed them. XHTML went nowhere.
11. XHTML1
XHTML1.1
HTML5
2.0 3.2 4.0 4.01
95
96
97
98
99
00
01
02
03
04
05
06
07
08
09
10
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
Looking back, there was a lot of innovation going on early in my career, I quickly realised that since I ʻwent proʼ that Iʼd been using the same damn version of HTML.
This bothered me a fair bit. Looking at why: The W3C became increasingly interested in semantics and allowing publication of content on various devices, mobile, print, televisions. They
made some good decisions, but poorly executed them. XHTML went nowhere.
12. Other people had noticed this also, take Mark Pilgrim, the author of diveintohtml5.org (The single best book for HTML that Iʼve read to date)
13. “The CSS working group
right now is chronically
dysfunctional…”
—Ian Hickson, Google, W3C, WHATWG
Mark isnʼt the only person to notice issues of the organisation that is the W3C. This from Ian Hickson, an invited chair to the CSS working group. (Which is somewhat of an honour to be a
part of)
15. I saw Bert Bos speak here at web directions around 3-5 years ago. One thing that he said while showing new css3 features was ʻfancy bordersʼ, this really stuck with me, he had no idea
what designers really wanted or needed. This stuck with me until now, although Iʼd never really thought about it
18. The whatwg go through the html5 spec with a fine tooth comb. Applying use cases and better documenting how browsers should handle elements down to a very detailed level.
19. Their work mirrors a copy of the html5 spec from the w3c—which is maintained using a version control system (subversion, I believe).
This tracker allows you to track every change to the spec, as it happens.#
20. Their work mirrors a copy of the html5 spec from the w3c—which is maintained using a version control system (subversion, I believe).
This tracker allows you to track every change to the spec, as it happens.#
21. If you wanted to keep in touch with developments, you can also check the @whatwg twitter
account#
22. If you wanted to keep in touch with developments, you can also check the @whatwg twitter
account#
23. Changing pace a little. Who knows what a spec is? (70% of the audience held up their hands). Who has read a spec (some hands down)... Like, from page 0—hero (all hands went down,
with the exception of Mike Smith [W3C] and a few others)
24. I did a word count of HTML4, it was about the size of a small novel that you could read over a weekend.
25. A common myth of HTML5 is that its a really big awful spec…
26. How horrible? Well, I couldnʼt copy and paste the text into Pages... my computer crashed for 7 long
minutes.#
27. I eventually wrote some javascript to get a rough word count. Remembering that this single page version of the spec omits certain pieces of web technology that would be considered
HTML5.
28. HTML5 is backwards compatible, donʼt break anything in existing browsers.
31. Not the millions of web designers and developers around the world, but just a couple hundred people on the face of the
planet.#
32. Not all is lost. Hixie and others have painstakingly gone through the spec and marked out all the sections that could be omitted… to create a web developer edition of the spec
33. Leading the charge on this is Mike™ Smith, a W3C representative from Tokyo, Japan. Who just happens to be a good friend of mine now…
34. Its about 50% of the size, which is much more palatable
35. FOR THE
LOVE
of
THE WEB
A few months ago, I travelled the country (Australia, if youʼre wondering) and gave a bunch of HTML5/CSS3/Web technology workshops.
36. During this process of preparing for my workshops, I thought “Who really wants to read something that looks like this?”
37. “So, I’ve been trying to read [W3C]
specs more than ever. Not only is the
language used some form of
incompressible bullshit, but the
readability of these pages is
abysmal…”
38. “So, I’ve been trying to read [W3C]
specs more than ever. Not only is the
language used some form of
incompressible bullshit, but the
readability of these pages is
abysmal…”
—Me
39. “…Why does a page have to look like
that ugly ass bullshit?”
This is taken from an e-mail to my long time friend, and business partner…
40. “…Why does a page have to look like
that ugly ass bullshit?”
—Me
This is taken from an e-mail to my long time friend, and business partner…
45. We had this.
Within 3—4 hours Paul Irish had forked my code, corrected a cross domain @font-face issue found only in Firefox, then hosted the fonts on his own website.
46. Pause. Ajaxin.com wrote an article titled “W3C, Hire Ben Schwarz”
http://ajaxian.com/archives/w3c-hire-ben-schwarz-now-making-specs-nice-to-look-at
While this was great for my ego, after a few days of crazy traffic on my website, it died down after about a week. Nothing happened. Until…
47. I got an email introduction from Oli Studholme, (http://oli.jp, @boblet on twitter), he was the guy who got me in touch with Mike Smith. Without this email, none of the following could occur.
But what occurred?
48. Today, at Web directions south 2010, Iʼd like to introduce to you…
49. The all new HTML5, web developer edition. Mike Smith, sitting in the audience just deployed this as I started speaking to you
today#
56. If you support this project, have feedback or anything of the sort, use this hash
tag#
57. "The problem we're facing right now
is there is already a lot of excitement
for HTML5, but it's a little too early to
deploy it because we're running into
interoperability issues,"
—Philippe Le Hegaret,
W3C interaction domain leader
Now, to recent events… Philippe was quoted saying
this#
58. “W3C: Hold off on deploying
HTML5 in websites”
—infoworld.com
Which was straight away misconstrued by lazy tech writers
59. “W3C Official: Don't Use HTML5 Yet”
—dzone.com
Still, Iʼm not sure he said this at all. Fear tactics, not for politics, for a fucking web based technology.
60. <!DOCTYPE HTML>
Here is the HTML5 doctype, its beauiful, simple, sets your browser to use standards mode, and better still, it doesnʼt decide that youʼre using a “Version” of HTML.
61. Your browser determines the features that you can use, irregardless of which doctype youʼre using
62. So all these features, how do we know what we can do? Without breaking old browsers or giving them an “empty” experience?
66. “ hey is this ben schwartz you? <link>
i'm sure there is only one ben schwarz in
this world.
i dated an erica schwartz in 6th grade.
despite our matching necklaces, it turns out
we weren’t Together Forever”
—Paul Irish
Paul is a bit of a character, one day I returned to my computer to collect some missed IM messages from Paul.
69. p
{
width:
33em;
}
So I can take my regular width for a paragraph of text (Note, 33em is usually about right for a sane ʻmeasureʼ [the width of the text])
70. .csscolumns
p
{
width:
auto;
column-‐count:
2;
column-‐gap:
1em;
}
but when I have support for css3 columns, I can set the width to be auto and allow it to break into two short
columns#
71. .csscolumns
p
{
width:
auto;
-‐webkit-‐column-‐count:
2;
-‐moz-‐column-‐count:
2;
-‐ms-‐column-‐count:
2;
-‐o-‐column-‐count:
2;
column-‐count:
2;
-‐webkit-‐column-‐gap:
1em;
-‐moz-‐column-‐gap:
1em;
-‐ms-‐column-‐gap:
1em;
-‐o-‐column-‐gap:
1em;
column-‐gap:
1em;
}
Sadly, this is really how I have to do it right now
72. You can achieve something like this—Which I have actually used on my new web site
germanforblack.com#
73. In a browser without css columns, you can offer the user a slightly different layout
74. .cssgradients
section
{
background-‐image:
-‐webkit-‐gradient(…,
…,
…,
from(#33ff00),
to(#ff00ff));
}
You could use a css
gradient#
75. section
{
background-‐image:
url("lame-‐gradient.png");
}
and back down to loading an image (which obviously uses more bandwidth)
76. HOT
you can go and do aw/(ful|some) things like this. Hot pink to neon green.
77. Mobile devices are leading the web, we get one every year or two, even your mothers do. This means newer browsers on many devices, sadly the new windows 7 phone is going to also use
the IE7 rendering engine. This means no awesome features (shown following).
79. CACHE MANIFEST
/
/stylesheets/master.css
/javascripts/application.js
If you have a file like this, your browser will cache /, master.css and application.js, so when your users are offline, they can literally type in “website.com” and get the full experience
80. CACHE MANIFEST
/
/stylesheets/master.css
/javascripts/application.js
NETWORK:
/exchange
We can say when we need network access
81. CACHE MANIFEST
/
/stylesheets/master.css
/javascripts/application.js
NETWORK:
/exchange
FALLBACK:
/people /unavailable-content
When we want to have something like a custom 404
82. CACHE MANIFEST
/
/stylesheets/master.css
/javascripts/*
NETWORK:
/exchange
FALLBACK:
/people /unavailable-content
Even * wildcards for paths
83. CACHE MANIFEST
# Version 20
/
/stylesheets/master.css
/images/icons/appicon.png
/images/icons/appicon-x2.png
/images/loading.png
/images/btn-clear.png
/images/btn-clear-x2.png
/javascripts/json.js
/javascripts/dataset.js
/javascripts/application.js
NETWORK:
/exchange
Of course, if we updated master.css, by design the manifest will be checked, deemed that nothing has been changed and NOT redownload master.css. Do force a cache refresh, weʼll need
to somehow change the manifest file (see Version 20?—You could also use the commit hash from your version control system)
84. <!DOCTYPE HTML>
<html manifest=”site.manifest”>
Add the manifest file reference to an attribute called “manifest” on the HTML node
89. /etc/mime.types
video/fli fli
video/gl gl
video/mpeg mpeg mpg mpe
video/mp4 mp4
video/quicktime qt mov
text/cache-manifest manifest
or editing mime.types if youʼve got access to it
90. js> applicationCache.status
You can also check the status of your manifest cache..
Idle - Nothing to be done
Checking - Downloading the manifest
Update Ready - The files have been downloaded, you can call swap cache
Obsolete - The manifest 404ʼd, the cache will be deleted
91. js> applicationCache.status 0
1
2
3
4
5
You can also check the status of your manifest cache..
Idle - Nothing to be done
Checking - Downloading the manifest
Update Ready - The files have been downloaded, you can call swap cache
Obsolete - The manifest 404ʼd, the cache will be deleted
92. js> applicationCache.status 0 Uncached
1 Idle
2 Checking
3 Downloading
4 Update Ready
5 Obsolete
You can also check the status of your manifest cache..
Idle - Nothing to be done
Checking - Downloading the manifest
Update Ready - The files have been downloaded, you can call swap cache
Obsolete - The manifest 404ʼd, the cache will be deleted
94. Earlier, there was a project called websql, in which we had a sqlite database that could be queried via javascript
95. Earlier, there was a project called websql, in which we had a sqlite database that could be queried via javascript
96. The idea was that weʼd have a browser, we would make a call to our server, using json. This would (probably) use a SQL database on the server side, transport it back using json, only to be
parsed and reentered into another sql database
97. The idea was that weʼd have a browser, we would make a call to our server, using json. This would (probably) use a SQL database on the server side, transport it back using json, only to be
parsed and reentered into another sql database
98. The idea was that weʼd have a browser, we would make a call to our server, using json. This would (probably) use a SQL database on the server side, transport it back using json, only to be
parsed and reentered into another sql database
99. JSON
The idea was that weʼd have a browser, we would make a call to our server, using json. This would (probably) use a SQL database on the server side, transport it back using json, only to be
parsed and reentered into another sql database
100. JSON
The idea was that weʼd have a browser, we would make a call to our server, using json. This would (probably) use a SQL database on the server side, transport it back using json, only to be
parsed and reentered into another sql database
102. localStorage
sessionStorage
So, weʼre going to look at local and session storage, both have the exact same API and 5mb file size limit per domain. They are like a cookie in that they use a same domain policy for data
access
103. Here was a video demo that I canʼt extract from keynote, I showed different access to `localStorage`.
Mike Smith blogged a demo of this technology a while back, so check that out if youʼre interested. http://sideshowbarker.net/2009/02/09/examine-html5-localstorage-and-sessionstorage-
data-with-web-inspector/
104. var
currency
=
{
"AUD":{
"name":"Australian
Dollars",
"symbol":"$",
"rate_usd":0.9876
}
}
So say you had some data like this—Maybe youʼd transferred it over JSON from your web server
109. if(navigator.onLine) {
// ajax request
} else {
// maybe pull it from offline storage?
}
But I think we can agree, that we can combine these technologies and come up with interesting results
112. We know what users devices are capable of, so lets offer a holistic experience no matter who they are.
Here I told a story about my girlfriends kid brother, who was my best friend in the world after I brought a brand new PSP in HK a few years ago.
A month later, he had one, a week after that I came over to visit, he said something roughly like: ʻhey, so I downloaded some torrented games, cracked the firmware, what firmware are you
on?” Our experiences with new mobile devices are going to change us all, no matter where we come from.
113. “An interface is humane if it is
responsive to human needs and
considerate of human frailties.”
—Jef Raskin, The Humane Interface
114. Iʼll leave you with this:
The W3C are documenters, not designers, they have no clients. The HTML5 spec is a modest specification—while they are working hard to ensure it does not become an act of fiction and is
well implemented, we, as designers and developers need to take the web for ourselves and build something truly powerful. As content producers we are some of the most powerful people in
the world, we can influence goverenment, save peoples lives in the case of a natural disaster and communicate like we never have before.