marvin ist der Name des Robotors aus „Per Anhalter durch die Galaxis“ von Douglas Adams. Er zeichnet sich vor allem durch seine fehlende Motivation und seinen ständigem Pessimismus aus. Er erfüllt zwar seine ihm aufgetragenen Aufgaben pflichtgemäß, betont aber ständig, dass er damit total unterfordert sei und lässt keine Gelegenheit aus, auf seinen deprimierten Gemütszustand hinzuweisen.
marvin wird die zentrale Steuerung der warpzone. Mit ihm soll es möglich sein, Licht an und auszuschalten, das Moodlight zu konfigurieren, die Musik einzustellen und das Mateprepaid-System auf Smartcardbasis zu implementieren. Damit wird er zwar gnadenlos unterfordert sein und seine GHz werden die meiste Zeit Däumchen drehen; das wird er aber verkraften müssen.
marvin besteht aus einem Touchscreen, der hochkant über dem Kühlschrank angebracht wurde. Als Rechner dient ein altes Notebook, auf dem Linux installiert ist. Ein im Vollbild-Kiosk-Modus gestarteter Browser zeigt eine HTML-Seite mit Javascript an, die per Ajax die Funktionen auslöst.
Im Backend hört auf der Kiste ein Apache mit PHP, der dann auch passende Kommandozeilentools zur Steuerung loslassen kann. Alternativ ist es dem PHP auch direkt möglich, per TCP/UDP/IP steuerbare Dienste in der Zone zu erreichen.
Option „Rotate“ „CCW“
xinput set-int-prop „Acer T230H“ „Evdev Axes Swap“ 8 1
xinput set-int-prop „Acer T230H“ „Evdev Axis Inversion“ 8 1 0
marvin mag keine ekligen Websprachen. Und ja, ist nicht wirklich Jedermanns Sache. Haben wir auch nur ausgesucht, um marvin zu ärgern. Hat aber auch Vorteile: So ist es jedem „Widget“, also jedem Teil der Oberfläche, möglich, abgekapselt von den Anderen zu sein. Es ist möglich einen Teil der Oberfläche zu verändern, ohne gleich die ganze Oberfläche kaputt zu machen oder neu kompilieren zu müssen. F5 reicht.
marvin ist auf github gehostet ( https://github.com/Warpzone/marvin ), es ist aber geplant, marvins Repository auf den Warpzone-Server umzuziehen.
In dem Ordner webroot gibt es die index.php , das ist der Kern der Seite.
Widget-Autoren legen sich im unterordner „widgets“ einen Ordner mit dem Namen des Widgets an. In Ihrem Ordner muss es eine php-Classe mit dem Namen (Name der Klasse UND Dateiname) wie dem Ordner geben. Diese Klasse muss dass Interface iWIdget implementieren.
Wenn das Widget Javascript ausführen möchte, kann es das mit $(document).ready(function(){Tu Was}) gerne am Start machen, wenn es regelmäßig (minütlich) was machen möchte, registriert es sich mit einem Callback. Das Widget „ZoneOffen“ ist die Referenzimplementation, bitte ansehen, wie das dort gemacht wurde.
Alle CSS -Namen innerhalb des Widgets müssen in der Form [widgetname]_[beliebig] sein.
Dein Widget darf durch Dinge innerhalb des Widgets verändern. Ein Neuladen der Seite (durch z.B. einer form) ist strikt verboten. Nimm Javascript. Dafür ist es da.
Am Interface, der index.php, der marvin.js oder der zentralen CSS-Datei wird ohne Rücksprache nicht geschraubt; damit könnte man die Kompatibilität mit anderen Widgets brechen. Und das würde marvin nicht gefallen.
ZoneOffen ist eine einfache adaptierte Kopie des Widgets aus dem Blog. Die Kommunikation läuft nicht mehr direkt mit dem Wanker, sondern über ein ajax.php auf dem Server, damit später mal ein Caching implementiert werden kann, um den Wanker zu schonen.
Fertig entwickelt und eingebaut
TwitterWall zeigt aktuelle Twittermeldungen mit dem Hashtag #warpzone an.
In Entwicklung. Es nutzen scheinbar noch Andere Twitterer den Hashtag #warpzone…
Wettervorhersage zeigt das aktuelle Wetter in Münster und das der folgenden vier Tage an.
In Entwicklung. Das Widget aktualisiert sich noch nicht von alleine.
RSSFeed könnte z.B. den letzten Blogeintrag von Warpzone.ms anzeigen…
In Entwicklung.
Zahlungswidget, welches möglicherweise in naher Zukunft unser Prepaidsystem am Kühlschrank ablösen könnte ( später per smartcards?)
Bis auf die Datenbankanbindung fertig entwickelt und eingebaut (momentan mit textfile).
Jukebox-Widget zur Radiostreamauswahl bzw. Lautstärkeregelung usw…
Fertig.
Ein Widget, welches anzeigt, welche Busse demnächst in Warpzonenähe abfahren
Funktionsfähig (aber eklig gelöst)
Steuerwidget für das Moodlight bzw. die Beleuchtung
Einträge der WZ Kalender Auflisten (StuC)
ands und philipp kümmern sich momentan um das Projekt. Wenn du mitmachen willst oder ein eigenes widget schreiben willst, sprich diese an. Alternativ kannst du auch einfach das GIT forken, fleißig entwickeln und dann einen Pull-Request stellen, den ands oder philipp dann beantworten werden.