SOCS - Simple online commenting system
by Patri Friedman (homepage)
NOTE: SOCS is out of date and no longer maintained. I suggest using CommentPress to get the same functionality via a WordPress plugin. I plan to migrate my pages to CommentPress.
This is the brief info page for a simple online commenting system
I've written, because I want to get feedback on a paper I'm
co-authoring. I was partly inspired by LiveJournal and Wayne Gramlich's Stew
collaborative system proposal. You can test
the system on this sample page.
The idea is to get effective web commenting with minimal effort
using a collection of perl scripts. We're looking for an incremental
improvement on email for user feedback. For example, with SOCS, other
users can see comments which were made, so that they don't say the
same things. The author has the feedback in a more convenient
location than email, and organized by exactly what section of their
work is being referred to. Its much simpler to use than a Wiki
(although not as sophisticated). Users and authors are linked in a
collaborative dialogue instead of unidirectional communication.
Current features:
- Automatically creates anchor for each paragraph and list item, with a name based on the initial characters.
- Automatically inserts link to comment button.
- Automatically generates each comment page with the original paragraph and a link back to the source material.
- CGI splices new comments in.
- Email addresses and names are filtered for malicious code.
- Comments have all HTML tags stripped out.
- Comment buttons on source material indicate how many comments there currently are.
- Comments can be kept when the source material has minor changes (though there are currently some small bugs).
- Handles changing source material well (keeps checksums so it
knows when a paragraph changes, and fixes the cite of that paragraph
in the comment file).
- Keeps logs of comments made, emails them to a notification
list at user-specified intervals..
- Has a script to generate recent comments in the past
day/week/month, which can be run as a cron job. Since the recent
pages are periodically compiled from the comment files, you only
have to delete comments in one place.
Known Bugs:
- Relative links are broken in the cite of the paragraph/list on the comments page.
- Comments from this day / week / month links broken if no comments during that period.
Planned features:
- Allow site-specific HTML in comment pages
- Recognize more structures than paragraph, list (like headers,
for comments that are about an entire section).
- Generate a version of the source material with all comments spliced in (mostly done).
- Allow safe HTML tags (links would be nice).
- ?Comment on comments? Threaded?.
- Cleaner, more configurable code, better commented, etc.
- Seperate code and content, so that users can change the HTML
pages (like the comments page) without needing to edit the perl
scripts.
The Perl code is really ugly right now, so I'm reluctant to give it
to anyone. But if you are a perl monger and want to make use of my
dirty SOCS, you can do so on the condition that you give me use of any
improvements that you make. If you're interested in using the system,
email me and that will give me incentive to make it more configurable.
And naturally if you'd like software of a similar nature written, I'm
available for hire as a consultant :).
BTW, if anyone out there is a perl/CGI security whiz and is
interested in reviewing the package's security, that would be great.
I've attempted to be careful checking parameters from the user, but
could have made a mistake.
Patri Friedman
patri-at-clevername-dot-net