Thoughts on website ideas, PHP and other tech topics, plus going car-free
Writing (page 1)
Categories: Technical | 1 Comment

Some code I’m working on requires that a table is locked against any reads or writes for a short duration, and I’ve found that, with MySQL 5.1.x, any other tables that are accessed within the same lock period need also to be locked. So, I was doing something like this: This fails on the select […]

Categories: Meshing, Projects | 3 Comments

Introduction One of the challenges in Meshing is to determine how to store previous data in a database. How many reads and writes need to be carried out is important, as this will have a direct impact upon performance. I’ll document some of my ideas here, mainly to solidify my understanding of it – and […]

Categories: PHP, XML | Add a Comment

Today I had a requirement to match an XML path where a part of the path must have a specified attribute that does not have a specified suffix. Additionally, the solution must be in SimpleXML, and so cannot use the XPath function fn:ends-with, since that is part of XPath 2.0 and hence isn’t supported. Phew! […]

Categories: Meshing, Projects | 1 Comment

To help illustrate my P2P database proposal, this article looks at three use cases in some detail: a recruitment agency network, a no-agencies jobs network, and building a large dataset of public transport routes.

Categories: Meshing, Projects | Add a Comment

This article sets out some technical concepts for my peer-to-peer database proposal, and suggests that PHP plus a decent ORM (such as Propel) would be a good, easy-to-deploy platform, with modest hosting requirements. I briefly look at peer trust, data transfer, versioning and how to keep the network balanced.

Categories: Meshing, Projects | 3 Comments

I present a proposal for an open source software package that permits individuals to create and maintain cheap, distributed, de-centralised, crowd-sourced, scalable, relational databases. I explain why I think this would be useful, and briefly explore some possible use cases.

Categories: PHP, Symfony | Add a Comment

I was recently in the process of moving some sites to a new server, and found that a particular format of URI was not working on the new server: http://myserver/frontend_dev.php/criteria/analyse Normally in a symfony application, the default .htaccess file ensures that anything after the controller (i.e. frontend_dev.php) is simply passed to that controller, rather than […]

Categories: Mac, Technical | 47 Comments

Whilst I am warming to the “Mac way” of doing things, I do like making use of F/OSS where I can. A case in point is processing photos, for which – of course – all free software fans should be using Gimp. Whilst it’s probably not quite Photoshop, it is well featured, powerful, and (as […]

Categories: Technical | Add a Comment

I’ve been meaning to look at Git for yonks (though, as I write this, I can’t help but wonder how long one yonk is). It turns out that there are more Git introductions on the web than most people have had hot dinners, so to differentiate it, I’ll try to make mine titchy. So, here […]

Categories: Life | 6 Comments

Oh dear. Hot on the heels of the data hiccup, I find myself on the receiving end of spam from an address I’ve only ever used at To avoid the likelihood of a dictionary attack guessing a forwarding address, I often use the format <website-fqdn><yyyymmdd><code>@domain, which is approximately what I use at Amazon. […]

Categories: PHP | Add a Comment

Yesterday I was debugging a legacy PHP app, and came across this item of code. This example is substantially condensed for brevity: OK, here’s the output: On first examination, this doesn’t look right at all; after all, iterating over an array with foreach should not modify the array. I discovered, looking at the output of […]

Categories: Technical | Add a Comment

A little while back, I was developing a user interface that made use of a table containing form elements – and I ran into a very unusual browser problem. My JS code contained an <tr> HTML insertion using MooTools’ element.set() on a tbody element, and I received a customer report that the interface wasn’t working […]

Software & ideas

What is this about? Several of my blog posts are about Meshing, a P2P database layer for sharing structured data across the Internet. At the time of writing it is in a design and early implementation phase, and to guide the new reader, I’ve added this page. I’ll update it as time goes on, to […]

Categories: Abandoned, Ideas | 1 Comment

My recent customer complaint triggered an interesting idea for a website; since I don’t think it’s been done before, I thought I’d jot it down. I am inclined to build a prototype, since it seems quite simple. OK, so here’s the pitch. After London Midland refused to refund an unused ticket, it so happened that […]