Spende für Entwickler


01.10.2009, 21:18 Uhr - Coding


Eine Aktion, die mir natürlich nicht ungelegen kommt ;)

Euro für Entwickler

Es geht darum, mal den Entwicklern, die in Ihrer Freizeit Code und Content für die Allgemeinheit generieren, etwas gutes zu tun. Entwickler: Das sind in diesem Fall die Leute, die euch z.B. eure tollen kostenlosen Iphone- und Android-Apps erstellen. 

Die Möglichkeiten zur Anerkennung sind:

  • Spenden z.B. via Paypal
  • Wenn möglich bzw. angeboten eine kostenpflichtige Version der Software kaufen
  • Sachspenden, Amazon-Wunschlisten, etc.
  • Werbung aktiv nutzen
  • Bei der Entwicklung helfen
  • Feedback geben und Danke sagen


Der Zeitpunkt für die Aktion ist der 15.10.2009. 

Fazit: Ich begrüße solche Aktionen, denn die Bezahlmentalität geht immer weiter zurück. Viele Leute wollen alles nur noch kostenlos, vergessen aber, dass andere ihre Zeit dafür opfern. Und, sind wir doch mal ehrlich: jeder freut sich über eine kleine Aufmerksamkeit, oder? ;) 



Links: Mobiflip


Kommentare: 1

Subversion Server unter Windows


29.09.2009, 09:10 Uhr - Coding


Versionierungstools bzw. Subversion ist vielen Programmierern sicher ein Begriff. Klar, man hat es mal genutzt, aber irgendwie ist es doch ein kleines Mysterium. Zumindest ging es mir bisher so. Da ich nun eigenverantwortlich für unseren Code zuständig bin, war es nur eine Frage der Zeit, bis ich mich auch mit diesem Thema beschäftigen musste. Und das war heute... ;)

 

Subversion



Wie bei vielen Projekten hab ich erstmal Google ausgequetscht, aber deutsche Tutorials sind da leider rar. Daher hab ich mich entschlossen, hier eine Anleitung zu posten, wie man schnell zu seinem eigenen Subversion Server im lokalen Netzwerk kommt.

Die Ausgangslage bei mir ist folgende: Ich habe einen Testserver mit Windows XP drauf sowie einen Windows Vista Client. Zum Programmieren verwende ich Eclipse mit PHPeclipse.

Zuerst einmal benötigt man folgende Dateien:
- Subversion
- SVNservice (optional, falls Subversion als Service laufen soll)
- TortoiseSVN (SVN Client mit Shell-Extension für den Explorer)

Zuerst installiert man Subversion auf dem Server. Es gibt verschiedene Installer, die Bindings für Perl, Python und co. mitbringen. Für den Standard-Gebrauch sind wir darauf nicht angewiesen. Ich habe daher "Setup-Subversion-1.5.6.msi" verwendet. Diese enthält noch die Apache Bindings, die man jedoch ignorieren kann, falls man WebDav nicht benötigt. Wichtig: Nach der Installation neu starten!

Anschließend installieren wir den TortoiseSVN-Client auf unserem Client Rechner. Man sieht gleich, dass sich Tortoise in das Kontext-Menü des Explorers einnistet.

Nach dem Neustart unseres Servers erstellen wir einen Ordner für unser Repository. Dieser enthält alle Änderungen und auch die Konfiguration für Subversion. Anschließend rufen wir die Komandozeile auf und tippen folgendes da rein:

svnadmin create "c:\repository"


Natürlich muss an Stelle von c:\repository der Pfad zu eurem eben erstellten Repository-Ordner sein. Wenn der Befehl erfolgreich durchläuft, werden mehrere Dateien und Ordner innerhalb des Repository Ordners erstellt. Sollte eine Fehlermeldung kommen, die besagt, dass "svnadmin" nicht gefunden werden kann, habt ihr euren Server wahrscheinlich nicht neu gestartet. Sollte der Fehler trotzdem auftauchen, sollte man überprüfen, ob der Programmpfad von Subversion in der PATH-Umgebungsvariable steht.

So, das war es eigentlich schon an Vorbereitung, also starten wir Subversion doch einfach mal:

svnserve --daemon --root "c:\repository"

Das Konsolenfenster sollte nun nicht geschlossen werden, da der Dienst sonst wieder beendet wird. Später machen wir daraus einen Windows-Service, also keine Panik!

Die Arbeit auf dem Server ist nun erstmal getan, wenden wir uns also dem Client zu:
Erstellt nun einfach irgendwo einen Ordner, in dem später eure zu versionierenden Dateien liegen sollen. Bei mir war es genau anders herum, denn ich hab ja bereits meine Dateien. In diesem Fall gehen wir in den Ordner, der unseren Dateien enthält. Innerhalb dieses Ordners vollführen wir einen Rechtsklick und klicken anschließend auf "SVN Checkout". Dann sehen wir

folgendes:

SVN Checkout


Bei "URL of repository" schreibt man einfach "svn://[name eures Servers] rein. Unter Checkout Directory sollte der Pfad zu eurem Projektordner stehen. Bei mir ist das ein Ordner, der alle Projekte enthält. So kann ich alle Projekte in einem Repository verwalten. Da ist es jedem selbst überlassen, wie man vorgeht...


Ok, nun haben wir unser Repository eingebunden. Schön, aber was anderes sieht man nun auch nicht ;) . Kann man auch nicht, da das Repository bislang auch leer ist. Also fügen wir doch einfach mal ein Projekt hinzu. Klickt dazu auf den gewünschten Ordner mit der rechten Maustaste --> TortoiseSVN --> Add.

SVN Add


Nun wird der Ordner auf alle enthaltenen Unterordner und Dateien gescannt und es wird geprüft, ob diese Dateien bereits im Repository sind oder nicht.

Im Anschluss kann man die Dateien anhaken, die hinzugefügt werden sollen und mit einem Klick auf OK den Vorgang starten. Nun werden die Dateien und Ordner mit Checksummen versehen und in das Repository aufgenommen. Nun sind die Dateien registriert. Um die aktuelle Version auch in Subversion zu hinterlegen, klicken wir rechts auf den Ordner, anschließend auf "SVN Commit" und dann auf "OK". Jetzt sieht man, wie die Dateiinhalte hochgeladen werden.

Jetzt ist die Installation abgeschlossen. Aber wie arbeitet man nun damit? Nun, der Vorgang ist eigentlich immer gleich:

Bevor man anfängt zu Arbeiten, klickt man rechts auf den entsprechenden Projektordner oder die entsprechende Datei und wählt "SVN Update". Darauf hin wird die aktuellste Version vom Subversion Server geladen und die vorhandene überschrieben.


SVN Update - Commit

Nun kann man die Datei mit jedem beliebigen Programm bearbeiten. Um die Versionierung nicht zu übertreiben, bleiben alle diese Änderungen nur auf dem lokalen Rechner. Erst, wenn man auf "SVN Commit" geht, wird die Datei oder der Ordner wieder zum SVN-Server geschickt und eine neue Version angelegt. Sollte jemand die Daten in dieser Zeit geändert haben, werden die Daten per Diff gegenübergestellt und der Benutzer muss entscheiden, welche Inhalte nun übernommen werden sollen.


Jetzt läuft der Subversion Server noch immer in dem kleinen Dos-Fensterchen, was auch nicht gerade die sauberste Lösung ist. Daher machen wir jetzt noch einen Windows-Service draus: mit SVNservice.

SVNservice bietet einen einfachen Installer und einen schnellen Konfigurations-Screen. Man gibt einfach den Pfad zum Repository sowie zum Programmordner von Subversion an. Optional kann man auch einen alternativen Hostnamen und Port angeben.

PS: Die Einbindung in Eclipse funktioniert am einfachsten per "Subclipse"...

Fazit: Mittels dieser Anleitung lässt sich schnell ein Subversion Server im lokalen Netzwerk aufsetzen. Wenn man die Konfigurationsdateien im Repository unter conf/svnserve.conf anschaut, ist es z.B. möglich, Subversion mit verschiedenen Benutzern und Passwörtern zu betreiben. Wer da weiter einsteigen möchte, sollte Dr. Google um Rat fragen...


Kommentare: 4

Imager - Der Bild-Merger


27.03.2009, 00:14 Uhr - Coding


Jeder kennt das Problem: Man hat einen dieser neuen digitalen Bilderrahmen, die nunmal im Breitbildformat sind, und möchte darauf auch Bilder im "Hochformat" ansehen. Nur werden die halt mit einem dicken Rand links und rechts dargestellt. Imager nimmt im Batch-Vorgang einfach immer 2 Bilder und baut daraus jeweils ein Bild, um so viel Fläche des Bildrahmens wie möglich zu nutzen. Wer Interesse hat, findet das Tool hier: Downloads/programmieren/PHP

Man benötigt PHP, um das Script ausführen zu können. Entweder lädt man es hier direkt, oder im Paket von Xampp runter.


Kommentare: 0

Xcode und ich


13.03.2009, 18:57 Uhr - Coding


Nach langer Zeit hab ich mich nun mal überwunden und mir Xcode angesehen. Ich muss ehrlich sagen, dass ich von Apple in Sachen Programmierung und IDE enttäuscht bin, denn Microsoft hat das mit Visual Studio 100x besser gelöst. Gut, dafür kostet das auch was, Xcode dagegen bekommt man umsonst.

Konsolenanwendungen sind kein Problem, denn dafür muss man ja nicht Objective-C nehmen, sondern kann auf C++ oder diverse Scriptsprachen zurückgreifen. Sobald es aber in Richtung GUI geht, versagt Xcode eindeutig. Die IDE ist einfach unübersichtlich, und für jede Kleinigkeit poppt ein neues Fenster auf, wenn man die GUI bearbeiten will wird gar ein extra Programm gestartet. Also Usability-mäßig komplett das Gegenteil zu OSX.

Netterweise kann man Gui-Anwendungen auch mit Python und Ruby schreiben. Da mir Python eigentlich ganz gut liegt, wollte ich es damit probieren, doch da ist irgendwas extrem buggy. Wenn ich ein neues Python-Cocoa Projekt erstelle und dieses dann direkt mal kompilieren+starten möchte, werde ich von einer Fehlermeldung angelacht. Es macht einfach keinen Spass und die Motivation wird extrem nach unten gedrückt.

Die Dokumentation ist auch eher Kraut und Rüben und keineswegs mit MSDN vergleichbar. Zwar bietet auch Xcode etwas ähnliches wie Intellisense, aber auch hier kommt es nicht mal ansatzweise an Visual Studio ran. Im Allgemeinen wirkt das Ganze wie eine drittklassige Open Source IDE im Beta-Stadium.

Wenn man den Text so liest, mag man meinen, dass ich von Apple nicht viel halte bzw. Microsoft-Jünger bin. Dem ist aber nicht so, denn seit meinem Umstieg auf das Macbook will ich keinen anderen Rechner mehr haben.

Fazit: Entweder bin ich zu blöd, oder das Tool ist wirklich nichts für Jedermann. Größere Projekte werden es wohl damit vorerst nicht werden. Das ist mein Eindruck nach 2-3 Tagen intensiver Arbeit mit Xcode. Wie ich mich kenne, könnte sich diese Meinung wandeln, aber vorerst gehe ich mal nicht davon aus.


Kommentare: 0

PHP, MySQL und UTF8


30.01.2009, 17:53 Uhr - Coding


Gestern hatte ich mal wieder Probleme mit russischen Zeichen in Verbindung mit PHP, MySQL und HTML. NetzCMS läuft ja schon die ganze Zeit intern auf UTF8 Zeichensatz, und ich ging auch davon aus, dass dieser Zustand automatisch in die HTML-Ausgabe übernommen wird. Nur leider war dem nicht so und auf der Seite waren nur noch Fragezeichen zu sehen. Eine kurze Recherche im Netz ergab dann, dass man MySQL nach dem Connect zur DB explizit mitteilen muss, dass man auch UTF8 wieder zurückgegeben haben möchte.

Und das macht man so:

zuerst die SQL-Query absetzen:
mysql_query("SET NAMES 'utf8'");

Anschließend stellt man noch die Codepage der HTML-Ausgabe folgendermaßen ein:
meta http-equiv="content-type" content="text/html; charset=utf-8"

Und schon kann man sämtliche Zeichen darstellen, ohne verschiedene Zeichensätze verwenden zu müssen.


Kommentare: 0

Kyrillisch und HTML


18.01.2009, 19:55 Uhr - Coding


Bei der Einrichtung einer mehrsprachigen Seite mittels NetzCMS bin ich auf ein etwas verzwicktes Problem gestoßen: Wie bekomme ich russische Schrift bzw. kyrillische Textzeichen in eine HTML-Seite, oder wie in meinem Fall, in PHP? Man kann es zum einen über eine Codepage-Angabe machen, was jedoch bei nem vorgegebenen CMS nicht so einfach ist. Die leichtere Variante ist, HTML-Entitys zu verwenden. Nun kann man die Zeichen einzeln manuell übersetzen, man kann sich diese Arbeit auch sparen.

Cent

Und an dieser Stelle kommt ein nettes kleines Tool zum Einsatz: "Cent". Das in Java geschriebene Programm nimmt einen Text entgegen und übersetzt ihn in HTML-taugliche Schreibweise. Das einzig blöde daran ist, dass man jedes Zeichen, welches durch das entsprechende HTML-Entity ersetzt werden soll, einzeln angeben muss (jedoch nur das Zeichen, das Entity bestimmt das Tool selbst).

Man lädt also einfach das kleine Zip-File herunter, entpackt es und startet die Programmdatei. Anschließend sollte man in den Einstellungen erst einmal alle Sonderzeichen, die man ersetzt haben möchte, eintragen.

 

Cent Einstellungen


Nun fügt man in das obere Textfeld den zu übersetzenden Text ein, und klickt anschließend auf den "konvertieren"-Button. Im unteren Feld erhält man nun den fertigen HTML-Text....

 

Cent - Konvertieren



Link: Cent


Kommentare: 0

Python3000


04.12.2008, 21:04 Uhr - Coding


Python Logo

Python, Version 3.0, ist fertig. Das als Major-Update gekennzeichnete Release enthält auf den ersten Blick nicht sonderlich viele Features, es wurde jedoch einiges im Code getan.

Der Hauptunterschied ist, dass Python 2.x Code nicht mehr unter Python3000 laufen wird. Zur Übergangserleichterung wurden aber einige Features der Version 3 in Python 2.6 implementiert. So kann man seinen Code auf den neuesten Stand bringen, welcher aber trotzdem noch unter der alten Version lauffähig ist. Zur Erleichterung des Umstiegs wurde das Tool 2to3 ebenfalls released. Das Tool durchforstet alten Code und baut ihn für die Gegebenheiten der neuen Python-Version um.

Zu den Neuerungen zählt unter anderem, das print nun eine Funktion, und kein Statement mehr ist, statt dem Typ long jetzt nur int als globaler integraler Typ fungiert, ein neues String-Formatierungssystem sowie die Umgestaltung der Librarys. Alles in Allem soll der Python-Code effizenter arbeiten und einsetzbar sein. Viele Funktionen aus der 2.x Ära werden noch unter 3.0 funktionieren, jedoch dann ab 3.1 und folgenden Releases suksesszive entfernt. Man sollte also zeitnah seinen Code erneuern, wenn man auf die neue Interpreterversion umsteigen möchte.

Für alle, die mit diesem Beitrag nichts so richtig anfangen können: Bei Python handelt es sich um eine Programmiersprache (eher Skriptsprache), mit der man sowohl normale Programme, als auch Webseiten (bzw. Webapplikationen) programmieren kann, ähnlich wie PHP oder Perl. Bei Python wird jedoch die Philosophie der Einfachheit verfolgt. Zusätzlich wird man unter Python dazu gezwungen, Code korrekt zu formatieren bzw. einzurücken, da dies auf die Semantik Einfluss hat.

Links:
python.org


Kommentare: 0

PHP - ein @ vor einer Funktion


22.11.2008, 16:04 Uhr - Coding


Was hat das zu bedeuten? Ich traf die Woche auf diese Frage und hab ein bisschen im Netz gestöbert. Es ist gar nicht so leicht, da etwas zu finden, da Google das @ Zeichen als Suchstring ignoriert ;)

Naja jedenfalls hab ich dann doch noch eine Seite gefunden, auf der es erklärt wurde. Und zwar führt das @ vor einer Funktion bzw. einem Ausdruck dazu, dass PHP sämtliche Fehlermeldungen für diesen Aufruf unterdrückt....


Kommentare: 0