Blog

  • We’re all in the Gutter

    I’ve just read my prediction post for last season. ‘This season’s goal will be the same as last year…survival. Plain and simple. Survival is not just in footballing terms but also in financial terms’. Well, 1 out of 2 ain’t bad as Mr Meatloaf might say. So my hopes for this season are exactly the same. Boring eh, for the third season on the trot.

    These recent months have been the hardest months to endure as a football fan. I’ll take the Pepsi test with any other football fan that reckons they’ve had it worse. Man City got relegated years ago yet still gloat to this day at how hardcore they were when they were in the second tier of English football…yawn! Portsmouth is looking at administration in the face…at least you got something for your money. And finally, Chester City who went completely out of business… erm alright bad example. So to demonstrate the past few months in as brief a way as possible…

    Southend was relegated to league 2
    Me : ‘Still, at least it can’t get any worse’
    Southend release 90% of playing staff
    Me : ‘Erm now it can’t get any worse’
    Southend sack long serving manager Steve Tilson
    Me : ‘Ok, this is it now the lowest of the low’
    HMRC take Southend to High Court for administration hearing
    Me: ‘Right, baring a Tsunami this truly cannot get any worse’
    Southend Chairman questioned on sexual assault charges
    Me : ‘Fine, I give up’

    This week though something amazing happened. I actually received some good news. The HMRC dropped its case against us after it was proven that (with the help of Sainsbury’s) we were a viable business that could meet all future tax bills. Hooray! I don’t know how we did it! We don’t (as far as I can see) have any viable assets. Apparently, even the programs have been sold off to another company.

    Things may be bad at the moment but we’re still alive…just. Our team is made up of all new faces and there is a tried and tested manager at the helm in Paul Sturrock. So I’m making 2 predictions, my head prediction says relegation and administration while my heart says playoffs and a lovely new stadium for next year. So we may currently be in the gutter let’s just hope we’re looking up at the stars!

  • RoR Active Records in PHP

    As a developer, you can become a little complacent with the framework and language you’re using. You’ve invested a lot of time in getting yourself up and running so why look at other solutions to problems you’ve already solved? Well, there is more than 1 way to skin a cat, and the other methods out there may mean you can skin 10 cats for every 1 of yours. OK, I’m going to stop with this horrible analogy. This post has come about because I was inspired by the Active Record methodology involved in Ruby on Rails and I wanted to create a PHP version.

    Let’s start with a few examples of active records in RoR.

    
    user = User.find_user_by_email('myemail@gmail.com');
    
    user.name; # Me
    user.age; # Thirty (Just)
    
    user.new(:name => "David", :surname => "Hasselhoff" : occupation => "Life Guard");
    
    

    If you’re not familiar with RoR you will probably be impressed with how easy it is to create new records and generate the setters and getters. If you are familiar with RoR please excuse any syntax errors as I don’t actually write in Ruby.

    My current framework is a custom setup very similar to the CodeIgniter framework. All the data access is done via 2 files, the data access object, and the access object. I have a script which is an automatic code generator that can create both of these files using the database and table names. The data access object is the parent of the access object, this allows any custom queries to be managed by the access object and direct table access to be carried out by the data access object. Therefore for each table in the database, we need both of these files, this can start to add up fairly quickly. Just to highlight this setup…

    Data Access Object

    
    <?php
    
    class DAO_User {
    
     // Private properties
     protected $db;
     protected $db_name = "my_database";
     protected $table_name = "user";
    
     // Table specific
     protected $first_name;
     protected $last_name;
    
     /*
     * Constructor
     */
     public function __construct () {
         $this->db = new Database();
     }
    
     /*
     * Getters
     */
     public function getFirstName(){
        return $this->first_name;
     }
    
     public function getLastName(){
        return $this->last_name;
     }
    
     /*
     * Setters
     */
     public function setFirstName($val=''){
        $this->first_name = $val;
     }
     public function setLastName($val=''){
        $this->last_name = $val;
     }
    
     /*
     * Processes
     */
     public function createRow () {
    
     # Insert code
    
     }
    
     public function updateRow () {
    
     # Update code
    
     }
    
     public function deleteRow() {
    
     # Delete code
    
     }
    
    }
    
    ?>
    
    

    Access Object

    
    <?php
    
    require_once('class.DAO.my_database.user.php');
    
    class AO_User extends DAO_User {
    
     /*
     * Return a list of values
     */
     public function findUserByName ($name="dave") {
    
     # Query code here
    
     }
    
    }
    
    ?>
    
    

    These classes are used by the Models for the framework to interact directly with the database. This is a very clean way of dealing with access to the database but the number of files can get quite large and the code in the model is quite clunky. Issues can also arise when the database is changed or when variables aren’t passed for certain fields (Do we set it to blank or keep the existing value for this field?). I decided to try and create a new PHP class based on the RoR active records approach.

    A strange approach to some maybe, but I decided to write the code to use the class first and then tried to get the class functioning around it. Here is the code…

    
    <?php
    
    class data_access_test {
    
     public function index() {
      $ao = new DataAccess('my_database','user');
      print $ao->find('1')->first_name(); # Expected output dave
     }
    
    }
    
    ?>
    
    

    OK, so in case you are not clear on what we are saying here. We start by initialising the class with 2 variables. The first is the name of the database and the second is the table we wish to access. We then call the find method and pass a specific id of a row in the table. By chaining the methods we are also able to call the first_name method which without a variable assumes we wish to get (if we passed a variable it would assume we wish to set). OK, so now it’s time to get started on the class itself.

    
    private $_dbl; # Your database class to actually talk to the DB
    private $_database; # User defined var for the DB we need to look at
    private $_table; # User defined var for the table we need to look at
    private $_internal_errors = array(); # Store any errors in setting up object
    private $_primary_key_fields = array(); # Primary key holder for $database.$table
    private $_set_primary_key = false; # False by default, if 2 fields create key then we set to true
    private $_fields; # Holder of the available fields in our table
    private $_type; # As above, see desc query on your table for example of values
    private $_null; # See Above
    private $_key; # See Above
    private $_default; # See Above
    private $_extra; # See Above
    private $_row_data; # Holder of all of this row's data
    
    

    To start with we define all of the variables that our class will need to function correctly. Read the comments for more detail on what each variable will be used for. Now, for the nitty-gritty of the object which will happen at the point of initialisation.

    
    /*
     * Set globals to define host user and password
     */
    public function __construct($database = '', $table = '') {
      $this->dbl = new Database;
    
      if ($database != '' && $table != '') {
        $this->_database = $database;
        $this->_table = $table;
    
        if (!$this->setTableData()) {
          $this->_internal_errors[] = 'Database and table not recognised';
        }
      } else {
        $this->_internal_errors[] = 'Require database and table at initialisation';
      }
    }
    
    /*
     * General
     */
    private function setTableData() {
      $sql = "SHOW COLUMNS FROM " . $this->dbl->mysqlEscape($this->_database) . "." . $this->dbl->mysqlEscape($this->_table);
    
      list(
        $this->_fields,
        $this->_type,
        $this->_null,
        $this->_key,
        $this->_default,
        $this->_extra
      ) = $this->dbl->returnRows($sql);
    
      if ($this->_fields) {
        $primary_count = 0;
    
        // Set the primary keys
        foreach ($this->_fields as $key => $value) {
          if ($this->_key[$key] == 'PRI') {
            $this->_primary_key_fields[] = $value;
            $primary_count++;
          }
        }
    
        if ($primary_count > 2 || !in_array('auto_increment', $this->_extra)) {
          $this->_set_primary_key = true;
        }
    
        return 1;
      }
    }
    
    

    The construct of the class sets up our database object so that we can talk to the database. We check that the user has passed the 2 required variables, if they haven’t we assign an error message to our internal errors variable. I find it useful to have an internal errors variable that way if there are any issues you can simply check this variable to diagnose the problem. If we have both the database and table we can go about setting up our object, this is all done in the setTableData method.

    This method begins by doing a DESC query on the table. We use the return variables to set our fields, type, null, key, default, and extra properties. The final thing this method does is check the primary keys. I had a number of problems with my original DAO files when I tried to generate the files for a table with multiple primary keys. By setting our primary_key_fields variable we can make a decision as to whether to allow the user to set and get this variable. The decision I’ve made is you cannot set the primary field if there is only 1 primary key. If there are more primary keys then I set my set_primary_key flag to true to indicate that we can allow this field setting.

    So how do we set and get variables on the fly when we don’t have the methods already set? Well, we can do this by using the __call method.

    
    /*
     * Use name to check what field we are setting or getting
     */
    public function __call($name = '', $arguments = '') {
      // Only proceed if there are no internal errors
      if (count($this->_internal_errors) == 0) {
        // Check that this is a valid field
        if (in_array($name, $this->_fields)) {
          // We have an argument so set, otherwise get
          if (!empty($arguments[0])) {
            if (!in_array($name, $this->_primary_key_fields) || $this->_set_primary_key === true) {
              if ($this->checkFieldDateType($name, $arguments[0]) == 1) {
                $this->setData($name, $arguments[0]);
              } else {
                $this->_internal_errors[] = $name . ' cannot be set as it fails the type check';
              }
            } else {
              $this->_internal_errors[] = $name . ' cannot be set as it\'s a primary key';
            }
          } else {
            return $this->getData($name);
          }
        } else {
          $this->_internal_errors[] = $name . ' is not a recognised field in this table';
        }
      }
    }
    
    

    I’ll now talk you through this method and then show you the get and set methods. The first thing this method does is to check the internal_errors property, we don’t want to try and set something if we’ve had a problem setting up the object. We then check to see if an argument has been passed, if it has then we can assume the user wants to set a variable. We check whether the method name is a primary key and whether we can set it. If allowed we finally check the argument against the data type set for this field (I won’t go into detail about this method but it’s a good way to ensure data integrity by ensuring it matches the type of data acceptable for that field) and then pass to our set method. If there are no arguments then we simply send it to the get method.

    
    private function getData($key = '') {
      return $this->_row_data[$key];
    }
    
    /*
     * Setters
     */
    private function setData($key = '', $value = '') {
      $this->_row_data[$key] = $value;
      return $this;
    }
    
    

    Fairly straightforward forward huh? Our set method simply uses the name passed to the __call method (aka table field) as the key for our internal variable _row_data. The return $this allows us to chain methods in this object. The get method is even more straightforward and just returns the value currently assigned to this key (aka table field). Ok, so if we look back at our original code we still need to define our find method.

    
    /*
     * Find record using unique id
     */
    public function find($record_id = '') {
      if ($record_id != '' && count($this->_primary_key_fields) == 1) {
        $sql = "SELECT * 
            FROM " . $this->dbl->mysqlEscape($this->_database) . "." . $this->dbl->mysqlEscape($this->_table) . " 
            WHERE " . $this->_primary_key_fields[0] . " = '" . $record_id . "'";
    
        $results = $this->dbl->returnRows($sql, 'non_list');
    
        foreach ($results[0] as $key => $value) {
          if (!is_numeric($key)) {
            $this->_row_data[$key] = $value;
          }
        }
      }
      return $this;
    }
    
    

    Our find method checks that the record id is available and that there is only 1 primary key. A query is then generated to return all of the information in that table row. The columns of the rows are used as keys in our internal _row_data variable and the value is the cell data. When we now call a get on any of the columns we will get the data we require…bingo!

    My class also has methods for creating new rows and updating rows. If you’ve come this far I’m sure you can figure these out for yourself. This class is far from perfect but it’s a good start. One of the problems you may have already noted is what if we want to set an empty value? Also what if we want to return multiple rows? If you have any ideas on it please share them with me 🙂

  • Celeb-Pity

    Sitting in the dentist’s waiting room I have a choice of Essex Homes or a glossy celebrity magazine to browse through to kill time. In hindsight, I should have opted at looking at maisonettes in Ockenden. Flicking through the pages of  ‘Empty Monthly’ really brought home the point. What a shallow world we live in! I became depressed. Of the 4 magazines I flicked through, there was not a single article of any worthiness. Not a single sentence worth reading. Not a single word over 3 syllables.

    The focus of these magazines seems to be on the latest 15-minute celebrities. Big Brother is the theme of the more recent magazines. I kept asking myself ‘Why do they focus on THESE celebrities? Of all of the people in the World who have any distinguishable talent, the editor has chosen to do a piece on Pixie Chantel Smith, the lesbian, skinhead, Tourettes, nymph rocker from Skegness who has just been kicked out of the BB house’. Is it because Pixie has an in-depth philosophical outlook on life and our existential existence?

    Then I had an epiphany. No…..it’s because their fame is in the grasp of everyone! You don’t need any concern-able talent to become part of THIS celeb club. In fact, talent would probably hold you back. Maureen from Driving School became a celebrity because she couldn’t drive. Jade Goody became famous as a ditsy blond who was slightly racist. These are hardly attributes that should be desirable, they are however easily attainable. So we have no talent and we’ve changed our name to Starbustron3000….what next?

    Well, the remaining padding on these magazines is filled with pictures of gorgeous models to show us how we should look. There are even tips on how to achieve these glamorous looks. In case we were still in doubt about our credentials for becoming a celebrity the remaining sections are dedicated to making proper celebrities looking rough. Anna Hathaway looks terrible here what a crap celebrity’…erm but isn’t she an actor with some discernible talent? Now we’re thinking ‘Wow they look like crap in the morning just like me! Ergo I can also be a celebrity!’

    How depressing is this! I mean seriously, are we really meant to look up to these people? Be envious of these beings that would do anything to be the center of attention? I’m proposing a new magazine. It can still have glossy model pics, makeup, and fashion tips. However, all irrelevant talentless celebrity pieces will be replaced with actual celebrities giving interviews on how they became a great musician, author, artist….zoologist, etc… Anything with some level of merit. Come on ladies set your sights a little higher!

  • England: The Solution

    So we’ll be hanging on to the ’66 victory for at least another 4 years. I can see us hanging on to that for a lot longer though. My dad reckons it’s because the schools are discouraging competitive competition. I agree that this doesn’t help, however, I think the England team did at least try very hard. They just weren’t very good.

    The more traditional football fan still believes you can win the tournament playing a traditional 442 style. I’m not convinced. The game has evolved so much in recent years. The win has become so important that teams no longer seem to just ‘go for it’. The underdog will attempt to get every man behind the ball and hope for something to happen on the counter. The Final itself was a clear example of this. The Dutch game plan was to disrupt the Spanish, and it almost worked. This made for a very poor game of football.

    With our trusted 442 system it relies on there being space for the wingers to get to the byline to cross. Against Algeria, this wasn’t ever going to be possible.
    So what system should we be playing? Well, it’s up to the manager. What no answers Len? Well until we have the players with the level of ability required it’s irrelevant. There’s a serious lack of English talent at the moment. You look at the world champions and you’ll note that the majority of them play for Barcelona and Real Madrid. Our best players do come from Chelsea and Manchester United, but where do the rest come from Portsmouth, West Ham, and Blackburn. You get the picture. We need to look at the grassroots and adopt a model similar to the Spanish.

    Johan Cruyff introduced the total football theologies when he went to manage Barcelona and the Spanish style of play has also adopted this.  I’m not convinced that style of play is what the England game is all about. Instead of a slow ‘tippy tappy’ approach, we tend to play at a great intensity of physicality and speed. However, when we play at the international level this approach never seems to be part of the game plan? Whether this is due to the foreign manager or whether our mentality suggests we should play in a ‘continental’ manner I don’t know. I would like to see us look at our nationalistic strengths and build on these at a grassroots level.

    Here is my 3-point plan to help build a World Cup-winning side.

    1. The first is to limit the number of foreign players per team in the Premiership. This would force teams to invest in (and actually use) their youth teams.

    2. I would introduce football academies across the country funded by the FA. With the amount of money in the Premiership at the moment, I’m sure this shouldn’t be a problem.

    3. A salary cap in the Premiership has to happen. It’s gone far too far now. It’s time to make these spoilt children slightly more humble. If they move abroad then so be it, they can still be picked for England 🙂

    England for the cup in 2030!

  • Gazza for England Manager

    Mental! I know, but hear me out. I’ve listened to a number of theories as to why England is so poor in this tournament and I don’t believe a single one. The fundamental thing is the players look tense and tired. This pressure is caused by the media’s ‘build them up to knock them down’ ethos (see previous rant). You look at some of the fearless teams (New Zealand being a prime example) and they’ve played well beyond any expectation. Can you imagine how England would play if they were relaxed!

    That’s where Gazza comes in. I’m not condoning red bus jaunts with dentist chairs and meat pies. However, Gazza would make training fun. The players may even start enjoying football again. Can you imagine Jimmy 5 bellies as his number 2, brilliant! What better example of getting someone crazy in charge than the Argies. Maradona has already mocked Pele, and Platini, and discussed his young girlfriend. This limelight is probably welcomed by his players as it leaves them to concentrate on the matter at hand (no pun intended). With a controversial manager at the helm, it can help produce a siege mentality which has proven very successful for one Jose ‘special one’ Mourinho.

    So if we go out tomorrow the following will happen, Capello will be paid a massive golden handshake and we’ll begin our search for another expensive manager. If the new manager is lucky he will see us exit another major tournament early doors. And the process will start again. Sound familiar? We could save our selfs a fortune by buying some Newcy Brown Ales and giving a call to the Newcastle priory!

  • National Disgrace

    Wembley, the history, the dreams, and the £6 soggy pizza. OK, in case you’re wondering why a Southend fan was at Wembley it wasn’t to watch the Quo or to see the Chuckle Brothers (who were in the Rotherham end by the way). It was in fact to watch Dagenham in the league 2 playoff final. The main reason for the visit was to watch Paul Benson (a friend from school) who is currently playing up front for the Daggers.

    The game itself was great. Beano scored and the daggers won 3-2 in a thrilling game. Halftime was a different story! A baying crowd demanded booze from the idle staff. Apparently, it’s essential that alcohol is served at half-time on the dot and not a second before!

    Eventually, I got to the front where the following conversation took place.

    Me : ‘6 beers, a bottle of water, and a slice of pizza please’
    Vendor: ‘Vegetarian or meat’
    Me: ‘Meat’
    Vendor: ‘We only have vegetarian’

    Me: ‘Right!’

    I could sense the angry crowd behind me getting angrier.

    Me: ‘Whatever, just hurry up’

    He proceeded to get the only manky bit of pizza remaining from the shelf and handed it to me. He then started to pour each and every beer individually from bottles. I eventually got my order which cost £30 and I even had a spare 2 minutes to enjoy my £4 beer and £6 rubber bread pizza!

    I’m trying to work out why our national stadium would be so chaotic?? Perhaps it was the fact that the crowd was lower than normal or maybe that Millwall had played the day before (I assume drinking the place dry). The organisers are surely missing a trick here. How often are Dagenham and Rotherham fans going to get to go to Wembley? Why not make it a trip to remember! Without this debacle, fans may choose to come to Wembley for other events like the Quo!

    By the way, I hate the Quo…love the Chuckle brothers!

  • DePRESSing

    I’ve always known that the press in this country are a bunch of scandalous cads. I’ve some personal experience as one of these creatures (from the ‘Screws of the World’) slim-ed his way into our school after hearing a sixth former had got one of the teachers pregnant. By the way, back then this was a big story! There was no code of conduct or etiquette that you may expect from a man representing such a fine national institution. His tie was halfway down his undone shirt as he appeared from the back of the school where we were playing football. He asked us whether we knew anything before he was shepherded away by one of the teachers. There is one thing that has only become more apparent in recent years though, how bloody hypocritical they are!

    Front Page“Pubs ban England Shirts – Outrage”
    Back Page“What’s your game, Fabio? – Capello signs up for online game”

    Front Page“Triesman fix claims”
    Back Page“Remember the war England”

    Front Page“Terry Scandal”
    Back Page“Do it for Sir Bobby”

    You get the picture. These papers claim to be ‘behind our boys’ but I’ve never heard such nonsense. If I’m fully behind something I don’t try my utmost to undermine it at every possible opportunity. I’m fed up with hearing the defense ‘Oh, that’s our press they’ve always been like that’. We can stop it now by just not buying their papers. No one is cleaner than clean in the world, so I don’t expect the England football team to be any different. The Daily Mail set up Lord Triesdman by getting his personal assistant involved in the sting. Nice one! Don’t want to host the World Cup then. So come on Fleet street, stop playing silly buggers at least for a couple of months!

  • Out with a shrimper!

    So another rubbish season, slightly more rubbish than last as this year we were relegated. You look at the League 2 fixture list for good weekends away ‘Bournemouth has a good nightlife…oh no wait..they went up’. A depressing conclusion to an absolutely crushing year. This time last season we were the in-form team, if our run of wins started just slightly earlier we could have made the playoffs. How does this momentum turn so dramatically? I believe it all started with the departure of Peter Clarke, our player of the season for an outstanding year at center half. We’ve tried to replace him but just have not found anyone even close. Last year we also had a defender called Dervite on loan from Tottenham, who again seems to have been irreplaceable.

    Let me tell you about a guy called M’Voto. He’s the guy that was brought in on loan from Sunderland to fill in this massive void. Unfortunately, his best spell at the club was when he was injured. This man was substituted after 12 minutes during a RESERVE match, having scored an OG and set up a second for the opposition. After such an illustrious start we decided to extend his contract for the remainder of the season. He’s now what you would call a regular.

    Ok, I’m probably being a bit harsh. All the blame can’t be placed on this one player but it demonstrates the difference in quality from this year to last. Poor players with high morale should definitely be good enough to stay in league 1 (think Oldham). The morale of the team was probably a little bit dented by the fact they were always being paid late. The old ‘too good to go down‘ adage was banded about by quite a few of the faithful but I don’t know what games they were watching. Yes, we can keep the ball and play nice triangles and even play a great long pass every now and then. Can we keep a clean sheet …erm No! Can we score at the other end…scratching my head? A lot of teams can win dirty which sometimes is the key, especially at home. We may have been alright if our top goal scorer stayed, but you can’t seriously rely on a single person to get all of your goals.

    So, the last game of the season Southampton away. A brilliant turnout by the blues fans, and the effort on the fancy dress front was great. I spotted a Father Christmas, a Darth Vader and the worst drag act since Tarzan went through Jane’s purse and ate her lipstick (kudos Blackadder). Amusing chants of ‘Where ever we’ll be we’ll be, we’re going to Shrewsbury’, after another wayward strike ‘that’s why we’re going down’, and the same chant again when our physio lost the race with his counterpart to the other side of the pitch. Southampton fans were applauding our crazy antics, twice we’ve been relegated at St Mary’s and celebrated like we’ve won the league. What must they think?

    Looking to the future then. Well, I can’t see the situation changing at the club anytime soon. The economy seems more uncertain than ever, so loans for Football stadiums are not top of everyone’s agenda. So the aim for next year is to stop the rot. If we can hang on to our better players then we should try to do so. If we can’t afford them then we have to let them go. The turnover will be less next year so the player’s wages will be even more of a struggle with gates of just 3500. I remember a dreary cold Tuesday night loss at home to Boston thinking can it get any worse than this. I suppose we’ll see next year, won’t we 🙁

  • Who’s to blame?

    Sometimes shit happens! When are we going to get out of this blame game culture? ‘Oh no another rant’ I hear you say. I need to get this one off my chest though so listen and listen well. The straw that broke this particular camel’s back was the news this week that there has been an inquiry into the emergency services for their action during the 7/7 bombings. The gist of the hearing is that some of the victims were still alive directly after the atrocities, but later died due to the time taken by the emergency services to get to them.

    This is a rather sensitive issue so I’m going to state very clearly that my heart goes out to the victim’s families and no one should have to endure the pain they’ve gone through. You can sense a very heavy-hearted ‘but’ coming here …but why do we feel we need to make the emergency service accountable? Isn’t the blame for this one purely put at the door of the terrorists, or expanding on this further, the groups behind funding and training the terrorists. Apparently not. My more cynical side tells me that it’s because a litigation case against Al Qaeda may be difficult to get off the ground. Whereas the emergency services probably will be where the compensation’s at.

    I’m not saying these families aren’t entitled to a full inquiry and compensation but I believe there’s a national incident fund set up for these extreme circumstances. People seem to think that there is a magic pot of money for all of these successful claim hearings. There isn’t ok just so everyone is now clear. The money for these compensation claims has to come from somewhere and the holes may be plugged by cutting costs in yes, you’ve guessed it the emergency services. Vicious circle time.

    My last point is I’m all for full reviews of these incidents, how else do we learn and improve things. But we need to understand what an outstanding job the emergency services did that day. We could throw money at it so that for the next terrorist attack we’d have the most well-oiled machine. Sounds like a huge expenditure for a rare eventuality to me. Besides, what money is left after Dave from Cheltenham sued the local NHS for £10,000 for slipping on a wet floor at his local A&E?

  • Land of Hope and Glory?

    Have the English teams been overachieving recently? Of course, they have! You speak to anyone in Europe and they’ve spoken about the English game as if it’s the zenith of football. This year’s Champions League campaign just proves what can be achieved if you give your opposition the respect they deserve and not what you think they deserve.

    How many top stars does the premiership have? I mean top stars, stars that attract Pepsi. Precisely, last year as a neutral I enjoyed the Ballon d’Or as I had someone to cheer. Love him or hate him Christiano Ronaldo did his bit to promote the English game. Why didn’t we attract more top stars when our league was perceived to be the best? Simple, the weather. I’m sure you get to a point with your ludicrous wages that you can afford to take a 20k pay cut for a bit of sun and glamour. Man U, Man City, Liverpool, and even Arsenal will never be able to compete with the lure of playing for Barcelona, Real Madrid, or even AC Milan. I would have loved to have seen Ronaldinho in England but Milan or Manchester. If my knees were in better nick, my lungs weren’t that of a pensioner’s and I was any good at football I’d know who I’d pick. Well until Southend could afford me that is!

    What about Southend United I hear you shout. Well, relegation is looming and it looks as though our worst nightmares have come true. Depressing as it is watching League 1 on a Tuesday night over Champions League games, League 2 football is a whole new kettle of fish. If we survive financially in the coming months I’m sure we’ll be back. We have a great fan base and I’m sure we’ll keep the faith. Our latest court appointment with the tax man has been delayed by another week. To me, this makes no sense. I’m sure the ‘paid by the hour’ lawyers would be able to explain why it’s beneficial for the club to delay paying the tax man for as long as possible. I think the damage to morale, the further legal fees and the worry of the fans isn’t worth the week’s worth of bank interest. That is if we actually have the amount due of course!

    On lighter news Player are going to do one-off gig this summer so keep your diary free. I’ll keep you posted!