Dies ist die Heimat der Java User Group Nürnberg.


Donnerstag, 25. Juni 2009

JSXP (Just Simple eXtensible Pages)

Die existierenden Webframeworks in der Java-Welt bekommen Konkurrenz :-)

Nach einem Besuch der JSFDays haben sich David Tanzer und Oliver Szymanski Gedanken über die Schwachstellen von JSF 2.0 sowie bereits existierender Webframeworks gemacht. Daraus hat sich ein erster Konzeptentwurf und anschließend ein proof-of-concepts ergeben.

Damit war der Grundstein zu JSXP (Just Simple eXtensible Pages) geboren. Es liegt mittlerweile in der Version 0.3 als Open Source vor.

Die wesentlichen Features dieses Webframeworks sind:
  • Typsicherheit / Compile-Time Sicherheit
  • Änderungen im Design mit Nebenwirkungen werden vom Compiler angezeigt/bemängelt
  • strikte Trennung von Design und Implementierung (kein Codieren mehr in XML)
  • Komponenten (eigene Komponenten oder fertige zum Aufbauen komplexer Views)
  • View und Element-Templating
  • View Flows
  • Internationalisierung
  • lesbare URLs (unterstützt Bookmarking, Redirects)
  • Server Side States (unterstützt verschiedene Scopes: Flash, Session, Request, ...)
  • AJAX (inkl. leichtgewichtiger JavaScript-API aber auch beliebige möglich)
  • Resource-Management
  • Applikations-Konfiguration
  • Erweiterbarkeit

Insbesondere können zur Validierung oder für AJAX beliebige Frameworks eingesetzt werden. Hierzu sieht JSXP simple Anbindungsmöglichkeiten vor. JSXP liefert aber auch Default-Implementierungen.

Es gibt auch bereits zwei Projekte, welche mit JSXP realisiert wurden: das AJAX-basiertes Wiki-System namens Wikiron und das Content-Management-System CMSonal.

Mehr zum Thema:

Java User Group am 18.06.2009

Das letzte Treffen der Java User Group hatte "Software-Metriken" zum Thema. Thomas Haug von der MATHEMA Software GmbH war so freundlich, uns seine Erfahrungen in einem Vortrag mitzuteilen.

Die Präsentation findet sich auf der Homepage der JUG. (Download)

Hex and the City: Fehlersuche oder Kaugummipapier, 3,5“-Diskette und ein BIOS

Fehlersuche oder Kaugummipapier, 3,5“-Diskette und ein BIOS


Vor einigen Tagen hatte ein Notebook einen Defekt – es ging nur noch ohne Bild mit Piepsen an. Ohne auf die Details der Fehlersuche einzugehen, höchstwahrscheinlich ist die Grafikkarte defekt, oder aber das BIOS ist mit falschen Daten überschrieben. Die genauen Piepstöne beim Booten in Zusammenhang mit dem BIOS-Hersteller lassen diese beiden Möglichkeiten offen, alle anderen Anzeichen deuten auch darauf hin. Hätte ich zwei weitere Tage bis zur Artikelabgabe, könnte ich mich sicherlich auf eine der beiden Fehlerquellen festlegen, aber letztlich soll dies für uns an dieser Stelle nicht relevant sein.


Warum in zwei Tagen? So lange braucht das externe USB-Diskettenlaufwerk leider noch, bis es geliefert wird. Disketten? Ja, richtig gelesen. 3,5“ um genau zu sein1.


Da bei Notebooks die Grafikkarte OnBoard ist, lässt sie sich zur Fehleranalyse nicht austauschen. Somit habe ich mich dazu entschlossen, dass BIOS zuerst zu restaurieren. Einfach, denken Sie jetzt vielleicht, wenn Sie einer von denen sind, die schon des Häufigeren mit Hardwarebauteilen wie Puzzlestücken gespielt haben und den Unterschied von CMOS2 und BIOS kennen. Aber nicht so einfach, wenn man es mit der aktuellen Evolutionsstufe der Computerhardware zu tun hat. Woran man sehen kann, wozu Evolution gut ist – oder auch nicht.


Früher gab es zum Reset des Basic Input Output System – ja, genau das bedeutet BIOS – manchmal einen Jumper. Leider nicht bei diesem Notebook. Auch keine Batterie die man abklemmen kann (oder irgendwas in dem Sinne, dass Strom liefert, auch wenn der Computer nicht an das eigentliche Stromnetz angeschlossen ist). Somit sind vielleicht falsche Daten im BIOS, aber zurücksetzen geht nicht. Dies hat zur Konsequenz, falls es sich nicht doch um eine defekte Grafikkarte handelt, dass sich eine fehlerhafte Firmware des x86 eingeschlichen hat, die kaum zu entfernen ist. Da das BIOS direkt mit der Hauptplatine verbunden ist, lässt es sich auch nicht als Hardwarekomponente austauschen. Das, was vor dem Start des Betriebssystems dem Computer einen Hauch von Leben schenkt, ist damit erstmal außer Gefecht gesetzt. Bios bedeutet übrigens im griechischen Leben. Leider ist bei diesem Notebook davon nicht mehr viel zu spüren.


Warum jetzt also ein externes USB-Diskettenlaufwerk? Nun, es gibt eine letzte Chance ein BIOS zu retten, ohne das Mainboard auszutauschen. Letzteres ist ja auch nicht mehr so einfach, denn der Versuch ein Mainboard für ein wenige Jahre altes Notebook zu ergattern, muss nicht unbedingt von Erfolg gekrönt sein. Zur Rettung: ein Phoenix-BIOS hat seit 2001 einen speziellen Crisis Recovery Mode, den man während des Startens des Computers mit einem Tastenkombination aktivieren kann. Jetzt wird BIOS-Code von einem sogenannten Boot-Block ausgeführt, der Notfallinstruktionen enthält, die bei BIOS-Flashs nicht überschrieben werden. So weit so gut. Alternativ zur Tastenkombination gibt es auch Versionen, die einen Jumper zum Aktivieren haben, oder – ja, ehrlich – ein bestimmter Dongle3 muss am Parallel-Port stecken.


Wenn der Crisis Recovery Mode aktiviert ist, kann man neue Firmware ins BIOS flashen. Jetzt kommt das Diskettenlaufwerk ins Spiel. Denn der Boot-Block kann naturgemäß nicht besonders viele Instruktionen enthalten, somit musste man sich auf das Notwendigste beschränken und hat keine optionalen Treiber eingebaut. Es wird lediglich unterstützt, von einer Diskette zu booten. Eine bootfähige CD oder ein USB-Stick funktionieren nicht. Hat man sich also vorher eine solche Diskette erstellt (die entsprechende Firmware für das BIOS sollte man im Internet finden), kann man trotz fehlerhaften BIOS über den Boot-Block booten und mit der Diskette das Flashen einleiten. Super.


Vorbereit ist bereits alles, jetzt muss nur noch das Diskettenlaufwerk ankommen. Was kann man dadurch lernen?


Nichts ist einfacher geworden.


Verdient eine Firma auch an Reparaturen, macht sie es den Nutzern leider nicht immer leicht, Fehler selbst zu beheben.


Und ich wette, es ist die Grafikkarte. Murphys Gesetz.



[1] Wikipedia, Basis Input Output System, http://de.wikipedia.org/wiki/Basic_Input_Output_System, 27.05.2009

[2] How to fix a corrupted Phoenix BIOS using the Crisis Recovery Disk, http://crd.y1.cc, 27.05.2009

[3] Diskettenstifthalter selber bauen, http://www.expli.de/anleitung/disketten-stifthalter-selber-bauen-249, 27.05.2009

1So flache, beinahe zweidimensionale Datenspeicher, die aber etwas mehr Dreidimensionalität besitzen als ihr 5,25“* Verwandten. Wer sich nicht erinnern kann: es gibt schöne technische Museen im Umkreis fast aller zivilisierten Gebiete. Manchmal trifft man sie auch als Stifthalter an, siehe [3].

* Die man noch mit einem Locher, oder einer Schere, oder einem patentierten Dings beidseitig nutzbar machen konnte. Nostalgie pur.

2Beim CMOS handelt es sich eigentlich nur um SRAM das die BIOS-Einstellungen speichert. Der Begriff CMOS als Complementary Metal Oxide Semiconductor stammt aus der Elektronik und hat sich beim PC für den speziellen Anwendungsfall (teils fälschlicherweise) eingebürgert.

3Bzw. nimmt man bei der MacGyver-Methode einen normales Parallel-Port Druckerkabel, schneidet es durch und verbindet Pin 2 mit 15, 3 mit 13, 4 mit 11, 5 mit 12 und 6 mit 10. Nachdem ich früher schon Platinen mit Kaugummipapier überbrückt habe können Sie sich denken, wozu ich raten würde*

* Mein Rat ist, bestellen Sie ein neues Notebook

Hex and the City: Kaffeeklatsch... im Weitesten und im Speziellen

Kaffeeklatsch... im Weitesten und im Speziellen


Vor kurzem musste ich lesen, was einen Menschen ausmacht, der sich einen doppelten Espresso bestellt. Im Zeit Magazin [1] wird behauptet, dass man demnach eigentlich todmüde ist und arbeitstechnisch immer verfügbar sein muss. Und das die zwei Espressi vereint als doppelte Ladung ein Ersatz für stärkere Aufputschmittel sind.


Nachdem zumindest die Java-Gemeindemitglieder unter uns Informatikern sich ja stark auf der Kaffeeseite des Lebens befinden – nicht umsonst stammen viele Symbole bei Java aus der Kaffeewelt, wie die berühmte Java-Kaffee-Bohne – denke ich, ist es wert einen Blick auf die Analogien zu werfen. Ist Java ein Espresso? Nachdem das Bild von Informatikern in der Allgemeinheit ja gerne einmal Menschen zeigt, die spät nachts noch vor Bildschirmen hocken1 und wilde Wörter und kryptische Zeichenkombinationen eingeben, passt der Vergleich mit dem Espresso gegen die Müdigkeit. Wenn wir mit Java 2 den doppelten Espresso hatten, was haben wir dann heute?


Java 2 gab es ja nach Java. Das klingt trivial. Aber es geht ja weiter. Java 2 existierte vor Java 5. Mathematisch ohnehin korrekt. Verwirrend wird es erst, wenn man weiß, dass Java 3 oder 4 nie (bislang) existiert hat2. Java 2 heißt Java auch bereits seit der JDK 1.1. Das ging bis zur Version 1.4.x so. Danach erst kam der Begriff Java 5 auf – wer weiß, ob da nicht eine fünffache Version Espresso im Spiel war.


Aber da wo wir eine Zahl dazu bekommen haben, nämlich hinter Java, wurde sie uns im Enterprise-Umfeld, der Java Enterprise Edition, weggenommen. J2EE wurde parallel zu Java 5 zu JEE. Jetzt also ohne Nummer im Namen. Dafür gibt es jetzt die JEE Version 5, wenn man es genau nimmt.


Bei den Enterprise JavaBeans als Teil der JEE ist es simpler. Während EJB 1.0 im Jahre 1998 die Welt erblickte, kam mit J2EE auch EJB 2.0 und später 2.1. Dann aber hört die Vergleichbarkeit der Versionsnummern auch auf. EJB 3 ist Teil von JEE Version 5 und wozu die künftige Version EJB 3.1 gehören wird, steht wohl noch in den Sternen.


Und das waren jetzt nur die Versionsnummern von Basistechnologien, von den Abkürzungen selbst wollen wir mal besser gar nicht sprechen.


Wenn also Java 2 ein doppelter Espresso war – und das war es bei der Vielzahl an Verbesserungen mindestens, dann war die Zeit dafür nicht mehr als ein Espresso. Oder ein Espresso macchiato für Leute, die eine extra VM genutzt haben. Wieviel Koffein erwartet uns denn bei Java 7? Oder wird vielleicht nur mehr Milch hinein gegossen?


Wenn Milch als Extras zählt, dann haben wir eine große Zahl an möglichen Varianten bzgl. der Analogie in der Java-Historie.


Java 5 könnte ein Milchkaffee sein – für Leute die solide Basistechnologien lieben und keinen exotischen Kram. Wer es ein bisschen außergewöhnlicher mag, vielleicht ab und an einmal die J2ME (hier steht die 2 noch immer fest an ihrem Platz) als Mobile Edition nutzt, der nimmt vielleicht einen Café au Lait. Mit Java 5 kamen ja auch die Annotationen dazu, wer diese selbst verwendet hat, bestellt wohl am ehesten eine Latte macchiato3 und geht was die Milch anbelangt dann Richtung Java 6, besonders lecker auch mit Milchschaumhaube. Eine Latte macchiato wird auch schichtweise ausgeliefert – zumindest wenn sie gut gemacht ist. Auch das kennen wir in Java mittlerweile durch die Trennung in Standard, Enterprise und Mobile Edition.


Was ist dann Java 7? Was bleibt denn noch? Von den gängigen Begriffen könnte noch der Cappuccino als Symbol herhalten. Hier fehlt aber einiges an Milch im Vergleich zu einigen der vorher genannten Koffeingetränken. Macht ja nichts, weniger könnte ja auch mehr sein. Zum Beispiel durch Verzicht auf all die Sachen, die man durch ihren deprecated-Status ohnehin nicht nutzen kann. Aber das wäre wohl zu schön um wahr zu sein.


Ich bleibe nach wie vor bei meinem Lieblingsgetränk. Double mocca macchiato. Wieviel Milch und Schaum dabei ist, dass muss jeder selbst enträtseln. Aber es ist (subjektiv betrachtet) die perfekte Zusammenstellung an Effizienz, Effektivität und Genuss mit wertvollen Extras. Natürlich spreche ich von dem Getränk. Alles andere ist kalter Kaffee. Übrigens: Fußnoten sind der Kaffeesatz.







[1] Zeit Magazin, Nr. 18, 23.04.2009, S. 31, „Coffee to show“, Tillmann Prüfer



1 Unter Umständen ist es auch Tag, aber die Jalousien sind geschlossen. Licht bremst ja bekanntlich.

2 Vielleicht eine Hommage an die Leisure Suite Larry Spiele ursprünglich von Sierra On-Line (später Codemaster). Al Lowe, der Erschaffer dieser Adventure-Spiel-Reihe, hatte wohl zu früh versichert, dass nach Teil 3 kein vierter herauskommt. Somit hieß der Nachfolger direkt Leisure Suit Larry 5. Von Teil 4, auch als Leisure Suit Larry – The Missing Floppies bekannt, war niemals etwas gesehen. *

* Selbst Larry, der Hauptprotagonist des Spiel, kann sich in den Nachfolgeteilen nicht erinnern, was ihn im vierten Teil passiert sein mag. Das mag manchmal auch auf Entwickler zutreffen – hauptsächlich wenn man bei der Frage nach dem Grund der Implementierung hört: „Das ist historisch gewachsen“.

3 Oder einen Caffé e Latte in der fälschlichen Annahme, das dies dasselbe ist. Hier sind zwei Espressi statt nur einem drin und der tolle Milchschaum fehlt. Zumindest wenn der Verkäufer Ahnung hat, was er da zusammen brüht. Und ja, es heisst eine Latte, denn diese gefleckte Milch ist im italienischen weiblich. Aber ich sag es auch immer so, wie es gerade über die Zunge kommt.

Mittwoch, 10. Juni 2009

RememberMeal

RememberMeal für das Apple iPhone:

Mit RememberMeal erinnert man sich an jedes Essen und das lästige Kalorienzählen hat ein Ende. Bei RememberMeal macht man ein schnelles Photo von jedem Essen/Getränk, dass man zu sich nimmt und legt mit 2 Klicks fest, in welche Kategorie das Essen fällt. RememberMeal schätzt die Kalorienzahl und gibt Warnungen an, wenn man über bzw. unter eine konfigurierbare Kalorienzahl an einem Tag kommt. Das integrierte Journal gibt einem Auskunft über die Mahlzeiten und Getränke der letzten Wochen. Dabei kann man festlegen, wie lange RememberMeal die Informationen speichert. Somit hilft es auf unterhaltsame und lustige Art Diäten zu kontrollieren, beim Zu- oder Abnehmen zu helfen und lehrt den Benutzer Selbstkontrolle. Denn die Slideshow beim Starten, in der die Mahlzeiten des Tages gezeigt werden, hilft beim Entscheiden, ob man mehr oder weniger zu sich nehmen will. RememberMeal - erinnern Sie sich an alle Mahlzeiten auf einfache spaßige Weise.


---


With RememberMeal you will remember any drinks and meals in an easy way. The annoying calorie counting is over. In RememberMeal you make a quick photo of each food / drink that one takes to himself and set out with 2 clicks, in which category the food falls. RememberMeal estimates the number of calories and provides warnings if you are above or below a configurable number of calories in a day. The integrated journal gives information about the meals and beverages in recent weeks. You can specify how long RememberMeal stores the information. Thus it helps in an entertaining and funny way to control diets, adding or losing weight and teaches self-control. The slideshow shown at start of the application, in which the meals of the day are shown, helps to decide whether you really want more or less food at this day. RememberMeal - remember all the meals in a simple funny way.