From 8e9ef5ba62b8bee028428384ad5666e245eb854c Mon Sep 17 00:00:00 2001 From: Mitja Felicijan Date: Sun, 17 Feb 2019 21:53:36 +0100 Subject: content update --- slides/.jsbeautifyrc | 51 --- slides/.jshintignore | 9 - slides/.jshintrc | 9 - slides/index.html | 46 --- .../cartesian-coordinate-system.svg | 404 --------------------- .../basic-math-in-programming/default.pug | 206 ----------- .../basic-math-in-programming/drawing1.svg | 264 -------------- .../basic-math-in-programming/kmplot.fkt | 37 -- .../basic-math-in-programming/kmplot.svg | 395 -------------------- .../levenshtein-distance.svg | 211 ----------- .../basic-math-in-programming/meta.json | 3 - .../basic-math-in-programming/test.png | Bin 454303 -> 0 bytes slides/vendor/slides.css | 223 ------------ slides/vendor/slides.js | 140 ------- 14 files changed, 1998 deletions(-) delete mode 100644 slides/.jsbeautifyrc delete mode 100644 slides/.jshintignore delete mode 100644 slides/.jshintrc delete mode 100644 slides/index.html delete mode 100644 slides/presentations/basic-math-in-programming/cartesian-coordinate-system.svg delete mode 100644 slides/presentations/basic-math-in-programming/default.pug delete mode 100644 slides/presentations/basic-math-in-programming/drawing1.svg delete mode 100644 slides/presentations/basic-math-in-programming/kmplot.fkt delete mode 100644 slides/presentations/basic-math-in-programming/kmplot.svg delete mode 100644 slides/presentations/basic-math-in-programming/levenshtein-distance.svg delete mode 100644 slides/presentations/basic-math-in-programming/meta.json delete mode 100644 slides/presentations/basic-math-in-programming/test.png delete mode 100644 slides/vendor/slides.css delete mode 100644 slides/vendor/slides.js (limited to 'slides') diff --git a/slides/.jsbeautifyrc b/slides/.jsbeautifyrc deleted file mode 100644 index 5d90dea..0000000 --- a/slides/.jsbeautifyrc +++ /dev/null @@ -1,51 +0,0 @@ -{ - "html": { - "allowed_file_extensions": ["htm", "html", "xhtml", "shtml", "xml", "svg", "dust", "njk"], - "brace_style": "collapse", - "end_with_newline": true, - "indent_char": " ", - "indent_handlebars": true, - "indent_inner_html": true, - "indent_scripts": "keep", - "indent_size": 4, - "indent_with_tabs": true, - "max_preserve_newlines": 10, - "preserve_newlines": true, - "unformatted": ["a", "span", "img", "code", "pre", "sub", "sup", "em", "strong", "b", "i", "u", "strike", "big", "small", "pre", "h1", "h2", "h3", "h4", "h5", "h6", "hr"], - "wrap_line_length": 0 - }, - "css": { - "allowed_file_extensions": ["css", "scss", "sass", "less"], - "end_with_newline": true, - "indent_char": " ", - "indent_size": 4, - "indent_with_tabs": true, - "newline_between_rules": true, - "selector_separator": " ", - "selector_separator_newline": true, - "preserve_newlines": false, - "max_preserve_newlines": 10 - }, - "js": { - "allowed_file_extensions": ["js", "json", "jshintrc", "jsbeautifyrc"], - "brace_style": "collapse", - "break_chained_methods": false, - "e4x": true, - "end_with_newline": true, - "indent_char": " ", - "indent_level": 0, - "indent_size": 4, - "indent_with_tabs": true, - "jslint_happy": false, - "keep_array_indentation": true, - "keep_function_indentation": true, - "max_preserve_newlines": 0, - "preserve_newlines": true, - "space_after_anon_function": false, - "space_before_conditional": true, - "space_in_empty_paren": false, - "space_in_paren": false, - "unescape_strings": false, - "wrap_line_length": 0 - } -} diff --git a/slides/.jshintignore b/slides/.jshintignore deleted file mode 100644 index 4d662aa..0000000 --- a/slides/.jshintignore +++ /dev/null @@ -1,9 +0,0 @@ -node_modules -bower_components -lib/external -vendor -help -steal -funcunit -**/*.min.js -**/production.js diff --git a/slides/.jshintrc b/slides/.jshintrc deleted file mode 100644 index 7c84ea6..0000000 --- a/slides/.jshintrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "strict": false, - "esversion": 6, - "curly": true, - "noempty": true, - "trailing": true, - "white": false, - "evil": true -} diff --git a/slides/index.html b/slides/index.html deleted file mode 100644 index 648ac4b..0000000 --- a/slides/index.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - -
-
-
-

Presentation list

- -
-
- -
- - - - - - - - - - - - - - - - - - - - diff --git a/slides/presentations/basic-math-in-programming/cartesian-coordinate-system.svg b/slides/presentations/basic-math-in-programming/cartesian-coordinate-system.svg deleted file mode 100644 index 8090e31..0000000 --- a/slides/presentations/basic-math-in-programming/cartesian-coordinate-system.svg +++ /dev/null @@ -1,404 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (0,0) - - - - - - - - - - - - - - - - diff --git a/slides/presentations/basic-math-in-programming/default.pug b/slides/presentations/basic-math-in-programming/default.pug deleted file mode 100644 index 7ca262b..0000000 --- a/slides/presentations/basic-math-in-programming/default.pug +++ /dev/null @@ -1,206 +0,0 @@ -section - h1 Why understanding of basic math is important for computer programing - p September 21, 2018, rev2 - a(href="https://twitter.com/mitjafelicijan") @mitjafelicijan - -section - h2 Agenda - ol - li Levenshtein distance - li Shortest path algorithm - li Distance Formula - li - -section.center - q We Cannot Solve Our Problems With The Same Thinking We Used When We Created Them. - footer — Albert Einstein - -section - h2 How we usually find solutions and why this is problematic? - - ul - li We search for code example instead of algorithms. - li We copy and paste and do testing on trial&error principle. - li We don't take enough time to properly understand problem we a re trying to solve. - li Brute force solutions we make are usually not optimized - -section - h2 Levenshtein distance - p The Levenshtein distance is a string metric for measuring difference between two sequences. Informally, the Levenshtein distance between two words is the minimum number of single-character edits (i.e. insertions, deletions or substitutions) required to change one word into the other. - - hr - - div.center - img(src="levenshtein-distance.svg", height="150") - - hr - - div.center - img(src="test.png") - - hr - - pre - code.language-python - | def levenshtein(seq1, seq2): - | oneago = None - | thisrow = range(1, len(seq2) + 1) + [0] - | for x in xrange(len(seq1)): - | twoago, oneago, thisrow = oneago, thisrow, [0] * len(seq2) + [x + 1] - | for y in xrange(len(seq2)): - | delcost = oneago[y] + 1 - | addcost = thisrow[y - 1] + 1 - | subcost = oneago[y - 1] + (seq1[x] != seq2[y]) - | thisrow[y] = min(delcost, addcost, subcost) - | return thisrow[len(seq2) - 1] - - - hr - - h4 Going further - ul - li - a(href="https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance") https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance - li - a(href="https://en.wikipedia.org/wiki/Levenshtein_distance") https://en.wikipedia.org/wiki/Levenshtein_distance - li - a(href="https://rosettacode.org/wiki/Levenshtein_distance") https://rosettacode.org/wiki/Levenshtein_distance - - - - - - - - - - - - -section - h2 Basic linear algebra - - pre - code.language-css - | body { - | background: black; - | } - - pre - code.language-javascript - | $(document).ready(function() { - | $('pre code').each(function(i, block) { - | hljs.highlightBlock(block); - | }); - | }); - - hr - figcaption.right Step 1: Finding nearest point - - div.center - img(src="drawing1.svg") - - hr - figcaption.right Step 1: Finding nearest point - - $$ \large{ \mathbb{R}^2 ∈ \vec{a} \bar{a} } $$ - $$ \large{ e^{i\pi} + 1 = 0 } $$ - $$ \large{ x = {-b \pm \sqrt{b^2-4ac} \over 2a} } $$ - - hr - figcaption.right Step 2: Finding nearest point - - pre - code.language-python - | fruits = ["apple", "banana", "cherry"] - | for x in fruits: - | if x == "banana": - | break - | print(x) - - hr - figcaption.right Finding nearest point - - $$ \large{ \mathbb{R}^2 ∈ \vec{a} \bar{a} } $$ - $$ \large{ e^{i\pi} + 1 = 0 } $$ - $$ \large{ x = {-b \pm \sqrt{b^2-4ac} \over 2a} } $$ - - hr - figcaption.right Finding nearest point - - pre - code.language-c - | #include - | int main () { - | for( ; ; ) { - | printf("This loop will run forever.\n"); - | } - | return 0; - | } - - hr - figcaption.right Finding nearest point - - pre - code.language-python - | fruits = ["apple", "banana", "cherry"] - | for x in fruits: - | if x == "banana": - | break - | print(x) - - hr - figcaption.right Finding nearest point - - pre - code.language-sql - | SELECT `CustomerName`, `City` FROM `Customers`; - - hr - figcaption.right Finding nearest point - - pre - code.language-go - | package main - | import "fmt" - | func main() { - | sum := 0 - | for i := 0; i < 10; i++ { - | sum += i - | } - | fmt.Println(sum) - | } - - hr - figcaption.right Finding nearest point - - pre - code.language-javascript - | $(document).ready(function() { - | $('pre code').each(function(i, block) { - | hljs.highlightBlock(block); - | }); - | }); - - hr - figcaption.right Finding nearest point - - pre - code.language-css - | body { - | background: black; - | } - -section - h3 Grid example - div.grid.col-1-1 - div Lipsum - div Lipsum - - div.grid.col-2-1 - div Lipsum - div Lipsum - - div.grid.col-1-2 - div Lipsum - div Lipsum diff --git a/slides/presentations/basic-math-in-programming/drawing1.svg b/slides/presentations/basic-math-in-programming/drawing1.svg deleted file mode 100644 index 19212c3..0000000 --- a/slides/presentations/basic-math-in-programming/drawing1.svg +++ /dev/null @@ -1,264 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - a - - - - - diff --git a/slides/presentations/basic-math-in-programming/kmplot.fkt b/slides/presentations/basic-math-in-programming/kmplot.fkt deleted file mode 100644 index 85e4ec6..0000000 --- a/slides/presentations/basic-math-in-programming/kmplot.fkt +++ /dev/null @@ -1,37 +0,0 @@ - - - - 1 - 1 - 1 - -0.3319027181688177 - 6.615164520743903 - -1.445161290322586 - 6.5032258064516 - - - 1 - - - 0 - 0 - 1 - 1 - - - f(x) = 0 - - 0 - - - - g(x) = 0 - 0 - - - - Cantarell - Cantarell - Cantarell - - diff --git a/slides/presentations/basic-math-in-programming/kmplot.svg b/slides/presentations/basic-math-in-programming/kmplot.svg deleted file mode 100644 index 877038c..0000000 --- a/slides/presentations/basic-math-in-programming/kmplot.svg +++ /dev/null @@ -1,395 +0,0 @@ - - -Qt SVG Document -Generated with Qt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -X -Y - - - -+0.4 - - - -+0.8 - - - -+1.2 - - - -+1.6 - - - -+2.0 - - - -+2.4 - - - -+2.8 - - - -+3.2 - - - -+3.6 - - - -+4.0 - - - -+4.4 - - - -+4.8 - - - -+5.2 - - - -+5.6 - - - -+6.0 - - - -+6.4 - - - -−1.0 - - - -−0.5 - - - -+0.5 - - - -+1.0 - - - -+1.5 - - - -+2.0 - - - -+2.5 - - - -+3.0 - - - -+3.5 - - - -+4.0 - - - -+4.5 - - - -+5.0 - - - -+5.5 - - - -+6.0 - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/slides/presentations/basic-math-in-programming/levenshtein-distance.svg b/slides/presentations/basic-math-in-programming/levenshtein-distance.svg deleted file mode 100644 index f8546da..0000000 --- a/slides/presentations/basic-math-in-programming/levenshtein-distance.svg +++ /dev/null @@ -1,211 +0,0 @@ - -{\displaystyle \qquad \operatorname {lev} _{a,b}(i,j)={\begin{cases}\max(i,j)&{\text{ if }}\min(i,j)=0,\\\min {\begin{cases}\operatorname {lev} _{a,b}(i-1,j)+1\\\operatorname {lev} _{a,b}(i,j-1)+1\\\operatorname {lev} _{a,b}(i-1,j-1)+1_{(a_{i}\neq b_{j})}\end{cases}}&{\text{ otherwise.}}\end{cases}}} - - - \ No newline at end of file diff --git a/slides/presentations/basic-math-in-programming/meta.json b/slides/presentations/basic-math-in-programming/meta.json deleted file mode 100644 index f34a689..0000000 --- a/slides/presentations/basic-math-in-programming/meta.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "title": "Why understanding of basic math is important for computer programing" -} diff --git a/slides/presentations/basic-math-in-programming/test.png b/slides/presentations/basic-math-in-programming/test.png deleted file mode 100644 index 5b57317..0000000 Binary files a/slides/presentations/basic-math-in-programming/test.png and /dev/null differ diff --git a/slides/vendor/slides.css b/slides/vendor/slides.css deleted file mode 100644 index 36d22da..0000000 --- a/slides/vendor/slides.css +++ /dev/null @@ -1,223 +0,0 @@ -@charset "utf-8"; -@import url("https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900&subset=latin-ext"); - -* { - box-sizing: border-box; - background-color: transparent; - margin: 0; - padding: 0; - border: 0; - outline: none; - text-decoration: none; - position: relative; - box-shadow: none; - -moz-osx-font-smoothing: grayscale !important; - text-rendering: optimizeLegibility !important; - -webkit-font-smoothing: antialiased !important; -} - -body { - font-family: "Roboto", sans-serif; - color: #222; - font-size: 24px; - margin: 0; - padding: 0; - line-height: 270%; - font-weight: 400; - color: #111; -} - -.wrapper { - overflow: auto; -} - -a { - color: crimson; - font-weight: 500; -} - -img { - max-width: 100%; - margin-top: 30px; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -section { - padding: 70px 100px; -} - -nav { - position: fixed; - right: 50px; - bottom: 20px; - font-size: 80%; - font-weight: 500; -} - -figcaption { - color: #888; - font-size: 80%; - margin: 0; - padding: 0; - line-height: 0; - font-weight: 600; -} - -hr { - border-top: 3px solid #eee; - margin: 50px 0 40px 0; -} - -ul, -ol { - margin-left: 30px; -} - -ol { - list-style-type: lower-roman; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 0 0 50px 0; - font-weight: 700; - display: block; - color: #000; -} - -h1 { - font-size: 300%; - margin-bottom: 100px; - line-height: 130%; -} - -h2 { - font-size: 200%; -} - -h3 { - font-size: 160%; - margin-bottom: 20px; -} - -h4 { - font-size: 140%; - margin-bottom: 20px; -} - -h5 { - font-size: 120%; - margin-bottom: 20px; -} - -h6 { - font-size: 100%; - margin-bottom: 20px; -} - -p { - display: block; - margin: 15px auto; - line-height: 160%; - color: inherit; -} - -q { - display: inline-block; - font-size: 200%; - font-weight: 600; - padding: 100px 0 30px 0; -} - -/*grid*/ -.grid { - display: grid; - grid-column-gap: 20px; - grid-row-gap: 20px; - text-align: left; -} - -.grid>* { - border: 0px dotted black; -} - -.col-1-1 { - grid-template-columns: 1fr 1fr; -} - -.col-1-2 { - grid-template-columns: 1fr 2fr; -} - -.col-2-1 { - grid-template-columns: 2fr 1fr; -} - -/* aligments */ -.left { - text-align: left; -} - -.right { - text-align: right; -} - -.center { - text-align: center; - margin-left: auto; - margin-right: auto; -} - -.top { - vertical-align: top; -} - -.middle { - vertical-align: middle; -} - -.bottom { - vertical-align: bottom; -} - -.full-width { - width: 100%; -} - -/* other */ -.hide { - display: none; -} - -.show { - display: block; -} - -/* presentation mode */ -.wrapper:-webkit-full-screen { - width: 100%; - height: 100%; - background: #fff; - padding: 50px; - font-size: 28px; - line-height: 250%; -} - -/* prism line numbers */ -pre[class*=language-] { - display: block; - background: #fff; - padding: 0; - margin-bottom: 20px; - font-family: 'Courier New', Courier, monospace; - font-size: 90%; - font-weight: 500; -} diff --git a/slides/vendor/slides.js b/slides/vendor/slides.js deleted file mode 100644 index c987e51..0000000 --- a/slides/vendor/slides.js +++ /dev/null @@ -1,140 +0,0 @@ -window.addEventListener('load', function(evt) { - - let main = document.querySelector('main'); - let nav = document.querySelector('nav'); - let wrapper = document.querySelector('div.wrapper'); - let hash = window.location.hash.slice(1, window.location.hash.length); - - if (hash.length > 0) { - - fetch(`presentations/${hash}/default.pug`).then(function(response) { - response.text().then(function(template) { - if (response.status == 200) { - main.innerHTML = jade.render(template, {}); - initSlideshow(); - } else { - main.innerHTML = '

Presentation does not exists!

'; - } - }).catch(function(error) { - console.log(error); - }); - }); - - fetch(`presentations/${hash}/meta.json`).then(function(response) { - response.json().then(function(data) { - document.title = data.title; - }).catch(function(error) { - console.log(error); - }); - }); - - } - - function initSlideshow() { - - // mathjax formulas - MathJax.Hub.Config({ - //displayAlign: 'left', - extensions: ['tex2jax.js'], - jax: ['input/TeX', 'output/SVG'], - tex2jax: { - skipTags: ['script', 'noscript', 'style', 'textarea', 'code'], - inlineMath: [ - ['$', '$'], - ["\\(", "\\)"] - ], - displayMath: [ - ['$$', '$$'], - ["\\[", "\\]"] - ], - } - }); - MathJax.Hub.Configured(); - - // syntax highlighting - Prism.highlightAll(); - - // initializes slides - function showSlide(slides, op) { - let tmpIdx = currentIdx + op; - if (tmpIdx >= 0 && tmpIdx < slides.length) { - slides.forEach(function(slide) { - slide.classList.add('hide'); - }); - slides[tmpIdx].classList.remove('hide'); - window.scrollTo(0, 0); - nav.innerHTML = `${tmpIdx+1} / ${slides.length}`; - currentIdx = tmpIdx; - } - } - - // fixes images relative path - document.querySelectorAll('img').forEach(function(image) { - image.src = `presentations/${hash}/${image.getAttribute('src')}`; - }); - - let slides = document.querySelectorAll('section'); - let currentIdx = 0; - showSlide(slides, currentIdx); - - document.addEventListener('keydown', function(evt) { - switch (evt.code) { - case 'ArrowRight': - { - showSlide(slides, 1); - break; - } - case 'ArrowLeft': - { - showSlide(slides, -1); - break; - } - case 'KeyF': - { - if (wrapper.requestFullscreen) { - wrapper.requestFullscreen(); - } else if (wrapper.mozRequestFullScreen) { - wrapper.mozRequestFullScreen(); - } else if (wrapper.webkitRequestFullscreen) { - wrapper.webkitRequestFullscreen(); - } else if (wrapper.msRequestFullscreen) { - wrapper.msRequestFullscreen(); - } - break; - } - } - }, false); - - - //var elem = document.getElementById("myvideo"); - //if (elem.requestFullscreen) { - // elem.requestFullscreen(); - //} - - } - -}, false); - - -// hide mouse after 5seconds -(function() { - var mouseTimer = null, - cursorVisible = true; - - function disappearCursor() { - mouseTimer = null; - document.body.style.cursor = 'none'; - cursorVisible = false; - } - - document.onmousemove = function() { - if (mouseTimer) { - window.clearTimeout(mouseTimer); - } - if (!cursorVisible) { - document.body.style.cursor = 'default'; - cursorVisible = true; - } - mouseTimer = window.setTimeout(disappearCursor, 2000); - }; -})(); -- cgit v1.2.3