<?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 &#187; devarni</title>
	<atom:link href="http://arnisoft.com/author/admin/feed/" 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>en</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/en/</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/en/</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/en/</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/en/</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/en/</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 Guest: Windows XP Home, 1GB RAM, 8GB virtual disk Benchmark Software: SiSoft Sandra Light, HD Tune Short benchmark of this both VM 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 />
 Guest: Windows XP Home, 1GB RAM, 8GB virtual disk<br />
 Benchmark Software: SiSoft Sandra Light, HD Tune</p>
<p> Short benchmark of this both VM</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 shows better computing performance, which benefits for desktop applications and multmedia based operations. Interesting: the dual CPU mode in Vwmare has no advantage over the single CPU mode.<br />
 Certainly we can say: Virtualbox for desktop applications, Vmware for server but for the combined performance VMware ist the winner.</p>
]]></content:encoded>
			<wfw:commentRss>http://arnisoft.com/173/benchmark-virtualbox-vs-vmware/feed/lang/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash  symbols with 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[The difference Don&#8217;t forget: Flash != Flex. Flex uses elements from Flash but is built on own classes. If Flash and Flex should play together we need a interface. MovieClip is a display object in Flash and UIComponent is a display object in Flex. But we can wrap a MovieClip into a UIComponent, so the [...]]]></description>
			<content:encoded><![CDATA[</p>
<p><strong>The difference</strong></p>
<p>Don&#8217;t forget: Flash != Flex. Flex uses elements from Flash but is built on own classes. If Flash and Flex should play together we need a interface.<br />
<em>MovieClip</em> is a display object in Flash and <em>UIComponent</em> is a display object in Flex. But we can wrap a <em>MovieClip</em> into a <em>UIComponent</em>, so the Flex UIComponent becomes a container for our Flash MovieClip.<br />
Here both files, at first the MXML file:
</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>
<p>
And the Actionscript file with the class:
</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>
<p><strong>How it works</strong></p>
<p><em>applicationComplete</em> in the MXML file is the eventhandler called from the application. Here we provide our handler, which must be a static member function of a class so it can be called later.</p>
<p><em>initApp()</em> creates our class and passes a application object to the constructor.</p>
<p>Inside the constructor we create the <em>MovieClip</em> from the imported Flash symbol &#8220;BtnStop&#8221; (this symbol comes from  a swc lib, created with Flash). Then we create a Flex <em>UIComponent</em> container and add our MovieClip as a child. The <em>UIComponent</em> can now be added as child of the Flex application.</p>
]]></content:encoded>
			<wfw:commentRss>http://arnisoft.com/76/using-of-flash-symbols-in-flex/feed/lang/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Tools&#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[Overview of development tools for Flash/Flex Tool Price 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 and programming of Flash animations $699/831€ 30-day trial Adobe® FlexBuilder3® Professional Flex programming and visual design of MXML, based on Eclipse [...]]]></description>
			<content:encoded><![CDATA[</p>
<h3>Overview of development tools for Flash/Flex</h3>
<table border="0">
<tbody>
<tr style="font-weight: bold; background-color: #4a4a4a;">
<td>Tool</td>
<td>Price</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 and programming of Flash animations</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 programming and visual design of MXML, based on <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 for 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/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlexBuilder3 with 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 is based on Eclipse 3.3.1 and doesn&#8217;t work unfortunately with Eclipse 3.4.1 &#8220;Ganymede&#8221;. But Eclipse &#8220;Ganymede&#8221; has a feature for easy integration of plugins called &#8220;dropins&#8221;, therefore under Eclipse 3.4.1 exist a &#8220;dropin&#8221; folder&#8230; Close Eclipse and copy the complete Flexbuilder folder (standalone or plugin) inside this &#8220;dropin&#8221; folder. Restart Eclipse and now you [...]]]></description>
			<content:encoded><![CDATA[<p>FlexBuilder3 is based on Eclipse 3.3.1 and doesn&#8217;t work unfortunately with Eclipse 3.4.1 &#8220;Ganymede&#8221;.<br />
But Eclipse &#8220;Ganymede&#8221; has a feature for easy integration of plugins called &#8220;dropins&#8221;, therefore under Eclipse 3.4.1 exist a &#8220;dropin&#8221; folder&#8230;</p>
<p>Close Eclipse and copy the complete Flexbuilder folder (standalone or plugin) inside this &#8220;dropin&#8221; folder. Restart Eclipse and now you should have the complete Flexbuilder envoirenment available!<br />
Flexbuilder can be found with the default installation path at <em>C :\Program Files\Adobe</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://arnisoft.com/14/flexbuilder3-inside-aptanaeclipse-ganymede/feed/lang/en/</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[For debugging, visual design of MXML: FlexBuilder
For mostly coding of Actionscript under Windows: FlashDevelop.

]]></description>
			<content:encoded><![CDATA[<p>
 A short comparison of Flexbuilder3 with FlashDevelop 3</p>
<div class="post-text"><strong>FlexBuilder 3</strong></p>
<p><br class="spacer_" /></p>
<p><em>Pro</em></p>
<ul>
<li>Easy debugging and profiling</li>
<li>Automatic adding of imports and organizing of imports</li>
<li>Visual designer for MXML</li>
<li>Because of Eclipse: support for other languages (eg. with Aptana, PDT&#8230;) and extendible with Eclipse plugins. So features like &#8220;Code Snippets&#8221; (CFEclipse), automatic code generation for Getter/Setter (Monkey Script) are usable </li>
<li>Class Wizard</li>
<li>Support for ASDoc comments</li>
<li>Support for virtual folders/files (links to external files/folders handled intern by Eclipse, so also working on Windows)</li>
<li>Refactoring (renaming of classes, functions, properties with automatic adaptation of dependencies)</li>
</ul>
<p><em>Con</em></p>
<ul>
<li>Commercial license</li>
<li>Plugin doesn&#8217;t work with all versions of Eclipse (eg. is not working with Eclipse Ganymede 3.4.1 or 64bit versions)</li>
<li>Searching, adding and configuring the missing features with Eclipse plug-ins is often complex</li>
<li>Code assist average and sometimes buggy eg. if correct imports are missing (&#8220;java.lang.NullPointerException&#8221;)</li>
<li>No Code Formatter or automatic generation of getter/setter (only with Eclipse plugins like  Monkey Scripts, CFeclipse, Flexformatter <a href="http://sourceforge.net/projects/flexformatter/" target="_blank">&#8220;FlexPrettyPrintCommand&#8221;.</a>..)</li>
<li> No package explorer for SWC files</li>
</ul>
<p><strong>FlashDevelop</strong></p>
<p><em>Pros</em></p>
<ul>
<li>Free and OpenSource (developed with C#)</li>
<li>Lightweight</li>
<li>Best available Code Assist for Actionscript</li>
<li>Contextual code generation (getter/setter, variables, event handlers)</li>
<li>Code Snippets</li>
<li>Automatic adding of imports</li>
<li>Extendible with plug-ins</li>
<li>Support for ASDoc comments</li>
<li>Package explorer (shows classes and symbols from SWC files)</li>
</ul>
<p><em>Cons</em></p>
<ul>
<li>Only for Windows</li>
<li>Plugins often not working in newer versions and many plug-ins are only rarely updated</li>
<li> Debugging only with a plugin and more  at an early stage</li>
<li>No visual designer for MXML</li>
<li>No class wizard</li>
<li>No code formatter</li>
<li>No support of virtual folders/files (&#8220;links&#8221;) insides the project</li>
<li>No refactoring</li>
</ul>
</div>
<p><span style="color: #339966;"><br />
 My recommendation:<br />
 </span><br />
 For debugging, visual design of MXML: <strong>FlexBuilder</strong><br />
 For mostly coding of Actionscript under Windows: <strong>FlashDevelop</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://arnisoft.com/5/flexbuilder-3-vs-flashdevelop/feed/lang/en/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

