From 5667d7ed40329db8b709bef8e2d8a00cef73ef03 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Sat, 16 Sep 2023 17:21:34 +0000 Subject: [PATCH] update playlist --- README.md | 1110 ++++++++++++++++++++++++++--------------------------- 1 file changed, 555 insertions(+), 555 deletions(-) diff --git a/README.md b/README.md index 57684270..a1321c16 100644 --- a/README.md +++ b/README.md @@ -5,560 +5,560 @@ explains the full [playlist] is on youtube -[update playlist]: https://github.com/anthonywritescode/explains/actions?query=workflow%3Aupdate +[update playlist]: https://github.com/anthonywritescode/explains/actions/workflows/update.yml [playlist]: https://www.youtube.com/playlist?list=PLWBKAf81pmOaP9naRiNAqug6EBnkPakvY -- [introducing! -- #000](https://youtu.be/qvkppppy9K8) -- [python cli tested with pytest - (beginner to intermediate) #001](https://youtu.be/sv46294LoP8) -- [python @decorators - (intermediate) #002](https://youtu.be/WDMr6WolKUM) -- [my favorite python str method! (beginner - intermediate) #003](https://youtu.be/kx6G3nkZTjM) -- [how to make a simple github PR (beginner) #004](https://youtu.be/cysuuUtbC6E) -- [the python @property decorator (beginner - intermediate) #005](https://youtu.be/orp6bhe4i00) -- [python type(x).\_\_name\_\_ vs x.\_\_class\_\_.\_\_name\_\_ (intermediate) #006](https://youtu.be/6rAIttnm3Fs) -- [python return annotations: NoReturn vs None (intermediate) #007](https://youtu.be/-zH0qqDtd4w) -- [what's wrong with python's blank except:? (beginner - intermediate) #008](https://youtu.be/i0GOLe-F27Q) -- [how I use selenium + html/css to make thumbnails (intermediate) #009](https://youtu.be/VABA2rX1I_M) -- [python: raising Error without parens (intermediate) #010](https://youtu.be/gGqRBHHIQGE) -- [python's tricky `for ...: else:` statement (beginner - intermediate) #011](https://youtu.be/8P7lXLXR_3c) -- [python's `pass` statement (beginner - intermediate) #012](https://youtu.be/ANjDsGZZXy8) -- [shell bling strings! (beginner - intermediate) #013](https://youtu.be/fhhznv4E1pI) -- [setting up an ubuntu focal virtual machine (beginner - intermediate) #014](https://youtu.be/qL3xc8hwU7c) -- [python executable zipapps (intermediate) #015](https://youtu.be/HfL2s2JySos) -- [pretty python profiling (intermediate) #016](https://youtu.be/ey_P64E34g0) -- [python implicit string joining (beginner - intermediate) #017](https://youtu.be/5Zto6VYsNsI) -- [postmortem debugging in python (beginner - intermediate) #018](https://youtu.be/s8Nx2frW4ps) -- [configuration management (devops) (intermediate) #019](https://youtu.be/aQTCDoZ4NFg) -- [how to pronounce PyPI (beginner) #020](https://youtu.be/I5OUzCAYst8) -- [all python argument / parameter types (beginner - intermediate) #021](https://youtu.be/aKCfCmSggPg) -- [what is a tty? (beginner - intermediate) #022](https://youtu.be/SYwbEcNrcjI) -- [introduction to markdown (beginner) #023](https://youtu.be/1UodxuXj5Ao) -- [how do I get started in open source? (beginner) #024](https://youtu.be/NFW22q-vI6I) -- [a flake8 plugin from scratch (intermediate) #025](https://youtu.be/ot5Z4KQPBL8) -- [finding regressions with git bisect (intermediate) #026](https://youtu.be/C2C7FTI8nB4) -- [pytest's parametrize (beginner - intermediate) #027](https://youtu.be/aQH7hyJn-No) -- [python curses "hello world" (beginner - intermediate) #028](https://youtu.be/2em6MiOpHWk) -- [git: empty initial commit (beginner - intermediate) #029](https://youtu.be/BJ4hkYdb1LI) -- [dockerfile RUN : \\ && syntax (beginner) #030](https://youtu.be/BdxdRlTnPEE) -- [python variable unpackings (beginner - intermediate) #031](https://youtu.be/ObWh1AYClI0) -- [docker: ADD «url» considered harmful? (intermediate) #032](https://youtu.be/DazBJeVRA7k) -- [what is a shebang (#!)? (beginner - intermediate) #033](https://youtu.be/g3VxRdtlMoE) -- [what is test driven development? (beginner - intermediate) #034](https://youtu.be/JmMxU8ljiOg) -- [python single vs double quote strings! (beginner) #035](https://youtu.be/TTo5LGXYsH0) -- [git: ignoring noisy whitespace changes (beginner - intermediate) #036](https://youtu.be/qYJWBJvHqj0) -- [git: useful trick for pushing branches (beginner - intermediate) #037](https://youtu.be/bItxrNqJ5UQ) -- [python github actions w/ tox and pre-commit (intermediate) #038](https://youtu.be/KKJL8bM4cis) -- [releasing a python package to pypi (beginner - intermediate) #039](https://youtu.be/Gre2W5z4iLE) -- [virtualenv vs. venv (beginner - intermediate) #040](https://youtu.be/MGTX5qI2Jts) -- [implementing --version with importlib.metadata (intermediate) #041](https://youtu.be/beDG6Ibo2zQ) -- [string formatting in python (beginner - intermediate) #042](https://youtu.be/dTrW8YktDnE) -- [introduction to tox (beginner - intermediate) #043](https://youtu.be/75WBE_qbpGk) -- [python argparse tutorial (beginner - intermediate) #044](https://youtu.be/-Sgw-6a1HjU) -- [typing \_\_getitem\_\_ (python / mypy) (intermediate) #045](https://youtu.be/HESA7oukEqE) -- [fixing a git mistake with reflog (intermediate) #046](https://youtu.be/R8R9_eT2law) -- [introduction to python typing + mypy (beginner - intermediate) #047](https://youtu.be/H5CnZQDKfhU) -- [python packaging: src layout (intermediate) #048](https://youtu.be/sW1qUZ_nSXk) -- [three ways to edit git commits (intermediate) #049](https://youtu.be/2LEn0GQJitM) -- [stdin / stdout / stderr (beginner - intermediate) #050](https://youtu.be/5za6eRdHjpw) -- [hacker mode tmux debugging (intermediate) #051](https://youtu.be/BMn0nSpeITY) -- [regular expressions crash course (beginner - intermediate) #052](https://youtu.be/yFRSpPwrJzQ) -- [web security: what is a csrf exploit? (intermediate) #053](https://youtu.be/MXZhe0KduyE) -- [python: functools.lru\_cache (beginner - intermediate) #54](https://youtu.be/K0Q5twtYxWY) -- [python \_\_future\_\_ "module" (beginner - intermediate) #055](https://youtu.be/_K4mjPrROGQ) -- [undoing an accidental git commit (intermediate) #056](https://youtu.be/EcciszFDpn8) -- [python packaging: basic setup.py and declarative metadata (intermediate) #057](https://youtu.be/GaWs-LenLYE) -- [what is deadsnakes? (beginner - intermediate) #058](https://youtu.be/Xe40amojaXE) -- [getting started with programming (beginner) #059](https://youtu.be/khqIPspzh4A) -- [git show (+ some tips!) (beginner) #060](https://youtu.be/gFKgEbbQRyQ) -- [python star imports (beginner - intermediate) #061](https://youtu.be/gJJVXB5JLUk) -- [intro to apt (debian / ubuntu) (beginner + intermediate) #062](https://youtu.be/ctGpRWCi8QU) -- [correct conditional arguments in bash (beginner - intermediate) #063](https://youtu.be/hVTrmsqZC38) -- [using the python \_\_import\_\_ builtin correctly (intermediate) #064](https://youtu.be/3V3bv7FsR48) -- [special paths: ~, ~user, ., .. (beginner) #065](https://youtu.be/lyMQASRha9s) -- [protip: exiting really fast! (beginner) #066](https://youtu.be/yLdxwugv4qM) -- [python: Ellipsis (...) and typing (beginner - intermediate) #067](https://youtu.be/yLwvOwTO068) -- [git cherry-pick (intermediate) #068](https://youtu.be/hmMrtfyb1vc) -- [customizing the python repl (intermediate) #069](https://youtu.be/vwu6i0ghwJU) -- [what is PATH? (beginner - intermediate) #070](https://youtu.be/ZpOoRSkm-dQ) -- [python packaging: data files (intermediate) #071](https://youtu.be/bfyIrX4_yL8) -- [a virtualenv from nothing! (beginner - intermediate) #072](https://youtu.be/OXmYKh0eTQ8) -- [tox --devenv (beginner - intermediate) #073](https://youtu.be/flJi2N3dDk0) -- [python packaging: optional dependencies (intermediate) #074](https://youtu.be/yJyo-K7wW2g) -- [regexes: capture groups (beginner - intermediate) #075](https://youtu.be/Cs2V6nRhWL4) -- [python typing: why not self? (intermediate) #076](https://youtu.be/VumItqHMaTA) -- [generator basics (+typing) (beginner - intermediate) #077](https://youtu.be/LjBa9sfJh7U) -- [stop using `git add .` (beginner - intermediate) #078](https://youtu.be/GgIZbO2Hb5s) -- [why not global pip / virtualenv? (intermediate) #079](https://youtu.be/O390_abzo08) -- [bash hash cache! (beginner - intermediate) #080](https://youtu.be/N13XEwdc_2k) -- [git: a checked-in directory (intermediate) #081](https://youtu.be/_qCzcB80fAY) -- [typing: exception types (intermediate) #082](https://youtu.be/22BvsKjHRfQ) -- [why you should end a file in a newline (beginner) #083](https://youtu.be/r5nWtfwK_dk) -- [git workflow: branch name collisions (intermediate) #084](https://youtu.be/XHU3Kvudraw) -- [sort your imports! (beginner - intermediate) #085](https://youtu.be/Sjor8PZXnaw) -- [what is the underscore (\_) for? (beginner) #086](https://youtu.be/VKz1aQbNnyI) -- [python curses: color (intermediate) #087](https://youtu.be/M8gC65VgApM) -- [semantic versioning (beginner - intermediate) #088](https://youtu.be/vRSw2f34RRU) -- [file modes and chmod (beginner - intermediate) #089](https://youtu.be/BrBHUosstHg) -- [making a regex not match itself! (intermediate) #090](https://youtu.be/4KLLctC0G6U) -- [I run 'rm -rf /' and see what happens (beginner - intermediate) #091](https://youtu.be/iqqNMZj608s) -- [git fetch (--prune) (beginner - intermediate) #092](https://youtu.be/oj19T3N2NHY) -- [top 10 new things in python3.9 (beginner - intermediate) #093](https://youtu.be/Dtw0QJhepV0) -- [testing functools.lru\_cache with pytest! (beginner - intermediate) #094](https://youtu.be/ujRo8n0LsU4) -- [git: commit message pro tip (beginner - intermediate) #095](https://youtu.be/CWrBZeC2Qqs) -- [typing: what is Type\[X\]? (intermediate) #096](https://youtu.be/_7EXU9cjBkg) -- [python debugger crash course: pdb / breakpoint (beginner - intermediate) #097](https://youtu.be/0LPuG825eAk) -- [why pytest.mark.usefixtures? (intermediate) #098](https://youtu.be/BE2v1VCmGwg) -- [git apply and manual stashing (intermediate) #099](https://youtu.be/4LXTaikZfco) -- [intro to python namedtuples! (beginner - intermediate) #100](https://youtu.be/iqXnBE4htUc) -- [namedtuple to json and other pitfalls (intermediate) #101](https://youtu.be/QOKqvuvA3ok) -- [how namedtuple works (advanced) #102](https://youtu.be/sfDSQSj-uvQ) -- [why python -m pip? (beginner - intermediate) #103](https://youtu.be/gnYdk_U6UQ0) -- [fixing NameError / TypeError in python type annotations (intermediate) #104](https://youtu.be/zH_F2xC0LOk) -- [why backslash in triple-quoted-strings """\\ (intermediate) #105](https://youtu.be/WFggulJ81dM) -- [what's (wrong with) hacktoberfest? (beginner) #106](https://youtu.be/dzRTR63Lzx8) -- [pure python windows .exe (no compiler!) (intermediate) #107](https://youtu.be/nzaH5n-Xk64) -- [python dist-packages vs. site-packages (intermediate) #108](https://youtu.be/aEB_EcgTiQo) -- [testing optional python dependencies (intermediate) #109](https://youtu.be/PXu3KCMT3l4) -- [typing: why main() -˃ int (beginner - intermediate) #110](https://youtu.be/Kur4Y7j4vac) -- [debugging with dir() (+\_\_dir\_\_) (beginner - intermediate) #111](https://youtu.be/LxCdn18eGng) -- [python: pretty headers with str.center (beginner) #112](https://youtu.be/88-rhi4CSsg) -- [don't put passwords in commands! (beginner - intermediate) #113](https://youtu.be/SqXOchNKV_c) -- [python: comma, = assignment! (beginner - intermediate) #114](https://youtu.be/WLKi_gPKCp0) -- [python typing: re.match and Optional (intermediate) #115](https://youtu.be/yH6L3UiK9WM) -- [python: .sort() vs sorted(...) (beginner - intermediate) #116](https://youtu.be/JZYWtmxaCeM) -- [python typing: @property (beginner - intermediate) #117](https://youtu.be/Q0K8CKn5htI) -- [python: 4 ways to set namedtuple defaults (intermediate) #118](https://youtu.be/w4o-GT_43Yw) -- [what is the /opt directory? (beginner - intermediate) #119](https://youtu.be/tzOImbBp17c) -- [git: visualizing main line commits (intermediate) #120](https://youtu.be/UjCnvh6uAUs) -- [bash: passing string as stdin (beginner - intermediate) #121](https://youtu.be/Xf_82stIbB8) -- [python: what is \_\_slots\_\_ and \_\_dict\_\_ (intermediate) #122](https://youtu.be/2d3vZhF-2aA) -- [why \_\_slots\_\_ = () (namedtuples) (intermediate) #123](https://youtu.be/BSNd_kxHXL8) -- [how do editable pip installs work? (intermediate) #124](https://youtu.be/gYYi7varbmE) -- [what is argv (and argc)? (beginner - intermediate) #125](https://youtu.be/guJj17ggtXU) -- [is python with types faster? (intermediate) #126](https://youtu.be/mkT3KP2J15I) -- [bash: multiple lines to stdin with heredocs (beginner - intermediate) #127](https://youtu.be/KeO-OGf8Tao) -- [a python plugin system via entrypoints (intermediate) #128](https://youtu.be/fY3Y_xPKWNA) -- [git diff A...B (3 dots) (beginner - intermediate) #129](https://youtu.be/WRXmm-E77aY) -- [faster than git clone! (beginner - intermediate) #130](https://youtu.be/YtK1uOa2VpM) -- [python: len(x) vs x.\_\_len\_\_() (beginner - intermediate) #131](https://youtu.be/KyqiduLIL5k) -- [python typing: Final / @final (intermediate) #132](https://youtu.be/jCf3zi2m56c) -- [python: raw (NOT REGEX) r'strings' (beginner - intermediate) #133](https://youtu.be/RvoKwGekk1s) -- [a "hello world" python C extension (intermediate - advanced) #134](https://youtu.be/HrEzCI3jIHw) -- [making python releases less painful with abi3 (intermediate - advanced) #135](https://youtu.be/4uy0c855msk) -- [useful interview datastructures: defaultdict (beginner - intermediate) #136](https://youtu.be/sunYwbKAzI0) -- [reset a clone with git clean! (beginner - intermediate) #137](https://youtu.be/cE9IRYDMoS8) -- [with + context managers (part1: the hard way) (intermediate - advanced) #138](https://youtu.be/ExdtNMnP24I) -- [with + context managers (part2: the easy way) (intermediate) #139](https://youtu.be/ucGpcA9r4hU) -- [how @contextmanager works (with/contexts part 3) (advanced) #140](https://youtu.be/nr_q2y0qxFg) -- [is python's round() broken? (beginner) #141](https://youtu.be/sIObDTFsKyI) -- [useful interview datastructures: Counter (beginner - intermediate) #142](https://youtu.be/FzlJxKRPL-4) -- [easy fake objects with python's SimpleNamespace (beginner - intermediate) #143](https://youtu.be/8XvyHj8ndg8) -- [what is a git tag? (beginner - intermediate) #144](https://youtu.be/34CQxHXzD4w) -- [python: typing *args / **kwargs (intermediate) #145](https://youtu.be/CqafM-bsnW0) -- [python typing: Optional is not optional! (intermediate) #146](https://youtu.be/7XZYlDpSxOU) -- [mypy's "implicit optional" (and why I disable it) (intermediate) #147](https://youtu.be/sc1JfhSvSII) -- [customize ANY website (beginner - intermediate) #148](https://youtu.be/Cmz6YGzF0PM) -- [python: more advanced breakpoint() usage (intermediate) #149](https://youtu.be/7TuFty4_WTY) -- [what is docker and how does it work? (intermediate) #150](https://youtu.be/tWvQAxkMaWs) -- [docker run: always use --rm! (beginner - intermediate) #151](https://youtu.be/0vxIyXgkihA) -- [what is sass vs scss? (beginner) #152](https://youtu.be/EPpjU50TYHg) -- [repeatedly checking command output (beginner - intermediate) #153](https://youtu.be/DUxS7zOhu1U) -- [why do asset urls have hex segments? (beginner - intermediate) #154](https://youtu.be/h345YuE3lZ8) -- [python cffi tutorial (intermediate - advanced) #155](https://youtu.be/X5irxO5VCHw) -- [python regex: \\d gotcha! (beginner - intermediate) #156](https://youtu.be/9dnZiCW1OHc) -- [customizing "command not found" (intermediate) #157](https://youtu.be/p4cpVggLuJk) -- [why `docker build --pull`? (intermediate) #158](https://youtu.be/BP1v7XXlePM) -- [useful commands: `pstree` (beginner - intermediate) #159](https://youtu.be/Omu4tXtlULU) -- [don't use os.system! (beginner - intermediate) #160](https://youtu.be/oQxTSDh-ECk) -- [python: all about comprehensions! (beginner - intermediate) #161](https://youtu.be/f-Q5VZlPjhI) -- [python: os.exec* vs subprocess (intermediate) #162](https://youtu.be/xTiPODNalrU) -- [python typing: @overload (intermediate) #163](https://youtu.be/rY9NZ-tXiDQ) -- [structural subtyping in python with Protocol! (intermediate) #164](https://youtu.be/QjFChmQHJxk) -- [what is virtualenvwrapper + quick start (beginner - intermediate) #165](https://youtu.be/vnXUBoOqGWQ) -- [github tweak: custom tab width (beginner) #166](https://youtu.be/GYPRBVmw1Pc) -- [what is advent of code? (beginner) #167](https://youtu.be/QAwQ8eKBpYw) -- [what is atomicity (intermediate) #168](https://youtu.be/tmlmCG5egI0) -- [python: what is `nonlocal` (intermediate) #169](https://youtu.be/evYOlT1T7Mo) -- [python typing: Literal (intermediate) #170](https://youtu.be/ZHisrvgF1Wk) -- [counting in binary / 2s complement (beginner - intermediate) #171](https://youtu.be/G1teq9UZ4kM) -- [oops I typed `git git ...` again (beginner - intermediate) #172](https://youtu.be/BkUW2NgfZao) -- [python: binary search the easy way (interview tips) (intermediate) #173](https://youtu.be/icoYNPoTZ44) -- [pytest: parametrize permutation (intermediate) #174](https://youtu.be/QIUrd327tOQ) -- [more powerful than control-C (beginner - intermediate) #175](https://youtu.be/_f8xgOMGO-g) -- [pytest: testing exceptions (beginner - intermediate) #176](https://youtu.be/6nRxZyQwwlE) -- [what is a pager / less ? (beginner - intermediate) #177](https://youtu.be/hxvAEr9Q2A4) -- [python: naming and underscores (beginner - intermediate) #178](https://youtu.be/q1E-d7PvSSY) -- [what is the bang (!) in git aliases (beginner - intermediate) #179](https://youtu.be/-Ur2OGPCZhk) -- [python typing: aliases (beginner - intermediate) #180](https://youtu.be/4zcrkP2VPSs) -- [argparse: making a command wrapper (parse\_known\_args) (intermediate) #181](https://youtu.be/sCbC8hkg_xs) -- [bash protip: fc "fix command" (beginner - intermediate) #182](https://youtu.be/PPovOOA7bdU) -- [python integer literal underscores! (beginner) #183](https://youtu.be/BkKVVRLHE5Y) -- [what is `git -C ...` (intermediate) #184](https://youtu.be/YXDn2qtK8GI) -- [bash: pushd / popd (beginner - intermediate) #185](https://youtu.be/_cYaToOFml8) -- [what is `cd -` / `git checkout -` (beginner) #186](https://youtu.be/sb1itVtABEk) -- [typing: Protocol + @runtime\_checkable (intermediate) #187](https://youtu.be/4y94mvp_rYw) -- [what is a singleton? (and python patterns) (intermediate - advanced) #188](https://youtu.be/PBCsN29ZG9A) -- [python: conditional context and ExitStack (intermediate) #189](https://youtu.be/FHixla7BLvI) -- [python deque (useful interview datastructures) (intermediate) #190](https://youtu.be/obXt90bzgJo) -- [images in the terminal? what is a sixel (beginner - intermediate) #191](https://youtu.be/fa9ik_OnLmg) -- [useful tools: uq (beginner - intermediate) #192](https://youtu.be/K8jmAQnPE2c) -- [git: cleaning up merged branches (beginner - intermediate) #193](https://youtu.be/5O8PzE4nJTQ) -- [python: decorating a class (intermediate) #194](https://youtu.be/xwsgV3yAtmw) -- [python: class-based @decorators (intermediate - advanced) #195](https://youtu.be/hTLDC9H1b4Q) -- [intro to git lfs (intermediate) #196](https://youtu.be/c6BRKcO5WxE) -- [python scoping (beginner - intermediate) #197](https://youtu.be/xb_zV3gaDxY) -- [docker: deleting files makes your image bigger! (intermediate) #198](https://youtu.be/4kBfXrE0xpo) -- [getting started with packer (intermediate) #199](https://youtu.be/VvjYePm2UyU) -- [all about xargs ! (beginner - intermediate) #200](https://youtu.be/ED9AUfFrak8) -- [bash "strict mode": -euo pipefail (beginner - intermediate) #201](https://youtu.be/9fSkygQ-ZjI) -- [3 ways to clear / fix the terminal (beginner) #202](https://youtu.be/LSEnVCBnKN4) -- [python is compiled? (+ disassembler) (intermediate) #203](https://youtu.be/FPJdre3mbD4) -- [what is a boolean trap? (programming antipattern) (beginner - intermediate) #204](https://youtu.be/CnRkXO_a5mI) -- [python: str.translate (intermediate) #205](https://youtu.be/0kYctEx_O28) -- [python easter eggs: \_\_future\_\_ braces (beginner) #206](https://youtu.be/x7xVjGbObrw) -- [the `wc` command (beginner) #207](https://youtu.be/YmjeLv1RLSc) -- [debugging python segfaults with gdb (intermediate - advanced) #208](https://youtu.be/bXEXE6ywzSA) -- [interview question: 4 / 7 swap (beginner - intermediate) #209](https://youtu.be/PSXlOSJ2lZk) -- [github actions vulnerability or "why bug bounties are a scam" (intermediate) #210](https://youtu.be/_fpXyS_i1xE) -- [python easter eggs: antigravity (beginner) #211](https://youtu.be/T7TvWTjp_fw) -- [python insertion-ordered dicts (beginner - intermediate) #212](https://youtu.be/thOgrFA7MzI) -- [python @decorator stacking (intermediate) #213](https://youtu.be/A10RHUCVw6A) -- [typing: dealing with import cycles (beginner - intermediate) #214](https://youtu.be/B5cjckVzY4g) -- [python easter eggs: easiest hello world! (beginner) #215](https://youtu.be/ViNc-g60br8) -- [what is dynamic programming? (beginner - intermediate) #216](https://youtu.be/4tc5MUBjw-g) -- [unix commands: fold (beginner) #217](https://youtu.be/BVuW-kiY_X8) -- [listing only directories with `ls` (beginner) #218](https://youtu.be/rNANZNxEUAo) -- [github tip: getting perma-links (beginner) #219](https://youtu.be/5IDpsBccqLk) -- [finding python source code and docs (beginner) #220](https://youtu.be/DUG77pRVsV8) -- [how I sped up python's tokenize module by 25% (intermediate) #221](https://youtu.be/fYbeK47C5b8) -- [python: why is -c faster than -m? (intermediate) #222](https://youtu.be/YuIZkHawihw) -- [python: {...} is faster than dict(...) (intermediate) #223](https://youtu.be/-v4DmRsL7nc) -- [showing actual file bytes with hexdump (beginner - intermediate) #224](https://youtu.be/FNyo1CSxBrg) -- [python: how do any / all work? (beginner) #225](https://youtu.be/NO8frFR7ZxU) -- [python: why str('foo') (python 2 / 3 compat) (beginner - intermediate) #226](https://youtu.be/qNW-ITqdpfM) -- [bash: /bin/\[ is an executable ? (intermediate) #227](https://youtu.be/8kFmJGXa1qk) -- [the `install` command (beginner - intermediate) #228](https://youtu.be/Xk5XRy4OxOM) -- [3 ways to fix an accidental git commit to main (beginner - intermediate) #229](https://youtu.be/4C2lSosT7hc) -- [don't use time.time() for performance measurement (beginner - intermediate) #230](https://youtu.be/hb-12mgQrzM) -- [how to search a repo using `git grep` (beginner) #231](https://youtu.be/2MCtRv1ZIFQ) -- [the 2 modes of python's str.split (beginner) #232](https://youtu.be/6pIPMHP2Lwg) -- [python: what are *splat **args? (intermediate) #233](https://youtu.be/VhDMj5ffGSc) -- [why doesn't flake8 mark this import as unused? (beginner - intermediate) #234](https://youtu.be/gRq3Sb0_dJM) -- [pathlib is slow? how I improved black's caching by 40x (intermediate) #235](https://youtu.be/tFrh9hKMS6Y) -- [how to make a virtualenv from cpython source (intermediate) #236](https://youtu.be/2ETZsYF5c7s) -- [enable tab completion in pdb! (beginner) #237](https://youtu.be/S-Gj0q0O9_E) -- [sed command basics (beginner - intermediate) #238](https://youtu.be/fdRL8xME7bQ) -- [what pythons should I support? (beginner - intermediate) #239](https://youtu.be/w8W6IaaXCBQ) -- [python: what is assert? (beginner) #240](https://youtu.be/v1MtwCPTmBI) -- [python: shlex module (beginner - intermediate) #241](https://youtu.be/fdTHXq6AQ7E) -- [python: what is hashability? (intermediate) #242](https://youtu.be/fQtNXBJp8Q4) -- [python: why object() in this code? (intermediate) #243](https://youtu.be/1n6kWtLrOV4) -- [intro to terraform (intermediate) #244](https://youtu.be/xskzEkoisNE) -- [git rebase (and git rebase -i) (intermediate) #245](https://youtu.be/hv8dhOEzQcM) -- [testing output with pytest (beginner - intermediate) #246](https://youtu.be/dN-pVt7i4Us) -- [python: exception catching and isinstance gotcha (beginner - intermediate) #247](https://youtu.be/dS8rdjZrCaA) -- [one-off 3rd party mypy types (intermediate) #248](https://youtu.be/mKmmZHMwXAY) -- [PS1, coloring, and fixing weird wrapping (beginner - intermediate) #249](https://youtu.be/ngLwml9XI-I) -- [python match statement (PEP 634) (intermediate - advanced) #250](https://youtu.be/Bk-Gn7J6sz4) -- [NotImplemented vs NotImplementedError (beginner - intermediate) #251](https://youtu.be/GSBqmYUnBdk) -- [packaging python typed code (intermediate) #252](https://youtu.be/n4GJ8rp6DpE) -- [interview questions: anagrams (beginner - intermediate) #253](https://youtu.be/aEPW3x_FVes) -- [python: functools.partial (beginner - intermediate) #254](https://youtu.be/kZlOy1BY6lY) -- [speed up git in big repos with this trick (beginner) #255](https://youtu.be/ppILYNc10DQ) -- [correct `apt-get` for ubuntu / debian in docker (intermediate) #256](https://youtu.be/ZAoK8O9oBGo) -- [what is podman vs docker (beginner - intermediate) #257](https://youtu.be/lkg5QJsoCCQ) -- [a file even root can't delete! (chattr) (intermediate) #258](https://youtu.be/eXUCrIhTsM0) -- [python: yield from (beginner - intermediate) #259](https://youtu.be/36nDT1ryA5o) -- [pytest: xfail vs xpass and all test statuses (beginner - intermediate) #260](https://youtu.be/uzodcMcHbJU) -- [python easter eggs: \_\_peg\_parser\_\_ (beginner) #261](https://youtu.be/p985PaTjqlc) -- [what is the XDG base directory specification? (intermediate) #262](https://youtu.be/wT85Ynk-0MY) -- [move a virtualenv! (intermediate) #263](https://youtu.be/iZlgLrWed1I) -- [atomic file replacement (os.rename vs os.replace) (intermediate) #264](https://youtu.be/-9eXCb3yvyY) -- [floats are broken? (+3 solutions in python!) (beginner - intermediate) #265](https://youtu.be/9-Cpi3hGjrY) -- [how I find standard python type signatures (beginner - intermediate) #266](https://youtu.be/FP3VV6do6Cc) -- [python curses: mouse integration (intermediate) #267](https://youtu.be/OQ20a6CIamM) -- [the `rlwrap` command (beginner - intermediate) #268](https://youtu.be/WizvitXOsLk) -- [can cpython be 76% faster by changing hash()? (no) (intermediate) #269](https://youtu.be/_8FHjmv8ix0) -- [what is a .pth file? (intermediate) #270](https://youtu.be/mzxQrgvuRFg) -- [nesting context managers with classes (intermediate) #271](https://youtu.be/kJIyBpR9bQM) -- [a FREE stateful cron using aws (intermediate) #272](https://youtu.be/Lauwn5wNZzo) -- [what are git submodules? (intermediate) #273](https://youtu.be/RFcc-BQjCsE) -- [programmable nintendo switch controller (intermediate) #274](https://youtu.be/chvgQUX7QaI) -- [python typing: object vs Any (intermediate) #275](https://youtu.be/ATS9MAo2Mjc) -- [python typing: NotImplemented is a bool? (intermediate) #276](https://youtu.be/5XBs_fM3Nac) -- [the `find` command (beginner - intermediate) #277](https://youtu.be/y6NQTZgPNPw) -- [use the clipboard from the terminal (beginner) #278](https://youtu.be/-ebWr_C29_c) -- [pgrep / pkill commands (beginner - intermediate) #279](https://youtu.be/KdSKTEUPPEk) -- [SUPER FAST cpython with mypyc (intermediate) #280](https://youtu.be/0Cjg3qvHBEY) -- [updating a forked repository (beginner - intermediate) #281](https://youtu.be/MSYqb9EWjto) -- [docker takes so much disk! (beginner - intermediate) #282](https://youtu.be/TSjZrubRfXo) -- [python: traceback basics + raise from (beginner - intermediate) #283](https://youtu.be/wc6W-RaMJ7k) -- [git: check in executable file (+ on windows) (beginner - intermediate) #284](https://youtu.be/Ud6t-mIyhsw) -- [line buffering vs. block buffering (intermediate) #285](https://youtu.be/gdU1QiKKSbE) -- [the `comm` command! (intermediate) #286](https://youtu.be/Ic-8swynoHU) -- [man pages for git subcommands (beginner - intermediate) #287](https://youtu.be/1CYAFPTn_oo) -- [flake8: avoiding F401 in \_\_init\_\_.py (beginner - intermediate) #288](https://youtu.be/OAqvLDRZqFc) -- [top 10 new things in python 3.10 (beginner - intermediate) #289](https://youtu.be/jUwPmbHnlt0) -- [what is a deadletter queue? (intermediate) #290](https://youtu.be/XNXbjWNsKAE) -- [atomically replace / delete directories (intermediate - advanced) #291](https://youtu.be/qEcYqI5NDko) -- [☃.com and punycode / idna (beginner - intermediate) #292](https://youtu.be/MMkOWqJkxeo) -- [how to get pip for deadsnakes / docker pythons (intermediate) #293](https://youtu.be/2Hg5-Hrsa6w) -- [@staticmethod / @classmethod (beginner + advanced) #294](https://youtu.be/yhkpRz7TC7o) -- [date.today() is twice as slow as datetime.now().date()??? (intermediate) #295](https://youtu.be/PBg6EorsX7s) -- [simple python dockerfile w/ flask (intermediate) #296](https://youtu.be/8V4UowjLIMc) -- [python typing: Generator\[T, S, R\] (intermediate) #297](https://youtu.be/DTegfCNAXoM) -- [python: explicit relative imports (intermediate) #298](https://youtu.be/uwtupH7LJco) -- [debugging mypy types (beginner - intermediate) #299](https://youtu.be/Pc6H3Pofhp8) -- [what are python doctests? (beginner - intermediate) #300](https://youtu.be/37TJeMLyi5I) -- [terminal keyboard shortcut for unicode! (beginner) #301](https://youtu.be/36G70-MMhGI) -- [bash: strings with `!` / !... event not found (beginner - intermediate) #302](https://youtu.be/VkRjT3UBiLk) -- [default zoom key shortcut (beginner) #303](https://youtu.be/rn_iru8zKqs) -- [smaller / faster builds with dockerignore (beginner - intermediate) #304](https://youtu.be/dEZ5WVWLris) -- [python: why reload() is a bad idea (beginner - intermediate) #305](https://youtu.be/oOs2JQu8KEw) -- [what is the py launcher? (intermediate) #306](https://youtu.be/OGcVB5Lnxuc) -- [the `uniq` command (+ some `sort`) (beginner - intermediate) #307](https://youtu.be/FMdWB3m3lQ0) -- [gradual typing python (and my approach) (beginner - intermediate) #308](https://youtu.be/Rk-Y71P_9KE) -- [importing non-module python files (intermediate) #309](https://youtu.be/B5bToFdBxdw) -- [the `cut` command (beginner - intermediate) #310](https://youtu.be/l9T85dA6HDY) -- [bash: special redirection (intermediate) #311](https://youtu.be/3f8xjDr789Q) -- [python typing: TYPE\_CHECKING (intermediate) #312](https://youtu.be/BPE4p8HNLFM) -- [`else` is good, actually (beginner - intermediate) #313](https://youtu.be/rClGwTEOK7M) -- [Fussy Fox + flake8 vulnerability (intermediate) #314](https://youtu.be/J7NMyb-LNX4) -- [setting up required github PR checks (beginner - intermediate) #315](https://youtu.be/LGY1jPUso5I) -- [python has an optimizer? (intermediate) #316](https://youtu.be/i8uNgEchr20) -- [pytest: testing env variables (intermediate) #317](https://youtu.be/N15X_pQHckQ) -- [python easter eggs: this (beginner) #318](https://youtu.be/mRYWLKcMfE4) -- [git: main vs. origin/main (beginner - intermediate) #319](https://youtu.be/f-92I_gxgjA) -- [python warnings (beginner - intermediate) #320](https://youtu.be/tZSEZ2WG5w8) -- [docker beside docker (intermediate - advanced) #321](https://youtu.be/pDysRzgLpgM) -- [what is manylinux? (intermediate - advanced) #322](https://youtu.be/80j-MRtHMek) -- [pip install from git (beginner - intermediate) #323](https://youtu.be/AQrskWh-F5E) -- [python tempfile module (beginner - intermediate) #324](https://youtu.be/-pmgCmWiOXo) -- [virtualenv: --system-site-packages (intermediate) #325](https://youtu.be/R6ObMPdixj0) -- [python: what is repr? (beginner - intermediate) #326](https://youtu.be/ei1q7m3zLfU) -- [making an omni-executable (intermediate) #327](https://youtu.be/r41t-t27V9c) -- [assign vs. shallow vs. deep copy (beginner - intermediate) #328](https://youtu.be/5Ufr51uPHEs) -- [what is `source` and why? (beginner - intermediate) #329](https://youtu.be/YE6ZDpRcdQU) -- [mypy! this key exists I promise! (beginner - intermediate) #330](https://youtu.be/HE0At4RrZIE) -- [python: raise SystemExit (beginner - intermediate) #331](https://youtu.be/ZbeSPc5wL0g) -- [python easter eggs: barry\_as\_FLUFL (beginner - intermediate) #332](https://youtu.be/0vRwC-F7FF0) -- [don't name things "...\_new" (beginner) #333](https://youtu.be/d-ZkEg_fa8Q) -- [what is "idempotent" in programming (beginner) #334](https://youtu.be/o9THkT5ZPi4) -- [interview tips: what language should I use? (beginner) #335](https://youtu.be/BzhNtQMGu9E) -- [porting code to python **ZERO** (intermediate - advanced) #336](https://youtu.be/6vdg91-hPGY) -- [interview tips: "your story" (beginner) #337](https://youtu.be/YBYzpQOA9lg) -- [a python extension in go (advanced) #338](https://youtu.be/kCRU_ZTcxac) -- [debugging a failed docker build (intermediate) #339](https://youtu.be/hd1AKYGiWNk) -- [the most important skill I've learned for software engineering (beginner) #340](https://youtu.be/ritp4gAqNMI) -- ["graceful exit" SIGTERM doesn't run finally / destructors ? (intermediate) #341](https://youtu.be/VVS1xVjhj34) -- [--argument prefix matching (beginner - intermediate) #342](https://youtu.be/jrs0l3HJ-Ow) -- [why does id(float(1)) == id(float(2)) ??? (intermediate) #343](https://youtu.be/jjm10-Ug1aE) -- [python: what is `__main__` / `__main__.py` ? (beginner - intermediate) #344](https://youtu.be/FRxDmVVm0d0) -- [range(len(...)) is almost always wrong in python (beginner) #345](https://youtu.be/SwjBJhJiHvQ) -- [what is umask? (intermediate) #346](https://youtu.be/ZfDbUxH99n0) -- [opinion: don't bother typing tests (intermediate) #347](https://youtu.be/lGCU0j-otls) -- [multiprocessing: slow things first! (intermediate) #348](https://youtu.be/h4vmU2DJoQg) -- [bash shortcut: curly expansion (intermediate) #349](https://youtu.be/r2G0rbm7XJk) -- [make your own timeout with alarm(...) (intermediate) #350](https://youtu.be/vGWSdp9dyhI) -- [pretty recursive diffs! (beginner - intermediate) #351](https://youtu.be/vEUFrmrS7Hc) -- [github wikis are repos! (beginner - intermediate) #352](https://youtu.be/U18COUDlzu8) -- [python: easy comparable classes with functools.total\_ordering (intermediate) #353](https://youtu.be/po7iMzrgJwA) -- [git without `cd` (intermediate) #354](https://youtu.be/fQ3-Y99Fzro) -- [why remove the python GIL? (intermediate - advanced) #355](https://youtu.be/6g79qGQo2-Q) -- [python: unicode names and why they're bad (intermediate) #356](https://youtu.be/OaEgGW19M5o) -- [makefile basics (beginner - intermediate) #357](https://youtu.be/20GC9mYoFGs) -- [how to ace the coding interview (intermediate) #358](https://youtu.be/eVNkO6g0fP8) -- [python try except and best practices (beginner - intermediate) #359](https://youtu.be/tIh42X0oGQc) -- [sorting basics in python (beginner) #360](https://youtu.be/fqzcnd_FstY) -- [multiplying str / list / tuple and pitfalls (beginner - intermediate) #361](https://youtu.be/ZFjV3M-xl_M) -- [making your own custom git commands (intermediate) #362](https://youtu.be/YwG8C0jPapE) -- [python --version --version is not a typo! (beginner) #363](https://youtu.be/DIfVUYKZZfs) -- [python parameter defaults are (mutable) globals (intermediate) #364](https://youtu.be/x7kRGQNUJ5I) -- [python typing: explicit TypeAlias (PEP 613) (intermediate) #365](https://youtu.be/50SqDLU-6RE) -- [python: what is weakref? (intermediate - advanced) #366](https://youtu.be/GGKerIMqHCk) -- [pip: requirements vs. constraints (intermediate) #367](https://youtu.be/SeT-Gj_frd0) -- [python: NewType vs aliases (intermediate) #368](https://youtu.be/9rRYeunzX8c) -- [quick debugging tool: python -i (beginner) #369](https://youtu.be/B4wkrdcc28A) -- [what is the log4shell vulnerability? (beginner - intermediate) #370](https://youtu.be/A5BLKKYIQ28) -- [what are python wheels? (intermediate - advanced) #371](https://youtu.be/4L0Jb3Ku81s) -- [recursively import python modules (intermediate) #372](https://youtu.be/t43zBsVcva0) -- [git commit as someone else? (intermediate) #373](https://youtu.be/bQ2OiciywyA) -- [what is PROMPT\_COMMAND? (+aactivator) (intermediate) #374](https://youtu.be/GFLivv2QGI0) -- [python: what is `__file__`? (beginner - intermediate) #375](https://youtu.be/LVhxqOznPg0) -- [job management: fg / bg / ^Z, & and more! (intermediate) #376](https://youtu.be/lkQOQAc65ZA) -- [for loops are just while loops in disguise (beginner - intermediate) #377](https://youtu.be/Pq2aXxTKFv4) -- [configuring git from environment vars (intermediate) #378](https://youtu.be/RVZeTpVpwS4) -- [mypy: possible cyclic definition fix (intermediate) #379](https://youtu.be/O_CYtaDlOO4) -- [git: what does "fast forward" mean? (intermediate) #380](https://youtu.be/Vy0JIwQoI-E) -- [pathlib is slow! falsey is tricky! (pytest bug) (intermediate - advanced) #381](https://youtu.be/qiZyDLEJHh0) -- [don't lru\_cache methods! (intermediate) #382](https://youtu.be/sVjtp6tGo0g) -- [github: give people credit! (beginner - intermediate) #383](https://youtu.be/_-qNX8EbVYI) -- [dropping old python versions (intermediate) #384](https://youtu.be/Oun5kXqENMk) -- [useful interview data structures: heapq (intermediate) #385](https://youtu.be/sRLuocdQfEw) -- [decorator typing (PEP 612) (intermediate - advanced) #386](https://youtu.be/fwZoxWyMGM8) -- [python: what is 0-arg raise? (beginner) #387](https://youtu.be/yj4z1N3_0sw) -- [time vs. /bin/time (beginner - intermediate) #388](https://youtu.be/hJ5LT4AGf3Y) -- [what is an open redirect vulnerability? (intermediate) #389](https://youtu.be/ziGvS7XLWDU) -- [how an exit(n) bug introduced 100s of lint errors (intermediate) #390](https://youtu.be/RVSw1BGNmq8) -- [hiding big noisy git diffs (intermediate) #391](https://youtu.be/zVlISs2fnzw) -- [recovering from git mistakes w/ ORIG\_HEAD (intermediate) #392](https://youtu.be/yhtq_PSekdo) -- [the `timeout` command (beginner - intermediate) #393](https://youtu.be/QRywzsBftfc) -- [python code formatter tutorial (intermediate - advanced) #394](https://youtu.be/G1omxo5pphw) -- [why did I run `cd $PWD` ??? (beginner - intermediate) #395](https://youtu.be/7tSVb0d0fyA) -- [my python project setup (+ all tools) (intermediate) #396](https://youtu.be/q8DkatMZvUs) -- [python can import from zips! (intermediate) #397](https://youtu.be/XCMOeFN6zX4) -- [from imports aren't faster! (beginner - intermediate) #398](https://youtu.be/ZWCyNz0fUsc) -- [what is a .so / .dll / shared object? (intermediate - advanced) #399](https://youtu.be/PDkKz3zQVls) -- [what is inlining? and how does it make code faster? (intermediate) #400](https://youtu.be/ct-eBvjsPck) -- [finding and fixing test pollution! (intermediate) #401](https://youtu.be/FRteianaPMo) -- [how to modify a list while iterating (intermediate) #402](https://youtu.be/JXis-BKRDFY) -- [fix flaky tests with detect-test-pollution! (intermediate) #403](https://youtu.be/w5O4zTusyJ0) -- [a python curses wordle clone from scratch! (intermediate - advanced) #404](https://youtu.be/dViRI1iovoc) -- [why does `cd --` go to ~ ? (intermediate) #405](https://youtu.be/vrIsG0Rw5xY) -- [the `split` command! (beginner - intermediate) #406](https://youtu.be/Ox95VqtRC28) -- [don't run `python my/script.py`! (beginner - intermediate) #407](https://youtu.be/hgCVIa5qQhM) -- [what's that unicode character‽ (beginner - intermediate) #408](https://youtu.be/W60RS8PMP78) -- [what is the `shred` command? (beginner - intermediate) #409](https://youtu.be/2yt5u5JanwA) -- [getting a python stacktrace from gdb! (intermediate - advanced) #410](https://youtu.be/guni3oUdTIs) -- [the fastest python startup with `python -S` (intermediate) #411](https://youtu.be/lCwz4S2vCH8) -- [what is immutability? (beginner - intermediate) #412](https://youtu.be/OjLxyRyzzuY) -- [what is rpath? (+relocatability) (intermediate - advanced) #413](https://youtu.be/01fnuhjMwc0) -- [`pip install pkg❮1.999` ? (intermediate) #414](https://youtu.be/JzEAYIPdFX4) -- [10 protips I wish I knew sooner as a software dev (beginner) #415](https://youtu.be/_wcVyhfyaeE) -- [embedding images in github (beginner - intermediate) #416](https://youtu.be/8088ORqS3uY) -- [how I sped up python by 20ms (intermediate) #417](https://youtu.be/kI9WjDNxRJM) -- [typing Self (PEP 673) (intermediate) #418](https://youtu.be/ThATVufmTz8) -- [you don't need .git! (beginner) #419](https://youtu.be/BW7z9TO0Fqg) -- [I don't need `__init__.py`? PEP 420 and namespace packages (intermediate) #420](https://youtu.be/2Xvb79hOUdM) -- [repr(...) doesn't work the way you expect (intermediate - advanced) #421](https://youtu.be/e3bqdxqLvH4) -- [DVD screensaver in python curses (intermediate) #422](https://youtu.be/mVwAehkeBkI) -- [double underscored names are NOT "more private" (beginner - intermediate) #423](https://youtu.be/IVqLW1NWtPc) -- [FizzBuzz... but in sqlite? (intermediate) #424](https://youtu.be/UdhcvNSFRgU) -- ["z3" is actual magic (intermediate) #425](https://youtu.be/C9eXcmWWEyA) -- [bash quoting is really not that difficult! (beginner - intermediate) #426](https://youtu.be/VIUoHnFwEH4) -- [I made pip startup 25% faster (intermediate) #427](https://youtu.be/GmK1So7F0ZQ) -- [how to use python backports + setup.py (intermediate) #428](https://youtu.be/B94tqnXeFnQ) -- [setting up an ubuntu jammy (22.04) development machine (beginner) #429](https://youtu.be/tSUlg3yN4-k) -- [python Generics (intermediate) #430](https://youtu.be/LcfxUU1A-RQ) -- [babi+ast helped me not break sentry! (intermediate) #431](https://youtu.be/Fch_lt7ZXUw) -- [python comprehensions leak scope again (intermediate) #432](https://youtu.be/ONy8xXbdcUc) -- [python variadic generics (PEP 646) (intermediate - advanced) #433](https://youtu.be/hAj3nGzeSiQ) -- [top 10 new things in python 3.11 (beginner - advanced) #434](https://youtu.be/w2rcZIG1Uxk) -- [assert\_never / assert\_type **CORRECTION** (intermediate) #435](https://youtu.be/jN_a02Rj8Gg) -- [a git workflow for *only my branches* (intermediate) #436](https://youtu.be/GKBq5Xo_B6I) -- [regex lookahead / lookbehind (intermediate) #437](https://youtu.be/AjTy0DBK-18) -- [are your python tests even running? (intermediate) #438](https://youtu.be/0nPS_vVmhp0) -- [python TypeGuard (PEP 647) (intermediate) #439](https://youtu.be/Zv2K2AVy5lA) -- [how I fixed a 9GB memory leak in cargo (rust) (intermediate) #440](https://youtu.be/uxJhAXdBlbc) -- [dealing with merge conflicts (beginner - intermediate) #441](https://youtu.be/vQY309QQfuQ) -- [what is an --orphan git branch? (intermediate) #442](https://youtu.be/XLuD7KJLMwE) -- [narrow python? len('🙃') == 2??? (intermediate) #443](https://youtu.be/ht3ezs3O9Yo) -- [what is gbp? (intermediate - advanced) #444](https://youtu.be/Nu4TIETrktY) -- [argparse: boolean option pitfall (beginner - intermediate) #445](https://youtu.be/KuwR0GPylqE) -- [cd is not an executable (beginner) #446](https://youtu.be/1Ld5qv4-Pbo) -- [what is a universal2 wheel? (intermediate) #447](https://youtu.be/utdohIoR9ZM) -- [docker: fast CI rebuilds with --cache-from (intermediate) #448](https://youtu.be/77j6JFBTmTc) -- [debugging a real issue and googling (beginner - intermediate) #449](https://youtu.be/IQsat6EA0-M) -- [regex backreferences (intermediate) #450](https://youtu.be/gPMpRw1xUA8) -- [why I banned python's assertRaises (intermediate) #451](https://youtu.be/Q_HMOBD09ts) -- [safer github personal access tokens (intermediate) #452](https://youtu.be/GsjD5tZWqmM) -- [bash strict mode gotcha (intermediate) #453](https://youtu.be/oqq5k8XsrSs) -- [javascript sucks at unicode (intermediate) #454](https://youtu.be/PTJAvcpBdWo) -- [pip freezing (==) isn't safe (intermediate) #455](https://youtu.be/oGpyupM52IQ) -- [python regex dynamic replacements (intermediate) #456](https://youtu.be/o_PD7AAbs4U) -- [how I made my import sorter 7x faster (intermediate) #457](https://youtu.be/Q3menOSxRC4) -- [what release was this fixed? (workflow) (intermediate) #458](https://youtu.be/7f3UdjuQYtw) -- [safely stealing github secrets with cryptography (intermediate) #459](https://youtu.be/qjnEZ-3uYjc) -- [how I sped up flake8 by 20% (intermediate) #460](https://youtu.be/pvSk8pLLQrE) -- [github's semi-secret by-id apis (intermediate) #461](https://youtu.be/_XkkiwoiFU0) -- [what is a natural sort? (beginner - intermediate) #462](https://youtu.be/RaE66ycBRE0) -- [relocatable macos binaries (advanced) #463](https://youtu.be/OL7JTiJs-d8) -- [what is nullcontext? (conditional contexts, pytest) (intermediate) #464](https://youtu.be/XcyVxmkrKXk) -- [why do I use azure pipelines instead of github actions? (intermediate) #465](https://youtu.be/NEl4JfZ4of8) -- [how is list append possibly O(1)? (beginner - intermediate) #466](https://youtu.be/WIuITZgGYG8) -- [what is musllinux (PEP 656) (intermediate) #467](https://youtu.be/QAbveJB5kk8) -- [easy try rust as a python dev (intermediate) #468](https://youtu.be/ZGlEIetFNf0) -- [why can't I signal a MagicMock() ? (intermediate) #469](https://youtu.be/nJwc7iqyQwU) -- [why does python think -1**0 is -1 ? (intermediate) #470](https://youtu.be/T49G4WwmvnA) -- [how do from imports keep their globals? (intermediate) #471](https://youtu.be/FSPyCD5P76A) -- [python int DoS vulnerability (CVE 2020-10735) (beginner - intermediate) #472](https://youtu.be/lIniq12cMK0) -- [docker multi-arch images (intermediate) #473](https://youtu.be/G6wCo1WBPTo) -- [python: don't use urlparse! (beginner - intermediate) #474](https://youtu.be/ABJvdsIANds) -- [why does python report macos 10.16 ??? (intermediate) #475](https://youtu.be/Kg8s2YV-aFE) -- [the docker registry api (advanced) #476](https://youtu.be/Ce9var-Fty8) -- [urllib3\[secure\]'s clever deprecation trick (intermediate) #477](https://youtu.be/_jUXdX8e9Wg) -- [functools.wraps for classes (intermediate) #478](https://youtu.be/rbEqoOIvFko) -- [avoiding shell injection in github actions (intermediate) #479](https://youtu.be/7w0Ns8C1shQ) -- [what is coverage? (intermediate) #480](https://youtu.be/eQM3TOjsM_Q) -- [don't make images of code / text! (beginner) -- #481](https://youtu.be/svlsnZFWWDE) -- [what is "short circuiting"? (beginner - intermediate) #482](https://youtu.be/tsrlQ8v4UaM) -- [what is the "unraisable" hook (intermediate) #483](https://youtu.be/G4Lya0KVG1E) -- [how does swapping work in python? (beginner - intermediate) #484](https://youtu.be/cMiqfkpMh08) -- [hiding your email on github (beginner) #485](https://youtu.be/O3e19cwX6uY) -- [python warnings defaults suck (intermediate) #486](https://youtu.be/CtFdXBEwYfk) -- [pytest: everything you need to know about fixtures (intermediate) #487](https://youtu.be/ScEQRKwUePI) -- [python os / platform-specific deps (PEP 508) (intermediate) #488](https://youtu.be/cNQhpprVyn0) -- [I don't use pytest-cov (intermediate) #489](https://youtu.be/sPgvHGkmd0U) -- [RegCPython: a 10% faster python for free? (intermediate - advanced) #490](https://youtu.be/MQ2Lfj2hAdk) -- [avoid notification spam with draft PRs! (beginner) #491](https://youtu.be/LOLpOTYzknI) -- [multiprocessing: fork() vs. spawn() (intermediate) #492](https://youtu.be/hzBtsDPJ1dM) -- [this clever hack let me kill py (intermediate) #493](https://youtu.be/aZS3_-y6vsg) -- [do this first before opening an issue (beginner) #494](https://youtu.be/cGYVGVsXNFM) -- [securing python with audit hooks (PEP 578) (intermediate) #495](https://youtu.be/sIibadhDqaw) -- [python sucks at copy-on-write (and one fix!) (intermediate) #496](https://youtu.be/sdmcCQ7Em04) -- [git is just a key value store? (advanced) #497](https://youtu.be/HvA-WkXqlDI) -- [refcount ONE BILLION? (immortal objects, PEP 683) (advanced) #498](https://youtu.be/i5ZaVC4sEZA) -- [partial git commits (intermediate) #499](https://youtu.be/UJ5fpaeZWsI) -- [sqlite is my favorite database (beginner - intermediate) #500](https://youtu.be/jH39c5-y6kg) -- [virtualenv isn't reproducible! (by default) (intermediate) #501](https://youtu.be/mgJiCnqzYlI) -- [--extra-index-url is unsafe! (intermediate) #502](https://youtu.be/fWquXVcTKjU) -- [docker: multi-stage builds (intermediate) #503](https://youtu.be/OVYNUg0aODw) -- [git: the several ways to "--sign" (intermediate) #504](https://youtu.be/6hu3cbBhHqQ) -- [why I use the colon (:) command (intermediate) #505](https://youtu.be/onkNf1AKSgg) -- [how should I organize my project? (beginner) #506](https://youtu.be/QGAuwlQ9Gxc) -- [don't git clone over https! (beginner) #507](https://youtu.be/5o9ltH6YmtM) -- [don't use cat! (intermediate) #508](https://youtu.be/vWMiBVkdJjA) -- [module level \_\_getattr\_\_ (intermediate) #509](https://youtu.be/rRwJdMY2f4g) -- [why are some things shell builtins? (intermediate) #510](https://youtu.be/p_KKDHJhi7A) -- [python: zip and unzip (intermediate) #511](https://youtu.be/hOiRkFBxtpo) -- [I've moved off of azure pipelines for CI (intermediate) #512](https://youtu.be/n39uvwdW5ek) -- [swapping without a third variable (intermediate) #513](https://youtu.be/NLwJI6DFF4U) -- [when should I pin deps: never and always! (intermediate) #514](https://youtu.be/WSVFw-3ssXM) -- [make a github commit using only the api! (intermediate) #515](https://youtu.be/nwHqXtk6LHA) -- [a simpler `try` / `except` (and why maybe shouldn't) (beginner - intermediate) #516](https://youtu.be/MZAJ8qnC7mk) -- [you're probably doing case-insensitive wrong (intermediate) #517](https://youtu.be/U-Zq8bURfKc) -- [getting started with pytest (beginner - intermediate) #518](https://youtu.be/mzlH8lp4ISA) -- [python descriptors! (advanced) #519](https://youtu.be/vBys0SwYvCQ) -- [don't use short options in scripts (beginner - intermediate) #520](https://youtu.be/OKqWy2dM2Jo) -- [how to escape this VERY MEAN prank (beginner) #521](https://youtu.be/ZjSWRGzWo88) -- [how do virtualenvs actually work (advanced) #522](https://youtu.be/XFqDHPYfTwE) -- [python's optimization mode is mostly useless (intermediate) #523](https://youtu.be/6kMGphTUOUk) -- [merge queues (intermediate) #524](https://youtu.be/3vIGZ6_6nzo) -- [all string syntaxes (beginner) #525](https://youtu.be/4Y4VrKa1lVs) -- [my first rust open source PR (beginner - intermediate) #526](https://youtu.be/kIaOOYlbPWI) -- [tuples! (and their syntax quirks) (beginner) #527](https://youtu.be/J3-tL6OnFWA) -- [how I use git blame (beginner - intermediate) #528](https://youtu.be/8uuueHkWy-E) -- [positional / named only without `*` or `/`? (intermediate) #529](https://youtu.be/DatCgcsF6B8) -- [why git's --intent-to-add ? (intermediate) #530](https://youtu.be/GEYfAMpA-38) -- [rerunning github checks (beginner - intermediate) #531](https://youtu.be/OYh22O1B5D0) -- [shell aliases and bypassing them? (beginner - intermediate) #532](https://youtu.be/6okEabkL_q0) -- [how I made pre-commit's github actions 3x faster (intermediate) #533](https://youtu.be/5K8k-bSDnU0) -- [don't use localhost (intermediate) #534](https://youtu.be/98SYTvNw1kw) -- [what is a "canary" deploy? (beginner - intermediate) #535](https://youtu.be/W1uJCzqH0Lk) -- [avoiding noisy git matches (beginner - intermediate) #536](https://youtu.be/zoCuIdZJT1s) -- [docker pull by sha256 digest (advanced) #537](https://youtu.be/AiAU7wnPCrQ) -- [weird python identity quirk? (intermediate) #538](https://youtu.be/w4GasVbjIbA) -- [when `git add .` doesn't work (intermediate) #539](https://youtu.be/N0TFxl7A5Hw) -- [I made every sentry page 300ms faster (intermediate) #540](https://youtu.be/FY7EQwT7QKU) -- [docker: don't mount files! (mount dirs instead) (intermediate) #541](https://youtu.be/oXfL0UCO9F4) -- [you can't always trust argv\[0\] (intermediate) #542](https://youtu.be/qwpfSL-AcFQ) -- [shell: use this instead of `cd` (intermediate) #543](https://youtu.be/eF6qpdIY7Ko) -- [docker: secrets at build time! (intermediate) #544](https://youtu.be/aK6sJDOn2Hc) -- [every Dockerfile should have this line! (intermediate) #545](https://youtu.be/kL0q-7alfQA) -- [python's "soft" keywords (intermediate) #546](https://youtu.be/Rv3NYDOLpkM) -- [shell vs environment variables (and env, export, etc.) (intermediate) #547](https://youtu.be/h36Xc38SDHg) -- [python 3.12 release highlights (beginner - advanced) #548](https://youtu.be/IV8OZY4194U) -- [how does .exe magic work? (PATHEXT) (intermediate) #549](https://youtu.be/6QiLrVaG0qI) -- [python is removing the GIL! (PEP 703) (advanced) #550](https://youtu.be/OC2gnyfmwL8) -- [tuple syntax doesn't have parens (beginner - intermediate) #551](https://youtu.be/EDGJ2TMuppM) -- [what is `Symbol` in js (intermediate) #552](https://youtu.be/gZBQ8LIR6D4) -- [debugging a sentry test pollution! (intermediate) #553](https://youtu.be/YEIeKdBmuUY) +0. [introducing anthony explains!](https://youtu.be/qvkppppy9K8) +1. [python cli tested with pytest - (beginner to intermediate)](https://youtu.be/sv46294LoP8) +1. [python @decorators - (intermediate)](https://youtu.be/WDMr6WolKUM) +1. [my favorite python str method! (beginner - intermediate)](https://youtu.be/kx6G3nkZTjM) +1. [how to make a simple github PR (beginner)](https://youtu.be/cysuuUtbC6E) +1. [the python @property decorator (beginner - intermediate)](https://youtu.be/orp6bhe4i00) +1. [python type(x).\_\_name\_\_ vs x.\_\_class\_\_.\_\_name\_\_ (intermediate)](https://youtu.be/6rAIttnm3Fs) +1. [python return annotations: NoReturn vs None (intermediate)](https://youtu.be/-zH0qqDtd4w) +1. [what's wrong with python's blank except:? (beginner - intermediate)](https://youtu.be/i0GOLe-F27Q) +1. [how I use selenium + html/css to make thumbnails (intermediate)](https://youtu.be/VABA2rX1I_M) +1. [python: raising Error without parens (intermediate)](https://youtu.be/gGqRBHHIQGE) +1. [python's tricky `for ...: else:` statement (beginner - intermediate)](https://youtu.be/8P7lXLXR_3c) +1. [python's `pass` statement (beginner - intermediate)](https://youtu.be/ANjDsGZZXy8) +1. [shell bling strings! (beginner - intermediate)](https://youtu.be/fhhznv4E1pI) +1. [setting up an ubuntu focal virtual machine (beginner - intermediate)](https://youtu.be/qL3xc8hwU7c) +1. [python executable zipapps (intermediate)](https://youtu.be/HfL2s2JySos) +1. [pretty python profiling (intermediate)](https://youtu.be/ey_P64E34g0) +1. [python implicit string joining (beginner - intermediate)](https://youtu.be/5Zto6VYsNsI) +1. [postmortem debugging in python (beginner - intermediate)](https://youtu.be/s8Nx2frW4ps) +1. [configuration management (devops) (intermediate)](https://youtu.be/aQTCDoZ4NFg) +1. [how to pronounce PyPI (beginner)](https://youtu.be/I5OUzCAYst8) +1. [all python argument / parameter types (beginner - intermediate)](https://youtu.be/aKCfCmSggPg) +1. [what is a tty? (beginner - intermediate)](https://youtu.be/SYwbEcNrcjI) +1. [introduction to markdown (beginner)](https://youtu.be/1UodxuXj5Ao) +1. [how do I get started in open source? (beginner)](https://youtu.be/NFW22q-vI6I) +1. [a flake8 plugin from scratch (intermediate)](https://youtu.be/ot5Z4KQPBL8) +1. [finding regressions with git bisect (intermediate)](https://youtu.be/C2C7FTI8nB4) +1. [pytest's parametrize (beginner - intermediate)](https://youtu.be/aQH7hyJn-No) +1. [python curses "hello world" (beginner - intermediate)](https://youtu.be/2em6MiOpHWk) +1. [git: empty initial commit (beginner - intermediate)](https://youtu.be/BJ4hkYdb1LI) +1. [dockerfile RUN : \\ && syntax (beginner)](https://youtu.be/BdxdRlTnPEE) +1. [python variable unpackings (beginner - intermediate)](https://youtu.be/ObWh1AYClI0) +1. [docker: ADD «url» considered harmful? (intermediate)](https://youtu.be/DazBJeVRA7k) +1. [what is a shebang (#!)? (beginner - intermediate)](https://youtu.be/g3VxRdtlMoE) +1. [what is test driven development? (beginner - intermediate)](https://youtu.be/JmMxU8ljiOg) +1. [python single vs double quote strings! (beginner)](https://youtu.be/TTo5LGXYsH0) +1. [git: ignoring noisy whitespace changes (beginner - intermediate)](https://youtu.be/qYJWBJvHqj0) +1. [git: useful trick for pushing branches (beginner - intermediate)](https://youtu.be/bItxrNqJ5UQ) +1. [python github actions w/ tox and pre-commit (intermediate)](https://youtu.be/KKJL8bM4cis) +1. [releasing a python package to pypi (beginner - intermediate)](https://youtu.be/Gre2W5z4iLE) +1. [virtualenv vs. venv (beginner - intermediate)](https://youtu.be/MGTX5qI2Jts) +1. [implementing --version with importlib.metadata (intermediate)](https://youtu.be/beDG6Ibo2zQ) +1. [string formatting in python (beginner - intermediate)](https://youtu.be/dTrW8YktDnE) +1. [introduction to tox (beginner - intermediate)](https://youtu.be/75WBE_qbpGk) +1. [python argparse tutorial (beginner - intermediate)](https://youtu.be/-Sgw-6a1HjU) +1. [typing \_\_getitem\_\_ (python / mypy) (intermediate)](https://youtu.be/HESA7oukEqE) +1. [fixing a git mistake with reflog (intermediate)](https://youtu.be/R8R9_eT2law) +1. [introduction to python typing + mypy (beginner - intermediate)](https://youtu.be/H5CnZQDKfhU) +1. [python packaging: src layout (intermediate)](https://youtu.be/sW1qUZ_nSXk) +1. [three ways to edit git commits (intermediate)](https://youtu.be/2LEn0GQJitM) +1. [stdin / stdout / stderr (beginner - intermediate)](https://youtu.be/5za6eRdHjpw) +1. [hacker mode tmux debugging (intermediate)](https://youtu.be/BMn0nSpeITY) +1. [regular expressions crash course (beginner - intermediate)](https://youtu.be/yFRSpPwrJzQ) +1. [web security: what is a csrf exploit? (intermediate)](https://youtu.be/MXZhe0KduyE) +1. [python: functools.lru\_cache (beginner - intermediate)](https://youtu.be/K0Q5twtYxWY) +1. [python \_\_future\_\_ "module" (beginner - intermediate)](https://youtu.be/_K4mjPrROGQ) +1. [undoing an accidental git commit (intermediate)](https://youtu.be/EcciszFDpn8) +1. [python packaging: basic setup.py and declarative metadata (intermediate)](https://youtu.be/GaWs-LenLYE) +1. [what is deadsnakes? (beginner - intermediate)](https://youtu.be/Xe40amojaXE) +1. [getting started with programming (beginner)](https://youtu.be/khqIPspzh4A) +1. [git show (+ some tips!) (beginner)](https://youtu.be/gFKgEbbQRyQ) +1. [python star imports (beginner - intermediate)](https://youtu.be/gJJVXB5JLUk) +1. [intro to apt (debian / ubuntu) (beginner + intermediate)](https://youtu.be/ctGpRWCi8QU) +1. [correct conditional arguments in bash (beginner - intermediate)](https://youtu.be/hVTrmsqZC38) +1. [using the python \_\_import\_\_ builtin correctly (intermediate)](https://youtu.be/3V3bv7FsR48) +1. [special paths: ~, ~user, ., .. (beginner)](https://youtu.be/lyMQASRha9s) +1. [protip: exiting really fast! (beginner)](https://youtu.be/yLdxwugv4qM) +1. [python: Ellipsis (...) and typing (beginner - intermediate)](https://youtu.be/yLwvOwTO068) +1. [git cherry-pick (intermediate)](https://youtu.be/hmMrtfyb1vc) +1. [customizing the python repl (intermediate)](https://youtu.be/vwu6i0ghwJU) +1. [what is PATH? (beginner - intermediate)](https://youtu.be/ZpOoRSkm-dQ) +1. [python packaging: data files (intermediate)](https://youtu.be/bfyIrX4_yL8) +1. [a virtualenv from nothing! (beginner - intermediate)](https://youtu.be/OXmYKh0eTQ8) +1. [tox --devenv (beginner - intermediate)](https://youtu.be/flJi2N3dDk0) +1. [python packaging: optional dependencies (intermediate)](https://youtu.be/yJyo-K7wW2g) +1. [regexes: capture groups (beginner - intermediate)](https://youtu.be/Cs2V6nRhWL4) +1. [python typing: why not self? (intermediate)](https://youtu.be/VumItqHMaTA) +1. [generator basics (+typing) (beginner - intermediate)](https://youtu.be/LjBa9sfJh7U) +1. [stop using `git add .` (beginner - intermediate)](https://youtu.be/GgIZbO2Hb5s) +1. [why not global pip / virtualenv? (intermediate)](https://youtu.be/O390_abzo08) +1. [bash hash cache! (beginner - intermediate)](https://youtu.be/N13XEwdc_2k) +1. [git: a checked-in directory (intermediate)](https://youtu.be/_qCzcB80fAY) +1. [typing: exception types (intermediate)](https://youtu.be/22BvsKjHRfQ) +1. [why you should end a file in a newline (beginner)](https://youtu.be/r5nWtfwK_dk) +1. [git workflow: branch name collisions (intermediate)](https://youtu.be/XHU3Kvudraw) +1. [sort your imports! (beginner - intermediate)](https://youtu.be/Sjor8PZXnaw) +1. [what is the underscore (\_) for? (beginner)](https://youtu.be/VKz1aQbNnyI) +1. [python curses: color (intermediate)](https://youtu.be/M8gC65VgApM) +1. [semantic versioning (beginner - intermediate)](https://youtu.be/vRSw2f34RRU) +1. [file modes and chmod (beginner - intermediate)](https://youtu.be/BrBHUosstHg) +1. [making a regex not match itself! (intermediate)](https://youtu.be/4KLLctC0G6U) +1. [I run 'rm -rf /' and see what happens (beginner - intermediate)](https://youtu.be/iqqNMZj608s) +1. [git fetch (--prune) (beginner - intermediate)](https://youtu.be/oj19T3N2NHY) +1. [top 10 new things in python3.9 (beginner - intermediate)](https://youtu.be/Dtw0QJhepV0) +1. [testing functools.lru\_cache with pytest! (beginner - intermediate)](https://youtu.be/ujRo8n0LsU4) +1. [git: commit message pro tip (beginner - intermediate)](https://youtu.be/CWrBZeC2Qqs) +1. [typing: what is Type\[X\]? (intermediate)](https://youtu.be/_7EXU9cjBkg) +1. [python debugger crash course: pdb / breakpoint (beginner - intermediate)](https://youtu.be/0LPuG825eAk) +1. [why pytest.mark.usefixtures? (intermediate)](https://youtu.be/BE2v1VCmGwg) +1. [git apply and manual stashing (intermediate)](https://youtu.be/4LXTaikZfco) +1. [intro to python namedtuples! (beginner - intermediate)](https://youtu.be/iqXnBE4htUc) +1. [namedtuple to json and other pitfalls (intermediate)](https://youtu.be/QOKqvuvA3ok) +1. [how namedtuple works (advanced)](https://youtu.be/sfDSQSj-uvQ) +1. [why python -m pip? (beginner - intermediate)](https://youtu.be/gnYdk_U6UQ0) +1. [fixing NameError / TypeError in python type annotations (intermediate)](https://youtu.be/zH_F2xC0LOk) +1. [why backslash in triple-quoted-strings """\\ (intermediate)](https://youtu.be/WFggulJ81dM) +1. [what's (wrong with) hacktoberfest? (beginner)](https://youtu.be/dzRTR63Lzx8) +1. [pure python windows .exe (no compiler!) (intermediate)](https://youtu.be/nzaH5n-Xk64) +1. [python dist-packages vs. site-packages (intermediate)](https://youtu.be/aEB_EcgTiQo) +1. [testing optional python dependencies (intermediate)](https://youtu.be/PXu3KCMT3l4) +1. [typing: why main() -˃ int (beginner - intermediate)](https://youtu.be/Kur4Y7j4vac) +1. [debugging with dir() (+\_\_dir\_\_) (beginner - intermediate)](https://youtu.be/LxCdn18eGng) +1. [python: pretty headers with str.center (beginner)](https://youtu.be/88-rhi4CSsg) +1. [don't put passwords in commands! (beginner - intermediate)](https://youtu.be/SqXOchNKV_c) +1. [python: comma, = assignment! (beginner - intermediate)](https://youtu.be/WLKi_gPKCp0) +1. [python typing: re.match and Optional (intermediate)](https://youtu.be/yH6L3UiK9WM) +1. [python: .sort() vs sorted(...) (beginner - intermediate)](https://youtu.be/JZYWtmxaCeM) +1. [python typing: @property (beginner - intermediate)](https://youtu.be/Q0K8CKn5htI) +1. [python: 4 ways to set namedtuple defaults (intermediate)](https://youtu.be/w4o-GT_43Yw) +1. [what is the /opt directory? (beginner - intermediate)](https://youtu.be/tzOImbBp17c) +1. [git: visualizing main line commits (intermediate)](https://youtu.be/UjCnvh6uAUs) +1. [bash: passing string as stdin (beginner - intermediate)](https://youtu.be/Xf_82stIbB8) +1. [python: what is \_\_slots\_\_ and \_\_dict\_\_ (intermediate)](https://youtu.be/2d3vZhF-2aA) +1. [why \_\_slots\_\_ = () (namedtuples) (intermediate)](https://youtu.be/BSNd_kxHXL8) +1. [how do editable pip installs work? (intermediate)](https://youtu.be/gYYi7varbmE) +1. [what is argv (and argc)? (beginner - intermediate)](https://youtu.be/guJj17ggtXU) +1. [is python with types faster? (intermediate)](https://youtu.be/mkT3KP2J15I) +1. [bash: multiple lines to stdin with heredocs (beginner - intermediate)](https://youtu.be/KeO-OGf8Tao) +1. [a python plugin system via entrypoints (intermediate)](https://youtu.be/fY3Y_xPKWNA) +1. [git diff A...B (3 dots) (beginner - intermediate)](https://youtu.be/WRXmm-E77aY) +1. [faster than git clone! (beginner - intermediate)](https://youtu.be/YtK1uOa2VpM) +1. [python: len(x) vs x.\_\_len\_\_() (beginner - intermediate)](https://youtu.be/KyqiduLIL5k) +1. [python typing: Final / @final (intermediate)](https://youtu.be/jCf3zi2m56c) +1. [python: raw (NOT REGEX) r'strings' (beginner - intermediate)](https://youtu.be/RvoKwGekk1s) +1. [a "hello world" python C extension (intermediate - advanced)](https://youtu.be/HrEzCI3jIHw) +1. [making python releases less painful with abi3 (intermediate - advanced)](https://youtu.be/4uy0c855msk) +1. [useful interview datastructures: defaultdict (beginner - intermediate)](https://youtu.be/sunYwbKAzI0) +1. [reset a clone with git clean! (beginner - intermediate)](https://youtu.be/cE9IRYDMoS8) +1. [with + context managers (part1: the hard way) (intermediate - advanced)](https://youtu.be/ExdtNMnP24I) +1. [with + context managers (part2: the easy way) (intermediate)](https://youtu.be/ucGpcA9r4hU) +1. [how @contextmanager works (with/contexts part 3) (advanced)](https://youtu.be/nr_q2y0qxFg) +1. [is python's round() broken? (beginner)](https://youtu.be/sIObDTFsKyI) +1. [useful interview datastructures: Counter (beginner - intermediate)](https://youtu.be/FzlJxKRPL-4) +1. [easy fake objects with python's SimpleNamespace (beginner - intermediate)](https://youtu.be/8XvyHj8ndg8) +1. [what is a git tag? (beginner - intermediate)](https://youtu.be/34CQxHXzD4w) +1. [python: typing *args / **kwargs (intermediate)](https://youtu.be/CqafM-bsnW0) +1. [python typing: Optional is not optional! (intermediate)](https://youtu.be/7XZYlDpSxOU) +1. [mypy's "implicit optional" (and why I disable it) (intermediate)](https://youtu.be/sc1JfhSvSII) +1. [customize ANY website (beginner - intermediate)](https://youtu.be/Cmz6YGzF0PM) +1. [python: more advanced breakpoint() usage (intermediate)](https://youtu.be/7TuFty4_WTY) +1. [what is docker and how does it work? (intermediate)](https://youtu.be/tWvQAxkMaWs) +1. [docker run: always use --rm! (beginner - intermediate)](https://youtu.be/0vxIyXgkihA) +1. [what is sass vs scss? (beginner)](https://youtu.be/EPpjU50TYHg) +1. [repeatedly checking command output (beginner - intermediate)](https://youtu.be/DUxS7zOhu1U) +1. [why do asset urls have hex segments? (beginner - intermediate)](https://youtu.be/h345YuE3lZ8) +1. [python cffi tutorial (intermediate - advanced)](https://youtu.be/X5irxO5VCHw) +1. [python regex: \\d gotcha! (beginner - intermediate)](https://youtu.be/9dnZiCW1OHc) +1. [customizing "command not found" (intermediate)](https://youtu.be/p4cpVggLuJk) +1. [why `docker build --pull`? (intermediate)](https://youtu.be/BP1v7XXlePM) +1. [useful commands: `pstree` (beginner - intermediate)](https://youtu.be/Omu4tXtlULU) +1. [don't use os.system! (beginner - intermediate)](https://youtu.be/oQxTSDh-ECk) +1. [python: all about comprehensions! (beginner - intermediate)](https://youtu.be/f-Q5VZlPjhI) +1. [python: os.exec* vs subprocess (intermediate)](https://youtu.be/xTiPODNalrU) +1. [python typing: @overload (intermediate)](https://youtu.be/rY9NZ-tXiDQ) +1. [structural subtyping in python with Protocol! (intermediate)](https://youtu.be/QjFChmQHJxk) +1. [what is virtualenvwrapper + quick start (beginner - intermediate)](https://youtu.be/vnXUBoOqGWQ) +1. [github tweak: custom tab width (beginner)](https://youtu.be/GYPRBVmw1Pc) +1. [what is advent of code? (beginner)](https://youtu.be/QAwQ8eKBpYw) +1. [what is atomicity (intermediate)](https://youtu.be/tmlmCG5egI0) +1. [python: what is `nonlocal` (intermediate)](https://youtu.be/evYOlT1T7Mo) +1. [python typing: Literal (intermediate)](https://youtu.be/ZHisrvgF1Wk) +1. [counting in binary / 2s complement (beginner - intermediate)](https://youtu.be/G1teq9UZ4kM) +1. [oops I typed `git git ...` again (beginner - intermediate)](https://youtu.be/BkUW2NgfZao) +1. [python: binary search the easy way (interview tips) (intermediate)](https://youtu.be/icoYNPoTZ44) +1. [pytest: parametrize permutation (intermediate)](https://youtu.be/QIUrd327tOQ) +1. [more powerful than control-C (beginner - intermediate)](https://youtu.be/_f8xgOMGO-g) +1. [pytest: testing exceptions (beginner - intermediate)](https://youtu.be/6nRxZyQwwlE) +1. [what is a pager / less ? (beginner - intermediate)](https://youtu.be/hxvAEr9Q2A4) +1. [python: naming and underscores (beginner - intermediate)](https://youtu.be/q1E-d7PvSSY) +1. [what is the bang (!) in git aliases (beginner - intermediate)](https://youtu.be/-Ur2OGPCZhk) +1. [python typing: aliases (beginner - intermediate)](https://youtu.be/4zcrkP2VPSs) +1. [argparse: making a command wrapper (parse\_known\_args) (intermediate)](https://youtu.be/sCbC8hkg_xs) +1. [bash protip: fc "fix command" (beginner - intermediate)](https://youtu.be/PPovOOA7bdU) +1. [python integer literal underscores! (beginner)](https://youtu.be/BkKVVRLHE5Y) +1. [what is `git -C ...` (intermediate)](https://youtu.be/YXDn2qtK8GI) +1. [bash: pushd / popd (beginner - intermediate)](https://youtu.be/_cYaToOFml8) +1. [what is `cd -` / `git checkout -` (beginner)](https://youtu.be/sb1itVtABEk) +1. [typing: Protocol + @runtime\_checkable (intermediate)](https://youtu.be/4y94mvp_rYw) +1. [what is a singleton? (and python patterns) (intermediate - advanced)](https://youtu.be/PBCsN29ZG9A) +1. [python: conditional context and ExitStack (intermediate)](https://youtu.be/FHixla7BLvI) +1. [python deque (useful interview datastructures) (intermediate)](https://youtu.be/obXt90bzgJo) +1. [images in the terminal? what is a sixel (beginner - intermediate)](https://youtu.be/fa9ik_OnLmg) +1. [useful tools: uq (beginner - intermediate)](https://youtu.be/K8jmAQnPE2c) +1. [git: cleaning up merged branches (beginner - intermediate)](https://youtu.be/5O8PzE4nJTQ) +1. [python: decorating a class (intermediate)](https://youtu.be/xwsgV3yAtmw) +1. [python: class-based @decorators (intermediate - advanced)](https://youtu.be/hTLDC9H1b4Q) +1. [intro to git lfs (intermediate)](https://youtu.be/c6BRKcO5WxE) +1. [python scoping (beginner - intermediate)](https://youtu.be/xb_zV3gaDxY) +1. [docker: deleting files makes your image bigger! (intermediate)](https://youtu.be/4kBfXrE0xpo) +1. [getting started with packer (intermediate)](https://youtu.be/VvjYePm2UyU) +1. [all about xargs ! (beginner - intermediate)](https://youtu.be/ED9AUfFrak8) +1. [bash "strict mode": -euo pipefail (beginner - intermediate)](https://youtu.be/9fSkygQ-ZjI) +1. [3 ways to clear / fix the terminal (beginner)](https://youtu.be/LSEnVCBnKN4) +1. [python is compiled? (+ disassembler) (intermediate)](https://youtu.be/FPJdre3mbD4) +1. [what is a boolean trap? (programming antipattern) (beginner - intermediate)](https://youtu.be/CnRkXO_a5mI) +1. [python: str.translate (intermediate)](https://youtu.be/0kYctEx_O28) +1. [python easter eggs: \_\_future\_\_ braces (beginner)](https://youtu.be/x7xVjGbObrw) +1. [the `wc` command (beginner)](https://youtu.be/YmjeLv1RLSc) +1. [debugging python segfaults with gdb (intermediate - advanced)](https://youtu.be/bXEXE6ywzSA) +1. [interview question: 4 / 7 swap (beginner - intermediate)](https://youtu.be/PSXlOSJ2lZk) +1. [github actions vulnerability or "why bug bounties are a scam" (intermediate)](https://youtu.be/_fpXyS_i1xE) +1. [python easter eggs: antigravity (beginner)](https://youtu.be/T7TvWTjp_fw) +1. [python insertion-ordered dicts (beginner - intermediate)](https://youtu.be/thOgrFA7MzI) +1. [python @decorator stacking (intermediate)](https://youtu.be/A10RHUCVw6A) +1. [typing: dealing with import cycles (beginner - intermediate)](https://youtu.be/B5cjckVzY4g) +1. [python easter eggs: easiest hello world! (beginner)](https://youtu.be/ViNc-g60br8) +1. [what is dynamic programming? (beginner - intermediate)](https://youtu.be/4tc5MUBjw-g) +1. [unix commands: fold (beginner)](https://youtu.be/BVuW-kiY_X8) +1. [listing only directories with `ls` (beginner)](https://youtu.be/rNANZNxEUAo) +1. [github tip: getting perma-links (beginner)](https://youtu.be/5IDpsBccqLk) +1. [finding python source code and docs (beginner)](https://youtu.be/DUG77pRVsV8) +1. [how I sped up python's tokenize module by 25% (intermediate)](https://youtu.be/fYbeK47C5b8) +1. [python: why is -c faster than -m? (intermediate)](https://youtu.be/YuIZkHawihw) +1. [python: {...} is faster than dict(...) (intermediate)](https://youtu.be/-v4DmRsL7nc) +1. [showing actual file bytes with hexdump (beginner - intermediate)](https://youtu.be/FNyo1CSxBrg) +1. [python: how do any / all work? (beginner)](https://youtu.be/NO8frFR7ZxU) +1. [python: why str('foo') (python 2 / 3 compat) (beginner - intermediate)](https://youtu.be/qNW-ITqdpfM) +1. [bash: /bin/\[ is an executable ? (intermediate)](https://youtu.be/8kFmJGXa1qk) +1. [the `install` command (beginner - intermediate)](https://youtu.be/Xk5XRy4OxOM) +1. [3 ways to fix an accidental git commit to main (beginner - intermediate)](https://youtu.be/4C2lSosT7hc) +1. [don't use time.time() for performance measurement (beginner - intermediate)](https://youtu.be/hb-12mgQrzM) +1. [how to search a repo using `git grep` (beginner)](https://youtu.be/2MCtRv1ZIFQ) +1. [the 2 modes of python's str.split (beginner)](https://youtu.be/6pIPMHP2Lwg) +1. [python: what are *splat **args? (intermediate)](https://youtu.be/VhDMj5ffGSc) +1. [why doesn't flake8 mark this import as unused? (beginner - intermediate)](https://youtu.be/gRq3Sb0_dJM) +1. [pathlib is slow? how I improved black's caching by 40x (intermediate)](https://youtu.be/tFrh9hKMS6Y) +1. [how to make a virtualenv from cpython source (intermediate)](https://youtu.be/2ETZsYF5c7s) +1. [enable tab completion in pdb! (beginner)](https://youtu.be/S-Gj0q0O9_E) +1. [sed command basics (beginner - intermediate)](https://youtu.be/fdRL8xME7bQ) +1. [what pythons should I support? (beginner - intermediate)](https://youtu.be/w8W6IaaXCBQ) +1. [python: what is assert? (beginner)](https://youtu.be/v1MtwCPTmBI) +1. [python: shlex module (beginner - intermediate)](https://youtu.be/fdTHXq6AQ7E) +1. [python: what is hashability? (intermediate)](https://youtu.be/fQtNXBJp8Q4) +1. [python: why object() in this code? (intermediate)](https://youtu.be/1n6kWtLrOV4) +1. [intro to terraform (intermediate)](https://youtu.be/xskzEkoisNE) +1. [git rebase (and git rebase -i) (intermediate)](https://youtu.be/hv8dhOEzQcM) +1. [testing output with pytest (beginner - intermediate)](https://youtu.be/dN-pVt7i4Us) +1. [python: exception catching and isinstance gotcha (beginner - intermediate)](https://youtu.be/dS8rdjZrCaA) +1. [one-off 3rd party mypy types (intermediate)](https://youtu.be/mKmmZHMwXAY) +1. [PS1, coloring, and fixing weird wrapping (beginner - intermediate)](https://youtu.be/ngLwml9XI-I) +1. [python match statement (PEP 634) (intermediate - advanced)](https://youtu.be/Bk-Gn7J6sz4) +1. [NotImplemented vs NotImplementedError (beginner - intermediate)](https://youtu.be/GSBqmYUnBdk) +1. [packaging python typed code (intermediate)](https://youtu.be/n4GJ8rp6DpE) +1. [interview questions: anagrams (beginner - intermediate)](https://youtu.be/aEPW3x_FVes) +1. [python: functools.partial (beginner - intermediate)](https://youtu.be/kZlOy1BY6lY) +1. [speed up git in big repos with this trick (beginner)](https://youtu.be/ppILYNc10DQ) +1. [correct `apt-get` for ubuntu / debian in docker (intermediate)](https://youtu.be/ZAoK8O9oBGo) +1. [what is podman vs docker (beginner - intermediate)](https://youtu.be/lkg5QJsoCCQ) +1. [a file even root can't delete! (chattr) (intermediate)](https://youtu.be/eXUCrIhTsM0) +1. [python: yield from (beginner - intermediate)](https://youtu.be/36nDT1ryA5o) +1. [pytest: xfail vs xpass and all test statuses (beginner - intermediate)](https://youtu.be/uzodcMcHbJU) +1. [python easter eggs: \_\_peg\_parser\_\_ (beginner)](https://youtu.be/p985PaTjqlc) +1. [what is the XDG base directory specification? (intermediate)](https://youtu.be/wT85Ynk-0MY) +1. [move a virtualenv! (intermediate)](https://youtu.be/iZlgLrWed1I) +1. [atomic file replacement (os.rename vs os.replace) (intermediate)](https://youtu.be/-9eXCb3yvyY) +1. [floats are broken? (+3 solutions in python!) (beginner - intermediate)](https://youtu.be/9-Cpi3hGjrY) +1. [how I find standard python type signatures (beginner - intermediate)](https://youtu.be/FP3VV6do6Cc) +1. [python curses: mouse integration (intermediate)](https://youtu.be/OQ20a6CIamM) +1. [the `rlwrap` command (beginner - intermediate)](https://youtu.be/WizvitXOsLk) +1. [can cpython be 76% faster by changing hash()? (no) (intermediate)](https://youtu.be/_8FHjmv8ix0) +1. [what is a .pth file? (intermediate)](https://youtu.be/mzxQrgvuRFg) +1. [nesting context managers with classes (intermediate)](https://youtu.be/kJIyBpR9bQM) +1. [a FREE stateful cron using aws (intermediate)](https://youtu.be/Lauwn5wNZzo) +1. [what are git submodules? (intermediate)](https://youtu.be/RFcc-BQjCsE) +1. [programmable nintendo switch controller (intermediate)](https://youtu.be/chvgQUX7QaI) +1. [python typing: object vs Any (intermediate)](https://youtu.be/ATS9MAo2Mjc) +1. [python typing: NotImplemented is a bool? (intermediate)](https://youtu.be/5XBs_fM3Nac) +1. [the `find` command (beginner - intermediate)](https://youtu.be/y6NQTZgPNPw) +1. [use the clipboard from the terminal (beginner)](https://youtu.be/-ebWr_C29_c) +1. [pgrep / pkill commands (beginner - intermediate)](https://youtu.be/KdSKTEUPPEk) +1. [SUPER FAST cpython with mypyc (intermediate)](https://youtu.be/0Cjg3qvHBEY) +1. [updating a forked repository (beginner - intermediate)](https://youtu.be/MSYqb9EWjto) +1. [docker takes so much disk! (beginner - intermediate)](https://youtu.be/TSjZrubRfXo) +1. [python: traceback basics + raise from (beginner - intermediate)](https://youtu.be/wc6W-RaMJ7k) +1. [git: check in executable file (+ on windows) (beginner - intermediate)](https://youtu.be/Ud6t-mIyhsw) +1. [line buffering vs. block buffering (intermediate)](https://youtu.be/gdU1QiKKSbE) +1. [the `comm` command! (intermediate)](https://youtu.be/Ic-8swynoHU) +1. [man pages for git subcommands (beginner - intermediate)](https://youtu.be/1CYAFPTn_oo) +1. [flake8: avoiding F401 in \_\_init\_\_.py (beginner - intermediate)](https://youtu.be/OAqvLDRZqFc) +1. [top 10 new things in python 3.10 (beginner - intermediate)](https://youtu.be/jUwPmbHnlt0) +1. [what is a deadletter queue? (intermediate)](https://youtu.be/XNXbjWNsKAE) +1. [atomically replace / delete directories (intermediate - advanced)](https://youtu.be/qEcYqI5NDko) +1. [☃.com and punycode / idna (beginner - intermediate)](https://youtu.be/MMkOWqJkxeo) +1. [how to get pip for deadsnakes / docker pythons (intermediate)](https://youtu.be/2Hg5-Hrsa6w) +1. [@staticmethod / @classmethod (beginner + advanced)](https://youtu.be/yhkpRz7TC7o) +1. [date.today() is twice as slow as datetime.now().date()??? (intermediate)](https://youtu.be/PBg6EorsX7s) +1. [simple python dockerfile w/ flask (intermediate)](https://youtu.be/8V4UowjLIMc) +1. [python typing: Generator\[T, S, R\] (intermediate)](https://youtu.be/DTegfCNAXoM) +1. [python: explicit relative imports (intermediate)](https://youtu.be/uwtupH7LJco) +1. [debugging mypy types (beginner - intermediate)](https://youtu.be/Pc6H3Pofhp8) +1. [what are python doctests? (beginner - intermediate)](https://youtu.be/37TJeMLyi5I) +1. [terminal keyboard shortcut for unicode! (beginner)](https://youtu.be/36G70-MMhGI) +1. [bash: strings with `!` / !... event not found (beginner - intermediate)](https://youtu.be/VkRjT3UBiLk) +1. [default zoom key shortcut (beginner)](https://youtu.be/rn_iru8zKqs) +1. [smaller / faster builds with dockerignore (beginner - intermediate)](https://youtu.be/dEZ5WVWLris) +1. [python: why reload() is a bad idea (beginner - intermediate)](https://youtu.be/oOs2JQu8KEw) +1. [what is the py launcher? (intermediate)](https://youtu.be/OGcVB5Lnxuc) +1. [the `uniq` command (+ some `sort`) (beginner - intermediate)](https://youtu.be/FMdWB3m3lQ0) +1. [gradual typing python (and my approach) (beginner - intermediate)](https://youtu.be/Rk-Y71P_9KE) +1. [importing non-module python files (intermediate)](https://youtu.be/B5bToFdBxdw) +1. [the `cut` command (beginner - intermediate)](https://youtu.be/l9T85dA6HDY) +1. [bash: special redirection (intermediate)](https://youtu.be/3f8xjDr789Q) +1. [python typing: TYPE\_CHECKING (intermediate)](https://youtu.be/BPE4p8HNLFM) +1. [`else` is good, actually (beginner - intermediate)](https://youtu.be/rClGwTEOK7M) +1. [Fussy Fox + flake8 vulnerability (intermediate)](https://youtu.be/J7NMyb-LNX4) +1. [setting up required github PR checks (beginner - intermediate)](https://youtu.be/LGY1jPUso5I) +1. [python has an optimizer? (intermediate)](https://youtu.be/i8uNgEchr20) +1. [pytest: testing env variables (intermediate)](https://youtu.be/N15X_pQHckQ) +1. [python easter eggs: this (beginner)](https://youtu.be/mRYWLKcMfE4) +1. [git: main vs. origin/main (beginner - intermediate)](https://youtu.be/f-92I_gxgjA) +1. [python warnings (beginner - intermediate)](https://youtu.be/tZSEZ2WG5w8) +1. [docker beside docker (intermediate - advanced)](https://youtu.be/pDysRzgLpgM) +1. [what is manylinux? (intermediate - advanced)](https://youtu.be/80j-MRtHMek) +1. [pip install from git (beginner - intermediate)](https://youtu.be/AQrskWh-F5E) +1. [python tempfile module (beginner - intermediate)](https://youtu.be/-pmgCmWiOXo) +1. [virtualenv: --system-site-packages (intermediate)](https://youtu.be/R6ObMPdixj0) +1. [python: what is repr? (beginner - intermediate)](https://youtu.be/ei1q7m3zLfU) +1. [making an omni-executable (intermediate)](https://youtu.be/r41t-t27V9c) +1. [assign vs. shallow vs. deep copy (beginner - intermediate)](https://youtu.be/5Ufr51uPHEs) +1. [what is `source` and why? (beginner - intermediate)](https://youtu.be/YE6ZDpRcdQU) +1. [mypy! this key exists I promise! (beginner - intermediate)](https://youtu.be/HE0At4RrZIE) +1. [python: raise SystemExit (beginner - intermediate)](https://youtu.be/ZbeSPc5wL0g) +1. [python easter eggs: barry\_as\_FLUFL (beginner - intermediate)](https://youtu.be/0vRwC-F7FF0) +1. [don't name things "...\_new" (beginner)](https://youtu.be/d-ZkEg_fa8Q) +1. [what is "idempotent" in programming (beginner)](https://youtu.be/o9THkT5ZPi4) +1. [interview tips: what language should I use? (beginner)](https://youtu.be/BzhNtQMGu9E) +1. [porting code to python **ZERO** (intermediate - advanced)](https://youtu.be/6vdg91-hPGY) +1. [interview tips: "your story" (beginner)](https://youtu.be/YBYzpQOA9lg) +1. [a python extension in go (advanced)](https://youtu.be/kCRU_ZTcxac) +1. [debugging a failed docker build (intermediate)](https://youtu.be/hd1AKYGiWNk) +1. [the most important skill I've learned for software engineering (beginner)](https://youtu.be/ritp4gAqNMI) +1. ["graceful exit" SIGTERM doesn't run finally / destructors ? (intermediate)](https://youtu.be/VVS1xVjhj34) +1. [--argument prefix matching (beginner - intermediate)](https://youtu.be/jrs0l3HJ-Ow) +1. [why does id(float(1)) == id(float(2)) ??? (intermediate)](https://youtu.be/jjm10-Ug1aE) +1. [python: what is `__main__` / `__main__.py` ? (beginner - intermediate)](https://youtu.be/FRxDmVVm0d0) +1. [range(len(...)) is almost always wrong in python (beginner)](https://youtu.be/SwjBJhJiHvQ) +1. [what is umask? (intermediate)](https://youtu.be/ZfDbUxH99n0) +1. [opinion: don't bother typing tests (intermediate)](https://youtu.be/lGCU0j-otls) +1. [multiprocessing: slow things first! (intermediate)](https://youtu.be/h4vmU2DJoQg) +1. [bash shortcut: curly expansion (intermediate)](https://youtu.be/r2G0rbm7XJk) +1. [make your own timeout with alarm(...) (intermediate)](https://youtu.be/vGWSdp9dyhI) +1. [pretty recursive diffs! (beginner - intermediate)](https://youtu.be/vEUFrmrS7Hc) +1. [github wikis are repos! (beginner - intermediate)](https://youtu.be/U18COUDlzu8) +1. [python: easy comparable classes with functools.total\_ordering (intermediate)](https://youtu.be/po7iMzrgJwA) +1. [git without `cd` (intermediate)](https://youtu.be/fQ3-Y99Fzro) +1. [why remove the python GIL? (intermediate - advanced)](https://youtu.be/6g79qGQo2-Q) +1. [python: unicode names and why they're bad (intermediate)](https://youtu.be/OaEgGW19M5o) +1. [makefile basics (beginner - intermediate)](https://youtu.be/20GC9mYoFGs) +1. [how to ace the coding interview (intermediate)](https://youtu.be/eVNkO6g0fP8) +1. [python try except and best practices (beginner - intermediate)](https://youtu.be/tIh42X0oGQc) +1. [sorting basics in python (beginner)](https://youtu.be/fqzcnd_FstY) +1. [multiplying str / list / tuple and pitfalls (beginner - intermediate)](https://youtu.be/ZFjV3M-xl_M) +1. [making your own custom git commands (intermediate)](https://youtu.be/YwG8C0jPapE) +1. [python --version --version is not a typo! (beginner)](https://youtu.be/DIfVUYKZZfs) +1. [python parameter defaults are (mutable) globals (intermediate)](https://youtu.be/x7kRGQNUJ5I) +1. [python typing: explicit TypeAlias (PEP 613) (intermediate)](https://youtu.be/50SqDLU-6RE) +1. [python: what is weakref? (intermediate - advanced)](https://youtu.be/GGKerIMqHCk) +1. [pip: requirements vs. constraints (intermediate)](https://youtu.be/SeT-Gj_frd0) +1. [python: NewType vs aliases (intermediate)](https://youtu.be/9rRYeunzX8c) +1. [quick debugging tool: python -i (beginner)](https://youtu.be/B4wkrdcc28A) +1. [what is the log4shell vulnerability? (beginner - intermediate)](https://youtu.be/A5BLKKYIQ28) +1. [what are python wheels? (intermediate - advanced)](https://youtu.be/4L0Jb3Ku81s) +1. [recursively import python modules (intermediate)](https://youtu.be/t43zBsVcva0) +1. [git commit as someone else? (intermediate)](https://youtu.be/bQ2OiciywyA) +1. [what is PROMPT\_COMMAND? (+aactivator) (intermediate)](https://youtu.be/GFLivv2QGI0) +1. [python: what is `__file__`? (beginner - intermediate)](https://youtu.be/LVhxqOznPg0) +1. [job management: fg / bg / ^Z, & and more! (intermediate)](https://youtu.be/lkQOQAc65ZA) +1. [for loops are just while loops in disguise (beginner - intermediate)](https://youtu.be/Pq2aXxTKFv4) +1. [configuring git from environment vars (intermediate)](https://youtu.be/RVZeTpVpwS4) +1. [mypy: possible cyclic definition fix (intermediate)](https://youtu.be/O_CYtaDlOO4) +1. [git: what does "fast forward" mean? (intermediate)](https://youtu.be/Vy0JIwQoI-E) +1. [pathlib is slow! falsey is tricky! (pytest bug) (intermediate - advanced)](https://youtu.be/qiZyDLEJHh0) +1. [don't lru\_cache methods! (intermediate)](https://youtu.be/sVjtp6tGo0g) +1. [github: give people credit! (beginner - intermediate)](https://youtu.be/_-qNX8EbVYI) +1. [dropping old python versions (intermediate)](https://youtu.be/Oun5kXqENMk) +1. [useful interview data structures: heapq (intermediate)](https://youtu.be/sRLuocdQfEw) +1. [decorator typing (PEP 612) (intermediate - advanced)](https://youtu.be/fwZoxWyMGM8) +1. [python: what is 0-arg raise? (beginner)](https://youtu.be/yj4z1N3_0sw) +1. [time vs. /bin/time (beginner - intermediate)](https://youtu.be/hJ5LT4AGf3Y) +1. [what is an open redirect vulnerability? (intermediate)](https://youtu.be/ziGvS7XLWDU) +1. [how an exit(n) bug introduced 100s of lint errors (intermediate)](https://youtu.be/RVSw1BGNmq8) +1. [hiding big noisy git diffs (intermediate)](https://youtu.be/zVlISs2fnzw) +1. [recovering from git mistakes w/ ORIG\_HEAD (intermediate)](https://youtu.be/yhtq_PSekdo) +1. [the `timeout` command (beginner - intermediate)](https://youtu.be/QRywzsBftfc) +1. [python code formatter tutorial (intermediate - advanced)](https://youtu.be/G1omxo5pphw) +1. [why did I run `cd $PWD` ??? (beginner - intermediate)](https://youtu.be/7tSVb0d0fyA) +1. [my python project setup (+ all tools) (intermediate)](https://youtu.be/q8DkatMZvUs) +1. [python can import from zips! (intermediate)](https://youtu.be/XCMOeFN6zX4) +1. [from imports aren't faster! (beginner - intermediate)](https://youtu.be/ZWCyNz0fUsc) +1. [what is a .so / .dll / shared object? (intermediate - advanced)](https://youtu.be/PDkKz3zQVls) +1. [what is inlining? and how does it make code faster? (intermediate)](https://youtu.be/ct-eBvjsPck) +1. [finding and fixing test pollution! (intermediate)](https://youtu.be/FRteianaPMo) +1. [how to modify a list while iterating (intermediate)](https://youtu.be/JXis-BKRDFY) +1. [fix flaky tests with detect-test-pollution! (intermediate)](https://youtu.be/w5O4zTusyJ0) +1. [a python curses wordle clone from scratch! (intermediate - advanced)](https://youtu.be/dViRI1iovoc) +1. [why does `cd --` go to ~ ? (intermediate)](https://youtu.be/vrIsG0Rw5xY) +1. [the `split` command! (beginner - intermediate)](https://youtu.be/Ox95VqtRC28) +1. [don't run `python my/script.py`! (beginner - intermediate)](https://youtu.be/hgCVIa5qQhM) +1. [what's that unicode character‽ (beginner - intermediate)](https://youtu.be/W60RS8PMP78) +1. [what is the `shred` command? (beginner - intermediate)](https://youtu.be/2yt5u5JanwA) +1. [getting a python stacktrace from gdb! (intermediate - advanced)](https://youtu.be/guni3oUdTIs) +1. [the fastest python startup with `python -S` (intermediate)](https://youtu.be/lCwz4S2vCH8) +1. [what is immutability? (beginner - intermediate)](https://youtu.be/OjLxyRyzzuY) +1. [what is rpath? (+relocatability) (intermediate - advanced)](https://youtu.be/01fnuhjMwc0) +1. [`pip install pkg❮1.999` ? (intermediate)](https://youtu.be/JzEAYIPdFX4) +1. [10 protips I wish I knew sooner as a software dev (beginner)](https://youtu.be/_wcVyhfyaeE) +1. [embedding images in github (beginner - intermediate)](https://youtu.be/8088ORqS3uY) +1. [how I sped up python by 20ms (intermediate)](https://youtu.be/kI9WjDNxRJM) +1. [typing Self (PEP 673) (intermediate)](https://youtu.be/ThATVufmTz8) +1. [you don't need .git! (beginner)](https://youtu.be/BW7z9TO0Fqg) +1. [I don't need `__init__.py`? PEP 420 and namespace packages (intermediate)](https://youtu.be/2Xvb79hOUdM) +1. [repr(...) doesn't work the way you expect (intermediate - advanced)](https://youtu.be/e3bqdxqLvH4) +1. [DVD screensaver in python curses (intermediate)](https://youtu.be/mVwAehkeBkI) +1. [double underscored names are NOT "more private" (beginner - intermediate)](https://youtu.be/IVqLW1NWtPc) +1. [FizzBuzz... but in sqlite? (intermediate)](https://youtu.be/UdhcvNSFRgU) +1. ["z3" is actual magic (intermediate)](https://youtu.be/C9eXcmWWEyA) +1. [bash quoting is really not that difficult! (beginner - intermediate)](https://youtu.be/VIUoHnFwEH4) +1. [I made pip startup 25% faster (intermediate)](https://youtu.be/GmK1So7F0ZQ) +1. [how to use python backports + setup.py (intermediate)](https://youtu.be/B94tqnXeFnQ) +1. [setting up an ubuntu jammy (22.04) development machine (beginner)](https://youtu.be/tSUlg3yN4-k) +1. [python Generics (intermediate)](https://youtu.be/LcfxUU1A-RQ) +1. [babi+ast helped me not break sentry! (intermediate)](https://youtu.be/Fch_lt7ZXUw) +1. [python comprehensions leak scope again (intermediate)](https://youtu.be/ONy8xXbdcUc) +1. [python variadic generics (PEP 646) (intermediate - advanced)](https://youtu.be/hAj3nGzeSiQ) +1. [top 10 new things in python 3.11 (beginner - advanced)](https://youtu.be/w2rcZIG1Uxk) +1. [assert\_never / assert\_type **CORRECTION** (intermediate)](https://youtu.be/jN_a02Rj8Gg) +1. [a git workflow for *only my branches* (intermediate)](https://youtu.be/GKBq5Xo_B6I) +1. [regex lookahead / lookbehind (intermediate)](https://youtu.be/AjTy0DBK-18) +1. [are your python tests even running? (intermediate)](https://youtu.be/0nPS_vVmhp0) +1. [python TypeGuard (PEP 647) (intermediate)](https://youtu.be/Zv2K2AVy5lA) +1. [how I fixed a 9GB memory leak in cargo (rust) (intermediate)](https://youtu.be/uxJhAXdBlbc) +1. [dealing with merge conflicts (beginner - intermediate)](https://youtu.be/vQY309QQfuQ) +1. [what is an --orphan git branch? (intermediate)](https://youtu.be/XLuD7KJLMwE) +1. [narrow python? len('🙃') == 2??? (intermediate)](https://youtu.be/ht3ezs3O9Yo) +1. [what is gbp? (intermediate - advanced)](https://youtu.be/Nu4TIETrktY) +1. [argparse: boolean option pitfall (beginner - intermediate)](https://youtu.be/KuwR0GPylqE) +1. [cd is not an executable (beginner)](https://youtu.be/1Ld5qv4-Pbo) +1. [what is a universal2 wheel? (intermediate)](https://youtu.be/utdohIoR9ZM) +1. [docker: fast CI rebuilds with --cache-from (intermediate)](https://youtu.be/77j6JFBTmTc) +1. [debugging a real issue and googling (beginner - intermediate)](https://youtu.be/IQsat6EA0-M) +1. [regex backreferences (intermediate)](https://youtu.be/gPMpRw1xUA8) +1. [why I banned python's assertRaises (intermediate)](https://youtu.be/Q_HMOBD09ts) +1. [safer github personal access tokens (intermediate)](https://youtu.be/GsjD5tZWqmM) +1. [bash strict mode gotcha (intermediate)](https://youtu.be/oqq5k8XsrSs) +1. [javascript sucks at unicode (intermediate)](https://youtu.be/PTJAvcpBdWo) +1. [pip freezing (==) isn't safe (intermediate)](https://youtu.be/oGpyupM52IQ) +1. [python regex dynamic replacements (intermediate)](https://youtu.be/o_PD7AAbs4U) +1. [how I made my import sorter 7x faster (intermediate)](https://youtu.be/Q3menOSxRC4) +1. [what release was this fixed? (workflow) (intermediate)](https://youtu.be/7f3UdjuQYtw) +1. [safely stealing github secrets with cryptography (intermediate)](https://youtu.be/qjnEZ-3uYjc) +1. [how I sped up flake8 by 20% (intermediate)](https://youtu.be/pvSk8pLLQrE) +1. [github's semi-secret by-id apis (intermediate)](https://youtu.be/_XkkiwoiFU0) +1. [what is a natural sort? (beginner - intermediate)](https://youtu.be/RaE66ycBRE0) +1. [relocatable macos binaries (advanced)](https://youtu.be/OL7JTiJs-d8) +1. [what is nullcontext? (conditional contexts, pytest) (intermediate)](https://youtu.be/XcyVxmkrKXk) +1. [why do I use azure pipelines instead of github actions? (intermediate)](https://youtu.be/NEl4JfZ4of8) +1. [how is list append possibly O(1)? (beginner - intermediate)](https://youtu.be/WIuITZgGYG8) +1. [what is musllinux (PEP 656) (intermediate)](https://youtu.be/QAbveJB5kk8) +1. [easy try rust as a python dev (intermediate)](https://youtu.be/ZGlEIetFNf0) +1. [why can't I signal a MagicMock() ? (intermediate)](https://youtu.be/nJwc7iqyQwU) +1. [why does python think -1**0 is -1 ? (intermediate)](https://youtu.be/T49G4WwmvnA) +1. [how do from imports keep their globals? (intermediate)](https://youtu.be/FSPyCD5P76A) +1. [python int DoS vulnerability (CVE 2020-10735) (beginner - intermediate)](https://youtu.be/lIniq12cMK0) +1. [docker multi-arch images (intermediate)](https://youtu.be/G6wCo1WBPTo) +1. [python: don't use urlparse! (beginner - intermediate)](https://youtu.be/ABJvdsIANds) +1. [why does python report macos 10.16 ??? (intermediate)](https://youtu.be/Kg8s2YV-aFE) +1. [the docker registry api (advanced)](https://youtu.be/Ce9var-Fty8) +1. [urllib3\[secure\]'s clever deprecation trick (intermediate)](https://youtu.be/_jUXdX8e9Wg) +1. [functools.wraps for classes (intermediate)](https://youtu.be/rbEqoOIvFko) +1. [avoiding shell injection in github actions (intermediate)](https://youtu.be/7w0Ns8C1shQ) +1. [what is coverage? (intermediate)](https://youtu.be/eQM3TOjsM_Q) +1. [don't make images of code / text! (beginner)](https://youtu.be/svlsnZFWWDE) +1. [what is "short circuiting"? (beginner - intermediate)](https://youtu.be/tsrlQ8v4UaM) +1. [what is the "unraisable" hook (intermediate)](https://youtu.be/G4Lya0KVG1E) +1. [how does swapping work in python? (beginner - intermediate)](https://youtu.be/cMiqfkpMh08) +1. [hiding your email on github (beginner)](https://youtu.be/O3e19cwX6uY) +1. [python warnings defaults suck (intermediate)](https://youtu.be/CtFdXBEwYfk) +1. [pytest: everything you need to know about fixtures (intermediate)](https://youtu.be/ScEQRKwUePI) +1. [python os / platform-specific deps (PEP 508) (intermediate)](https://youtu.be/cNQhpprVyn0) +1. [I don't use pytest-cov (intermediate)](https://youtu.be/sPgvHGkmd0U) +1. [RegCPython: a 10% faster python for free? (intermediate - advanced)](https://youtu.be/MQ2Lfj2hAdk) +1. [avoid notification spam with draft PRs! (beginner)](https://youtu.be/LOLpOTYzknI) +1. [multiprocessing: fork() vs. spawn() (intermediate)](https://youtu.be/hzBtsDPJ1dM) +1. [this clever hack let me kill py (intermediate)](https://youtu.be/aZS3_-y6vsg) +1. [do this first before opening an issue (beginner)](https://youtu.be/cGYVGVsXNFM) +1. [securing python with audit hooks (PEP 578) (intermediate)](https://youtu.be/sIibadhDqaw) +1. [python sucks at copy-on-write (and one fix!) (intermediate)](https://youtu.be/sdmcCQ7Em04) +1. [git is just a key value store? (advanced)](https://youtu.be/HvA-WkXqlDI) +1. [refcount ONE BILLION? (immortal objects, PEP 683) (advanced)](https://youtu.be/i5ZaVC4sEZA) +1. [partial git commits (intermediate)](https://youtu.be/UJ5fpaeZWsI) +1. [sqlite is my favorite database (beginner - intermediate)](https://youtu.be/jH39c5-y6kg) +1. [virtualenv isn't reproducible! (by default) (intermediate)](https://youtu.be/mgJiCnqzYlI) +1. [--extra-index-url is unsafe! (intermediate)](https://youtu.be/fWquXVcTKjU) +1. [docker: multi-stage builds (intermediate)](https://youtu.be/OVYNUg0aODw) +1. [git: the several ways to "--sign" (intermediate)](https://youtu.be/6hu3cbBhHqQ) +1. [why I use the colon (:) command (intermediate)](https://youtu.be/onkNf1AKSgg) +1. [how should I organize my project? (beginner)](https://youtu.be/QGAuwlQ9Gxc) +1. [don't git clone over https! (beginner)](https://youtu.be/5o9ltH6YmtM) +1. [don't use cat! (intermediate)](https://youtu.be/vWMiBVkdJjA) +1. [module level \_\_getattr\_\_ (intermediate)](https://youtu.be/rRwJdMY2f4g) +1. [why are some things shell builtins? (intermediate)](https://youtu.be/p_KKDHJhi7A) +1. [python: zip and unzip (intermediate)](https://youtu.be/hOiRkFBxtpo) +1. [I've moved off of azure pipelines for CI (intermediate)](https://youtu.be/n39uvwdW5ek) +1. [swapping without a third variable (intermediate)](https://youtu.be/NLwJI6DFF4U) +1. [when should I pin deps: never and always! (intermediate)](https://youtu.be/WSVFw-3ssXM) +1. [make a github commit using only the api! (intermediate)](https://youtu.be/nwHqXtk6LHA) +1. [a simpler `try` / `except` (and why maybe shouldn't) (beginner - intermediate)](https://youtu.be/MZAJ8qnC7mk) +1. [you're probably doing case-insensitive wrong (intermediate)](https://youtu.be/U-Zq8bURfKc) +1. [getting started with pytest (beginner - intermediate)](https://youtu.be/mzlH8lp4ISA) +1. [python descriptors! (advanced)](https://youtu.be/vBys0SwYvCQ) +1. [don't use short options in scripts (beginner - intermediate)](https://youtu.be/OKqWy2dM2Jo) +1. [how to escape this VERY MEAN prank (beginner)](https://youtu.be/ZjSWRGzWo88) +1. [how do virtualenvs actually work (advanced)](https://youtu.be/XFqDHPYfTwE) +1. [python's optimization mode is mostly useless (intermediate)](https://youtu.be/6kMGphTUOUk) +1. [merge queues (intermediate)](https://youtu.be/3vIGZ6_6nzo) +1. [all string syntaxes (beginner)](https://youtu.be/4Y4VrKa1lVs) +1. [my first rust open source PR (beginner - intermediate)](https://youtu.be/kIaOOYlbPWI) +1. [tuples! (and their syntax quirks) (beginner)](https://youtu.be/J3-tL6OnFWA) +1. [how I use git blame (beginner - intermediate)](https://youtu.be/8uuueHkWy-E) +1. [positional / named only without `*` or `/`? (intermediate)](https://youtu.be/DatCgcsF6B8) +1. [why git's --intent-to-add ? (intermediate)](https://youtu.be/GEYfAMpA-38) +1. [rerunning github checks (beginner - intermediate)](https://youtu.be/OYh22O1B5D0) +1. [shell aliases and bypassing them? (beginner - intermediate)](https://youtu.be/6okEabkL_q0) +1. [how I made pre-commit's github actions 3x faster (intermediate)](https://youtu.be/5K8k-bSDnU0) +1. [don't use localhost (intermediate)](https://youtu.be/98SYTvNw1kw) +1. [what is a "canary" deploy? (beginner - intermediate)](https://youtu.be/W1uJCzqH0Lk) +1. [avoiding noisy git matches (beginner - intermediate)](https://youtu.be/zoCuIdZJT1s) +1. [docker pull by sha256 digest (advanced)](https://youtu.be/AiAU7wnPCrQ) +1. [weird python identity quirk? (intermediate)](https://youtu.be/w4GasVbjIbA) +1. [when `git add .` doesn't work (intermediate)](https://youtu.be/N0TFxl7A5Hw) +1. [I made every sentry page 300ms faster (intermediate)](https://youtu.be/FY7EQwT7QKU) +1. [docker: don't mount files! (mount dirs instead) (intermediate)](https://youtu.be/oXfL0UCO9F4) +1. [you can't always trust argv\[0\] (intermediate)](https://youtu.be/qwpfSL-AcFQ) +1. [shell: use this instead of `cd` (intermediate)](https://youtu.be/eF6qpdIY7Ko) +1. [docker: secrets at build time! (intermediate)](https://youtu.be/aK6sJDOn2Hc) +1. [every Dockerfile should have this line! (intermediate)](https://youtu.be/kL0q-7alfQA) +1. [python's "soft" keywords (intermediate)](https://youtu.be/Rv3NYDOLpkM) +1. [shell vs environment variables (and env, export, etc.) (intermediate)](https://youtu.be/h36Xc38SDHg) +1. [python 3.12 release highlights (beginner - advanced)](https://youtu.be/IV8OZY4194U) +1. [how does .exe magic work? (PATHEXT) (intermediate)](https://youtu.be/6QiLrVaG0qI) +1. [python is removing the GIL! (PEP 703) (advanced)](https://youtu.be/OC2gnyfmwL8) +1. [tuple syntax doesn't have parens (beginner - intermediate)](https://youtu.be/EDGJ2TMuppM) +1. [what is `Symbol` in js (intermediate)](https://youtu.be/gZBQ8LIR6D4) +1. [debugging a sentry test pollution! (intermediate)](https://youtu.be/YEIeKdBmuUY)