<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Java Blog</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/" />
    <link rel="self" type="application/atom+xml" href="http://www.joergherbst.de/atom.xml" />
    <id>tag:www.joergherbst.de,2011-08-02://2</id>
    <updated>2011-10-10T06:24:13Z</updated>
    <subtitle>A blog about java technology, software development and all the strange things that happen in life!</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 5.12</generator>

<entry>
    <title>Creating Groovy Test Case in Maven Projects</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/2011/10/creating-groovy-test-case-in-maven-projects.html" />
    <id>tag:www.joergherbst.de,2011://2.87</id>

    <published>2011-10-10T06:10:49Z</published>
    <updated>2011-10-10T06:24:13Z</updated>

    <summary>In most of my projects I&apos;m using maven as my prefered build tool. The tool is pretty mature and if you&apos;re build process doesn&apos;t change that often it ist ok. If you need a more flexible build process, ant or...</summary>
    <author>
        <name>joerg</name>
        
    </author>
    
    <category term="apachemaven" label="Apache Maven" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="buildmanagement" label="Build Management" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="groovy" label="Groovy" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="de" xml:base="http://www.joergherbst.de/">
        <![CDATA[In most of my projects I'm using <a href="http://maven.apache.org/">maven</a> as my prefered build tool. The tool is pretty mature and if you're build process doesn't change that often it ist ok. If you need a more flexible build process, ant or gradle may be the tools of your choice.<div>Maven ist out the box great when doing "pure" java projects. But personally I like <a href="http://groovy.codehaus.org/">groovy</a>&nbsp;cause some things are really nice and done with much less coding and I compiles to java byte code. So even when my customer says we just want java code and could write some groovy code.</div><div>&nbsp;I n praxis I'm using groovy to write some Test Cases. The <a href="http://groovy.codehaus.org/Strings+and+GString">multiline string feature</a> is a great advantage if you want to test some parsing or text generating code. When including the <a href="http://groovy.codehaus.org/Eclipse+Plugin">Groovy Eclipse plugin</a> this works in my IDE but not in out maven build process, so I need some more steps:</div><div><ol><li>I've got to put my groovy code in a directory src/test/groovy (Convention over configuration) or src/main/groovy</li><li>I've got to add the gmaven plugin in my build process</li><li>I need to provide a groovy runtime for my testcases</li></ol>Here ist an example of my pom.xml:</div>

<pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"><code>      &lt;plugin&gt;
        &lt;groupId&gt;org.codehaus.gmaven&lt;/groupId&gt;
        &lt;artifactId&gt;gmaven-plugin&lt;/artifactId&gt;
        &lt;version&gt;1.3&lt;/version&gt;
        &lt;executions&gt;
          &lt;execution&gt;
            &lt;goals&gt;
              &lt;goal&gt;compile&lt;/goal&gt;
              &lt;goal&gt;testCompile&lt;/goal&gt;
            &lt;/goals&gt;
          &lt;/execution&gt;
        &lt;/executions&gt;
      &lt;/plugin&gt;
...
    &lt;dependency&gt;
      &lt;groupId&gt;org.codehaus.gmaven.runtime&lt;/groupId&gt;
      &lt;artifactId&gt;gmaven-runtime-1.7&lt;/artifactId&gt;
      &lt;version&gt;1.3&lt;/version&gt;
      &lt;exclusions&gt;
        &lt;exclusion&gt;
          &lt;groupId&gt;org.sonatype.gossip&lt;/groupId&gt;
          &lt;artifactId&gt;gossip&lt;/artifactId&gt;
        &lt;/exclusion&gt;
      &lt;/exclusions&gt;
      &lt;scope&gt;test&lt;/scope&gt;
    &lt;/dependency&gt;
</code></pre>
]]>
        
    </content>
</entry>

<entry>
    <title>Something complete different - Posting in english</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/2011/10/something-complete-different---posting-in-english.html" />
    <id>tag:www.joergherbst.de,2011://2.86</id>

    <published>2011-10-04T09:52:55Z</published>
    <updated>2011-10-04T10:00:10Z</updated>

    <summary>I started this blog as &quot;german block about java, technology and a lot of other stuff&quot; cause I wanted to share my experiences when writing code. I managed to make a least one post / month. That&apos;s not much but...</summary>
    <author>
        <name>joerg</name>
        
    </author>
    
    <category term="englishlanguage" label="English language" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="de" xml:base="http://www.joergherbst.de/">
        <![CDATA[I started this blog as "german block about java, technology and a lot of other stuff" cause I wanted to share my experiences when writing code. I managed to make a least one post / month. That's not much but more than nothing.<div><br /></div><div>After changing the technology this summer I although redefine the content now. Most of the research I do on the web I do in english, the whole Java API is available in english, framework documentation is done in english (OK today the is often also a chinese version) &nbsp;so people have almost no chance to find my blog when my posting are available in german.&nbsp;</div><div><br /></div><div>Cause I just don't have the time for translation, starting today some post will be english and some german.</div>

<div class="zemanta-pixie" style="margin-top:10px;height:15px"><a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"><img class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=83c6e331-f226-4eb2-95a0-57c4473e9eb8" alt="Enhanced by Zemanta" style="border:none;float:right" /></a></div>]]>
        
    </content>
</entry>

<entry>
    <title>jquery datable with JEE</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/2011/10/jquery-datable-with-jee.html" />
    <id>tag:www.joergherbst.de,2011://2.85</id>

    <published>2011-10-04T09:47:21Z</published>
    <updated>2011-10-04T09:52:48Z</updated>

    <summary><![CDATA[I just found this quite helpful article with examples for integration the jquery datatable pluin with a JEE backend.http://datatables.net/&nbsp;For a modern web application "rich" tables are a central component when displaying enterprise business data. There are several jquery components for...]]></summary>
    <author>
        <name>joerg</name>
        
    </author>
    
    
    <content type="html" xml:lang="de" xml:base="http://www.joergherbst.de/">
        <![CDATA[I just found this quite helpful article with examples for <a href="http://www.codeproject.com/KB/java/JQuery-DataTables-Java.aspx">integration the jquery datatable pluin with a JEE backend</a>.<a href="http://datatables.net/">http://datatables.net/</a>&nbsp;<div>For a modern web application "rich" tables are a central component when displaying enterprise business data. There are several jquery components for handling tables, but <a href="http://datatables.net/">jquery datatables</a> seems to be the most mature one.</div><div>Cause most of my data is created using ajax, I need some server side code, although creating ajax data is no rocket science the examples shown above seem to be quite helpful when checking the syntax of your response.</div>]]>
        
    </content>
</entry>

<entry>
    <title>Fast wie im wirklichen Leben - Technische Probleme gelöst</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/2011/10/fast-wie-im-wirklichen-leben---technische-probleme-gelost.html" />
    <id>tag:www.joergherbst.de,2011://2.84</id>

    <published>2011-10-03T15:32:30Z</published>
    <updated>2011-10-03T15:35:02Z</updated>

    <summary>Man merkt mal wieder, dass es doch nur Hobby ist und ein einfach die Zeit fehlt sich um alles zu kümmern.In den letzten Tagen gab es Probleme mit der Kommentar und der Suchfunktion. Die sollte jetzt hoffentlich wieder funktionieren.Ich habe...</summary>
    <author>
        <name>joerg</name>
        
    </author>
    
    
    <content type="html" xml:lang="de" xml:base="http://www.joergherbst.de/">
        <![CDATA[Man merkt mal wieder, dass es doch nur Hobby ist und ein einfach die Zeit fehlt sich um alles zu kümmern.<div>In den letzten Tagen gab es Probleme mit der Kommentar und der Suchfunktion. Die sollte jetzt hoffentlich wieder funktionieren.</div><div><br /></div><div>Ich habe auch einige nette inhalte suche aber gerade noch eine Funktion wie ich Quellcode sauber formatieren kann, dann gibt es auch wieder mehr zum Thema programieren.</div>]]>
        
    </content>
</entry>

<entry>
    <title>Eine einzelne Datei aus SVN ausschecken</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/2011/09/eine-einzelne-datei-aus-svn-ausschecken.html" />
    <id>tag:www.joergherbst.de,2011://2.83</id>

    <published>2011-09-21T12:09:21Z</published>
    <updated>2011-09-21T12:13:06Z</updated>

    <summary></summary>
    <author>
        <name>joerg</name>
        
    </author>
    
    <category term="subversion" label="Subversion" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="svn" label="SVN" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="de" xml:base="http://www.joergherbst.de/">
        <![CDATA[<br />]]>
        <![CDATA[Heute hatte ich mal wieder das Thema. Aus einem relativ großen SVN Tree benötigte ich nur eine einzelne Datei, wollte aber nicht den kompletten Tree ausschecken. Dabei bin ich auf folgende Lösung gestoßen:<div><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; "><pre style="margin-bottom: 10px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; overflow-x: auto; overflow-y: auto; width: auto; max-height: 600px; "><code style="border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; ">svn checkout &lt;url_of_big_dir&gt; &lt;target&gt; --depth empty
cd &lt;target&gt;
svn up &lt;file_you_want&gt;</code></pre></span>Funktioniert schnell und sehr zuverlässig solange man einen Command Line SVN Client auf dem System hat.</div><div><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; white-space: pre; background-color: rgb(238, 238, 238); ">Quelle: <a href="http://stackoverflow.com/questions/122107/checkout-one-file-from-subversion">http://stackoverflow.com/questions/122107/checkout-one-file-from-subversion</a></span></div>]]>
    </content>
</entry>

<entry>
    <title>Neue Technik live</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/2011/09/neue-technik-live.html" />
    <id>tag:www.joergherbst.de,2011://2.82</id>

    <published>2011-09-14T15:27:39Z</published>
    <updated>2011-09-14T15:32:38Z</updated>

    <summary>Ich hatte es ja schon angekündigt, heute war es dann endlich soweit. Das neue Blog ist online! In den letzten Wochen hatte ich meinen (für meinen Geschmack schlicht zu teuren) Webspace umgebaut und auf einen neuen Server gelegt, wo ich...</summary>
    <author>
        <name>joerg</name>
        
    </author>
    
    
    <content type="html" xml:lang="de" xml:base="http://www.joergherbst.de/">
        <![CDATA[Ich hatte es ja schon angekündigt, heute war es dann endlich soweit. Das neue Blog ist online! In den letzten Wochen hatte ich meinen (für meinen Geschmack schlicht zu teuren) Webspace umgebaut und auf einen neuen Server gelegt, wo ich auch schon mal am Überarbeiten war, habe ich natürlich ;-) auch gleich die Technik umgestellt.<div>Es arbeitet jetzt nicht mehr Wordpress sondern <a href="http://www.movabletype.org/">moveabletype</a>. Für meine Begriffe war Wordpress ganz ok, aber moveabletype macht einen etwas runderen und vor allem schnelleren Eindruck (es werden statische Seiten publiziert).</div><div>Leider konnte ich beim Umzug nicht alle URLs beibehalten (mir fehlt schlichtweg die Zeit), so dass ich mich schon mal für alle toten Links entschuldigen möchte. Wenn irgendetwas gar nicht funktioniert darf aber natürlich jeder gerne Posten.</div><div>Sobald ich die ersten Erfahrungen mit dem neuen System habe, werde ich natürlich auch darüber schreiben.</div>]]>
        
    </content>
</entry>

<entry>
    <title>Neue Technik</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/2011/08/neue-technik.html" />
    <id>tag:web1.j.anxia.org,2011:/java_blog//2.1</id>

    <published>2011-08-07T11:51:37Z</published>
    <updated>2011-08-07T12:02:52Z</updated>

    <summary>Das ist der erste Post von der neuen Plattform, nachdem ich eine ganze weile mit Wordpress gearbeitet habe, habe ich das Blog jetzt auf einen neuen Rechner verlegt und bei der Gelegenheit auch die Technik geändert. Anstelle von Worpress arbeite...</summary>
    <author>
        <name>joerg</name>
        
    </author>
    
    <category term="wordpress" label="Wordpress" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="de" xml:base="http://www.joergherbst.de/">
        <![CDATA[Das ist der erste Post von der neuen Plattform, nachdem ich eine ganze weile mit Wordpress gearbeitet habe, habe ich das Blog jetzt auf einen neuen Rechner verlegt und bei der Gelegenheit auch die Technik geändert. Anstelle von Worpress arbeite ich jetzt mit moveable Type. Dabei ist mir persönlich eigentlich relativ irrelevant, dass die Plattform nicht mit PHP sondern mit PERL arbeitet, sondern dass es einen statischen Publizierungsprozess gibt. Das sollte sowohl schneller als auch stabiler funktionieren als die dynamische Seitenerzeugung mit PHP.

<div class="zemanta-pixie" style="margin-top:10px;height:15px"><a class="zemanta-pixie-a" href="http://www.zemanta.com/" title="Enhanced by Zemanta"><img class="zemanta-pixie-img" src="http://img.zemanta.com/zemified_e.png?x-id=a52e33de-81c4-4530-80ed-11cf6630e167" alt="Enhanced by Zemanta" style="border:none;float:right" /></a></div>]]>
        
    </content>
</entry>

<entry>
    <title>Alles neu macht der... Juni - Neuer Rechner</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/2011/07/alles-neu-macht-der-juni-neuer-rechner.html" />
    <id>tag:web1.j.anxia.org,2011:/java_blog//2.81</id>

    <published>2011-07-22T20:24:19Z</published>
    <updated>2011-08-07T15:29:53Z</updated>

    <summary>Wie leider allzuoft in der EDV kommt auch hier das neue nicht im Mai sondern erst im Juni. Habe seit einigen Wochen einen neuen Rechner und bin dabei auch von Windows zum Mac gewechselt. In Kürze gibt es dann auch...</summary>
    <author>
        <name>joerg</name>
        
    </author>
    
    
    <content type="html" xml:lang="de" xml:base="http://www.joergherbst.de/">
        Wie leider allzuoft in der EDV kommt auch hier das neue nicht im Mai sondern erst im Juni. Habe seit einigen Wochen einen neuen Rechner und bin dabei auch von Windows zum Mac gewechselt. In Kürze gibt es dann auch hier wieder mehr updates, dann wohl auch einiges zum Thema Apple.
        
    </content>
</entry>

<entry>
    <title>Mehr sehen, mehr testen - Hilfreiche Eclipse Plugins für Test und Logfiles</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/2011/05/mehr-sehen-mehr-testen-hilfreiche-eclipse-plugins-fur-test-und-logfiles.html" />
    <id>tag:web1.j.anxia.org,2011:/java_blog//2.80</id>

    <published>2011-05-24T14:33:36Z</published>
    <updated>2011-08-07T15:29:53Z</updated>

    <summary>Ich war in den letzten Tagen gezwungen Eclipse mal wieder neu zu installieren und musste daher auch mal wieder meine Plugins durchforsten. Nach dem ich die üblichen Verdächtigen für Subversion, Maven und Tomcat recht schnell instlliert hatte, fiel mir aber...</summary>
    <author>
        <name>joerg</name>
        
    </author>
    
    
    <content type="html" xml:lang="de" xml:base="http://www.joergherbst.de/">
        <![CDATA[Ich war in den letzten Tagen gezwungen Eclipse mal wieder neu zu installieren und musste daher auch mal wieder meine Plugins durchforsten. Nach dem ich die üblichen Verdächtigen für Subversion, Maven und Tomcat recht schnell instlliert hatte, fiel mir aber doch auf das ein paar kleine aber für mich persönlich doch sehr hilfreiche Plugins fehlten:
<ul>
	<li>Zum einem habe ich <a href="http://moreunit.sourceforge.net/">MoreUnit</a> nachinstalliert. Ein Plugin das es ermöglicht zwischen der zu testenden und der getesteten Klasse direkt hin und her zu springen. Da bei mir Testklassen nach der Maven Konvention immer im selben Package aber nicht im selben Verzeichnis liegen (Produktiv unter src/main/java, Testklassen unter src/test/java) ist es in Eclipse manchmal ziemlich umständlich hin und her zu springen. Das erleichert dieses Plugin ungemein.</li>
	<li>Zum zweiten habe ich das <a href="http://marian.musgit.com/projects_grepconsole.php">Grep Console Plugin</a> installiert. Normalerweise verwenden ich slf4j um Logausgaben zu schreiben, bei der Entwicklung in der Regel auf die Console (Produktiv natürlich in ne Datei).  Wenn das Logging recht ausführlich ist, kann man die eine oder andere wichtige Ausgabe schnell mal übersehen. Mit dem Plugin kann man die Ausgaben anhand von regulären Ausdrücken farbig hinterlegen. So werden bei mir ERROR Meldungen sofort rot hinterlegt, und ausgaben die sich auf meinen aktuelle gerade in Entwicklung befindlichen Code beziehen fett gedruckt. Das spart mir die sonst gerne von Entwicklern verwenden ******** oder ähnlichen unschönen Ausgaben (die dann manchmal sogar commited werden).</li>
</ul>]]>
        
    </content>
</entry>

<entry>
    <title>Ähnlich aber nicht gleich - Garbage Collection bei SUN, BEA und IBM</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/2011/05/ahnlich-aber-nicht-gleich-garbage-collection-bei-sun-bea-und-ibm.html" />
    <id>tag:web1.j.anxia.org,2011:/java_blog//2.79</id>

    <published>2011-05-12T06:07:31Z</published>
    <updated>2011-08-07T15:29:53Z</updated>

    <summary>Die Garbage Collection der JVM ist eine praktische Sache und ich glaube kaum ein Java Programmierer möchte da drauf verzichten. Allerdings hat die Bequemlichkeit seinen Preis, Memory Leaks und intensive Garbage Collection sind fast immer ein Nadelöhr wenn es um...</summary>
    <author>
        <name>joerg</name>
        
    </author>
    
    
    <content type="html" xml:lang="de" xml:base="http://www.joergherbst.de/">
        <![CDATA[Die Garbage Collection der JVM ist eine praktische Sache und ich glaube kaum ein Java Programmierer möchte da drauf verzichten. Allerdings hat die Bequemlichkeit seinen Preis, Memory Leaks und intensive Garbage Collection sind fast immer ein Nadelöhr wenn es um Performance geht. Daher gibt es im Netz eine ganze Menge Artikel wie Gargabe Collection funktioniert (und wie man daher seine Objekte verwalten sollte), vieles davon ist allgemeine Best Practice, aber manche Sachen unterscheiden sich auch von Herstelle zu Hersteller.

Leider beziehen sich fast alle Artikel (die nicht gerade vom Hersteller der jeweiligen JVM stammen)  immer nur auf Sun (bzw. jetzt Oracle) Virtual Maschine und vernachlässigen das es mit der BEA und der IBM JVM noch zwei weitere verbreitete Virtual Maschines gibt, die aber Garbage Collection doch etwas anders lösen. Dynatrace hat diese Tage einen schönen Artikel veröffentlich, der die <a href="http://blog.dynatrace.com/2011/05/11/how-garbage-collection-differs-in-the-three-big-jvms/">Gargabe Collection auf unterschiedlichen Systemen</a> einmal bescheibt.

Persönlich halte ich es übrigens für sinnvoll einmal zu verstehen wie Garbage Collection funktionier, halte aber wenig davon Java Code für eine spezielle JVM zu optimieren. Klar gibt es Best Practice (wenige Objekte, kurzer Lebenszyklus, keine zyklischen Abhängigkeiten...) aber Java Code sollte eigentlich auf jeder Plattform und damit auch auf jeder JVM laufen, wenn man zuviel an der Garbage Collection schrauben muss, hat man in der Regel schon bei der Architektur etwas falsch gemacht.]]>
        
    </content>
</entry>

<entry>
    <title>Es bleibt wie es ist - Die typischen JEE Probleme</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/2011/05/es-bleibt-wie-es-ist-die-typischen-jee-probleme.html" />
    <id>tag:web1.j.anxia.org,2011:/java_blog//2.78</id>

    <published>2011-05-06T15:00:37Z</published>
    <updated>2011-08-07T15:29:53Z</updated>

    <summary>Ich bin heute eher zufällig auf Folien von Eberhard Wolff (Spring Source) gestoßen die er für die JAX 2009 gemacht hat, und habe erst beim zweiten Lesen festgestellt das die Folien bereits 2 Jahre alt sind. Es gibt ne Menge...</summary>
    <author>
        <name>joerg</name>
        
    </author>
    
    
    <content type="html" xml:lang="de" xml:base="http://www.joergherbst.de/">
        <![CDATA[Ich bin heute eher zufällig auf Folien von Eberhard Wolff (Spring Source) gestoßen die er für die <a href="http://jax.de">JAX </a>2009 gemacht hat, und habe erst beim zweiten Lesen festgestellt das die Folien bereits 2 Jahre alt sind. Es gibt ne Menge neue Frameworks, sogar neue Sprachen auf der Java Plattform aber die  <a href="http://www.slideshare.net/ewolff/10-typical-problems-in-enterprise-java-applications">typischen Java EE Probleme</a> bleiben doch immer noch die selben.

Das es 10 typische Probleme sind bleibt ja außer Frage, aber sind es auch die 10 häufigsten bzw. die 10 kritischsten?]]>
        
    </content>
</entry>

<entry>
    <title>Damals und heute - Neue Webseite zur AS/400 Entwicklung</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/2011/05/damals-und-heute-neue-webseite-zur-as400-entwicklung.html" />
    <id>tag:web1.j.anxia.org,2011:/java_blog//2.77</id>

    <published>2011-05-01T10:22:45Z</published>
    <updated>2011-08-07T15:29:53Z</updated>

    <summary>In meinem Job habe ich relativ viel mit Kunden zu tun, die sich vor Jahren für eine IBM AS/400 als strategische Plattform entschieden haben. Häufig befindet sich ein Großteil der zentralen IT Systeme auf dieser Plattform, die insbesondere für ihre...</summary>
    <author>
        <name>joerg</name>
        
    </author>
    
    
    <content type="html" xml:lang="de" xml:base="http://www.joergherbst.de/">
        <![CDATA[In meinem Job habe ich relativ viel mit Kunden zu tun, die sich vor Jahren für eine IBM AS/400 als strategische Plattform entschieden haben.

Häufig befindet sich ein Großteil der zentralen IT Systeme auf dieser Plattform, die insbesondere für ihre Zuverlässigkeite und Abwärtkompatibilität berühmt ist. Allerdings nähert sich die Zeit der Host / Terminal Systeme langsam aber sicher dem Ende, viele neue Anforderungen (sowohl fachliche als auch Useability Anforderungen) lassen sich mit klassischer Host Technologie einfach nicht mehr lösen. Die Migration ist aber oft schwierig, da nicht nur Programme umgeschrieben sondern ganze Programmierparadigma umgestellt werden.

Nichts da von ist trivial oder geht mal eben nebenbei, daher bietet IBM jetzt auf der Entwickler Community Developerworks endlich eine <a href="https://www.ibm.com/developerworks/ibmi/">Webseite zum Thema System i</a> die als Einsteigsseite für Entwickler auf dieser Plattform gute Dienste leisten kann.]]>
        
    </content>
</entry>

<entry>
    <title>Browserkrieg - The next Generation (IE, Firefox, Chrome, Safari)</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/2011/04/browserkrieg-the-next-generation-ie-firefox-chrome-safari.html" />
    <id>tag:web1.j.anxia.org,2011:/java_blog//2.76</id>

    <published>2011-04-25T11:55:27Z</published>
    <updated>2011-08-07T15:29:53Z</updated>

    <summary>Seit sehr langer Zeit war ich eigentlich immer ein Gegner des Internet Explorer. Anfangs ein wenig aus Überzeugung, zeitweilig gab es mal keine brauchbare alternative und zum Schluss wegen der einfach besseren Entwicklungswerkzeuge die Firefox aufgrund der zahlreichen Plugins hat....</summary>
    <author>
        <name>joerg</name>
        
    </author>
    
    
    <content type="html" xml:lang="de" xml:base="http://www.joergherbst.de/">
        Seit sehr langer Zeit war ich eigentlich immer ein Gegner des Internet Explorer. Anfangs ein wenig aus Überzeugung, zeitweilig gab es mal keine brauchbare alternative und zum Schluss wegen der einfach besseren Entwicklungswerkzeuge die Firefox aufgrund der zahlreichen Plugins hat. Auf ein Werkzeug wie Firebug möchte ich schlichtweg nicht mehr verzichten. Nachdem das eine ganze weile ja ein Alleinstellungsmerkmal vom Firefox war, haben in der Zwischenzeit aber alle großen Browser nachgeholt, so dass ich jetzt auch mit Chrome oder dem IE eigentlich ganz gut entwickeln kann.

Der IE steht dabei natürlich auf jedem Windows Rechner zur Verfügung, aber ich habe in den letzten Wochen Googles Chrome installiert und muss zugeben ich bin beeindruckt. Insbesondere gegenüber dem Firefox 3 (habe zwischenzeitlich auf 4 gewechselt) ist der Browser gefühlt wirklich schneller. Die Bedienoberfläche ist zwar etwas ungewöhnlich, aber nach einer Weile durchaus praktisch und die Startzeit ist einfach unübertroffen.l
        
    </content>
</entry>

<entry>
    <title>Ein Bild sagt mehr als 1000 Worte - Highcharts</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/2011/04/ein-bild-sagt-mehr-als-1000-worte-highcharts.html" />
    <id>tag:web1.j.anxia.org,2011:/java_blog//2.75</id>

    <published>2011-04-20T07:53:31Z</published>
    <updated>2011-08-07T15:29:53Z</updated>

    <summary>Möchte man Geschäftszahlen, Statistiken oder andere Daten visualisieren, sagt ein hübscher Chart oder ein nettes Tortendiagramm gewöhnlich deutlich mehr aus als eine einfache Tabelle. Im Web ist das aber nicht so einfach, HTML selbst unterstützt nur Grafiken (und seit HTML5...</summary>
    <author>
        <name>joerg</name>
        
    </author>
    
    
    <content type="html" xml:lang="de" xml:base="http://www.joergherbst.de/">
        <![CDATA[Möchte man Geschäftszahlen, Statistiken oder andere Daten visualisieren, sagt ein hübscher Chart oder ein nettes Tortendiagramm gewöhnlich deutlich mehr aus als eine einfache Tabelle. Im Web ist das aber nicht so einfach, HTML selbst unterstützt nur Grafiken (und seit HTML5 Videos), so dass man auf einem Workaround angewiesen ist.

Bisher habe ich hierfür auf <a href="http://www.eclipse.org/birt/phoenix/">Eclipse BIRT</a> verwendet, man kann es als Webanwendung installieren, die Statistiken in der IDE definieren und bekommt dann dynamisch entsprechende Grafiken erzeugt die man in seine Web Anwendung einbetten kann. Vorteil ist, dass die Statistiken auch von Fachanwender erstellt werden können, nachteil ist die aus meiner Sicht nicht überzeugende Optik und die schwierige Intergration in eine JEE Infrastrutkur. Zudem scheint das Projekt auch nicht mehr sehr aktiv weiterentwickelt werden.

Ein alternativer Ansatz hierzu ist die <a href="http://code.google.com/apis/chart/">Google Chart API</a>. Sie funktioniert im Grundsatz ähnlich, mit dem Unterschied das man nichts selbst etwas installieren muss, sondern lediglich seine Daten an einen von Google betriebenen Server schickt und die fertige Grafik zurückbekommt. Die Optik ist deutlich ansprechender, allerdings passiert auch hier nicht mehr soviel. Größtes Problem sind hier in der Regel Datenschutz Bedenken, da sämtliche Daten an Google übergeben werden müssen.

Als jüngste Alternative habe ich in den letzten Wochen <a href="http://www.highcharts.com/">Highcharts </a>entdeckt. Hierbei handelt es sich um ein reines JavaScript Framework. Das ganze ist zwar kommerziell, aber für die meisten Fälle <a href="http://www.highcharts.com/license">bezahlbar</a>. Der große Vorteil ist, dass nichts installiert werden muss und alle Grafiken dynamisch als SVG ermittelt werden. Dadurch sind sie interaktiv und skalierbar. Zudem wir keine Rechenzeit auf dem Server benötigt. Voraussetzung ist aber der Einsatz eines JavaScript Frameworks wie z.B. jQuery.]]>
        
    </content>
</entry>

<entry>
    <title>Chuck Norris und der Gott der Unterwelt</title>
    <link rel="alternate" type="text/html" href="http://www.joergherbst.de/2011/02/chuck-norris-und-der-gott-der-unterwelt.html" />
    <id>tag:web1.j.anxia.org,2011:/java_blog//2.74</id>

    <published>2011-02-03T20:30:24Z</published>
    <updated>2011-08-07T15:29:53Z</updated>

    <summary>Wer hier regelmäßig liest weiß, dass ich als Continuous Integration Server gerne Hudson verwende. Auch wenn es in letzter Zeit einige Unruhe um das Projekt gegeben hat, bin ich sehr zufrieden, nicht zu letzt weil es mit dem Chuck Norris...</summary>
    <author>
        <name>joerg</name>
        
    </author>
    
    
    <content type="html" xml:lang="de" xml:base="http://www.joergherbst.de/">
        <![CDATA[Wer hier regelmäßig liest weiß, dass ich als Continuous Integration Server gerne <a href="http://www.hudson-ci.org/">Hudson </a>verwende. Auch wenn es in letzter Zeit einige Unruhe um das Projekt gegeben hat, bin ich sehr zufrieden, nicht zu letzt weil es mit dem <a href="http://wiki.hudson-ci.org/display/HUDSON/ChuckNorris+Plugin">Chuck Norris Plugin</a> auch einen gewissen Humor hat. Das Plugin gibt je nach Status den Build den ein oder anderen <a href="http://www.codesqueeze.com/the-ultimate-top-25-chuck-norris-the-programmer-jokes/">Programmiererwitz </a>aus. Einer davon lautet sinngemäß "Chuck Norris doesn't need a factory he can instantiate interfaces". Bisher fand ich den immer so mäßig lustig, bis ich letzte Woche auf einem Projekt eine Code analyse machen sollte. Der Code war eigentlich sauber beschrieben, bis ich auf die Datenzugriffsschicht stieß. Es gab nur Interfaces! Nicht ein DAO hat eine konkrete Implementierung und es funktionierte! Das Programm lieferte sauber Daten aus der Datenbank. Sofort war klar, das muss Chuck Norris gewesen gut. Der Programmierer sah nicht ganz so aus und sonst gab es keine Indizien aber er hatte es geschafft, er konnte Interfaces implementieren. Die genauere Analyse hat dann die ganze Wahrheit herausgebracht, er konnte nicht nur Interfaces instantiieren, er war auch in die Unterwelt hinabgestiegen und <a href="http://redmine.synyx.org/projects/show/hades">Hades </a>persönlich zu seinem Gehilfen gemacht. Es mögen ja dunkle Mächte sein, aber mit Hades kann man DAO Implementierungen machen, indem man ausschließlich die Interfaces einschließlich ein paar Annotations definiert.]]>
        
    </content>
</entry>

</feed>

