Spark Talk Slides

This commit is contained in:
Oliver Kennedy 2018-05-16 18:25:25 -04:00
parent a24e479400
commit f1f76eb3cf
11 changed files with 20745 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View file

@ -0,0 +1,255 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="106.58931mm"
height="258.58582mm"
viewBox="0 0 106.58931 258.58582"
version="1.1"
id="svg8"
inkscape:version="0.92.3 (unknown)"
sodipodi:docname="sparkstack.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="133.85587"
inkscape:cy="563.07146"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="2560"
inkscape:window-height="1388"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-23.81249,52.867031)">
<g
id="g846"
transform="rotate(-90,78.713538,150.81772)"
class="fragment">
<rect
y="95.916672"
x="23.8125"
height="35.529766"
width="109.80208"
id="rect827"
style="opacity:0.8;fill:#c8c89c;fill-opacity:0.94117647;stroke:none;stroke-width:0.26087502;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text831"
y="118.72517"
x="78.369026"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000;stroke-width:0.26458332px"
y="118.72517"
x="78.369026"
id="tspan829"
sodipodi:role="line">Text Files</tspan></text>
</g>
<g
id="g841"
class="fragment">
<rect
style="opacity:0.8;fill:#90a0a0;fill-opacity:0.94117647;stroke:none;stroke-width:0.25703016;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect821"
width="106.5893"
height="35.529778"
x="23.8125"
y="60.386909" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="76.762642"
y="83.195412"
id="text825"><tspan
sodipodi:role="line"
id="tspan823"
x="76.762642"
y="83.195412"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;stroke-width:0.26458332px">RDDs</tspan></text>
</g>
<g
id="g908"
class="fragment">
<g
id="g856"
transform="rotate(-90,96.478423,133.05284)">
<rect
y="95.916672"
x="23.8125"
height="35.529766"
width="109.80208"
id="rect850"
style="opacity:0.8;fill:#e4cc88;fill-opacity:0.94117647;stroke:none;stroke-width:0.26087502;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text854"
y="118.72517"
x="78.369026"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000;stroke-width:0.26458332px"
y="118.72517"
x="78.369026"
id="tspan852"
sodipodi:role="line">Hadoop</tspan></text>
</g>
<g
transform="rotate(-90,114.24331,115.28796)"
id="g864">
<rect
style="opacity:0.8;fill:#dcc07c;fill-opacity:0.94117647;stroke:none;stroke-width:0.26087502;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect858"
width="109.80208"
height="35.529766"
x="23.8125"
y="95.916672" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="78.369026"
y="118.72517"
id="text862"><tspan
sodipodi:role="line"
id="tspan860"
x="78.369026"
y="118.72517"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#000000;stroke-width:0.26458332px">Relational DB</tspan></text>
</g>
</g>
<g
id="g836"
class="fragment">
<rect
y="24.857143"
x="23.8125"
height="35.529766"
width="106.58929"
id="rect815"
style="opacity:0.8;fill:#908470;fill-opacity:0.94117647;stroke:none;stroke-width:0.2570301;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text819"
y="47.665646"
x="76.762634"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;stroke-width:0.26458332px"
y="47.665646"
x="76.762634"
id="tspan817"
sodipodi:role="line">Data Frames</tspan></text>
</g>
<g
transform="rotate(-90,23.812501,24.857145)"
id="g888"
class="fragment">
<rect
y="24.857143"
x="23.8125"
height="35.529766"
width="77.724174"
id="rect882"
style="opacity:0.8;fill:#909050;fill-opacity:0.94117647;stroke:none;stroke-width:0.21948522;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text886"
y="46.514984"
x="62.24395"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.28888893px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;stroke-width:0.26458332px"
y="46.514984"
x="62.24395"
id="tspan884"
sodipodi:role="line">Raw Access</tspan></text>
</g>
<g
id="g898"
class="fragment">
<g
transform="rotate(-90,41.577384,7.0922623)"
id="g872">
<rect
y="24.857143"
x="23.8125"
height="35.529766"
width="77.724174"
id="rect866"
style="opacity:0.8;fill:#68783c;fill-opacity:0.94117647;stroke:none;stroke-width:0.21948522;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text870"
y="46.514984"
x="62.24395"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;stroke-width:0.26458332px"
y="46.514984"
x="62.24395"
id="tspan868"
sodipodi:role="line">SparkSQL</tspan></text>
</g>
<g
id="g880"
transform="rotate(-90,59.342264,-10.672621)">
<rect
style="opacity:0.8;fill:#405c24;fill-opacity:0.94117647;stroke:none;stroke-width:0.21948522;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect874"
width="77.724174"
height="35.529766"
x="23.8125"
y="24.857143" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="62.24395"
y="46.514984"
id="text878"><tspan
sodipodi:role="line"
id="tspan876"
x="62.24395"
y="46.514984"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.11111069px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;stroke-width:0.26458332px">SparkML</tspan></text>
</g>
</g>
<rect
style="opacity:0.8;fill:none;fill-opacity:0.94117647;stroke:#ff0000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect977"
width="128.28937"
height="46.772167"
x="12.854439"
y="54.4496"
class="fragment" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 KiB

View file

@ -0,0 +1,287 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Spark</title>
<meta name="description" content="Mimir">
<meta name="author" content="Oliver Kennedy">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
<link rel="stylesheet" href="../reveal.js-3.5.0/css/reveal.css">
<link rel="stylesheet" href="ubodin.css" id="theme">
<!-- Code syntax highlighting -->
<link rel="stylesheet" href="../reveal.js-3.5.0/lib/css/zenburn.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../reveal.js-3.5.0/css/print/pdf.css' : '../reveal.js-3.5.0/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
<script>document.write('<script src="http://' + (location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1"></' + 'script>')</script>
<!--[if lt IE 9]>
<script src="../reveal.js-3.5.0/lib/js/html5shiv.js"></script>
<![endif]-->
</head>
<body>
<div class="reveal">
<!-- Any section element inside of this container is displayed as a slide -->
<div class="header">
<!-- Any Talk-Specific Header Content Goes Here -->
Spark
</div>
<div class="footer">
<!-- Any Talk-Specific Footer Content Goes Here -->
<div style="float: left; margin-top: 15px; ">
Exploring <u><b>O</b></u>nline <u><b>D</b></u>ata <u><b>In</b></u>teractions
</div>
<img src="graphics/FullText-white.png" height="40" style="float: right;"/>
</div>
<div class="slides">
<section>
<section>
<h2>Spark</h2>
<h4>(NoSQL, but with SQL)</h4>
</section>
<section>
<h3>First a little history</h3>
<dl>
<div class="fragment">
<dt>Early-Mid 1900s</dt>
<dd>Computers used for tabulating data</dd>
</div>
<div class="fragment">
<dt>1970s</dt>
<dd>Relational model, Postgres, System-R, Oracle, DB2</dd>
</div>
<div class="fragment">
<dt>1980</dt>
<dd>Lotus, dBase</dd>
</div>
<div class="fragment">
<dt>1990s</dt>
<dd>Object/Object-Relational Databases, Distributed Databases</dd>
</div>
<div class="fragment">
<dt>2000s</dt>
<dd>The Dark Ages...</dd>
</div>
</dl>
</section>
<section>
<p><b>Google: </b> Databases suck! Use Map/Reduce Instead</p>
<img src="graphics/mapreduce.png" height="500px">
</section>
<section>
<p><b>Yahoo: </b> Our Map/Reduce implementation is open source</p>
<img src="graphics/hadoop.png" height="500px">
</section>
<section>
<h3>The Good</h3>
<ul>
<li class="fragment">Programmer-Friendly Language</li>
<li class="fragment">Distributed-Computing-Friendly Metaphors</li>
<li class="fragment">Extremely Resilient Runtime</li>
</ul>
</section>
<section>
<h3>The Bad</h3>
<ul>
<li class="fragment"><strike>Programmer-Friendly</strike>Non-Declarative Language</li>
<li class="fragment"><strike>Distributed-Computing-Friendly</strike>Programmer-Hostile Metaphors</li>
<li class="fragment">Extremely <strike>Resilient</strike>Slow Runtime</li>
</ul>
</section>
<section>
<img src="graphics/hadoopVSdbs.svg">
</section>
</section>
<section>
<section>
<img src="graphics/spark.png" height="400px">
</section>
<section>
<h3>Key Features</h3>
<ul>
<li>High-performance resilience.</li>
<li>Use of metaphors to extract parallelism.</li>
<li>Lots of metaphors for distributed programming.</li>
<li>If you can do it in { Scala, Python, Java, R }, you can do it in Spark.</li>
<li>If you know SQL and { Scala, Python, Java, R }, you know Spark</li>
</ul>
</section>
<section>
<svg data-src="graphics/sparkstack.svg" height="600px">
</section>
</section>
<section>
<section>
<h3>Resilient Distributed Data Structures (RDDs)</h3>
<dl style="font-size: 75%">
<div class="fragment">
<dt>Read-Only</dt>
<dd>You can't insert, update, or modify rows...</dd>
</div>
<div class="fragment">
<dt>Transformable</dt>
<dd>... but you can create (cheaply) new RDDs by modifying existing RDDs.</dd>
</div>
<div class="fragment">
<dt>Opaque</dt>
<dd>Spark just sees a bunch of rows. It doesn't know how to interpret them.</dd>
</div>
<div class="fragment">
<dt>Lazy</dt>
<dd>Spark saves <b>how</b> to construct an RDD, but waits to actually do so.</dd>
</div>
<div class="fragment">
<dt>Distributed</dt>
<dd>When Spark constructs an RDD, it automatically assigns rows to workers.</dd>
</div>
</dl>
</section>
<section>
<h3>Where do RDDs come from</h3>
<ul>
<li>Call "parallelize" on a { Scala, Python, Java, R } array/collection</li>
<li>Load a text file from disk or HDFS (1 row per line).</li>
<li>Load a database table (1 row per row).</li>
<li>Transform (map, flatMap, filter) an existing RDD.</li>
</ul>
</section>
<section>
<div>
<h3>FlatMap?</h3>
<p>A function that reads in one row and returns any number of rows.</p>
</div>
<div>
<h3>Map?</h3>
<p>A function that reads in one row and returns one row.</p>
</div>
<div>
<h3>Filter?</h3>
<p>A function that reads in one row and returns true (keep) or false (toss).</p>
</div>
</section>
<section>
<h3>Resilient Distributed Data Structures (RDDs)</h3>
<dl style="font-size: 75%">
<div>
<dt>Read-Only</dt>
<dd>You can't insert, update, or modify rows...</dd>
</div>
<div>
<dt>Transformable</dt>
<dd>... but you can create (cheaply) new RDDs by modifying existing RDDs.</dd>
</div>
<div class="fragment highlight-blue">
<dt>Opaque</dt>
<dd>Spark just sees a bunch of rows. It doesn't know how to interpret them.</dd>
</div>
<div>
<dt>Lazy</dt>
<dd>Spark saves <b>how</b> to construct an RDD, but waits to actually do so.</dd>
</div>
<div>
<dt>Distributed</dt>
<dd>When Spark constructs an RDD, it automatically assigns rows to workers.</dd>
</div>
</dl>
</section>
</section>
<section>
<section>
<h3>DataFrames</h3>
<p>RDDs with Schemas: Every row has a set of attributes and all of the records have the same attributes.</p>
</section>
<section>
<h1>Demo</h1>
</section>
</section>
</div>
</div></div>
<script src="../reveal.js-3.5.0/lib/js/head.min.js"></script>
<script src="../reveal.js-3.5.0/js/reveal.js"></script>
<script>
// Full list of configuration options available at:
// https://github.com/hakimel/../reveal.js#configuration
Reveal.initialize({
controls: false,
progress: true,
history: true,
center: true,
slideNumber: true,
transition: 'fade', // none/fade/slide/convex/concave/zoom
// Optional ../reveal.js plugins
dependencies: [
{ src: '../reveal.js-3.5.0/lib/js/classList.js', condition: function() { return !document.body.classList; } },
{ src: '../reveal.js-3.5.0/plugin/math/math.js',
condition: function() { return true; },
mathjax: '../reveal.js-3.5.0/js/MathJax.js'
},
{ src: '../reveal.js-3.5.0/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: '../reveal.js-3.5.0/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: '../reveal.js-3.5.0/plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
{ src: '../reveal.js-3.5.0/plugin/zoom-js/zoom.js', async: true },
{ src: '../reveal.js-3.5.0/plugin/notes/notes.js', async: true },
{ src: '../reveal.js-3.5.0/plugin/svginline/es6-promise.auto.js', async: false },
{ src: '../reveal.js-3.5.0/plugin/svginline/data-src-svg.js', async: false }
]
});
</script>
</body>
</html>

View file

@ -0,0 +1,369 @@
@font-face {
font-family: 'News Cycle';
font-style: normal;
font-weight: 400;
src: local('News Cycle'), local('NewsCycle'), url(../reveal.js-3.1.0/fonts/9Xe8dq6pQDsPyVH2D3tMQsDdSZkkecOE1hvV7ZHvhyU.ttf) format('truetype');
}
@font-face {
font-family: 'News Cycle';
font-style: normal;
font-weight: 700;
src: local('News Cycle Bold'), local('NewsCycle-Bold'), url(../reveal.js-3.1.0/fonts/G28Ny31cr5orMqEQy6ljt8BaWKZ57bY3RXgXH6dOjZ0.ttf) format('truetype');
}
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 400;
src: local('Lato Regular'), local('Lato-Regular'), url(../reveal.js-3.1.0/fonts/1EqTbJWOZQBfhZ0e3RL9uvesZW2xOQ-xsNqO47m55DA.ttf) format('truetype');
}
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 700;
src: local('Lato Bold'), local('Lato-Bold'), url(../reveal.js-3.1.0/fonts/MZ1aViPqjfvZwVD_tzjjkwLUuEpTyoUstqEm5AMlJo4.ttf) format('truetype');
}
@font-face {
font-family: 'Lato';
font-style: italic;
font-weight: 400;
src: local('Lato Italic'), local('Lato-Italic'), url(../reveal.js-3.1.0/fonts/61V2bQZoWB5DkWAUJStypevvDin1pK8aKteLpeZ5c0A.ttf) format('truetype');
}
@font-face {
font-family: 'Lato';
font-style: italic;
font-weight: 700;
src: local('Lato Bold Italic'), local('Lato-BoldItalic'), url(../reveal.js-3.1.0/fonts/HkF_qI1x_noxlxhrhMQYECZ2oysoEQEeKwjgmXLRnTc.ttf) format('truetype');
}
/**@import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700);
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
**/
/**
* A simple theme for reveal.js presentations, similar
* to the default theme. The accent color is darkblue.
*
* This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.
* reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
*/
/*********************************************
* GLOBAL STYLES
*********************************************/
body {
background: #fff;
background-color: #fff; }
.reveal {
font-family: 'Lato', sans-serif;
font-size: 36px;
font-weight: normal;
color: #000; }
::selection {
color: #fff;
background: rgba(0, 0, 0, 0.99);
text-shadow: none; }
.reveal .slides > section, .reveal .slides > section > section {
line-height: 1.3;
font-weight: inherit; }
/*********************************************
* STATIC HEADER/FOOTER
*********************************************/
.reveal .header {
position: absolute;
top: 0px;
left: 0px;
right: 0px;
height: 25px;
text-align: center;
padding-left: 15px;
padding-right: 15px;
padding-bottom: 10px;
padding-top: 15px;
background-color: #041a9b;
color: white;
font-size: 0.5em;
z-index: 100;
}
.reveal .footer {
position: absolute;
bottom: 0px;
left: 0px;
right: 0px;
height: 40px;
text-align: center;
padding-left: 15px;
padding-right: 15px;
padding-bottom: 10px;
padding-top: 20px;
background-color: #041a9b;
color: white;
font-size: 0.5em;
z-index: 100;
}
/*********************************************
* HEADERS
*********************************************/
.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 {
margin: 0 0 20px 0;
color: #000;
font-family: 'News Cycle', Impact, sans-serif;
font-weight: normal;
line-height: 1.2;
letter-spacing: normal;
text-transform: none;
text-shadow: none;
word-wrap: break-word; }
.reveal h1 {
font-size: 3.77em; }
.reveal h2 {
font-size: 2.11em; }
.reveal h3 {
font-size: 1.55em; }
.reveal h4 {
font-size: 1em; }
.reveal h1 {
text-shadow: none; }
/*********************************************
* OTHER
*********************************************/
.reveal p {
margin: 20px 0;
line-height: 1.3; }
.reveal imagecredits {
font-size: 12pt;
position: absolute;
right: -10px;
bottom: -10px;
text-align: right;
}
.reveal citation {
font-size: 12pt;
position: absolute;
right: -10px;
bottom: -10px;
text-align: right;
}
/* Ensure certain elements are never larger than the slide itself */
.reveal img, .reveal video, .reveal iframe {
max-width: 95%;
max-height: 95%; }
.reveal strong, .reveal b {
font-weight: bold; }
.reveal em {
font-style: italic; }
.reveal ol, .reveal dl, .reveal ul {
display: inline-block;
text-align: left;
margin: 0 0 0 1em; }
.reveal ol {
list-style-type: decimal; }
.reveal ul {
list-style-type: disc; }
.reveal ul > li {
margin-top: 20px; }
.reveal ul ul {
list-style-type: square; }
.reveal ul ul ul {
list-style-type: circle; }
.reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul {
display: block;
margin-left: 40px; }
.reveal dt {
font-weight: bold; }
.reveal dd {
margin-left: 40px; }
.reveal q, .reveal blockquote {
quotes: none; }
.reveal blockquote {
display: block;
position: relative;
width: 70%;
margin: 20px auto;
padding: 5px;
font-style: italic;
background: rgba(255, 255, 255, 0.05);
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }
.reveal blockquote p:first-child, .reveal blockquote p:last-child {
display: inline-block; }
.reveal q {
font-style: italic; }
.reveal pre {
display: block;
position: relative;
width: 90%;
margin: 20px auto;
text-align: left;
font-size: 0.55em;
font-family: monospace;
line-height: 1.2em;
word-wrap: break-word;
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }
.reveal code {
font-family: monospace;
}
.reveal pre code {
display: block;
padding: 5px;
overflow: auto;
max-height: 400px;
word-wrap: normal;
background: #3F3F3F;
color: #DCDCDC; }
.reveal table {
margin: auto;
border-collapse: collapse;
border-spacing: 0; }
.reveal table th {
font-weight: bold;
border-bottom: 1px solid; }
.reveal table th, .reveal table td {
text-align: center;
padding: 0.2em 0.5em 0.2em 0.5em;}
.reveal table th[align="left"], .reveal table td[align="left"] {
text-align: left; }
.reveal table th[align="right"], .reveal table td[align="right"] {
text-align: right; }
.reveal table tr:last-child td {
border-bottom: none; }
.reveal sup {
vertical-align: super; }
.reveal sub {
vertical-align: sub; }
.reveal small {
display: inline-block;
font-size: 0.6em;
line-height: 1.2em;
vertical-align: top; }
.reveal small * {
vertical-align: top; }
/*********************************************
* LINKS
*********************************************/
.reveal a {
color: #00008B;
text-decoration: none;
-webkit-transition: color 0.15s ease;
-moz-transition: color 0.15s ease;
transition: color 0.15s ease; }
.reveal a:hover {
color: #0000f1;
text-shadow: none;
border: none; }
.reveal .roll span:after {
color: #fff;
background: #00003f; }
/*********************************************
* IMAGES
*********************************************/
.reveal section img {
margin: 15px 0px;
background: rgba(255, 255, 255, 0.12);
}
.reveal section img.bordered
{
border: 4px solid #000;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
}
.reveal a img {
-webkit-transition: all 0.15s linear;
-moz-transition: all 0.15s linear;
transition: all 0.15s linear; }
.reveal a:hover img {
background: rgba(255, 255, 255, 0.2);
border-color: #00008B;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
/*********************************************
* NAVIGATION CONTROLS
*********************************************/
.reveal .controls div.navigate-left, .reveal .controls div.navigate-left.enabled {
border-right-color: #00008B; }
.reveal .controls div.navigate-right, .reveal .controls div.navigate-right.enabled {
border-left-color: #00008B; }
.reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled {
border-bottom-color: #00008B; }
.reveal .controls div.navigate-down, .reveal .controls div.navigate-down.enabled {
border-top-color: #00008B; }
.reveal .controls div.navigate-left.enabled:hover {
border-right-color: #0000f1; }
.reveal .controls div.navigate-right.enabled:hover {
border-left-color: #0000f1; }
.reveal .controls div.navigate-up.enabled:hover {
border-bottom-color: #0000f1; }
.reveal .controls div.navigate-down.enabled:hover {
border-top-color: #0000f1; }
/*********************************************
* PROGRESS BAR
*********************************************/
.reveal .progress {
background: rgba(0, 0, 0, 0.2); }
.reveal .progress span {
background: #00008B;
-webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
/*********************************************
* SLIDE NUMBER
*********************************************/
.reveal .slide-number {
color: #00008B; }