solarized-dark theme
This commit is contained in:
parent
07ee8f5157
commit
d6a2ec7d50
21 changed files with 964 additions and 69 deletions
|
@ -210,9 +210,9 @@ body {
|
|||
.reveal a {
|
||||
color: #8b743d;
|
||||
text-decoration: none;
|
||||
-webkit-transition: color 0.15s ease;
|
||||
-moz-transition: color 0.15s ease;
|
||||
transition: color 0.15s ease; }
|
||||
-webkit-transition: color .15s ease;
|
||||
-moz-transition: color .15s ease;
|
||||
transition: color .15s ease; }
|
||||
|
||||
.reveal a:hover {
|
||||
color: #c0a86e;
|
||||
|
@ -237,9 +237,9 @@ body {
|
|||
box-shadow: none; }
|
||||
|
||||
.reveal a img {
|
||||
-webkit-transition: all 0.15s linear;
|
||||
-moz-transition: all 0.15s linear;
|
||||
transition: all 0.15s linear; }
|
||||
-webkit-transition: all .15s linear;
|
||||
-moz-transition: all .15s linear;
|
||||
transition: all .15s linear; }
|
||||
|
||||
.reveal a:hover img {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
|
|
|
@ -206,9 +206,9 @@ body {
|
|||
.reveal a {
|
||||
color: #42affa;
|
||||
text-decoration: none;
|
||||
-webkit-transition: color 0.15s ease;
|
||||
-moz-transition: color 0.15s ease;
|
||||
transition: color 0.15s ease; }
|
||||
-webkit-transition: color .15s ease;
|
||||
-moz-transition: color .15s ease;
|
||||
transition: color .15s ease; }
|
||||
|
||||
.reveal a:hover {
|
||||
color: #8dcffc;
|
||||
|
@ -233,9 +233,9 @@ body {
|
|||
box-shadow: none; }
|
||||
|
||||
.reveal a img {
|
||||
-webkit-transition: all 0.15s linear;
|
||||
-moz-transition: all 0.15s linear;
|
||||
transition: all 0.15s linear; }
|
||||
-webkit-transition: all .15s linear;
|
||||
-moz-transition: all .15s linear;
|
||||
transition: all .15s linear; }
|
||||
|
||||
.reveal a:hover img {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
|
|
|
@ -209,9 +209,9 @@ body {
|
|||
.reveal a {
|
||||
color: #a23;
|
||||
text-decoration: none;
|
||||
-webkit-transition: color 0.15s ease;
|
||||
-moz-transition: color 0.15s ease;
|
||||
transition: color 0.15s ease; }
|
||||
-webkit-transition: color .15s ease;
|
||||
-moz-transition: color .15s ease;
|
||||
transition: color .15s ease; }
|
||||
|
||||
.reveal a:hover {
|
||||
color: #dd5566;
|
||||
|
@ -236,9 +236,9 @@ body {
|
|||
box-shadow: none; }
|
||||
|
||||
.reveal a img {
|
||||
-webkit-transition: all 0.15s linear;
|
||||
-moz-transition: all 0.15s linear;
|
||||
transition: all 0.15s linear; }
|
||||
-webkit-transition: all .15s linear;
|
||||
-moz-transition: all .15s linear;
|
||||
transition: all .15s linear; }
|
||||
|
||||
.reveal a:hover img {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
|
|
|
@ -212,9 +212,9 @@ body {
|
|||
.reveal a {
|
||||
color: #13DAEC;
|
||||
text-decoration: none;
|
||||
-webkit-transition: color 0.15s ease;
|
||||
-moz-transition: color 0.15s ease;
|
||||
transition: color 0.15s ease; }
|
||||
-webkit-transition: color .15s ease;
|
||||
-moz-transition: color .15s ease;
|
||||
transition: color .15s ease; }
|
||||
|
||||
.reveal a:hover {
|
||||
color: #71e9f4;
|
||||
|
@ -239,9 +239,9 @@ body {
|
|||
box-shadow: none; }
|
||||
|
||||
.reveal a img {
|
||||
-webkit-transition: all 0.15s linear;
|
||||
-moz-transition: all 0.15s linear;
|
||||
transition: all 0.15s linear; }
|
||||
-webkit-transition: all .15s linear;
|
||||
-moz-transition: all .15s linear;
|
||||
transition: all .15s linear; }
|
||||
|
||||
.reveal a:hover img {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
|
|
|
@ -210,9 +210,9 @@ body {
|
|||
.reveal a {
|
||||
color: #268bd2;
|
||||
text-decoration: none;
|
||||
-webkit-transition: color 0.15s ease;
|
||||
-moz-transition: color 0.15s ease;
|
||||
transition: color 0.15s ease; }
|
||||
-webkit-transition: color .15s ease;
|
||||
-moz-transition: color .15s ease;
|
||||
transition: color .15s ease; }
|
||||
|
||||
.reveal a:hover {
|
||||
color: #78b9e6;
|
||||
|
@ -237,9 +237,9 @@ body {
|
|||
box-shadow: none; }
|
||||
|
||||
.reveal a img {
|
||||
-webkit-transition: all 0.15s linear;
|
||||
-moz-transition: all 0.15s linear;
|
||||
transition: all 0.15s linear; }
|
||||
-webkit-transition: all .15s linear;
|
||||
-moz-transition: all .15s linear;
|
||||
transition: all .15s linear; }
|
||||
|
||||
.reveal a:hover img {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
|
|
|
@ -204,9 +204,9 @@ body {
|
|||
.reveal a {
|
||||
color: #e7ad52;
|
||||
text-decoration: none;
|
||||
-webkit-transition: color 0.15s ease;
|
||||
-moz-transition: color 0.15s ease;
|
||||
transition: color 0.15s ease; }
|
||||
-webkit-transition: color .15s ease;
|
||||
-moz-transition: color .15s ease;
|
||||
transition: color .15s ease; }
|
||||
|
||||
.reveal a:hover {
|
||||
color: #f3d7ac;
|
||||
|
@ -231,9 +231,9 @@ body {
|
|||
box-shadow: none; }
|
||||
|
||||
.reveal a img {
|
||||
-webkit-transition: all 0.15s linear;
|
||||
-moz-transition: all 0.15s linear;
|
||||
transition: all 0.15s linear; }
|
||||
-webkit-transition: all .15s linear;
|
||||
-moz-transition: all .15s linear;
|
||||
transition: all .15s linear; }
|
||||
|
||||
.reveal a:hover img {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
|
|
|
@ -206,9 +206,9 @@ body {
|
|||
.reveal a {
|
||||
color: #51483D;
|
||||
text-decoration: none;
|
||||
-webkit-transition: color 0.15s ease;
|
||||
-moz-transition: color 0.15s ease;
|
||||
transition: color 0.15s ease; }
|
||||
-webkit-transition: color .15s ease;
|
||||
-moz-transition: color .15s ease;
|
||||
transition: color .15s ease; }
|
||||
|
||||
.reveal a:hover {
|
||||
color: #8b7c69;
|
||||
|
@ -233,9 +233,9 @@ body {
|
|||
box-shadow: none; }
|
||||
|
||||
.reveal a img {
|
||||
-webkit-transition: all 0.15s linear;
|
||||
-moz-transition: all 0.15s linear;
|
||||
transition: all 0.15s linear; }
|
||||
-webkit-transition: all .15s linear;
|
||||
-moz-transition: all .15s linear;
|
||||
transition: all .15s linear; }
|
||||
|
||||
.reveal a:hover img {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
|
|
|
@ -206,9 +206,9 @@ body {
|
|||
.reveal a {
|
||||
color: #00008B;
|
||||
text-decoration: none;
|
||||
-webkit-transition: color 0.15s ease;
|
||||
-moz-transition: color 0.15s ease;
|
||||
transition: color 0.15s ease; }
|
||||
-webkit-transition: color .15s ease;
|
||||
-moz-transition: color .15s ease;
|
||||
transition: color .15s ease; }
|
||||
|
||||
.reveal a:hover {
|
||||
color: #0000f1;
|
||||
|
@ -233,9 +233,9 @@ body {
|
|||
box-shadow: none; }
|
||||
|
||||
.reveal a img {
|
||||
-webkit-transition: all 0.15s linear;
|
||||
-moz-transition: all 0.15s linear;
|
||||
transition: all 0.15s linear; }
|
||||
-webkit-transition: all .15s linear;
|
||||
-moz-transition: all .15s linear;
|
||||
transition: all .15s linear; }
|
||||
|
||||
.reveal a:hover img {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
|
|
|
@ -213,9 +213,9 @@ body {
|
|||
.reveal a {
|
||||
color: #3b759e;
|
||||
text-decoration: none;
|
||||
-webkit-transition: color 0.15s ease;
|
||||
-moz-transition: color 0.15s ease;
|
||||
transition: color 0.15s ease; }
|
||||
-webkit-transition: color .15s ease;
|
||||
-moz-transition: color .15s ease;
|
||||
transition: color .15s ease; }
|
||||
|
||||
.reveal a:hover {
|
||||
color: #74a7cb;
|
||||
|
@ -240,9 +240,9 @@ body {
|
|||
box-shadow: none; }
|
||||
|
||||
.reveal a img {
|
||||
-webkit-transition: all 0.15s linear;
|
||||
-moz-transition: all 0.15s linear;
|
||||
transition: all 0.15s linear; }
|
||||
-webkit-transition: all .15s linear;
|
||||
-moz-transition: all .15s linear;
|
||||
transition: all .15s linear; }
|
||||
|
||||
.reveal a:hover img {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
|
|
290
.reveal.js-3.2.0/css/theme/solarized-dark.css
Normal file
290
.reveal.js-3.2.0/css/theme/solarized-dark.css
Normal file
|
@ -0,0 +1,290 @@
|
|||
/**
|
||||
* Solarized Light theme for reveal.js.
|
||||
* Author: Achim Staebler
|
||||
*/
|
||||
@import url(../../lib/font/league-gothic/league-gothic.css);
|
||||
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
|
||||
/**
|
||||
* Solarized colors by Ethan Schoonover
|
||||
*/
|
||||
html * {
|
||||
color-profile: sRGB;
|
||||
rendering-intent: auto; }
|
||||
|
||||
/*********************************************
|
||||
* GLOBAL STYLES
|
||||
*********************************************/
|
||||
body {
|
||||
background: #002b36;
|
||||
background-color: #002b36; }
|
||||
|
||||
.reveal {
|
||||
font-family: "Lato", sans-serif;
|
||||
font-size: 36px;
|
||||
font-weight: normal;
|
||||
color: #839496; }
|
||||
|
||||
::selection {
|
||||
color: #fff;
|
||||
background: #d33682;
|
||||
text-shadow: none; }
|
||||
|
||||
.reveal .slides > section,
|
||||
.reveal .slides > section > section {
|
||||
line-height: 1.3;
|
||||
font-weight: inherit; }
|
||||
|
||||
/*********************************************
|
||||
* HEADERS
|
||||
*********************************************/
|
||||
.reveal h1,
|
||||
.reveal h2,
|
||||
.reveal h3,
|
||||
.reveal h4,
|
||||
.reveal h5,
|
||||
.reveal h6 {
|
||||
margin: 0 0 20px 0;
|
||||
color: #93a1a1;
|
||||
font-family: "League Gothic", Impact, sans-serif;
|
||||
font-weight: normal;
|
||||
line-height: 1.2;
|
||||
letter-spacing: normal;
|
||||
text-transform: uppercase;
|
||||
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; }
|
||||
|
||||
/* 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 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; }
|
||||
|
||||
.reveal table {
|
||||
margin: auto;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0; }
|
||||
|
||||
.reveal table th {
|
||||
font-weight: bold; }
|
||||
|
||||
.reveal table th,
|
||||
.reveal table td {
|
||||
text-align: left;
|
||||
padding: 0.2em 0.5em 0.2em 0.5em;
|
||||
border-bottom: 1px solid; }
|
||||
|
||||
.reveal table th[align="center"],
|
||||
.reveal table td[align="center"] {
|
||||
text-align: center; }
|
||||
|
||||
.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: #268bd2;
|
||||
text-decoration: none;
|
||||
-webkit-transition: color .15s ease;
|
||||
-moz-transition: color .15s ease;
|
||||
transition: color .15s ease; }
|
||||
|
||||
.reveal a:hover {
|
||||
color: #78b9e6;
|
||||
text-shadow: none;
|
||||
border: none; }
|
||||
|
||||
.reveal .roll span:after {
|
||||
color: #fff;
|
||||
background: #1a6091; }
|
||||
|
||||
/*********************************************
|
||||
* IMAGES
|
||||
*********************************************/
|
||||
.reveal section img {
|
||||
margin: 15px 0px;
|
||||
background: rgba(255, 255, 255, 0.12);
|
||||
border: 4px solid #839496;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }
|
||||
|
||||
.reveal section img.plain {
|
||||
border: 0;
|
||||
box-shadow: none; }
|
||||
|
||||
.reveal a img {
|
||||
-webkit-transition: all .15s linear;
|
||||
-moz-transition: all .15s linear;
|
||||
transition: all .15s linear; }
|
||||
|
||||
.reveal a:hover img {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
border-color: #268bd2;
|
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
|
||||
|
||||
/*********************************************
|
||||
* NAVIGATION CONTROLS
|
||||
*********************************************/
|
||||
.reveal .controls .navigate-left,
|
||||
.reveal .controls .navigate-left.enabled {
|
||||
border-right-color: #268bd2; }
|
||||
|
||||
.reveal .controls .navigate-right,
|
||||
.reveal .controls .navigate-right.enabled {
|
||||
border-left-color: #268bd2; }
|
||||
|
||||
.reveal .controls .navigate-up,
|
||||
.reveal .controls .navigate-up.enabled {
|
||||
border-bottom-color: #268bd2; }
|
||||
|
||||
.reveal .controls .navigate-down,
|
||||
.reveal .controls .navigate-down.enabled {
|
||||
border-top-color: #268bd2; }
|
||||
|
||||
.reveal .controls .navigate-left.enabled:hover {
|
||||
border-right-color: #78b9e6; }
|
||||
|
||||
.reveal .controls .navigate-right.enabled:hover {
|
||||
border-left-color: #78b9e6; }
|
||||
|
||||
.reveal .controls .navigate-up.enabled:hover {
|
||||
border-bottom-color: #78b9e6; }
|
||||
|
||||
.reveal .controls .navigate-down.enabled:hover {
|
||||
border-top-color: #78b9e6; }
|
||||
|
||||
/*********************************************
|
||||
* PROGRESS BAR
|
||||
*********************************************/
|
||||
.reveal .progress {
|
||||
background: rgba(0, 0, 0, 0.2); }
|
||||
|
||||
.reveal .progress span {
|
||||
background: #268bd2;
|
||||
-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); }
|
|
@ -210,9 +210,9 @@ body {
|
|||
.reveal a {
|
||||
color: #268bd2;
|
||||
text-decoration: none;
|
||||
-webkit-transition: color 0.15s ease;
|
||||
-moz-transition: color 0.15s ease;
|
||||
transition: color 0.15s ease; }
|
||||
-webkit-transition: color .15s ease;
|
||||
-moz-transition: color .15s ease;
|
||||
transition: color .15s ease; }
|
||||
|
||||
.reveal a:hover {
|
||||
color: #78b9e6;
|
||||
|
@ -237,9 +237,9 @@ body {
|
|||
box-shadow: none; }
|
||||
|
||||
.reveal a img {
|
||||
-webkit-transition: all 0.15s linear;
|
||||
-moz-transition: all 0.15s linear;
|
||||
transition: all 0.15s linear; }
|
||||
-webkit-transition: all .15s linear;
|
||||
-moz-transition: all .15s linear;
|
||||
transition: all .15s linear; }
|
||||
|
||||
.reveal a:hover img {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
|
|
63
.reveal.js-3.2.0/css/theme/source/solarized-dark.scss
Normal file
63
.reveal.js-3.2.0/css/theme/source/solarized-dark.scss
Normal file
|
@ -0,0 +1,63 @@
|
|||
/**
|
||||
* Solarized Light theme for reveal.js.
|
||||
* Author: Achim Staebler
|
||||
*/
|
||||
|
||||
|
||||
// Default mixins and settings -----------------
|
||||
@import "../template/mixins";
|
||||
@import "../template/settings";
|
||||
// ---------------------------------------------
|
||||
|
||||
|
||||
|
||||
// Include theme-specific fonts
|
||||
@import url(../../lib/font/league-gothic/league-gothic.css);
|
||||
@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
|
||||
|
||||
|
||||
/**
|
||||
* Solarized colors by Ethan Schoonover
|
||||
*/
|
||||
html * {
|
||||
color-profile: sRGB;
|
||||
rendering-intent: auto;
|
||||
}
|
||||
|
||||
// Solarized colors
|
||||
$base3: #002b36;
|
||||
$base2: #073642;
|
||||
$base1: #586e75;
|
||||
$base0: #657b83;
|
||||
$base00: #839496;
|
||||
$base01: #93a1a1;
|
||||
$base02: #eee8d5;
|
||||
$base03: #fdf6e3;
|
||||
$yellow: #b58900;
|
||||
$orange: #cb4b16;
|
||||
$red: #dc322f;
|
||||
$magenta: #d33682;
|
||||
$violet: #6c71c4;
|
||||
$blue: #268bd2;
|
||||
$cyan: #2aa198;
|
||||
$green: #859900;
|
||||
|
||||
// Override theme settings (see ../template/settings.scss)
|
||||
$mainColor: $base00;
|
||||
$headingColor: $base01;
|
||||
$headingTextShadow: none;
|
||||
$backgroundColor: $base3;
|
||||
$linkColor: $blue;
|
||||
$linkColorHover: lighten( $linkColor, 20% );
|
||||
$selectionBackgroundColor: $magenta;
|
||||
|
||||
// Background generator
|
||||
// @mixin bodyBackground() {
|
||||
// @include radial-gradient( rgba($base3,1), rgba(lighten($base3, 20%),1) );
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// Theme template ------------------------------
|
||||
@import "../template/theme";
|
||||
// ---------------------------------------------
|
|
@ -206,9 +206,9 @@ body {
|
|||
.reveal a {
|
||||
color: #2a76dd;
|
||||
text-decoration: none;
|
||||
-webkit-transition: color 0.15s ease;
|
||||
-moz-transition: color 0.15s ease;
|
||||
transition: color 0.15s ease; }
|
||||
-webkit-transition: color .15s ease;
|
||||
-moz-transition: color .15s ease;
|
||||
transition: color .15s ease; }
|
||||
|
||||
.reveal a:hover {
|
||||
color: #6ca0e8;
|
||||
|
@ -233,9 +233,9 @@ body {
|
|||
box-shadow: none; }
|
||||
|
||||
.reveal a img {
|
||||
-webkit-transition: all 0.15s linear;
|
||||
-moz-transition: all 0.15s linear;
|
||||
transition: all 0.15s linear; }
|
||||
-webkit-transition: all .15s linear;
|
||||
-moz-transition: all .15s linear;
|
||||
transition: all .15s linear; }
|
||||
|
||||
.reveal a:hover img {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
|
|
Binary file not shown.
BIN
README.pdf
BIN
README.pdf
Binary file not shown.
156
druid/beamerthemesolarized-dark.sty
Normal file
156
druid/beamerthemesolarized-dark.sty
Normal file
|
@ -0,0 +1,156 @@
|
|||
% Beamer Color Theme using the Solarized Palette,
|
||||
% http://ethanschoonover.com/solarized.
|
||||
%
|
||||
% Copyright 2012 Jeffrey B. Arnold
|
||||
%
|
||||
% This program is free software: you can redistribute it and/or modify
|
||||
% it under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation, either version 3 of the License, or
|
||||
% (at your option) any later version.
|
||||
%
|
||||
% This program is distributed in the hope that it will be useful,
|
||||
% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\ProvidesPackage{beamercolorthemesolarized}[2013/10/11 1.0.1 Solarized color theme for beamer]
|
||||
\RequirePackage{etoolbox}
|
||||
\RequirePackage{kvoptions}
|
||||
|
||||
%% This is ugly. First time using options and conditionals in LaTeX
|
||||
\SetupKeyvalOptions{
|
||||
family=solarized,
|
||||
prefix=solarized@,
|
||||
}
|
||||
\DeclareBoolOption[false]{dark}
|
||||
\DeclareComplementaryOption{light}{dark}
|
||||
\DeclareStringOption[yellow]{accent}[yellow]
|
||||
\ProcessKeyvalOptions*
|
||||
|
||||
% Solarized palette
|
||||
\definecolor{solarizedBase3}{HTML}{002B36}
|
||||
\definecolor{solarizedBase2}{HTML}{073642}
|
||||
\definecolor{solarizedBase1}{HTML}{586e75}
|
||||
\definecolor{solarizedBase0}{HTML}{657b83}
|
||||
\definecolor{solarizedBase00}{HTML}{839496}
|
||||
\definecolor{solarizedBase01}{HTML}{93a1a1}
|
||||
\definecolor{solarizedBase02}{HTML}{EEE8D5}
|
||||
\definecolor{solarizedBase03}{HTML}{FDF6E3}
|
||||
\definecolor{solarizedYellow}{HTML}{B58900}
|
||||
\definecolor{solarizedOrange}{HTML}{CB4B16}
|
||||
\definecolor{solarizedRed}{HTML}{DC322F}
|
||||
\definecolor{solarizedMagenta}{HTML}{D33682}
|
||||
\definecolor{solarizedViolet}{HTML}{6C71C4}
|
||||
\definecolor{solarizedBlue}{HTML}{268BD2}
|
||||
\definecolor{solarizedCyan}{HTML}{2AA198}
|
||||
\definecolor{solarizedGreen}{HTML}{859900}
|
||||
|
||||
% Set Accent color
|
||||
% Ugly. Should be done with a switch
|
||||
\ifdefstring{\solarized@accent}{yellow}{
|
||||
\colorlet{solarizedAccent}{solarizedYellow}
|
||||
}{}
|
||||
\ifdefstring{\solarized@accent}{orange}{
|
||||
\colorlet{solarizedAccent}{solarizedOrange}
|
||||
}{}
|
||||
\ifdefstring{\solarized@accent}{red}{
|
||||
\colorlet{solarizedAccent}{solarizedRed}
|
||||
}{}
|
||||
\ifdefstring{\solarized@accent}{magenta}{
|
||||
\colorlet{solarizedAccent}{solarizedMagenta}
|
||||
}{}
|
||||
\ifdefstring{\solarized@accent}{violet}{
|
||||
\colorlet{solarizedAccent}{solarizedViolet}
|
||||
}{}
|
||||
\ifdefstring{\solarized@accent}{blue}{
|
||||
\colorlet{solarizedAccent}{solarizedBlue}
|
||||
}{}
|
||||
\ifdefstring{\solarized@accent}{cyan}{
|
||||
\colorlet{solarizedAccent}{solarizedCyan}
|
||||
}{}
|
||||
\ifdefstring{\solarized@accent}{green}{
|
||||
\colorlet{solarizedAccent}{solarizedGreen}
|
||||
}{}
|
||||
|
||||
%% Set base colors for dark or light versions
|
||||
%% Dark
|
||||
% Switch between light and dark themes using the method in the CSS
|
||||
% stylesheet http://ethanschoonover.com/solarized
|
||||
\ifboolexpe{ bool {solarized@dark}}{
|
||||
\colorlet{solarizedRebase03}{solarizedBase03}
|
||||
\colorlet{solarizedRebase02}{solarizedBase02}
|
||||
\colorlet{solarizedRebase01}{solarizedBase01}
|
||||
\colorlet{solarizedRebase00}{solarizedBase00}
|
||||
\colorlet{solarizedRebase0}{solarizedBase0}
|
||||
\colorlet{solarizedRebase1}{solarizedBase1}
|
||||
\colorlet{solarizedRebase2}{solarizedBase2}
|
||||
\colorlet{solarizedRebase3}{solarizedBase3}
|
||||
}{
|
||||
%% Light
|
||||
\colorlet{solarizedRebase03}{solarizedBase3}
|
||||
\colorlet{solarizedRebase02}{solarizedBase2}
|
||||
\colorlet{solarizedRebase01}{solarizedBase1}
|
||||
\colorlet{solarizedRebase00}{solarizedBase0}
|
||||
\colorlet{solarizedRebase0}{solarizedBase00}
|
||||
\colorlet{solarizedRebase1}{solarizedBase01}
|
||||
\colorlet{solarizedRebase2}{solarizedBase02}
|
||||
\colorlet{solarizedRebase3}{solarizedBase03}
|
||||
}
|
||||
|
||||
\mode<presentation>
|
||||
|
||||
\setbeamercolor{normal text}{fg=solarizedRebase0, bg=solarizedRebase03}
|
||||
\setbeamercolor{alerted text}{fg=solarizedAccent}
|
||||
% based css pre element
|
||||
\setbeamercolor{example text}{fg=solarizedRebase1, bg=solarizedRebase02}
|
||||
|
||||
% Header and footer from CSS
|
||||
\setbeamercolor{footline}{bg=solarizedRebase02,fg=solarizedRebase01}
|
||||
\setbeamercolor{headline}{bg=solarizedRebase01,fg=solarizedRebase1}
|
||||
|
||||
% Titles
|
||||
\setbeamercolor*{titlelike}{fg=solarizedAccent}
|
||||
\setbeamercolor*{frametitle}{fg=solarizedAccent}
|
||||
\setbeamercolor*{title}{fg=solarizedAccent}
|
||||
|
||||
% Structure elements use css style for header
|
||||
\setbeamercolor*{structure}{bg=solarizedRebase01, fg=solarizedRebase1}
|
||||
|
||||
% Do not mess with subtle colors in palette. I don't like it.
|
||||
\setbeamercolor*{palette primary}{bg=solarizedRebase01, fg=solarizedRebase1}
|
||||
\setbeamercolor*{palette secondary}{bg=solarizedRebase01, fg=solarizedRebase1}
|
||||
\setbeamercolor*{palette tertiary}{bg=solarizedRebase01, fg=solarizedRebase1}
|
||||
\setbeamercolor*{palette quaternary}{bg=solarizedRebase01, fg=solarizedRebase1}
|
||||
|
||||
% Make Blocks slightly lighter/darker
|
||||
\setbeamercolor{block title}{fg=solarizedAccent, bg=solarizedRebase02}
|
||||
%\setbeamercolor{block title alerted}{}
|
||||
%\setbeamercolor{block title example}{}
|
||||
|
||||
\setbeamercolor{block body}{parent=normal text, bg=solarizedRebase02}
|
||||
% \setbeamercolor{block body alerted}{}
|
||||
% \setbeamercolor{block body example}{}
|
||||
|
||||
% same as footline
|
||||
% Set Sidebar and footline to use the css style for footer
|
||||
\setbeamercolor*{sidebar}{parent=headline}
|
||||
\setbeamercolor*{palette sidebar primary}{fg=solarizedRebase01, fg=solarizedRebase1}
|
||||
\setbeamercolor*{palette sidebar secondary}{fg=solarizedRebase01, fg=solarizedRebase1}
|
||||
\setbeamercolor*{palette sidebar tertiary}{fg=solarizedRebase01, fg=solarizedRebase1}
|
||||
\setbeamercolor*{palette sidebar quaternary}{fg=solarizedRebase01, fg=solarizedRebase1}
|
||||
|
||||
% border-color for headings
|
||||
\setbeamercolor{separation line}{fg=solarizedRebase0}
|
||||
\setbeamercolor{fine separation line}{fg=solarizedRebase0}
|
||||
|
||||
\setbeamercolor*{section in sidebar shaded}{parent=palette sidebar primary}
|
||||
% a.hover.navlink in CSS
|
||||
\setbeamercolor*{section in sidebar}{parent=palette sidebar primary, fg=solarizedRebase02}
|
||||
\setbeamercolor*{subsection in sidebar}{parent=section in sidebar}
|
||||
\setbeamercolor*{subsection in sidebar shaded}{parent=section in sidebar shaded}
|
||||
|
||||
\mode
|
||||
<all>
|
386
druid/druid-pres.html
Normal file
386
druid/druid-pres.html
Normal file
|
@ -0,0 +1,386 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Druid pour l'analyse de données en temps réel</title>
|
||||
<meta name="description" content="Druid pour l'analyse de données en temps réel">
|
||||
<meta name="author" content="Yann Esposito" />
|
||||
<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">
|
||||
<link rel="stylesheet" href="../.reveal.js-3.2.0/css/reveal.css">
|
||||
<link rel="stylesheet" href="../.reveal.js-3.2.0/css/theme/solarized-dark.css" id="theme">
|
||||
<!-- For syntax highlighting -->
|
||||
<link rel="stylesheet" href="../.reveal.js-3.2.0/lib/css/zenburn.css">
|
||||
<!-- If the query includes 'print-pdf', use the PDF print sheet -->
|
||||
<script>
|
||||
document.write( '<link rel="stylesheet" href="../.reveal.js-3.2.0/css/print/' +
|
||||
( window.location.search.match( /print-pdf/gi ) ? 'pdf' : 'paper' ) +
|
||||
'.css" type="text/css" media="print">' );
|
||||
</script>
|
||||
<!--[if lt IE 9]>
|
||||
<script src="../.reveal.js-3.2.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="slides">
|
||||
|
||||
<section>
|
||||
<h1>Druid pour l'analyse de données en temps réel</h1>
|
||||
<h3>Yann Esposito</h3>
|
||||
<p>
|
||||
<h4>7 Avril 2016</h4>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
|
||||
<section id="intro" class="level1">
|
||||
<h1>Intro</h1>
|
||||
<section id="plan" class="level2">
|
||||
<h2>Plan</h2>
|
||||
<ul>
|
||||
<li>Introduction; why?</li>
|
||||
<li>How?</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="experience" class="level2">
|
||||
<h2>Experience</h2>
|
||||
<ul>
|
||||
<li>Real Time Social Media Analytics</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="real-time" class="level2">
|
||||
<h2>Real Time?</h2>
|
||||
<ul>
|
||||
<li>Ingestion Latency: seconds</li>
|
||||
<li>Query Latency: seconds</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="demande" class="level2">
|
||||
<h2>Demande</h2>
|
||||
<ul>
|
||||
<li>Twitter: <code>20k msg/s</code>, <code>1msg = 10ko</code> pendant 24h</li>
|
||||
<li>Facebook public: 1000 à 2000 msg/s en continu</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="en-pratique" class="level2">
|
||||
<h2>En pratique</h2>
|
||||
<ul>
|
||||
<li>Twitter: 400 msg/s en continu, pics à 1500</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="origine-php" class="level2">
|
||||
<h2>Origine (PHP)</h2>
|
||||
<p><img src="img/bad_php.jpg" alt="History" /> </p>
|
||||
</section>
|
||||
<section id="introduction" class="level2">
|
||||
<h2>Introduction</h2>
|
||||
<ul>
|
||||
<li>Traitement de donnée gros volume + faible latence</li>
|
||||
<li>Typiquement <code>pulse</code></li>
|
||||
</ul>
|
||||
<p><a href="http://pulse.vigiglo.be/#/vigiglobe/Earthquake/dashboard" target="_blank"> DEMO </a></p>
|
||||
</section>
|
||||
<section id="pre-considerations" class="level2">
|
||||
<h2>Pre Considerations</h2>
|
||||
<p>Discovered vs Invented</p>
|
||||
</section>
|
||||
<section id="try-to-conceptualize-events" class="level2">
|
||||
<h2>Try to conceptualize (events)</h2>
|
||||
<p>Scalable + Real Time + Fail safe</p>
|
||||
<ul>
|
||||
<li>timeseries</li>
|
||||
<li>alerting system</li>
|
||||
<li>top N</li>
|
||||
<li>etc...</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="in-the-end" class="level2">
|
||||
<h2>In the End</h2>
|
||||
<p>Druid concepts are always emerging naturally</p>
|
||||
</section>
|
||||
</section>
|
||||
<section id="druid" class="level1">
|
||||
<h1>Druid</h1>
|
||||
<section id="who" class="level2">
|
||||
<h2>Who</h2>
|
||||
<p>Metamarkets</p>
|
||||
</section>
|
||||
<section id="goal" class="level2">
|
||||
<h2>Goal</h2>
|
||||
<blockquote>
|
||||
<p>Druid is an open source store designed for real-time exploratory analytics on large data sets.</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>hosted dashboard that would allow users to arbitrarily explore and visualize event streams.</p>
|
||||
</blockquote>
|
||||
</section>
|
||||
<section id="concepts" class="level2">
|
||||
<h2>Concepts</h2>
|
||||
<ul>
|
||||
<li>Column-oriented storage layout</li>
|
||||
<li>distributed, shared-nothing architecture</li>
|
||||
<li>advanced indexing structure</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="features" class="level2">
|
||||
<h2>Features</h2>
|
||||
<ul>
|
||||
<li>fast aggregations</li>
|
||||
<li>flexible filters</li>
|
||||
<li>low latency data ingestion</li>
|
||||
</ul>
|
||||
<p><strong>arbitrary exploration of billion-row tables tables with sub-second latencies</strong></p>
|
||||
</section>
|
||||
<section id="storage" class="level2">
|
||||
<h2>Storage</h2>
|
||||
<ul>
|
||||
<li>Columnar</li>
|
||||
<li>Inverted Index</li>
|
||||
<li>Immutable Segments</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="columnar-storage" class="level2">
|
||||
<h2>Columnar Storage</h2>
|
||||
</section>
|
||||
<section id="index" class="level2">
|
||||
<h2>Index</h2>
|
||||
<ul>
|
||||
<li>Values are dictionary encoded</li>
|
||||
</ul>
|
||||
<p><code>{"USA" 1, "Canada" 2, "Mexico" 3, ...}</code></p>
|
||||
<ul>
|
||||
<li>Bitmap for every dimension value (used by filters)</li>
|
||||
</ul>
|
||||
<p><code>"USA" -> [0 1 0 0 1 1 0 0 0]</code></p>
|
||||
<ul>
|
||||
<li>Column values (used by aggergation queries)</li>
|
||||
</ul>
|
||||
<p><code>[2,1,3,15,1,1,2,8,7]</code></p>
|
||||
</section>
|
||||
<section id="data-segments" class="level2">
|
||||
<h2>Data Segments</h2>
|
||||
<ul>
|
||||
<li>Per time interval</li>
|
||||
<li>skip segments when querying</li>
|
||||
<li>Immutable</li>
|
||||
<li>Cache friendly</li>
|
||||
<li>No locking</li>
|
||||
<li>Versioned</li>
|
||||
<li>No locking</li>
|
||||
<li>Read-write concurrency</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="real-time-ingestion" class="level2">
|
||||
<h2>Real-time ingestion</h2>
|
||||
<ul>
|
||||
<li>Via Real-Time Node and Firehose</li>
|
||||
<li>No redundancy or HA, thus not recommended</li>
|
||||
<li>Via Indexing Service and Tranquility API</li>
|
||||
<li>Core API</li>
|
||||
<li>Integration with Streaming Frameworks</li>
|
||||
<li>HTTP Server</li>
|
||||
<li><strong>Kafka Consumer</strong></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="batch-ingestion" class="level2">
|
||||
<h2>Batch Ingestion</h2>
|
||||
<ul>
|
||||
<li>File based (HDFS, S3, ...)</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="real-time-ingestion-1" class="level2">
|
||||
<h2>Real-time Ingestion</h2>
|
||||
<pre><code>Task 1: [ Interval ][ Window ]
|
||||
Task 2: [ ]
|
||||
--------------------------------------->
|
||||
time</code></pre>
|
||||
<p>Minimum indexing slots =<br />
|
||||
Data Sources × Partitions × Replicas × 2</p>
|
||||
</section>
|
||||
</section>
|
||||
<section id="querying" class="level1">
|
||||
<h1>Querying</h1>
|
||||
<section id="query-types" class="level2">
|
||||
<h2>Query types</h2>
|
||||
<ul>
|
||||
<li>Group by: group by multiple dimensions</li>
|
||||
<li>Top N: like grouping by a single dimension</li>
|
||||
<li>Timeseries: without grouping over dimensions</li>
|
||||
<li>Search: Dimensions lookup</li>
|
||||
<li>Time Boundary: Find available data timeframe</li>
|
||||
<li>Metadata queries</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="tip" class="level2">
|
||||
<h2>Tip</h2>
|
||||
<ul>
|
||||
<li>Prefer <code>topN</code> over <code>groupBy</code></li>
|
||||
<li>Prefer <code>timeseries</code> over <code>topN</code></li>
|
||||
<li>Use limits (and priorities)</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="query-spec" class="level2">
|
||||
<h2>Query Spec</h2>
|
||||
<ul>
|
||||
<li>Data source</li>
|
||||
<li>Dimensions</li>
|
||||
<li>Interval</li>
|
||||
<li>Filters</li>
|
||||
<li>Aggergations</li>
|
||||
<li>Post Aggregations</li>
|
||||
<li>Granularity</li>
|
||||
<li>Context (query configuration)</li>
|
||||
<li>Limit</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="examples" class="level2">
|
||||
<h2>Example(s)</h2>
|
||||
<p>TODO</p>
|
||||
</section>
|
||||
<section id="caching" class="level2">
|
||||
<h2>Caching</h2>
|
||||
<ul>
|
||||
<li>Historical node level</li>
|
||||
<li>By segment</li>
|
||||
<li>Broker Level</li>
|
||||
<li>By segment and query</li>
|
||||
<li><code>groupBy</code> is disabled on purpose!</li>
|
||||
<li>By default - local caching</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="load-rules" class="level2">
|
||||
<h2>Load Rules</h2>
|
||||
<ul>
|
||||
<li>Can be defined</li>
|
||||
<li>What can be set</li>
|
||||
</ul>
|
||||
</section>
|
||||
</section>
|
||||
<section id="components" class="level1">
|
||||
<h1>Components</h1>
|
||||
<section id="druid-components" class="level2">
|
||||
<h2>Druid Components</h2>
|
||||
<ul>
|
||||
<li>Real-time Nodes</li>
|
||||
<li>Historical Nodes</li>
|
||||
<li>Broker Nodes</li>
|
||||
<li>Coordinator</li>
|
||||
<li>For indexing:</li>
|
||||
<li>Overlord</li>
|
||||
<li><p>Middle Manager</p></li>
|
||||
<li>Deep Storage</li>
|
||||
<li><p>Metadata Storage</p></li>
|
||||
<li>Load Balancer</li>
|
||||
<li><p>Cache</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="coordinator" class="level2">
|
||||
<h2>Coordinator</h2>
|
||||
<p>Manage Segments</p>
|
||||
</section>
|
||||
<section id="real-time-nodes" class="level2">
|
||||
<h2>Real-time Nodes</h2>
|
||||
<ul>
|
||||
<li>Pulling data in real-time</li>
|
||||
<li>Indexing it</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="historical-nodes" class="level2">
|
||||
<h2>Historical Nodes</h2>
|
||||
<ul>
|
||||
<li>Keep historical segments</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="overlord" class="level2">
|
||||
<h2>Overlord</h2>
|
||||
<ul>
|
||||
<li>Accepts tasks and distributes them to middle manager</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="middle-manager" class="level2">
|
||||
<h2>Middle Manager</h2>
|
||||
<ul>
|
||||
<li>Execute submitted tasks via Peons</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="broker-nodes" class="level2">
|
||||
<h2>Broker Nodes</h2>
|
||||
<ul>
|
||||
<li>Route query to Real-time and Historical nodes</li>
|
||||
<li>Merge results</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="deep-storage" class="level2">
|
||||
<h2>Deep Storage</h2>
|
||||
<ul>
|
||||
<li>Segments backup (HDFS, S3, ...)</li>
|
||||
</ul>
|
||||
</section>
|
||||
</section>
|
||||
<section id="considerations-tools" class="level1">
|
||||
<h1>Considerations & Tools</h1>
|
||||
<section id="when-not-to-choose-druid" class="level2">
|
||||
<h2>When <em>not</em> to choose Druid</h2>
|
||||
<ul>
|
||||
<li>Data is not time-series</li>
|
||||
<li>Cardinality is <em>very</em> high</li>
|
||||
<li>Number of dimensions is high</li>
|
||||
<li>Setup cost must be avoided</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="graphite-metrics" class="level2">
|
||||
<h2>Graphite (metrics)</h2>
|
||||
<p><img src="img/graphite.png" alt="Graphite" />__</p>
|
||||
<p><a href="http://graphite.wikidot.com">Graphite</a></p>
|
||||
</section>
|
||||
<section id="pivot-exploring-data" class="level2">
|
||||
<h2>Pivot (exploring data)</h2>
|
||||
<p><img src="img/pivot.gif" alt="Pivot" /> </p>
|
||||
<p><a href="https://github.com/implydata/pivot">Pivot</a></p>
|
||||
</section>
|
||||
<section id="caravel-exploring-data" class="level2">
|
||||
<h2>Caravel (exploring data)</h2>
|
||||
<p><img src="img/caravel.png" alt="caravel" /> </p>
|
||||
<p><a href="https://github.com/airbnb/caravel">Caravel</a></p>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<script src="../.reveal.js-3.2.0/lib/js/head.min.js"></script>
|
||||
<script src="../.reveal.js-3.2.0/js/reveal.js"></script>
|
||||
|
||||
<script>
|
||||
// Full list of configuration options available here:
|
||||
// https://github.com/hakimel/reveal.js#configuration
|
||||
Reveal.initialize({
|
||||
controls: true,
|
||||
progress: true,
|
||||
history: true,
|
||||
center: false,
|
||||
|
||||
// available themes are in /css/theme
|
||||
theme: Reveal.getQueryHash().theme || 'solarized-dark',
|
||||
|
||||
// default/cube/page/concave/zoom/linear/fade/none
|
||||
transition: Reveal.getQueryHash().transition || 'linear',
|
||||
|
||||
// Optional libraries used to extend on reveal.js
|
||||
dependencies: [
|
||||
{ src: '..//.reveal.js-3.2.0/lib/js/classList.js', condition: function() { return !document.body.classList; } },
|
||||
{ src: '..//.reveal.js-3.2.0/plugin/markdown/showdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
|
||||
{ src: '..//.reveal.js-3.2.0/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
|
||||
{ src: '..//.reveal.js-3.2.0/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
|
||||
{ src: '..//.reveal.js-3.2.0/plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
|
||||
{ src: '..//.reveal.js-3.2.0/plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }
|
||||
]
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
Binary file not shown.
|
@ -3,7 +3,7 @@ title: Druid pour l'analyse de données en temps réel
|
|||
author: Yann Esposito
|
||||
abstract: Druid expliqué rapidement, pourquoi, comment.
|
||||
slide_level: 2
|
||||
theme: solarized
|
||||
theme: solarized-dark
|
||||
date: 7 Avril 2016
|
||||
---
|
||||
|
||||
|
|
BIN
druid/druid.pdf
BIN
druid/druid.pdf
Binary file not shown.
|
@ -9,7 +9,7 @@
|
|||
<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">
|
||||
<link rel="stylesheet" href="../.reveal.js-3.2.0/css/reveal.css">
|
||||
<link rel="stylesheet" href="../.reveal.js-3.2.0/css/theme/solarized.css" id="theme">
|
||||
<link rel="stylesheet" href="../.reveal.js-3.2.0/css/theme/solarized-dark.css" id="theme">
|
||||
<!-- For syntax highlighting -->
|
||||
<link rel="stylesheet" href="../.reveal.js-3.2.0/lib/css/zenburn.css">
|
||||
<!-- If the query includes 'print-pdf', use the PDF print sheet -->
|
||||
|
@ -364,7 +364,7 @@ Data Sources × Partitions × Replicas × 2</p>
|
|||
center: false,
|
||||
|
||||
// available themes are in /css/theme
|
||||
theme: Reveal.getQueryHash().theme || 'solarized',
|
||||
theme: Reveal.getQueryHash().theme || 'solarized-dark',
|
||||
|
||||
// default/cube/page/concave/zoom/linear/fade/none
|
||||
transition: Reveal.getQueryHash().transition || 'linear',
|
||||
|
|
Loading…
Reference in a new issue