Chicago Django/Python Blog - Imaginary Landscape

Twelve-Factor Renaissance

September 19, 2013 12:33 p.m.

It has been a week since our production team returned from the 2013 DjangoCon US. Though technically we didn't return since it was in Chicago where we are located! Nevertheless, it was, wholeheartedly, an uplifting and enlightening experience.

Russell Keith-Magee's keynote really demonstrated just how far the Django Project and its community have come. The focus on the Django trademark and the DSF's formalization of legal boundries is evidence of a growing maturity and market share. While Django does face some serious challenges in remaining competitive in an unrelentingly evolving ecosystem of Web technologies and techniques, Django ...

Read More


Updated 09/19/13 @ 12:33PM CDT by dlacewell

Bookmark and Share

Categories: Django Python


Imaginary hosts The Onion for a video shoot

August 30, 2013 2:19 p.m.

Earlier this week, The Onion arrived at the Imaginary office to film a short satirical segment for their website.  The segment is titled, "CEO Has Special Knack For Recognizing Great Ideas And Ruining Them" and is viewable on their site.

"It was a ton of fun," said Brian Moloney, Managing Partner at Imaginary Landscape.  "Someone from The Onion staff posted to the Chicago Python Users Group list on Monday asking for some office space where they could film and I jumped on the chance."

The entire segment was filmed in the Imaginary office on Wednesday and featured several staff members ...

Read More


Updated 08/30/13 @ 02:19PM CDT by brian

Bookmark and Share

Categories: Python


Simple Job Queues with django_rq

June 13, 2013 4:04 p.m.

Simple Job Queues with django_rq

The de facto solution for job queues with background workers is Celery and RabbitMQ, but it is not the right fit for every project. RQ is an alternative to Celery, and while not as featureful, does provide a lightweight solution that makes it easy to set up and use. RQ is written in Python and uses Redis as its backend for establishing and maintaining the job queue. There is a great package that provides RQ integration into your Django project, Django-RQ.

Installing django-rq is simple!

pip install django-rq

Configuration of django-rq is simple!

Add ‘django-rq ...

Read More


Updated 06/13/13 @ 04:04PM CDT by djohnson

Bookmark and Share

Categories: Django Python


Upgrades: Django Old to Django New

April 09, 2013 9:51 a.m.

Upgrades: Making the Jump from Django Old to Django New


Sometimes we are faced with the challenge of upgrading old Django-based projects. The task can be daunting, as a lot has happened in Django within the last few years. Since Django 1.1.1, Django has been through 15 micro releases and 4 minor releases. The term "minor" seems deceptive as a lot of changes occur between Django 1.x and 1.[x+1]. The ideal situation would be to incrementally keep one's Django application up to date as new releases are issued; that's not always possible for ...

Read More


Updated 04/09/13 @ 09:51AM CDT by jjasinski

Bookmark and Share

Categories: Django Python

Tags: django latest python upgrade


Testing and Django

November 21, 2012 12:56 p.m.

Recently I have just enjoyed my first anniversary working at Imaginary. It has been a pleasure. Working in such a professional environment, with a great team of collegues, using Django and Python to solve problems I've never encountered before is, I have to say, a great experience to have as a day job.

More recently, I experienced another first. At the last Chicago Djangonauts meeting, which we host in our office, I gave my first Python/Django talk. I spoke regarding unit-testing your code in general, but, also how unit-testing works within the context of web-applications.

The talk went ...

Read More


Updated 11/21/12 @ 12:56PM CST by dlacewell

Bookmark and Share

Categories: Django Python


Provisioning, Deployments and Testing - Oh my!

July 05, 2012 2:49 p.m.

Here at Imaginary Landscape, we have an initative to explore solutions to some of our on-going deployment meta-problems. Those problems include things like standardizing our Django project structures and the hosting environments in which we host them. Another challenge that we have been considering is testing our sites locally.

After some initial research for existing solutions to these problems, some useful-looking candidates appeared. Specifically for provisioning and deployment, packages like Puppet and Chef revealed themselves as strong utilities that are currently gaining popularity and already have large, established communities. These packages provide a Domain Specific Language which is used to ...

Read More


Updated 07/05/12 @ 02:49PM CDT by dlacewell

Bookmark and Share

Categories: Python


Testing As a Different Django User

June 25, 2012 4:13 p.m.

All types of Django auth do basically the same thing: They associate a browser session ID with a Django user if the user logs-in successfully.  I found a neat technique to bypass a Django login by modifying with a Django session, which can be useful for testing purposes.

Why is this trick this useful?  Sometimes it's difficult to replicate a login that uses a complicated authentication system (i.e. Facebook auth or OpenID auth) when developing on a local desktop.  I've sometimes found myself wanting to browse a local development copy of a site from the perspective of ...

Read More


Updated 06/25/12 @ 04:13PM CDT by jjasinski

Bookmark and Share

Categories: Django Python


Managing multiple SSH identities

April 30, 2012 3:51 p.m.

Here at Imaginary we maintain our own git repositories internally with the help of the invaluable utility, Gitolite. This works well for us. However, in some cases, our clients have their own repositories that we must interact with.

The problem arises when the client repositories reside on a third-party service, usually Github. As you likely know, Github uses ssh public-key authentication and before you can clone or push to repositories you need to register your public-key with the site.

The situation typically involves the client adding our company Github account as a collaborator on one of their repositories. If I ...

Read More


Updated 04/30/12 @ 03:51PM CDT by dlacewell

Bookmark and Share

Categories: Python


Sewing Success with Fabric

December 28, 2011 6:27 p.m.

I wanted to share a quick practical example of how Fabric, can make your development life easier. If you're unfamiliar with Fabric I recommend checking out its tutorial which describes Fabric thusly;

Fabric is a Python (2.5 or higher) library and command-line tool for streamlining

the use of SSH for 
application deployment or systems administration tasks.

The tutorial is a great resource as Fabric does not have a dense API. In fact, it has a childishly simple API. Today, I found myself using it to simplify a process I had been repeatedly performing manually. A client site of ...

Read More


Updated 12/28/11 @ 06:27PM CST by dlacewell

Bookmark and Share

Categories: Django Python

Tags: deployment fabric python


Geo Django Quickstart

September 21, 2011 12:37 p.m.

GeoDjango is a very powerful tool for storing and manipulating geographic data using the Django ORM.  It provides a simple API to determine distances between two points on a map, find areas of polygons, locate the points within a polygon, and much more.  

GeoDjango is fairly well documented on the Django website.  My aim with this walkthrough is to reduce the Django documentation to a simple set of steps that will quickly get you started experimenting with GeoDjango.  As a result, some of the initial steps are summarized from the Django site with only slight modifications to fit the circumstances ...

Read More


Updated 09/21/11 @ 12:37PM CDT by jjasinski

Bookmark and Share

Categories: Django Python

Tags: django geo geographic geospatial latitude longitude python


(877) 275-9144 Toll Free | M-F:9-5

Imaginary Landscape, LLC 5121 North Ravenswood Avenue Chicago, Illinois 60640
The domain chicagodjango.com is used with the permission of the Django Software Foundation. Imaginary Landscape LLC is not an official representative of the Django Software Foundation or the Django open source software project.