Wordpress hat schlimmen Code, andere aber auch

07 09 2009

Wer ernsthaft beruflich oder auf hohem Niveau in seiner Freizeit mit PHP arbeitet und älter als 15 ist, dem stehen wahrscheinlich beim Blick in den Quellcode von Wordpress die Haare zu Berge. Code is art ist ein wunderschöner Wordpress-Slogan, der in dem Kontext aber wirklich mehr als unangebracht ist. Schlimmer als der zusammengezimmerte Kern von Wordpress, der aktuell mal wieder mit einem notdürftigen Flicken gegen den grassierenden Wordpress-Wurm repariert wurde, sind aber die meisten PlugIns. Viele sind offenbar von blutigsten PHP-Anfängern schnell und ergebnisorientiert runterprogrammiert worden, was von Wordpress ja geradezu provoziert wird und was auch großen Anteil an der Beliebtheit des Systems trägt. Jeder ahnungslose Anwender kann mit ein paar Zeilen PHP-Code schnell das erreichen, was er gerade braucht. Das erinnert mich an meine Anfänge mit PHP im Jahr 2001 mit dem damals herausragenden phpBB 1.4. Hier war im Grunde alles hartkodiert und wenn einem irgendwas nicht gefiel, hackte man irgendwie im Quellcode herum. Ein Templatesystem wurde erst mit Version 2 eingeführt und auch hier hackte man noch alle möglichen MODs in das System, was ein Update praktisch unmöglich machte. Folge waren haarsträubende Sicherheitslücken, die nicht gestopft wurden. Wordpress vermeidet dieses Modding immerhin mit einem sehr flexiblen PlugIn-System, der Zugang für Dilettanten und Anfänger wurde dadurch aber noch einfacher. Das Ergebnis sehen wir zur Zeit, Gerrit van Aaken hat das schon zusammengefasst: Bei Wordpress hilft nur ein schmerzhafter Neuanfang, so wie TYPO3 das momentan auch vollzieht und wie phpBB das auch schon zwei mal hinter sich hat.

Nun will ich nicht so viel auf Wordpress rumhacken, wenn ich es selber gar nicht benutze. Im Grunde ist das System großartig, wenn man die miese Codebasis ignoriert. Ich will auf etwas ganz anderes hinaus, nämlich die Codequalität von Serendipity-PlugIns. Wann immer ich ein Seitenleisten-PlugIn installiert habe, musste ich dessen Code bearbeiten, weil die HTML-Ausgabe standardmäßig schlimm aussah oder gar fehlerhaft war. Das PlugIn-System von S9Y ist auf den ersten Blick recht kompliziert, was totale Dilettanten vom PlugIn schreiben abhält; das ist schon mal gut. Trotzdem ist die Codequalität der PlugIns oft eher mäßig. Fast überall wird zum Beispiel der HTML-Code mit echo direkt da ausgegeben, wo er anfällt, natürlich mit irgendwelchem HTML-Code drumherum, den der Autor gerade für angemessen hielt. Kein Wunder also, dass der Output nicht immer angemessen ausfällt. Ich habe vor einiger Zeit ein eigenes Seitenleisten-PlugIn für Twitter geschrieben, weil das alte u.a. genau dieses Problem zeigte. Ein Kernfeature meines PlugIns war der Einsatz einer Templating-Engine. Die zu implementieren war PHP-seitig ein Kinderspiel für jeden halbwegs erfahrenen PHP-Programmierer. Die Frage ist nun, warum zur Hölle von den paar offiziell verfügbaren PlugIns noch fast keines so ein Templating-System mitbringt? Es täte S9Y wirklich immens gut, wenn sich mal jemand hinsetzen würde und ein paar der PlugIns auf den aktuellen Stand bringen würde. Also zumindest eine Templating-Engine einbauen und die Ausgabe entsprechend anpassen, aber auch manch andere Routine könnte mal überarbeitet werden. Gegenüber Wordpress ist das Jammern auf hohem Niveau, aber auch S9Y ist merklich in die Jahre gekommen, vor allem seine PlugIns.

Wenn ich sowas lese, pflege ich zu antworten, derjenige soll nicht jammern, sondern selber anpacken. Das gilt auch für mich, sicher. Allerdings habe ich immens schlechte Erfahrungen mit meinem Twitter-PlugIn gemacht. Das einzige konstruktive Feedback kam vom unglaublich engagierten Chefprogrammierer selber, der mir meinen ursprünglich geplanten Arbeitsaufwand mit Änderungswünschen um das Mehrfache aufgeblasen hat. Am Ende war das neue PlugIn wirklich großartig geworden, ich bin richtig stolz darauf. Die ganzen angeforderten Änderungen kreisten alle um funktionale Anpassungen an das alte PlugIn, so dass mein neues PlugIn alle Funktionen des alten hatte, nur eben diesmal in gut. Dann kam das Problem: Es gab kein Feedback von Dritten und stattdessen hat mir ein ätzender Troll auch noch ans Bein gepisst und einen extra Thread im Forum aufgemacht, um mich als Schnösel zu dissen (weil ich PHP4 Nutzer, die PHP4 Kompatibilität einfordern, als Ewiggestrige bezeichnet habe und er sich davon angesprochen fühlte). Ich habe mein Engagement für S9Y daraufhin nach ein paar Tagen Diskussion eingestellt, denn für kostenlose und gute Programmierarbeit möchte ich echt alles andere haben als von irgendwelchen undankbaren Typen beschimpft zu werden. Mein PlugIn ist übrigens nie im Repository erschienen und stattdessen gibt es ein funktional wirklich krasses anderes PlugIn; hoffentlich ist wenigstens meine Arbeit da eingeflossen und war nicht völlig umsonst. Wie auch immer: Ich werde keine Arbeit mehr zu S9Y beitragen; wenn ich etwas neu baue, reiche ich das im Forum ein und wenn sich niemand drum kümmert, soll mir das egal sein.


Nur halb so schlimm: Eigene Short-URLs

05 09 2009

Vor einiger Zeit habe ich gefordert, dass größere und oft bei Twitter verlinkte Seiten eigene kurze URLs für ihren Content anbieten. Neulich erst habe ich mir dann Gedanken gemacht, wie man Short-URLs uns so verüberflüssigen kann. Auf diese große Lösung mag ich nicht warten, aber zumindest bei der kleinen Lösung kann ich mit gutem Beispiel voran gehen. Also habe ich gerade schnell ein kurzes Script geschrieben, das kurze URLs für mein Blog in die vollen URLs umsetzt. Zum Beispiel lautet für diesen Eintrag die kurze URL http://spackblog.de/668, was mit 23 Zeichen deutlich kürzer ist als die verdammt lange volle URL und vor allem kürzer als 30 Zeichen, ab denen Twitter ungefragt mit bit.ly verkürzt.

Ich hatte eine Weile überlegt, diese Funktionalität als Serendipity-PlugIn zu veröffentlichen, aber das habe ich aus verschiedenen Gründen nicht gemacht. Ein Grund ist, dass mich ein undankbarer Vollspacko im S9Y-Forum angesaugt und als Schnösel bezeichnet hat, als ich mein letztes PlugIn dort vorgestellt habe. Ich will da gar nicht genauer drauf eingehen, Folge ist jedenfalls, dass meine Lust auf die extra Arbeit für ein S9Y-PlugIn dadurch doch sehr gesunken ist. Ein weiterer Grund ist, dass der generierte Link irgendwo im Template und noch mal im Header positioniert werden muss, damit es Sinn macht. Das kann ein PlugIn nicht flexibel alleine regeln. Man könnte den Link allenfalls dort hinpacken, wo momentan auch die Tags sind, aber das gefällt sicher nicht jedem. An die .htaccess des Blogs, oder wenn dieses in einem Unterverzeichnis steckt auch an die .htaccess der Domain muss man auch noch ran. Spricht alles gegen ein PlugIn. Sowas gehört in meinen Augen sowieso in den S9Y-Core.

Das Script funktioniert super simpel. Alles fängt mit einer Anweisung in der .htaccess an, die alles, was nach kurz-URL aussieht an das Script weiterreicht:

RewriteEngine On
RewriteBase /
RewriteRule ^(e|a|c)?([0-9]+)/?$ s9y_shorturl.php?type=$1&id=$2 [NC,L]

Man kann schon sehen, dass das Script auch kurze URLs für Kategorien und Autoren unterstützt. Der spannende Teil im Script selber ist die Datenbankabfrage, die die kurze URL aus der Datenbank ausliest:


// open a database-connection
$dbh = new PDO('mysql:host=' . $db_server . ';dbname=' . $db_database, $db_user, $db_pass);

// prepare the statement
$stmt = $dbh->prepare('SELECT permalink
  FROM s9y_permalinks
  WHERE type = :type
    AND entry_id = :entry_id
  LIMIT 1');

// execute the statement
$stmt->execute(array(':type' => $type, ':entry_id' => $entry_id));
  
// read the returned urlpart
$urlpart = $stmt->fetchColumn();

// close the database-connection
$dbh = null;

// redirect the user with a 301 status code (moved permanently)
header('Location: ' $blog_base_url . $urlpart, true, 301);
exit;

Der Rest vom Script besteht aus Fehlerbehandlung und Variablen-Vorbereitung, die ich hier mal weg lasse. Wer den ganzen Code haben will, kann sich gerne bei mir melden. Damit ist der erste Teil schon fertig, der die kurzen URLs auflöst. Für die kurzen URLs werden einfach die von Serendipity vergebenen IDs genutzt, der Parameter type kann übrigens 'entry', 'category' oder 'author' sein. S9Y führt eine eigene Tabelle für die Zuordnung von IDs und URLs, die man nur abfragen muss.

Der zweite Teil ist leider Handarbeit im Template. Man muss dazu an der Stelle, wo der Link auftauchen soll folgenden Code in der entries.tpl platzieren: <a href="http://SHORTURL_DOMAIN/{$entry.id}">http://SHORTURL_DOMAIN/{$entry.id}</a>. SHORTURL_DOMAIN muss natürlich durch die jeweilige URL ersetzt werden, in meinem Fall ist das tatsächlich eine andere Domain als die, auf der das Blog läuft. Ich habe zusätzlich noch in der index.tpl im Headerbereich im {if $entry.id} Block einen Short-URl Autodiscovery Link eingefügt, wie er hier beschrieben ist.

Das ganze arbeitet extrem simpel und macht genau das, was es soll: Wenn jemand meinen Blog bei Twitter und Co. verlinken will, kann jetzt meine 23 stellige Kurz-URL hernehmen und sich so den Scheiß mit den verkürzten URLs sparen, bei denen man nicht weiß, wohin sie eigentlich linken. Alle Seiten sollten solche eigenen Kurz-URLs haben, dann wäre das mit Twitter nur noch halb so schlimm.


Vista entlarvt schlecht programmierte Programme

08 04 2009

Ich habe heute den ganzen Tag Vista plus etliche Programme auf einem iMac 24" installiert. Entgegen landläufiger Meinungen hatte ich nur bei einem Programm Probleme, die auf Vista zurückzuführen waren. Oder anders herum: Vista entlarvt die miese Programmierung dieses Programms derart schonungslos, dass sein Entwickler (der inzwischen aufgegeben hat) zum Start von Vista einen Jammerbrief über dieses böse Vista an seine Kunden mit Wartungsauftrag geschickt hat. Dieses Gejammer ist unfassbar peinlich, weil das Programm seit etlichen Jahren schon nicht sauber funktioniert. Unter anderem arbeitet es schon immer ohne sinnvollen Grund nur mit Administratorrechten. Ich kenne den genauen Grund zwar nicht, aber das ist auch völlig egal, denn offensichtlich bestünde dieses Problem bei halbwegs sauberer Programmierung nicht. Aber das ist nicht der einzige Fehler. Das Programm ist ein Musterbeispiel, wie man etwas nicht machen sollte; ergonomisch und programmiertechnisch einfach nur katastrophal.

Ich hätte glatt Lust, mal einen Screencast zu machen, wo ich dieses Stück Software-Dreck en Detail zeige. Was mein Kunde mir über die Jahre schon an Geld bezahlt hat, damit ich die Probleme so gut es geht behebe, ist wirklich immens. Übrigens habe ich auch für die mehrfache Neuinstallation eines HP-Druckertreibers schon so viel Geld in Rechnung gestellt, dass man gleich zwei der problemlosen Brother Geräte hätte kaufen können, mit dem wir diesen HP OfficeJet dann endlich ersetzt haben. Was soll ich sagen: Inzwischen gibt es dort neben dem uralten HP LaserJet 4L nur noch drei Brother-Geräte und keins davon hat jemals für unnötigen Supportaufwand gesorgt. Ein Traum, kann ich nur sagen: Drucker ans Netz, CD rein, ein paar Minuten lang den Installationsassistent laufen lassen (der fragt, ob man nur Drucker- und Scannertreiber oder die ganze Software haben will), fertig. Sogar der "Scannen an" Knopf am Gerät funktioniert sofort wie er soll und im Gegensatz zur Höllen HP-Software sogar dauerhaft. Danach kann man die Geräte schlicht vergessen, so wie es sein soll. Den kleinen Monochrom-Laserdrucker habe ich tatsächlich seit seiner Installation vor einigen Jahren nur zum woanders hinstellen mal anfassen müssen. Ich frag schon gelegentlich nach, ob der überhaupt noch benutzt wird, weil ich nichts davon höre. Ja wird er, täglich.


Lustige DSL-Problemsuche: IPv6 und Speedport W 502V

19 09 2008

Puh. Heute war ein problematischer Tag: Es fing schon doof an, weil mir der Alex dankenswerterweise Starthilfe geben musste, weil ich gestern das Licht in meinem Auto angelassen habe. Das Warnpiepsen hatte ich wohl ignoriert, ärgerlich. Dann habe ich eine Stunde an einer Telefonanlage gebastelt, weil DSL und Telefon nicht mehr liefen, nachdem ich gestern die Verkabelung angefasst hatte. Das Telefon lief schnell wieder: Eine Lötstelle war gebrochen, das hatte der Betroffene nach kurzer telefonischer Instruktion sogar selbst beheben können. Ich war beeindruckt. Aber das DSL lief trotzdem nicht, also Außeneinsatz. Auch direkt am Hausanschluss im Keller und mit getauschtem Kabel und anderem Modem gab es keine Synchronisation. Irgendwann hatte ich alle Variablen durchprobiert und rief bei der Telekom an. Ich rufe ja nicht mehr beim Provider an, bevor ich alle Variablen durchprobiert habe, siehe hier. Aha, OK, ich resette mal eben Ihren Port… geht es jetzt wieder? Ja, läuft; na toll, hätte ich da mal früher angerufen. Aber ich hatte an dem Kabel ja rumgefummelt gestern und sowieso ist die Konstruktion da reichlich fragil, weil historisch gewachsen: Analoganschluss durch zwei Adern eines mehradrigen Kabels in einen anderen Raum in die Fritzbox, von da ISDN zurück durch ein anderes vieladriges Kabel zur Telefonanlage, die neben dem Hausanschluss hängt. Alles nur, weil der Hausherr vor vielen Jahren eben (für seine Zeit vorausschauend) nur vieladrige geschirmte Drähte gezogen hat und keine Ethernet-Verkabelung, so dass die Fritzbox in das Zimmer mit den Computern muss.

Danach gerade noch rechtzeitig zu meiner zweiten Verabredung geschafft, schon wieder DSL. Dieses mal gründlich verzögerter Wechsel von 1&1 zur Telekom mit neuem Router. Ein Speedport W 502V. Schnell angeschlossen, Zugangsdaten rein, die alten WLAN-Parameter wieder eingestellt und ab dafür. Hab ich gedacht, denn auf zwei von vier Testrechnern war der Netzzugang unfassbar zögerlich. Egal ob WLAN oder Kabel, egal ob Internet oder die Konfigurationsseite vom Router, Seitenaufrufe zögerten alle erst mal etliche Sekunden, bevor dann alles sofort da war. Keine Personal Firewall, nix. Was, außer einem Haufen Software ist auf diesen beiden Notebooks anders? Was ist ungewöhnlich? Zwei Stunden später bin dann ich auf des Rätsels Lösung gekommen: Auf beiden Rechnern war Microsoft IPv6 für Windows XP installiert. Ich weiß nicht wieso, aber es war da. Schnell mal deaktiviert und siehe da: Es fluppte wieder einwandfrei.

Mein technischer Erklärungsansatz: Der alte Router hatte mit IPv6 nichts am Hut, der neue schon und so verteilte er per DHCP auch fröhlich IPv6-Adressen und DNS-Einstellungen. An sich vorbildlich und fortschrittlich. Nur leider hat das wohl dazu geführt, dass die Browser jede DNS-Anfrage erst mal via IPv6 gestellt und erst nach einem Timeout auf IPv4 zurückgeschaltet haben. Eine recht plausible Erklärung in meinen Augen, oder bietet jemand einen besseren Ansatz?

So oder so, ich weiß schon, warum ich solche Sachen eigentlich nicht mehr anbiete und mich auf Web-Projektgeschäft und -Beratung konzentriere. Klar kitzelt es mich noch immer sehr, solche Probleme zu lösen, aber ich muss Geld verdienen. Und niemand bezahlt nach meiner Erfahrung gerne dreistellige Beträge für ein paar Stunden Knobelarbeit an kleinen Detailproblemen. Mein krassester Fall war mal ein nicht mehr startender Rechner, bei dem sich nach einem langwierigen Virenscan herausstellte, dass alle .exe-Dateien auf der Platte befallen waren. Allein diese Diagnose hat inklusive Abholen und allem drum und dran ein paar Stunden gedauert. Dann alle Daten retten, die nicht befallen waren (natürlich wie immer gaaaaaaaanz wichtige Daten und kein Backup) und das System sauber neu aufgesetzt mit möglichst allen alten Programmen und Daten. Natürlich war keine Windows XP Home OEM CD dabei (Keine Ahnung, find ich nicht, das hier ist alles, was ich hab), also musste die auch noch besorgt bzw. per kleinem Hex-Editor-Eingriff an einem Image erstellt werden. Schon ein komisches Gefühl, aus den einschlägigen Quellen eine zur vorliegenden Seriennummer passende Windows CD zu saugen und zu modifizieren, obwohl man genug Windows XP CDs da hat, nur eben nicht für die Home-OEM-Edition. Insgesamt habe ich also über einen Arbeitstag intensiv an dem Rechner gearbeitet, dessen Wert meinen normalen Tagessatz bei weitem unterschritt. Für das Geld hätte man sich einen schicken neuen Rechner anschaffen können, also habe ich nur zwei Arbeitsstunden berechnet. Im Nachhinein ärgere ich mich ein wenig darüber, aber das Problem ist ja, dass die Kosten hier in keinem Verhältnis zum Nutzen standen. Also kann ich entweder viel weniger Geld nehmen und trotzdem langen Gesichtern gegenüber stehen, was reichlich bescheuert ist, oder eben etwas machen, wo ich meine gewünschten und angesichts meiner Leistung und Expertise angemessen Stundensätze realisieren kann. Man bezahlt nun mal lieber für ein neues Bad als das gleiche Geld für die Behebung eines Rohrbruchs.

Warum ich trotzdem gelegentlich noch Computerservice für Privatleute mache, obwohl ich daran viel zu wenig oder oft auch gar nichts verdiene, bzw. sogar draufzahle, wenn man in Opportunitätskosten denkt? Weil ich ein paar alte Kontakte nicht einfach abbrechen möchte und die Leute haben ja sonst niemanden und ich hab so ein gutes Herz… Also letztlich fürs Karmakonto, denn Dankbarkeit ist eine echt schöne Währung. Und nebenbei reizen mich gelegentlich auch die kniffligen Probleme, vor allem, wenn ich sie dann gelöst bekomme und auch weil ich sie lösen kann. Come get some, bastard bugs!


Spaßige Seiteneffekte Wut

05 06 2008

Gerade arbeite ich an einem mehr oder weniger zeitkritischen Projekt, das in Symfony entwickelt wird. Ich habe zwar das Symfony-Buch vor etwa einem Jahr gelesen (statt meine Thesis anzufangen), aber gearbeitet habe ich damit noch nie. Das ändert sich jetzt unter gewissem Druck. Morgen habe ich mittags einen Termin mit meinem Auftraggeber und bin noch nicht wirklich weit gediehen. Warum? Zwei lustige Probleme mit dem halbfertig angelieferten Datenmodell haben mich heute beinahe den ganzen Tag gekostet:

1. VARCHAR-Feldtypen brauchen (zumindest in MySQL) eine definierte Länge. Ich hatte die im Modell vorgegebenen Feldtypen einfach übernommen. Zwar hatte ich mich gewundert über die fehlende Längenangabe, aber hab mir nichts weiter dabei gedacht. Ahnungslos laufe ich also mit Propel los und schaffe es nicht, mein Modell damit umzusetzen, die Fehlermeldungen waren leider auch wenig hilfreich. Irgendwann bin ich dann drauf gekommen. Naja, hätte ich wissen müssen.

2. Man sollte Tabellen nicht order nennen! Um diese Erkenntnis zu erlangen, habe ich quasi den restlichen Tag gebraucht. Propel baut problemlos sein Modell damit auf und MySQL legt eine solche Tabelle auch ohne Murren an, nur scheitert jede Anfrage mit dem Tabellennamen irgendwo im SELECT mit einem SQL-Syntaxfehler. Eigentlich klar, ist ORDER doch ein SQL-Schlüsselwort, weswegen auch die Syntax-Hervorhebung von Notepad++ an solchem SQL-Code scheitert. Dieser Effekt hat mich letztlich auch auf die Lösung gebracht, als ich mir die von Propel generierte lib.model.schema.sql doch noch mal genauer angeguckt habe. Also flugs die Tabelle umbenannt, das Schema neu generiert und zack, das Adminmodul funktioniert endlich ohne Probleme.

Zu meiner Verteidigung muss ich anführen, dass beide Problemursachen nicht auf meinem Mist gewachsen sind, sondern schon mit meiner Modell-Vorlage ins Haus kamen, die allerdings ins Blaue hinein geschrieben waren und nicht validiert. Das habe ich leider gemerkt…

P.S. Symfony ist wirklich genial. Zwar habe ich heute nur mit dem Model-Layer gearbeitet, aber auch hier merkt man schon, wie ausgefeilt das ganze Framework ist. Es wird mir eine Freude sein, tiefer in die Entwicklung einzusteigen.

P.P.S. Sehr hilfreich für häufige Model-Rebuilds ist übrigend dieses Script, das einen Dump der Datenbank macht, das Modell neu aufbaut und die Daten danach wieder einspielt. Das Symfony-Standardverhalten bei einem model-build ist nämlich, alle Tabellen zu löschen und neu anzulegen, was leider die darin enthaltenen Daten entsorgt.


Nicht immer ist der Anbieter schuld

29 04 2008

Seit Sonntag war unser DSL-Anschluss stark gestört. Alle paar Minuten wurde die Verbindung neu aufgebaut und wenn sie mal lief, dann nur sehr schwankend (zwischen laaaaaaangsam und langsam). Als das am Montag noch immer der Fall war, wollte ich schon bei Alice anrufen, hab mich dann aber entschieden, etwas zu experimentieren. Flugs mal die Fritz!Box direkt an die Leitung gehängt und das Leitungsspektrum anzeigen lassen: Autsch! Wirklich schlechte Werte, noch schlechter sogar als bei der Störung vor ein paar Wochen, Synchronisation mit nur 5MBit/s (statt sonst 12). Also mal das bescheuerte Störungsformular im Kundencenter bemühen. Tipp, tipp, tipp, absenden, wieder Verbindung weg. Grr. Was ist da los? Vielleicht Probleme mit der Anschlussleitung? Lieber mal vorher checken, die an der Hotline fragen ja sowieso als erstes danach.

Ich ziehe also meine Schlafcouch vor und schau mir das Kabel an. Bingo! Das arme Kabel zwischen Wanddose und Spharion-Box ist in die Klappmechanik der Couch geraten (wie auch immer) und bis auf die blanke Ader gequetscht worden. Kein Wunder, dass die Dämpfungswerte plötzlich so schlecht sind. Also Kabel wieder zurecht gebogen und neu isoliert, schon fluppt die Leitung wieder mit den gewohnten 12MBit/s. Gut, dass ich nicht die Hotline bemüht habe.

Bei Gelegenheit muss ich mal ein neues Anschlusskabel beschaffen. Muss ich sowieso, denn bei meinen Eltern muss auch der neue DSL-Anschluss verlegt werden, momentan hängt das Modem mitten im Flur rum. Apropos: Ich finde es echt ein Unding, dass bei der Umstellung auf den T-Home Complete Tarif ungefragt die T-Net-Box aktiviert wird. Meine Eltern können schon ihren eigenen Anrufbeantworter nicht bedienen und wundern sich, wieso da keine Nachrichten mehr eintreffen. Mein Bruder hatte das selbe Problem und hatte seinerzeit bei der Hotline angerufen, um das abzustellen. Dort erfuhr er, dass man das schriftlich (per Fax) machen muss! Was soll das? Am besten noch Kohle dafür nehmen, das wärs echt noch.


Mein Fernseher hat ne Macke

22 03 2008

Vor nicht mal drei Jahren habe ich meine ersten eigenen Fernseher gekauft, ein simples 50Hz Daewoo-Modell mit planer 80cm Bildrohre im 4:3 Format von Penny Markt für 230€ oder irgendwas in der Größenordnung. Ich bin mit dem Ding echt zufrieden für das Geld gewesen und benutze es eigentlich nur für meine Wii und meinen Rechner (die TV-Ausgabe via S-Video von meiner ATI 9800 Pro ist nebenbei bemerkt wirklich exzellent!) und ab und an gucke ich auch Fernsehen mit meiner Siemens DVB-T Box. Ausgerechnet der einzige Scart-Eingang mit S-Video Beschaltung hatte sich aber in letzter Zeit einen sehr lästigen Wackelkontakt eingefangen, der das Bild zuletzt alle paar Minuten zusammenbrechen ließ, wenn ich vom Rechner etwas abgespielt habe. Also jedes mal aufspringen und am Stecker wackeln kann einem den Spaß schon verderben.

Heute morgen wollten wir die neueste GSG9-Folge gucken und haben kein stabiles Bild für mehr als eine Minute hin bekommen. Traurig. Also habe ich das Dingen kurzerhand aufgeschraubt. Nach nur 8 gut erreichbaren Schrauben konnte ich die hintere Gehäuseschale abnehmen und kam so gut an die Platine ran. Nach eingängiger optischer Überprüfung der betreffenden Scart-Buchse und ihrer Umgebung habe ich dann einfach alle 21 Lötkontakte nachgezogen und alles wieder zugeschraubt. Mehr hätte ich als Laie ja auch nicht machen können.

Was sol ich sagen? Ich kann jetzt so viel am Stecker wackeln wie ich will, das Bild bleibt stehen. Juhu! Endlich wieder entspannt meine Serien gucken. Und auch nicht mehr nach jedem Rechnerstart ins Catalyst-Control-Center und den Fernsehausgang freischalten. Das Leben ist wieder schön. Hoffentlich bleibt es dabei.