opinions and rants on software and...things
May 22, 2008
I have just packaged up a bit of the code that is part of this blog, the part that manages tags, and released it as a Google Code-hosted open source project: taggable-mixin.
Taggable is a Python mixin class that can be added to any AppEngine Model class to give it the ability to have tags associated with it. It does so without modifying the Model itself; the tags are stored in a completely separate Model of their own, and they are associated by Key. The tags are managed efficiently, so they are never duplicated. A single tag instance can be associated with any number of different model instances.
I think that it is a pretty neat, clean and compact solution to the problem of tagging. I'm very much looking forward to getting feedback from my fellow AppEngine developers, as I am still a relative newbie to Python. I have learned a great deal about it since I began working with AppEngine, but I am hardly a veteran coder, familiar with Python idioms and such. I also want this to be as valuable a contribution to the community as it can be, but unless I hear back from those using it, I will have only limited ideas about how it can be improved.
April 29, 2008
I've just uploaded another release of my blog software, and this time it has TAGS! Tags, of course, are clickable links, and you can use them to search for all posts that also have the given tag. Cool, I think.
I'm rather proud of the fact that I wrote the tagging-related classes to be completely transportable to anyone else's Google AppEngine code, and integrating this functionality is as easy as making the taggable class a super-class of any Model class.
I'll update this entry once I have release the tagging code as a Google Code open source project. I might see if I can run it by someone who is a more experienced Pythonista, so I can get a quick sanity check. I'm just the tiniest bit nervous that while my code might be valid Python, it might not observe common idioms of the language.