Leveraging Holistic Synergies - Ben Lopatin

Articles and Notes

Sustaining Interest

November 16, 2018

It’s a problem I’ve dealt with practically, but not one to which I’ve previously given any thought in a structured way. After all, I’ve been…

Book notes: Sapiens

October 17, 2018

This is part four in a project to review/respond to one book per week (er, couple months). By and large it will only include books I am…

Django Standalone Apps

September 29, 2018

A few years back I had an idea. I’d write a series of blog posts specific to things I’d learned - often the hard way - about to create and…

Book notes: The Gulag Archipelgao

June 07, 2018

This is part four in a project to review/respond to one book per week (er, couple months). By and large it will only include books I am…

Book notes: The Spanish Civil War

March 21, 2018

This is part three in a project to review/respond to one book per week. By and large it will only include books I am reading or have read…

Book notes: The Subtle Art of Not Giving a Fuck

March 15, 2018

This is part two in a project to review/respond to one book per week. By and large it will only include books I am reading or have read…

Book notes: Against Empathy

March 04, 2018

This is the first part in a project to review/respond to one book per week. By and large it will only include books I am reading or have…

Data Representation

May 03, 2017

How should you store the value of 5%? Or $10 in expenses? These seemingly trivial little questions can cause development pain and allow…

Educational Resources for Consultants, Solopreneurs, and Freelancers

January 30, 2017

NOTE: Very much in progress but published by request as its still moderately useful. I’ve organized this primarily by media type, but it…

What should I use? Answers for new freelancers and independent consultants

October 15, 2016

This is a compendium of my answers to common questions about setting up a business as an independent consultant or freelancer. Many of…

Single value unpacking in Python

September 02, 2016

Just a short description of a non-surprising but non-obvious feature of tuple unpacking in Python (2.7, not even the cool new unpacking in…

DjangoCon 2016

July 20, 2016

Quick links: I ❤️ PEP8 shirts are super rad and you can have one too! . Discount codes for t-shirts and stickers good for this week are…

Managing configuration with envdir, remotely

December 18, 2015

envdir runs another program with environment modified according to files in a specified directory. envdir is a component of daemontools…

Python refactoring: comprehensions for great good

December 14, 2015

When digging into a codebase to either for the expressed purpose of cleaning it up or starting to work on features or bug fixes, one of the…

When the numbers don't make sense: Google Analytics tracking issues

December 08, 2015

While most of my work with my clients is related to building or fixing software, I often find myself helping them solve other related…

Basic Haskell: an examination of the todo list

October 11, 2015

The prolific Gabriel Gonzalez wrote a post last week about basic Haskell examples . Regarding the state of example Haskell code, often…

Git commits for collaboration

August 27, 2015

This post is a note to self and an explanation for present and future team members and collaborators. YMMV. The goal is twofold: to ensure a…

Migrating assets to Django Filer

August 13, 2015

When you want to add image support to your Django app, like allowing content editors to upload images, how do you do that? Probably by using…

Featured items and content rivers with Django CMS

June 01, 2015

With probably every web site and application, we have situations where we have lists of items, like articles or messages. These items have…

Waking Sleeping Beauty

May 20, 2015

Enjoying some cookies with my wife and a colleague of hers a few weeks back, I was presented with a puzzle that he had taught in a class on…

Requirements and specifications: confusing the why, the how, and the what

April 08, 2015

It starts innocently enough: a few mockups, some user flows, a form that everyone loves, an application born of high quality design - a…

Automated linting with flake8 and pre-commit hooks

March 27, 2015

Clean code does not make code good, but it certainly makes writing good code a lot easier. And it’s far easier to read clean code, easier to…

PyTennesee 2015

February 15, 2015

I came, I saw, I spoke. A quick hit of the talk highlights. Building Better API Clients My own talk was on the topic of designing and…

Deploying static sites to S3 with Circle CI

January 23, 2015

The specifics here are illustrated using a Jekyll site, but it should be trivial to substitute your static site generator of choice. A…

The portable developer

December 30, 2014

I mostly work from a home office. Also co-working spaces. And coffee shops, friends’ homes, occasionally hotels, airport terminals…

How to use Django's Proxy Models

December 14, 2014

Django’s proxy models are one of those features that I remember reading about and thinking, “oh, cool… I guess” and then moving along. From…

Mulitlingual Django Addendum

November 15, 2014

Django Addendum is a little library I wrote a couple years back to solve a recurring problem: making copy snippets on a web page editable…

Using devpi for local PyPI mirroring

October 31, 2014

PyPI never goes down, right? Well, even if it doesn’t, running a fresh build on a Python library - in say, multiple test environments - or…

Heroku's little helper script

October 04, 2014

In a standard single application Heroku deployment, the app name is usually implicit if your working directory is a Heroku app with your…

Dashboards are hard

August 27, 2014

This is what I saw today when I opened up our QuickBooks online dashboard: It’s supposed to be a quick snapshot of invoices. And it should…

Installing pylibmc on Heroku

July 30, 2014

is a memcached client for Python. It’s a requirement for adding caching with memcached to a Python application, like a Django project…

Introducing Ansible into Legacy Projects

June 28, 2014

When you start looking at tutorials and guides for a configuration management tool like Ansible, most of them show how to get started or…

Continuous Cross-browser Screenshots

April 10, 2014

Trying to check changes on multiple browsers and multiple devices is hard. In the old days shops kept old computers lying around to test…

Cleaning Django template tags

February 24, 2014

Django templates, which share some common syntax with Jinja2 templates and Liquid templates use curly brace delimiters to designate template…

Geocoding with Pygeocodio

February 17, 2014

In January 2014 a new bulk geocoding service landed with the public announcement of Geocod.io . I took a look at the service offering and…

Freeing Public City Data

November 25, 2013

The City of Richmond makes a lot of its data publicly accessible, I’m told, in an effort to encourge “civic hacking”. I’m not yet sure where…

Finding the Needle: Wellfire at DjangoCon 2013!

October 11, 2013

Wellfire was at DjangoCon 2013 in Chicago this year and it’s high time we reflected a bit about the conference and our experience there…

Finding the Needle: DjangoCon 2013 Links

September 03, 2013

So I gave a talk at DjangoCon US today, “Finding the Needle”, all about search and Django, including Haystack and ElasticSearch. Here are…

Invoicing clients: a guide for web developers

July 07, 2013

On the new Django Discussions forum someone raised a question about time tracking which led to a discussion about invoicing. I thought I’d…

Simple search managers: fat managers & skinny views

June 28, 2013

Not every search feature requires a third-party search system, like Haystack coupled with ElasticSearch . In fact a great many are served…

What are some glaring inefficiencies embedded in modern infrastructure?

May 29, 2012

You could provide several answers related to a reliance on individual automobiles (inefficient road use, urban sprawl), but I’d like to…

What is the best way to overcome inertia just before exercise?

May 26, 2012

Make your goal each time simply to start your routine. It’s easy to think about everything you have planned out, and then to think about how…

Why is enterprise software often so complicated?

May 26, 2012

Two primary reasons: the complexity of enterprise requirements and a sales-driven requirement to try to satisfy as many customers as…

Taleo is dreadful. Why is it so widely used? Don't they have any competition?

May 20, 2012

Taleo is enterprise software. With any enterprise software momentum is usually a good starting answer. Replacing not just the software but…

Disacquiring: The Delight of Relinquishing Things

May 12, 2012

I sold an old scientific calculator the other day for $30. A few months before I sold an old desk for $5. I felt the same rush, same…

What are some common criticisms of Sharepoint as a knowledge sharing tool?

May 07, 2012

In practice SharePoint tends to encourage information “stovepiping” and the accumulation of information in non-permeable form (i.e. big…

Getting started with Selenium testing in Django 1.4

April 26, 2012

Last Tuesday’s Django District meetup was a series of lightning talks focused on testing in Django. I presented on getting started with in…

Web Finance, Past and Future

November 27, 2011

Shortly after I started my first job, and started getting paychecks and managing actual expenses, I created my first personal finance…

What are the best ways to incentivize people to use "Enterprise 2.0" knowledge management / collaboration tools in an organizaton?

August 01, 2011

Bottom line up front: Show the benefits and make it easy . External incentives might work to get traction (e.g. some award or ‘badge’) but…

Why does U.S. society cling to the suburban model despite its inefficiency, unsustainability, and many social ills?

December 02, 2010

The reasons are momentum , government policy , and land availability . American society is invested in the infrastructure of suburbia…

© 1997-2018 Ben Lopatin: follow me on Twitter; fork me on GitHub; connect, sync, and circle back with me on LinkedIn.