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
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
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
- Intel Xeon L5520 (quad-core 2270 MHz 64-bit cpu)
- 1170 MB RAM reserved for TASVideos
- 48 GB storage reserved for TASVideos
- Utilizes Xen to share between 15 different customers
Internet
The server's Internet access is through a commercial-grade connection at
The Planet's Dallas data center. In practice, multiple users can download files at 200 KB/s simultaneously. It has a fixed IP address.
It is provided by
Linode and
fully sponsored by TASVideos users.
Author