├── .gitattributes
├── .github
└── workflows
│ └── deploy.yml
├── .gitignore
├── .vscode
└── snippets.code-snippets
├── README.md
└── slides
├── site
└── 2023-fall-ckc
│ ├── assets
│ ├── custom.css
│ └── heti_worker.js
│ ├── css
│ └── highlight
│ │ └── github.css
│ ├── dist
│ ├── reset.css
│ ├── reveal.css
│ ├── reveal.esm.js
│ ├── reveal.esm.js.map
│ ├── reveal.js
│ ├── reveal.js.map
│ └── theme
│ │ ├── beige.css
│ │ ├── black-contrast.css
│ │ ├── black.css
│ │ ├── blood.css
│ │ ├── dracula.css
│ │ ├── fonts
│ │ ├── league-gothic
│ │ │ ├── LICENSE
│ │ │ ├── league-gothic.css
│ │ │ ├── league-gothic.eot
│ │ │ ├── league-gothic.ttf
│ │ │ └── league-gothic.woff
│ │ └── source-sans-pro
│ │ │ ├── LICENSE
│ │ │ ├── source-sans-pro-italic.eot
│ │ │ ├── source-sans-pro-italic.ttf
│ │ │ ├── source-sans-pro-italic.woff
│ │ │ ├── source-sans-pro-regular.eot
│ │ │ ├── source-sans-pro-regular.ttf
│ │ │ ├── source-sans-pro-regular.woff
│ │ │ ├── source-sans-pro-semibold.eot
│ │ │ ├── source-sans-pro-semibold.ttf
│ │ │ ├── source-sans-pro-semibold.woff
│ │ │ ├── source-sans-pro-semibolditalic.eot
│ │ │ ├── source-sans-pro-semibolditalic.ttf
│ │ │ ├── source-sans-pro-semibolditalic.woff
│ │ │ └── source-sans-pro.css
│ │ ├── league.css
│ │ ├── moon.css
│ │ ├── night.css
│ │ ├── serif.css
│ │ ├── simple.css
│ │ ├── sky.css
│ │ ├── solarized.css
│ │ ├── white-contrast.css
│ │ ├── white.css
│ │ └── white_contrast_compact_verbatim_headers.css
│ ├── favicon.ico
│ ├── index.html
│ ├── lec0
│ ├── assets
│ │ ├── custom.css
│ │ └── heti_worker.js
│ ├── css
│ │ └── highlight
│ │ │ └── github.css
│ ├── dist
│ │ ├── reset.css
│ │ ├── reveal.css
│ │ ├── reveal.esm.js
│ │ ├── reveal.esm.js.map
│ │ ├── reveal.js
│ │ ├── reveal.js.map
│ │ └── theme
│ │ │ ├── beige.css
│ │ │ ├── black-contrast.css
│ │ │ ├── black.css
│ │ │ ├── blood.css
│ │ │ ├── dracula.css
│ │ │ ├── fonts
│ │ │ ├── league-gothic
│ │ │ │ ├── LICENSE
│ │ │ │ ├── league-gothic.css
│ │ │ │ ├── league-gothic.eot
│ │ │ │ ├── league-gothic.ttf
│ │ │ │ └── league-gothic.woff
│ │ │ └── source-sans-pro
│ │ │ │ ├── LICENSE
│ │ │ │ ├── source-sans-pro-italic.eot
│ │ │ │ ├── source-sans-pro-italic.ttf
│ │ │ │ ├── source-sans-pro-italic.woff
│ │ │ │ ├── source-sans-pro-regular.eot
│ │ │ │ ├── source-sans-pro-regular.ttf
│ │ │ │ ├── source-sans-pro-regular.woff
│ │ │ │ ├── source-sans-pro-semibold.eot
│ │ │ │ ├── source-sans-pro-semibold.ttf
│ │ │ │ ├── source-sans-pro-semibold.woff
│ │ │ │ ├── source-sans-pro-semibolditalic.eot
│ │ │ │ ├── source-sans-pro-semibolditalic.ttf
│ │ │ │ ├── source-sans-pro-semibolditalic.woff
│ │ │ │ └── source-sans-pro.css
│ │ │ ├── league.css
│ │ │ ├── moon.css
│ │ │ ├── night.css
│ │ │ ├── serif.css
│ │ │ ├── simple.css
│ │ │ ├── sky.css
│ │ │ ├── solarized.css
│ │ │ ├── white-contrast.css
│ │ │ ├── white.css
│ │ │ └── white_contrast_compact_verbatim_headers.css
│ ├── favicon.ico
│ ├── index.html
│ ├── lec0
│ │ ├── background.png
│ │ ├── cover.png
│ │ ├── docker.png
│ │ ├── ending.png
│ │ ├── git.gif
│ │ ├── github.png
│ │ ├── jyy.png
│ │ ├── latex-1.png
│ │ ├── latex.png
│ │ ├── makefile.png
│ │ ├── network.png
│ │ ├── reveal-md.png
│ │ ├── t1.png
│ │ ├── typesetting.png
│ │ ├── vim-3.png
│ │ └── vim-cheetsheet.png
│ ├── logo.png
│ └── plugin
│ │ ├── highlight
│ │ ├── highlight.esm.js
│ │ ├── highlight.js
│ │ ├── monokai.css
│ │ ├── plugin.js
│ │ └── zenburn.css
│ │ ├── markdown
│ │ ├── markdown.esm.js
│ │ ├── markdown.js
│ │ └── plugin.js
│ │ ├── math
│ │ ├── katex.js
│ │ ├── math.esm.js
│ │ ├── math.js
│ │ ├── mathjax2.js
│ │ ├── mathjax3.js
│ │ └── plugin.js
│ │ ├── notes
│ │ ├── notes.esm.js
│ │ ├── notes.js
│ │ ├── plugin.js
│ │ └── speaker-view.html
│ │ ├── search
│ │ ├── plugin.js
│ │ ├── search.esm.js
│ │ └── search.js
│ │ └── zoom
│ │ ├── plugin.js
│ │ ├── zoom.esm.js
│ │ └── zoom.js
│ ├── lec1
│ ├── assets
│ │ ├── custom.css
│ │ └── heti_worker.js
│ ├── css
│ │ └── highlight
│ │ │ └── github.css
│ ├── dist
│ │ ├── reset.css
│ │ ├── reveal.css
│ │ ├── reveal.esm.js
│ │ ├── reveal.esm.js.map
│ │ ├── reveal.js
│ │ ├── reveal.js.map
│ │ └── theme
│ │ │ ├── beige.css
│ │ │ ├── black-contrast.css
│ │ │ ├── black.css
│ │ │ ├── blood.css
│ │ │ ├── dracula.css
│ │ │ ├── fonts
│ │ │ ├── league-gothic
│ │ │ │ ├── LICENSE
│ │ │ │ ├── league-gothic.css
│ │ │ │ ├── league-gothic.eot
│ │ │ │ ├── league-gothic.ttf
│ │ │ │ └── league-gothic.woff
│ │ │ └── source-sans-pro
│ │ │ │ ├── LICENSE
│ │ │ │ ├── source-sans-pro-italic.eot
│ │ │ │ ├── source-sans-pro-italic.ttf
│ │ │ │ ├── source-sans-pro-italic.woff
│ │ │ │ ├── source-sans-pro-regular.eot
│ │ │ │ ├── source-sans-pro-regular.ttf
│ │ │ │ ├── source-sans-pro-regular.woff
│ │ │ │ ├── source-sans-pro-semibold.eot
│ │ │ │ ├── source-sans-pro-semibold.ttf
│ │ │ │ ├── source-sans-pro-semibold.woff
│ │ │ │ ├── source-sans-pro-semibolditalic.eot
│ │ │ │ ├── source-sans-pro-semibolditalic.ttf
│ │ │ │ ├── source-sans-pro-semibolditalic.woff
│ │ │ │ └── source-sans-pro.css
│ │ │ ├── league.css
│ │ │ ├── moon.css
│ │ │ ├── night.css
│ │ │ ├── serif.css
│ │ │ ├── simple.css
│ │ │ ├── sky.css
│ │ │ ├── solarized.css
│ │ │ ├── white-contrast.css
│ │ │ ├── white.css
│ │ │ └── white_contrast_compact_verbatim_headers.css
│ ├── favicon.ico
│ ├── index.html
│ ├── lec0
│ │ └── makefile.png
│ ├── lec1
│ │ ├── VT100-terminal.png
│ │ ├── apple-dos.png
│ │ ├── apple-lisa.jpg
│ │ ├── background.png
│ │ ├── cover.png
│ │ ├── ending.png
│ │ ├── img1.png
│ │ ├── linus-torvald-first-linux-email.png
│ │ ├── modes.png
│ │ ├── vi-vim-tutorial-1.gif
│ │ ├── vi-vim-tutorial-2.gif
│ │ ├── vim-cheat-sheet.gif
│ │ └── vimcheatsheet.png
│ ├── logo.png
│ └── plugin
│ │ ├── highlight
│ │ ├── highlight.esm.js
│ │ ├── highlight.js
│ │ ├── monokai.css
│ │ ├── plugin.js
│ │ └── zenburn.css
│ │ ├── markdown
│ │ ├── markdown.esm.js
│ │ ├── markdown.js
│ │ └── plugin.js
│ │ ├── math
│ │ ├── katex.js
│ │ ├── math.esm.js
│ │ ├── math.js
│ │ ├── mathjax2.js
│ │ ├── mathjax3.js
│ │ └── plugin.js
│ │ ├── notes
│ │ ├── notes.esm.js
│ │ ├── notes.js
│ │ ├── plugin.js
│ │ └── speaker-view.html
│ │ ├── search
│ │ ├── plugin.js
│ │ ├── search.esm.js
│ │ └── search.js
│ │ └── zoom
│ │ ├── plugin.js
│ │ ├── zoom.esm.js
│ │ └── zoom.js
│ ├── lec2
│ ├── assets
│ │ ├── custom.css
│ │ └── heti_worker.js
│ ├── css
│ │ └── highlight
│ │ │ └── github.css
│ ├── dist
│ │ ├── reset.css
│ │ ├── reveal.css
│ │ ├── reveal.esm.js
│ │ ├── reveal.esm.js.map
│ │ ├── reveal.js
│ │ ├── reveal.js.map
│ │ └── theme
│ │ │ ├── beige.css
│ │ │ ├── black-contrast.css
│ │ │ ├── black.css
│ │ │ ├── blood.css
│ │ │ ├── dracula.css
│ │ │ ├── fonts
│ │ │ ├── league-gothic
│ │ │ │ ├── LICENSE
│ │ │ │ ├── league-gothic.css
│ │ │ │ ├── league-gothic.eot
│ │ │ │ ├── league-gothic.ttf
│ │ │ │ └── league-gothic.woff
│ │ │ └── source-sans-pro
│ │ │ │ ├── LICENSE
│ │ │ │ ├── source-sans-pro-italic.eot
│ │ │ │ ├── source-sans-pro-italic.ttf
│ │ │ │ ├── source-sans-pro-italic.woff
│ │ │ │ ├── source-sans-pro-regular.eot
│ │ │ │ ├── source-sans-pro-regular.ttf
│ │ │ │ ├── source-sans-pro-regular.woff
│ │ │ │ ├── source-sans-pro-semibold.eot
│ │ │ │ ├── source-sans-pro-semibold.ttf
│ │ │ │ ├── source-sans-pro-semibold.woff
│ │ │ │ ├── source-sans-pro-semibolditalic.eot
│ │ │ │ ├── source-sans-pro-semibolditalic.ttf
│ │ │ │ ├── source-sans-pro-semibolditalic.woff
│ │ │ │ └── source-sans-pro.css
│ │ │ ├── league.css
│ │ │ ├── moon.css
│ │ │ ├── night.css
│ │ │ ├── serif.css
│ │ │ ├── simple.css
│ │ │ ├── sky.css
│ │ │ ├── solarized.css
│ │ │ ├── white-contrast.css
│ │ │ ├── white.css
│ │ │ └── white_contrast_compact_verbatim_headers.css
│ ├── favicon.ico
│ ├── index.html
│ ├── lec2
│ │ ├── background.png
│ │ ├── cover.png
│ │ ├── ending.png
│ │ ├── git-changelog.png
│ │ ├── git-detached.png
│ │ ├── git-history.png
│ │ ├── git-merge1.png
│ │ ├── git-merge2.png
│ │ ├── git-objects.png
│ │ ├── git-rebase.png
│ │ ├── git-relativeref.png
│ │ ├── git-remote.png
│ │ ├── gitbook.jpg
│ │ ├── github-email.png
│ │ ├── github-new.png
│ │ ├── github-pages.png
│ │ ├── github-repo.png
│ │ ├── github-sign.png
│ │ ├── licenses.png
│ │ ├── model-add.png
│ │ ├── model-branch.png
│ │ ├── model-commit.png
│ │ ├── model-remote.png
│ │ ├── model.png
│ │ └── workflow.png
│ ├── logo.png
│ └── plugin
│ │ ├── highlight
│ │ ├── highlight.esm.js
│ │ ├── highlight.js
│ │ ├── monokai.css
│ │ ├── plugin.js
│ │ └── zenburn.css
│ │ ├── markdown
│ │ ├── markdown.esm.js
│ │ ├── markdown.js
│ │ └── plugin.js
│ │ ├── math
│ │ ├── katex.js
│ │ ├── math.esm.js
│ │ ├── math.js
│ │ ├── mathjax2.js
│ │ ├── mathjax3.js
│ │ └── plugin.js
│ │ ├── notes
│ │ ├── notes.esm.js
│ │ ├── notes.js
│ │ ├── plugin.js
│ │ └── speaker-view.html
│ │ ├── search
│ │ ├── plugin.js
│ │ ├── search.esm.js
│ │ └── search.js
│ │ └── zoom
│ │ ├── plugin.js
│ │ ├── zoom.esm.js
│ │ └── zoom.js
│ ├── lec3
│ ├── assets
│ │ ├── custom.css
│ │ └── heti_worker.js
│ ├── css
│ │ └── highlight
│ │ │ └── github.css
│ ├── dist
│ │ ├── reset.css
│ │ ├── reveal.css
│ │ ├── reveal.esm.js
│ │ ├── reveal.esm.js.map
│ │ ├── reveal.js
│ │ ├── reveal.js.map
│ │ └── theme
│ │ │ ├── beige.css
│ │ │ ├── black-contrast.css
│ │ │ ├── black.css
│ │ │ ├── blood.css
│ │ │ ├── dracula.css
│ │ │ ├── fonts
│ │ │ ├── league-gothic
│ │ │ │ ├── LICENSE
│ │ │ │ ├── league-gothic.css
│ │ │ │ ├── league-gothic.eot
│ │ │ │ ├── league-gothic.ttf
│ │ │ │ └── league-gothic.woff
│ │ │ └── source-sans-pro
│ │ │ │ ├── LICENSE
│ │ │ │ ├── source-sans-pro-italic.eot
│ │ │ │ ├── source-sans-pro-italic.ttf
│ │ │ │ ├── source-sans-pro-italic.woff
│ │ │ │ ├── source-sans-pro-regular.eot
│ │ │ │ ├── source-sans-pro-regular.ttf
│ │ │ │ ├── source-sans-pro-regular.woff
│ │ │ │ ├── source-sans-pro-semibold.eot
│ │ │ │ ├── source-sans-pro-semibold.ttf
│ │ │ │ ├── source-sans-pro-semibold.woff
│ │ │ │ ├── source-sans-pro-semibolditalic.eot
│ │ │ │ ├── source-sans-pro-semibolditalic.ttf
│ │ │ │ ├── source-sans-pro-semibolditalic.woff
│ │ │ │ └── source-sans-pro.css
│ │ │ ├── league.css
│ │ │ ├── moon.css
│ │ │ ├── night.css
│ │ │ ├── serif.css
│ │ │ ├── simple.css
│ │ │ ├── sky.css
│ │ │ ├── solarized.css
│ │ │ ├── white-contrast.css
│ │ │ ├── white.css
│ │ │ └── white_contrast_compact_verbatim_headers.css
│ ├── favicon.ico
│ ├── index.html
│ ├── lec3
│ │ ├── background.png
│ │ ├── cover.png
│ │ ├── ending.png
│ │ ├── essential.png
│ │ ├── footnote.png
│ │ ├── math.png
│ │ ├── mermaid.png
│ │ └── tasklist.png
│ ├── logo.png
│ └── plugin
│ │ ├── highlight
│ │ ├── highlight.esm.js
│ │ ├── highlight.js
│ │ ├── monokai.css
│ │ ├── plugin.js
│ │ └── zenburn.css
│ │ ├── markdown
│ │ ├── markdown.esm.js
│ │ ├── markdown.js
│ │ └── plugin.js
│ │ ├── math
│ │ ├── katex.js
│ │ ├── math.esm.js
│ │ ├── math.js
│ │ ├── mathjax2.js
│ │ ├── mathjax3.js
│ │ └── plugin.js
│ │ ├── notes
│ │ ├── notes.esm.js
│ │ ├── notes.js
│ │ ├── plugin.js
│ │ └── speaker-view.html
│ │ ├── search
│ │ ├── plugin.js
│ │ ├── search.esm.js
│ │ └── search.js
│ │ └── zoom
│ │ ├── plugin.js
│ │ ├── zoom.esm.js
│ │ └── zoom.js
│ ├── lec4
│ └── lec4.pdf
│ ├── lec5
│ ├── assets
│ │ ├── custom.css
│ │ └── heti_worker.js
│ ├── css
│ │ └── highlight
│ │ │ └── github.css
│ ├── dist
│ │ ├── reset.css
│ │ ├── reveal.css
│ │ ├── reveal.esm.js
│ │ ├── reveal.esm.js.map
│ │ ├── reveal.js
│ │ ├── reveal.js.map
│ │ └── theme
│ │ │ ├── beige.css
│ │ │ ├── black-contrast.css
│ │ │ ├── black.css
│ │ │ ├── blood.css
│ │ │ ├── dracula.css
│ │ │ ├── fonts
│ │ │ ├── league-gothic
│ │ │ │ ├── LICENSE
│ │ │ │ ├── league-gothic.css
│ │ │ │ ├── league-gothic.eot
│ │ │ │ ├── league-gothic.ttf
│ │ │ │ └── league-gothic.woff
│ │ │ └── source-sans-pro
│ │ │ │ ├── LICENSE
│ │ │ │ ├── source-sans-pro-italic.eot
│ │ │ │ ├── source-sans-pro-italic.ttf
│ │ │ │ ├── source-sans-pro-italic.woff
│ │ │ │ ├── source-sans-pro-regular.eot
│ │ │ │ ├── source-sans-pro-regular.ttf
│ │ │ │ ├── source-sans-pro-regular.woff
│ │ │ │ ├── source-sans-pro-semibold.eot
│ │ │ │ ├── source-sans-pro-semibold.ttf
│ │ │ │ ├── source-sans-pro-semibold.woff
│ │ │ │ ├── source-sans-pro-semibolditalic.eot
│ │ │ │ ├── source-sans-pro-semibolditalic.ttf
│ │ │ │ ├── source-sans-pro-semibolditalic.woff
│ │ │ │ └── source-sans-pro.css
│ │ │ ├── league.css
│ │ │ ├── moon.css
│ │ │ ├── night.css
│ │ │ ├── serif.css
│ │ │ ├── simple.css
│ │ │ ├── sky.css
│ │ │ ├── solarized.css
│ │ │ ├── white-contrast.css
│ │ │ ├── white.css
│ │ │ └── white_contrast_compact_verbatim_headers.css
│ ├── favicon.ico
│ ├── index.html
│ ├── lec5
│ │ ├── background.png
│ │ ├── cover.png
│ │ └── ending.png
│ └── plugin
│ │ ├── highlight
│ │ ├── highlight.esm.js
│ │ ├── highlight.js
│ │ ├── monokai.css
│ │ ├── plugin.js
│ │ └── zenburn.css
│ │ ├── markdown
│ │ ├── markdown.esm.js
│ │ ├── markdown.js
│ │ └── plugin.js
│ │ ├── math
│ │ ├── katex.js
│ │ ├── math.esm.js
│ │ ├── math.js
│ │ ├── mathjax2.js
│ │ ├── mathjax3.js
│ │ └── plugin.js
│ │ ├── notes
│ │ ├── notes.esm.js
│ │ ├── notes.js
│ │ ├── plugin.js
│ │ └── speaker-view.html
│ │ ├── search
│ │ ├── plugin.js
│ │ ├── search.esm.js
│ │ └── search.js
│ │ └── zoom
│ │ ├── plugin.js
│ │ ├── zoom.esm.js
│ │ └── zoom.js
│ ├── lec6
│ ├── assets
│ │ ├── custom.css
│ │ └── heti_worker.js
│ ├── css
│ │ └── highlight
│ │ │ └── github.css
│ ├── dist
│ │ ├── reset.css
│ │ ├── reveal.css
│ │ ├── reveal.esm.js
│ │ ├── reveal.esm.js.map
│ │ ├── reveal.js
│ │ ├── reveal.js.map
│ │ └── theme
│ │ │ ├── beige.css
│ │ │ ├── black-contrast.css
│ │ │ ├── black.css
│ │ │ ├── blood.css
│ │ │ ├── dracula.css
│ │ │ ├── fonts
│ │ │ ├── league-gothic
│ │ │ │ ├── LICENSE
│ │ │ │ ├── league-gothic.css
│ │ │ │ ├── league-gothic.eot
│ │ │ │ ├── league-gothic.ttf
│ │ │ │ └── league-gothic.woff
│ │ │ └── source-sans-pro
│ │ │ │ ├── LICENSE
│ │ │ │ ├── source-sans-pro-italic.eot
│ │ │ │ ├── source-sans-pro-italic.ttf
│ │ │ │ ├── source-sans-pro-italic.woff
│ │ │ │ ├── source-sans-pro-regular.eot
│ │ │ │ ├── source-sans-pro-regular.ttf
│ │ │ │ ├── source-sans-pro-regular.woff
│ │ │ │ ├── source-sans-pro-semibold.eot
│ │ │ │ ├── source-sans-pro-semibold.ttf
│ │ │ │ ├── source-sans-pro-semibold.woff
│ │ │ │ ├── source-sans-pro-semibolditalic.eot
│ │ │ │ ├── source-sans-pro-semibolditalic.ttf
│ │ │ │ ├── source-sans-pro-semibolditalic.woff
│ │ │ │ └── source-sans-pro.css
│ │ │ ├── league.css
│ │ │ ├── moon.css
│ │ │ ├── night.css
│ │ │ ├── serif.css
│ │ │ ├── simple.css
│ │ │ ├── sky.css
│ │ │ ├── solarized.css
│ │ │ ├── white-contrast.css
│ │ │ ├── white.css
│ │ │ └── white_contrast_compact_verbatim_headers.css
│ ├── favicon.ico
│ ├── index.html
│ ├── lec6
│ │ ├── Arpanet_logical_map,_march_1977.png
│ │ ├── URI_syntax_diagram.svg.avif
│ │ ├── WebAssembly_logo.svg
│ │ ├── background.png
│ │ ├── cover.png
│ │ ├── ending.png
│ │ ├── ipv4-octet.avif
│ │ ├── ipv4-octet.excalidraw
│ │ ├── localhost-meme.avif
│ │ ├── protocol-stack.svg.avif
│ │ ├── tcp-teapot.py
│ │ ├── tcp-udp-meme.avif
│ │ ├── udp-teapot.py
│ │ └── zju-cert.avif
│ └── plugin
│ │ ├── highlight
│ │ ├── highlight.esm.js
│ │ ├── highlight.js
│ │ ├── monokai.css
│ │ ├── plugin.js
│ │ └── zenburn.css
│ │ ├── markdown
│ │ ├── markdown.esm.js
│ │ ├── markdown.js
│ │ └── plugin.js
│ │ ├── math
│ │ ├── katex.js
│ │ ├── math.esm.js
│ │ ├── math.js
│ │ ├── mathjax2.js
│ │ ├── mathjax3.js
│ │ └── plugin.js
│ │ ├── notes
│ │ ├── notes.esm.js
│ │ ├── notes.js
│ │ ├── plugin.js
│ │ └── speaker-view.html
│ │ ├── search
│ │ ├── plugin.js
│ │ ├── search.esm.js
│ │ └── search.js
│ │ └── zoom
│ │ ├── plugin.js
│ │ ├── zoom.esm.js
│ │ └── zoom.js
│ └── plugin
│ ├── highlight
│ ├── highlight.esm.js
│ ├── highlight.js
│ ├── monokai.css
│ ├── plugin.js
│ └── zenburn.css
│ ├── markdown
│ ├── markdown.esm.js
│ ├── markdown.js
│ └── plugin.js
│ ├── math
│ ├── katex.js
│ ├── math.esm.js
│ ├── math.js
│ ├── mathjax2.js
│ ├── mathjax3.js
│ └── plugin.js
│ ├── notes
│ ├── notes.esm.js
│ ├── notes.js
│ ├── plugin.js
│ └── speaker-view.html
│ ├── search
│ ├── plugin.js
│ ├── search.esm.js
│ └── search.js
│ └── zoom
│ ├── plugin.js
│ ├── zoom.esm.js
│ └── zoom.js
└── src
├── Makefile
├── all.css
├── custom.css
├── favicon.ico
├── heti_worker.js
├── home.md
├── lec0.md
├── lec0
├── background.png
├── cover.png
├── docker.png
├── ending.png
├── git.gif
├── github.png
├── jyy.png
├── latex.png
├── makefile.png
├── network.png
├── reveal-md.png
├── t1.png
├── typesetting.png
├── vim-3.png
└── vim-cheetsheet.png
├── lec1.md
├── lec1
├── VT100-terminal.png
├── apple-dos.png
├── apple-lisa.jpg
├── background.png
├── cover.png
├── ending.png
├── img1.png
├── linus-torvald-first-linux-email.png
├── modes.png
├── vi-vim-tutorial-1.gif
├── vi-vim-tutorial-2.gif
├── vim-cheat-sheet.gif
└── vimcheatsheet.png
├── lec2.md
├── lec2
├── background.png
├── cover.png
├── ending.png
├── git-changelog.png
├── git-detached.png
├── git-history.png
├── git-merge1.png
├── git-merge2.png
├── git-objects.png
├── git-rebase.png
├── git-relativeref.png
├── git-remote.png
├── gitbook.jpg
├── github-email.png
├── github-new.png
├── github-pages.png
├── github-repo.png
├── github-sign.png
├── licenses.png
├── model-add.png
├── model-branch.png
├── model-commit.png
├── model-remote.png
├── model.png
└── workflow.png
├── lec3.md
├── lec3
├── background.png
├── cover.png
├── ending.png
├── essential.png
├── footnote.png
├── math.png
├── mermaid.png
└── tasklist.png
├── lec4.md
├── lec4.tex
├── lec4
├── background.png
├── ckc.png
├── cover.png
├── emoji-right.pdf
├── emoji-wrong.pdf
├── ending.png
├── lalu.pdf
├── titlepage.pdf
└── titlepage.tex
├── lec5.md
├── lec5
├── background.png
├── cover.png
└── ending.png
├── lec6.md
├── lec6
├── Arpanet_logical_map,_march_1977.png
├── URI_syntax_diagram.svg.avif
├── WebAssembly_Logo.svg
├── background.png
├── cover.png
├── ending.png
├── ipv4-octet.avif
├── ipv4-octet.excalidraw
├── localhost-meme.avif
├── protocol-stack.svg.avif
├── tcp-teapot.py
├── tcp-udp-meme.avif
├── udp-teapot.py
└── zju-cert.avif
├── logo.png
├── menu.css
├── menu.js
└── template.html
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.md linguist-detectable=true
2 | *.html linguist-detectable=false
3 | *.js linguist-detectable=false
4 | *.css linguist-detectable=false
5 | site/* linguist-vendored
6 | slides/site/* linguist-vendored
--------------------------------------------------------------------------------
/.github/workflows/deploy.yml:
--------------------------------------------------------------------------------
1 | name: Deploy to slides repo
2 |
3 | on: push
4 |
5 | jobs:
6 | deploy:
7 | if: ${{ contains(github.event.head_commit.message, '[deploy]') }}
8 | runs-on: ubuntu-latest
9 | name: copy site folder to slides repo
10 |
11 | steps:
12 | - name: Checkout
13 | uses: actions/checkout@master
14 |
15 | - name: Push update file to slides repo
16 | uses: dmnemec/copy_file_to_another_repo_action@3fe42250d47e0764da9de9939b151b09a26e5857
17 | env:
18 | API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }}
19 | with:
20 | source_file: 'slides/site/.'
21 | destination_repo: 'TonyCrane/slides'
22 | destination_branch: 'master'
23 | destination_folder: 'PracticalSkillsTutorial'
24 | user_email: 'tonycrane@foxmail.com'
25 | user_name: 'TonyCrane'
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | markdown-it-py/
--------------------------------------------------------------------------------
/.vscode/snippets.code-snippets:
--------------------------------------------------------------------------------
1 | {
2 | "Middle Layout": {
3 | "scope": "markdown",
4 | "prefix": "middle",
5 | "body": [
6 | "
",
7 | "
",
8 | "",
9 | "$1",
10 | "",
11 | "
",
12 | "
",
13 | "",
14 | "$0"
15 | ]
16 | },
17 | "hr": {
18 | "scope": "markdown",
19 | "prefix": "hr",
20 | "body": [
21 | "
",
22 | "$0"
23 | ]
24 | },
25 | "Three Line Table": {
26 | "scope": "markdown",
27 | "prefix": "three-line",
28 | "body": [
29 | "",
30 | "",
31 | "$1",
32 | "",
33 | "
",
34 | "",
35 | "$0"
36 | ]
37 | },
38 | "Multi-Columns Wrapper": {
39 | "scope": "markdown",
40 | "prefix": "mul-cols",
41 | "body": [
42 | "",
43 | "
",
44 | "",
45 | "$1",
46 | "",
47 | "
",
48 | "$0",
49 | "
"
50 | ]
51 | },
52 | "Single Column Block": {
53 | "scope": "markdown",
54 | "prefix": "col",
55 | "body": [
56 | "",
57 | "",
58 | "$1",
59 | "",
60 | "
",
61 | "$0",
62 | ]
63 | }
64 | }
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/assets/heti_worker.js:
--------------------------------------------------------------------------------
1 | const heti = new Heti(".slides")
2 | heti.autoSpacing()
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/css/highlight/github.css:
--------------------------------------------------------------------------------
1 | pre code.hljs {
2 | display: block;
3 | overflow-x: auto;
4 | padding: 1em
5 | }
6 | code.hljs {
7 | padding: 3px 5px
8 | }
9 | /*!
10 | Theme: GitHub
11 | Description: Light theme as seen on github.com
12 | Author: github.com
13 | Maintainer: @Hirse
14 | Updated: 2021-05-15
15 |
16 | Outdated base version: https://github.com/primer/github-syntax-light
17 | Current colors taken from GitHub's CSS
18 | */
19 | .hljs {
20 | color: #24292e;
21 | background: #ffffff
22 | }
23 | .hljs-doctag,
24 | .hljs-keyword,
25 | .hljs-meta .hljs-keyword,
26 | .hljs-template-tag,
27 | .hljs-template-variable,
28 | .hljs-type,
29 | .hljs-variable.language_ {
30 | /* prettylights-syntax-keyword */
31 | color: #d73a49
32 | }
33 | .hljs-title,
34 | .hljs-title.class_,
35 | .hljs-title.class_.inherited__,
36 | .hljs-title.function_ {
37 | /* prettylights-syntax-entity */
38 | color: #6f42c1
39 | }
40 | .hljs-attr,
41 | .hljs-attribute,
42 | .hljs-literal,
43 | .hljs-meta,
44 | .hljs-number,
45 | .hljs-operator,
46 | .hljs-variable,
47 | .hljs-selector-attr,
48 | .hljs-selector-class,
49 | .hljs-selector-id {
50 | /* prettylights-syntax-constant */
51 | color: #005cc5
52 | }
53 | .hljs-regexp,
54 | .hljs-string,
55 | .hljs-meta .hljs-string {
56 | /* prettylights-syntax-string */
57 | color: #032f62
58 | }
59 | .hljs-built_in,
60 | .hljs-symbol {
61 | /* prettylights-syntax-variable */
62 | color: #e36209
63 | }
64 | .hljs-comment,
65 | .hljs-code,
66 | .hljs-formula {
67 | /* prettylights-syntax-comment */
68 | color: #6a737d
69 | }
70 | .hljs-name,
71 | .hljs-quote,
72 | .hljs-selector-tag,
73 | .hljs-selector-pseudo {
74 | /* prettylights-syntax-entity-tag */
75 | color: #22863a
76 | }
77 | .hljs-subst {
78 | /* prettylights-syntax-storage-modifier-import */
79 | color: #24292e
80 | }
81 | .hljs-section {
82 | /* prettylights-syntax-markup-heading */
83 | color: #005cc5;
84 | font-weight: bold
85 | }
86 | .hljs-bullet {
87 | /* prettylights-syntax-markup-list */
88 | color: #735c0f
89 | }
90 | .hljs-emphasis {
91 | /* prettylights-syntax-markup-italic */
92 | color: #24292e;
93 | font-style: italic
94 | }
95 | .hljs-strong {
96 | /* prettylights-syntax-markup-bold */
97 | color: #24292e;
98 | font-weight: bold
99 | }
100 | .hljs-addition {
101 | /* prettylights-syntax-markup-inserted */
102 | color: #22863a;
103 | background-color: #f0fff4
104 | }
105 | .hljs-deletion {
106 | /* prettylights-syntax-markup-deleted */
107 | color: #b31d28;
108 | background-color: #ffeef0
109 | }
110 | .hljs-char.escape_,
111 | .hljs-link,
112 | .hljs-params,
113 | .hljs-property,
114 | .hljs-punctuation,
115 | .hljs-tag {
116 | /* purposely ignored */
117 |
118 | }
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/reset.css:
--------------------------------------------------------------------------------
1 | /* http://meyerweb.com/eric/tools/css/reset/
2 | v4.0 | 20180602
3 | License: none (public domain)
4 | */
5 |
6 | html, body, div, span, applet, object, iframe,
7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8 | a, abbr, acronym, address, big, cite, code,
9 | del, dfn, em, img, ins, kbd, q, s, samp,
10 | small, strike, strong, sub, sup, tt, var,
11 | b, u, i, center,
12 | dl, dt, dd, ol, ul, li,
13 | fieldset, form, label, legend,
14 | table, caption, tbody, tfoot, thead, tr, th, td,
15 | article, aside, canvas, details, embed,
16 | figure, figcaption, footer, header, hgroup,
17 | main, menu, nav, output, ruby, section, summary,
18 | time, mark, audio, video {
19 | margin: 0;
20 | padding: 0;
21 | border: 0;
22 | font-size: 100%;
23 | font: inherit;
24 | vertical-align: baseline;
25 | }
26 | /* HTML5 display-role reset for older browsers */
27 | article, aside, details, figcaption, figure,
28 | footer, header, hgroup, main, menu, nav, section {
29 | display: block;
30 | }
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/league-gothic/LICENSE:
--------------------------------------------------------------------------------
1 | SIL Open Font License (OFL)
2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
3 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/league-gothic/league-gothic.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'League Gothic';
3 | src: url('./league-gothic.eot');
4 | src: url('./league-gothic.eot?#iefix') format('embedded-opentype'),
5 | url('./league-gothic.woff') format('woff'),
6 | url('./league-gothic.ttf') format('truetype');
7 |
8 | font-weight: normal;
9 | font-style: normal;
10 | }
11 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/league-gothic/league-gothic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/dist/theme/fonts/league-gothic/league-gothic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/league-gothic/league-gothic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/dist/theme/fonts/league-gothic/league-gothic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/league-gothic/league-gothic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/dist/theme/fonts/league-gothic/league-gothic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/dist/theme/fonts/source-sans-pro/source-sans-pro.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Source Sans Pro';
3 | src: url('./source-sans-pro-regular.eot');
4 | src: url('./source-sans-pro-regular.eot?#iefix') format('embedded-opentype'),
5 | url('./source-sans-pro-regular.woff') format('woff'),
6 | url('./source-sans-pro-regular.ttf') format('truetype');
7 | font-weight: normal;
8 | font-style: normal;
9 | }
10 |
11 | @font-face {
12 | font-family: 'Source Sans Pro';
13 | src: url('./source-sans-pro-italic.eot');
14 | src: url('./source-sans-pro-italic.eot?#iefix') format('embedded-opentype'),
15 | url('./source-sans-pro-italic.woff') format('woff'),
16 | url('./source-sans-pro-italic.ttf') format('truetype');
17 | font-weight: normal;
18 | font-style: italic;
19 | }
20 |
21 | @font-face {
22 | font-family: 'Source Sans Pro';
23 | src: url('./source-sans-pro-semibold.eot');
24 | src: url('./source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'),
25 | url('./source-sans-pro-semibold.woff') format('woff'),
26 | url('./source-sans-pro-semibold.ttf') format('truetype');
27 | font-weight: 600;
28 | font-style: normal;
29 | }
30 |
31 | @font-face {
32 | font-family: 'Source Sans Pro';
33 | src: url('./source-sans-pro-semibolditalic.eot');
34 | src: url('./source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'),
35 | url('./source-sans-pro-semibolditalic.woff') format('woff'),
36 | url('./source-sans-pro-semibolditalic.ttf') format('truetype');
37 | font-weight: 600;
38 | font-style: italic;
39 | }
40 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/favicon.ico
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/assets/heti_worker.js:
--------------------------------------------------------------------------------
1 | const heti = new Heti(".slides")
2 | heti.autoSpacing()
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/css/highlight/github.css:
--------------------------------------------------------------------------------
1 | pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
2 | Theme: GitHub
3 | Description: Light theme as seen on github.com
4 | Author: github.com
5 | Maintainer: @Hirse
6 | Updated: 2021-05-15
7 |
8 | Outdated base version: https://github.com/primer/github-syntax-light
9 | Current colors taken from GitHub's CSS
10 | */.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/reset.css:
--------------------------------------------------------------------------------
1 | /* http://meyerweb.com/eric/tools/css/reset/
2 | v4.0 | 20180602
3 | License: none (public domain)
4 | */
5 |
6 | html, body, div, span, applet, object, iframe,
7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8 | a, abbr, acronym, address, big, cite, code,
9 | del, dfn, em, img, ins, kbd, q, s, samp,
10 | small, strike, strong, sub, sup, tt, var,
11 | b, u, i, center,
12 | dl, dt, dd, ol, ul, li,
13 | fieldset, form, label, legend,
14 | table, caption, tbody, tfoot, thead, tr, th, td,
15 | article, aside, canvas, details, embed,
16 | figure, figcaption, footer, header, hgroup,
17 | main, menu, nav, output, ruby, section, summary,
18 | time, mark, audio, video {
19 | margin: 0;
20 | padding: 0;
21 | border: 0;
22 | font-size: 100%;
23 | font: inherit;
24 | vertical-align: baseline;
25 | }
26 | /* HTML5 display-role reset for older browsers */
27 | article, aside, details, figcaption, figure,
28 | footer, header, hgroup, main, menu, nav, section {
29 | display: block;
30 | }
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/league-gothic/LICENSE:
--------------------------------------------------------------------------------
1 | SIL Open Font License (OFL)
2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
3 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/league-gothic/league-gothic.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'League Gothic';
3 | src: url('./league-gothic.eot');
4 | src: url('./league-gothic.eot?#iefix') format('embedded-opentype'),
5 | url('./league-gothic.woff') format('woff'),
6 | url('./league-gothic.ttf') format('truetype');
7 |
8 | font-weight: normal;
9 | font-style: normal;
10 | }
11 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/league-gothic/league-gothic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/league-gothic/league-gothic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/league-gothic/league-gothic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/league-gothic/league-gothic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/league-gothic/league-gothic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/league-gothic/league-gothic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/dist/theme/fonts/source-sans-pro/source-sans-pro.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Source Sans Pro';
3 | src: url('./source-sans-pro-regular.eot');
4 | src: url('./source-sans-pro-regular.eot?#iefix') format('embedded-opentype'),
5 | url('./source-sans-pro-regular.woff') format('woff'),
6 | url('./source-sans-pro-regular.ttf') format('truetype');
7 | font-weight: normal;
8 | font-style: normal;
9 | }
10 |
11 | @font-face {
12 | font-family: 'Source Sans Pro';
13 | src: url('./source-sans-pro-italic.eot');
14 | src: url('./source-sans-pro-italic.eot?#iefix') format('embedded-opentype'),
15 | url('./source-sans-pro-italic.woff') format('woff'),
16 | url('./source-sans-pro-italic.ttf') format('truetype');
17 | font-weight: normal;
18 | font-style: italic;
19 | }
20 |
21 | @font-face {
22 | font-family: 'Source Sans Pro';
23 | src: url('./source-sans-pro-semibold.eot');
24 | src: url('./source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'),
25 | url('./source-sans-pro-semibold.woff') format('woff'),
26 | url('./source-sans-pro-semibold.ttf') format('truetype');
27 | font-weight: 600;
28 | font-style: normal;
29 | }
30 |
31 | @font-face {
32 | font-family: 'Source Sans Pro';
33 | src: url('./source-sans-pro-semibolditalic.eot');
34 | src: url('./source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'),
35 | url('./source-sans-pro-semibolditalic.woff') format('woff'),
36 | url('./source-sans-pro-semibolditalic.ttf') format('truetype');
37 | font-weight: 600;
38 | font-style: italic;
39 | }
40 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/favicon.ico
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/background.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/cover.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/docker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/docker.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/ending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/ending.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/git.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/git.gif
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/github.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/jyy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/jyy.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/latex-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/latex-1.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/latex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/latex.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/makefile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/makefile.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/network.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/network.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/reveal-md.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/reveal-md.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/t1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/t1.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/typesetting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/typesetting.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/vim-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/vim-3.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/lec0/vim-cheetsheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/lec0/vim-cheetsheet.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec0/logo.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/plugin/highlight/monokai.css:
--------------------------------------------------------------------------------
1 | /*
2 | Monokai style - ported by Luigi Maselli - http://grigio.org
3 | */
4 |
5 | .hljs {
6 | display: block;
7 | overflow-x: auto;
8 | padding: 0.5em;
9 | background: #272822;
10 | color: #ddd;
11 | }
12 |
13 | .hljs-tag,
14 | .hljs-keyword,
15 | .hljs-selector-tag,
16 | .hljs-literal,
17 | .hljs-strong,
18 | .hljs-name {
19 | color: #f92672;
20 | }
21 |
22 | .hljs-code {
23 | color: #66d9ef;
24 | }
25 |
26 | .hljs-class .hljs-title {
27 | color: white;
28 | }
29 |
30 | .hljs-attribute,
31 | .hljs-symbol,
32 | .hljs-regexp,
33 | .hljs-link {
34 | color: #bf79db;
35 | }
36 |
37 | .hljs-string,
38 | .hljs-bullet,
39 | .hljs-subst,
40 | .hljs-title,
41 | .hljs-section,
42 | .hljs-emphasis,
43 | .hljs-type,
44 | .hljs-built_in,
45 | .hljs-builtin-name,
46 | .hljs-selector-attr,
47 | .hljs-selector-pseudo,
48 | .hljs-addition,
49 | .hljs-variable,
50 | .hljs-template-tag,
51 | .hljs-template-variable {
52 | color: #a6e22e;
53 | }
54 |
55 | .hljs-comment,
56 | .hljs-quote,
57 | .hljs-deletion,
58 | .hljs-meta {
59 | color: #75715e;
60 | }
61 |
62 | .hljs-keyword,
63 | .hljs-selector-tag,
64 | .hljs-literal,
65 | .hljs-doctag,
66 | .hljs-title,
67 | .hljs-section,
68 | .hljs-type,
69 | .hljs-selector-id {
70 | font-weight: bold;
71 | }
72 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/plugin/highlight/zenburn.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov
4 | based on dark.css by Ivan Sagalaev
5 |
6 | */
7 |
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | background: #3f3f3f;
13 | color: #dcdcdc;
14 | }
15 |
16 | .hljs-keyword,
17 | .hljs-selector-tag,
18 | .hljs-tag {
19 | color: #e3ceab;
20 | }
21 |
22 | .hljs-template-tag {
23 | color: #dcdcdc;
24 | }
25 |
26 | .hljs-number {
27 | color: #8cd0d3;
28 | }
29 |
30 | .hljs-variable,
31 | .hljs-template-variable,
32 | .hljs-attribute {
33 | color: #efdcbc;
34 | }
35 |
36 | .hljs-literal {
37 | color: #efefaf;
38 | }
39 |
40 | .hljs-subst {
41 | color: #8f8f8f;
42 | }
43 |
44 | .hljs-title,
45 | .hljs-name,
46 | .hljs-selector-id,
47 | .hljs-selector-class,
48 | .hljs-section,
49 | .hljs-type {
50 | color: #efef8f;
51 | }
52 |
53 | .hljs-symbol,
54 | .hljs-bullet,
55 | .hljs-link {
56 | color: #dca3a3;
57 | }
58 |
59 | .hljs-deletion,
60 | .hljs-string,
61 | .hljs-built_in,
62 | .hljs-builtin-name {
63 | color: #cc9393;
64 | }
65 |
66 | .hljs-addition,
67 | .hljs-comment,
68 | .hljs-quote,
69 | .hljs-meta {
70 | color: #7f9f7f;
71 | }
72 |
73 |
74 | .hljs-emphasis {
75 | font-style: italic;
76 | }
77 |
78 | .hljs-strong {
79 | font-weight: bold;
80 | }
81 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/plugin/math/mathjax2.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A plugin which enables rendering of math equations inside
3 | * of reveal.js slides. Essentially a thin wrapper for MathJax.
4 | *
5 | * @author Hakim El Hattab
6 | */
7 | export const MathJax2 = () => {
8 |
9 | // The reveal.js instance this plugin is attached to
10 | let deck;
11 |
12 | let defaultOptions = {
13 | messageStyle: 'none',
14 | tex2jax: {
15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ],
16 | skipTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
17 | },
18 | skipStartupTypeset: true
19 | };
20 |
21 | function loadScript( url, callback ) {
22 |
23 | let head = document.querySelector( 'head' );
24 | let script = document.createElement( 'script' );
25 | script.type = 'text/javascript';
26 | script.src = url;
27 |
28 | // Wrapper for callback to make sure it only fires once
29 | let finish = () => {
30 | if( typeof callback === 'function' ) {
31 | callback.call();
32 | callback = null;
33 | }
34 | }
35 |
36 | script.onload = finish;
37 |
38 | // IE
39 | script.onreadystatechange = () => {
40 | if ( this.readyState === 'loaded' ) {
41 | finish();
42 | }
43 | }
44 |
45 | // Normal browsers
46 | head.appendChild( script );
47 |
48 | }
49 |
50 | return {
51 | id: 'mathjax2',
52 |
53 | init: function( reveal ) {
54 |
55 | deck = reveal;
56 |
57 | let revealOptions = deck.getConfig().mathjax2 || deck.getConfig().math || {};
58 |
59 | let options = { ...defaultOptions, ...revealOptions };
60 | let mathjax = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js';
61 | let config = options.config || 'TeX-AMS_HTML-full';
62 | let url = mathjax + '?config=' + config;
63 |
64 | options.tex2jax = { ...defaultOptions.tex2jax, ...revealOptions.tex2jax };
65 |
66 | options.mathjax = options.config = null;
67 |
68 | loadScript( url, function() {
69 |
70 | MathJax.Hub.Config( options );
71 |
72 | // Typeset followed by an immediate reveal.js layout since
73 | // the typesetting process could affect slide height
74 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, deck.getRevealElement() ] );
75 | MathJax.Hub.Queue( deck.layout );
76 |
77 | // Reprocess equations in slides when they turn visible
78 | deck.on( 'slidechanged', function( event ) {
79 |
80 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
81 |
82 | } );
83 |
84 | } );
85 |
86 | }
87 | }
88 |
89 | };
90 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/plugin/math/mathjax3.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A plugin which enables rendering of math equations inside
3 | * of reveal.js slides. Essentially a thin wrapper for MathJax 3
4 | *
5 | * @author Hakim El Hattab
6 | * @author Gerhard Burger
7 | */
8 | export const MathJax3 = () => {
9 |
10 | // The reveal.js instance this plugin is attached to
11 | let deck;
12 |
13 | let defaultOptions = {
14 | tex: {
15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ]
16 | },
17 | options: {
18 | skipHtmlTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
19 | },
20 | startup: {
21 | ready: () => {
22 | MathJax.startup.defaultReady();
23 | MathJax.startup.promise.then(() => {
24 | Reveal.layout();
25 | });
26 | }
27 | }
28 | };
29 |
30 | function loadScript( url, callback ) {
31 |
32 | let script = document.createElement( 'script' );
33 | script.type = "text/javascript"
34 | script.id = "MathJax-script"
35 | script.src = url;
36 | script.async = true
37 |
38 | // Wrapper for callback to make sure it only fires once
39 | script.onload = () => {
40 | if (typeof callback === 'function') {
41 | callback.call();
42 | callback = null;
43 | }
44 | };
45 |
46 | document.head.appendChild( script );
47 |
48 | }
49 |
50 | return {
51 | id: 'mathjax3',
52 | init: function(reveal) {
53 |
54 | deck = reveal;
55 |
56 | let revealOptions = deck.getConfig().mathjax3 || {};
57 | let options = {...defaultOptions, ...revealOptions};
58 | options.tex = {...defaultOptions.tex, ...revealOptions.tex}
59 | options.options = {...defaultOptions.options, ...revealOptions.options}
60 | options.startup = {...defaultOptions.startup, ...revealOptions.startup}
61 |
62 | let url = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js';
63 | options.mathjax = null;
64 |
65 | window.MathJax = options;
66 |
67 | loadScript( url, function() {
68 | // Reprocess equations in slides when they turn visible
69 | Reveal.addEventListener( 'slidechanged', function( event ) {
70 | MathJax.typeset();
71 | } );
72 | } );
73 |
74 | }
75 | }
76 |
77 | };
78 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/plugin/math/plugin.js:
--------------------------------------------------------------------------------
1 | import {KaTeX} from "./katex";
2 | import {MathJax2} from "./mathjax2";
3 | import {MathJax3} from "./mathjax3";
4 |
5 | const defaultTypesetter = MathJax2;
6 |
7 | /*!
8 | * This plugin is a wrapper for the MathJax2,
9 | * MathJax3 and KaTeX typesetter plugins.
10 | */
11 | export default Plugin = Object.assign( defaultTypesetter(), {
12 | KaTeX,
13 | MathJax2,
14 | MathJax3
15 | } );
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec0/plugin/search/search.esm.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Handles finding a text string anywhere in the slides and showing the next occurrence to the user
3 | * by navigatating to that slide and highlighting it.
4 | *
5 | * @author Jon Snyder , February 2013
6 | */
7 | export default()=>{let e,t,n,l,i,o,r;function s(){t=document.createElement("div"),t.classList.add("searchbox"),t.style.position="absolute",t.style.top="10px",t.style.right="10px",t.style.zIndex=10,t.innerHTML='\n\t\t',n=t.querySelector(".searchinput"),n.style.width="240px",n.style.fontSize="14px",n.style.padding="4px 6px",n.style.color="#000",n.style.background="#fff",n.style.borderRadius="2px",n.style.border="0",n.style.outline="0",n.style.boxShadow="0 2px 18px rgba(0, 0, 0, 0.2)",n.style["-webkit-appearance"]="none",e.getRevealElement().appendChild(t),n.addEventListener("keyup",(function(t){if(13===t.keyCode)t.preventDefault(),function(){if(o){var t=n.value;""===t?(r&&r.remove(),l=null):(r=new c("slidecontent"),l=r.apply(t),i=0)}l&&(l.length&&l.length<=i&&(i=0),l.length>i&&(e.slide(l[i].h,l[i].v),i++))}(),o=!1;else o=!0}),!1),d()}function a(){t||s(),t.style.display="inline",n.focus(),n.select()}function d(){t||s(),t.style.display="none",r&&r.remove()}function c(t,n){var l=document.getElementById(t)||document.body,i=n||"EM",o=new RegExp("^(?:"+i+"|SCRIPT|FORM)$"),r=["#ff6","#a0ffff","#9f9","#f99","#f6f"],s=[],a=0,d="",c=[];this.setRegex=function(e){e=e.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w'-]+/g,"|"),d=new RegExp("("+e+")","i")},this.getRegex=function(){return d.toString().replace(/^\/\\b\(|\)\\b\/i$/g,"").replace(/\|/g," ")},this.hiliteWords=function(t){if(null!=t&&t&&d&&!o.test(t.nodeName)){if(t.hasChildNodes())for(var n=0;n{e=n,e.registerKeyboardShortcut("CTRL + Shift + F","Search"),document.addEventListener("keydown",(function(e){"F"==e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),t||s(),"inline"!==t.style.display?a():d())}),!1)},open:a}};
8 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/assets/heti_worker.js:
--------------------------------------------------------------------------------
1 | const heti = new Heti(".slides")
2 | heti.autoSpacing()
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/css/highlight/github.css:
--------------------------------------------------------------------------------
1 | pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
2 | Theme: GitHub
3 | Description: Light theme as seen on github.com
4 | Author: github.com
5 | Maintainer: @Hirse
6 | Updated: 2021-05-15
7 |
8 | Outdated base version: https://github.com/primer/github-syntax-light
9 | Current colors taken from GitHub's CSS
10 | */.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/reset.css:
--------------------------------------------------------------------------------
1 | /* http://meyerweb.com/eric/tools/css/reset/
2 | v4.0 | 20180602
3 | License: none (public domain)
4 | */
5 |
6 | html, body, div, span, applet, object, iframe,
7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8 | a, abbr, acronym, address, big, cite, code,
9 | del, dfn, em, img, ins, kbd, q, s, samp,
10 | small, strike, strong, sub, sup, tt, var,
11 | b, u, i, center,
12 | dl, dt, dd, ol, ul, li,
13 | fieldset, form, label, legend,
14 | table, caption, tbody, tfoot, thead, tr, th, td,
15 | article, aside, canvas, details, embed,
16 | figure, figcaption, footer, header, hgroup,
17 | main, menu, nav, output, ruby, section, summary,
18 | time, mark, audio, video {
19 | margin: 0;
20 | padding: 0;
21 | border: 0;
22 | font-size: 100%;
23 | font: inherit;
24 | vertical-align: baseline;
25 | }
26 | /* HTML5 display-role reset for older browsers */
27 | article, aside, details, figcaption, figure,
28 | footer, header, hgroup, main, menu, nav, section {
29 | display: block;
30 | }
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/league-gothic/LICENSE:
--------------------------------------------------------------------------------
1 | SIL Open Font License (OFL)
2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
3 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/league-gothic/league-gothic.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'League Gothic';
3 | src: url('./league-gothic.eot');
4 | src: url('./league-gothic.eot?#iefix') format('embedded-opentype'),
5 | url('./league-gothic.woff') format('woff'),
6 | url('./league-gothic.ttf') format('truetype');
7 |
8 | font-weight: normal;
9 | font-style: normal;
10 | }
11 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/league-gothic/league-gothic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/league-gothic/league-gothic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/league-gothic/league-gothic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/league-gothic/league-gothic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/league-gothic/league-gothic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/league-gothic/league-gothic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/dist/theme/fonts/source-sans-pro/source-sans-pro.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Source Sans Pro';
3 | src: url('./source-sans-pro-regular.eot');
4 | src: url('./source-sans-pro-regular.eot?#iefix') format('embedded-opentype'),
5 | url('./source-sans-pro-regular.woff') format('woff'),
6 | url('./source-sans-pro-regular.ttf') format('truetype');
7 | font-weight: normal;
8 | font-style: normal;
9 | }
10 |
11 | @font-face {
12 | font-family: 'Source Sans Pro';
13 | src: url('./source-sans-pro-italic.eot');
14 | src: url('./source-sans-pro-italic.eot?#iefix') format('embedded-opentype'),
15 | url('./source-sans-pro-italic.woff') format('woff'),
16 | url('./source-sans-pro-italic.ttf') format('truetype');
17 | font-weight: normal;
18 | font-style: italic;
19 | }
20 |
21 | @font-face {
22 | font-family: 'Source Sans Pro';
23 | src: url('./source-sans-pro-semibold.eot');
24 | src: url('./source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'),
25 | url('./source-sans-pro-semibold.woff') format('woff'),
26 | url('./source-sans-pro-semibold.ttf') format('truetype');
27 | font-weight: 600;
28 | font-style: normal;
29 | }
30 |
31 | @font-face {
32 | font-family: 'Source Sans Pro';
33 | src: url('./source-sans-pro-semibolditalic.eot');
34 | src: url('./source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'),
35 | url('./source-sans-pro-semibolditalic.woff') format('woff'),
36 | url('./source-sans-pro-semibolditalic.ttf') format('truetype');
37 | font-weight: 600;
38 | font-style: italic;
39 | }
40 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/favicon.ico
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/lec0/makefile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/lec0/makefile.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/lec1/VT100-terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/lec1/VT100-terminal.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/lec1/apple-dos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/lec1/apple-dos.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/lec1/apple-lisa.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/lec1/apple-lisa.jpg
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/lec1/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/lec1/background.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/lec1/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/lec1/cover.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/lec1/ending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/lec1/ending.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/lec1/img1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/lec1/img1.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/lec1/linus-torvald-first-linux-email.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/lec1/linus-torvald-first-linux-email.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/lec1/modes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/lec1/modes.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/lec1/vi-vim-tutorial-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/lec1/vi-vim-tutorial-1.gif
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/lec1/vi-vim-tutorial-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/lec1/vi-vim-tutorial-2.gif
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/lec1/vim-cheat-sheet.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/lec1/vim-cheat-sheet.gif
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/lec1/vimcheatsheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/lec1/vimcheatsheet.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec1/logo.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/plugin/highlight/monokai.css:
--------------------------------------------------------------------------------
1 | /*
2 | Monokai style - ported by Luigi Maselli - http://grigio.org
3 | */
4 |
5 | .hljs {
6 | display: block;
7 | overflow-x: auto;
8 | padding: 0.5em;
9 | background: #272822;
10 | color: #ddd;
11 | }
12 |
13 | .hljs-tag,
14 | .hljs-keyword,
15 | .hljs-selector-tag,
16 | .hljs-literal,
17 | .hljs-strong,
18 | .hljs-name {
19 | color: #f92672;
20 | }
21 |
22 | .hljs-code {
23 | color: #66d9ef;
24 | }
25 |
26 | .hljs-class .hljs-title {
27 | color: white;
28 | }
29 |
30 | .hljs-attribute,
31 | .hljs-symbol,
32 | .hljs-regexp,
33 | .hljs-link {
34 | color: #bf79db;
35 | }
36 |
37 | .hljs-string,
38 | .hljs-bullet,
39 | .hljs-subst,
40 | .hljs-title,
41 | .hljs-section,
42 | .hljs-emphasis,
43 | .hljs-type,
44 | .hljs-built_in,
45 | .hljs-builtin-name,
46 | .hljs-selector-attr,
47 | .hljs-selector-pseudo,
48 | .hljs-addition,
49 | .hljs-variable,
50 | .hljs-template-tag,
51 | .hljs-template-variable {
52 | color: #a6e22e;
53 | }
54 |
55 | .hljs-comment,
56 | .hljs-quote,
57 | .hljs-deletion,
58 | .hljs-meta {
59 | color: #75715e;
60 | }
61 |
62 | .hljs-keyword,
63 | .hljs-selector-tag,
64 | .hljs-literal,
65 | .hljs-doctag,
66 | .hljs-title,
67 | .hljs-section,
68 | .hljs-type,
69 | .hljs-selector-id {
70 | font-weight: bold;
71 | }
72 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/plugin/highlight/zenburn.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov
4 | based on dark.css by Ivan Sagalaev
5 |
6 | */
7 |
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | background: #3f3f3f;
13 | color: #dcdcdc;
14 | }
15 |
16 | .hljs-keyword,
17 | .hljs-selector-tag,
18 | .hljs-tag {
19 | color: #e3ceab;
20 | }
21 |
22 | .hljs-template-tag {
23 | color: #dcdcdc;
24 | }
25 |
26 | .hljs-number {
27 | color: #8cd0d3;
28 | }
29 |
30 | .hljs-variable,
31 | .hljs-template-variable,
32 | .hljs-attribute {
33 | color: #efdcbc;
34 | }
35 |
36 | .hljs-literal {
37 | color: #efefaf;
38 | }
39 |
40 | .hljs-subst {
41 | color: #8f8f8f;
42 | }
43 |
44 | .hljs-title,
45 | .hljs-name,
46 | .hljs-selector-id,
47 | .hljs-selector-class,
48 | .hljs-section,
49 | .hljs-type {
50 | color: #efef8f;
51 | }
52 |
53 | .hljs-symbol,
54 | .hljs-bullet,
55 | .hljs-link {
56 | color: #dca3a3;
57 | }
58 |
59 | .hljs-deletion,
60 | .hljs-string,
61 | .hljs-built_in,
62 | .hljs-builtin-name {
63 | color: #cc9393;
64 | }
65 |
66 | .hljs-addition,
67 | .hljs-comment,
68 | .hljs-quote,
69 | .hljs-meta {
70 | color: #7f9f7f;
71 | }
72 |
73 |
74 | .hljs-emphasis {
75 | font-style: italic;
76 | }
77 |
78 | .hljs-strong {
79 | font-weight: bold;
80 | }
81 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/plugin/math/mathjax2.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A plugin which enables rendering of math equations inside
3 | * of reveal.js slides. Essentially a thin wrapper for MathJax.
4 | *
5 | * @author Hakim El Hattab
6 | */
7 | export const MathJax2 = () => {
8 |
9 | // The reveal.js instance this plugin is attached to
10 | let deck;
11 |
12 | let defaultOptions = {
13 | messageStyle: 'none',
14 | tex2jax: {
15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ],
16 | skipTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
17 | },
18 | skipStartupTypeset: true
19 | };
20 |
21 | function loadScript( url, callback ) {
22 |
23 | let head = document.querySelector( 'head' );
24 | let script = document.createElement( 'script' );
25 | script.type = 'text/javascript';
26 | script.src = url;
27 |
28 | // Wrapper for callback to make sure it only fires once
29 | let finish = () => {
30 | if( typeof callback === 'function' ) {
31 | callback.call();
32 | callback = null;
33 | }
34 | }
35 |
36 | script.onload = finish;
37 |
38 | // IE
39 | script.onreadystatechange = () => {
40 | if ( this.readyState === 'loaded' ) {
41 | finish();
42 | }
43 | }
44 |
45 | // Normal browsers
46 | head.appendChild( script );
47 |
48 | }
49 |
50 | return {
51 | id: 'mathjax2',
52 |
53 | init: function( reveal ) {
54 |
55 | deck = reveal;
56 |
57 | let revealOptions = deck.getConfig().mathjax2 || deck.getConfig().math || {};
58 |
59 | let options = { ...defaultOptions, ...revealOptions };
60 | let mathjax = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js';
61 | let config = options.config || 'TeX-AMS_HTML-full';
62 | let url = mathjax + '?config=' + config;
63 |
64 | options.tex2jax = { ...defaultOptions.tex2jax, ...revealOptions.tex2jax };
65 |
66 | options.mathjax = options.config = null;
67 |
68 | loadScript( url, function() {
69 |
70 | MathJax.Hub.Config( options );
71 |
72 | // Typeset followed by an immediate reveal.js layout since
73 | // the typesetting process could affect slide height
74 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, deck.getRevealElement() ] );
75 | MathJax.Hub.Queue( deck.layout );
76 |
77 | // Reprocess equations in slides when they turn visible
78 | deck.on( 'slidechanged', function( event ) {
79 |
80 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
81 |
82 | } );
83 |
84 | } );
85 |
86 | }
87 | }
88 |
89 | };
90 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/plugin/math/mathjax3.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A plugin which enables rendering of math equations inside
3 | * of reveal.js slides. Essentially a thin wrapper for MathJax 3
4 | *
5 | * @author Hakim El Hattab
6 | * @author Gerhard Burger
7 | */
8 | export const MathJax3 = () => {
9 |
10 | // The reveal.js instance this plugin is attached to
11 | let deck;
12 |
13 | let defaultOptions = {
14 | tex: {
15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ]
16 | },
17 | options: {
18 | skipHtmlTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
19 | },
20 | startup: {
21 | ready: () => {
22 | MathJax.startup.defaultReady();
23 | MathJax.startup.promise.then(() => {
24 | Reveal.layout();
25 | });
26 | }
27 | }
28 | };
29 |
30 | function loadScript( url, callback ) {
31 |
32 | let script = document.createElement( 'script' );
33 | script.type = "text/javascript"
34 | script.id = "MathJax-script"
35 | script.src = url;
36 | script.async = true
37 |
38 | // Wrapper for callback to make sure it only fires once
39 | script.onload = () => {
40 | if (typeof callback === 'function') {
41 | callback.call();
42 | callback = null;
43 | }
44 | };
45 |
46 | document.head.appendChild( script );
47 |
48 | }
49 |
50 | return {
51 | id: 'mathjax3',
52 | init: function(reveal) {
53 |
54 | deck = reveal;
55 |
56 | let revealOptions = deck.getConfig().mathjax3 || {};
57 | let options = {...defaultOptions, ...revealOptions};
58 | options.tex = {...defaultOptions.tex, ...revealOptions.tex}
59 | options.options = {...defaultOptions.options, ...revealOptions.options}
60 | options.startup = {...defaultOptions.startup, ...revealOptions.startup}
61 |
62 | let url = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js';
63 | options.mathjax = null;
64 |
65 | window.MathJax = options;
66 |
67 | loadScript( url, function() {
68 | // Reprocess equations in slides when they turn visible
69 | Reveal.addEventListener( 'slidechanged', function( event ) {
70 | MathJax.typeset();
71 | } );
72 | } );
73 |
74 | }
75 | }
76 |
77 | };
78 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/plugin/math/plugin.js:
--------------------------------------------------------------------------------
1 | import {KaTeX} from "./katex";
2 | import {MathJax2} from "./mathjax2";
3 | import {MathJax3} from "./mathjax3";
4 |
5 | const defaultTypesetter = MathJax2;
6 |
7 | /*!
8 | * This plugin is a wrapper for the MathJax2,
9 | * MathJax3 and KaTeX typesetter plugins.
10 | */
11 | export default Plugin = Object.assign( defaultTypesetter(), {
12 | KaTeX,
13 | MathJax2,
14 | MathJax3
15 | } );
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec1/plugin/search/search.esm.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Handles finding a text string anywhere in the slides and showing the next occurrence to the user
3 | * by navigatating to that slide and highlighting it.
4 | *
5 | * @author Jon Snyder , February 2013
6 | */
7 | export default()=>{let e,t,n,l,i,o,r;function s(){t=document.createElement("div"),t.classList.add("searchbox"),t.style.position="absolute",t.style.top="10px",t.style.right="10px",t.style.zIndex=10,t.innerHTML='\n\t\t',n=t.querySelector(".searchinput"),n.style.width="240px",n.style.fontSize="14px",n.style.padding="4px 6px",n.style.color="#000",n.style.background="#fff",n.style.borderRadius="2px",n.style.border="0",n.style.outline="0",n.style.boxShadow="0 2px 18px rgba(0, 0, 0, 0.2)",n.style["-webkit-appearance"]="none",e.getRevealElement().appendChild(t),n.addEventListener("keyup",(function(t){if(13===t.keyCode)t.preventDefault(),function(){if(o){var t=n.value;""===t?(r&&r.remove(),l=null):(r=new c("slidecontent"),l=r.apply(t),i=0)}l&&(l.length&&l.length<=i&&(i=0),l.length>i&&(e.slide(l[i].h,l[i].v),i++))}(),o=!1;else o=!0}),!1),d()}function a(){t||s(),t.style.display="inline",n.focus(),n.select()}function d(){t||s(),t.style.display="none",r&&r.remove()}function c(t,n){var l=document.getElementById(t)||document.body,i=n||"EM",o=new RegExp("^(?:"+i+"|SCRIPT|FORM)$"),r=["#ff6","#a0ffff","#9f9","#f99","#f6f"],s=[],a=0,d="",c=[];this.setRegex=function(e){e=e.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w'-]+/g,"|"),d=new RegExp("("+e+")","i")},this.getRegex=function(){return d.toString().replace(/^\/\\b\(|\)\\b\/i$/g,"").replace(/\|/g," ")},this.hiliteWords=function(t){if(null!=t&&t&&d&&!o.test(t.nodeName)){if(t.hasChildNodes())for(var n=0;n{e=n,e.registerKeyboardShortcut("CTRL + Shift + F","Search"),document.addEventListener("keydown",(function(e){"F"==e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),t||s(),"inline"!==t.style.display?a():d())}),!1)},open:a}};
8 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/assets/heti_worker.js:
--------------------------------------------------------------------------------
1 | const heti = new Heti(".slides")
2 | heti.autoSpacing()
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/css/highlight/github.css:
--------------------------------------------------------------------------------
1 | pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
2 | Theme: GitHub
3 | Description: Light theme as seen on github.com
4 | Author: github.com
5 | Maintainer: @Hirse
6 | Updated: 2021-05-15
7 |
8 | Outdated base version: https://github.com/primer/github-syntax-light
9 | Current colors taken from GitHub's CSS
10 | */.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/reset.css:
--------------------------------------------------------------------------------
1 | /* http://meyerweb.com/eric/tools/css/reset/
2 | v4.0 | 20180602
3 | License: none (public domain)
4 | */
5 |
6 | html, body, div, span, applet, object, iframe,
7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8 | a, abbr, acronym, address, big, cite, code,
9 | del, dfn, em, img, ins, kbd, q, s, samp,
10 | small, strike, strong, sub, sup, tt, var,
11 | b, u, i, center,
12 | dl, dt, dd, ol, ul, li,
13 | fieldset, form, label, legend,
14 | table, caption, tbody, tfoot, thead, tr, th, td,
15 | article, aside, canvas, details, embed,
16 | figure, figcaption, footer, header, hgroup,
17 | main, menu, nav, output, ruby, section, summary,
18 | time, mark, audio, video {
19 | margin: 0;
20 | padding: 0;
21 | border: 0;
22 | font-size: 100%;
23 | font: inherit;
24 | vertical-align: baseline;
25 | }
26 | /* HTML5 display-role reset for older browsers */
27 | article, aside, details, figcaption, figure,
28 | footer, header, hgroup, main, menu, nav, section {
29 | display: block;
30 | }
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/league-gothic/LICENSE:
--------------------------------------------------------------------------------
1 | SIL Open Font License (OFL)
2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
3 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/league-gothic/league-gothic.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'League Gothic';
3 | src: url('./league-gothic.eot');
4 | src: url('./league-gothic.eot?#iefix') format('embedded-opentype'),
5 | url('./league-gothic.woff') format('woff'),
6 | url('./league-gothic.ttf') format('truetype');
7 |
8 | font-weight: normal;
9 | font-style: normal;
10 | }
11 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/league-gothic/league-gothic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/league-gothic/league-gothic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/league-gothic/league-gothic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/league-gothic/league-gothic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/league-gothic/league-gothic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/league-gothic/league-gothic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/dist/theme/fonts/source-sans-pro/source-sans-pro.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Source Sans Pro';
3 | src: url('./source-sans-pro-regular.eot');
4 | src: url('./source-sans-pro-regular.eot?#iefix') format('embedded-opentype'),
5 | url('./source-sans-pro-regular.woff') format('woff'),
6 | url('./source-sans-pro-regular.ttf') format('truetype');
7 | font-weight: normal;
8 | font-style: normal;
9 | }
10 |
11 | @font-face {
12 | font-family: 'Source Sans Pro';
13 | src: url('./source-sans-pro-italic.eot');
14 | src: url('./source-sans-pro-italic.eot?#iefix') format('embedded-opentype'),
15 | url('./source-sans-pro-italic.woff') format('woff'),
16 | url('./source-sans-pro-italic.ttf') format('truetype');
17 | font-weight: normal;
18 | font-style: italic;
19 | }
20 |
21 | @font-face {
22 | font-family: 'Source Sans Pro';
23 | src: url('./source-sans-pro-semibold.eot');
24 | src: url('./source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'),
25 | url('./source-sans-pro-semibold.woff') format('woff'),
26 | url('./source-sans-pro-semibold.ttf') format('truetype');
27 | font-weight: 600;
28 | font-style: normal;
29 | }
30 |
31 | @font-face {
32 | font-family: 'Source Sans Pro';
33 | src: url('./source-sans-pro-semibolditalic.eot');
34 | src: url('./source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'),
35 | url('./source-sans-pro-semibolditalic.woff') format('woff'),
36 | url('./source-sans-pro-semibolditalic.ttf') format('truetype');
37 | font-weight: 600;
38 | font-style: italic;
39 | }
40 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/favicon.ico
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/background.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/cover.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/ending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/ending.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/git-changelog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/git-changelog.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/git-detached.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/git-detached.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/git-history.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/git-history.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/git-merge1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/git-merge1.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/git-merge2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/git-merge2.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/git-objects.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/git-objects.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/git-rebase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/git-rebase.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/git-relativeref.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/git-relativeref.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/git-remote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/git-remote.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/gitbook.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/gitbook.jpg
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/github-email.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/github-email.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/github-new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/github-new.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/github-pages.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/github-pages.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/github-repo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/github-repo.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/github-sign.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/github-sign.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/licenses.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/licenses.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/model-add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/model-add.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/model-branch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/model-branch.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/model-commit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/model-commit.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/model-remote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/model-remote.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/model.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/lec2/workflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/lec2/workflow.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec2/logo.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/plugin/highlight/monokai.css:
--------------------------------------------------------------------------------
1 | /*
2 | Monokai style - ported by Luigi Maselli - http://grigio.org
3 | */
4 |
5 | .hljs {
6 | display: block;
7 | overflow-x: auto;
8 | padding: 0.5em;
9 | background: #272822;
10 | color: #ddd;
11 | }
12 |
13 | .hljs-tag,
14 | .hljs-keyword,
15 | .hljs-selector-tag,
16 | .hljs-literal,
17 | .hljs-strong,
18 | .hljs-name {
19 | color: #f92672;
20 | }
21 |
22 | .hljs-code {
23 | color: #66d9ef;
24 | }
25 |
26 | .hljs-class .hljs-title {
27 | color: white;
28 | }
29 |
30 | .hljs-attribute,
31 | .hljs-symbol,
32 | .hljs-regexp,
33 | .hljs-link {
34 | color: #bf79db;
35 | }
36 |
37 | .hljs-string,
38 | .hljs-bullet,
39 | .hljs-subst,
40 | .hljs-title,
41 | .hljs-section,
42 | .hljs-emphasis,
43 | .hljs-type,
44 | .hljs-built_in,
45 | .hljs-builtin-name,
46 | .hljs-selector-attr,
47 | .hljs-selector-pseudo,
48 | .hljs-addition,
49 | .hljs-variable,
50 | .hljs-template-tag,
51 | .hljs-template-variable {
52 | color: #a6e22e;
53 | }
54 |
55 | .hljs-comment,
56 | .hljs-quote,
57 | .hljs-deletion,
58 | .hljs-meta {
59 | color: #75715e;
60 | }
61 |
62 | .hljs-keyword,
63 | .hljs-selector-tag,
64 | .hljs-literal,
65 | .hljs-doctag,
66 | .hljs-title,
67 | .hljs-section,
68 | .hljs-type,
69 | .hljs-selector-id {
70 | font-weight: bold;
71 | }
72 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/plugin/highlight/zenburn.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov
4 | based on dark.css by Ivan Sagalaev
5 |
6 | */
7 |
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | background: #3f3f3f;
13 | color: #dcdcdc;
14 | }
15 |
16 | .hljs-keyword,
17 | .hljs-selector-tag,
18 | .hljs-tag {
19 | color: #e3ceab;
20 | }
21 |
22 | .hljs-template-tag {
23 | color: #dcdcdc;
24 | }
25 |
26 | .hljs-number {
27 | color: #8cd0d3;
28 | }
29 |
30 | .hljs-variable,
31 | .hljs-template-variable,
32 | .hljs-attribute {
33 | color: #efdcbc;
34 | }
35 |
36 | .hljs-literal {
37 | color: #efefaf;
38 | }
39 |
40 | .hljs-subst {
41 | color: #8f8f8f;
42 | }
43 |
44 | .hljs-title,
45 | .hljs-name,
46 | .hljs-selector-id,
47 | .hljs-selector-class,
48 | .hljs-section,
49 | .hljs-type {
50 | color: #efef8f;
51 | }
52 |
53 | .hljs-symbol,
54 | .hljs-bullet,
55 | .hljs-link {
56 | color: #dca3a3;
57 | }
58 |
59 | .hljs-deletion,
60 | .hljs-string,
61 | .hljs-built_in,
62 | .hljs-builtin-name {
63 | color: #cc9393;
64 | }
65 |
66 | .hljs-addition,
67 | .hljs-comment,
68 | .hljs-quote,
69 | .hljs-meta {
70 | color: #7f9f7f;
71 | }
72 |
73 |
74 | .hljs-emphasis {
75 | font-style: italic;
76 | }
77 |
78 | .hljs-strong {
79 | font-weight: bold;
80 | }
81 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/plugin/math/mathjax2.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A plugin which enables rendering of math equations inside
3 | * of reveal.js slides. Essentially a thin wrapper for MathJax.
4 | *
5 | * @author Hakim El Hattab
6 | */
7 | export const MathJax2 = () => {
8 |
9 | // The reveal.js instance this plugin is attached to
10 | let deck;
11 |
12 | let defaultOptions = {
13 | messageStyle: 'none',
14 | tex2jax: {
15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ],
16 | skipTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
17 | },
18 | skipStartupTypeset: true
19 | };
20 |
21 | function loadScript( url, callback ) {
22 |
23 | let head = document.querySelector( 'head' );
24 | let script = document.createElement( 'script' );
25 | script.type = 'text/javascript';
26 | script.src = url;
27 |
28 | // Wrapper for callback to make sure it only fires once
29 | let finish = () => {
30 | if( typeof callback === 'function' ) {
31 | callback.call();
32 | callback = null;
33 | }
34 | }
35 |
36 | script.onload = finish;
37 |
38 | // IE
39 | script.onreadystatechange = () => {
40 | if ( this.readyState === 'loaded' ) {
41 | finish();
42 | }
43 | }
44 |
45 | // Normal browsers
46 | head.appendChild( script );
47 |
48 | }
49 |
50 | return {
51 | id: 'mathjax2',
52 |
53 | init: function( reveal ) {
54 |
55 | deck = reveal;
56 |
57 | let revealOptions = deck.getConfig().mathjax2 || deck.getConfig().math || {};
58 |
59 | let options = { ...defaultOptions, ...revealOptions };
60 | let mathjax = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js';
61 | let config = options.config || 'TeX-AMS_HTML-full';
62 | let url = mathjax + '?config=' + config;
63 |
64 | options.tex2jax = { ...defaultOptions.tex2jax, ...revealOptions.tex2jax };
65 |
66 | options.mathjax = options.config = null;
67 |
68 | loadScript( url, function() {
69 |
70 | MathJax.Hub.Config( options );
71 |
72 | // Typeset followed by an immediate reveal.js layout since
73 | // the typesetting process could affect slide height
74 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, deck.getRevealElement() ] );
75 | MathJax.Hub.Queue( deck.layout );
76 |
77 | // Reprocess equations in slides when they turn visible
78 | deck.on( 'slidechanged', function( event ) {
79 |
80 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
81 |
82 | } );
83 |
84 | } );
85 |
86 | }
87 | }
88 |
89 | };
90 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/plugin/math/mathjax3.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A plugin which enables rendering of math equations inside
3 | * of reveal.js slides. Essentially a thin wrapper for MathJax 3
4 | *
5 | * @author Hakim El Hattab
6 | * @author Gerhard Burger
7 | */
8 | export const MathJax3 = () => {
9 |
10 | // The reveal.js instance this plugin is attached to
11 | let deck;
12 |
13 | let defaultOptions = {
14 | tex: {
15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ]
16 | },
17 | options: {
18 | skipHtmlTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
19 | },
20 | startup: {
21 | ready: () => {
22 | MathJax.startup.defaultReady();
23 | MathJax.startup.promise.then(() => {
24 | Reveal.layout();
25 | });
26 | }
27 | }
28 | };
29 |
30 | function loadScript( url, callback ) {
31 |
32 | let script = document.createElement( 'script' );
33 | script.type = "text/javascript"
34 | script.id = "MathJax-script"
35 | script.src = url;
36 | script.async = true
37 |
38 | // Wrapper for callback to make sure it only fires once
39 | script.onload = () => {
40 | if (typeof callback === 'function') {
41 | callback.call();
42 | callback = null;
43 | }
44 | };
45 |
46 | document.head.appendChild( script );
47 |
48 | }
49 |
50 | return {
51 | id: 'mathjax3',
52 | init: function(reveal) {
53 |
54 | deck = reveal;
55 |
56 | let revealOptions = deck.getConfig().mathjax3 || {};
57 | let options = {...defaultOptions, ...revealOptions};
58 | options.tex = {...defaultOptions.tex, ...revealOptions.tex}
59 | options.options = {...defaultOptions.options, ...revealOptions.options}
60 | options.startup = {...defaultOptions.startup, ...revealOptions.startup}
61 |
62 | let url = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js';
63 | options.mathjax = null;
64 |
65 | window.MathJax = options;
66 |
67 | loadScript( url, function() {
68 | // Reprocess equations in slides when they turn visible
69 | Reveal.addEventListener( 'slidechanged', function( event ) {
70 | MathJax.typeset();
71 | } );
72 | } );
73 |
74 | }
75 | }
76 |
77 | };
78 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/plugin/math/plugin.js:
--------------------------------------------------------------------------------
1 | import {KaTeX} from "./katex";
2 | import {MathJax2} from "./mathjax2";
3 | import {MathJax3} from "./mathjax3";
4 |
5 | const defaultTypesetter = MathJax2;
6 |
7 | /*!
8 | * This plugin is a wrapper for the MathJax2,
9 | * MathJax3 and KaTeX typesetter plugins.
10 | */
11 | export default Plugin = Object.assign( defaultTypesetter(), {
12 | KaTeX,
13 | MathJax2,
14 | MathJax3
15 | } );
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec2/plugin/search/search.esm.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Handles finding a text string anywhere in the slides and showing the next occurrence to the user
3 | * by navigatating to that slide and highlighting it.
4 | *
5 | * @author Jon Snyder , February 2013
6 | */
7 | export default()=>{let e,t,n,l,i,o,r;function s(){t=document.createElement("div"),t.classList.add("searchbox"),t.style.position="absolute",t.style.top="10px",t.style.right="10px",t.style.zIndex=10,t.innerHTML='\n\t\t',n=t.querySelector(".searchinput"),n.style.width="240px",n.style.fontSize="14px",n.style.padding="4px 6px",n.style.color="#000",n.style.background="#fff",n.style.borderRadius="2px",n.style.border="0",n.style.outline="0",n.style.boxShadow="0 2px 18px rgba(0, 0, 0, 0.2)",n.style["-webkit-appearance"]="none",e.getRevealElement().appendChild(t),n.addEventListener("keyup",(function(t){if(13===t.keyCode)t.preventDefault(),function(){if(o){var t=n.value;""===t?(r&&r.remove(),l=null):(r=new c("slidecontent"),l=r.apply(t),i=0)}l&&(l.length&&l.length<=i&&(i=0),l.length>i&&(e.slide(l[i].h,l[i].v),i++))}(),o=!1;else o=!0}),!1),d()}function a(){t||s(),t.style.display="inline",n.focus(),n.select()}function d(){t||s(),t.style.display="none",r&&r.remove()}function c(t,n){var l=document.getElementById(t)||document.body,i=n||"EM",o=new RegExp("^(?:"+i+"|SCRIPT|FORM)$"),r=["#ff6","#a0ffff","#9f9","#f99","#f6f"],s=[],a=0,d="",c=[];this.setRegex=function(e){e=e.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w'-]+/g,"|"),d=new RegExp("("+e+")","i")},this.getRegex=function(){return d.toString().replace(/^\/\\b\(|\)\\b\/i$/g,"").replace(/\|/g," ")},this.hiliteWords=function(t){if(null!=t&&t&&d&&!o.test(t.nodeName)){if(t.hasChildNodes())for(var n=0;n{e=n,e.registerKeyboardShortcut("CTRL + Shift + F","Search"),document.addEventListener("keydown",(function(e){"F"==e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),t||s(),"inline"!==t.style.display?a():d())}),!1)},open:a}};
8 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/assets/heti_worker.js:
--------------------------------------------------------------------------------
1 | const heti = new Heti(".slides")
2 | heti.autoSpacing()
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/css/highlight/github.css:
--------------------------------------------------------------------------------
1 | pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
2 | Theme: GitHub
3 | Description: Light theme as seen on github.com
4 | Author: github.com
5 | Maintainer: @Hirse
6 | Updated: 2021-05-15
7 |
8 | Outdated base version: https://github.com/primer/github-syntax-light
9 | Current colors taken from GitHub's CSS
10 | */.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/reset.css:
--------------------------------------------------------------------------------
1 | /* http://meyerweb.com/eric/tools/css/reset/
2 | v4.0 | 20180602
3 | License: none (public domain)
4 | */
5 |
6 | html, body, div, span, applet, object, iframe,
7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8 | a, abbr, acronym, address, big, cite, code,
9 | del, dfn, em, img, ins, kbd, q, s, samp,
10 | small, strike, strong, sub, sup, tt, var,
11 | b, u, i, center,
12 | dl, dt, dd, ol, ul, li,
13 | fieldset, form, label, legend,
14 | table, caption, tbody, tfoot, thead, tr, th, td,
15 | article, aside, canvas, details, embed,
16 | figure, figcaption, footer, header, hgroup,
17 | main, menu, nav, output, ruby, section, summary,
18 | time, mark, audio, video {
19 | margin: 0;
20 | padding: 0;
21 | border: 0;
22 | font-size: 100%;
23 | font: inherit;
24 | vertical-align: baseline;
25 | }
26 | /* HTML5 display-role reset for older browsers */
27 | article, aside, details, figcaption, figure,
28 | footer, header, hgroup, main, menu, nav, section {
29 | display: block;
30 | }
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/league-gothic/LICENSE:
--------------------------------------------------------------------------------
1 | SIL Open Font License (OFL)
2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
3 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/league-gothic/league-gothic.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'League Gothic';
3 | src: url('./league-gothic.eot');
4 | src: url('./league-gothic.eot?#iefix') format('embedded-opentype'),
5 | url('./league-gothic.woff') format('woff'),
6 | url('./league-gothic.ttf') format('truetype');
7 |
8 | font-weight: normal;
9 | font-style: normal;
10 | }
11 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/league-gothic/league-gothic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/league-gothic/league-gothic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/league-gothic/league-gothic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/league-gothic/league-gothic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/league-gothic/league-gothic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/league-gothic/league-gothic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/dist/theme/fonts/source-sans-pro/source-sans-pro.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Source Sans Pro';
3 | src: url('./source-sans-pro-regular.eot');
4 | src: url('./source-sans-pro-regular.eot?#iefix') format('embedded-opentype'),
5 | url('./source-sans-pro-regular.woff') format('woff'),
6 | url('./source-sans-pro-regular.ttf') format('truetype');
7 | font-weight: normal;
8 | font-style: normal;
9 | }
10 |
11 | @font-face {
12 | font-family: 'Source Sans Pro';
13 | src: url('./source-sans-pro-italic.eot');
14 | src: url('./source-sans-pro-italic.eot?#iefix') format('embedded-opentype'),
15 | url('./source-sans-pro-italic.woff') format('woff'),
16 | url('./source-sans-pro-italic.ttf') format('truetype');
17 | font-weight: normal;
18 | font-style: italic;
19 | }
20 |
21 | @font-face {
22 | font-family: 'Source Sans Pro';
23 | src: url('./source-sans-pro-semibold.eot');
24 | src: url('./source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'),
25 | url('./source-sans-pro-semibold.woff') format('woff'),
26 | url('./source-sans-pro-semibold.ttf') format('truetype');
27 | font-weight: 600;
28 | font-style: normal;
29 | }
30 |
31 | @font-face {
32 | font-family: 'Source Sans Pro';
33 | src: url('./source-sans-pro-semibolditalic.eot');
34 | src: url('./source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'),
35 | url('./source-sans-pro-semibolditalic.woff') format('woff'),
36 | url('./source-sans-pro-semibolditalic.ttf') format('truetype');
37 | font-weight: 600;
38 | font-style: italic;
39 | }
40 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/favicon.ico
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/lec3/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/lec3/background.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/lec3/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/lec3/cover.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/lec3/ending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/lec3/ending.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/lec3/essential.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/lec3/essential.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/lec3/footnote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/lec3/footnote.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/lec3/math.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/lec3/math.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/lec3/mermaid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/lec3/mermaid.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/lec3/tasklist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/lec3/tasklist.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec3/logo.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/plugin/highlight/monokai.css:
--------------------------------------------------------------------------------
1 | /*
2 | Monokai style - ported by Luigi Maselli - http://grigio.org
3 | */
4 |
5 | .hljs {
6 | display: block;
7 | overflow-x: auto;
8 | padding: 0.5em;
9 | background: #272822;
10 | color: #ddd;
11 | }
12 |
13 | .hljs-tag,
14 | .hljs-keyword,
15 | .hljs-selector-tag,
16 | .hljs-literal,
17 | .hljs-strong,
18 | .hljs-name {
19 | color: #f92672;
20 | }
21 |
22 | .hljs-code {
23 | color: #66d9ef;
24 | }
25 |
26 | .hljs-class .hljs-title {
27 | color: white;
28 | }
29 |
30 | .hljs-attribute,
31 | .hljs-symbol,
32 | .hljs-regexp,
33 | .hljs-link {
34 | color: #bf79db;
35 | }
36 |
37 | .hljs-string,
38 | .hljs-bullet,
39 | .hljs-subst,
40 | .hljs-title,
41 | .hljs-section,
42 | .hljs-emphasis,
43 | .hljs-type,
44 | .hljs-built_in,
45 | .hljs-builtin-name,
46 | .hljs-selector-attr,
47 | .hljs-selector-pseudo,
48 | .hljs-addition,
49 | .hljs-variable,
50 | .hljs-template-tag,
51 | .hljs-template-variable {
52 | color: #a6e22e;
53 | }
54 |
55 | .hljs-comment,
56 | .hljs-quote,
57 | .hljs-deletion,
58 | .hljs-meta {
59 | color: #75715e;
60 | }
61 |
62 | .hljs-keyword,
63 | .hljs-selector-tag,
64 | .hljs-literal,
65 | .hljs-doctag,
66 | .hljs-title,
67 | .hljs-section,
68 | .hljs-type,
69 | .hljs-selector-id {
70 | font-weight: bold;
71 | }
72 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/plugin/highlight/zenburn.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov
4 | based on dark.css by Ivan Sagalaev
5 |
6 | */
7 |
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | background: #3f3f3f;
13 | color: #dcdcdc;
14 | }
15 |
16 | .hljs-keyword,
17 | .hljs-selector-tag,
18 | .hljs-tag {
19 | color: #e3ceab;
20 | }
21 |
22 | .hljs-template-tag {
23 | color: #dcdcdc;
24 | }
25 |
26 | .hljs-number {
27 | color: #8cd0d3;
28 | }
29 |
30 | .hljs-variable,
31 | .hljs-template-variable,
32 | .hljs-attribute {
33 | color: #efdcbc;
34 | }
35 |
36 | .hljs-literal {
37 | color: #efefaf;
38 | }
39 |
40 | .hljs-subst {
41 | color: #8f8f8f;
42 | }
43 |
44 | .hljs-title,
45 | .hljs-name,
46 | .hljs-selector-id,
47 | .hljs-selector-class,
48 | .hljs-section,
49 | .hljs-type {
50 | color: #efef8f;
51 | }
52 |
53 | .hljs-symbol,
54 | .hljs-bullet,
55 | .hljs-link {
56 | color: #dca3a3;
57 | }
58 |
59 | .hljs-deletion,
60 | .hljs-string,
61 | .hljs-built_in,
62 | .hljs-builtin-name {
63 | color: #cc9393;
64 | }
65 |
66 | .hljs-addition,
67 | .hljs-comment,
68 | .hljs-quote,
69 | .hljs-meta {
70 | color: #7f9f7f;
71 | }
72 |
73 |
74 | .hljs-emphasis {
75 | font-style: italic;
76 | }
77 |
78 | .hljs-strong {
79 | font-weight: bold;
80 | }
81 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/plugin/math/mathjax2.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A plugin which enables rendering of math equations inside
3 | * of reveal.js slides. Essentially a thin wrapper for MathJax.
4 | *
5 | * @author Hakim El Hattab
6 | */
7 | export const MathJax2 = () => {
8 |
9 | // The reveal.js instance this plugin is attached to
10 | let deck;
11 |
12 | let defaultOptions = {
13 | messageStyle: 'none',
14 | tex2jax: {
15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ],
16 | skipTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
17 | },
18 | skipStartupTypeset: true
19 | };
20 |
21 | function loadScript( url, callback ) {
22 |
23 | let head = document.querySelector( 'head' );
24 | let script = document.createElement( 'script' );
25 | script.type = 'text/javascript';
26 | script.src = url;
27 |
28 | // Wrapper for callback to make sure it only fires once
29 | let finish = () => {
30 | if( typeof callback === 'function' ) {
31 | callback.call();
32 | callback = null;
33 | }
34 | }
35 |
36 | script.onload = finish;
37 |
38 | // IE
39 | script.onreadystatechange = () => {
40 | if ( this.readyState === 'loaded' ) {
41 | finish();
42 | }
43 | }
44 |
45 | // Normal browsers
46 | head.appendChild( script );
47 |
48 | }
49 |
50 | return {
51 | id: 'mathjax2',
52 |
53 | init: function( reveal ) {
54 |
55 | deck = reveal;
56 |
57 | let revealOptions = deck.getConfig().mathjax2 || deck.getConfig().math || {};
58 |
59 | let options = { ...defaultOptions, ...revealOptions };
60 | let mathjax = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js';
61 | let config = options.config || 'TeX-AMS_HTML-full';
62 | let url = mathjax + '?config=' + config;
63 |
64 | options.tex2jax = { ...defaultOptions.tex2jax, ...revealOptions.tex2jax };
65 |
66 | options.mathjax = options.config = null;
67 |
68 | loadScript( url, function() {
69 |
70 | MathJax.Hub.Config( options );
71 |
72 | // Typeset followed by an immediate reveal.js layout since
73 | // the typesetting process could affect slide height
74 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, deck.getRevealElement() ] );
75 | MathJax.Hub.Queue( deck.layout );
76 |
77 | // Reprocess equations in slides when they turn visible
78 | deck.on( 'slidechanged', function( event ) {
79 |
80 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
81 |
82 | } );
83 |
84 | } );
85 |
86 | }
87 | }
88 |
89 | };
90 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/plugin/math/mathjax3.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A plugin which enables rendering of math equations inside
3 | * of reveal.js slides. Essentially a thin wrapper for MathJax 3
4 | *
5 | * @author Hakim El Hattab
6 | * @author Gerhard Burger
7 | */
8 | export const MathJax3 = () => {
9 |
10 | // The reveal.js instance this plugin is attached to
11 | let deck;
12 |
13 | let defaultOptions = {
14 | tex: {
15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ]
16 | },
17 | options: {
18 | skipHtmlTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
19 | },
20 | startup: {
21 | ready: () => {
22 | MathJax.startup.defaultReady();
23 | MathJax.startup.promise.then(() => {
24 | Reveal.layout();
25 | });
26 | }
27 | }
28 | };
29 |
30 | function loadScript( url, callback ) {
31 |
32 | let script = document.createElement( 'script' );
33 | script.type = "text/javascript"
34 | script.id = "MathJax-script"
35 | script.src = url;
36 | script.async = true
37 |
38 | // Wrapper for callback to make sure it only fires once
39 | script.onload = () => {
40 | if (typeof callback === 'function') {
41 | callback.call();
42 | callback = null;
43 | }
44 | };
45 |
46 | document.head.appendChild( script );
47 |
48 | }
49 |
50 | return {
51 | id: 'mathjax3',
52 | init: function(reveal) {
53 |
54 | deck = reveal;
55 |
56 | let revealOptions = deck.getConfig().mathjax3 || {};
57 | let options = {...defaultOptions, ...revealOptions};
58 | options.tex = {...defaultOptions.tex, ...revealOptions.tex}
59 | options.options = {...defaultOptions.options, ...revealOptions.options}
60 | options.startup = {...defaultOptions.startup, ...revealOptions.startup}
61 |
62 | let url = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js';
63 | options.mathjax = null;
64 |
65 | window.MathJax = options;
66 |
67 | loadScript( url, function() {
68 | // Reprocess equations in slides when they turn visible
69 | Reveal.addEventListener( 'slidechanged', function( event ) {
70 | MathJax.typeset();
71 | } );
72 | } );
73 |
74 | }
75 | }
76 |
77 | };
78 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/plugin/math/plugin.js:
--------------------------------------------------------------------------------
1 | import {KaTeX} from "./katex";
2 | import {MathJax2} from "./mathjax2";
3 | import {MathJax3} from "./mathjax3";
4 |
5 | const defaultTypesetter = MathJax2;
6 |
7 | /*!
8 | * This plugin is a wrapper for the MathJax2,
9 | * MathJax3 and KaTeX typesetter plugins.
10 | */
11 | export default Plugin = Object.assign( defaultTypesetter(), {
12 | KaTeX,
13 | MathJax2,
14 | MathJax3
15 | } );
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec3/plugin/search/search.esm.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Handles finding a text string anywhere in the slides and showing the next occurrence to the user
3 | * by navigatating to that slide and highlighting it.
4 | *
5 | * @author Jon Snyder , February 2013
6 | */
7 | export default()=>{let e,t,n,l,i,o,r;function s(){t=document.createElement("div"),t.classList.add("searchbox"),t.style.position="absolute",t.style.top="10px",t.style.right="10px",t.style.zIndex=10,t.innerHTML='\n\t\t',n=t.querySelector(".searchinput"),n.style.width="240px",n.style.fontSize="14px",n.style.padding="4px 6px",n.style.color="#000",n.style.background="#fff",n.style.borderRadius="2px",n.style.border="0",n.style.outline="0",n.style.boxShadow="0 2px 18px rgba(0, 0, 0, 0.2)",n.style["-webkit-appearance"]="none",e.getRevealElement().appendChild(t),n.addEventListener("keyup",(function(t){if(13===t.keyCode)t.preventDefault(),function(){if(o){var t=n.value;""===t?(r&&r.remove(),l=null):(r=new c("slidecontent"),l=r.apply(t),i=0)}l&&(l.length&&l.length<=i&&(i=0),l.length>i&&(e.slide(l[i].h,l[i].v),i++))}(),o=!1;else o=!0}),!1),d()}function a(){t||s(),t.style.display="inline",n.focus(),n.select()}function d(){t||s(),t.style.display="none",r&&r.remove()}function c(t,n){var l=document.getElementById(t)||document.body,i=n||"EM",o=new RegExp("^(?:"+i+"|SCRIPT|FORM)$"),r=["#ff6","#a0ffff","#9f9","#f99","#f6f"],s=[],a=0,d="",c=[];this.setRegex=function(e){e=e.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w'-]+/g,"|"),d=new RegExp("("+e+")","i")},this.getRegex=function(){return d.toString().replace(/^\/\\b\(|\)\\b\/i$/g,"").replace(/\|/g," ")},this.hiliteWords=function(t){if(null!=t&&t&&d&&!o.test(t.nodeName)){if(t.hasChildNodes())for(var n=0;n{e=n,e.registerKeyboardShortcut("CTRL + Shift + F","Search"),document.addEventListener("keydown",(function(e){"F"==e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),t||s(),"inline"!==t.style.display?a():d())}),!1)},open:a}};
8 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec4/lec4.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec4/lec4.pdf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/assets/heti_worker.js:
--------------------------------------------------------------------------------
1 | const heti = new Heti(".slides")
2 | heti.autoSpacing()
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/css/highlight/github.css:
--------------------------------------------------------------------------------
1 | pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
2 | Theme: GitHub
3 | Description: Light theme as seen on github.com
4 | Author: github.com
5 | Maintainer: @Hirse
6 | Updated: 2021-05-15
7 |
8 | Outdated base version: https://github.com/primer/github-syntax-light
9 | Current colors taken from GitHub's CSS
10 | */.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/reset.css:
--------------------------------------------------------------------------------
1 | /* http://meyerweb.com/eric/tools/css/reset/
2 | v4.0 | 20180602
3 | License: none (public domain)
4 | */
5 |
6 | html, body, div, span, applet, object, iframe,
7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8 | a, abbr, acronym, address, big, cite, code,
9 | del, dfn, em, img, ins, kbd, q, s, samp,
10 | small, strike, strong, sub, sup, tt, var,
11 | b, u, i, center,
12 | dl, dt, dd, ol, ul, li,
13 | fieldset, form, label, legend,
14 | table, caption, tbody, tfoot, thead, tr, th, td,
15 | article, aside, canvas, details, embed,
16 | figure, figcaption, footer, header, hgroup,
17 | main, menu, nav, output, ruby, section, summary,
18 | time, mark, audio, video {
19 | margin: 0;
20 | padding: 0;
21 | border: 0;
22 | font-size: 100%;
23 | font: inherit;
24 | vertical-align: baseline;
25 | }
26 | /* HTML5 display-role reset for older browsers */
27 | article, aside, details, figcaption, figure,
28 | footer, header, hgroup, main, menu, nav, section {
29 | display: block;
30 | }
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/league-gothic/LICENSE:
--------------------------------------------------------------------------------
1 | SIL Open Font License (OFL)
2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
3 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/league-gothic/league-gothic.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'League Gothic';
3 | src: url('./league-gothic.eot');
4 | src: url('./league-gothic.eot?#iefix') format('embedded-opentype'),
5 | url('./league-gothic.woff') format('woff'),
6 | url('./league-gothic.ttf') format('truetype');
7 |
8 | font-weight: normal;
9 | font-style: normal;
10 | }
11 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/league-gothic/league-gothic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/league-gothic/league-gothic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/league-gothic/league-gothic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/league-gothic/league-gothic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/league-gothic/league-gothic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/league-gothic/league-gothic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/dist/theme/fonts/source-sans-pro/source-sans-pro.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Source Sans Pro';
3 | src: url('./source-sans-pro-regular.eot');
4 | src: url('./source-sans-pro-regular.eot?#iefix') format('embedded-opentype'),
5 | url('./source-sans-pro-regular.woff') format('woff'),
6 | url('./source-sans-pro-regular.ttf') format('truetype');
7 | font-weight: normal;
8 | font-style: normal;
9 | }
10 |
11 | @font-face {
12 | font-family: 'Source Sans Pro';
13 | src: url('./source-sans-pro-italic.eot');
14 | src: url('./source-sans-pro-italic.eot?#iefix') format('embedded-opentype'),
15 | url('./source-sans-pro-italic.woff') format('woff'),
16 | url('./source-sans-pro-italic.ttf') format('truetype');
17 | font-weight: normal;
18 | font-style: italic;
19 | }
20 |
21 | @font-face {
22 | font-family: 'Source Sans Pro';
23 | src: url('./source-sans-pro-semibold.eot');
24 | src: url('./source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'),
25 | url('./source-sans-pro-semibold.woff') format('woff'),
26 | url('./source-sans-pro-semibold.ttf') format('truetype');
27 | font-weight: 600;
28 | font-style: normal;
29 | }
30 |
31 | @font-face {
32 | font-family: 'Source Sans Pro';
33 | src: url('./source-sans-pro-semibolditalic.eot');
34 | src: url('./source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'),
35 | url('./source-sans-pro-semibolditalic.woff') format('woff'),
36 | url('./source-sans-pro-semibolditalic.ttf') format('truetype');
37 | font-weight: 600;
38 | font-style: italic;
39 | }
40 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/favicon.ico
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/lec5/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/lec5/background.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/lec5/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/lec5/cover.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/lec5/ending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec5/lec5/ending.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/plugin/highlight/monokai.css:
--------------------------------------------------------------------------------
1 | /*
2 | Monokai style - ported by Luigi Maselli - http://grigio.org
3 | */
4 |
5 | .hljs {
6 | display: block;
7 | overflow-x: auto;
8 | padding: 0.5em;
9 | background: #272822;
10 | color: #ddd;
11 | }
12 |
13 | .hljs-tag,
14 | .hljs-keyword,
15 | .hljs-selector-tag,
16 | .hljs-literal,
17 | .hljs-strong,
18 | .hljs-name {
19 | color: #f92672;
20 | }
21 |
22 | .hljs-code {
23 | color: #66d9ef;
24 | }
25 |
26 | .hljs-class .hljs-title {
27 | color: white;
28 | }
29 |
30 | .hljs-attribute,
31 | .hljs-symbol,
32 | .hljs-regexp,
33 | .hljs-link {
34 | color: #bf79db;
35 | }
36 |
37 | .hljs-string,
38 | .hljs-bullet,
39 | .hljs-subst,
40 | .hljs-title,
41 | .hljs-section,
42 | .hljs-emphasis,
43 | .hljs-type,
44 | .hljs-built_in,
45 | .hljs-builtin-name,
46 | .hljs-selector-attr,
47 | .hljs-selector-pseudo,
48 | .hljs-addition,
49 | .hljs-variable,
50 | .hljs-template-tag,
51 | .hljs-template-variable {
52 | color: #a6e22e;
53 | }
54 |
55 | .hljs-comment,
56 | .hljs-quote,
57 | .hljs-deletion,
58 | .hljs-meta {
59 | color: #75715e;
60 | }
61 |
62 | .hljs-keyword,
63 | .hljs-selector-tag,
64 | .hljs-literal,
65 | .hljs-doctag,
66 | .hljs-title,
67 | .hljs-section,
68 | .hljs-type,
69 | .hljs-selector-id {
70 | font-weight: bold;
71 | }
72 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/plugin/highlight/zenburn.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov
4 | based on dark.css by Ivan Sagalaev
5 |
6 | */
7 |
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | background: #3f3f3f;
13 | color: #dcdcdc;
14 | }
15 |
16 | .hljs-keyword,
17 | .hljs-selector-tag,
18 | .hljs-tag {
19 | color: #e3ceab;
20 | }
21 |
22 | .hljs-template-tag {
23 | color: #dcdcdc;
24 | }
25 |
26 | .hljs-number {
27 | color: #8cd0d3;
28 | }
29 |
30 | .hljs-variable,
31 | .hljs-template-variable,
32 | .hljs-attribute {
33 | color: #efdcbc;
34 | }
35 |
36 | .hljs-literal {
37 | color: #efefaf;
38 | }
39 |
40 | .hljs-subst {
41 | color: #8f8f8f;
42 | }
43 |
44 | .hljs-title,
45 | .hljs-name,
46 | .hljs-selector-id,
47 | .hljs-selector-class,
48 | .hljs-section,
49 | .hljs-type {
50 | color: #efef8f;
51 | }
52 |
53 | .hljs-symbol,
54 | .hljs-bullet,
55 | .hljs-link {
56 | color: #dca3a3;
57 | }
58 |
59 | .hljs-deletion,
60 | .hljs-string,
61 | .hljs-built_in,
62 | .hljs-builtin-name {
63 | color: #cc9393;
64 | }
65 |
66 | .hljs-addition,
67 | .hljs-comment,
68 | .hljs-quote,
69 | .hljs-meta {
70 | color: #7f9f7f;
71 | }
72 |
73 |
74 | .hljs-emphasis {
75 | font-style: italic;
76 | }
77 |
78 | .hljs-strong {
79 | font-weight: bold;
80 | }
81 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/plugin/math/mathjax2.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A plugin which enables rendering of math equations inside
3 | * of reveal.js slides. Essentially a thin wrapper for MathJax.
4 | *
5 | * @author Hakim El Hattab
6 | */
7 | export const MathJax2 = () => {
8 |
9 | // The reveal.js instance this plugin is attached to
10 | let deck;
11 |
12 | let defaultOptions = {
13 | messageStyle: 'none',
14 | tex2jax: {
15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ],
16 | skipTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
17 | },
18 | skipStartupTypeset: true
19 | };
20 |
21 | function loadScript( url, callback ) {
22 |
23 | let head = document.querySelector( 'head' );
24 | let script = document.createElement( 'script' );
25 | script.type = 'text/javascript';
26 | script.src = url;
27 |
28 | // Wrapper for callback to make sure it only fires once
29 | let finish = () => {
30 | if( typeof callback === 'function' ) {
31 | callback.call();
32 | callback = null;
33 | }
34 | }
35 |
36 | script.onload = finish;
37 |
38 | // IE
39 | script.onreadystatechange = () => {
40 | if ( this.readyState === 'loaded' ) {
41 | finish();
42 | }
43 | }
44 |
45 | // Normal browsers
46 | head.appendChild( script );
47 |
48 | }
49 |
50 | return {
51 | id: 'mathjax2',
52 |
53 | init: function( reveal ) {
54 |
55 | deck = reveal;
56 |
57 | let revealOptions = deck.getConfig().mathjax2 || deck.getConfig().math || {};
58 |
59 | let options = { ...defaultOptions, ...revealOptions };
60 | let mathjax = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js';
61 | let config = options.config || 'TeX-AMS_HTML-full';
62 | let url = mathjax + '?config=' + config;
63 |
64 | options.tex2jax = { ...defaultOptions.tex2jax, ...revealOptions.tex2jax };
65 |
66 | options.mathjax = options.config = null;
67 |
68 | loadScript( url, function() {
69 |
70 | MathJax.Hub.Config( options );
71 |
72 | // Typeset followed by an immediate reveal.js layout since
73 | // the typesetting process could affect slide height
74 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, deck.getRevealElement() ] );
75 | MathJax.Hub.Queue( deck.layout );
76 |
77 | // Reprocess equations in slides when they turn visible
78 | deck.on( 'slidechanged', function( event ) {
79 |
80 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
81 |
82 | } );
83 |
84 | } );
85 |
86 | }
87 | }
88 |
89 | };
90 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/plugin/math/mathjax3.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A plugin which enables rendering of math equations inside
3 | * of reveal.js slides. Essentially a thin wrapper for MathJax 3
4 | *
5 | * @author Hakim El Hattab
6 | * @author Gerhard Burger
7 | */
8 | export const MathJax3 = () => {
9 |
10 | // The reveal.js instance this plugin is attached to
11 | let deck;
12 |
13 | let defaultOptions = {
14 | tex: {
15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ]
16 | },
17 | options: {
18 | skipHtmlTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
19 | },
20 | startup: {
21 | ready: () => {
22 | MathJax.startup.defaultReady();
23 | MathJax.startup.promise.then(() => {
24 | Reveal.layout();
25 | });
26 | }
27 | }
28 | };
29 |
30 | function loadScript( url, callback ) {
31 |
32 | let script = document.createElement( 'script' );
33 | script.type = "text/javascript"
34 | script.id = "MathJax-script"
35 | script.src = url;
36 | script.async = true
37 |
38 | // Wrapper for callback to make sure it only fires once
39 | script.onload = () => {
40 | if (typeof callback === 'function') {
41 | callback.call();
42 | callback = null;
43 | }
44 | };
45 |
46 | document.head.appendChild( script );
47 |
48 | }
49 |
50 | return {
51 | id: 'mathjax3',
52 | init: function(reveal) {
53 |
54 | deck = reveal;
55 |
56 | let revealOptions = deck.getConfig().mathjax3 || {};
57 | let options = {...defaultOptions, ...revealOptions};
58 | options.tex = {...defaultOptions.tex, ...revealOptions.tex}
59 | options.options = {...defaultOptions.options, ...revealOptions.options}
60 | options.startup = {...defaultOptions.startup, ...revealOptions.startup}
61 |
62 | let url = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js';
63 | options.mathjax = null;
64 |
65 | window.MathJax = options;
66 |
67 | loadScript( url, function() {
68 | // Reprocess equations in slides when they turn visible
69 | Reveal.addEventListener( 'slidechanged', function( event ) {
70 | MathJax.typeset();
71 | } );
72 | } );
73 |
74 | }
75 | }
76 |
77 | };
78 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec5/plugin/math/plugin.js:
--------------------------------------------------------------------------------
1 | import {KaTeX} from "./katex";
2 | import {MathJax2} from "./mathjax2";
3 | import {MathJax3} from "./mathjax3";
4 |
5 | const defaultTypesetter = MathJax2;
6 |
7 | /*!
8 | * This plugin is a wrapper for the MathJax2,
9 | * MathJax3 and KaTeX typesetter plugins.
10 | */
11 | export default Plugin = Object.assign( defaultTypesetter(), {
12 | KaTeX,
13 | MathJax2,
14 | MathJax3
15 | } );
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/assets/heti_worker.js:
--------------------------------------------------------------------------------
1 | const heti = new Heti(".slides")
2 | heti.autoSpacing()
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/css/highlight/github.css:
--------------------------------------------------------------------------------
1 | pre code.hljs {
2 | display: block;
3 | overflow-x: auto;
4 | padding: 1em
5 | }
6 | code.hljs {
7 | padding: 3px 5px
8 | }
9 | /*!
10 | Theme: GitHub
11 | Description: Light theme as seen on github.com
12 | Author: github.com
13 | Maintainer: @Hirse
14 | Updated: 2021-05-15
15 |
16 | Outdated base version: https://github.com/primer/github-syntax-light
17 | Current colors taken from GitHub's CSS
18 | */
19 | .hljs {
20 | color: #24292e;
21 | background: #ffffff
22 | }
23 | .hljs-doctag,
24 | .hljs-keyword,
25 | .hljs-meta .hljs-keyword,
26 | .hljs-template-tag,
27 | .hljs-template-variable,
28 | .hljs-type,
29 | .hljs-variable.language_ {
30 | /* prettylights-syntax-keyword */
31 | color: #d73a49
32 | }
33 | .hljs-title,
34 | .hljs-title.class_,
35 | .hljs-title.class_.inherited__,
36 | .hljs-title.function_ {
37 | /* prettylights-syntax-entity */
38 | color: #6f42c1
39 | }
40 | .hljs-attr,
41 | .hljs-attribute,
42 | .hljs-literal,
43 | .hljs-meta,
44 | .hljs-number,
45 | .hljs-operator,
46 | .hljs-variable,
47 | .hljs-selector-attr,
48 | .hljs-selector-class,
49 | .hljs-selector-id {
50 | /* prettylights-syntax-constant */
51 | color: #005cc5
52 | }
53 | .hljs-regexp,
54 | .hljs-string,
55 | .hljs-meta .hljs-string {
56 | /* prettylights-syntax-string */
57 | color: #032f62
58 | }
59 | .hljs-built_in,
60 | .hljs-symbol {
61 | /* prettylights-syntax-variable */
62 | color: #e36209
63 | }
64 | .hljs-comment,
65 | .hljs-code,
66 | .hljs-formula {
67 | /* prettylights-syntax-comment */
68 | color: #6a737d
69 | }
70 | .hljs-name,
71 | .hljs-quote,
72 | .hljs-selector-tag,
73 | .hljs-selector-pseudo {
74 | /* prettylights-syntax-entity-tag */
75 | color: #22863a
76 | }
77 | .hljs-subst {
78 | /* prettylights-syntax-storage-modifier-import */
79 | color: #24292e
80 | }
81 | .hljs-section {
82 | /* prettylights-syntax-markup-heading */
83 | color: #005cc5;
84 | font-weight: bold
85 | }
86 | .hljs-bullet {
87 | /* prettylights-syntax-markup-list */
88 | color: #735c0f
89 | }
90 | .hljs-emphasis {
91 | /* prettylights-syntax-markup-italic */
92 | color: #24292e;
93 | font-style: italic
94 | }
95 | .hljs-strong {
96 | /* prettylights-syntax-markup-bold */
97 | color: #24292e;
98 | font-weight: bold
99 | }
100 | .hljs-addition {
101 | /* prettylights-syntax-markup-inserted */
102 | color: #22863a;
103 | background-color: #f0fff4
104 | }
105 | .hljs-deletion {
106 | /* prettylights-syntax-markup-deleted */
107 | color: #b31d28;
108 | background-color: #ffeef0
109 | }
110 | .hljs-char.escape_,
111 | .hljs-link,
112 | .hljs-params,
113 | .hljs-property,
114 | .hljs-punctuation,
115 | .hljs-tag {
116 | /* purposely ignored */
117 |
118 | }
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/reset.css:
--------------------------------------------------------------------------------
1 | /* http://meyerweb.com/eric/tools/css/reset/
2 | v4.0 | 20180602
3 | License: none (public domain)
4 | */
5 |
6 | html, body, div, span, applet, object, iframe,
7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8 | a, abbr, acronym, address, big, cite, code,
9 | del, dfn, em, img, ins, kbd, q, s, samp,
10 | small, strike, strong, sub, sup, tt, var,
11 | b, u, i, center,
12 | dl, dt, dd, ol, ul, li,
13 | fieldset, form, label, legend,
14 | table, caption, tbody, tfoot, thead, tr, th, td,
15 | article, aside, canvas, details, embed,
16 | figure, figcaption, footer, header, hgroup,
17 | main, menu, nav, output, ruby, section, summary,
18 | time, mark, audio, video {
19 | margin: 0;
20 | padding: 0;
21 | border: 0;
22 | font-size: 100%;
23 | font: inherit;
24 | vertical-align: baseline;
25 | }
26 | /* HTML5 display-role reset for older browsers */
27 | article, aside, details, figcaption, figure,
28 | footer, header, hgroup, main, menu, nav, section {
29 | display: block;
30 | }
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/league-gothic/LICENSE:
--------------------------------------------------------------------------------
1 | SIL Open Font License (OFL)
2 | http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
3 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/league-gothic/league-gothic.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'League Gothic';
3 | src: url('./league-gothic.eot');
4 | src: url('./league-gothic.eot?#iefix') format('embedded-opentype'),
5 | url('./league-gothic.woff') format('woff'),
6 | url('./league-gothic.ttf') format('truetype');
7 |
8 | font-weight: normal;
9 | font-style: normal;
10 | }
11 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/league-gothic/league-gothic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/league-gothic/league-gothic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/league-gothic/league-gothic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/league-gothic/league-gothic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/league-gothic/league-gothic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/league-gothic/league-gothic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/dist/theme/fonts/source-sans-pro/source-sans-pro.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Source Sans Pro';
3 | src: url('./source-sans-pro-regular.eot');
4 | src: url('./source-sans-pro-regular.eot?#iefix') format('embedded-opentype'),
5 | url('./source-sans-pro-regular.woff') format('woff'),
6 | url('./source-sans-pro-regular.ttf') format('truetype');
7 | font-weight: normal;
8 | font-style: normal;
9 | }
10 |
11 | @font-face {
12 | font-family: 'Source Sans Pro';
13 | src: url('./source-sans-pro-italic.eot');
14 | src: url('./source-sans-pro-italic.eot?#iefix') format('embedded-opentype'),
15 | url('./source-sans-pro-italic.woff') format('woff'),
16 | url('./source-sans-pro-italic.ttf') format('truetype');
17 | font-weight: normal;
18 | font-style: italic;
19 | }
20 |
21 | @font-face {
22 | font-family: 'Source Sans Pro';
23 | src: url('./source-sans-pro-semibold.eot');
24 | src: url('./source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'),
25 | url('./source-sans-pro-semibold.woff') format('woff'),
26 | url('./source-sans-pro-semibold.ttf') format('truetype');
27 | font-weight: 600;
28 | font-style: normal;
29 | }
30 |
31 | @font-face {
32 | font-family: 'Source Sans Pro';
33 | src: url('./source-sans-pro-semibolditalic.eot');
34 | src: url('./source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'),
35 | url('./source-sans-pro-semibolditalic.woff') format('woff'),
36 | url('./source-sans-pro-semibolditalic.ttf') format('truetype');
37 | font-weight: 600;
38 | font-style: italic;
39 | }
40 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/favicon.ico
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/lec6/Arpanet_logical_map,_march_1977.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/lec6/Arpanet_logical_map,_march_1977.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/lec6/URI_syntax_diagram.svg.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/lec6/URI_syntax_diagram.svg.avif
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/lec6/WebAssembly_logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/lec6/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/lec6/background.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/lec6/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/lec6/cover.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/lec6/ending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/lec6/ending.png
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/lec6/ipv4-octet.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/lec6/ipv4-octet.avif
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/lec6/localhost-meme.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/lec6/localhost-meme.avif
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/lec6/protocol-stack.svg.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/lec6/protocol-stack.svg.avif
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/lec6/tcp-udp-meme.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/lec6/tcp-udp-meme.avif
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/lec6/udp-teapot.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | # socat UDP-RECVFROM:39200,reuseaddr,fork EXEC:"python3 udp-teapot.py"
4 |
5 | import random
6 | from datetime import datetime
7 |
8 |
9 | PORT = 39200
10 |
11 | message = f"""
12 | ===== PRACTICAL SKILLS TUTORIAL: LECTURE 6 =====
13 |
14 | Hello! This is a UDP server hosted on port {PORT}.
15 | Seeing this message means that the server has received a message from you:
16 |
17 | \t"{input()}"
18 |
19 | Unlike TCP, UDP is connectionless. Every message you send is treated as a separate packet.
20 | Which means, if you send another message, you will see this message again.
21 |
22 | The current time is {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}.
23 | Press Ctrl-C to quit."""
24 |
25 | if random.randint(1, 5) == 1:
26 | message = message.replace('server', 'teapot')
27 |
28 | print(message)
29 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/lec6/zju-cert.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/site/2023-fall-ckc/lec6/lec6/zju-cert.avif
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/plugin/highlight/monokai.css:
--------------------------------------------------------------------------------
1 | /*
2 | Monokai style - ported by Luigi Maselli - http://grigio.org
3 | */
4 |
5 | .hljs {
6 | display: block;
7 | overflow-x: auto;
8 | padding: 0.5em;
9 | background: #272822;
10 | color: #ddd;
11 | }
12 |
13 | .hljs-tag,
14 | .hljs-keyword,
15 | .hljs-selector-tag,
16 | .hljs-literal,
17 | .hljs-strong,
18 | .hljs-name {
19 | color: #f92672;
20 | }
21 |
22 | .hljs-code {
23 | color: #66d9ef;
24 | }
25 |
26 | .hljs-class .hljs-title {
27 | color: white;
28 | }
29 |
30 | .hljs-attribute,
31 | .hljs-symbol,
32 | .hljs-regexp,
33 | .hljs-link {
34 | color: #bf79db;
35 | }
36 |
37 | .hljs-string,
38 | .hljs-bullet,
39 | .hljs-subst,
40 | .hljs-title,
41 | .hljs-section,
42 | .hljs-emphasis,
43 | .hljs-type,
44 | .hljs-built_in,
45 | .hljs-builtin-name,
46 | .hljs-selector-attr,
47 | .hljs-selector-pseudo,
48 | .hljs-addition,
49 | .hljs-variable,
50 | .hljs-template-tag,
51 | .hljs-template-variable {
52 | color: #a6e22e;
53 | }
54 |
55 | .hljs-comment,
56 | .hljs-quote,
57 | .hljs-deletion,
58 | .hljs-meta {
59 | color: #75715e;
60 | }
61 |
62 | .hljs-keyword,
63 | .hljs-selector-tag,
64 | .hljs-literal,
65 | .hljs-doctag,
66 | .hljs-title,
67 | .hljs-section,
68 | .hljs-type,
69 | .hljs-selector-id {
70 | font-weight: bold;
71 | }
72 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/plugin/highlight/zenburn.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov
4 | based on dark.css by Ivan Sagalaev
5 |
6 | */
7 |
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | background: #3f3f3f;
13 | color: #dcdcdc;
14 | }
15 |
16 | .hljs-keyword,
17 | .hljs-selector-tag,
18 | .hljs-tag {
19 | color: #e3ceab;
20 | }
21 |
22 | .hljs-template-tag {
23 | color: #dcdcdc;
24 | }
25 |
26 | .hljs-number {
27 | color: #8cd0d3;
28 | }
29 |
30 | .hljs-variable,
31 | .hljs-template-variable,
32 | .hljs-attribute {
33 | color: #efdcbc;
34 | }
35 |
36 | .hljs-literal {
37 | color: #efefaf;
38 | }
39 |
40 | .hljs-subst {
41 | color: #8f8f8f;
42 | }
43 |
44 | .hljs-title,
45 | .hljs-name,
46 | .hljs-selector-id,
47 | .hljs-selector-class,
48 | .hljs-section,
49 | .hljs-type {
50 | color: #efef8f;
51 | }
52 |
53 | .hljs-symbol,
54 | .hljs-bullet,
55 | .hljs-link {
56 | color: #dca3a3;
57 | }
58 |
59 | .hljs-deletion,
60 | .hljs-string,
61 | .hljs-built_in,
62 | .hljs-builtin-name {
63 | color: #cc9393;
64 | }
65 |
66 | .hljs-addition,
67 | .hljs-comment,
68 | .hljs-quote,
69 | .hljs-meta {
70 | color: #7f9f7f;
71 | }
72 |
73 |
74 | .hljs-emphasis {
75 | font-style: italic;
76 | }
77 |
78 | .hljs-strong {
79 | font-weight: bold;
80 | }
81 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/plugin/math/mathjax2.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A plugin which enables rendering of math equations inside
3 | * of reveal.js slides. Essentially a thin wrapper for MathJax.
4 | *
5 | * @author Hakim El Hattab
6 | */
7 | export const MathJax2 = () => {
8 |
9 | // The reveal.js instance this plugin is attached to
10 | let deck;
11 |
12 | let defaultOptions = {
13 | messageStyle: 'none',
14 | tex2jax: {
15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ],
16 | skipTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
17 | },
18 | skipStartupTypeset: true
19 | };
20 |
21 | function loadScript( url, callback ) {
22 |
23 | let head = document.querySelector( 'head' );
24 | let script = document.createElement( 'script' );
25 | script.type = 'text/javascript';
26 | script.src = url;
27 |
28 | // Wrapper for callback to make sure it only fires once
29 | let finish = () => {
30 | if( typeof callback === 'function' ) {
31 | callback.call();
32 | callback = null;
33 | }
34 | }
35 |
36 | script.onload = finish;
37 |
38 | // IE
39 | script.onreadystatechange = () => {
40 | if ( this.readyState === 'loaded' ) {
41 | finish();
42 | }
43 | }
44 |
45 | // Normal browsers
46 | head.appendChild( script );
47 |
48 | }
49 |
50 | return {
51 | id: 'mathjax2',
52 |
53 | init: function( reveal ) {
54 |
55 | deck = reveal;
56 |
57 | let revealOptions = deck.getConfig().mathjax2 || deck.getConfig().math || {};
58 |
59 | let options = { ...defaultOptions, ...revealOptions };
60 | let mathjax = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js';
61 | let config = options.config || 'TeX-AMS_HTML-full';
62 | let url = mathjax + '?config=' + config;
63 |
64 | options.tex2jax = { ...defaultOptions.tex2jax, ...revealOptions.tex2jax };
65 |
66 | options.mathjax = options.config = null;
67 |
68 | loadScript( url, function() {
69 |
70 | MathJax.Hub.Config( options );
71 |
72 | // Typeset followed by an immediate reveal.js layout since
73 | // the typesetting process could affect slide height
74 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, deck.getRevealElement() ] );
75 | MathJax.Hub.Queue( deck.layout );
76 |
77 | // Reprocess equations in slides when they turn visible
78 | deck.on( 'slidechanged', function( event ) {
79 |
80 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
81 |
82 | } );
83 |
84 | } );
85 |
86 | }
87 | }
88 |
89 | };
90 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/plugin/math/mathjax3.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A plugin which enables rendering of math equations inside
3 | * of reveal.js slides. Essentially a thin wrapper for MathJax 3
4 | *
5 | * @author Hakim El Hattab
6 | * @author Gerhard Burger
7 | */
8 | export const MathJax3 = () => {
9 |
10 | // The reveal.js instance this plugin is attached to
11 | let deck;
12 |
13 | let defaultOptions = {
14 | tex: {
15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ]
16 | },
17 | options: {
18 | skipHtmlTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
19 | },
20 | startup: {
21 | ready: () => {
22 | MathJax.startup.defaultReady();
23 | MathJax.startup.promise.then(() => {
24 | Reveal.layout();
25 | });
26 | }
27 | }
28 | };
29 |
30 | function loadScript( url, callback ) {
31 |
32 | let script = document.createElement( 'script' );
33 | script.type = "text/javascript"
34 | script.id = "MathJax-script"
35 | script.src = url;
36 | script.async = true
37 |
38 | // Wrapper for callback to make sure it only fires once
39 | script.onload = () => {
40 | if (typeof callback === 'function') {
41 | callback.call();
42 | callback = null;
43 | }
44 | };
45 |
46 | document.head.appendChild( script );
47 |
48 | }
49 |
50 | return {
51 | id: 'mathjax3',
52 | init: function(reveal) {
53 |
54 | deck = reveal;
55 |
56 | let revealOptions = deck.getConfig().mathjax3 || {};
57 | let options = {...defaultOptions, ...revealOptions};
58 | options.tex = {...defaultOptions.tex, ...revealOptions.tex}
59 | options.options = {...defaultOptions.options, ...revealOptions.options}
60 | options.startup = {...defaultOptions.startup, ...revealOptions.startup}
61 |
62 | let url = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js';
63 | options.mathjax = null;
64 |
65 | window.MathJax = options;
66 |
67 | loadScript( url, function() {
68 | // Reprocess equations in slides when they turn visible
69 | Reveal.addEventListener( 'slidechanged', function( event ) {
70 | MathJax.typeset();
71 | } );
72 | } );
73 |
74 | }
75 | }
76 |
77 | };
78 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/lec6/plugin/math/plugin.js:
--------------------------------------------------------------------------------
1 | import {KaTeX} from "./katex";
2 | import {MathJax2} from "./mathjax2";
3 | import {MathJax3} from "./mathjax3";
4 |
5 | const defaultTypesetter = MathJax2;
6 |
7 | /*!
8 | * This plugin is a wrapper for the MathJax2,
9 | * MathJax3 and KaTeX typesetter plugins.
10 | */
11 | export default Plugin = Object.assign( defaultTypesetter(), {
12 | KaTeX,
13 | MathJax2,
14 | MathJax3
15 | } );
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/plugin/highlight/monokai.css:
--------------------------------------------------------------------------------
1 | /*
2 | Monokai style - ported by Luigi Maselli - http://grigio.org
3 | */
4 |
5 | .hljs {
6 | display: block;
7 | overflow-x: auto;
8 | padding: 0.5em;
9 | background: #272822;
10 | color: #ddd;
11 | }
12 |
13 | .hljs-tag,
14 | .hljs-keyword,
15 | .hljs-selector-tag,
16 | .hljs-literal,
17 | .hljs-strong,
18 | .hljs-name {
19 | color: #f92672;
20 | }
21 |
22 | .hljs-code {
23 | color: #66d9ef;
24 | }
25 |
26 | .hljs-class .hljs-title {
27 | color: white;
28 | }
29 |
30 | .hljs-attribute,
31 | .hljs-symbol,
32 | .hljs-regexp,
33 | .hljs-link {
34 | color: #bf79db;
35 | }
36 |
37 | .hljs-string,
38 | .hljs-bullet,
39 | .hljs-subst,
40 | .hljs-title,
41 | .hljs-section,
42 | .hljs-emphasis,
43 | .hljs-type,
44 | .hljs-built_in,
45 | .hljs-builtin-name,
46 | .hljs-selector-attr,
47 | .hljs-selector-pseudo,
48 | .hljs-addition,
49 | .hljs-variable,
50 | .hljs-template-tag,
51 | .hljs-template-variable {
52 | color: #a6e22e;
53 | }
54 |
55 | .hljs-comment,
56 | .hljs-quote,
57 | .hljs-deletion,
58 | .hljs-meta {
59 | color: #75715e;
60 | }
61 |
62 | .hljs-keyword,
63 | .hljs-selector-tag,
64 | .hljs-literal,
65 | .hljs-doctag,
66 | .hljs-title,
67 | .hljs-section,
68 | .hljs-type,
69 | .hljs-selector-id {
70 | font-weight: bold;
71 | }
72 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/plugin/highlight/zenburn.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov
4 | based on dark.css by Ivan Sagalaev
5 |
6 | */
7 |
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | background: #3f3f3f;
13 | color: #dcdcdc;
14 | }
15 |
16 | .hljs-keyword,
17 | .hljs-selector-tag,
18 | .hljs-tag {
19 | color: #e3ceab;
20 | }
21 |
22 | .hljs-template-tag {
23 | color: #dcdcdc;
24 | }
25 |
26 | .hljs-number {
27 | color: #8cd0d3;
28 | }
29 |
30 | .hljs-variable,
31 | .hljs-template-variable,
32 | .hljs-attribute {
33 | color: #efdcbc;
34 | }
35 |
36 | .hljs-literal {
37 | color: #efefaf;
38 | }
39 |
40 | .hljs-subst {
41 | color: #8f8f8f;
42 | }
43 |
44 | .hljs-title,
45 | .hljs-name,
46 | .hljs-selector-id,
47 | .hljs-selector-class,
48 | .hljs-section,
49 | .hljs-type {
50 | color: #efef8f;
51 | }
52 |
53 | .hljs-symbol,
54 | .hljs-bullet,
55 | .hljs-link {
56 | color: #dca3a3;
57 | }
58 |
59 | .hljs-deletion,
60 | .hljs-string,
61 | .hljs-built_in,
62 | .hljs-builtin-name {
63 | color: #cc9393;
64 | }
65 |
66 | .hljs-addition,
67 | .hljs-comment,
68 | .hljs-quote,
69 | .hljs-meta {
70 | color: #7f9f7f;
71 | }
72 |
73 |
74 | .hljs-emphasis {
75 | font-style: italic;
76 | }
77 |
78 | .hljs-strong {
79 | font-weight: bold;
80 | }
81 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/plugin/math/mathjax2.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A plugin which enables rendering of math equations inside
3 | * of reveal.js slides. Essentially a thin wrapper for MathJax.
4 | *
5 | * @author Hakim El Hattab
6 | */
7 | export const MathJax2 = () => {
8 |
9 | // The reveal.js instance this plugin is attached to
10 | let deck;
11 |
12 | let defaultOptions = {
13 | messageStyle: 'none',
14 | tex2jax: {
15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ],
16 | skipTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
17 | },
18 | skipStartupTypeset: true
19 | };
20 |
21 | function loadScript( url, callback ) {
22 |
23 | let head = document.querySelector( 'head' );
24 | let script = document.createElement( 'script' );
25 | script.type = 'text/javascript';
26 | script.src = url;
27 |
28 | // Wrapper for callback to make sure it only fires once
29 | let finish = () => {
30 | if( typeof callback === 'function' ) {
31 | callback.call();
32 | callback = null;
33 | }
34 | }
35 |
36 | script.onload = finish;
37 |
38 | // IE
39 | script.onreadystatechange = () => {
40 | if ( this.readyState === 'loaded' ) {
41 | finish();
42 | }
43 | }
44 |
45 | // Normal browsers
46 | head.appendChild( script );
47 |
48 | }
49 |
50 | return {
51 | id: 'mathjax2',
52 |
53 | init: function( reveal ) {
54 |
55 | deck = reveal;
56 |
57 | let revealOptions = deck.getConfig().mathjax2 || deck.getConfig().math || {};
58 |
59 | let options = { ...defaultOptions, ...revealOptions };
60 | let mathjax = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js';
61 | let config = options.config || 'TeX-AMS_HTML-full';
62 | let url = mathjax + '?config=' + config;
63 |
64 | options.tex2jax = { ...defaultOptions.tex2jax, ...revealOptions.tex2jax };
65 |
66 | options.mathjax = options.config = null;
67 |
68 | loadScript( url, function() {
69 |
70 | MathJax.Hub.Config( options );
71 |
72 | // Typeset followed by an immediate reveal.js layout since
73 | // the typesetting process could affect slide height
74 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, deck.getRevealElement() ] );
75 | MathJax.Hub.Queue( deck.layout );
76 |
77 | // Reprocess equations in slides when they turn visible
78 | deck.on( 'slidechanged', function( event ) {
79 |
80 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
81 |
82 | } );
83 |
84 | } );
85 |
86 | }
87 | }
88 |
89 | };
90 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/plugin/math/mathjax3.js:
--------------------------------------------------------------------------------
1 | /**
2 | * A plugin which enables rendering of math equations inside
3 | * of reveal.js slides. Essentially a thin wrapper for MathJax 3
4 | *
5 | * @author Hakim El Hattab
6 | * @author Gerhard Burger
7 | */
8 | export const MathJax3 = () => {
9 |
10 | // The reveal.js instance this plugin is attached to
11 | let deck;
12 |
13 | let defaultOptions = {
14 | tex: {
15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ]
16 | },
17 | options: {
18 | skipHtmlTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ]
19 | },
20 | startup: {
21 | ready: () => {
22 | MathJax.startup.defaultReady();
23 | MathJax.startup.promise.then(() => {
24 | Reveal.layout();
25 | });
26 | }
27 | }
28 | };
29 |
30 | function loadScript( url, callback ) {
31 |
32 | let script = document.createElement( 'script' );
33 | script.type = "text/javascript"
34 | script.id = "MathJax-script"
35 | script.src = url;
36 | script.async = true
37 |
38 | // Wrapper for callback to make sure it only fires once
39 | script.onload = () => {
40 | if (typeof callback === 'function') {
41 | callback.call();
42 | callback = null;
43 | }
44 | };
45 |
46 | document.head.appendChild( script );
47 |
48 | }
49 |
50 | return {
51 | id: 'mathjax3',
52 | init: function(reveal) {
53 |
54 | deck = reveal;
55 |
56 | let revealOptions = deck.getConfig().mathjax3 || {};
57 | let options = {...defaultOptions, ...revealOptions};
58 | options.tex = {...defaultOptions.tex, ...revealOptions.tex}
59 | options.options = {...defaultOptions.options, ...revealOptions.options}
60 | options.startup = {...defaultOptions.startup, ...revealOptions.startup}
61 |
62 | let url = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js';
63 | options.mathjax = null;
64 |
65 | window.MathJax = options;
66 |
67 | loadScript( url, function() {
68 | // Reprocess equations in slides when they turn visible
69 | Reveal.addEventListener( 'slidechanged', function( event ) {
70 | MathJax.typeset();
71 | } );
72 | } );
73 |
74 | }
75 | }
76 |
77 | };
78 |
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/plugin/math/plugin.js:
--------------------------------------------------------------------------------
1 | import {KaTeX} from "./katex";
2 | import {MathJax2} from "./mathjax2";
3 | import {MathJax3} from "./mathjax3";
4 |
5 | const defaultTypesetter = MathJax2;
6 |
7 | /*!
8 | * This plugin is a wrapper for the MathJax2,
9 | * MathJax3 and KaTeX typesetter plugins.
10 | */
11 | export default Plugin = Object.assign( defaultTypesetter(), {
12 | KaTeX,
13 | MathJax2,
14 | MathJax3
15 | } );
--------------------------------------------------------------------------------
/slides/site/2023-fall-ckc/plugin/search/search.esm.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Handles finding a text string anywhere in the slides and showing the next occurrence to the user
3 | * by navigatating to that slide and highlighting it.
4 | *
5 | * @author Jon Snyder , February 2013
6 | */
7 | export default()=>{let e,t,n,l,i,o,r;function s(){t=document.createElement("div"),t.classList.add("searchbox"),t.style.position="absolute",t.style.top="10px",t.style.right="10px",t.style.zIndex=10,t.innerHTML='\n\t\t',n=t.querySelector(".searchinput"),n.style.width="240px",n.style.fontSize="14px",n.style.padding="4px 6px",n.style.color="#000",n.style.background="#fff",n.style.borderRadius="2px",n.style.border="0",n.style.outline="0",n.style.boxShadow="0 2px 18px rgba(0, 0, 0, 0.2)",n.style["-webkit-appearance"]="none",e.getRevealElement().appendChild(t),n.addEventListener("keyup",(function(t){if(13===t.keyCode)t.preventDefault(),function(){if(o){var t=n.value;""===t?(r&&r.remove(),l=null):(r=new c("slidecontent"),l=r.apply(t),i=0)}l&&(l.length&&l.length<=i&&(i=0),l.length>i&&(e.slide(l[i].h,l[i].v),i++))}(),o=!1;else o=!0}),!1),d()}function a(){t||s(),t.style.display="inline",n.focus(),n.select()}function d(){t||s(),t.style.display="none",r&&r.remove()}function c(t,n){var l=document.getElementById(t)||document.body,i=n||"EM",o=new RegExp("^(?:"+i+"|SCRIPT|FORM)$"),r=["#ff6","#a0ffff","#9f9","#f99","#f6f"],s=[],a=0,d="",c=[];this.setRegex=function(e){e=e.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w'-]+/g,"|"),d=new RegExp("("+e+")","i")},this.getRegex=function(){return d.toString().replace(/^\/\\b\(|\)\\b\/i$/g,"").replace(/\|/g," ")},this.hiliteWords=function(t){if(null!=t&&t&&d&&!o.test(t.nodeName)){if(t.hasChildNodes())for(var n=0;n{e=n,e.registerKeyboardShortcut("CTRL + Shift + F","Search"),document.addEventListener("keydown",(function(e){"F"==e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),t||s(),"inline"!==t.style.display?a():d())}),!1)},open:a}};
8 |
--------------------------------------------------------------------------------
/slides/src/Makefile:
--------------------------------------------------------------------------------
1 | LECNO = 0
2 | FLAGS = --scripts https://cdn.tonycrane.cc/heti/heti.js,heti_worker.js --template template.html
3 | BASE_DIR = ../site/2023-fall-ckc
4 |
5 | .PHONY: live build all clean live-home build-home
6 |
7 | live:
8 | @echo "Previewing lec$(LECNO) slides..."
9 | -@reveal-md lec$(LECNO).md -w $(FLAGS) || true
10 |
11 | build:
12 | @echo "Building lec$(LECNO) slides..."
13 | ifeq ($(LECNO), 4)
14 | @latexmk -xelatex -shell-escape -interaction=nonstopmode -file-line-error -output-directory=build lec$(LECNO).tex
15 | @rm -f $(BASE_DIR)/lec$(LECNO)/lec$(LECNO).pdf
16 | @cp -r build/lec$(LECNO).pdf $(BASE_DIR)/lec$(LECNO)/
17 | else
18 | @reveal-md lec$(LECNO).md $(FLAGS) --static $(BASE_DIR)/lec$(LECNO) --assets-dir assets
19 | @rm $(BASE_DIR)/lec$(LECNO)/lec$(LECNO).html
20 | @cp -r lec$(LECNO) $(BASE_DIR)/lec$(LECNO)/
21 | endif
22 |
23 | live-home:
24 | @echo "Previewing home slides..."
25 | -@reveal-md home.md -w $(FLAGS) || true
26 |
27 | build-home:
28 | @echo "Building home slides..."
29 | @reveal-md home.md $(FLAGS) --static $(BASE_DIR) --assets-dir assets
30 | @rm $(BASE_DIR)/home.html
31 |
32 | all:
33 | @echo "Building all slides..."
34 | @make build-home
35 | @for i in `seq 0 6`; do \
36 | make LECNO=$$i build; \
37 | done
38 |
39 | clean:
40 | @echo "Cleaning up..."
41 | rm -rf ../../site/
42 |
--------------------------------------------------------------------------------
/slides/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/favicon.ico
--------------------------------------------------------------------------------
/slides/src/heti_worker.js:
--------------------------------------------------------------------------------
1 | const heti = new Heti(".slides")
2 | heti.autoSpacing()
--------------------------------------------------------------------------------
/slides/src/home.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 2023秋冬实用技能拾遗
3 | separator:
4 | verticalSeparator:
5 | theme: simple
6 | highlightTheme: github
7 | css: custom.css
8 | revealOptions:
9 | transition: 'slide'
10 | transitionSpeed: fast
11 | center: false
12 | slideNumber: "c/t"
13 | width: 1000
14 | showSlideNumber: none
15 | ---
16 |
17 |
34 |
35 |
36 |
37 | ## 「实用技能拾遗」课程资料
38 |
39 | 2023 年秋冬学期竺可桢学院学业指导中心辅学计划
40 |
41 | 程序设计辅学精品课 ——「实用技能拾遗」课程资料网站
42 |
43 | By [@TonyCrane](https://github.com/TonyCrane) & [@45gfg9](https://github.com/45gfg9)
44 |
45 |
46 |
47 | |课程|日期|讲师|幻灯片|回放|
48 | |:--|:--|:--|:--|:--|
49 | |lec0:前瞻:通往 Pro 的第一步|10.14(秋四周)|TonyCrane|[lec0](lec0/)|[BV1t34y1g7YU](https://www.bilibili.com/video/BV1t34y1g7YU/)|
50 | |lec1:Shell 基础及 CLI 工具推荐|10.22(秋五周)|45gfg9|[lec1](lec1/)|[BV1ry4y1A7qo](https://www.bilibili.com/video/BV1ry4y1A7qo/)|
51 | |lec2:Git/GitHub 及开源基础|11.05(秋七周)|TonyCrane|[lec2](lec2/)|[BV12u4y177vG](https://www.bilibili.com/video/BV12u4y177vG/)|
52 | |lec3:Markdown 语法及应用|11.19(冬一周)|TonyCrane|[lec3](lec3/)|[BV1pu4y1j7kA](https://www.bilibili.com/video/BV1pu4y1j7kA/)|
53 | |lec4:LaTeX 排版简要介绍|12.03(冬三周)|45gfg9|[lec4](lec4/lec4.pdf)|[BV1ka4y1o7S9](https://www.bilibili.com/video/BV1ka4y1o7S9/)|
54 | |lec5:如何排出规范、美观的文档|TBD|TonyCrane||
55 | |lec6:网络/网站基础知识概述|05.17(夏四周)|45gfg9|[lec6](lec6/)|[BV1nn4y1R7ZU](https://www.bilibili.com/video/BV1nn4y1R7ZU/)|
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/slides/src/lec0/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec0/background.png
--------------------------------------------------------------------------------
/slides/src/lec0/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec0/cover.png
--------------------------------------------------------------------------------
/slides/src/lec0/docker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec0/docker.png
--------------------------------------------------------------------------------
/slides/src/lec0/ending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec0/ending.png
--------------------------------------------------------------------------------
/slides/src/lec0/git.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec0/git.gif
--------------------------------------------------------------------------------
/slides/src/lec0/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec0/github.png
--------------------------------------------------------------------------------
/slides/src/lec0/jyy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec0/jyy.png
--------------------------------------------------------------------------------
/slides/src/lec0/latex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec0/latex.png
--------------------------------------------------------------------------------
/slides/src/lec0/makefile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec0/makefile.png
--------------------------------------------------------------------------------
/slides/src/lec0/network.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec0/network.png
--------------------------------------------------------------------------------
/slides/src/lec0/reveal-md.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec0/reveal-md.png
--------------------------------------------------------------------------------
/slides/src/lec0/t1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec0/t1.png
--------------------------------------------------------------------------------
/slides/src/lec0/typesetting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec0/typesetting.png
--------------------------------------------------------------------------------
/slides/src/lec0/vim-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec0/vim-3.png
--------------------------------------------------------------------------------
/slides/src/lec0/vim-cheetsheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec0/vim-cheetsheet.png
--------------------------------------------------------------------------------
/slides/src/lec1/VT100-terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec1/VT100-terminal.png
--------------------------------------------------------------------------------
/slides/src/lec1/apple-dos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec1/apple-dos.png
--------------------------------------------------------------------------------
/slides/src/lec1/apple-lisa.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec1/apple-lisa.jpg
--------------------------------------------------------------------------------
/slides/src/lec1/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec1/background.png
--------------------------------------------------------------------------------
/slides/src/lec1/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec1/cover.png
--------------------------------------------------------------------------------
/slides/src/lec1/ending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec1/ending.png
--------------------------------------------------------------------------------
/slides/src/lec1/img1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec1/img1.png
--------------------------------------------------------------------------------
/slides/src/lec1/linus-torvald-first-linux-email.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec1/linus-torvald-first-linux-email.png
--------------------------------------------------------------------------------
/slides/src/lec1/modes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec1/modes.png
--------------------------------------------------------------------------------
/slides/src/lec1/vi-vim-tutorial-1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec1/vi-vim-tutorial-1.gif
--------------------------------------------------------------------------------
/slides/src/lec1/vi-vim-tutorial-2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec1/vi-vim-tutorial-2.gif
--------------------------------------------------------------------------------
/slides/src/lec1/vim-cheat-sheet.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec1/vim-cheat-sheet.gif
--------------------------------------------------------------------------------
/slides/src/lec1/vimcheatsheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec1/vimcheatsheet.png
--------------------------------------------------------------------------------
/slides/src/lec2/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/background.png
--------------------------------------------------------------------------------
/slides/src/lec2/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/cover.png
--------------------------------------------------------------------------------
/slides/src/lec2/ending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/ending.png
--------------------------------------------------------------------------------
/slides/src/lec2/git-changelog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/git-changelog.png
--------------------------------------------------------------------------------
/slides/src/lec2/git-detached.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/git-detached.png
--------------------------------------------------------------------------------
/slides/src/lec2/git-history.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/git-history.png
--------------------------------------------------------------------------------
/slides/src/lec2/git-merge1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/git-merge1.png
--------------------------------------------------------------------------------
/slides/src/lec2/git-merge2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/git-merge2.png
--------------------------------------------------------------------------------
/slides/src/lec2/git-objects.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/git-objects.png
--------------------------------------------------------------------------------
/slides/src/lec2/git-rebase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/git-rebase.png
--------------------------------------------------------------------------------
/slides/src/lec2/git-relativeref.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/git-relativeref.png
--------------------------------------------------------------------------------
/slides/src/lec2/git-remote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/git-remote.png
--------------------------------------------------------------------------------
/slides/src/lec2/gitbook.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/gitbook.jpg
--------------------------------------------------------------------------------
/slides/src/lec2/github-email.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/github-email.png
--------------------------------------------------------------------------------
/slides/src/lec2/github-new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/github-new.png
--------------------------------------------------------------------------------
/slides/src/lec2/github-pages.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/github-pages.png
--------------------------------------------------------------------------------
/slides/src/lec2/github-repo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/github-repo.png
--------------------------------------------------------------------------------
/slides/src/lec2/github-sign.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/github-sign.png
--------------------------------------------------------------------------------
/slides/src/lec2/licenses.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/licenses.png
--------------------------------------------------------------------------------
/slides/src/lec2/model-add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/model-add.png
--------------------------------------------------------------------------------
/slides/src/lec2/model-branch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/model-branch.png
--------------------------------------------------------------------------------
/slides/src/lec2/model-commit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/model-commit.png
--------------------------------------------------------------------------------
/slides/src/lec2/model-remote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/model-remote.png
--------------------------------------------------------------------------------
/slides/src/lec2/model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/model.png
--------------------------------------------------------------------------------
/slides/src/lec2/workflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec2/workflow.png
--------------------------------------------------------------------------------
/slides/src/lec3/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec3/background.png
--------------------------------------------------------------------------------
/slides/src/lec3/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec3/cover.png
--------------------------------------------------------------------------------
/slides/src/lec3/ending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec3/ending.png
--------------------------------------------------------------------------------
/slides/src/lec3/essential.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec3/essential.png
--------------------------------------------------------------------------------
/slides/src/lec3/footnote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec3/footnote.png
--------------------------------------------------------------------------------
/slides/src/lec3/math.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec3/math.png
--------------------------------------------------------------------------------
/slides/src/lec3/mermaid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec3/mermaid.png
--------------------------------------------------------------------------------
/slides/src/lec3/tasklist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec3/tasklist.png
--------------------------------------------------------------------------------
/slides/src/lec4/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec4/background.png
--------------------------------------------------------------------------------
/slides/src/lec4/ckc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec4/ckc.png
--------------------------------------------------------------------------------
/slides/src/lec4/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec4/cover.png
--------------------------------------------------------------------------------
/slides/src/lec4/emoji-right.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec4/emoji-right.pdf
--------------------------------------------------------------------------------
/slides/src/lec4/emoji-wrong.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec4/emoji-wrong.pdf
--------------------------------------------------------------------------------
/slides/src/lec4/ending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec4/ending.png
--------------------------------------------------------------------------------
/slides/src/lec4/lalu.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec4/lalu.pdf
--------------------------------------------------------------------------------
/slides/src/lec4/titlepage.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec4/titlepage.pdf
--------------------------------------------------------------------------------
/slides/src/lec4/titlepage.tex:
--------------------------------------------------------------------------------
1 | \documentclass[varwidth]{standalone}
2 | \usepackage{ctex}
3 | \title{\textbf{我是标题}}
4 | \author{箱子不知道哦}
5 | \date{1969 年 12 月 31 日}
6 | \begin{document}
7 | \maketitle
8 | \end{document}
9 |
--------------------------------------------------------------------------------
/slides/src/lec5/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec5/background.png
--------------------------------------------------------------------------------
/slides/src/lec5/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec5/cover.png
--------------------------------------------------------------------------------
/slides/src/lec5/ending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec5/ending.png
--------------------------------------------------------------------------------
/slides/src/lec6/Arpanet_logical_map,_march_1977.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec6/Arpanet_logical_map,_march_1977.png
--------------------------------------------------------------------------------
/slides/src/lec6/URI_syntax_diagram.svg.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec6/URI_syntax_diagram.svg.avif
--------------------------------------------------------------------------------
/slides/src/lec6/WebAssembly_Logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/slides/src/lec6/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec6/background.png
--------------------------------------------------------------------------------
/slides/src/lec6/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec6/cover.png
--------------------------------------------------------------------------------
/slides/src/lec6/ending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec6/ending.png
--------------------------------------------------------------------------------
/slides/src/lec6/ipv4-octet.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec6/ipv4-octet.avif
--------------------------------------------------------------------------------
/slides/src/lec6/localhost-meme.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec6/localhost-meme.avif
--------------------------------------------------------------------------------
/slides/src/lec6/protocol-stack.svg.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec6/protocol-stack.svg.avif
--------------------------------------------------------------------------------
/slides/src/lec6/tcp-udp-meme.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec6/tcp-udp-meme.avif
--------------------------------------------------------------------------------
/slides/src/lec6/udp-teapot.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | # socat UDP-RECVFROM:39200,reuseaddr,fork EXEC:"python3 udp-teapot.py"
4 |
5 | import random
6 | from datetime import datetime
7 |
8 |
9 | PORT = 39200
10 |
11 | message = f"""
12 | ===== PRACTICAL SKILLS TUTORIAL: LECTURE 6 =====
13 |
14 | Hello! This is a UDP server hosted on port {PORT}.
15 | Seeing this message means that the server has received a message from you:
16 |
17 | \t"{input()}"
18 |
19 | Unlike TCP, UDP is connectionless. Every message you send is treated as a separate packet.
20 | Which means, if you send another message, you will see this message again.
21 |
22 | The current time is {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}.
23 | Press Ctrl-C to quit."""
24 |
25 | if random.randint(1, 5) == 1:
26 | message = message.replace('server', 'teapot')
27 |
28 | print(message)
29 |
--------------------------------------------------------------------------------
/slides/src/lec6/zju-cert.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/lec6/zju-cert.avif
--------------------------------------------------------------------------------
/slides/src/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TonyCrane/PracticalSkillsTutorial/652d13ac2c6f8b818fbefb08941efbc623f9603b/slides/src/logo.png
--------------------------------------------------------------------------------