Vorschlag für die Nicht-Wähler


In der Sendung vom 24. September 2009 bei Kerner: Gabor Steingart (Spiegel-Büro Washington) und Mario Barth diskutieren über bekennende Nicht-Wähler und deren (fehlende) Auswirkung auf die Politik/Partien. Kerner wirft ein, sich nicht in einen Topf mit politisch Desinteressierten und Kein-Bock-Menschen werfen lassen zu wollen.

Vorschlag von Barth: Wahlzettel mit Männeken bemalen oder anderweitig ungültig machen, um sich so von der Masse derer Abzuheben, denen eine Wahl am Allerwertesten vorbei geht und so ein Zeichen setzen zu können.

Sprachlos


Diese Idee ist so bescheuert, dass mir glatt die Worte fehlen… Vielleicht Qualitätsjounalismus != Printjournalismus oder sowas. Wobei man ja nie generalisieren darf. ;-)

LG,
Dominik

Das IE6-Dabakel


Da gibt es die Unternehmen mit zentraler IT-Verwaltung einerseits und (private) Update-Verweigerer auf der anderen Seite - letztere mal mit und mal ohne Kenntnis von Alternativen. Im Resultat kommt dabei heraus, das jeder achte noch mit der inzwischen zehn Jahre alten Version 6 das Internet entdeckt.

Für Webentwickler ist das ein ganz besonderes Ärgernis, jede auf Erfolg ausgerichtete Webseite, ob nun kommerziell oder nicht, in diesem Internet Explorer zum Laufen zu Bringen. Schlüsseltechnologien, wie guter CSS2.1- oder gar CSS3-Support, oder Javascript in fortgeschrittenen Versionen und entsprechenden Möglichkeiten das DOM im AJAX-Kontext zu verändern, fehlen hier. Entsprechende Javascript-Bibliotheken müssen also diese Funktionen nachbilden und wachsen so nochmal deutlich an, Layoutkrücken, hässliche »CSS-Hacks« und ähnliche Workarounds machen letztlich nicht nur die Fehlersuche zu einem Geduldsspiel.

Was also tun?

Viele Optionen gibt es nicht. Brachial sind sowohl die Möglichkeiten einerseits den IE6 gänzlich zu ignorieren (wie ich das hier anfangs auch tun wollte) oder andererseits tief in die Trickkiste zu greifen und mit sehr viel Mühen und Aufwand jedes Detail nachzubilden.

Eine weitere Variante ist die begrenzten IE6-Fähigkeiten so gut es geht zu unterstützen, aber moderne Ansätze ohne oder mit negativer Wirkung im IE6 ebenfalls zu verwenden (Beispiel: voll-transparente PNG32-Bilder, wie hier). Das mag dann im Internet Explorer an einigen Stellen komisch aussehen, aber der Inhalt an sich ist benutzbar. Möglichkeit vier besteht dann darin dem IE ein alternatives Stylesheet und/oder weitere Inhalte auszuliefern. Das Zauberwort hier heißt dann »Conditional Comments«.

Nahezu alle diese Herangehensweisen haben ein Problem: die im Grunde doppelte Arbeit. Abgesehen von purer Ignoranz kann man nicht einfach ein standardkonformes Layout/Skript schreiben und dann überall verwenden.

Von Google stammt nun eine neue Idee: Man tauscht bei Bedarf »einfach« die Rendering- und Interpreter-Engine des Browsers aus, realisiert dies als Plugin für den IE und alles ist gut. Das nennt sich dann Google Chrome Frame und scheint des Problems Lösung zu sein, wenn man so den Meinungen glauben darf:

Google hat etwas gemacht, was einem alten Traum jedes Webdesigners gleichkommt: Die Rendering- und JavaScript-Engine eines Browsers gegen eine andere zu ersetzen. […]

Wenn auch nur 20 Prozent der gezwungenen IE6-Nutzer mittels Chrome Frame Zugang zu modernen Webanwendungen zu erhalten, ist schon viel getan. Jeder einzelne protestierende Arbeitnehmer […] ist hier gefragt, das bei der IT für sich einzufordern. Dies ist also auch ein Aufruf an alle, die sich bisher vergeblich für alternative Browser am Arbeitsplatz abgerackert haben. Nun kann man über das Hintertürchen […] vielleicht was erreichen.

Dem ist nichts mehr hinzuzufügen.

—Dominik

Linktipp


(Mir graust es immer noch »Tipp« zu schreiben…)

Eine sehr Ruby-on-Rails-lastige Sammlung an Tutorials gibt es beim Anbieter virtueller Server Slicehost. Die Anleitungen zeigen einsteigerverständlich, wie z.B. ein Nginx-Thin-Rails-Stack eingerichtet werden kann. Aber auch die Einrichtung verschiedener Datenbanken und eines MTAs wird gezeigt.

Da ist doch der Wurm drin…


Bis vor Kurzem habe ich mich gefragt, warum ich auf meinem lokalen System beim Starten einer Rails-Applikation diese Meldungen bekomme:

$ ruby script/server
/usr/lib/ruby/1.8/xmlsimple.rb:275: warning: already initialized constant KNOWN_OPTIONS
/usr/lib/ruby/1.8/xmlsimple.rb:280: warning: already initialized constant DEF_KEY_ATTRIBUTES
/usr/lib/ruby/1.8/xmlsimple.rb:281: warning: already initialized constant DEF_ROOT_NAME
/usr/lib/ruby/1.8/xmlsimple.rb:282: warning: already initialized constant DEF_CONTENT_KEY
/usr/lib/ruby/1.8/xmlsimple.rb:283: warning: already initialized constant DEF_XML_DECLARATION
/usr/lib/ruby/1.8/xmlsimple.rb:284: warning: already initialized constant DEF_ANONYMOUS_TAG
/usr/lib/ruby/1.8/xmlsimple.rb:285: warning: already initialized constant DEF_FORCE_ARRAY
/usr/lib/ruby/1.8/xmlsimple.rb:286: warning: already initialized constant DEF_INDENTATION
/usr/lib/ruby/1.8/xmlsimple.rb:287: warning: already initialized constant DEF_KEY_TO_SYMBOL 
...

Die Suche mit Google hat nicht wirklich geholfen, da die gefundenen Problemlösungen darauf abzielten, fehlerhafte Symlinks und somit Inklusionsprobleme zu beheben. Diese Hinweise und Anleitungen haben mir allerdings nicht geholfen.

Interessant ist in diesem Zusammenhang auch, dass ein Server in einer virtuellen Maschine dieses Verhalten nicht zeigt - obwohl es bis auf die fehlende Desktopumgebung ein nahezu identisches System ist.

Durch Zufall (lies: stumpfes Probieren) habe ich dann herausgefunden, dass

$ sudo apt-get install rails

und

$ sudo gem install rails

unterschiedliche Auswirkungen haben: Nur bei der Rails-Installation über die Paketverwaltung treten die obigen Fehler auf… Der entscheidende Hinweis gab mir übrigens ein Artikel über die konkurrierenden Debian-Tools apt-get und aptitude. Nein, mein Hirn funktioniert nicht logisch ;-)

Dominik

uhb-inf LaTeX-Klasse


Kurze Ankündigung: Auf einer Google Code-Seite verfolge ich einen Ansatz, die alte PI1-Dokumentklasse durch etwas moderneres zu ersetzen. Wer es nutzen möchte, darf sich sehr gerne bedienen, wer daran mitarbeiten möchte, kann sich bei mir melden.

—Dominik

The visual LaTeX FAQ


Bei Fragen zu (La)TeX, die ich entweder nicht sofort beantworten kann, oder aber Bereiche berühren, mit denen ich mich noch gar nicht auseinander gesetzt habe, konsultiere ich als erstes die Paketdokumentation. Oft genug habe ich aber nur eine Idee davon, was ich haben möchte und kenne die dazu passenden Pakete nicht (oder ich bin auf der Suche nach Alternativen…), hier helfen dann die UK TUG FAQ und das Pendant dazu bei Dante.

Jetzt flog mir eher durch Zufall eine Dokumentation zu, die einen ganz anderen Ansatz verfolgt: The visual LaTeX FAQ. Dahinter steckt die Idee, die Antworten auf die spezifischen Fragen zu Layout, Paketen, Schriften, Must-haves und Do-nots direkt anzuwenden und mit der entsprechenden Beschreibung in der UK FAQ zu verlinken.

Sicher, zum direkten Finden einer Lösung zu einer ganz bestimmten Frage eignet sich dieses Werk nicht, aber wann weiß man denn schon mal, was man will? ;-)

—Dominik

Das “große” TV-Duell (darin: eine Wahlvorhersage für den 27.09.2009)


In der Programmbeschreibung liest sich folgendes:

[…] Die amtierende Bundeskanzlerin Angela Merkel (CDU) trifft auf ihren Herausforderer, SPD-Kanzlerkandidat Frank-Walter Steinmeier […]

Ich persönlich bin kein Fan von Prognosen, halte die Wahl aber schon für entschieden: Die einzige Chance für die SPD wieder regieren zu können ist eine große Koalition. Und ich hoffe auf mindestens einen orangenen Vertreter, die gestrige Freiheit-statt-Angst-Großdemo in Berlin schürt diese Hoffnung. Mensch, wäre das eine Ohrfeige für die bestehenden Parteien, wenn das Volk sich nicht nur organisiert zusammenschließt, sondern sich auch noch in die Position bringt, Entscheidungen fällen zu dürfen. Oder wenigsten noch lauter auf bürgerrechtliche Missstände aufmerksam machen zu können - die Petition wird ja schlichtweg ignoriert…

Anhand der Analysen der Wahlergebnisse der letzten Landtagswahlen in Schleswig-Holstein und Brandenburg, der letzten Bundestagswahl, sowie dem Faktor Krise und den Bemühungen Bürgerrechte nach und nach abzuschaffen, habe ich mal eine kleine Grafik zusammengebastelt:

Wahlvorhersage für den 27. September 2009
Wahl 2005 links, Wahlprognose 2009 rechts.

Mal sehen inwieweit ich daneben lag. In zwei Wochen werden wir es wissen…

—Dominik

Nachschlag: Die Wahlbeteiligung schätze ich auf ein historisches Tief von 70%. Vielleicht auch weniger.

Programmierw{ahr|eis}heiten


Mein Mantra für das Hauptstudiumsprojekt:

  • Wenn es kompiliert, funktioniert es,
  • Wenn es kompiliert, ist es korrekt.
  • Wenn es läuft, hat es keine Fehler.
  • Wenn es keine sofort offensichtlichen Bugs hat, ist es perfekt.
  • Wenn sich ein Bug nicht zeigt, existiert er nicht.
  • Wenn es so aussieht, als ob es funktioniert, funktioniert es.
  • Etwas richtig zu machen ist leicht. Nur Fehler zu vermeiden erfordert ein bisschen Konzentration.
  • Je kürzer der Code, desto schneller das Programm.
  • Es ist offensichtlich, wie man optimiert.
  • Programmierer machen keine Fehler.
  • Laufzeitfehler treten nicht auf.
  • Benutzer machen keine Fehler.
  • Ich mache keine Fehler.
  • Fehler jeglicher Art sind selten.
  • Fehlerbehandlung kann in Version 2 eingebaut werden.
  • Es ist OK, bei fehlerhafter Eingabe abzustürzen.
  • Es ist OK, auf fehlerhafte Eingaben mit fehlerhaften Ausgaben zu reagieren.
  • Wahrscheinlich ist es nicht nützlich.
  • Der Welt eine VAX. Oder, dieser Tage, eine MS-DOS-Box.
  • Die Länge der Funktionsliste ist wichtig.
  • Geschwindigkeit ist gut, Funktionen sind besser.
  • Langsamkeit kann durch Hardware ausgeglichen werden.
  • Je größer ein Programm ist, desto besser ist es.
  • Willkürliche Änderungen am Programm beheben Bugs.
  • Das Testen dauert nicht lange.
  • Bugs zu finden ist leicht. Bugs zu beheben ist trivial.
  • Bugfixes brauchen nicht getestet werden.
  • Kleine Änderungen jeder Art brauchen nicht getestet zu werden.
  • Die erste Annäherung, Idee oder Version zu einem gegebenem Problem ist die Beste.
  • Auch 1% Gewinn ist tatsächlich ein verdammt guter Schnitt.
  • Code ist selbsterklärend. Kommentare sind überflüssig.
  • Kommentare sind an andere Leute gerichtet, nicht für den Autor des Codes.
  • Undokumentierte Funktionen sind lustig und nütlich.
  • Es kann immer in der nächsten Version gefixt werden.
  • Überraschte Benutzer sind glückliche Benutzer.
  • Eine Demonstration vor dem Kunden ist die beste Debugging-Methode.

NOT! ;-)

Uni-Logo-Spielereien


Logo Spielchen Nr. 1 Uni-Logo hier im Header-Bereich Logo Spielchen Nr. 2

Alles in Inkscape erstellt. Verwendungszweck: noch unbestimmt ;-)