Sunday, December 3rd, 2017
Monday, July 6th, 2009
The front page of today’s Guardian ran with a story on Binyam Mohamed and his fight to stop evidence of his torture from being destroyed:
The photograph will be destroyed within 30 days of his case being dismissed by the American courts — a decision on which is due to be taken by a judge imminently, Clive Stafford Smith, Mohamed’s British lawyer and director of Reprieve, the legal charity, said today.
We don’t normally do back-end work at Clearleft. That’s a conscious decision; we don’t want to tie ourselves to any particular server-side language. Usually we partner up with server-side developers; either those of the client or independent agencies like New Bamboo. In the case of Reprieve, the budget didn’t allow for that option. We were faced with three possibilities:
- Write a CMS from scratch, probably using PHP and MySQL—the technologies I’m most comfortable with.
- Take an off-the-shelf platform like WordPress or Expression Engine and twist it to make it fit the needs of the client.
- Create a CMS using Django which would give us an admin interface for free.
I had conflicting emotions about this. On the one hand, I was pleased to have the chance to learn a new technology. On the other hand, I was absolutely terrified that I would be completely out of my depth.
I had seen Simon giving a talk on Django just a few weeks previously. I stuck my hand up during the Q and A to ask
Is it possible to learn Django without first learning Python? Simon said that a year ago, he would have said
No. But given the work of fellow designers like Jeff and Bryan, the answer isn’t so clear cut. Maybe Django could be a really good introduction to Python.
By far the hardest part of building a Django website was the initial set-up. Sure, installing Django was pretty straightforward …once you’ve made sure you’ve installed the right image libraries, the right database bindings, blah, blah, blah. I can deal with programming challenges but I have no desire to become a sysadmin. Setting up my local dev environment on my Mac was a hair-tearing experience. Setting up the live environment, even on a Django-friendly host like WebFaction, was almost as frustrating …no thanks to the worst. screencast. EVER.
But I persevered, I obediently followed the tutorial, and I discovered all the things that make Django such a powerful framework; the excellent separation of concerns, the superb templating system, the lack of so-called front-end “helpers” that cripple other server-side frameworks. I think Gareth was really onto something when he noticed the way that the web standards world appears to be choosing Django.
In the end, Django proved to be absolutely the right choice for Reprieve. It provided enough flexibility for me to build a site tailored to the specific needs of the client while at the same time, giving me plenty of pre-built tools like RSS and, crucially, the admin interface. The client is extremely happy with the power that the admin interface offers.
For my part, it was an honour to work on a project with this mission statement:
We investigate, we litigate and we educate, working on the frontline, providing legal support to prisoners unable to pay for it themselves. We promote the rule of law around the world, and secure each person’s right to a fair trial. And in doing so, we save lives.
Thursday, July 2nd, 2009
Steven Pemberton, one of my favourite long-term thinkers, talks about programming, markup and XForms.
Friday, June 5th, 2009
A python script from Dan Benjamin to help you do your bit in battling the datapocalypse.
Wednesday, November 19th, 2008
There is now a dedicated Monty Python channel on YouTube, all legit like. Hurrah!
Saturday, April 5th, 2008
Gareth tries to figure out why Django seems to strike a chord with standardistas. It may that the separation of concerns resonates with the methodology of progressive enhancement. Some good comments follow
Monday, August 20th, 2007
James has some quick'n'dirty Python code for extracting relationship data from social networking sites.