Peter Baumgartner, Founder at Lincoln Loop

All Posts by Peter Baumgartner

Peter is the founder of Lincoln Loop, having built it up from a small freelance operation in 2007 to what it is today. He is constantly learning and is well-versed in many technical disciplines including devops, scaling, back-end, and front-end development. Peter is a frequent speaker at DjangoCon and has ...
View Peter's profile

Logging to Systemd's Journal in Python

I'll be the first to admit that I was skeptical about Systemd and its companion log aggregator Journald, but after working with if for a few months, I've seen the light (or ...
Read More

Goodbye manage.py

Every Django project starts with a manage.py file in its root. It's a convenience script that allows you to run administrative tasks like Django's included django-admin. In our last post, we ...
Read More

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 it's indispensable. When reviewing logs for an issue, it's rare to hear ...
Read More

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 a great feature for small sites where minor problems would otherwise go ...
Read More

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 with infrastructure in a safe and controlled manner. Once you've nailed down ...
Read More

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 thumbnails at scale. The naive solution to generating thumbnails is to declare ...
Read More

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 a general MVC concept which encourages pushing logic into methods ...
Read More

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 they may be rarer than you think. First, to dispel a misconception ...
Read More

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 host multiple sites and properly route traffic based on the hostname ...
Read More

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 typical platitudes: it's been a roller-coaster ride, how proud I am of ...
Read More

Serving Static Files with uWSGI

Serving Static Files with uWSGI As noted in a previous post, uWSGI is a Swiss Army knife of functionality. One of its features is a built-in static file server. When to Use ...
Read More

The Trouble with Thumbnails: Part 1

Images are everywhere on the web. Whether you're building a simple blog, a CMS, or a true web application, chances are good that you'll need to deal with images. Editors, authors, users ...
Read More

Our Failed Kickstarter Was Really a Success

Our Kickstarter campaign for a companion video series to our book High Performance Django ended today just shy of its target. We consider it a great success! That's right... a success. When ...
Read More

The uWSGI Swiss Army Knife

uWSGI is one of those interesting projects that keeps adding features with every new release without becoming totally bloated, slow, and/or unstable. In this post, we'll look at some of its ...
Read More

Speeding Up NPM Installs

I've been working on improving our deployment processes as part of the High Performance Django Infrastructure project we're building out. One consistent pain point is our front-end build system, and particularly, npm ...
Read More

Fast Immutable Python Deployments

Alternate title: Pip 7 is Awesome, Here's Why A typical Python deployment looks like this: Pave the server, setting up a virtualenv and installing any pre-requisites necessary to build/install the Python ...
Read More

A Closer Look at Docker

Part of my job at Lincoln Loop is to explore new technologies and make sure that, as a company, we stay current. I've been playing around with Docker for a while, but ...
Read More