<commit_before><!doctype html>
<html lang="en">

	<head>
		<meta charset="utf-8">

		<title>Lunch and Learn - Elixir</title>

		<meta name="description" content="Lunch and Learn at Rapid7 Austin on Elixir">
		<meta name="author" content="<NAME>">

		<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="css/reveal.css">
		<link rel="stylesheet" href="css/theme/black.css" id="theme">

		<!-- Code syntax highlighting -->
		<link rel="stylesheet" href="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 ) ? 'css/print/pdf.css' : 'css/print/paper.css';
			document.getElementsByTagName( 'head' )[0].appendChild( link );
		</script>

		<!--[if lt IE 9]>
		<script src="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>Lunch and Learn</h1>
                    <h2>Elixir</h2>
                    <p><NAME></p>
                    <table>
                        <tbody>
                        <tr>
                            <th>
                                <svg
                                            xmlns="http://www.w3.org/2000/svg"
                                            xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" width="14px" height="10px" viewBox="0 0 14 10" enable-background="new 0 0 14 10" xml:space="preserve">
                                            <g>
                                                <path d="M7,7L5.268,5.484L0.316,9.729C0.496,9.896,0.739,10,1.007,10h11.986c0.267,0,0.509-0.104,0.688-0.271L8.732,5.484L7,7z"></path>
                                                <path d="M13.684,0.271C13.504,0.103,13.262,0,12.993,0H1.007C0.74,0,0.498,0.104,0.318,0.273L7,6L13.684,0.271z"></path>
                                                <polygon points="0,0.878 0,9.186 4.833,5.079  "></polygon>
                                                <polygon points="9.167,5.079 14,9.186 14,0.875  "></polygon>
                                            </g>
                                        </svg>
                            </th>
                            <td><EMAIL></td>
                            <td><EMAIL></td>
                        </tr>
                        <tr>
                            <th>
                                <svg version="1.1" class="github-icon-svg"
                                            xmlns="http://www.w3.org/2000/svg"
                                            xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
                                            <path fill-rule="evenodd" clip-rule="evenodd" fill="#C2C2C2" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761
                c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32
                c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472
                c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037
                C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65
                c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261
                c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082
                c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129
                c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"></path>
                                        </svg>
                            </th>
                            <td>
                                <a href="https://github.com/limhoff-r7" target="_blank">@limhoff-r7</a>
                            </td>
                            <td>
                                <a href="https://github.com/KronicDeth" target="_blank">@KronicDeth</a>
                            </td>
                        </tr>
                        <tr>
                            <th>
                                <svg version="1.1" class="twitter-icon-svg"
                                            xmlns="http://www.w3.org/2000/svg"
                                            xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
                                            <path fill="#C2C2C2" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809
                c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27
                c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767
                c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206
                C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271
                c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469
                c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"></path>
                                        </svg>
                            </th>
                            <td></td>
                            <td>
                                <a href="https://twitter.com/KronicDeth" target="_blank">@KronicDeth</a>
                            </td>
                        </tr>
                        </tbody>
                    </table>
                    <aside class="notes">
                        I am a Senior Software Engineer for Metasploit Applications at Rapid7
                    </aside>
                </section>
                <section>
                    <h1>Outline</h1>
                    <ol>
                        <li><a href="#/functional-languages">Functional Languages</a></li>
                        <li><a href="#/erlang">Erlang</a></li>
                        <li><a href="#/why-elixir-and-not-erlang">Why Elixir and not Erlang?</a></li>
                        <li><a href="#/wow">Wow!</a></li>
                        <li><a href="#/resources">Resources</a></li>
                    </ol>
                </section>
                <section class="stack">
                    <section id="functional-languages">
                        <h1>Functional Languages</h1>
                    </section>
                    <section>
                        <h1>What is a functional language?</h1>
                        <ul>
                            <li>Mathematical functions</li>
                            <li>Avoids changing state</li>
                            <li>Immutable data</li>
                        </ul>
                        <aside class="notes">
                            The output of a mathematical function depends only only on its inputs.  This makes
                            mathematical functions easier to reason about because you can just substitute the output
                            for the function call.  Having immutable data allows data to be safely shared between
                            parallel threads.  Pure functional languages, like Haskell completely avoid changing state
                            by encapsulating state changes in their data, but Erlang and Elixir are not pure like
                            Haskell.
                        </aside>
                    </section>
                    <section>
                        <h1>Advantages of functional languages</h1>
                        <ul>
                            <li>Lack of shared, mutable state</li>
                            <li>Immutable data</li>
                        </ul>
                    </section>
                    <section>
                        <h1>(Perceived) disadvantages</h1>
                        <ul>
                            <li>Cryptic syntax</li>
                            <li>Harder to reason about immutability</li>
                            <li>Recursion + accumulation harder than iteration and mutation</li>
                            <li>It's not how I think</li>
                        </ul>
                    </section>
                </section>
                <section class="stack">
                    <section id="erlang">
                        <h1>Erlang</h1>
                    </section>
                    <section>
                        <h1>Facts</h1>
                        <ul>
                            <li>Developed for telecoms</li>
                            <li>Massively scalable</li>
                            <li>Hot code reloading</li>
                        </ul>
                    </section>
                    <section>
                        <h1>Design Philosophy</h1>
                        <ul>
                            <li>Fault tolerant</li>
                            <li>Failures expected and embraced</li>
                            <li>Concurrency model is simple, but powerful</li>
                        </ul>
                        <aside class="notes">
                            "Let it Crash".  Supervisors and gen_server.
                        </aside>
                    </section>
                    <section>
                        <h1>WhatsApp</h1>
                    </section>
                </section>
                <section class="stack">
                    <section id="why-elixir-and-not-erlang">
                        <h1>Why Elixir and not Erlang?</h1>
                        <ul>
                            <li>Metaprogramming</li>
                            <li>Polymorphism</li>
                            <li>Tooling</li>
                        </ul>
                    </section>
                </section>
                <section class="stack">
                    <section id="wow">
                        <h1>Wow!</h1>
                    </section>
                    <section>
                        <h1>Pipes</h1>
                    </section>
                    <section>
                        <h1>Pattern Matching Guards</h1>
                    </section>
                    <section>
                        <h1>Guards</h1>
                    </section>
                </section>
                <section class="stack">
                    <section>
                        <h1>Examples</h1>
                    </section>
                    <section>
                        <h1>Pattern Matching fizzbuzz</h1>
                    </section>
                    <section>
                        <h1>Process count</h1>
                    </section>
                </section>
                <section class="stack">
                    <section id="resources">
                        <h1>Resources</h1>
                    </section>
                    <section>
                        <h1>Intros</h1>
                        <ul>
                            <li><a href="http://howistart.org/posts/elixir/1">How I Start</a></li>
                            <li><a href="http://learnxinyminutes.com/docs/elixir/">Learn X in Y</a></li>
                        </ul>
                    </section>
                    <section>
                        <h1>Help</h1>
                        <ul>
                            <li><a href="https://webchat.freenode.net/?channels=elixir-lang">#elixir-lang</a></li>
                            <li><a href="https://groups.google.com/forum/#!forum/elixir-lang-talk">elixir-lang-talk</a></li>
                        </ul>
                    </section>
                    <section>
                        <h1>Vidoes</h1>
                        <ul>
                            <li><a href="http://elixirsips.com">elixirsips.com</a></li>
                            <li><a href="http://infoq.com">InfoQ</a></li>
                            <li><a href="https://www.youtube.com/user/ErlangSolutions">Erlang Solutions on Youtube</a></li>
                        </ul>
                    </section>
                    <section>
                        <h1>Books</h1>
                        <ul>
                            <li><a href="https://pragprog.com/book/elixir/programming-elixir">Programming Elixir</a></li>
                            <li><a href="https://pragprog.com/book/cmelixir/metaprogramming-elixir">Metaprogramming Elixir</a></li>
                        </ul>
                    </section>
                    <section>
                        <h1>Websites</h1>
                        <ul>
                            <li><a href="http://elixir-lang.org">elixir-lang.org</a></li>
                            <li><a href="https://github.com/h4cc/awesome-elixir">Awesome Elixir</a></li>
                        </ul>
                    </section>
                </section>
            </div>
		</div>

		<script src="lib/js/head.min.js"></script>
		<script src="js/reveal.js"></script>

		<script>

			// Full list of configuration options available at:
			// https://github.com/hakimel/reveal.js#configuration
			Reveal.initialize({
				controls: true,
				progress: true,
				history: true,
				center: true,

				transition: 'slide', // none/fade/slide/convex/concave/zoom

				// Optional reveal.js plugins
				dependencies: [
					{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
					{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
					{ src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
					{ src: 'plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
					{ src: 'plugin/zoom-js/zoom.js', async: true },
					{ src: 'plugin/notes/notes.js', async: true }
				]
			});

		</script>

	</body>
</html>
<commit_msg>Advantages of functional languages<commit_after><!doctype html>
<html lang="en">

	<head>
		<meta charset="utf-8">

		<title>Lunch and Learn - Elixir</title>

		<meta name="description" content="Lunch and Learn at Rapid7 Austin on Elixir">
		<meta name="author" content="<NAME>">

		<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="css/reveal.css">
		<link rel="stylesheet" href="css/theme/black.css" id="theme">

		<!-- Code syntax highlighting -->
		<link rel="stylesheet" href="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 ) ? 'css/print/pdf.css' : 'css/print/paper.css';
			document.getElementsByTagName( 'head' )[0].appendChild( link );
		</script>

		<!--[if lt IE 9]>
		<script src="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>Lunch and Learn</h1>
                    <h2>Elixir</h2>
                    <p><NAME></p>
                    <table>
                        <tbody>
                        <tr>
                            <th>
                                <svg
                                            xmlns="http://www.w3.org/2000/svg"
                                            xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" width="14px" height="10px" viewBox="0 0 14 10" enable-background="new 0 0 14 10" xml:space="preserve">
                                            <g>
                                                <path d="M7,7L5.268,5.484L0.316,9.729C0.496,9.896,0.739,10,1.007,10h11.986c0.267,0,0.509-0.104,0.688-0.271L8.732,5.484L7,7z"></path>
                                                <path d="M13.684,0.271C13.504,0.103,13.262,0,12.993,0H1.007C0.74,0,0.498,0.104,0.318,0.273L7,6L13.684,0.271z"></path>
                                                <polygon points="0,0.878 0,9.186 4.833,5.079  "></polygon>
                                                <polygon points="9.167,5.079 14,9.186 14,0.875  "></polygon>
                                            </g>
                                        </svg>
                            </th>
                            <td><EMAIL></td>
                            <td><EMAIL></td>
                        </tr>
                        <tr>
                            <th>
                                <svg version="1.1" class="github-icon-svg"
                                            xmlns="http://www.w3.org/2000/svg"
                                            xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
                                            <path fill-rule="evenodd" clip-rule="evenodd" fill="#C2C2C2" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761
                c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32
                c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472
                c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037
                C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65
                c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261
                c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082
                c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129
                c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"></path>
                                        </svg>
                            </th>
                            <td>
                                <a href="https://github.com/limhoff-r7" target="_blank">@limhoff-r7</a>
                            </td>
                            <td>
                                <a href="https://github.com/KronicDeth" target="_blank">@KronicDeth</a>
                            </td>
                        </tr>
                        <tr>
                            <th>
                                <svg version="1.1" class="twitter-icon-svg"
                                            xmlns="http://www.w3.org/2000/svg"
                                            xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
                                            <path fill="#C2C2C2" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809
                c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27
                c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767
                c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206
                C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271
                c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469
                c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"></path>
                                        </svg>
                            </th>
                            <td></td>
                            <td>
                                <a href="https://twitter.com/KronicDeth" target="_blank">@KronicDeth</a>
                            </td>
                        </tr>
                        </tbody>
                    </table>
                    <aside class="notes">
                        I am a Senior Software Engineer for Metasploit Applications at Rapid7
                    </aside>
                </section>
                <section>
                    <h1>Outline</h1>
                    <ol>
                        <li><a href="#/functional-languages">Functional Languages</a></li>
                        <li><a href="#/erlang">Erlang</a></li>
                        <li><a href="#/why-elixir-and-not-erlang">Why Elixir and not Erlang?</a></li>
                        <li><a href="#/wow">Wow!</a></li>
                        <li><a href="#/resources">Resources</a></li>
                    </ol>
                </section>
                <section class="stack">
                    <section id="functional-languages">
                        <h1>Functional Languages</h1>
                    </section>
                    <section>
                        <h1>What is a functional language?</h1>
                        <ul>
                            <li>Mathematical functions</li>
                            <li>Avoids changing state</li>
                            <li>Immutable data</li>
                        </ul>
                        <aside class="notes">
                            The output of a mathematical function depends only only on its inputs.  This makes
                            mathematical functions easier to reason about because you can just substitute the output
                            for the function call. Pure functional languages, like Haskell completely avoid changing
                            state by encapsulating state changes in their data, but Erlang and Elixir are not pure like
                            Haskell.
                        </aside>
                    </section>
                    <section>
                        <h1>Advantages of functional languages</h1>
                        <ul>
                            <li>Lack of shared, mutable state</li>
                            <li>Immutable data</li>
                        </ul>
                        <aside class="notes">
                            Immutable data means you don't have to worry about a function call changing your copy of
                            the arguments you pass to it.  Extending this across parallel threads, it means you don't
                            have to worry about race conditions and other threading bugs.
                        </aside>
                    </section>
                    <section>
                        <h1>(Perceived) disadvantages</h1>
                        <ul>
                            <li>Cryptic syntax</li>
                            <li>Harder to reason about immutability</li>
                            <li>Recursion + accumulation harder than iteration and mutation</li>
                            <li>It's not how I think</li>
                        </ul>
                    </section>
                </section>
                <section class="stack">
                    <section id="erlang">
                        <h1>Erlang</h1>
                    </section>
                    <section>
                        <h1>Facts</h1>
                        <ul>
                            <li>Developed for telecoms</li>
                            <li>Massively scalable</li>
                            <li>Hot code reloading</li>
                        </ul>
                    </section>
                    <section>
                        <h1>Design Philosophy</h1>
                        <ul>
                            <li>Fault tolerant</li>
                            <li>Failures expected and embraced</li>
                            <li>Concurrency model is simple, but powerful</li>
                        </ul>
                        <aside class="notes">
                            "Let it Crash".  Supervisors and gen_server.
                        </aside>
                    </section>
                    <section>
                        <h1>WhatsApp</h1>
                    </section>
                </section>
                <section class="stack">
                    <section id="why-elixir-and-not-erlang">
                        <h1>Why Elixir and not Erlang?</h1>
                        <ul>
                            <li>Metaprogramming</li>
                            <li>Polymorphism</li>
                            <li>Tooling</li>
                        </ul>
                    </section>
                </section>
                <section class="stack">
                    <section id="wow">
                        <h1>Wow!</h1>
                    </section>
                    <section>
                        <h1>Pipes</h1>
                    </section>
                    <section>
                        <h1>Pattern Matching Guards</h1>
                    </section>
                    <section>
                        <h1>Guards</h1>
                    </section>
                </section>
                <section class="stack">
                    <section>
                        <h1>Examples</h1>
                    </section>
                    <section>
                        <h1>Pattern Matching fizzbuzz</h1>
                    </section>
                    <section>
                        <h1>Process count</h1>
                    </section>
                </section>
                <section class="stack">
                    <section id="resources">
                        <h1>Resources</h1>
                    </section>
                    <section>
                        <h1>Intros</h1>
                        <ul>
                            <li><a href="http://howistart.org/posts/elixir/1">How I Start</a></li>
                            <li><a href="http://learnxinyminutes.com/docs/elixir/">Learn X in Y</a></li>
                        </ul>
                    </section>
                    <section>
                        <h1>Help</h1>
                        <ul>
                            <li><a href="https://webchat.freenode.net/?channels=elixir-lang">#elixir-lang</a></li>
                            <li><a href="https://groups.google.com/forum/#!forum/elixir-lang-talk">elixir-lang-talk</a></li>
                        </ul>
                    </section>
                    <section>
                        <h1>Vidoes</h1>
                        <ul>
                            <li><a href="http://elixirsips.com">elixirsips.com</a></li>
                            <li><a href="http://infoq.com">InfoQ</a></li>
                            <li><a href="https://www.youtube.com/user/ErlangSolutions">Erlang Solutions on Youtube</a></li>
                        </ul>
                    </section>
                    <section>
                        <h1>Books</h1>
                        <ul>
                            <li><a href="https://pragprog.com/book/elixir/programming-elixir">Programming Elixir</a></li>
                            <li><a href="https://pragprog.com/book/cmelixir/metaprogramming-elixir">Metaprogramming Elixir</a></li>
                        </ul>
                    </section>
                    <section>
                        <h1>Websites</h1>
                        <ul>
                            <li><a href="http://elixir-lang.org">elixir-lang.org</a></li>
                            <li><a href="https://github.com/h4cc/awesome-elixir">Awesome Elixir</a></li>
                        </ul>
                    </section>
                </section>
            </div>
		</div>

		<script src="lib/js/head.min.js"></script>
		<script src="js/reveal.js"></script>

		<script>

			// Full list of configuration options available at:
			// https://github.com/hakimel/reveal.js#configuration
			Reveal.initialize({
				controls: true,
				progress: true,
				history: true,
				center: true,

				transition: 'slide', // none/fade/slide/convex/concave/zoom

				// Optional reveal.js plugins
				dependencies: [
					{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
					{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
					{ src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
					{ src: 'plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } },
					{ src: 'plugin/zoom-js/zoom.js', async: true },
					{ src: 'plugin/notes/notes.js', async: true }
				]
			});

		</script>

	</body>
</html>

{'fraction_non_alphanumeric': 0.14709685976721823, 'fraction_numerical': 0.09019464800875418, 'mean_word_length': 1.098531765360796, 'pattern_counts': {'":': 0, '<': 679, '<?xml version=': 0, '>': 679, 'https://': 20, 'lorem ipsum': 0, 'www.': 14, 'xml': 18}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 72, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '441116', 'n_tokens_mistral': 10931, 'n_tokens_neox': 9011, 'n_words': 1317}