├── .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 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /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 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /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 --------------------------------------------------------------------------------