Fort Forecast »

Civilization

Civilization is a forum software meant to host a coordinating hub for the FortForecast project.

Contents

Rationale

What is the project?

Civilization is meant to be a framework for building sane online organizations. Common needs of organizations include:

In the Civilization taxonomy each 'thread' should produce an artifact of some kind. An artifact is a human-readable work produced from a conversation, collaborative editing process, collection of sources, etc. Current forum software produces poor artifacts, a long discussion becomes a 50 page monstrosity that must be read to participate. The collective memory of a web forum is however many pages of posts an average reasonable member would be willing to read to participate in a discussion. The good news is that this systemic problem is largely fixable, since the information:knowledge ratio of forum thread pages is so low. A good summary would be enough to compress the vast majority of threads, so a lot of Civilization features are based around making such summaries happen naturally. One corollary is that the best interface for discussion might not be the best interface for an otherwise nonparticipating observer.

Why not use existing software?

Probably the first question any reasonable person would have is why it's necessary to write forum software for this. “Can't we just use Facebook/Reddit/Tumblr?” The answer is no—for several reasons.

Mission Conflicts

Large social networks like Tumblr are not designed to facilitate effective groups; they're just not. Big websites like that have a mission of their own: to be big and to extract as much value from their big number of users as possible. This becomes a dealbreaker when you consider that the core purpose of these networks is to waste as much of your time as possible. They are actively designed to be addictive, to keep people using the network rather than other things in the world. It's not that it's impossible to get an effective group going on these platforms (though this may very well be the case), it's that starting an already difficult project with tools that are actively working against your core mission is stupid.

Heavy modification would have to happen in PHP

“Fair enough, but why do you need to write new forum software, isn’t there enough forum software in the world to choose from?” You would think, but no. After drawing up a list of desired features it became abundantly clear that to make this work any existing software would have to be heavily modified. Worse, pretty much all existing forum software is written in PHP and the stuff that isn't is so obscure that taking on the support burden of writing your own would be about equivalent. The only developer who is empirically willing to work on the project, John David Pressman, doesn't know PHP and has heard enough terrible things about it that he'd be very reluctant to build complex features with it. Plus, it will probably be easier to attract developers if the language they're being asked to write in is relatively nice. Thus Civilization is built on top of Django.

Bending existing data models

Even if one were to use an open source forum written in PHP, it is quite likely that the forum was not built for extensibility in the data realm. FortForecast would like its forum to be able to host things like predictions, do federation, and other features which might be hard to put in as add-ons to the core database models. Django provides an ORM which is easier to edit and extend code wise than a traditional PHP bulletin board.

Features

Indexing

(Also see: Indexing)

One of the core goals of Civilization is to support better indexing than current forums do. Maciej (archived) talks about how fandom uses complex tagging schemes combined with the wisdom of the crowd to determine the appropriate keywords for an item. Our problem is that in all likelihood Civilization, at least as it's meant to be used by FortForecast, will only host between 300 and 3000 people on an instance if it's successful. That means we have a lot less data to rely on wisdom of crowds for, and thus have to put more effort into active indexing. You have to have features to support indexing, and make sure people somehow go through the trouble of indexing work to make it accessible.

I remember someone remarking that it's incredible to think there are furry porn sites whose nitpicky zealous indexing is better crafted than the systems we use for the most important knowledge in our society. One of the major things that is meant to set FortForecast apart is a healthy respect for the task of building an academic library rather than a holy book or canon.

Search

Search is the flip side of the indexing coin. The better your indexing, the better your search can be. Many websites these days outsource their search to Google by letting them index pages and then leaving their own search feature underpowered or nonexistent. This is an antipattern, and even if it weren't FortForecast is a private forum and that solution would not be acceptable. Full text search is the basic expectation for a serious document retrieval system in circa current year, but other forms of indexing help cut down on the number of queries required and can help researchers find high quality sources and connections which might have eluded them if they had to rely on direct keyword matches in a document.

Naturally then, Civilization should ship with a fundamentally decent search engine that allows users to take full advantage of all that indexing expected from users.

Magic Fucking Point System (TODO: Name this)

(See also: Magic Fucking Point System)

One of the core goals of Civilization is to support better indexing than current forums do. Maciej (archived) talks about how fandom uses complex tagging schemes combined with the wisdom of the crowd to determine the appropriate keywords for an item. Our problem is that in all likelihood Civilization, at least as it's meant to be used by FortForecast, will only host between 300 and 3000 people on an instance if it's successful. That means we have a lot less data to rely on wisdom of crowds for, and thus have to put more effort into active indexing. You have to have features to support indexing, and make sure people somehow go through the trouble of indexing work to make it accessible.

I remember someone remarking that it's incredible to think there are furry porn sites whose nitpicky zealous indexing is better crafted than the systems we use for the most important knowledge in our society. One of the major things that is meant to set FortForecast apart is a healthy respect for the task of building an academic library rather than a holy book or canon.

More interesting interface than VBulletin

This is technically a theoretical feature since the interface isn't complete yet, but the design so far implies an interface which is not just the thousand and first rehash of the basic VBulletin formula. This is important because VBulletin is such a common look for small forums, especially unmodified VBulletin by newbie administrators, that it's probably associated in many peoples minds with mediocrity.

Tracker

(Also see the article: Tracker)

The tracker is a program that is meant to save the user time by automating away unnecessary effort asked of participants on traditional forums. This is done by recording preferences of things the user would like to see, and proactively alerting them to their presence. Unlike most recommendation/fetcher systems in this vein the tracker allows the user to access its control panel. Further, the tracker may play a role in helping users maintain healthy use of time in relation to Civilization by allowing users to figure out how much time they would like to spend on various activities and helping to make those happen.

Similar Things The Tracker Is Not Which Kinda Suck

Thread Model

FortForecast threads have more metadata than most forum threads. The extra metadata helps the software do the right thing with layout and indexing. It also helps the software advertise expectations for what's expected from participants in the thread. This metadata includes:

Threads also have tagging, tags are part of how the indexing is made good. Like any good tagging system which works off a limited number of participants, some tags are mandatory depending on the content where others can be added at the authors leisure. Importantly, the software also allows other users to tag threads for their and others use. This means that the indexing can be actively worked on as a community.

Predictions

There's a meme in the LW/SSC/etc sphere that goes something like "If you're really confident about your estimate of something happening, you'll put money/status/encode it into a concrete bet". This is actually a fairly decent candidate for a way you could get participants in an online forum to be more sane about making predictions, especially if you keep score and provide the sorts of resources indicated by books like Tetlock's Superforecasting.

That is to say, it's worth a try and thus Civilization will implement a robust public prediction portal that is linked in some way to the forum thread discussions so that a discussion can easily generate predictions that last beyond the initial thread.

Design

As Civilization is a work in progress, a lot of the design discussion will happen and be recorded on this wiki. The following pages discuss the design of Civilization.

Design Inspirations

Design Sketches

Robustness

All of these are critical for robustness.

What happens if the guy who runs Pinboard gets hit by a bus?

The bus is likely to be fine. They don't go very fast and are designed with passenger safety in mind.

—from the Pinboard FAQ (archived)

Maciej jokes, but actually, that would suck, right? Pinboard is just a bookmarking site, yet still, if tomorrow it went offline forever—that would suck. Like, a lot.

Is a Civilization-based project (like, say, FortForecast) at least as important, valuable, irreplaceable, etc., as Pinboard? If it is, then we should give some real thought to what happens if the person or people running it get hit by a bus. (Or if they have a mental breakdown and take the server down. Or if they get arrested. Or, or, or...)

If you're trying to make something for the ages, there are several ways to fail. You could fail to produce anything that's worth preserving. But you could also fail to preserve something that is worth preserving.

The first problem's hard, and the rest of the site talks about it. This is about the second problem.

Open source

This is already a project goal, but worth repeating. If we do something wrong, someone forks the code and does it better. If we die, someone grabs the code and carries on. If the inexorable march of progress passes our creation by, someone updates it. At worst, it serves as a seed for a better incarnation.

(This is all in addition to all the other benefits of FOSS.)

Open content

This one's less talked about. Source being open doesn't do anything for the content of a Civilization-based project, which—to put it conservatively—is at least as important as the code.

What does "open content" mean?

It means: suppose I have a Civilization instance, and you have a Civilization instance. We have no connection, we're just two people with two servers who are each running the software. You have a lot of content on your site; I have nothing (I've just deployed a brand-new instance).

  1. How hard is it for me to grab all your content, dump it into my Civilization instance, and have a working mirror of your site?
  2. If your site goes offline tomorrow, is your content now all immediately inaccessible?

Without open content, a Civilization-based project isn't robust. The bus threat still looms large.

Notes

Concerning (a): Would anyone want to do this? Maybe. But reasons aside, if it's hard or impossible to do, then there's a smaller chance that the content will survive the death of project's current host.

Concerning (b): Consider the analogy with an open source project. Suppose I release the source code to my product under a FOSS license. I put the source up on my personal site. Tomorrow my server explodes and I die. No one else has the code (or if they do, they're not telling). Technically, the product is still open-source.

Does that help you, the hypothetical developer who wants to hack at it? Nope. This is why github and sourceforge and so on exist. The same considerations apply if we commit to the idea of "open content".

Case studies

Obstacles

Content which can't be open

Backups

This one's obvious: if something happens to the project's technical base, but the people running it are still hale, hearty, and present, a return to operation should be quick.

This aspect of robustness needn't be limited to just the usual backup strategies, though. Supplementary approaches include:

… etc.

If nothing short of literal global themonuclear war can take down the project—then you're sufficiently backed up.

Progress

The software is in fact basically usable. Threads are implemented, it is possible to use Civilization as a basic bulletin board. All further work would be on styling and adding advanced features.

Feature Progress

Indexing

Basic tagging exists, but I think

Demo

There is currently a demo up at civilization.obormot.net (archived). You can log in under a test account using the credentials:

Username: User
Password: aggregate

The username and password are both case sensitive.