Münster

We’re in Germany tonight, Münster to be precise.

We drove here after this morning’s Little Gym session in order to sample the atmosphere of another German city’s Weihnachtsmarkt.

It turns out to be an attractive, vibrant little town, although I’m not entirely certain we ever left the Netherlands. I distinctly remember driving across the border and seeing the signs change from Dutch to German, but on the basis of the people walking around here, I have to wonder.

It seems as if one in two people speaks Dutch around town. Even before they’ve opened their mouth, you can identify a group of people as Dutch from the young men in the group. They all have that same tell-tale bad hair. You know; where great care and even greater quantities of hair gel have been applied to achieve a look of cruel disarray.

Dutch men and their hair gel: what can you say? It’s so embarrassing and pitiful that I’ve been able to pick otherwise anonymous Dutch men out of a crowd on the other side of the world. I’m honestly not joking. No other nation in the world has placed its future in the hands of men with such daft hair. It’s so bad that it makes you want to take them aside and tell them. You think they mustn’t really know how daft they look. It’s as if they’re walking around with their flies undone. You cringe and blush on their behalf.

But I digress.

The Christmas market is good. All of the usual stuff is here, everything from bee’s wax candles to wooden puzzles, from olive wood carvings to Christmas books; all of it accompanied by fairground rides, lashings of piping-hot Glüwein, suggestive-looking bratwurst and downright lewd Krakauers; not to forget the rice-pudding with cinnamon and sugar. Yum.

We haven’t actually bought anything (except food) yet, but it’s been fun looking around. Mostly fun, that is. It’s extremely busy here and pushing the pram across squares filled to capacity can take several minutes instead of ten seconds. Seriously, it wouldn’t do to be claustrophobic here. Hopefully, the crowds will be fewer in the morning.

We had dinner at a really nice Spanish restaurant that was positively hopping with customers. The food was excellent and the service was attentive. Eloïse seemed to have a good time, too.

Our hotel’s just outside of the old town. Most of the hotels we called a week ago were booked solid, so we had to take what we could find. It’s pretty good, though. There’s free wireless Internet, a TV that gets Nederland 2 and even CNN if you’re desperate, and the room doesn’t smell.

The bed is interesting. When I put pressure on the mattress earlier on, it sank in the middle, so I inspected the frame and discovered several slats displaced and lying on the floor. We’d have sunk through the middle if we’d tried sleeping on it in that state. I pulled off the mattress and literally had to make the bed this evening, which is a first. Still, the free Internet access makes up for everything.

We’ll spend more time ambling around here tomorrow, perhaps buy a couple of things, then head back to Amsterdam in the afternoon. Sadly, there’s no decent autobahn along the route, so you’d hardly know that we were in the last bastion of the unconstrained cruiser. So, it’ll be pretty much all 100 – 120  kmh back to Mokum.

Posted in Travel | Leave a comment

Please Rescue My Stagnant Software

In the 2.5 years since I left Google, stopped working and moved away from Silicon Valley, my motivation to write code has waned and reached an all-time low ebb.

There are many reasons for this. For example, I’m father to a busy toddler these days, I’m no longer surrounded by brilliant geeks who fire my imagination and make me research new technology, and I rarely happen upon a need for a piece of code that hasn’t yet been written.

Indeed, with very few computer systems to set up at home and no professional programming assignments to send me off on weird and wonderful coding tangents at home, the only piece of code that has seen regular development over the last year has been my TV guide data grabber for the Dutch cable TV network, UPC. Unless you were a Dutch MythTV user whose cable company was UPC, you wouldn’t have noticed this. It’s not exactly been my top download.

Even maintenance of my old projects has pretty much ground to a halt. You see, most open source software is born of a personal need. Necessity is the mother of invention, as they say. If code to solve a certain problem didn’t exist, I had to invent it, assuming it was within my capability; which it fortunately sometimes was.

Ruby/LDAP is a good case in point. Although I didn’t start Ruby/LDAP from scratch, it amply illustrates what I’m talking about.

After submitting a series of patches to Ruby/LDAP in 2003 and becoming frustrated at their slow rate of inclusion, the then maintainer tired of my e-mails and offered me the role of maintainer of the software. He had lost interest in the project, because he had long since stopped working with LDAP. See what I mean?

Anyway, I jumped at the chance. In the next year, development was rapid. I added a lot of features and fixed a legion of bugs. The development roadmap was easy. The use of LDAP at Google was exploding at the time, much of which was happening under my guidance and supervision. Every time a new need was found that logic dictated should be solved at the library level, it went on the Ruby/LDAP to-do list and was implemented by me not long after. I didn’t need to spend much time thinking about which new features should be added, because they simply presented themselves to me in the course of doing my work.

These days, things are a little different. Not only do I no longer have a need to manipulate vast quantities of data in LDAP directories, I no longer even have ready access to working LDAP servers full of real, live data. Granted, I could set up a server at home, populate it with junk, and use that to test my library against, but without real-world problems occurring to me, it’s not obvious which course development should take. In this scenario, the only real work that happens is the fixing of bugs.

It’s the same with most of the software I have produced in recent years. The conclusion is simple. Once I cease to use a particular technology, my interest in it eventually drops below the level required to continue maintaining software. Sometimes the technology is no longer used because I am no longer in a professional environment (Ruby/LDAP, Ruby/CorporateTime), but it can also be because I have ceased to use it at home (bash completion.

Another reason software development can grind to a halt is because it reaches the point that it satisfies all of my personal needs (Ruby/Password, Ruby/DICT, Ruby/Finance, acoc, the very ancient signature.

The upshot of all of this is that most of the software that is under my wing for maintenance has badly stagnated.

In spite of promises to the contributors and enthusiasts of my various projects, I have languished and failed to make available public source repositories, mailing lists and the like. Such resources would have allowed the development of the software to continue, in spite of my current apathy.

Part of the problem has been in not wanting to let my babies go. bash completion, in particular, was started by me from scratch and has been very successful. Whilst I haven’t made a cent from it, it features in many Linux distributions, has been in the Freshmeat most highly rated projects top 10 for many years and has featured in several magazine articles. Not bad for a piece of code that I started just to keep myself busy in the evenings, whilst killing time for a month in Canada, waiting to re-enter the US (it’s a long story).

Rightly or wrongly, I’m quite proud of that software, but that pride has got squarely in the way of its continued development. In not wanting to relinquish the reins of control and any vague geek recognition that might have afforded me, I have instead allowed it to stagnate. Its last release was over 18 months ago.

Well, I have seen the error of my ways and am now prepared to act. As of this moment, I am declaring all of my software eligible for adoption by new parents, with the exceptions of my MythTV data grabber and Ruby/Amazon. This latter project has, in spite of everything I’ve said above, seen some recent work and I still intend to release a new version within the foreseeable future (but please don’t hold your breath).

In particular, bash completion and Ruby/LDAP urgently need loving new homes. If you are reading this and would like to become the new maintainer of either project, please get in touch. Be forewarned, however, that you will need a fairly convincing argument to become the new owner of bash completion, as it needs a skilled and dedicated developer (yes, yes, even though I haven’t been that myself recently). Ideally, you will have been a reasonably prolific past contributor to the project, thereby having already proven your candidature.

If I don’t find new homes for these waifs and strays soon, I will scour my old e-mail for likely candidates and approach those myself. In fact, I may do this anyway.

So, it’s open season on my old software. Let me know if you’re interested, explain why and where you plan to take future development, and you could find yourself the owner of a mouldering CVS repository.

Posted in Hacking | Leave a comment

Ik Ben Toch Niet Gek?

Media Markt. Tja.

Het type kabelversterker dat ik zoek: niet voorradig.

De DVD die ik zoek (Love My Way serie 2): niet voorradig.

Het type geheugenkaart dat ik zoek (8Gb microSDHC): niet voorradig. Ook hangen er geen 16Gb CF-kaarten in het rekje en zo eentje heb ik al in maart van dit jaar uit de VS laten overkomen. Zucht.

Alles wat je zoekt is consequent niet bij deze winkel te vinden.

Niet alleen dat, maar de praktische bedrijfsvoering is uitermate slordig. Ik zie bv. ergens borden boven schappen staan met daarop de tekst Notebooktassen en Accessoires. En wat vind je er in die schappen? Juist, DVD’s.

Zo’n zaak waar dit soort slordige praktijken wordt geduld doet je kooplust snel omslaan in minachting en onwilligheid om je zuurverdiende centjes te overhandigen. Die gun je ze gewoon niet; hebben ze zodoende niet verdiend.

Toch liep het niet uit op onvervalste tijdverspilling, want ik kwam uiteindelijk toch weg met een damesscheerapparaat voor Sarah d’r verjaardag (ja hoor, vandaag is ze 34 geworden). Eens te meer verliet ik de zaak morrend, een beetje boos op mezelf dat ik ondanks dergelijke ervaringen toch weer eens was teruggekomen.

Onderweg naar je auto krijg je ook nog een trap na van de parkeerautomaat, die onverbiddelijk geld afdwingt voor je mislukte winkelrit en het gebruik van een verder uitgestorven parkeerterrein.

Ik ben toch niet gek? En toch kom ik ongetwijfeld weer terug. Er zijn gewoon geen goede elektronicazaken in Amsterdam. Het aanbod ontstijgt niet eens het niveau van het Amerikaanse platteland.

Goh, dat lucht op. Bloggen in het Nederlands voor de verandering. Het interesseert toch geen hond buiten de landsgrenzen; als het al iemand binnen de stadsgrenzen interesseert.

Posted in The Netherlands | Leave a comment

Sinterklaas, kom maar binnen met je knecht

Yesterday was 5th December, a big day in the Netherlands. The occasion is Sinterklaas, which is the eve of Saint Nicholas, the patron saint of children. The name Sinterklaas is a contraction of Sint Nicolaas.

Sinterklaas also provides the basis for the North American figure of Santa Claus, although that personage is distinct in Dutch culture and is known as de Kerstman.

The celebration of Sinterklaas is still much more popular than Christmas in this country. Many more people give presents on Sinterklaas than at Christmas, although more and more are giving presents on both occasions these days.

Sinterklaas is assisted in his giving duties by Zwarte Piet (Black Pete), a colourfully dressed figure with a black face. Opinions differ on whether this historically represents a person of African origin (originally, it was intended as a depiction of the devil). Some of those who believe it does read further into the role of Zwarte Piet as the servant of Sinterklaas and find unacceptable racial stereotyping. I find this reading to be naïse and largely the product of oversensitivity to the modern plague of political correctness.

Anyway, Eloïse’s playschool obviously celebrates this nice tradition and so we snapped a few photos when we went to pick her up.

Pepernoten, taaitaai decorated by the children with hagelslag, toddlers made up as Zwarte Piet and wearing colourful costumes, presents galore; it was all there.

Sinterklaas has now returned to Spain on his steamboat, but he’ll be back again next year.

Before he went, he found time to ring the doorbell of the house yesterday evening and deposit a few more presents in Eloïse’s boot. Papa also wrote a poem about Eloïse, which he read to her great disinterest after dinner.

A phone conversation with Opa rounded out the day and Eloïse went to bed, a very tired little girl.

Today, Eloïse has been talking about the presents that Sinterklaas gave her. It’s clearly made a big impression on her and it’s a joy to see her imagination working overtime.

Posted in Life, The Netherlands | Leave a comment

Child Film Star

On Monday, we had the 20 week ultrasound of our slowly ripening little geezer or geezette. A DVD was made of the event, which I have dutifully ripped and uploaded to the Internet.

The full nineteen minute version silent film is available in our gallery, but for those with less patience, the seven and a half minute embedded version below represents the first foray of a McKenna-Macdonald into the world of DIY YouTube flicks. Not bad for someone who hasn’t even been born yet.

For anyone who cares, the YouTube version of the DVD (comprising just the first two chapters) was encoded to Xvid, using mencoder as follows:

mencoder /media/SONY_DVD_RECORDER_VOLUME/VIDEO_TS/VTS_01_1.VOB /media/SONY_DVD_RECORDER_VOLUME/VIDEO_TS/VTS_01_2.VOB \
-ovc xvid -xvidencopts pass=1 -oac copy -o /dev/null
mencoder /media/SONY_DVD_RECORDER_VOLUME/VIDEO_TS/VTS_01_1.VOB /media/SONY_DVD_RECORDER_VOLUME/VIDEO_TS/VTS_01_2.VOB \
-ovc xvid -xvidencopts pass=2:bitrate=256 -oac mp3lame -lameopts vbr=3 -o tmp.avi
ogg123 -d wav -f sr.wav /media/audio/sigur_rós/takk/06_sæglópur.ogg
mencoder tmp.avi -o echo.avi -ovc copy -oac mp3lame -lameopts vbr=3 -audiofile sr.wav

The final two commands were necessary to convert the file I wanted to use as the soundtrack from Ogg Vorbis format to WAV, and then to encode it into the video using variable bit rate MP3.

Posted in Children | Leave a comment