Entries published in August 2006
So today I got to wade through the joyful experience of cancelling my account with a business which shall remain nameless (unless, of course, they didn’t actually cancel the account — in which case they shall be named and shamed and several other things as well).
The experience was less then pleasant both for me and the poor customer-service rep who had to take my call, so I’d like to suggest some general guidelines on how this could have gone better. If you want me to be a happy customer, even ...
The best of all worlds
Every once in a while, someone will complain on the Django users mailing list that they feel our ORM doesn’t offer all the features they need, and it’s true that there are a few exotic and/or advanced things that it can’t handle. Usually the standard people compare to is SQLAlchemy which can be, unfortunately, extremely complex to learn and use. A related — and inaccurate — complaint is that it’s possible to use Django with SQLAlchemy, but that you’d lose the admin app (you wouldn’t; using the admin while ...
A Web 2.0 service idea
One of these days, someone should start a socially-based translation service for blogs.
You see, it’s not uncommon, this being the World Wide Web, to get incoming links from articles written in languages you don’t necessarily speak; for example, my recent post about accessibility got attention from a German-language blog and, sadly, I don’t understand more than a few words of the language (I also got linked up by a French-language blog, but I can get by in French).
So a pretty cool service might work like this:
- You sign up, and list ...
Let’s talk about accessibility
The other day, Jeff posted some thoughts about accessibility which were, for the most part, well-received. Some people apparently didn’t get the message, though, and went after him in the comments, so he had to post a follow-up clarifying that, no, he’s not an evil corporate monster who hates handicapped people.
Jeff’s first post was somewhat kicked off by Roger Johansson’s post on Monday, which had comments that got so bad he had to close them for a while, then re-open them with a note:
Comments are open again. You are free ...
Trying something new
Well, hot damn!
A modest proposal
As a lifelong baseball fan somewhat dismayed with the currently-available coverage of the sport, I’d like to propose a change to the structure of the major leagues which might make things a bit more bearable, especially as we head into the waning days of the regular season: all it requires is adding a third league. I know this will be controversial, but bear with me.
In any given area of the country, your televised baseball viewing choices are generally limited to:
- The nearest major-league franchise. In my case, the Kansas City ...
Some long-overdue cleaning
It had gotten out of hand and out of control. It was impossible to deal with, and impossible to do without. It was eating more and more of my time every day, and finally I just had to kick it to the curb.
That’s right, I’m talking about my feed subscription list.
The new world order
It took about half an hour, but I’ve successfully pruned and reorganized my subscription list; where before the subscriptions pane in NNW Lite was a sprawling single list of pretty much everything I’ve read over the past ...
I’m going to predict this now
Assuming they’re both still on TV in 2008, Jon Stewart and Stephen Colbert will both run for President. In different parties.
Django tips: using properties on models and managers
While working on a little side project this week, I ran into a couple of very common use cases that often result in a lot of extra typing:
BooleanField, or an
choiceswhich will, logically, break up instances of the model into certain groups which need to be accessed often.
- Repeatedly wanting to calculate a value based on the values of several fields of a model.
Let’s look at how to handle these common cases, while reducing the extra typing and making them behave in an extremely ...
Quick note for pydelicious users
If, as I do, you use pydelicious to handle automatically posting links to del.icio.us, you’ll want to take note of the fact that the switch of the del.icio.us API‘s location, previously announced, has happened.
It doesn’t look like pydelicious has updated (and given the spamfest that is their Trac, I wonder if it’s being maintained), so in the meantime here’s the quick fix:
pydelicious.py, and change lines 91 and 94 to reflect the new API locations; line 91 should become
DWS_HOSTNAME = 'https://api.del ...
Let’s talk about frameworks, security edition
It’s been an exciting week, hasn’t it?
The Rails vulnerability touched off quite a firestorm of commentary on the security of web application frameworks (and, by extension, applications developed with them), so let’s bring back the frameworks series for one last hurrah and take a look at security.
What do we mean by “secure”?
This may sound like a strange question to ask, but it’s an important one. A common misconception is that an application is “secure” if it doesn’t have any “bugs”. Setting aside the fact that this just switches out one ...
Django tips: A simple AJAX example, part 2
Last time around we looked at how to write a simple view which processes a form and either returns errors or returns success, and then tweaked it slightly so that the same view could handle either a “regular” form submission (in which case it operates normally), or an
XMLHttpRequest (in which case it returns JSON).