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...
Tangled Webs of Django Applications
At Imaginary Landscape, we definitely enjoy leveraging the many open source applications that exist out in the wild. We also create some of our own open source applications, along with a few closed source applications that are either too customized for one particular customer, or for a number of other...
Django Template Tags
It seems like I frequently find myself needing to write template tags for the various projects I work on here at Imaginary Landscape. The most common reason is generally so that I can adhere to the ideas of the DRY principle. For instance, YaBa has the potential to craft a...
Django and Continuous Integration
There are a wide variety of reasons why we should worry about testing in our Django applications, obviously. However, as a former system administrator, I have some ideals that are absolutely engraved straight into my brain I think. The main idiom being: "Never do the same thing three times. Do...
Keep masking passwords, for now
I always find Jakob Nielsen's usability columns interesting. I rarely disagree with his mostly common sense approach, however I found myself at odds with a recent Alertbox column, entitled "Stop Password Masking." In a nutshell, he believes the common practice of displaying dots or asterisks when typing in a password...
The Importance of Daily Briefings
Even as a small company, we face our share of communication challenges. Not a week goes by without someone uttering, "we need to communicate better." Communication struggles cause a myriad of problems - project misdirection, irritations, management involvement. Production makes up the bulk of our staff - programmers, user interface...