19 Jun 2024 |
The Prehistory of Kubernetes: From Cubic Equations to Cloud Orchestration |
07 May 2023 |
Safe, Simple, Automatic Releases |
30 Dec 2022 |
The "Dynamic" Properties in PyProject |
14 Aug 2022 |
On The Go |
20 Feb 2022 |
Reading the Documentation for Popular Products |
24 Dec 2021 |
Three Problems with a Tool |
15 Aug 2021 |
Better Outage Retrospectives |
15 Jul 2021 |
Empathy vs. sympathy for Site Reliability Engineers (SRE) |
07 Jul 2021 |
Minimal packing list |
16 Jun 2021 |
Post that PR |
05 Apr 2021 |
Portable Python Binary Wheels |
11 Mar 2021 |
So you want to create a universe |
18 Feb 2021 |
Virtual Buffet Line |
11 Dec 2020 |
DRY is a Trade-Off |
19 Sep 2020 |
Fifty Shades of Ver |
20 Aug 2020 |
Universal Binary |
24 Jul 2020 |
The Hardest Logic Puzzle Ever (In Python) |
12 Jul 2020 |
Hey, Back Off! |
03 Jul 2020 |
A Labyrinth of Lies |
13 Jun 2020 |
Conditionally Logging Expensive Tasks |
26 Apr 2020 |
My Little Pony -- DevOps is Magic |
26 Apr 2020 |
Numbers in Python |
21 Apr 2020 |
Goodbye, John H. Conway |
13 Apr 2020 |
Using Twisted to Massively Parallelize Web Clients |
04 Apr 2020 |
Comfort with Small Mistakes |
12 Mar 2020 |
Or else: |
19 Feb 2020 |
Forks and Threats |
30 Dec 2019 |
Meditations on the Zen of Python |
17 Dec 2019 |
Precise Unit Tests with PyHamcrest |
17 Nov 2019 |
Raise Better Exceptions in Python |
17 Oct 2019 |
An introduction to zope.interface |
16 Sep 2019 |
Adding Methods Retroactively |
07 Aug 2019 |
Designing Interfaces |
12 Jul 2019 |
Interfaces are forever |
27 May 2019 |
Analyzing the Stack Overflow Survey |
15 May 2019 |
Inbox Zero |
08 Apr 2019 |
Publishing a Book with Sphinx |
29 Mar 2019 |
A Local LRU Cache |
13 Feb 2019 |
Don't Make It Callable |
24 Jan 2019 |
Staying Safe with Open Source |
08 Jan 2019 |
Checking in JSON |
08 Dec 2018 |
Office Hours |
28 Nov 2018 |
Common Mistakes about Generational Garbage Collection |
07 Nov 2018 |
The Conference That Was Almost Called "Pythaluma" |
06 Oct 2018 |
Why No Dry Run? |
02 Sep 2018 |
Managing Dependencies |
02 Aug 2018 |
Tests Should Fail |
02 Aug 2018 |
Thank you, Guido |
01 Jul 2018 |
Composition-oriented programming |
01 Jun 2018 |
Avoiding Private Methods |
16 May 2018 |
PyCon US 2018 Twisted Birds of Feather Open Space Summary |
15 May 2018 |
PyCon 2018 US Docker Birds of Feather Open Space Summary |
02 May 2018 |
Wheels |
02 Apr 2018 |
Web Development for the 21st Century |
19 Mar 2018 |
Running Modules |
14 Mar 2018 |
Random Bites of Pi(e) |
01 Feb 2018 |
The Python Toolbox |
30 Dec 2017 |
Jupyter for SRE |
17 Dec 2017 |
Write Python like an expert |
13 Dec 2017 |
Interesting text encodings (and the people who love them) |
10 Dec 2017 |
Exploration Driven Development |
14 Nov 2017 |
Abstraction Cascade |
13 Nov 2017 |
Gather |
27 Sep 2017 |
Brute Forcing AES |
19 Sep 2017 |
Announcing NColony 17.9.0 |
30 Aug 2017 |
SSH to EC2 |
07 Aug 2017 |
Python as a DSL |
25 Jul 2017 |
Image Editing with Jupyter |
19 Jul 2017 |
Anatomy of a Multi-Stage Docker Build |
17 Jul 2017 |
Bash is Unmaintainable Python |
25 Jun 2017 |
Imports at a Distance |
24 Jun 2017 |
X Why Zip |
09 Jun 2017 |
Nitpicks are for Robots |
29 Apr 2017 |
My Little Subclass: Inheritance is Magic |
11 Apr 2017 |
PYTHONPATH Considered Harmful |
17 Mar 2017 |
Shipping Python Applications in Docker |
07 Mar 2017 |
Pelican -- an Experiment |