SlideShare a Scribd company logo
1 of 68
EPUB vs WEB:EPUB vs WEB:
A Cautionary TaleA Cautionary Tale
Tzviya Siegman & Dave CramerTzviya Siegman & Dave Cramer
Since the dawn of time…Since the dawn of time…
……people have complainedpeople have complained
about EPUBabout EPUB
#eprdctn#eprdctn
Duplication (manifest+spine+nav+ncx)Duplication (manifest+spine+nav+ncx)
Crazy XML (container.xml, package.opf)Crazy XML (container.xml, package.opf)
Non-web stuff (triggers, bindings, switch)Non-web stuff (triggers, bindings, switch)
WTF???? (multiple renditions, renditionWTF???? (multiple renditions, rendition
mapping, collections, CFI, the indexing spec)mapping, collections, CFI, the indexing spec)
And so people have lookedAnd so people have looked
to a savior:to a savior:
Books in BrowsersBooks in Browsers
HistoryHistory
• EPUB 3.0 Rec: October, 2011EPUB 3.0 Rec: October, 2011
• W3C eBooks workshop: February 2013W3C eBooks workshop: February 2013
• First EPUB Zero blog post: February 2013First EPUB Zero blog post: February 2013
• First PWP draft: October 2014First PWP draft: October 2014
• EPUB 3.1 kickoff F2F: October 2015EPUB 3.1 kickoff F2F: October 2015
• BFF: 2016BFF: 2016
Acme PublishingAcme Publishing
You just know this demo will failYou just know this demo will fail
Technology StackTechnology Stack
• HTML for content and accessibilityHTML for content and accessibility
(with some help from ARIA)(with some help from ARIA)
• Service workers for offline readingService workers for offline reading
• JSON-LD to describe publicationsJSON-LD to describe publications
and metadataand metadata
• Javascript and CSS for reading experienceJavascript and CSS for reading experience
• Web application manifest for installabilityWeb application manifest for installability
My book onlineMy book online
serverserver
service workerservice worker
next chapter, please!next chapter, please!
c002.htmlc002.html
cachecache
c002.htmlc002.html
oops! offline!oops! offline!
Standards StillStandards Still
MatterMatter
The goal is interop, and y’all knowThe goal is interop, and y’all know
how well that’s gone in epub-landhow well that’s gone in epub-land
Why Books in Browsers?Why Books in Browsers?
• The full powerThe full power
of the webof the web
• discoverability,discoverability,
rich snippets…rich snippets…
• accessibility withaccessibility with
familiar toolsfamiliar tools
(aka browser)(aka browser)
Current ProjectsCurrent Projects
• EPUB 3.1EPUB 3.1
• BFFBFF
• PWPPWP
EPUB 3.1EPUB 3.1
• Simpler, closer to webSimpler, closer to web
• HTML without the “X”HTML without the “X”
• Death to the NCX!Death to the NCX!
• MOAR CSSMOAR CSS
• Read the spec and comment!Read the spec and comment!
EPUB 3.1 April Draft SpecEPUB 3.1 April Draft Spec
• Changes to spec structure and organization.Changes to spec structure and organization.
77% more readable!77% more readable!
• MetadataMetadata
• Superseded or deprecated itemsSuperseded or deprecated items
• AccessibilityAccessibility
• CSSCSS
• Scripting and External Resources (including RSScripting and External Resources (including RS
object)object)
Spec Structure andSpec Structure and
OrganizationOrganization
• You complained, we listened!You complained, we listened!
• Umbrella spec as landing page, point toUmbrella spec as landing page, point to
family of specs with one URL:family of specs with one URL:
idpf.org/epub/31/epub-spec.htmlidpf.org/epub/31/epub-spec.html
• Now includes indexNow includes index
• Nav definition moved from content docs toNav definition moved from content docs to
packagespackages
MetadataMetadata
• Allows and encourages external metadataAllows and encourages external metadata
such as ONIXsuch as ONIX
• Deprecate @refines, instead brings backDeprecate @refines, instead brings back
epub2 features like @file-asepub2 features like @file-as
• Moving towards limiting metadata inside theMoving towards limiting metadata inside the
package by recommending that people pointpackage by recommending that people point
to outside resourcesto outside resources
• Method for prioritizing metadata (internal vsMethod for prioritizing metadata (internal vs
external) via HTTP negotiationexternal) via HTTP negotiation
GoodbyeGoodbye
• CFI in contentCFI in content
• epub:triggerepub:trigger
• epub:switchepub:switch
• epub:bindingsepub:bindings
• guideguide
• NCX moved from superseded to deprecatedNCX moved from superseded to deprecated
Welcome BackWelcome Back
• @file-as@file-as
• @id-type@id-type
AccessibilityAccessibility
• Creating an accessibility module/extensionCreating an accessibility module/extension
• Definitely a work in progressDefinitely a work in progress
• Focused on accessibility metadataFocused on accessibility metadata
• AccessMode, AccessModeSufficient, AccessibilitySummary, andAccessMode, AccessModeSufficient, AccessibilitySummary, and
Braille MetadataBraille Metadata
• See https://github.com/daisy/epub-revision-a11y/wiki/ePub-3.1-See https://github.com/daisy/epub-revision-a11y/wiki/ePub-3.1-
Accessibility--Proposal-To-Schema.orgAccessibility--Proposal-To-Schema.org
• Optimized for specific user communitiesOptimized for specific user communities
• WCAG+WCAG+
CSSCSS
• No more CSS ProfileNo more CSS Profile
• Closer alignment with broader webCloser alignment with broader web
• Based on 2015 SnapshotBased on 2015 Snapshot
https://drafts.csswg.org/css-2015/https://drafts.csswg.org/css-2015/
• Retains most prefixed properties for CJKRetains most prefixed properties for CJK
CSSCSS
は素晴は素晴
らしいですらしいです
ScriptingScripting
• navigator.epubReadingSystemnavigator.epubReadingSystem objectobject
• uiVisible (true | false)uiVisible (true | false)
External ResourcesExternal Resources
• Scientific Data SetsScientific Data Sets
What if EPUB was easier toWhat if EPUB was easier to
use on the web?use on the web?
Let’s make EPUB and the Web Best Friends Forever!Let’s make EPUB and the Web Best Friends Forever!
BFFBFF
• explodingexploding
• JSONifyingJSONifying
• arguingarguing
Instead of XML, use JSONInstead of XML, use JSON
• Allow an “unzipped” orAllow an “unzipped” or
“exploded” EPUB“exploded” EPUB
• Replace package.opf andReplace package.opf and
container.xml with a singlecontainer.xml with a single
JSON manifest fileJSON manifest file
• No need for META-INF folderNo need for META-INF folder
• Everything else stays theEverything else stays the
samesame
JSON in a { "name": "nutshell" }JSON in a { "name": "nutshell" }OBJECT: { }
KEYS and VALUES: { "key": "value" }
MORE THAN ONE KEY:
{
"key0": "value0",
"key1": "value1"
}
ARRAY [ aka ordered list ]:
{
"list": [
{ "key0": "value0" },
{ "key1": “value1" },
{ “key2”: “value2” }
]
}
Start with NothingStart with Nothing
{ }{ }
Add Metadata ObjectAdd Metadata Object
{
"metadata": { }
}
Add Required MetadataAdd Required Metadata
{
"metadata": {
"title": "Moby-Dick",
"language": "en",
"modified": "2016-04-
01T17:00:00Z",
"identifier": "978031600000X"
}
}
Add Some FilesAdd Some Files
{
"metadata": {
"title": "Moby-Dick",
"language": "en",
"modified”: "2015-09-29T17:00:00Z",
"identifier”: "978031600000X"
},
"manifest": [
{ "href": "c001.html", "type”: "text/html" },
{ "href": "c002.html", "type": “text/html" },
{ "href": "style.css", "type": "text/css" }
]
}
"rendition": [{"rendition": [{
"metadata": {"metadata": {
"layout": "reflowable","layout": "reflowable",
"accessMode": "textual","accessMode": "textual",
"label": "Optimized for smaller screens""label": "Optimized for smaller screens"
},},
"links": [{"links": [{
"href": "reflow/html/section001.xhtml","href": "reflow/html/section001.xhtml",
"type": "application/xhtml+xml""type": "application/xhtml+xml"
}, {}, {
"href": "reflow/html/"href": "reflow/html/section002section002.xhtml",.xhtml",
"type": "application/xhtml+xml""type": "application/xhtml+xml"
}, {}, {
"href": "reflow/html/section003.xhtml","href": "reflow/html/section003.xhtml",
"type": "application/xhtml+xml""type": "application/xhtml+xml"
}],}],
"manifest": {"manifest": {
"links": [{"links": [{
"href": "reflow/css/reflow.css","href": "reflow/css/reflow.css",
"type": "text/css""type": "text/css"
}]}]
}}
One small step…One small step…
Portable Web PublicationsPortable Web Publications
W3C Digital Publishing Interest GroupW3C Digital Publishing Interest Group
––The PWP White Paper (aka PWPWP)The PWP White Paper (aka PWPWP)
““This document introduces Portable WebThis document introduces Portable Web
Publications, a vision for the future of digitalPublications, a vision for the future of digital
publishing that is based on a fully nativepublishing that is based on a fully native
representation of documents within the Openrepresentation of documents within the Open
Web Platform. Portable Web PublicationsWeb Platform. Portable Web Publications
achieve full convergence between online andachieve full convergence between online and
offline/portable document publishing:offline/portable document publishing:
publishers and users won't need to choose onepublishers and users won't need to choose one
or the other, but can switch between themor the other, but can switch between them
dynamically, at will.”dynamically, at will.”
VisionVision
• w3c.github.io/dpub-pwp/w3c.github.io/dpub-pwp/
• link in or out of bookslink in or out of books
• bookmarks/annotationsbookmarks/annotations
• polyfills/plugins with browser toolspolyfills/plugins with browser tools
• use the computing power of your computeruse the computing power of your computer
A Call to ActionA Call to Action
Read the damned spec!Read the damned spec!
Things you can doThings you can do
• Read the spec! Github, issues, mailing lists…Read the spec! Github, issues, mailing lists…
• Standards orgs… IDPF, W3CStandards orgs… IDPF, W3C
• Community GroupsCommunity Groups
• Bug reporting specs, browsers, readingBug reporting specs, browsers, reading
systems.systems.
• #eprdctn#eprdctn
Community GroupsCommunity Groups
• WICG—Web Incubator Community Group. Anyone withWICG—Web Incubator Community Group. Anyone with
a crazy idea gets to make a suggestion.a crazy idea gets to make a suggestion.
• Scholarly HTML—an HTML “vernacular” for theScholarly HTML—an HTML “vernacular” for the
scholarly web, including restrictions on HTML andscholarly web, including restrictions on HTML and
linked datalinked data
• Math on the Web/Stem—A community groupMath on the Web/Stem—A community group
dedicated to uniting all the math hackersdedicated to uniting all the math hackers
• schema.orgschema.org—formal extensions to—formal extensions to schema.orgschema.org. Just. Just
watch the GitHub repo to see SEO unfold before you!watch the GitHub repo to see SEO unfold before you!
ResourcesResources
• EPUB 3.1: http://www.idpf.org/epub/31/spec/epub-EPUB 3.1: http://www.idpf.org/epub/31/spec/epub-
spec.html IDPF GitHub repo: https://github.com/idpfspec.html IDPF GitHub repo: https://github.com/idpf
• EPUB 3.1 Revision 3.1 Google DriveEPUB 3.1 Revision 3.1 Google Drive
https://drive.google.com/drive/folders/0B_r69cPgzjHjODJyThttps://drive.google.com/drive/folders/0B_r69cPgzjHjODJyT
jlaeTVrSDQjlaeTVrSDQ
• Portable Web Publications: https://w3c.github.io/dpub-pwp/Portable Web Publications: https://w3c.github.io/dpub-pwp/
• W3C Community Groups: https://www.w3.org/community/W3C Community Groups: https://www.w3.org/community/
• Digital Publishing Interest Group:Digital Publishing Interest Group:
https://www.w3.org/dpub/IG/wiki/Main_Pagehttps://www.w3.org/dpub/IG/wiki/Main_Page
• W3C Public email archives/subscriptions:W3C Public email archives/subscriptions:
https://www.w3.org/community/https://www.w3.org/community/
• IDPFmemes:IDPFmemes: http://idpfmemes.tumblr.com/http://idpfmemes.tumblr.com/
Thanks!Thanks!
Tzviya SiegmanTzviya Siegman
WileyWiley
@TzviyaSiegman@TzviyaSiegman
Dave CramerDave Cramer
HachetteHachette
@dauwhe@dauwhe
Please Grant us Asylum!Please Grant us Asylum!
Make Canada Great AgainMake Canada Great Again
<section doc-role="appendix"><section doc-role="appendix">
Hire Iris and India!Hire Iris and India!
They’re the best!They’re the best!
@epubpupil @indiamos@epubpupil @indiamos
EPUB ZeroEPUB Zero
The idea that won’t die, and can’t liveThe idea that won’t die, and can’t live
What? Why? How?What? Why? How?
• What? Making ebooks with only existingWhat? Making ebooks with only existing
HTML/CSS/JSHTML/CSS/JS
• Why? To learn, to play, to try out ideas.Why? To learn, to play, to try out ideas.
• How?How?
Layer PWPPWP EPUBEPUB WebWeb
user interaction javascript
fragment identifiers unknown epub CFI #id
archive unknown container specification no standard
renditions / collections unknown
container.xml + new
package(s)
n/a
user interface browser + JS?
reading system
browser + JS?
offline manifest + SW manifest + SW
design CSS
additional a11y
semantics aria roles
content sequence link relations package > spine link relations
navigation nav nav nav (optional)
content HTML + SVG + MathML + images
PWP vs EPUB vs Web

More Related Content

What's hot

ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
Clément Wehrung
 
The WordPress University 2012
The WordPress University 2012The WordPress University 2012
The WordPress University 2012
Stephanie Leary
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and How
BigBlueHat
 
2014 database - course 1 - www introduction
2014 database - course 1 - www introduction2014 database - course 1 - www introduction
2014 database - course 1 - www introduction
Hung-yu Lin
 

What's hot (20)

JSON Support in Salesforce - winter 12
JSON Support in Salesforce - winter 12JSON Support in Salesforce - winter 12
JSON Support in Salesforce - winter 12
 
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
 
JSON REST API for WordPress
JSON REST API for WordPressJSON REST API for WordPress
JSON REST API for WordPress
 
On Again; Off Again - Benjamin Young - ebookcraft 2017
On Again; Off Again - Benjamin Young - ebookcraft 2017On Again; Off Again - Benjamin Young - ebookcraft 2017
On Again; Off Again - Benjamin Young - ebookcraft 2017
 
Beyond WP-CONTENT | #WCRaleigh
Beyond WP-CONTENT | #WCRaleighBeyond WP-CONTENT | #WCRaleigh
Beyond WP-CONTENT | #WCRaleigh
 
Html css workshop, lesson 0, how browsers work
Html css workshop, lesson 0, how browsers workHtml css workshop, lesson 0, how browsers work
Html css workshop, lesson 0, how browsers work
 
HTML/CSS Lecture 1
HTML/CSS Lecture 1HTML/CSS Lecture 1
HTML/CSS Lecture 1
 
The WordPress University 2012
The WordPress University 2012The WordPress University 2012
The WordPress University 2012
 
Kick start @ html5
Kick start @ html5Kick start @ html5
Kick start @ html5
 
DITA, HTML5, and EPUB3 (Content Agility, June 2013)
DITA, HTML5, and EPUB3 (Content Agility, June 2013)DITA, HTML5, and EPUB3 (Content Agility, June 2013)
DITA, HTML5, and EPUB3 (Content Agility, June 2013)
 
Oreilly
OreillyOreilly
Oreilly
 
Introduction to CouchDB
Introduction to CouchDBIntroduction to CouchDB
Introduction to CouchDB
 
HTML5
HTML5 HTML5
HTML5
 
Software Development with Open Source
Software Development with Open SourceSoftware Development with Open Source
Software Development with Open Source
 
&lt;?php + WordPress
&lt;?php + WordPress&lt;?php + WordPress
&lt;?php + WordPress
 
Khoa dang (kay)
Khoa dang (kay)Khoa dang (kay)
Khoa dang (kay)
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and How
 
What is HTML - An Introduction to HTML (Hypertext Markup Language)
What is HTML - An Introduction to HTML (Hypertext Markup Language)What is HTML - An Introduction to HTML (Hypertext Markup Language)
What is HTML - An Introduction to HTML (Hypertext Markup Language)
 
2014 database - course 1 - www introduction
2014 database - course 1 - www introduction2014 database - course 1 - www introduction
2014 database - course 1 - www introduction
 
Introduction to WEB HTML, CSS
Introduction to WEB HTML, CSSIntroduction to WEB HTML, CSS
Introduction to WEB HTML, CSS
 

Viewers also liked

Viewers also liked (6)

The beauty behind ebooks: CSS - ebookcraft 2015 - Iris Febres
The beauty behind ebooks: CSS - ebookcraft 2015 - Iris FebresThe beauty behind ebooks: CSS - ebookcraft 2015 - Iris Febres
The beauty behind ebooks: CSS - ebookcraft 2015 - Iris Febres
 
Audiobooks and the Sound of Sales - Noah Genner - Tech Forum 2017
Audiobooks and the Sound of Sales - Noah Genner - Tech Forum 2017Audiobooks and the Sound of Sales - Noah Genner - Tech Forum 2017
Audiobooks and the Sound of Sales - Noah Genner - Tech Forum 2017
 
The Success of a Book: Building pre-pub discoverability & buzz
The Success of a Book: Building pre-pub discoverability & buzzThe Success of a Book: Building pre-pub discoverability & buzz
The Success of a Book: Building pre-pub discoverability & buzz
 
Understanding Your Metadata’s Journey
Understanding Your Metadata’s JourneyUnderstanding Your Metadata’s Journey
Understanding Your Metadata’s Journey
 
Beyond Good & Evil: The nuts and bolts of DRM - Dave Cramer - ebookcraft 2017
Beyond Good & Evil: The nuts and bolts of DRM - Dave Cramer - ebookcraft 2017Beyond Good & Evil: The nuts and bolts of DRM - Dave Cramer - ebookcraft 2017
Beyond Good & Evil: The nuts and bolts of DRM - Dave Cramer - ebookcraft 2017
 
Creating a Roadmap for Accessibility - Amanda Karby, Kristin Waites - ebookcr...
Creating a Roadmap for Accessibility - Amanda Karby, Kristin Waites - ebookcr...Creating a Roadmap for Accessibility - Amanda Karby, Kristin Waites - ebookcr...
Creating a Roadmap for Accessibility - Amanda Karby, Kristin Waites - ebookcr...
 

Similar to EPUB vs. WEB: A Cautionary Tale - ebookcraft 2016 - Tzviya Siegman & Dave Cramer

Message:Passing - lpw 2012
Message:Passing - lpw 2012Message:Passing - lpw 2012
Message:Passing - lpw 2012
Tomas Doran
 
Workflows in the Virtual Observatory
Workflows in the Virtual ObservatoryWorkflows in the Virtual Observatory
Workflows in the Virtual Observatory
Jose Enrique Ruiz
 
Stop Building It From Scratch: Creating Reusable eLearning Components
Stop Building It From Scratch: Creating Reusable eLearning ComponentsStop Building It From Scratch: Creating Reusable eLearning Components
Stop Building It From Scratch: Creating Reusable eLearning Components
Chad Udell
 
Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?
Docker, Inc.
 
Midwest php 2013 deploying php on paas- why & how
Midwest php 2013   deploying php on paas- why & howMidwest php 2013   deploying php on paas- why & how
Midwest php 2013 deploying php on paas- why & how
dotCloud
 
Weave - Containers Across Clouds - Edinburgh Docker Meetup, July 2015
Weave - Containers Across Clouds - Edinburgh Docker Meetup, July 2015Weave - Containers Across Clouds - Edinburgh Docker Meetup, July 2015
Weave - Containers Across Clouds - Edinburgh Docker Meetup, July 2015
Weaveworks
 

Similar to EPUB vs. WEB: A Cautionary Tale - ebookcraft 2016 - Tzviya Siegman & Dave Cramer (20)

NullMQ @ PDX
NullMQ @ PDXNullMQ @ PDX
NullMQ @ PDX
 
Message:Passing - lpw 2012
Message:Passing - lpw 2012Message:Passing - lpw 2012
Message:Passing - lpw 2012
 
Nodeconf npm 2011
Nodeconf npm 2011Nodeconf npm 2011
Nodeconf npm 2011
 
Workflows in the Virtual Observatory
Workflows in the Virtual ObservatoryWorkflows in the Virtual Observatory
Workflows in the Virtual Observatory
 
Inside Wordnik's Architecture
Inside Wordnik's ArchitectureInside Wordnik's Architecture
Inside Wordnik's Architecture
 
Spacebrew: The Overview
Spacebrew: The OverviewSpacebrew: The Overview
Spacebrew: The Overview
 
BPAA PD Day: ONIX 101
BPAA PD Day: ONIX 101BPAA PD Day: ONIX 101
BPAA PD Day: ONIX 101
 
About Clack
About ClackAbout Clack
About Clack
 
Data Science
Data ScienceData Science
Data Science
 
Emerson Epub Coding Day
Emerson Epub Coding DayEmerson Epub Coding Day
Emerson Epub Coding Day
 
Stop Building It From Scratch: Creating Reusable eLearning Components
Stop Building It From Scratch: Creating Reusable eLearning ComponentsStop Building It From Scratch: Creating Reusable eLearning Components
Stop Building It From Scratch: Creating Reusable eLearning Components
 
JavaScript @ Spotify (Felipe Ribeiro Technology Stream)
JavaScript @ Spotify (Felipe Ribeiro Technology Stream)JavaScript @ Spotify (Felipe Ribeiro Technology Stream)
JavaScript @ Spotify (Felipe Ribeiro Technology Stream)
 
Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?Deploying PHP on PaaS: Why and How?
Deploying PHP on PaaS: Why and How?
 
Midwest php 2013 deploying php on paas- why & how
Midwest php 2013   deploying php on paas- why & howMidwest php 2013   deploying php on paas- why & how
Midwest php 2013 deploying php on paas- why & how
 
Your Goat Anti-Fragiled My Snowflake! Demystifying DevOps Jargon (30 minute v...
Your Goat Anti-Fragiled My Snowflake! Demystifying DevOps Jargon (30 minute v...Your Goat Anti-Fragiled My Snowflake! Demystifying DevOps Jargon (30 minute v...
Your Goat Anti-Fragiled My Snowflake! Demystifying DevOps Jargon (30 minute v...
 
Your Goat Anti-Fragiled My SnowFlake! Demystifying DevOps Jargon
Your Goat Anti-Fragiled My SnowFlake! Demystifying DevOps JargonYour Goat Anti-Fragiled My SnowFlake! Demystifying DevOps Jargon
Your Goat Anti-Fragiled My SnowFlake! Demystifying DevOps Jargon
 
Koppel, "Defining E-books: Trying to Pin Down a Moving Target"
Koppel, "Defining E-books: Trying to Pin Down a Moving Target"Koppel, "Defining E-books: Trying to Pin Down a Moving Target"
Koppel, "Defining E-books: Trying to Pin Down a Moving Target"
 
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
 
Weave - Containers Across Clouds - Edinburgh Docker Meetup, July 2015
Weave - Containers Across Clouds - Edinburgh Docker Meetup, July 2015Weave - Containers Across Clouds - Edinburgh Docker Meetup, July 2015
Weave - Containers Across Clouds - Edinburgh Docker Meetup, July 2015
 
3 apache-avro
3 apache-avro3 apache-avro
3 apache-avro
 

More from BookNet Canada

More from BookNet Canada (20)

Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 
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
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
 
Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024
Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024
Green paths: Learning from publishers’ sustainability journeys - Tech Forum 2024
 
Transcript: Book industry state of the nation 2024 - Tech Forum 2024
Transcript: Book industry state of the nation 2024 - Tech Forum 2024Transcript: Book industry state of the nation 2024 - Tech Forum 2024
Transcript: Book industry state of the nation 2024 - Tech Forum 2024
 
Book industry state of the nation 2024 - Tech Forum 2024
Book industry state of the nation 2024 - Tech Forum 2024Book industry state of the nation 2024 - Tech Forum 2024
Book industry state of the nation 2024 - Tech Forum 2024
 
Trending now: Book subjects on the move in the Canadian market - Tech Forum 2024
Trending now: Book subjects on the move in the Canadian market - Tech Forum 2024Trending now: Book subjects on the move in the Canadian market - Tech Forum 2024
Trending now: Book subjects on the move in the Canadian market - Tech Forum 2024
 
Transcript: Trending now: Book subjects on the move in the Canadian market - ...
Transcript: Trending now: Book subjects on the move in the Canadian market - ...Transcript: Trending now: Book subjects on the move in the Canadian market - ...
Transcript: Trending now: Book subjects on the move in the Canadian market - ...
 
Transcript: New stores, new views: Booksellers adapting engaging and thriving...
Transcript: New stores, new views: Booksellers adapting engaging and thriving...Transcript: New stores, new views: Booksellers adapting engaging and thriving...
Transcript: New stores, new views: Booksellers adapting engaging and thriving...
 
Show and tell: What’s in your tech stack? - Tech Forum 2023
Show and tell: What’s in your tech stack? - Tech Forum 2023Show and tell: What’s in your tech stack? - Tech Forum 2023
Show and tell: What’s in your tech stack? - Tech Forum 2023
 
Transcript: Show and tell: What’s in your tech stack? - Tech Forum 2023
Transcript: Show and tell: What’s in your tech stack? - Tech Forum 2023Transcript: Show and tell: What’s in your tech stack? - Tech Forum 2023
Transcript: Show and tell: What’s in your tech stack? - Tech Forum 2023
 
Transcript: Redefining the book supply chain: A glimpse into the future - Tec...
Transcript: Redefining the book supply chain: A glimpse into the future - Tec...Transcript: Redefining the book supply chain: A glimpse into the future - Tec...
Transcript: Redefining the book supply chain: A glimpse into the future - Tec...
 
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
Redefining the book supply chain: A glimpse into the future - Tech Forum 2023
 

Recently uploaded

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
UK Journal
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 

Recently uploaded (20)

Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
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 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
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
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
 
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
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
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
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 

EPUB vs. WEB: A Cautionary Tale - ebookcraft 2016 - Tzviya Siegman & Dave Cramer

  • 1. EPUB vs WEB:EPUB vs WEB: A Cautionary TaleA Cautionary Tale Tzviya Siegman & Dave CramerTzviya Siegman & Dave Cramer
  • 2. Since the dawn of time…Since the dawn of time…
  • 3. ……people have complainedpeople have complained about EPUBabout EPUB
  • 4.
  • 6. Duplication (manifest+spine+nav+ncx)Duplication (manifest+spine+nav+ncx) Crazy XML (container.xml, package.opf)Crazy XML (container.xml, package.opf) Non-web stuff (triggers, bindings, switch)Non-web stuff (triggers, bindings, switch) WTF???? (multiple renditions, renditionWTF???? (multiple renditions, rendition mapping, collections, CFI, the indexing spec)mapping, collections, CFI, the indexing spec)
  • 7. And so people have lookedAnd so people have looked to a savior:to a savior:
  • 8.
  • 10.
  • 11. HistoryHistory • EPUB 3.0 Rec: October, 2011EPUB 3.0 Rec: October, 2011 • W3C eBooks workshop: February 2013W3C eBooks workshop: February 2013 • First EPUB Zero blog post: February 2013First EPUB Zero blog post: February 2013 • First PWP draft: October 2014First PWP draft: October 2014 • EPUB 3.1 kickoff F2F: October 2015EPUB 3.1 kickoff F2F: October 2015 • BFF: 2016BFF: 2016
  • 12. Acme PublishingAcme Publishing You just know this demo will failYou just know this demo will fail
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. Technology StackTechnology Stack • HTML for content and accessibilityHTML for content and accessibility (with some help from ARIA)(with some help from ARIA) • Service workers for offline readingService workers for offline reading • JSON-LD to describe publicationsJSON-LD to describe publications and metadataand metadata • Javascript and CSS for reading experienceJavascript and CSS for reading experience • Web application manifest for installabilityWeb application manifest for installability
  • 19.
  • 20. My book onlineMy book online serverserver service workerservice worker next chapter, please!next chapter, please! c002.htmlc002.html cachecache c002.htmlc002.html oops! offline!oops! offline!
  • 21. Standards StillStandards Still MatterMatter The goal is interop, and y’all knowThe goal is interop, and y’all know how well that’s gone in epub-landhow well that’s gone in epub-land
  • 22. Why Books in Browsers?Why Books in Browsers? • The full powerThe full power of the webof the web • discoverability,discoverability, rich snippets…rich snippets… • accessibility withaccessibility with familiar toolsfamiliar tools (aka browser)(aka browser)
  • 23. Current ProjectsCurrent Projects • EPUB 3.1EPUB 3.1 • BFFBFF • PWPPWP
  • 24. EPUB 3.1EPUB 3.1 • Simpler, closer to webSimpler, closer to web • HTML without the “X”HTML without the “X” • Death to the NCX!Death to the NCX! • MOAR CSSMOAR CSS • Read the spec and comment!Read the spec and comment!
  • 25.
  • 26. EPUB 3.1 April Draft SpecEPUB 3.1 April Draft Spec • Changes to spec structure and organization.Changes to spec structure and organization. 77% more readable!77% more readable! • MetadataMetadata • Superseded or deprecated itemsSuperseded or deprecated items • AccessibilityAccessibility • CSSCSS • Scripting and External Resources (including RSScripting and External Resources (including RS object)object)
  • 27.
  • 28. Spec Structure andSpec Structure and OrganizationOrganization • You complained, we listened!You complained, we listened! • Umbrella spec as landing page, point toUmbrella spec as landing page, point to family of specs with one URL:family of specs with one URL: idpf.org/epub/31/epub-spec.htmlidpf.org/epub/31/epub-spec.html • Now includes indexNow includes index • Nav definition moved from content docs toNav definition moved from content docs to packagespackages
  • 29. MetadataMetadata • Allows and encourages external metadataAllows and encourages external metadata such as ONIXsuch as ONIX • Deprecate @refines, instead brings backDeprecate @refines, instead brings back epub2 features like @file-asepub2 features like @file-as • Moving towards limiting metadata inside theMoving towards limiting metadata inside the package by recommending that people pointpackage by recommending that people point to outside resourcesto outside resources • Method for prioritizing metadata (internal vsMethod for prioritizing metadata (internal vs external) via HTTP negotiationexternal) via HTTP negotiation
  • 30.
  • 31. GoodbyeGoodbye • CFI in contentCFI in content • epub:triggerepub:trigger • epub:switchepub:switch • epub:bindingsepub:bindings • guideguide • NCX moved from superseded to deprecatedNCX moved from superseded to deprecated
  • 32. Welcome BackWelcome Back • @file-as@file-as • @id-type@id-type
  • 33. AccessibilityAccessibility • Creating an accessibility module/extensionCreating an accessibility module/extension • Definitely a work in progressDefinitely a work in progress • Focused on accessibility metadataFocused on accessibility metadata • AccessMode, AccessModeSufficient, AccessibilitySummary, andAccessMode, AccessModeSufficient, AccessibilitySummary, and Braille MetadataBraille Metadata • See https://github.com/daisy/epub-revision-a11y/wiki/ePub-3.1-See https://github.com/daisy/epub-revision-a11y/wiki/ePub-3.1- Accessibility--Proposal-To-Schema.orgAccessibility--Proposal-To-Schema.org • Optimized for specific user communitiesOptimized for specific user communities • WCAG+WCAG+
  • 34. CSSCSS • No more CSS ProfileNo more CSS Profile • Closer alignment with broader webCloser alignment with broader web • Based on 2015 SnapshotBased on 2015 Snapshot https://drafts.csswg.org/css-2015/https://drafts.csswg.org/css-2015/ • Retains most prefixed properties for CJKRetains most prefixed properties for CJK
  • 37. External ResourcesExternal Resources • Scientific Data SetsScientific Data Sets
  • 38. What if EPUB was easier toWhat if EPUB was easier to use on the web?use on the web? Let’s make EPUB and the Web Best Friends Forever!Let’s make EPUB and the Web Best Friends Forever!
  • 40. Instead of XML, use JSONInstead of XML, use JSON • Allow an “unzipped” orAllow an “unzipped” or “exploded” EPUB“exploded” EPUB • Replace package.opf andReplace package.opf and container.xml with a singlecontainer.xml with a single JSON manifest fileJSON manifest file • No need for META-INF folderNo need for META-INF folder • Everything else stays theEverything else stays the samesame
  • 41.
  • 42. JSON in a { "name": "nutshell" }JSON in a { "name": "nutshell" }OBJECT: { } KEYS and VALUES: { "key": "value" } MORE THAN ONE KEY: { "key0": "value0", "key1": "value1" } ARRAY [ aka ordered list ]: { "list": [ { "key0": "value0" }, { "key1": “value1" }, { “key2”: “value2” } ] }
  • 43. Start with NothingStart with Nothing { }{ }
  • 44. Add Metadata ObjectAdd Metadata Object { "metadata": { } }
  • 45. Add Required MetadataAdd Required Metadata { "metadata": { "title": "Moby-Dick", "language": "en", "modified": "2016-04- 01T17:00:00Z", "identifier": "978031600000X" } }
  • 46. Add Some FilesAdd Some Files { "metadata": { "title": "Moby-Dick", "language": "en", "modified”: "2015-09-29T17:00:00Z", "identifier”: "978031600000X" }, "manifest": [ { "href": "c001.html", "type”: "text/html" }, { "href": "c002.html", "type": “text/html" }, { "href": "style.css", "type": "text/css" } ] }
  • 47. "rendition": [{"rendition": [{ "metadata": {"metadata": { "layout": "reflowable","layout": "reflowable", "accessMode": "textual","accessMode": "textual", "label": "Optimized for smaller screens""label": "Optimized for smaller screens" },}, "links": [{"links": [{ "href": "reflow/html/section001.xhtml","href": "reflow/html/section001.xhtml", "type": "application/xhtml+xml""type": "application/xhtml+xml" }, {}, { "href": "reflow/html/"href": "reflow/html/section002section002.xhtml",.xhtml", "type": "application/xhtml+xml""type": "application/xhtml+xml" }, {}, { "href": "reflow/html/section003.xhtml","href": "reflow/html/section003.xhtml", "type": "application/xhtml+xml""type": "application/xhtml+xml" }],}], "manifest": {"manifest": { "links": [{"links": [{ "href": "reflow/css/reflow.css","href": "reflow/css/reflow.css", "type": "text/css""type": "text/css" }]}] }}
  • 48. One small step…One small step…
  • 49. Portable Web PublicationsPortable Web Publications W3C Digital Publishing Interest GroupW3C Digital Publishing Interest Group
  • 50.
  • 51. ––The PWP White Paper (aka PWPWP)The PWP White Paper (aka PWPWP) ““This document introduces Portable WebThis document introduces Portable Web Publications, a vision for the future of digitalPublications, a vision for the future of digital publishing that is based on a fully nativepublishing that is based on a fully native representation of documents within the Openrepresentation of documents within the Open Web Platform. Portable Web PublicationsWeb Platform. Portable Web Publications achieve full convergence between online andachieve full convergence between online and offline/portable document publishing:offline/portable document publishing: publishers and users won't need to choose onepublishers and users won't need to choose one or the other, but can switch between themor the other, but can switch between them dynamically, at will.”dynamically, at will.”
  • 52. VisionVision • w3c.github.io/dpub-pwp/w3c.github.io/dpub-pwp/ • link in or out of bookslink in or out of books • bookmarks/annotationsbookmarks/annotations • polyfills/plugins with browser toolspolyfills/plugins with browser tools • use the computing power of your computeruse the computing power of your computer
  • 53.
  • 54.
  • 55. A Call to ActionA Call to Action Read the damned spec!Read the damned spec!
  • 56. Things you can doThings you can do • Read the spec! Github, issues, mailing lists…Read the spec! Github, issues, mailing lists… • Standards orgs… IDPF, W3CStandards orgs… IDPF, W3C • Community GroupsCommunity Groups • Bug reporting specs, browsers, readingBug reporting specs, browsers, reading systems.systems. • #eprdctn#eprdctn
  • 57. Community GroupsCommunity Groups • WICG—Web Incubator Community Group. Anyone withWICG—Web Incubator Community Group. Anyone with a crazy idea gets to make a suggestion.a crazy idea gets to make a suggestion. • Scholarly HTML—an HTML “vernacular” for theScholarly HTML—an HTML “vernacular” for the scholarly web, including restrictions on HTML andscholarly web, including restrictions on HTML and linked datalinked data • Math on the Web/Stem—A community groupMath on the Web/Stem—A community group dedicated to uniting all the math hackersdedicated to uniting all the math hackers • schema.orgschema.org—formal extensions to—formal extensions to schema.orgschema.org. Just. Just watch the GitHub repo to see SEO unfold before you!watch the GitHub repo to see SEO unfold before you!
  • 58.
  • 59. ResourcesResources • EPUB 3.1: http://www.idpf.org/epub/31/spec/epub-EPUB 3.1: http://www.idpf.org/epub/31/spec/epub- spec.html IDPF GitHub repo: https://github.com/idpfspec.html IDPF GitHub repo: https://github.com/idpf • EPUB 3.1 Revision 3.1 Google DriveEPUB 3.1 Revision 3.1 Google Drive https://drive.google.com/drive/folders/0B_r69cPgzjHjODJyThttps://drive.google.com/drive/folders/0B_r69cPgzjHjODJyT jlaeTVrSDQjlaeTVrSDQ • Portable Web Publications: https://w3c.github.io/dpub-pwp/Portable Web Publications: https://w3c.github.io/dpub-pwp/ • W3C Community Groups: https://www.w3.org/community/W3C Community Groups: https://www.w3.org/community/ • Digital Publishing Interest Group:Digital Publishing Interest Group: https://www.w3.org/dpub/IG/wiki/Main_Pagehttps://www.w3.org/dpub/IG/wiki/Main_Page • W3C Public email archives/subscriptions:W3C Public email archives/subscriptions: https://www.w3.org/community/https://www.w3.org/community/ • IDPFmemes:IDPFmemes: http://idpfmemes.tumblr.com/http://idpfmemes.tumblr.com/
  • 61. Please Grant us Asylum!Please Grant us Asylum! Make Canada Great AgainMake Canada Great Again
  • 63.
  • 64. Hire Iris and India!Hire Iris and India! They’re the best!They’re the best! @epubpupil @indiamos@epubpupil @indiamos
  • 65.
  • 66. EPUB ZeroEPUB Zero The idea that won’t die, and can’t liveThe idea that won’t die, and can’t live
  • 67. What? Why? How?What? Why? How? • What? Making ebooks with only existingWhat? Making ebooks with only existing HTML/CSS/JSHTML/CSS/JS • Why? To learn, to play, to try out ideas.Why? To learn, to play, to try out ideas. • How?How?
  • 68. Layer PWPPWP EPUBEPUB WebWeb user interaction javascript fragment identifiers unknown epub CFI #id archive unknown container specification no standard renditions / collections unknown container.xml + new package(s) n/a user interface browser + JS? reading system browser + JS? offline manifest + SW manifest + SW design CSS additional a11y semantics aria roles content sequence link relations package > spine link relations navigation nav nav nav (optional) content HTML + SVG + MathML + images PWP vs EPUB vs Web

Editor's Notes

  1. I can’t even remember the original title of this talk. Which is just as well—things are changing so rapidly, we’d likely have done something different last week, or would do something different next week.
  2. Since the dawn of time…
  3. … people have complained about EPUB.
  4. And there’s a lot to complain about.
  5. It’s such a popular sport, it has it’s own hashtag.
  6. We’ve all had to add another file to an existing EPUB, which usually involves unzipping, editing at least three other files, a quick trip to Google to look up the mime type for something, running a script to zip the thing up again, and then of course EPUBCHECK to see if you did something stupid. Even then you have no idea if your book still works, as you’d have to check about a hundred different reading systems and devices, many of which don’t agree about basic things like margins.
  7. We make jokes about how EBOOKS are like the web in the age of Internet Explorer 6, but it’s much worse than that. It’s so bad that we look with envy at…
  8. Cats? No. Not cats. We look with envy at our web developer colleagues.
  9. And so we dream about books in browsers, where the web just works, where we can use all that cool CSS where there’s this thing called Javascript, where there are frameworks, and tools, and standards… and even the occasional job paying a living wage.
  10. Oh shit. I keep saying books. It’s a running joke in all our standards meetings. Someone says “book”, and someone else helpfully points out that we’re also talking about magazines and journals and monographs and all sorts of other publications. “Outside of a dog, a publication is a man’s best friend. Inside of a dog, it’s too dark to read.” Yeah, no.
  11. Today we’re going to talk about a lot of ongoing efforts to bring books closer to the web, to make EPUB better, or to make something entirely new. Along the way we’ll learn about a few new technologies that may become part of our world.
  12. First, let’s look at an actual book in a browser, or screenshots of a book in a browser, as I decided at the last minute not to taunt the demo gods. None of you who know me will be surprised by which book.
  13. By the way, if you don’t want to read nine hundred pages of nineteenth-century prose, I have two different versions of Moby-Dick written for toddlers. Needle-felted sharp-toothed white whales are nearly as cute as cats, right? And I turned the book we made this morning into yet another edition. Not quite as nice as the Arion Press edition, though, which now sells for $30,000 on EBAY.
  14. Anyway, Acme Publishing is a little experiment. I wanted to see if I could make something vaguely like an ebook reader, using “standard” web stuff. The complication? I don’t really know anything about Javascript. This has certainly given me an appreciation for all the work that goes into EPUB Reading Systems! What can Acme Publishing do? I can read on my phone. I can change the font size with a touch. …
  15. I can navigate from chapter to chapter with a swipe, or with a table of contents.
  16. I even have a little bookstore, although I’m a bit alarmed that the only book here written by a woman is the Bible.
  17. Even math looks good, thanks to the efforts of a lot of people. We should send some yummy ebookcraft cookies to the MathJax folks! The browser vendors, though, do not deserve our cookies.
  18. So how does this all work? EPUB folks are quite familiar with HTML, XML, and CSS. Many of you know lots about Javascript, linked data, or even ARIA. But a couple of new things may start influencing our world— Service workers and JSON.
  19. What is a service worker? Web pages are constantly talking to a server, asking for images or CSS files, sending form submissions, returning notifications, updating content, and so on. That’s great when you’re working from a Google office, where you can download at 500Mb/sec. But we want to read books, even books in browsers, when we’re offline. Canadians spend more time online than anyone else, and have crappier internet. Service workers can help.
  20. A service worker is a script that sits between your site and the server. It intercepts all the network requests, and you tell the service worker how to handle them them. It can cache things locally, so your site or app works without an internet connection at all. It can check for updates in the background, send push notifications, and so on. In some sense, we’re thinking about books as progressive web apps. You can discover and engage online, choose to download or install the content, and interact with the content much as with a full-blown app. Mobile-first can extend to offline-first. Still, Acme Publishing is just an experiment. You can’t send me an ebook and have it just work in the system, without me doing some work. We haven’t agreed about all the details on how to make this seamless. But the fact I can try this at all is because of standards like HTML and Service Workers. And who better to talk about standards than Tzviya Siegman, who has done more than anyone in publishing to make standards work, and move forward.
  21. This photograph shows an apparatus for changing railroad gauges. If only it were so simple as we move from EPUB to Kindle! (credit card swipe vs chip)
  22. We started with a dream and an aggressive draft, and slowly whittled it down to a dot release… blah blah blah backward compatibility Why bother with the aggressive draft? We learned a lot about what is out there. It’s a really good way to get feedback. We know what work lies ahead for the eventual EPUB 4. It got people excited. It prepares those with “let’s-never-change” tendencies for what’s to come, as well as people like me and Dave to know what might break. SDKs are entrenched in distribution process – RMSDK has poisoned the well of society to such an extent that we can’t remove many things like the ncx without breaking distribution in much of the world. Even the people who have made these processes flourish know this is a mistake, and most of them promise to do better next time. Much to our dismay, we were not able to include the HTML serialization of HTML5 in this round. It would break too many tools.
  23. Some conversations bordered on the theoretically absurd. We bow to the knowledge of our elders (some of them anyway).
  24. Here’s what’s likely to actually happen in EPUB 3.1
  25. Timeline? We published the first draft in January, draft 2 incoming in April, draft for public approval and IP review in June, final version published in October
  26. You complained, we listened. umbrella spec - one link gets you everything There is a broad index so that you don’t have to scour 3 (or more) documents to find just the right reference to cover information or rendition properties for FXL
  27. Metadata is a hot-button issue. Books are all about ONIX, except when they’re not. It turns out that it’s really hard to keep everyone happy. Trying to remove stuff unique to epub A lot of publishing runs on ONIX, which is external to the package and refreshes constantly. The EPUB package is rarely updated. Metadata in external resources allows for most metadata to be stored outside the package and updated constantly. @refines was created for EPUB 3, so it is being deprecated. We recommend using OWP refinement mechanisms instead. Japan really likes @refines to pronounce CJK, so it is still allowed, along with file-as from EPUB2 BEST of all HTTP negotiation rules for which metadata file goes first - how webby is that?
  28. Consensus is hard
  29. Superseded vs deprecated vs dead dead dead. You shouldn’t use a superseded element. It will generate a hint or warning. Deprecated elements generate errors. We were actually able to remove some elements from the spec completely. The most fun part of this process was killing things we really didn’t like. We did a survey of RS devs (including Kindle!) to find out what is actually used, and here is what we decided to axe or put into the throes of death: de-sorotokinification of epub
  30. Because we are (trying to) kill @refines, we are bringing back epub2’s @file-as, allowing the author to indicate title/author/publisher information. For example the author could be listed as “Virginia Woolf” but file-as “Woolf, Virginia”. This helps with internationalization and sort, etc. ID-type indicates the type of ID (ISBN, MARC, UUID, etc). Current practice is that this syncs with ONIX codelist. We are working with Editeur to tie this into schema.org
  31. IDPF board concluded it was time to take a pro-active stance on a11y. Along with DAISY, we’re working on developing a spec for publishing accessibly. No one is redefining the accessible Web. That already exists. We are parameterizing it and making it easier to discover accessible content. We are writing an Accessible EPUB Module. SHOULD in 3.1, MUST in the module. Let’s take a moment to talk about A11y. Laura did a great presentation yesterday about accessible EPUB. Go look at it if you weren’t there. In every other presentation, I saw major a11y problems. What’s with the &amp;lt;div&amp;gt;s when an explicit tag exists? Someone asked if she should sacrifice a11y for design? NO. It’s a tough balance, but if you are still using &amp;lt;div&amp;gt; instead of &amp;lt;figure&amp;gt; then you are not respecting your reader base. For those of you creating interactive content, ARIA is essential. Some libraries, like JQuery, have ARIA built in&amp;lt;/rant&amp;gt;. We are not redefining WCAG. The spec will point to WCAG A/AA/AAA. DPUB is already highlighting what might be missing from a package perspective. So what’s the point of this? How do users know whether content is accessible? Many websites claim to be WCAG-compliant, but we don’t want to perpetuate the lies. This group is extending schema.org’s accessibility metadata to include AccessMode, indicating which method, such as audio, visual, tactile, a user can access the content, whether the content of the publication can be sufficiently understood in a particular mode, and a free text field to explain the a11y properties. There is also the specialized circumstance of content that is optimized for one segment. Example: Braille content is great for segments of the blind community, but it would fail WCAG AA because not great for the deaf community. This module is looking for ways to clarify that information in metadata and distinguish among what is known as “universally” accessible content and content that is optimized for one particular segment.
  32. The CSS profile in EPUB 3.0 was a little confusing – many (most?) people thought that it restricted the use of CSS to a subset of the CSS world. That was never the intention.
  33. Dave rewrote the profile, using the W3C CSS snapshot as a baseline. The -epub- prefixed elements that remain are to support CJK. We hope that this will make its way into a beautiful international version of CSS, and we won’t need to work apart from the Web.
  34. Anyone who has created scripting for EPUB has had that experience of the “page” conflicting with the native gestures. I meant to tap to access the next question, not turn the page $*&amp;&amp;%%##*!!. It turns out that is a fairly universal problem, and we are not the only ones trying to solve it. Every time there is an update to an OS, this seems to wreak tiny havoc on the world of app devs. Thank God it’s so hard to create JS for EPUB, or this would have been a much larger problem all along. Creating a RSObject is an attempt to resolve chrome/content conflicts. We are trying to avoid creating anything that will come back to bite us anytime there is an OS update. Agreed so far to create reading system IDL (interface description/definition language), enabling communication between software components that do not share one language.
  35. We are also working on a method to convey to an RS that spine elements are external to the pub (glorified links). What happens if EPUB points to Excel? how to package stuff (data sets, csv). Hopefully we can use whatever http negotiation rules we define for metadata here as well. That’s most of what’s going on in EPUB 3.1. But there’s one more thing, which Dave will tell you about.
  36. EPUB content is web content. But try to open an EPUB file in a web browser, and it just downloads the ZIP. The web content of EPUB is hidden from the web, walled off by the container. What if we were to create a web-friendly, server-friendly manifestation of EPUB? What if EPUB and the Web were Best Friends Forever, or BFF?
  37. The EPUB working group has been considering alternatives to the zip container for a while. The OCF 2.0.1 spec from 2010 included a physical container as well as a zip container. But it turns out that Readium is already working with “exploded” EPUBs. We tried calling them “unzipped,” but then our slides wouldn’t be safe for work.
  38. The whole idea is to make it easier to make a reading system, to make it easier to have books on the web. Zipping and unzipping is one hurdle. Another is dealing with all the weird XML vocabularies in EPUB, like container files and the OPF. What if the information in those files could be expressed in JSON, which is easily understood by today’s programming languages? The devil is in the details, and the EPUB working group is currently arguing about how this would actually work. It’s actually quite an interesting argument, pitting conceptual elegance, power, and extensibility against simplicity, ease of use, and human readability. And yes, I have strong opinions.
  39. Let’s take a quick look at one of the proposals, both as a glimpse at a possible future, and a gentle introduction to JSON.
  40. JSON was born from a deep hatred of angle brackets, and an obsession with braces, colons, and quotation marks. The idea was that XML took up too much space, what with close tags and other concessions to human readability. JSON stands for “Javascript Object Notation.” An object is the thing in braces. What’s inside is key-value pairs. You might also have a list of things, which is denoted by the square brackets, and called an array. It will all make more sense when we look at an example.
  41. Here’s an empty object. This is actually valid JSON.
  42. Let’s put in some metadata. Here’s a wrapper for metadata.
  43. Here we have the usual required metadata, just written in a different way.
  44. I’m hoping that we can make this a little simpler than current EPUB. Rather than manifest and spine, why not just one list? We usually put HTML files in the spine, and leave out other types of files. And how many times have the people in this room inflicted another few thousand copies of media-type=&amp;quot;application/xhtml+xml&amp;quot; on the world? Duh! It’s an XHTML file. Do you think a computer of unimaginable power can’t figure that part out?
  45. It can get a bit ugly if you’re doing something complicated, or using one of the more “elegant” proposals….
  46. And that’s it! Acme Publishing actually uses this format. The manifest is mostly used to tell the service worker what files to cache for offline reading. But BFF is still constrained by the relationship to EPUB. We want round-tripping back and forth, and want to use the same concepts. What if we really start from scratch, making ebooks as if the web actually mattered? Conveniently enough, the the ideal person to tell this story is right here! She co-authored the white paper, and chairs the group pursuing this particular vision.
  47. building from the ground up, looking at fundamental principles and use cases (no worries about backward-compat!) browser OR special reader offline/online packaged/unpackaged All the goodness of the Web, all the packageness of EPUB! This group is also looking at some areas that EPUB has not really explored to the fullest – formal archiving, a robust frag ID definition
  48. In order to prepare for what’s to come, we (DPUB) are creating very specific use cases. Example: as a user, I want to begin reading a journal article while in my lab (with wifi) and continue reading it while on the subway (as a New Yorker, that is the only place I can think of without connectivity).
  49. Now we know Randall Munroe follows DPUB.
  50. The W3C has different tiers of groups. Community Groups are open to everyone, member or not. You just sign up. There are hundreds with varying levels of activity. Here are a few of our favorites. YOU DO NOT NEED to be an expert!!! back to dave to dave to demonstrate effective bug-logging
  51. Oh, and did you notice that text sticking out on the first line of every chapter when I did the acme publishing demo? That was a bug in the initial implementation of drop-caps. And what do you do when you find bugs? Report them! In this case, that wasn’t enough. A patch was written, and the bug marked as resolved/fixed. But Safari 9.1 was released a few weeks ago without the fix. But fear not—I learned this morning the patch will be in Safari 9.1.1. And then I learned it won’t be. So, you can use @support, and use drop caps in production!
  52. Oh, and one more thing:
  53. Please don’t make us leave!
  54. Every project, every experiment is a chance to learn something new. A few weeks ago I started hearing about the accessibility tree. We talk a lot about how accessibility is important, but we don’t talk so much about how it actually works. This shows what accessibility technology “sees,” and already showed me I need to find a better way to label my user interface buttons.
  55. Like most of you, I spent years churning out EPUBs. During a particularly unpleasant year, I’d sometimes work through the night. Of course there were things about EPUB that were maddening, but that was just the way it was. I vaguely knew that actual humans had made the spec, but didn’t think much of it. Eventually, the company I worked for joined the IDPF. I think I may have joined a working group conference call once or twice, and it was totally intimidating, and I understood nothing. A few years later fixed layout was starting to happen, and we were all in a panic. Apple had presented the world with something, and Amazon seemed to be going down a different path. A standard was needed, now. tk tk tk I was sortof involved in the run up to EPUB 3. I still didn’t know what was going on, but I knew that the transition to EPUB 2 was a mess, partly because there were no good sample files. Well, there’s something I could do. I picked a public-domain book almost at random, made the world’s first EPUB3, and tried to get the validation tools to work before they had been incorporated in EPUBCheck. *** EPUB3 came out, and nobody used it. A year or two later, the w3c came knocking at the door of the publishing industry. They had a workshop on ebooks in New York, which I was able to attend. I did a presentation on things that we couldn’t do in EPUB3, largely because CSS didn’t know much about books. Daniel Glazman did an impassioned presentation about the inconsistencies and insanity in EPUB3, based on his experience in making an EPUB3 editor. * * Did you ever notice that an EPUB’s spine looks a lot like it’s nav document? They both list all the content documents in book order. Daniel’s complaints, my frustrations, and this little observation made me think. What could ebooks look like, if we were starting from scratch? How much simpler could they be? What if, instead of EPUB 3, we had EPUB Zero? I wrote a little blog post about it, which appeared to strike a chord with some folks. Arguments were started. I was accused of spreading “fear, uncertainty, and doubt” in the ebook community by not whole-heartedly praising epub 3.0. EPUB Zero was the first little experiment. Much to my surprise, there was an early implementation by my friends at Infogrid Pacific. So what is EPUB Zero?
  56. The idea has taken many forms in the last three years, but now I think of it as ebooks made *only* of web stuff. Use that html nav doc as spine, as manifest, as starting point.