~ MathML und der Browserkrieg ~

Maxim 2. September 2010 Keine Kommentare

Wer sich auf meinem Blog umschaut, sieht dass viele meiner Artikel mathematische Formeln beinhalten. Bis jetzt verwende ich ein WordPress-Plugin, welches Formeln in LaTeX-Format verarbeiten kann. Damit werden aus dem LaTex-Code PNG-Grafiken erstellt und in den HTML-Code eingebunden. Ein zweiseitiger Artikel hat deswegen locker 30 eingebundene Grafiken.
Der Leser muss dadurch nicht nur lange warten bis die Grafiken geladen sind, nein, er bekommt auch noch ein inkonsistentes Erscheinungsbild geboten.

Bereits 1998 hat W3C einen Standard zur Darstellung von mathematischen Formeln in HTML veröffentlicht – MathML. Dabei werden Formeln in XML-Format einfach in den HTML-Code eingefügt. Der Code selbst kann zum Beispiel von einem speziellen Programm generiert werden.

Beispiel MathML-Code:

<math mode="display" xmlns="http://www.w3.org/1998/Math/MathML">
    <mover><mi>x</mi><mo>&rarr;</mo></mover>
    <mo>=</mo>
    <mfenced>
        <mtable><mtr>4<mtd/></mtr><mtr>2<mtd/></mtr><mtr>5<mtd/></mtr></mtable>
    </mfenced>
    <mo>+</mo><mo>&mu;</mo>
    <mfenced>
        <mtable><mtr>-3<mtd/></mtr><mtr>3<mtd/></mtr><mtr>4<mtd/></mtr></mtable>
    </mfenced>
</math>
x=425+μ-334

Beispiel MathML-Code 2:

<math mode="display" xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mi>x</mi>
    <mo>=</mo>
    <mfrac>
      <mrow>
        <mo form="prefix">&#x2212;<!-- &minus; --></mo>
        <mi>b</mi>
        <mo>&#x00B1;<!-- &PlusMinus; --></mo>
        <msqrt>
          <msup>
            <mi>b</mi>
            <mn>2</mn>
          </msup>
          <mo>&#x2212;<!-- &minus; --></mo>
          <mn>4</mn>
          <mo>&#x2062;<!-- &InvisibleTimes; --></mo>
          <mi>a</mi>
          <mo>&#x2062;<!-- &InvisibleTimes; --></mo>
          <mi>c</mi>
        </msqrt>
      </mrow>
      <mrow>
        <mn>2</mn>
        <mo>&#x2062;<!-- &InvisibleTimes; --></mo>
        <mi>a</mi>
      </mrow>
    </mfrac>
  </mrow>
</math>
x=b±b24ac2a

Und was sieht ihr? Eine schön gezeichnete Formeln, die sich der Schriftart und Schriftgröße automatisch anpassen (mit Strg und “+” ausprobieren) oder komisches Zahlenwirrwarr?
So sehen die beiden Beispiele in Firefox aus:
Formel Beispiel 1
Formel Beispiel 2

Benutzer von Google Chrome, Internet Explorer und Safari sehen wahrscheinlich nur sowas in der Art:
Formel falsch dargestellt

Praktisch alle Browserhersteller kämpfen um Marktanteile und versuchen immer weiter die Seitendarstellung oder die Ladezeit um paar zerquetschte Millisekunden schneller zu machen, aber keiner bemüht sich Standards, die bereits über 10 Jahre alt sind, zu implementieren. Firefox und Opera (nicht getestet) haben zumindest die Basis implementiert, die für viele Bereiche ausreichen. WebKit basierte Browser wie Chrome oder Safari spielen zwar in den Nightly Builds mit MathML rum, aber scheinen es auch nicht gerade eilig zu haben.

Etwas kurios ist die Sache mit Internet Explorer. Um MathML in IE darzustellen braucht man ein Plugin, dass es bereits seit IE 5.5 gibt (soweit ich weiß).
Das kuriose ist, das MS bereits super funktionierenden Parser und Engine zur Darstellung von MathML hat. Das aktuelle Office 2010 hat einen wunderbaren Formel-Editor drin, der die Formeln in MathML-Format einbinden. Das “Mathematik-Eingabebereich” Tool, dass bei Windows 7 standardmäßig dabei ist, mit dem man Formeln mit der Maus bzw. Stift schreiben kann um diese in Word einzufügen, erzeugt auch MathML-Code.
Die Darstellung ist auch super, wie man es zum Beispiel an diesem Artikel sehen kann.
Sie haben die Technologie und nutzen sie nicht. Wie es scheint, hat Microsoft ein großes Kommunikationsproblem zwischen den einzelnen Entwicklungsabteilungen.
Mit dem Internet Explorer 9 wird sich dabei auch nichts ändern. Zumindest erhält man mit IE9 Preview 3 den gleichen Mist wie mit IE8.

Meiner Meinung nach ist MathML Unterstützung eine Marktlücke, die nicht erkannt wird. Die Größe des wissenschaftlichen Sektors wird unterschätzt.
Viele Universitäten stellen Fachtexte online, bei denen Formeln als Grafiken eingebunden sind. Ersten sieht es total schlecht bis unleserlich aus, zweiten habe ich schon so viele Fachtexte gesehen, in denen die Grafiken einfach fehlen (kA warum), was dazu führt dass der ganze Text unbrauchbar wird. Wären die Formeln als MathML eingebunden, so könnte man sie auch heute noch betrachten.

Dies führt zum nächsten Punkt: Informationserhalt im Internet. Wollte man früher einer breiter Menschenmasse was sagen, so schrieb man ein Buch, heute betreibt man eine Internetpräsenz. Geht die Website offline, so verschwinden auch viele Informationen.
Es gibt Projekte, die versuchen diese Informationen zu erhalten. Auch Google sichert alte Inhalte. Das Problem ist, dass meistens nur der HTML-Code gesichert wird. Damit haben wir wieder das Problem, dass die Fachtexte ohne Formeln unbrauchbar sind.

Man schimpft ständig auf MS, dass IE Standards nicht überstürzt, aber sind denn andere Browserhersteller so viel besser?
Es bleibt nur zu hoffen, dass die Browserhersteller mehr an ihren Produkten arbeiten, als nur jeden Monat die Versionsnummer zu erhöhen, weil die Seitenladenzeit von 500ms auf 499ms verbessert werden konnte.

~ Speccy: Systeminformationen anzeigen ~

Maxim 23. August 2010 Keine Kommentare

Speccy ist ein schlankes Programm für Windows 7, Vista, XP und 2000, welches die wichtigsten Informationen zur verbauter PC-Hardware anzeigt.
Dies kann sehr hilfreich sein, wenn man einen neuen Treiber sucht, aber die genaue Bezeichnung der Hardware nicht kennt.

speccy

Die aktuelle Version, die heute erschienen ist und eine Reihe von Fehlern korrigiert, hat auch eine native 64-Bit Unterstützung bekommen.

Irgendwie mag ich diese schlanken Programme aus dem Hause Piriform =)

~ Ein Seil um die Erde ~

Maxim 11. August 2010 2 Kommentare

Man stelle sich vor, man umspannt mit einem Seil die ganze Erde. Dabei wird das Seil straff gehalten, so dass es direkt auf der Oberfläche liegt.
Jetzt schneidet man das Seil durch und verlängert es um einen Meter.
Wenn man jetzt versucht das Seil an jeder Stelle um den Globus herum gleichzeitig hochzuheben, wie hoch kommt man dann?
seil um die erde
Ohne nachzurechnen würde man wohl vermuten, dass man höchstens ein paar Millimeter hoch kommt, da das Seil doch so lang ist und ein weiterer Meter kaum eine Rolle spielt. Die richtige Antwort ist aber viel verblüffender.

Das Seil hat zunächst eine Länge von U_1=2\pi R mit Kugelradius R.
Die Länge wird um einen Meter erhöht, also U_2 = U_1 + 1m =  2\pi r.
Die Differenz zwischen r und R ergibt die gesuchte Höhe h.
Wir setzen die erste Gleichung in die zweite ein.
2\pi R + 1m = 2\pi r
2\pi (r-R) = 1m
r-R = h = \frac{1m}{2\pi}
h= 0.159m

Das heißt das Seil kann um 16cm von der Erdoberfläche hoch gehoben werden. Unglaublich oder?! Was noch verwunderlicher ist, dass diese Höhe vom Radius unabhängig ist. Egal ob man eine Erbse oder ein Stern nimmt – h beträgt immer 16cm.

Wie hoch kann man das Seil hochheben, wenn man nur an einer Stelle hochzieht?
Hier ist das Problem nicht ganz so trivial bzw. sogar analytisch nicht lösbar.
Aus der Zeichnung sieht, dass k^2 + R^2 = (R+h)^2 ist.
Durch umformen kommt man auf k=\sqrt{2Rh+h^2}.
seil um die erde 2
Das Problem besteht jetzt darin k zu bestimmen.
Die Länge des Seils ist 2*k plus dem unteren Kreissektor z, der dem Kreisumfang ohne den beiden Kreissektoren s entspricht, also L=2k+z = 2k+U-2s.
Gleichzeitig ist die Länge des Seils aber auch der Kreisumfang mit einem zusätzlichen Meter, also L=U+1m. Wir können die beiden Gleichungen gleichsetzen:
2k+U-2s = U+1m
k = s + 0.5m

Man setzt das k in k=\sqrt{2Rh+h^2} ein und bekommt s=\sqrt{2Rh+h^2} - 0.5m raus.
Der Kreisbogen s ist definiert als s=R*\theta (θ heißt Theta).
Aus der Zeichnung sieht man, dass cos(\theta)*(R+h) = R ist. Umformen nach Theta und einsetzen in den Kreisbogen ergibt s=R*arccos(\frac{R}{R+h}).

Jetzt können beide Gleichung mit dem Kreisbogen gleichsetzt werden
R*arccos(\frac{R}{R+h}) = \sqrt{2Rh+h^2} - 0.5m
seil um die erde plot
Die Gleichung hängt nur von R und h ab, wobei h gesucht ist. Das Problem ist, dass diese Gleichung wegen dem h im Argument von Arkuskosinus nicht auflösbar ist. Man kann sie nur nummerisch lösen.

Ich habe mit Mathematica einen Funktionsgraphen erstellt. Auf der x-Achse ist der Kreisradius und auf der y-Achse die Seilhöhe h aufgetragen.

Laut dem Funktionsplot würde die Höhe h beim Erdradius (~6378000m) ungefähr 120m entsprechen.
Abgefahren oder?

Mathematik kann so schön sein…die Betonung liegt auf kann :D