Mr Wong codes wrong
Geschrieben von Thomas Falkner - 29.03.07 um 07:03Mich erschreckt immer mehr, wie dilletantisch proffessionelle Websites mit hohen Bekanntheitsgrad und Besucherzahl implementiert sind. Heute Morgen zum Beispiel hat der Social-Bookmarking-Dienst Mr Wong einen Totalausfall:

Das kann passieren, auch bei Profis. Die Frage ist nur, wie man mit solchen Fehlern umgeht. PHP-Fehlermeldungen in einem Produktivsystem über den Browser auszugeben, ist eine schlechte Idee. Oftmals geben diese Fehlermeldungen Auskunft über Implementierungsdetails aus, die einem potentiellen Angreifer Sicherheitslücken offenbaren können. Normale Benutzer können mit Fehlermeldungen des PHP-Interpreters gar nichts anfangen, darum sollten sie in verständlichen Worten darüber informiert werden, warum der Dienst momentan nicht funktioniert. Etwa in der Form von: "Unsere Datenbank ist ausgefallen. Unser Administrator wurde informiert. In Kürze wird der Dienst wieder zur Verfügung stehen. Wir bitten den Ausfall zu entschuldigen." Und bevor solche Meldungen überhaupt ausgegeben werden, sollte der Administrator benachrichtigt werden. Mit Exceptions wäre das alles kein Problem:
-
try {
-
// Hier kann was schiefgehen!
-
} catch (Exception $fehler)
-
{
-
// Gib was sinnvolles aus, informiere den Sysadmin, don't panic!
-
}
Um keinen Code duplizieren zu müssen und Exceptions gezielter behandeln zu können, lassen sich in PHP5 sogar eigene Exceptions implementieren. Außerdem bringt die PHP-SPL vordefinierte Exceptionklassen mit. Doch dazu wann anders mehr.
Ironischerweise hat die Agentur hinter Mr Wong vor kurzem eine Stelle für PHP-Entwickler ausgeschrieben.
Neues Airport-Extreme-Update
Geschrieben von Thomas Falkner - 27.03.07 um 09:03Ärgerlicherweise verursachte das letzte Airport-Extreme-Update 2007-001 mehr Probleme als es löste, zumindest bei einigen vielen Usern. Apple reagierte erst über zwei Monate später mit der überarbeiteten Version 2007-002 des Airport-Extreme-Updates.

Schon darauf eingestellt abermals mit nackter Gewalt das Update aus meinem System entfernen zu müssen, habe ich gerade das neue Update eingespielt. Bislang scheint jedoch alles zu funktionieren. Na bitte, es geht doch!
Dennoch ist eine Unverschämtheit Kunden so lange auf das Bugfix eines kaputten Updates warten zu lassen - zumal sich das Update 2007-001 auf normalen Wege nicht mehr entfernen lässt und mitunter die komplette WLAN-Schnittstelle stilllegt.
Professionelle Softwareentwicklung mit PHP5
Geschrieben von Thomas Falkner - 25.03.07 um 11:03
Der Code der meisten in PHP implementierten Anwendungen ist schlecht. Schlecht bedeutet nicht etwa, dass er nicht funktionieren würde. Aber er ist schlecht zu warten, kaum wiederverwendbar und anfällig für Fehler. Die Objektorientierung bietet Paradigmen und Patterns, die konsequent angewandt zu guten Code führen, doch bis zu Version 4 wurde ein objektorientierter Ansatz in PHP gar nicht oder nur nominell unterstützt. Seit Version 5 beginnt die populäre Scriptsprache sich zu professionalisieren, allerdings können nur wenige Entwicklern einen Nutzen daraus ziehen. Denn viele, wenn nicht die meisten PHP-Programmierer lernten PHP als erste Programmiersprache und sind nicht mit professionellen Entwurfs- und Implementierungstechniken vertraut. Abhilfe schafft das Buch Professionelle Softwareentwicklung mit PHP5 von Sebastian Bergmann: Der Autor richtet sich an den fortgeschrittenen PHP-Entwickler und erläutert ihm Objektorientierung, Entwurfsmuster und Modellierung mit UML aufs Wesentliche reduziert, abstrakt und doch praxisnah. Wer professionell in PHP entwickeln möchte, meistert mit diesem Buch den bequemen Einstieg.
Die erste Auflage des Buchs stellt der Autor auf seiner Website als HTML-Version kostenlos zur Verfügung.
Systempartition unter OS X verkleineren
Geschrieben von Thomas Falkner - 25.03.07 um 02:03Ich versuchte mal eben eine zweite Partition auf meinem MacBook einzurichten, um Debian als Zweitsystem zu installieren. Leider scheiterte der erste Versuch daran, dass sich mit Boardmittel die OS X Partition nicht verkleineren lässt:
diskutil resizeVolume disk0s2 68G "JHFS+"
Started resizing on disk disk0s2 Macintosh HD
Verifying
Resizing Volume
Resizing encountered error No space left on device (28) on disk disk0s2 Macintosh HD
Die Partition disk0s2 umfasst 74G und 27GB sind noch frei - also eigentlich kein Problem. Doch leider verteilt OS X die Dateien über die gesamte Festplatte und bringt kein Utility mit, um das Dateisystem wieder zu defragmentieren. Da die Dateien schon optimiert am Stück abgelegt werden, würde eine Defragmentierung des Dateisystems wohl keinen merklichen Performanceschub geben. Problematisch wird es jedoch, wenn man - wie ich - bestehende Partitionen verkleinern möchte: Denn diskutil kann offenkundig manche Dateien nicht verschieben, um einen ausreichend großen zusammenhängenden Speicherbereich von der bestehenden Patitionen abzuziehen.
Da bleibt wohl nur die Lösung, die auch der Boot Camp Assistent vorschlägt:

Partition mit einem Tool wie etwas SuperDuper! komplett sichern, Festplatte formatieren und Daten zurückspielen. Denn dabei werden die Dateien in einem zusammenhängenden Speicherblock abgelegt und nicht über die gesamte Partition verstreut. Überlegenswert wäre auch das Volume mit DiskWarrior zu defragmentieren oder den Versuch zu wagen mit iPartition die Partition zu verkleinern. Aber leider sind beide Tools nicht kostenlos und der Erfolg zudem ungewiss.
Was die Partitionierung von Festplatten anbelangt, muss Apple meiner Meinung nach noch nachbessern. Schließlich hat die Möglichkeit auch andere Betriebssysteme parallel auf dem Mac zu installieren maßgeblich zu seiner wachsenden Popularität beigetragen - aber es macht wirklich keinen Spaß weitere Betriebssysteme zu installieren, wenn dazu das System komplett neu aufgesetzt oder auf kostenpflichtige Software externer Anbieter zurückgegriffen werden muss.
Shutdown Day
Geschrieben von Thomas Falkner - 24.03.07 um 02:03Heute ist Shutdown Day, der Tag an dem die Computer ruhen und der Mensch entspannen soll. Wie an diesem Eintrag zu erkenne, verweigere ich mich momentan dem Shutdown Day. Dennoch kann es nicht schaden den Tag zum Anlass zu nehmen darüber zu reflektieren, ob ich zuviel vor dem Computer sitze oder in zu großer Abhängigkeit von ihm stehe.
Weiterlesen...
Wal in Lebensgröße
Geschrieben von Thomas Falkner - 23.03.07 um 02:03Schon mal einen Wal in Lebensgröße gesehen? Die WDCS macht es möglich und demonstriert, dass sich Flash auch sinnvoll einsetzen lässt.
Wenn wir nicht etwas gegen die Jagd auf Wale und die Zerstörung ihrer Lebensräume unternehmen, können wir davon ausgehen, dass von Walen nicht viel mehr übrig bleiben wird als diese eindrucksvolle Flashpräsentation. Darum ist es eine gut Idee die Arbeit von Organisationen wie etwa der Sea Shepherd zu unterstützen.
Niedliches Mozilla Maskottchen
Geschrieben von Thomas Falkner - 23.03.07 um 01:03Es heißt Kit, ist ist so süß und es soll für die Einhaltung offener Webstandards sorgen: Das neue Maskottchen des Mozilla Developer Centers. Schon beinah widerlich, dieses manipulative Emotionalisieren. Nein, ich werde es mir weder auf den Desktop tapezieren, noch als Kuscheltier, Tasse oder Krawatte kaufen.
Trotzdem hoffe ich, dass die traurig blickenden Kulleraugen das Herz jener erweichen mögen, die glauben der Internet Explorer sei die Referenz. Blickt in diese Kulleraugen und fragt euch, ob es nett ist Webseiten zu gestalten, die auf proprietären Technologien fußen und dem Benutzer vorschreiben einen bestimmten Browser zu installieren.
Zeichensätze bequem konvertieren
Geschrieben von Thomas Falkner - 21.03.07 um 11:03Eine bequeme Möglichkeit Zeichensätze zu konvertieren kommt natürlich aus der UNIX-Welt: iconv
Kürzlich wurde ich mit der Migration eines CRM beauftragt. Das alte CRM speicherte die Daten ISO 8859-1 codiert ab, das neue in UTF-8.
Hier die Lösung:
iconv -f iso-8859-1 -t utf-8 crm8859-1.sql > crmUTF-8.sql
Das SQL-Dump war übrigens > 2 GB, iconv eignet sich im Gegensatz zu vielen anderen Tools auch für umfangreichere Datenmengen.
Iconv lässt sich übrigens auch über viele Scriptsprachen wie etwa PHP, Perl oder Ruby benutzen.
Linux-Firewalls – Ein praktischer Einstieg
Geschrieben von Thomas Falkner - 18.03.07 um 01:03
O'Reilly bietet Linux-Firewalls - Ein praktischer Einstieg als OpenBook zum kostenlosen Download an. Das Buch bietet auf 692 Seiten alles, was der Einsteiger zum Einrichten, Konfigurieren und Warten einer Firewall unter Linux wissen sollte. Nachdem der Autor Andreas Lessig dem Leser erklärt hat, was Firewalls sind und gegen welche Art von Angriffen sie schützen können, geht er dazu über Grundlagenwissen über Netzwerke zu vermitteln. Aufbauend auf einen kurzen, theoretischen Abriss über Firewalls wird der Leser durch die Installation und Konfiguration eines sicheren Linuxsystems, am Beispiel von SuSE 9.3 und Debian 3.1 geführt. Dieser Abschnitt nimmt meines Empfindens zuviel Raum im Buch ein. Installation und Konfiguration eines Linuxsystems werden in anderen Büchern ausführlicher und besser beschrieben, so dass Verweise auf auf weitere Literatur genügt hätten.
Erst in den Kapitel 11 und 12 kommt Andreas Lessig auf die Konfiguration einer Firewall mithilfe von ipchains und iptables zu sprechen. Die Ausführungen dazu sind ausführlich, umfassend und verständlich. Die Kapitel über Tests von Firewalls und dauerhafter Absicherung des Systems runden das Buch ab.
Für Einsteiger ist das Buch sehr gut geeignet, um sich in den Themenkomplex Paketfilter und Firewalls unter Linux einzuarbeiten, fortgeschrittene Anwender sowie Administratoren dürften jedoch wenig neues erfahren. So ist der Untertitel "Ein praktischer Einstieg" auch seht gut gewählt.
Das Buch wird als LaTeX-Dokument angeboten, um es als PDF lesen zu können, muss eine LaTeX-Distribution auf dem Rechner installiert sein. Mit make pdf ist das Buch dann jedoch schnell kompiliert.
Die ideale Textverarbeitung
Geschrieben von Thomas Falkner - 17.03.07 um 12:03Ich habe gerade eine mit Word verfasste Facharbeit korrigiert und weiß seitdem LaTeX immer mehr zu schätzen. Beim Überarbeiten des Textes fiel mir auf, wie wenig Bestand das Argument hat, visuelle Textverarbeitungen seien für Einsteiger besser geeignet. Natürlich kann jeder mit Writer oder Word einen Text verfassen - die Frage ist nur wie. Da werden Inhaltsverzeichnisse mit Leerzeichen manuelle erstellt und Seitenzahlen händisch eingefügt, weil sie erst ab einer bestimmten Seite beginnen sollen. Das Ergebnis solcher Bedienungsfehler sind kaum zu überarbeitende Dokumente. Eine benutzerfreundliche Textverarbeitungen sollte es dem Benutzer vor allem so schwer wie möglich machen, sie falsch zu bedienen. Und das vermögen visuelle Textverarbeitungssysteme momentan noch nicht zu leisten - im Gegenteil, sie laden den unbedarften Benutzer ein groben Unfug anzustellen.
Kompilierende Textverarbeitungssysteme wie LaTeX hingegen setzen zwar einen gewisse Einarbeitungszeit voraus, führen jedoch schneller zu besseren Ergebnissen. Wer unter Latex ein Inhaltsverzeichnis anlegen möchte, muss in Handbüchern nachschlagen und erfährt dort, wie es geht. Der Zeitaufwand dafür dürfte weitaus geringer ausfallen als der, den manch unbedarfter Benutzer damit verbringt zu Fuß ein Inhaltsverzeichnis anzulegen, ohne dabei je zu einem brauchbaren Ergebnis zu gelangen. Doch es ist verständlich, dass nicht jeder Mensch gewillt ist einen Markupcode zu erlernen, um effizient Texte zu verarbeiten.
Tatsächlich bieten moderne visuelle Textverarbeitungen Werkzeuge an, die es ermöglichen ein Dokument logisch zu strukturieren. Dennoch werden diese Möglichkeit nur von wenigen, fortgeschrittenen Anwendern wahrgenommen. Der Grund dafür ist wohl in der Philosophie von visuellen Textverarbeitungssystemen zu suchen und im Aufbau ihres Benutzerinterface: Im Vordergrund stehen Aussehen und Präsentation der Inhalte, nicht aber semantische Zusammenhänge.
Eine gute Textverarbeitung sollte so konzipiert sein, dass sie Anwender nicht mit Möglichkeiten zur Textgestaltung erschlägt, sondern sich an Semantik eines Dokuments orientiert. Der Anwender sollte dazu angeleitet werden erst die semantischen Zusammenhänge zu formulieren, dann den Text zu schreiben und abschließend über eine zentrale Formatvorlage das Layout zu bestimmen. Auf diese Weise wäre sogar eine Crossmediapublishing denkbar und der Textprozessor wäre austauschbar. Soll heißen, ein solche Textverarbeitung wäre in der Lage zum Beispiel LaTeX-Code zu erzeugen, um wirklich gut aussehende Dokumente zu generieren und würde zugleich die Komplexität von LaTeX auf ein für Gelegenheitsschreiber erträgliches Maß abstrahieren.
