Today's schedule

  • The basics: What is Alexandria.dk?
  • The past: Where did we come from?
  • The present: Where are we now?
  • The future: What do I want from you?

Alexandria.dk

The technical bits

The technical bits

PHP

<?php
...
function getfilelist ($data_id, $cat) {
	global $t;
	$files = getall("SELECT filename, description, language FROM files WHERE data_id = '$data_id' AND category = '$cat' AND downloadable = 1 ORDER BY id");
	$fmt = new NumberFormatter( Locale::getDefault(), NumberFormatter::DECIMAL );
	foreach($files AS $id => $file) {
		$template_description = parseTemplate( $file['description'] );
		if ( $file['language'] ) {
			$languages = explode( ",", $file['language']);
			$fulllanguages = [];
			foreach( $languages AS $language ) {
				$fulllanguages[] = getLanguageName( $language );
			}
			$template_description .= " [" . implode( ", ", $fulllanguages) . "]";
		}
		$path = ALEXFILES . getcategorydir($cat) . '/' . $data_id . '/' . $file['filename'];
		$files[$id]['path'] = $path;
		$files[$id]['extension'] = strtolower(substr(strrchr($file['filename'], "."), 1)); // any reason not to use pathinfo() ?
		$files[$id]['template_description'] = $template_description;
		if (file_exists($path)) {
			$files[$id]['filesize'] = filesize($path);
			$files[$id]['filesizetext'] = $fmt->format(round( $files[$id]['filesize']/1024/1024, 1) );
		}
	}
	return $files;
}
...
?>

The technical bits

MySQL

		SELECT
			COUNT(*) AS antal,
			t2.person_id AS link,
			g.id AS gameid,
			g.title,
			COALESCE(alias.label, g.title) AS title_translation,
			t2.title_id,
			t1.person_id AS rlink,
			t1.title_id AS rtitle_id
		FROM person a1
		INNER JOIN pgrel t1 ON t1.person_id = a1.id
		INNER JOIN game g ON g.id = t1.game_id
		INNER JOIN pgrel t2 ON t1.game_id = t2.game_id
		INNER JOIN person a2 ON a2.id = t2.person_id
		LEFT JOIN alias ON g.id = alias.game_id AND alias.language = @LANG AND alias.visible = 1
		WHERE
			t1.person_id IN (@inlist) AND
			t2.person_id NOT IN (@notlist) AND
			t1.title_id IN (1,4,5) AND t2.title_id IN (1,4,5)
		GROUP BY
			link
		ORDER BY
			a1.firstname,
			a1.surname,
			a2.firstname,
			a2.surname,
			t1.title_id,
			t2.title_id,
			title_translation
						

The technical bits

"You can not have a meaningful campaign if strict time records are not kept."
— Gary Gygax
"Time in the Campaign"
AD&D Dungeon Masters Guide (1979), p. 38

Meet Peter Brodersen

Sleipner

Danish umbrella organization for role-playing clubs

Atlantis Scenario Scenarie

The 100 best Danish scenarios!
The website does not exist anymore. (Foreshadowing)

Launch!

Alexandria.dk

  • Goes online March 1th, 2003
  • Non-commercial
  • No economic support*
  • No organization
Some figures at the opening day:
  • 1,977 scenarios
  • 863 persons
  • 169 conventions
No LARPs or campaigns.

Data quality

What is the origin of the content?

  • Convention programmes
  • Magazines and scenarios
  • Web sites and Facebook events
  • People submit updates

But ...

  • Programmes tell the story before the fact
  • Magazines and scenarios have errors
  • Web sites close down
  • People might be wrong

Censorship, historical revisionism, clean up?

  • Some people don't like to be on Alexandria.dk
  • Some people are... problematic
  • People change names ⚧️

Alexandria becomes the authoritative source!


(xkcd #978: Citogenesis)

Acceleration

Editors!

Next up: Rest of the world

Random encounter: Henrik 🇸🇪

Awards

Awards

Let's share the loot!

Loot overview

  • 14,000 scenarios;
  • 2,500 downloadable scenarios
  • 8,000 persons
  • 2,000 conventions
  • 7,500 articles
  • 750 board games
  • 650 locations

Death and rebirth

Server crash

Backup crash

Is it even worth it?

Problematic content

Gaming in general is a male thing. [..] Everybody who's tried to design a game to interest a large female audience has failed. And I think that has to do with the different thinking processes of men and women.
- Gary Gygax

Problematic content

  • Racism
  • Sexism
  • Exceptionalism

Alexandria closes down

Resurrection

  • Better server hosting
  • Server backup
  • Cloud backup for scenarios

But Alexandria shouldn't depend on one person

Everything works 'till it doesn't

Information wants to be free!

Generously sponsored by Bastard Café

This is the part where I ask for help

  • Find yourself on Alexandria.dk
  • Enter your LARPs
  • Enter other's LARPs
  • Check your old e-mails and pamphlets
  • Volunteer as an editor
  • Become a developer
  • Connect us with other resources

What do we do when everything fails?

We do what we have always done.

We gather round and tell shared stories.

Thank you for your attention

(now give me all your information!)

slides.alexandria.dk