RaspiDashboard – Darstellung von Eventdaten

Vor einigen Wochen beschrieb ich einen Weg, Event-Daten eines Bewegungsmelders in einer InfluxDB-Datenbank zu speichern. Nun ist die reine Speicherung nur eine Seite der Medaille, und der nächste logische Schritt ist die Auswertung bzw. Darstellung der gesammelten Daten.

Zwar gibt es z.B. mit Grafana eine hervorragende Software zur Darstellung von Metriken und Aufbau von Dashboards, aber die reine Nutzung einer derartigen Lösung wäre ja nur der halbe Spaß. Und da ich schon länger einen Blick in D3-basierte Grafiken werfen wollte, habe ich mich für den Bau einer eigenen Lösung entschieden.
Weiterlesen bei RaspiDashboard – Darstellung von Eventdaten »

Tags:
Kategorie:

Design-Refresh

Und wieder ein paar Neuigkeiten, diesmal auf Design-Ebene.

Schon wieder ist ein Monat vergangen seit der letzten sichtbaren Änderung dieser Site. Ich schreibe gerade an einer weiteren Applikation. Da jene Seiten noch gestaltet werden müssen, fiel mir erneut auf, dass eine Überarbeitung des Designs längst überfällig war. Die ersten Stylesheets stammen noch aus einer Zeit statischen HTMLs. Seitdem wurden sie angepasst, neue Elemente hinzugefügt, aber angesichts jener iterativen Entwicklung beschäftigte ich mich bereits viel länger mit dem Thema Design als ich dies je wollte. Ein Refactoring war somit dringend nötwendig geworden.

Ich bin jedoch kein begnadeter Web-Designer, der mit jedem Browser-Bug auf Du und Du ist. Lieber eine Seite im „Null-Design„, dafür mit der gewünschten Funktionalität, als jedes Pixel ein drittes Mal umzudrehen. Daher habe ich mich entschlossen, diese Site auf Basis des (X)HTML/CSS Frameworks YAML (Yet Another Multicolumn Layout) neu aufzubauen. Der YAML Builder war dabei eine große Hilfestellung.

Das Vorgehen im Einzelnen: Zunächst erfolgte die Einrichtung von YAML, die das Ziel hatte, die Struktur einer Seite so darzustellen, wie diese im YAML Builder festgelegt wurde. Anschließend wurden die kuerbis.org-spezifischen CSS-Klassen in die dafür vorgesehenen Dateien eingebracht. Der letzte Schritt bestand aus der Anpassung des Basis-Templates. Tatsächlich waren Änderungen nur darin notwendig, alle abgeleiteten Templates blieben ohne Modifikationen erhalten. Das Ergebnis: Eine Site, die mit allen gängigen Browsern betrachtbar ist, selbst mit betagten Versionen wie MSIE 5.5 lassen sich die Seiten zumindest noch lesen. Wenngleich jene Browservarianten natürlich nicht mehr zu empfehlen sind… Noch ist zwar nicht alles perfekt, aber das wäre schließlich auch langweilig. Es wird folglich auch weiterhin Anpassungen geben, spätestens beim Hinzufügen neuer Features. Der Einsatz desFrameworks unterstützt dies auf einfache Art und Weise.

Somit muß ich mich nicht mit den vielen Kleinigkeiten beschäftigen, wenn dies Experten bereits übernommen haben. Ich ziehe definitiv meinen Hut vor den Autoren jenes Frameworks! Ich muss nicht mit Browsern kämpfen, mich nicht mit unzureichenden Debug-Möglichkeiten herumschlagen (Eine Seite mit dem Internet Explorer debuggen? Da kommt Freude auf!), sondern kann mich auf diejenigen Aspekte konzentrieren, die mir persönlich letztlich mehr Spass bereiten. Beispielsweise Programmierung mit Django/Python. Oder in letzter Zeit sogar JavaScript, die wohl am meisten mißverstandene und unterschätzte Programmiersprache der Welt. Aber das ist ein ganz anderes Thema…

 

Tags:
Kategorie:

Foto-Alben mit Lightbox / Thickbox Ansicht

Schnell noch ein Feature: Lightbox in den Foto-Alben.

Thickbox, eine Adaption der beliebten Lightbox-Libraries für jQuery ist endlich eine Lightbox, die mir gefällt. Denn um ehrlich zu sein, habe ich diese Ansicht für Fotos auf Web-Seiten bisher eher gemieden. Thickbox bietet aber eine sehr elegante Implementierung, die noch dazu mit zusätzlicher Funktionalität wie Anzeige des Foto-Titels undBlättern innerhalb des Albums einher kommt. Daher wieder ein Update: Die Foto-Alben auf dieser Site, welche auf einer Django-Implementierung meiner damals yapa (yet another photo album), bzw. yapa2 genannten PHP-Skripte basieren, unterstützen nun die Ansicht mit Thickbox.

Ein kleines Beispiel befindet sich jetzt nicht mehr hier, einige Bilder aus dem Udo Jürgens Wiederholungskonzert in der Kölnarena von 2006.

Achtung, Beta! 😉

Tags:
Kategorie:

Detailverbesserungen und Profilbilder

Nach geraumer Zeit gibt es heute mal wieder ein paar Neuigkeiten auf kuerbis.org.

Die erste betrifft den Footer, dieser ist ein wenig verändert worden, zeigt nun an prominenter Stelle einen Hinweis, dass diese Site auf Basis von Django erstellt wurde.

Die zweite ist weniger offensichtlich und betrifft den internen User-Bereich. Dort ist es nun möglich, eigene Profilbilder hochzuladen. Dies allein ist zugegebenermassen wenig aufregend. Doch da Profilbilder eine feste Grösse besitzen sollen, ist es wünschenswert, die Bilder nach dem Upload bearbeiten zu können. Dafür gibt es z.B. die JavaScript Image Cropper UI, die mit Hilfe der JavaScript-Libraries Prototype und Scriptaculous eine simple, web-basierte Oberfläche für diese Funktionalität bereitstellt. Diese Demo-Anwendung, welche auf PHP und ImageMagick basiert, hat bei der Implementierung ebenfalls geholfen.

Wir sind jedoch in der Welt von Django und Python, insofern kommt statt ImageMagick die Python Imaging Libraryzum Einsatz. Die Adaption ist – wie nicht anders zu erwarten – simpel und elegant.

Dennoch wird das Zuschneiden des Bildes bis auf weiteres die einzige Stelle sein, an der Scriptaculous hier Verwendung findet, denn an anderer Stelle setzt diese Site auf die wundervolle JavaScript-Library jQuery. Zum Beispiel beim Löschen des Profilbildes – kleine, aber nette Effekte sowie Ajax zur Kommunikation mit dem Server.

Der gesamte Quellcode steht selbstverständlich als Open-Source zur Verfügung, bislang bin ich zwar noch nicht dazu gekommen, das Subversion-Repository zu veröffentlichen, aber für Fragen stehe ich jederzeit zur Verfügung.

Update: Da haben sich wohl doch noch ein paar Fehler eingeschlichen, man sollte nicht zuviele Updates auf einmal machen…

Update 2: Die Fehler sind nun behoben. Eines der Probleme lag in der Verwendung der newforms-Library von Django, die sich noch in stetem Wandel befindet. So wurde aus clean_data nun cleaned_data. Nicht unlogisch, und sogar dokumentiert, aber bis gestern hatte ich noch nicht auf die aktuelle Version updated, so dass dies beim Testen natürlich nicht auffiel.
Ein zweites Problem lag schon etwas tiefer. Es handelte sich um fehlerhafte Lookups, infolge derer nicht diejenigen Objekte zurückgeliefert wurden, die man eigentlich erwartete. Auch dieser Fehler ist nun behoben.

Tags:
Kategorie: