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...
Imaginary Landscape recognized by Django Software Foundation
Imaginary Landscape was highlighted in a recent blog post as one of only two Corporate Members of the Django Software Foundation. The post appears on the Django Project website and was written by DSF President Russell Keith-Magee.
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...
Digital estate planning: what happens to your social media accounts when you die?
With the proliferation of social media sites, multiple email accounts, logins at various financial institution websites, multiple computers and smart phones, the amount of personal information stored in the “cloud” continues to grow. So, what happens when you die? How can you protect your digital footprint and make it easy...
Django Form Snippets
Django forms are very convenient tools for Django development, but sometimes I find myself wrangling with them to get them to do what I want them to do. I’ve compiled a few simple form examples that I find useful for various form-related tasks. Say you have a model that looks...
Top 5 Favorite Django Modules
Of all the Django modules that are out there, several stand out as ones that I keep coming back to. These are some of my favorites: Django Debug Toolbar Django Debug Toolbar is an extremely useful Django application for debugging a site from “Django’s perspective.” It should only be used...
Our Django Server Setup: How and Why
One of the most important decisions you make in the process of building a new Django application is what software stack you use to serve it to the world. You're not lacking for options: people run Django on Apache, lighty, nginx, and Cherokee. You also need to decide how to...
Magic Links
The first time I used the new link attachment tool found on sites like Facebook, I thought I had experienced something magical. After pasting an external webpage URL into my wall-post form, an image, page title, and page description of the linked webpage appeared beneath my post as though out...
Thoughts on our sponsorship of PyCon
We have just completed our third year as a sponsor of PyCon and I thought I'd take a few minutes to reflect on our use of Python as well as the conference itself. Pretty much everyone I spoke to was impressed that we've been programming Web sites in Python since...
Django Settings in the Database
There's been a healthy amount of discussion about how applications should handle settings. As the creator of Mingus pointed out, it's a weird situation. You want anyone to be able to use your application with as little fuss as possible, but at the same time you just need to have...
Django Multiple Page Forms
I recently started working on another new project here at Imaginary Landscape, and this one looked rather enticing as it threw some stuff my way that I haven't had a chance to play with much recently. First on that chopping block was a multi-page registration form application. Immediately I remembered...
Permission Based File Serving
One issue I've run into a couple times while working with Django is the need to serve files to users based on permissions. The first situation occurred with a store we were building that would allow for electronic versions of books to be sold. These books would typically be distributed...