| FF1GP - The last race of 2006 |
| Tuesday, 17 October 2006 | |
|
In about 4 days time, the motorsport world will be focused on Brazil, for one of the biggest showdowns in history. Fernando Alonso only needs 1 point to become Formula 1 world champion. Micheal Schumacher needs to finish 1st and get 10 points, while hoping that Fernando Alonso does not finish in the points. For the FF1GP website, it's time for me to get going on the new code for 2007. The Fantasy Formula 1 Grand Prix website - http://www.ff1gp.com has been a pet project of mine for a long time, ever since 1997. The game is quite simple. You pick 2 Formula One drivers and 2 Formula 1 Teams, and they score points depending on how they do in the race weekend, but it didn't start as a webpage. In 1997 I started a office version on a Excel spreadsheet, before it moved to a Access 2 database. The first design worked, until a driver that year moved team. The driver in question broke his contract with the first team he was with, but in my case that driver broke my database design. In 1998 it had moved to a Access 97 database, and I was also studying at the University of Plymouth. There I looked into Perl and CGI scripting, and I hit on the idea of doing a online version, which was a success. 50 teams entered! In 1999 the website design improved a little but it was still a case of passing txt files between the web server and my PC using Access 97 and using Perl CGI scription to display the data. The amount of times I screwed up the scripts becuase I had the wrong export settings from Access 97. In 2000 the FF1GP had one of it's biggest updates. The calculations for the scores was done using a custom application written in Delphi with Paradox tables. As for the website, that was re-written to PHP version 3. It still used txt files to hold the data on the server. In 2001, the website moved from my computing society website to a new co-lo server, where it is today. It had a new domain name http://www.ff1gp.com The database backend also changed to MySQL, but the updating was done on a local server by pulling a database dump off the main server, updating it, and dumping it back. I could have done it using a SSH tunnel to the MySQL server, but on a 56k modem, and a inefficient calculation program, it was too slow. The program just bangs out lots of SQL queries. In 2002 the site didn't change that much, but at the end of the 2002 I had a broadband connection so I could use the calculation application and a SSH tunnel, which saved on the database dumping, but the calculation application was still slow. Come 2003 I did a rewrite of the application to separate the presentation from the business logic and database layer. I also moved the calculation from the Delphi application to a Perl script located on the server. Just as well as I did as the number of teams rocketed. The script is still used today, but I think the rest of the system admins wished I didn't use my beat-the-hell-out-of-the-Mysql Perl script. The script is still based on the design of 2000, where it still pumps out thousands of SQL queries. The years 2004 to 2006 have only been updates to the presentation and the rules, so it's largely the same code from 2003, but it's starting to show it's age, both in design and coding methods. Now I've started work on the 2007 website, which is a re-write from scratch. There is a new framework going in, to support AJAX, SOAP and maybe mobile browsers. The code is going to be PHP5.1/5.2 and support UTF-8, so people can have funcky international names in their team names. The database design is also changing as well, as the design is based on the 2000 design which suited txt files, rather than relational databases. So how is it progressing, a lot slower than I hoped. One of the reasons is the THN sucked my resources, and will do so until at least the end of November 2006, but when I last stop coding, I was making some very good progress on the DB layer. Now to make my life easier, I'm probably going to put the website in maintaince mode a lot earlier than usual, so the data migration can take place a lot more easily. |