Quellcodeumwandlung

Manchmal ist man als Entwickler genötigt, Quellcode von einer Sprache in eine andere zu übersetzen. Ich wollte gestern einen Visual Basic.NET Quelltext in sein C# Pendant übersetzen. Da der Quelltext doch etwas länger war und ich mir nicht unnötig viel Arbeit machen wollte suchte ich einen automatisiert Methode um das ganze zu machen. Gestoßen bin ich dabei auf den Snippet Converter von Sharpdevelop. Er ist in der Lage C# zu VB.NET, VB.NET zu C#, C# zu Boo und VB.NET zu Boo umzuwandeln.

Sehr hilfreich dieses Tool. Zu finden ist das ganze unter http://codeconverter.sharpdevelop.net/SnippetConverter.aspx.

Wie geht es weiter?

Gestern saß ich am Rechner und vor mir lag mein Neo. Ich habe es dann mal angeschaut und war mal wieder total begeistert welche ungeahnten Möglichkeiten in diesem Gerät stecken. Das führte dazu das ich erst einmal für Minuten nichts anderes getan habe, als begeistert zu sein :) Ich wollte eigentlich schon vor längerer Zeit meine erste Openmoko-Anwendung schreiben. Leider ist das nicht so einfach wie zuerst gedacht.

Da ich diese Anwendung auf Enlightment Basis realisieren wollte und plötzlich merkte das es neben Evas und Edje auch ein UI Toolkit benötigt. Da gibt es ja wie ich beim letzten Mal schon schrieb die Toolkits EWL und Etk. Ich habe mich dann für EWL entschieden und musste dann mal wieder feststellen das es dafür kein Pythonbinding gibt.

Als Entwickler ist man nun doch etwas enttäuscht. Was wir brauchen ist ein leichter Einstieg in für Entwickler, denn nicht jeder Entwickler hat Lust erst Tage und Wochen damit zu verbringen überhaupt mal eine Anwendung hervorzuzaubern. Ich hätte gerne einen „Standard“ welche Widgets benutzt werden sollen etc.

Im Endeffekt musste ein integriertes System entstehen. Was das bedeutet kann man sich an Systemen wie Windows, GNOME, und KDE sehen. Jede Anwendung benutzt die gleichen Widgets und für Benutzer sieht das ganze immer irgendwie bekannt aus. Nachdem FSO die Middleware liefert sollten wir uns um die Benutzeroberfläche kümmern.

Da viele Leute (zu mindestens die mit denen ich zu tun hatte) eine Umgebung auf Enlightment (und Illumne) Basis bevorzugen (ich auch), sollten wir anfangen genau dort anzufangen. Konkret bedeutet das folgendes: Zur Zeit ist Zhone (das Testimage für FSO), eine nicht grade modular aufgebaute Anwendung. Was uns fehlt ist ein Äquivalent zu den GNOME Libs (und anderen ähnlichen Dingen).

Wir sollten nun Anfangen uns an das Reißbrett zu setzen und ein System zu designen welches modular ist und vor allem auch in der Zukunft ausbaufähig ist. Damit wir die Bibliotheken z.B. die für die Widgets nicht an den Bedürfnissen vorbei entwickeln sollten wir unserer Brot und Butter Anwendungen entwickeln und parallel dazu die passenden Bibliotheken. Ich denke am Anfang sollten es folgende Anwendungen sein:

– einen Dailer
– ein SMS Programm
– ein Adressbuch
– einen Kalender
– einen Mediaplayer
– ein Notiz Programm
– ein Memo Programm
– eine Uhr bzw. Weltzeit Uhr (mit Wecker)

Bei der Entwicklung dieser Programme sollte dann parallel dazu die passenden Bibliotheken entwickelt werden, damit der Entwickler auf einem Framework aufsetzen kann bei dem er nicht befürchten muss das nächste Woche schon wieder alles anders macht und der Benutzer eine einheitliche Oberfläche mit einheitlichen Anwendungen bekommt.

Jetzt stellt sich eigentlich nur noch Frage. Wer macht mit?

Python IDE

Auf der Suche nach einer Python IDE sind mir einige IDEs über den Weg gelaufen, wobei die meisten davon zu unausgereift waren. Hängen geblieben bin ich dann an zwei IDEs. Einmal ist dies SPE (Stani’s Python Editor) und die andere IDE hört auf den Namen Eric.

SPE ist eine Python IDE nach dem Motto klein aber fein und bietet eigentlich alles was man für die Python Entwicklung benötigt. Möchte man mehr (wie z.B. SVN Unterstützung) so greift man zu Eric. Eric bietet neben der Unterstützung eines VCS noch einige Features mehr.

Zu finden sind diese IDE’s unter http://pythonide.blogspot.com/ (SPE) sowie unter http://die-offenbachs.de/eric/ (Eric).

FSO Milestone 2

Nach einigen Tagen Verspätung ist der zweite Meilenstein des Freesmartphone Frameworks erschienen. Herunterladen kann man das ganze unter: http://downloads.openmoko.org/framework/milestone2/.

Bedingt durch die Verspätung hat sich auch der Zeitplan der weiteren Meilensteine ein wenig verschoben. So kommt MS3 erst am 30.08.2008, MS4 am 30.09.2008 und MS5 am 30.10.2008.

Im aktuellen Meilenstein wird Ilumne als Aufsatz bzw. zur Verwaltung der Fenster eingesetzt. Weiterhin befindet sich TangoGPS sowie das GTK Terminal mit in dem Image, so das das ganze zur Entwicklung taugt.

Edje

Möchte man eine Anwendung welche ein Interface beinhalten soll mit Hilfe der EFL schreiben so benötigt man eine EDJ Datei. In dieser EDJ Datei (welche nichts anderes ist als eine mit der EET Bibliothek erzeugte Datei) befindet sich die Beschreibung des Interfaces samt Bildern und anderen Ressourcen. Zur Zeit existieren zwei Möglichkeiten eine EDJ Datei zu erzeugen.

Die erste Möglichkeit eine solche Datei zu erstellen, ist es eine Textdatei mit der Endung EDC zu erstellen. Dabei handelt es sich um eine Datei in der die Ressourcen und das Aussehen des Interfaces beschrieben sind. Diese Datei wird dann mittels der Anwendung edje_cc zu einer EDJ Datei gemacht. Die zweite Möglichkeit ist der EDJE Editor mit welchem man diese Oberfläche gestalten kann. Ich empfehle allerdings die erste Variante weil der Editor meiner Meinung nicht wirklich zu gebrauchen ist.

In der EDJE EDC Datei (aus der dann später die EDJ wird) ist das gesamte Interface definiert. Die Syntax der Datei orientiert sich an C. Im großen und ganzen besteht eine EDC Datei aus mehreren Sektionen wie z.B. fonts, images, data und collections. Kompiliert man dann mit edje_cc eine EDC Datei so werden die Bilder etc. automatisch in diese Datei integriert.

Die Anwendung welche das Interface benutzen möchte muss dann nur den Namen der EDJ Datei sowie die verwendeten Signale kennen, damit die passenden Callbacks in der Anwendung definiert werden können. Diese Callbacks sind praktisch die Eventhandler für das entsprechende Signal. Das heißt theoretisch kann man das Interface einer Anwendung komplett austauschen solange es die gleichen Signale liefert. Soviel erst einmal zu Edje.

Weitere Informationen gibt es unter:
http://www.cuddletech.com/edje/docs/html/edje_book.html
http://wiki.enlightenment.org/index.php/Evas
http://web.archive.org/web/20070712132921/http://www.rephorm.com/pages/tutorials/evas/basics