// Install Microsoft TTF core fonts on Fedora without using a RPM package

When Fedora 15 Lovelock was just a few days old, the generally known commands to build an appropriate package did not work.1) Therefore (and because I think it is a bit extreme to create a package just to get some fonts), I wrote install-msttcorefonts-fedora.sh to make the font installation faster and easier. There is a high probability that this script will never be useful to someone else than myself. But you never know. If you want to use it:

  1. Open a terminal.
  2. Run the following commands to download and start the script (copy and paste recommended):
    wget "http://blog.andreas-haerter.com/_export/code/2011/07/01/install-msttcorefonts-fedora.sh?codeblock=1" -O "/tmp/install-msttcorefonts-fedora.sh"
    chmod a+rx "/tmp/install-msttcorefonts-fedora.sh"
    su -c "/tmp/install-msttcorefonts-fedora.sh"
1)
At least for me. There were buildprereq and prereq errors. However, it seems to work in the meantime.

// Export/import IP settings on MS Windows with netsh

Every now an then, I need MS Windows for doing tests. I'm running different testing VMs and often have to deal with static IP settings on different LANs and VPNs. Therefore it is nice to know how to import and export IP settings without any GUI involved. I tested it only on XP/2k3 but it should also work on Vista/7.

  • Export: Configure your network settings as you like. Open a command prompt afterwards and use netsh to export the settings into a file:
    netsh -c interface ip dump > X:\network-foobar

    Repeat the task for every needed network.

  • Import: Use -f to load files like X:\network-foobar:
    netsh -f  X:\network-foobar

Now put the import command for different networks into separate batch files and name them properly to change the settings with simple double clicks. You might want to use runas for the netsh call because you need admin privileges to change IP settings.

// Microsoft Internet Explorer 8: Fix the weird textarea scrolling bug

MSIE 8 brings some new, weird bugs. One of the most annoying one targets <textarea>s with a percentage value for the width CSS property (ironically in standards mode only, the problem disappears in IE7 compatibility view or quirks mode). When a textarea has got enough content to offer scrollbars and the user already scrolled a little bit, every keystroke will because a disturbing auto-scroll effect (even with flickering scrollbars under certain conditions like onkeyup/down events or border CSS property values). This is a real show-stopper which makes editing longer texts very uncomfortable for IE8 users.

The following file shows the problem. Simply download and open it with IE8.2)

msie8-textarea-bug.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>MSIE8 textarea scroll bug/fail demo</title>
</head>
<script type="text/javascript">/*<![CDATA[*/
function checkMode() {
    var standard = false;
    if (document.compatMode) {
        if (document.compatMode === "BackCompat") {
            m = "Quirks";
        } else if (document.compatMode === "CSS1Compat") {
            m = "Standards Compliance";
            standard = true;
        } else {
            m = "Almost Standards Compliance";
        }
        if (standard === false) {
           alert("ATTENTION: The document is being rendered in "+m+" Mode - there will be NO bug!");
        }
        //alert("The document is being rendered in "+m+" Mode.");
    }
}
checkMode();
/*]]>*/</script>
<style type="text/css">
textarea {
    height: 180px;
    width: 50%; /* this will trigger the bug */
}
</style>
<body>
  <form name="foobar" method="post" action="">
    <textarea>
Please scroll down a little bit and try to edit text. E.g.
change the line by clicking into the text, type "asdf",
go to another line, type "asdf" and so on.
 
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed diam voluptua.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed diam voluptua.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed diam voluptua.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed diam voluptua.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed diam voluptua.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore
magna aliquyam erat, sed diam voluptua.
    </textarea>
</body>
</html>

I don't know how to get rid of the flickering scroll bars,3) but there is a workaround for the automatic scroll effect:

  • The bug is triggered by a percentage value of the CSS width property.
  • To get rid of it, you need to define a fixed px width.
  • If you do not want to loose the possibility to use flexible widths for <textarea>, you can get the needed percentage value through the back-door by using min-width and max-width with the same value afterwards. You may use browser specific hacks to hide/overwrite the fixed width from IE6 which is not affected by this bug but does not understand min/max-width.

Example:

textarea {
    /* width for non-IE browsers */
    width: 50%; 
 
    /* width for IE
       NOTE: - "\9" at the end is a CSS hack to address only IE (all versions).
             - "#" in front is a CSS hack to address IE6/7 */
    width: 500px\9; /* fix the bug */
    /* get the needed percentage value in IE7 and IE8 */
    min-width: 50%\9;
    max-width: 50%\9;
    /* get the needed percentage value in IE6 */
    #width: 50%;
}

Hope that helps. :-)

2)
tested on WinXP SP3 32bit
3)
this is thankfully just a minor, “cosmetic” problem

// "Division durch Null oder Überlauf" - alte FoxPro-Programme auf neuen Rechnern ausführen

Falls man im Alltag auf ältere Windows Software stößt, die auf einem neuen, schnellen Rechner nicht mehr funktioniert, sondern den Benutzer nur noch mit Meldungen wie “Division durch Null oder Überlauf”, “Division durch Null”, “Divide by Zero or Overflow Error” oder Ähnlichem begrüßt handelt es sich manchmal um alte Microsoft FoxPro-Prgramme. Solche Anwendungen kann man aber patchen, so dass Sie wieder normal funktionieren.

Ich bekam heute ein steinaltes Stück Software namens “Hoppe Wartungsplaner 1.0” vorgesetzt. Und es lief unter Windows 2000 nicht, sondern schmierte mit der oben schon genannten Fehlermeldung “Division durch Null oder Überlauf ab”. Ein Blick in den Programmordner enthüllte neben der WPS.EXE auch eine FOXW2600.ESL sowie weitere Dateien mit dem FOXQ-Prefix – Ein untrügerisches Indiz, dass es eine solche besagte MS FoxPro-Anwendung ist.

Was zu tun ist um FoxPro-Anwendung nun zu Patchen und auf Rechnern mit neuen CPUs zum Laufen zu bekommen ist im MS KB240982 beschrieben. Man muss sich nur eines der dort genannte Tools (entweder Patch26.exe oder IPatchFP.exe) herunterladen. Sollte dem Programm eine FOXPROW.EXE oder eine FOXPROW.ESL beiliegen ist Patch26.exe das Tool der Wahl. Im Falle einer FOXW2600.ESL die IPatchFP.exe. Via “Start\Ausführen” ruft man dann das entsprechende Tool mit der zu patchenden Datei als Parameter auf. In meinem Fall war dies C:\IPatchFP.exe C:\WPS\FOXW2600.ESL — und schon lief das Programm. Gotcha! :-D

Hintergrund Auf “schnellen” Systemen jenseits der 333Mhz kommt es zu diesem Fehler. Hat also erstmal nichts mit Windows 2000/XP oder ähnlichem zu tun – nur wird niemand auf einem 200Mhz Pentium ein Windows XP installieren, weswegen der naheliege aber falsche Gedanke kommt – muss wohl an WinXP liegen, auf Win95 läuft es ja noch…

Ein ähnliches Problem gibt es auch bei so manchen Pascal-Programmen, welche sich mit einem “Runtime Error 200” verabschieden (hatte ich auch schon drei mal). Hier hilft ein älteres c't-Tool namens BPPatch2.exe weiter: heise.de - Nicht schon wieder: Runtime Error 200

// 204 = 1223

Die Gleichung sieht komisch aus, ist total falsch und macht keinen Sinn. Jedenfalls für einen normalen Menschen. Die Jungs die den Internet Explorer entworfen haben scheinen dies aber anders zu sehen.

Heute war ein wenig Ajax angesagt. Das Skript hat den HTTP-Status-Code einer XML-Antwortdatei abgefangen, welches bei einer gültigen Anfrage ohne Ergebnis keine Ausgabe bringt und nur den 204 Code sendet, welcher für no content steht – also genau die ggf. vorliegende Situation “gültige Anfrage aber kein Inhalt” beschreibt. Soweit so gut. Dies sollte nun abgefangen werden um direkt den darauffolgenden Request abzusetzen:

} else if (http_request.status == 204) {

*kabooom*. Hat überall funktioniert, nur im IE nicht. Nach einigem Debuggen staunte ich nicht schlecht, als ein

alert(http_request.status);

in jedem Browser 204 ausgab, im IE allerdings ein 1223 produzierte. Also schnell Google angeworfen und mal wieder die Bestätigung eingeholt, das der IE – auch in der Version 7 – ein Biest ist. Er nimmt sich nämlich einfach die Freiheit in machen Fällen den Status-Code von 204 auf 1223 umzuschreiben. Zum kotzen. Um ein zusätzliches

|| http_request.status == 1223

kam ich in dem Skript also nicht herum. :-/

// Microsoft und gar nicht so zufällige Zahlen

Bruce Schneier hat einen neuen US-Standard zur Erzeugung von Zufallszahlen und den darin enthaltenen Generator Dual_EC_DRBG schon etwas länger im Visier, da er darin eine Backdoor für die NSA vermutet, die über die ggf. gar nicht so zufälligen Zahlen kryptographische Schlüssel angreifen könnte.

Nun ist Bruce Schneier ein bedeutender Krypto-Experte – um so unverständlicher (außer es ist etwas dran, an Schneiers Vermutung ;-)) ist es, dass Microsoft Dual_EC_DRBG ohne Veränderung im SP1 für Vista eingebaut hat und damit bald an seine Kunden ausliefert. Schneier rät daher allen Programmieren einschlägiger Software ab, Dual_EC_DRBG in den eigenen Programmen zu nutzen. Ein Rat, den man befolgen sollte.

// Microsoft kämpft mal wieder ein wenig unfair - diesmal gegen Google

Microsoft ist eine der mächtigsten und profitabelsten Firmen der Welt. Aber in Sachen Internet bekommen Sie regelmäßig “die Hucke voll”, u.a. von Google. Google genießt eine einzigartige, monopolartige Stellung im umkämpften Werbemarkt. Daher mag ich nicht so Recht an einen Zufall glauben, dass die Live-Suche sich ausgerechnet bei Google-Werbeschaltung nicht an die robots.txt von Google selbst hält: Live.com ignoriert Googles robots.txt: Millionen AdWords-Links im Index

Wenngleich ich die meisten Bewegungen gegen Quasi-Monopole gut finde, ist das doch ziemlich dreckig. Es hat nämlich zur Konsequenz, dass viel der von Google verbreiteten Werbung bei Live.com in einem ziemlich ungünstigen Kontext auftaucht, und die Google-Kunden für die Klicks von ggf. völlig uninteressierten Live.com-Besuchern Geld an Google blechen müssen. Was sich erstmal vorteilhaft für Google anhört ist nach einiger Zeit aber fatal: Die Werbung könnte darüber für viele Keywords schnell als weniger effizient wahrgenommen werden, was sich natürlich in einem Preisverfall zu Lasten von Google bei den internen Auktionen äußern würde. Ein Schelm wer Böses dabei denkt. Reiner Zufall. ;-)

MS war und ist für äußert rigide Geschäftspraktiken bekannt (und es ist auch keine Entschuldigung, dass andere Unternehmen genauso vorgehen). Seit dem Aufkommen des Internets und dem damit verbundenen Aufstieg des Computers zum wirklichen Massenmedium für Privatpersonen ist Microsoft aber in das Bewusstsein von sehr vielen Menschen gerückt, die um Computer und MS in den 90ern noch einen weiten Bogen gemacht haben. Die Skandale laufen seit einigen Jahren (vielleicht darum) auch viel versteckter – und es funktioniert. Microsoft genießt außerhalb einer gewissen IT-Klientel ein hervorragendes Image, viele haben außerhalb von ein paar Win98-Bluescreens nie Negatives von MS gehört. Schade eigentlich.

(via)

// Zentrale Inhaltskontrolle - MS macht heute den Anfang (vom Ende?!) und sperrt den Atsiv-Treiber

Heute geisterte das Thema durch die größeren IT-bezogenen Newsticker: Microsoft hat es tatsächlich durchgezogen und den von LinchpinLabs entwickelten Atsiv-Treiber zentral aus Windows Vista ausgesperrt, weil er Redmond nicht ins Konzept passt. Dieser Treiber wird also in Zukunft nicht mehr auf 64bit-Vista-Rechnern funktionieren, da sein für den Betrieb ausgestelltes digitales Zertifikat für ungültig erklärt wurde (für Laien: mit digitalen Zertifikaten ist es u.a. möglich, eine Software oder ein Inhalt eindeutig zu identifizieren und die Echtheit zu bestätigen. Durch das sperren des Zertifikats kann also die zugehörige Software gesperrt werden).

Der konkrete Fall hat zudem einen besonderen Beigeschmack: Die zum Vista-Betrieb nötigen Zertifikate kosten die Hersteller Geld. Sie müssen verwaltet und ggf. bei einer passenden Stelle beantragt werden. Bei jeder neuen Version des hergestellten Software-Produkts aufs neue, was natürlich wieder kostet. Diesen aufwendigen Prozess zu umgehen hat der nun gesperrte Atsiv-Treiber ermöglicht, denn er selbst war gültig signiert und konnte andere Treiber nachladen – Praktisch ein Türöffner für unsignierte Treiber etc., und somit natürlich für freie OpenSource-Projekte nützlich und teils auch notwendig, um Manches überhaupt umsetzen zu können. Es gibt einfach zahlreiche Projekte, die die Zertifizierungspolitik nicht erfüllen können (z.B. aus finanziellen Gründen). Wenn man bedenkt, wie MS zu OpenSource steht sollte das Sperren dieses Treibers, natürlich nur zum Vorteil für die Kunden ;-), einen jeden nachdenklich stimmen. Zumal all die Zusatzkosten auf den Kunden abgewälzt werden!

Wer jetzt fragt “Wo ist das Problem?” hat meiner Meinung nach einfach zu kurz oder gar nicht nachgedacht. Denn MS könnte genauso gut im Auftrag und/oder unter Druck der US-Regierung wichtige Kommunikationssysteme anderer Staaten lahmlegen (z.B. im Kriegsfall). Oder unliebsame Dokumente weltweit sperren (die Technik dafür ist praktisch schon vorhanden!). Nicht nett, das Ganze. Man stelle sich eine Flugsicherung vor, die ausfällt weil jemand in Redmond Lust dazu hat oder schlicht einen Fehler macht.
Außerdem ist dies wiedermal die verachtenswerte Salamitaktik. Der Nutzer wird an den Kontrollverlust gewöhnt, nach und nach. Wie schon bei den alltäglichen Software-Aktivierungen, mit dem Unterschied, dass diese Inhaltskontrolle ein wirklich großes Problem werden kann. Mal sehen, was die nächste Scheibe der Salami sein wird.

Und selbst wenn das Problem nicht in Zensur und Missbrauch endet: es geht um das Prinzip. Computer sind Maschinen, deren Merkmal u. a. darin besteht, dass sie auch Dinge umsetzen können, die zum Zeitpunkt ihrer Konstruktion noch gar nicht im Raum standen. Computern genau dieses Merkmal über DRM zu nehmen ist eine krasse und nicht zu tolerierende Entwicklung. Windows Vista ist auch deshalb sehr kritisch zu betrachten!

Man sollte sich zudem nicht durch diverse Aussagen beruhigen lassen, dass man Vista in einem Modus ohne Treibersignuatur-Kontrolle starten kann. Denn dieser ist zum einen für Entwickler gedacht (und funktioniert oft nur mittelprächtig bis gar nicht), zum anderen ist das in der Praxis nicht durchführbar bzw. wird in Zukunft nicht mehr funktionieren, da DRM-Anwendungen in diesem Modus garantiert nicht funktionieren werden bzw. schon jetzt nicht funktionieren. Ein solches Verhalten von Anwendungen könnte sogar von Microsoft erzwungen werden, durch simples androhen der Sperrung von Software, die sich an eine solche Richtlinie nicht hält, da ansonsten ja das DRM-Konzept aufgeweicht werden würde.

Nachtrag: Ich nehme etwaige Besserwisserei vorweg: Ja, derzeit betrifft das noch keine “normale” Software wie einen ungeliebten Tauschbörsen-Client oder Ähnliches, sondern nur Code, der auf Kernel-Ebene ausgeführt wird. Das sich das Konzept, was bei Treibern funktioniert aber auch auf alles andere anwenden lässt, sollte klar sein. Und es wird kommen, so sicher wie das Amen in der Kirche. TC, NGSCB und TPM sind Realität und rücken mehr und mehr in den Vordergrund. In zehn Jahren finden sich diese Techniken überall – ggf. zwangsweise und nicht optional. Daher ist es durchaus gerechtfertigt, all diese Techniken argumentativ in einen Topf zu werfen, denn sie zielen alle auf das Gleiche ab: zentrale Kontrolle, was auf einem Rechner geschieht, und was nicht. Solche Instrumente einzuführen ist ein Spiel mit dem Feuer. Noch ist die Situation halbwegs im Lot, man muss aber auch dafür Sorgen, dass es in Zukunft so bleibt.

// Microsoft Product Licensing Advisor - Hilfe im Lizenzdschungel

Vor zwei Tagen durfte ich mich mal wieder mit dem krassen Wirrwarr der Microsoftschen Linzenzpolitik herumärgern. Insbesondere bei Volumenlizenzen ist das eine Wissenschaft für sich (es gibt sogar mehrtägige(!) kostenpflichtige(!!) Kurse von MS zu diesem Thema).

Daher kam mir wieder ein Tool in den Sinn, das einem beim groben Selektieren durchaus brauchbare Dienste leisten kann: Microsoft Product Licensing Advisor

Das Tool sondiert anhand der Anforderungen entweder die geeignete Software und/oder das richtige Lizenzpaket zu einer Software. Teilweise finden sich auch spezielle oder zeitlich begrenzte Lizenzprogramme für diverse Institutionen etc.. Also bei Bedarf durchaus nützlich.

Dennoch: Schon krass, dass ein solches Tool überhaupt eine Daseins-Berechtigung hat. ;-)

I'm no native speaker (English)
Please let me know if you find any errors (I want to improve my English skills). Thank you!
QR Code: URL of current page
QR Code: URL of current page start (generated for current page)