<?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>Arnisoft</title>
	<atom:link href="http://arnisoft.com/feed/lang/de/" rel="self" type="application/rss+xml" />
	<link>http://arnisoft.com</link>
	<description>Software Development  &#38; Networkadministration</description>
	<lastBuildDate>Wed, 13 Apr 2011 16:23:00 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>PHP magic methods performance</title>
		<link>http://arnisoft.com/354/php-magic-methods-performance/</link>
		<comments>http://arnisoft.com/354/php-magic-methods-performance/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 17:42:16 +0000</pubDate>
		<dc:creator>devarni</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://arnisoft.com/?p=354</guid>
		<description><![CDATA[How is the performance of magic methods (__call, __get, __set, &#8230;)? Compared to direct method calls: bad. Here a short benchmark and the code I wrote for this benchmark (needs PHP 5.3): Method Call: 3.01 seconds Direct Access: 2.47 seconds Magic Method (__call) 5.32 seconds Magic Method (__get) 5.37 seconds define('ITERATIONS', 2000000); function doBenchmark($name, Closure [...]]]></description>
			<content:encoded><![CDATA[<h3>How is the performance of magic methods<br />
 (__call, __get, __set, &#8230;)?</h3>
<p>Compared to direct method calls: bad. Here a short benchmark and the code I wrote for this benchmark (needs PHP 5.3):</p>
<table>
<tr>
<td>Method Call:</td>
<td>3.01 seconds</td>
</tr>
<tr>
<td>Direct Access:</td>
<td>2.47 seconds</td>
</tr>
<tr>
<td>Magic Method (__call)</td>
<td>5.32 seconds</td>
</tr>
<tr>
<td>Magic Method (__get)</td>
<td>5.37 seconds</td>
</tr>
</tbody>
</table>
<pre name="code" class="php">define('ITERATIONS', 2000000);
    function doBenchmark($name, Closure $closure){
        $start = microtime(true);
        for ($i=0; $i < ITERATIONS; ++$i) {
            $closure();
        }
        $stop = microtime(true);
        echo "Test $name: " . ($stop - $start) . " seconds";
    }

    class Test{
        public $data = array("view" => "view", "test2" => "test2", "test3" =>"test3");

        public function getView(){
            return $this->data['view'];
        }

        public function __call($name, $arg){
           return $name=="_getView" ? $this->data['view'] : false;
        }

        public function __get($key){
            return array_key_exists($key, $this->data) ? $this->data[$key] : null;
        }
    }

    $t = new Test();
    doBenchmark("Methode Call", function(){
        global $t;
        $v = $t->getView();
    });

    doBenchmark("Direct Access", function(){
        global $t;
        $v = $t->data['view'];
    });

    doBenchmark("Magic Methode (__call)", function(){
        global $t;
        $v = $t->_getView();
    });

    doBenchmark("Magic Methode (__get)", function(){
        global $t;
        $v = $t->view;
    });
</pre>
<p>So, you get the picure <img src='http://arnisoft.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Don&#8217;t use magic methods as a replacement for a regular method if a direct access to a field or variable is possible. Magic methods are the sugar for dynamic created attributes (eg. for database objects) or if you don&#8217;t know the method/attribute while writing the code.</p>
<p><strong>Use magic methods only rarely</strong>.</p>
<p>The only special magic method you should use often: __autoload  <img src='http://arnisoft.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  It helps to load your needed classes on demand only when they are needed. If you use namespaces, here a short trick to load the name-mangled classes (the $path must of course be changed to your needs):</p>
<p><br class="spacer_" /></p>
<pre name="code" class="php">function __autoload($class) {
    $parts = explode('\\', $class);
    $class = end($parts);
    $path = __DIR__ . "/includes/"); //path for the includes

     require ($path . $class . ".php");
}
</pre>
<p>Happy coding <img src='http://arnisoft.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://arnisoft.com/354/php-magic-methods-performance/feed/lang/de/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Benchmark: VirtualBox vs VMware: Part2 2010</title>
		<link>http://arnisoft.com/335/benchmark-virtualbox-vs-vmware-part2-2010/</link>
		<comments>http://arnisoft.com/335/benchmark-virtualbox-vs-vmware-part2-2010/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 11:43:59 +0000</pubDate>
		<dc:creator>devarni</dc:creator>
				<category><![CDATA[Benchmark]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://arnisoft.com/?p=335</guid>
		<description><![CDATA[VirtualBox vs VMware: part 2010 Because the free Vmware Player now supports also the creating of virtual machines, it&#8217;s time to make another short benchmark. Host Ubuntu GNU/Linux 10.10 64Bit (&#8220;Maverick&#8221;), 120GB SSD, 4GB RAM, Intel Core 2 Duo 6600 Guest Windows 7 64Bit Home, 2xCPU, 2GB RAM, 20GB virtual HD on 1TB Samsung Spinpoint [...]]]></description>
			<content:encoded><![CDATA[<h2>VirtualBox vs VMware: part 2010 <img src='http://arnisoft.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </h2>
<p>Because the free Vmware Player now supports also the creating of virtual machines, it&#8217;s<br />
 time to make another short benchmark.</p>
<address>Host</address>
<address><span style="font-style: normal;">Ubuntu GNU/Linux 10.10 64Bit (&#8220;Maverick&#8221;), 120GB SSD, 4GB RAM, Intel Core 2 Duo 6600</span></address>
<address><span style="font-style: normal;"><br />
 </span></address>
<address>Guest</address>
<address><span style="font-style: normal;">Windows 7 64Bit Home, 2xCPU, 2GB RAM, 20GB virtual HD on 1TB Samsung Spinpoint HD</span></address>
<address><span style="font-style: normal;"><br />
 </span></address>
<address>Virtual Machines (64Bit)</address>
<address><span style="font-style: normal;">VirtualBox 3.2.1, VMware Player 3.1.2</span></address>
<p><br class="spacer_" /></p>
<h3><strong>Windows 7 Performance Index</strong></h3>
<table>
<tbody>
<tr id="hdr">
<td></td>
<td class="tdr">VirtualBox</td>
<td>VMware</td>
</tr>
<tr>
<td>CPU</td>
<td class="tdr">5,5</td>
<td>5,5</td>
</tr>
<tr>
<td>RAM</td>
<td class="tdr">5,5</td>
<td>5,5</td>
</tr>
<tr>
<td>Graphic</td>
<td class="tdr">1,0</td>
<td class="mark">4,2</td>
</tr>
<tr>
<td>Graphic (Games)</td>
<td class="tdr">1,0</td>
<td class="mark">3,4</td>
</tr>
<tr>
<td>Harddisk</td>
<td class="tdr">5,9</td>
<td class="mark">6,0</td>
</tr>
<tr>
<td><em>Performance Index:</em></td>
<td class="tdr"><em>1,0</em></td>
<td class="mark"><em>3,4</em></td>
</tr>
</tbody>
</table>
<p><br class="spacer_" /></p>
<h3><strong>Crystal Disk Mark 3.0</strong></h3>
<table>
<tbody>
<tr id="hdr">
<td></td>
<td class="tdr" colspan="2">VirtualBox</td>
<td colspan="2">VmWare Player</td>
</tr>
<tr>
<td></td>
<td><strong>Read</strong></td>
<td class="tdr"><strong>Write</strong></td>
<td><strong>Read</strong></td>
<td><strong>Write</strong></td>
</tr>
<tr>
<td>Seq</td>
<td>115.8</td>
<td class="tdr">34.61</td>
<td class="mark">122.1</td>
<td class="mark">54.81</td>
</tr>
<tr>
<td>512k</td>
<td class="mark">60.31</td>
<td class="tdr">30.80</td>
<td>43.69</td>
<td class="mark">53.45</td>
</tr>
<tr>
<td>4k</td>
<td>0.858</td>
<td class="tdr">0.718</td>
<td class="mark">1.004</td>
<td class="mark">11.78</td>
</tr>
<tr>
<td>4k QD32</td>
<td>0.950</td>
<td class="tdr">0.911</td>
<td class="mark">1.129</td>
<td class="mark">19.13</td>
</tr>
</tbody>
</table>
<p><br class="spacer_" /></p>
<h3><em><strong>Summary</strong></em></h3>
<p>There is no difference for the computing performance. VirtualBox and VMware playing at the same level.<br />
 For graphic performance/support VMware wins. VirtualBox 3D support is only rudimentary and does not work for Windows Airo (so the bad performance index for graphics).<br />
 The disk/caching performance of VMware is better.</p>
<p>The overall performance of VMware Player is better then VirtualBox.<br />
 If you need 3D support eg. for Windows 7 Airo as a guest, VMware is the only solution.<br />
 If you need snapshots VirtualBox wins, for such features you need VMware Workstation.</p>
]]></content:encoded>
			<wfw:commentRss>http://arnisoft.com/335/benchmark-virtualbox-vs-vmware-part2-2010/feed/lang/de/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NGinx: Custom error handling</title>
		<link>http://arnisoft.com/285/nginx-custom-error-handling/</link>
		<comments>http://arnisoft.com/285/nginx-custom-error-handling/#comments</comments>
		<pubDate>Tue, 18 May 2010 16:23:52 +0000</pubDate>
		<dc:creator>devarni</dc:creator>
				<category><![CDATA[Howto]]></category>

		<guid isPermaLink="false">http://arnisoft.com/?p=285</guid>
		<description><![CDATA[I will give you a idea about the easy implementation of error page handling with Nginx. 1. Setting error handler Error handler can be set with the error_page directive. More about this directive you can find here. Do this in your server block but better use a generic file and include this in every virtual [...]]]></description>
			<content:encoded><![CDATA[<p>I will give you a idea about the easy implementation of error page handling with Nginx.</p>
<p><b>1. Setting error handler</b></p>
<p>Error handler can be set with the <code>error_page</code> directive. More about this directive you can find <a href="http://wiki.nginx.org/NginxHttpCoreModule#error_page" mce_href="http://wiki.nginx.org/NginxHttpCoreModule#error_page" target="_blank">here</a>.</p>
<p>Do this in your server block but better use a generic file and include this in every virtual host server block.&nbsp;I use for this a file &#8220;vhost&#8221; with all such settings.</p>
<p>The handler or html files are placed in a separate folder outside the webs. You can use a folder inside your Nginx settings (I use here for example a &#8220;html&#8221; folder).</p>
<p>The location block is needed to pass the correct root and file to php fastcgi. In this example I use a file &#8220;fastcgi&#8221; &nbsp;with this mostly used lines:</p>
<pre name="code" class="php">
fastcgi_pass   unix:/tmp/fastcgi.socket;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include fastcgi_params;
</pre>
<p>Here the part in the server block (or in your generic vhost file for including):</p>
<pre name="code" class="php">

# error handler, codes can also be combined
error_page 401 /error.php?c=401;
error_page 403 /error.php?c=403;
error_page 404 /error.php?c=404;
error_page 500 /error.php?c=500;
error_page 502 503 504 /error.php?c=50x;

# serve error.php from /etc/nginx/html folder
location =/error.php {
   root /etc/nginx/html;
   include conf/fastcgi;
}
</pre>
<p><b>2. PHP file</b></p>
<p>The error.php file will be called with the URL encoded error-code, so its easy to grab this code in the PHP file from the superglobal <code>$_GET</code> array.</p>
<p>To map this error code to a message string, use a associative array and a function to return the string.</p>
<p>This is the part in the error.php file:</p>
<pre name="code" class="php">

<?php

//mapping array for error code to message string
$_err = Array("401" => "Autorisierung erforderlich! - Authorization Required",
    "403" => "Zugriff ist nicht erlaubt! - Access forbidden",
    "404" => "Seite wurde nicht gefunden - Page not found",
    "500" => "Interner Serverfehler - Internal Server Error",
    "50x" => "Seite ist momentan nicht verf&uuml;gbar. Bitte Anfrage sp&auml;ter wiederholen.<br/>-<br/>The page is temporarily unavailable. Try again later.");

// get the error string
function errorString($error) {
    global $_err;

    foreach ($_err as $key => $val) {
        if ($key == $error)
            return $val;
    }

    return "Unknown Error";
}

isset($_GET['c']) or die("Unknown Error");
$error = $_GET['c'];
$str = errorString($error);

?>

Error &lt;?=$error?&gt;: <strong>&lt;?=$str?&gt;</strong>
</pre>
<p>You can format the error page as you like. But remember: the web root url will be the  actual virtual host! Easiest way: use inline CSS. If this is not your preferred way, place the css file in a virtual host (eg. your default virtual host)</p>
]]></content:encoded>
			<wfw:commentRss>http://arnisoft.com/285/nginx-custom-error-handling/feed/lang/de/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx: phpmyadmin configuration</title>
		<link>http://arnisoft.com/253/nginx-phpmyadmin-configuration/</link>
		<comments>http://arnisoft.com/253/nginx-phpmyadmin-configuration/#comments</comments>
		<pubDate>Thu, 13 May 2010 15:11:53 +0000</pubDate>
		<dc:creator>devarni</dc:creator>
				<category><![CDATA[Howto]]></category>

		<guid isPermaLink="false">http://arnisoft.com/?p=253</guid>
		<description><![CDATA[This configuration is used to access phpmyadmin as a &#8220;subfolder&#8221; of the domain like: http://mysite.com/phpmyadmin The location will be append to the root! For a similar behaviour like the Apache configuration, you could use the &#8220;alias&#8221; directive My phpmyadmin installation is under /usr/share/phpmyadmin, thats why I use /usr/share as the root. server{ ... location /phpmyadmin{ [...]]]></description>
			<content:encoded><![CDATA[<p>This configuration is used to access phpmyadmin as a &#8220;subfolder&#8221; of the domain like:</p>
<p>http://mysite.com/phpmyadmin</p>
<p>
The location will be append to the root! For a similar behaviour like the Apache configuration, you could use the &#8220;alias&#8221; directive<br/><br />
My phpmyadmin installation is under /usr/share/phpmyadmin, thats why I use /usr/share as the root.
</p>
<pre name="code" class="js">
server{
...
    location /phpmyadmin{
        root    /usr/share;
        index   index.php;
    }

    location ~ \.php$ {
        set $php_root   $document_root;
            if ($request_uri ~* /phpmyadmin) {
                set $php_root /usr/share;
           }

        fastcgi_pass   unix:/tmp/fastcgi.socket;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $php_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://arnisoft.com/253/nginx-phpmyadmin-configuration/feed/lang/de/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Server Benchmark: Apache, Nginx, Cherokee, Lighttp</title>
		<link>http://arnisoft.com/239/server-benchmark-apache-nginx-cherokee/</link>
		<comments>http://arnisoft.com/239/server-benchmark-apache-nginx-cherokee/#comments</comments>
		<pubDate>Thu, 13 May 2010 10:21:14 +0000</pubDate>
		<dc:creator>devarni</dc:creator>
				<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://arnisoft.com/?p=239</guid>
		<description><![CDATA[Quick Benchmark of Apache, Nginx, Cherokee, Lighttpd A short benchmark of this 4 server with dynamic and static content. All server provides the same functionality like URL rewriting, password protected folders/files etc. but all have their own way to do that For shared hosting where the user has no access to the server configuration, Apache [...]]]></description>
			<content:encoded><![CDATA[<h2>Quick Benchmark of Apache, Nginx, Cherokee, Lighttpd</h2>
<p>A short benchmark of this 4 server with dynamic and static content.<br />
 All server provides the same functionality like URL rewriting, password protected folders/files etc. but all have their own way to do that <img src='http://arnisoft.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> <br />
 For shared hosting where the user has no access to the server configuration, Apache with the .htaccess file support is a good choice.</p>
<p>I used the benchmark tool from Apache <code>ab -n 50000 -c 20</code> <br />
 php-cgi goes over a Unix socket</p>
<p><strong>Dynamic Content (PHP)</strong></p>
<table border="0" cellpadding="0" cellspacing="0" width="300px">
<tbody>
<tr>
<td class="fi bb">Server</td>
<td class="fi bb">Requests (sec)</td>
<td class="fi bb">Transferrate (KB/s)</td>
</tr>
<tr class="ac">
<td class="fi">Apache 2.2.14</td>
<td>2125</td>
<td>11684</td>
</tr>
<tr>
<td class="fi">Nginx 0.7.65</td>
<td>1734<br />
 1861</td>
<td>9436 (php-cgi)<br />
 10115 (php-fpm)</td>
</tr>
<tr class="ac">
<td class="fi">Cherokee 1.0.0</td>
<td>2119<br />
 2103</td>
<td>11562 (php-cgi)<br />
 11454 (php-fpm)</td>
</tr>
</tbody>
</table>
<p><strong>Static content (14785 Bytes HTML file)</strong></p>
<table border="0" cellpadding="0" cellspacing="0" width="300px">
<tbody>
<tr>
<td class="fi bb">Server</td>
<td class="fi bb">Requests (sec)</td>
<td class="fi bb">Transferrate (KB/s)</td>
</tr>
<tr class="ac">
<td class="fi">Apache 2.2.14</td>
<td>6768</td>
<td>99593</td>
</tr>
<tr>
<td class="fi">Lighttpd 2.4.26</td>
<td class="red">15782</td>
<td class="red">213866</td>
</tr>
<tr class="ac">
<td class="fi">Cherokee 1.0.0</td>
<td>7602</td>
<td>111285</td>
</tr>
<tr>
<td class="fi">Nginx 0.7.65</td>
<td>10912</td>
<td>159828</td>
</tr>
</tbody>
</table>
<p><strong>More &#8220;real live&#8221; test with PHP and eAccelerator enabled</strong></p>
<p>Cherokee/NGinx/Lighttp are using the same php-fpm socket<br/></p>
<table border="0" cellpadding="0" cellspacing="0" width="300px">
<tbody>
<tr>
<td class="fi bb center">Server</td>
<td class="fi bb center">Requests/s</td>
<td class="fi bb center">&Oslash;</td>
</tr>
<tr class="ac">
<td class="fi">Apache 2.2.14</td>
<td>2713|2744|2766</td>
<td class="red">2741</td>
</tr>
<tr>
<td class="fi">Nginx 0.7.65</td>
<td>2416|2433|2418</td>
<td>2422</td>
</tr>
<tr class="ac">
<td class="fi">Cherokee 1.0.0</td>
<td>2702|2638|2694</td>
<td>2678</td>
</tr>
<tr>
<td class="fi">Lighttp 1.4.26</td>
<td>2492|2363|2540</td>
<td>2465</td>
</tr>
</tbody>
</table>
<p>Results<br/></p>
<p>There is a small difference between fast-cgi and php-fpm (alternative implementation of fast-cgi).<br />
 You should prefer php-fpm (will be included in PHP 5.4 or you must build it manually from source).</p>
<p>Apache and Cherokee are both excellent for dynamic content.</p>
<p>For static content Lighttp is the fastest server.</p>
<p><strong>There is not _the_ best server</strong> but a good combination: Lighttpd or Nginx as a proxy for serving static content, Apache or Cherokee for the dynamic content. Or a another proxy server like Varnish for static content and caching  and Apache/Cherokee for serving dynamic content
</p>
<p>For a PHP site with only 1 server running: Apache. <br/><br />
For a smaller memory footprint and if .htaccess is not needed: Cherokee (also the only server with a very good graphical admin interface)</p>
]]></content:encoded>
			<wfw:commentRss>http://arnisoft.com/239/server-benchmark-apache-nginx-cherokee/feed/lang/de/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Benchmark: VirtualBox vs VMware</title>
		<link>http://arnisoft.com/173/benchmark-virtualbox-vs-vmware/</link>
		<comments>http://arnisoft.com/173/benchmark-virtualbox-vs-vmware/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 12:28:00 +0000</pubDate>
		<dc:creator>devarni</dc:creator>
				<category><![CDATA[Benchmark]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VM]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://arnisoft.com/?p=173</guid>
		<description><![CDATA[Benchmark VirtualBox 2.1.4 vs VMware Workstation 6.5.1 Host: Ubuntu64, 4GB RAM, Core2Duo E6600, Samsung HD502IJ Gast: Windows XP Home, 1GB RAM, 8GB virtual disk Benchmark Software: SiSoft Sandra Light, HD Tune Ein kurzer Benchmark der beiden VMs VirtualBox VMware Workstation HDTune Min (MB/s) 26 5,7 Max (MB/s) 250 803 Average (MB/s) 177 392 Access time [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Benchmark VirtualBox 2.1.4 vs VMware Workstation 6.5.1</strong></p>
<p>Host: Ubuntu64, 4GB RAM, Core2Duo E6600, Samsung HD502IJ<br />
 Gast: Windows XP Home, 1GB RAM, 8GB virtual disk<br />
 Benchmark Software: SiSoft Sandra Light, HD Tune</p>
<p>Ein kurzer Benchmark der beiden VMs </p>
<div style="color:black">
<table style="background-color: #ffffff; width: 455px; height: 309px;" border="0" cellspacing="0" cellpadding="5">
<tbody>
<tr style="background-color: #6b7b94;">
<td id="sep"></td>
<td id="sep" style="text-align: right;"><strong>VirtualBox</strong></td>
<td id="sep" style="text-align: right;"><strong> VMware Workstation</strong></td>
</tr>
<tr>
<td><em>HDTune</em></td>
<td align="right"></td>
<td></td>
</tr>
<tr>
<td>Min (MB/s)</td>
<td align="right">26</td>
<td align="right">5,7</td>
</tr>
<tr>
<td>Max (MB/s)</td>
<td align="right">250</td>
<td align="right">803</td>
</tr>
<tr>
<td>Average (MB/s)</td>
<td align="right"><strong>177</strong></td>
<td align="right"><strong>392</strong></td>
</tr>
<tr>
<td>Access time (ms)</td>
<td align="right">0,4</td>
<td align="right">0,2</td>
</tr>
<tr>
<td>Burst rate (MB/s)</td>
<td align="right">129</td>
<td align="right">488</td>
</tr>
<tr>
<td>CPU Usage</td>
<td align="right">56%</td>
<td align="right">17%</td>
</tr>
<tr>
<td><em><br />
 Sisoft Sandra</em></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Dhrystone ALU (GIPS)</td>
<td align="right">22,70</td>
<td align="right">7,35  (*7,34)</td>
</tr>
<tr>
<td>Whetstone iSSE3 (GFlops)</td>
<td align="right">18,64</td>
<td align="right">6,26  (*5,92)</td>
</tr>
<tr>
<td>Multimedia: Integer (MPixel/s)</td>
<td align="right">77,21</td>
<td align="right">15,76  (*16,90)</td>
</tr>
<tr>
<td>Multimedia: Floating Point (MPixel/s)</td>
<td align="right">45,77</td>
<td align="right">10,04 (*10,19)</td>
</tr>
<tr>
<td>Multimedia: Double (MPixel/s)</td>
<td align="right">23,96</td>
<td align="right">5,14 (*4,28)</td>
</tr>
<tr>
<td>Physical Drives (MB/s)</td>
<td align="right">109</td>
<td align="right">357</td>
</tr>
<tr>
<td>Combined Performance Index</td>
<td align="right"><strong>671</strong></td>
<td align="right"><strong>802</strong></td>
</tr>
</tbody>
</table>
</div>
<p><span style="font-size: xx-small;">*) Dual CPU Mode </span></p>
<p><strong>Resumee</strong></p>
<p>VirtualBox zeigt die bessere Rechenleistung, was sich besonders bei Desktopanwendungen und multimedialastigen Operationen positiv auswirkt.<br />
 VMware zeigt die bessere Festplattenperformance, was sich besonders bei Servern positiv bemerkbar macht. Interessant: der Dual CPU Mode in Vmware hat keinen Vorteil zum Single CPU mode).<br />
 Man kann sicherlich sagen: VirtualBox für Desktopanwendungen, Vmware für Server, wobei Vmware in der Gesamtperformance der Sieger ist.  </p>
]]></content:encoded>
			<wfw:commentRss>http://arnisoft.com/173/benchmark-virtualbox-vs-vmware/feed/lang/de/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash Symbole mit  Actionscript3 in Flex</title>
		<link>http://arnisoft.com/76/using-of-flash-symbols-in-flex/</link>
		<comments>http://arnisoft.com/76/using-of-flash-symbols-in-flex/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 00:11:59 +0000</pubDate>
		<dc:creator>devarni</dc:creator>
				<category><![CDATA[Flash & Flex]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[FlexBuilder]]></category>

		<guid isPermaLink="false">http://arnisoft.com/?p=76</guid>
		<description><![CDATA[Der Unterschied Nicht vergessen: Flash != Flex. Flex benutzt zwar Flash Elemente basiert aber auf eigenen Klassen. Wenn Flash und Flex zusammenspielen sollen, benötigen wir eine Schnittstelle. Ein MovieClip ist ein Anzeigeobjekt in Flash und UIComponent ist ein Anzeigeobjekt in Flex. Wir können aber ein MovieClip in ein UIComponent &#8220;verpacken&#8221;, so wird das Flex UIComponent [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Der Unterschied</strong></p>
<p>Nicht vergessen: Flash != Flex. Flex benutzt zwar Flash Elemente basiert aber auf eigenen Klassen. Wenn Flash und Flex zusammenspielen sollen, benötigen wir eine Schnittstelle.<br />
Ein <em>MovieClip</em> ist ein Anzeigeobjekt in Flash und <em>UIComponent</em> ist ein Anzeigeobjekt in Flex. Wir können aber ein <em>MovieClip</em> in ein <em>UIComponent</em> &#8220;verpacken&#8221;, so wird das Flex UIComponent ein Container für unseren Flash MovieClip.<br />
Hier nun beide Dateien, zuerst die MXML Datei:
</p>
</p>
<pre name="code" class="xml">
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="FlexApp.initApp()">

</mx:Application>
</pre>
<p>
Und die Actionscriptdatei mit der Klasse:
</p>
</p>
<pre name="code" class="js">

package {
	import mx.core.Application;
	import mx.core.UIComponent;
	import flash.display.MovieClip;

	/*****************************************************************
	 * File: FlexApp.as
	 *****************************************************************/

	public class FlexApp {
		private var _app:Application;

		public function FlexApp(app:Application) {
			_app=app;

			var btn:MovieClip=new BtnStop();
			var flexui:UIComponent=new UIComponent;
			flexui.addChild(btn);
			app.addChild(flexui);
		}

		static public function initApp():FlexApp {
			return new FlexApp(Application(Application.application));
		}

		public function get app():Application {
			return _app;
		}
	}
}
</pre>
<p><strong>Wie es funktioniert</strong></p>
<p><em>applicationComplete</em> in der MXML Datei ist der Eventhandler der von der Anwendung aufgerufen wird. Hier setzen wir unseren Handler ein, der eine statische Funktion unser Klasse sein muss damit er auch später aufgerufen werden kann.</p>
<p><em>initApp()</em> erzeugt unsere Klasse und übergibt das Objekt als Parameter an den Constructor.</p>
<p>Im Constructor erzeugen wir den <em>MovieClip</em>, basierend auf dem von Flash importierten Symbol &#8220;BtnStop&#8221; (dieses Symbol kommt von einer SWC Bibliothek die vorher mit Flash erzeugt wurde). Es wird dann ein Flex <em>UIComponent</em> erzeugt, wo wir unseren MovieClip als Child hinzufügen. Das <em>UIComponent</em> kann nun zur Flex-Anwendung hinzugefügt werden.
</p></p>
]]></content:encoded>
			<wfw:commentRss>http://arnisoft.com/76/using-of-flash-symbols-in-flex/feed/lang/de/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Die Werkzeuge&#8230;</title>
		<link>http://arnisoft.com/37/what-where/</link>
		<comments>http://arnisoft.com/37/what-where/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 17:56:25 +0000</pubDate>
		<dc:creator>devarni</dc:creator>
				<category><![CDATA[IDEs & Development Tools]]></category>
		<category><![CDATA[FlashDevelop]]></category>
		<category><![CDATA[FlexBuilder]]></category>

		<guid isPermaLink="false">http://arnisoft.com/?p=37</guid>
		<description><![CDATA[Überblick über Entwicklungstools für Flash/Flash Tool Kosten Link FlashDevelop 3 rc1 Flex, Actionscript IDE (Windows) free http://flashdevelop.org Adobe® Flex SDK3 Flex Software Development Kit (Compiler, Framework&#8230;) free Flex download Adobe® Flash® CS4 Design und Programmierung von Flash Animationen $699/831€ 30-day trial Adobe® FlexBuilder3® Professional Flex Programmierung und visuelles Design von MXML, basierend auf Eclipse Standard: [...]]]></description>
			<content:encoded><![CDATA[<h3>Überblick über Entwicklungstools für Flash/Flash</h3>
<table border="0">
<tbody>
<tr style="font-weight: bold; background-color: #4a4a4a;">
<td>Tool</td>
<td>Kosten</td>
<td>Link</td>
</tr>
<tr>
<td colspan="3"><strong><span id="head">FlashDevelop 3 rc1</span></strong></td>
</tr>
<tr>
<td id="l_line">Flex, Actionscript IDE (Windows)</td>
<td id="l_line">free</td>
<td id="l_line"><a href="http://flashdevelop.org" target="_blank">http://flashdevelop.org</a></td>
</tr>
<tr>
<td colspan="3"><strong><br class="spacer_" /><span id="head">Adobe® Flex SDK3</span></strong></td>
</tr>
<tr>
<td id="l_line">Flex Software Development Kit (Compiler, Framework&#8230;)</td>
<td id="l_line">free</td>
<td id="l_line"><a href="http://www.adobe.com/products/flex/flexdownloads/#sdk" target="_blank">Flex download</a></td>
</tr>
<tr>
<td colspan="3"><br class="spacer_" /> <strong><span id="head">Adobe® Flash® CS4</span></strong></td>
</tr>
<tr>
<td id="l_line">Design und Programmierung von Flash Animationen</td>
<td id="l_line">$699/831€</td>
<td id="l_line"><a href="http://www.adobe.com/go/tryflash" target="_blank">30-day trial</a></td>
</tr>
<tr>
<td colspan="3"><br class="spacer_" /> <strong><span id="head">Adobe® FlexBuilder3® Professional</span></strong></td>
</tr>
<tr>
<td id="l_line">Flex Programmierung und visuelles Design von MXML, basierend auf <a href="http://eclipse.org" target="_blank">Eclipse</a></td>
<td id="l_line">Standard: $249/213€<br />
 Professional: $699/593€</td>
<td id="l_line"><a href="http://www.adobe.com/go/flex_trial" target="_blank">30-day trial</a></td>
</tr>
<tr>
<td colspan="3"><br class="spacer_" /> <strong><span id="head">Ensemble Tofino</span></strong></td>
</tr>
<tr>
<td id="l_line">Flex plugin für Microsoft Visual Studio®</td>
<td id="l_line">free</td>
<td id="l_line"><a href="http://www.ensemble.com/products/tofino.html" target="_blank">http://www.ensemble.com</a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://arnisoft.com/37/what-where/feed/lang/de/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlexBuilder3 mit Aptana/Eclipse 3.4.1 &#8220;Ganymede&#8221;</title>
		<link>http://arnisoft.com/14/flexbuilder3-inside-aptanaeclipse-ganymede/</link>
		<comments>http://arnisoft.com/14/flexbuilder3-inside-aptanaeclipse-ganymede/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 14:01:16 +0000</pubDate>
		<dc:creator>devarni</dc:creator>
				<category><![CDATA[IDEs & Development Tools]]></category>
		<category><![CDATA[3.4.1]]></category>
		<category><![CDATA[Aptana]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Ganymede]]></category>

		<guid isPermaLink="false">http://arnisoft.com/?p=14</guid>
		<description><![CDATA[FlexBuilder3 basiert auf Eclipse 3.3.1 und funktioniert unglücklicherweise nicht ohne Probleme mit Eclipse 3.4.1 &#8220;Ganymede&#8221;. Aber Eclipse &#8220;Ganymede&#8221; besitzt ein Feature zum einfachen einbinden von Plugins als sogenannte &#8220;Dropins&#8221;, dazu existiert unter der Eclipse 3.4.1 Installation ein Ordner &#8220;dropin&#8221;&#8230; Eclipse schließen und den kompletten Flexbuilder Ordner (Standalone oder Plugin) in diesen dropin Ordner kopieren. Eclipse [...]]]></description>
			<content:encoded><![CDATA[<p>FlexBuilder3 basiert auf Eclipse 3.3.1 und funktioniert unglücklicherweise nicht ohne Probleme mit Eclipse 3.4.1 &#8220;Ganymede&#8221;.<br />
Aber Eclipse &#8220;Ganymede&#8221; besitzt ein Feature zum einfachen einbinden von Plugins als sogenannte &#8220;Dropins&#8221;, dazu existiert unter der Eclipse 3.4.1 Installation ein Ordner &#8220;dropin&#8221;&#8230;</p>
<p>Eclipse schließen und den kompletten Flexbuilder Ordner (Standalone oder Plugin) in diesen dropin Ordner kopieren. Eclipse starten und nun sollte die komplette Flexumgebung zur Verfügung stehen!<br />
Flexbuilder findet man beim Standardinstallationspfad unter <em>C :\Programme\Adobe</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://arnisoft.com/14/flexbuilder3-inside-aptanaeclipse-ganymede/feed/lang/de/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>FlexBuilder vs FlashDevelop</title>
		<link>http://arnisoft.com/5/flexbuilder-3-vs-flashdevelop/</link>
		<comments>http://arnisoft.com/5/flexbuilder-3-vs-flashdevelop/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 10:37:39 +0000</pubDate>
		<dc:creator>devarni</dc:creator>
				<category><![CDATA[IDEs & Development Tools]]></category>
		<category><![CDATA[FlashDevelop]]></category>
		<category><![CDATA[FlexBuilder]]></category>

		<guid isPermaLink="false">http://arnisoft.localhost/?p=5</guid>
		<description><![CDATA[
Für Debuggen, visuelles Design von MXML: FlexBuilder
Für überwiegend Programmierung von Actionscript unter Windows: FlashDevelop.
]]></description>
			<content:encoded><![CDATA[<p>Ein kurzer Vergleich von Flexbuilder3 mit FlashDevelop 3.
 </p>
<div class="post-text"><strong>FlexBuilder 3</strong></p>
<p><br class="spacer_" /></p>
<p><em>Dafür</em></p>
<ul>
<li>Einfaches debuggen und profilen</li>
<li>Automatisches hinzufügen von Importen und Organisierung von Importen</li>
<li>Visual Designer für MXML</li>
<li>Durch Eclipse: Unterstützung für andere Sprachen (z.B. durch Aptana, PDT&#8230;) und durch Eclipse Plugins stark erweiterbar. Damit gehen dann auch Features wie &#8220;Code-Schnipsel&#8221; (CFEclipse), automatische Codeerzeugung z.B. für &#8220;Getter/Setter&#8221; (Monkey Script) usw. </li>
<li>Class Wizard</li>
<li>Unterstützung für ASDoc Kommentare</li>
<li>Unterstützung für virtuelle Ordner/Dateien (Links zu externen Dateien/Ordnern sind ein Feature von Eclipse, funktioniert so auch unter Windows)</li>
<li>Refactoring (Umbenennung von Klassen, Funktionen, Eigenschaften mit automatischer Anpassung der Abhängigkeiten)</li>
</ul>
<p><em>Dagegen</em></p>
<ul>
<li>Kommerzielle Lizenz</li>
<li>Plugin funktioniert nicht mit allen Eclipse Versionen (z.B. nicht mit Eclipse Ganymede 3.4.1 oder 64bit Versionen) </li>
<li>Suchen, hinzufügen und konfigurieren der fehlenden Features durch Eclipse Plugins ist oft aufwendig</li>
<li>Code Assistent eher durchschnittlich und etwas fehlerhaft z.B. wenn richtige Importe fehlen (&#8220;java.lang.NullPointerException&#8221;)</li>
<li>Kein Code Formattierer oder automatische getter/setter (nur mit Eclipse plugins wie  Monkey Scripts, CFeclipse, Flexformatter <a href="http://sourceforge.net/projects/flexformatter/" target="_blank">&#8220;FlexPrettyPrintCommand&#8221;.</a>..)</li>
<li>Keine Anzeige der Paketinhalte von SWC Dateien </li>
</ul>
<p><strong>FlashDevelop</strong></p>
<p><em>Dafür</em></p>
<ul>
<li>Frei und OpenSource (entwickelt mit C#)</li>
<li>&#8220;Leichgewichtig&#8221;</li>
<li>Bester verfügbarer Code Assistent für Actionscript</li>
<li>Contextabhängige Code Vervollverständigung (getter/setter, Eventhandler&#8230;)</li>
<li>Code Snippets</li>
<li>Automatisches hinzufügen der Importe</li>
<li>Erweiterbar durch Plugins</li>
<li>Unterstützung für ASDoc Kommentare</li>
<li>Paket Ansicht (zeigt Klassen und Symbole in SWC Dateien)</li>
</ul>
<p><em>Dagegen</em></p>
<ul>
<li>Nur für Windows</li>
<li>Plugins funktionieren nicht immer in neueren Versionen und viele Plugin werden eher selten geupdatet</li>
<li>Debugging nur mit Plugin und noch nicht ganz ausgereift </li>
<li>Kein visueller MXML Designer</li>
<li>Kein Klassenassistent</li>
<li>Kein Code Formattierer</li>
<li>Keine Unterstützung von virtuellen Ordnern/Dateien (&#8220;Links&#8221;) im Projekt</li>
<li>Kein Refactoring</li>
</ul>
</div>
<p><span style="color: #339966;"><br />
 Meine Empfehlung<br />
 </span></p>
<p> Für Debuggen, visuelles Design von MXML: <strong>FlexBuilder</strong><br />
 Für überwiegend Programmierung von Actionscript unter Windows: <strong>FlashDevelop</strong>.
 </p>
]]></content:encoded>
			<wfw:commentRss>http://arnisoft.com/5/flexbuilder-3-vs-flashdevelop/feed/lang/de/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

