April 01, 2025
March was an incredible month of birding. It started off strong, included an epic chase, and ended with some early shorebirds.
March 27, 2025
March is crane season in Nebraska, the Platte River is covered with nearly a million Sandhill Cranes, and we often get handfuls of Whooping Cranes. But the most sought after crane in the state might just be the Common Crane.
March 01, 2025
Overall February was a bit of a slower month, but I still ran into some great birds!
February 01, 2025
January got off to a great start! I headed west to get some rarities and winter specialties, and finished the month back in the east picking off a few more of the easier ones.
February 26, 2020
In Django, fields with auto_now=True are not always updated correctly. A common practice to work around this is to override the save() method on the model, or to use a pre-save hook. However, this doesn't work when calling Model.objects.update() since save() is not called on all instances in the queryset.
December 10, 2018
Instead of rolling my own progress bars on new batch management commands, I've been using tqdm lately. Here's a quick snippet for multiprocessing a batch of items in a queryset. You'll need tqdm to run this: pip install tqdm Note: Since the function that I'm calling is using django's ORM, I close all db connections.
June 05, 2017
Django querysets are really powerful. They can often be used to reduce expensive object iterations down to the database level. Let's take the following models and figure out which product has the least in stock...
May 19, 2017
A problem that many applications (hopefully) eventually run into is scalability. In a project I'm working on, we have a django management command that makes a time consuming API call to update a model. Let's take a look at the original code...
February 13, 2017
A problem I recently ran into was allowing for multiple themes to be used on the same project. I decided to set a django setting called BRAND in order to control the theme through separate css files. For this example, we will assume that your static directory has sub-directories for each brand...
August 13, 2016
As your Django app grows larger, your test suite starts piling up. In a project I was working on we had a test suite of 375 tests. Today I'll explain how I reduced the run time of that suite from 350+ seconds to 20 seconds. 1. Mock, mock, mock!
Recent Posts
Tags