<commit_before><!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>reveal.js - The HTML Presentation Framework</title>
    <meta name="description" content="A framework for easily creating beautiful presentations using HTML">
    <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">

    <link rel="stylesheet" href="css/reveal.min.css">
    <link rel="stylesheet" href="css/theme/solarized.css" id="theme">
    <link rel="stylesheet" href="lib/css/zenburn.css">

    <!-- If the query includes 'print-pdf', include the PDF print sheet -->
    <script>
      if( window.location.search.match( /print-pdf/gi ) ) {
        var link = document.createElement( 'link' );
        link.rel = 'stylesheet';
        link.type = 'text/css';
        link.href = 'css/print/pdf.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">
      <div class="slides">
        <section>
          <h1>Asset Performance and Optimization</h1>
          <p>
            <small>
              <NAME> /
              <a href="http://twitter.com/ChrisKeathley">@ChrisKeathley</a>
            </small>
            <br>
            <small>
              <NAME> /
              <a href="https://twitter.com/brettwise">@BrettWise</a>
            </small>
          </p>
        </section>

        <section>
          <h2>What we were listening to: </h2>
          <aside class="notes">
            Music is srsbsns
          </aside>
        </section>

        <section>
          <h2>What are we gunna talk about today</h2>
          <ul>
            <li>Beginner to Advanced Stuff</li>
            <li>A super advanced Category We're Calling "Crazy People Stuff"</li>
            <li>Measuring client side performance</li>
            <li>Basics Like How Browsers handle requests and connections</li>
            <li>Image Optimization</li>
            <li>Optimizing Frameworks</li>
          </ul>
        </section>
        <section>
          <section>
          </section>
        </section>
        <section>
      </div>
    </div>

    <script src="lib/js/head.min.js"></script>
    <script src="js/reveal.min.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: true,

        theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
        transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/zoom/linear/fade/none

        // Parallax scrolling
        // parallaxBackgroundImage: 'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg',
        // parallaxBackgroundSize: '2100px 900px',

        // Optional libraries used to extend on reveal.js
        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, callback: function() { hljs.initHighlightingOnLoad(); } },
          { src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
          { src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }
        ]
      });

    </script>

  </body>
</html>
<commit_msg>Add all of my slides<commit_after><!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>reveal.js - The HTML Presentation Framework</title>
    <meta name="description" content="A framework for easily creating beautiful presentations using HTML">
    <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">

    <link rel="stylesheet" href="css/reveal.min.css">
    <link rel="stylesheet" href="css/theme/solarized.css" id="theme">
    <link rel="stylesheet" href="lib/css/zenburn.css">

    <!-- If the query includes 'print-pdf', include the PDF print sheet -->
    <script>
      if( window.location.search.match( /print-pdf/gi ) ) {
        var link = document.createElement( 'link' );
        link.rel = 'stylesheet';
        link.type = 'text/css';
        link.href = 'css/print/pdf.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">
      <div class="slides">
        <section>
          <h1>Asset Performance and Optimization</h1>
          <p>
            <small>
              <NAME> /
              <a href="http://twitter.com/ChrisKeathley">@ChrisKeathley</a>
            </small>
            <br>
            <small>
              <NAME> /
              <a href="https://twitter.com/brettwise">@BrettWise</a>
            </small>
          </p>
        </section>

        <section>
          <h2>What we were listening to: </h2>
          <aside class="notes">
            Music is srsbsns
          </aside>
        </section>

        <section>
          <h2>What are we gunna talk about today</h2>
          <ul>
            <li>Beginner to Advanced Stuff</li>
            <li>A super advanced Category We're Calling "Crazy People Stuff"</li>
            <li>Measuring client side performance</li>
            <li>Basics Like How Browsers handle requests and connections</li>
            <li>Image Optimization</li>
            <li>Optimizing Frameworks</li>
          </ul>
        </section>
        <section>
          <h2>Disclaimer</h2>
          <p>
            Don't check your brain at the door
          </p>
          <aside>
            All of this is based on experience and research.  But your situation
            is always going to be different then ours so make sure that you
            test things and make decisions based on data.
          </aside>
        </section>
        <section>
          <section>
            <h2>So why do any of this?</h2>
          </section>
          <section>
            <h2>Impacts on mobile users</h2>
            <p>
              Users wait ~6 seconds before they bounce
            </p>
          </section>
          <section>
            <h2>Impacts on Desktop</h2>
            <p>
              Users wait ~3 seconds before they bounce
            </p>
          </section>
        </section>
        <section>
          <section>
            <h2>Measure everything</h2>
            <ul>
              <li>YSlow</li>
              <li>PageSpeed</li>
              <li>Boomerang</li>
            </ul>
            <aside>
              lotsatools.jpg
            </aside>
          </section>
          <section>
            <h2>Determine your target browsers</h2>
            <aside>
              You have to know what you're dealing with in order to make
              optimizations
            </aside>
          </section>
        </section>
        <section>
          <section>
            <h2>Lets get started</h2>
          </section>
          <section>
            <h2>Enable Gzip</h2>
            <aside>
              Who gzips?
              It's really easy and is free (if you pre-gzip).
              Doesn't increase clock cycles.
              Saves you money if you're going through a CDN or otherwise paying
              for transfer costs.
            </aside>
          </section>
          <section>
            <h2>Set Cache headers for all of your assets</h2>
            <aside>
              Cache everything for at least a year.  Make sure you have cache
              headers in order to bust cachers later.
            </aside>
          </section>
          <section>
            <section>
              <h2>Time to level up</h2>
            </section>
            <section>
              <h2>Serve assets through a CDN</h2>
              <aside>
                How many people are currently using a CDN.
                At least turn on cloudflare.
              </aside>
            </section>
            <section>
              <h2>Avoid DNS lookups</h2>
              <aside>
                DNS lookups for CSS are expensive.  Serve everything from a
                single domain if you can.  There are exceptions to this rule,
                for instance forcing downloads in parallel.  However, by and
                large you should optimize away DNS lookups.
              </aside>
            </section>
            <section>
              <h2>Use smart caching strats</h2>
              <aside>
                It's typically good to have a vendor manifest that can be cached
                independently from the "application" code.  You probably don't/
                shouldn't change your vendor files that much.  This will keep your
                users from having to download all of your vendor assets every
                time you make a change to your application code.
              </aside>
            </section>
            <section>
              <section>
                <h2>Advanced topics</h2>
              </section>
              <section>
                <h2>Chunk files into 10k groups</h2>
                <aside>

                </aside>
              </section>
              <section>
                <h2>Inline sub ~400 files or styles</h2>
                <aside>
                </aside>
              </section>
            </section>
          </section>
        </section>
      </div>
    </div>

    <script src="lib/js/head.min.js"></script>
    <script src="js/reveal.min.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: true,

        theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
        transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/zoom/linear/fade/none

        // Parallax scrolling
        // parallaxBackgroundImage: 'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg',
        // parallaxBackgroundSize: '2100px 900px',

        // Optional libraries used to extend on reveal.js
        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, callback: function() { hljs.initHighlightingOnLoad(); } },
          { src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
          { src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }
        ]
      });

    </script>

  </body>
</html>

{'fraction_non_alphanumeric': 0.13159652638610556, 'fraction_numerical': 0.00709752839011356, 'mean_word_length': 1.7750231696014829, 'pattern_counts': {'":': 0, '<': 270, '<?xml version=': 0, '>': 270, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1713095', 'n_tokens_mistral': 3530, 'n_tokens_neox': 3378, 'n_words': 880}