In diesem Kalender der SBB sind zwei Fehler versteckt:
Wer findet sie? ;)



In diesem Kalender der SBB sind zwei Fehler versteckt:
Wer findet sie? ;)
@media ist eine zweitägige Web-Konferenz in London, die sich zeitgemäßen Themen widmet und bei der man die Chance hat, direkt mit Entwicklern von Yahoo, Mozilla oder Opera zu reden. Es ist immer ganz gut, einen direkten Draht zu haben.
Beeindruckt hat mich die Professionalität und Innovationsfähigkeit der BBC, die in einer Case Study aus dem Nähkästchen geplaudert hat. Interessant zu sehen, dass die von Yahoo! entwickelten Regeln zu Exceptional Performace inzwischen auch hier angekommen sind. Da ich die eher konservative deutsche öffentlich-rechtliche Medienlandschaft kenne, hat es mich überrascht, wie offen die BBC ist. Da gibt es eine Public Beta, bevor das neue Redesign der breiten Masse offeriert wird. Da gibt es eine dokumentierte API, mit der Dritte Material der BBC wiederverwenden können. Und BBC ist eine der Vorreiterinnen in Sachen Barrierefreiheit und Geräteunabhängigkeit (= mobile Nutzung) im Königreich.
In Design-Vorträgen liess sich Andy Clarke von Comic-Panels inspirieren, um Gewichtung und Dynamik in Websites zu bringen. Dan Rubin zeigte hingegen sehr detailverliebte Designs, bei der ich interdisziplinären Kommunikationsbedarf sehe. Zum einen sind zum Beispiel absichtlich hinzugefügte Störungen auf einer monochromen Fläche nicht sofort erkennbar. Dan will damit mehr Haptik, eine Textur erreichen. Wenn nun aber ein Entwickler diese Photoshop-Datei ohne Erklärungen bekommt, besteht eine grosse Chance, dass er die Störungen nicht wahrnimmt oder sie als zufällige Artefakte einstuft und ignoriert.
Zum anderen arbeitet Dan mit wiederverwendbaren Filtern, um in Photoshop sehr einfach Effekte wie runde Ecken, Gradienten oder Schatten hinzuzufügen. Dieser universelle, wiederverwendbare Ansatz lässt sich leider nicht zwangsläufig auf das Frontend übertragen. Ein wiederverwendbarer Effekt an vielen Stellen in Photoshop kann nicht-wiederverwendbare, individuelle und somit kostenintensive Arbeit an vielen Stellen im Frontend bewirken. Wünschenswert wäre aber, Effekte einzusetzen, die sich in beiden Medien einfach, performant und wiederverwertbar realisieren lassen.
Zukunftsweisend war wieder einmal die Keynote von Yahoo!-Entwickler Nate Koechley, der professionelles Frontend-Engineering thematisierte. HTML und seine Freunde waren jahrelang unterbewertet. Im Informatikstudium wird dieser Bereich oft nur am Rande behandelt, schliesslich sei es nur eine Auszeichnungssprache, keine Programmiersprache. Das ist falsch, denn HTML ist eine deklarative Programmiersprache, und im Zusammenspiel mit Stylesheets, JavaScript im Browser und Techniken wie PHP auf dem Server entwickeln wir damit Software im Browser. Douglas Crockford nennt es „die feindlichste Entwicklungsumgebung, die man sich vorstellen kann“. Es gibt eine Reihe von wichtigen Wissensgebieten, die auf verschiedene Arten angewendet werden müssen auf drei Betriebssystemen in einem halben Dutzend Browsern in zwei verschiedenen Darstellungsoptionen. Und damit sind noch nicht einmal Randgebiete wie Internationalisierung, Performance oder Barrierefreiheit enthalten. Wenn Sie also zukünftig wieder einmal kleine Rauchwölkchen aus den Köpfen Ihrer Entwickler aufsteigen sehen, wissen Sie warum.
Auch die Barrierefreiheit kam nicht zu kurz, allein schon wegen der ausgewiesenen Experten im Publikum, mit denen sich stets interessante Gesprächsthemen fanden. In einem Panel ging es dabei um die Kommunikation von Best Practices. Hängengeblieben ist davon der Satz: „Sei nicht der Mensch mit den Problemen, sei der mit den Lösungen.“ Zugegeben, es ist enorm schwierig, sich leidenschaftlich für ein Thema zu engagieren, dabei aber die Fähigkeit zu besitzen, pragmatisch und diplomatisch bleiben zu können. Andererseits denke ich aber, dass sich Lösungen finden lassen, wenn beide Seiten Argumenten zugänglich sind, ihre eigene Position zu hinterfragen und zu Kompromissen bereit sind.
Darüberhinaus betonten die Podiumsteilnehmer erneut, dass Barrierefreiheit nur dann langfristig und nachhaltig effizient sein kann, wenn die Massnahmen auf Vorstandsebene (PDF) unterstützt werden, wenn es eine Accessibility Policy in einem Unternehmen gibt, und wenn kluge Unternehmen einsehen, dass mit Zielgruppenmaximierung bedeutende Umsätze zu erzielen sind. Keine Angst, Menschen mit Behinderungen möchten als Markt wahrgenommen werden!
Ein bisschen ausführlicher und auf englisch habe ich übrigens in meinem eigenen Blog über @media berichtet.
Heute ist der Mozilla Download Day! Ab den Abendstunden steht Firefox 3 zum Download bereit. Mozilla hat sich vorgenommen, mit den meisten Downloads in 24 Stunden ins Guinness Buch der Rekorde zu kommen. Das ist selbstverständlich nur ein Marketing-Trick, um der Nachricht des neuen Releases mehr Wert zu verleihen, aber man bekommt einen exzellenten Browser dafür, und irgendwie cool ist es schon, an dem Weltrekord-Versuch teilzunehmen.
Firefox 3 ist schneller und es gibt nun auch endlich die Firebug-Extension dafür, ohne die Entwickler nicht leben können. Aber für mich ist das herausragende Feature die vollständige Unterstützung des W3C-Standards für Accessible Rich Internet Applications. Das bedeutet so viel wie barrierefreies Web 2.0. Das ganze Bling-bling der heutigen Web-Applikationen lässt sich mit etwas Sorgfalt zugänglich machen für Screenreader. Elemente bekommen mehr Semantik, ihre Zustände können definiert werden, Beziehungen zwischen Elementen werden hergestellt, und für Teile der Seite, die dynamische Inhalte haben, gibt es nun Methoden, Menschen zugänglich darüber zu informieren, wenn sich Inhalte ändern.
Zudem bedeutet der Release auch, dass wir den Browser bei zukünftigen Projekten im Sinne des Graded Browser Supports unterstützen werden. Für Firefox 2 gibt es von Mozilla noch ein halbes Jahr Support, danach können wir ihn auch ignorieren. Graded Browser Support ist ein pragmatischer Ansatz, Websites bei maximaler Kosteneffizienz für die größtmögliche Reichweite zu testen. In der Praxis bedeutet das Internet Explorer 6 und 7, Firefox 2.x und 3.x, Opera 9.x und Safari 3.x. Da sich die Browser selbständig aktualisieren, steht das „x“ immer für die neueste nicht-beta Version. Also Firefox 2.0.0.14, nicht Firefox 2.0.0.1 bis 2.0.0.14.
In der Zwischenzeit können wir uns noch den ganzen Tag auf Firefox 3 freuen, und heute Abend gibt es einige Parties. Leider nicht so viele in Deutschland und der Schweiz, aber unsere Münchner Kollegen können heute Abend bei Mozilla feiern gehen!
Es ist aus... ja... die Schweiz hat ihr zweites EM-Gruppenspiel gegen die Türkei verloren...!! Ich sitze hier in Antwerpen an der SpringOne 2008 und habe mit der Schweizer Nati mitgefiebert... in einem irischen Pup... mit belgischem Bier und gefüllt mit türkischen Fans... vergebens... na ja... das musste ich einfach kurz loswerden, bevor es zum eigentlich Thema geht...
Ja... wie bereits gesagt... ich bin momentan in Antwerpen, Belgien. Hier findet zum dritten Mal die SpringOne in den Räumlichkeiten der Metropolis statt. Und das - vermutlich - zum letzten Mal, wie ich vernommen habe... was nicht allzu schlecht ist, denn Antwerpen ist rein reisetechnisch wirklich nicht gerade gut zu erreichen... Locations gäbe es sicherlich optimalere... Amsterdam ist im Gespräch... aber das sind nur Gerüchte... :-)
Der heutige Tag stand bei mir hauptsächlich unter dem Thema OSGi. Eigentlich kaum zu glauben, wie lange es dauert, bis eine Technologie sich am Markt beginnt durchzusetzen. Insbesondere dann, wenn keine wirklich grosse Marketing-Maschinerie a la Microsoft vorhanden ist und es sich erst noch um eine Spezifikation handelt. Aber - und das sage ich immer wieder - gute Technologie setzt sich auf lange Sicht hin durch.
Was eigentlich vor beinahe 10 Jahren!! in einer Art Allianz behonnen hat, ist erst im Jahre 2008 in der Web-Applikationsentwicklung angekommen. Schade eigentlich, denn OSGi hilft bei einigen grundlegenden Problemen wie Versionierung von Java-Typen enorm. Nun denn, mit der SpringSource Application Plattform steht nun erstmals eine serverseitige OSGi-Infrastruktur zur Verfügung, um Webapplikationen zu entwickeln und als Bundles zu deployen.
OSGi zu Fuss ist hart. Das API ist sehr low-level und erinnert mich irgendwie an JDBC und andere low-level API's. Spring-sei-Dank oder Dank Spring Dynamic Modules, welches Costin Leau von SpringSource in einem eigenständigen Vortrag beleuchtet hat, ist es mir als Entwickler jedoch sehr einfach möglich, OSGi-Bundles und Services zu entwicklen, ohne dass ich mich um diese technologischen Details zu kümmern brauche.
Ok... mit OSGi löse ich keine bislang ungelösten Business-Probleme... aber es löst mir einige engineering-technische Probleme, welches die Wartung (was in der Regel immerhin der grössere Teil der Gesamt-Projektkosten ausmacht) eines Softwaresystems erheblich erleichtert.
2008 wird nicht das Jahr der Schweizer Nati... aber das Jahr von OSGi... ganz sicher... :-)
Viele Webapplikationen, die wir für unsere Kunden entwicklen, benötigen früher oder später eine Security-Infrastruktur, welche bestimmte Bereiche einer Website als sogenannte Closed User Groups abschirmen. Für diese Bereiche muss sich der Benutzer am System anmelden.
In diesem Zusammenhang werden in der Regel dann weitere Anforderungen kommen wie:
- Passwörter verschlüsselt ablegen
- Integration von einem bestehenden LDAP-System
- Remember-Me-Funktionalität
- Capcha-Support
- etc.
Mit Spring Security - ehemals Acegi Security - steht ein Framework zur Verfügung, welches zum einen sehr mächtig ist und zum anderen einfach und "nicht-invasiv" für die zu schützende Anwendung ist.
Ich habe am letzten JUGS-Event unserer Spring Special Interestgroup einen Vortrag zu diesem Thema gehalten. Der Vortrag war mit ca. 60 Personen recht gut besucht und es ergaben sich im Anschluss interessante Gespräche.
Persönlich finde ich das Framework sehr gut. Es bietet einem eigentlich alles und dort wo eine spezielle Implementierung notwendig ist, lässt es sich hervorragend erweitern.
Wen ich jetzt "gluschtig" darauf gemacht habe, kann sich hier den Vortrag herunterladen und das Beispiel Schritt für Schritt durchspielen.
Sicher wird sich der eine oder andere fragen, was mit Spling denn nun schon wieder gemeint ist... Nun, die Auflösung des Rätels ist relativ einfach:
Spring + Sling = Spling
Wir bei namics haben in der Vergangenheit viel Erfahrung in Projekten mit Day Communiqué (CQ) gesammelt. Nicht zuletzt in grossen komplexen Projekten stand das Projektteam oft vor der Entscheidung, auf welchem Weg bestehende oder parallel neu zu entwickelnde Applikationen generell in CQ einzubinden sind. Egal welcher Weg / Ansatz auch gewählt wurde. Eines war sicher... steinig und mit vielen Fallstricken sowie manueller Handarbeit würde er werden.
Seit Anfang dieses Jahres sind wir Partner von SpringSource, der Gründerfirma des bekannten und gleichnamigen Frameworks. Mit Spring arbeiten wir bei namics schon fünf Jahre und haben viele Projekte damit umgesetzt. Da liegt es natürlich auf der Hand zu schauen, ob es künftig bessere und einfachere Ansätze der Integration gibt.
Also haben wir uns letzten Donnerstag zusammengesetzt. Wir heisst in diesem Fall Alex und Michael, beide von Day Software AG, sowie Jan und ich. Und wie es sich gehört, haben wir auch kräftig vom Witheboard im Sitzungszimmer von Day gebrauch gemacht. Visuelles Resultat war:
In Worten gafasst sind wir zum Schluss gekommen, dass insbesondere mit CQ in der neuen Version 5 Integrationen - egal ob Content oder Applikationen - um einiges einfacher zu realisieren sind. Weshalb?
Im Wesentlichen sind es zwei ausschlaggebende Punkte, welche dem Entwickler das Leben künftig einfacher machen wird (oder besser gesagt, wir hoffen es... :-)). Die magischen Technologien dazu heissen OSGi und RESTful HTTP-API, welche je nach Integrationsart zum Zuge kommen.
Das führt uns gleich auch hin zu den Integrationsarten, welche wir künftig sehen. Nach eingehenden Diskussionen stehen im wesentlichen zwei Arten im Vordergrund.
Spring Anwendung integriert in einer Sling-Anwendung (z.B. CQ 5)
CQ 5 wird standardmässig mit einer OSGi-fähigen Runtime (Apache Felix) ausgeliefert. Das bedeutet, künftige Anwendungen können beispielsweise mit Spring Dynamic Modules als OSGi-Bundle realisiert und in die CQ 5 Runtime deployed werden. Damit ist es problemlos möglich, beispielweise Anwendungen oder Anwendungsteile, welche Legacy-Daten integrieren müssen, in ein CQ-Deployment aufzunehmen.
Content aus CQ 5 in einer (Spring) Applikation integrieren
Dieser Fall tritt insbesondere dann auf, wenn Content, der redaktionell im Content Management System verwaltet wird, in einer anderen (Spring) Applikation verwendet werden soll. Hier bietet CQ 5 neu standardmässige Defaulthandler, welche auf einen RESTful HTTP-Request mit unterschiedlichen Formaten antworten können. Bislang implementiert ist ein JSON Handler, der also im JSON-Format antwortet. XML wird künftig auch unterstützt werden. Was wir also bei namics bislang immer selbst implementiert haben, wird ab der Version 5 standardmässig unterstützt.
Eindruck
Zum Abschluss vielleicht noch ein kurzes Statement zum ersten Eindruck von CQ 5 von mir. Da ich mich bislang bei namics eigentlich mehr mit klassischer Applikationsentwicklung mit Spring und weniger mit CQ beschäftigt habe, stütze ich mein Eindruck an dieser Stelle auch eher auf die Technologie ab. Ich bin überzeugt, dass Day Software AG mit der neuen Version von CQ einen grossen Schritt in die richtige Richtung unternommen hat. Was mit der Standardisierung vom Content-Repository (JSR 170) begonnen hat, wird jetzt konsequent bis hin in die Runtime von CQ weitergeführt. Die Entscheidung, CQ 5 komplett als OSGi-Runtime auszuliefern, ist meiner Meinung nach richtig und für Integratoren wie wir es sind, sehr hilfreich.
Wie sich die neue Version dann auch in Projekten anfühlt und bewährt, werden wir sicher bald sehen... :-)
Während meine Kollegin Luzia über Barrierefreiheit als Managementaufgabe diskutierte, sprach ich gestern auf der Fachtagung der Aktion Mensch über Web 2.0 und die Zugänglichkeit (oder Unzugänglichkeit) der Software im Browser. Mit auf dem Podium waren Anna Courtpozanis, blinde Expertin von der Heidelberger Organisation Web for All, Dr. Carlos Velasco, Leiter des BIKA Web Compliance Centers am Fraunhofer Institut für angewandte Informationstechnik (FIT) sowie Marco Zehe, Qualitätsbeauftragter für Barrierefreiheit bei Mozilla.
Eine sehr kompetente Runde. In den Einführungspräsentationen ging es dann um Hindernisse, Vorzüge und Wünsche bezüglich Web 2.0-Anwendungen aus der Sicht einer blinden Nutzerin; um die nach langen Jahren endlich schnell der Finalisierung zustrebenden Web Content Accessibility Guidelines 2.0 (WCAG) und ihre Herausforderungen für ein teil-automatisiertes Testing; wie sich die Firmenkultur von Innovationsträgern wie Google oder Yahoo von weniger progressiven Unternehmen unterscheidet und welche Auswirkungen sie auf Web 2.0-Anwendungen hat; sowie immer wieder um das barrierefreie Web 2.0. Einen guten Schritt in diese Richtung bezeichnet die Richtlinie für Accessible Rich Internet Applications (ARIA), die bereits jetzt oder in naher Zukunft von allen vier großen Browserherstellern, den Marktführern zum Vorlesen von Bildschirminhalten (Screenreadern) und wichtigen JavaScript Frameworks unterstützt wird.
Konsens am Ende der Diskussion war darum, dass Entwickler jetzt bedingungslos ARIA einsetzen sollten. Es gibt keinen Grund, damit zu warten. Die Lernkurve ist niedrig, aber es kennen noch zu wenige. Von verschiedenen Seiten, beispielsweise auf Universitätsebene und auch von Seiten des World Wide Web Consortiums (W3C), muss noch viel unternommen werden, um Entwickler zu erreichen und zeitgemäße Best Practices zu lehren.
Wir waren uns auch einig, dass sich in den nächsten fünf Jahren massiv viel in Richtung Barrierefreiheit tun wird. Das Interesse bei Unternehmen ist vorhanden, denn niemand möchte seine Mitarbeiterinnen oder Kunden wirklich diskriminieren. Damit steigt auch der Druck von Seiten der Mitbewerber. Gleichzeitig wird das Thema von der Politik vorangetrieben, wie die kürzliche Ratifizierung der UN Konvention über die Rechte von Menschen mit Behinderungen zeigt oder Vertreter der Europäischen Kommission in Publikationen wie The Accessibility Imperative offen ansprechen.
Nicht so technisch zugehen wird es übrigens auf der namics-Fachtagung zu Barrierefreiheit am 3. Juni in Frankfurt, die sich mehr an interessierte Einsteigerinnen wendet. Der Eintritt ist frei, ebenso noch einige Plätze.
Das W3C beschreitet neue Wege: Im meines Wissens ersten online Training des W3C vermitteln die Leiter der Mobile Web Initiative eine Einführung in Mobile Web Best Practices.
Der (kostenlose) Kurs beginnt am 18. Mai 2008 und umfasst vier Trainingseinheiten. Jede kann man sich innerhalb einer Woche ansehen, wann es einem passt — keine nächtlichen Unterrichtsstunden, weil live in einer anderen Zeitzone gelehrt wird. Bis zur nächsten Stunde muss man seine Hausaufgaben erledigen und einreichen. Darum ist die Zahl der Teilnehmenden auch auf 100 beschränkt. Innerhalb von nur drei Tagen war fast die Hälfte der Plätze ausgebucht, also dann mal schnell anmelden! ;)
Wow. South by Southwest Interactive (SXSW) ist vorüber. Das ist eine riesige Internet-Konferenz in Austin / Texas. Vier Tage, 180 Panels und Core Conversations. So bleibt es nicht aus, dass man sich selbst nach einer vorhergehenden Filterung immer noch zwischen 2-6 interessanten Vorträgen entscheiden musste. Andererseits haben so alle Teilnehmenden ihr ganz persönliches Erlebnis von dieser Konferenz. Meine wichtigsten Erkenntnisse daraus möchte hier teilen.
Der erste Tag begann für mich mit einem Vortrag von Jonathan Boutelle (Slideshare) über Dinge, die er über Flash und Rich Internet Applications (RIA) gelernt hat. Für ihn waren Popups stets ein Zeichen von schlechter Prozessgestaltung: Popups ersparen dem Designer, sich Gedanken zu machen, wohin Menschen nach dem Ausfüllen eines Formulars gelangen. Popups jedoch stellen einen Modus dar, die Benutzungsweise der Website verändert sich radikal. Und wir alle wissen: Modi sind böse. Lightboxes sind nichts anderes als Popups 2.0, also in Wahrheit ebenfalls oft überflüssig. Wir sollten also lieber das Problem an der Wurzel packen und uns Gedanken über die Prozesse machen. Slideshare beginnt zum Beispiel unmittelbar, Präsentationen hochzuladen, sobald ein User eine Datei ausgewählt hat. Danach wird der Nutzer durch den Prozess geführt, verschlagwortet seine Präsentation, wartet, bis sie in Flash umgewandelt ist, fertig.
Nebenbei bemerkt kann naives AJAX den Server töten. Slideshare hatte eine im Prinzip statische Startseite mit zwei personalisierbaren Bereichen. Um Server-Performance zu sparen, hatten sie die Startseite gecacht und die dynamischen Bereiche per AJAX nachgeladen. Neben der sichtbaren Verzögerung für den User hatte das aber den Nebeneffekt, dass der Server statt einer Anfrage immer mindestens drei parallele beantworten mussten. Nicht gut. Und selbst wenn man eine tolle, vielleicht sogar ganz sinnvolle Lightbox geschaffen hat, brauchen User URLs. Wenn jemand fragt, wo er seine Nutzerdaten ändern kann, möchte man nicht wirklich sagen: gehe auf diese Seite, drücke auf diesen Link, wechsele auf den Reiter, und dann erst ist da das Formular, das du brauchst.
Ziemlich genial waren auch Richard Rutter und James Box von Clearleft aus Brighton mit ihrem Vortrag über Wireframing 2.0. Kurzum können zweidimensionale Wireframes kaum Web 2.0-Anwendungen abbilden. Es fehlt einfach die vierte Dimension und die Aktion. Darum setzen sie sich zunächst interdisziplinär im Team zusammen, entwickeln Ideen, machen Skizzen auf Papier, nutzen Post-its. Doch dann bauen die Informationsarchitekten einen Clickdummy mit simplem HTML, ein wenig CSS und Effekten von jQuery. Dafür ist selbst Dreamweaver vertretbar. Dieser nicht-funktionale Prototyp braucht ein paar Tage, aber man kann sofort Prozessmängel erkennen, ihn für frühe Usertests nutzen, und der Kunde sieht etwas. „Etwas auszuprobieren ist oft billiger als langwierige Meetings, die beschließen, etwas auszuprobieren.“ Großartig war es, dies in der Praxis zu sehen mit der Fake-Community „ElfCartel“. Ich liebe das Profilfoto von „Amidactio“ aka. „adactio“ aka. Clearleft’s Chef Jeremy Keith! Bei Clearleft wird wirklich keine Gelegenheit ausgelassen, sich übereinander lustig zu machen, und der CEO bildet da keine Ausnahme. Die verwendeten JavaScript-Bibliotheken für Design Patterns kann man übrigens bei PolyPage herunterladen.
Sich öfters zusammensetzen und reden sollten auch die Browserhersteller und -entwickler. Bei SXSW taten das Chris Wilson (Microsoft Internet Explorer Team), Charles McCathieNevile (Opera) und Brendan Eich (Mozilla). Nur Safari fehlte. Das alles sind motivierte Menschen mit viel Humor, die das Beste wollen. Allerdings gibt es bei der Implementierung von neuen Features und Bugfixes Prioritäten, und es liegt an jedem von uns, diese zu artikulieren und Gehör zu bekommen. Nun, Microsoft hat in der IE8 Beta, die es seit einer Woche gibt, Support für Accessible Rich Internet Applications (ARIA) eingebaut. Jubel! Aaaaber, wie Anne van Kesteren (Opera) dazu bemerkt, Microsoft hat dazu gleich noch ein paar neue DOM-Attribute spendiert, die inkompatibel mit anderen Browsern sind. Charles McCathieNevile bestätigte, dass diese Änderungen des IE-Teams sinnvoll waren, weil sein Team bei der Implementierung der W3C Spezifikationen auf ähnliche Probleme gestoßen ist. Aber statt einem proprietären Alleingang – selbst in einer Beta-Version, die sich von dem finalen Produkt unterscheiden kann – wäre es besser gewesen, diese Probleme mit den anderen Browserherstellern gemeinsam zu lösen. Es ist ja nicht so, dass man keinen Kontakt untereinander hätte (aus dem Publikum kam der Vorschlag, dass Chris und Charles jetzt ja ihre Visitenkarten austauschen könnten. ;)
Ansonsten drehte sich auch dieses Panel um den mobilen Zugang: für mehr als eine Milliarde Menschen auf der Welt ist das Mobiltelefon die Alternative zum Desktop-Computer. Aber auch in den westlichen Ländern gewinnt der „dritte Screen“ an Bedeutung. Wie Charles es ausdrückte: „In den USA bedeutet mobiler Zugang, im Hummer herumzufahren. Aber in Japan bedeutet das, verschlafen an einer Handschlaufe in einer überfüllten Bahn zu stehen“. Wir reden nicht nur von den 3 Millionen iPhones. Allein im letzten Jahr wurde Opera Mini 40 Millionen mal ausgeliefert. Und eine Entwicklergruppe in Kopenhagen arbeitet an einer mobilen Version von Mozilla!
Als Randbemerkung seien zwei Fragen aus dem Publikum erwähnt: Für multiplen Fileupload und Statusdialoge über den Upload-Stand gibt es eine eigene W3C-Arbeitsgruppe, die eng mit der XMLHttpRequest-Gruppe zusammenarbeitet. Und an nativem Browsersupport für Video- und Audio-Inhalte arbeitet die HTML5-Arbeitsgruppe.
Bis das iPhone auftauchte, war mobiler Zugang in Europa ja immer ein wenig belächelt. Für einige unserer Kunden ist die globale Situation allerdings interessanter: Die Zahl der Menschen mit Telefonanschluss pro tausend Einwohner stieg von 2001-2005 in Ländern mit niedrigem Einkommen von 31 auf 113 (+265%), in Ländern mit mittlerem Einkommen von 260 auf 587 (+126%) und in Ländern mit hohem Einkommen von 1171 auf 1337 (+14%). Internet-Nutzung stieg in Ländern mit niedrigem Einkommen von 5 auf 44 (+780%), in solchen mit mittlerem Einkommen von 35 auf 114 (+226%) und in solchem mit hohem von 378 auf 523 (+38%). Das jetzt mal schnell mit den Bevölkerungszahlen von Indien, China und den anderen Ländern multipliziert… wo also können Global Player neue Märkte erschließen? (Quelle: World Bank Group, World Development Indicators 2007)
Und wo soll das alles hinführen? Programme wie eInclusion 2010 der Europäischen Kommission, das „One Laptop per Child“-Programm oder 50×15 werden dazu beitragen, die digitale Lücke zu schließen und Chancengleichheit zu bringen. Aber auch die Funktion des Mobiltelefons wird sich ändern. In Italien sind heute schon Video-Anrufe gängig, und in Kenya werden alte Telefone an Straßenständen für $12 zusammengelötet oder repariert. In ganz Afrika verwenden Menschen „Flash Calls“: einmal klingeln heißt „ja“, zweimal „nein“. Daraufhin wurde in Südafrika ein werbefinanzierter SMS-Service eingerichtet für „ruf mich zurück“, der heute 20 Millionen SMS täglich versendet. In Indien werden Videos via Bluetooth vertrieben (in Kuba auf USB-Sticks). Überall auf der Welt wollen Menschen kostenlose Features haben. Und die sollen wirklich einfach zu benutzen sein.
In einigen Städten werden bereits Location Based Services angeboten, per GPS oder Triangulation. Telefone werden mit Bewegungssensoren ausgestattet: der Anruf stört? Telefon einfach mit dem Screen nach unten legen. Telefone werden eine Menge von Wii lernen. Mit Handheld Stylesheets und Inhalten, die man unterwegs wirklich braucht, wird es dann schön hübsch und schlank. Durch Opera Mini oder Safari als Entwicklungsplattformen wird die Software-Entwicklung dramatisch günstiger, da nicht mehr auf gut 200 Plattformen getestet werden muss. Wir haben am iPhone gesehen, dass Mobiltelefone und Handheld Computer weiter verschmelzen, der Trend geht von Telefonnummern zu einer Web Architektur.
Und wenn wir dann alle schön ubiquitär erreichbar und global sind, braucht’s noch ein wenig Internationalisierung (internationalization – i18n). Jon Wiley erklärte Google’s Ansatz, Dinge universal zugänglich zu machen. Denn i18n ist weit mehr als nur Übersetzung. Inhalte müssen lokale Gesetze einhalten, das Marketing muss auf das Land abgestimmt, kulturell angemessen sein, und dann gibt es da noch technische Dinge wie Tastatur-Layouts, Währungs- und Datumsformate oder Besonderheiten für Schrift, die von rechts nach links oder in beide Richtungen geht. Zahlen zum Beispiel werden in arabisch und hebräisch von links nach rechts geschrieben. Trickreich, nicht wahr?
Auch meine eigene Core Conversation zusammen mit Gez Lemon zum Thema „Accessible Rich Internet Applications“ lief prima. Es gelang uns, einen Dialog mit dem Publikum anzustoßen. Und da die Autorin der W3C ARIA Working Drafts, die Programmiererin für ARIA in Firefox und Dojo sowie der Group Lead for Education and Outreach der Web Accessibility Initiative sich im Publikum befanden, war die Diskussion ein Kinderspiel. Dank des ARIA-Supports in Firefox 1.5+, Opera 9.5 und Internet Explorer 8.0 steht einem Einsatz in Projekten nichts mehr im Wege! Mehr dazu erzähle ich aber auch auf der Fachtagung „Einfach für Alle“ im Mai in Gelsenkirchen und bei der namics-Fachtagung zur Barrierefreiheit in Frankfurt voraussichtlich im Juni.
Abends hing ich dann mit Freunden vom Web Standards Project (WaSP) oder Barrierefreiheits-Experten ab (darunter die besagten Ladies des W3C), was dem ganzen noch den sozialen Glanz verlieh. Was ich sonst noch gelernt habe? Die Abendgarderobe in Austin ist etwas seltsam. Junge Frauen liefen in Röcken herum, die hier als Gürtel gelten würden. Mädels, Britney Spears ist kein gutes Rollenmodell, ehrlich! – Klimaanlagen zu hassen. Ich habe sieben Tage nur gefroren. – Leute zu lieben, die ihren Job richtig gut machen. Die Durchsagen in der U-Bahn von Washington ließen auf einen ausgeglichenen, eloquenten Menschen schließen (oder einfach auf gute Fassade), zurück in der Frankfurter S-Bahn dann ein mürrischer, monotoner Kerl, der seinen Job hasst. Der Tontechniker in Austin, den alle Vortragenden mit Vornamen kannten – Leute bemerken den Unterschied!
Bei blog.namics.com nutzt die Mehrheit der IE-Surfer bereits seit Oktober 2007 die Version 7. Die bereits vor 11 Monaten gezeigte Statistik einer weit weniger technikaffinen Website hat diesen Meilenstein jetzt auch hinter sich: Der IE7 hat knapp die Mehrheit errungen (im Vergleich dazu noch die Januar-Zahlen):

Jürg vermutete aufgrund der Zahlen im letzten Jahr, dass nur wenige Windows-Nutzer automatisch Updates aktiviert haben - mutmasslich haben wenige an dieser Praxis etwas geändert. Vielmehr sind vermutlich Firmen-Updates und Vista-Umsteiger für den Anstieg verantwortlich.
In unserem internen namics Multiblog kursiert der Link seit Noel einen Post dazu gemacht hat. Wenn man dieses Plugin installiert kann man nachher im 3D-Modus durch die Google Bildersuche oder durch Flickr browsen. Das sieht dann so aus:
So macht Bildersuche Spass!
Im zweiten Teil meiner "Berichterstattung" über RIA Applikationen von der diesjährigen Javapolis werde ich Flex von Adobe etwas näher beleuchten. Heute morgen war ich wirklich kurz etwas sprachlos, als ich das Flex-Beispiel in der Keynote-Session gesehen habe. Aber alles der Reihe nach... :-) Die Session war in drei Teile aufgeteilt.
1. Teil: Flex in Action
Im ersten Teil hat sich Bruce Eckel in seiner Präsention (Thinking in Flex) bewusst auf Fragestellungen von datenverarbeitungszentrierten Anwendungen fokusiert. Dabei wurden Fragestellungen wie "Optimistic Data-Locking", "Conflict-Detection", "Transactions", etc. aufgeworfen und diese am Beispiel besprochen. Im Beispiel wurde ein "neuer" Ansatz - das "RIA Model" vorgestellt. Neu an diesem Ansatz ist, dass die Daten nicht mehr nur auf dem Server "leben" sondern dass diese eine Representation im Client besitzen (nicht nur zu Anzeigezwecken).
Um all die oben aufgeführten Problemstellungen nicht mehr selber implementieren zu müssen, hat Adobe BlazeDS als OpenSource freigegeben.
Diese Komponente zusammen mit dem LifeCycle DataServices kümmern sich um all diese Probleme und der Entwickler muss sich nicht mehr darum kümmern... wow... ich hoffe nur, dass dies auch in "wirklichen" Applikationen umsetzen lässt, denn Aspekte wie Security wurden leider nicht angesprochen...
Was die Toolunterstützung angeht, hat Adobe auch hier ganze Arbeit gemacht. Plugins in Eclipse mit entsprechenden Flex und Java-Perspektiven sind bereits erhältlich und unterstützen den Entwickler bei der Umsetzung.
2. Teil: Parleys V2
Im zweiten Teil hat Stephan Janssen die neue Version von Parleys V2 vorgestellt, die komplett in Adobe Flex gebaut ist. Das hat mir sehr gut gefallen. Die neue Version kommt jedoch erst mit Flex 3.0 raus, das im Frühjahr 2008 released wird.
3. Teil: Java FX Keynote
Darauf gehe ich nicht mehr weiter ein. Siehe früherer Blogeintrag.
Wie ist RIA als Gesamtes zu beurteilen?Nun... Web 2.0 und im speziellen RIA-Applikationen haben - wie fast alles auf dieser Welt - zwei Seiten. Die Usability solcher Applikationen ist aus meiner Sich sehr viel höher als bei klassischen Web-Anwendungen. Der Benutzer "erlebt" die Anwendung als viel lebendiger und die klassische Request/Respone-Latenz verringert sich um einiges.
Auf der anderen Seite sind doch noch einige "Unwegbarkeiten", auf die es aktuell noch keine oder keine befriedigenden Antworten gibt. Suchmaschinentauglichkeit, Bookmarking, Back-Button sind nur einige, die ich hier anführen möchte. Von WAI-Tauglichkeit möchte ich gar nicht erst sprechen...
Microsoft hat wieder einmal einen Showcase aus verschiedenen Tools zusammengeschustert – das Kind heisst Tafiti [das bedeutet in Suaheli anscheinend nachforschen] und ist dem aktuellen 2.0-Groove gehorchend „in Beta“.
Es vereint die gesammelte Suche [von live.com] und den aktuellen Silverlight-Beta [den muss man sich halt zuerst runterladen; aber keine Angst, es tut nicht weh [< 2 MB], geht ganz schnell und schliesslich haben Sie sich ja den Flash-Player auch irgendwann mal runtergeladen, oder?].
Was finde ich denn nu so toll daran?
Die Visualisierung: generell, die aus der realen Welt übernommenen Metaphern des Schreibbretts, des Bücherregals und so weiter; am besten gefällt mir die wirklich wörtlich genommene „Tree View“:
![]()
Die verschiedenen Ansichten nach Web, RSS, News, Fotos und Books. Als Beispiel hier mal die Ansicht der Fotos mit einem kleinen Vanity Search nach mir:
![]()
[immerhin weiss ich jetzt auch wie die anderen Ursen, die’s da online gibt, aussehen :-]
Auch nett dann die Möglichkeit, Suchergebnisse in der „Shelf“ zu speichern [so man einen Hotmail/Live-Account hat und sich einloggen mag].

Mir gefällt’s – quasi als Stilstudie, wie „es“ denn sein könnte. Es ist ja mittlerweile online schon fast wie bei neuen Automodellen, wo auf den grossen Ausstellungen die Stilstudien gezeigt werden und man mit Spannung darauf wartet, wie das Serienmodell denn aussehen wird.
Dank an Sascha, der mich auf Tafiti aufmerksam gemacht hat.
Es ist doch bald einen Monat vergangen, seit die Beta 3 von Lotus Notes/Domino 8 verfügbar ist. Zeit für einen kleinen Bericht über den Standard Client und wie er sich heute präsentiert.
Generell kann gesagt werden, IBM's Anstrengungen, einen Client (basierend auf "Open-Source Java-based Platform") als Drehscheibe für die täglichen Arbeiten bereitzustellen, scheint dem Ziel immer näher zu kommen. Nebst dem Lotus Notes Client wurden gleich noch drei "Productivity Editors" mitgeliefert, welche erstmals mit dem IBM Workplace Managed Client mitgeliefert wurden. Es handelt sich dabei um Dokument-, Tabellenkalkulation- und Präsentationseditoren, welche das Open Document Format unterstützen und als Alternative zu Microsoft Office verwendet werden können.
Das Startbild weist bereits darauf hin, dass der Client Eclipse und somit Java basiert ist. Konkret gesagt, Lotus Notes 8 basiert auf Lotus Expeditor, IBM's universelle "managed-client" Software, welche wiederum Eclipse basiert ist. Schon beim Starten von Lotus Notes 8 wird Eclipse spürbar, es dauert "etwas" länger bis der Client geladen ist...(natürlich ist auch noch viel Debug-Code drin). Aber auf den ersten Blick wird klar, dass sich das Warten lohnt. Das Client-UI wurde komplett überarbeitet (wurde ja schon lange verlangt) und sieht sehr vielversprechend aus. Wir werden folgend nur einige "Handverlesene" Änderungen aufzeigen, da die Liste zu gross ist um jedes Detail zu erläutern.
Home
Anhand der Einstiegseite merkt man schnell, dass da was passiert ist...
... 7.0.2:

... 8:

Menu- und Buttons
Sofort fällt einem der "Open"-Button auf, wo sich zentral verschiedene Aktionen ausführen lassen wie z.B. Zugriff auf die Bookmarks, History, Applications, etc..
![]()
Bleiben wir noch einen Moment beim Menu. Wer kennt es nicht: "File - Database - (etc.)". "Database" wurde jetzt in "Application" umbenannt.

Bei einigen offenen Applikationen/Dokumente kann bald einmal der Überblick verloren gehen. Dazu gibt es die Möglichkeit, offene Objekte zu gruppieren...
![]()
...oder über die Funktion Thumbnails das Objekt wieder zu finden.
![]()
Mail
Mail, Kalender und Kontakte sind neben dem generellem Client-Framework komplett überarbeitet worden, sowohl das UI als auch die Funktionen.
![]()
Ausführlichere Informationen (in Englisch) gibt es in den developerWorks.
Ein interessantes Feature ist die Thread-Funktion. Wenn in einer Zeile vor dem Subject ein Collapse-Icon erscheint, hat es mehrere Dokumente zum Mail.
![]()
Ein Klick darauf öffnet den ganzen Thread. So sieht man alle zugehörigen Mails.
![]()
Ein weiterer Klick in die Statuszeile markiert den ganzen Thread.
![]()
Jetzt nur noch in einen Folder verschieben, löschen, oder...
Was länge währt...... eine Funktion wurde endlich eingebaut, die schon seit Jahren auf der Wunschliste stand (vorallem von ehem. Host-Mail Benutzern, z.B. MEMO...). Ein bereits versandtes Mail kann wieder zurückgeholt werden, sofern es nicht bereits gelesen wurde. Bedingt aber, wie für weitere Server-basierte Funktionen, einen Lotus Domino 8 Server.
Kalender
So präsentiert sich der Kalender:
![]()
Es kann eingestellt werden, ob Meeting-Einladungen als "Ghosted" sichtbar sein sollen, auch wenn diese noch nicht beantwortet wurden. Sehr nützlich um den Überblick zu haben.
Preview
Lässt sich entweder so...
![]()
...oder so platzieren.
![]()
Sidebar
Die Sidebar ist der ideale Ort um Plug-Ins zu nutzen. Installierte Plug-Ins sind z.B. Sametime, Activities (ideal im Zusammenhang mit Lotus Connections) oder RSS-Reader. Die Feeds können sehr einfach verwaltet und gelesen werden.
![]()
Preferences
Und wo werden jetzt alle die Einstellungen verwaltet? Denken wir an Sametime, Notes Client, Mail, Toolbar, etc. Die Preferences wurden alle (mit Ausnahme der Out Of Office) in einem Dialog zusammengefasst (Eclipse sei Dank...).
![]()
Fazit
Es sieht wirklich so aus als ob es IBM/Lotus verstanden hat, was wir wirklich brauchen. Einen Client der auf offenen Standards basiert, via Plug-Ins eigene (Nicht-Notes) Applikationen implementieren lässt, Funktionen so einbaut wie wir Benutzer sie verwenden wollen, unsere Investitionen schützt indem die bestehenden Notes Applikationen weiterhin unterstützt werden.
...und totgesagte leben länger... ;-)
Freitag, 11. Mai, JavaOne
Spring Web Flow
Kurz beschrieben: Spring Web Flow ermöglicht einem Entwickler das Konfigurieren eines Workflows (oder eines mehrseitigen Formulars) mit einem für Spring typischen XML Dokument. Das an der Session gezeigte Beispiel (eine Telefonbuchsuche) wies ein JSF Frontend auf und bestach mit einer Einfachheit die einem zum Austesten der Spring Komponente ermutigte.
Drei Schritte sind notwendig um in einer Webapp Spring Work Flow zu verwenden:
Eine Workflow Konfiguration hat mehrere "States" (einer davon ist der Start State), zwischen den States wird mit "Transitions" gewechselt. Welche Transition von welchem State zum andern State möglich ist, wird in der Konfiguration genau hinterlegt. Die Transitionen respektive deren Auslöser werden direkt mit den Elementen in der View verknüpft.
Zum Schluss wurden noch Erweiterungen, die in Spring Web Flow 1.1 erhalten sein werden, angekündigt: neu sollen unter anderem Flows vererbt, Annotationen verwendet und das Security Framework Acegi integriert werden können.
Dank der Auslagerung in eigene Konfigurationsdokumente (und der Möglichkeit Workflows als so genannte Subflows zu schachteln) dürfte die Konfiguration auch komplexerer Abläufe (bei installierter Spring IDE auf grafisch) recht komfortabel sein.
Auch in Zeiten von Ajax und clientseitiger Logik dürfte diese Komponente zur Unterstützung "traditioneller" Webapps eine willkommene Ergänzung sein, zumal diese "Web 1.0" Webapps auch weiterhin ihre Daseinsberechtigung haben dürften - dies zumindest meine Meinung :-).
Donnerstag, 10. Mai, JavaOne 2007
You Are Hacked: Ajax Security Essentials for Enterprise Java Technology Developers
Diese Session behandelte, wie schon der Name vermuten lässt, die potentiellen "neuen Risiken" die zu den "alten Risiken" hinzukommen wenn man eine Webapp "Ajax enabled". Und wartete auch mit ein paar Tipps auf, wie man diesen begegnen kann.
Das Hauptproblem dieser neuen "Rich Internet Applications" ist, dass durch die Verlagerung von Applikationslogik auf den Client (weg von "thin" Browser Interfaces hin zu "thick") der geneigte Hacker automatisch mehr über die Anwendung erfährt. Die Logik und die Methoden sind nun nicht mehr hinter einem Service auf dem Server verborgen; durch den Export dieser - damit vom Client via Javascript aufrufbar - sind diese nun sichtbar und machen es einem Hacker einfacher die Anwendung zu inspizieren, Methoden auszuprobieren und auszutricksen.
Das grosse Problem sei, dass Sicherheits Aspekte beim Entwickeln einer Anwendung oftmals - um schneller vorwärts zu kommen - vernachlässigt werden. Erst nach der ersten Attacke kümmert man sich darum: man stopft genau das offengelegte Loch. Und dann das nächste Loch und so weiter. Sicherheit sollte daher von Anfang an ein Thema sein!
Zusammengefasst hat diese Session wohl nicht viel neues zu Tage gefördert; wird dadurch aber der eine oder andere Sinn für diese Probleme geschärft, hat sich der Besuch sicherlich gelohnt.
Garbage-Collection-Friendly Programming
Die zeitweise etwas abgehobene Session mit drei Leuten des Garbage Collector Teams von Sun dürfte manchem Kenner viele Einsichten über Garbage Collector Strategien etcetera beschert haben. Da ich mich nicht zu den GC Profis zählen tu, möchte ich mich auf ein paar Punkte beschränken die ich mir fortan (wenn nicht schon bereits bisher) zu Herzen nehmen möchte. Für Interessierte treibe ich gerne die Slides auf (was auch für die andern Vorträge gilt).
Das (mit einem Schmunzeln) erklärte Ziel der Session war es, dass die Entwickler ihre Codes und nicht das GC Team den ihrigen anpassen muss :-).
Donnerstag, 10. Mai, JavaOne 2007
Heute habe ich die längere Mittagspause nochmals richtig nutzen wollen um im JavaOne Pavilion die vielen Stände der Aussteller abzuklappern...
ESRI
Am meisten Zeit habe ich dabei bei ESRI verbracht, der Anbieterin der Mapserver Architektur ArcGIS. ArcGIS besteht aus den drei Layern Applikationen (Desktop, Server, Mobile), dem Developer Layer (dort findet man die so genannten ArcObjects) und dem Datenlayer (mit Daten von zum Beispiel Tele Atlas oder Navteq).
Mapping Dienstleister verfügen oftmals nicht über einen selbst entwickelten Mapserver, sondern bieten Lösungen mit weiterentwickelten Produkten wie eben diesem ArcGIS an. So ein Mapserver verfügt - neben dem Visualisieren der Mapdaten - auch über Funktionen wie etwa Routing oder Umkreissuche. Hat man einen solchen ArcGIS Server zur Verfügung, wurden mir zwei Möglichkeiten vorgeführt wie man diesen verwenden kann (natürlich gibt es noch mehrere).
Einerseits kann man sich in die Admin Oberfläche des Mapservers einloggen und einen Wizard "Create new map" starten, der einem in wenigen Schritten den verfügbaren Kartenausschnitt, den Maptyp, die verfügbaren Actions (Stichwortsuche, Routing etcetera) und Datensets auswählen lässt. Ist der Wizard beendet, liegt eine Webapp vor die auf dem selben Server oder - nach dem Herunterladen des WAR Files - auf einem anderen Server deployed werden kann. Oder man erstellt seine Map mit einem WYSIWYG Editor der ein JSP mit JSF Tags generiert. Die vom ESRI Mitarbeitenden "selbst generierte" Map liess einem auf dem Stadtgebiet von Bagdad Start- und Zielort von Militärkonvoys setzen, worauf der Mapserver eine Route "um gefährliche Gebiete herum" vorschlug. Ausgewählt werden konnte auch der Fahrzeugtyp, so hätte der Mapserver bei Panzern etwa andere Strassen gewählt als bei kleineren Patrouillenfahrzeugen.
Auch von ESRI gibts es Developer Ressourcen, namentlich das "ESRI Developer Network (EDN)". Damit kommt man an Ressourcen um eigene Maps in Desktop- oder Webanwendungen zu integrieren. Leider gibt es das nicht kostenlos, die jährliche Gebühr beträgt USD 1500.-.
Ein ganz interessantes Produkt von ESRI ist "ArcWeb Services 2006", damit lassen sich eigene Maps mittels unterschiedlicher APIs (SOAP, REST, JavaScript und anderen) Maps in die eigene Anwendung integrieren. Auch dieses Angebot ist aber nicht gratis.
Googles Web Toolkit
Am Stand von Google wurden neben dem Verteilen eines Merkblatts für eine allfällige Bewerbung und der Visitenkarte eines Recruiters auch Google Checkout und der brandneue "Google Web Toolkit" vorgestellt. Leider fiel eine angekündigte Demonstration des GWT wegen zeitweiliger Netzwerkprobleme ins Wasser. Kurz beschrieben bietet der GWT dem Java Entwickler die Möglichkeit OHNE Javascript Kenntnisse Ajax Applikationen zu erstellen. Dazu kommt GWT mit einer Fülle vorgefertigter Elemente die vom Entwickler einfach in dessen Anwendung integriert werden können.
Weitere Aussteller
Des weiteren war ich noch an den Ständen von SoftwareFX, wo man mir eine CD mit "Chart FX for Java" überreichte, bei Interface21 (bei der Verlosung von Büchern und eines TomTom ging ich leider leer aus), Terracotta (da suchte ich - entgegen anderslautender Ankündigungen - vergeblich nach jemanden der sich gut mit DWR auskannte), Canoo aus Basel (der Anbieterin von ULC, wo sich der Herr am Stand an Jürgs Blogeintrag erinnert hat, einem Framework für die Entwicklung von GUIs für "Java Rich Internet Applications"), Altova (der Herstellerin von XMLSpy), der Eclipse Foundation (Version 3.3, "Europa", folgt im Juni), der java.net Community, beim freundlichen Spielzeugroboter WowWee und IBM, wo ich mir ein Tool für Data modelling zeigen liess.
Mittwoch, 9. Mai, JavaOne 2007
Hinweis: im JavaOne TODAY Newsletter vom Mittwoch wurde der Ablageort sämtlicher Slides der Speeches von JavaOne 2007 publiziert: http://www.cplan.com/javaone2007/contentcatalog (Zugangsdaten über mich).
Bring Map and Navigation Capabilities to Your Location-Based Applications with JSR 293, Location API 2.0
Zu Beginn der Session wurden ein paar nette Zahlen serviert: LBS sei die am schnellsten wachsende Sparte im Wireless Bereich, mehr als 85% aller Subscriber seien an solchen Dienstleistungen interessiert (naja). Ende 2008 würden 25 Prozent aller WCDMA Geräte GPS tauglich sein; also: los gehts! Aber es gibt Hürden: die Lokalisierung und das Mapping. Genau hier setzen die beiden JSR 179 und 293 (Erweiterung von 179) an.
Die Location 2.0 API soll folgende Funktionen regeln:
Typische Einsatzgebiete für Anwendungen, die auf Location Based Services basieren, liessen sich folgendermassen kategorisieren: Sicherheit, POI Navigation, Verkehr, Social Networking, Sport und Fitness sowie Gaming. Und eine Map bestehe immer aus einer Kombination von Inhalten der Typen Area (das von der konkreten Map abgedeckte Gebiet), Landmarks (der auf der Map angezeigten POIs), Location (Standort des Subjekts/Objekts) und Route. Was genau auf der Karte dargestellt wird, unterscheide sich aufgrund der "Operation" auf welcher die aktuelle Map basiert; einerseits können einer Map die darzustellenden Informationen mitgegeben werden. Andererseits kann die Map alle in jenem Umkreis verfügbaren Informationen darstellen.
Eine auf dem Location API basierende Anwendung funktioniert nun (grob) nach dem folgenden Muster: die Klasse ProviderManager bietet den Zugriff auf vorhandene ServiceProvider, von welchen es drei Typen gibt: Geocoding, Map und Navigation. Alle drei Typen erweitern das Interface ServiceProvider und bieten eigene, ihrem Zweck dienende, Methoden an.
Mehr Infos dazu auf jcp.org.
Stress Your Web App Before It Stresses You: Tools and Techniques for Extreme Web Testing
Leider konnte der etwas reisserische Titel zumindest meine Erwartungen nicht erfüllen; die beiden redegewandten und zu Scherzen aufgelegten Brasilianer beschränkten sich neben den üblichen Testtipps (teste NICHT oder zumindest nicht nur die einfachen Fälle etcetera) auf die Vorstellung und Demonstration von Apaches JMeter. Für jemanden der das Tool bisher nicht kannte sicherlich interessant, für mich soweit aber nix neues, leider.
Erwähnenswert an dieser Stelle vielleicht noch das JMeter nicht nur zum parallelen Zugriff und Testen von Webapps verwendet werden kann, sondern auch Tests gegen DB, Mail und andere Server fahren kann.
Hands-on DWR
DWR (Direct Web Remoting) kurz beschrieben: man kann damit sehr schnell und einfach bestehende Java Services oder Controller Klassen als Javascript Bibliotheken exportieren und diese dann mit Ajax ansprechen. Drei Schritte sind dazu notwendig:
Fertig. DWR wird im Übrigen mit einem WAR File geliefert, welches Beispiele und die Dokumentation enthält.
Das dies wirklich so einfach funktioniert wies tönt, habe ich bereits selbst ausprobieren können; die POI Layers Anwendung von namics verwendet DWR um per Ajax die POIs auf die Map zu kriegen und - demnächst - um auch neue POIs hinzuzufügen.
Was bei DWR sicherlich von grossem Interesse ist: die Sicherheit. Dieser wird bei DWR grosse Bedeutung beigemessen; grundsätzlich tut DWR daher nichts was man nicht explizit zulässt. So kann man zum Beispiel die Methoden einer Klasse einzeln freigeben und die exportierten Domainklassen (die Return Werte und Übergabeparameter der freigegebenen Methoden), sofern nicht Java Sprachumfang, müssen für den Export ebenfalls freigegeben werden.
Nachdem DWR 1 nun seit etwa 2 Jahren existierte, wurde vor circa 2 Wochen DWR 2 lanciert. Grösste Neuerung dabei ist das sogenannte "Reverse Ajax". Damit kann der Server die "verbundenen" Browser über sogenannte Scriptsessions (ein fünfter Scope wenn man so möchte) über neue Daten informieren und diese auch mit Daten versorgen. Auch hier wurde der Sicherheit natürlich grossen Stellenwert beigemessen (Stichwort Cross Site Scripting).
Beeindruckend war das Schiffe-Versenken Spiel realisiert mit Ajax, an der Session haben sie das zu dritt (ein Teilnehmer aus dem Publikum gesellte sich ohne Vorankündigung noch dazu) live demonstriert.
DWR hat im Übrigen auch eine eingebaute Unterstützung für Accessability; sogenannte "Pluggable Notifiers" informieren den Benutzer etwa bei Veränderungen mittels Ton oder lassen ein Feld aufblinken. Es können auch eigene solche Notifiers entwickelt werden.
Mittwoch, 9. Mai, JavaOne 2007
Java Persistence 2.0
Die Java Persistence API 1.0 wurde zusammen mit EJB 3.0 eingeführt - Version 2.0 soll bestehende Schwachpunkte und Bugs ausmerzen sowie fehlende Kompontenten nachliefern. Angestrebt wird dazu ein neuer JSR, der unter anderem folgende an der Session angesprochene Punkte behandelt haben wird.
Der JSR soll demnächst veröffentlicht und die Expertengruppe im Juni 2007 gegründet werden. Ziel ist es, Java Persistence API 2.0 mit EE 6.0 zu realisieren.
JavaOne Pavillon
Heute schaute ich am Stand von Tele Atlas, neben Navteq dem andern grossen Anbieter von Mapdaten, vorbei. Im Grossen und Ganzen gesehen funktionieren die beiden Konkurrenten in ihrem Kerngeschäft (Erfassung von Strassendaten und POIs) identisch, beide erfassen die Strassen mit eigenen Fahrzeugen (ausgerüstet unter anderem mit Kameras) welche ständig unterwegs sind. Allerdings war Tele Atlas "alleine" am Stand, Navteq hingegen hatte einige Partnerfirmen (Autodesk, deCarte und andere) um sich geschart.
Zwei Angebote von Tele Atlas wurden mir näher vorgestellt: zum einen der "Tele Atlas DeveloperLink" und zum andern den "Tele Atlas ContentLink". Ersteres bietet Entwicklern - ohne Kosten - unter anderem den Zugang zu Beispieldaten, weiterführenden Informationen technischer Natur und Diskussionsforen. Der ContentLink von Tele Atlas (offenbar erst seit circa 2 Monaten online) bietet einem Map Anbieter die Möglichkeit nach weiteren Mapinhalten für seine Mapping Anwendung zu suchen. Die POI Datensätze, die auf der ContentLink Webseite gelistet werden, werden direkt von Dritten angeboten und können nach Abschluss einer Vereinbarung mit diesen heruntergeladen und verwendet werden.
Mittwoch, 9. Mai, JavaOne 2007
Anmerkung: nachdem ich gestern alle Notizen in einem Eintrag zusammengefasst habe (und dieser dadurch etwas lange wurde), werde ich die nächsten Einträge jeweils nur noch einem oder zwei Themen widmen.
Quick and Easy Profiling with Integrated Tools
Das Ziel der Session in einem Satz zusammengefasst: Profiling mit der IDE, ohne auf ein separates Tool zurückgreifen zu müssen. Die Beispiele wurden allesamt mit NetBeans 5.5 oder mit der bereits verfügbaren Preview (M9) von 6.0 gezeigt, welche auf der Homepage zum Download bereitliegt.
Der in NetBeans integrierte Profiler bietet Hand die drei typischen Problemklassen zu analysieren: Threading (zu wenige versus zu viele Threads), CPU Belastung und Memory Leaks. Der Profiler kann mit einem Wizard gestartet werden, wo man den gewünschten Profiling Task wählt. Der Einstieg fällt mit der Auswahl von sogenannten Profiling Roots einfach - man wählt zum Beispiel aus, welche Methoden untersucht werden sollen. Alternativ können auch sämtliche Methoden aller Klassen untersucht werden, was der Performance des ausgeführten Programms aber sehr zu schaffen macht.
In einem der gezeigten Beispiele wurde durch die Auswahl von bestimmten Methoden etwa eine Reduktion der instrumentalisierten Methoden von circa 19'000 auf deren knapp 200 realisiert. Läuft die Anwendung, kann man sich einen Snapshot anzeigen lassen und kann von der Auswertung per Mausklick direkt in den Source Code wechseln. Der Profiler kann nicht nur mit der lokalen JRE verwendet werden, es können auch Server eingerichtet und damit darauf laufende Anwendungen untersucht werden.
Eindrücklich die vorgetragene Case Study: eine Anwendung von Sun, über ungefähr 4 Jahre entwickelt mit circa 150'000 Lines of code, wies im Live Betrieb ein Memory Leak auf. Dank dem "Generation Count" des Profilers wurde eine Inner Class namens "BackgroundProcess" als Quelle des Ungemachs identifiziert und modifiziert, so dass die Anwendung fortan keine Memory Leaks mehr in sich barg.
NetBeans 6.0, welches noch in diesem Jahr lanciert werden soll (Preview Version wie eingangs erwähnt bereits erhältlich), wird im Profiling Bereich noch weiter ausgebaut sein, nachfolgend einige Merkmale:
Weiterführende Informationen und unter anderem einen Blog findet man auf der Homepage des NetBeans Profiler Teams.
Ich habe diese Woche die Möglichkeit erhalten, die JavaOne Konferenz in San Francisco zu besuchen; ich möchte in den nächsten vier Tagen an dieser Stelle über die aufgeschnappten Informationen berichten und diese so einem grösseren Publikum zugänglich machen.
Dienstag, 8. Mai
Open Java: Imagine the Possibilities (Opening session)
"Don't be shy", nutze die Möglichkeiten der Konferenz und versuche mit möglichst vielen Leuten ins Gespräch zu kommen. Dies die ersten Worte - well, mit 10-15 Tausend Anwesenden natürlich schier unbegrenzte Möglichkeiten! Danach folgte die Darlegung des Hauptanliegens der diesjährigen JavaOne und deren Slogan "Open Possibilities". Kurz zusammengefasst: das Ziel ist es, mittels Java das Internet respektive Rich applications und Multimedia Inhalte auf Mobile Devices zu kriegen. Flächendeckend, grenzenlos und überall. Im Kontext dieses ehrgeizigen Ziels folgten mehrere Announcements mit Vertretern der jeweiligen Köpfe bei Sun und deren Partnern.