UKI

Wenn man native Applikation entwickelt, ist die Wahl der Komponenten für die grafische Oberfläche schnell erledigt. Meinst nimmt man das UI Kit, welches dem „Plattform-Standard“ entspricht. Bei Webseiten bzw. Webbapplikationen ist die ganze Sache komplizierter. Hier gibt es eine Reihe von Lösungen, wie jQuery UI, JxLib, YUI und andere. Eine schöne Alternative zu den genannten Lösungen ist UKI.

Eine UKI Beispielanwendung

Die Bibliothek setzt dabei auf direkt auf Javascript auf und benötigt keine weiteren Frameworks. Das ganze ist unter http://ukijs.org/ zu finden. UKI ist dabei freie Software und steht unter der MIT-Lizenz.

Ramen wurde eingestellt

Im Oktober 2010 wurde die Entwicklung der Open Source Software Ramen eingestellt. Bei dieser für Linux, Windows und Mac OS erhältlichen Software handelt es sich um eine Compositing Lösung für Videos. Der derzeitige Entwickler hat einfach keine Zeit mehr für das Projekt. Doch hier sieht man wie ich finde wieder einmal die Vorteile von Open Source. Jeder der es möchte kann sich den Sourcecode schnappen und die Software weiterentwickeln. Der Entwickler teilte das Projekt vor der Einstellung in eine Shared Library und eine GUI welche in Python geschrieben wurde. So können sich andere Projekte auch nur den Sourcecode der Bibliothek schnappen und ihn verwenden. Hoffen wir mal das sich jemand der Weiterentwicklung annimmt. Die offizielle Seite von Ramen ist unter http://ramenfx.org zu finden.

Weitere Informationen gibt es unter:
http://blog.ramenfx.org/blog/
http://www.slashcam.de/artikel/Essays/Ramen-R-I-P.html

ETK in Python

Grade eben bin ich durch Zufall auf die Seite http://wiki.openmoko.org/wiki/Python gegangen und habe dabei doch gleich ein ETK Minimal Beispiel gefunden welches ich hier wiedergeben möchte.

Damit dieses Beispiel läufts sollte man neben den „normalen“ Python Paketen auch noch die Pakete python-etk und python-efl installieren.

Die Minimalanwendung sieht dann so aus:

import etk

#create a button (not yet on any window)
b = etk.Button(label=“Hello“)

#create a (nonvisible) window and put the button on the window
w = etk.Window(title=“Hello“, child=b)

#create a silly callback function
def hello(target):
print ‚Hello World‘
etk.main_quit()

#make the button call the callback when pressed
b.on_clicked(hello)

#make the window display
w.show_all()

#start processing screen events
etk.main()

Im ersten Schritt wird das Python Modul python-etk eingebunden. Danach wird ein Button definiert und mit der Beschriftung „Hello“ versehen. In der nächsten Zeile wird dann ein Fenster erzeugt (welches unsichtbar ist) und diesem Fenster wird der Button zugewiesen. Danach wird die Callbackfunktion hello definiert und diese dem Button zugewiesen. In den letzten zwei Zeilen wird das ganze sichtbar gemacht und der Event Loop aktiviert. Und schon haben wir eine Anwendung :)

EWL und Etk

Da ich zur Zeit immer noch beim Schreiben meiner ersten „richtigen“ Openmoko Anwendung bin und das ganze unbedingt mittels E und allem was dranhängt bewerkstelligen wollte, stand ich plötzlich vor dem Problem das ich keine GUI Widgets habe und EDJE, Evas und Co eine Abstraktionsschicht zu niedrig sind. Was also nun benötigt wurde war ein GUI Toolkit. Dabei stehen mir gleich zwei Toolkit Bibliotheken zur Verfügung. Zum ersten EWL (Enlightenment Widget Library) und dann gibt es noch Etk (Enlightened ToolKit).

EWL
Bei EWL handelt es sich um eine Widget Bibliothek, welche skinbare Widgets für Anwendungen bereitstellt. Zu diesen Widgets gehören Windows, Buttons, Listen, Text Views. Neben den Widgets erlaubt die Theme Engine Animation sowie ähnliche Dinge.

Etk
Das Enlightened ToolKit ist ein Widget basierendes Toolkit welches intensiv die Evas und Edje Funktionen benutzt. Es soll eine schnelle, stabile und vor allem skalierbare Bibliothek sein, welche sich dazu eignet schnell Anwendungen zu schreiben. Diese Anwendungen sollen dann vom Desktop über den PDA bis hin zu Set-Top Boxen laufen.

Beim näheren Hinschauen stellt sich für mich die Frage worin sich diese beiden Bibliotheken denn nun wirklich unterscheiden und welche man zur Entwicklung seiner eigenen Anwendung benutzen soll. Nach der Lektüre eines Forumeintrages (http://forum.enlightenment.org/comments.php?DiscussionID=244&page=1) bin ich zu dem Schluss gekommen das EWL wohl die bessere Variante ist, unter anderem aus dem Grund das der Maintainer für Etk wohl nichts mehr an dem Projekt macht.

Weitere Informationen gibt es unter:
http://wiki.enlightenment.org/index.php/Main_Page
http://wiki.enlightenment.org/index.php/Category:Enlightened_Widget_Library
http://docs.enlightenment.org/api/etk/html/index.html

Über SSH auf die graphische Oberfläche des Freerunners zugreifen

Möchte man auf dem Desktop z.B. mal den Browser ausprobieren, da man auf dem Neo z.B. keinen Slash eingeben kann, so wäre es wünschenswert das man die graphische Ausgabe gleich per SSH mitnimmt. Erfreulicherweise ist das ganze auch relativ unkompliziert.

Als erstes stellt man eine Verbindung per USB Networking her. Natürlich geht das ganze auch übers WLAN, dabei müssen dann allerdings die IP Adressen angepasst werden. Sobald man sich dann per SSH mit seinem Neo verbunden hat gibt man export DISPLAY=192.168.0.200:0.0 ein und bestätigt das ganze mit der Entertaste.

Auf unseren PC öffnen wir nun noch ein Terminal und geben folgendes ein:

xhost +
ssh -X root@192.168.0.202

Um nun zu testen ob das ganze funktioniert hat, geben wir nun einfach openmoko-browser2 ein und schon müsste sich der Browser auf dem Desktop öffnen und wir können die Anwendung wie auf dem Neo benutzen.