Tag archive: Fehler

Screenshot einer Canon-Kamera nachdem ein Update eingespielt wurde.

Software-Updates und dergleichen

Wir leben in einer vernetzten Welt und das inzwischen nicht mehr nur am Rechner. Nahezu alle unsere Gerätschaften, die wir im täglichen Leben benutzen sind irgendwie mit dem Internet verbunden. Sei es ganz klassisch der Rechner daheim, das Handy, die Spielkonsole, der Fernseher, der MP3-Player, ja sogar der Kühlschrank kann manchmal bereits online gehen.

Continue reading

Eine große grüne Wiese mit einigen Heustapeln, die mit Stöcken und Planen zusammengehalten werden.

Die Nadel im Heuhaufen, oder andersrum?

Erst vorgestern habe ich einen gewaltigen Bug im Code eines Projektes gefunden, weil PHP die Parameter anders erwartet hat, als ich sie angegeben habe. Daraufhin folgte ein Tweet und die Erkenntnis, dass es oftmals keine Gemeinsamkeiten gibt in der Parameterfolge von Funktionen.

Als Beispiel habe ich strpos() zu nennen, welches zuerst den Heuhaufen erwartet und dann erst die Nadel. Das Gegenbeispiel dafür ist in_array(), wo man zuerst die Nadel angibt und dann den Heuhaufen, in dem gesucht werden soll.

Wovon ich hier eigentlich spreche? Von Suchfunktionen auf diverse Typen in PHP. Mal gibt man zuerst das an, wo gesucht werden soll und ein andermal das, wonach gesucht werden soll. Das ist eindeutig doof und führt zu Verwirrungen. Man kann zwar behaupten, dass Funktionen, die Strings durchsuchen immer die gleiche Reihenfolge nutzen und die für Arrays auch, aber warum hat man sich hier nicht von Anfang an Gedanken gemacht und das angeglichen. Wäre das so schwer gewesen?

Nun gut, jetzt weiß ich es besser und passe auf, was wohin kommt. Auch trübt dies nicht meine Freude an der Programmiersprache an sich, aber eventuell macht sich ja nochmal jemand Gedanken darüber. Vielleicht für PHP 6?

Eine Säule inmitten eine Stadt mit der Aufschrift Subversión. Dahinter sind Gleise erkennbar.

Subversion – Was ist´s, was bringt´s?

Mal ganz ehrlich. Viele Programmierer fangen nach einer Idee direkt und ohne Umschweife das Schreiben ihres Codes an. Dabei entsteht ein ganzer Wulst an Funktionen und Logiken. Manche davon sind besser, andere schlechter und so wird von der einen Stelle zur anderen kopiert, gelöscht und neu geschrieben. Stellt man jetzt jedoch irgendwann einmal fest, dass die letzten Schritte nicht dem entsprechen, was man sich vorstellt macht man diese rückgängig. Ist das nicht möglich hat man ein Problem und muss versuchen sich das Geschriebene wieder irgendwie zusammenzureimen.

Dieses eben beschriebene Szenario kenne ich aus meiner eigenen Erfahrung nur allzu gut und hätte ich zu diesen Zeitpunkten Subversion eingesetzt, hätte ich mir einiges an Stress und Verkomplizierungen sparen können.

Was ist Subversion?

Subversion ist eine Software zur Versionsverwaltung. Mit ihr ist es möglich jederzeit nachzuvollziehen wer wann was an einer Datei geändert hat. Wird der Log richtig gepflegt wird auch sofort klar, warum die Änderung erfolgt ist. Abgesehen davon kann man mit Subversion nach einer fehlerhaften Entwicklung auch ältere Versionsstände, sogenannte Revisionen, wiederherstellen. Und zu guter letzt kann man mit diesem Tool noch fertige Release-Stände auszeichnen.

Subversion unterstützt also Entwickler nicht nur dabei ihren eigenen Code unter Kontrolle zu halten, sondern ist vor allem für Teams aus mehreren Entwicklern gedacht. Man hat die Möglichkeit, dass sich mehrere Personen die aktuelle Revision eines Projektes oder einer Datei herunterladen (Checkout), daran arbeiten und sie anschließend wieder hochladen (Commit) und somit eine neue Revision erstellen. Dadurch ist es möglich, dass mehr als eine Person an einer Datei arbeitet. Beim Commit werden die verschiedenen Codestände wieder zusammengeführt (Merge), selbst dann wenn von der aktuellen Datei schon eine neue Version existiert. Probleme treten nur dann auf, wenn an der gleichen Stelle im Code etwas geändert wurde (Conflict). Hier müssen sich die betroffenen Entwickler zusammensetzen und einen gemeinsamen Nenner finden.

Was bringt Subversion?

Alles bis jetzt geschrieben ist ja ganz nett und hört sich gut an, aber wo bleibt jetzt der praktische Nutzen von alldem?

Im Grunde genommen kann ich nur wiederholen, was bereits geschrieben ist. Subversion unterstützt Entwickler in der Kontrolle und Entwicklung ihres Codes. Nicht mehr und nicht weniger. Subversion ist keine eierlegende Wollmilchsau. Es hilft nicht dabei besseren Code zu schreiben. Es tut einfach das, was es kann und das ist verschiedene Entwicklungsstände zu speichern und zugänglich zu machen.

Allerdings kann Subversion bei richtiger Verwendung ein extrem mächtiges Tool darstellen. Und das nicht nur bei der Entwicklung von Software, sondern auch bei der Verwaltung von Dokumenten, Bildern, Musik, Videos, usw. Hier nehme ich einfach mal die Wikipedia als Beispiel. Jeder dort eingestellte Artikel besitzt verschiedene Versionen, z.B. der Subversion-Artikel. Anhand dieser Versionen kann weltweit jeder Interessierte nachsehen wann welche Änderung gemacht wurde und warum. Baut jemand Mist wird einfach eine ältere Version wiederhergestellt und schon geht es weiter. Der Nutzen bei Wikipedia sollte jetzt wohl jedem klar geworden sein.

Durch die Tatsache, dass man mit Subversion nahezu alles verwalten kann und das an einer zentralen Stelle wird das Tool erst richtig nützlich. Hierzu ein praktisches Beispiel aus der Arbeit. Ein Projekt steht an, an dem eine Person entwickelt. Gegen Ende des Projektes wird die Zeit üblicherweise etwas knapp und ein zweiter Entwickler steigt ein. Diese zweite Person muss jetzt nicht lange darauf warten, dass er den Code vom Kollegen geschickt bekommt, sondern kann sofort anfangen, indem er sich das Projekt auscheckt. Durch den Log kann er sich auch schnell über den aktuellen Stand informieren und direkt loslegen. Natürlich müssen sich die beiden Entwickler absprechen wer was erledigt. Die persönliche Komponente kann und darf nicht verloren gehen für den Erfolg eines Projektes.

Das war jetzt nur ein Beispiel von vielen Tausend, die man finden könnte, aber ich denke hierdurch ist zumindest ein Nutzen dieses Tools klar geworden. Wer noch Fragen hat kann diese gerne in den Kommentaren stellen

Screenshot der T-Online-Navigationshilfe

T-Online Navigationshilfe

T-Online stellt wirklich interessante Dinge an. Selbst hätte ich die sogenannte Navigationshilfe wohl nicht so bald gesehen, aber durch Olivers Artikel bin ich gerade darauf aufmerksam geworden.

Es ist zwar ganz nett, dass T-Online hier an seine Kunden denkt und ihnen einen gewissen Mehrwert bieten will statt einer tristen Fehlermeldung, aber ganz ehrlich gesagt ist das eine ziemlich krasse Bevormundung des Nutzers.

Continue reading

Ein Mitarbeiter eines Datacenters bei der Arbeit zwischen zwei Server-Reihen.

Was passiert wenn…

Gehen wir mal vom schlimmsten Fall aus. Es bricht ein Feuer aus. Die Löschanlage ist defekt und die Schutztüren schließen sich nicht. Das Feuer breitet sich aus und bald brennt jeder Server. Zusätzlich greift das Feuer auf die Dieselaggregate über, diese explodieren und das Gebäude stürzt zusammen. Und natürlich schafft es die Feuerwehr nicht das Feuer aufzuhalten, sonst hätten wir ja kein Worst-Case-Szenario.

Continue reading

Foto eines günstigen allgemeingültigen Kalenders

Kleines Buchungssystem

Ich habe mich die letzten beiden Tage intensiv mit der Entwicklung eines kleinen Projekts beschäftigt. Ursprünglich wollte ich nur einen Kalender entwickeln, der die Belegung der Ferienwohnungen meiner Oma anzeigen kann. Inzwischen ist daraus eine Mischung aus aufwändigem Kalender und einem kleinen Buchungssystem geworden.

Continue reading

Wallpaper zum Film Sweeney Todd von Warner Bros.

Sweeney Todd

Gelegentlich leihe ich mir beim DVD-Verleih diverse Filme aus. Meist sind das Horrorfilme, Splatter oder Filme, die sich bei manchen Menschen tief ins Unterbewusstsein fressen.

So bin ich auch heute wieder einmal dorthin gefahren und habe nach zwei vielversprechenden Titeln Ausschau gehalten. Dabei fiel mein Augenmerk auf Sweeney Todd – Der teuflische Barbier aus der Fleet Street. Kurz auf der Rückseite nachgelesen, um was es geht, dies für gut befunden und den Film mitgenommen.

Continue reading

Foto von Domo-kun und einm grünen Vogel. Im Hintergrund wird ein Schild mit der Aufschrift "WTF" hochgehalten

Paamayim Nekudotayim

Parse error: syntax error, unexpected T_STRING, expecting T_PAAMAYIM_NEKUDOTAYIM

So lautete eine Fehlermeldung, über die ich neulich in der Arbeit gestoßen bin. Nach kurzer Suche hat sich gezeigt, dass Paamayim Nekudotayim nichts anderes bedeutet als zweimal Doppelpunkt, also einen Aufruf einer statischen Funktion einer Klasse in PHP.

Warum der Fehler auftrat ist mir immer noch ein Rätsel, da ich die Dateien des Projekts lokal gezippt und per Filezilla hochgeladen und mittels SSH entpackt habe. Auch nach mehrmaligen Versuchen gelang es nicht den Fehler zu beheben, obwohl am Code an der genannten Stelle nichts geändert wurde. Selbst der Upload mittels WinSCP hat an der Sache nichts geändert. Die besagte Datei scheint beim Entpacken zerstört worden zu sein, was ich mir aber auch nicht erklären kann, da dies bisher immer funktioniert hat. Erst als eine Kollegin die Datei erneut hochgeladen hat war der Fehler plötzlich weg und ich erleichtert, da das Projekt kurz vor der Dateneinpflege des Kunden steht.

Falls irgendjemand Infos bezüglich dieses Fehlers und der Ursache hat wäre ein Kommentar eine nette Geste

Bild von diversen WordPress-Stickern vor einem Hintergrund aus durcheinander gewürfelten Wörtern.

WordPress 2.5 – Schrecken oder Segen?

Wie inzwischen allgemein bekannt sein sollte haben sich die Entwickler der Blogsoftware WordPress dafür entschieden die Version 2.4 zu überspringen und am 28. März10. März direkt Version 2.5 zu veröffentlichen. Laut Aussage der Verantwortlichen will man keine voreilig entwickelte Software auf den Markt bringen, sondern eine mit möglichst wenig Bugs.

Sieht man momentan im Bugtracker nach sieht es aber noch recht mager aus. 302 geschlossene und über 500 offene Tickets lassen in meinen Augen wenig Hoffnung, dass alle Fehler bis zum Release beseitigt werden.

Aber selbst wenn noch ein paar Tickets übrig bleiben (hoffen wir, dass dies keine allzu groben Lücken sind) scheint diese neue Version einige interessante neue Features zu haben.

Continue reading