Managing wordpress deployment

This little article is a summary of how I currently manage my wordpress blog. The site lists some advice on how to manage a wordpress installation using subversion. However, I have a slightly more sophisticated setup that preserves my modifications (as long as they don’t conflict) that I maintain in a private branch of wordpress.

I use rsync to push and pull changes remotely (using ssh, ftp should work as well). Since a good howto seems to be lacking online and since I spent a while figuring out how to do all this, I decided to share my little setup.
Continue reading “Managing wordpress deployment”

Bought my first online album

Convenience finally won me over. I made my first online music purchase with iTunes plus, the DRM free music shop of Apple. Initially, when they launched this shop, they chose to offer music at a higher price than the DRM music. A few weeks ago, they reduced prices to what they were charging for their other music. Additionally, they made deals with several more music companies so the DRM free selection is now getting quite interesting.

The album I just purchased is Blue Finger, by Black Francis, aka. Frank Black. The price is somewhat high but I wanted to have this album nevertheless and it is only available online so far. People who know my music taste probably know this guy is well represented in my collection with just about any album he ever produced under any alias. Most of these albums I actually have on good old CD. However, in recent years his music has gotten less interesting. What I heard so far from Blue Finger he seems to have changed style again. The sound is more raw and much more pleasing to my untrained ear.

“Tight black rubber” is track 5 on this album and one of the better songs on it with a catchy but simplistic bass line.

Anyway, about the experience of using iTunes. It was quite confusing I’m afraid.

First of all, I had to accept terms of usage. OK no problem except that they were in Finnish. I am actually in Finland but like most people on the planet don’t actually speak Finnish. Beautiful language but my knowledge of it is limited to moi (hello, how are you today, fine weather isn’t it) and Kiiiiiiitos (thank you very much, I’m much obliged) and moi moi (goodbye, cu later). Finns are people of little words but they generally mean well. So I just agreed to a document that I cannot possibly have read or understood. But it is not like I would have payed much attention to it had it been written in English or Dutch. Thankfully the ok button was in English.

Secondly, it asked me several times whether I wanted to buy the album before and after agreeing to the terms. Lets see how often they bill me :-).

Finally, the whole iTunes plus thing, which means no DRM, was the bit that won me over. Unfortunately iTunes was a little vague on what I was actually purchasing. It initially listed itunes plus next to the album, which appeared to be the only option (good), so I clicked buy and iTunes informed me that this album was also available in iTunes plus. WTF do you mean ‘also’ anyway I assumed (again) everything was probably ok and once more confirmed that I actually wanted to buy the freaking album.

Seems to have worked since it is downloading now. The first track is actually 256 kbit AAC format and plays fine outside of iTunes so I assume I got the right album without the DRM crap and at the €9.99 price all albums cost instead of the much higher fee they charged until recently for DRM free music. All in all this is worth repeating. I have several more obscure albums on my wishlist that I would be willing to purchase under these terms.

Kdiff3 to the rescue

I was struggling this evening with the default merge tool that ships with tortoise svn. It’s not bad and quite user friendly. However, I ran into trouble with it when trying to review changes in a latex file (don’t ask, I still hate the concept of debugging and compiling stuff I would normally type in word). The problem was that it doesn’t support word wrapping and that the latex file in question used one line per paragraph (works great in combination with an editor that does soft word wrapping like e.g. Jedit).

A little googling revealed that the problem had been discussed on the tortoise svn mailing list and dismissed by one of the developers (for reasons of complexity). Figuring that surely somebody must have scratched this itch I looked on and struck gold in the form of this blogpost:KDiff3 – a new favorite about KDiff3.

The name suggests that this is a linux tool. Luckily it seems there is a windows port as well so no problem here. I installed it and noticed that by default it replaces the diff editor in tortoisesvn (good in this case but I would have liked the opportunity to say no here). Anyway, problem solved :-). A new favorite indeed.


Nice little kdiff3 moment. I did an update from svn and it reported a python file was in conflicted state. So I dutifully right clicked and selected edit conflicts. This launched kdiff which reported: 4 conflicts found; 4 conflicts automatically resolved. It than opens into a four pane view (mine, base, theirs and merged) allowing you to easily see what the merged result looks like and what the conflicts were. OMFG! where were you all this time kdiff3!! Damn that is useful. The resolutions look good too. I remember using tortoise svn doing merges on very large source base in my previous job and this is exactly what made them suck so much.

semantic vs Semantic

Interesting post on how microformats relate to the Semantic web as envisioned by the w3c.

The capital S is semantically relevant since it distinguishes it from the lower case semantic web that microformats are all about. The difference is that the Semantic web requires technology that has been defined by the w3c but is not currently available in any mainstream products such as for example web browsers that people use to browse the current web. This technologies include RDF, the OWL query language, XHTML 1.x and 2.x and a few other rather obscure “standards” that you won’t find on a typical end user PC or web server. I use quotes around the word standard here because I don’t believe the W3C to be very effective in transferring its recommended standards over to industry in a proper way.
Continue reading “semantic vs Semantic”

Spam users

The latest in blog spam seems to be users signing up with obscure addresses like (feel free to send all sorts of crap that way) and not posting any comments. This was sort of a minor annoyance until now but over the past 24 hours I’ve had 5 new user registrations like this.

I have no idea why they do this. It might be that they are trying to gain access to my blog software for hacking/spamming purposes. Hint: my provider automatically stops attempts to abuse its servers for mass mailing attempts and I would find out pretty fast if some asshole was doing this. Whatever the reason, I delete accounts that don’t follow up with an actual comment and have installed a solution to prevent automated attempts in the future: capcc. This plugin allows wordpress to separate real people from bots trying to abuse my web infrastructure and it seems to work pretty nicely. I now have several plugins conspiring against malicious users and hope that is enough for some time.

For real users coming here, I’m sorry about all the obstacles in between you and actually providing comments on my blog. Unfortunately this is the only way for me to keep spam off my blog.

For victims of the same problem, here’s a useful query:

DELETE FROM wp_users WHERE NOT IN (SELECT DISTINCT user_id from wp_comments)

This will delete any user without any comments. Of course backup your database before running this and if it blows up in your face don’t come complaining here.


It just occurred to me (damn that’s a full 24 hours, WTF is wrong with me) that having capcc removes the need for me to require users to register before commenting.

QR codes

I just found this cool mobile barcoder extension for firefox that displays so-called QR codes that encode the url of the page you are currently looking at. QR codes are like bar codes, only 2-dimensional. For example:
QR code for my blog
(generated using this site:

It so happens that my Nokia N95 (hey, there’s some benefit in working for a market leading mobile phone manufacturer 🙂 ) includes a bar code reading application that is damn near useless reading old fashioned bar codes in dark supermarkets. The problem is partly with the optics in the camera which do not support macro mode photography very well (i.e. photographing subjects from something like 15cm doesn’t really work wel). A second problem is that while hovering with your camera over the barcode you generally block the light that falls onto it. This combined with real world situations where bar code equipped objects are generally indoors in possibly poorly lit places doesn’t make it easier. A final problem is that the old vertical bar codes are actually quite hard to scan properly with a camera since the thickness of the bars has meaning (four different bars) and the bars tend to be quite close together.

However, I just discovered the software handles QR codes displayed on a nice bright LCD screen a hell of a lot better. Just hold the camera about 30 cm from the screen, press scan code and almost instantly you have the url in the phone and can then proceed to open it in the S60 browser. QR is short for quick recognition and it really is quick. QR codes don’t have all the problems listed above and are basically optimized to be scanned using a camera. They include error correction. The three big squares are used for indicating the dimensions of the QR code to the software.

So, why is this nice? Well T9 is OKish for sending short messages to people with all vowels omitted but sort of sucks for entering urls. So if you quickly want to browse a url with your N95 (or any other phone with QR bard code scanning software), this is a pretty neat way to do it.

Experiences with realizing Smart Space Web Service Applications

I had a nice article accepted at the upcoming 1st IEEE International Peer-to-Peer for Handheld Devices Workshop at the CCNC ’08 conference in Las Vegas.

Jilles van Gurp, Christian Prehofer, Cristiano di Flora, Experiences with realizing Smart Space Web Service Applications

This paper presents our approach for building an internet based middleware platform for smart spaces as well as a number of services and applications that we have developed on top of it. We outline the architecture for the smart space middleware and discuss several applications and services that we have so far realized with this middleware. The presented material highlights key concepts in our middleware vision: services are HTTP based and restful; applications are accessed through a browser so that they are available on a wide variety of devices; and we demonstrate the concept of bridging non internet enabled smart space devices to our IP and HTTP centric smart space network.

I’ve uploaded the paper to my publications site.

links for 2007-10-05

OpenID & Microformats in WordPress

The good news is that Will Norris is making progress with his openid plugin. Once he puts up a release, I’m probably going to give it a try.

The bad news is that the wordpress bug database still lists as a main reason to not support openid that support is provided by third party plugins. I think this is rubbish.

First of all, they’ve broken those plugins several times with wordpress updates. Secondly, the reason they break is that authentication is rather critical to how wordpress security works (i.e. it is kind of non trivial to do properly). This is why I’d like first class support for OpenID rather than second class we currently get. And finally most of the plugins appear to be abandon-ware (they once were excellent hobby projects but people seem to have moved on with their lives) and there are no release quality openid plugins for wordpress 2.2 and higher. Will Norris seems to have adopted one of the abandoned plugins (which is very nice of him) but as discussed, I’d prefer a bit more structural solution in terms of support, testing and integration. What I’d really like is the wordpress guys getting off their ass and provide first class support for openid like the Drupal guys are doing. I hope his plugin will get some nice exposure and will eventually be picked up by the wordpress guys as something to properly integrate into wordpress.

In general, the wordpress people seem to be a bit reluctant to pick up new blog technology lately. For example, I’m using the barthelme theme which supports a number microformats and semantically structured html. Barthelme basically provides searchengines, microformat plugins and other semantic tools with a shitload of hooks to extract information from the blog. That is sort of hidden for ordinary users but kind of rapidly becoming crucial to the whole notion of web 2.0 Sorry for sounding superficial, I hate this 2.0 bullshit as much as anyone (forget about a web20 tag on this site).

Tag support in wordpress is a nice first step and it should be noted that they do it properly. Also, there seem to be patches in the bug database for hcard and hatom support. It would be great if these changes actually make it into 2.4 instead of just floating around (like they’ve been doing for some time). Also nice would be extending atom feed support to the default template. This still defaults to listing only rss feeds, despite the fact that Atom Pub has prominently featured on the last few wordpress release notes (2.2.2 and 2.3) and that backend support for Atom 1.0 feeds has been present for quite some time now. Guys: It’s just one line of text to fix! Get it in already!