Category archive: Programmierung

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

Leuchtstoffröhren in der Form des englischen Wortes "Words"

PHP-Klasse für Strings

Information:
Es steht eine neue Version der Klasse zur Verfügung: String-Klasse: Version 1.1.0

Inspiriert von C++ habe ich eine generische Klasse geschrieben, mit der man Strings in PHP in Objekte umwandeln kann.

Einer meiner Hauptgründe für diese Entwicklung ist die Tatsache, dass ich in der Arbeit schon diverse Projekte auf UTF-8 umgestellt habe. Um UTF-8 möglichst weit zu unterstützen hat man momentan eine sehr einfache Möglichkeit, nämlich die Multibyte String-Funktionen von PHP. Damit der Code des Portals nun auch mit UTF-8 umgehen kann sucht man sich die Funktionen von der Seite des PHP-Manuals, sucht danach portalweit und ersetzt alle Vorkommen mit dem neuen Funktionsaufruf.

Continue reading

Logo der Firma Zend im Nackenbereich eines schwarzen T-Shirts

Entwickeln mit dem Zend Framework

Heute habe ich mich mal daran gewagt etwas mit dem Zend Framework zu experimentieren. Meine Idee war bzw. ist mein Buchungssystem auf Basis dieses Frameworks aufzubauen und damit etwas mehr zu professionalisieren.

Weit gekommen bin ich noch nicht, da ich mehr damit beschäftigt war in der Dokumentation und im QuickStart Guide nach bestimmten Dingen zu suchen als Logiken zu schreiben. Bis jetzt habe ich gerade mal die Validierung von übergebenen Daten geschafft. Aber das soll nicht Gegenstand dieses Beitrags sein.

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

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