CUPS: Drucker-Warteschlange neu starten

CUPS ist ein möchtiges Tool, um Drucker zentral zu verwalten. Allerdings macht CUPS in der Standard-Installation von SuSE manchmal sorgen, da der User „root“ nicht für das Admin-Interface (Erreichbar via Web-Browser unter der IP <your server>:631) freigeschaltet ist. Manchmal macht es auch Sinn, die Warteschlangen nur über die Konsole zu steuern.

  • lpstat -p zeigt die aktuellen Warteschlangen inklusive Status
  • lpstat -p -o zeigt zusätzlich auch die ausstehenden Druckaufträgean

Um eine Warteschlange neu zu starten, weil sich z.b. ein Netzwerkdrucker mal an einem Auftrag verschluckt hat und die weitere Bearbeitung der Druckaufträge nicht funktioniert, sind folgende Befehle gut:

  • /usr/bin/enable <printername> schaltet die Warteschlange wieder ein
  • /usr/sbin/accept <printername> erklärt CUPS, dass wieder Aufträge angenommen werden dürfen.

Entsprechend kann eine Warteschlange auch abgeschlatet werden, indem man folgende Befehle verwendet:

  • /usr/bin/disable <printername> schaltet die Warteschlange aus
  • /usr/sbin/reject <printername> weist CUPS an, keine weiteren Aufträge mehr anzunehmen

Socket-Programmierung in Java

Java als plattformunabhängige Programmiersprache unterstützt im Package java.net unmittelbar die Socket-Programmierung. Das zeigt die Betriebssystemunabhängigkeit des Socket-Konzeptes. Die Implementierung der Sockets für die verschiedenen Plattformen (Linux, Windows, Spezialsysteme) erfolgt in der Klassenbibliothek der virtuellen Maschine.

Die Klassen für die Socket-Programmierung sind Socket und ServerSocket. Folgendes Kurzbeispiel zeigt die Verwendung:

ServerSocket serverSocket = new ServerSocket(port);
//Serversocket mit bestimmter Portnummer erstellen
while(true) {
Socket clientSocket = serverSocket.accept();
//auf Anfragen warten
InputStream input = clientSocket.getInputStream();
//InputStream-Objekt öffnen
int data = input.read();
//Daten lesen
clientSocket.close();
//Verbindung schließen
}

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>