FritzBox!
June 23rd, 2009Wow!
I received my FritzBox 7170 today, as a present from XS4ALL for renewing my ADSL subscription for another year (cheap deal — I would have done that anyway). And it totally blows away my Thompson Speedtouch!
Wow!
I received my FritzBox 7170 today, as a present from XS4ALL for renewing my ADSL subscription for another year (cheap deal — I would have done that anyway). And it totally blows away my Thompson Speedtouch!
Dirk-Jan reminded me of the Perl Golf and Code Golf contests, both of which have the aim of solving a simple programming task in as few characters of source code as possible. See his post for a stunning example.
One of the open challenges is to work out the prime factors of a given number. To make things a little more difficult, the output must be printed in a specific format:
7000: 2^3 5^3 7
123456789: 3^2 3607 3803
Time for some silliness.
In a little over a month, I will be

years old.
What’s that, you didn’t get it? Here, I’ll repeat it for you in terms you may understand more easily:

At work, it has become a bit of a tradition that when people announce their birthday, they do so in an at least somewhat obfuscated format. Hexadecimal, binary and more obscure number formats are always popular, of course, as are silly descriptions of the form “my age is the ninth distinct biprime“. But last year I decided to take it to the next level, and write a little generator in Ruby for expressions such as the ones you see above. As you can probably guess, the expressions are generated using TeX.
You can play with it for yourself, if you want to, and also download the latest version of the code. But please be gentle with my server, as you can probably guess it’s a rather heavy application and I’m running this site on a little home PC..
I got back this week-end from a nice week of rock climbing in Arco, Italy with Jeroen and Raimond. We stayed at Camping Arco, a really nice and fairly luxurious camping if you can manage to get a place there (they refuse reservations lasting less than 7 nights, or made less than two weeks in advance). The weather was perfect; in fact it was almost too warm for the time of year, and we skipped some of our planned activities because of that. Lessons learned for next year: go in April, and don’t climb south-facing walls in the middle of the day.
A couple of pictures, made by Jeroen or at least with his camera: Read the rest of this entry »
I installed Ubuntu 9.04 on a machine at work this week, and that went quite flawlessly except for one weird little problem. I could access machines on the local network by their short name (e.g. ‘einstein’) but not by their fully-qualified domain name (’einstein.intra.local’).
Now, if it had been the other way around, the explanation would have been obvious: a missing ‘search intra.local‘ entry in /etc/resolv.conf. But being able to resolve short names but not long ones, that was a new problem for me. I used nslookup to verify that the local name server was responding correctly to both forms, and it was. But any other application, from ping to Mozilla Firefox, failed to resolve the long form.
A colleague put me on the path to the solution, however. In the zeroconf protocol, which is implemented in Linux as Avahi and on the Mac as Bonjour, the .local domain is magic and is considered a reserved name. Hence, when Avahi is running, any address resolution queries for a machine name ending in .local, are intercepted and the DNS server never gets to see them (nslookup bypasses the usual resolver API, however).
This is apparently a known issue, but it was new and quite surprising to me. I didn’t bother to investigate who is at fault here: did the zeroconf people blatantly highjack a perfectly valid namespace, or has .local always been reserved and everybody but me knew about it? Anyway, it’s fair to assume that zeroconf is here to stay now, so network administrators take note: better call your local domain something else.
Once you know what it is, the solution is easy. In my case I wasn’t interested in the functionality offered by Avahi, so I just uninstalled it (sudo apt-get remove avahi-daemon). Alternatively, here is a receipt for disabling the special treatment of .local, but keeping the rest of the daemon running.
Why is it that, as you progress towards supposedly higher levels in your career, the trainings tend to get more infantile?
When I was just starting out as a programmer, most of the trainings I took were of course purely technical: how to operate a particular database system, how to write software for a particular operating system. The last time I received such a training was long ago, but I remember being generally treated as an adult. The trainer’s communication style would presuppose a certain amount of intelligence and common sense from the students, and we were assumed to be already familiar with the basics of software development until we demonstrated otherwise. Some trainers were better than others of course, but in general they were efficient and useful.
Read the rest of this entry »
The number 65,536 is an awkward figure to everyone except a hacker, who recognizes it more readily than his own mother’s date of birth
– Snow Crash, Neil Stephenson
A question which I like to use when interviewing C++ programmers: what is the range of a 32-bit integer?
I don’t use this question very often anymore, or at least I don’t let it influence my decision very much (which is why I don’t mind spilling the beans here), because the correlation with other technical skills turns out to be not as strong as I thought it would be. Still, there are some interesting patterns in the kind of people who know the answer versus those who do not.
Among the people who do not know the answer, some of them react quite affronted that they would even be expected to. What is the point, they will ask, in having memorized some little piece of trivia which they could Google up in a few seconds? Isn’t “knowing where to find it” a much more useful skill? Ask me about architecture! Ask me about design patterns and data structures! All of these objections have some validity, and indeed we will certainly ask about those other things during the interview. Still, I believe that it is perfectly reasonable to expect a good developer to know the answer to the above question by heart.
Read the rest of this entry »
So I read on Slashdot today that Edward Davidson, the “Spam King” escaped from federal prison with the help of his wife.
(Update: it now turns out that after the escape, Mr. Davidson killed his wife and one of his children, and then committed suicide. This blog post, intended as a light-hearted tongue-in-cheek piece, was written before I learned of this. Kind of throws the whole thing in a different light.. Kids, please don’t become spammers — it really isn’t worth it.)
One obvious observation that can be made here is that, unless he is very certain that he will be able to evade justice for the remainder of his life, this was a pretty stupid thing to do: the punishment for escaping from prison is likely to be a lot harsher than the 21 months in minimum-security he received for his original crime.
Another question that came up in the /. comments is whether 21 months in minimum-security prison is an appropriate punishment for a spammer. Many people made the point that, although obnoxious, spamming is a non-violent crime and should therefore be treated less seriously than, say, murder.
I disagree.