Fragen? Antworten! Siehe auch: Alternativlos
Da ich eh niemanden kenne, der Hotmail als Email-Service nutzt, würde es mich auch nicht traurig machen, Hotmail komplett zu filtern. Nur haben die leider keinen eigenen IP-Range sondern sind Teil des MS IP-Ranges.
Here are Bush's words, spoken before hundreds of lawmakers and politicians:"Chang is a mystical warrior. Chang is somebody who believes in conservative principles, believes in entrepreneurial capitalism, believes in moral values that underpin a free society.
I rely on Chang with great regularity in my public life. He has been by my side and sometimes I let him down. But Chang, this mystical warrior, has never let me down."
Bush then unsheathed a golden sword and gave it to Rubio as a gift.
"I'm going to bestow to you the sword of a great conservative warrior," he said, as the crowd roared.
Dem GNOME-Projekt ist schon klar, was sie da mit GConf und Fontconfig für Bloatmonster geschaffen haben. Bestürzend fand ich aber den geradezu Adam-Smithschen Glaube, das würde sich schon alles von selbst regeln. Bei Open Source, da würden immer alle wichtigen Probleme gelöst. Nicht gelöste Probleme sind per Definition nicht wichtig.
Ach ja, und in der Straßenbahn wird man nicht mit Werbung bombardiert. Und ich habe auch keine Überwachungskameras bemerkt. Kurz gesagt: man wird da wie ein Mensch behandelt.
In den Bahnen hängen auch hilfreiche Pläne aus (im Gegensatz z.B. zu Düsseldorf, wo ich nicht einen Zug gesehen habe, in dem mal ein Plan von Düsseldorf aushing! Essen, Dortmund, ja sogar Stuttgart, alles vertreten, aber nicht Düsseldorf).
Oh, und hier funktionieren die Ticketautomaten! Das habe ich sofort belohnt, indem ich nicht schwarz gefahren bin :-) In Düsseldorf war die Regel, daß die Automaten nicht gingen. Im Sinne von: KEIN Automat am kompletten Bahnhof ging. Entweder alle Ticketautomaten waren kaputt, oder alle Stempelautomaten. Oh, und die Straßenbahn hält hier auch alle 100m. Das führt dazu, daß sie länger braucht, aber auch daß man Entfernungen falsch einschätzt. Zwischen Hauptbahnhof und meinem Hotel liegen ca 10 Stationen, aber auf der gleichen Strecke macht die Berliner S-Bahn nur zwei Mal halt. Das Extrem ist Frankfurt; deren S-Bahn hätte hier vermutlich gar nicht gehalten. Naja, Karlsruhe gefällt mir an sich sehr gut, muss ich wirklich sagen. Einziges Problem: hier ist es immer ein paar Grad wärmer als sonst wo. Jetzt kühlt es gerade ab, aber die ersten Tage kam noch eine drückende Schwüle dazu, das fand ich sehr unangenehm.
Ich finde es allerdings eine interessante Metrik, a) wie viele Szenarien sich die OS-Fans selbst ausdenken können, in denen ihr Favorit klar führt, und b) wie realitätsnah die sind. Letztes Mal ging es mir nur darum, interessante Messungen durchzuführen. Nachdem dann zwei der drei Beteiligten als Antwort auf die Benchmarks deutliche Verbesserungen vorgenommen haben, die allen etwas gebracht haben, habe ich das dieses Mal auch zu meinem Anspruch gemacht, Sachen zu finden, die besonders verbesserungswürdig sind, und auf die mal jemand pressewirksam mit dem Finger zeigen sollte.
Bisher ist übrigens noch kein Benchmarkvorschlag bei mir eingegangen. Auf der einen Seite schön, weil die Leute vielleicht keine Benchmarks manipulieren wollen, auf der anderen Seite kann es ja auch an Verpeilung oder Desinteresse liegen, oder daran, daß es tatsächlich keine Szenarien gibt, in denen BSD Linux outperformt.
Manche Leute haben vermutet, es ginge darum, den Vorwurf des Linux-Bashings zu vermeiden. Darum geht es nicht. Es geht mir voll am Arsch vorbei, wenn BSDler keine andere Verteidigung finden, als den Benchmark-Durchführer persönlich anzugreifen, im Gegenteil, das ist in sich ein prima Meßwert über das jeweilige BSD. Weil das so ist, habe ich letztes Mal NetBSD so gelobt, die es nicht gemacht hatten.
Aber es läßt sich ganz deutlich sagen, daß meine Benchmarks letztes Mal gezeigt haben, daß Linux 2.6 schon weitgehend perfekt ist von der Skalierbarkeit, und so hat Linux 2.6 keine vorteilhaften Veränderungen gemacht, als einziger Teilnehmer keinen Gewinn gezogen. Dieses Mal möchte ich, daß auch für Linux etwas heraus fällt. Ganz einfach.
Der Unix-Ansatz ist, daß man die Sockets alle auf "non-blocking" setzt. Wenn man dann read aufruft, aber nichts da ist zum Lesen, blockt der Prozeß nicht, sondern man kriegt "probier später nochmal" als "Fehler"-Meldung. Dann benutzt man ein Event Notification API, um sich sagen zu lassen, auf welchen Sockets gerade Daten reingekommen sind.
Unter Windows ist der Ansatz umgekehrt: es gibt keinen Non-Blocking Mode für Sockets. Man startet ein read mit fixem Zielpuffer, und das Event Notification Framework von Windows sagt einem dann nicht, wenn es was zu lesen gibt, sondern wenn es was zu lesen gab, d.h. zu dem Zeitpunkt ist das schon gelesen. Das Problem dabei: Wie macht man Timeout-Handling? Man kann nicht unterwegs fragen, wie weit der Datei-Rausschieben-Job schon gekommen ist! Also kann man auch nicht wissen, ob die Verbindung seit 10 Minuten hängt, oder ob da nur ein sehr langsames Modem auf der Gegenseite ist.
Und dann schreiben die Man-Pages was von Background-Threads, … also kurz gesagt: der Windows-Ansatz ist: "gib mal her, der Kernel macht das schon". Nur leider macht der Kernel das nicht besonders gut. Kernel-Threads, das erweckt eine Vision von einem Thread pro ausstehendem I/O-Request, anstelle einer anständigen State Machine.
Ein anderes Problem ist, wie man Handles alloziert. Man macht einen Socket oder eine Datei auf, und kriegt ein Handle vom System. Unter Unix ist das traditionelle Problem, daß das ein Integer ist, und das man die kleinste unbelegte Zahl als Integer kriegt. Linux und die BSDs haben sich da unglaubliche Algorithmen überlegt, um das schnell zu erledigen (einfach ist es jedenfalls nicht). Windows liefert einfach nicht den kleinsten Integer aus, sondern irgendeinen. Man sollte denken: Problem erledigt. Aber dann stößt man auf Funktionen wie AcceptEx, wo man einen Deskriptor wiederverwenden kann, weil es offenbar unter Windows immer noch immens teuer ist, ein Handle zu allozieren. WTF?!
Schlimmer noch: der Normalfall bei TransmitFile (dem sendfile-Ersatz unter Windows) ist, daß das ganze File am Stück gesendet wird, und man kann dann per Flag sagen: "mach danach mal die Verbindung zu". Kurzum: Timeout-Handling, nein danke. Und dieses Handle-Wiederverwerten legt die Vermutung nahe, daß typische Server, selbst wenn sie dieses Ultra-Skalierbarkeits-API verwenden, trotzdem nur n Verbindungen parallel haben können, weil man die Handles unter Windows halt vorher als Pool alloziert und mehr geht dann halt nicht. Oder wie?
Man darf gespannt sein, wie sich das dann unter realen Gesichtspunkten mißt. Aber ich mache mir da keine großen Hoffnungen, wenn ich Formulierungen wie "The server optimizes the TransmitFile function for high performance. Workstations optimize the function for minimum memory and resource utilization." lese. Ich hab hier "nur" Windows XP Professional zum Testen, und da performt das ja offensichtlich absichtlich scheiße, damit die Leute lieber die Advanced Datacenter Ultra Monster HeadShot Edition kaufen. Überhaupt ist TransmitFile der Kludge des Jahres. Man sendet immer Chunks aus einer Datei, als Länge maximal 32 Bit. Dateien mit mehr als 4 Gigabyte schickt man dann, indem man halt mehrfach TransmitFile aufruft. Womit wir dazu kommen, wie man sagt, ab welchem Offset in der Daten TransmitFile schicken soll. TransmitFile sendet ab der aktuellen Byteposition im File, aber die Man Page rät einem, man möge die Overlapped-Struktur (die für alle anderen Fälle opak ist und interne Fortschrittsinformationen für asynchrones I/O für den System-Thread ablegt, der es bearbeitet) manipulieren, um das Offset zu setzen. Es ist Pfusch wie dieser, der das alles nicht schön aussehen läßt. Na mal gucken.
0.040436 GET /
0.003324 GET /Die Zahl ist die Latenz zwischen Reinkommen der HTTP-Anfrage und Rausgehen der Antwort in Sekunden.
Bush öffnet den Brief, und er scheint eine verschlüsselte Botschaft zu beinhalten:
370HSSV-0773H
Bush ist verwirrt, und so schreibt er eine Mail an Colin Powell. Der versteht es auch nicht, und so forwarden sie das zur CIA, dann zur NSA, und schließlich fragen sie verzweifelt die EU um Rat. Die Antwort der EU: "du hast es falsch herum gehalten" :-)