Initial commit
authorCameron Ball <cameron@moodle.com>
Thu, 12 Mar 2020 15:45:38 +0000 (23:45 +0800)
committerCameron Ball <cameron@moodle.com>
Thu, 12 Mar 2020 15:45:38 +0000 (23:45 +0800)
img/tile-nopad-bottom.png [new file with mode: 0644]
img/tile.png [new file with mode: 0644]
img/tile1.png [new file with mode: 0644]
img/wide-eyed-crazy.png [new file with mode: 0644]
index.html [new file with mode: 0644]

diff --git a/img/tile-nopad-bottom.png b/img/tile-nopad-bottom.png
new file mode 100644 (file)
index 0000000..3a87d13
Binary files /dev/null and b/img/tile-nopad-bottom.png differ
diff --git a/img/tile.png b/img/tile.png
new file mode 100644 (file)
index 0000000..7701084
Binary files /dev/null and b/img/tile.png differ
diff --git a/img/tile1.png b/img/tile1.png
new file mode 100644 (file)
index 0000000..813b76e
Binary files /dev/null and b/img/tile1.png differ
diff --git a/img/wide-eyed-crazy.png b/img/wide-eyed-crazy.png
new file mode 100644 (file)
index 0000000..5b13a32
Binary files /dev/null and b/img/wide-eyed-crazy.png differ
diff --git a/index.html b/index.html
new file mode 100644 (file)
index 0000000..fba6737
--- /dev/null
@@ -0,0 +1,195 @@
+<html><head>
+    <meta charset="utf-8">
+    <link rel="stylesheet" href="https://csshake.surge.sh/csshake.min.css">
+    <link href="https://fonts.googleapis.com/css?family=Press+Start+2P&amp;display=swap" rel="stylesheet">
+    <link rel="stylesheet"
+          href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/default.min.css">
+    <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js"></script>
+    <script>hljs.initHighlightingOnLoad();</script>
+    <style>
+     body {
+         margin: 0px;
+         font-family: 'Press Start 2P', cursive;
+         color: white;
+         text-shadow:
+             1px 1px 0 #000;
+         background-color: #f98012;
+         background-image: url("img/tile.png");
+         background-repeat: repeat;
+         background-size: 10%;
+         image-rendering: crisp-edges;
+         background-position-x: -33px;
+         background-blend-mode: multiply;
+     }
+
+     .hljs {
+         font-family: 'Press Start 2P', cursive;
+         text-shadow: 2px 2px 0 #000;
+         color: #bcbcbc;
+         font-size: 30px;
+     }
+
+     .slide-title {
+         font-size: 40px;
+         margin: 20px;
+         text-shadow: 10px 10px 0 #00000069;
+         text-align: center;
+     }
+
+     .slide {
+              display: flex;
+              justify-content: center;
+              align-items: center;
+         flex-wrap: wrap;
+         margin: 40px;
+         box-shadow: 10px 10px 0 #00000069;
+         padding: 20px;
+         height: 80%;
+         background: #6187a8;
+         background-image: url("img/tile-nopad-bottom.png");
+              background-blend-mode: multiply;
+              background-size: 50%;
+              background-repeat: repeat-x;
+              background-position-x: center;
+              background-position-y: center;
+     }
+
+     #slide-1 .slide div {
+         display: flex;
+         width: 40%;
+     }
+
+     img {
+         image-rendering: optimizeSpeed;             /* STOP SMOOTHING, GIVE ME SPEED  */
+         image-rendering: -moz-crisp-edges;          /* Firefox                        */
+         image-rendering: -o-crisp-edges;            /* Opera                          */
+         image-rendering: -webkit-optimize-contrast; /* Chrome (and eventually Safari) */
+         image-rendering: pixelated; /* Chrome */
+         image-rendering: optimize-contrast;         /* CSS3 Proposed                  */
+         -ms-interpolation-mode: nearest-neighbor;   /* IE8+                           */
+     }
+
+     #slide-1 .shake-constant, .crazy, .span {
+         display: inline-block;
+     }
+
+     #slide-1 .shake-opacity {
+         color: #f98012;
+     }
+
+     #slide-1 #rant {
+         padding: 20px;
+         height: 80%;
+     }
+
+     .textbox {
+         box-shadow: 10px 10px 0 #00000069;
+         border: 2px solid black;
+         background-color: #3f6382;
+     }
+
+         div[id^="slide-"] {
+             display: none;
+         }
+    </style>
+</head>
+<body>
+    <div id="slide-1">
+        <div class="slide-title">=<< What's up with that Title? >>=</div>
+        <div class="slide">
+            <div style="justify-content: right;">
+                <img class="shake-constant shake" src="img/wide-eyed-crazy.png" style="width: 70%; margin-right: 10%;">
+            </div>
+            <div style="justify-content: left">
+                <div style="display: flex; align-items: center; width: 70%">
+                    <div id="rant" class="textbox" style="display: block;height: auto; width:100%; margin-left:10%;">
+                        <span class="crazy">It’s functions, </span><span class="shake-constant shake-opacity">pure</span><span class="crazy"> functions! Pure functions and their values, PURE FUNCTIONS FOREVER AND FOREVER AND FOREVER A HUNDRED YEARS </span><span class="shake-constant shake-opacity">monad</span><span class="crazy">... some... things... Me and </span><span class="shake-constant shake-opacity">monads</span><span class="crazy"> runnin' around and...</span><span class="shake-constant shake-opacity">applicative functor</span><span class="crazy"> time... a- all day long forever... All a - a hundred days </span><span class="shake-constant shake-opacity">applicatives</span><span class="crazy"> and </span><span class="shake-constant shake-opacity">functors</span><span class="crazy">! Forever a hundred times.... OVER and over </span><span class="shake-constant shake-opacity">monad transformers</span><span class="crazy">... adventures dot com... W W W dot at </span><span class="shake-constant shake-opacity">lambda calculus</span><span class="crazy"> and </span><span class="shake-constant shake-opacity">category theory</span><span class="crazy"> dot com w..w..w... function composition adventures... Ah- hundred years… Every minute </span><span class="shake-constant shake-opacity">referential… transparency</span><span class="crazy"> dot com.... w w w a hundred times... </span><span class="shake-constant shake-opacity">composition</span><span class="crazy"> dot com...</span>
+                    </div>
+                </div>
+            </div>
+            <div>Fig 1.1 What most people thing a typical functional programming advocate looks like</div>
+        </div>
+    </div>
+    <div id="slide-2">
+        <div class="slide-title">=<< Obligatory Quote >>=</div>
+        <div class="slide">
+        </div>
+    </div>
+    <div id="slide-3">
+        <div class="slide-title">=<< Obligatory Quote >>=</div>
+        <div class="slide">
+            <div style="text-align:center; font-size:40px; text-shadow: 4px 4px #000;" >If you wish to build a ship, do not divide the men into teams and send them to the forest to cut wood. Instead, teach them to long for the vast and endless sea.</div>
+        </div>
+    </div>
+    <div id="slide-4">
+        <div class="slide-title">=<< The Third Slide >>=</div>
+        <div class="slide">
+            <pre><code class="haskell textbox">Left "Hello" >>= \x -> Right "ah shit"</code></pre>
+        </div>
+    </div>
+</body>
+<script>
+ (function() {
+     var div, i, j, span, duration = "";
+     var crazyTexts = [];
+     var opacyTexts = [];
+     div = document.querySelectorAll("#rant > span.crazy");
+     for (j = 0; j < div.length; j++) {
+         span=""
+         for (i = 0; i < div[j].innerText.length; i++) {
+             duration = Math.floor(Math.random() * 5) + 100
+             span += "<span class=\"letter shake-constant shake-little\" style=\"animation-duration: " + duration + "ms\">";
+             span += div[j].innerText[i] == " " ? "&nbsp;" : div[j].innerText[i];
+             span += "</span>";
+         }
+         crazyTexts.push(span);
+     }
+
+     opacities = document.querySelectorAll("#rant > span.shake-opacity");
+     for (k = 0; k < opacities.length; k++) {
+         shrek=Math.random();
+         opacities[k].style.animationDuration = shrek + 's';
+         opacyTexts.push(opacities[k].outerHTML);
+     }
+
+     allText = ""
+     for (l = 0; l< crazyTexts.length; l++) {
+         allText+=crazyTexts[l] + "&nbsp;" + (opacyTexts[l] ? opacyTexts[l] : "") + "&nbsp";
+     }
+
+     document.getElementById('rant').innerHTML = allText;
+
+     var x = 0;
+     var y = 0;
+     var b = document.querySelectorAll('body')[0];
+     setInterval(function(){
+         x+=2;
+         y-=2;
+         b.style.backgroundPosition = x + 'px ' + y + 'px';
+     }, 250);
+
+     var currentSlide = 0;
+     document.onkeydown = checkKey;
+
+     function checkKey(e) {
+
+         e = e || window.event;
+         if (e.keyCode == '37') {
+             if (document.getElementById('slide-' + currentSlide)) {
+                 document.getElementById('slide-' + currentSlide).style.display = 'none';
+             }
+             currentSlide--;
+             document.getElementById('slide-' + currentSlide).style.display = 'block';
+         }
+         else if (e.keyCode == '39') {
+             if (document.getElementById('slide-' + currentSlide)) {
+                 document.getElementById('slide-' + currentSlide).style.display = 'none';
+             }
+             currentSlide++;
+             document.getElementById('slide-' + currentSlide).style.display = 'block';
+         }
+
+     }
+ })();
+</script>
+</html>