First steps on the GR5
When will I ever learn to eat well before a hike. Last Saturday I didn’t really have breakfast, and with temperatures up to 30 degrees and no wind I needed to drink a lot. Surprise: loss of minerals and a headache towards the end of the day. Sigh.
I still managed to walk 32km on the GR5, one of the more famous European walking tracks, stretching from the North Sea to Nice. I had walked a tiny overlapping part of it last year near Bergen op Zoom, but this was the first real stretch. Not sure if I’ll ever make it to Nice, or even if I would want to.
By far the strangest sight was the Tour Eben-Ezer with some impressive animals on top of the towers and seemingly located in the middle of nowhere. Other than that nice rolling hills, fields and trees, and a lot of quarries.
uninitialized constant Flickr::XmlSimple
Unified Emacs project underway
The last few weeks have seen a lot of developments for GNU Emacs on Gentoo and luckily XEmacs is also reaping some of the benefits. Emacs and XEmacs now both depend on a new eselect module which finally resolves some file collision bugs between Emacs and XEmacs. The eselect module currently doesn’t support XEmacs very well but this is something that will only be noticed by someone installing both GNU Emacs and XEmacs.
In addition to these changes there is now also a joint project for GNU Emacs and XEmacs as a sub-project from the Lisp project. Hopefully this will make things a bit easier to organize and further the cooperation between the GNU Emacs and XEmacs herds. Since this project space is now available I’ve also moved the XEmacs on Gentoo information page there from my dev space. Hopefully I’ll be able to implement some of the Future Plans mentioned there shortly.
CAPTCHA's
Sigh. I guess it is a good sign that I’m researching CAPTCHA’s at the moment. Spammers finally seem to have found our site watvindenwijover.nl and deemed it good enough to spam it. Surely a sign of succes, but also a nuisance for the normal people using the site. Making the signup procedure a bit more difficult for computers seems the way to go, so some kind of CAPTCHA has to go in. The other approach would be to use a DNS-based blocking list, e.g. through an apache module like mod-defensible but in general I’m not a big fan of blocking lists due to false positives.
Besides, CAPTCHA’s still seem to be working fine as a deterrent so I don’t have real doubts about the effectiveness. But putting up a crappy image and expect people to parse it and retype it is an additional hurdle, so my attention got caught by the term ‘invisible captcha’, where some Javascript is used to add a hidden field to a form with a secret. This should be trivial to work around if the spam robot would actually execute the javascript, but that doesn’t seem to be the case for most of the robots.
Some examples: this method in .NET just uses a random GUID value for each form. This PHP example creates a simple sum to be done, which has the added benefit that the user can be asked this task as well, thus degrading gracefully for people without javascript. Things seem to have started with this article on a Lightweight Invisible CAPTCHA control which also provides a simple sum to make.
I’ve ended up cobbling my own invisible captcha together based on the ideas put forward in the .NET article mentioned above, and so far it seems to work fine, keeping the spambots out while letting normal people in. I’d link to our signup page so you can see for yourself, except that it’s an invisible CAPTCHA. :-)
Hiking along the Maas
This weekend the weather is great for outdoor stuff. Even though it's only April it feels like summer outside, and I should really be out there. Instead I'm at home working through a ton of stuff to do, including sorting out pictures like the ones from last weekend.
See, last weekend the weather was really nice as well and then I did go out for a hike along the river Maas near Roermond. Paul cobbled together a nice walking route which we later found to coincide with several "official" walking routes, one of which would lead us all the way to Santiago de Compostella. This part of the Maas valley is fairly heavily populated and also used a lot for boating. In fact, the most quiet place we encountered was a footpath along the Maas next to a chemical factory. I must not have been very awake as in hindsight I realize I missed a few photo opportunities and the pictures I did take where not that great. Still, seeing an orchard blossoming is always a great sight.
uninitialized constant Flickr::XmlSimple
Vote for social change
Netsquared is holding a vote for their Innovations Awards. It’s great to see so many projects that utilize the tools and technologies of the social web for all kinds of social causes, and I encourage you to have a look and vote for some of the projects. Voting closes on Saturday, April 14th, so don’t delay.
My top vote went nicely biased to Nabuur.com. Biased, because Nabuur is also a client of our company Winkwaves. You can read more about Nabuur’s plans on their proposal page.
Amongst the other projects I’ve voted for are Change.org and Barefoot Power. The latter would make a nice combination with OLPC (One laptop per child) but OLPC was not listed in Netsquared’s list even though I think it would have been a good fit.
Finally, the keys
Last week I finally got the keys to my new house.

After all the hassle of getting a mortgage time was running out before my skiing holiday. Having planned the key exchange just before going on vacation perhaps wasn’t the best piece of planning, but things would have worked out had the mortgage company looked at all the paperwork in one go. Instead they opted to look at one document and have me deal with some issues, only to start looking at the next unrelated document when the previous one got resolved. I’m not surprised anymore that banks and financial institutions often have trouble to bring their cost down.
Even with these additional delays it would have been possible to get the key before going on vacation, had it not been for the notary I selected: Notariskantoor van Brummelen in Voorburg. I ‘choose’ them as part of a package deal with one of the mortgage advisors I talked to, and I’ve not been happy with the decision. If things are too busy to get my work fast-tracked, then please tell me so right away instead of telling me that it will be hard and then not be able to handle it at the last moment. After this incident I agreed that my father would get the keys while I was on vacation, and the date was set for that Wednesday. However, they had no problem rescheduling it to Friday without consulting anyone, and even then they managed not to have the money, claiming that the money lender could not transfer the money that quickly. An obviously bogus argument, as mortgage money always gets transferred in one day with a priority transfer. In the end I had to get the keys this Monday from the notary’s office. You’ll probably want to pick a different office if you have a choice.
But let’s not dwell on these minor setbacks. I now have the keys, so it’s time to fix up some things and then move in! Yesterday I already had a productive day clearing out some unwanted stuff with my brother. Next step is to get the painters in.
Asciify
Today I had to map free text to plausible filenames, with the caveat that the text could contain UTF-8 characters with accents. Even though it is possible to have filenames with these characters, I wanted to end up with ASCII-only filenames for easier handling. Also, the filenames will be exposed via URLs, and just having ASCII there takes away a log of headaches. But how to convert this?
I quickly found the apparently wonderful Text::Unidecode for Perl which seemed to do anything I wanted, but since we build our web services with Ruby on Rails I needed a Ruby solution. I hoped that someone would already have created a ruby version of Text::Unidecode, but that’s not the case (or I could not find it). I did find the Asciify gem, though. Although simpler in design and reach than Text::Unidecode, it does enough for my purposes and custom mappings can be created for it.
Asciify’s documentation is pretty much non-existing, but some reading of the source code revealed that this was how I could convert my text:
Asciify.new(Asciify::Mapping.new(:default, '_')).convert('some text')The default replacement character for Asciify is a question mark, which makes sense in general, but not in URLs, so I opted to use the underscore character instead for lack of a better candidate. Since I’ve included the gem as a plugin in the Rails project I’ve just changed the default mapping to include some characters rather than using my own mapping.
No more xemacs overlay
With all of the XEmacs packages up-to-date again in Gentoo CVS, I found less and less need to keep my original SVN overlay online. It used to located at moving-innovations.com/svn/xemacs, but no more. I took it offline today after cleaning out the remainder of the overlay and discovering that there wasn’t anything of interest there anymore. So, if you’ve been using it:it’s gone. Everything that was there is now in Gentoo CVS, except for the patches to move all XEmacs support and lisp files from /usr/lib to /usr/share. I hope to revisit that move some time in the future.
The only other thing that I planned for the repository is to create an ebuild for the XEmacs 21.5.x beta versions. However, that alone really doesn’t warrant an overlay, so I guess we’ll just package.mask that until it is fully ready.
Finally, this may be the right time to point to some documentation on XEmacs on Gentoo. It’s still a work-in-progress, but I hope to document both the development process and tools, and peculiarities relevant to XEmacs users on Gentoo. Please let me know if you have questions or would like to see something particular documented.
Stuffed squid
uninitialized constant Flickr::XmlSimple
This weekend while getting groceries at the market I couldn't help but wander over to the fish stalls and just buy something and cook a nice dinner during the weekend. My eyes quickly came to rest on the squid which turned out to be fairly cheap as well as nice-looking. It wasn't before long that a nice portion found its way into my backpack.
That still left the question as to what to do with them. The wonderful Moro cookbook came to the rescue with a recipe for stuffed squid, Carlos style. I was a bit miffed to find no parsley the house on Sunday, but even without the parsley this proved to be a very nice dish. Certainly someting to be repeated, but with parsley this time!
uninitialized constant Flickr::XmlSimple
A new house
Although not strictly a new year resolution, I decided at the end of last year that I should really go and buy a house. Either that, or do some serious redecorating in my current house, and getting a new house just sounded like a lot of fun. The whole house-search thing got triggered by an offer to buy from the housing corporation that I'm currently renting from. It's not that I don't like my current house, but it has gotten a bit too small (read: I've collected to much stuff) and I can raise a few other points I don't like about it anymore.
After starting the house hunt in earnest in January I very quickly found a nice house for a good price. Today I signed the contract. Now all that is left to do is to get a mortage and hopefully I'll be able to move in in a couple of weeks. Weeeh!
Talking about mortgages: what a fun topic. I would seem to be simple: you lend money to buy the house, you pay it back, and in the mean time you pay rent. Not in The Netherlands, where there is a whole bunch of legislation to make things more complicated, especially fiscally. So now I'm lending the money to buy the house, but I won't pay back the loan, because it should be easy to make more money by saving and investing that the interest on the loan minus the government tax discount will be. Weird.