• Intigriti Easter XSS Challenge 2020 Write Up

    I managed to solve the recent Intigriti Easter XSS challenge with less than 1 hour to spare! Here is my write up.

  • PHP South Coast returns in 2016!

    Another quick note, almost exactly one year on from my last, to say that PHP South Coast conference is returning for a second year. This time PHPHants, PHPDorset and BrightonPHP are also being aided by volunteers from PHP Berkshire, PHP Surrey and PHP South West to put on an awesome community conference on the south coast of the UK.

  • PHP South Coast

    A belated note to say that PHPHants are joining forces with PHPDorset and BrightonPHP to put on a conference on the south coast of England, in Portsmouth! If you are interested in speaking, please submit your talk ideas on the conference website. There will be full 50 minute slots available along with shorter 20 minute lightning style slots available for those looking to get into conference speaking, or just prefer to get it over with quicker!

  • Moved to Jekyll!

    If you are reading this post, you are now viewing my personal website on Jekyll (and GitHub pages)!

  • Article in Web & PHP Magazine

    I recently wrote an article for Web & PHP Magazine about how you can start using Node.js on your PHP website and shows off a real-time news feed using redis. It talks about sharing PHP session data with Node, and in it I use loads of cool technologies like redis, Socket.IO, bower and composer.

  • Strophe AMD Support

    A little while ago, a spent some time hacking in AMD support to Strophe.js, a client-side XMPP library. So far it hasn’t been merged, but if you are interested please comment on the pull request. It would be nice to get this added in so that we can continue to use Strophe as the world slowly moves towards more modular code using something like AMD or ES6 modules.

  • How to Migrate GitLab Repositories to a New Server

    Just a quick post for me to refer back to in the future. I used the steps below to migrate all GitLab repositories and database from version 3.1 to 4.1.

  • Unit Testing Zend_Http_Client Based Web Service Calls

    This post has been sitting as a draft for ages (since before Zend Framework 2.0 ;)) but I thought I should get it out anyway!

  • Debugging ejabberd

    This took me a little while to work out, and will probably be useful in the future so I thought I’d make a post about it and use my blog for the first time in a year and a half ;)

  • NetBeans to Support Zend Framework


  • ejabberd mod_archive with MySQL on Ubuntu

    Follow these steps to enable mod_archive:

  • Vital ejabberd Notes

    Making Changes Stick

  • NetBeans 6.7 and PHP License Templates

    It seems there is a bug in NetBeans 6.7 which means that PHP projects do not work correctly with license templates. If you specify a license to use in the nbproject/ file, the template file does not seem to read that key, and thus the default template is used. This has been fixed in the daily builds, bug report is here.

  • Oft-Forgotten SQLite Commands

    To connect to a database:

  • Git - Ignoring changes in previously committed files

    As the .gitignore file only applies to files which aren’t being tracked, and aren’t in the repository, an alternative method must be used to ignore changes to files which are in the repository:

  • Subversion to Git

    Recently I decided to have a look at using Git for my projects instead of Subversion. Git has many advantages over Subversion, the main one I was interested in is that it is a distributed VCS. This has the benefit that code can be committed and branched in your own local repository and it does not rely on network access. The only downside I can see to this is that you are perhaps less likely to have a backup of your code on a separate machine. Therefore I was interested in setting up Git so that I can still commit my changes to a centralised location for a backup. As a result, this post is intended to serve as a quick introduction to Git and a how-to for setting up a repository for pushing changes to.

  • Introduction to Unit Testing the Zend Framework Quickstart Application

    Update: Things are all change in Zend Framework 1.8, so this may require some adaptation in that version.

  • Trying Out PHP in NetBeans 6.5

    I have been trying out NetBeans 6.5’s PHP support in recent weeks, whereas previously I was mostly using Dreamweaver. Here are some things I think NetBeans does better than Dreamweaver (in CS3, I haven’t tried CS4):

  • Zend_OpenId_Provider_Storage_Db?

    Recently I have been working on a project to create an OpenID provider using the Zend Framework. I was somewhat disappointed upon finding out that there was only the one storage method available - file based storage. Files are stored only temporarily too. Now how useful is this? It’s fine for a quick demonstration of how to setup OpenID, but beyond that it does not serve much purpose if you ask me. Storing user accounts in the database is much more common. So why can this not be included in the core Zend Framework library?

  • Blog

    I decided I would try out blogging with WordPress. Incidentally, the selection of themes WordPress have are quite disappointing.

subscribe via RSS