I’ve been considering writing a collaborative blogging system for my media law course next semester. The reason is that I can’t really get what I want. (Momentary Stones cover.) Here’s the ideal: Plastic, but written in an easily grokkable way, and not requiring root access to a server, or (nec.) SQL.
That sounds like a tall order. I wrote a system in python for my CMU 300 course back at UW. I have no idea where that code went, of course. It was very basic, with no separation between the page and the data. In other words, it basically manipulated the webpage itself. But even if I had the code (I’m sure it’s on a CD somewhere, though it may be truly gone), it would be a pain to extend it to include karma.
Which leaves me instead extending either MT or Greymatter; both in Perl :(. Now, I’ve perled a bit of Perl, but I’ve been pythonogamous for the last couple of years, so the idea of getting my perl on over break is not a fun one. I checked the mods pages for both systems, but there isn’t anything there even approaching a robust karma system.
It might seem as simple as designing a plug-in that kept track of each entry’s level of karma and allowed a user to bring it up or down. But it would also have to track karma for each response on the board and keep track of individual users’ karma.
The most likely approach is to write an entirely separate set of scripts in python that sort of ride alongside the MT system. I might use SSI, but most likely, I can just make use of cleverly designed links and form requests. Lots of advantages here, not the least of which I already have a basic set of scripts to build from. So I will work forward on this. I will also talk about it step by step as I design it over break. Hopefully it won’t take too long.
So here is a basic sketch:
Records of karma points for each posting and each comment. These will be stored in an overall record. Each of these (with some form of unique identifier) would also be stored as an image with an indication of the current karma level of a post.
Records of total karma for each registered student. The trick would be using an identifier that would be unique to each student and easily accessible. I’m thinking their UB IT name. Problem: if they post under any other name, they don’t get karma.
Records of karma to spend for each user.
A link to an image in a folder showing the current karma of a post. This can be done in a way similar to the topic images on this page. An easy add in on the templates.
Two form links that have hidden values for the topic identifier and its author, one each for incrementing or decrementing the karma. These are there even if karma is “topped out” (at, say, five). They pop open a window that asks for the users name and password. I will probably make the password the students person number again.
A link somewhere (off to the side) that allows people to check their own karma level and amount of karma to give.
This is not as extensive a system as seen in, for example, Plastic. There is no metakarma, let alone the email and other functionality. A central command system would log all karma requests and establish–possibly at random–who had the power to give karma.
It’s important to note that the links would show up no matter whether or not someone had the ability to give karma. This is a significiant drawback to the system. It may be that there is a way to place a cookie on the students’ machines if they log in and this would hide any buttons that are not usable, but this would likely be a down-the-road project.
Likewise, there is no way to filter the good comments. (Actually, there may be: making the karma rating for each post its own “category”; I’ll have to think on that.) So this is really just a way of saying “yeah, that’s a good post.”
As described here, this would be a significant improvement over the current system, which is entirely divorced from the UBLearns/Blackboard discussion platform.