
Die AVM Fritz!Box hat einen lästigen Fehler im DHCP-Server. Leider glaubt AVM, selbst besser zu wissen wie ein DHCP-Server funktionieren muss, statt auf bewährte Standardsoftware zu setzen...
Startet man einen Rechner abwechselnd unter Linux und unter Windows (wie es meine Mutter macht, da Videos unter Windows kaputten Sound haben), so kommt es vor, dass er unter einem der beiden Systeme auf einmal keine IP mehr bekommt über DHCP.
Windows schickt bei DHCP-Anfragen einen "client identifier" mit. Eigentlich komplett wertlos, denn er besteht aus nichts anderem als der MAC-Adresse, die eh schon im Paket drin ist. Linux macht das standardmäßig nicht. Und da die Anfragen in diesem optionalen Teil nicht übereinstimmen, erkennt die Fritz!Box anscheinend den Rechner zunächst wieder, dann findet es aber doch nicht die vorherige Adresse und schickt ihm doch keine...
Abhilfe schafft es, unter Linux explizit einen client-identifier anzugeben, per /etc/dhcp3/dhclient.conf
send dhcp-client-identifier 01:<mac-addresse>;(die mac-adresse von der verwendeten Netzwerkkarte eintragen!)
Falls es jetzt Windows war, das von der Fritz!Box gerade keine IP mehr bekommen hat, wird es aber hässlich - dann muss man sich noch per telnet auf der Fritz!Box einloggen (und dazu überhaupt erstmal telnet aktivieren) und dort den DHCP-Cache löschen. Mehr auf der Fritzbox Probleme-Seite
Either this "Dr James Anderson, from the University of Reading's computer science department" is a crappy computer scientist (not to speak of his mathematical skills), or this is a case of really bad journalism.
Apart from having some facts wrong (infinity and -infinity aren't numbers, they're symbols outside of the numbers), he basically defines "0/0 = Nullity".
Well, some of us might prefer the name "NaN" for this. "Not a Number". In floating point calculations, 0/0 may (if you've disabled exceptions) return NaN.
So it is nothing new. And it's not particularly useful either, because all it solves is not having to raise an exception, but being able to continue your calculations (which will continue to return NaN) and handle the error at the end. With modern languages designed around exception handling, this of course is rarely ever used anymore.
Some simple calculations you might find convincing:
2 * Nullity = 2 * (0/0) = (2*0)/0 = 0/0 = Nullity
Nullity + 1 = (0/0) + (1/1) = (0*1 + 1*0)/(0*1) = 0/0 = Nullity
Nullity / Nullity = (0/0) / (0/0) = (0/0) * (0/0) = (0*0)/(0*0) = (0/0) = Nullity
So if you ever have Nullity anywhere in your equation the whole equation equals nullity. There is no way to remove Nullity from your results, since even Nullity/Nullity is Nullity.
So you could just call it "I divided by zero, so the result is invalid". Thats probably not as pretty as "Nullity", but as useful.
Some simple calculation, why you must not be allowed to divide by zero (independently from any nullity or whatever):
1*0 = 0 = 2*0 (This equation is right, isn't it?) 1 = 2 (I divided by 0 on both sides, removing the *0 factor)
This works for any number, not only for 1 or 2. So: if you divide by zero, all your numbers are equal (if you keep standard calculus rules such as associativity, distributivity etc. used in above equations). If that is okay for you, then you can divide by zero. I do prefer having 1 life to 0 life. And if 1 = 1000000, can you give me $1000000, I'll give you $1 back tomorrow...
But: Maybe it's just a bad piece of journalism.
He's a computer science guy. Maybe he knows about NaN. Maybe he's just trying to teach kids to use NaN when calculating, instead of teaching them to never divide by zero. There might be didactic benefits from this approach.
The 1200 year old problem (Pythagoras, cited in the article lived 2500 years ago, I have no idea how they made up this number) IS easy to solve, if the result is called "invalid" instead of just having no valid result...
That won't make your airplane land better, if it notices it's current height is Nullity... and what if his heart pacemaker obtains a result of "nullity", what is it supposed to do (as opposed to noticing it miscalculated?)
[Update: he has published papers on this, too. Unbelievable... So above theory that it maybe is good for educational purposes is incorrect. Anyway, journalists shouldn't have reported on this without talking to some serious mathematicians...]
[Update: Zoy, thats why I wrote "if you keep standard calculus rules such as associativity, distributivity, etc. - and I find these exceptionally useful. The last example is not using his rules, but standard math, but treats zero like all other numbers, to show that a canonical extension will just not give useful results. My whole point is NOT that you can't define 0/0=Nullity, but that it's not compatible with the standard calculus we're used to and relying on.]
Yesterday I put my laptop to sleep (on AC power) while I went to the christmas party of a company I worked for.
After returning, I couldn't read my email any more; dovecot would segfault after login. Restarting dovecot didn't help, but a reboot helped.
Sounds to me as if during sleep, some kernel cache of the dovecot application was corrupted (read only memory; cached by the kernel, which is why it survived the restart of dovecot).
Whoa, this is like Windows. Rebooting the computer actually fixed something!