Skip to content

PHPlot, MySQL and the Dark Ages of Camelot

The Dark Ages of Camelot (DAoC) is one of a number of Massive Multiplayer Online Role playing games (MMORPG) available for people who like those types of things. Mythic Entertainment, the company behind DAoC decided to offer an xml feed with various statistics about the game including the number of active players. From April 2002 to July 2005 I used a cron job to query the xml feed once every 5 minutes, parse the results and store the statistics in a database table.

I made a graph of these statistics available on a fan site I operated. The graph used the open source PHPlot graphing class in order to draw a line graph charting the number of players playing the game by hour for a 24 hour period. Visitors to the site would see the line graph shown here, plotting the number of players per hour against a second line showing the day's average. Like many PHP graphing libraries, PHPlot assumes that you have the GD library installed and available to PHP on order for the graphs to work.

This was one of my early experiments with PHP, and illustrated its power and flexibility. Now that the site where the graph appeared is no longer online, I figured I would provide the code, and a small subset of the database, for people interested in how to program with PHPlot. At the time I created this code, PHPlot didn't have much documentation and required some trial and error experimentation. Of course, since then (several years now) PHPlot has been improved, and should definately be considered if you want graphing in your application. Because I don't want to spend time debugging old obsolete code, I've provided the library I used in the download along with the graph script. It would probably work with the latest release, but I don't have time to test it. You can download my example database, version of PHPlot and script here. The database contains one months data, so you can play with the script and explore the class.

Read on for some brief instructions and an explanation of the code. Continue reading "PHPlot, MySQL and the Dark Ages of Camelot"

Joomla (Mambo) Core ERD diagrams

I have a small project that involves an implementation of Joomla (a fork of the popular PHP/Mysql based content management system Mambo). I started with Mambo and during the time I was configuring the site, the core developers of Mambo left to create the Joomla project. The reasons for this are discussed on their OpenSourceMatters website.

Suffice it to say, I find an Entity Relationships diagram to be very helpful in understanding the architecture of a database driven application like Joomla. There wasn't one available, so I decided to reverse engineer the database, and created these diagrams, which break the core database down into a few functional areas.

UPDATED At one time my pdf version of this was hosted by Joomla, but in one of the many moves of source code, the links to it were broken. You can get the pdf with all the views here.

User and Security Subsystem


Backend (modularity and extensibility) Subsystem


Content and Presentation Subsystem


Banners


Logging
Defined tags for this entry: , , , ,

RegEx and the Mod_rewrite reference sheet


Dave Child, a Brighton UK based Web developer offers a series of free Reference/Cheat sheets that I think most web developers will find of value. He obviously invested a lot of time and effort into them and it shows. He's created free cheat sheets for MySQL, Javascript, PHP, RGB colors and the subject of today's Gizmola.com entry, Apache mod_rewrite. If you've used Apache there's a good chance you've heard of mod_rewrite, although you might not understand what it can do for you. Lately, a lot of PHP scripts are including functionality that will create mod_rewrite rules and add them to a .htaccess file to support "SEO friendly" url's. Serendipity, which runs my blog, and the popular PHP Content Management System Mambo/Joomla are just two examples of packages that can do this for you.

For example, if your script uses a parameter like this: http://www.yoursite.com/home.php?id=5

A mod rewrite rule can allow users to use: http://www.yoursite.com/home/5/

Many search engines seem to penalize sites that use URL parameters, and are more likely to index and value the non-parameter version. Of course, that's not all that mod_rewrite can do. Many people use it for its ability to offer at least a layer of Hotlink protection, or to handle things like forwarding visitors from obsolete pages that might exist in a search engine to the new ones.

Using and understanding the black magic of mod_rewrite requires a basic understanding of Regular Expressions or as they are typically known: RegEx. If you're new to RegEx, think of them as wildcards on steroids. The October Lampsig meeting will present RegEx basics, and if you're in Los Angeles, definately try and attend the presentation, which will be given by Peter Benjamin. Check out Dave Child's succint reference for this powerful module whether or not you plan to attend Pete's presentation.

Continue reading "RegEx and the Mod_rewrite reference sheet"