Skip to content

more easily searchable list of explains playlist

Notifications You must be signed in to change notification settings

graingert/explains

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

explains

update playlist

the full playlist is on youtube

  1. introducing anthony explains!
  2. python cli tested with pytest - (beginner to intermediate)
  3. python @decorators - (intermediate)
  4. my favorite python str method! (beginner - intermediate)
  5. how to make a simple github PR (beginner)
  6. the python @property decorator (beginner - intermediate)
  7. python type(x).__name__ vs x.__class__.__name__ (intermediate)
  8. python return annotations: NoReturn vs None (intermediate)
  9. what's wrong with python's blank except:? (beginner - intermediate)
  10. how I use selenium + html/css to make thumbnails (intermediate)
  11. python: raising Error without parens (intermediate)
  12. python's tricky for ...: else: statement (beginner - intermediate)
  13. python's pass statement (beginner - intermediate)
  14. shell bling strings! (beginner - intermediate)
  15. setting up an ubuntu focal virtual machine (beginner - intermediate)
  16. python executable zipapps (intermediate)
  17. pretty python profiling (intermediate)
  18. python implicit string joining (beginner - intermediate)
  19. postmortem debugging in python (beginner - intermediate)
  20. configuration management (devops) (intermediate)
  21. how to pronounce PyPI (beginner)
  22. all python argument / parameter types (beginner - intermediate)
  23. what is a tty? (beginner - intermediate)
  24. introduction to markdown (beginner)
  25. how do I get started in open source? (beginner)
  26. a flake8 plugin from scratch (intermediate)
  27. finding regressions with git bisect (intermediate)
  28. pytest's parametrize (beginner - intermediate)
  29. python curses "hello world" (beginner - intermediate)
  30. git: empty initial commit (beginner - intermediate)
  31. dockerfile RUN : \ && syntax (beginner)
  32. python variable unpackings (beginner - intermediate)
  33. docker: ADD «url» considered harmful? (intermediate)
  34. what is a shebang (#!)? (beginner - intermediate)
  35. what is test driven development? (beginner - intermediate)
  36. python single vs double quote strings! (beginner)
  37. git: ignoring noisy whitespace changes (beginner - intermediate)
  38. git: useful trick for pushing branches (beginner - intermediate)
  39. python github actions w/ tox and pre-commit (intermediate)
  40. releasing a python package to pypi (beginner - intermediate)
  41. virtualenv vs. venv (beginner - intermediate)
  42. implementing --version with importlib.metadata (intermediate)
  43. string formatting in python (beginner - intermediate)
  44. introduction to tox (beginner - intermediate)
  45. python argparse tutorial (beginner - intermediate)
  46. typing __getitem__ (python / mypy) (intermediate)
  47. fixing a git mistake with reflog (intermediate)
  48. introduction to python typing + mypy (beginner - intermediate)
  49. python packaging: src layout (intermediate)
  50. three ways to edit git commits (intermediate)
  51. stdin / stdout / stderr (beginner - intermediate)
  52. hacker mode tmux debugging (intermediate)
  53. regular expressions crash course (beginner - intermediate)
  54. web security: what is a csrf exploit? (intermediate)
  55. python: functools.lru_cache (beginner - intermediate)
  56. python __future__ "module" (beginner - intermediate)
  57. undoing an accidental git commit (intermediate)
  58. python packaging: basic setup.py and declarative metadata (intermediate)
  59. what is deadsnakes? (beginner - intermediate)
  60. getting started with programming (beginner)
  61. git show (+ some tips!) (beginner)
  62. python star imports (beginner - intermediate)
  63. intro to apt (debian / ubuntu) (beginner + intermediate)
  64. correct conditional arguments in bash (beginner - intermediate)
  65. using the python __import__ builtin correctly (intermediate)
  66. special paths: ~, ~user, ., .. (beginner)
  67. protip: exiting really fast! (beginner)
  68. python: Ellipsis (...) and typing (beginner - intermediate)
  69. git cherry-pick (intermediate)
  70. customizing the python repl (intermediate)
  71. what is PATH? (beginner - intermediate)
  72. python packaging: data files (intermediate)
  73. a virtualenv from nothing! (beginner - intermediate)
  74. tox --devenv (beginner - intermediate)
  75. python packaging: optional dependencies (intermediate)
  76. regexes: capture groups (beginner - intermediate)
  77. python typing: why not self? (intermediate)
  78. generator basics (+typing) (beginner - intermediate)
  79. stop using git add . (beginner - intermediate)
  80. why not global pip / virtualenv? (intermediate)
  81. bash hash cache! (beginner - intermediate)
  82. git: a checked-in directory (intermediate)
  83. typing: exception types (intermediate)
  84. why you should end a file in a newline (beginner)
  85. git workflow: branch name collisions (intermediate)
  86. sort your imports! (beginner - intermediate)
  87. what is the underscore (_) for? (beginner)
  88. python curses: color (intermediate)
  89. semantic versioning (beginner - intermediate)
  90. file modes and chmod (beginner - intermediate)
  91. making a regex not match itself! (intermediate)
  92. I run 'rm -rf /' and see what happens (beginner - intermediate)
  93. git fetch (--prune) (beginner - intermediate)
  94. top 10 new things in python3.9 (beginner - intermediate)
  95. testing functools.lru_cache with pytest! (beginner - intermediate)
  96. git: commit message pro tip (beginner - intermediate)
  97. typing: what is Type[X]? (intermediate)
  98. python debugger crash course: pdb / breakpoint (beginner - intermediate)
  99. why pytest.mark.usefixtures? (intermediate)
  100. git apply and manual stashing (intermediate)
  101. intro to python namedtuples! (beginner - intermediate)
  102. namedtuple to json and other pitfalls (intermediate)
  103. how namedtuple works (advanced)
  104. why python -m pip? (beginner - intermediate)
  105. fixing NameError / TypeError in python type annotations (intermediate)
  106. why backslash in triple-quoted-strings """\ (intermediate)
  107. what's (wrong with) hacktoberfest? (beginner)
  108. pure python windows .exe (no compiler!) (intermediate)
  109. python dist-packages vs. site-packages (intermediate)
  110. testing optional python dependencies (intermediate)
  111. typing: why main() -˃ int (beginner - intermediate)
  112. debugging with dir() (+__dir__) (beginner - intermediate)
  113. python: pretty headers with str.center (beginner)
  114. don't put passwords in commands! (beginner - intermediate)
  115. python: comma, = assignment! (beginner - intermediate)
  116. python typing: re.match and Optional (intermediate)
  117. python: .sort() vs sorted(...) (beginner - intermediate)
  118. python typing: @property (beginner - intermediate)
  119. python: 4 ways to set namedtuple defaults (intermediate)
  120. what is the /opt directory? (beginner - intermediate)
  121. git: visualizing main line commits (intermediate)
  122. bash: passing string as stdin (beginner - intermediate)
  123. python: what is __slots__ and __dict__ (intermediate)
  124. why __slots__ = () (namedtuples) (intermediate)
  125. how do editable pip installs work? (intermediate)
  126. what is argv (and argc)? (beginner - intermediate)
  127. is python with types faster? (intermediate)
  128. bash: multiple lines to stdin with heredocs (beginner - intermediate)
  129. a python plugin system via entrypoints (intermediate)
  130. git diff A...B (3 dots) (beginner - intermediate)
  131. faster than git clone! (beginner - intermediate)
  132. python: len(x) vs x.__len__() (beginner - intermediate)
  133. python typing: Final / @final (intermediate)
  134. python: raw (NOT REGEX) r'strings' (beginner - intermediate)
  135. a "hello world" python C extension (intermediate - advanced)
  136. making python releases less painful with abi3 (intermediate - advanced)
  137. useful interview datastructures: defaultdict (beginner - intermediate)
  138. reset a clone with git clean! (beginner - intermediate)
  139. with + context managers (part1: the hard way) (intermediate - advanced)
  140. with + context managers (part2: the easy way) (intermediate)
  141. how @contextmanager works (with/contexts part 3) (advanced)
  142. is python's round() broken? (beginner)
  143. useful interview datastructures: Counter (beginner - intermediate)
  144. easy fake objects with python's SimpleNamespace (beginner - intermediate)
  145. what is a git tag? (beginner - intermediate)
  146. python: typing *args / **kwargs (intermediate)
  147. python typing: Optional is not optional! (intermediate)
  148. mypy's "implicit optional" (and why I disable it) (intermediate)
  149. customize ANY website (beginner - intermediate)
  150. python: more advanced breakpoint() usage (intermediate)
  151. what is docker and how does it work? (intermediate)
  152. docker run: always use --rm! (beginner - intermediate)
  153. what is sass vs scss? (beginner)
  154. repeatedly checking command output (beginner - intermediate)
  155. why do asset urls have hex segments? (beginner - intermediate)
  156. python cffi tutorial (intermediate - advanced)
  157. python regex: \d gotcha! (beginner - intermediate)
  158. customizing "command not found" (intermediate)
  159. why docker build --pull? (intermediate)
  160. useful commands: pstree (beginner - intermediate)
  161. don't use os.system! (beginner - intermediate)
  162. python: all about comprehensions! (beginner - intermediate)
  163. python: os.exec* vs subprocess (intermediate)
  164. python typing: @overload (intermediate)
  165. structural subtyping in python with Protocol! (intermediate)
  166. what is virtualenvwrapper + quick start (beginner - intermediate)
  167. github tweak: custom tab width (beginner)
  168. what is advent of code? (beginner)
  169. what is atomicity (intermediate)
  170. python: what is nonlocal (intermediate)
  171. python typing: Literal (intermediate)
  172. counting in binary / 2s complement (beginner - intermediate)
  173. oops I typed git git ... again (beginner - intermediate)
  174. python: binary search the easy way (interview tips) (intermediate)
  175. pytest: parametrize permutation (intermediate)
  176. more powerful than control-C (beginner - intermediate)
  177. pytest: testing exceptions (beginner - intermediate)
  178. what is a pager / less ? (beginner - intermediate)
  179. python: naming and underscores (beginner - intermediate)
  180. what is the bang (!) in git aliases (beginner - intermediate)
  181. python typing: aliases (beginner - intermediate)
  182. argparse: making a command wrapper (parse_known_args) (intermediate)
  183. bash protip: fc "fix command" (beginner - intermediate)
  184. python integer literal underscores! (beginner)
  185. what is git -C ... (intermediate)
  186. bash: pushd / popd (beginner - intermediate)
  187. what is cd - / git checkout - (beginner)
  188. typing: Protocol + @runtime_checkable (intermediate)
  189. what is a singleton? (and python patterns) (intermediate - advanced)
  190. python: conditional context and ExitStack (intermediate)
  191. python deque (useful interview datastructures) (intermediate)
  192. images in the terminal? what is a sixel (beginner - intermediate)
  193. useful tools: uq (beginner - intermediate)
  194. git: cleaning up merged branches (beginner - intermediate)
  195. python: decorating a class (intermediate)
  196. python: class-based @decorators (intermediate - advanced)
  197. intro to git lfs (intermediate)
  198. python scoping (beginner - intermediate)
  199. docker: deleting files makes your image bigger! (intermediate)
  200. getting started with packer (intermediate)
  201. all about xargs ! (beginner - intermediate)
  202. bash "strict mode": -euo pipefail (beginner - intermediate)
  203. 3 ways to clear / fix the terminal (beginner)
  204. python is compiled? (+ disassembler) (intermediate)
  205. what is a boolean trap? (programming antipattern) (beginner - intermediate)
  206. python: str.translate (intermediate)
  207. python easter eggs: __future__ braces (beginner)
  208. the wc command (beginner)
  209. debugging python segfaults with gdb (intermediate - advanced)
  210. interview question: 4 / 7 swap (beginner - intermediate)
  211. github actions vulnerability or "why bug bounties are a scam" (intermediate)
  212. python easter eggs: antigravity (beginner)
  213. python insertion-ordered dicts (beginner - intermediate)
  214. python @decorator stacking (intermediate)
  215. typing: dealing with import cycles (beginner - intermediate)
  216. python easter eggs: easiest hello world! (beginner)
  217. what is dynamic programming? (beginner - intermediate)
  218. unix commands: fold (beginner)
  219. listing only directories with ls (beginner)
  220. github tip: getting perma-links (beginner)
  221. finding python source code and docs (beginner)
  222. how I sped up python's tokenize module by 25% (intermediate)
  223. python: why is -c faster than -m? (intermediate)
  224. python: {...} is faster than dict(...) (intermediate)
  225. showing actual file bytes with hexdump (beginner - intermediate)
  226. python: how do any / all work? (beginner)
  227. python: why str('foo') (python 2 / 3 compat) (beginner - intermediate)
  228. bash: /bin/[ is an executable ? (intermediate)
  229. the install command (beginner - intermediate)
  230. 3 ways to fix an accidental git commit to main (beginner - intermediate)
  231. don't use time.time() for performance measurement (beginner - intermediate)
  232. how to search a repo using git grep (beginner)
  233. the 2 modes of python's str.split (beginner)
  234. python: what are *splat **args? (intermediate)
  235. why doesn't flake8 mark this import as unused? (beginner - intermediate)
  236. pathlib is slow? how I improved black's caching by 40x (intermediate)
  237. how to make a virtualenv from cpython source (intermediate)
  238. enable tab completion in pdb! (beginner)
  239. sed command basics (beginner - intermediate)
  240. what pythons should I support? (beginner - intermediate)
  241. python: what is assert? (beginner)
  242. python: shlex module (beginner - intermediate)
  243. python: what is hashability? (intermediate)
  244. python: why object() in this code? (intermediate)
  245. intro to terraform (intermediate)
  246. git rebase (and git rebase -i) (intermediate)
  247. testing output with pytest (beginner - intermediate)
  248. python: exception catching and isinstance gotcha (beginner - intermediate)
  249. one-off 3rd party mypy types (intermediate)
  250. PS1, coloring, and fixing weird wrapping (beginner - intermediate)
  251. python match statement (PEP 634) (intermediate - advanced)
  252. NotImplemented vs NotImplementedError (beginner - intermediate)
  253. packaging python typed code (intermediate)
  254. interview questions: anagrams (beginner - intermediate)
  255. python: functools.partial (beginner - intermediate)
  256. speed up git in big repos with this trick (beginner)
  257. correct apt-get for ubuntu / debian in docker (intermediate)
  258. what is podman vs docker (beginner - intermediate)
  259. a file even root can't delete! (chattr) (intermediate)
  260. python: yield from (beginner - intermediate)
  261. pytest: xfail vs xpass and all test statuses (beginner - intermediate)
  262. python easter eggs: __peg_parser__ (beginner)
  263. what is the XDG base directory specification? (intermediate)
  264. move a virtualenv! (intermediate)
  265. atomic file replacement (os.rename vs os.replace) (intermediate)
  266. floats are broken? (+3 solutions in python!) (beginner - intermediate)
  267. how I find standard python type signatures (beginner - intermediate)
  268. python curses: mouse integration (intermediate)
  269. the rlwrap command (beginner - intermediate)
  270. can cpython be 76% faster by changing hash()? (no) (intermediate)
  271. what is a .pth file? (intermediate)
  272. nesting context managers with classes (intermediate)
  273. a FREE stateful cron using aws (intermediate)
  274. what are git submodules? (intermediate)
  275. programmable nintendo switch controller (intermediate)
  276. python typing: object vs Any (intermediate)
  277. python typing: NotImplemented is a bool? (intermediate)
  278. the find command (beginner - intermediate)
  279. use the clipboard from the terminal (beginner)
  280. pgrep / pkill commands (beginner - intermediate)
  281. SUPER FAST cpython with mypyc (intermediate)
  282. updating a forked repository (beginner - intermediate)
  283. docker takes so much disk! (beginner - intermediate)
  284. python: traceback basics + raise from (beginner - intermediate)
  285. git: check in executable file (+ on windows) (beginner - intermediate)
  286. line buffering vs. block buffering (intermediate)
  287. the comm command! (intermediate)
  288. man pages for git subcommands (beginner - intermediate)
  289. flake8: avoiding F401 in __init__.py (beginner - intermediate)
  290. top 10 new things in python 3.10 (beginner - intermediate)
  291. what is a deadletter queue? (intermediate)
  292. atomically replace / delete directories (intermediate - advanced)
  293. ☃.com and punycode / idna (beginner - intermediate)
  294. how to get pip for deadsnakes / docker pythons (intermediate)
  295. @staticmethod / @classmethod (beginner + advanced)
  296. date.today() is twice as slow as datetime.now().date()??? (intermediate)
  297. simple python dockerfile w/ flask (intermediate)
  298. python typing: Generator[T, S, R] (intermediate)
  299. python: explicit relative imports (intermediate)
  300. debugging mypy types (beginner - intermediate)
  301. what are python doctests? (beginner - intermediate)
  302. terminal keyboard shortcut for unicode! (beginner)
  303. bash: strings with ! / !... event not found (beginner - intermediate) anthony explains
  304. default zoom key shortcut (beginner)
  305. smaller / faster builds with dockerignore (beginner - intermediate)
  306. python: why reload() is a bad idea (beginner - intermediate)
  307. what is the py launcher? (intermediate)
  308. the uniq command (+ some sort) (beginner - intermediate)
  309. gradual typing python (and my approach) (beginner - intermediate)
  310. importing non-module python files (intermediate)
  311. the cut command (beginner - intermediate)
  312. bash: special redirection (intermediate)
  313. python typing: TYPE_CHECKING (intermediate)
  314. else is good, actually (beginner - intermediate)
  315. Fussy Fox + flake8 vulnerability (intermediate)
  316. setting up required github PR checks (beginner - intermediate)
  317. python has an optimizer? (intermediate)
  318. pytest: testing env variables (intermediate)
  319. python easter eggs: this (beginner)
  320. git: main vs. origin/main (beginner - intermediate)
  321. python warnings (beginner - intermediate) explains #320
  322. docker beside docker (intermediate - advanced)

About

more easily searchable list of explains playlist

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 92.5%
  • C 3.5%
  • Shell 1.7%
  • Dockerfile 1.2%
  • HTML 0.7%
  • HCL 0.3%
  • Other 0.1%