Donnerstag, 16. Oktober 2008

Shades of gray

Marko Look Who's Talking movie Indecent Proposal download remarked that it would be nice to have not only a color scheme for the yellow and blue LinuxTag colors but also a scheme that reflects grayscales. Here we go:



So we finally have a complete LinuxTag color scheme along with the scales of blue and yellow:





We're now working on the basic visuals for ads, posters and flyers.

Mittwoch, 15. Oktober 2008

What is LinuxTag?

As mentioned before, we are currently working on a new marketing strategy for LinuxTag, not only for 2009 but far beyond, defining a solid groundwork for the strategic definition of the LinuxTag brand. This includes tangible marketing ressources such as templates, colors, fonts and all that is needed for a full corporate design but also an effective definition of what LinuxTag is - what LinuxTag stands for and - finally - why people attend LinuxTag. We need this to improve our strengths and work on our weaknesses.

One key momentum that we thought about was "what are the motivations that brings people to LinuxTag?". What does the common visitor expect when attending the show? We isolated three main points on this:

  1. Networking
    A lot of people attend LinuxTag to see all those guys from the FOSS world that they see frequently at events like this. To get in touch, to work together in person is an important aspect of LinuxTag. Each year, we have requests for rooms from development teams where they can gather to discuss topics they can't properly address by e-mail. It is not uncommon that these people meet up for the first time in real life on LinuxTag.
    On the other side, many people come to the show to improve their business network. I do not exaggerate by arguing that LinuxTag is the European Open Source business event. If you want to do business in the FOSS field, you have

    Anaconda psp

    to be there.

  2. Knowledge
    We know from our yearly surveys that many people come to LinuxTag to hear conference talks. There was a time we underestimated the marketing value of the conference, but this was plain wrong: the conference is the main attraction of LinuxTag. All other parts are there only to support the conference, plain and simple. We want to provide world class know-how presented by world class speakers each and every year. This is the key point of the whole LinuxTag endeavour.

  3. Lifestyle
    LinuxTag is part of the FOSS community. The geekdom is becoming more and more sexy and more and more people want to be part of it. LinuxTag brings this unique feeling that no other conference has. Try to get that fine sense of completeness, of technology insight paired with the deep friendlyness of the Open Source principle on your common IBM marketing sell-me-your-stuff event. And there is more: be part of it! Nowhere else it is so easy to talk to the FOSS people and contributing to the pool of ideas, concepts and - finally - software. Be there and be part of it!
    And, if you're out on your business, there is no place like LinuxTag to find excellent staff for your technology venture because these people are attracted by the unique lifestyle LinuxTag has to offer. If you really want to find the knowers, be at LinuxTag.


So we have these three key spots of motivation that drives LinuxTag. We now have to package them into a concise marketing message, transform it to a nice presentation and there we go..

Montag, 13. Oktober 2008

Zweiter Teil des S100-Artikels erschienen

Harry Potter and the Order of the Phoenix movie Gerade auf meinem Schreibtisch gelandet: die 11er-Ausgabe der Linux-User, die am Donnerstag erscheint. Darin ist der zweite Teil meines Mediacenter-Artikels enthalten. Beschrieben wird, wie man aufbauend auf der Linux-Installation MMS als Multimedia-Applikation und VDR als Videorekorder mit DVB-T nutzt.

Marko hatte mich vor einiger Zeit schonmal auf Elisa aufmerksam gemacht. Sieht sehr vielversprechend aus und könnte eine echte Alternative zum doch recht spröden MMS sein. Das wird mein nächstes Wochenendprojekt...prinzipiell sollte aber auf der S100 auch XBMC laufen, schließlich hat die XBox 1 auch nur 64 MB RAM. Dazu müsste aber auf der S100 zunächst mal zwingend OpenGL funktionieren - und zwar über den TV-Out...und da bin ich im Moment etwas skeptisch.

Achso: mein Artikel "10 Gebote für erfolgreiches BPM" aus der Computerwoche gibts jetzt auch als offizielles PDF zum herunterladen.
Blackwoods rip

Sonntag, 12. Oktober 2008

JEE + Maven + Eclipse

.!.
So, heute mal wieder ein Artikel aus dem tiefen Tal der lustigen Softwarefrickeleien. Ich habe mich am Wochenende mal intensiv mit JEE, Eclipse und Maven und dem Zusammenspiel dieser Dinge auseinandergesetzt. Die nächste Version des LinuxTag eTicket-Systems soll voll auf JEE setzen.

Maven mit Eclipse für JEE-Projekte zusammenzubringen ist nicht so ganz einfach. Deswegen hier eine kleine How-To.

Seltsamerweise existieren im Netz keine wirklich verwendbaren
"Kochrezepte" dafür, obwohl es sich aus meiner Sicht um ein
"Standardproblem" handelt.

Ziel ist es, die Vorzüge von Eclipse bei der Entwicklung von JEE-Modulen
zu nutzen (Hotdeployment, Servermanagement, Debugging usw.) und
gleichzeitig die volle Buildfähigkeit über Maven zu erhalten.

Dazu muss man grundlegend einen anderen Weg gehen, als das bei
JSE-Projekten der Fall ist: statt ein Projekt zunächst auf der
Maven-Ebene aufzubauen und dann von Maven die Eclipse-Settings über "mvn
eclipse:eclipse" erzeugen zu lassen, muss ein JEE-Projekt von Eclipse
her aufgebaut werden. Maven ist deutlich flexibler anpassbar als die
JEE-Eclipse-Plugins.

Schritt 1: Eclipse JEE-Projekte anlegen

Über die ganz normalen Wizards wird ein JEE-Projekt mit allen
Untermodulen angelegt. Für das Beispiel gehe ich von folgenden einzelnen
Eclipse-Projekten aus:

  • DemoEJB
    Projekt, das die EJBs enthält. Hier werden (abweichend vom Eclipse-Standard) später auch die Domain-Klassen und die Remote-Stubs der EJB abgelegt. Maven erzeugt beim Releasebuild automatisch ein abgespecktes Client-JAR, dass nur die vom Client benötigten Klassen enthält. Während des Eclipse-Workflows werden die Klassen dieses Moduls vollständig mit dem Client deployt, liegen also zweimal physikalisch auf dem Server, falls der Client eine JEE-Serveranwendung wie z.B. ein WAR ist. (einmal beim EJB, einmal beim Client). Das ist verschmerzbar, stört nicht und ist durch die Eclipse-Governance auch sicher konsistent.

  • DemoServlet
    Der Client für die EJBs in Form einer JEE-Weblayer-Anwendung. Hier sind Standard-Servlets und/oder JSPs enthalten, die über JNDI auf die EJBs zugreifen. Externe Clients sind ebenfalls möglich, aber der JEE-Client ist der in diesem Fall komplexere Fall, weil das WAR ebenfalls deployt werden muss.

  • DemoEAR
    Das umgebende EAR-Projekt, dass aus dem EJB und dem WAR des Clients ein deploybares EAR-Archiv erzeugt. Da Maven kein gemeinsames Artefakt- und POM-Multiprojekt erlaubt, ist das EAR-Projekt ebenfalls ein Maven-Subprojekt.


Beim Erstellen der Projekte muss auf die Projektabhängigkeit geachtet
und ggf. angepasst werden. Eclipse geht im Standardfall davon aus, dass
Domainklassen und Stub-Interfaces im Client angesiedelt sind. Maven
erwartet diese Klassen aber im Serverprojekt und generiert lieber daraus
ein getrenntes Client-JAR für den Client mit diesen Klassen. Aus meiner
Sicht sauberer und Eclipse auch einfach beibringbar ist der Maven-Weg.
Dazu müssen die Abhängigkeiten folgendermaßen eingestellt sein:
   DemoEAR     --hat Abhängigkeit--> (DemoEJB, DemoServlet).

   DemoServlet --hat Abhängigkeit--> (DemoEJB).

     DemoEJB hat keine definierten Abhängigkeiten.

Sind die Abhängigkeiten eingestellt müssen nun die Pfade "Maven-like"
angepasst werden. Dazu müssen die Java-Sources von den restlichen
Resources getrennt und im üblichen Verzeichnisschema angeordnet werden.
Dies ist über die Projekt-Properties unter "Java Build Path -> Source"
zu erledigen.

Mit der jetzt vorliegenden Einstellung kann dann ein Deployment-Server
definiert werden und das Projekt über Eclipse normal genutzt werden.
Hot-Deployment und Debugging funktioniert direkt aus Eclipse heraus.

Als nächstes müssen die Maven-Einstellungen hinzugefügt werden, damit
das Gesamtprojekt per Maven bau- und deploybar wird.

Schritt 2: Maven-Konfiguration

Die Verzeichnisstruktur in Eclipse sieht im Moment folgendermaßen aus:

- workspace
+ DemoEAR
+ DemoEJB
+ DemoServlet

Für die Maven-Konfiguration legen wir ein Hüllprojekt um die drei
Einzelprojekte. Dieses Hüllprojekt ist für Eclipse nicht notwendig und
nur für die "Projektklammer" des Multi-Projekts für Maven nötig. Aus
diesem Grund wird dieses Hüllprojekt am besten von Hand angelegt und
über die Kommandozeilentools ins SVN eingecheckt.

Für die Entwicklung bedeutet das, dass das Arbeiten und Bauen mit Maven
und Eclipse leicht unterschiedlich erfolgt. Die Zielverzeichnis bzw.
Projektstruktur sieht so aus:

- DemoJEE
+ DemoEAR
+ DemoEJB
+ DemoServlet
pom.xml

In Eclipse wird dann nicht das Hüllprojekt ausgecheckt und genutzt,
sondern nur die drei Subprojekte. Die Einstellungen des Hüllprojekts
sind nur für einen Maven-Build nötig. In diesem Fall wird das
Gesamtprojekt ausgecheckt und per "mvn package" das resultierende
EAR-Archiv im Subprojekt "DemoEAR" gebaut.

POM des Hüllprojekts

Die POM des Hüllprojekts ist recht simpel. Sie besteht aus einem
einfachen Multi-POM mit zusätzlichen Repository-Einstellungen:


4.0.0
de.tarent
1.0-SNAPSHOT
DemoJEE
pom
project

DemoEJB
DemoServlet
DemoEAR



jboss-repository
jboss repository
http://repository.jboss.com/maven2/

false





Das JBoss-Repository ist für die Abhängigkeiten zu den JEE-Bibliotheken
nötig, die in den Subprojekten definiert sind. Das Projekt wird damit
gegen die JEE-JBoss-Implementierung gebaut. Das bedeutet explizit nicht,
dass die resultierenden JEE-Module nicht in anderen Appservern laufen,
die Bibliotheken werden als "provided" dort vorausgesetzt und nicht mit
gepackaged. JBoss bietet eine zertifizierte JEE 1.5-Implementierung.
Trotzdem sollten wir uns dafür im nicht-JBoss-Fall noch ein paar
Gedanken zur QS machen, das nur am Rande.

POM von DemoEJB

Das DemoEJB-Projekt ist ein einfaches Maven-Projekt, dass das EJB-Plugin
verwendet, um ein EJB-Jar zu erstellen.


4.0.0
de.tarent.DemoJEE
DemoEJB
ejb
1.0-SNAPSHOT
enterprise java bean

de.tarent
DemoJEE
1.0-SNAPSHOT


src/main/java


maven-ejb-plugin



true


3.0
true



org.apache.maven.plugins
maven-compiler-plugin

1.6
1.6






javax.persistence
persistence-api
1.0
provided


javax.ejb
ejb-api
3.0
provided




Falls weitere JEE-Abhängigkeiten benötigt werden, können diese hier
hinzugefügt werden. Als Parent wird das Hüllprojekt angegeben. Die
JBoss-Repository-Definitionen werden von dort geerbt.

Die "generateClient"-Einstellung sorgt dafür, dass ein zusätzliches
"virtuelle" Artefakt erstellt und dem virtuellen Repository hinzugefügt
wird. Auf dieses referenzieren wir dann später in den Abhängigkeiten des
Clients. Dieses spezielle Client-JAR enthält nur die Entities und die
Stubs. In der Konfiguration kann über weitere Parameter noch genauer
angegeben werden, welche Bestandteile des EJB-Codes in den Client
gepackaged werden. Genauere Infos dazu sind in der Plugin-Dokumentation
zu finden.

POM des Clients

Das Client-Projekt "DemoServlet" ist ein Standard-WAR-Projekt, dass aber
zusätzlich eine Abhängigkeit zur zuvor erstellen "virtuellen"
Client-Bibliothek enthält:

...

de.tarent.DemoJEE
DemoEJB
1.0-SNAPSHOT
ejb-client

...

Statt "ejb" wird "ejb-client" als Typ angegeben. Würde "ejb" angegeben,
so würde der gesamte Code des EJB-Projektes im resultierenden WAR
mitgepackaged werden.

POM des EAR-Projekts

Das EAR-Projekt baut aus den vorhandenen Artefakten das EAR zusammen und
deployt es optional auch direkt in einem JBoss-Server. Das EAR-Projekt
enthält selbst keinen Quellcode dafür aber die EAR-Deployment-Deskriptoren.


4.0.0
de.tarent.DemoJEE
DemoEAR
ear
1.0-SNAPSHOT
ear assembly


de.tarent.DemoJEE
DemoEJB
ejb
1.0-SNAPSHOT


de.tarent.DemoJEE
DemoServlet
war
1.0-SNAPSHOT





maven-ear-plugin

${artifactId}/EarContent/META-INF/application.xml
lib


true




de.tarent.JEEDemo
DemoEJB
DemoEJB.jar


de.tarent.JEEDemo
DemoServlet
/DemoServlet
DemoServlet.war





org.codehaus.mojo
jboss-maven-plugin

/home/kleinhenz/Bibliothek/jboss-4.2.3.GA
8080






Problematisch ist die Einstellung des JBoss-Homedirs. Diese Einstellung
ist im Moment leider nicht extern einstellbar. Allerdings ist die
Nutzung des JBoss-Plugins nur nötig, wenn direkt aus Maven heraus
deployt werden soll.

Bauen und Deployen

Damit ist die Konfiguration insgesamt fertig. Unter Eclipse lassen sich
die Projekte normal mit den Eclipse-Bordmitteln nutzen. Will man einen
Maven-Build vornehmen, so wird das Hüllprojekt ausgecheckt und mit "mvn
package" das Projekt gebaut. Nach dem Vorgang liegt im EAR-Projekt das
fertige EAR-Archiv.

Montag, 6. Oktober 2008

"Terrabyte"

Media Markt macht TV-Werbung für eine externe Festplatte mit "einem Terrabyte". Frei nach Marvin

Grumpy Old Men full How the West Was Fun download

White Squall : "Eine Festplatte von der Größe eines Planeten - aber keinen Duden!".Indecent Proposal full

Samstag, 4. Oktober 2008

Wanted

[imdb Wanted]Gerade komme ich aus dem Kino. Wir haben uns den neuen Film mit Angelina Jolie angesehen: Wanted. Naja, was soll man sagen...wer auf anregende Dialoge, feinsinnige Handlung und eine intellektuelle Pointe steht, dem wird der Film nicht gefallen. Alle anderen lehnen sich zurück, schalten das Hirn aus und schauen einfach zu wie Actionsequenz auf Actionsequenz folgt, literweise Blut fließt und eine zweifelhafte Moral vermittelt wird.

Miss Jolie nimmt man dabei auch die harte Schlägerbraut nicht so richtig ab. Was in Tomb Raider noch ganz gut geklappt hat ist hier teilweise schon an der Grenze zur Lächerlichkeit. Angelina Jolie ist dermaßen dürr und sieht krank aus, dass man ihr am liebsten die ganze Zeit einen Schokoriegel reichen würde.