Skip to content

Instantly share code, notes, and snippets.

@bhrutledge
Last active October 31, 2019 18:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bhrutledge/2b47e00f0ecdade2bba77399411665a2 to your computer and use it in GitHub Desktop.
Save bhrutledge/2b47e00f0ecdade2bba77399411665a2 to your computer and use it in GitHub Desktop.
PyCon 2019 Talks I've Watched

PyCon 2019 Talks I've Watched

  • Slides
  • Nine levels of hell, leading to tech debt
  • References and builds on prior talks and writing
  • Puts mocking in historical TDD/OOP context, disambiguates it from other kinds of test doubles
  • Works through example of getting out of hell via stubs/fakes, seams, dependency injection, clean architecture, etc.
  • Slides
  • Good overview of utility/math of cyclomatic complexity, Halsted metrics, and maintainability index
  • wily graphs metrics trends based on git history
  • Fewer lines != less complex, Test coverage != behavior coverage
  • Interprets six lines of "Zen of Python" as they apply to team culture
  • High-level overview of simple-to-complex scenarios
  • Start simple with WhiteNoise, eventually use django-storages for media on S3 and django-webpack-loader for modern JavaScript
  • Slides
  • Fun problem statement and narrative about reducing toil with automation
  • tox for testing, managing virtual environments, via .ini files
  • nox for same, plus general project automation, via Python
  • invoke for general task-based automation, via Python
  • Slides
  • Observability == What's going on? Why did things go wrong?
  • How to improve logging and metrics to tell the narrative of a web app
  • How to manage the complexity and tech debt that arise from feature flags
  • How to adapt company processes and culture around feature flags
  • Slides
  • Balanced view of a common debate, with examples and pros/cons of both approaches
  • Slides
  • Good overview of why, use cases of Python 3.8 feature
    • [y for x in data if y := f(x)]
    • if match := pattern.search(data)
  • Good overview of PEP process, controversy, steering council
  • Good introduction to theory of abstract/concrete syntax trees, with examples
  • Used in lib2to3, futurize, black, etc.
  • Also useful for refactoring (but not clear how)
  • Reasoning and implementation behind the popular "Opinionated, Deterministic, Consistent, Fast" formatter from its creator
  • Use automation (instead of noisy linter) to focus on logic, not code style
  • Builds on syntax trees talk
  • Narrative about Dropbox's motivation for and challenges faced during adoption
  • Annotate legacy code to support new code and enable "aggressive refactoring"
  • Used social pressure for adoption
  • Performance challenges impeding adoption (and their solutions) were due to scale
  • Slides
  • A little too abstract/simple/quick, but still a decent introduction to changing code structure, not behavior
  • Slides
  • CircuitPython demo: make blinky lights and noise with Python!
  • Lots of links in slides PDF
  • Slides
  • Nice walkthrough from problem to implementation of miss-islington, a bot for backporting CPython pull requests
  • Slides
  • Generally follows official PyPA guide to publish your first package so you can pip install
  • Example of automation via nox and CircleCI
  • Elana Hashman
  • Talk Resources
  • Decent background on evolution of wheels
  • Most focus on native extensions (e.g. cryptography library) and manylinux effort to improve adoption
  • Slides
  • Lot of theory, not an introduction; there are other docs and talks for that
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment