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 …

Peter Baumgartner

Peter Baumgartner

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 …

Peter Baumgartner

Peter Baumgartner

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 …

Peter Baumgartner

Peter Baumgartner

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 …

Peter Baumgartner

Peter Baumgartner

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 …

Peter Baumgartner

Peter Baumgartner

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 …

Peter Baumgartner

Peter Baumgartner

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 …

Michael Trythall

Michael Trythall

 screenshot

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 …

Peter Baumgartner

Peter Baumgartner

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 …

Peter Baumgartner

Peter Baumgartner

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 …

Peter Baumgartner

Peter Baumgartner