Skip to Content

Technology Blog

Technology Blog

The Onion films at the Imaginary office

This week, The Onion arrived at the Imaginary Landscape office to film a short segment for their website, "CEO Has Special Knack For Recognizing Great Ideas and Ruining Them."  Featured in the film was Imaginary Landscape's own Jenn Sedik (Tara Callies), Dustin Lacewell (Jason Rutherford) and Joe Jasinski (Tim Williams)....

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...

Remember your robots.txt

Because the development site is also on the web, it needs its own web address (e.g. dev.yourcompany.com).  There are many adjustments needed in the configuration file to accommodate the development URL, especially when testing third-party connections.  For example, ecommerce gateways don't like when credit card information is coming from a...

Upgrades: 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...

Django Internationalization

A few weeks ago I gave a talk at the Chicago Djangonauts meeting on Django Internationalization. Apparently this isn't a task that a lot of people need to do frequently, as the crowd was not too familiar with the content of the talk. Luckily, internationalization isn't too complicated a concept and...

Better UI prototyping with a Django twist

As part of our new appreciation for start-up organizations and their love of Django, we thought we’d share how we approach the concept of rapid UI prototyping. Early stage start-up companies often need a proof of concept to help convey the vision of the new business model. Yes, there is...

Rackspace Temporary URLs with django-cumulus

We love Rackspace at Imaginary Landscape.  Recently, we needed to store a number of large files securely, and for logistical reasons, we chose to store them via Rackspace’s Cloud Files.  Rackspace provides the ability to create temporary URLs for files stored via their service.  This allows temporary access to privately...

Testing and Django

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 smoothly and it seemed to be well recieved. Python's standard library...

Two talks accepted by DjangoCon

I'm happy to report that the DjangoCon schedule has been announced and we have two presentations that made the cut. Joe Jasinski will be making the solo presentation, "So You Want to Make a Payment: Comparing and contrasting Django payment options" which will introduce and compare some common payment gateway options,...

Multiple File Uploads in Django

Here is a quick example of how to add a multiple file form to your Django application.  Most multiple-upload front-ends were created without Django in mind, so interfacing with tools is not always straightforward as it might be with a different language.  Thankfully, there are a couple of Django libraries...

Testing As a Different Django User

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...

Managing multiple SSH identities

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,...

Where HIPAA and your website collide

As a Web developer with a specialty in creating and maintaining hospital websites, it is important that we fully understand where these things intersect with HIPAA.  In fact, any agency that is charged with the creation, care and maintenance of a hospital website must fully understand these things. One of...

SOPA and PIPA. What's all the fuss?

People feel strongly about these bills and are jumping on any bully pulpit to instill fear in the hearts of the non-supporters (or supporters, depending on the pulpit).  As with most impassioned controversy, most of the coverage is limited to the polar extremes.  Each side focusing on the most liberal...

Sewing Success with Fabric

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...

Djangonauts and GeoDjango

Many thanks to Joe Jasinski and Eric van Zanten for their presentations on GeoDjango at November's Chicago Djangonauts meetup. Joe kicked off the evening with his presentation, Introduction to GeoDjango.  The presentation was based on his recent blog post GeoDjango Quickstart.  Joe has also provided his presentation slides. After a...

Geo Django Quickstart

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...

Django Admin Snippets

At its minimum, the Django Admin is an effective tool for viewing and manipulating data within a Django database.  At its max, it can be a robust application allowing clients and administrators to better manage their web applications.   This article aims to highlight some of the admin customizations that...

Where Django programming and Google Analytics meet

We just recently discovered an issue where a programming decision affected the ease (or lack thereof) of establishing goal funnels in Google Analytics.  What we also discovered was that it was completely avoidable with a little better communicatioin between our Django programming staff and our analytics staff.  As is typical...

Chicago Djangonauts, reanimated

Having scheduled the first meeting of the reanimated Chicago Djangonauts, I didn't know what to expect.  There were a number of RSVPs on Facebook and a couple through the chicagodjango.com site, but you never know. We ordered three cases of beer from our favorite brewer and 13 pizzas from our...

PyCon, Django in Chicago and general musings

For the fourth year in a row, we have just completed our sponsorship of PyCon.  Each time I return to the office after the conference ends, I am filled with a particular energy.  This year that energy is more pronounced. In many ways, our day-to-day work is done in relative...

Security for Mobile Applications

As people put more faith in mobile devices, the impact of security breaches can be all the more devastating.  From the perspective of a mobile Web application developer, mobile devices can be an additional entry point into an application.  Creating mobile-friendly Web applications with security as a top priority is...

New Study: 93% of Passwords Protecting Medical Records Cracked

The study was conducted by researchers at Children's Hospital of Eastern Ontario Research Institute and the University of Ottawa in Ottawa, Ontario.  The test was conducted using files provided by volunteer stakeholders in 15 clinical trials.  And, although the samples were not representative of all clinical trials in Canada, they...