Episode IV: A New Hope
The easiest way to solve a problem is not to have it in the first place
Tao of Hugo
I've written a lot in the past about trying to get Docker to work within an unstable developer's environment: tl;dr the dynamic allocation of IP addresses to containers makes it bloody hard if you need to start / stop containers . . .
Connect your Django project with the new BaseCRM API with our latest project.
Base CRM is a Customer Relationship Management system that integrates with Google Apps. They recently released the second version of their API and we've started integrating our codebase with it, in order to automate the creation of Contacts and Deals.
We created a PyPI package, django_basecrm that anyone can use to integrate . . .
Front-end build systems can easily get out of hand - but you can control them with docker
Like many web companies we no longer write HTML, CSS and JS and simply push them to our live servers. We have a front-end build 'system', which manages all of the tasks required to convert our source content to our static output. This includes CSS pre-processing, CSS and JS minification and concatenation, something clever to do with . . .
And why we're dropping Haystack in favour of the native ES library
ElasticSearch is a powerful, easy-to-install, easy-to-use, low config, clustered search engine based on Lucene, and is a popular choice for all sorts of applications.
In the Django world, Haystack seems to be the de-facto way to implement search outside the ORM - and it certainly seems the fastest to implement.
There are a . . .
How to avoid being caught out by a missing Migration
For managing database schemas, as great and well-loved as South was, Django's new migrations framework is nicer, particularly thanks to better support for multi-developer, multi-branch projects like YJ.
However, the greater attention now paid to a model's changes has a potential gotcha, especially in a multi-dev environment: . . .
Today we are announcing . . .
Bitwise logic can be used to store multiple boolean values in a single integer value - which is handy for storing the state of combinations of on/off switches.
Bitwise arithmetic is easy, useful and ubiquitous among programming languages, and yet surprisingly uncommon in the wild, in Python. (It may be due to the lack of enum support, as having the ability to store multiple enum values in a single field is quite common in those that do).
We use bitwise logic for managing deployment options, . . .