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.
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 eAccelerator 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
Memcached.
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. Even the /nesvideos/ part of the URL is virtual.
- 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 Core2Quad Q6600 (quad-core 2400 MHz 64-bit cpu)
- 6 GiB of 800 MHz RAM
- Three serial ATA harddrives totaling 1 TB (931 GiB)
But mind you, the
TASvideos site is not the only thing run by the server…
For example, there is a
Japanese-English online tool suite also on the same server. Also, some parts of the services run utilize resources from other computers in the LAN.
Internet
The server's internet access is through a consumer-grade ADSL line with 8192 kbps downstream and 928 kbps upstream speeds. In practise, 850 KiB/s downloads and 85 KiB/s uploads are seen at most. It has a fixed IP address.
It is provided by
Netsonic Oy and
fully sponsored by
W-Create Oy, my employer.
Author