For those of you who attended last year’s Secular Ball, you may remember that we did all the registrations though the website, SecularBall.org.
At the time we also registered SecularBall.com but those having come up for renewal, we decided only to renew the .org domain as barely anyone visits that, so having the .com isn’t even worth the $8 it would cost to renew it.
Anyway, someone recently sent me this email.
Hello,
I believe you’re the owner of secularball.org. I’ve got a proposition
concerning your website. Would you be interested in acquiring
secularball.com?
I understand that you may be concerned about the legitimacy of this.
If you’re a bit skeptical, I can upload an HTML page to verify
ownership beforehand. We can also use a third party escrow (who will
essentially ensure your money is safe until you retain complete
control over the domain name) for optimal security.
PS: I’m only emailing you because I believe you can benefit from this.
I do not intend to email you again unless you respond to this inquiry.
Regards,
Faheem.
It’s bad enough these lowly bottom feeders gouge out a living based on registering other people’s trademarks, but you would think that if you were in such a business you would have at least the basic common sense to do just a bit of research and see that we already were the owner of said domain until recently and obviously had no interest in it (or at least make reference to the idea of selling it back to us).
The Symfony2 framework comes with a really nice validation library and on top of the built in constraints that you can use you also have the ability to add your own custom constraints to perform any other validation checks you need to do.
The Cookbook has an article on how to create such a custom constraint, but unfortunately, as has happened a few times with the Symfony2 documentation, it misses out some fundamental and sometimes rather obscure step in order to get it working.
The problem is, it doesn’t tell you where to put the files. That leaves two options – either you have somewhere they need to be in order for Symfony to find them, or you need to fell Symfony where they are.
After hours of digging around, we eventually found the answer – in your validation.yml file you need to register the namespace and then reference that name when you call the validation rules.
Start by registering the namespace at the top of your validation.yml file.
namespaces:
myValidator: Acme\ExampleBundle\Validator\
Lets say you have added a custom validation constraint called Postcode. When you want to invoke that from your validation rules, you need to reference the namespace you have just created.
postcode:
- myValidator:Postcode: ~
You can then use this namespace with your custom validation rules, place them in the appropriate directory (in this case src/ExampleBundle/Validator, but you can store them somewhere else if you change the namespace – remember that Symfony2 will extract the path from the namespace).
Last month, I went to a talk by Richard McIntyre on “The Future of PHP”.
Turns out, it’s JavaScript.
More and more these days, web applications are being developed with fat front end clients loaded with JavaScript, and the server-side processing is primarily used for data processing and APIs. So we’re seeing a shift from PHP being used as a somewhat front-end technology to merely (I say merely, there is a lot of work to do it) delivering the content in a format the JavaScript front end can consume.
Perhaps this is why we’ve seen a rise in the number of microframeworks, such as Silex, that I recently blogged about.
I think the overriding message I took away from the talk though is that they’re inventing development platforms faster than I can learn them! I’ve already got a large list of technologies and libraries I need to review and I think I came away from this talk with another half a dozen!
Really enjoyed the talk though, and if you’re interested in PHP and in the Leeds area you should definitely check out the Leeds PHP User Group who host such events on a monthly basis.
Back to basics today. Creating a user and setting their password.
useradd test
passwd test

I tried to buy some juice from Sainsbury’s. Turns out what I actually bought was juicy water.
We see so many broken displays showing their Windows backdrops, it’s a refreshing change to see a Mac one.

Btw, does everyone else still remember when Bed used to be Gatecrasher? I’m so old…
While a great deal of fun was had at last month’s Wendy House, I arrived there to find that my camera’s battery had in fact died. So all I have is one photo that Hugh kindly took with my phone…


I always knew that the are just north of the city centre that is exclusively reserved for crack addicts and muggers with knives was called Little London. But I think I must have thought it was a disparaging nickname that everyone gave it. It never really clicked that that was it’s actual name.
How can we sum up this year’s Eurovision in one word? Disappointing.
Of course, it was never going to end well. When you allow a country which bans homosexuality, each country was forced to field a heterosexual Eurovision act for the first time in the history of the competition, and the results were disastrous. Compare this year to last year’s performance by Getter Jaani and you can see an instance difference.
Even Moldova, who last year provided us with a fairy on a unicycle curtsey of Zdob si Zdub miserably failed to re-create last year’s magic.
To finish it all off, we came second to last. People just didn’t get behind The Hump. No wonder; he has a great voice but simply isn’t Eurovision material. Why we keep picking this acts when Holly Johnson is still alive, I simply can’t understand!

Silex is a PHP microframework based on Symfony2 components.
With the shift in recent years to leveraging more JavaScript and front-end code in fat clients, a lot of server-side processing has been reduced to simple data relay and APIs. As a result, there have been a number of microframeworks arisen, which allow you to serve out content in a really simple and easy way.
One of the most popular is Sinatra, a micro-framework for Ruby, which is what we built Village Chief on. Indeed, Silex is inspired by Sinatra, but is PHP-based and uses some of the great components that can be found in the Symfony2 framework.
As you would expect from a microframework, it’s really easy to get started.
<?php
require_once __DIR__.'/../vendor/autoload.php';
$app = new Silex\Application();
$app->get('/hello/{name}', function ($name) use ($app) {
return 'Hello '.$app->escape($name);
});
$app->run();
It relies heavily on Composer, a PHP dependency manager. This is a bit of a pain if you’re not already using Composer as it means you have to have yet another piece of software on your computer, but unfortunately, you’re somewhat railroaded into it as there is virtually no documentation on how to install things like Twig without it. Luckily, once you have it, it does make things easy and pain-free, so it’s probably worth going through the initial setup.
Once you’re up and running, it’s a snap to add content. We recently re-launched Maze Finance and the entire process of getting Silex up and running and migrating our existing website into it took less than two hours!