Skip to content

more easily searchable list of explains playlist

Notifications You must be signed in to change notification settings

bozhodimitrov/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)
  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)
  322. docker beside docker (intermediate - advanced)
  323. what is manylinux? (intermediate - advanced)
  324. pip install from git (beginner - intermediate)
  325. python tempfile module (beginner - intermediate)
  326. virtualenv: --system-site-packages (intermediate)
  327. python: what is repr? (beginner - intermediate)
  328. making an omni-executable (intermediate)
  329. assign vs. shallow vs. deep copy (beginner - intermediate)
  330. what is source and why? (beginner - intermediate)
  331. mypy! this key exists I promise! (beginner - intermediate)
  332. python: raise SystemExit (beginner - intermediate)
  333. python easter eggs: barry_as_FLUFL (beginner - intermediate)
  334. don't name things "..._new" (beginner)
  335. what is "idempotent" in programming (beginner)
  336. interview tips: what language should I use? (beginner)
  337. porting code to python **ZERO** (intermediate - advanced)
  338. interview tips: "your story" (beginner)
  339. a python extension in go (advanced)
  340. debugging a failed docker build (intermediate)
  341. the most important skill I've learned for software engineering (beginner)
  342. "graceful exit" SIGTERM doesn't run finally / destructors ? (intermediate)
  343. --argument prefix matching (beginner - intermediate)
  344. why does id(float(1)) == id(float(2)) ??? (intermediate)
  345. python: what is __main__ / __main__.py ? (beginner - intermediate)
  346. range(len(...)) is almost always wrong in python (beginner)
  347. what is umask? (intermediate)
  348. opinion: don't bother typing tests (intermediate)
  349. multiprocessing: slow things first! (intermediate)
  350. bash shortcut: curly expansion (intermediate)
  351. make your own timeout with alarm(...) (intermediate)
  352. pretty recursive diffs! (beginner - intermediate)
  353. github wikis are repos! (beginner - intermediate)
  354. python: easy comparable classes with functools.total_ordering (intermediate)
  355. git without cd (intermediate)
  356. why remove the python GIL? (intermediate - advanced)
  357. python: unicode names and why they're bad (intermediate)
  358. makefile basics (beginner - intermediate)
  359. how to ace the coding interview (intermediate)
  360. python try except and best practices (beginner - intermediate)
  361. sorting basics in python (beginner)
  362. multiplying str / list / tuple and pitfalls (beginner - intermediate)
  363. making your own custom git commands (intermediate)
  364. python --version --version is not a typo! (beginner)
  365. python parameter defaults are (mutable) globals (intermediate)
  366. python typing: explicit TypeAlias (PEP 613) (intermediate)
  367. python: what is weakref? (intermediate - advanced)
  368. pip: requirements vs. constraints (intermediate)
  369. python: NewType vs aliases (intermediate)
  370. quick debugging tool: python -i (beginner)
  371. what is the log4shell vulnerability? (beginner - intermediate)
  372. what are python wheels? (intermediate - advanced)
  373. recursively import python modules (intermediate)
  374. git commit as someone else? (intermediate)
  375. what is PROMPT_COMMAND? (+aactivator) (intermediate)
  376. python: what is __file__? (beginner - intermediate)
  377. job management: fg / bg / ^Z, & and more! (intermediate)
  378. for loops are just while loops in disguise (beginner - intermediate)
  379. configuring git from environment vars (intermediate)
  380. mypy: possible cyclic definition fix (intermediate)
  381. git: what does "fast forward" mean? (intermediate)
  382. pathlib is slow! falsey is tricky! (pytest bug) (intermediate - advanced)
  383. don't lru_cache methods! (intermediate)
  384. github: give people credit! (beginner - intermediate)
  385. dropping old python versions (intermediate)
  386. useful interview data structures: heapq (intermediate)
  387. decorator typing (PEP 612) (intermediate - advanced)
  388. python: what is 0-arg raise? (beginner)
  389. time vs. /bin/time (beginner - intermediate)
  390. what is an open redirect vulnerability? (intermediate)
  391. how an exit(n) bug introduced 100s of lint errors (intermediate)
  392. hiding big noisy git diffs (intermediate)
  393. recovering from git mistakes w/ ORIG_HEAD (intermediate)
  394. the timeout command (beginner - intermediate)
  395. python code formatter tutorial (intermediate - advanced)
  396. why did I run cd $PWD ??? (beginner - intermediate)
  397. my python project setup (+ all tools) (intermediate)
  398. python can import from zips! (intermediate)
  399. from imports aren't faster! (beginner - intermediate)
  400. what is a .so / .dll / shared object? (intermediate - advanced)
  401. what is inlining? and how does it make code faster? (intermediate)
  402. finding and fixing test pollution! (intermediate)
  403. how to modify a list while iterating (intermediate)
  404. fix flaky tests with detect-test-pollution! (intermediate)
  405. a python curses wordle clone from scratch! (intermediate - advanced)
  406. why does cd -- go to ~ ? (intermediate)
  407. the split command! (beginner - intermediate)
  408. don't run python my/script.py! (beginner - intermediate)
  409. what's that unicode character‽ (beginner - intermediate)
  410. what is the shred command? (beginner - intermediate)
  411. getting a python stacktrace from gdb! (intermediate - advanced)
  412. the fastest python startup with python -S (intermediate)
  413. what is immutability? (beginner - intermediate)
  414. what is rpath? (+relocatability) (intermediate - advanced)
  415. pip install pkg❮1.999 ? (intermediate)
  416. 10 protips I wish I knew sooner as a software dev (beginner)
  417. embedding images in github (beginner - intermediate)
  418. how I sped up python by 20ms (intermediate)
  419. typing Self (PEP 673) (intermediate)
  420. you don't need .git! (beginner)
  421. I don't need __init__.py? PEP 420 and namespace packages (intermediate)
  422. repr(...) doesn't work the way you expect (intermediate - advanced)
  423. DVD screensaver in python curses (intermediate)
  424. double underscored names are NOT "more private" (beginner - intermediate)
  425. FizzBuzz... but in sqlite? (intermediate)
  426. "z3" is actual magic (intermediate)
  427. bash quoting is really not that difficult! (beginner - intermediate)
  428. I made pip startup 25% faster (intermediate)
  429. how to use python backports + setup.py (intermediate)
  430. setting up an ubuntu jammy (22.04) development machine (beginner)
  431. python Generics (intermediate)
  432. babi+ast helped me not break sentry! (intermediate)
  433. python comprehensions leak scope again (intermediate)
  434. python variadic generics (PEP 646) (intermediate - advanced)
  435. top 10 new things in python 3.11 (beginner - advanced)
  436. assert_never / assert_type **CORRECTION** (intermediate)
  437. a git workflow for *only my branches* (intermediate)
  438. regex lookahead / lookbehind (intermediate)
  439. are your python tests even running? (intermediate)
  440. python TypeGuard (PEP 647) (intermediate)
  441. how I fixed a 9GB memory leak in cargo (rust) (intermediate)
  442. dealing with merge conflicts (beginner - intermediate)
  443. what is an --orphan git branch? (intermediate)
  444. narrow python? len('🙃') == 2??? (intermediate)
  445. what is gbp? (intermediate - advanced)
  446. argparse: boolean option pitfall (beginner - intermediate)
  447. cd is not an executable (beginner)
  448. what is a universal2 wheel? (intermediate)
  449. docker: fast CI rebuilds with --cache-from (intermediate)
  450. debugging a real issue and googling (beginner - intermediate)
  451. regex backreferences (intermediate)
  452. why I banned python's assertRaises (intermediate)
  453. safer github personal access tokens (intermediate)
  454. bash strict mode gotcha (intermediate)
  455. javascript sucks at unicode (intermediate)
  456. pip freezing (==) isn't safe (intermediate)
  457. python regex dynamic replacements (intermediate)
  458. how I made my import sorter 7x faster (intermediate)
  459. what release was this fixed? (workflow) (intermediate)
  460. safely stealing github secrets with cryptography (intermediate)
  461. how I sped up flake8 by 20% (intermediate)
  462. github's semi-secret by-id apis (intermediate)
  463. what is a natural sort? (beginner - intermediate)
  464. relocatable macos binaries (advanced)
  465. what is nullcontext? (conditional contexts, pytest) (intermediate)
  466. why do I use azure pipelines instead of github actions? (intermediate)
  467. how is list append possibly O(1)? (beginner - intermediate)
  468. what is musllinux (PEP 656) (intermediate)
  469. easy try rust as a python dev (intermediate)
  470. why can't I signal a MagicMock() ? (intermediate)
  471. why does python think -1**0 is -1 ? (intermediate)
  472. how do from imports keep their globals? (intermediate)
  473. python int DoS vulnerability (CVE 2020-10735) (beginner - intermediate)
  474. docker multi-arch images (intermediate)
  475. python: don't use urlparse! (beginner - intermediate)
  476. why does python report macos 10.16 ??? (intermediate)
  477. the docker registry api (advanced)
  478. urllib3[secure]'s clever deprecation trick (intermediate)
  479. functools.wraps for classes (intermediate)
  480. avoiding shell injection in github actions (intermediate)
  481. what is coverage? (intermediate)
  482. don't make images of code / text! (beginner)
  483. what is "short circuiting"? (beginner - intermediate)
  484. what is the "unraisable" hook (intermediate)
  485. how does swapping work in python? (beginner - intermediate)
  486. hiding your email on github (beginner)
  487. python warnings defaults suck (intermediate)
  488. pytest: everything you need to know about fixtures (intermediate)
  489. python os / platform-specific deps (PEP 508) (intermediate)
  490. I don't use pytest-cov (intermediate)
  491. RegCPython: a 10% faster python for free? (intermediate - advanced)
  492. avoid notification spam with draft PRs! (beginner)
  493. multiprocessing: fork() vs. spawn() (intermediate)
  494. this clever hack let me kill py (intermediate)
  495. do this first before opening an issue (beginner)
  496. securing python with audit hooks (PEP 578) (intermediate)
  497. python sucks at copy-on-write (and one fix!) (intermediate)
  498. git is just a key value store? (advanced)
  499. refcount ONE BILLION? (immortal objects, PEP 683) (advanced)
  500. partial git commits (intermediate)
  501. sqlite is my favorite database (beginner - intermediate)
  502. virtualenv isn't reproducible! (by default) (intermediate)
  503. --extra-index-url is unsafe! (intermediate)
  504. docker: multi-stage builds (intermediate)
  505. git: the several ways to "--sign" (intermediate)
  506. why I use the colon (:) command (intermediate)
  507. how should I organize my project? (beginner)
  508. don't git clone over https! (beginner)
  509. don't use cat! (intermediate)
  510. module level __getattr__ (intermediate)
  511. why are some things shell builtins? (intermediate)
  512. python: zip and unzip (intermediate)
  513. I've moved off of azure pipelines for CI (intermediate)
  514. swapping without a third variable (intermediate)
  515. when should I pin deps: never and always! (intermediate)
  516. make a github commit using only the api! (intermediate)
  517. a simpler try / except (and why maybe shouldn't) (beginner - intermediate)
  518. you're probably doing case-insensitive wrong (intermediate)
  519. getting started with pytest (beginner - intermediate)
  520. python descriptors! (advanced)
  521. don't use short options in scripts (beginner - intermediate)
  522. how to escape this VERY MEAN prank (beginner)
  523. how do virtualenvs actually work (advanced)
  524. python's optimization mode is mostly useless (intermediate)
  525. merge queues (intermediate)
  526. all string syntaxes (beginner)
  527. my first rust open source PR (beginner - intermediate)
  528. tuples! (and their syntax quirks) (beginner)
  529. how I use git blame (beginner - intermediate)
  530. positional / named only without * or /? (intermediate)
  531. why git's --intent-to-add ? (intermediate)
  532. rerunning github checks (beginner - intermediate)
  533. shell aliases and bypassing them? (beginner - intermediate)
  534. how I made pre-commit's github actions 3x faster (intermediate)
  535. don't use localhost (intermediate)
  536. what is a "canary" deploy? (beginner - intermediate)
  537. avoiding noisy git matches (beginner - intermediate)
  538. docker pull by sha256 digest (advanced)
  539. weird python identity quirk? (intermediate)
  540. when git add . doesn't work (intermediate)
  541. I made every sentry page 300ms faster (intermediate)
  542. docker: don't mount files! (mount dirs instead) (intermediate)
  543. you can't always trust argv[0] (intermediate)
  544. shell: use this instead of cd (intermediate)
  545. docker: secrets at build time! (intermediate)
  546. every Dockerfile should have this line! (intermediate)
  547. python's "soft" keywords (intermediate)
  548. shell vs environment variables (and env, export, etc.) (intermediate)
  549. python 3.12 release highlights (beginner - advanced)
  550. how does .exe magic work? (PATHEXT) (intermediate)
  551. python is removing the GIL! (PEP 703) (advanced)
  552. tuple syntax doesn't have parens (beginner - intermediate)
  553. what is Symbol in js (intermediate)
  554. debugging a sentry test pollution! (intermediate)
  555. stopping xargs early (intermediate)
  556. docker: connecting to localhost outside the container (intermediate)
  557. the system design interview (intermediate - advanced)
  558. don't delete from pypi! (yank instead) (intermediate)
  559. git: --first-parent (intermediate)
  560. I don't use backslashes (with one exception) (beginner - intermediate)
  561. what is a BOM (byte-order-marker) (intermediate)
  562. NEW generic / alias syntax for python 3.12 (PEP 695) (intermediate)
  563. new 3.12 f-strings syntax! (intermediate)
  564. pesky reDOS and python 3.11 (intermediate)
  565. prefer tuples to lists! (intermediate)
  566. git: inline diffs with --word-diff! (intermediate)
  567. ONE TERABYTE of RAM saved with a single line of code (advanced)
  568. using memray to debug (and fix) a memory leak in krb5! (advanced)
  569. py-spy saved our python 3.11 rollout (intermediate)
  570. using git bisect to find a bug in nodejs (intermediate)
  571. am I vulnerable to black's CVE? (2024-21503) (intermediate)
  572. training a custom object detection model from scratch (yolov8) (intermediate)
  573. adding test == others fail??? (intermediate)
  574. typing decorators sucks! here's an easier way (intermediate)
  575. typing the untype-able with mypy plugins (advanced)
  576. x: float = False is a valid annotation??? (intermediate)
  577. PEP 696 is a huge quality-of-life improvement (intermediate)
  578. how do I make an empty generator? (intermediate)
  579. faster git recloning* (intermediate)
  580. oops I'm the pyuwsgi maintainer now (intermediate)
  581. debugging and fixing pyuwsgi in python 3.12 (advanced)
  582. python 3.13 release highlights
  583. stop using manual cloud creds! (oidc)
  584. stop making giant changesets!
  585. debugging flaky cascading failure after upgrading pytest!
  586. how does python's module __getattr__ actually work?
  587. python warnings got way better in 3.12!

About

more easily searchable list of explains playlist

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 90.7%
  • Shell 3.1%
  • C 3.1%
  • Dockerfile 1.3%
  • HTML 0.5%
  • Go 0.4%
  • Other 0.9%