Vorträge
Vortrag auf der GearConf 2012: Maven
Ich hatte das glück bei der GearConf 2012 in Düsseldorf
einen Vortrag zum Thema Unit- und Integrations Testing mit Maven halten zu dürfen.
Maven (PDF)
Vortrag auf der GearConf 2011: Maven
Ich hatte das vergnügen bei der GearConf 2011 in Düsseldorf
einen Vortrag zum Thema Maven halten zu dürfen.
Maven (PDF)
Vortrag zum Thema: Grundlagen des Software Konfigurationsmanagemens bei der Java User Group in Frankfurt am Main
Ich hatte das vergnügen bei der Java User Group in Frankfurt am Main
in der Deutschen Nationalbibliothek
einen Vortrag zum Thema:
Grundlagen des Software Konfigurationsmanagement
geben zu dürfen. Dabei war die Frage: Was ist Software Konfigurationsmanagement überhaupt?
Warum ist es in einem Software Projekt überhaupt Notwendig und welche Bereich enthält das Software
Konfigurationsmanagement und wie kann man es überhaupt umsetzen.
Grundlagen Software Konfigurationsmanagement (PDF)
Ich hatte die Gelegenheit bei der Java User Group im Ruhrgebiet in Essen im Unperfekthaus einen
Vortrag zum Thema Hadoop zum Besten geben zu dürfen. Dabei ging es
um die Basis-Konzepte von Hadoop bzw. des Hadoop Distributed File Systems (HDFS) desweiteren um eine Grundlegende Einführung
in Map/Reduce.
Hadoopo Think Large (PDF)
-
Eine oft gemachte Beobachtung in Projekten ist es, dass sich die Struktur eines Projektes mit der Zeit
"entwickelt" und häufig nicht vorher festgelegt wird. Das führt dann zu Problemen im Bereich
des Build, Integration und auch Configuration Management. Leider stellt man diese Probleme erst
sehr spät fest, z.B. durch lange Integrationszeiten, komplexe Build Systeme (oft auch selbst
implementiert) und im Bereich des Configuration Management führt das dazu, dass Releases nur
schwer definierbar sind bzw. überwacht werden können. In einem solch gewachsenen Projekt hat
man oft auch Probleme Erweiterungen über das gesamte System zu implementieren, da eine
vollständige Sicht über das System meist nicht existiert.
Projektorganisation vs. Build- und configuration Management
-
CI Environments sind ja dank Hudson usw. nichts neues mehr. Man kann solche Systeme selbstverständlich
installieren und nutzen. Das Problem das aber bei größ Umgebungen entsteht ist die
Maintanence solcher Systeme? Wie bekommt man Updates gehandhabt? Dazu gehört z.B. Hudson selbst oder
Tools wie z.B. Maven oder andere Tools? Das Problem der Reproduzierbarkeit solcher Systeme wir allzuoft
übersehen bzw. "ignoriert". Das bedeutet, dass ältere
Softwarestände nicht mehr gebaut werden können und wie sieht das
Verhältnis zur Software selbst aus?
Man kann externe Tools nutzen wie z.B. Cfenginge aber warum
nicht vorhandene Mechanismen wie z.B. Maven selbst nutzen, um
hier Abhilfe zu schaffen.
Maintanence von CI Environments
Auf der 4. Subversion Konferenz hatte ich das Vergnügen zwei Vorträge halten zu düfen.
-
Eine oft gemachte Beobachtung in Projekten ist es, dass sich die Struktur eines Projektes mit der Zeit
"entwickelt" und häufig nicht vorher festgelegt wird. Das führt dann zu Problemen im Bereich
des Build, Integration und auch Configuration Management. Leider stellt man diese Probleme erst
sehr spät fest, z.B. durch lange Integrationszeiten, komplexe Build Systeme (oft auch selbst
implementiert) und im Bereich des Configuration Management führt das dazu, dass Releases nur
schwer definierbar sind bzw. überwacht werden können. In einem solch gewachsenen Projekt hat
man oft auch Probleme Erweiterungen über das gesamte System zu implementieren, da eine
vollständige Sicht über das System meist nicht existiert.
Projektorganisation vs. Build- und configuration Management
-
Nach einiger Zeit mit der Arbeit von Subversion wachsen Subversion Repositories sehr stark.
Dann stellt man sich oft die Frage: Welche Tags gibt es? Wann wurde ein Branch erstellt?
Wo werden bestimmte Dateien verwendet oder gar welche Inhalte haben Dateien?
Einige dieser Fragestellungen lassen sich durchaus mit der Kommandozeile und grep lösen
oder auch mit Werkzeugen wie TortoiseSVN. Der Haken dabei ist, dass man hier sehr schnell
an die Grenzen stö&szelig;t, vor allem wenn es um die Inhalte von Dateien geht oder um
Repositories, die mehr als ein paar Revisionen enthalten. SupoSE ist genau dafür
entwickelt worden, solche Fragestellungen zu ermöglichen. In diesem Vortrag soll
SupoSE vorgestellt werden, seine Funktion und auch
die Vorteile und Grenzen von SupoSE.
Die Subversion Suchmaschine (PDF)
Auf der 3. Subversion Konferenz hatte ich das Vergnügen insegesamt vier Vorträge halten zu düfen.
-
SVNKit ist in vielen Anwendungen wie z.B. Eclipse vertreten und ermöglicht mit Java den Zugriff auf
Subversion Repositories und die Nutzung von Arbeitskopien. Aber wie funktioniert das?
Wie kann man das mit SVNKit selbst machen? Der Vortrag soll helfen zum einen die möglichen Anwendung von
SVNKit zu verstehen aber auch die Möglichkeit bieten eigene Anwendungen mit Unterstützung von
Subversion bzw. SVNKit zu entwickeln. Wie kann z.B. ein Checkin mithilfe von SVNKit durchgeführt
werden oder wie kann ein Change Set ausgelesen werden?
Versionierung in Java (PDF)
-
Es gibt unterschiedliche Versionskontroll Werkzeuge die auf unterschiedlichen Ansätzen beruhen wie z.B. git,
mercurial usw. and z.B. auch Subversion aber was sind die Vor- bzw. Nachteile solcher Werkzeuge?
Welches sind die Grundlegenden Konzepte von verteilten- bzw. zentralisierten Versionskontroll Werkzeugen?
To be DVCS or not to be (PDF)
-
Häufig tritt das Problem auf, dass nach bestimmten Dateien oder Inhalten innerhalb von Subversion
Repositories gesucht werden muss. Mithilfe von vorhandenen Frameworks wie z.B. Lucene, Quartz, SVNKit etc. ist
es möglich eine Suchmaschine zu erstellen, die mehrere Repositories scannt und die Inhalte zur Verfügung
stellt und somit eine Suche innerhalb von mehreren Repositories ermöglicht. Damit ist es sehr einfach
möglich, Inhalte etc. einfach und schnell zu suchen.
SupoSE (Subversion Repository Search Engine) bietet genau diese Funktionalität.
Sinn und Zweck ist es, die Suchmaschine und deren Konzept vorzustellen und auch, welche
Möglichkeiten geboten werden und welche nicht. Hier wären Rückmeldungen der Besucher
hilfreich, um zu sehen, welche Erweiterungen benötigt werden und welche nicht.
Subversion Repository Search Engine (SupoSE) (PDF)
-
Es gibt unterschiedliche Tools, um die Zusammenarbeit im Rahmen einer Softwarentwicklung zu verbessern.
Dazu zählen sog. Software Collaborations Lösungen. Hier sind aus dem Bereich OpenSource z.B. Trac,
Redmine, FusionForge (ehemals GForge) zu nennen. Im Rahmen des Vortrags wird Redmine dargestellt, welche Vor- und Nachteile
die es hat. Dazu zählt beispielsweise die Installation und die Integration mit anderen Werkzeugen z.B.
mit der Versionskontrolle (z.B. Subversion) weiterhin wird gezeigt welche Arten der Konfiguration
möglich ist und wie Redmine in der Täglichen Anwendung zu nutzen ist.
Redmine (PDF)
Redmine ein Projekt-Management-Tool
Unter den verschiedenen Werkzeugen, die die Zusammenarbeit bei der Software-Entwicklung unterstützen,
gibt es die Gruppe der Software-Collaboration-Tools; im Bereich OpenSource z.B. Trac und Redmine.
Im Vortrag werden die Vor- und Nachteile von Redmine demonstriert, wie etwa bei der Installation und Integration
mit anderen Tools wie Versionskontroll-Systeme (Subversion). Weiterhin wird die Konfiguration erläutert
und der Einsatz des Tools bei der laufenden Arbeit.
Redmine - ein Projekt-Management-Tool (PDF)
Die Qual der Versionen
Häufig tritt das Problem auf, dass nach bestimmten Dateien oder Inhalten innerhalb von Subversion Repositories
gesucht werden muss. Mithilfe von vorhandenen Frameworks wie z.B. Lucene, Quartz, SVNKit etc. ist es möglich,
eine Suchmaschine zu erstellen, die mehrere Repositories scannt und die Inhalte zur Verfügung stellt und somit
eine Suche innerhalb von mehreren Repositories ermöglicht. Damit ist es sehr einfach möglich,
Inhalte etc. einfach und schnell zu suchen. SupoSE (Subversion Repository Search Engine)
bietet genau diese Funktionalität. Im Vortrag werden die Suchmaschine und deren Konzept vorgestellt und gezeigt,
welche Möglichkeiten geboten werden und welche nicht.
Subversion Repository Search Eingine (SupoSE) (PDF)
-
Im Bereich der Java Entwicklung hat sich in der Zwischenzeit Maven 2 als neuer Standard gegenüber dem
bisherigen Ant durchgesetzt. Die Gründe dafür liegen klar auf der Hand. Die Erstellung eines Build Prozesses mit
Maven gestaltet sich in der Regel einfacher und bietet von Anfang an mehr Möglichkeiten. Es ist möglich,
die Erstellung eines JAR-Files mit sehr wenig Maven 2 Konfiguration zu bewerkstelligen. In diesem Zusammenhang
wird out-of-the-Box ein Unit Test geboten. Wichtig ist dabei, dass man sich das Basis Konzept von Maven zu eigen macht:
Konvention über Konfiguration. Das bedeutet, dass die Java Projekte in einer bestimmten Art und Weise organisiert sein müssen.
Das fängt bei der Verzeichnisstruktur an, geht über den Unit- und Integrationstest, Paketierung und hört beim
Deployment auf. Der Vortrag stellt die grundlegende Vorgehensweise dar, um einen Build auf Maven aufzubauen.
Dazu gehört die Kompilierung der Java Quellen. Der nächste Schritt ist die Integration eines Unit
Tests in den Build, wie und wann der abläuft. Danach folgt die Paketierung und wie man spezifische
Anforderungen zur Paketierung erfüllen kann. Ein weitere Schritt ist die Implementierung eines Integrationstests
und zu guter Letzt das Deployment von entsprechenden Artefakten.
Der Weisheit letzer Schluss: Maven 2 in der Java Entwicklung (PDF)
-
Die Notwendigkeit eines Projektmanagement Werkzeuges ist heute nicht mehr die Frage sondern welches?
Es gibt verschiedene Werkzeuge, um die Übersicht innerhalb eines Projektes zu behalten.
Der Vortrag geht auf die Installation von Redmine ein, um eine Einschätzung für einen konkreten Einsatz zu bekommen.
Das bedeutet, dass auch die Komplexität der Installation betrachtet wird und selbstverständlich auch der Zeitaufwand.
Der nächste Schritt ist der Bereich der Administration und Einrichtung von Projekten, die mit Redmine verwaltet
werden sollen. Dabei geht es darum, welche Möglichkeiten der Konfiguration bestehen und welche Grenzen in Redmine
existieren. Der Bereich der Nutzung wird detailliert beleuchtet, um genau die Möglichkeiten zu sehen, die Redmine bietet.
Hier wird betrachtet, wie die Interaktion mit Versionskontrollwerkzeugen von statten geht und auch der Workflow von Issues
(z.B. Bugs, ToDo's, Patches). Es wird gezeigt, wie mithilfe des integrierten Wiki's entsprechende Dokumentationen
f¨r Projekte erstellt werden können und wie die Verkn¨pfung der unterschiedlichen Bereich untereinander durchgeführt
wird. Die Übersicht über ein Projekt kann sehr einfach durch die Betrachtung der Roadmap geschehen. Die Roadmap kann
nat¨rlich auch zur Planung eines Projektes eingesetzt werden. Dazu dient auch zusätzlich die Möglichkeit Gantt Charts
zu erzeugen und die Integration in den Kalender. In Redmine ist auch eine recht einfache aber sehr effektive
Aufwandserfassung enthalten, die zur Erstellung von Berichten genutzt werden kann und somit einen weiteren Baustein
zum Projektmanagement beiträgt. Die weiteren Bereiche wie Foren, Dateiablage etc. werden auch entsprechende dargestellt
und deren Einsatz und Nutzung betrachtet. Die Projektadministration wird im Vergleich zur Redmine Administration betrachtet,
um zu sehen welche Möglichkeiten ein Projektadministrator hat. Abschliessend ein Vergleich mit anderen Systemen wie z.B.
trac oder GForge runden die Betrachtung ab.
Redmine, das Projekt Management Werkzeug (PDF)
Vortrag auf den Chemnitzer Linux Tagen 2009
Entwicklung heute bedeutet auch immer eine Übersicht über die Entwicklung zu haben,
aber vor allem diese zu behalten. Das bedeutet, es muss ein entsprechendes Werkzeug
eingesetzt werden, das das ermöglicht.
Im Rahmen des Vortrages wird die Projektmanagement-Software Redmine vorgestellt,
die die genannte Aufgabe übernehmen soll. Neben Installation, Nutzung und
Konfiguration werden auch die Vor- und Nachteile von Redmine erläutert.
Redmine the project management tool (PDF)
Vortrag auf den Chemnitzer Linux Tagen 2009 (Projektküche)
Im Rahmen der Linux Nacht hatte
ich netterweise die Gelegenheit, das Open Source Projekt SupoSE vorstellen zu düfen.
The Subversion Repository Search Engine (SupoSE) (PDF)
Im Rahmen des Powertrack Subversion habe ich auf der
Subversion Conference 2008 in München
insgesamt vier Vorträge gehalten.
-
Die Anwendung von Branching Strategien wird oft aus Unkenntnis vernachläßigt.
Mithilfe von entsprechenden Strategien kann man das Projektmanagement
unterstützen oder z.B. die Entkopplung von Entwicklung und Deployment
erreichen. Ein weiterer wichtiger Punkt ist die Möglichkeit, eine
Qualitätsverbesserung zu erreichen. Typische Indikatoren, die für den Einsatz
solcher Strategien sprechen, ist das wiederholte auftauchen von Fehlern, die
bereits in einer älteren Version beseitigt wurden. Ein Punkt, der an
Wichtigkeit zunimmt, ist die Kommunikation mit dem Kunden, da heute oft auch
für Kunden entwickelt wird, die selbst eine Softwareentwicklung besitzen, die
auf den eigenen Ergebnissen aufsetzt. Welche Release hat der Kunde? Welche Bugs
wurden gelöst? Welche Features wurden implementiert? etc. Das sind typische
Fragen, bei der eine entsprechende Branchingstrategie helfend zur Seite stehen
und Unklarheiten beseitigen kann. Im Rahmen der Anwendung von Branching
Strategien ergeben sich meist auch Verbesserungen für die Bereiche Release-,
Build-, Test- und Change-Management.
Branching Strategies (PDF)
-
Es gibt unterschiedliche Tools, um die Zusammenarbeit im Rahmen einer
Softwarentwicklung zu verbessern. Dazu zählen sog. Software Collaborations
Lösungen. Hier sind aus dem Bereich OpenSource z.B. Trac,
Redmine, GForge zu
nennen. Im Rahmen des Vortrags wird dargestellt, welche Vor- und Nachteile die
einzelnen Werzeuge besitzen. Dazu zählt beispielsweise die Installation und die
Integration mit anderen Werkzeugen z.B. mit der Versionskontrolle (z.B.
Subversion).
Software Collarboration with OpenSource (PDF)
-
Subversion bietet mit den Hook-Scripten eine sehr flexible Schnittstelle, die
es ermöglicht, verschiedenste Pr¨fungen auf die Übertragenen Daten zu
ermöglichen. Dabei sind die einfachsten; z.B. Prüfung, ob die Log-Nachricht
eine bestimmte Länge hat oder einem bestimmten Format entspricht; nur die
Spitze des Eisberges. Es besteht die Möglichkeit ein Berechtigungssystem
abseits vom Gebotenen zu entwickeln. Weiterhin können bestimmte Prüfungen auf
Properties etc. durchgeführt werden, um hier die Möglichkeit zu eröffnen
verschieden Properties als obligatorisch zu definieren.
Hook'oholic (PDF)
-
Häufig tritt das Problem auf, dass nach bestimmten Dateien oder Inhalten
innerhalb von Subversion Repositories gesucht werden muss. Mithilfe von
vorhandenen Frameworks wie z.B. Lucene, Quartz,
SVNKit etc. ist es möglich
eine Suchmaschine zu erstellen, die mehrere Repositories scannt und die
Inhalte zur Verfügung stellt und somit eine Suche innerhalb von mehreren
Repositories ermöglicht. Damit ist es sehr einfach möglich, Inhalte etc.
einfach und schnell zu suchen. SupoSE (Subversion Repository Search Engine)
bietet genau diese Funktionalität.
Sinn und Zweck ist es, die Suchmaschine und deren Konzept vorzustellen und
auch, welche Möglichkeiten geboten werden und welche nicht. Hier wären
Rückmeldungen der Besucher hilfreich, um zu sehen, welche Erweiterungen
benötigt werden und welche nicht.
SupoSE (PDF)
Der Vortrag behandelt die Nutzung, Konzepte und Installation von SVK, als
Aufsatz auf Subversion zur verteilten Entwicklung.
Hierbei werden die unterschiedlichen Konzepte zur Nutzung aufgezeigt und sowohl
die Vor- als auch die Nachteile vorgestellt. Weiterhin werden im Rahmen des Vortages
die unterschiedlichen Anwendungsfälle dargestellt.
Bringing Subversion to the next level? (PDF)
Vortrag auf der Open Source Datenbank Conference 2006
db4o die Alternative?
Die Nutzung von objekt orientierten Datenbanken ist bisher nicht
sehr populär, wie auch immer, db4o stellt eine reale Alternative
zu normalen Datenbanken dar. Eine OO Datenbank die gleichzeitig noch eine
embedded Datenbank ist, kann sehr einfach genutzt werden und kommt
ohne administrativen Aufwand aus. Die Application selbst und die
Grenzen der Nutzen werden dargestellt.
db4o die Alternative? (PDF)
Vortrag auf der PHP Conference 2006
Business Integration von GForge per SOAP
GForge ist ein Plattform, die eine Integration von Bug-Tracker, Wiki,
Issue-Tracking und Versionskontrolle bietet. Hier geht es um die Integration
von GForge per SAOP in Form eines "Proof of Concepts" in Richtung Java.
Dabei wird auf die Probleme im Bereich SOAP eingegangen und gezeigt,
wie einfach die Integration durch die Anwendung von SOAP wird.
Business Integration mit GForge (PDF)
Vortrag auf der PHP Conference 2006
Einfaches Testen von Webapplikationen mit SimpleTest
Anwendung und Nutzung von SimpleTest im Bereich des Testens von Webapplikationen.
Hierbei werden die Möglichkeiten und Grenzen von SimpleTest aufgeführt und einige
Beispiele zur Nutzung dargestellt. Es ist auch wichtig, die Testergebnisse in
Form von Reports zur Verfügung zu stellen
SimpleTest (PDF)
Vortrag auf der FrOSCon 2006
In der Software Entwicklung werden Bug-Tracker, Wikis und Versionskontrollsysteme eingesetzt.
Das Problem ist, dass diese Komponenten meist alleine stehen und auch entsprechend genutzt werden.
Es ist aber wichtig und auch sinnvoll eine Kombination aller Kompontenen.
Das heiß t eine Verknüpfung der Komponenten (Wiki, Bug-Tracker und Versionskontrollsystem).
Genau das macht Trac.
Software Collaboration mit Trac (PDF)
Vortrag auf der FrOSCon 2006
Die Verwendung von Subversion ist ja schon recht verbreitet,
aber was ist wenn man täglich unterwegs ist und keine oder nur eine
sporadische Verbindung mit einem Repository Server hat? Dann ist SVK das Werkzeug der Wahl.
Verteiltes Versionsmanagement mit SVK (PDF)
Vortrag auf den Chemnitzer Linux Tagen 2006
Subversion erlangt immer mehr an Bedeutung auch im heimischen Bereich. Hier werden die
ersten Schritte vorgestellt, Erstellung eines Repositories, Import des ersten Projektes
in Subversion usw. Es wird auch auf die Installation von Subversion eingegangen.
Einführung in Subversion (PDF)
Vortrag auf der PHPConference 2005
Das Testen von Web-Applikationen ist immer ein Problem und meist mit Aufwand
verbunden. Hier setzt die Möglichkeit an mithilfe von Web-Tests in Form von JWebUnit
den Test-Aufwand und die Pflege zu minimieren. Ein weiteres Ziel ist es solche Tests
zu automatisieren. Das kann durch die Anwendung mit Ant erreicht werden. Ein weiteres Problem
im Zusammenhang mit Web-Applikationen ist, dass meist immer Datenbank beteiligt sind.
Dafür gibt es aber auch Lösungen. Weitere Details können Sie im Vortrag nachlesen,
oder Sie treten einfach per EMail mit mir in Kontakt.
Welten vereinigt euch! Testen von PHP Applikationen mit Java Tools (PDF)
|