About Archive Tags RSS Feed


We should just deal with nice people

16 November 2008 21:50

For various reasons I've recently been thinking about forums.

Many technical users dislike forums, because they are things that are hard to follow. Even with RSS feeds & etc you need to keep a login and remember to return to see if your post(s) have been answered.

However non-technical users love forums, and from a community-building perspective they're very cheap and easy. Particularly if you manage to appoint moderators from within the comunity.

I currently find myself in a position where I'd kinda like to have a forum package. Something that I can integrate into existing site easily.

Unfortunately most of the "best" forum packages are PHP-based, and have their own complex login, group, and admin facilities. That makes it hard to update them to authenticate against my existing MySQL table(s). (We'll leave my PHP-allergy in the background)

So, once more, I've been contemplating the bad route; create my own forum software. I'm well aware that down that path lies badness madnesss.

Let us recap. What is a forum?

  • A forum is an online site.
  • With a coarse list of topics.
  • Inside each topic is a list of threads.
  • Each thread is comprised of a number of (threaded) messages.

Sound familiar? It should if you use email:

  • ~/Maildir contains storage for a collection of mailboxes.
  • Each mailbox is a course list of topic-specific discussion.
  • Each topic is comprised of a number of (threaded) messages.

So, the unthinkable, could we convert (bi/uni-directinally?) from a Maildir hierarchy to an online forum?

Would that make sense? On the face of it. Yes.

There are implementation details - the forum index would be essentially a list of Maildir folders (perhaps "~/Maildir/topic1/.title" would be require to give it a pretty name).

Each thread topic would be a rendered display of the messages in the folder.

So, what are the drawbacks? Well reading Maildir folders gives us threading, and subjects, bodies, etc. But it does mean a fair bit of overhead parsing messages.

(Times like this I remember Hughe. Every time we've gotten together for beer & geekery the topic of an extensible perl-based IMAP server comes up. I'm sure it should be written ..)

I'll wrap this up now. I'm sure I've made the point. There are some details which have impact - Should the forum accept new posts online? Or only via gated email-delivery? Will it work? Should it be Maildir, or IMAP based? Still at least filtering your SPAM would be easy ;)

More questions. Some questions have no answers. Some answers we ignore because we don't like.

I need to sleep.

ObFilm: 007: Quantum of Solace

Bad film. Don't waste your pennies.



Comments on this entry

icon Shawn at 18:11 on 16 November 2008
I've previously solved this by writing a dirty hack: copy user info over to the forum database and then have the site's authentication update the forum session info itself, rather than changing the forum to use the site's methods. Nasty in all sorts of ways, but can go faster than alternatives...
icon David Bremner at 19:20 on 16 November 2008
Perhaps you would like to finish the pair of ikiwiki plugins I started to do this :-)
See http://www.cs.unb.ca/~bremner/blog/posts/mailbox-example/
icon chithanh at 19:58 on 16 November 2008
Use Google groups, to a non-technical user they are almost like forums but accessible with newsreaders via nntp.
icon Charles Darke at 21:32 on 16 November 2008
You know you want to... :) You've already written a blog engine, you might as well write a forum engine too. Beware of writing a forum though - I started 6 years ago and still haven't finished. Still, it's nicely integrated into the blog, gallery, rss reader I wrote! :p
icon Alex at 21:52 on 16 November 2008
Glad to see you agree about Quantum of Solace =)
icon Anonymous at 22:52 on 16 November 2008
You need to develop a MySQL allergy to go with your PHP allergy. :)
icon Andrew Ruthven at 02:12 on 17 November 2008
Actually, it sounds a lot like Usenet to me, I'd really like a nice web interface that uses a real NNTP server for the backend.
icon Asheesh Laroia at 08:56 on 17 November 2008
A related concept is Drupal's support for synchronizing email lists and forums: Check out http://drupal.org/node/40777 for details.
icon kai Hendry at 09:54 on 17 November 2008
I would like to argue that mailing list archives are usually so badly indexed by Google, users are much more likely to find forums first.
My email markup diatribe.
icon Steve Kemp at 18:01 on 17 November 2008

Wow .. what a lot of comments!

To address some points though.

I'd rather not spend any time writing more software at the moment, but the temptation is high.

I'm allergic to PHP primarily because of shoddy PHP programmers. MySQL might not be perfect, or as good as other databases, but it actually hasn't caused me any pain. Whereas bad PHP code has been the direct cause of me having to cleanup compromised systems.

Google groups I cannot use, as that would be even harder to integrate into my existing site. Not only would the appearance be wrong, but there is no way I could unify the login systems.

The ikiwiki idea isn't horribly off-base, but again it isn't going to be suitable for me in the site I have which needs the forums. Partly because the site is dynamic and partly because the look & feel of ikiwiki is all wrong for the target audience.

Finally the last few Bond films have not been as good as they used to be. I think I will just stop seeing any new ones

icon Simon at 19:15 on 17 November 2008
I thought long and hard about a user requirement to have a threaded discussion forum a few years back. After much pondering, wanting a web, and the users choice of client, and the features they specified I settle on NNTP as the protocol of choice.
Now why are you thinking IMAP? Not enough mail to NNTP gateways?
As someone said, Google groups does it. Free NNTP implementations are showing their age, and some of the clients also, but it is not so bad.
icon Philipp at 05:26 on 18 November 2008
I am also looking for a good forum frontend, but it has to fit ontop of my existing infrastructure somehow.
For a few years I am running, and am very content with, a combined mail/news store using cyrus. Cyrus is known for its very mature and scalable IMAP server, but lesser known is the awesome NNTP support (mainly server, but also includes a fetchnews client) since version 2.2.
I have a combined hierarchy with e.g. user.mynick containing my Inbox and its subfolders, gmane.xyz containing gmane (pulled regularly with fetchnews) and other paths being pushed into by my peers using NNTP.
If I compose a "message to folder" in Evolution or mutt, cyrus will push out this new message via NNTP, too.
So any forum software able to host its data in either NNTP or IMAP should work for me, but I haven't found the ideal one yet either. My wishlist would be something that queries IMAP or NNTP directly, not something that tries to push all emails into database rows. Also, I prefer prostgres over mysql and am not the biggest fan of PHP, but both of these I'd be willing to compromise on.
Ikiwiki seems like something that requires a lot of assembly. I guess I'll look at some more of the drupal modules first. http://drupal.org/project/og2list and http://drupal.org/project/og2mlm also seem interesting on the first look. If anybody knows of any plone plugins in this direction, please drop me a note.
icon Adam John Trickett at 16:11 on 22 November 2008
I can understand avoiding PHP, especially as it's so popular - at least it's not ASP...!
Fora do have a terrible user interface but somehow newbies love them. I suppose they login, ask a question, join in the thread until they get an answer. Most of them vanish without trace. You only have to look at the staggering number of times the same question gets asked on PerlMonks for example.
I'm currently dabbling with Ikiwiki which is an amazingly useful wiki-engine. I've not looked at the code much but the use of Perl prototypes is not a good sign and there isn't any POD... That's not say that the code isn't of a good quality but it doesn't look like it was written by someone using "Perl Best Practices".