John von Neumann over de eenvoud van wiskunde

If people do not believe that mathematics is simple, it is only because they do not realize how complicated life is.

John von Neumann, in een lezing op de eerste meeting van de Association for Computing Machinery in 1947

Workshop over supercomputers in Delft

Volgende week vrijdag is er aan de TU Delft een interessante workshop te volgen over “Experiences with the GPU and the Cell Processor”:

Ik schreef in het verleden al enkele keren over het gebruik van GPU’s (“graphics processing unit”) en de Cell-processoren in PlayStation 3’s voor allerlei rekenwerk. Zo schreef ik in PC-Active al over de FASTRA-supercomputer waarover Joost Batenburg komt spreken in Delft, en over Marc Stevens die een PlayStation 3 gebruikte om MD5-botsingen te berekenen. Dit soort berekeningen gaan we steeds meer zien in wetenschappelijk onderzoek.

Deelname aan de workshop is gratis, maar je wordt wel verzocht om je in te schrijven met een e-mail naar Diana Droog (d.droog@tudelft.nl).

Paul Painlevé over het reële en het complexe domein

Il apparut que, entre deux vérités du domaine réel, le chemin le plus facile et le plus court passe bien souvent par le domaine complexe.

Paul Painlevé, Analyse des travaux scientifiques (1900)

Een gelijkaardig citaat (“Le plus court chemin entre deux vérités dans le domaine réel passe par le domaine complexe.”) wordt vaak aan Jacques Hadamard toegeschreven, zonder bron. Hadamard schrijft in An Essay on the Psychology of Invention in the Mathematical Field uit 1945 op pagina 123 (cursivering van mij):

It has been written that the shortest and best way between two truths of the real domain often passes through the imaginary one.

Met de “It has been written” verwijst Hadamard naar Painlevé.

Fractals branden in hout

Lezer Pelle stuurde me een leuke link door van iemand die een hoge spanning op een blok hout aanlegt, met als gevolg dat er een fractalachtige structuur in het hout gebrand wordt. Kijk zelf:

burning wood

Op Flickr zijn er nog andere foto’s en zelfs filmpjes van dit fraais te zien.

Brahmagupta over wiskundigen

A person who can, within a year, solve x^2 - 92y^2 = 1 is a mathematician.

Brahmagupta

I will not throw paper airplanes in class

Toen een student als straf 500 keer “I will not throw paper airplanes in class” moest schrijven, krijtte hij het volgende programma op het bord:

#include 
int main(void)
{
  int count;
  for(count=1; count <=500; count++)
    printf("I will not throw paper airplanes in class.");
  return 0;
}

Gevonden bij Tom Bonte.

David Berlinski over het verbergen van de oorsprong van ideeën

Our paper became a monograph. When we had completed the details, we rewrote everything so that no one could tell how we came upon our ideas or why. This is the standard in mathematics.

David Berlinski, “Black Mischief” (1988)

2008 duurde een seconde langer

Jullie hebben allemaal al wel gehoord dat 2008 een seconde langer duurde door het invoeren van een schrikkelseconde. Ik was benieuwd hoe men deze schrikkelseconde zou noteren. Wat blijkt nu:

A positive leap second will be introduced at the end of December 2008.
The sequence of dates of the UTC second markers will be:		

                          2008 December 31,     23h 59m 59s
                          2008 December 31,     23h 59m 60s
                          2009 January   1,      0h  0m  0s

Voor ons is het door het uur tijdverschil met de UTC-tijdzone echter 2009 dat een uurseconde langer duurt: de schrikkelseconde werd om 1 uur ’s nachts ingevoegd.

2008 duurde een dag te lang voor Microsoft Zune

Gebruikers van de Microsoft Zune-muziekspeler kregen op oudjaar het apparaatje niet meer in gang: het herstartte vanzelf en bleef bij het opstartscherm hangen. In Microsofts driver voor de interne klok bleek een fout te zitten waardoor de Zune geen rekening hield met de 366 dagen van het schrikkeljaar 2008. Het 30 Gbyte-model uit 2006 weigerde daardoor op de laatste dag van 2008 op te starten. Microsoft heeft geen bugfix uitgebracht, maar meldde dat het probleem zichzelf op 1 januari zou oplossen (en dat was dan ook de officiële fix!). Gebruikers moesten wel de batterij volledig laten leeglopen en dan opnieuw opstarten.

Toen ik dit las, was ik benieuwd hoe zo’n onnozele fout anno 2008, 8 jaar na Y2K, nog kan voorkomen. Na wat zoekwerk vond ik de broncode van de driver op een Zune forum met uitleg over de fout. De klok slaat de huidige tijd op als het aantal dagen en aantal seconden sinds 1 januari 1980. Wanneer de tijd wordt opgevraagd, wordt het aantal dagen omgezet in de datum in jaren, maanden en dagen. Op het einde van de opstartfase gebeurt dit de eerste keer. Een deel van de C-code gaat als volgt (ORIGINYEAR staat voor 1980):

year = ORIGINYEAR;

while (days > 365)
{
    if (IsLeapYear(year))
    {
        if (days > 366)
        {
            days -= 366;
            year += 1;
        }
    }
    else
    {
        days -= 365;
        year += 1;
    }
}

De functie trekt dus 365 of 366 dagen van het aantal dagen af tot het aantal dagen kleiner dan een jaar is. Daarna (hier niet getoond) wordt de rest omgezet in de juiste maand en dag van de maand. In de code zit echter een fout: als het 31 december in een schrikkeljaar is (zoals 31 december 2008), dan is de vergelijking if (days > 366) niet waar, maar is 366 te groot om de lus while (days > 365) te stoppen. Het resultaat: de Zune blijft in een oneindige lus hangen en blokkeert. Een oplossing is (zoals in het Zune-forum gegeven):

year = ORIGINYEAR;

while (days > 365)
{
    if (IsLeapYear(year))
    {
        if (days > 366)
        {
            days -= 366;
            year += 1;
        }
        else
        {
            break;
        }
    }
    else
    {
        days -= 365;
        year += 1;
    }
}

Hierdoor wordt op 31 december van een schrikkeljaar het aantal dagen op 366 gehouden, het jaar niet aangepast en door de break-instructie uit de lus gesprongen.

Op 31 december 2012 gaat dit Zune-model opnieuw een dag onbruikbaar zijn als Microsoft tegen dan de bugfix niet heeft uitgebracht. En blijkbaar hebben ze geen haast, lees ik (cursivering van mij):

According to Microsoft’s Matt Akers, of the Zune Product Team, a fix will be released at some point before 2012, when the leap year issue will next arise.

Het zou me niets verbazen als Microsoft de fix ‘vergeet’ voor zijn tegen dan 6 jaar oude muziekspeler…

Anoniem over oude wiskundeleraars

Old math teachers never die, they just tend to infinity.

Anoniem