Hello! Database - Background
Most recent revision of this page 2005-01-11
As you may have already noticed, this site is all about providing loads of information about Hello! Project. I won't go into more detail about that.
The idea for the site, a database where almost any piece of information could be related to just about anything, and all of it about Hello! Project was concieved in around March of 2004. My original idea was to create one of the best English resources for referencing when in need of H!P information. It should be noted, though, that during the development I was far from certain that the site would ever reach a state in which it could be published.
The site was originally brought online in July, but the practical debut was in October, as that's when the site emerged from a private project into something that at least some people knew about.
The content of the site is mostly maintained by me, the administrator of the site -- commonly known either as Visual or Vicion. Apart from some contributed info, everything on these pages was written by me from sources I could find. Whenever possible data has been inputted only when at least two sources have confirmed it. My search for data has been hindered that I do not understand Japanese, so the source material has mostly been in English.
What kind of system is there serving the pages?
The server is a shared server of a Finnish web hotel (although the servers are in the USA). The package the site is currently includes 3 gigabytes of monthly bandwidth. Except for a couple of private projects of mine this database is the only service taking up the allocated bandwidth. The database backend is MySQL.
The website itself is coded entirely in PHP (with SQL queries for fetching the data, of course). In last count the source code files took total of 386 kilobytes of space -- not bad for a single man's project. Codewise the largest page is the quiz, which takes 33 kilobytes of space (and is probably the worst code I've ever written). Update: checked again 2004-11-23 and PHP code now takes 430 kilobytes; if hand-written CSS is included total is 455 kilobytes. another update: The site is now past 650 kilobytes; for the most up-to-date information I refer you to the Statistics page.
Updates to the site are done using an admin interface. Usually I make the changes to my local copy of the site and then use automatic synchronization to make the changes public. If needed, I can also make changes directly to the public version, which is the case whenever I need to make changes and I don't have access to my laptop and when there are new features being developed and synchronizing would output data which depends on features not available in public site at that point.
While the public pages are relatively bug-free, the administrative side of the site is far from that. There are lots of more or less major bugs all over the editing interface, as the public side was a higher priority, and the editing worked "well enough". Suffice to say that the editing side has entirely different sidebar -- not because it is better, but because it was used in the editing interface before the new sidebar was created and I didn't really want to bother with making the editing mode work with the new system. Still, everything that does work works well. Another reason is, of course, the simple fact that the regular sidebar is too small to fit the admin-only features.
There are quite a lot of unused (and unfinished) features with the site. The original design was more elaborate, but as plans changed many of the features were left in state of "mostly working". For example, there was a web-based feedback system, which was scrapped for a form which simply sends the feedback as E-mails. The current feedback system is actually better in practice, though. As a remnant of the old system index.php?page=feedback still leads to the old system which leaves messages which won't be read (no link as I don't want people going to that page unnecesarily.
Some of the pages are very demanding on the database. At the moment the worst page does no less than 1731 queries when the page is generated. Here is some information how many queries some of the pages use (most are typical examples of such pages):
- People listing 5
- Group listing 41 (full listing 146)
- Release listing 96 (in a special mode the 834; VERY rarely used)
- Person info up to 26
- Group info up to 27
- Release info up to 66
- Timeline 160
- History listing: one month 40, one year 300, everything (since 1997) 1731(!)
As any decent web developer knows, doing such high amount of queries (especially above 100) on every page load would be crazy to say the least. Well, I am not crazy. Most (as in typically 95 to 99%) page loads do 0 queries. That's right, in best case loading of page is reduced from 129 queries to 0. This is done by caching the pages as they are needed. If anything related to the page is changed, the page will be rendered again, but otherwise every visitor after the first one will be served a mostly static page -- with no database queries. Sidebar and some other parts of the pages are generated on-the-fly, but none of those use database queries. There are, of course, some truly dynamic pages. The quiz, for example, does database queries for every page load. Since it's not cached, it almost never does more than one or two queries in a page load in order to prevent performance hit.
Software used for creating the site
All HTML and CSS used on the site is either hand-written or generated with PHP code, which is hand-written. The editor used for the code is free version Maguma Studio (older version than those currently available). The editor provides IntelliSense-like features for editing PHP code (also for HTML as well, at least to some extent, but it is more annoying than useful).
The graphics on the site were created or composed using Jasc Paint Shop Pro, versions 8 and 9. For capturing still frames from videos I've used VirtualDub which, if you know how to use it, is one of the best available tools for the job.
Originally as the database was an Access database, Microsoft Access was used for editing the database structures. Now that everything is in a MySQL database my tool of choise (in addition to mysql command-line client) is PHPMyAdmin.
I transfer all files to the server using FTP features of the excellent file manager Total Commander. If I need to transfer the entire database PHPMyAdmin is used for that as well, whereas most changes are transferred using a custom-built synchronization system.
As my primary web browser I use Opera, at the moment version 7.54, when I started probably around 7.1; Most of the testing of the features on the site is done on Opera. Mozilla Firebird (at the moment 1.0 Preview version) is also used for testing, although mostly for quickly making sure nothing looks like it's malfunctioning. Similarly Internet Explorer is used for making sure everything works -- it is, after all, despite its merits, the most popular browser. The editor side of the site hasn't been tested at all with browsers other than Opera.
If you want to include software I used for entertaining myself while creating the site, Winamp used to be my music player of choice, but after purchasing an iPod I've been using iTunes. BSPlayer is the video file player whereas I prefer PowerDVD for DVDs.
I don't remember the software versions of the actual server, but the laptop which servers as my development server has Windows XP Professional as its operating system and the pages are served by Apache/2.0.49 and PHP/4.3.7, with MySQL 4.0.20a as database backend. And everything is of course firewalled so that random people don't get on my dev server.
As mentioned in the first chapter, the site was originally concieved in March of 2004. The system took a bit over one month (with roughly 2-4 hours of work every weekday) to get into a state in which data could be entered. The initial data entry process also took about a month, at which point the site was ready to be released -- in theory, that is.
In practise, though, there were a lot of problems remaining. First and foremost, the site was designed to work on a Microsoft Access database (as I couldn't use MySQL on the computer the site was created on). The other problem was that the site was plain ugly [links to the look below this chapter]. And the third problem was that I had no webspace with access to a database of any kind.
The webspace problem was the easiest one to solve. I had already been wanting some proper webspace and I happened to come across a suitable web hotel and all that remained was thinking up a proper domain name. While it was already decided that the site would be named Hello! Database, it was obvious to me that it wouldn't be the domain name, as I would be putting other mini-sites there as well (and it was far from certain if the database would ever be in a good enough condition to actually be uploaded to the space).
The conversion to MySQL turned out to be more troublesome than I had anticipated and until mid-June the project was on hold. Around that time I got more interest with the site again and started with designing a new look. My intention at that point was using the old data, but designing a minimal version of the site as the user interface.
As some of the older systems were being converted, I discovered that in the end, converting the older site to work minimally would be just about as easy, and that's what I did -- I took the old site, and converted some of the necessary pages to use MySQL. After that, the rest of the pages were gradually converted.
As soon as everything was properly converted and working at least moderately well I uploaded the first version, which was kept completely private. The idea was to make sure everything worked just as well on the server (the development environment was on Windows where as the server runs Linux). After some work
every public page worked pretty much as expected and most of the admin pages were fine as well.
The only problem left at that point that every piece of information on the pages was inputted three months before -- lots of data was already outdated and the site wasn't even public. After quite a lot of work the data was up-to-date at around end of July. At that point the site was made partially public, although I didn't spread any information about the site.
Time passed and every once in a while I updated the site to be up-to-date, although the site was only used as my personal reference. In October I started mentioning the site in some relevant contexts and soon afterwards people were starting to use the site the way it was intented to be used.
Links to former looks of this site (first two never used publicly; all images show the same page (Niigaki's); also worth noting that while the 3rd look was in use support for themes was added, and a couple of themes were also included):
|