Turning and turning in the widening gyre
The falcon cannot hear the falconer;
Things fall apart; the centre cannot hold;
Mere anarchy is loosed upon the world,
The blood-dimmed tide is loosed, and everywhere
The ceremony of innocence is drowned;
The best lack all conviction, while the worst
Are full of passionate intensity.
Surely some revelation is at hand;
Surely the Second Coming is at hand.
The Second Coming! Hardly are those words out
When a vast image out of Spiritus Mundi
Troubles my sight: somewhere in sands of the desert
A shape with lion body and the head of a man,
A gaze blank and pitiless as the sun,
Is moving its slow thighs, while all about it
Reel shadows of the indignant desert birds.
The darkness drops again; but now I know
That twenty centuries of stony sleep
Were vexed to nightmare by a rocking cradle,
And what rough beast, its hour come round at last,
Slouches towards Bethlehem to be born
The Second Coming, William Butler Yeats.
There is something coming, as opposed to Yeats I don’t think it will be the end of the civilization, but there is a war coming.
Weapons are ready and skirmishes have begun.
If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!
Going-Solo, the one-day conference organized by Stephanie Booth yesterday in Lausanne, is now over.
The conference has been filmed by Sébastien Baudet and videos are being uploaded to Dailymotion.
I must say that for a first shot it was a great one, interesting speakers, subjects that matter and a lot of useful information to grasp.
A great Bravo to Steph, big thanks to the members of the organization and lot of luck to Going-Solo. It seems that the next edition will be held in Leeds by the end of the year.
By the way, the wifi was not so bad but the microphones were no sot good ;)
Google just released a preview of their new Google Friend Connect service.
Google Friend Connect lets you grow traffic by easily adding social features to your website. With just a few snippets of code, you get more people engaging more deeply with your site.
This is not a social network by itself, this is something that enables you to turn your own web site into a social network. I can’t wait to try it myself on this blog and build my own social network…

This is the third post about software compatibility, the previous ones were talking about project management and bugs and this one deals with database schemas compatibility (I will deal with stored procedures in the chapters about code compatibility).
First of all, what does backward compatibility means when talking about the database?
- Being able to retain data stored in one schema into a new one.
- Preserving compatibility with external systems (like report engines) that may be accessing the database directly.
Point #1 is achieved through migration tools that update the database schema, in some cases such tools may be very tricky.
Point #2 is a bigger challenge. Changes that may break the database compatibility are:
- Removing a table or changing its name.
- Removing a column, changing its type (including its precision or length) or changing its name.
- Changing the semantic of a column (e.g. changing the valid values).
- Adding foreign keys.
In case #1 and #2, if such changes cannot be avoided, a good enough solution is to implement database views that mockup the old tables based on the new ones.
The thing is that for #2 you will need to rename the actual table which will force an update of the foreign keys in other tables and surely more code update than what was initially expected. Leaving an unused column in the table may be a better solution. As usual, this is a trade-off that should be discussed at the project level.
Point #3 is more tricky because it really depends on the change and the usage of the column. Most of the time transforming a “change” into a “remove and add new” will enable to refer to #2. Triggers can then be used to update the old column or it can just be left unused.
Point #4 is a problem when there are scripts that delete entries in a table. If all of a sudden there is a new foreign key that depends on this table then the script will fail, thus breaking the compatibility. I actually have no technical solution for this one. I think that only documentation can be given, but if any of you has an idea please share it with us :)
Nevertheless, one should recall to never do any incompatible change without a good enough reason.