//
archiv

Artikel

Diese Kategorie enthält 0 Artikel

openPM gelauncht

openPM Portal

Das neue Portal von openPM ist gelauncht. openPM ist eine Plattform zum Austausch von Prozesswissen und Erfahrung im Bereich Projektmanagement. Es möchte durch den offenen Ansatz eine Alternative zu geschlossenen Gruppierungen wie z.B. das PMI sein, damit Expertenwissen zu diesem Thema jedem zugänglich ist:

https://www.openpm.info/dashboard.action

systemfeld wird openPM aktiv werden, um den Entwickler-Aspekt in den Gedankenaustausch zum Thema Projektmanagement einzubringen.

Autor: Stephan Scharff-Rahn

 

Web-Sniffer

Screenshot Websniffer

Wer auf die Schnelle Test-Requests an Webserver senden und als auch den Response-Header überprüfen will, sollte sich den freien Web-Service web-sniffer anschauen:

http://web-sniffer.net/

Mit web-sniffer können einfache GET, POST, HEAD und Trace Requests an eine beliebige URL gesendet werden. Zudem lässt sich die zu verwendene HTTP-Version und der User-Agent einstellen.

Autor: Stephan Scharff-Rahn

Guter Artikel: Erstellung eines eigenen Maven-Plugins

systemfeld build buddha

Auf diesen Artikel bin ich heute gestoßen. Er erklärt im Detail das Erstellen und Einbinden eines eigenen Maven-Plugins:

http://www.ronnyfriedland.de/archives/344

JAXB – Generieren und verlieren

systemfeld sf.searchandescue - Notfall-Consulting

Das Mapping-Framework JAXB2 eignet sich perfekt, um XML-Dateien einzulesen und diese in Java-Objekte zu verwandeln – und umgekehrt. Die Java-Klassen für das Mappen des XMLs können einfach mit Hilfe der passenden XSD-Datei und einem Maven-Plugin während des Maven-Build-Lauf generiert werden.

Dem Pluging werden vorher der Ort der XSD-Datei, sowie der Package-Name der zu generierenden Klassen und das Output-Verzeichnis übergeben. Für das Output-Verzeichnis wähle ich immer den seperaten Source-Pfad ${basedir}/generated/src/main/java, um die automatisch erstellten Sourcen vom eigenen Produktiv-Code zu trennen.

Das JAXB2-Plugin hat im Default-Betrieb jedoch die Eigenschaft, vor der Code-Generierung trotz fehlenden clean-Aufrufs das Output-Verzeichnis zu bereinigen.

Wenn auch andere Source-Code generierende Plugins in das gleiche Output-Verzeichnis schreiben und das auch noch vor dem JAXB2-Plugin, wird deren Code wieder gelöscht.

Da ich keine Lust hatte, verschiedene generated-Verzeichnisse anlegen zu lassen oder das Probem durch das Ändern der Plugin-Reihenfolge in der POM zu lösen (JAXB2 first), habe ich mir anders beholfen.

Zuerst wird das JAXB2-Plugin mit der Property clearOutputDir konfiguriert, so dass es das Verzeichnis nicht vorher bereinigt:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <version>1.3.1</version>
    <executions>
        <execution>
            <id>xjc</id>
            <goals>
                <goal>xjc</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <clearOutputDir>false</clearOutputDir> <!-- Löschung des Output-Folders verhindern! -->
        <packageName>de.systemfeld.generated</packageName>
        <schemaDirectory>src/main/resources/</schemaDirectory>
        <outputDirectory>${basedir}/generated/src/main/java</outputDirectory>
    </configuration>
</plugin>

Damit generierte Sourcen trotzdem wieder zurück gesetzt werden können, habe ich das Bereinigen des Output-Verzeichniss mit dem clean-Goal mit Hilfe des Maven-Clean-Plugins gekoppelt:

<plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <filesets>
            <fileset>
                <directory>generated/src/main/java</directory>
                <includes>
                    <include>**/*.java</include>
                </includes>
            </fileset>
        </filesets>
    </configuration>
</plugin>

Auf diese Weise coexistiert das JAXB2-Plugin friedlich mit anderen Code-Generatoren und der generierte Code kann trotzdem gezielt zurück gesetzt werden

Autor: Stephan Scharff-Rahn

Links und Referenzen:

JAXB2 – http://jaxb.java.net/
Maven Clean Plugin – http://maven.apache.org/plugins/maven-clean-plugin/

HTML-Parser jsoup – Teil 1

jsoup

Im aktuellen Projekt bin ich auf eine interessante Bibliothek zum Einlesen und zur Manipulation von HTML gestoßen. Es handelt sich um den HTML-Parser jsoup, der sich in Bezug auf das einzulesende HTML sehr fehlertolerant verhält und mittlerweile HTML5 komplett unterstützt.

Zur Demonstration von jsoup habe ich für die verschiedenen Anwendungsfälle zugehörige Exploring-Tests angelegt und werde diese in jeweils in einzelnen Artikeln vorstellen.

Dieser Artikel behandelt das Einlesen von HTML-Seiten und das Selektieren von Link-Elementen innerhalb von HTMLs mit Hilfe des jsoup-Parsers.

Für das Einsetzen von jsoup innerhalb eines Maven-Projekt muss folgender Dependency-Eintrag in die pom.xml eingetragen werden:

<dependency>
  <groupId>org.jsoup</groupId>
  <artifactId>jsoup</artifactId>
  <version>1.6.1</version>
</dependency>

Mit der folgenden Zeile Java wird eine HTML-Seite via HTTP eingelesen und in das zentrale DOM-Object vom Typ Document abgelegt. Alle weiteren Funktionen zur Selektierung gewünschter HTML-Elemente wie z.B. Links erfolgen über dieses Objekt:

Document pageDocument = Jsoup.connect("http://www.systemfeld.de").get();

Eine weitere Variante ist das Einlesen von HTML in einer Datei:

File file = getFileFromClassPath("systemfeld-startpage.html");
Document pageDocument = Jsoup.parse(file, CharEncoding.UTF_8, "http://www.systemfeld.de");

Mit den folgenden Zeilen werden alle Anchor-Links einer Seite selektiert und nur deren URLs auf die Konsole ausgegeben :

File file = getFileFromClassPath("systemfeld-startpage.html");
Document pageDocument = Jsoup.parse(file, CharEncoding.UTF_8, "http://www.systemfeld.de");
Elements links = pageDocument.select("a[href]");
for (Element link : links) {
  System.out.println("href = " + link.attr("href"));
}

Im nächsten Artikel werden wir näher auf das Selektieren von Elementen nach unterschiedlichen Kriterien eingehen.

Autor: Stephan Scharff-Rahn

Quellen und Links:

jsoup – http://jsoup.org/

God Object

Wer so was baut, gehört verhaut:

Gefunden auf Captain Debug’s Blog

 

 

 

 

 

 

 

Kurzliste der wichtigsten mysql-Textkommandos

systemfeld radar

Kurzliste gängigster Aufruf-Varianten des mysql-Kommando-Clients in Form von Beispielen:

mysql – SQL-Kommando direkt über die Shell:

mysql -u john -pdoe -e "CREATE TABLE foobar(myColumn VARCHAR(255))" mySchemaName

mysql – SQL-Batch aus einer Datei ausführen:

mysqldump -u john -pdoe mySchemaName < dump.sql

mysql – Spalten-Informationen einer Tabelle anzeigen:

mysql> show columns from foobar;

mysqldump – Datenbankdumb in einer Datei speichern:

mysqldump -u john -pdoe mySchemaName > dump.sql

mysqldump – Datenbankdumb aus einer Datei einspielen:

mysqldump -u john -pdoe mySchemaName < dump.sql

Für Faule: Alias für untar

systemfeld sf.searchandescue - Notfall-Consulting
Alle Jubeljahre muss ich in der Shell ein tar.gz-File entpacken und vergesse regelmäßig die korrekten Parametern. Damit ich nicht suchen muss, setze ich mir in der .bashrc-Datei im User-Homefolder folgenden Alias (es gibt tausend Wege, wir nehmen gerade diesen :-) ):

alias untar='tar xvfz '

Danach lassen sich Pakete auf der Konsole tipparm entpacken:

untar johndoe.tar.gz

Hope it helps.

Beste Grüße, Stephan

 

Autor: Stephan Scharff-Rahn

Frohe Weihnachten und eine glückliches Jahr 2012

systemfeld - happy xmas 2011

ObjectiveC IDE von Jetbrains

systemfeld radar

Seit dem 25. Oktober 2011 hat XCode starke Konkurrenz bekommen. Die Firma Jetbrains, die mit ihrer IDE IntelliJ IDEA in der Java-Welt eine starke Fan-Gemeinde aufgebaut hat, hat mit JetBrains AppCode eine neue Objective-C IDE auf den Markt gebracht. Ein Vorteil ist die Kompatibilität mit XCode-Projekten, so dass der Umstieg zur neuen IDE einfach gemacht ist.

Quellen und Links:

http://blog.jetbrains.com/objc/2011/10/appcode-1-0-a-new-ide-for-objective-c-is-generally-available/

Objective-C Schulung für Java-Umsteiger: http://tinyurl.com/6d79xhj

systemfeld - Ich suche Entwickler
systemfeld - Ich suche Projekte
systemfeld campus
Follow

Bekomme jeden neuen Artikel in deinen Posteingang.