Donnerstag, 4. April 2013

Neue Datenbank-API für ViUR

Für ViUR steht in Kürze eine neue Datenbank API zur Verfügung.
Nachdem wir mit ViUR Mitte 2012 von ext.db auf die ext.ndb API gewechselt hatten, um von den Geschwindigkeitsvorteilen durch das integrierte Caching zu profitieren, hatte sich in den letzten Monaten abgezeichnet, das NDB auf Dauer nicht die passende Datenbank-API für ViUR bilden kann:
  • Da ViUR auf eigenen Datenmodellen aufbaut, können die Modelle von NDB nicht verwendet werden. Daher konnte in ViUR nur ein kleiner Teil der Funktionalität von NDB verwendet werden.
  • In NDB werden Einträge über das Modul und nicht über das Modell abgerufen. Da ViUR die NDB-Modelle auf Basis der eigenen Datenmodelle zur Laufzeit erzeugen musste, führte dies zu Race-Conditions, bei denen auf neuen Instanzen der Anwendung Einträge abgerufen werden, deren Modell noch nicht erzeugt und somit der NDB-Api unbekannt waren.
  • NDB unterstützt zwar dynamische Modelle (expando), ist aber auf die Verwendung von Modellen optimiert. Die API von NDB erzeugt bei der Verwendung von dynamischen Modellen deutlich mehr Schreibaufwand (ohne weiteren Mehrwert) für den Entwickler:
    ext.db: query.filter("age >", 18)
    ext.ndb: query.filter( ndb.GenericProperty("age") > 18)
  • Inkonsistenzen zwischen ext.db und ext.ndb: Eine unerfüllbare Abfrage (z.B. age>10 and age<5) liefert in ext.db ein leeres Result-set, in ext.ndb eine Exception.

Daher haben wir für ViUR eine neue Datenbank-Schnittstelle für den Datastore entworfen. Unsere Datenbank-API setzt auf die (nicht offiziell dokumentierten) Schnittstellen des Packets google.appengine.api auf. Hierbei bietet unsere API einen low-level Zugriff auf die Datenbank, die anderen Dokument- oder Objektorientierten Datenbanken wie MongoDB ähnelt. Weiterhin bietet unsere API einen für den Entwickler transparenten (Mem-)Cache um häufig gestellte Anfragen schneller und kostengünstiger beantworten zu können.

Ein paar Beispiele:

entry = db.Entity("person")
entry["name"] = "Max Mustermann"
entry["age"] = 21
db.Put( entry )

query = db.Query("person")
query.filter( "age >", 18 )
results = query.run( limit=100 )

Tip: Unsere Datenbank-API ist nur sehr lose mit dem restlichen ViUR-System gekoppelt. Projekte, die nicht auf ViUR aufsetzen möchten, aber eine Dokument-Orientierte API für die Datenbank nutzen möchten, können diese API trotzdem verwenden.

Freitag, 8. März 2013

Entwickler Schnellstart Video online

Da wir von vielen Menschen gefragt wurden, ob wir nicht für die Installation der Google App Engine und ViURs ein Tutorial machen können, haben wir uns für die Produktion eines Screencastes entschieden.

Nachfolgend findet Ihr nun das Video.
Für einen kurze schriftliche, kurze Anleitung folgt bitte diesem Link:
www.viur.is/site/Download-Projekt



Manuscript des Videos


ViUR Projekt: Installation und erste Schritte

Herzlich willkommen zu einer weiteren Ausgabe des ViUR Screencasts.
Im ersten Teil dieses Videos wird gezeigt, welche Installationen wie durchgeführt werden müssen, um ein ViUR-Projekt unter Windows lokal starten und entwickeln zu können. Anschließend gibt es einen kleinen Test, ob die Installation funktioniert.

Installieren der Module

Die Download und Installationsanleitung ist dein roter Faden für eine erfolgreiche Installation.
Der Python-Interpreter wird später in der Googlecloud im Sandboxmodus laufen. Die App Engine unterstützt zur Zeit Python 2.7. Aus Kompatibilitätsgründen von Installationspacks weiterer Python Bilbliotheken empfehlen wir die 32-Bit Version.

Wir sind versucht ViUR immer kompatibel zum aktuellsten App-Engine SDK zu halten. Daher empfehlen wir, dass Du nach dem SDK-Udpate auch den Server aktualisierst.

Jinja2 ist für die Ausgabe von Webseiten unser zentraler Renderer. ViUR erweitert diesen noch um vielen Funktionen, sodass Designer im Grunde nie in den Pythoncode schauen müssen um z.B. Datenbankabfragen oder Caching anzuwenden.

Für Demonstrationszwecke und für Menschen, die nicht gerne bei Null anfangen lade ich mir noch das Projekt als Zip von Bitbucket herunter.

Der Serverquellcode dagegen sollte mit Git herunter geladen werden um später das Framework gut updaten zu können. Unter Windows können wir dort vor allem Tortouise Git als Klienten empfehlen.

Nun beginnen wir die Bausteine in einander zu setzen:
- Das Projekt entpacken wir als erstes in unseren Arbeitsordner
- Dann Checken wir den Server mit Git aus.

Da Tortouise Git nur die grafische Oberfläche des Git-Kommandozeilentools ist, müssen wir dieses noch herunter laden und installieren.

Jetzt kann der Server ausgecheckt werden. Die Url gibt es auf der Bitbucket-Seite: ViUR/Server. Auschecken darf den Server jeder, es wird also nach keinem Benutzernamen oder Kennwort gefragt. Wenn du Erweiterungen oder Patches für den Server machen willst, dann starte bei Bitbucket bitte einen Fork und stoße dann bei uns einen Pull-Request an.

Der Server liegt jetzt im Projektverzeichnis und kann vom Projekt eingebunden werden.

Nun geht es darum, die Bibliotheken zu installieren:

Jinja2 wird entpackt. Zum Bauen und Installieren benötigen wir allerdings die Setuptools für den Pthon 2.7 Interpreter.

Diese holen wir uns über einen Trick, indem wir einfach schon mal PIL über ez_setup.py installieren. PIL steht für “Python Image Library”, ist also das modul mit dem das Google App Engine SDK die Thumbnailbilder erstellen wird.

Der EZ-Setup - Script installiert beim ersten Ausführen automatisch die Setuptool. So haben wir diese für die Jinja2 Installation zur Verfügung. Die Jinja2 Version, die wir auch über ez_setup installieren könnten, ist leider Fehlerbehaftet und sollte nicht genutzt werden.

Somit installieren wir diese nun per Hand in dem wir die “setup.py install-Funktion” im entpackten Jinja2 Ordner ausführen.

Das War’s! Wir können starten !

Der erste Start

Zum ersten Start nutzen wir den Google App Engine Launcher für Windows. Dieser ist ein kleines grafisches Tool was beim Windows SDK bei liegt. Es schreibt Konfigurationsdateien und ruft Konsolenbefehle auf. Bei mausbrand starten wir später die Entwicklungsserver aber über die Windows-Konsole direkt, da der Launcher die Angewohnheit hat die laufenden Server so zu beenden, dass die Datenbank unbrauchbar wird und beim nächsten Start wieder neu angelegt werden muss.

Der Python 2.7 Pfad sollte per Hand gesetzt werden.

Um das Projekt nun dem Launcher hinzuzufügen wählen wir den Projekt-Ordner aus. Hier ist die darin befindliche app-yaml-Datei maßgeblich für Projekt-Name, Server-Pfade usw. Der Port wird wiederum vom Launcher festgelegt, da dieser eine Option des Konsolenbefehls ist.
Nun können wir die ViUR Installation auf dem Entwicklungsserver ausprobieren.

Viel zu sehen gibt es allerdings noch nicht, da noch keine Daten eingegeben wurden.
Zur vollständigen Adminitration nutzen wir unser Administrationsprogramm. Natürlich ist es auch möglich auf der Seite selbst eine Editierfunktion zu integrieren oder aber unser Ops (OperationsCenter) zu nutzen, um halbautomatisch eine im Webbrowser stattfindende Administration bereit zu stellen.

Nach dem Entpacken kann der Admin direkt gestartet werden. Über den Accountmanager können Zugangsdaten verwaltet werden, sodass man bei einem Neustart des Programms nicht wieder alles neu eintragen werden muss.

Wenn der Server die Authentifizierung über Google Accounts nutzt so kann bei Benutzername und Passwort auf dem Entwicklungserver ein beliebiger Text eingetragen werden damit die Authentifizierung erfolgreich ist.

Das ViUR Projekt ist standardmäßig so konfiguriert, dass es aber eine eigene Benutzerverwaltung mit Login, Registrieren und "Passwort vergessen"-Dialogen bereit stellt. Hier müssen korrekte Angaben gemacht werden. Somit generiert der Entwicklungsserver beim ersten Starten einen Adminbenutzer und ein Passwort. Die Daten dazu gibt er über die Konsole aus. Lässt man den Server später auf der Google App Engine-Cloud laufen, so schickt der Server die Daten sogar per E-Mail dem eingetragenen Admin zu.

Die Baumstruktur auf der linken Seite des Administrationsprogramms funktioniert ähnlich wie die unter Windows 7eingeführte Taskleiste. Ein Modul kann über sie gestartet werden und legt dann sein Fenster wieder in den Baum. Module können auch schon vorgefertigte Listen haben, die die Einträge nach bestimmten im Server definierten Filtern anzeigen. Über ein Plugin-System können viele zusätzliche Funktionen nachgeladen werden, wie Schnittstellen zu DHL, Vorschaufunktionen, Statistiken, 2dolisten und so weiter...

Auf der rechten Seite starten die Ansichten, Listen, Formulare, Dialoge und Editoren.

Das Template von ViUR-Projekt nutzt Mediaqueries. Wegen der geringen Bildschirmbreite für den Screencast wird in der Admin- Vorschau die Mobilversion angezeigt. Der Browser zeigt mir aber die Desktopansicht an.

Bitte schaue dir auch unser Admin Einführungsvideo. Hier bekommst du noch mehr Tipps und Eindrücke von dem Programm.



So das war’s. Ich hoffe du hast einen guten  Eindruck bekommen. Wenn dir ViUR gefällt, dann werde Teil des Projekts denn:

ViUR ist Open Source.
ViUR kann unter ViUR.is frei herunter geladen werden.

Freitag, 15. Februar 2013

Mausbrand gewinnt Gründerpreis 2012 im Kreis Unna



Am 13. Februar 2013 fand auf dem Gelände der IUN Unna die feierliche Verleihung des Gründerpreises 2012 im Kreis Unna statt. Der von der WFG Kreis Unna ausgelobte Preis wird für vorbildhafte Leistungen bei der Entwicklung von innovativen und tragfähigen Geschäftsideen und beim Aufbau neuer Unternehmen verliehen. Ziel ist es, mit Leuchtturmprojekten ein positives Gründungsklima im Kreis Unna zu fördern und Mut zur Selbstständigkeit zu machen.


Der Gründerpreis wird alle zwei Jahre vergeben. Damit können unternehmerische Vorbilder in unterschiedlichen Unternehmensphasen ausgezeichnet werden – von der Idee bis zur vollendeten Gründung.


Sowohl unser Business-Plan, als auch die Präsentation vor der Fachjury konnte überzeugen, so dass wir nach der Laudatio von Herrn Christoph Gutzeit – Geschäftsführer der TechnoPark und Wirtschaftsförderung Schwerte GmbH – die Urkunde für den ersten Platz in Empfang nehmen durften.


Einen Preis zu gewinnen ist immer etwas besonderes und der Gründerpreis des Kreises Unna ist für uns eine schöne Auszeichnung, weil er zeigt, dass die Region hinter uns steht. Er bestärkt uns so weiter zu machen wie bisher und gut gelaunt in die Zukunft zu schauen. 

Samstag, 19. Januar 2013

ViUR - Feature Video: Es ist da !

Zusammen mit der Hochfarbe GmbH, die mit uns im Technologiezentrum in Schwerte sitzt und mit der wir gerade viele coole Projekte umsetzen, entstand über Weihnachten und Neujahr das ViUR - Feature Video.


Warum ein Feature Video ?

Mensch sollte den Aufwand solch ein Video zu produzieren nicht unterschätzen! Trotzdem wollten wir es zum Release der ersten Versionen von ViUR direkt schon richtig knallen lassen. Das Video ist daher nun an vielen Stellen ein zentraler Baustein unserer Kommunikationsstrategie, die vor allen Dingen erst einmal online und dort über die Socialmedia Kanäle laufen soll. Taucht das Video z.B. im Facebook oder Google+-Stream auf, so können die Nutzer mit einem klick das Video starten und müssen dazu nicht einmal ihren Stream verlassen. Wir haben somit einen niedrig schwelligen Einstieg geschaffen um die Markenwelt zu kommunizieren.

Durch die verspielten und an einigen Stellen auch effektvollen Animationen hoffen wir, dass das Video auch geteilt wird, wenn wir nicht auf die passende Zielgruppe treffen. Als Zielgruppe sehen wir natürlich vor Allem die von ViUR.is, also Einzelkämpfer, Gruppen sowie Agenturen/Unternehmen die sich schon sehr lange mit Web-Programmierung beschäftigen und die an vielen Stellen schon Erfahrungen mit Softwarearchitekturen gemacht haben und daher verstehen, warum wir nach festen/diesen Paradigmen unsere Projekte durchführen.

Das Feature Video kann nun an vielen weiteren Touchpoints auftauchen und einen guten Eindruck machen:
Aber auch 
  • auszugsweise (manchmal ganz ..) bei Kundenpräsentationen
  • bei Präsentationen für technische Ansprechpartner von Kunden und Kooperationspartnern
  • bei Messe/Kongress-Ständen (ohne Ton)



Wie haben wir das Video-Projekt umgesetzt ?

  1. Zunächst haben wir die Zielgruppe und darauf aufbauend die groben Inhalte in einem Brainstorming in der Gruppe besprochen und anschließend eine aufeinander aufbauende Gliederung definiert,
  2. anschließend mit Apple-Keynote uns einen Visuellen Ablauf modelliert.
  3. Ergänzend dazu entstand in einem für alle Gruppenmitglieder freigegebenen Google-Doc. die ungefähre Beschreibung der Animationen und der damit verfolgten Kommunikationsziele.
  4. Diese wurden dann um den Sprecher-Text erweitert. Der Text richtet sich natürlich nach den Corporate-Kommunikation-Vorgaben von ViUR.is, die z.B. eine direktere Ansprache (Du) nutzen als die von Mausbrand.
  5. Nach vielen Iterationen, die vor Allem sehr gut von der Google-Docs Kommentarfunktion unterstützt wurden habe ich den Kollegen den Sprechertext laut vorgelesen worauf hin wir noch weiteren Feinschliff vorgenommen haben.
  6. Dann ging der Sprechertext zu www.0700sprecher.de von denen dann Herr Hassinger mit mir noch die Aussprache von ViUR diskutierte.
  7. Nach einem Tag hatten wir ein super Soundfile im Postkasten und schnürten daraufhin ein Paket: 
    • Keynote Mockup der Visuellen Elemente
    • Google Docs Datei mit Sprechertext und Animationsbeschreibungen
    • den gesprochenen Text (Soundfile)
    • und natürlich dazu die ganzen Bilder / Icons usw. vom ViUR Corporate          
  8. Alex setze dann alles zusammen und renderte über Silvester das erste Preview raus.
  9. Dieses ging dann bei uns durch eine Anmerkungen-/Kontrollschleife, die wir anhand des Google docs Dokuments wieder festhielten.
  10. Gestern renderte dann die Hochfarbe Renderfarm das Video in Full-HD raus und seitdem könnt ihr es euch auf Youtube anschauen.