1. 13

  2. 10

    Is there some kind of law that says that all forums must be written in PHP?

    1. 6

      Probably something in economics, yes. PHP shared hosting is cheap, ubiquitous, and as easy as pasting in a line or two of database config and FTPing files into place, with an incredible amount of educational and helpful information out there.

      Other languages and toolchains have deploment stories that very little like “Look up and paste one thing, then drag and drop some files and call the customer support number if anything goes wrong”, even if they can squeeze the app and database into a $5/month VPS.

      1. 1

        I was annoyed by this as well, and wrote a classic bulletin-board-style forum in Ruby with Padrino (not Rails). It is not completed yet, neither is it full of this juicy web design, but it does work and powers the forum of another of my OSS projects. Code is on GitHub, live instance running here.

        1. 1

          @xmc There is no shortage of non-PHP forum software, but PHP is ubiquitous. I think it’s that more people will develop plugins / contribute to open-source projects if they already know the language, and more people will install PHP software if they already have shared hosting sitting there.

          I’ve run NodeBB, and now Discourse, specifically to get away from PHP forums like Vanilla and PhpBB, because I assumed that all PHP forum software was clunky or outdated. But I’m paying $10/mo for a Digital Ocean droplet to run Discourse (which needs a minimum of 1GB RAM just to run, and 2GB to run with traffic). I’ve investigated a lot of forum software and Flarum is the closest I’ve found to Discourse — and you can just throw it up in a shoddy shared host without spending a lot of time deciding if your idea actually deserves the $120/yr it takes to run Discourse … or the headache it takes to keep NodeBB alive :)

        2. 6

          Just because you put some AJAX and modern design doesn’t make it any different than any other PHP web forum. I’m planning one starting a community, but the software doesn’t seem to be quite there yet. I have a small notebook on my research, if anyone is interested.

          1. 3

            I would like to see your notes. If I were to start an online community right now, either the Lobsters code base (which is actually a great community platform based on its simplicity and specificity of doing link sharing well, IMO) or Discourse would be my first choice.

            1. 10

              I would like to see your notes.

              Sure. I’m not the person you’re responding to (and am also curious to see calvin’s notes), but here’s my notes for forum software.

              A few years ago I worked for the Washington Post and got an up-close-personal look at how online comment systems, especially on news sites, are almost universally wretched. I’d already been thinking a lot about forum systems and how the technical design of communities feeds into the culture that develops, so I eventually applied for a grant to make non-awful forum software for news sites, which have special concerns like a huge audience with a large percentage being people who want to drive-by vomit toxic opinions. It got turned down and I have other, much more interesting projects in my queue, so I expect I’ll never get to this - feel free to strip mine it for ideas to use without ever attributing me. Better than leaving it interred on my hard drive.

              It’s called “Asamocra” (a nod to Anathem). As this grant proposal is a news-oriented look at forums, I left out things I’d put in a general/technical discussion forum like “every thread gets a block of wiki content on the top to aggregate knowledge” and “threads are presented flat but modeled nested and sub-threads can both be forked off into their own threads or appear inline and as their own threads” and “for god’s sake, editable comments that keep history with a timeline slider/diff view so you can sort out what happened when”. That’s the only fun stuff that pops to mind, the rest of this is a straight dump from the proposal.

              If this is interesting to anyone feel free to mesage/email me, and especially check my Monday “what are you working on this week” comment.

              Describe your project. (500 words)

              Asamocra will be a discussion forum system news outlets can embed into their websites to vastly improve the integrity and quality of their online discussion. It will give moderators new power with the addition of modern text analysis algorithms.

              Online community software is more than a checklist of features. Even small changes in user interface can have a large effect on the culture and behavior of a community. A common example of poor forum design occurs when authors can edit comments and the previous versions are not visible. Responders often copy the entire message and write QFT, “quoted for truth”, to ensure the integrity of the discussion. Every discussion is permanently stunted by distrust and implication.

              It’s possible to build software that instead enhances users' trust in the quality and integrity of the discussions. People take cues how to act from their environment. A forum full of insightful and helpful comments attracts more good contributions; quality (and the lack of it) is self-reinforcing. Forums have been a source of pain and embarrassment for news organizations that don’t have the time and expertise to manage them. It’s time to improve their effectiveness.

              Asamocra will use innovative technology to allow the overworked and understaffed moderator teams at news organizations to be far more powerful than has previously been possible. We can still seize the wasted opportunity of audience participation and build healthy, involving communities around news.

              Text analysis is already in use and proven to work. For example, spam filters use a Bayesian classifier to learn that a pharmacist’s inbox shouldn’t consider email containing prescription brand names to be spam even though they are to almost everyone else. Other algorithms can do much more. Terminology extraction can categorize discussions, latent semantic analysis can detect off-topic tangents, and a fog index can estimate the maturity of the writing.

              Many social news sites have users rate comments as part of their moderation system, but it’s easy for ratings to become echo chambers. Asamocra’s moderation will accept user input but weight it by how often it agrees with the trusted moderator. This weighting identifies which users have good judgment and ignores the ones who don’t, multiplying the effect of the moderator’s work without sacrificing quality control or editorial voice.

              Asamocra will include a compelling demo mode: an evaluator enters links to existing web pages and it will import entire discussions. It will be possible for news organizations to evaluate Asamocra with their real data to immediately understand the benefit for their moderation and community.

              Introducing new tools presents a technical integration challenge, especially in a news environment that likely has a homegrown content management system only a handful of busy people understand. Asamocra can be installed on cloud computing servers like Amazon EC2 for experimentation, will include established deployment tools to set up a secure server environment in minutes, and will ship with drop-in software libraries written in Java, PHP, Python, Ruby, and JavaScript so it can be added to any existing news site.

              What unmet need does your proposal answer? (300 words)

              Most online discussion is unreadable. A handful of insightful comments are lost in a sea of insipid, offensive, or otherwise useless messages. The job of sifting these out is prohibitively expensive as any successful media outlet’s audience produces responses far faster than the outlet can afford to attend to. Many news outlets have given up entirely on user commenting, or limited it to a handful of posts they can closely monitor.

              The Asamocra administrative interface for moderating discussion will make common actions faster, provide context, and treat performance as a key feature. Moderators should be able to review comments 5 to 10 times faster than they do now.

              Asamocra’s text analysis will draw the moderators' attention where their judgment is needed most. The system can learn to predict flame wars by recognizing when discussion moves off topic, when people use loaded terms that invite useless rehashing, and when people start to talk down to each other. Most important, the system will monitor and learn from where and how moderators have to intervene. Over time, moderators won’t need to give equal attention to every word submitted. Asamocra will point them to the hard problems and give them the breathing room to address them properly.

              How is your idea new? (300 words)

              Forum software has a blind spot: it doesn’t look at the text of messages themselves. There may be metadata attached (such as user scoring on Reddit), but the actual text isn’t analyzed beyond spam filtering.

              Text analysis can study each comment as it is posted to find conversations wandering off topic, flame wars as they begin, or quality to be highlighted. Comments are not simply a black box of text to be shuffled from database to screen in the order they were posted.

              Moderation cannot be an afterthought, a cost to be minimized. The administration interface must empower and inform the moderator by directing them to the discussions most in need of attention (as determined by analysis and user reports), presenting relevant context (like user history), and providing effective tools to slow, halt, and clean up abuse (such as disemvoweling and rate limiting).

              What will you have changed by the end of the project? (300 words)

              Asamocra offers the most benefit to those that can least afford the moderation involved in building a viable online community. It will be far easier for news organizations to cultivate real discussion among their readers.

              It will bring the kind of learning, analytics algorithms that have cracked down on spam and improved Web searching to open forums. It will make the easier problems of moderation trivial so people can pay attention to the hard problems that provide the most value to filtering online discussion.

              Rather than a single monolithic code release at the end of the project, any components that can be extracted, like the implementation of text analysis, will be published as open source libraries during the course of development.

              1. 3

                Here’s my notes, including some email correspondence with a friend. (The community would be about old PDAs, if anyone was interested.)

                1. 2

                  I’m not the parent either but “what makes a good forum” is a good and difficult question. I’ve done forum software myself which I realized in the end was also terrible.

                  Problems and “wants”, not necessarily in order or complete:

                  • Forums tend to be busy and “ugly” - because there’s so much information; topic name, who posted, when they posted, tags and such, there’s a tendency to have a layout that’s crowded and confusing.
                  • Hard to navigate - when you break a forum down to many topics, people can post in the wrong place, seldom visited topics become irrelevant and the whole place because a mess. When it’s all one stream, earlier posts on a particular topic become lost. Topic tags seem like they might deal with this problem but I haven’t seen them work that well. Maybe Lobster’s approach is the best so-far but still.
                  • Hiding older/irrelevant stuff versus letting people know it’s there. A big problem in the generally nice hh/lobster discussion style is that top-level comments vanish when a higher-rates comment gets a lot of subcomments. I feel like Facebook groups might actually solve this problem best by hiding older comments but giving a count of them. A more elaborate solution might show a few higher-rated old comments. In general, it occurs to me that Facebook groups does perhaps the best job of hiding and ordering comments automatically to allow clarity and keep a discussion going.
                  • Readability - boxy style of forum that just shows comments in order actually has an advantage in readability compared to threaded comments, especially multi-level threaded comments.
                  • “It would be nice” - to combine article comments with a site’s general section.
                  • “It would be nice” - to have reply notifications, again like Facebook.
                  1. 5

                    Hiding older/irrelevant stuff versus letting people know it’s there. A big problem in the generally nice hh/lobster discussion style is that top-level comments vanish when a higher-rates comment gets a lot of subcomments. I feel like Facebook groups might actually solve this problem best by hiding older comments but giving a count of them.

                    On a larger timescale, I feel like all of those—HN/lobsters/Facebook (and Reddit, Slashdot, etc.)—are very oriented towards the “hiding” part, with any content older than a week or so virtually invisible (often a day or two). So discussions rarely last long.

                    An interesting aspect of the phpBB/vBulletin style forums is that threads can last a really long time if they’re still active, e.g. FlyerTalk has active threads that are 10+ years old. Since posting in a thread “bumps” it to the top, they don’t necessarily disappear. They can also be dormant for a while and then come back later if they’re relevant again; users are encouraged to use the search function and bump old threads rather than starting new ones when possible, so the context of previous discussions on the topic isn’t lost or rehashed. Especially long threads (thousands of posts) do get unwieldy. One approach is to add a summary to the top using a wiki-like functionality that has been added. In some cases I find this a nice way of accumulating information over time, instead of these ephemeral discussions that last 2 weeks and then disappear.

                    The HN/Lobsters social norm of linking to relevant previous discussions does some of that, bringing in relevant previous discussions via just linking. At least, if we assume that a significant percentage of people click and read the link.

              2. 5

                Some concrete criticism

                • Starts out wasting space with banner on top (can be removed but still, I might have cleared cookies by next time)
                • Icons to the left of topics seem useless and annoying.
                • You spend a whole column with maps topic color coding.
                • This seems to waste a lot of space on white space yet not be terribly attractive.
                • Nothing says what’s interesting about this among many web forums out there.

                My favorite forum-ish software is hacker news and lobsters. phpbb and drupal are OK. I am currently considering what the best forum software is for various purposes and would love to find something better than average. I see nothing here, unfortunately. Show otherwise.

                1. 1

                  Hmm, I always found PHPbb clunky, both for the user and the admin. My personal favorite tradition BB sofware is Invision Boards, though I realize it is neither free nor open-source.

                2. 3

                  Why was this downvoted? We’ve had similar stories in the past that were received rather well.

                  1. 1

                    I found it interesting that Flarum started out using Ember.js, but switched to Mithril.js after a year. They explain their reasons in “Introducing Flarum’s Fast New Front-End”. Basically, Flarum has to support separately-developed JavaScript extensions, such as the extension that implements tagging, but Ember.js assumes that your whole app is defined in one codebase and compiled at once.

                    Here is their Mithril codebase. They build it with this Gulp wrapper, which Gulpfiles like this one call with require('flarum-gulp'). They use JSX to write Mithril templates, which I hadn’t known was possible, and they use Babel/ES6 to import code from other files. Most classes derive from a custom class Component, an abstraction of components in Mithril.