Latest Entries

A Case Against the Separation of Support and Development

Many large companies have made the decision to separate the support of software from its development - forming separate teams to focus entirely on one activity. The reasons behind this decision make a lot of sense on the surface. Developers are free to focus entirely on their projects unhindered by the distractions that day to day issues cause. Support teams can dedicate themselves to quality interactions and production incident resolution. Developers don't have to deal with frustrated users and support engineers don't have to mess with code. Unfortunately, in practice this model often leads to more problems than it solves. Communication Breakdown "Agile" is increasingly becoming a common buzzword in enterprise IT. Many large business are trying to implement agile practices in their development teams in order to become more responsive to the needs of their users. One of the core ideas of agile development is frequent and effective communication ...

(click to read more)

DRY Ajax Comments

Back in February, I posted an entry about adding Ajax functionality to the built-in comments app. I always intended to go back and improve this method, but didn't get the chance until now. Yesterday I decided to take another look, and I found a much better way of achieving this functionality without violating the DRY principal like I did originally. I've posted the code on Bitbucket as django-ajaxcomments, and I'm releasing it under the same BSD license that Django uses. The Problem With Copy & Paste In my original post, I copied the django.contrib.comments.views.comments.post_comment view and then modified certain pieces of it to return JSON instead so that the jQuery callback function could interpret the results. The problem with this is that the post_comment view has changed since then, and it will continue to change. If I continued to maintain the project as it was, I would have to watch ...

(click to read more) 14 comments so far

Switching from Linux to Mac

Embracing Minimalism Over the course of the last year, I've slowly gone through a major shift in my philosophy about technology and about life in general. I've begun to see the great value of minimalism, and as a result I've begun to strive for elegant simplicity. For a long time, I've almost obsessively tinkered with my computer setup, both software and hardware. I have been a long time Linux user, and as soon as I got a stable setup I'd always be eager to update to the latest alpha or daily build so that I could get things working again. With web development, I would often start a project and get excited about it, and then start another one at the same time, and then another. In my personal life, I would get interested in something and I would pursue it 110% - spending hours perfecting guitar solos, writing fiction, ...

(click to read more) 1 comment so far

Easily Working With Pinax on Multiple Machines

I've been working on a project using the excellent Pinax platform, and I wanted to share some of the tricks I use to make it easier to work with. You can find out more about Pinax by visiting their site. I'm working with their recent 0.7beta3 release, so if you're still on an earlier version things may be a bit different. Virtualenv is vital when working with Pinax, and I also highly recommend virtualenvwrapper. Virtualenvwrapper adds the workon, mkvirtualenv, and rmvirtualenv commands which add additional ease to working with virtual Python environments. Getting Started To begin, I create a directory that will serve as my project home. I usually name the directory based on the target domain name. We'll call this directory myproject.com. Within the myproject.com directory, I create a subdirectory called scripts. I like to keep all of my environment management scripts in their own directory, similar to how ...

(click to read more) 5 comments so far

LVM-Based Virtualization with KVM and Jaunty

A month ago, I had three tower PCs running in my home office 24x7 - a desktop PC, a web server, and a home media server. Routinely high electric bills prompted me to make the decision to combine the two servers into one, but I wanted to do everything possible to isolate the media server activity from the web server. I decided on virtualization to accomplish this, allowing the web and media servers to run as separate virtual machines on the same hardware. I liked the idea of virtualization, because it allowed me to install the bulky multimedia conversion packages that I needed for my media server, while keeping my web server streamlined and focused. Additionally, if I switch hardware later on, I can simply set up the core virtualization system and then copy my VMs over without having to reinstall and reconfigure my entire stack for both servrs. After ...

(click to read more) 9 comments so far

Installing Adobe Air on Ubuntu Jaunty 64-bit

I just finished installing Adobe Air on my Ubuntu Linux desktop running a fresh install of the Jaunty 64-bit beta. It was a lot more straightforward than the instructions that Adobe provided here. I found that in my installation of Jaunty, all of the libs that that have you manually download and extract in that article were already present on my machine. Before we go on, I should note that I had the ubuntu-restricted-extras package installed before I began installing Adobe Air. That package includes the Flash player, but I'm not 100% sure it is needed before installing Air. UPDATE: According to Antitezo below, the lib32nss-mdns package is needed in order for Air apps to access the internet. I didn't experience this issue because I had unknowingly already picked up this package at some point before going through this process. First, I went to the http://get.adobe.com/air/ site, and it automatically ...

(click to read more) 26 comments so far