<?xml version="1.0" encoding="UTF-8"?>







<rss version="2.0">
<channel>
  <title>SpeexX Blog</title>
  <link>http://www.speexx.de/blog/</link>
  <description>Gabi und Sascha</description>
  <language>de</language>
  <copyright>Gabi Lohmann &amp;amp; Sascha Kohlmann</copyright>
  <lastBuildDate>Wed, 17 Mar 2010 19:10:50 GMT</lastBuildDate>
  <generator>Pebble</generator>
  <docs>http://backend.userland.com/rss</docs>
  <image>
    <url>http://pebble.sourceforge.net/common/images/powered-by-pebble.gif</url>
    <title>SpeexX Blog</title>
    <link>http://www.speexx.de/blog/</link>
  </image>
  
  <item>
    <title>Das ich das mal schreiben kann…</title>
    <link>http://www.speexx.de/blog/2010/03/17/das_ich_das_mal_schreiben_kann.html</link>
    
      
        <description>
          &lt;ul&gt;
  &lt;li&gt;Die Konservativen können nicht mit Geld umgehen: &lt;a href=&#039;http://www.spiegel.de/politik/deutschland/0,1518,683834,00.html&#039; title=&#039;Spiegel Online&#039; class=&#039;speexxExternalLink&#039;&gt;Schäuble verteidigt Rekordschulden&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;acronym title=&#039;Freie Demokratische Partei&#039;&gt;FDP&lt;/acronym&gt; als Stasi Kaderpartei: &lt;a href=&#039;http://de.news.yahoo.com/17/20100317/tsc-brandenburger-fdp-schatzmeister-nach-fc81333.html&#039; title=&#039;Deutscher Depeschendienst@Yahoo&#039; class=&#039;speexxExternalLink&#039;&gt;Brandenburger &lt;acronym title=&#039;Freie Demokratische Partei&#039;&gt;FDP&lt;/acronym&gt;-Schatzmeister nach Stasi-Vorwürfen zurückgetreten&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

        </description>
      
      
    
    
    
    <category>Linkhalde</category>
    
    <comments>http://www.speexx.de/blog/2010/03/17/das_ich_das_mal_schreiben_kann.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/03/17/das_ich_das_mal_schreiben_kann.html</guid>
    <pubDate>Wed, 17 Mar 2010 19:10:50 GMT</pubDate>
  </item>
  
  <item>
    <title>Eisenfresser</title>
    <link>http://www.speexx.de/blog/2010/03/17/eisenfresser.html</link>
    
      
        <description>
          &lt;p&gt;Ein grossartiger &lt;a href=&#039;http://www.eisenfresser-film.de/&#039; title=&#039;Homepage&#039; class=&#039;speexxExternalLink&#039;&gt;Dokumentarfilm&lt;/a&gt;. Über die Arbeiter in den Abwrackwerften in Chittagong, Bangladesch. Seit Travens Caoba-Zyklus hat sich nichts geändert.&lt;/p&gt;

        </description>
      
      
    
    
    
    <category>Linkhalde</category>
    
    <comments>http://www.speexx.de/blog/2010/03/17/eisenfresser.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/03/17/eisenfresser.html</guid>
    <pubDate>Wed, 17 Mar 2010 15:23:34 GMT</pubDate>
  </item>
  
  <item>
    <title>CAL10N und Fehler IDs</title>
    <link>http://www.speexx.de/blog/2010/03/08/cal10n_und_fehler_ids.html</link>
    
      
        <description>
          &lt;p&gt;Für internationalisierte (I10N) Implementierungen verwende ich gerne das &lt;a href=&#039;http://cal10n.qos.ch/&#039; title=&#039;Homepage&#039; class=&#039;speexxExternalLink&#039;&gt;&lt;acronym title=&#039;Compiler Assisted Localization&#039;&gt;CAL10N&lt;/acronym&gt; &lt;acronym title=&#039;Application Programming Interface&#039;&gt;API&lt;/acronym&gt;&lt;/a&gt;. Das &lt;acronym title=&#039;Application Programming Interface&#039;&gt;API&lt;/acronym&gt; erreicht eine Compiler Assisted Localization durch den Einsatz von Java &lt;code&gt;enum&lt;/code&gt;s. Der Name des Enumerationsfeldes ist der Schlüssel in einer entsprechenden Properties Datei. Hierdurch wird der Schlüssel innerhalb des Java-Code nicht mehr als String hinterlegt. Durch ein Maven Plugin können die Properties-Dateien überprüft werden. Ich empfehle jedem Java Entwickler sich das &lt;acronym title=&#039;Application Programming Interface&#039;&gt;API&lt;/acronym&gt; einmal anzuschauen.&lt;/p&gt;

&lt;p&gt;Ich habe den Ansatz für den Einsatz in meinen privaten Projekten  und bei bei &lt;a href=&#039;http://www.zimory.com&#039; title=&#039;Homepage&#039; class=&#039;speexxExternalLink&#039;&gt;Zimory&lt;/a&gt; erweitert. Durch den Einsatz von &lt;code&gt;enum&lt;/code&gt;s können auch Annotationen zum Einsatz kommen. Zwei Annotationen habe ich definiert. Eine für den &lt;code&gt;enum&lt;/code&gt; Typen und eine für die &lt;code&gt;enum&lt;/code&gt; Felder. Beide haben als einzigen Wert einen &lt;code&gt;String&lt;/code&gt;:&lt;/p&gt;

&lt;pre class=&#039;speexxJavaCodeBlock&#039;&gt;

    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@Target&lt;/span&gt;(&lt;span class=&#039;speexxJavaStaticFieldRef&#039;&gt;TYPE&lt;/span&gt;)
    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@Retention&lt;/span&gt;(&lt;span class=&#039;speexxJavaStaticFieldRef&#039;&gt;RUNTIME&lt;/span&gt;)
    &lt;span class=&#039;speexxJavaVisibility&#039;&gt;public&lt;/span&gt; &lt;span class=&#039;speexxJavaType&#039;&gt;@interface&lt;/span&gt; SystemId {
        String value();
    }


    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@Target&lt;/span&gt;(&lt;span class=&#039;speexxJavaStaticFieldRef&#039;&gt;FIELD&lt;/span&gt;)
    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@Retention&lt;/span&gt;(&lt;span class=&#039;speexxJavaStaticFieldRef&#039;&gt;RUNTIME&lt;/span&gt;)
    &lt;span class=&#039;speexxJavaVisibility&#039;&gt;public&lt;/span&gt; &lt;span class=&#039;speexxJavaType&#039;&gt;@interface&lt;/span&gt; MessageId {
        String value();
    }

&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;@SystemId&lt;/code&gt; definiert grobgranular das Modul/Subsystem – oder wie auch immer die Systemunterteilung namentlich genannt wird – für die Messages. &lt;code&gt;@MessageId&lt;/code&gt; definiert eine spezielle feingranulare ID für z.B. einen Fehlerzustand innerhalb eines Moduls. Der Sourcecode einer Message &lt;code&gt;enum&lt;/code&gt; sieht dann in etwa so aus:&lt;/p&gt;

&lt;pre class=&#039;speexxJavaCodeBlock&#039;&gt;

    &lt;span class=&#039;speexxJavaImport&#039;&gt;import&lt;/span&gt; ch.qos.cal10n.LocaleData;
    &lt;span class=&#039;speexxJavaImport&#039;&gt;import&lt;/span&gt; ch.qos.cal10n.Locale;
    &lt;span class=&#039;speexxJavaImport&#039;&gt;import&lt;/span&gt; ch.qos.cal10n.BaseName;

    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@SystemId&lt;/span&gt;(&lt;span class=&#039;speexxJavaStringLiteral&#039;&gt;&#034;RT&#034;&lt;/span&gt;)
    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@BaseName&lt;/span&gt;(&lt;span class=&#039;speexxJavaStringLiteral&#039;&gt;&#034;messages&#034;&lt;/span&gt;)
    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@LocaleData&lt;/span&gt;({&lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@Locale&lt;/span&gt;(&lt;span class=&#039;speexxJavaStringLiteral&#039;&gt;&#034;en&#034;&lt;/span&gt;)})
    &lt;span class=&#039;speexxJavaVisibility&#039;&gt;public&lt;/span&gt; &lt;span class=&#039;speexxJavaType&#039;&gt;enum&lt;/span&gt; Messages {
        &lt;span class=&#039;speexxJavaDoc&#039;&gt;/** Indicates a login failure. */&lt;/span&gt;
        &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@MessageId&lt;/span&gt;(&lt;span class=&#039;speexxJavaStringLiteral&#039;&gt;&#034;001001&#034;&lt;/span&gt;) &lt;span class=&#039;speexxJavaField &#039;&gt;LOGIN_VALIDATION_FAILED&lt;/span&gt;;
    }

&lt;/pre&gt;

&lt;p&gt;Für die Auswertung haben ich einen eigenen &lt;code&gt;MessageProducer&lt;/code&gt; geschrieben. Dieser kapselt eine Implementierung des &lt;acronym title=&#039;Compiler Assisted Localization&#039;&gt;CAL10N&lt;/acronym&gt;s &lt;code&gt;IMessageConveyor&lt;/code&gt; Interface. Ausserdem analyisert er per Reflection die Annotationen und baut aus den Werten eine ID zusammen. Diese ID wird vor die internationalisierte Nachricht gestellt. Daneben übernimmt die Implementierung noch einige Dinge wie Caching &lt;acronym title=&#039;und so weiter&#039;&gt;usw.&lt;/acronym&gt; Eine erzeugte Nachricht sieht in etwa wie die Folgende aus:&lt;/p&gt;

&lt;pre&gt;
    RT-001001: Login failed for user &#034;foobar&#034;.
&lt;/pre&gt;

&lt;p&gt;Solche IDs sind nicht nur für die Analyse von Fehlermeldungen sinnvoll. Sie bieten auch einen einfachen Ansatz für die Fehlerpropagierung in Systemen, in denen bisher kein durchgängiges Exceptionframework existierte. Damit auch nicht Entwickler die Fehlermeldungen verstehen, haben ich eine &lt;a href=&#039;http://java.sun.com/javase/7/docs/technotes/guides/javadoc/index.html&#039; title=&#039;Homepage&#039; class=&#039;speexxDescriptionLink&#039;&gt;Doclet&lt;/a&gt;-Implementierung geschrieben. Diese analyisert alle &lt;code&gt;enum&lt;/code&gt; Klassen mit &lt;code&gt;@SystemId&lt;/code&gt; und generiert aus dem Wert der Annotation, der Javadoc Klassendokumentation, dem Wert von &lt;code&gt;@MessageId&lt;/code&gt; und der Javadoc Felddokumentation eine &lt;acronym title=&#039;Extensible Markup Language&#039;&gt;XML&lt;/acronym&gt; Datei mit einer Zusammenfassung der Daten. Durch einfache &lt;acronym title=&#039;Extensible Stylesheet Language Transformation&#039;&gt;XSLT&lt;/acronym&gt; Skripte wird das &lt;acronym title=&#039;Extensible Markup Language&#039;&gt;XML&lt;/acronym&gt; Dokument in &lt;a href=&#039;http://www.docbook.org/&#039; title=&#039;Homepage&#039; class=&#039;speexxDescriptionLink&#039;&gt;Docbook&lt;/a&gt; und &lt;a href=&#039;http://maven.apache.org/doxia/references/xdoc-format.html&#039; title=&#039;Doxia Xdoc Format Beschreibung&#039; class=&#039;speexxDescriptionLink&#039;&gt;Xdoc&lt;/a&gt; umgewandelt und kann somit für die Anwenderdokumentation weiter verarbeitet werden. Da alles aus einer Quelle kommt, werden Fehler durch cut&amp;#160;&#039;n&amp;#160;paste reduziert.&lt;/p&gt;

        </description>
      
      
    
    
    
    <category>Java</category>
    
    <category>Weichware</category>
    
    <comments>http://www.speexx.de/blog/2010/03/08/cal10n_und_fehler_ids.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/03/08/cal10n_und_fehler_ids.html</guid>
    <pubDate>Mon, 08 Mar 2010 20:45:53 GMT</pubDate>
  </item>
  
  <item>
    <title>Bug ID: 6794807…</title>
    <link>http://www.speexx.de/blog/2010/03/03/bug_id_6794807.html</link>
    
      
        <description>
          &lt;p&gt;Voll &lt;a href=&#039;http://bit.ly/bIApai&#039; title=&#039;Bug ID: 6794807 Introspecting returns incorrect PropertyDescriptor for overriden getter.&#039; class=&#039;speexxExternalLink&#039;&gt;reingelaufen&lt;/a&gt;. Priorität: low, no workaround. Und ich muss jetzt eine Lösung finden &lt;img src=&#039;http://www.speexx.de/blog/images/icons/speexx.new.cry.png&#039; width=&#039;12&#039; height=&#039;12&#039; title=&#039;Angry&#039; style=&#039;border: none;&#039; alt=&#039;:-(&#039; /&gt;&lt;/p&gt;

&lt;p&gt;Money Quote:&lt;/p&gt;
&lt;blockquote cite=&#039;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6794807&#039;&gt;
Introspecting returns incorrect PropertyDescriptor for overriden getter in case when child getter has more specific return type. In this case PropertyDescriptor of parent class is returned instead.
&lt;/blockquote&gt;

&lt;p&gt;Bis Java 1.6.0_18 kein Fix. In Java 7 (b80) gefixt. Leider kann ich mir dafür gar nichts kaufen.&lt;/p&gt;

        </description>
      
      
    
    
    
    <category>Java</category>
    
    <category>Weichware</category>
    
    <comments>http://www.speexx.de/blog/2010/03/03/bug_id_6794807.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/03/03/bug_id_6794807.html</guid>
    <pubDate>Wed, 03 Mar 2010 17:12:50 GMT</pubDate>
  </item>
  
  <item>
    <title>Vorratsdatenspeicherung</title>
    <link>http://www.speexx.de/blog/2010/03/02/vorratsdatenspeicherung.html</link>
    
      
        <description>
          &lt;p&gt;Phoenix Livestream, Popcorn. Machte meinen Tag. Vorratsdatenspeicherung in jetziger Form gekippt. Bisher angefallene Daten &lt;em&gt;unverzüglich&lt;/em&gt; löschen. Oh man, mehr als erwartet. Was für eine Klatsche für den Bundestag. Was für eine Klatsche für die Regierenden.&lt;/p&gt;

&lt;p&gt;Mal sehn was jetzt kommt. Denn gespeichert werden darf grundsätzlich.&lt;/p&gt;

&lt;ins datetime=&#039;20100302T151600&#039;&gt;&lt;strong&gt;Nachtrag:&lt;/strong&gt; Inzischen ist Ernüchertung eingekehrt. Das Urteil ist mitnichten ein Sieg der Bürgerrechte. Es ist vielmehr ein Pyrrhussieg. Meiner Interpretation nach wirklich ein Grundsatzurteil, denn das Verfassungsgericht verabschiedet sich vom  Grundsatz der Datensparsamkeit. Allein der Zugriff auf die Daten soll möglichst sparsam erfolgen. Wie sowas in der Praxis aussieht kann bei der Kontodatenabfrage begutachtet werden. Das werden Jahr für Jahr mehr Abfragen. Dies ist eine Abkehr vom Volkszählungsurteil. Auch der Grundsatz des Richtervorbehalts ist das Papier nicht wert. Praktisch ist der Richtervorbehalt bei Blutalkoholuntersuchungen oder Wohnungsdurchsuchungen nur eine Formalie. Ähnlich wird es auch jetzt bei den Datenbergen kommen. Alleine das Vorhandensein eines solchen Datenberges lässt Begehrlichkeiten wachsen.&lt;/p&gt;
&lt;p&gt;Das Urteil ist eine Klatsche für die Bürgerrechte. Der Souverän wird bis zum Beweis seiner Unschuld unter Generalverdacht stellen. Widerlich.&lt;/p&gt;&lt;/ins&gt;
        </description>
      
      
    
    
    
    <category>Verfassung</category>
    
    <comments>http://www.speexx.de/blog/2010/03/02/vorratsdatenspeicherung.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/03/02/vorratsdatenspeicherung.html</guid>
    <pubDate>Tue, 02 Mar 2010 09:39:55 GMT</pubDate>
  </item>
  
  <item>
    <title>Ganz mieses, schlechtes Eis hat einen Namen</title>
    <link>http://www.speexx.de/blog/2010/02/27/ganz_mieses_schlechtes_eis_hat_einen_namen.html</link>
    
      
        <description>
          &lt;p&gt;Und zwar Eisklecks in Berlin Friedrichshain an der &lt;a href=&#039;http://osm.org/go/0MbHDAkfJ-&#039; title=&#039;Openstreetmap&#039; class=&#039;speexxExternalLink&#039;&gt;&lt;span class=&#039;geo&#039;&gt;&lt;abbr class=&#034;latitude&#034; title=&#034;52.520503&#034;&gt;Eldenaer Straße&lt;/abbr&gt;, &lt;abbr class=&#034;longitude&#034; title=&#034;13.459017&#034;&gt;Richard-Emisch-Straße&lt;/abbr&gt;&lt;/span&gt;&lt;/a&gt;. Ich hatte eine Kugel Sanddorn- und eine Kugel Holundereis. Es schmeckte nach nichts. Einfach nach nichts. Dafür fühlte sich das Holundereis auf der Zunge mehlig an. Auch die Innereinrichtung ist bescheiden, wirkt ziemlich leer und ungemütlich.&lt;/p&gt;

&lt;p&gt;Einmal und nie wieder. Dafür lohnt es sich nicht Richtung Forckenbeckplatz zu gehen.&lt;/p&gt;

        </description>
      
      
    
    
    
    <category>Berlin</category>
    
    <comments>http://www.speexx.de/blog/2010/02/27/ganz_mieses_schlechtes_eis_hat_einen_namen.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/02/27/ganz_mieses_schlechtes_eis_hat_einen_namen.html</guid>
    <pubDate>Sat, 27 Feb 2010 19:49:19 GMT</pubDate>
  </item>
  
  <item>
    <title>Flex: GET und POST muss reichen</title>
    <link>http://www.speexx.de/blog/2010/02/25/flex_get_und_post_muss_reichen.html</link>
    
      
        <description>
          &lt;p&gt;Da denkst du dir ein elegantes &lt;acronym lang=&#039;en&#039; title=&#039;Representational State Transfer&#039;&gt;REST&lt;/acronym&gt; &lt;acronym lang=&#039;en&#039; title=&#039;Application Programming Interface&#039;&gt;API&lt;/acronym&gt; aus. &lt;acronym lang=&#039;en&#039; title=&#039;Create, Read, Update, Delete&#039;&gt;CRUD&lt;/acronym&gt; auf &lt;code&gt;PUT&lt;/code&gt;, &lt;code&gt;POST&lt;/code&gt;, &lt;code&gt;GET&lt;/code&gt; und &lt;code&gt;DELETE&lt;/code&gt; abgebildet. Und dann sagt der Kunde dir, der Client basiert auf &lt;a href=&#039;http://de.wikipedia.org/wiki/Adobe_Flex&#039; title=&#039;Wikipedia&#039; class=&#039;speexxDescriptionLink&#039;&gt;Flex&lt;/a&gt;. Und das Flex beim Kunden kann nur &lt;code&gt;POST&lt;/code&gt; und &lt;code&gt;GET&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Meine Einstellung zu Flex und dem ganzen anderen Dreck von Adobe, war noch nie positiv. Und sowas hebt nicht gerade meine Stimmung.&lt;/p&gt;

        </description>
      
      
    
    
    
    <category>Weichware</category>
    
    <comments>http://www.speexx.de/blog/2010/02/25/flex_get_und_post_muss_reichen.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/02/25/flex_get_und_post_muss_reichen.html</guid>
    <pubDate>Thu, 25 Feb 2010 16:05:06 GMT</pubDate>
  </item>
  
  <item>
    <title>CDI für Java SE</title>
    <link>http://www.speexx.de/blog/2010/02/25/cdi_fuer_java_se.html</link>
    
      
        <description>
          &lt;p&gt;Für meinen Job bei &lt;a href=&#039;http://www.zimory.com&#039; title=&#039;Homepage&#039; class=&#039;speexxExternalLink&#039;&gt;Zimory&lt;/a&gt; habe ein wenig mit &lt;a href=&#039;http://www.jboss.org/feeds/post/weld_1_0_1_and_cdi_tck_1_0_1_published&#039; title=&#039;JBoss Community Blog Meldung&#039; class=&#039;speexxExternalLink&#039;&gt;Weld &lt;acronym title=&#039;Standard Edition&#039;&gt;SE&lt;/acronym&gt;&lt;/a&gt; gespielt. Weld ist die &lt;a href=&#039;http://jcp.org/en/jsr/summary?id=299&#039; title=&#039;JSR 299&#039; class=&#039;speexxExternalLink&#039;&gt;&lt;acronym title=&#039;Contexts and Dependency Injection for the Java™ EE platform&#039;&gt;CDI&lt;/acronym&gt;&lt;/a&gt; Referenz&amp;shy;implementierung und Weld &lt;acronym title=&#039;Standard Edition&#039;&gt;SE&lt;/acronym&gt; eine Anpassung für die Java &lt;acronym title=&#039;Standard Edition&#039;&gt;SE&lt;/acronym&gt; Welt.&lt;/p&gt;

&lt;p&gt;Die eigentliche Implementierung war recht einfach. Allerdings wurde beim Ausführen immer eine &lt;code&gt;UnsatisfiedResolutionException&lt;/code&gt; geworfen. Die Nachricht war &lt;q&gt;WELD-001308 Unable to resolve managed beans for…&lt;/q&gt;. Nach kurzer Suche war klar, dass Weld eine leere &#034;&lt;code&gt;META-INF/beans.xml&lt;/code&gt;&#034; Datei benötigt. Nachdem die Datei angelegt war, funktionierte das Beispiel problemlos.&lt;/p&gt;

&lt;p&gt;Es lässt sich streiten, ob die &lt;acronym title=&#039;Contexts and Dependency Injection for the Java™ EE platform&#039;&gt;CDI&lt;/acronym&gt; Referenzdokument in Kapitel 12.1 eine solche Datei zwingend vorschreibt. Ich habe es dort nicht heraus gelesen.&lt;/p&gt;

&lt;p&gt;Download: &lt;a href=&#039;http://www.speexx.de/blog/files/2010/02/cdi-weld.zip&#039; title=&#039;Maven 2 Projekt&#039; class=&#039;speexxInternalLink&#039;&gt;Sourcecode&lt;/a&gt; (7.897 Bytes)&lt;/p&gt;

        </description>
      
      
    
    
    
    <category>Java</category>
    
    <category>Weichware</category>
    
    <comments>http://www.speexx.de/blog/2010/02/25/cdi_fuer_java_se.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/02/25/cdi_fuer_java_se.html</guid>
    <pubDate>Thu, 25 Feb 2010 09:07:58 GMT</pubDate>
  </item>
  
  <item>
    <title>Ersatzlos abschaffen?</title>
    <link>http://www.speexx.de/blog/2010/02/24/ersatzlos_abschaffen.html</link>
    
      
        <description>
          &lt;p&gt;Ich bin mir sicher: Guido Westerwelle wollte mit seiner platten Attacke gegen Hartz&amp;nbsp;Ⅳ ablenken. Vielleicht von schlechten Umfrageergebnissen? Vielleicht vor seiner Unlust am Amt des Aussenministers? Allerdings glaube ich nicht, dass es unbewusst war. Dazu hat Westerwelle als Politiker zuviel Erfahrung und ist rethorisch zu geschickt.&lt;/p&gt;

&lt;p&gt;Eine Diskussion allerdings hat er angestossen. Ziel erreicht? Wenn Hartz&amp;nbsp;ⅣEmpfänger wirklich überzogen versorgt werden, warum dann nicht radikal handeln? Warum faulen Säcken überhaupt etwas geben und von oben nach unten umverteilen? Westerwelle, Sarazzin und Konsorten sondern diese Behauptung doch unterschwellig permanent ab? Warum damm nicht Hartz&amp;nbsp;Ⅳ ersatzlos streichen? Nichts gibt es mehr. Wer mehr als 12 Monate arbeitslos war, der bekommt gar nichts mehr. Weder für sich noch seine Kinder. Sollen sie sehen, wie sie ihren Lebensunterhalt zusammen bekommen.&lt;/p&gt;

&lt;p&gt;Aber ich vermute, dass trauen sie sich dann doch nicht. Nicht, weil sie das Grundgesetz respektieren. Sie haben in den letzen Jahren deutlich und oft gezeigt, dass ihnen Grundgesetz am Arsch vorbei geht. Nein, sie haben Angst vor den Unruhen, dem Bürgerkrieg und der Revolution, die dann auf uns zukommen. Hartz&amp;nbsp;Ⅳ ist das Erkaufen von Ruhe. Bezahlt durch die Mittelschicht, zum Wohle der Oberschicht. Nicht mehr und nicht weniger.&lt;/p&gt;

&lt;p&gt;Die von Westerwelle &amp;ndash; angeblich so nötige &amp;ndash; losgetretene Debatte ist eine Phantomdiskussion. Es wird sich gar nichts ändern.&lt;/p&gt;

        </description>
      
      
    
    
    
    <comments>http://www.speexx.de/blog/2010/02/24/ersatzlos_abschaffen.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/02/24/ersatzlos_abschaffen.html</guid>
    <pubDate>Wed, 24 Feb 2010 09:33:57 GMT</pubDate>
  </item>
  
  <item>
    <title>javac scheint Attribute ohne default Werte bei Package Annotation nicht korrekt zu überprüfen</title>
    <link>http://www.speexx.de/blog/2010/02/19/javac_scheint_attribute_ohne_default_werte_bei_package_annotation_nicht_korrekt_zu_ueberpruefen.html</link>
    
      
        <description>
          &lt;p&gt;&lt;code&gt;javac&lt;/code&gt; scheint bei &lt;a href=&#039;http://download.java.net/jdk7/docs/api/java/lang/annotation/ElementType.html#PACKAGE&#039; title=&#039;Javadoc&#039; class=&#039;speexxExternalLink&#039;&gt;&lt;code&gt;package&lt;/code&gt; Annotationen&lt;/a&gt; nicht zu überprüfen, ob die Annotationen den deklarierten Regeln folgen. Eben habe ich einer solchen Annotation den default Wert weggenommen. Die Verwendung auf &lt;code&gt;type&lt;/code&gt; Ebene warf Compiler Fehler. Ist der Wert in der &lt;code&gt;package-info.java&lt;/code&gt; Datei nicht vorhanden, läuft der compile Prozess ohne Probleme durch. Die falsche Verwendung auf &lt;code&gt;package&lt;/code&gt; Ebene wurde durch nicht angepassten Unit-Test entdeckt. Eine &lt;a href=&#039;http://download.java.net/jdk7/docs/api/java/lang/annotation/IncompleteAnnotationException.html&#039; title=&#039;Javadoc&#039; class=&#039;speexxDescriptionLink&#039;&gt;&lt;code&gt;IncompleteAnnotationException&lt;/code&gt;&lt;/a&gt; wird geworfen, wenn ich den Wert über das Reflection &lt;acronym title=&#039;Application Programming Interface&#039;&gt;API&lt;/acronym&gt; auslese.&lt;/p&gt;
&lt;p&gt;Vorher:&lt;/p&gt;
&lt;pre class=&#039;speexxJavaCodeBlock&#039;&gt;

    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@Documented&lt;/span&gt;
    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@Retention&lt;/span&gt;(&lt;span class=&#039;speexxJavaStaticFieldRef&#039;&gt;RUNTIME&lt;/span&gt;)
    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@Target&lt;/span&gt;({&lt;span class=&#039;speexxJavaStaticFieldRef&#039;&gt;PACKAGE&lt;/span&gt;, &lt;span class=&#039;speexxJavaStaticFieldRef&#039;&gt;TYPE&lt;/span&gt;})
    &lt;span class=&#039;speexxJavaVisibility&#039;&gt;public&lt;/span&gt; &lt;span class=&#039;speexxJavaType&#039;&gt;@interface&lt;/span&gt; CommandHolder {
        String value() &lt;span class=&#039;speexxJavaDefault&#039;&gt;default&lt;/span&gt; &lt;span class=&#039;speexxJavaStringLiteral&#039;&gt;&#034;&#034;&lt;/span&gt;;
    }

&lt;/pre&gt;

&lt;p&gt;Nacher:&lt;/p&gt;
&lt;pre class=&#039;speexxJavaCodeBlock&#039;&gt;

    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@Documented&lt;/span&gt;
    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@Retention&lt;/span&gt;(&lt;span class=&#039;speexxJavaStaticFieldRef&#039;&gt;RUNTIME&lt;/span&gt;)
    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@Target&lt;/span&gt;({&lt;span class=&#039;speexxJavaStaticFieldRef&#039;&gt;PACKAGE&lt;/span&gt;, &lt;span class=&#039;speexxJavaStaticFieldRef&#039;&gt;TYPE&lt;/span&gt;})
    &lt;span class=&#039;speexxJavaVisibility&#039;&gt;public&lt;/span&gt; &lt;span class=&#039;speexxJavaType&#039;&gt;@interface&lt;/span&gt; CommandHolder {
        String value();
    }

&lt;/pre&gt;

&lt;p&gt;Verhalten tritt auf mit &lt;code&gt;javac 1.6.0_16&lt;/code&gt; und &lt;code&gt;javac 1.7.0-ea (b80)&lt;/code&gt; auf einem aktuellen AMD64 Ubuntu 9.10. &lt;/p&gt;&lt;p&gt;Vielleicht wühle ich mich später mal durch die Spezifikationen.&lt;/p&gt;

        </description>
      
      
    
    
    
    <category>Java</category>
    
    <category>Weichware</category>
    
    <comments>http://www.speexx.de/blog/2010/02/19/javac_scheint_attribute_ohne_default_werte_bei_package_annotation_nicht_korrekt_zu_ueberpruefen.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/02/19/javac_scheint_attribute_ohne_default_werte_bei_package_annotation_nicht_korrekt_zu_ueberpruefen.html</guid>
    <pubDate>Fri, 19 Feb 2010 16:08:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Konfigurationshölle?</title>
    <link>http://it-republik.de/jaxenter/news/Himmlische-Wege-aus-der-Maven-Hoelle-Wie-viel-Freiheit-vertraegt-ein-Entwickler-053888.html</link>
    
      
        <description>
          &lt;p&gt;Maven eine Konfigurationshölle? Im JAXenter wurden einige &lt;a href=&#039;http://bit.ly/d1xYIk&#039; title=&#039;Himmlische Wege aus der Maven-Hölle: Wie viel Freiheit verträgt ein Entwickler?&#039; class=&#039;speexxExternalLink&#039;&gt;meiner Punkte&lt;/a&gt; zusammen gefasst.&lt;/p&gt;

        </description>
      
      
    
    
    
    <comments>http://www.speexx.de/blog/2010/02/12/konfigurationshoelle.html#comments</comments>
    <guid isPermaLink="true">http://it-republik.de/jaxenter/news/Himmlische-Wege-aus-der-Maven-Hoelle-Wie-viel-Freiheit-vertraegt-ein-Entwickler-053888.html</guid>
    <pubDate>Fri, 12 Feb 2010 15:26:35 GMT</pubDate>
  </item>
  
  <item>
    <title>Buzzig</title>
    <link>http://www.speexx.de/blog/2010/02/11/buzzig.html</link>
    
      
        <description>
          &lt;p&gt;&lt;a href=&#039;http://www.google.com/profiles/102905992807889697391&#039; title=&#039;Google Buzz&#039; class=&#039;speexxExternalLink&#039;&gt;mehr&lt;/a&gt;&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.speexx.de/blog/2010/02/11/buzzig.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/02/11/buzzig.html</guid>
    <pubDate>Thu, 11 Feb 2010 13:01:22 GMT</pubDate>
  </item>
  
  <item>
    <title>Zwischenstopp</title>
    <link>http://www.speexx.de/blog/2010/02/08/zwischenstopp.html</link>
    
      
        <description>
          &lt;div&gt;
  &lt;span class=&#039;speexxLeftFloatImage&#039;&gt;&lt;a href=&#039;http://www.speexx.de/blog/images/2010/02/zwischenstopps%20in%20der%20economy%20class.jpg&#039; title=&#039;Klicken zum vergrössern&#039; style=&#039;border: none&#039;&gt;&lt;img style=&#039;border: none&#039; src=&#039;http://www.speexx.de/blog/images/2010/02/zwischenstopps%20in%20der%20economy%20class.small.jpg&#039; width=&#039;400&#039; height=&#039;80&#039; alt=&#039;[WERBETEXT: LINIENFLUG MIT LUFTHANSA (OD. GLEICHW.) VON BERLIN/TEGEL NACH SAN FRANCISCO UND ZURÜCK MIT ZWISCHENSTOPPS IN DER ECONOMY CLASS]&#039; title=&#039;Zwischenstopps&#039; /&gt;&lt;/a&gt;&lt;/span&gt; «Und jetzt, meine Damen und Herren, bitte eine Polonaise  durch die Holzklasse. Lästern Sie und gruseln Sie sich nach Herzenslust. Ihre Reiseleitung wünscht Ihnen viel Spass und weiterhin einen angenehmen Flug.»
  &lt;p class=&#039;speexxCenterFixForIE&#039;&gt;&amp;#160;&lt;/p&gt;
&lt;/div&gt;



        </description>
      
      
    
    
    
    <comments>http://www.speexx.de/blog/2010/02/08/zwischenstopp.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/02/08/zwischenstopp.html</guid>
    <pubDate>Mon, 08 Feb 2010 13:03:17 GMT</pubDate>
  </item>
  
  <item>
    <title>JAXB und Collections</title>
    <link>http://www.speexx.de/blog/2010/02/05/jaxb_und_collections.html</link>
    
      
        <description>
          &lt;p&gt;Ich implementiere gerade privat ein &lt;acronym title=&#039;Representational State Transfer&#039;&gt;REST&lt;/acronym&gt; &lt;acronym title=&#039;Application Programming Interface&#039;&gt;API&lt;/acronym&gt;. In dem &lt;acronym title=&#039;Application Programming Interface&#039;&gt;API&lt;/acronym&gt; werden &lt;acronym title=&#039;Extensible Markup Language&#039;&gt;XML&lt;/acronym&gt; Daten mittels &lt;acronym title=&#039;Java Architecture for XML Binding&#039;&gt;JAXB&lt;/acronym&gt; gewandelt. Dabei habe ich einfach &lt;acronym title=&#039;Plain Old Java Objects&#039;&gt;POJOs&lt;/acronym&gt; verwendet und mit den &lt;acronym title=&#039;Java Architecture for XML Binding&#039;&gt;JAXB&lt;/acronym&gt; Annotationen versehen. Eigentlich ganz einfach. Eigentlich… Bis zu dem Zeitpunkt an denen Collections ins Spiel kommen. Naiv wie ich war – he, wer liesst schon Spezifikationen – habe ich Collection Properties einfach annotiert. Und weil ich ein pfiffiger Entwickler bin, habe ich bei den Gettern eine leere Collection (&lt;code&gt;Collections.emptyXyz()&lt;/code&gt;) zurück gegeben, wenn die Referenz &lt;code&gt;null&lt;/code&gt; war. Ergebniss: &lt;code&gt;unmarshall(…)&lt;/code&gt; warf eine &lt;code&gt;UnsupportedOperationException&lt;/code&gt;. Das Problem: &lt;acronym title=&#039;Java Architecture for XML Binding&#039;&gt;JAXB&lt;/acronym&gt; erwartet eine &lt;em&gt;mutable&lt;/em&gt; Collection. &lt;code&gt;Collections.emptyXyz()&lt;/code&gt; liefert aber &lt;em&gt;immutable&lt;/em&gt; Objekte. &lt;acronym title=&#039;Java Architecture for XML Binding&#039;&gt;JAXB&lt;/acronym&gt; ruft darauf dann &lt;code&gt;clean()&lt;/code&gt; auf und füllt die Collection neu – die Refernzimplementierung mittels &lt;code&gt;add(E)&lt;/code&gt;. Eine &lt;code&gt;null&lt;/code&gt; Referenz wird auch nicht akzeptiert und führt ebenfalls zu einer Ausnahme.&lt;/p&gt;

&lt;p&gt;Ich habe mir dann doch mal die &lt;acronym title=&#039;Java Architecture for XML Binding&#039;&gt;JAXB&lt;/acronym&gt; 2.2 Spezifikation von 2009-12-10 durchgelesen. Unter Punkt 5.5.2.2 wird das Verhalten spezifiziert. Mit einer Einschränkung: sie gilt nur für Collections vom Typ &lt;code&gt;List&lt;/code&gt;. Die &lt;acronym title=&#039;Java Architecture for XML Binding&#039;&gt;JAXB&lt;/acronym&gt; 2.2 Referenzimplementierung kommt aber auch mit &lt;code&gt;Set&lt;/code&gt;s und dem &lt;code&gt;Collection&lt;/code&gt; Interface selbst zurecht.&lt;/p&gt;

&lt;p&gt;Der Code sieht jetzt so aus:&lt;/p&gt;

&lt;pre class=&#039;speexxJavaCodeBlock&#039;&gt;

    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@Valid&lt;/span&gt;
    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@NotNull&lt;/span&gt;
    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@Size&lt;/span&gt;(min=0, max=5)
    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@OneToMany&lt;/span&gt;(fetch=&lt;span class=&#039;speexxJavaStaticFieldRef&#039;&gt;EAGER&lt;/span&gt;)
    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@XmlElement&lt;/span&gt;(name=&lt;span class=&#039;speexxJavaStaticFieldRef&#039;&gt;ANSWER_XML_NAME&lt;/span&gt;)
    &lt;span class=&#039;speexxJavaAnnotationName&#039;&gt;@XmlElementWrapper&lt;/span&gt;(name=&lt;span class=&#039;speexxJavaStaticFieldRef&#039;&gt;POSSIBLE_ANSWERS_XML_NAME&lt;/span&gt;)
    &lt;span class=&#039;speexxJavaVisibility&#039;&gt;public&lt;/span&gt; List&amp;lt;Answer&gt; getPossibleAnswers() {
        &lt;span class=&#039;speexxJavaCondition&#039;&gt;if&lt;/span&gt; (&lt;span class=&#039;speexxJavaReturn&#039;&gt;this&lt;/span&gt;.possibleAnswers != &lt;span class=&#039;speexxJavaNull&#039;&gt;null&lt;/span&gt;) {
            &lt;span class=&#039;speexxJavaReturn&#039;&gt;return&lt;/span&gt; &lt;span class=&#039;speexxJavaReturn&#039;&gt;this&lt;/span&gt;.possibleAnswers;
        }
        &lt;span class=&#039;speexxJavaReturn&#039;&gt;return&lt;/span&gt; &lt;span class=&#039;speexxJavaNew&#039;&gt;new&lt;/span&gt; ArrayList&lt;Answer&gt;();
    }

&lt;/pre&gt;


        </description>
      
      
    
    
    
    <category>Java</category>
    
    <category>Weichware</category>
    
    <comments>http://www.speexx.de/blog/2010/02/05/jaxb_und_collections.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/02/05/jaxb_und_collections.html</guid>
    <pubDate>Fri, 05 Feb 2010 16:48:40 GMT</pubDate>
  </item>
  
  <item>
    <title>Was ich beruflich mache</title>
    <link>http://www.3sat.de/mediathek/mediathek.php?obj=16659&amp;mode=play</link>
    
      
        <description>
          &lt;p&gt;&lt;del datetime=&#039;20100209T120000&#039;&gt;Kann man aktuell noch &lt;a href=&#039;http://www.3sat.de/mediathek/mediathek.php?obj=16659&amp;mode=play&#039; title=&#039;3sat - nano-Sendung vom 2. Februar 2010&#039; class=&#039;speexxExternalLink&#039;&gt;hier&lt;/a&gt; im zweiten Beitrag bewundern.&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;&lt;ins datetime=&#039;20100209T120000&#039;&gt;&lt;strong&gt;Nachtrag:&lt;/strong&gt; Leider gibt es diese vollkommen bescheuerte Regelung in diesem Land, dass öffenlich rechtliche Sender ihre selbst produzierten Sendungen nach 7 Tagen nicht mehr online anbieten dürfen. Deswegen ist der Film jetzt weg.&lt;/ins&gt;&lt;/p&gt;
        </description>
      
      
    
    
    
    <category>Weichware</category>
    
    <comments>http://www.speexx.de/blog/2010/02/05/was_ich_beruflich_mache.html#comments</comments>
    <guid isPermaLink="true">http://www.3sat.de/mediathek/mediathek.php?obj=16659&amp;mode=play</guid>
    <pubDate>Fri, 05 Feb 2010 15:32:35 GMT</pubDate>
  </item>
  
  <item>
    <title>UML</title>
    <link>http://www.speexx.de/blog/2010/02/01/uml.html</link>
    
      
        <description>
          &lt;p&gt;Für kleine Diagramme muss es nicht immer ein ausgereiftes &lt;acronym title=&#039;Unified Modeling Language&#039;&gt;UML&lt;/acronym&gt; Tool sein. Mit &lt;a href=&#039;http://www.websequencediagrams.com/&#039; title=&#039;Homepage&#039; class=&#039;speexxExternalLink&#039;&gt;websequencediagrams&lt;/a&gt; können kleine Dinge auch schnell geskribelt werden. Die Sprache ist schnell erlernbar, die Ergebnisse ausreichend, wenn nicht gerade Codegenerierung oder gar Round-Trip-Engineering benötigt wird.&lt;/p&gt;

&lt;p&gt;Mit &lt;a href=&#039;http://yuml.me/&#039; title=&#039;Homepage&#039; class=&#039;speexxExternalLink&#039;&gt;yUML&lt;/a&gt; können auch Klassen- Aktivitäten und Use-Case Diagramme erstellt werden.&lt;/p&gt;

        </description>
      
      
    
    
    
    <category>Weichware</category>
    
    <comments>http://www.speexx.de/blog/2010/02/01/uml.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/02/01/uml.html</guid>
    <pubDate>Mon, 01 Feb 2010 17:22:45 GMT</pubDate>
  </item>
  
  <item>
    <title>Untergehende Sonne</title>
    <link>http://www.speexx.de/blog/2010/02/01/untergehende_sonne.html</link>
    
      
        <description>
          &lt;p&gt;Über Kreuzberg nimmt die Sonne Abschied vom Tag. Auf der Spree zieht langsam eine losgerissene Tonne vorbei - links ausserhalb des Bildes. Auf dem seit Monaten nicht mehr genutzen Industrieareal wird tapfer weiter Schnee geschippt.&lt;/p&gt;

&lt;div class=&#039;speexxThumbnails&#039;&gt;
  &lt;span class=&#039;speexxThumbnail&#039;&gt;&lt;a href=&#039;http://www.speexx.de/blog/images/2010/02/kreuzberger%20spreeufer.jpg&#039; title=&#039;Grosses Bild&#039;&gt;&lt;img src=&#039;http://www.speexx.de/blog/images/2010/02/kreuzberger%20spreeufer.small.jpg&#039; alt=&#039;[UNTERGEHENDE SONNE ÜBER KREUZBERG VOM FRIEDRICHSHAINER UFER HÖHE OSTBAHNHOF GESEHEN. DORT WIRD SCHNEE AUF EINER INDUSTRIEBRACHE GERÄUMT.]&#039; title=&#039;Untergehende Sonne über Kreuzberg&#039; width=&#039;640&#039; height=&#039;259&#039; /&gt;&lt;/a&gt;&lt;br /&gt;Untergehende Sonner über Kreuzberg&lt;/span&gt;
&lt;/div&gt;

&lt;p class=&#039;speexxCenterFixForIE&#039;&gt;&amp;#160;&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.speexx.de/blog/2010/02/01/untergehende_sonne.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/02/01/untergehende_sonne.html</guid>
    <pubDate>Mon, 01 Feb 2010 15:46:30 GMT</pubDate>
  </item>
  
  <item>
    <title>Verglüht</title>
    <link>http://www.speexx.de/blog/2010/01/31/verglueht.html</link>
    
      
        <description>
          &lt;p&gt;Ein kurz aufleuchtender Star am Suchsystemhimmel ist verglüht. Heute wird der letzte siechende Tag im Leben der Vionto &lt;acronym title=&#039;Gesellschaft mit beschränkter Haftung&#039;&gt;GmbH&lt;/acronym&gt; (&lt;acronym title=&#039;Aktenzeichen&#039;&gt;AZ&lt;/acronym&gt;: 36v IN 4850/09, Amtsgericht Charlottenburg) sein. Es folgt der unrühmliche Tod durch Insolvenz. Innerhalb eines Jahres aufgestiegen und dann jäh abgestürzt. Diesmal bleibt nichts übrig. Götterdämmerung.&lt;/p&gt;

&lt;p&gt;Preise hatte Vionto letztes Jahr einige gewonnen: &lt;a href=&#039;http://suma-ev.de/&#039; title=&#039;Homepage&#039; class=&#039;speexxExternalLink&#039;&gt;&lt;abbr title=&#039;Suchmaschinen&#039;&gt;SuMa&lt;/abbr&gt;-Award&lt;/a&gt;, &lt;a href=&#039;http://www.herringevents.com/europe09/redherring100.html&#039; title=&#039;Gewinnerlist&#039; class=&#039;speexxExternalLink&#039;&gt;Red Herring Europe Top 100 2009 Award&lt;/a&gt;, den &lt;a href=&#039;http://www.eco.de/verband/202_6621.htm&#039; title=&#039;Gewinnerliste&#039; class=&#039;speexxExternalLink&#039;&gt;eco Internet Award&lt;/a&gt; und noch einige mehr. Es hat nichts genützt. Ideen – technisch hervorragend umgesetzt – konnten oder wollten nicht in Geld umwandelt werden. War das Fundament zu wackelig, ohne Substanz, gepaart mit Unvermögen und Arroganz? Eine Mischung wird es gewesen sein. Der Tod, er war schon im Frühjahr 2009 absehbar. Da war die Vionto gerade einmal 5 Monate alt. Entstanden aus den wirtschaftlichen Trümmern der semgine &lt;acronym title=&#039;Gesellschaft mit beschränkter Haftung&#039;&gt;GmbH&lt;/acronym&gt; (&lt;acronym title=&#039;Aktenzeichen&#039;&gt;AZ&lt;/acronym&gt;: 36s IN 4162/08, Amtsgericht Charlottenburg). Alte Mannschaft, neue Investoren und in der Führung ein Neuer: Ralf von Grafenstein. Nach kurzer Zeit war auch wieder der ehemalige semgine Geschäftsführer mit an Bord: Dr. Martin Christian Hirsch – als Geschäftsführer.&lt;/p&gt;

&lt;!--p&gt;Die Idee Eyeplorer, auf der Vionto basierte, begann sich in der zweiten Hälfte 2008 zu entwickeln. Genau weiss ich es nicht mehr. Es zeichnete sich ab, dass die semgine das Zeitliche segnen wird. Es musste eine Idee her, um neue Investoren zu begeistern. Die alten Investoren war inzwischen &lt;em&gt;verbrannt&lt;/em&gt; für immer neue, wenig erfolgreiche Ideen. In wenigen Tagen wurde von der Geschäftsführung um Martin Hirsch und dem Produktmanagement der Eyeplorer erfunden. Schon damals war klar, dass die Idee nicht mehr mit der semgine umgesetzt werden würde. Und weil die semgine auch im Biotech Markt nicht erfolgreich war, wurde diesmal auf den Massenmarkt und Wikipedia gesetzt. Ich will hier nicht gross schreiben auf was die Ideen basieren. Meiner Meinung nach hatten sie schon damals keine gute Basis.&lt;/p&gt;

&lt;p&gt;Es kam wie es kommen musste. Martin Hirsch als Geschäftsführer der semgine musste zum Amtsgericht Charlottenburg. Und bei uns im mittleren Management lag nun die Aufgabe

  &lt;ol type=&#034;a&#034;&gt;
    &lt;li&gt;eine breite technologische Basis für die Zeit nach der semgine zu schaffen&lt;/li&gt;
    &lt;li&gt;das Team zusammen zu halten&lt;/li&gt;
  &lt;/ol&gt;
&lt;/p--&gt;

&lt;p&gt;Zum Ende der semgine möchte ich nicht viel schreiben. Ich war als Mitarbeiter involviert. Nur soviel: der Eyeplorer, das System auf dem die Vionto basiert, wurde in den letzten Monaten der semgine entwickelt. Er sollte als Neuanfang dienen und neue Investoren anfixen. Die alten Investoren waren &lt;em&gt;verbrannt&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Ich konnte das kurze aufblühen und verglühen der Vionto aus naher Distanz beobachten. Ich habe mitbekommen, wie die Ergebnisse des Eyeplorers nicht wirklich besser wurden, aber immer neue Funktionen hinzu kamen. Funktionen, die mit Suche nichts zu tun haben. Bei 13.000 Anfragen am Tag wurde ein Tool zur Ergebnissverwaltung für angemeldete Benutzer aufgebaut. Es wird sogut wie nie benutzt. Das Produktmanagement wollte es nicht wirklich. Die Entwickler sahen keinen grossen Sinn darin. Trotzdem ist es da.&lt;/p&gt; 

&lt;p&gt;Ich habe mitbekommen, wie Mitte 2009 erste Unruhe aufkam. Wie Kurzarbeit angemeldet wurde für ein Unternehmen, welches praktisch keine Kunden hatte und nur durch sein Portal bekannt war. Dem aussen stehenden Betrachter stellte sich sofort die Frage: und wer entwickelt jetzt das Portal weiter? Die Kurzarbeit war nach knapp einer Woche wieder vorbei  –  auch weil niemand da war als Besuch im Haus herum geführt wurde. Kurz nach der Kurzarbeit drei Mitarbeiter entlassen: zwei Entwickler und ein SysAdmin. Es blieben zwei Geschäftsführer, zwei bis drei Produktmanager (so genau habe ich das nie durchschaut), eine Sekretärin, ein Admin, vier Entwickler und einige Praktikanten.&lt;/p&gt;

&lt;p&gt;Die Entlassungen waren dann wohl der berühmte Tropfen. Schon zur Zeit der Kurzarbeit suchten zwei Entwickler aktiv nach einem neuen Job – nicht die später Entlassenen. Nach den Entlassungen waren es dann drei. Mitarbeiter haben ein gutes Gespür und sind bei einer Insolvenz meistens bereit dem Unternehmen zu helfen.  Trotzdem gibt es immer wieder Eintagesurlaube, mitten in der Woche &lt;img src=&#039;http://www.speexx.de/blog/images/icons/speexx.new.smily.png&#039; width=&#039;12&#039; height=&#039;12&#039; title=&#039;Smily&#039; style=&#039;border: none;&#039; alt=&#039;:-)&#039; /&gt;  Als die Vionto Insolvenz anmeldete gab es diesmal kein Halten mehr. Das Team brach in kurzer Zeit auseinander. Das endgültige Ende eines kleinen Softwareunternehmens.&lt;/p&gt;

&lt;p&gt;Die Ruinen sind heute noch unter der Eyeplorer-Domain zu bewundern. Sehr &lt;acronym title=&#039;Search Engine Optimization&#039;&gt;SEO&lt;/acronym&gt; lastig. Ich verlinke nicht, weil ich nicht weiss wie lange die Domain noch existiert. Die rauchenden Trümmer basieren auf einer komplexen Technologie. Mehrere 100.000 Zeilen Quelltext für die heute kein Entwickler mehr zuständig ist der sich auskennt. Der Quellcode ist damit so gut wie wertlos. Trotzdem will Dr. Martin C. Hirsch wohl erneut weiter machen – mit dem &lt;a href=&#039;http://www.faz.net/s/Rub4521147CD87A4D9390DA8578416FA2EC/Doc~EE86EE2941DCB4B80833E7F07A08860BE~ATpl~Ecommon~Scontent.html&#039; title=&#039;FAZ.NET: Google-Herausforderer eyePlorer - Die Welt ist doch eine Scheibe&#039; class=&#039;speexxExternalLink&#039;&gt;Google-Herausforderer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Stay tuned.&lt;/p&gt;

        </description>
      
      
    
    
    
    <category>Weichware</category>
    
    <category>Berlin</category>
    
    <comments>http://www.speexx.de/blog/2010/01/31/verglueht.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/01/31/verglueht.html</guid>
    <pubDate>Sun, 31 Jan 2010 20:57:09 GMT</pubDate>
  </item>
  
  <item>
    <title>Java Decompiler</title>
    <link>http://www.speexx.de/blog/2010/01/27/java_decompiler.html</link>
    
      
        <description>
          &lt;p&gt;Wem &lt;acronym title=&#039;Java Decompiler&#039;&gt;JAD&lt;/acronym&gt; nicht mehr genügt, weil er nur bis Java 1.4 sinnvoll decompiliert (kein Generics Support), mag sich &lt;a href=&#039;http://java.decompiler.free.fr/&#039; title=&#039;Homepage&#039; class=&#039;speexxExternalLink&#039;&gt;&lt;acronym title=&#039;Java Decompiler&#039;&gt;JD&lt;/acronym&gt;&lt;/a&gt; anschauen. Kein Problem mit inneren Klassen, &lt;del datetime=&#039;20100128T084700&#039; title=&#039;Nicht alle synthetischen Methoden werden korrekt decompiliert&#039;&gt;synthetischen&lt;/del&gt; oder Brigde-Methoden/Typen. Annotationen werden aufgelöst und &lt;code&gt;enum&lt;/code&gt; Typen decompiliert. Der erzeugte Quellcode ist gut lesbar - ist ja der kniffelige Part bei Decompilern. Wird bei mir &lt;acronym title=&#039;Java Decompiler&#039;&gt;JAD&lt;/acronym&gt; ablösen.&lt;/p&gt;

&lt;p&gt;Und ich frage mich, warum die Decompiler Jungs immer C++ verwenden.&lt;/p&gt;

        </description>
      
      
    
    
    
    <category>Java</category>
    
    <category>Weichware</category>
    
    <comments>http://www.speexx.de/blog/2010/01/27/java_decompiler.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/01/27/java_decompiler.html</guid>
    <pubDate>Wed, 27 Jan 2010 17:32:32 GMT</pubDate>
  </item>
  
  <item>
    <title>Da geht noch was</title>
    <link>http://www.speexx.de/blog/2010/01/27/da_geht_noch_was.html</link>
    
      
        <description>
          &lt;div class=&#039;speexxThumbnails&#039;&gt;
  &lt;span class=&#039;speexxThumbnail&#039;&gt;&lt;a href=&#039;http://www.speexx.de/blog/images/2010/01/schleppverband%20auf%20spree.jpg&#039; title=&#039;Grosses Bild&#039;&gt;&lt;img src=&#039;http://www.speexx.de/blog/images/2010/01/schleppverband%20auf%20spree.small.jpg&#039; alt=&#039;[EISBRECHER UND SCHLEPPER &#034;SEEHUND&#034; SCHLEPPT SCHUBSCHIFF DURCHS EIS AUF DER FAST ZUGEFRORENEN SPREE (BERLIN)]&#039; title=&#039;Schleppverband auf Spree&#039; width=&#039;640&#039; height=&#039;299&#039; /&gt;&lt;/a&gt;&lt;br /&gt;Schleppverband auf Spree&lt;/span&gt;
&lt;/div&gt;

&lt;p class=&#039;speexxCenterFixForIE&#039;&gt;&amp;#160;&lt;/p&gt;
        </description>
      
      
    
    
    
    <category>Berlin</category>
    
    <comments>http://www.speexx.de/blog/2010/01/27/da_geht_noch_was.html#comments</comments>
    <guid isPermaLink="true">http://www.speexx.de/blog/2010/01/27/da_geht_noch_was.html</guid>
    <pubDate>Wed, 27 Jan 2010 15:57:28 GMT</pubDate>
  </item>
  
  </channel>
</rss>
