Posted on March 12, 2008 at 5:57 A.M.

After my last post about django-threadedcomments, there have been several new releases. We've integrated completely with comment_utils, added support for gravatar, and added some internationalization (I love that we abbreviate this as i18n) support as well. Every day more and more people seem to be adding bug reports, patches, and feature requests to the ticket tracker. This couldn't make me happier, and I hope to see it continue. But what does this have to do with ideas? It's the first programming idea that I've taken through conception, execution and all the way to support. After django-threadedcomments, I've decided to change my outlook on how to organize and deal with ideas that I get every day.

Supporting a Project

There sure is a thrill to just sitting down and quickly hammering out the solution to a problem. Who cares if it's hacky and incomplete? You just proved that your idea was doable and you did it. It instills quite the sense of accomplishment. That's the style of project that I've worked on until now (aside from work). With django-threadedcomments, however, there's a completely different feeling that's just as thrilling: people are actually using it. It gives a completely different and stronger sense of accomplishment. The reason is because I made a conscious effort to support the application after its initial release, for my own benefit and for others'.

Admittedly it can be tedious at first. I'm convinced that nobody enjoys writing test code, and writing documentation can take as long as writing the code itself (especially if you delete and re-write as much as I do), but being able to apply patches that people submit and actually ghasp re-use your own code in other projects is where the reward really lies.

Ideas

I have ideas all the time--as I think most people do. Whether it be while writing code for one project, sitting idly in class, or even eating my cereal in the morning, ideas for nifty programs or websites or APIs just sort of pop into my head. What do I do with them? Until recently, what happened is that I'd start working on it and lose interest after a while. Over the last few months, however, I've begun to form a list instead of starting on the projects.

Why make a list? Looking at my track record of starting and abandoning projects--and assuming that I'd like to do that far less often--it seems that something needs to change. The change that I've settled on is to put them on a list instead of hastily implementing them. When I attack one of these ideas, I'll attack it fully and correctly; bringing it from conception to implementation, and finally to support. The reasons for this are three-fold:

  1. It's a good incubation period. After a while, some ideas seem stupid, while others keep begging to be solved.
  2. It allows for a greater sense of accomplishment. Once you cross out a few items on your list, you'll realize that what you've done is quite a feat.
  3. You can simply remember all those crazy ideas that you have had.

What is on my List?

I'm sure many of you may be asking what, specifically, I have on my list. django-threadedcomments is on there, and my next project is django-simplestats. The latter is not ready for public consumption yet, but check it out if you'd like to see a sneak peek. There are also several other items, but I'm not going to talk about them because it would take all the fun away from me! Honestly though, don't ask me for my list. Come up with your own and work through it for yourself.

And You

Enough about me in this rambling post, what about you--how do you deal with ideas that you get every day? Am I crazy for actually enjoying supporting a project? Do you have any tips for me in my organizational endeavours? Please respond in the comment section below.

Search

 

Recent Links

  • Callcast - Discussion with Jeff Croft
  • Great discussion with Jeff Croft and Kevin Fricovsky, talking about Django, design, web standards, and various other things. Kevin has really been on fire lately in his blog, and Jeff has some good stuff to say. Both their sites are bookmarks, for sure.

  • git-issues: A distributed issue tracker built-in to Git.
  • I predicted this back in March--can't believe a solution has surfaced so soon. It makes so much sense to build in an issue tracker to a revision control system. Since you're working with the code, might as well track the issues in the same system and take advantage of the extra metadata. This is really cool (and as a bonus, it's written in Python) so I hope to see it really grow and flourish!

  • How I Work Daily
  • Daily blog by Kevin Fricovsky. In addition to having some really great content, he has started to post audio interviews with people from the Django community. This is a site to keep an eye on in the coming days and months.

  • django-arcade
  • Demo site for django-arcade, an open source reusable Django app to add new flash games to any django-powered site. Looks very cool for easily creating game portals. It also comes from my future employer.

  • Facebook Chat and Scalability (with Erlang)
  • Eugene Letuchy talks about how they they took Facebook Chat from no users to 70 million users, with the help of Erlang.

  • Simon Willison: The Implications of OpenID
  • I somehow missed this presentation when it came out, but it's an absolutely fantastic overview and defense of OpenID by Simon Willison. If you are in any way interested in what OpenID is and what it can offer, you owe it to yourself to check out this presentation.

  • See the rest of my links...

Pownce

Badges

  • django badge
  • apache badge
  • GeoURL
  • XFN Friendly
  • Valid HTML 4.01 Transitional