Games, Google, MPOGs, Technology

Ads by Google

<![CDATA[An image ad for Adventure Quest (an RPG) keeps appearing at the top of my blog in the Google spot. But, it doesn't show the "Ads by Google" link.

It also has a little cross in the top right hand corner that makes the ad disappear…
Google, AdWords, ads]]>


WWE too real?

<![CDATA[There was an bit on the news today about UFC. Apparently brutal cage fights are being banned in various states in America because they’re too dangerous. At the end the reporter said that even where it is banned, you can buy DVDs via mail order and the internet with footage of the action. He then held up the “WWE Bloodbath – The Most Incredible Cage Matches”.


I’m sure that WWE would be offended to be accused of the brutality of UFC and UFC would be annoyed about being compared with fake pro wrestling. Not only that but the DVD contains matches from 1975 to 2002. Early WWE (or WWF as it was) was even sillier in the past.

UFC, WWE, WWF, pro wrestling, wrestling, cage fights, MMA]]>

Games, Personal

Sims 2 is complicated

<![CDATA[Unrelated to almost anything I've written, I just thought I'd suggest anyone remotely interested in god-games to buy Sims 2 now. It has managed the same thing as the Grand Theft Auto series. There is a reasonably structured game in there now to guide you in your actions, but the game is still wide open if you want to do something else entirely.

Most of this structure revolves around the news wants and desires your sims have. They're tasks or events that reward or penalise you and are decided by your Sim's aspiration. The funniest is the "romance" aspiration which has wants such as "Have 2 loves at once" or "Make out with 3 different Sims"…

games, Sims, Sims 2, computer games]]>

Games, Personal

Risk variants

<![CDATA[Ever heard of the board game Risk? If you haven't then unfortunately I'm not going to be the one to tell you about it so go away now :). If you have heard it, this post is going to mention a quick variation on the original rules I tend to play with friends. There may be more in the future.

The modification we play most of the time is to Risk cards themselves. We found suddenly receiving 8 or 10 troops in a country of your choice too powerful (how anybody plays with the progressive-risk-card-reinforcement rule I don't know). So we decided that you only got the two reinforcements in the country on the card. The alteration is that it applies even the country is an oponent (we call it the Paratrooper rule). If you have paratroopers they just attack that country like normal.

Risk, board games, strategy games]]>

Google, Technology

Silliest Google conversion

<![CDATA[If you didn't know, Google can do clever unit conversions. Example conversions include:

1 mile in km
4 weeks in days
4.9 lightyears in au

You can even use compound units:

55 mph in m/s
20 N/(m^2) in Pascals

In fact you can use arbitrary compund units. The silliest I managed to find is:

2 great gross speed of light in bakers dozen furlongs per year

A great gross is 12 gross (a gross is 144).
A bakers dozen is 13.
A furlong is 220 yards.

Google, conversions, silly]]>

PHP, Programming, Technology, Web Programming

Microformats extension to SimpleXML

<![CDATA[I'm writing a PHP5 object that extends SimpleXML to automatically add various microformats. So you could do, for instance, the following:

$xml = SimpleXML_load_file('test.xml');
foreach ($xml->hEvent as $event) {
    print $event->original();

This would print the original HTML of every hEvent found in the HTML document.
XML, PHP, PHP5, microformats, hCard, hReview, hCalendar]]>


Code generation in PHP

<![CDATA[I've started working on a class-based code generation utility for PHP (in PHP). Like the scripting engine it’s working out simpler than I expected. Quite how powerful or indeed useful it could be is yet to be seen.

The way it works is by allowing you to define fragments of classes. For example the Singleton fragment is:

class !className {
    static private $instance;

    private function __construct() {
        // Code Start
        // Code End

    static public function Init() {
        if (!self::$instance) {
            self::$instance = new !className();
        return self::$instance;

You create a class with some number of fragments. Each successive fragments adds specified method and properties to the class. If two (or more) fragments define the same method (probably common with constructors for instance) the the code for the second fragment get’s added in the //Code Start ... //Code End sections.

Ultimately you will be able to change your model (defined in XML and it will update your code accordingly, maintaining all the code within the //Code Start ... //Code End sections.

PHP, code, code generation, programming, PHP5, OOP]]>