Renamed submodule path to gen/missing_semester_2020

This commit is contained in:
ronny abraham 2025-01-21 04:46:20 +02:00
parent 74077578cb
commit 4346725ac2
10 changed files with 698 additions and 0 deletions

107
gen/missing_semester_2020/.gitignore vendored Normal file
View file

@ -0,0 +1,107 @@
# Created by https://www.toptal.com/developers/gitignore/api/vim,emacs,osx
# Edit at https://www.toptal.com/developers/gitignore?templates=vim,emacs,osx
*.html
*.css
*.css.map
### Emacs ###
# -*- mode: gitignore; -*-
*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
*.elc
auto-save-list
tramp
.\#*
# Org-mode
.org-id-locations
*_archive
# flymake-mode
*_flymake.*
# eshell files
/eshell/history
/eshell/lastdir
# elpa packages
/elpa/
# reftex files
*.rel
# AUCTeX auto folder
/auto/
# cask packages
.cask/
dist/
# Flycheck
flycheck_*.el
# server auth directory
/server/
# projectiles files
.projectile
# directory configuration
.dir-locals.el
# network security
/network-security.data
### OSX ###
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### Vim ###
# Swap
[._]*.s[a-v][a-z]
!*.svg # comment out if you don't need vector files
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
# Session
Session.vim
Sessionx.vim
# Temporary
.netrwhist
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~
# End of https://www.toptal.com/developers/gitignore/api/vim,emacs,osx

3
gen/missing_semester_2020/.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "_share/media/sass/org-media-sass"]
path = _share/media/sass/org-media-sass
url = git@bitbucket.org:ronnyabraham/org-media-sass.git

View file

@ -0,0 +1 @@
/Users/ronny/notes/_share/media/fonts

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View file

@ -0,0 +1 @@
/Users/ronny/notes/_share/media/js/collapsible.js

View file

@ -0,0 +1,93 @@
@use "sass:map"
@use "sass:color"
@use 'org-media-sass/default-org-mode'
@use 'org-media-sass/themes/desert-oasis' as *
@use 'org-media-sass/fonts' as fonts
@use 'org-media-sass/mixins' as mixins-basic
@include mixins-basic.set-header-sizes($default-header-sizes)
@include mixins-basic.set-header-colors($default-header-colors)
@include mixins-basic.set-header-margins-sides($default-header-margins-sides)
@include mixins-basic.set-header-margins-vertical($default-header-margins-vertical)
/* Base Styles */
body
font-family: $primary-font
color: $text-color
background-color: $background-color
/* Link Styles */
a
color: $anchor-color
&:hover
color: $anchor-hover-color
// Lists
ul, ol
padding-left: $list-padding-left
// Blockquotes
blockquote
border-color: $secondary-color
color: color.adjust($text-color, $lightness: 10%)
font-family: $secondary-font
// Tables
table
color: $text-color
th, td
border-color: $table-border-color
th
background-color: $table-header-bg
color: $text-color
tr:nth-child(even)
background-color: color.adjust($background-color, $lightness: 5%)
/* Code Block Styles */
pre, code
background-color: $code-background-color
color: $code-text-color
font-family: $secondary-font
/* Header Styles */
h1, h2, h3, h4, h5, h6
font-family: $secondary-font
h4[id="timestamp"]
text-transform: uppercase
color: color.adjust(map.get($default-header-colors, 'h3'), $lightness: 10%)
h4[id="playlist"]
color: color.adjust(map.get($default-header-colors, 'h3'), $lightness: -10%)
h3
a
color: color.adjust($anchor-color, $lightness: -12%)
&:hover
color: color.adjust($anchor-hover-color, $lightness: -12%)
// Notes
.note
background-color: $note-background-color
border-color: $note-border-color
color: $text-color
div#postamble
border-color: $note-border-color
color: color.adjust($note-border-color, $lightness: 20%)
/* Table of Contents Link */
.toc
color: $primary-color
div#table-of-contents ul li a
color: $toc-anchor-color
&:hover
color: $toc-anchor-hover-color

View file

@ -0,0 +1,133 @@
#+title: Lesson 01 | Course Overview + Shell
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../_share/media/css/missing-semester.css" />
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../_share/media/css/org-media-sass/collapsible.css" />
#+HTML_HEAD: <script src="../_share/media/js/collapsible.js"></script>
* Links
#+attr_html: :class links
- [[../toc.org][TOC | Missing Semester]]
- [[https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J][Playlist: Missing Semester]]
*** timestamps
:PROPERTIES:
:CUSTOM_ID: timestamp
:END:
#+attr_html: :class playlist
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=20s][00:20 why we're doing this class]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=251s][04:11 the shell]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=338s][05:38 install a terminal and a shell]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=364s][06:05 the shell prompt]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=411s][06:51 shell prompt]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=522s][08:42 how does the shell know what these programs are]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=672s][11:12 paths]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=738s][12:18 absolute path]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=759s][12:39 relative paths]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1034s][17:14 tilde character]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1336s][22:16 directories]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1376s][22:56 execute on directories]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1514s][25:14 cp command]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1547s][25:47 rm]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1590s][26:30 create a new directory]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1912s][31:52 pipe character]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2044s][34:04 grep]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2145s][35:45 the root user]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2239s][37:19 kernel paramters]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2612s][43:32 scroll lock led]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2706s][45:06 open a file]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2829s][47:09 lecture notes]]
- [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2875s][office hours]]
* Notes
** why
- there are many tools that make life easier for programmers
- lecture notes and recordings are available online
** the shell
- programs are meant to be integrates with each other through the shell
- most common shell is Bourne Again Shell (bash)
** shell prompt
- typical shell prompt:
#+attr_html: :width 300px
file:../_share/media/img/lecture01/ex01.png
- shells can be customized extensibly
- arguments are seperated by whitespace
- multiple words can be passed as a single argument via:
- quotes
#+begin_src bash
echo "Hello world"
#+end_src
- escapes
#+begin_src bash
echo Hello\ world
#+end_src
** how does the shell know where programs are
- via environment variable
- things that are set whenever you start your shell
- where is your home directory
- what is your username
- what are the PATHs to your programs
- shells, and bash in particular, are programming languages
** paths
*** PATH environment variable
- a list seperated by colons (:)
- when bash is asked to run a program bash will search through the directories in path until it finds the program
*** absolute vs relative path
- pwd: print working directory
- all relative paths are relative to your current working directory
- absolute path starts with '/'
*** special directories
- '.' current directory
- '..' parent directory
*** tilde (~)
- always expands to your home directory
*** dash (-)
- toggles to the previous directory you were at
#+begin_src bash
cd /home/ronny/programs/notes/courses
cd ../../
cd -
pwd
#+end_src
the output will be
=/home/ronny/programs/notes/courses=
** permissions
*** groups of three
- read
- write
- execute
*** directories
- read: are you allowed to see the files
- write: can you rename the files in the directory
- execute: "search" are you allowed to enter this directory
- to access a file in a directory, you need execute permissions on all directories in the path
** piping
- every program has two streams
- input stream
- output stream
- shell allows you to change streams
- angle brackets
- left angle < : rewire input
- right angle > : rewire output
- example
#+begin_src bash
echo hello > hello.txt
cat < hello.txt
#+end_src

View file

@ -0,0 +1,288 @@
#+title: lesson 02 | course overview + the shell
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../_share/media/css/missing-semester.css" />
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../_share/media/css/org-media-sass/collapsible.css" />
#+HTML_HEAD: <script src="../_share/media/js/collapsible.js"></script>
* Links
#+attr_html: :class links
- [[../toc.org][TOC | Missing Semester]]
- [[https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J][Playlist: Missing Semester]]
- Curr: https://youtu.be/kgII-YWo3Zw?si=Wm8KLT1ggOGG8W-g&t=1692
*** timestamps
:PROPERTIES:
:CUSTOM_ID: timestamp
:END:
#+attr_html: :class playlist
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=54s][00:54 - control flow functions]]
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=227s][03:47 - sequential execution]]
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=425s][07:05 - standard input]]
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=444s][07:24 - error code]]
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=517s][08:37 - logical operators]]
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=603s][10:03 - concatenate commands]]
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=645s][10:45 - common substitution]]
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=675s][11:15 - process substitution]]
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=935s][15:35 - comparison operator]]
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=1173s][19:33 - curly braces]]
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=1359s][22:39 - python script]]
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=1707s][28:27 - man command]]
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=2175s][31:26 - finding files]] *current*
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=2190s][36:30 - grep]]
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=2573s][42:53 - fuzzy finder]]
+ [[https://www.youtube.com/watch?v=kgII-YWo3Zw&t=2649s][44:09 - history substring search]]
* Notes
** bash
*** spaces are critical with bash
- this works:
#+begin_src bash
foo=bar
echo $foo
#+end_src
- this doesn't:
#+begin_src bash
foo = bar
echo $foo
#+end_src
- the output of that will be
=zsh: command not found: foo=
- what happens in the above example is that we are effectively calling the "foo" program with the arguments: "=" and "bar"
*** quotes
- you can use double or single quotes to print a value
#+begin_src bash
echo "Hello"
#+end_src
#+begin_src bash
echo 'Hello'
#+end_src
- double quotes can interpolate variables
#+begin_src bash
echo "Value is $foo"
#+end_src
will return: =Value is bar=
- single quotes can NOT interpoloate variables
#+begin_src bash
echo 'Value is $foo'
#+end_src
will return: =Value is $foo=
** sequential execution
*** bash functions
- mcd.sh
#+begin_src bash
mcd() {
mkdir -p "$1"
cd "$1"
}
#+end_src bash
- creates a function that can be executed after loading
- $1 is a global variable referring to the first parameter
*** source
- using source mcd.sh
=source mcd.sh=
- then carry out the function
=mcd testdir=
- this will create a new directory and cd into it as per the definied functioned
** error codes
*** commands to access codes or values
- $0 -- name of the script we are currently in
- if you run this in the shell it will display 'bash'
- $1->$9 -- the first through ninth argument given to a script
- $? -- the last error message
- $_ --- last argument of the previous call
- !! -- recreates the last call with it's arguments
- use with sudo if you found your call needed a sudo and you don't feel like retyping it again
#+begin_src bash
ls -lah
sudo !!
#+end_src
*** code values
- boolean
- true returns an error code of 0
- false returns an error code of 1
** using $@ and $*
- represents all the arguments passed to a script or a function as separate, individual strings. It preserves each argument as a distinct item, even if the argument contains spaces.
*** key points about $@
1. All Arguments: It refers to all the command-line arguments passed to the script.
2. Preserves Spaces: If an argument contains spaces, it is treated as a single argument.
3. Usage: It is commonly used in a loop to iterate over each argument.
*** example
#+begin_src bash
./myscript.sh file1.txt "file with spaces.txt" file3.txt
#+end_src
then $@ will be
=file1.txt "file with spaces.txt" file3.txt=
*** differences between $*
- *$@* treats each argument as a sepearte item
- *$** treats all arguments as a single, combined string
** logical operators
- you can use the error return value in conditionals
*** example using the OR conditional
#+begin_src bash
false || echo "Oops fail"
"Oops fail"
#+end_src
*** example using the AND conditional
#+begin_src bash
true && echo "this will print"
"this will print"
#+end_src
** concatenate commands
- you caoncatinate commands using the semicolon: *;*
#+begin_src bash
false; echo "this prints always"
"this prints always"
#+end_src
** common substitution
- take the output of a command and put it in a variable
#+begin_src bash
foo=$(pwd)
echo $foo
"/Users/ronny/..."
#+end_src
- this can also be done by placing that format in a string and it will expand the string
#+begin_src bash
echo "the pwd output is: $(pwd)"
"the pwd output is: /Users/ronny/..."
#+end_src
** process substitution
*** description
Bash process substitution is a feature that allows you to use the output of a command or a process as if it were a file. It enables you to redirect input or output between processes in a flexible way without needing intermediate temporary files.
*** Syntax
- creates a temporary file descriptor for the output of the command, which can be used as an input file in another command.
#+begin_src bash
<(command)
#+end_src
- creates a temporary file descriptor for writing to the command, which can be used as an output file in another command.
#+begin_src bash
>(command)
#+end_src
*** examples
- this will take b, a, d, c and sort it so the result is 'a, b, c, d'
#+begin_src bash
sort <(echo -e "b\na") <(echo -e "d\nc")
#+end_src
- this will list the files, send the list to *tee* which will split a portion off to the screen and the rest to grep, followed by text_files.txt
#+begin_src bash
ls | tee >(grep "txt" > text_files.txt)
#+end_src
#+begin_src bash
echo "Starting program at $(date)" # Date will be substituted
echo "Running program $0 with $# arguments with pid $$"
for file in "$@"; do
grep foobar "$file" > /dev/null 2> /dev/null
# when pattern is not found, grep has exit status 1
# we redirect STDOUT and STDERR to a null register since we do not care about them
if [[ "$?" - ne 0 ]]; then
echo "File $file does not have any foober adding one"
echo "# foobar" >> "$file"
fi
done
#+end_src
- *$$* pid given for program
- *$#* number of arguments
- *$@* expands to all the arguments
- can be used in a for loop
- *2>* refers to STDERR
- *>* refers to STDOUT
** test utility
test is a bash utility that you can use to test the condition of a file. look at the man page for more info
** curly braces
curly braces are used as a form of program command expansion.
the braces contain a number of arguments seperated by commans that will expand into arguments for the program
*** example
#+begin_src bash
touch foo{,1,2,10}
touch foo foo1 foo2 foo10
cp foo{,.old}
cp foo foo.old
#+end_src
*** ranges
this takes the format {1..20}
#+begin_src bash
touch directory{1..4}/foo{a..z}.txt
#+end_src
** python scripts
*** making them bash executable
- reference the python compiler at the top of the file
- do it directly:
#+begin_src bash
#!/usr/local/bin/python
#+end_src
- use the env program to do so
#+begin_src bash
#!/usr/bin/env python
#+end_src
*** args can be found through sys.argv[1:]
#+begin_src python
import sys
for arg in reversed(sys.argv[1:]):
print(arg)
#+end_src
** checking for problems in bash scripts using 'shellcheck'
#+begin_src bash
shellcheck some_bash_script.sh
#+end_src
- will tell you problems
- and warnings
** man command
- works with both os, and installed tools
- 'tldr' is easier to read
** find

View file

@ -0,0 +1,38 @@
#+title: Lesson 02 | shell tools and scripting
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../_share/media/css/missing-semester.css" />
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../_share/media/css/org-media-sass/collapsible.css" />
#+HTML_HEAD: <script src="../_share/media/js/collapsible.js"></script>
* Links
#+attr_html: :class links
- [[../toc.org][TOC | Missing Semester]]
- [[https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J][Playlist: Missing Semester]]
* Notes
*** Playlist
#+attr_html: :class playlist
1. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=20s][why we're doing this class]]
2. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=251s][the shell]]
3. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=338s][install a terminal and a shell]]
4. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=411s][shell prompt]]
5. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=522s][how does the shell know what these programs are]]
6. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=672s][paths]]
7. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=738s][absolute path]]
8. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=759s][relative paths]]
9. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1034s][tilde character]]
10. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1336s][directories]]
11. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1376s][execute on directories]]
12. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1514s][cp command]]
13. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1547s][rm]]
14. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1590s][create a new directory]]
15. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=1912s][pipe character]]
16. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2044s][grep]]
17. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2145s][the root user]]
18. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2239s][kernel paramters]]
19. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2612s][scroll lock led]]
20. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2706s][open a file]]
21. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2829s][lecture notes]]
22. [[https://www.youtube.com/watch?v=Z56Jmr9Z34Q&list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J&t=2875s][office hours]]

View file

@ -0,0 +1,34 @@
#+title: Missing Semester IAP 2020
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="_share/media/css/missing-semester.css" />
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="_share/media/css/org-media-sass/content-overview.css" />
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="_share/media/css/org-media-sass/collapsible.css" />
#+HTML_HEAD: <script src="_share/media/js/collapsible.js"></script>
* Links
#+attr_html: :class links
- [[../../../course-listings.org][Courses Listing]]
- [[https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J][YouTube Playlist: Missing Semester]]
*** playlist
:PROPERTIES:
:CUSTOM_ID: playlist
:END:
#+attr_html: :class playlist
1. [[https://youtu.be/Z56Jmr9Z34Q?si=XHgfjMWOSx0lSUV8][Lecture 1: Course Overview + The Shell]]
2. [[https://youtu.be/kgII-YWo3Zw?si=yOa5im_cHzisLeZn][Lecture 2: Shell Tools and Scripting]]
3. [[https://youtu.be/a6Q8Na575qc?si=7cgWLJfBgtzVvUUC][Lecture 3: Editors]]
4. [[https://youtu.be/sz_dsktIjt4?si=l9M6_yIDqV1drxNS][Lecture 4: Data Wrangling]]
5. [[https://youtu.be/e8BO_dYxk5c?si=a6aWoJSVS13rQO1I][Lecture 5: Command-line Environment]]
6. [[https://youtu.be/2sjqTHE0zok?si=ArLpMvXhrtAsQnLH][Lecture 6: Version Control (git)]]
7. [[https://youtu.be/l812pUnKxME?si=BDElINPHWLHQzBcD][Lecture 7: Debugging and Profiling]]
8. [[https://youtu.be/_Ms1Z4xfqv4?si=tMk44R213bG70pCq][Lecture 8: Metaprogramming]]
9. [[https://youtu.be/tjwobAmnKTo?si=QnIhfVK8mJHCV6PU][Lecture 9: Security and Cryptography]]
10. [[https://youtu.be/JZDt-PRq0uo?si=7oCytjjvVaGSTDHr][Lecture 10: Potpourri]]
11. [[https://youtu.be/Wz50FvGG6xU?si=Gmp-YJZm0sR65GAa][Lecture 11: Q&A]]
* Contents Overview
#+attr_html: :class contents-overview
- [[./_subsections/lesson-01.org][Lesson 01 | Course Overview + The Shell]]
- [[./_subsections/lesson-02.org][Lesson 02 | Shell Tools and Scripting]]