<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Martins Blog - Software</title>
    <link>https://www.martindroessler.de/blog/</link>
    <description>Über Software und anderen Unsinn...</description>
    <dc:language>de</dc:language>
    <generator>Serendipity 2.3.5 - http://www.s9y.org/</generator>
    <pubDate>Tue, 23 Jul 2019 07:58:15 GMT</pubDate>

    <image>
    <url>https://www.martindroessler.de/blog/templates/2k11/img/s9y_banner_small.png</url>
    <title>RSS: Martins Blog - Software - Über Software und anderen Unsinn...</title>
    <link>https://www.martindroessler.de/blog/</link>
    <width>100</width>
    <height>21</height>
</image>

<item>
    <title>Externes JavaScript in Pentaho Kettle laden</title>
    <link>https://www.martindroessler.de/blog/index.php?/archives/75-Externes-JavaScript-in-Pentaho-Kettle-laden.html</link>
            <category>Software</category>
    
    <comments>https://www.martindroessler.de/blog/index.php?/archives/75-Externes-JavaScript-in-Pentaho-Kettle-laden.html#comments</comments>
    <wfw:comment>https://www.martindroessler.de/blog/wfwcomment.php?cid=75</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://www.martindroessler.de/blog/rss.php?version=2.0&amp;type=comments&amp;cid=75</wfw:commentRss>
    

    <author>nospam@example.com (Martin 'Iridias' Drößler)</author>
    <content:encoded>
    Kettle bietet die Möglichkeit in einer Transformation auch JavaScript aus externen Files zu laden.&lt;br /&gt;
Dazu braucht man lediglich einen Step &amp;quot;Modified Java Script Value&amp;quot; in dem man die Funktion &amp;quot;LoadScriptFile()&amp;quot; aufruft.&lt;br /&gt;
Damit die Datei nicht bei jeder Zeile erneut geladen wird, sollte optimalerweise ein neuer Tab erzeugt werden und via &amp;quot;Set Start Script&amp;quot; so markiert werden, dass er nur beim Laden der Transformation aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
Das ist soweit nichts Neues, und durch ein bisschen googlen relativ schnell heraus zu finden.&lt;br /&gt;
Was hingegen nicht so einfach zu ergründen ist: wie kann man das benutzen, ohne den kompletten Pfad hardcoded angeben zu müssen?&lt;br /&gt;
&lt;br /&gt;
Denn die ganzen Felder kann man nicht benutzen - die stehen ja nur bei der zeilenweisen Verarbeitung zur Verfügung. Aber da soll die Lib ja nicht geladen werden.&lt;br /&gt;
Das Beispiel das Kettle bereit stellt ist da auch alles andere als hilfreich:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #cccccc; &quot;&gt;// Load&#039;s a JavaScript File into your actual running Context.
// This function should called from your defined StartScript
// otherwise your JavaScript-File is loaded on each processing
// Row.
//
// Usage:
// LoadScriptFile(var);
//
// 2006-11-15
//
var xPfad = &quot;Your Filename, with Path&quot;;
LoadScriptFile(xPfad);
&lt;/pre&gt;&lt;br /&gt;
Wie üblich bleibt mal wieder nichts anderes übrig als Probieren.&lt;br /&gt;
Das Rumspielen mit Parametern und Argumenten der Transformation war nicht von Erfolg gekrönt, aber da das JavaScript-File in meinem Fall im selben Verzeichnis wie die Transformation liegt, hat sich folgendes bewährt:&lt;br /&gt;
&lt;pre style=&quot;background-color: #cccccc; &quot;&gt;var workingDirectory = getVariable(&quot;Internal.Transformation.Filename.Directory&quot;, &quot;/var/APP/ETL/&quot;);
var libraryPath = workingDirectory + &quot;/etl-lib.js&quot;;
LoadScriptFile(libraryPath);
&lt;/pre&gt;Ich habe irgendwo gesehen das jemand &amp;quot;getEnvironmentVar()&amp;quot; statt &amp;quot;getVariable()&amp;quot; benutzt hat - das hat jedoch nicht funktioniert.&lt;br /&gt;
Zumindest hat &amp;quot;getVariable()&amp;quot; den Vorteil, dass als zweiter Parameter ein Fallback spezifiziert werden kann, falls die Variable nicht gefunden wird. 
    </content:encoded>

    <pubDate>Tue, 19 Jun 2012 11:15:00 +0200</pubDate>
    <guid isPermaLink="false">https://www.martindroessler.de/blog/index.php?/archives/75-guid.html</guid>
    
</item>
<item>
    <title>JSON vs. xstream</title>
    <link>https://www.martindroessler.de/blog/index.php?/archives/72-JSON-vs.-xstream.html</link>
            <category>Software</category>
    
    <comments>https://www.martindroessler.de/blog/index.php?/archives/72-JSON-vs.-xstream.html#comments</comments>
    <wfw:comment>https://www.martindroessler.de/blog/wfwcomment.php?cid=72</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://www.martindroessler.de/blog/rss.php?version=2.0&amp;type=comments&amp;cid=72</wfw:commentRss>
    

    <author>nospam@example.com (Martin 'Iridias' Drößler)</author>
    <content:encoded>
    Das diverse Tools oder Bibliotheken sich gerne nicht so gut verstehen ist nichts neues. Aber manchmal fällt schwer, zu sagen, welches davon jetzt Mist baut.&lt;br /&gt;
Aber von vorne: Für ein neues Projekt werden Metadaten in XML angeliefert, die in einer Datenbank gespeichert werden sollen. Nun ist das auseinander Pflücken von XML-Files ziemlich mühselig. Ganz zu schweigen davon, dass die Daten in einem anderen Schritt wieder zusammen gesetzt werden müssen.&lt;br /&gt;
Es bot sich also eine elegante Lösung an: die XML-Files mit xstream in ein POJO de-serialisieren, validieren und ebenfalls mit &lt;a href=&quot;http://xstream.codehaus.org/&quot; target=&quot;_blank&quot;&gt;xstream&lt;/a&gt; in eine &lt;a href=&quot;http://json.org/&quot; target=&quot;_blank&quot;&gt;JSON&lt;/a&gt;-Repräsentation umwandeln - und ab damit in die CouchDB!&lt;br /&gt;
Das funktioniert auch ganz wunderbar. Auch der umgekehrte Weg - den JSON-String wieder in ein POJO de-serialisieren - klappt ohne Probleme.&lt;br /&gt;
&lt;br /&gt;
Die Probleme fangen erst an, wenn man mit einer entsprechenden Library an die CouchDB geht, und ein &lt;a href=&quot;http://www.json.org/java/index.html&quot; target=&quot;_blank&quot;&gt;org.json.JSONObject&lt;/a&gt; zurück bekommt. Denn in dem daraus de-serialisiertem POJO, war auf einmal in einer darin enthaltenen Map &lt;b&gt;&lt;i&gt;systematisch key und value vertauscht&lt;/i&gt;&lt;/b&gt;. Die CouchDB war als Problemquelle sehr schnell ausgeschlossen, denn mit dem von ihr zurück gelieferten JSON-String trat das Problem nicht auf. Der String jedoch, der von org.json.JSONObject.toString() geliefert wurde, unterschied sich merklich von dem, was CouchDB lieferte.&lt;br /&gt;
&lt;br /&gt;
Nun ist es so, dass xstream eine Map, wie zB &quot;Map&lt;String, CustomObject&gt;&quot; folgendermaßen als JSON serialisiert:&lt;br /&gt;
&lt;pre style=&quot;background-color:#CCCCCC&quot;&gt;
&quot;mapObjectName&quot;: {
   &quot;entry&quot;: [
      { 
         &quot;string&quot;: &quot;theKey&quot;,
         &quot;CustomObject&quot;: { &quot;someField&quot;: &quot;fieldValue&quot; }
      }
   ]
}
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Von org.json.JSONObject.toString() wird aber folgendes ausgegeben:&lt;br /&gt;
&lt;pre style=&quot;background-color:#CCCCCC&quot;&gt;
&quot;mapObjectName&quot;: {
   &quot;entry&quot;: [
      { 
         &quot;CustomObject&quot;: { &quot;someField&quot;: &quot;fieldValue&quot; }
         &quot;string&quot;: &quot;theKey&quot;,
      }
   ]
}
&lt;/pre&gt;&lt;br /&gt;
Dafür gibt es zwei Gründe: zum einen schreibt JSON &lt;b&gt;nicht&lt;/b&gt; vor, das die Daten in der richtigen Reihenfolge sein müssen. Zum anderen, versucht es das JSONObject auch gar nicht erst - das Problem tritt nämlich nicht erst beim ausgeben der Daten auf, sondern liegt bereits darin begründet, wie diese intern gespeichert werden.&lt;br /&gt;
&lt;br /&gt;
Und das ist genau die Stelle, an der es schwer fällt einen schuldigen zu finden. Ist xstream schuld (bzw. der verwendete Driver für JSON), weil über die JSON-spec hinaus darauf vertraut, dass die Daten immer in der richtigen Reihenfolge sind? Könnte xstream ein Map überhaupt anders serialisieren, um das zu umgehen? Oder macht das &quot;Feature&quot; von JSON, Daten eben explizit unsortiert zu behandeln, mehr Probleme als es löst?&lt;br /&gt;
&lt;br /&gt;
Da ich weder die Zeit noch die Lust hatte, diesen Fragen auf den Grund zu gehen, und es das Problem ohnehin nicht gelöst hätte, hab ich einfach bei der Implementierung angesetzt. Da die Java-library freie Software ist, war das die einfachste Lösung.&lt;br /&gt;
Es musste nur in zwei Konstuktoren von org.json.JSONOBject folgende Zeile geändert werden:&lt;br /&gt;
Von &lt;pre style=&quot;background-color:#CCCCCC&quot;&gt;this.map = new HashMap();&lt;/pre&gt;&lt;br /&gt;
Zu &lt;pre style=&quot;background-color:#CCCCCC&quot;&gt;this.map = new LinkedHashMap();&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
...das &quot;import java.util.LinkedHashMap;&quot; fügt eine gute IDE automatisch ein &lt;img src=&quot;https://www.martindroessler.de/blog/plugins/serendipity_event_emoticate/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 25 Jan 2012 09:10:16 +0100</pubDate>
    <guid isPermaLink="false">https://www.martindroessler.de/blog/index.php?/archives/72-guid.html</guid>
    
</item>
<item>
    <title>Urlaub in der Unterwelt</title>
    <link>https://www.martindroessler.de/blog/index.php?/archives/71-Urlaub-in-der-Unterwelt.html</link>
            <category>Software</category>
    
    <comments>https://www.martindroessler.de/blog/index.php?/archives/71-Urlaub-in-der-Unterwelt.html#comments</comments>
    <wfw:comment>https://www.martindroessler.de/blog/wfwcomment.php?cid=71</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://www.martindroessler.de/blog/rss.php?version=2.0&amp;type=comments&amp;cid=71</wfw:commentRss>
    

    <author>nospam@example.com (Martin 'Iridias' Drößler)</author>
    <content:encoded>
    &lt;a href=&quot;http://santadaemonica.de/wp/&quot; target=&quot;_blank&quot;&gt;&lt;!-- s9ymdb:49 --&gt;&lt;img width=&quot;67&quot; height=&quot;110&quot; style=&quot;float: left; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;https://www.martindroessler.de/blog/uploads/sd-screenshot-1.serendipityThumb.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Gestresst von all den Katastrophen in der Welt der Lebenden? &lt;br /&gt;
Eröffne dein eigenes Hotel in &lt;a href=&quot;http://santadaemonica.de/wp/&quot; target=&quot;_blank&quot;&gt;Santa Daemonica&lt;/a&gt;, dem Lieblings-Urlaubsort der Unterwelt, dem Mallorca der Monster, Usedom der Untoten, Domrep der Dämonen!&lt;br /&gt;
&lt;br /&gt;
Ein Android-handy ist dafür allerdings schon nötig. Und auch eine Internet-flat für selbiges sollte vorhanden sein, denn es handelt sich um einen &quot;Multiplayer Hotel Manager From Hell&quot;.&lt;br /&gt;
Und um etwaigen Fragen zuvor zu kommen: nein, das Spiel nicht nicht allein von mir - aber ich hab einen nicht unerheblichen Teil dazu beigetragen. &lt;br /&gt;
Es ist vielleicht nicht mega umfangreich, aber ein netter Zeitvertreib für Zwischendurch.&lt;br /&gt;
&lt;br /&gt;
Also auf nach Santa Daemonica! 
    </content:encoded>

    <pubDate>Wed, 08 Jun 2011 12:44:21 +0200</pubDate>
    <guid isPermaLink="false">https://www.martindroessler.de/blog/index.php?/archives/71-guid.html</guid>
    
</item>
<item>
    <title>Das tolle an &quot;Standards&quot; ist, dass es so viele davon gibt</title>
    <link>https://www.martindroessler.de/blog/index.php?/archives/70-Das-tolle-an-Standards-ist,-dass-es-so-viele-davon-gibt.html</link>
            <category>Software</category>
    
    <comments>https://www.martindroessler.de/blog/index.php?/archives/70-Das-tolle-an-Standards-ist,-dass-es-so-viele-davon-gibt.html#comments</comments>
    <wfw:comment>https://www.martindroessler.de/blog/wfwcomment.php?cid=70</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://www.martindroessler.de/blog/rss.php?version=2.0&amp;type=comments&amp;cid=70</wfw:commentRss>
    

    <author>nospam@example.com (Martin 'Iridias' Drößler)</author>
    <content:encoded>
    So zum Beispiel, was die Formatierung von Datums- und Zeitangaben angeht.&lt;br /&gt;
&lt;br /&gt;
In Java&#039;s DateFormat wird für das spezifizieren eines Zeitoffset der RFC 822 unterstützt, wo man einfach mit dem Zeichen &quot;z&quot; diesen Offset im Format &quot;+HHmm&quot; parsen kann.&lt;br /&gt;
Hätte man also einen Datums-String, der folgendermaßen aussieht:&lt;br /&gt;
&lt;blockquote&gt;2011-03-23T22:15:00.000+0100&lt;/blockquote&gt;&lt;br /&gt;
kann man das mit zB SimpleDateFormat mit folgendem Format-String parsen:&lt;br /&gt;
&lt;blockquote&gt;yyyy-MM-dd&#039;T&#039;HH:mm:ss.SSSz&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Soweit, so schön. Problematisch wird es allerdings, wenn man solche Angaben in XML-Dokumenten haben möchte.&lt;br /&gt;
Die XSD-Spezifikation stellt einen Typ &quot;xs:dateTime&quot; bereit, der einen String erwartet, der dem oben angegebenen &quot;ähnlich&quot; sieht. &lt;b&gt;ähnlich&lt;/b&gt;, weil ein kleines Detail eben doch anders sein &lt;b&gt;muss&lt;/b&gt;: im Offset, müssen Stunden und Minuten durch einen Doppelpunkt getrennt werden! Damit würde der String also so aussehen:&lt;br /&gt;
&lt;blockquote&gt;2011-03-23T22:15:00.000+01:00&lt;/blockquote&gt;&lt;br /&gt;
...und der SimpleDateFormater würde das nicht als valide Datumsangabe ansehen, gemäß dem oben stehenden FormatString! Denn der RFC 822 sieht an dieser Stelle keinen Doppelpunkt vor. An den hält sich XSD auch gar nicht, sondern an RFC 3339 (und auch das nur partiell - RFC 3339 erlaubt einige Dinge, die xs:dateTime nicht akzeptiert. zB ein Leerzeichen statt dem &quot;T&quot; in der Mitte zu benutzen).&lt;br /&gt;
&lt;br /&gt;
Der geneigte Entwickler möchte vermutlich bereits an dieser Stelle den Kopf auf die Tischplatte knallen. Nun das war zumindest meine erste Reaktion. Die Zweite war: &quot;da gibts doch bestimmt was von Ratiopharm... äh, ich meine Apache (Commons).&quot; Die haben ja sonst auch für alle gängigen Probleme &quot;schon mal etwas vorbereitet&quot;. Bei der Suche stieß ich dann darauf, dass es sogar schon etwas in Java eingebautes gibt! &lt;br /&gt;
Man soll es nicht für möglich halten: &quot;&lt;b&gt;javax.xml.bind.DatatypeConverter&lt;/b&gt;&quot; stellt eine Methode &quot;&lt;b&gt;parseDateTime&lt;/b&gt;&quot; bereit, die einen &quot;&lt;b&gt;lexicalXSDDateTime&lt;/b&gt;&quot;-String erwartet. ...natürlich, da hätte man ja drauf kommen können, dass eine Datumsangabe ein Datentyp ist &lt;!-- s9ymdb:48 --&gt;&lt;img width=&quot;50&quot; height=&quot;32&quot; style=&quot;border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;https://www.martindroessler.de/blog/uploads/upicard.gif&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 29 Mar 2011 09:04:18 +0200</pubDate>
    <guid isPermaLink="false">https://www.martindroessler.de/blog/index.php?/archives/70-guid.html</guid>
    
</item>
<item>
    <title>Ein Hoch auf variable Arbeitszeiten</title>
    <link>https://www.martindroessler.de/blog/index.php?/archives/65-Ein-Hoch-auf-variable-Arbeitszeiten.html</link>
            <category>Software</category>
            <category>Verschiedenes</category>
    
    <comments>https://www.martindroessler.de/blog/index.php?/archives/65-Ein-Hoch-auf-variable-Arbeitszeiten.html#comments</comments>
    <wfw:comment>https://www.martindroessler.de/blog/wfwcomment.php?cid=65</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://www.martindroessler.de/blog/rss.php?version=2.0&amp;type=comments&amp;cid=65</wfw:commentRss>
    

    <author>nospam@example.com (Martin 'Iridias' Drößler)</author>
    <content:encoded>
    Man stelle sich vor, man arbeitet gerade an einem neuen Feature für das hauseigene ContentManagementSystem und will das ganze testweise auf der eigenen Workstation deployen - aber das firmeneigene Maven-repository ist nicht erreichbar, weil der Server auf dem es läuft wegen Lastproblemen die Grätsche gemacht hat.&lt;br /&gt;
Man widmet sich anderen Dingen, nur um eine Stunde später fest zu stellen, dass das CMS nicht hoch fährt, weil ein Kollege ein paar &quot;unnötige dependencies&quot; raus geschmissen hat, und Hibernate auf einmal die bytecode manipulation library nicht mehr findet. Wenn man das Problem - verzeihung die &quot;Heraussforderung&quot; (denn es gibt nur Herausforderungen und keine Probleme) - endlich gelöst hat, einige Kollegen der Marke &quot;kannst du mal eben schnell&quot; abgewimmelt hat und endlich weiter arbeiten will, fällt dann plötzlich das Netz aus. Offenbar ein Kollege von Operations, der gerade ein paar &quot;Dosen umpatcht&quot;. Es steht nur noch WLAN zur Verfügung, aber darüber kommt man nicht direkt an die Server im Office - also alle Tunnel neu aufbauen, und ggfs. laufende Applikationen neu deployen oder neu starten, weil die jetzt auf localhost und einen anderen Port zugreifen müssen. Wenn dann noch beim Speichern der neuen Import-Spezifikation der X-Server ab raucht ...dann, ja dann ist es Zeit zur Abwechslung mal früher Feierabend zu machen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Schluss noch ein Gag für alle Java-entwickler:&lt;br /&gt;
Das kommt dabei raus, wenn man den CTO zu wörtlich nimmt, wenn dieser postuliert &lt;em&gt;&lt;u&gt;&quot;Bei uns wird Qualität groß geschrieben!&quot;&lt;/u&gt;&lt;/em&gt;&lt;br /&gt;
&lt;pre style=&quot;margin:2px;&quot;&gt;
public Format findBestContentFormat(String contentType, int QualityMin, int QualityMax) {
...
&lt;/pre&gt;&lt;br /&gt;
Alle die den Witz nicht verstehen, sollten einen Blick in die &lt;a href=&quot;http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html#367&quot; target=&quot;_blank&quot;&gt;Java Coding Conventions&lt;/a&gt; werfen &lt;img src=&quot;https://www.martindroessler.de/blog/plugins/serendipity_event_emoticate/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; class=&quot;emoticon&quot; /&gt; 
    </content:encoded>

    <pubDate>Tue, 04 May 2010 17:20:20 +0200</pubDate>
    <guid isPermaLink="false">https://www.martindroessler.de/blog/index.php?/archives/65-guid.html</guid>
    
</item>
<item>
    <title>Ubuntu 9.10 und die Programmier-Idioten</title>
    <link>https://www.martindroessler.de/blog/index.php?/archives/60-Ubuntu-9.10-und-die-Programmier-Idioten.html</link>
            <category>Kritik</category>
            <category>Software</category>
    
    <comments>https://www.martindroessler.de/blog/index.php?/archives/60-Ubuntu-9.10-und-die-Programmier-Idioten.html#comments</comments>
    <wfw:comment>https://www.martindroessler.de/blog/wfwcomment.php?cid=60</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://www.martindroessler.de/blog/rss.php?version=2.0&amp;type=comments&amp;cid=60</wfw:commentRss>
    

    <author>nospam@example.com (Martin 'Iridias' Drößler)</author>
    <content:encoded>
    Gestern ist (k)Ubuntu 9.10 erschienen. Also können sich nicht bloß die Windows-user über eine neue Version freuen, sondern auch Benutzer von alternativen Betriebssystemen.&lt;br /&gt;
&lt;br /&gt;
Auf meinem privaten Rechner lief das Update absolut problemlos und userfreundlich. Als ich also auch meinen Arbeitsrechner updaten wollte, erwartete ich eigentlich keine Probleme - aber weit gefehlt. Der Updater tat einfach gar nichts - nicht mal ein Fehlerfenster erschien. Ich hatte erst den Verdacht, dass er mit dem Proxy nicht klar kommt, aber auch diverse Änderungen der Konfig brachten nix.&lt;br /&gt;
&lt;br /&gt;
Nach etwas Suchen im Internet dann die Erkenntnis: auch bei Ubuntu gibt es Idioten! Und damit meine ich nicht die User, sondern die hirnverbranten Irren, die diesen Update-manager geschrieben haben!&lt;br /&gt;
Wer auch immer der/die Blödman war, hat noch nie etwas von Threads, Timeouts oder Useability gehört - soviel steht fest! Ansonsten wäre er sicher auf die Idee gekommen, dass Laden der Releasenotes in einen extra Thread zu verlagern, um die GUI nicht zu blockieren/freezen. Außerdem wäre er dann auch auf die Idee gekommen, einen Timeout für das Laden der Releasenotes zu setzen und in einem Fall wie diesem - wo die DE-Server down/überlastet sind - eine entsprechnde Fehlermeldung anzuzeigen. Und letztlich hätte er dann auch wenigstens ein kleines Hinweisfenster angezeigt, dass er gerade die Releasenote lädt, statt einfach gar nix zu machen.&lt;br /&gt;
&lt;br /&gt;
Klar kann man einfach sagen &quot;die Releasenotes sind doch nur ein bissle Text, da dauert das Laden doch nicht lange&quot; - aber dass bei einem neuen Release die Server gerne mal überlasstet sind, ist doch nix neues. Damit sollte man jawohl rechnen.&lt;br /&gt;
&lt;br /&gt;
Lösung ...nein, würg-around für das Problem, ist, einfach bei den Paket-quellen, den Haupt-Server als Bezugsquelle zu setzen statt den Lokalen. 
    </content:encoded>

    <pubDate>Fri, 30 Oct 2009 10:55:46 +0100</pubDate>
    <guid isPermaLink="false">https://www.martindroessler.de/blog/index.php?/archives/60-guid.html</guid>
    
</item>
<item>
    <title>Novell ohne Proxy?</title>
    <link>https://www.martindroessler.de/blog/index.php?/archives/41-Novell-ohne-Proxy.html</link>
            <category>Kritik</category>
            <category>Software</category>
    
    <comments>https://www.martindroessler.de/blog/index.php?/archives/41-Novell-ohne-Proxy.html#comments</comments>
    <wfw:comment>https://www.martindroessler.de/blog/wfwcomment.php?cid=41</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://www.martindroessler.de/blog/rss.php?version=2.0&amp;type=comments&amp;cid=41</wfw:commentRss>
    

    <author>nospam@example.com (Martin 'Iridias' Drößler)</author>
    <content:encoded>
    Vor kurzem ist OpenSuSE 11 erschienen.&lt;br /&gt;
&lt;img src=&quot;http://static.opensuse.org/c/images/common/130px-Opensuse-11.jpeg&quot; alt=&quot;OpenSuSE 11&quot; /&gt;&lt;br /&gt;
Und nach allem was man bislang hÃ¶rt, ist es ihnen endlich gelungen die Paketverwaltung schnell zu machen. Das war meiner Meinung nach lÃ¤ngst Ã¼berfÃ¤llig.&lt;br /&gt;
Ein generelles Problem mit den OpenSuSE-Repositories wird man aber sicher auch damit nicht behoben haben: die Unart alte Packages einfach aus dem Repository zu entfernen sobald eine neue Version bzw. ein neu erstelltes Package vorliegt - was leider ziemlich oft vor kommt. &lt;br /&gt;
Das resultiert dann darin: man will ein neues Programm installieren und bekommt auf einmal die Meldung, dass die Datei nicht auf dem Server gefunden wurde. Man muss erst alle Repositories aktualliesieren, damit Yast weiÃŸ, das die Datei &quot;Programm.i386.3-56.rpm&quot; nicht mehr da ist, sonder durch die neu kompilierte version &quot;Programm.i386.3-57.rpm&quot; ersetzt wurde.&lt;br /&gt;
Dummerweise sind die Metadaten der Repositories zum Teil auch mehrere Megabyte groÃŸ! Wenn man kein DSL hat, und muss jetzt jedesmal die Repositories aktualisieren nur weil man ein Programm installieren will, ist das einfach nur zum Kotzen!&lt;br /&gt;
&lt;br /&gt;
Aber um zum Titel dieses Beitrag zu kommen: mit OpenSuSE 11 wird ebenfalls KDE4 mitgeliefert, den man sich als Defaul-Desktop einrichten kann. Genauer gesagt handelt es sich dabei um einen Mischmasch aus KDE 4.0 und KDE 4.1 (beta).&lt;br /&gt;
Das wÃ¤re ja auch nicht weiter schlimm, gÃ¤be es da nicht das eklatante Problem, das KDE4 keine Proxy-UnterstÃ¼tzung hat!! Es gibt dazu seit Ã¼ber einem halben Jahr einen Bug-report: &lt;a href=&quot;http://bugs.kde.org/show_bug.cgi?id=155707&quot;&gt;http://bugs.kde.org/show_bug.cgi?id=155707&lt;/a&gt;&lt;br /&gt;
Das macht KDE4 in Unternehmen und UniversitÃ¤ten quasi unbrauchbar! Man kann jetzt zwar in erster Linie den KDE-Entwicklern vorwerfen, das sich nicht darum gekÃ¼mmert wird - aber das man bei Novell dieses Problem (beim Testen) nicht bemerkt hat, will mir einfach nicht in den SchÃ¤del. Man sollte ja annehmen, das man bei einer groÃŸen Firma wie Novell auch Proxies einsetzt.&lt;br /&gt;
&lt;br /&gt;
Genug gemeckert fÃ¼r heute. 
    </content:encoded>

    <pubDate>Mon, 30 Jun 2008 09:42:51 +0200</pubDate>
    <guid isPermaLink="false">https://www.martindroessler.de/blog/index.php?/archives/41-guid.html</guid>
    
</item>
<item>
    <title>ICQ/AIM bald mit Jabber-Protokoll?</title>
    <link>https://www.martindroessler.de/blog/index.php?/archives/37-ICQAIM-bald-mit-Jabber-Protokoll.html</link>
            <category>Software</category>
            <category>Verschiedenes</category>
    
    <comments>https://www.martindroessler.de/blog/index.php?/archives/37-ICQAIM-bald-mit-Jabber-Protokoll.html#comments</comments>
    <wfw:comment>https://www.martindroessler.de/blog/wfwcomment.php?cid=37</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://www.martindroessler.de/blog/rss.php?version=2.0&amp;type=comments&amp;cid=37</wfw:commentRss>
    

    <author>nospam@example.com (Martin 'Iridias' Drößler)</author>
    <content:encoded>
    Es rappelt im Karton. Die Blogs und Newssites zwitschern es von den BÃ¤umen: Ã¶ffnet sich AOL fÃ¼r Jabber/XMPP?&lt;br /&gt;
Zuerst auf das Thema gestoÃŸen bin ich Ã¼ber das Jabber-Blog vom ccc (&lt;a href=&quot;http://web.jabber.ccc.de/?p=21&quot;&gt;http://web.jabber.ccc.de/?p=21&lt;/a&gt;) und nun &lt;a href=&quot;http://www.heise.de/newsticker/meldung/102060&quot;&gt;berichtet auch heise&lt;/a&gt; darÃ¼ber!&lt;br /&gt;
&lt;br /&gt;
AOL Ã¼bt sich zwar noch in Dementi, das dies bald offiziell wird. Aber angesichts der Tatsache, das Google schon erfolgreich auf das XMPP setzt, wird AOL wohl Ã¼ber kurz oder lang auch diesen Schritt vollziehen. Und natÃ¼rlich werden sie ihre Client-software wieder mit reichlich Extras ausstatten, damit die user auch weiterhin dieses werbeverseuchte Ding benutzen.&lt;br /&gt;
Das kann mir dann allerdings egal sein - solange sie sich dazu entschlieÃŸen auch server2server-Komunikation zu aktivieren! Dann haben die ganzen ICQ-Nutzer endlich keine Ausrede mehr, kein Jabber zu benutzen &lt;img src=&quot;https://www.martindroessler.de/blog/plugins/serendipity_event_emoticate/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
Und ich kann endlich damit aufhÃ¶ren den Leuten zu sagen &quot;Ich hab kein ICQ - warum benutzt du nicht Jabber?&quot;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 20 Jan 2008 09:58:21 +0100</pubDate>
    <guid isPermaLink="false">https://www.martindroessler.de/blog/index.php?/archives/37-guid.html</guid>
    
</item>
<item>
    <title>KDE 4.0</title>
    <link>https://www.martindroessler.de/blog/index.php?/archives/36-KDE-4.0.html</link>
            <category>Kritik</category>
            <category>Software</category>
    
    <comments>https://www.martindroessler.de/blog/index.php?/archives/36-KDE-4.0.html#comments</comments>
    <wfw:comment>https://www.martindroessler.de/blog/wfwcomment.php?cid=36</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://www.martindroessler.de/blog/rss.php?version=2.0&amp;type=comments&amp;cid=36</wfw:commentRss>
    

    <author>nospam@example.com (Martin 'Iridias' Drößler)</author>
    <content:encoded>
    Seit Freitag dem 11.01. ist das lang erwartete KDE 4.0 endlich drauÃŸen, und in den Blogs von PlanetKDE lieÃŸt man nur noch davon. Also dachte ich mir, ich gebe auch mal meine Meinung darÃ¼ber zum besten.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.kde.org/announcements/4.0/&quot;&gt;&lt;img src=&quot;http://www.kde.org/img/kde40.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Ich hatte ja schon die Betas und RCs ausprobiert, und wusste schon in etwa was mich erwartet. TatsÃ¤chlich ist die finale Version nun in einigen Punkten verbessert, die mich bei den Betas noch gestÃ¶rt hatten. Dennoch funktionierten auf meinem PC auf einmal die Plasmoids nicht mehr - wenn ich eins hinzufÃ¼gen will, erzeugt er mir nur einen Container mit dem Text &quot;Dieses Objekt kann nicht erzeugt werden&quot;. Und das obwohl es mit den RCs noch ging. Und noch kurioser: auf meinem Notebook (auf dem die Betas nicht drauf waren) funktioniert es aber tadellos.&lt;br /&gt;
Ich werde wohl mal versuchen mÃ¼ssen, all die Pakete runter zu schmeiÃŸen die letztendlich nicht teil der final Version geworden sind - vielleicht hilft das.&lt;br /&gt;
&lt;br /&gt;
Von diesen MerkwÃ¼rdigkeiten mal abgesehen, ist KDE 4.0 aber recht benutzbar. Es sind lediglich Kleinigkeiten die noch stÃ¶ren - z.B. hab ich noch keine MÃ¶glichkeit gefunden eigene Tastatur-Shortcuts zu definieren, um bspw. mit Strg+F5 auf ArbeitsflÃ¤chen hÃ¶her als 4 zu wechseln.&lt;br /&gt;
&lt;br /&gt;
Aber nun mal zu den positiven Sachen: die neuen Effekte von KWin sind ziemlich geil, und man braucht sich nun als KDE-user nicht mehr vor den Compiz-usern zu verstecken &lt;img src=&quot;https://www.martindroessler.de/blog/plugins/serendipity_event_emoticate/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
Die Transparenz-effekte sind geschickt eingesetzt und nÃ¼tzlich wenn man z.B. mit alt+tab zwischen Fenstern umschaltet. Auch die Live-Vorschau der Fenster beim Umschalten ist der Hammer - die funktioniert sogar fÃ¼r Spiele. Wenn man also bspw. WoW zockt und dann mit alt-tab switcht, sieht man WoW in der kleinen Vorschau weiter laufen, wÃ¤hren sich bspw. die Konsole halb-transparent auf den Bildschirm legt und man nun zu 30% WoW sieht und 70% die Konsole. &lt;br /&gt;
&lt;br /&gt;
Die Plasmoids werden sicher mit der Zeit mehr werden - im Moment ist die Auswahl noch recht ..naja, Ã¼bersichtlich.&lt;br /&gt;
Aber ich hatte ja im Playground einige gesehen, die dann hoffentlich in KDE 4.1 Einzug halten werden. &lt;br /&gt;
&lt;br /&gt;
Von Dolphin bin ich im Ã¼brigen nicht sonderlich angetan - auch wenn ich ihn nicht schlecht finde. Aber zum GlÃ¼ck ist Konqueror ja noch dabei. Und der hat sich insbesondere was die Web-darstellung angeht sehr verbessert! So wird bspw. auf wow-armory jetzt der Hintergrund des Textfelds nicht mehr WeiÃŸ angezeigt, sondern korrekt in schwarz - was einigen Ã„rger erspart, weil er vorher die Schrift auch schon weiÃŸ angezeigt hatte, nur halt den Hintergrund auch ...und weiÃŸe Schrift auf weiÃŸem Grund macht sich nicht so gut &lt;img src=&quot;https://www.martindroessler.de/blog/plugins/serendipity_event_emoticate/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
Auch die Konfiguration von Konqueror ist jetzt wesentlich aufgerÃ¤umter als vorher. &lt;br /&gt;
&lt;br /&gt;
Zwar sind sehr viele Anwendungen noch nicht auf KDE 4 portiert, aber das Ã¼berrascht kaum. Immerhin haben einige Entwickler gemeint, sie fangen erst an zu portieren, wenn KDE 4 drauÃŸen ist. Insofern hatten die KDE-Entwickler auch nicht wirklich eine Wahl - da hÃ¤tte weiteres HinauszÃ¶gern des Releases auch nix gebracht.&lt;br /&gt;
Aber immerhin hat man jetzt mit KDE 4.0 eine grunderneuerte Basis auf die man auf aufsetzen kann um in Zukunft bessere Features einbauen zu kÃ¶nnen ohne dreckige Hacks. (Aaron J. Seigo hat mal etwas Ã¼ber die Code-basis von Kicker geschrieben, und nach dem Lesen war klar, warum eine so grundlegende Ãœberarbeitung oder gar Neuentwicklung - wie mit KDE4 geschehen - notwendig ist/war)&lt;br /&gt;
&lt;br /&gt;
Soviel erst mal zu meinen ersten EindrÃ¼cken...&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 13 Jan 2008 12:23:10 +0100</pubDate>
    <guid isPermaLink="false">https://www.martindroessler.de/blog/index.php?/archives/36-guid.html</guid>
    
</item>
<item>
    <title>Ã„rger mit Java</title>
    <link>https://www.martindroessler.de/blog/index.php?/archives/23-rger-mit-Java.html</link>
            <category>Software</category>
    
    <comments>https://www.martindroessler.de/blog/index.php?/archives/23-rger-mit-Java.html#comments</comments>
    <wfw:comment>https://www.martindroessler.de/blog/wfwcomment.php?cid=23</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://www.martindroessler.de/blog/rss.php?version=2.0&amp;type=comments&amp;cid=23</wfw:commentRss>
    

    <author>nospam@example.com (Martin 'Iridias' Drößler)</author>
    <content:encoded>
    Also eigentlich bin ich ja groÃŸer Fan von Java, aber in letzter Zeit gab es so einiges was mich fast zur WeiÃŸglut getrieben hÃ¤tte.&lt;br /&gt;
Da wÃ¤re zum einen ein Problem mit dem Classpath: denn normalerweise kann man selbigen bequem mit der Option &quot;-cp&quot; oder &quot;-classpath&quot; setzen. Ich hab absichtlich das Wort &quot;normalerweise&quot; gewÃ¤hlt, weil es eben doch nicht immer geht.&lt;br /&gt;
Denn wenn man ein Programm in ein jar packt und das dann mit &quot;java -cp lib/other.jar -jar bla.jar&quot; ausfÃ¼hren will, dann wird er mit einer wunderschÃ¶nen NoClassDefFoundException auf die Schnauze fallen. Denn, was ich nach langer Suche im Internet erfahren musste: bei jar-Dateien wird die Option -cp bzw. -classpath immer ignoriert. Stattdessen wird als Classpath nur das genommen, was auch im Manifest definiert ist.&lt;br /&gt;
Nicht, das man das dem Benutzer mitteilen kÃ¶nnte - nein! Wo ist denn das verdammte Problem, bei gleichzeitiger Verwendung der Option &quot;-jar&quot; und &quot;-cp&quot; eine Warnung auszugeben, das diese Verwendung unzulÃ¤ssig ist? Ich meine, selbst mit verbose Ausgabe erhÃ¤lt man keinerlei Hinweis darauf. &lt;br /&gt;
Usability: 6 - setzen!&lt;br /&gt;
&lt;br /&gt;
Ach ja: wie man das Problem umgeht: die Option &quot;-jar&quot; weglassen, das betreffende jar in den classpath mit aufnehmen und dann den vollen Pfad zur Klasse mit der main-methode angeben. Etwa so: &quot;java -cp lib/other.jar:bla.jar de.leckmich.Main&quot;&lt;br /&gt;
&lt;br /&gt;
Aber da ist noch ein Thema, was noch viel mehr zum Kotzen ist, weil es nÃ¤mlich dafÃ¼r keinen Workaround gibt: Mit Java 6 funktioniert das Drucken unter Linux nicht mehr! Gar nicht!!!!&lt;br /&gt;
Zum einen, weil seit Cups 1.2 als Host ein Socket angegeben ist mit dem Java nicht umgehen kann (was nicht ganz so schlimm ist, weil man das in der Config, oder per Umgebungsvariable auf localhost Ã¤ndern kann), zum anderen aber, weil seit Java 6 kein valides Postscript mehr erzeugt wird (d.h. valide soll es angeblich schon sein - es wird nur von keinem Programm unterstÃ¼tzt). Das fÃ¼hrt dann dazu, das sich GhostScript mit einem &quot;Error: /configurationerror in --setpagedevice-&quot; verabschiedet.&lt;br /&gt;
Und was dem ganzen noch die Krone aufsetzt: der Fehler ist seit Ã¼ber einem halben Jahr bekannt und noch immer nicht behoben!!&lt;br /&gt;
&lt;br /&gt;
Die einzige MÃ¶glichkeit das zu Umgehen, wÃ¤re: auf Java 5 zurÃ¼ck zu migrieren. Wenn man allerdings eine Swing-Anwendung hat, die auf das neue GroupLayout aufsetzt, dann hat man es schon reichlich schwerer! Wenn man dann noch diverse andere neue Features von Java 6 verwendet, dann hat man vÃ¶llig die Arschkarte gezogen!&lt;br /&gt;
&lt;br /&gt;
Und wie soll ein Unternehmen, welches Anwendungen auf Java/Swing-Basis verkauft, es seinen Kunden erklÃ¤ren, das sie auf einmal nicht mehr drucken kÃ¶nnen? Der durchschnittliche Endkunde ist doch froh, wenn er bei seinem Rechner den Knopf zum an- und ausschalten findet. Der wird es niemals verstehen, sondern die Schuld auf das Programm schieben! &lt;br /&gt;
&lt;br /&gt;
In diesem Fall muss man aber wirklich die Schuld auf &lt;a target=&quot;_blank&quot; href=&quot;http://www.sun.com/&quot;&gt;Sun&lt;/a&gt; schieben. Und womit? Mit Recht!&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sat, 30 Jun 2007 15:18:17 +0200</pubDate>
    <guid isPermaLink="false">https://www.martindroessler.de/blog/index.php?/archives/23-guid.html</guid>
    
</item>
<item>
    <title>Drachenboot besiegt bash</title>
    <link>https://www.martindroessler.de/blog/index.php?/archives/22-Drachenboot-besiegt-bash.html</link>
            <category>Software</category>
            <category>Verschiedenes</category>
    
    <comments>https://www.martindroessler.de/blog/index.php?/archives/22-Drachenboot-besiegt-bash.html#comments</comments>
    <wfw:comment>https://www.martindroessler.de/blog/wfwcomment.php?cid=22</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>https://www.martindroessler.de/blog/rss.php?version=2.0&amp;type=comments&amp;cid=22</wfw:commentRss>
    

    <author>nospam@example.com (Martin 'Iridias' Drößler)</author>
    <content:encoded>
    Nachdem ich nun wochenlang nichts neues zu berichten wusste, ist es nun mal wieder Zeit für einen neuen Eintrag.&lt;br /&gt;
Am Wochenende, genauer gesagt am Samstag, war das Drachenboot-rennen im Medienhafen. Unsere Firma hatte dieses Jahr zum ersten mal daran Teil genommen, und angesichts der Tatsache, das wir quasi noch Anfänger waren und auch das Wetter gegen uns war, kann man unsere Platzierung auf dem 15. Platz (bei 40 Teilnehmern) durchaus als Erfolg werten!&lt;br /&gt;
&lt;br /&gt;
Das Wetter an sich war eigentlich nicht schlecht - nur dumm, dass es immer genau dann geregnet hat wenn wir am paddeln waren. Und um das ganze noch zu toppen, hat es natürlich pünktlich wenn wir fertig waren wieder aufgehört. Das ganze erinnerte mich an diverse Cartoons, wenn die kleine Regenwolke genau über dem Kojoten steht und ihn verfolgt.&lt;br /&gt;
Wir haben schon mit dem Gedanken gespielt, den Namen unseres Teams nächstes Jahr in &quot;Gewitterfront&quot; zu ändern.&lt;br /&gt;
&lt;br /&gt;
So und um dem Thema dieses Blogs noch gerecht zu werden: ein kleiner Exkurs darüber, das auch die bash beschissen sein kann!&lt;br /&gt;
Die Problemstellung war diesmal: alle Verzeichnisse in einem bestimmten Verzeichnis durchgehen und gucken ob eine Datei mit einem bestimmten Namen darin liegt.&lt;br /&gt;
Klingt einfach? Im Grunde ja, aber... nun gut, gehen wir der Reihe nach.&lt;br /&gt;
Mein erster Ansatz war natürlich jener hier:&lt;br /&gt;
&lt;pre&gt;
for g in `ls -1b ${directoryName}`
do
  # Verzeichnis checken
done
&lt;/pre&gt;&lt;br /&gt;
Zur Erläuterung: die optionen -1 und -b von ls bewirken, das jede Datei auf einer extra Zeile ausgegeben wird, und das Leerzeichen escaped werden. Man sollte annehmen, dass das funktioniert - tut es aber nicht!&lt;br /&gt;
Wenn man in ${directoryName} ein Verzeichnis &quot;ein verzeichnis&quot; hat (man beachte das Leerzeichen), dann wird er die Schleife einmal für &quot;ein&quot; und einmal für &quot;verzeichnis&quot; durchlaufen! Auch wenn man dem ls die Option &quot;-Q&quot; übergibt, welche dafür sorgt das die Ergebnisse gequoted werden, ändert das nichts daran.&lt;br /&gt;
&lt;br /&gt;
Es gibt auch keine Möglichkeit in irgendeiner Form zu definieren, das die for-schleife nur noch linebreaks und keine Leerzeichen als Separator benutzen soll.&lt;br /&gt;
Und so blieb mir nur die Möglichkeit mich zu ärgern, und das ganze wie folgt um zu schreiben:&lt;br /&gt;
&lt;pre&gt;
`ls -1b {directoryName} &gt; temporaryList.txt`
while read g
do
  # das selbe wie oben
done &lt; temporaryList.txt
&lt;/pre&gt;&lt;br /&gt;
Das ist natürlich reichlich unschön, weil man hier eine temporäre Datei anlegen muss, aber scheinbar der einzige Weg.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Nachtrag&lt;/b&gt;&lt;br /&gt;
Wie ich später heraus fand, ist das durchaus nicht der einzige Weg.&lt;br /&gt;
Mit einem Kniff geht es auch ohne temporäre Datei:&lt;br /&gt;
&lt;pre&gt;
while read g
do
  echo &quot;$g&quot;;
done &lt; &lt;(ls -1b /path/to/target)
&lt;/pre&gt;&lt;br /&gt;
Wichtig ist dabei das Leerzeichen zwischen den beiden &#039;&lt;&#039; - das sorgt dafür, dass man quasi eine Art virtuelle, temporäre Datei hat, von der aus gelesen wird. 
    </content:encoded>

    <pubDate>Mon, 18 Jun 2007 15:55:00 +0200</pubDate>
    <guid isPermaLink="false">https://www.martindroessler.de/blog/index.php?/archives/22-guid.html</guid>
    
</item>
<item>
    <title>&quot;strafe sie mit Ignoranz...&quot;</title>
    <link>https://www.martindroessler.de/blog/index.php?/archives/21-strafe-sie-mit-Ignoranz....html</link>
            <category>Kritik</category>
            <category>Software</category>
    
    <comments>https://www.martindroessler.de/blog/index.php?/archives/21-strafe-sie-mit-Ignoranz....html#comments</comments>
    <wfw:comment>https://www.martindroessler.de/blog/wfwcomment.php?cid=21</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://www.martindroessler.de/blog/rss.php?version=2.0&amp;type=comments&amp;cid=21</wfw:commentRss>
    

    <author>nospam@example.com (Martin 'Iridias' Drößler)</author>
    <content:encoded>
    Es gibt Leute, die haben keine Ahnung - aber davon jede Menge!&lt;br /&gt;
Ein Thema was mit in letzter Zeit immer wieder aufstÃ¶ÃŸt, ist die unsÃ¤gliche Arroganz und Ignoranz einiger Leute, die der Meinung sind unbedingt anderen Leuten ihre geistige Diarrhoe mitteilen zu mÃ¼ssen.&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel heute, beim Lesen dieser News auf Pro-Linux: http://www.pro-linux.de/news/2007/11166.html&lt;br /&gt;
Offenbar gibt es genug Personen, die immernoch unreflektiert LÃ¼gen verbreiten wie: &quot;SuSE&#039;s Yast Ã¼berschreibt config-Dateien&quot; oder &quot;SuSE wÃ¤re viel besser wenn es etwas wie APT geben wÃ¼rde.&quot;&lt;br /&gt;
&lt;br /&gt;
Das SuSE seit Version 8.x keine config-Dateien mehr einfach so Ã¼berschreibt scheint an diesen Leuten genauso vorbei gegangen zu sein, wie die Tatsache, das es ebensolange apt4suse bzw. apt4rpm gibt (und seit LÃ¤ngerem mit &lt;a href=&quot;http://labix.org/smart&quot;&gt;Smart&lt;/a&gt; sogar etwas besseres als APT, weil es nicht nur APT-Repositories sondern auch so ziemlich alles andere verwerten kann).&lt;br /&gt;
&lt;br /&gt;
Selbst Aaron Seigo berichtete unlÃ¤ngst auf &lt;a href=&quot;http://aseigo.blogspot.com/2007/05/when-i-forget-why-i-pick-title.html&quot;&gt;seinem Blog&lt;/a&gt;, das ihm ein solches Verhalten zunehmend auf die Nerven geht.&lt;br /&gt;
Offenbar gibt es zumindestens einen Gnome-Entwickler der der Meinung war, allen Mitteilen zu mÃ¼ssen, das DBUS das neueste und tollste seit langem ist - ungeachtet der Tatsache, das KDE mit DCOP schon seit Jahren so ein Feature hat, und das dieses eigentlich auch nicht ganz unbekannt ist.&lt;br /&gt;
&lt;br /&gt;
Aber noch schlimmer sind IMO die Idioten, die dann solche SprÃ¼che raushauen wie &quot;KDE4 benutzt auch DBUS, genau wie Gnome. Das beweist, das Gnome der bessere Desktop ist&quot; - das man bei KDE nur deswegen auf DBUS umsteigt, um ein wenig KompatibilitÃ¤t herzustellen, scheint solche Leute nicht zu interessieren. Solche Idioten kennen nur Konkurrenzkampf um jeden Preis - bloÃŸ nicht eingestehen, das das andere Desktop-Environment vielleicht doch einige Dinge besser macht. &lt;br /&gt;
&lt;br /&gt;
...jetzt hÃ¤tte ich auch fast vergessen zu erwÃ¤hnen wie der Titel dieses Eintrags dazu passt. Das war das Zitat eines Kumpels, das er immer dann brachte, wenn ihn etwas stÃ¶rte. Frei nach dem Motto &quot;Wenn ich es ignorieren kann, betrifft es mich auch nicht.&quot; 
    </content:encoded>

    <pubDate>Tue, 08 May 2007 10:34:05 +0200</pubDate>
    <guid isPermaLink="false">https://www.martindroessler.de/blog/index.php?/archives/21-guid.html</guid>
    
</item>
<item>
    <title>es gibt immer was neues zu entdecken</title>
    <link>https://www.martindroessler.de/blog/index.php?/archives/20-es-gibt-immer-was-neues-zu-entdecken.html</link>
            <category>Software</category>
    
    <comments>https://www.martindroessler.de/blog/index.php?/archives/20-es-gibt-immer-was-neues-zu-entdecken.html#comments</comments>
    <wfw:comment>https://www.martindroessler.de/blog/wfwcomment.php?cid=20</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://www.martindroessler.de/blog/rss.php?version=2.0&amp;type=comments&amp;cid=20</wfw:commentRss>
    

    <author>nospam@example.com (Martin 'Iridias' Drößler)</author>
    <content:encoded>
    Es ist schon wieder eine Weile her das ich was geschrieben hab - vor allem weil es in letzter Zeit wie immer Ã¼bermÃ¤ÃŸig viel zu tun gab. Aber wie dem auch sei, letzte Woche bin ich dennoch dazu gekommen mal meinen alten Rechner als Server einzurichten. Das wollte ich eigentlich schon immer mal machen, aber bislang stand er halt nur in der Ecke rum.&lt;br /&gt;
&lt;br /&gt;
In erster Linie soll er natÃ¼rlich als Backup-Server dienen, da die Datenmengen die es zu sichern gilt zu groÃŸ fÃ¼r eine DVD oder gar CD sind. Die entsprechenden Dateien jedesmal manuell zu sichern schied von vorherein aus - sowas funktioniert nicht. Ein Backup muss einfach sein! Am besten so einfach, das man nur auf ein Icon klicken muss und der Rest geht automatisch. Wenn es zu aufwÃ¤ndig ist, dann macht man es nÃ¤mlich meistens nicht.&lt;br /&gt;
Also hab ich mich daran gemacht ein Script zu schreiben. Da immer nur die Ã„nderungen zu sichern sind, bot sich rsync Ã¼ber ssh an. Um nun verschiedene Verzeichnisse auf meinem Rechner mit verschiedenen Verzeichnissen auf dem Server zu synchronisieren sind natÃ¼rlich mehrere Aufrufe von rsync nÃ¶tig, wo wir schon zum ersten Problem kommen: man mÃ¼sste dann jedesmal das Passwort angeben. Das scheidet natÃ¼rlich aus, weil es im Gegensatz zur Anforderung steht &quot;einfach nur auf ein Icon klicken&quot;.&lt;br /&gt;
Aber es fand sich recht schnell eine LÃ¶sung dafÃ¼r. Wenn man mit ssh eine public-key-authentication einrichtet, hat man die MÃ¶glichkeit die Authentifizierung mit dem Programm ssh-agent abzuwickeln. Man gibt dann nur noch einmal das Passwort an und wird dann fÃ¼r die spezifizierte Zeitspanne nicht mehr danach gefragt. (Wie man das ganze aufsetzt erfÃ¤hrt man hier: &lt;a href=&quot;http://sial.org/howto/openssh/publickey-auth/#s3&quot;&gt;http://sial.org/howto/openssh/publickey-auth/#s3&lt;/a&gt; )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nachdem das mit dem Backup also funktioniert, hab ich mich daran gemacht fÃ¼r meine Projekte subversion auszuprobieren.&lt;br /&gt;
Das subversion besser ist als CVS hab ich ja vorher schon mitbekommen. Aber begeistert hat mich vor allem eine Sache: wenn man bei CVS eine Datei hat und fÃ¼gt, sagen wir mal eine neue Zeile ein. Dann erkennt das ja, das die Datei geÃ¤ndert wurde und markiert die entsprechend. Wenn man diese besagte Zeile dann wieder entfernt, dann ist CVS immer noch der Meinung, das die Datei verÃ¤ndert wurde. Nicht so SVN! Das erkennt, das es nun doch keine Ã„nderungen mehr gibt und markiert die Datei wieder als nicht geÃ¤ndert.&lt;br /&gt;
FÃ¼r die Integration in Eclipse empfehle ich Ã¼brigens neben Subclipse unbedingt auch noch &lt;a href=&quot;http://svnkit.com/&quot;&gt;SVNKit&lt;/a&gt; zu installieren und fÃ¼r Subclipse zu aktivieren (Preferences -&gt; Team -&gt; SVN -&gt; SVN Interface), da man sonst keine Authentifizierungs-details (wie z.B. public-key-authentication) einstellen kann wenn man svn+ssh als Protokoll benutzt. &lt;br /&gt;
Wenn im Package-Explorer nicht angezeigt werden sollte ob ein Projekt oder eine Datei geÃ¤ndert ist oder nicht, so liegt das mit Sicherheit daran, das die Label-Decoration fÃ¼r SVN nicht aktiviert ist. Bei mir war sie jedenfalls per Default erst mal deaktiviert! Man muss also noch unter (Preferences -&gt; General -&gt; Appearance -&gt; Label Decoration) einen Haken vor SVN machen.&lt;br /&gt;
&lt;br /&gt;
Das wars erst mal wieder von meiner Seite. 
    </content:encoded>

    <pubDate>Sun, 15 Apr 2007 12:18:31 +0200</pubDate>
    <guid isPermaLink="false">https://www.martindroessler.de/blog/index.php?/archives/20-guid.html</guid>
    
</item>
<item>
    <title>echt groovy...</title>
    <link>https://www.martindroessler.de/blog/index.php?/archives/18-echt-groovy....html</link>
            <category>Software</category>
    
    <comments>https://www.martindroessler.de/blog/index.php?/archives/18-echt-groovy....html#comments</comments>
    <wfw:comment>https://www.martindroessler.de/blog/wfwcomment.php?cid=18</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://www.martindroessler.de/blog/rss.php?version=2.0&amp;type=comments&amp;cid=18</wfw:commentRss>
    

    <author>nospam@example.com (Martin 'Iridias' Drößler)</author>
    <content:encoded>
    Und zwar geht es um die relativ neue Sprache &lt;a href=&quot;http://groovy.codehaus.org/&quot; target=&quot;_blank&quot;&gt;Groovy&lt;/a&gt;.&lt;br /&gt;
Bei uns in der Firma wird jetzt auch Groovy eingesetzt, und so hab ich mich mal nÃ¤her damit befasst. Und ich kann nur sagen: krass! Groovy verbindet echt die Vorteile von Interpretersprachen mit den Vorteilen von Java. Die Groovy-Scripte muss man nicht in Bytecode compilieren - das geschiet quasi on-the-fly wenn man das Script aufruft. Dadurch entfÃ¤llt das neustarten des Tomcat wenn man mal eine Ã„nderung macht: einfach das Script durch die neue Version ersetzen, und fertig!&lt;br /&gt;
&lt;br /&gt;
Aber Groovy ist nicht einfach eine neue Sprache, sondern setzt auf Java auf. D.h. man kann komplexeren Code der sich seltener Ã„ndert weiterhin in Java schreiben und in den Groovy-scripten benutzen. Dadurch kann man auch alle liebgewonnenen Frameworks und Libraries weiter verwenden (z.B. Spring, Hibernate, jakarta.commons). &lt;br /&gt;
Ãœberhaupt lÃ¤sst einem Groovy viele Freiheiten. So kann man sich beispielsweise aussuchen, ob man einen Befehl mit einem Semikolon abschlieÃŸt, oder ob man nur einen Zeilenumbruch macht, und das Semikolon ganz einfach weg lÃ¤sst. Und wo wir grade bei weglassen sind - das gilt auch fÃ¼r Variablentypen. Man kann sich aussuchen, ob man fÃ¼r eine Variable einen bestimmten Typ festlegen will, oder ob man das lieber dynamisch haben will.&lt;br /&gt;
&lt;br /&gt;
Groovy unterstÃ¼tzt auÃŸerdem sogenannte Closures. Wenn ich also ein XML hab, kann ich einfach sowas sagen wie&lt;br /&gt;
&lt;pre&gt;
def document = new XmlSlurper().parse(&quot;urlZumFile.xml&quot;);
document.einNode.childNode.each() { currentNode -&gt;
  // ... mache irgendwas
}
&lt;/pre&gt;&lt;br /&gt;
..cool, nicht war?&lt;br /&gt;
&lt;br /&gt;
Das geht auch mit SQL, Files und soweiter. Das &quot;def&quot; gibt dabei Ã¼brigens an, das man die variable nicht typisieren mÃ¶chte. Was an dem Beispiel noch auffÃ¤llt: man kann direkt auf alle child-nodes zugreifen, ohne erst umstÃ¤ndlich ein getElement() oder sowas machen zu mÃ¼ssen. &lt;br /&gt;
&lt;br /&gt;
Das Editor-Plugin fÃ¼r Eclipse ist sicher noch verbesserungswÃ¼rdig, aber durchaus zu gebrauchen. Wenn man eine Klasse verwendet die man nicht includiert hat, dann meckert er zumindest schon mal - das schafft PHP-Eclipse bis heute nicht, und das gibts schon lÃ¤nger &lt;img src=&quot;https://www.martindroessler.de/blog/plugins/serendipity_event_emoticate/img/emoticons/laugh.png&quot; alt=&quot;:-D&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Man kann damit also schnell mal ein Script, auch fÃ¼r kompliziertere Dinge schreiben. Meiner Meinung nach lohnt es sich wirklich mal einen Blick auf Groovy zu werfen: &lt;a href=&quot;http://groovy.codehaus.org/&quot; target=&quot;_blank&quot;&gt;http://groovy.codehaus.org/&lt;/a&gt; 
    </content:encoded>

    <pubDate>Wed, 14 Feb 2007 13:58:35 +0100</pubDate>
    <guid isPermaLink="false">https://www.martindroessler.de/blog/index.php?/archives/18-guid.html</guid>
    
</item>
<item>
    <title>das Schlechte lieben, das NÃ¼tzliche ignorieren</title>
    <link>https://www.martindroessler.de/blog/index.php?/archives/13-das-Schlechte-lieben,-das-Ntzliche-ignorieren.html</link>
            <category>Kritik</category>
            <category>Software</category>
    
    <comments>https://www.martindroessler.de/blog/index.php?/archives/13-das-Schlechte-lieben,-das-Ntzliche-ignorieren.html#comments</comments>
    <wfw:comment>https://www.martindroessler.de/blog/wfwcomment.php?cid=13</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://www.martindroessler.de/blog/rss.php?version=2.0&amp;type=comments&amp;cid=13</wfw:commentRss>
    

    <author>nospam@example.com (Martin 'Iridias' Drößler)</author>
    <content:encoded>
    Ich bin normalerweise niemand der etwas gutes Ã¼ber Windows sagt. Denn das ist bei mir nur noch als Game-Loader drauf. Dennoch ist es schon merkwÃ¼rdig, das jemand wie ich, der GNU/Linux bevorzugt eine legale Version von Windows XP Professional besitzt, wÃ¤hrend all die Windows-JÃ¼nger da drauÃŸen mit ihren Vorurteilen und Halbwissen diese meist aus irgendwelchen TauschbÃ¶rsen haben.&lt;br /&gt;
&lt;br /&gt;
Das sind dann auch die, die solche RatschlÃ¤ge geben und befolgen, das man bei Windows alles abstellen sollte was &quot;nach Hause telefonieren&quot; kÃ¶nnte - wahrscheinlich in der Hoffnung, das Microsoft nicht erfÃ¤hrt, das eine nicht lizensierte Kopie eingesetzt wird. Das betrifft dann vor allem die automatischen Updates, und dann wundern sich die Leute, warum sie sich so viele Viren einfangen. &lt;br /&gt;
&lt;br /&gt;
Dabei tragen die automatischen Updates erheblich zur Sicherheit bei, ebenso wie das Sicherheitscenter. Aber stattdessen installieren sich die Leute lieber eine personal Firewall wie ZoneAlarm und wiegen sich in Sicherheit. Und das obwohl Windows XP von Haus aus eine Firewall mit bringt, und sowas wie ZoneAlarm sowieso nix nÃ¼tzt, wenn ein Programm wie der Browser dem man in ZoneAlarm vermutlich generell eine Verbindung gestattet, kompromitiert wurde...&lt;br /&gt;
&lt;br /&gt;
Aber auch andere nÃ¼tzliche Features werden dadurch ignoriert. Zum Beispiel fragt Windows XP nach einem Absturz nach ob ein Problembericht gesendet werden soll. Und das kann mitunter sehr Hilfreich sein, denn es wird nicht nur ein Problembericht gesendet, sondern auch gleich nachgesehen, ob das Problem oder ein Ã¤hnliches bereits bekannt ist, und ob es eine LÃ¶sung gibt - und das wird einem dann sogleich im Browser prÃ¤sentiert. Wohl gemerkt: in dem Browser der als Standard eingestellt ist, und nicht zwingend im IE (wie das beim Windows-Update der Fall ist).&lt;br /&gt;
&lt;br /&gt;
Ich kann jedenfalls nur vermuten, das einige Leute (nicht alle) weniger Probleme mit Windows hÃ¤tten, wenn sie es legal erworben hÃ¤tten - dann wÃ¼rden sie vielleicht auch mal feststellen, das Windows eben nicht kostenlos ist, sondern richtig Geld kostet. Aber mit Vista bemÃ¼ht sich Microsoft ja, diesen Missstand zu beseitigen. Und so sehr ich das Vorgehen von Microsoft auch misbillige, so kann ich diesen Schritt doch nur begrÃ¼ÃŸen. Auf das all jene die Windows nicht legal erworben haben, erfahren mÃ¶gen das man es eben nicht fÃ¼r lau bekommt. Und dass das &quot;Argument&quot; &quot;&lt;i&gt;Linux ist kostenlos? Na und Windows doch auch&lt;/i&gt;&quot; eben doch kein Argument, sondern schlichtweg BlÃ¶dsinn ist! &lt;br /&gt;
&lt;br /&gt;
Ich fÃ¼r meinen Teil werde weiterhin XP als Gameloader benutzen - und die &quot;tolle OberflÃ¤che&quot; wegen der viele sich Vista besorgen werden (auf welchem Weg auch immer) kann ich unter Linux mit XGL und Konsorten viel besser haben - aber offen gesagt sind mir 8 virtuelle Desktops zum Arbeiten viel wichtiger &lt;img src=&quot;https://www.martindroessler.de/blog/plugins/serendipity_event_emoticate/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; class=&quot;emoticon&quot; /&gt; 
    </content:encoded>

    <pubDate>Sat, 18 Nov 2006 16:04:43 +0100</pubDate>
    <guid isPermaLink="false">https://www.martindroessler.de/blog/index.php?/archives/13-guid.html</guid>
    
</item>

</channel>
</rss>
