Ihr Browser versucht gerade eine Seite aus dem sogenannten Internet auszudrucken. Das Internet ist ein weltweites Netzwerk von Computern, das den Menschen ganz neue Möglichkeiten der Kommunikation bietet.

Da Politiker im Regelfall von neuen Dingen nichts verstehen, halten wir es für notwendig, Sie davor zu schätzen. Dies ist im beidseitigen Interesse, da unnötige Angstzustiände bei Ihnen verhindert werden, ebenso wie es uns vor profilierungs- und machtsächtigen Politikern schützt.

Sollten Sie der Meinung sein, dass Sie diese Internetseite dennoch sehen sollten, so können Sie jederzeit durch normalen Gebrauch eines Internetbrowsers darauf zugreifen. Dazu sind aber minimale Computerkenntnisse erforderlich. Sollten Sie diese nicht haben, vergessen Sie einfach dieses Internet und lassen uns in Ruhe.

Die Umgehung dieser Ausdrucksperre ist nach §95a UrhG verboten.

Mehr Informationen unter www.politiker-stopp.de.



Monatsarchiv für Februar 2009

First Boot

Donnerstag, den 19. Februar 2009

Ich will euch natuerlich auch nicht den ersten Start meines neuen Notebooks vorenthalten…

Es ist da!

Donnerstag, den 19. Februar 2009

Nachdem die Ratenzahlung am 11.02.2009 von der Santanderbank genehmigt wurde, wurde mein neues Notebook – ein Dell Studio 15 – produziert und gerade geliefert… Und so siehts aus:

Die Simpsons im neuen Look

Mittwoch, den 18. Februar 2009

Die Serie Die Simpsons wird in den USA jetzt in HDTV ausgestrahlt. Dazu haben die Simpsons ein neues Intro bekommen…
(Entweder JavaScript ist nicht aktiviert, oder Sie benutzen eine alte Version von Adobe Flash Player. Installieren Sie bitte den aktuellsten Flash Player. )

PHP Template Engines: Must-Have oder Crap?

Mittwoch, den 18. Februar 2009

Wieder mal muss ich in alten Diskussionen wuehlen und meinen Senf dazu abgeben. Template Engines… Braucht man sie zu Zeiten von PHP5 noch? Muessen Logik und Praesentation getrennt sein? Wieso sollte ich meine Architektur so waehlen, nur weil es Andere machen? Zu Zeiten vor PHP5 war die Hochzeit der Template Engines. Die meisten professionellen Produkte nutzten Template Engines, vor allem weil mehrere Personen an der Softwareentwicklung beteiligt waren. So konnten Designer unabhaengig von den Entwicklern arbeiten. Mittlerweile kann doch aber jeder Designer PHP, oder nicht? Also ist eine Trennung von Logik und Praesentation nicht mehr noetig, oder?

Nein, auch heute kann der grosse Teil der Designer kein PHP. Es gibt zwar eine Menge, die hier und da ein wenig Code verstehen, aber solche Leute sollte man nicht an die Entwicklung von Software lassen. Jeder kann mit ein bisschen Uebung PHP Code schreiben. Aber das ist noch sehr weit entfernt von professioneller Softwareentwicklung.

Viele der neueren Template Engines (Smarty & Co.) bieten die Moeglichkeit Makros zu verwenden, um Bedingungen, Schleifen und andere Konstrukte anzuwenden. Diese Konstrukte werden spaeter durch ein PHP Script ausgewertet und ausgefuehrt. Meines Erachtens loesen solche Makros jedoch die strikte Trennung der Architekturbausteine auf.

In einem Artikel den ich auf phpguru.org mit dem Namen “Simple PHP templating class” und auf hotscripts.com mit dem Namen “Templating – the correct way” gefunden habe, argumentiert der Autor unsachlich gegen die Verwendung von Template Engines mit Saetzen, im folgenden Stil:

Any HTML monkey that can’t handle the above should kill themselves right now, and allow the collective IQ of the world rise a few points.

Mittlerweile bin ich fuer mich persoenlich zu dem Schluss gekommen, dass Logik und Praesentation strikt getrennt sein sollten. Gruende dafuer sind zum Beispiel:

  • PHP Code ist wartbarer und Debugging ist einfacher. Die Komplexitaet einer Codedatei ist niedriger.
  • Aenderungen am Aussehen lassen sich schneller durchfuehren, da der Aufwand die (X)HTML-Bloecke im Code zu finden entfaellt.
  • “Designers don’t do code”.

Gegen die Argumente, dass eine hochkomplexe, dynamische Webseite nicht ohne Logik im Layout auskommt, kann ich nur meine Herangehensweise bei Template Engines anfuehren:

  1. Templates sind hierarchisch angeordnet.
  2. Ein Template enthaelt Platzhalter.
  3. Platzhalter koennen durch ein Template, durch mehrere Templates oder durch Text ersetzt werden.

Dadurch ergibt sich, dass ich auch Schleifen mit Templates verwenden kann, ohne Schleifen in den Templates zu haben. Ich habe in der letzten Zeit alle meine alten Template Engines wiedergefunden und dabei festgestellt, dass ich jede Stufe der Komplexitaet einmal ausprobiert habe. Meine erste Template Engine aehnelt der, die ich im Moment verwende. Im Laufe der Zeit erhoehte sich die Komplexitaet. Ich machte Schleifen und Bedingungen moeglich, fuegte Filterfunktionalitaeten und einen Cache hinzu. Es folgten Kleinigkeiten, wie z.B. ein Rotierer fuer Zeichenketten in Schleifen, den ich vor allem fuer abwechselnd gefaerbte Zeilen verwendet habe.  Ich musste mit der Zeit feststellen, dass die groesseren Moeglichkeiten sich proportional zur Komplexitaetssteigerung verhielten, die ich mit Template Engines eigentlich zu vermeiden versuchte. So wurden die Features meiner Template Engine immer geringer.

Hier mal ein Beispiel fuer die Anwendung meiner Template Engine:

$index = new Template("index");
$table_row = new Template("table_row");
while ($row = mysql_fetch_object($result))
{
    $table_row->set("KEY", $row->key);
    $table_row->set("VALUE", $row->value);
    $index->addChild("ROWS", $table_row);
}

Eine Auszug aus der Beispiel index.tpl:

<table>
    <tr>
        <th>Key</th>
        <th>Value</th>
    </tr>
{ROWS}
</table>

Und die table_row.tpl:

    <tr>
        <td>{KEY}</td>
        <td>{VALUE}</td>
    </tr>

Ich bitte all diejenigen, die Interesse an meiner Template Klasse haben, sich noch etwas zu gedulden. Ich baue mir gerade ein kleines PHP Framework aus Funktionen und Methoden zusammen, die mir das Leben immer sehr vereinfacht haben. Dazu gehoert auch dei Template Klasse.

Achja, bevor ich es vergesse: Es gibt natuerlich auch Template Engines, die so maechtig sind, dass man ihnen nur noch Datenquellen angeben muss, woraus sie automatisiert Tabellen o.ae. generieren. Das sind aber eine ganz andere Klasse von Template Engines, die ich aus dieser Diskussion erstmal ausklammern moechte.

Wenn man keine Ahnung hat…

Dienstag, den 17. Februar 2009

… sollte man sich wohl lieber auf das konzentrieren, was man wirklich kann. Das scheint aber nicht mehr Gang und Gebe zu sein. Viel mehr geht es mittlerweile um Selbstdarstellung und Publicity. So viel zum Prolog.

Ich habe mal wieder etwas gelesen, das mir so richtig auf die Nerven geht. Frau Ilse Falk (CDU) gehoert zu den Menschen, auf die der Prolog gut passt. Sie war hauptsaechlich Hausfrau, nachdem sie ihre Lehre im Gartenbau absolviert hat. Das hat natuerlich sehr viel mit neuen Medien, Internet, Netzwerken und dem Verstaendnis von Auswirkungen einer totalitaeren Zensur zu tun… So hat sich Frau Falk zu Letzt dadurch negativ in die Presse gerueckt, indem sie ihre verdrehte Meinung, gespickt mit gefaehrlichem Halbwissen, verbreitet hat. Damit unterstuetzt sie die falschen Annahmen von Ursula von der Leyen (CDU), die tatsaechlich behauptet, dass eine Zensur im (deutschen) Internet erfolgreich Kinderpornografie und Urheberrechtsbrueche bekaempft. Das erinnert mich doch stark an kleine Kinder, die sich die Haende vor die Augen halten und annehmen, dass sie nicht gesehen werden koennen. Frei nach dem Motto: “Wenn ich dich nicht sehen kann, kannst du mich auch nicht sehen”. Hier laesst sich das Motto dann zu “Wenn wir das nicht sehen, existiert es nicht” sinngemaess umbauen. De facto ist das Bullshit. Schliesslich wird ein Kinderporno-Perverser nicht aufhoeren Kinderpornos zu verbreiten, nur weil ein paar infrastrukturelle Huerden aufgebaut werden. Wieso bringt man diese durchaus gestoerten Menschen nicht einfach hinter Gitter und spart sich unschoene, nicht funktionierende, weltfremde und verfassungsfeindliche Workarounds, die die Freiheit des Menschen, die uns im Grundgesetz zugesichert wird, torpedieren?

Klar ist es schwierig an solche Leute ranzukommen… Halt! Wer behauptet das ueberhaupt? Die Server, auf denen solche Sachen liegen sind bekannt! (Wo stehen die Server, die in Europa blockiert werden?) Die Server stehen zu grossen Teilen in Deutschland! Die Betreiber sind bekannt! Also setzt man die Domains(!) der Server auf Blacklisten und laesst die Menschen(?) weitermachen… Die IP Adressen funktionieren weiterhin… So nun kommt der Hammer. Folgendes hat Falk tatsaechlich gesagt:

Wer angesichts dieser grauenvollen Tatsachen mit fadenscheinigen Argumenten versucht, die Pläne von Bundesfamilienministerin von der Leyen zu torpedieren, diesem Treiben ein Ende zu setzen, handelt verantwortungslos und stellt die Interessen skrupelloser Geschäftemacher über den Schutz der Kinder.

Achja. Das ganze hat natuerlich auch etwas mit Urheberrechten zu tun… Waehrend der Bundestagsanhoerung fiel doch tatsaechlich bei der Kinderpornosperrendiskussion nach 12 Minuten das Wort Urheberrecht… Das zeugt von einem so hohen Mass an Unverstaendnis…

Vielen Dank an ports, der mich darauf aufmerksam gemacht hat und mich dazu bewegt hat meine 2 Cents dazu auszukotzen. All das, was ich beschrieben habe, findet man auch im “Original” bei ports: Geht gegen Serverbetreiber vor!

Indeterminate – Firefox Trunk

Samstag, den 7. Februar 2009

Ich habe sehr lange auf dieses Feature gewartet… In der aktuellen Firefox Trunk Version ist das HTML5 DOM Property indeterminate bei Checkboxen eingefuehrt worden. Checkboxen, dessen indeterminate-Wert true ist, sind weder checked noch unchecked. Sie eignen sich vor allem fuer hierarchische Checkboxen, wobei eine Checkbox von den darunterliegenden abhaengt.

Beispiel: Directory Listing. Jeder kennt wohl das klassische Directory Listing mit den aufklappbaren Verzeichnissen. Man denke sich nun eine Checkbox vor jeden Eintrag. Klickt man ein Verzeichnis an, moechte man natuerlich, dass alle Inhalte rekursiv auch als checked markiert werden. Markiert man nun ein einzelnes Verzeichnis als unchecked, so muesste das hierarchisch uebergeordnete Verzeichnis eigentlich auch unchecked sein. Das Glas ist hier wohl weder voll noch leer… Dafuer eignet sich der neue Status: Die Checkbox wird farbig markiert, sodass man weiss, dass sie weder unchecked noch checked ist.

Erfahren durch Ajaxian.

Ein beschissener Tag und meine Belohnung

Freitag, den 6. Februar 2009

Heute war ein beschissener Tag… Erst wurde ich mitten in der Nacht von meiner Mutter geweckt, weil die die Haustuere nicht aufbekommen haben, dann kam ich schlecht aus dem Bett als ich zur Arbeit musste und als ich dann endlich von der Arbeit wieder zuhause angekommen war, platzte mir die G-Taste vom Notebook und ich bekomm die Taste nicht mehr dran. Spaeter bin ich dann ueber das Kabel des Netzteils gestolpert und das Kabel ist an der absolut unguenstigsten Stelle gerissen. “Kein Problem”, dachte ich, “ich loete das einfach wieder zusammen”. Pustekuchen! Mein Loetkolben ist in irgendeiner Kiste, tief unter anderen Kisten in der Garage vergraben. Also musste ich das Netzteil notduerftig zusammenzwirbeln…

Das ging mir so richtig auf die Nerven… Naja. Mein Notebook ist also platt (es kraenkelte schon seit einer Weile vor sich hin… Kuehler kaputt = laut, sinnlose Blackouts, etc…). Was macht man in einer solchen Situation? Man geht auf dell.de und kauft sich einfach ein Dell Studio 15 mit einem Intel Core2 Duo, 1×2048MB, 1×1024MB RAM, 320GB, 256MB ATI® Radeon™ HD 3450 Grafikkarte (bin kein Zocker ;-) ), 15,4-Zoll-WXGA WLED-Breitbild-Display (1440 x 900) mit TrueLife™, hintergrundbeleuchtete Tastatur, schwarz-mattes Gehaeuse, Bluetooth, …

Sonst haette ich mich heute wahrscheinlich noch aus dem Fenster gestuerzt. :-D