SlideShare a Scribd company logo
1 of 67
http://www.niso.org/news/events/2012/nisowebinars/ebooks_epub3/



Understanding Critical Elements of
E-books: Standards for Formatting
          and Metadata
Part 1: EPUB3: Putting Electronic
      Books into a Package
             March 14, 2012

               Speakers:
  Bill Kasdorf and Sanders Kleinfeld
Adding Interactivity to Ebooks
        with HTML5




      Sanders Kleinfeld
Ebook Production =
Developing Content for a Multitude of
            Screens…

   eInk       Color Tablet   Desktop Browser
…Via many formats, technologies,
      and software tools
EPUB 2.0.1                CSS          Mobi
                NCX               epubpreflight
 DRM
                fixed layout             regex
        JS
 KF8                           .iba
              epubcheck               oXygen

OPF             sigil           EPUB 3

  kindlegen             XSL      masochism
HTML5
HTML5: New elements
          (http://www.w3.org/TR/html5-diff/#new-elements)



Navigation:                        Multimedia/Interactivity:
<article>                          <audio>
<aside>                            <canvas>
<header>                           <embed>
<hgroup>                           <source>
<footer>                           <track>
<figure>                           <video>
<figcaption>
<nav>
<section>
HTML5: New elements (continued)
             (http://www.w3.org/TR/html5-diff/#new-elements)

New <input> types:                    Miscellaneous:
color                                 <bdi>
date                                  <command>
datetime                              <datalist>
datetime-local                        <details>
email                                 <keygen>
month                                 <mark>
number                                <meter>
range                                 <output>
search                                <progress>
tel                                   <summary>
time                                  <rp>
url                                   <rt>
week                                  <ruby>
                                      <time>
                                      <wbr>
What is HTML5, really?

A constellation of technologies
Canvas                 Audio/Video




         Geolocation                 CSS3
When people say "HTML5," they're
         usually referring to...
...next-generation web sites that include one or more of the
following:

• Embedded audio/video media without resorting to Flash or
  other plugins
• Native interactivity/animation/games without resorting to
  Flash or other plugins
• Geolocation functionality
• Sites with local storage that you can download and run offline
• Fancy CSS3: columns, text shadows, animations...
• Native support for MathML and SVG
• Semantic markup
HTML5 in Action on the Web
Why should publishers care
     about HTML5?
HTML5 is the Backbone of the
            EPUB 3 Standard
The EPUB 3.0 specification for ebooks mandates that content
documents use XHTML (HTML5) syntax:
http://idpf.org/epub/30/spec/epub30-contentdocs.html#sec-xhtml

While most major ereaders do not formally support EPUB 3,
many HTML5 features are currently supported by the following
platforms:

•   iBooks for iPad, iPhone, iPod
•   NOOK Color/Tablet
•   Kindle Fire
•   Kindle Apps (iPhone/iPad/Android/etc.)
•   Safari Books Online
HTML5 in action in ebooks
HTML5 Canvas for Publishers


Canvas allows you to embed a dynamic sketchpad in your
content:

<canvas id="my_first_canvas" width="200"
height="225">
The content you put here will show up if your
rendering engine doesn't support the
&lt;canvas&gt; element.
</canvas>
You draw on the <canvas> with JavaScript
   my_canvas.strokeRect(0,0,200,225) // to start, draw a border around the canvas

//draw face
    my_canvas.beginPath();
    my_canvas.arc(100, 100, 75, (Math.PI/180)*0, (Math.PI/180)*360, false); // circle dimensions
my_canvas.strokeStyle = "black"; // circle outline is black
my_canvas.lineWidth = 3; // outline is three pixels wide
my_canvas.fillStyle = "yellow"; // fill circle with yellow
my_canvas.stroke(); // draw circle
my_canvas.fill(); // fill in circle
my_canvas.closePath();




// now, draw left eye
my_canvas.fillStyle = "black"; // switch to black for the fill
my_canvas.beginPath();
    my_canvas.arc(65, 70, 10, (Math.PI/180)*0, (Math.PI/180)*360, false); // circle dimensions
my_canvas.stroke(); // draw circle
my_canvas.fill(); // fill in circle
my_canvas.closePath();

// now, draw right eye
my_canvas.beginPath();
    my_canvas.arc(135, 70, 10, (Math.PI/180)*0, (Math.PI/180)*360, false); // circle dimensions
my_canvas.stroke(); // draw circle
my_canvas.fill(); // fill in circle
my_canvas.closePath();

// draw smile
    my_canvas.lineWidth = 6; // switch to six pixels wide for outline
    my_canvas.beginPath();
    my_canvas.arc(99, 120, 35, (Math.PI/180)*0, (Math.PI/180)*-180, false); // semicircle dimensions
my_canvas.stroke();
my_canvas.closePath();

// Smiley Speaks!
my_canvas.fillStyle = "black"; // switch to black for text fill
The result...
But Canvas is all about interactivity...

You can dynamically update what's displayed on the canvas in
real time, and in response to user input, which opens the door to
animations, games, and more.
Canvas in Action: Graphing Calculator
       http://bit.ly/canvascalc
Canvas in Action II: Finger Painting
  http://bit.ly/canvasfingerpaint
Geolocation for Publishers

The W3C Geolocation API (http://dev.w3.org/geo/api/spec-
source.html) provides a simple way of getting a user's
latitude/longitude coordinates:
navigator.geolocation.getCurrentPosition(callback_function)

Where callback_functionis a function you define to receive and process the
latitude/longitude data.
Geolocation’s value in ebooks

•   Interactive Atlas, Road Maps
•   Travel/Restaurant guides customized for user’s location
•   Geolocated fiction
•   Geolocation-based games (geocaching, scavenger hunt)
Geolocation in Action:
    A Geolocated Tale
http://bit.ly/geolocatedtale
          Before...
Geolocation in Action:
    A Geolocated Tale
http://bit.ly/geolocatedtale

           After...
Audio/Video for Publishers

 HTML5 lets you embed audio/video directly in your content
 without any plugins needed:

<audio id="new_slang">                      <video id="dancing_pony" width="300"
<source src="new_slang.wav"                 height="300">
type="audio/wav"/>                          <source src="dancing_pony.mp4"
<source src="new_slang.mp3"                 type="video/mp4"/>
type="audio/mp3"/>                          <source src="dancing_pony.ogg"
<source src="new_slang.ogg"                 type="video/ogg"/>
type="audio/ogg"/>                          <em>(Sorry, &lt;video&gt; element not
 <em>(Sorry, &lt;audio&gt; element not      supported in your browser/ereader, so
supported in your browser/ereader, so you   you will not be able to watch this
will not be able to listen to this          video.)</em>
song.)</em>                                 </video>
</audio>
Audio/Video Compatibility Woes
                            (via Wikipedia)


<audio> support in Browsers
(http://en.wikipedia.org/wiki/Html5_audio#Audio_format_support)




<video> support in Browsers
(http://en.wikipedia.org/wiki/HTML5_video#Table)
Ereader Audio/Video
              Compatibility Redux
For audio, use MP3. It works on:

• iBooks
• NOOK Color/Tablet
• Kindle software readers (iPad/iPhone/Android/etc.)

For video, use H.264/MP4. It works on:

• iBooks
• NOOK Color/Tablet
• Kindle software readers (iPad/iPhone/Android/etc.)
Audio in Action:
Audio-Enabled Glossary
http://bit.ly/miniglossary
Video in Action:
 A Clip About <canvas>
http://bit.ly/ormcanvasvid
MathML for Publishers
• MathML is an XML vocabulary for representing mathematical
  expressions.

• MathML provides both Presentation and Content Markup
  models.

• Presentation markup tags math expressions based on how
  they should be displayed (e.g., “superscripted 2”).

• Content markuptags expressions based on the mathematical
  operations performed (e.g., “taken to the 2nd power”)

• The HTML5 specification provides native support for
  MathML in HTML documents
MathML Presentation Markup Glossary
         (abridged edition)
•   <math> -- Root element for a mathematical expression
•   <mrow> -- Element for grouping subexpressions
•   <mo> -- Math operator (e.g., +, -)
•   <mi> -- Math identifier (e.g., variable or constant)
•   <mn> -- Number
•   <mfrac> -- Fraction
•   <msqrt> -- Square root
•   <msup> -- Superscript
•   <msub> -- Subscript
•   <mfenced> -- Parentheses or braces
Convert a Famous Equation to MathML!
      http://bit.ly/mathconverter
But why write all this markup:
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mstyledisplaystyle="true">
<mi> E </mi>
<mo> = </mo>
<mi>m</mi>
<msup>
<mrow>
<mi> c </mi>
</mrow>
<mrow>
<mn> 2 </mn>
</mrow>
</msup>
</mstyle>
</math>




When you can just embed the equation
           as an image?
Advantages of Using MathML
         Instead of Images:

• Equations are resizable, like text

• Equations can be styled with CSS

• Equations can be interacted with
  using JavaScript
MathML in Action:
Quadratic Equation Solver
   http://bit.ly/mathml
HTML5 support in today’s
             ereaders
               <canvas>       Geolocation     <audio>         <video>        MathML
iBooks 1.x     YES            Sort of*        YES             YES            YES
NOOK           NO             NO              YES             YES            NO
Color/Tablet
Safari Books   YES            YES             YES             YES            YES
Online
Kindle Apps    NO             NO              YES             YES            NO


Kindle Fire    NO             NO              NO              NO             NO




    * iBooks 1.x supports Geolocation API, but does not support calls to related
    APIs (Google Maps, GeoNames, etc.)
Download HTML5 for Publishers:
 http://bit.ly/html5forpubs
Contact Me!
Email: sanders@oreilly.com
   Twitter: @sandersk

More Related Content

More from National Information Standards Organization (NISO)

More from National Information Standards Organization (NISO) (20)

Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Bazargan "NISO Webinar, Sustainability in Publishing"
Bazargan "NISO Webinar, Sustainability in Publishing"Bazargan "NISO Webinar, Sustainability in Publishing"
Bazargan "NISO Webinar, Sustainability in Publishing"
 
Rapple "Scholarly Communications and the Sustainable Development Goals"
Rapple "Scholarly Communications and the Sustainable Development Goals"Rapple "Scholarly Communications and the Sustainable Development Goals"
Rapple "Scholarly Communications and the Sustainable Development Goals"
 
Compton "NISO Webinar, Sustainability in Publishing"
Compton "NISO Webinar, Sustainability in Publishing"Compton "NISO Webinar, Sustainability in Publishing"
Compton "NISO Webinar, Sustainability in Publishing"
 
Mattingly "AI & Prompt Design: Large Language Models"
Mattingly "AI & Prompt Design: Large Language Models"Mattingly "AI & Prompt Design: Large Language Models"
Mattingly "AI & Prompt Design: Large Language Models"
 
Hazen, Morse, and Varnum "Spring 2024 ODI Conformance Statement Workshop for ...
Hazen, Morse, and Varnum "Spring 2024 ODI Conformance Statement Workshop for ...Hazen, Morse, and Varnum "Spring 2024 ODI Conformance Statement Workshop for ...
Hazen, Morse, and Varnum "Spring 2024 ODI Conformance Statement Workshop for ...
 
Mattingly "AI & Prompt Design" - Introduction to Machine Learning"
Mattingly "AI & Prompt Design" - Introduction to Machine Learning"Mattingly "AI & Prompt Design" - Introduction to Machine Learning"
Mattingly "AI & Prompt Design" - Introduction to Machine Learning"
 
Mattingly "Text and Data Mining: Building Data Driven Applications"
Mattingly "Text and Data Mining: Building Data Driven Applications"Mattingly "Text and Data Mining: Building Data Driven Applications"
Mattingly "Text and Data Mining: Building Data Driven Applications"
 
Mattingly "Text and Data Mining: Searching Vectors"
Mattingly "Text and Data Mining: Searching Vectors"Mattingly "Text and Data Mining: Searching Vectors"
Mattingly "Text and Data Mining: Searching Vectors"
 
Mattingly "Text Mining Techniques"
Mattingly "Text Mining Techniques"Mattingly "Text Mining Techniques"
Mattingly "Text Mining Techniques"
 
Mattingly "Text Processing for Library Data: Representing Text as Data"
Mattingly "Text Processing for Library Data: Representing Text as Data"Mattingly "Text Processing for Library Data: Representing Text as Data"
Mattingly "Text Processing for Library Data: Representing Text as Data"
 
Carpenter "Designing NISO's New Strategic Plan: 2023-2026"
Carpenter "Designing NISO's New Strategic Plan: 2023-2026"Carpenter "Designing NISO's New Strategic Plan: 2023-2026"
Carpenter "Designing NISO's New Strategic Plan: 2023-2026"
 
Ross and Clark "Strategic Planning"
Ross and Clark "Strategic Planning"Ross and Clark "Strategic Planning"
Ross and Clark "Strategic Planning"
 
Mattingly "Data Mining Techniques: Classification and Clustering"
Mattingly "Data Mining Techniques: Classification and Clustering"Mattingly "Data Mining Techniques: Classification and Clustering"
Mattingly "Data Mining Techniques: Classification and Clustering"
 
Straza "Global collaboration towards equitable and open science: UNESCO Recom...
Straza "Global collaboration towards equitable and open science: UNESCO Recom...Straza "Global collaboration towards equitable and open science: UNESCO Recom...
Straza "Global collaboration towards equitable and open science: UNESCO Recom...
 
Lippincott "Beyond access: Accelerating discovery and increasing trust throug...
Lippincott "Beyond access: Accelerating discovery and increasing trust throug...Lippincott "Beyond access: Accelerating discovery and increasing trust throug...
Lippincott "Beyond access: Accelerating discovery and increasing trust throug...
 
Kriegsman "Integrating Open and Equitable Research into Open Science"
Kriegsman "Integrating Open and Equitable Research into Open Science"Kriegsman "Integrating Open and Equitable Research into Open Science"
Kriegsman "Integrating Open and Equitable Research into Open Science"
 
Mattingly "Ethics and Cleaning Data"
Mattingly "Ethics and Cleaning Data"Mattingly "Ethics and Cleaning Data"
Mattingly "Ethics and Cleaning Data"
 
Mercado-Lara "Open & Equitable Program"
Mercado-Lara "Open & Equitable Program"Mercado-Lara "Open & Equitable Program"
Mercado-Lara "Open & Equitable Program"
 
Ratner "Enhancing Open Science: Assessing Tools & Charting Progress"
Ratner "Enhancing Open Science: Assessing Tools & Charting Progress"Ratner "Enhancing Open Science: Assessing Tools & Charting Progress"
Ratner "Enhancing Open Science: Assessing Tools & Charting Progress"
 

Recently uploaded

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
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 2024BookNet Canada
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 

Recently uploaded (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 

NISO Webinar: E-books (Part 1) EPUB3: Putting Electronic Books into a Package (March 14, 2012): Presentation Slides

  • 1. http://www.niso.org/news/events/2012/nisowebinars/ebooks_epub3/ Understanding Critical Elements of E-books: Standards for Formatting and Metadata Part 1: EPUB3: Putting Electronic Books into a Package March 14, 2012 Speakers: Bill Kasdorf and Sanders Kleinfeld
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31. Adding Interactivity to Ebooks with HTML5 Sanders Kleinfeld
  • 32. Ebook Production = Developing Content for a Multitude of Screens… eInk Color Tablet Desktop Browser
  • 33. …Via many formats, technologies, and software tools EPUB 2.0.1 CSS Mobi NCX epubpreflight DRM fixed layout regex JS KF8 .iba epubcheck oXygen OPF sigil EPUB 3 kindlegen XSL masochism
  • 34. HTML5
  • 35. HTML5: New elements (http://www.w3.org/TR/html5-diff/#new-elements) Navigation: Multimedia/Interactivity: <article> <audio> <aside> <canvas> <header> <embed> <hgroup> <source> <footer> <track> <figure> <video> <figcaption> <nav> <section>
  • 36. HTML5: New elements (continued) (http://www.w3.org/TR/html5-diff/#new-elements) New <input> types: Miscellaneous: color <bdi> date <command> datetime <datalist> datetime-local <details> email <keygen> month <mark> number <meter> range <output> search <progress> tel <summary> time <rp> url <rt> week <ruby> <time> <wbr>
  • 37. What is HTML5, really? A constellation of technologies
  • 38. Canvas Audio/Video Geolocation CSS3
  • 39. When people say "HTML5," they're usually referring to... ...next-generation web sites that include one or more of the following: • Embedded audio/video media without resorting to Flash or other plugins • Native interactivity/animation/games without resorting to Flash or other plugins • Geolocation functionality • Sites with local storage that you can download and run offline • Fancy CSS3: columns, text shadows, animations... • Native support for MathML and SVG • Semantic markup
  • 40. HTML5 in Action on the Web
  • 41. Why should publishers care about HTML5?
  • 42. HTML5 is the Backbone of the EPUB 3 Standard The EPUB 3.0 specification for ebooks mandates that content documents use XHTML (HTML5) syntax: http://idpf.org/epub/30/spec/epub30-contentdocs.html#sec-xhtml While most major ereaders do not formally support EPUB 3, many HTML5 features are currently supported by the following platforms: • iBooks for iPad, iPhone, iPod • NOOK Color/Tablet • Kindle Fire • Kindle Apps (iPhone/iPad/Android/etc.) • Safari Books Online
  • 43. HTML5 in action in ebooks
  • 44. HTML5 Canvas for Publishers Canvas allows you to embed a dynamic sketchpad in your content: <canvas id="my_first_canvas" width="200" height="225"> The content you put here will show up if your rendering engine doesn't support the &lt;canvas&gt; element. </canvas>
  • 45. You draw on the <canvas> with JavaScript my_canvas.strokeRect(0,0,200,225) // to start, draw a border around the canvas //draw face my_canvas.beginPath(); my_canvas.arc(100, 100, 75, (Math.PI/180)*0, (Math.PI/180)*360, false); // circle dimensions my_canvas.strokeStyle = "black"; // circle outline is black my_canvas.lineWidth = 3; // outline is three pixels wide my_canvas.fillStyle = "yellow"; // fill circle with yellow my_canvas.stroke(); // draw circle my_canvas.fill(); // fill in circle my_canvas.closePath(); // now, draw left eye my_canvas.fillStyle = "black"; // switch to black for the fill my_canvas.beginPath(); my_canvas.arc(65, 70, 10, (Math.PI/180)*0, (Math.PI/180)*360, false); // circle dimensions my_canvas.stroke(); // draw circle my_canvas.fill(); // fill in circle my_canvas.closePath(); // now, draw right eye my_canvas.beginPath(); my_canvas.arc(135, 70, 10, (Math.PI/180)*0, (Math.PI/180)*360, false); // circle dimensions my_canvas.stroke(); // draw circle my_canvas.fill(); // fill in circle my_canvas.closePath(); // draw smile my_canvas.lineWidth = 6; // switch to six pixels wide for outline my_canvas.beginPath(); my_canvas.arc(99, 120, 35, (Math.PI/180)*0, (Math.PI/180)*-180, false); // semicircle dimensions my_canvas.stroke(); my_canvas.closePath(); // Smiley Speaks! my_canvas.fillStyle = "black"; // switch to black for text fill
  • 47. But Canvas is all about interactivity... You can dynamically update what's displayed on the canvas in real time, and in response to user input, which opens the door to animations, games, and more.
  • 48. Canvas in Action: Graphing Calculator http://bit.ly/canvascalc
  • 49. Canvas in Action II: Finger Painting http://bit.ly/canvasfingerpaint
  • 50. Geolocation for Publishers The W3C Geolocation API (http://dev.w3.org/geo/api/spec- source.html) provides a simple way of getting a user's latitude/longitude coordinates: navigator.geolocation.getCurrentPosition(callback_function) Where callback_functionis a function you define to receive and process the latitude/longitude data.
  • 51. Geolocation’s value in ebooks • Interactive Atlas, Road Maps • Travel/Restaurant guides customized for user’s location • Geolocated fiction • Geolocation-based games (geocaching, scavenger hunt)
  • 52. Geolocation in Action: A Geolocated Tale http://bit.ly/geolocatedtale Before...
  • 53. Geolocation in Action: A Geolocated Tale http://bit.ly/geolocatedtale After...
  • 54. Audio/Video for Publishers HTML5 lets you embed audio/video directly in your content without any plugins needed: <audio id="new_slang"> <video id="dancing_pony" width="300" <source src="new_slang.wav" height="300"> type="audio/wav"/> <source src="dancing_pony.mp4" <source src="new_slang.mp3" type="video/mp4"/> type="audio/mp3"/> <source src="dancing_pony.ogg" <source src="new_slang.ogg" type="video/ogg"/> type="audio/ogg"/> <em>(Sorry, &lt;video&gt; element not <em>(Sorry, &lt;audio&gt; element not supported in your browser/ereader, so supported in your browser/ereader, so you you will not be able to watch this will not be able to listen to this video.)</em> song.)</em> </video> </audio>
  • 55. Audio/Video Compatibility Woes (via Wikipedia) <audio> support in Browsers (http://en.wikipedia.org/wiki/Html5_audio#Audio_format_support) <video> support in Browsers (http://en.wikipedia.org/wiki/HTML5_video#Table)
  • 56. Ereader Audio/Video Compatibility Redux For audio, use MP3. It works on: • iBooks • NOOK Color/Tablet • Kindle software readers (iPad/iPhone/Android/etc.) For video, use H.264/MP4. It works on: • iBooks • NOOK Color/Tablet • Kindle software readers (iPad/iPhone/Android/etc.)
  • 57. Audio in Action: Audio-Enabled Glossary http://bit.ly/miniglossary
  • 58. Video in Action: A Clip About <canvas> http://bit.ly/ormcanvasvid
  • 59. MathML for Publishers • MathML is an XML vocabulary for representing mathematical expressions. • MathML provides both Presentation and Content Markup models. • Presentation markup tags math expressions based on how they should be displayed (e.g., “superscripted 2”). • Content markuptags expressions based on the mathematical operations performed (e.g., “taken to the 2nd power”) • The HTML5 specification provides native support for MathML in HTML documents
  • 60. MathML Presentation Markup Glossary (abridged edition) • <math> -- Root element for a mathematical expression • <mrow> -- Element for grouping subexpressions • <mo> -- Math operator (e.g., +, -) • <mi> -- Math identifier (e.g., variable or constant) • <mn> -- Number • <mfrac> -- Fraction • <msqrt> -- Square root • <msup> -- Superscript • <msub> -- Subscript • <mfenced> -- Parentheses or braces
  • 61. Convert a Famous Equation to MathML! http://bit.ly/mathconverter
  • 62. But why write all this markup: <math xmlns="http://www.w3.org/1998/Math/MathML"> <mstyledisplaystyle="true"> <mi> E </mi> <mo> = </mo> <mi>m</mi> <msup> <mrow> <mi> c </mi> </mrow> <mrow> <mn> 2 </mn> </mrow> </msup> </mstyle> </math> When you can just embed the equation as an image?
  • 63. Advantages of Using MathML Instead of Images: • Equations are resizable, like text • Equations can be styled with CSS • Equations can be interacted with using JavaScript
  • 64. MathML in Action: Quadratic Equation Solver http://bit.ly/mathml
  • 65. HTML5 support in today’s ereaders <canvas> Geolocation <audio> <video> MathML iBooks 1.x YES Sort of* YES YES YES NOOK NO NO YES YES NO Color/Tablet Safari Books YES YES YES YES YES Online Kindle Apps NO NO YES YES NO Kindle Fire NO NO NO NO NO * iBooks 1.x supports Geolocation API, but does not support calls to related APIs (Google Maps, GeoNames, etc.)
  • 66. Download HTML5 for Publishers: http://bit.ly/html5forpubs