index_it_V1.html 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Libre-Mesh</title>
  6. <meta name="description" content="Ninux/Libre-Mesh presentation at Nack 2017">
  7. <meta name="author" content="Cristina Carnevali" >
  8. <meta name="apple-mobile-web-app-capable" content="yes" />
  9. <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
  10. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  11. <link rel="stylesheet" href="css/reveal.min.css">
  12. <link rel="stylesheet" href="css/theme/cri.css" id="theme">
  13. <!-- For syntax highlighting -->
  14. <link rel="stylesheet" href="lib/css/zenburn.css">
  15. <!-- If the query includes 'print-pdf', include the PDF print sheet -->
  16. <script>
  17. if( window.location.search.match( /print-pdf/gi ) ) {
  18. var link = document.createElement( 'link' );
  19. link.rel = 'stylesheet';
  20. link.type = 'text/css';
  21. link.href = 'css/print/pdf.css';
  22. document.getElementsByTagName( 'head' )[0].appendChild( link );
  23. }
  24. </script>
  25. <!--style>img{height:40vw !important;min-width:auto !important; width:auto !important;}</style-->
  26. <!--[if lt IE 9]>
  27. <script src="lib/js/html5shiv.js"></script>
  28. <![endif]-->
  29. </head>
  30. <body>
  31. <div class="reveal">
  32. <!-- Any section element inside of this container is displayed as a slide -->
  33. <div class="slides">
  34. <section>
  35. <h1>Ninux</h1>
  36. <h3>Wireless Community Network</h3>
  37. <p>
  38. <small>Ignifugo (<a href="http://wiki.bologna.ninux.org">NinuxBO</a>).</small>
  39. </p>
  40. <p>
  41. <small>Napoli 2017 - Nack</small>
  42. </p>
  43. <p>
  44. </p>
  45. </section>
  46. <section>
  47. <h2>chi sono</h2>
  48. <p>Sono una frontend developer, partecipo alla comunità Hackmeeting e provo a fare il mio meglio in alcuni progetti...</p>
  49. </section>
  50. <section>
  51. <h2>Uno di questi è..</h2>
  52. <p class="fragment">Una organizzazione indipendente di contadini per l'autonomia alimentare dalle GDO</p>
  53. <img src="img/campiaperti.jpg"/>
  54. </section>
  55. <section>
  56. <p>Quindi questa estate è successo che sono andata a vivere in campagna!</p>
  57. <img src="img/zoom_bolognaNinux.png"/>
  58. </section>
  59. <section>
  60. <p>50 km da Bologna!</p>
  61. <img src="img/casaportico.jpg"/>
  62. </section>
  63. <section>
  64. <p>così</p>
  65. <img src="img/castello_da _cabat.jpg"/>
  66. </section>
  67. <section>
  68. <h2>Quindi questa estate è successo che sono andata a vivere in campagna e..</h2>
  69. <p class="fragment">spendo di più perchè faccio pià telefonate</p>
  70. <p class="fragment">internet è molto più lento perchè non sono zone interessanti per gli ISP</p>
  71. <p class="fragment">sei fuori dalla città e quindi le tue comunicazioni diventano super importanti</p>
  72. <p class="fragment">intensifichi le comunicazioni con quelli che vivono (+o-) vicino a te</p>
  73. </section>
  74. <section>
  75. <!-- Nuova diapo --> <section data-background="img/network.jpg" style="background: rgba(255,255,255,0.9);">
  76. <h2><span style="color:black;">Costruire una rete diversa</span></h2>
  77. </section>
  78. <section >
  79. <h2>In un altro modo: </h2><p> costruirci una infrastruttura dal basso</p>
  80. <img style="border:0px" width="700" src="img/ninux.png" alt="ninux">
  81. </section>
  82. <!--section data-markdown>
  83. <script type="text/template">
  84. <h2>Storia di Ninux</h2>
  85. <ol>
  86. <li value="2002">Nino fonda Ninux a Roma: desiderio di sperimentare</li>
  87. <li value="2005-2009">sperimentazione servizio internet per le famiglie e spazi sociali</li>
  88. <li value="2010">La rete parte anche a Pisa e a cascata in [altre città](http://map.ninux.org)</li>
  89. <li value="2013">NinuxRoma [entra davvero](http://www.namex.it/en/who/members) a far parte di internet
  90. <li value="2014">Nasce pure Ninux Verona</li>
  91. </ol>
  92. </script>
  93. </section-->
  94. <section><img src="img/mappa_Italia.png"></section>
  95. <!-- Nuova diapo --> <section>
  96. <h2>Perchè?</h2>
  97. <ul>
  98. <li style="margin: 3px 0;" class="fragment">Performance
  99. <ul style="list-style-type: none;"><li style="font-size: smaller;">una connessione veloce con chi conosci!</li></ul></li>
  100. <li style="margin: 3px 0;" class="fragment">Hacktivism
  101. <ul style="list-style-type: none;"><li style="font-size: smaller; line-height: 1;">Senza censura, network neutrality, servizi decentralizzati e infrastruttura.</li></ul></li>
  102. <li style="margin: 3px 0;" class="fragment">Privacy
  103. <ul style="list-style-type: none;"><li style="font-size: smaller;">gestione indipendente dagli ISP, software open-source... e presto anche l'hardware!</li></ul></li>
  104. <li style="margin: 3px 0;" class="fragment">Resiliente
  105. <ul style="list-style-type: none;"><li style="font-size: smaller;">per avere un network che resiste alle catastrofi</li></ul></li>
  106. <li style="margin: 3px 0;" class="fragment">Contro il digital divide.
  107. <ul style="list-style-type: none;"><li style="font-size: smaller;">porta la connessione dove hai voglia!</li></ul></li>
  108. </ul>
  109. </section>
  110. <section >
  111. <h2>Perchè? (2)</h2>
  112. <ul>
  113. <li style="margin: 3px 0;" class="fragment">Un network modulare e flessibile</li>
  114. <li style="margin: 3px 0;" class="fragment">Per condividere esperienza e conoscenza</li>
  115. <li style="margin: 3px 0;" class="fragment">Meno commerciale, più comunitario</li>
  116. <li style="margin: 3px 0;" class="fragment">DIY
  117. <li style="margin: 3px 0;" class="fragment">Autonomia tecnica</li>
  118. </ul>
  119. </section>
  120. <section>
  121. <h3> Pico Peering Agreement</h3>
  122. <p style="font-size: smaller"> 1. Free Transit: </br>
  123. The owner agrees to provide free transit accross their free network.
  124. The owner agrees not to modify or interfere with data as it passes through their free network.
  125. </br>
  126. 2. Open Communication:
  127. </br>
  128. The owner agrees to publish the information necessary for peering to take place
  129. This information shall be published under a free licence
  130. The owner agrees to be contactable and will provide at least an email adress
  131. </br>
  132. 3. No Warranty:
  133. </br>
  134. There is no guaranteed level of service
  135. The service is provided "as is", with no warranty or liability of whatsoever kind
  136. The service can be scaled back or withdrawn at any time with no notice
  137. </br>
  138. 4. Terms of Use:
  139. </br>
  140. The owner is entitled to formulate an 'acceptable use policy'
  141. This may or may not contain information about additional services provided (apart from basic access)
  142. The owner is free to formulate this policy as long as it does not contradict points 1 to 3 of this agreement (see point 5)
  143. </br> 5. Local Amendments:
  144. </br>(to be filled in ad-hoc by the node owner as this document is implemented)
  145. </p>
  146. </section>
  147. </section>
  148. <section>
  149. <!-- Nuova diapo --> <section>
  150. <h2>Che servizi trovo in Ninux?</h2>
  151. <p class="fragment">Nessuno!</p>
  152. <div class="fragment"><p>Lo scopo della comunità è costruire l'infrastruttura, poi ognun@ decide che cosa condividere, che cosa necessita e cosa vuol trovarci.</p>
  153. </div>
  154. </section>
  155. <!-- Nuova diapo --> <section>
  156. <h2>Che servizi trovo in Ninux?</h2>
  157. <p>Example:</p>
  158. <div class="fragment">
  159. <ul>
  160. <li>Cloud, files sharing, archives, backups;</li>
  161. <li>Videogames servers;</li>
  162. <li>Piattaforme per scambiare cose, verdure o carsharing;</li>
  163. <li>Applicazioni locali di cryptovalue;</li>
  164. <li>Audio and video Streaming;</li>
  165. <li>VoIP calls, email, chat, videoconference software;</li>
  166. <li>Social network e strumenti per il lavoro collaborativo;</li>
  167. <li>Internet connection (IF...);</li>
  168. <li>...quello che puoi pensare e metterlo su!</li>
  169. </ul>
  170. </div>
  171. </section>
  172. <!-- Nuova diapo --> <section>
  173. <h2>Ma.. quindi c'è o no <br/> la connessione ad internet?</h2>
  174. <p>Lo scopo di Ninux <b><u><i>NON è</i></u></b> dare l'accesso ad Internet, ma costruire un network dal basso, un ALTRA INTERNET, davvero decentralizzata per l'hardware, il software e la gestione. Tu puoi trovare una connessione ad Internet se:</p>
  175. <ul><li style="margin: 5px 0;" class="fragment">IF qualcuno condivide l'ADSL,</li>
  176. <li style="margin: 5px 0;" class="fragment">IF ci si organizza per comprare banda all'ingrosso,</li>
  177. <li style="margin: 5px 0;" class="fragment">IF alcune organizzazione diventano un peer provider, ex: Ninux Roma è un Neutral Access Point!</li>
  178. <!--li style="margin: 5px 0;" class="fragment">se usiamo IPv6: ogni partecipante può gestire una sottorete di IPv6 pubblici</li--></ul>
  179. </section>
  180. <!-- Nuova diapo --> <section>
  181. <h2>Ed è legale?</h2>
  182. <p>Sì!</p><p>dal 2012, guarda: <a href="http://ninux.org/LeggiWireless">http://ninux.org/LawsAboutWireless</a></p>
  183. <br /><br />
  184. <h2>Ma fa male?</h2>
  185. <p>Le antenne sono molto ma molto meno potenti di quelle dei telefoni cellulari <br /> e stanno sul tuo tetto invece che in tasca.</p>
  186. </section>
  187. </section>
  188. <section>
  189. <!-- Nuova diapo --> <section>
  190. <h2>Ok, come si fa?</h2>
  191. <div class="fragment"><p>Ci sono gruppi di Ninux che ti possono insegnare le basi...</p>
  192. <img width="70%" src="img/ninuxday.jpg" alt="Formazione"></div>
  193. </section>
  194. <section data-background="img/ninux17v_bassa.jpg" style="background: rgba(255,255,255,0.9);">
  195. <small>promo</small>
  196. </section>
  197. <!-- Nuova diapo --> <section>
  198. <h2>Ok, come si fa?</h2>
  199. <p>... e ti danno una mano anche sul tetto!</p>
  200. <img height="100%" src="img/eigennet-montaggio-exfausto2.jpg" alt="Cooperazione">
  201. </section>
  202. </section>
  203. <section>
  204. <!-- Nuova diapo --> <section>
  205. <h2>Ok, ok, e l'hardware?</h2>
  206. <div class="fragment"><p>Ponti Wireless sulle frequenze libere.
  207. Quinfi congiungiamo case a vista con router da esterni.</p>
  208. <img width="1000" src="img/ap-laptop-community.jpg"></div>
  209. </section>
  210. <section>
  211. <p>Più o meno queste cose:</p>
  212. <div class="fragment"><p>x 2</p></div>
  213. <img height="100%" src="img/things.jpg">
  214. </section>
  215. <!-- Nuova diapo --> <section>
  216. <p>1.A)Vedi il posto:</p>
  217. <img src="img/castello_samoggia_visto_da_cabat.jpg" alt="">
  218. </section>
  219. <section>
  220. <p>1.A)Vedi il posto: zoom</p>
  221. <img src="img/zoom_castello_samoggia.jpg" alt="Router wireless da esterni">
  222. </section><section>
  223. <p>1.B)Vedi il posto:</p>
  224. <img src="img/cabat_vista_da_castello_samoggia.jpg" alt="Router wireless da esterni">
  225. </section><section>
  226. <p>1.B)Vedi il posto: zoom</p>
  227. <img src="img/zoom_cabat.jpg" alt="Router wireless da esterni">
  228. </section>
  229. <section>
  230. <p>2.A)Controlla che sia possibile andare sul tetto A</p>
  231. <img src="img/sottotetto_cabat.jpg" alt="">
  232. </section>
  233. <section>
  234. <p>2.B)Controlla che sia possibile andare sul tetto B</p>
  235. <img width="50%" src="img/sottotetto_castello.jpg" alt="">
  236. </section>
  237. <!-- Nuova diapo --> <section>
  238. <p>2)Guarda sulla mappa per sapere la zona di Fresnel</p>
  239. <div class="fragment"><p>9m</p></div>
  240. <img src="img/Antennine1vs.jpg" alt="Router wireless da interni">
  241. </section>
  242. <section>
  243. <p>3)Test!</p>
  244. <img src="img/primaprovacabat.jpg" alt="Router wireless da esterni">
  245. </section>
  246. <section>
  247. <p>3.A)Antenna A </p>
  248. <div class="fragment">
  249. <img width="50%" src="img/cabat_1antenna.jpg" alt="Router wireless da interni"></div>
  250. </section>
  251. <section>
  252. <p>3.A)Antenna B </p>
  253. <div class="fragment">
  254. <img width="50%" src="img/castello_1antenna.jpg" alt="Router wireless da interni"></div>
  255. </section>
  256. <section>
  257. <p>4.A)Imposta la rete locale A</p>
  258. <img src="img/cabat_casa.jpg" alt="Router wireless da interni">
  259. </section><section>
  260. <p>4.B)Imposta la rete locale B</p>
  261. <img src="img/castello_sotto.jpg" alt="Router wireless da interni">
  262. </section>
  263. <section>
  264. <h2>5)Vai nuovamente sul tetto!</h2>
  265. <img width="50%" src="img/cabat_2antenna2.jpg" alt="Router wireless da interni">
  266. </section>
  267. <section>
  268. <p>... e non scordarti degli amici</p>
  269. <img src="img/friend.jpg" alt="Router wireless da interni">
  270. </section>
  271. </section>
  272. <section>
  273. <!-- Nuova diapo --> <section>
  274. <h2>E il software?</h2>
  275. <p style="margin: 20px 0;" class="fragment">I routers sono a tutti gli effetti dei computer,<br /> e la maggior parte hanno sistemi operativi proprietari</p>
  276. <div class="fragment"><p style="margin: 20px 0;">Quindi ci installiamo una specifica Distro GNU/Linux!</p>
  277. <img style="border:0px" src="img/openwrt-logo.png" alt="OpenWrt logo"></div>
  278. <p class="fragment">It's easy</p>
  279. </section>
  280. <section>
  281. <h2>Che cosa fa il firmware?</h2>
  282. <p>Principalmente gestisce il routing dinamico,<br /> importante in un network mesh.</p>
  283. <img width="85%" src="img/MeshAnimation.gif" alt="Animazione rete mesh routing dinamico"/>
  284. </section>
  285. <section>
  286. <h2>Che software fanno routing?</h2>
  287. <div class="fragment"><p>Ciascuna isola Ninux sceglie come maneggiare il routing interno.</p>
  288. <p>Il routing tra isole (VPN o connessione diretta) era gestito come fa Internet (BGP) e poi con BMX.</p>
  289. <img width="60%" src="img/bgp-small.jpg" alt="Routing tra isole"></div>
  290. </section>
  291. <section>
  292. <h2>e le configurationi?</h2>
  293. <p style="margin: 20px 0;" class="fragment">Non servono: le isole Ninux hanno sviluppato un firmware pre configurato (OpenWrt/LEDE derivato)!</p>
  294. <div class="fragment"><p style="margin: 20px 0;">Al momento il più usato è Libre-Mesh, nato tra <br />Ninux (Italia), Guifi (Catalogna) e Altermesh (Argentina).</p>
  295. <img width="50%" style="border:0px" src="img/libremesh-logo.png" alt="Libre-Mesh logo"></div>
  296. <p style="margin: 20px 0;" class="fragment">Così puoi costruirti la tua rete mesh solo impostando il nome!</p>
  297. </section>
  298. </section>
  299. <!--section>
  300. <h1>Libre-Mesh</h1>
  301. <h3>Mesh networking made simple and modular.</h3>
  302. <p>
  303. <small>ignifugo</small>
  304. </p>
  305. <p>
  306. <small>H.A.C.K. 2017 - Budapest</small>
  307. </p>
  308. </section-->
  309. <section>
  310. <section>
  311. <h2>Un tempo c'erano molti firmwares...</h2>
  312. <ul>
  313. <li>NinuxRoma &#8680; Sburratone</li>
  314. <li>NinuxRoma &#8680; Scooreggione</li>
  315. <li>eigenNet &#8680; eigenNet</li>
  316. <li>Freifunk &#8680; various</li>
  317. <li>AWMN &#8680; OpenMesh, Merdotik and various</li>
  318. <li>GUIFI &#8680; AirMerdOS, Merdotik, qmp</li>
  319. <li>Altermundi &#8680; Altermesh</li>
  320. <li>Buenosaires Libre &#8680; APRouter, Byzantinum, Obelysk</li>
  321. </ul>
  322. <p><br/>
  323. <h2 class="fragment">...e pochi sviluppatori</h2>
  324. </p>
  325. </section>
  326. <section>
  327. <h2>Così se ne è fatto un altro...</h2>
  328. <h2 class="fragment">.. in una via collaborativa!</h2>
  329. <table class="fragment"><tr><td width="60%">
  330. eigenNet + GUIFI + Altermundi + NinuxVerona + NinuxBO ...
  331. </td><td style="text-align:center;vertical-align:middle">
  332. &#8680; Libre-Mesh
  333. </td></tr></table>
  334. </section>
  335. <section>
  336. <h2>Com'è possibile?</h2>
  337. <p>Ogni comunità ha differenti necessità...</p>
  338. <p class="fragment">Allora facciamolo modulare!</p>
  339. </section>
  340. </section>
  341. <section>
  342. <section>
  343. <h2>Modular Architecture</h2>
  344. <img src="img/lime-modular.png">
  345. </section>
  346. </section>
  347. <section>
  348. <!--section>
  349. <h2><a href="http://libremesh.org/" >Today's Network Architecture</a></h2>
  350. </section-->
  351. <section>
  352. <h2>Che cosa usa Libre-Mesh?</h2>
  353. <p>Libre-Mesh usa:
  354. <ul><li>Batman-adv (layer 2) a livello locale, tutti i client appaiono come un singolo switch, in un unico dominio di broadcast.</li></ul></p>
  355. <img width="60%" src="img/batman-adv-switch.jpg" alt="Switch virtuale">
  356. </section>
  357. <!-- Nuova diapo --> <section>
  358. <h2>Che cosa usa Libre-Mesh?</h2>
  359. <ul><li>BMX6 (layer 3, supporta IPv4 e IPv6) per unire i gruppi di nodi.</li></ul></p>
  360. <img width="50%" src="img/batman-adv-bmx6.jpg" alt="Batman-adv BMX6">
  361. <p class="fragment">Questi due protocolli scalano bene.</p>
  362. </section>
  363. <!--section>
  364. <h2>IPv6</h2>
  365. <p>Libre-Mesh aims to bring IPv6 native support everywhere.</p>
  366. <p class="fragment">But what if IPv6 is not available in my town?</p>
  367. <p class="fragment">Libre-Mesh is not just a firmware it offers a mesh IPv6 tunnel broker too: librenet6 <p/>
  368. <div class="fragment">
  369. <p>Why is it better then tunnel broker X?</p>
  370. <ul>
  371. <li>Is from the community</li>
  372. <li>It is mesh</li>
  373. </ul>
  374. </div>
  375. </section-->
  376. </section>
  377. <section>
  378. <h2>Come averlo?</h2>
  379. <h2>http://www.libremesh.org/</h2>
  380. <p>
  381. <b><a href="http://www.libremesh.org/">Dal sito web di LibreMesh </a> in 2 modi:</b> </p>
  382. <ul><li>Codice sorgente da compilare</li>
  383. <li>Pronto con le tue configurazioni!</li></ul>
  384. </section>
  385. <section>
  386. <h2>Chef web tool</h2>
  387. <p>Puoi chiedere al server "Cucina" di compilarti tutti i firmware per la tua rete.
  388. </p>
  389. </section>
  390. <section>
  391. <h2>Flashalo nelle antenne</h2>
  392. <p>E' facile e lo puoi fare in modo grafico.
  393. </p>
  394. </section>
  395. <section>
  396. <h2>Oltre a funzionare :) <br/>
  397. Libre mesh ti da una interfaccia html per monitorare la tua antenna</h2>
  398. <p>oppure vai di ssh</p>
  399. </section>
  400. <section>
  401. <!-- Nuova diapo --> <section>
  402. <h2>Bel progetto.. ma è possibile?</h2>
  403. <p>In Italia abbiamo 300 nodi attivi, ma migliaia di nodi potenziali</p>
  404. <img width="70%" src="img/potenziali.png" alt="Mapserver Bologna">
  405. </section>
  406. <!-- Nuova diapo --> <section>
  407. <h2>Freifunk a Berlino</h2>
  408. <p>con più di 300 nodi</p>
  409. <img width="80%" src="img/freifunk.png" alt="Mapserver Bologna">
  410. </section>
  411. <!-- Nuova diapo --> <section>
  412. <h2>AWMN ad Atene</h2>
  413. <p>con migliai di nodi!</p>
  414. <img width="80%" src="img/awmn.png" alt="Mapserver Bologna">
  415. </section>
  416. <!-- Nuova diapo --> <section>
  417. <h2>GUIFI in Catalogna</h2>
  418. <p>con più di 30'000 nodi</p>
  419. <img width="80%" src="img/guifi.png" alt="Mapserver Bologna">
  420. </section>
  421. <section><h2>E vicino a te?</h2>
  422. <!-- img src="img/wlan_s.png" -->
  423. </section>
  424. </section>
  425. <section id="questions" class="slide level2 future" style="top: 350px; display: none;" aria-hidden="true" hidden="">
  426. <h1>Domande?</h1>
  427. <p><small></small></p><small>
  428. <p>Email address:</p>
  429. <p><strong>ignifugo@insicuri.net</strong></p>
  430. <p>Slides URL:</p>
  431. <p><strong>https://git.lattuga.net/</strong></p>
  432. <p>Website URL:</p>
  433. <p><strong>https://digitigrafo.it/</strong></p>
  434. <p>OpenPGP fingerprint:</p>
  435. <p><code>F93B DB56 B5E5 9798 C890 6588 180E BFCA 5FFB B6E3</code></p>
  436. </small><p><small></small></p>
  437. </section>
  438. <section>
  439. <p class="fragment"><b>grazie!</b></p>
  440. </section>
  441. <section>
  442. <h2>Credits</h2>
  443. <ul>
  444. <li>Ilario NINUX Verona</li>
  445. <li>G10h4ck NINUX Pisa - EigenLab</li>
  446. <li>xtheGamerx NINUX Bologna - HacklabBO</li>
  447. </ul>
  448. </section>
  449. </div>
  450. </div>
  451. <script src="lib/js/head.min.js"></script>
  452. <script src="js/reveal.min.js"></script>
  453. <script>
  454. // Full list of configuration options available here:
  455. // https://github.com/hakimel/reveal.js#configuration
  456. Reveal.initialize({
  457. controls: true,
  458. progress: true,
  459. history: true,
  460. center: true,
  461. theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
  462. transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/zoom/linear/fade/none
  463. // Parallax scrolling
  464. // parallaxBackgroundImage: 'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg',
  465. // parallaxBackgroundSize: '2100px 900px',
  466. // Optional libraries used to extend on reveal.js
  467. dependencies: [
  468. { src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
  469. { src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
  470. { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
  471. { src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
  472. { src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
  473. { src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }
  474. ]
  475. });
  476. </script>
  477. </body>
  478. </html>