Login
Home

Search by nation
Search by letter
Search for

Statistics
About the site

View Wanted Bands

History


I created this music database site for three reasons:

  1. I wanted to see if I could.
  2. I wanted a way to organize, track and catalogue all the music I had (and didn't have).
  3. I wanted to learn PHP, MySQL and web development in general, and I wanted to do it by creating something I would actually use.

The inspiration behind the entire idea originated in late 2003 with a buddy of mine. At the time I had around 1000 songs, and he had several thousand. When we saw each other we would exchange music and add to each other's library. We decided to have a friendly competition to see who could amass the biggest music library. For a few months I downloaded everything I could to catch up to him. Partway through 2004 he stopped but I kept going; I liked all the new bands I was finding plus I thought it was cool to be growing such a large library of music.

Me being the perfectionist that I am wanted a way to organize all my music to find out what I had and what I didn't. If I had a few albums from a band, I'd want them all (there are exceptions). I wanted to keep track of songs I was missing, or bands that I was interested in but didn't have any material from. This compelled me to create a database. I decided this in late 2004 in my first year in college.

My first attempt was not online, but rather with Visual C++ 2003, backed by a Microsoft Access 2003 database. At the time I did not know C++, nor was I very accustomed to the .NET Framework or Visual Studio in general (I was a Java programmer), so I was learning C++ and SQL commands as I went. As I worked on the interface and the backend, it became abundantly clear that I didn't know what I was doing, and thus I had to abandon the project.

I still possessed the idea of having a personal music database, and I kept my Access database for some time. Of course, using it wasn't exactly user friendly without a front-end GUI to make things easier, and I became increasingly frustrated with it.

During all this I was (and still am) a big fan of the site Metal Archives. I would visit it almost daily to get information on metal bands and to discover new ones. I have always admired the site and its contribution to metal in general (I even adopted its points system just for fun). This gave me the idea of creating an online database and GUI for my music database. At the time, it seemed like a far-fetched idea since I had almost no web development experience, nor did I have a place to host a website and a database.

This idea was put on hold for a while as I was now in my second year of college learning PHP and MySQL, and what would later be the foundation for which I'd build my current site and database. I was fascinated at the ease of PHP and MySQL, and how easy it was to integrate them. We did random assignments that taught me the things I had wanted to do but didn't know where to begin. Each student had space on a local school server to host the websites and the database to use with the assignments.

While I was learning how to program PHP and MySQL in class, out of class I was creating ideas for the overall design and look of the site, and how I was actually going to get it to work; I knew what I had to do, I just had to figure out how I was going to do it. I was also taking Oracle courses, and now had a solid foundation of SQL commands under my belt and overall database concepts and design. I used this to design the database and table structure of the site.

As I mentioned earlier, I was a huge fan of Metal Archives, and as you can undoubtedly tell, I used its general layout and look to create my site, with some changes here and there, and a different colour scheme, though personally I like theirs more. At the time of its creation, I was only writing the site for Internet Explorer (version 6 was the latest), and only until recently did I test it and make it compatible with all major browsers.

Towards the end of my second college year (early 2006) I had the basic design and layout of the site done, and I had actually created the database. I was using the same server that I had used in class, since now I had gained the knowledge to fully use it. After completing the PHP and MySQL course, I could now create databases, insert data, update and delete. Everything I needed to begin.

Around April 2006 I started adding data to the database through the site, and my online music database was born. What I had learned in the previous year and half was finally being applied to something I wanted to do. Throughout the summer of 2006 I was adding more and more data to the site, while making other changes and adding other functionality.

However, in the late summer of 2006, just before the start of my third year in college, my site and database suddenly disappeared. I quickly found out the college had suspended my account (and everyone else's in my course) and deleted my information on the server since I was no longer enlisted in a course that required a server account. Everything I had worked on for the past six months was deleted.

This of course infuriated me, but luckily I had a copy of all the website files on my computer at home, so it was not a total loss. While the database was gone, I could still easily upload my PHP and HTML files to another server and begin again almost immediately.

However that posed a problem now, one that I faced in the database's early stages: where could I host my site and database? At first I tried hosting it myself, on my own computer. I did research on Apache, PHP and MySQL and even bought a book that concentrated on integrating the three. Despite fighting with it for weeks, I could not get the MySQL database server to work properly on my own computer. Apache and PHP were functioning as they were supposed to. No matter what I did I could not get MySQL to work properly. I eventually abandoned the idea and looked elsewhere for alternatives for hosting my site and database.

Eventually I turned to purchasing webspace, something I wanted to avoid for two reasons: first and foremost, I wanted to have complete control over my site and the database. Having it hosted somewhere else would not allow me to do that. Secondly, it costs money. I had not done my research at the time so I didn't know how much it was going to cost, but I was hoping to do it for free.

As I began looking into buying webspace, a friend recommended to me a hosting company by the name of A Small Orange. He told me he was currently using it. I checked it out, and realized the cheapest package (which was all I needed) would only cost me $2 a month, an amount I was completely willing to spend, and an amount I felt was worth not hassling over maintaining my own server.

On October 3, 2006 I bought the 'tiny' package and began uploading my files to begin building my site. I created the database the same day and began adding data to it almost immediately. A week later, on October 10, 2006, I bought the domain mymetalcollection.com for $10 a year, less than one dollar per month.

Since then I have been adding data to the site by hand; the process is very tedious and very time consuming. So much that I stopped all downloading on March 16, 2007 so I could 'catch up' and add the data to the site. I finished adding all the data on October 12, 2007, just over one year later. Downloading can now recommence.

What's next? I'm currently looking into creating a GUI interface in Visual Basic .NET 2005 so I can add data to the site programmatically. This will allow me to add data about ten times faster and more accurately, and not require nearly as much clicking and typing. This is in its early stages however, and I will probably continue using the current system for a long time. I am also looking into making the site more efficient, now that I've got the basis of it created and in use.


September 23, 2010 addendum

A few days ago, A Small Orange, the hosting company I use, upgraded their version of PHP. Due to this change, my website broke. It functioned for the most part, but some things didn't work and there were error messages on most pages. I decided to take this opportunity to redo my website from the ground up. It's been nearly five years since I wrote the code for this site, and my knowledge of web development and programming in general has certainly increased in that time. Looking over some of my old code made my eyes bleed. I felt this was a perfect opportunity to do things the "right" way. Or at least better, anyway.

The website itself looks virtually the same as it did before; majority of the changes are in the background and "under the hood". Since I am quite nostalgic, I'm keeping the old site. It is located here (along with the error messages). Keep in mind both versions of the site use the same database, so the changes made in the new version will reflect in the old. I decided against redoing the database structure, even though I would do several things differently today.

Here's a list of changes:

  • The entire site has been written to W3C standards; it is valid XHTML 1.0 and CSS Level 2.
  • There are no more frames.
  • Character encoding has been optimized to best represent the international content of the site. Due to this, some titles may contain weird characters. I fix them when I find them.
  • The authentication process is more secure.
  • A 53% reduction in file pages. For the old site, some processes required up to three pages; I've now combined them into one.
  • More emphasis has been put on CSS.
  • I even corrected a grammar mistake on this page!

I was going to count how many lines each version used to see the reduction in the new version, but honestly I cannot be bothered to go through each page and figure out the totals. I estimate the lines of code have been reduced by at least 30%, while increasing efficiency. There are probably other changes that I just cannot think of at the moment, but those came immediately to mind.

I don't really have a "what's next?" this time. I never wrote the application Visual Studio, but I don't really need it; adding data to the site has become second nature to me, plus the few tweaks I made in the new version will make it even easier. I suppose now I will concentrate in reducing my missing albums and songs and trying to hunt down the elusive bands on my wanted list.

One idea I am toying with is adding a feature on either the login page or the home page that displays random tidbits of info related to metal on the particular date. It will be a "on this date in metal..." sort of idea. Just for fun. It's not exactly required. I am not sure how I want to do it or what I'll include, but it's in its early planning stages.