<p>In</p><p>a previous post</p><p>, we showed how to use</p><p>shiv</p><p>to bundle a Django project into a single file for distribution and deployment. Running a large Python project as a single file feels like magic – which is great …</p>
<p>This post covers portions of my talk,</p><p>Containerless Django</p><p>, from DjangoCon US 2018.</p><p>Deploying Python has improved significantly since I started working with it over a decade ago. We have virtualenv, pip, wheels, package hash verification, and</p><p>lock</p><p>files …</p>
<p>Most of the Django projects I work with take advantage of</p><p>django.contrib.auth</p><p>. It manages
users and groups and is tightly coupled with</p><p>django.contrib.admin</p><p>. In this post, we are going to
explore how it resists a potential attacker.</p><p>The …</p>
<p>With Ubuntu 14.04 (Trusty) now a year away from end-of-life, we’ve been planning and performing upgrades for the soon-to-be legacy OS. The biggest change is the move from</p><p>Upstart</p><p>to</p><p>Systemd</p><p>for managing services. It’s trivial to convert a service …</p>
<p>I’ll be the first to admit that I was skeptical about</p><p>Systemd</p><p>and its companion log aggregator</p><p>Journald</p><p>, but after working with if for a few months, I’ve seen the light (or drunk the Kool Aid… not sure).</p><p>Typically …</p>
<p>Every Django project starts with a</p><p>manage.py</p><p>file in its root. It’s a convenience script that allows you to run administrative tasks like Django’s included</p><p>django-admin</p><p>.</p><p>In</p><p>our last post</p><p>, we discussed the merits of including a</p><p>setup.py …</p>
<p>A client recently asked me why all the Django projects we create have a</p><p>setup.py</p><p>in the root of the project. Lots of projects get by just fine without one, so why do I use it? The explanation turned out …</p>
<p>Good logging is critical to debugging and troubleshooting problems. Not only is it helpful in local development, but in production it’s indispensable. When reviewing logs for an issue, it’s rare to hear somebody say, “We have too much logging in …</p>
<p>One of Django’s nice “batteries included” features is the ability to send emails when an error is encountered. This is a great feature for small sites where minor problems would otherwise go unnoticed.</p><p>Once your site start getting lots of …</p>
<p>In this long overdue follow-up to</p><p>Part 1</p><p>, I’ll be discussing the infrastructure issues associated with creating and serving image thumbnails at scale. The naive solution to generating thumbnails is to declare the image sizes you want in your …</p>