Zum Inhalt springen

LwUIT 1.5 erste Erfahrungen

2011 Oktober 9
tags: , ,
von meier

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 habe 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 wurden.

weiterlesen…

Ilias Skins

2011 Juli 15
von meier

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, das neben den Inhalten in Onlinekursen auch Kommunikationsmöglichkeiten wie Foren, Mail und Chat integriert.

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

weiterlesen…

Eins plus Zwei

2010 Dezember 30
von meier

Eine Überraschung in Ruby.

Selbst bei so etwas einfachen wie der Addition von Zahlen gibt es manchmal Überraschungen. Doch der Reihe nach. Wenn wir den interaktiven Ruby-Interpreter “irb” starten, können wir in als einfachen Rechner nutzen.

irb> 1+2
=> 3

So weit so praktisch. In der Programmierpraxis liegen Zahlen häufig als String vor, z.B in Textdateien oder als Formularparameter in Webseiten. Probieren wir also folgendes:

> input="1"
> input+2
TypeError: can't convert Fixnum into String

Richtig, wir müssen in Ruby erst explizit den String in einen Integer umwandeln. Dafür gibt es die Methode to_i

> input.to_i+2
=> 3

Ok, damit es etwas besser aussieht, fügen wir ein Leerzeichen ein

> input.to_i +2
=> 1

Huch? Was war das? Ist unsere Variable vielleicht überschrieben worden? Probieren wir es mal direkt:

>"1".to_i+2
=> 3
>"1".to_i +2
=> 1

Bei einen Leerzeichen vor dem Pluszeichen und keinem Leerzeichen nach dem Pluszeichen gibt es ein anderes Ergebnis. Wo kann dieses Ergebnis herkommen? Probieren wir andere Zahlen:

>"2".to_i +2
=> 0

Es wird immer rätselhafter!

> "1".to_i +1
ArgumentError: illegal radix 1

Aha, es gibt eine Spur. Vielleicht schaut wir uns die Dokumentation der Methode “to_i”genauer an:

http://ruby-doc.org/core/classes/String.html#M000787

Die Methode to_i hat demnach einen optionalen Parameter Namens “radix”. Der String kann als Zahl im Hexadecimal-, Decimal, Octal- oder Binärsystem interpretiert werden.

Weiter steht dort momentan: “This method *never* raises an exception.” Also soll die Methode, falls sie auf Grund von unerlaubten Eingaben zu Fehlern führt, immer 0 liefern, und niemals eine Exception erzeugen. Gut, wenn das so exakt dokumentiert ist. Leider ist die Aussage so nicht richtig, denn der ArgumentError ist schließlich auch eine Exception.

Wie hilft uns dies jetzt, das eigenartige Verhalten zu erklären? In Ruby kann man die Klammern auch bei einen Funktionsaufruf weglassen. Offenbar macht unser Rubyinterpreter aus:

"1".to_i +2
"1".to_i( +2 ) => "1".to_i( 2 ) => 1

Der String “1″ wird als Binärzahl interpretiert, und liefert dann die Zahl 1. Eine Addition findet nicht mehr statt. So lässt sich auch erklären:

"2".to_i(+2) = 0

Ruby versucht den String “2″ als Binärzahl zu interpretieren. Das geht nicht, weil Binärzahlen nur aus 0 und 1 bestehen. Ruby liefert dann wie dokumentiert einfach eine 0 zurück.

Insgesamt bleibt dabei ein ungutes Gefühl: Selbst bei einer einfachen Addition kann durch hinzufügen oder weglassen von Leerzeichen aus einen korrekten Programm ein Falsches werden. Leider der Preis, den man in Ruby für den Verzicht auf Klammern zahlen muss. In diesen Fall ermöglicht der optionale Parameter der Methode “to_i” diese Mehrdeutigkeiten. Optionale Klammern in Zusammenspiel mit optionalen Parametern sind leider eine gefährliche Kombination.

Mehrsprachige Webseiten mit Ruby on Rails (3)

2010 Januar 8
von meier

Teil 3 – Qualitätssicherung

Texte gehören zu den Teilen einer Anwendung, die häufig geändert werden. Wenn dann noch externe Übersetzer im Spiel sind, kann es leicht zu fehlenden Übersetzungen kommen

Wir möchten deshalb automatisch testen, dass es zu allen Texten in Sprache A auch Übersetzungen in Sprache B vorhanden sind. Ein solcher Test allein hilft schon sehr, und sollte ja nicht so schwierig sein.
weiterlesen…

Classics reloaded: Das Assert-Makro von C

2009 September 20
von meier

Die erste Version des folgenden Textes stammt noch aus dem Jahr 1996. Er enstand, weil ich bei den damaligen Arbeitgebern beobachtete, dass viele C-Entwickler nicht wussten, was es mit assert() auf sich hat. Hier kommt die Wiederveröffentlichung:

Selbstidentifizierende Fehler

Es gibt in ANSI-C einen Mechanismus, viele Fehler auch ohne Debugger aufzuspüren: Das Assert Macro. Ein Teil des Problems liegt in Deutschland wohl auch im Namen: Assert ist ein Wort, welches im allgemeinen im Englisch an der Schule nicht benutzt wird.

weiterlesen…

Rotierende Reklametafel mit jQuery

2009 August 21
von meier

Im Jahre 1998 habe ich “Meiers Billboard” vorgestellt: Eine virtuelle Anzeigentafel, die Bilder durch Rollen austauscht. Technisch ist es ein Java Applet. Der Ruf von Java im Browser wurde immer schlechter, auch mein Applet war vor allem wegen des Bild des Rahmen verlinkt.

In der Zwischenzeit ist sind die Netze leistungsfähiger, die Rechner schneller geworden und dank CSS gibt es neue Gestaltungsmittel. Bei der Beschäftigung mit dem JavaScript-Framework “jQuery“  stieß ich auf die animate()-Methode und ich fragte mich: lässt sich das Billboard nicht auch mit JavaScript realisieren? weiterlesen…

Google Technology User Group Hamburg

2009 Juni 28
von meier

Erstes Treffen mit den Themen AppEngine, Mapplets und Gadgets.

[29dsnh4p5a] Am 23. Juni fand das erste Treffen der Google User Group Hamburg statt. Sie beschäftigt sich mit der Vielzahl der Technologien jenseits einer einfachen Suche, die Google inzwischen zur Nutzung auch für eigene Projekte anbietet.
Die Firma “eprofessional” stellte an diesem Abend den Raum und netterweise auch die Getränke. weiterlesen…

Switch to our mobile site