Last weekend I returned from a three week break where I visited my brother and also spend one week in Berlin. Since I am not doing that very often, I tried to contact my ever so amazing Ex who's a native Berlinian from the legendary "Prenzlauer Berg" quarter in the eastern part. To my dismay I had to realize that her flat was empty...her phone however still appeared to work so I dumped a message on her answering machine. This later turned out to be the answering machine of her mother who fortunately called me and told me that she is no longer in Berlin but instead moved to Dortmund in order to take a job as director's assistant at the Dortmund theatre (she studied opera directing at the Hans-Eisler in Berlin).
That was splendid news for me since Dortmund is pretty close to Aachen, where I live. So immediately after returning to Aachen I called her, had again a conversation with an answering machine (this time hers) and got called back two days later (this time it was her making the acquaintance with my answering machine). When we eventually got each other on the phone personally, she immediately invited me to Dortmund for today. Unfortunately, she has the tendency to know a lot of people (essentially: every person living in the former eastern part of Germany and within her five months in Dortmund she appeared to have made acquaintance with every inhabitant of North-Rhine-Westphalia as well). And each of these acquaintances seems to be invited to her appartment. So instead of coming I decided to wait another couple of weeks. We agreed on meeting in the second week of November where I'll finally have her for myself. After a few years of no contact there's likely to be a lot to talk over.
So far for the good news. The bad ones: I had some serious problems in motivating myself to continue with my modules. I am still stuck half way of writing the tests for
String::Ruby. This morning finally I finished the test-file for
each() where I discovered some hairy bugs in my XS code. It refused to work when I tried to split on
\0 although the code is binary clean. I eventually found the error five screen-heights above the
each() function in a macro that did the wrong test to figure out whether we are in paragraph mode (
memcmp(separator, "", 1) == 0 is both true for the empty string and for "\0").
Quite amazing actually how many bugs these tests can exhibit. That should teach me to spend a lot of time on them to catch as many edge-cases as possible. Since this is all C, there are more than there would be had the module been written in Perl.