FOSDEM

Die FOSDEM entwickelt sich offenbar zur ersten Adresse, wenn es um die Entwicklung freier Software geht. Heise berichtet inzwischen ausführlich von derKonferenz, und die Blogsphähre quillt über…. Mit Novell, Google und Sun waren auch wieder große Firmen dabei, die wie zu guten alten Internet-Hype-Zeiten a la 1999 / 2000 die Developer direkt vom Gang zur Mensa einkassierten. Sieben Jahre hat es gedauert, um aus dem kleinen Treffen irgendwo in Belgien ein „must“ zu machen. Hoffentlich hält diese Entwicklung an!

In 2007, FOSDEM was held on February 24th and 25th in the usual venue. As the ULB can not provide more space, FOSDEM might have to be moved to a different location within Brussels.

This year, the schedule features main tracks (1h long), lightning talks (15 mins) and the usual specialised developer rooms. First main talk has been given by Pieter Hintjens on the hot topic of Status of Software Patents in Europe. Georg Greve closed the event with a speech entitled Beyond GPLv3.

Main Tracks :

* Security : Security Testing, Metasploit Project, Bacula
* Desktop Applications : Xorg, AIGLX, GEGL
* Development and Languages : Turbocharging Linux with Mono, GDB Tracepoints, Profiling Desktop Applications
* Kernel: Reactos, Linuxbios, Linux Kernel
* Web: Plone 3.0, Drupal, Mozilla
* Internet Servcies : JBoss BPM, Secure Communications with Jabber, Samba

Keynotes : OLPC, Liberating Java

There have been devRooms about CrossDesktop, KDE, GNOME, openSUSE, Mozilla, GNU Classpath+OpenJDK DevJam, CentOS+Fedora, Jabber, OpenGroupware+GNUstep, Python, Research Room, X.org, Gentoo, Debian and Embedded.

(Teileweise aus wikipedia.org)

JSF & MyFaces: Session terminieren

Die klassische Methode, um eine JSF-Session zu beenden, ist über den Zugriff auf die Session via dem externen Kontext der Webanwendung in der entsprechenden Backingbean:

public String logout() {
FacesContext fc = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);
session.invalidate();
return „logout_success“;
}

Bei Verwendung der MyFaces-Implementierung >= 1.4 fehlt jedoch das HttpSession – Objekt. In der JSP ist der Zugriff jedoch ohne Probleme möglich:

<% session.invalidate(); %>
<c:redirect url=“login.jsf“ />

MyFaces

MyFaces ist der zur Zeit popumärste frei verfügbare Kompenentenstamm für JSF-Anwendungen. In dem Myfaces-Projekt werden zur Zeit 3 verscheidene Kompeonentenstränge gebündelt:

  • Tomahawk: Original MyFaces Komponenten-Bibliothek. Ist zur Zeit die populärste Bibliothek, jedoch ist die Dokumentation nicht besonders umfassend.
  • Tobago: Ursprünglich durch das Apache-Projekt gegründeter Komponentenstamm, der nun in MyFaces eingegliedert wurde. Kommt gemessen am Grad der Verbreitung gleich nach Tomahawk.
  • Trinidad: Entwicklung von Oracle (Oracle ADF). Wurden in 2006 von Oracle an Apache gespendet. Die Komponenten sind sehr gut erweiterbar und professionell geschrieben, jedoch gibt es aufgrund der kürzlichen Eingliederung noch keine gute Dokumentation. Allerdings könnten diese Komponenten aufgrund der guten Qualität zu den popumlärsten Stamm wachsen.

Tabellenzellen in t:dataTable (2)

Die dataTable ist an sich ein gutes Werkzeug, um Daten übersichtlich darzustellen. Allerdings wird machmal auch eine unterschiedliche Farbgebung der einzelnen Zellen benötigt, um bestimmte Informationen schneller auffindbar zu machen. In dem folgenden Beispiel wird ein möglicher Lösungsweg dargestellt.

Die entsprechende Backing Bean wird um eine Methode ergänzt, die einen HTML-Farbcolde zurückliefert. Der Wert wird dann direkt in die entsprechende style-Eigenschaft geschrieben:

 <t:column sortable=”true”>
<f:facet name=”header”>
<t:outputText value=”#{bundle.colHeader1}” />
</f:facet>

<t:outputText value=”#{myValue.mywert}” style=”#{myValue.style}”></t:outputText>

</t:column>

MyFaces – panelNavigation2 und CSS

Dynamische Menüs sind toll, und wenn diese Session Save sind ist es noch viel besser! Das Apache MyFaces Projekt hat dazu eine Komponente entwickelt: panelNavigation2. Doch die passende Dokumentation ist noch im Entstehen, und einige Examples lassen sich leider nicht vollständig laden. So bleiben wichtige Teile des JSP-Sourcecodes verborgen, was vor allem Neueinsteigern das Leben schwer machen kann… somit folgt hier also der komplette Sourcecode einer JSP mit der Komponente:

<div>
<f:loadBundle basename=“org.yourdomain.resource.ResourcesMenu“ var=“ResourcesMenu“ />
<h:form>
<t:div id=“subnavigation_outer“ forceId=“true“>
<t:div id=“subnavigation“ forceId=“true“>
<t:panelNavigation2 id=“nav1″ layout=“list“ itemClass=“mypage“
activeItemClass=“selected“
disabledStyle=“color:red;padding: 2px 20px 2px 25px“>
<t:navigationMenuItems id=“navitems“
value=“#{navigationMenu.panelNavigationItems}“ />
</t:panelNavigation2>
</t:div>
</t:div>
</h:form>
</div>

Wichtig – und nicht dokumentiert – ist u.a. dass man die Komponente in einem form-Tag wrappt, denn nur dann kann ja auch die hinterlegte Action ausgewertet werden. Außerdem sollte man bei dem einrahmenden DIV’s auch den forceId-Parameter auf true setzen, denn sonst würde, sobald man den Snippet in ein <jsp:include setzt, das CSS nicht mehr greifen.

Ubuntu-Buch kostenlos bei Galileocomputing

Galileo Computing hat sein Angebot an kostenlos erhätlichen Büchern erweitert. Ab sofort ist nun neben den bekannten Buch „Java ist auch nur eine Insel“ auch ein Werk zur populären Linux-Distribution „Ubuntu“ erschienen. Galileo Computing schreibt:

Ubuntu Linux hat sich seit geraumer Zeit als Nummer Eins unter den Linux-Desktopsystemen etabliert. Und das hat einen guten Grund: Benutzerfreundlichkeit, leichte Bedienung, optimale Hardwareerkennung: Ubuntu macht keine Probleme. Deshalb ist es für Linux-Einsteiger und -Umsteiger interessant. Aber längst nicht nur.

Was man mit dem System alles anstellen kann, beschreibt dieses Buch ausführlich und verständlich. Die zweite Auflage wurde stark erweitert. Von Paketverwaltung über Optimierung, Programmierung, Migration und Kernelkompilierung bis hin zur Netzwerktechnik finden Sie alle wichtigen Fragen zu Ubuntu Linux in diesem Buch beantwortet.

Der Download umfasst rund 30 MB, das Buch mit über 900 Seiten ist im Fachhandel auch in gedruckter Form für 39,90 Euro erhältlich.

Kostenloses Linux-Kernel-Buch bei O’Reilly

O’Reilly hat ein weiteres aktuelles Werk zum kostenlosen Download bereitgestellt. Dieses mal handelt es sich um das Buch „Linux Kernel in a Nutshell“ von Greg Kroah-Hartman. Golem schreibt zu diesem Buch:

„Linux Kernel in a Nutshell“ widmet sich der Konfiguration eines Kernels, um beispielsweise Funktionen wie Sound und WLAN-Unterstützung zum Laufen zu bekommen. Dabei sollen alle nötigen Schritte erläutert werden, vom Download der Kernel-Quellen über die eigentliche Konfiguration bis zur Möglichkeit, Kernel-Optionen zur Laufzeit zu kontrollieren. Auch auf einzelne Treiber und die benötigten Werkzeuge geht Kroah-Hartman in seinem Buch ein, widmet sich aber explizit nicht der Kernel-Programmierung. Linux-Erfahrungen sollte der Leser dennoch mitbringen.

Das Buch ist im PDF- und im DocBook-Format zum Download erhältlich.

Tabellenzellen in t:dataTable

Die dataTable ist an sich ein gutes Werkzeug, um Daten übersichtlich darzustellen. Allerdings wird machmal auch eine unterschiedliche Farbgebung der einzelnen Zellen benötigt, um bestimmte Informationen schneller auffindbar zu machen. In dem folgenden Beispiel wird ein möglicher Lösungsweg dargestellt.

Die entsprechende Backing Bean wird um Methoden ergänzt, die boolsche Werte zurückliefern. Je nach Wert wird dann nur eine Komponente gerendert:

<t:column sortable=“true“>
<f:facet name=“header“>
<t:outputText value=“#{bundle.colHeader1}“ />

</f:facet>

<t:outputText rendered=“#{myValue.testTooLow}“ value=“#{myValue.mywert}“ style=“color:blue;“></t:outputText>
<t:outputText rendered=“#{myValue.testCorrect}“ value=“#{myValue.mywert}“></t:outputText>

</t:column>

MyFaces and Tiles – Examples

Beim erstellen eines Proofs, bei dem JSF mit den Tomahawk-Komponenten des MyFaces-Projektes eingesetzt und als Template-Engine Tiles genutzt werden soll, brachte eine Web-Recherche erst mal viele Altlasten zu Tage. Auf coreservlets.com gibt es ein recht gutes HowTo, welches bei mir sogar auf Anhieb funktioniert – jedoch nicht mit einer Tomakawk-Integration. Exadel hat sein HowTo aus dem Forum inzwischen nach jsf-tutorials.net transferiert, jedoch ist es seit 2003 nicht mehr verändert worden, die Beispielanwendung lässt sich nicht mehr herunterladen und somit ist dieser Artikel leider outdated.

MyFaces selbst hat jedoch selbst zwei gute Einstiegspunkte: zum einen das neue Entwickler-Wiki, welches eine eigene Seite für die Integration von Tiles und JSF bereithält, und zum anderen die Examples, die man jedoch nur im Nightly-Build findet. Gerade letzteres ist ein guter Ausgangspunkt!