Deep insights from our research and experience
Using setup.py in Your (Django) Project
A client recently asked me why all the Django projects we create have a setup.py in the root of the …
Django Logging, The Right Way
Good logging is critical to debugging and troubleshooting problems. Not only is it helpful in local development, but in production …
Disabling Error Emails in Django
One of Django’s nice “batteries included” features is the ability to send emails when an error is encountered. This is …
Dynamic Test Servers with Salt
One of the things I love about the DevOps movement is how (when done right) it empowers developers to work …
The Trouble with Thumbnails: Part 2
In this long overdue follow-up to Part 1, I’ll be discussing the infrastructure issues associated with creating and serving image …
Django Patterns: Fat Models and cached_property
One of my favorite patterns in Django is the combination of “fat” models and cached_property from django.utils.functional. Fat models are …
Linting SCSS with sass-lint
Linting SCSS with sass-lint Complex projects always require multiple developers and design heavy web sites are no exception. Sass/SCSS is …

Django Anti-Patterns: Signals
Django’s Signal Dispatcher is a really powerful feature that you should never use. Ok, it has valid use cases, but …
Multiple Sites with Routing in uWSGI
In another of our “you can do that?!?” with uWSGI posts, today I’ll show you how to use uWSGI to …
10 Years of Lincoln Loop
April marked Lincoln Loop’s 10th anniversary in business. As I reflect on that, I find myself going through all the …