Permalink

Nokia Asha aus Entwicklersicht

Bild von Nokia Asha 303 und 311

Bei der Nokia Asha Touch Competition 2012 gehörte ich zu den Gewinnern. Ich habe Nokia Rückmeldungen zu ihren neuen Entwicklerwerkzeugen gegeben. Aus der Laudatio:

 “… for his very focused and relevant feedback around core app development. The issues raised showed a great understanding of the product and what areas most need improvement.”

Als Dank habe ich zwei neue Geräte erhalten, ein Asha 303 und ein Asha 311.

Weiterlesen →

Permalink

Codename One – Gitterlayout spiegeln

illustation of swapping cells

Was ist Codename One?

Die Plattform „Codename One“ dient der betriebsystemübergreifenden Entwicklung von Apps für Smartphones. Wichtiger Bestandteil ist eine Bibliothek für Benutzerschnittstellen. Codename One ist ein Nachfolger von LWUIT, welches wiederum Konzepte der Java-Swing-Bibliothek nutzt.

Die verschiedenen Bedienelemente wie Labels, Buttons oder Eingabefelder platziert man in einem Container. Die Positionierung wird nun nicht von den Container selbst übernommen, sondern von von einem assoziierten Objekt der Klasse LayoutManager. Zum Beispiel plaziert das Gridlayout die Elemente in einer Tabelle. Dies ist oft sehr nützlich, weil sich die Platzierung automatisch verschiedenen Displaygrößen anpasst. Weiterlesen →

Permalink

Präsentation zur Rails-Datenbankoptimierung

Layersof an object-relation-mapper: databae,objects, html

Bei der Ruby User Group Hamburg habe ich am 9. August 2012 einen Vortrag gehalten.

Hier sind die dazugehörigen Folien zur Optimierung von Datenbankaufrufen in Ruby-on-Rails

Den Vortrag gibt es jetzt auch bei Slideshare und Speakerdeck:

Ergänzende Links

ActiveRecord ist ein “Object Relational Mapper” (ORM). Über das Für und Wider hat Martin Fowler einen interessanten Artikel verfasst: OrmHate

Permalink

Ruby On Rails Datenbankoptimierung Teil 2

SQL Join zweiter Tabellen

[Zu Teil 1]

Verknüpfungen mit dem SQL-join

Relationale Datenbanken erlauben es, Tabellen miteinander zu verknüpfen. In SQL gibt es für diese Verknüpfung das Schlüsselwort “JOIN”. Eine solche Verknüpfung kann theoretisch sehr frei spezifiziert werden, in der Praxis wird man fast immer an der Gleichheit bestimmter ID-Spalten verknüpfen.

In unserem Beispiel eines Schiffsinformationssystems haben wir eine Tabelle”vessels” mit den Schiffsdaten und eine Tabelle “countries” mit den Daten zu einem Flaggenstaat. Typischerweise wollen wir die Schiffsdaten zusammen mit der Daten des dazugehörigen Flaggenstaates ausgeben. Dazu verknüpfen wir die Tabellen an Hand des Fremdschlüssels “legal_country_id”.

In unserem Beispiel liefert ein SQL-Join eine Tabelle, in der Schiffe gleich mit den dazugehörigen Flaggenstaaten eingetragen sind. Die Daten der Tabelle kann man dann auf einer Übersichtseite darstellen. Es ist nur eine Datenbankabfrage nötig, obwohl man Daten aus zwei Tabellen anzeigt.

Es stellt sich dann allerdings die Frage, was eigentlich mit Schiffen ohne Flaggenstaat passiert?
Weiterlesen →

Permalink

Ruby-on-Rails Datenbankoptimierung Teil 1

Anzahl der Datenbankabfragen optimieren

Eine typische Webanwendung stellt viele Datenbankanfragen, bevor sie die Antwortseite an den Webbrowser ausliefert. Bei jeder dieser Datenbankabfragen muss die Anwendung auf die Antwort warten, dazu kommen noch Prozessumschaltungen, die zusätzlich bremsen. Der Datenbankserver muss jede Anfrage analysieren, und auch die Kommunikation zwischen Datenbank und Anwendung braucht Zeit. Weniger Datenbankanfragen reduzieren die Gesamtbelastung des Systems, das System skaliert besser.
Weiterlesen →

Permalink

Ilias-Funktionen verändern

Autobahnzeichen für Pannenhilfe

Beispiele zur Umgestaltung

Das Lernmanagementsystem Ilias lässt sich mit Skins umgestalten. (Darüber habe ich in einem früheren Blogeintrag geschrieben.) Ein Ilias-Skin kann aber sogar die Funktionalität verändern. Hierfür gebe ich nachfolgend einige Beispiele.

Loginseite

Die Templates zu Login, Logout und zur Nutzungsvereinbarung finden Sie unter Services /init/default In unserem Projekt haben wir folgende Änderungen an der Loginseite durchgeführt:

Weiterlesen →

Permalink

Rails ActiveRecord: count, length oder size?

Die objektorientierte Datenbankschnittstelle “ActiveRecord” bietet gleich drei verschiedene Methoden zum Bestimmen der Anzahl: count(), length() und size().

Alle drei Methoden liefern das gleiche Ergebnis. Was nehmen wir wann? Warum ist es überhaupt wichtig?
Nimmt man die falsche Methode, dann erzeugt unsere Ruby-on-Rails-Anwendung überflüssige Datenbankabfragen oder braucht mehr Speicher als eigentlich nötig. Die Anwendung skaliert dann schlechter. Um mir die Unterschiede zwischen den Methoden leichter zu merken habe ich folgendes Schema erstellt.

Weiterlesen →

Permalink

LwUIT 1.5 erste Erfahrungen

Sun hat mit „Java Mobile Edition“ (JME) die Softwareplattform geschaffen, die weltweit auf Milliarden von Handys funktioniert. Die Plattform ist inzwischen in die Jahre gekommen, und besonders für die Gestaltung der Benutzerschnittstelle bietet sie nur wenig, um die Möglichkeiten heutiger Handys auszunutzen.

Mit LWUIT  wurde ebenfalls von Sun eine Bibliothek für die Gestaltung von Benutzerschnittstellen vorgestellt. LWUIT unterstützt Touchscreens und Animationen. Ein Jahr lang konnte man zwar in dem Blog eines LWUIT-Entwicklers die Weiterentwicklung verfolgen, es gab jedoch keine neuen Versionen. Ich hatte schon befürchtet, dass der neue Eigentümer Oracle das Projekt ganz einschlafen lässt. Das der genannte Blog bei Google liegt und nicht bei Sun bzw. Oracle wertete ich ebenfalls als Indiz, dass das Projekt für die Firma nicht besonders wichtig zu sein scheint.

Anfang August 2011 ist schließlich doch noch die Version 1.5 veröffentlicht worden.

Weiterlesen →

Permalink

Ilias Skins

Ilias skin contains images, style sheets and html-templates

Bedarfsgerechte Anpassung eines webbasierten Lernmanagementsystems

Ilias ist ein sogenanntes Lernmanagementsystem (LMS), d.h. ein System für webbasierte Bildungsangebote. Es ist ein sehr umfassendes System. Neben den Inhalten in Onlinekursen sind auch Kommunikationskanäle wie Foren, Mail und Chat integriert.

Beim Einsatz eines solchen Systems im Kontext einer bestehenden Organisation tritt meistens der Wunsch auf, die Gestaltung der Benutzeroberfläche zu verändern.

 

Gründe hierfür sind beispielsweise:

  1. Differenzierung: Man möchte sein Angebot nicht wie jedes andere aussehen lassen.
  2. Man möchte das System an das eigene Corporate Design anpassen, dazu gehört das Unternehmenslogo und die Farbgestaltung.
  3. Konkrete Bedürfnisse der Anwender: In unserem Projekt wollen wir die Bedienung vereinfachen, in dem wir selten benutzte Optionen weglassen.
  4. Vorschriften, die einzuhalten sind. Das können vorgeschriebene Benennungen sein, oder Ergonomierichtlinien für die Schriftgröße.

Weiterlesen →

Seite 4 von 6« Erste...23456