TASVideos

Tool-assisted game movies
When human skills are just not enough

Site Technology

Table of contents [expand all] [collapse all]

Software

Webserver

The HTTP server in this system is Apache, just like in virtually every other sane webserver in the world.

The FastCGI extension has been installed to make it run faster.

Scripting language

The site is running on PHP code, with a few helper programs written in C++ or C (such as the GNU Diff program).

The XCache extension has been installed to make it run faster.

Database

Main article: Site technology / Database

It uses a MySQL database with the InnoDB engine. (A few non-relational tables use the MyISAM engine instead.)

Wiki engine

The author experimented a bit with PHPWiki, but deemed it too complex and the learning time for its use too long and ended up writing his own Wiki engine.
It is surprisingly small and compact.

In design aspects, he imitated other Wiki systems he has experience of, such as the Sensei's Library.

For cache, the site utilizes XCache.

Operating system

The server is running Debian Linux.

More details can be seen at Cache Control.

Questions and answers

Why PHP?

PHP was chosen because the author is experienced in PHP programming and wanted/needed to get the site running in a short time.

Why InnoDB?

InnoDB was chosen because it is the only backend in MySQL that supports "foreign key" constraints. This feature was chosen to be vital for this site.

I see .cgi and .html, even .exe. Does this site really run PHP, and Linux?

Bisqwit: I am adopting several guidelines in my website design.
Instead of writing a lengthy article here, I will provide some links. They point to articles that should give you an idea what's going on.

Most important things I can think of now are:

  • If an URL needs to be changed, I keep backward compatibility. The old address will redirect to the new.
  • If the implementation technique is not relevant for users, keep it out from URLs. That's why I chose .exe and .html instead of .php. Of course, there are no .exe or .html files on my disk. They are virtual addresses that are mapped to .php files that reside in other places.
  • If an URL has never existed, attempting to reach it is an error and should give an error message. That's why I have agent Slash which is familiar to some MSIE users.

Why a Wiki?

Bisqwit: Because I wanted to create a Wiki :)

Seriously, I wanted to shift the responsibility and to delegate work to other people than me. A Wiki seemed to be perfectly suited for that purpose. As a side effect of the design, we have changelogs of all page edits and we can conjure up any past version of pages since they were introduced into the Wiki. It's a really cool feature.

This is not a Wiki in the sense that any random visitor can edit everything on the site. But it's close, just with some access control mechanisms added.

Are there interfaces for acquiring data from the site?

If you want to acquire data from the site for machine processing, there are two options:

Hardware

The server consists of

Internet

The server's Internet access is through an independent ISP in Canada. Bandwidth is burstable to meet the site's needs.

Author

Bisqwit, Nach


See also:


Combined RSS Feed
SiteTechnology last edited by DeHackEd on 2013-11-02 16:44:35
Page info and history | Latest diff | List referrers | View Source