-
Closing out November published on Nov 30, 2007
It’s been a long month. It’s been a very long month. I’ve had my ups and downs, but over all, it’s been a good time. I stuck it out to the end, and I’m proud of that.
With the sprint this weekend, I’ll probably be updating a few times with smaller posts, indicating the progress I’m making. But after that, I’ll be going back to fewer posts with higher quality. This has …
-
Django Projects published on Nov 29, 2007
A while back, Jacob posted a list of Django projects he found outstanding. I’ve now had some time to work with several projects myself, and I’d like to take the opportunity to recommend a few of them.
Coltrane
It might not look like much from the “Coming soon…” note on the front page, but Coltrane is a nicely-done blog app, containing the most necessary features. It’s not a full-on WordPress, but it really doesn’t need to …
-
Preparing for the Sprint published on Nov 28, 2007
The sprint’s coming up fast now, and I’m finding myself a bit overwhelmed with everything I need to do before I go. What it amounts to, unfortunately, is that I won’t be able to have my own, Django-powered blog up and running before I leave for Kansas tomorrow. It’s definitely unfortunate, given how close I am, but I just can’t spare enough time to finish it off.
I’ve spent the last couple days splitting …
-
Upcoming Sprint published on Nov 27, 2007
I’m finally able to make a sprint this time. I missed the last one (though I did have my own shortly beforehand), but I’m all set to make this one, live and in Lawrence. I’m incredibly excited to be meeting everybody in person, I expect it’ll be a great time. It’s especially great that I’m one of those weird people who love nothing more than coding in my spare time.
I’ve posted about …
-
Making friends and influencing people published on Nov 26, 2007
I don’t have any links to back this up, but I remember reading a few different articles suggesting that the “power” or influence of a blog is primarily based on its readership. This certainly seems to fit with the many reader-stats tools that are available these days, but I’ve never really subscribed to that view. While I do agree that a blog is nothing without its readers, I don’t believe readership alone is a good indicator of …
-
Month-to-date published on Nov 25, 2007
Most of you should know that I’m participating in National Blog Posting Month, with the goal of posting at least once every day for the entire month of November. So far, I’ve held up much better than I thought I would, but it’s taken its toll on me.
My articles haven’t exactly been up to the level I’d like them to be, but it’s good to get the information out there. I also haven …
-
Python Descriptors, Part 2 of 2 published on Nov 24, 2007
Yesterday, I gave a basic overview of descriptors and what they can do, including a simple example to demonstrate one in action. That’s all well and good, but today I’ll explain how this can be genuinely useful in your apps, particularly when used in models.
Storing data with a descriptor
Yesterday’s example generated a new value each time it was accessed, which is really only useful in a few situations. More often, you’ll need to still …
-
Python Descriptors, Part 1 of 2 published on Nov 23, 2007
I rather enjoyed writing about a relatively underused feature yesterday, so today is more of the same. Of course, continuing with a focus on Django, today’s Python feature is also commonly used throughout a number of Django’s internals: descriptors. Python’s documentation on descriptors is rather sparse, though there’s a great writeup on it already. I won’t try to reinvent the wheel in its entirety here, I’ll just write up some basic details and how …
-
Dynamic Functions published on Nov 22, 2007
Python supports a neat little trick that I had never heard of before I delved into the Django source. I doubt its usage is really all that rare, but I started Python because of Django, so that was naturally my first exposure to it. In a nutshell, Python allows you to define and call functions using any number of arguments, and it does in a very clear, concise way. Unfortunately, if you’re not familiar, it only looks concise. It …
-
Except the Unexpected published on Nov 21, 2007
No, that title isn’t a typo. Predictably, yesterday’s post drew out an opposing view, and I’m very glad for it. While I haven’t changed my mind on the subject, Cedric did raises some reasonable points that I neglected in my original post. Maybe it’s just that I’m growing tired of posting every day, but I didn’t adequately explain my views, and for that I apologize. Only for not explaining, though, not for the …
-
Returning None is Evil published on Nov 20, 2007
Yes, that headline was written for dramatic effect. No, I don’t think that
Noneitself is evil. Yes, I realize there are many cases whereNoneis an appropriate return value. No, this post isn’t about those cases.This is mostly a rant about Java, but the pitfall described below is definitely a potential problem in Python. I hope none of my fellow Djangonauts have fallen into this trap, but hopefully this post will help make sure it …
-
Understanding Middleware published on Nov 19, 2007
While it’s not news, I believe the fact that Django supports custom middleware deserves a good bit of attention. Unfortunately, I’m starting this post too late to do it real justice, but I’ll cover the protocol in a basic overview. The main point I want to cover is what types of things can be done with middleware. I won’t pretend to list everything that can be done, but just a few ideas that should give you …
-
Working on Visual Design published on Nov 18, 2007
It’s no secret that I’ve been very involved with Django, which requires a lot of design with regard to programming, but it doesn’t really deal with the visual aspect. Instead, that’s (rightfully!) left to graphic designers. Unfortunately, this only works at its best when you have access to a designer. When building my own site, I’m constantly reminded that I don’t have design skills, nor can I hire a designer. In fact, that’s …
-
Fixing bugs or adding features? published on Nov 17, 2007
No, I’m not going to actually answer that question, as I expect it to be different for each person. This post is more about what I go through when trying to answer it for myself. With the upcoming sprint, it’s especially important to answer, at least it is for me.
I’ve generally been more concerned with adding new features, both for Django itself and for my own applications. It’s just something that I’ve always found …
-
Data Visualization in Django: A dream? published on Nov 16, 2007
Continiung a bit in the vein of yesterday’s post, one thing I go keep wishing I could do is easily generate graphs and charts of Django-managed data. I have so much other stuff going on that I can’t work on it now, but I’d love to do it sometime. I know things like matplotlib are already out there, and I’m not hoping to reinvent them.
Instead, I’d like to built a Django-friendly interface to them …
-
Blog stats published on Nov 15, 2007
I was looking at my Google Analytics data today, and I noticed a few surprising things.
First, my series on declarative syntax did well, but not remarkably so. Still, it seemed to maintain enough readers day after day, so I’ll definitely continue it at some point soon, and do more like it when I can.
I also apparently can manage to write longer posts if I want. The average time spent on the site for the month of October …
-
Slight update on django-modular published on Nov 14, 2007
I don’t have much to report tonight, but there’s been so much interest more that I thought there would be, so I’m trying to keep people in the loop.
In the last day, I haven’t added much code, and what little I have added isn’t online yet. I’m not sure I’ll get it done by the end of this week after all, but I am still working on it very actively.
As for …
-
What I mean by “modular” published on Nov 13, 2007
I’m putting my series on hold for a little while, as there’s been some recent chatter about a project I’ve been working on, django-modular, and I thought I’d try to write it up properly for the first time.
It’s a very cool app, and I think it could do wonders for Django-powered sites of all shapes and sizes (as long as app developers get on-board), but it doesn’t do anybody any good if nobody …
-
Using Declarative Syntax, Part 3 published on Nov 12, 2007
Continuing where we left off yesterday, it’s time for some more sugary syntactic goodness.
We now have a
Widgetclass to work with, but the API specifies a number of preferences that widgets can utilize, as necessary. These are not only an important part of the widget’s design; they’re probably the most interesting (and most complicated) part of our framework’s declarative syntax. As such, this post will be dedicated entirely to getting them to work in … -
Using Declarative Syntax, Part 2 published on Nov 11, 2007
Today, continuing the series, get ready for some code. The first thing we’ll need to do is lay out some files to work with.
I previously described the syntax in three separate parts:
- A single module namespace to import
- A base class to specify in subclases
- A set of attribute classes to instantiate
Thankfully, those can map very nicely to three different files. These files will all be placed in a
widgetsdirectory somewhere on thePYTHONPATH, representing the … -
Using Declarative Syntax, Part 1 published on Nov 10, 2007
A while back, I wrote a bit about my work on django-modular, and one of the comments pointed me to the Netvibes UWA. While that wasn’t the point of django-modular, it still looked like it would be reasonably easy to support in a way that would integrate well with a Django app.
One of the defining characteristics of Django is its declarative syntax, and I knew I wanted to incorporate it into this as well. The API seemed well-suited …
-
A Django Analogy published on Nov 9, 2007
I was thinking recently about how I look at Django and my place in it, and I found a certain analogy to be very apt: it’s a lot like a kitchen. Bear with me here.
Most people don’t go to the kitchen just to stand there. They have a purpose: to make a meal. The kitchen doesn’t provide the meal, it just provides most of the things you need in order to make the meal. There’s …
-
Ohloh’s KudoRank published on Nov 8, 2007
Jonathan Buchanan recently joined Ohloh and gave me a Kudo and I noticed something fascinating: my KudoRank jumped about 88% all at once. Needless to say, that struck me as a little … odd.
So I checked their documentation, and checked it against the situation. Their rules line up as follows:
The more Kudos you receive, the higher your KudoRank becomes.
This was my first Kudo, so clearly this didn’t come into play.
Your influence increases as your KudoRank improves …
-
Customizing filenames without patching Django published on Nov 7, 2007
Recently, I’ve noticed a good bit of chatter on the mailing lists about how to override the filename of an uploaded file before saving it. Django currently provides options for customizing the location based on upload time, but nothing else. Often, projects find the need to store attachments in directories according to details of the object or a related object. I’m doing a good bit of work on FileField at the moment, but that’s still a way …
-
Ohloh published on Nov 6, 2007
I discovered Ohloh a while back, and I must say that I find the idea very intriguing. The notion of tracking who uses a particular framework is fine and dandy, but it’s great to be able to track real statistics about code size over time, commits over time, even approximately how much it would cost to be developed commercially.
As time goes on, and more people and proejcts get added to their database, I think they’ll find they …
-
Local Branches published on Nov 5, 2007
Okay, I officially despise National Blog Posting Month. It’s neat to try to think about how to populate the blog every day, and I really appreciate all the extra thought it’s made me put into it. But I just don’t think I can reasonably manage to do it. Here it is, five days in, and I’ve already resorted to a minor status update just to get my post in for the day. Sorry folks, you’re …
-
Django in JavaScript published on Nov 4, 2007
Well, this post isn’t very substantial, because I don’t really have much code to back up my plans in this area, but it’s time for me to post again on what I’ve worked out for using Django with Google Gears. It’s turning out to be a bit trickier than I thought, bu I think it’s still something worth working toward.
A large part of Django will have to be rewritten in JavaScript, but I …
-
Storing passages of time published on Nov 3, 2007
One thing I need for VGMix is the ability to store the length of a song in a Django model. There are date and time features, but nothing for just a length of time, unrelated to any particular point in time. I did a bit of searching and found a ticket to add an IntervalField to Django, but no patches were provided.
So naturally, I decided to investigate and write a patch for it. The result is attached to that …
-
The future of dbsettings published on Nov 2, 2007
I took a look at Satchmo recently, and I noticed that its new configuration system (now in Satchmo 0.6) looked vaguely familiar. I had a brief conversation with Bruce about it, and it turns out he forked dbsettings! And I mean that in a good way.
As it turns out, they had issues with their previous configuration system (a mess of settings files, it looks like), and dbsettings looked similar to something they could use. Of course, they had …
-
Django Projects published on Nov 1, 2007
Thanks, James, for giving me a heads-up about National Blog Posting Month. It’s unfortunate that I heard about it with just one hour left on November 1, but I’ll give it a shot.
In the spirit of Malcolm’s TODO list (sorry, can’t find the link offhand), I thought I’d outline a few things I’m currently thinking about and/or working on for Django in the near future. This probably isn’t complete, but it …