<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Twenty Square Meter &#187; Blog</title>
	<atom:link href="http://www.twentysqm.com/category/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.twentysqm.com</link>
	<description>Ihr Ansprechpartner für innovative Ideen</description>
	<lastBuildDate>Thu, 26 Aug 2010 16:05:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Weiß Tomcat wieviel RAM Sie besitzen?</title>
		<link>http://www.twentysqm.com/2010-01-15/weiss-tomcat-wieviel-ram-sie-besitzen.html</link>
		<comments>http://www.twentysqm.com/2010-01-15/weiss-tomcat-wieviel-ram-sie-besitzen.html#comments</comments>
		<pubDate>Fri, 15 Jan 2010 16:52:35 +0000</pubDate>
		<dc:creator>Frank Gottschlich</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux / Unix]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://www.twentysqm.com/?p=1060</guid>
		<description><![CDATA[Ein Performanceproblem kann auftreten wenn Tomcat1 nicht weiß wieviel Arbeitsspeicher Ihr Server wirklich bereit hält. Hierzu wird man sich immer voll und ganz auf Ihre Konfigurationen verlassen und dementsprechend handeln. Wenn diese nicht gewissenhaft durchgeführt wurde, kann es unter anderem vorkommen, dass der Aufbau von sogenannten JavaServer Pages enorm verlangsamt wird. Dies ist nicht immer [...]]]></description>
			<content:encoded><![CDATA[<p>Ein Performanceproblem kann auftreten wenn Tomcat<sup><a href="http://www.twentysqm.com/2010-01-15/weiss-tomcat-wieviel-ram-sie-besitzen.html#footnote_0_1060" id="identifier_0_1060" class="footnote-link footnote-identifier-link" title=" http://tomcat.apache.org/ ">1</a></sup> nicht weiß wieviel Arbeitsspeicher Ihr Server wirklich bereit hält. Hierzu wird man sich immer voll und ganz auf Ihre Konfigurationen verlassen und dementsprechend handeln. Wenn diese nicht gewissenhaft durchgeführt wurde, kann es unter anderem vorkommen, dass der Aufbau von sogenannten JavaServer Pages enorm verlangsamt wird. Dies ist nicht immer auf den Tomcat selbst oder einer ineffizienten programmiertechnischen Entwicklung zurück zu führen.</p>
<p><strong>Hinweis:<br />
Die hier beschriebene Speicherverwaltung lässt sich erst ab der Tomcat Version 5.5.15 realisieren und konzentriert sich auf die Linux-Architektur!</strong></p>
<p><span style="color: #000080;"><strong><span id="more-1060"></span></strong></span>Auch wenn Tomcat einige gewisse Schwierigkeiten mit dem Umgang von großen JavaServer Pages mit sich bringt, so hilft der Kniff des Mitteilens, wieviel Arbeitsspeicher Ihr Server besitzt. Solche Angaben werden mit Hilfe der Variable <em>CATALINA_OPT</em> realisiert, die sich optional mit starten von Tomcat einbinden lässt. Dazu ist im Vorfeld eine Datei anzupassen. Sollte diese noch nicht vorhanden sein, erstellen Sie diese bitte:</p>
<pre class="brush: plain;">$CATALINA_HOME/bin/setenv.sh</pre>
<p>Neben anderen optionalen Parametern, auf die in diesem Beitrag aber kein Bezug genommen wird, soll es im folgendem um das Setzen der Variable für die Verwaltung des Arbeitsspeichers gehen. Der Inhalt dieser Datei, wird unter Linux wie folgt befüllt:</p>
<pre class="brush: plain;">export CATALINA_OPTS=&quot;$CATALINA_OPTS -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Xms256m -Xmx2048m -XX:MaxPermSize=512m</pre>
<p>Zunächst dient die Angabe von <em>org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER</em> für die Möglichkeit der Verwaltung des Arbeitsspeicher. Diese ist hierzu auf <em>true</em> zu setzen und steht erst ab der Tomcat-Version 5.5.15 zur Verfügung. Die nachfolgenden Attribute sind wie folgt zu verstehen:</p>
<p><strong>-Xms256m</strong> (<em>Mininum des Java</em> Heap)<br />
<strong>-Xmx2048m</strong> (Maximum des Java Heap)<br />
<strong>-XX:MaxPermSize=512m </strong>(Permanent Generations Größe)</p>
<p>Die <em>Angabe von -Xmx2048m</em> verrät die Größe des RAMs. Stellen Sie diesen unter Linux <strong>zwingend</strong> auf den maximal zulässigen Arbeitsspeicher. Warum?, dies ist auf die Linux-Architektur zurück zu führen, welche den Arbeitsspeicher permanent und vollständig im Gebrauch hält. Sollte Tomcat nun nicht wissen, wieviel Arbeitsspeicher insgesamt zur Verfügung steht, wird er diesen auch nicht „beantragen”. Ist der Arbeitsspeicher zu diesem Zeitpunkt aber voll, so kann es zu merklichen Performance-Verlusten führen, da Tomcat selbst keinen freien Speicher findet. Linux bedient sich in diesem Fall des Auslagerns (SWAP). Wenn Tomcat weiß wieviel Arbeitsspeicher Sie wirklich besitzen, so wird bei Bedarf versucht, diesen auch zu allokieren. Der Linux-Kernel weiß nun das er viel zu viel Arbeitsspeicher hält und wird alte Daten Auslagern und Tomcat den RAM zusichern der gebraucht wird.</p>
<p>Mit einem Start oder Neustart von Tomcat wird die so eben angelegte, beziehungsweise angepasste Datei aufgerufen und Tomcat mit den entsprechenden Einstellungen gesetzt.</p>
<ol class="footnotes"><li id="footnote_0_1060" class="footnote"> <a href="http://tomcat.apache.org/">http://tomcat.apache.org/</a> </li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.twentysqm.com/2010-01-15/weiss-tomcat-wieviel-ram-sie-besitzen.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webservices (WSDL) mit PHP</title>
		<link>http://www.twentysqm.com/2010-01-07/webservices-wsdl-mit-php.html</link>
		<comments>http://www.twentysqm.com/2010-01-07/webservices-wsdl-mit-php.html#comments</comments>
		<pubDate>Thu, 07 Jan 2010 22:37:30 +0000</pubDate>
		<dc:creator>Frank Gottschlich</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[webservice]]></category>
		<category><![CDATA[wsdl]]></category>

		<guid isPermaLink="false">http://www.twentysqm.com/?p=1015</guid>
		<description><![CDATA[Beim Thema Webservices mit PHP scheiden sich wohl die Geister. Nach dem ich aus aktuellem Anlass einige Bibliotheken getestet habe, bin ich zu sehr unterschiedlichen Erkenntnissen gelangt. Während einige Bibliotheken einen sehr schönen Ansatz haben und dem Gedanken der einfachen Handhabung nachkommen, funktionieren lediglich andere Bibliotheken die nicht unbedingt Benutzerfreundlich aber dafür fehlerfrei agieren können. [...]]]></description>
			<content:encoded><![CDATA[<p>Beim Thema Webservices mit PHP scheiden sich wohl die Geister. Nach dem ich aus aktuellem Anlass einige Bibliotheken getestet habe, bin ich zu sehr unterschiedlichen Erkenntnissen gelangt. Während einige Bibliotheken einen sehr schönen Ansatz haben und dem Gedanken der einfachen Handhabung nachkommen, funktionieren lediglich andere Bibliotheken die nicht unbedingt Benutzerfreundlich aber dafür fehlerfrei agieren können.</p>
<p>Folgende Bibliotheken wurden getestet:</p>
<ul>
<li>PHP2WSDL<sup><a href="http://www.twentysqm.com/2010-01-07/webservices-wsdl-mit-php.html#footnote_0_1015" id="identifier_0_1015" class="footnote-link footnote-identifier-link" title=" http://sourceforge.net/projects/php2wsdl ">1</a></sup></li>
<li>WSDLDocument<sup><a href="http://www.twentysqm.com/2010-01-07/webservices-wsdl-mit-php.html#footnote_1_1015" id="identifier_1_1015" class="footnote-link footnote-identifier-link" title=" http://code.google.com/p/wsdldocument ">2</a></sup></li>
<li>NuSoap<sup><a href="http://www.twentysqm.com/2010-01-07/webservices-wsdl-mit-php.html#footnote_2_1015" id="identifier_2_1015" class="footnote-link footnote-identifier-link" title=" PHP -5: http://sourceforge.net/projects/nusoap
PHP +5: http://code.google.com/p/nusoap-for-php5 ">3</a></sup></li>
</ul>
<p>Positiv hervorzuheben ist, dass jede Bibliothek unter der <a href="http://de.wikipedia.org/wiki/GNU_Lesser_General_Public_License">GNU Lesser General Public License</a> veröffentlicht wurde und somit frei für die eigene und kommerzielle Verwendung zur Verfügung steht.</p>
<p>Ausgangsbasis für alle getesteten Bibliotheken sind die folgenden 3 Klassen. Erstere ist die sogenannte Funktionsklasse. Sie beinhaltet die Klasse und Methoden die als Service zur Verfügung gestellt werden sollen. Als Beispiel wurde eine Klasse aufbereitet, welche die Grundrechenarten zur Verfügung stellt. Als Übergabeparameter werden jeweils zwei Zahlen vom Datentyp <em>float</em> verlangt. Der Rückgabewert ist in diesem Beispiel ebenfalls eine Zahl vom Typ <em>float</em>.</p>
<p><em>Mathematics.class.php</em></p>
<pre class="brush: php;">/**
 * Service class documentation.
 */
class Mathematics {

    /**
     * Addition of two numbers.
     *
     * @param float x
     * @param float y
     * @return float
     */
    public function add($x, $y) {
    	return $x + $y;
    }

    /**
     * Subtraction of two numbers.
     *
     * @param float x
     * @param float y
     * @return float
     */
    public function minus($x, $y) {
    	return $x - $y;
    }

    /**
     * Multiply of two numbers.
     *
     * @param float x
     * @param float y
     * @return float
     */
    public function multiply($x, $y) {
    	return $x * $y;
    }

    /**
     * Divide of two numbers.
     *
     * @param float x
     * @param float y
     * @return float
     */
    public function divide($x, $y) {
    	return $x / $y;
    }
}</pre>
<p>Bei der zweiten Klasse handelt es sich um die SoapClient.php. Diese wird als Test-Klasse gesehen und prüft die zu Verfügung stehenden Methoden. Diese muss bei der Verwendung von unterschiedlichen Bibliotheken auch entsprechend abgeändert werden. Aber im großen und ganzen ändert sich nur die URL zur Serverklasse. Ebenfalls kann es nötig sein diverse Bibliotheken vorher einzubinden.</p>
<p><em>ServerSoap.php</em></p>
<pre class="brush: php;">&lt;?php

ini_set('soap.wsdl_cache_enabled', &quot;0&quot;);

try {
	// create the client instance
	$client = new SoapClient('http://localhost/SoapServer.php');

	$baseMetrics = array(
		'add' =&gt; '+',
		'minus' =&gt; '-',
		'multiply' =&gt; '*',
		'divide' =&gt; '/'
	);
	$format = '%.2f %s %.2f = %.2f &lt;br /&gt;';

	foreach($baseMetrics as $key =&gt; $value) {
		// call the SOAP method
		$x = random(); $y = random();
		$result = $client-&gt;__soapCall($key, array('x' =&gt; $x, 'y' =&gt; $y));
		printf($format, $x, $value, $y, $result);
	}

} catch (SoapFault $fault) {
	echo '&lt;h2&gt;Fault&lt;/h2&gt;&lt;pre&gt;';
	print_r($fault);
	echo '&lt;/pre&gt;';
}

// seed with microseconds
function random() {
   list($usec, $sec) = explode(' ', microtime());
   mt_srand((float) $sec + ( (float) $usec * 100000));
   return mt_rand(1,9) / pi();
}

/*
echo 'Request: &lt;xmp&gt;'.$client-&gt;request.'&lt;/xmp&gt;';
echo 'Response: &lt;xmp&gt;'.$client-&gt;response.'&lt;/xmp&gt;';
echo 'Debug log: &lt;pre&gt;'.$client-&gt;debug_str.'&lt;/pre&gt;';
*/
?&gt;</pre>
<p>Die ServerSoap-Klasse soll an dieser Stelle nur grob erklärt werden. Beginnend mit einem <em>ini_set</em> wird die Cache-Funktion von Soap außer Kraft gesetzt. Zu Testzwecken ist dies zwingend erforderlich. Im Produktiveinsatz muss diese dann nicht mehr initiiert werden. Innerhalb einer try-catch Anweisung wird der eigentliche Prozess abgearbeitet. Hierfür wird ein SoapClient initialisiert, welche als erstes Argument die URL vom SoapServer trägt. Ab dem zweiten Argument wird ein Array mit Optionen erwartet, auf die an dieser Stelle aber nicht weiter eingegangen wird. In einem ersten Array werden alle Funktionsnamen festgehalten die getestet werden sollen. Dabei handelt es sich um die Grundrechenarten aus der <em>Mathematics.class.php</em>. Diese werden nach einander abgearbeitet. Mit dem client-Objekt wird ein sogenannter <em>__soapCall</em> gestartet. Das erste Argument trägt den Namen der Methode. Das zweite Argument trägt ein Array mit den jeweiligen Übergabeparametern die verarbeitet werden sollen. Abschließend ist nur noch zu sagen das die Zahlen, zum testen der Methoden, zufällig generiert werden. Hierfür wurde eine eigene random-Methode implementiert. Für fanatische Debugger wurde ganz zum Schluss dieser Klasse einige Ausgaben getätigt. Hier nun auskommentiert, da diese nicht mit jeder Bibliothek kompatibel sind.</p>
<p>Allgemein wird für jede Grundrechenart ein Request gestartet. Und in Form einer Gleichung auf dem Bildschirm ausgegeben. Die Rückgabe stellt das Ergebnis der jeweiligen Gleichung dar. Wie es nun mit den jeweiligen SoapServern aussieht, wird mit den folgenden, getesteten Bibliotheken erklärt.</p>
<p><strong>PHP2WSDL</strong></p>
<p>Dieses doch recht junge Projekt wurde vom Rumänen <a href="http://www.protung.ro/">Dragos Protung</a> veröffentlicht. Eine recht schlanke Bibliothek mit gerade mal 3 Bibliotheksklassen, ermöglicht es dem Anwender, aus einer bestehenden und dokumentierten PHP-Klasse ein WSDL-Dokument zu generieren. Der dahinter stehende Gedanke bezieht sich auf die Arbeitserleichterung, der zu registrierenden Klassen und Methoden. Bei der Verwendung dieser Bibliothek entfallen diese Schritte. Der Anwender hat lediglich eine wohl dokumentiere PHP-Klasse vorzulegen und muss sich um nichts anderes mehr kümmern.</p>
<p>So schön dies auch klingen mag, birgt diese Bibliothek, in der Version 1.0, eine schier von Formfehlern. So muss bereits bei der ersten Verwendung kleinere Anpassung an den Sourcen vorgenommen werden. Auch die automatische Generierung von Variablen läuft nicht fehlerfrei ab. So werden zum Beispiel an den bereits verwendeten Variablen, einer Methode in einer Klasse, fortlaufende Zahlen angehängt. Das ist natürlich unvorteilhaft, wenn das Script selbst die Dokumentationsvariablen und die Übergabeparameter der Methode vergleicht und dementsprechende Datentypen zuweist. Diese werden beim Anhängen von fortlaufenden Zahlen nicht mehr richtig erkannt und erhalten einen unbekannten Datentyp im WSDL-Dokument.</p>
<p>Zum aktuellen Zeitpunkt (Januar 2010) ist im hauseigenen Supportforum nachzulesen das der Entwickler an der nächsten Version (2.0) arbeitet, die solche Fehler einerseits beseitigen soll und neue Features und Unterstützungen für die Dokumentation und Datentypen von PHP bereit halten soll. Es bleibt abzuwarten ob hieraus noch was werden wird, da diese Meldung bereits mehrere Monate alt ist.</p>
<p>So, oder so ähnlich kann diesbezüglich die SoapServer-Klasse aussehen. Eine vernüftige Dokumentation habe ich leider nicht gefunden. Daher habe ich auskommentierte Funktionsaufrufe im folgendem Beispiel belassen. Die Pfade sind dementsprechend abzuändern.</p>
<p><em>SoapServer.php</em></p>
<pre class="brush: php;">&lt;?php

ini_set('soap.wsdl_cache_enabled', &quot;0&quot;);

require_once(&quot;../WSDLCreator.php&quot;);
//header(&quot;Content-Type: application/xml&quot;);

$test = new WSDLCreator(&quot;Mathematics&quot;, &quot;http://localhost/php2wsdl/SoapServer.php&quot;);
//$test-&gt;includeMethodsDocumentation(false);

$test-&gt;addFile(Mathematics.class.php&quot;);
$test-&gt;setClassesGeneralURL(&quot;http://localhost/php2wsdl/example&quot;);

$test-&gt;addURLToClass(&quot;Mathematics&quot;, &quot;http://localhost/php2wsdl/Mathematics.class.php&quot;);
$test-&gt;addURLToTypens(&quot;XMLCreator&quot;, &quot;http://localhost/php2wsdl&quot;);

$test-&gt;createWSDL();

$test-&gt;printWSDL(true); // print with headers
//print $test-&gt;getWSDL();
//$test-&gt;downloadWSDL();
//$test-&gt;saveWSDL(dirname(__FILE__).&quot;/test.wsdl&quot;, false);
?&gt;</pre>
<p>Ein unbestreitbarer Vorteil ist die einfache Integrierung von mehreren Dateien und Klassen. Es muss lediglich mittelst <em>addFile</em> eine neue Funktionsbibliothek hinzugefügt werden. Der Rest wird vom Script selbst erledigt. Aus den bereits genannten Nachteilen kommt beschwerend hinzu das ich mittelst dieser Bibliothek noch nie ein Response erhalten habe. Dieser war bisher immer NULL.</p>
<p><strong>WSDLDocument</strong></p>
<p>Bei dieser Bibliothek handelt es sich lediglich um eine Bibliothek die ein WSDL-Dokument generiert. Es verfolgt den gleichen Gedanken wie die PHP2WSDL-Bibliothek. Nur mit dem gravierenden Unterschied das diese fehlerfrei funktioniert. Datentypen werden aus der Dokumentation richtig erkannt und in einem WSDL-Dokument aufbereitet. Wie auch beim Vorgänger sind hier ebenfalls Komplexe Datentypen möglich. Dazu gehören unter anderem verschachtelte Arrays. Die Einbindung des Scripts, habe ich einfachshalber gleich in der Funktionsklasse Mathematics erledigt. Dazu ist folgender Quellcode in der Klasse Mathematics.class.php unterzubringen. Beim Aufruf erhält man dann das WSDL-Dokument.</p>
<pre class="brush: php;">header (&quot;content-type: text/xml&quot;);
require_once('WSDLDocument.php');
$wsdl = new WSDLDocument('Mathematics','urn:Mathematics');
echo $wsdl-&gt;saveXML();</pre>
<p>Dennoch sei gesagt, das dieses Dokument nach einer alten Spezifikation arbeitet. Eine entsprechende Anpassung ist aber relativ zügig realisiert. Was leider nicht funktioniert ist die Ansteuerung des Service selbst. Es wird hierbei wirklich nur ein XML-Dokument ausgegeben.</p>
<p><strong>NuSoap</strong></p>
<p>Nicht Perfekt, aber eine der am erfolgreichsten getesteten Bibliotheken, ist NuSoap. Diese kommt mit einer relativen großen Anzahl an Klassen daher und realisiert das generieren von WSDL-Dokumenten. Leider wird hier nicht der Gedanke des Parsens von PHP-Klassen verfolgt. Wie es von PHP-Soap bereits bekannt ist, müssen Methoden registriert und zusätzlich in der ServerSoap geschrieben werden. Da man dies eigentlich nur einmal macht, kann man diesen Mehraufwand allerdings vernachlässigen. Eine <em>Mathematics.class.php</em> wird hierbei nicht benötigt.</p>
<p><em>SoapServer.php</em></p>
<pre class="brush: php;">&lt;?php
// Pull in the NuSOAP code
require_once('lib/nusoap.php');
// Create the server instance
$server = new soap_server();
// Initialize WSDL support
$server-&gt;configureWSDL('Mathematics', 'urn:Mathematics');
// Register the method to expose
$server-&gt;register('add',
	array('x' =&gt; 'xsd:float', 'y' =&gt; 'xsd:float'),
	array('return' =&gt; 'xsd:float'),
	'urn:Mathematics',
	'urn:Mathematics#add',
	'rpc', 'encoded', 'Addition of two numbers.');
$server-&gt;register('minus',
	array('x' =&gt; 'xsd:float', 'y' =&gt; 'xsd:float'),
	array('return' =&gt; 'xsd:float'),
	'urn:Mathematics',
	'urn:Mathematics#minus',
	'rpc', 'encoded', 'Subtraction of two numbers.');
$server-&gt;register('multiply',
	array('x' =&gt; 'xsd:float', 'y' =&gt; 'xsd:float'),
	array('return' =&gt; 'xsd:float'),
	'urn:Mathematics',
	'urn:Mathematics#multiply',
	'rpc', 'encoded', 'Multiply of two numbers.');
$server-&gt;register('divide',
	array('x' =&gt; 'xsd:float', 'y' =&gt; 'xsd:float'),
	array('return' =&gt; 'xsd:float'),
	'urn:Mathematics',
	'urn:Mathematics#divide',
	'rpc', 'encoded', 'Divide of two numbers.');
// Define the method as a PHP function
function add($x, $y) { return ($x + $y); }
function minus($x, $y) { return ($x - $y); }
function multiply($x, $y) { return ($x * $y); }
function divide($x, $y) { return ($x / $y); }
// Use the request to (try to) invoke the service
$HTTP_RAW_POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
$server-&gt;service($HTTP_RAW_POST_DATA);
?&gt;</pre>
<p>Wie man sieht, ist die Server-Klasse etwas größer geraten, als die bisherigen Methoden. Das WSDL-Dokument, wird ohne Frage richtig generiert. Ein Abzug in der B-Note gibt es für die doppelte Definierung der Methoden. Einmal für die Registrierung für den SoapServer und die eigentliche Bereitstellung. Ebenfalls zu beachten ist die Einbindung der <em>nusoap.php</em>-Bibliothek die hierbei in einem Unterordner namens <em>lib</em> liegt.</p>
<p><a href="http://www.twentysqm.com/wp-content/uploads/2010/01/NuSOAP-Mathematics-doc.png"><img src="http://www.twentysqm.com/wp-content/uploads/2010/01/NuSOAP-Mathematics-doc-300x188.png" alt="" title="NuSOAP-Mathematics-doc" width="300" height="188" class="alignnone size-medium wp-image-1050" /></a></p>
<p>Ein großer Pluspunkt ist die Aufbereitung einer „Startseite” des SoapServers. Grafisch, mittelst CSS, werden alle Funktionen und dessen registrierte Dokumentation angezeigt. Ein wirklich tolles Feature, was vielleicht die generelle Dokumntation abnehmen kann. Das eigentliche WSDL-Dokument lässt sich mit dem Paramater „?wsdl” erreichen und muss auch die URL beim SoapClient sein.</p>
<p>Diese Bibliothek wurde als erste vollständig und fehlerfrei getestet und ist somit auch für den allgemeinen Einsatz zu empfehlen. Schade nur das es keine Generierung aus der PHP-Dokumentation ermöglicht. Aber was nicht ist kann ja noch werden.</p>
<p><strong>Fazit</strong></p>
<p>NuSoap hat sich herausragend geschlagen. Mit einem kleinen Mehraufwand, Methoden zu registrieren und zusätzlich zu beschreiben, erledigt es die Aufgabe der Generierung des WSDL-Dokuments und die Abfrage der Services sehr gewissenhaft und konnte keine Fehler in der Verarbeitung vorweisen. Für Beginner eigenen sich dennoch Bibliotheken wie PHP2WSDL und WSDLDocument. Um ein Gefühl für die Materie zu erhalten sollte man sich auch vorher mit dem eigentlichen Aufbau von WSDL-Dokumenten beschäftigt haben.</p>
<ol class="footnotes"><li id="footnote_0_1015" class="footnote"> <a href="http://sourceforge.net/projects/php2wsdl/">http://sourceforge.net/projects/php2wsdl</a> </li><li id="footnote_1_1015" class="footnote"> <a href="http://code.google.com/p/wsdldocument">http://code.google.com/p/wsdldocument</a> </li><li id="footnote_2_1015" class="footnote"> PHP -5: <a href="http://sourceforge.net/projects/nusoap">http://sourceforge.net/projects/nusoap</a><br />
PHP +5: <a href="http://code.google.com/p/nusoap-for-php5">http://code.google.com/p/nusoap-for-php5</a> </li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.twentysqm.com/2010-01-07/webservices-wsdl-mit-php.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Nero 9 Lite - Versagt auf ganzer Linie</title>
		<link>http://www.twentysqm.com/2009-11-14/nero-9-lite-versagt-auf-ganzer-linie.html</link>
		<comments>http://www.twentysqm.com/2009-11-14/nero-9-lite-versagt-auf-ganzer-linie.html#comments</comments>
		<pubDate>Sat, 14 Nov 2009 22:14:27 +0000</pubDate>
		<dc:creator>Frank Gottschlich</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[nero]]></category>

		<guid isPermaLink="false">http://www.twentysqm.com/?p=956</guid>
		<description><![CDATA[Nach dem ich heute auf die neue Nero 9 Lite Variante aufmerksam gemacht wurde, habe ich diese selbstverstädnlich gleich angetestet. Vorweg ist zu sagen, das die Software ein Programmstart und ca. 3 Minuten auf meinem Rechner überlebt hat, danach folgte die Deinstallation. Alles fing mit der Registrierung für Nero 9 Lite1 an. Schlimm genug das [...]]]></description>
			<content:encoded><![CDATA[<p>Nach dem ich heute auf die neue Nero 9 Lite Variante aufmerksam gemacht wurde, habe ich diese selbstverstädnlich gleich angetestet. Vorweg ist zu sagen, das die Software ein Programmstart und ca. 3 Minuten auf meinem Rechner überlebt hat, danach folgte die Deinstallation.</p>
<p>Alles fing mit der Registrierung für Nero 9 Lite<sup><a href="http://www.twentysqm.com/2009-11-14/nero-9-lite-versagt-auf-ganzer-linie.html#footnote_0_956" id="identifier_0_956" class="footnote-link footnote-identifier-link" title=" http://www.nero.com/deu/downloads-nero9-free.php ">1</a></sup> an. Schlimm genug das für kommende Spams auf diese Art E-Mail Adressen gesammelt werden. Für solche zwecke empfehle ich die Internetseite Trash-Mail<sup><a href="http://www.twentysqm.com/2009-11-14/nero-9-lite-versagt-auf-ganzer-linie.html#footnote_1_956" id="identifier_1_956" class="footnote-link footnote-identifier-link" title=" http://www.trash-mail.com/ ">2</a></sup>. Damit könnt Ihr euch eine sogenannte wegwerf - E-Mail-Adresse holen und müßt euch keine Gedanken um Spam von oder durch Nero machen. Nach Eingabe einer E-Mail Adresse könnt Ihr den Download-Button anklicken. (Es muss sich hierbei nicht zwangsläufig um eine bestehende E-Mail Adresse handeln. Wunschnamen werden auch akzeptiert, z.b. a@b.com.)</p>
<p>Die Installation von Nero 9 Lite wirkt genauso schwerfällig wie die völlig überladene Nero 9 Vollversion. Zumindest verlief diese etwas zügiger. Während der Installation besteht die Möglichkeit eine andere Sprache auszuwählen. Die übliche Serial wird hierbei automatisch eingetragen. Nach der üblichen Lizenzbestimmung erhält man über die benutzerdefinierte Installation einen Eindruck was alles Installiert werden soll. Hierbei beschränkt sich die Lite-Version auf „Nero StartSmart”. Eine weitere und unerfreuliche Sache sind zusätzliche, und das vermute ich jetzt einmal, Bibliotheken zur allgemeinen Verwendung von Nero, die Installiert werden müssen. Dazu gehört unteranderem das „Microsoft XML 4.0 SP2” und „Microsoft CRT 2005 KB973544”.</p>
<p style="text-align: center;"><a href="http://www.twentysqm.com/wp-content/uploads/2009/11/nero-9-lite-registrieren2.png"><img class="aligncenter size-medium wp-image-975" title="nero-9-lite-registrieren" src="http://www.twentysqm.com/wp-content/uploads/2009/11/nero-9-lite-registrieren2-300x172.png" alt="nero-9-lite-registrieren" width="300" height="172" /></a></p>
<p>Nach der Installation und dem Start von Nero StartSmart, wird der Anwender gezwungen sich zu registrieren. Gezwungen deshalb, da lediglich der Button „Erneut erinnern” exestiert und somit mit einer erneuten Nachfragen zu rechnen ist. Nach dem dieser nun betätigt wurde, bekommt man die eigentliche Programmoberfläche präsentiert und prompt den Hinweis an den Kopf geworfen, das man sich doch bitte die Vollversion kaufen soll. So etwas unhöfliches habe ich seit Jahren nicht mehr erlebt.</p>
<p style="text-align: center;"><a href="http://www.twentysqm.com/wp-content/uploads/2009/11/nero-9-lite-vollversion-meldung.png"><img class="aligncenter size-medium wp-image-969" title="nero-9-lite-vollversion-meldung" src="http://www.twentysqm.com/wp-content/uploads/2009/11/nero-9-lite-vollversion-meldung-300x175.png" alt="nero-9-lite-vollversion-meldung" width="300" height="175" /></a></p>
<p>Ab hier an habe ich mich dann so langsam gefragt, wieso ich diese Software wieder ernsthaft in betracht gezogen habe, nach dem ich vor etlichen Jahren durch solche Hinweise und etlichen Schnick-Schnack, mit dem nicht einmal ein Otto-Normal-Verbraucher etwas anfangen kann, abgewendet habe. Wie es der Zufall so will, war mein erster Klick auf der Startoberfläche, ein Klick ins Schwarze. Bilder erzählen dabei mehr als tausend Worte:</p>
<p style="text-align: center;"><a href="http://www.twentysqm.com/wp-content/uploads/2009/11/nero-9-lite-upgrade-meldung.png"><img class="aligncenter size-medium wp-image-968" title="nero-9-lite-upgrade-meldung" src="http://www.twentysqm.com/wp-content/uploads/2009/11/nero-9-lite-upgrade-meldung-300x213.png" alt="nero-9-lite-upgrade-meldung" width="300" height="213" /></a></p>
<p>Was nun kam, wird wohl jedem klar sein. Die Deinstallation folgte auf dem Fusse. Während diesem Prozess, kam es (bei vier getesteten!) immer zu einem nicht ganz nachvollziehbaren Fehler: „IPC logging process” und das dieser Dienst für die Deinstallation geschlossen werden muss. Ein Klick auf „Wiederholen” ergab keine weiteren Nachfragen und die Meldung das die Deinstallation erfolgreich abgeschlossen sei. Ein Blick hinter die Kulissen ergab allerdings das Verweise von und durch Nero nicht richtig entfernt wurden. Auch der Dateilink zu *.nrg wurde nicht richtig entfernt. Bei der Bereinigung half TuneUp Utilities 2010<sup><a href="http://www.twentysqm.com/2009-11-14/nero-9-lite-versagt-auf-ganzer-linie.html#footnote_2_956" id="identifier_2_956" class="footnote-link footnote-identifier-link" title=" http://www.tuneup.de/products/tuneup-utilities/ ">3</a></sup> und erledigte das, was Nero Lite nicht schaffte, den Müll richtig zu entfernen.</p>
<p><strong>Fazit</strong></p>
<p>Für alle die, die nach einem einfachen Brennprogramm suchen, kann ich an dieser Stelle leider nicht weiterhelfen. Es würde sonst auch den Rahmen des Beitrags sprengen. Gesagt soll nur sein das Nero seit der Version 6 stetig Berg ab steuert. Die Vollversion wirkt sich in der Installation teils noch schwerfälliger aus. Nero ab der Version 7 sind nicht nur überladen, sondern mit zahlreichen Anwendungen gespickt, die sich allesamt in das System fressen und sich teils nur noch mit rabiaten Mitteln entfernen lassen. Mein von damals geliebtes Nero Burning Rom erhält man nur noch für einen stolzen Preis von ca. 44 € und erhält dazu, und Entschuldigung für den Audruck, ein haufen Mist den wirklich keiner braucht. Das Nero Burning Rom ist auch nicht in der Nero 9 Lite vertreten. Meine Empfehlung ist daher, sich an Freeware Brennprogrammen zu orientieren oder auf andere kommerzielle Projekte, in diesem Bereich, zu setzen. Schlicht weg ist Nero 9 Lite nur ein Knochen der den Anwender dazu veranlassen soll, das Produkt zu kaufen.</p>
<ol class="footnotes"><li id="footnote_0_956" class="footnote"> <a href="http://www.nero.com/deu/downloads-nero9-free.php">http://www.nero.com/deu/downloads-nero9-free.php</a> </li><li id="footnote_1_956" class="footnote"> <a href="http://www.trash-mail.com/">http://www.trash-mail.com/</a> </li><li id="footnote_2_956" class="footnote"> <a href="http://www.tuneup.de/products/tuneup-utilities/">http://www.tuneup.de/products/tuneup-utilities/</a> </li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.twentysqm.com/2009-11-14/nero-9-lite-versagt-auf-ganzer-linie.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tycho Pseudo-Release 0.4.0-DEV-2719</title>
		<link>http://www.twentysqm.com/2009-07-28/tycho-pseudo-release-0-4-0-dev-2719.html</link>
		<comments>http://www.twentysqm.com/2009-07-28/tycho-pseudo-release-0-4-0-dev-2719.html#comments</comments>
		<pubDate>Tue, 28 Jul 2009 09:01:41 +0000</pubDate>
		<dc:creator>Frank Gottschlich</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[lifecycle]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[tycho]]></category>

		<guid isPermaLink="false">http://www.twentysqm.com/?p=781</guid>
		<description><![CDATA[Freude! Freude! Freude! Nicht nur das die Pseudo-Releases voran kommen, sondern auch, dass ein lang ersehntes Ticket endlich zum Abschluss gekommen ist. Es handelt sich dabei um die unvorgesehenen Inhalte, in Bundle Jar-Archiven. Unexpected content in bundle JAR files Nun mehr können dadurch produktive Jar-Archive erstellt werden. Dafür ein riesen Dankeschön an Igor Fedorenko!]]></description>
			<content:encoded><![CDATA[<p>Freude! Freude! Freude! Nicht nur das die Pseudo-Releases voran kommen, sondern auch, dass ein lang ersehntes Ticket endlich zum Abschluss gekommen ist. Es handelt sich dabei um die unvorgesehenen Inhalte, in Bundle Jar-Archiven.</p>
<p><a href="https://issues.sonatype.org/browse/TYCHO-238" target="_blank">Unexpected content in bundle JAR files</a></p>
<p>Nun mehr können dadurch produktive Jar-Archive erstellt werden. Dafür ein riesen Dankeschön an <a href="https://issues.sonatype.org/secure/ViewProfile.jspa?name=ifedorenko">Igor Fedorenko</a>! </p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentysqm.com/2009-07-28/tycho-pseudo-release-0-4-0-dev-2719.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tycho Pseudo-Release 0.4.0-DEV-2668</title>
		<link>http://www.twentysqm.com/2009-07-20/tycho-pseudo-release-0-4-0-dev-2668.html</link>
		<comments>http://www.twentysqm.com/2009-07-20/tycho-pseudo-release-0-4-0-dev-2668.html#comments</comments>
		<pubDate>Mon, 20 Jul 2009 02:28:18 +0000</pubDate>
		<dc:creator>Frank Gottschlich</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[lifecycle]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[tycho]]></category>

		<guid isPermaLink="false">http://www.twentysqm.com/?p=771</guid>
		<description><![CDATA[Es ist wirklich schade das Tycho gegen den Release von Maven 3 arbeitet. Bereits in der 0.3.0-DEV konnte Tycho gute Ansätze im Build von RCP Applikationen bringen. Seit dem neuesten Pseudo-Release ist dieser aber wieder einmal erwähnenswert. Das automatisierte generieren von POMs lässt sich nun wieder realisieren. Die neuste Eigenschaft ist, das die groupId nicht [...]]]></description>
			<content:encoded><![CDATA[<p>Es ist wirklich schade das <a href="http://docs.codehaus.org/display/M2ECLIPSE/Tycho+project+overview" target="_blank">Tycho</a> gegen den Release von Maven 3 arbeitet. Bereits in der 0.3.0-DEV konnte Tycho gute Ansätze im Build von RCP Applikationen bringen. Seit dem neuesten Pseudo-Release ist dieser aber wieder einmal erwähnenswert.</p>
<p>Das automatisierte generieren von POMs lässt sich nun wieder realisieren. Die neuste Eigenschaft ist, das die <em>groupId</em> nicht mehr automatisch, mit dem übergeordneten Ordner, gesetzt wird, sondern nun explizit mit <em>-DgroupId=…</em> angegeben werden soll. Ich denke dies lässt viel Spielraum für die Strukturierung der Projekte offen. Mir persönlich gefiel ja das automatische setzen besser, aber auch nur weil es gut in mein Konzept gepasst hat.</p>
<p>Eine neue gute Eigenschaft birgt der Inhalt von JAR-Archiven. Hier werden nun durch Maven 3 die unnötigen Daten, wie z.b. die der SVN Dateien, nicht mehr integriert und somit automatisch ausgeklammert. Hierzu gab es in der Vergangenheit das Ticket <a href="http://jira.codehaus.org/browse/MNGECLIPSE-1174" target="_blank">MNGECLIPSE-1174</a> auf Sonatype.</p>
<p>Auch bei den Builds hat sich einiges verändert. Sie lassen sich nun auch mit der 0.4.0-DEV realisieren. So gibt man z.B. nicht mehr das Environment in der Befehlszeile an, sondern direkt in der <a href="http://docs.codehaus.org/display/M2ECLIPSE/Tycho+user+docs#Tychouserdocs-eclipseapplication" target="_blank">eclipse-application</a> POM.</p>
<pre class="brush: xml;">&lt;build&gt;
  &lt;plugins&gt;
    &lt;plugin&gt;
      &lt;groupId&gt;org.codehaus.tycho&lt;/groupId&gt;
      &lt;artifactId&gt;maven-osgi-packaging-plugin&lt;/artifactId&gt;
      &lt;configuration&gt;
        &lt;environments&gt;
          &lt;environment&gt;
            &lt;os&gt;linux&lt;/os&gt;
            &lt;ws&gt;gtk&lt;/ws&gt;
            &lt;arch&gt;x86_64&lt;/arch&gt;
          &lt;/environment&gt;
          &lt;environment&gt;
            &lt;os&gt;win32&lt;/os&gt;
            &lt;ws&gt;win32&lt;/ws&gt;
            &lt;arch&gt;x86&lt;/arch&gt;
          &lt;/environment&gt;
        &lt;/environments&gt;
      &lt;/configuration&gt;
    &lt;/plugin&gt;
  &lt;/plugins&gt;
&lt;/build&gt;</pre>
<p>Diese Art und Weise ist natürlich viel einfacher und man muss nun auch nicht mehr für jedes Betriebsystem und Architektur einen separaten Build starten. Nach wie vor sollte man aber darauf achten, dass product - Plugin zu kopieren und die pom.xml wie folgt zu modifizieren:</p>
<pre class="brush: xml;">&lt;!-- groupId welche beim Start von Maven angegeben wird --&gt;
&lt;groupId&gt;some-group-id&lt;/groupId&gt;
&lt;!-- Name der product - Datei ohne die extension .product --&gt;
&lt;artifactId&gt;product id&lt;/artifactId&gt;
&lt;!-- Version welche in der product - Datei angegeben ist --&gt;
&lt;version&gt;product version&lt;/version&gt;
&lt;!-- Definition als Applikation --&gt;
&lt;packaging&gt;eclipse-application&lt;/packaging&gt;</pre>
<p>Die Angabe eines Environment darf an dieser Stelle auch nicht fehlen (Siehe oben). Da es sonst zu dem Fehler „Product includes native launcher but no target environment was specified” kommt. Hat man die ersten Hürden oder Anpassungen von der 0.3.0-DEV überstanden, lassen sich nun mehr Builds mit dem neuen Pseudo-Release realisieren.</p>
<p>Persönlich würde ich mir noch wünschen das Sonatype mehr Feedback zu den Releases geben würde, damit man genau weiß, worauf man sich einlässt. In Tycho steckt sehr viel potential und ich hoffe in geraumer Zeit wieder ein positives Feedback abgeben zu können.</p>
<p>Die neusten DEVs können unter den <a href="http://repository.sonatype.org/content/repositories/tycho-pseudo-releases/org/codehaus/tycho/tycho-distribution/" target="_blank">Tycho Pseudo-Releases von Sonatype</a> geladen werden. Hier ist es auch möglich auf ältere Builds zurückzugreifen.</p>
<p>[UPDATE]<br />
Seit dem 20.07.09 gibt es nun auch die 0.4.0-DEV-2707. Nach ersten Tests gibt es keine nennenswerten Änderungen. Ebenfalls funktioniert der Build auch mit dieser Version wie gewohnt. Bei einem Build fällt nun auf, das die Zeit für den Build die zuvor leider auch nur 0 angezeigt hat nun gänzlich fehlt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentysqm.com/2009-07-20/tycho-pseudo-release-0-4-0-dev-2668.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Der n-dimensionale Hyperwürfel</title>
		<link>http://www.twentysqm.com/2009-07-12/der-n-dimensionale-hyperwrfel.html</link>
		<comments>http://www.twentysqm.com/2009-07-12/der-n-dimensionale-hyperwrfel.html#comments</comments>
		<pubDate>Sun, 12 Jul 2009 02:10:33 +0000</pubDate>
		<dc:creator>Frank Gottschlich</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.twentysqm.com/?p=750</guid>
		<description><![CDATA[Vor einigen Jahren entwickelte ich an einer Umsetzung für die Hamming-Distanz im Bezug auf Hypercubes1. Im Grunde geht es darum, Körper verschiedener Dimensionen zu projektieren. Worauf ich nun sehr stolz bin, ist die Tatsache das es damals diesen Algorithmus nur im Ansatz gab und sonst auch im Netz keine weiteren Erläuterungen zu finden waren. So [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left"><a href="http://www.twentysqm.com/wp-content/uploads/2009/07/Dimension3.png"><img style="border-right-width: 0px; margin: 6px 15px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Dimension3" border="0" alt="Dimension3" align="left" src="http://www.twentysqm.com/wp-content/uploads/2009/07/Dimension3_thumb.png" width="244" height="243" /></a></p>
<p style="text-align: left">Vor einigen Jahren entwickelte ich an einer Umsetzung für die Hamming-Distanz im Bezug auf Hypercubes<sup><a href="http://www.twentysqm.com/2009-07-12/der-n-dimensionale-hyperwrfel.html#footnote_0_750" id="identifier_0_750" class="footnote-link footnote-identifier-link" title=" http://de.wikipedia.org/wiki/Hyperw%C3%BCrfel ">1</a></sup>. Im Grunde geht es darum, Körper verschiedener Dimensionen zu projektieren. Worauf ich nun sehr stolz bin, ist die Tatsache das es damals diesen Algorithmus nur im Ansatz gab und sonst auch im Netz keine weiteren Erläuterungen zu finden waren. So habe ich, auf der Grundlage der Hamming-Distanz, einen Algorithmus entworfen welcher n-dimensionale Hyperwürfel zeichnen kann.</p>
<p style="text-align: left">Meine Inspiration kam von Hans Walser und seinem gleichnamigen Script<sup><a href="http://www.twentysqm.com/2009-07-12/der-n-dimensionale-hyperwrfel.html#footnote_1_750" id="identifier_1_750" class="footnote-link footnote-identifier-link" title=" http://www.math.unibas.ch/~walser/Vortraege/Vortrag39/Skript/Hyperwuerfel.pdf ">2</a></sup>. Darin wird Schritt für Schritt der Aufbau erläutert und ein Ansatz für das projektieren dieser Körper beschrieben. Das Script ist zwar von 2003 aber dennoch sehr empfehlenswert. Ich habe es aber nun auch einmal ausgelassen eine 10. oder gar höhere Dimension als Bild mit einzubinden. Würfel höherer Dimensionen entnehmt Ihr dem Script auf der Seite 15. Dort werden die Dimensionen fünf bis acht grafisch dargestellt. Das Thema ist wirklich interessant, nur leider gibt es mir keine bekannte Vertiefungsmöglichkeit. Von daher war die Umsetzung eine schöne Herausforderung und das Resultat ein Blick in eine andere Dimension.</p>
<p><a href="http://www.twentysqm.com/wp-content/uploads/2009/07/Dimension42.png"><img style="border-bottom: 0px; border-left: 0px; margin: 6px auto 0px; display: block; float: none; border-top: 0px; border-right: 0px" class="aligncenter" title="Dimension4" border="0" alt="Dimension4" src="http://www.twentysqm.com/wp-content/uploads/2009/07/Dimension4_thumb2.png" width="244" height="243" /></a></p>
<ol class="footnotes"><li id="footnote_0_750" class="footnote"> <a title="http://de.wikipedia.org/wiki/Hyperw%C3%BCrfel" href="http://de.wikipedia.org/wiki/Hyperw%C3%BCrfel">http://de.wikipedia.org/wiki/Hyperw%C3%BCrfel</a> </li><li id="footnote_1_750" class="footnote"> <a title="http://www.math.unibas.ch/~walser/Vortraege/Vortrag39/Skript/Hyperwuerfel.pdf" href="http://www.math.unibas.ch/~walser/Vortraege/Vortrag39/Skript/Hyperwuerfel.pdf">http://www.math.unibas.ch/~walser/Vortraege/Vortrag39/Skript/Hyperwuerfel.pdf</a> </li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.twentysqm.com/2009-07-12/der-n-dimensionale-hyperwrfel.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Einsatz des WYSIWYG-Editor vom WCF</title>
		<link>http://www.twentysqm.com/2009-07-09/wysiwyg-editor.html</link>
		<comments>http://www.twentysqm.com/2009-07-09/wysiwyg-editor.html#comments</comments>
		<pubDate>Thu, 09 Jul 2009 18:27:57 +0000</pubDate>
		<dc:creator>Frank Gottschlich</dc:creator>
				<category><![CDATA[WoltLab Community Framework]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[wcf]]></category>
		<category><![CDATA[woltlab]]></category>

		<guid isPermaLink="false">http://www.twentysqm.com/?p=729</guid>
		<description><![CDATA[Um den WYSIWYG-Editor, des WoltLab Community Frameworks, auch im eigenen Plug-in einzusetzen ist folgender Snippet sehr hilfreich. Hierbei wird sich auf das WCF 1.1 konzentriert. &#60;script type=&#34;text/javascript&#34; src=&#34;{@RELATIVE_WCF_DIR}js/TabbedPane.class.js&#34;&#62;&#60;/script&#62; &#60;script type=&#34;text/javascript&#34;&#62; //&#60;![CDATA[ var INLINE_IMAGE_MAX_WIDTH = {@INLINE_IMAGE_MAX_WIDTH}; //]]&#62; &#60;/script&#62; &#60;script type=&#34;text/javascript&#34; src=&#34;{@RELATIVE_WCF_DIR}js/ImageResizer.class.js&#34;&#62;&#60;/script&#62; {if $canUseBBCodes}{include file=&#34;wysiwyg&#34;}{/if} Weitere nützliche Tipps, zu diesem Thema, sind unter der folgenden Adresse zu [...]]]></description>
			<content:encoded><![CDATA[<p>Um den WYSIWYG-Editor, des WoltLab Community Frameworks, auch im eigenen Plug-in einzusetzen ist folgender Snippet sehr hilfreich. Hierbei wird sich auf das WCF 1.1 konzentriert.</p>
<pre class="brush: xml;">&lt;script type=&quot;text/javascript&quot; src=&quot;{@RELATIVE_WCF_DIR}js/TabbedPane.class.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
//&lt;![CDATA[
var INLINE_IMAGE_MAX_WIDTH = {@INLINE_IMAGE_MAX_WIDTH};
//]]&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;{@RELATIVE_WCF_DIR}js/ImageResizer.class.js&quot;&gt;&lt;/script&gt;
{if $canUseBBCodes}{include file=&quot;wysiwyg&quot;}{/if}</pre>
<p>Weitere nützliche Tipps, zu diesem Thema, sind unter der folgenden Adresse zu finden: <a href="http://community.woltlab.com/forum/entwicklung/hilfe-f%C3%BCr-entwickler/143461-wysiwyg-editor-in-eigenem-plugin/">WYSIWYG-Editor in eigenem Plugin</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentysqm.com/2009-07-09/wysiwyg-editor.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DivX vs. VLC</title>
		<link>http://www.twentysqm.com/2009-06-28/divx-vs-vlc.html</link>
		<comments>http://www.twentysqm.com/2009-06-28/divx-vs-vlc.html#comments</comments>
		<pubDate>Sun, 28 Jun 2009 12:18:07 +0000</pubDate>
		<dc:creator>Frank Gottschlich</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[codec]]></category>
		<category><![CDATA[divx]]></category>
		<category><![CDATA[player]]></category>
		<category><![CDATA[vista]]></category>

		<guid isPermaLink="false">http://www.twentysqm.com/?p=710</guid>
		<description><![CDATA[Hier und heute möchte ich zwei Programme vorstellen die ich selbst in den letzten Jahren aktiv verwendet habe und das eine Programm was im laufe der Zeit den alltäglichen Dienst nicht mehr nach kommen konnte. Eine Erkenntnis erschlag mich am heutigen Tage. Es dreht sich dabei um den bekannten DivX-Player1 für Windows. Es ist kaum [...]]]></description>
			<content:encoded><![CDATA[<p>Hier und heute möchte ich zwei Programme vorstellen die ich selbst in den letzten Jahren aktiv verwendet habe und das eine Programm was im laufe der Zeit den alltäglichen Dienst nicht mehr nach kommen konnte.</p>
<p><img class="alignleft size-full wp-image-711" title="DivX_Player_icon_by_deondeviemos" src="http://www.twentysqm.com/wp-content/uploads/2009/06/DivX_Player_icon_by_deondeviemos.png" alt="DivX_Player_icon_by_deondeviemos" width="110" height="103" />Eine Erkenntnis erschlag mich am heutigen Tage. Es dreht sich dabei um den bekannten DivX-Player<sup><a href="http://www.twentysqm.com/2009-06-28/divx-vs-vlc.html#footnote_0_710" id="identifier_0_710" class="footnote-link footnote-identifier-link" title=" http://www.divx.com/de/win ">1</a></sup> für Windows. Es ist kaum zu glauben, aber mit der Version 7 geht es mit dieser Software steil bergab. Die Performance erinnert an die erste RC von Windows Vista. Langsam, träge und es weckt den Anschein das zum starten und abspielen eines Videos mittlerweile ein Quad Core CPU gebraucht wird. So kam es nun das mein tapferer Dual Core kein Video mehr über den DivX Player abspielen kann. Die Nebenwirkungen haben sich durch ein heftiges Ruckeln in Bild und Ton ausgewirkt. Für alle Zyniker sei gesagt, das ich dies auf einem frisch installierten Rechner, ink. aller Updates, getestet habe und es sich hier keinesfalls um HD Videos handelt. Für mich ist jetzt Schluss, ich werde nie wieder den DivX-Player nutzen!</p>
<p><img class="alignright size-thumbnail wp-image-713" style="margin-left: 10px;" title="VideoLAN" src="http://www.twentysqm.com/wp-content/uploads/2009/06/vlc-150x150.png" alt="vlc" width="96" height="96" />Kommen wir daher zu der Alternative. Ganz klar, hier gibt es eine Software die zur Zeit „marktführend” auf diesem Gebiet ist. Es handelt sich um den VLC media player. Diese Software nutze ich erfolgreich seit mehreren Jahren neben dem DivX-Player. Und das, was diese Software nicht schafft, erledigt der VLC-Player<sup><a href="http://www.twentysqm.com/2009-06-28/divx-vs-vlc.html#footnote_1_710" id="identifier_1_710" class="footnote-link footnote-identifier-link" title=" http://www.videolan.org/ ">2</a></sup> in Handumdrehen. Zudem erhält man mit der Installation gleich ein Package von Codecs um diese nicht unnötigen nachinstallieren zu müssen. Von haus aus hat man die Möglichkeit HD Videos, ruckelfrei und auf weniger guten Rechnern, abzuspielen. Die Tatsache das der VLC-Player bereits seit Jahren kostenfrei ist, rundet die ganze Sache ab.</p>
<ol class="footnotes"><li id="footnote_0_710" class="footnote"> <a href="http://www.divx.com/de/win">http://www.divx.com/de/win</a> </li><li id="footnote_1_710" class="footnote"> <a href="http://www.videolan.org/">http://www.videolan.org/</a> </li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.twentysqm.com/2009-06-28/divx-vs-vlc.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse Galileo Release 3.5</title>
		<link>http://www.twentysqm.com/2009-06-28/eclipse-galileo-release-3-5.html</link>
		<comments>http://www.twentysqm.com/2009-06-28/eclipse-galileo-release-3-5.html#comments</comments>
		<pubDate>Sat, 27 Jun 2009 23:14:51 +0000</pubDate>
		<dc:creator>Frank Gottschlich</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://www.twentysqm.com/?p=682</guid>
		<description><![CDATA[Aus dem Hause The Eclipse Foundation kam nun die sehnsüchtige Mitteilung. Eclipse Galileo erreicht das Release Stadium. Nach monater langer Arbeit kommt mit der neuen Version viele Detailverbesserungen. In der aktuellen Version 3.5 bringt Eclipse nicht nur viele Verbesserungen für das Overview mit sondern auch neue Architekturunterstützungen. Bei einem Blick hinter die Kulissen fällt sofort [...]]]></description>
			<content:encoded><![CDATA[<p>Aus dem Hause <a href="http://www.eclipse.org">The Eclipse Foundation</a> kam nun die sehnsüchtige Mitteilung. Eclipse Galileo erreicht das Release Stadium. Nach monater langer Arbeit kommt mit der neuen Version viele Detailverbesserungen. In der aktuellen Version 3.5 bringt Eclipse nicht nur viele Verbesserungen für das Overview mit sondern auch neue Architekturunterstützungen.</p>
<p>Bei einem Blick hinter die Kulissen fällt sofort die neue Unterstützung für die MacOS X - Version Cocoa auf. Hier wird nun der Support für die x86- und x64-Architektur bereitgestellt, was einiges wieder sehr einfach machen wird. Experimentell wurde (erst) zum Release die <a href="http://de.wikipedia.org/wiki/System/390">s390-Architektur</a> eingeführt. Dabei handelt es sich um eine weitere Linux-Architektur von IBM. Mittlerweile die zweite die auch von Java unterstützt wird.</p>
<p>Nach einem ersten Start fällt das viel schnellere Laden der Plattform auf. Dies ist einem überabeiteten Backend zu verdanken. Bei einem Update oder Installation eines zusätzlichen Plugins fällt ebenfalls die neue Routine und neuen Views auf. Hier wurde ordentlich optimiert. Dabei wurden die durchzuklickenden Dialoge reduziert. Ebenfalls wird bei der Installation von neuen Plug-ins angezeigt welche Plug-ins noch installiert werden müssen.</p>
<p>Mit Eclipse 3.5 kommen neben den Features für das Auge und der Steuerung auch einige Bugfixes. So ist es nun endlich möglich einen JUnit 4 Provider für Pluginübergreifende Tests einzusetzen. Durch einen Fehler bis zur Version 3.4.2 war dies leider nicht möglich und man musste sich vorerst mit JUnit 3 zufrieden geben. Diese Thematik ist sicherlich sehr interessant für die Reihe an Third-party Programme, die sich im Bereich Continuous Integration tummeln. Eine mitlerweile doch recht bekannte Plattform dafür ist <a href="http://docs.codehaus.org/display/M2ECLIPSE/Tycho+project+overview">Tycho</a>.</p>
<p>Für umfassende Informationen der Neuerungen in Eclipse, sollte man die <a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.5-200906111540/eclipse-news-all.html">Eclipse 3.5 - New and Noteworthy</a> Seite von Eclipse besuchen. Dort wird aufgezeigt an welchen neuen Errungenschaften in den letzten Monaten gearbeitet wurde.</p>
<p>Weiterführende Informationen:</p>
<p><a href="http://www.golem.de/0906/67975.html">http://www.golem.de/0906/67975.html</a><br />
<a href="http://www.innenspur.de/?p=259">http://www.innenspur.de/?p=259</a><br />
<a href="http://javathreads.de/2009/06/eclipse-galileo-veroeffentlicht/">http://javathreads.de/2009/06/eclipse-galileo-veroeffentlicht/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentysqm.com/2009-06-28/eclipse-galileo-release-3-5.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trillian Astra (Betaphase)</title>
		<link>http://www.twentysqm.com/2009-03-10/trillian-astra-betaphase.html</link>
		<comments>http://www.twentysqm.com/2009-03-10/trillian-astra-betaphase.html#comments</comments>
		<pubDate>Tue, 10 Mar 2009 19:54:29 +0000</pubDate>
		<dc:creator>Frank Gottschlich</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[messanger]]></category>
		<category><![CDATA[trillian astra]]></category>

		<guid isPermaLink="false">http://www.twentysqm.com/?p=588</guid>
		<description><![CDATA[Trillian Astra hat nun mehr den Alphastatus verlassen und steckt mit der momentanen Version 4.0 build.99 in der Betaphase. Die endgültige Version ist für einen Kaufpreis von 25 Dollar zu haben. Ebenfalls wird die Thematik eines Laufzeit Updates weiter verfolgt. Dies bedeutet das man die Möglichkeit besitzt, mit einem einmaligen Preis, sein recht auf Updates [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-591" title="build99" src="http://www.twentysqm.com/wp-content/uploads/2009/03/build99.png" alt="build99" width="495" height="114" /></p>
<p>Trillian Astra hat nun mehr den Alphastatus verlassen und steckt mit der momentanen Version 4.0 build.99 in der Betaphase. Die endgültige Version ist für einen Kaufpreis von 25 Dollar zu haben. Ebenfalls wird die Thematik eines Laufzeit Updates weiter verfolgt. Dies bedeutet das man die Möglichkeit besitzt, mit einem einmaligen Preis, sein recht auf Updates für 1 Jahr verlängern zu können.</p>
<p>Die Anmeldung zur Betaphase ist analog zur Alpha. Über die Homepage <a href="http://www.trillian.im/">http://www.trillian.im/</a> lässt sich ein „Sign up” durchführen. Einige schwören darauf das man es im Bereich „About Yourself” einer Bewerbung gleich machen soll, um so schneller an einen Account heran zu kommen. Wie man es handhabt muss jeder selbst wissen. Ich hoffe das bald die lange Wartezeit vorbei und das ich Trillian Astra weiterempfehlen kann.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentysqm.com/2009-03-10/trillian-astra-betaphase.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.915 seconds -->
