Skip to Content

Technology Blog

Technology Blog

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

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

Form security, under the hood

I recently wrote a feature article for eHealthcare Strategy & Trends magazine entitled, "How secure are your Web-based forms?" The article explored what happens after you press the submit button. It turns out that lots of things can happen - many of them bad. To clarify, "bad" is the wrong...

New study compares short and long "contact us" form

I've been experimenting with the contact form on our Web site. It is an important - perhaps the most important - aspect of our Web presence. For all the blogging and news releasing and testimonials and marketing, our primary method of gathering online feedback is the contact form. We have...