<?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"
	>

<channel>
	<title>Helion-Prime Solutions : Blogs</title>
	<atom:link href="http://blogs.helion-prime.com/feed" rel="self" type="application/rss+xml" />
	<link>http://blogs.helion-prime.com</link>
	<description>design, simplicity, and experience with a technology focus</description>
	<pubDate>Thu, 03 Jul 2008 08:48:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Battle N2: Typo3, Joomla!, and Drupal CMSs performance testing</title>
		<link>http://blogs.helion-prime.com/alexshapovalov/2008/07/02/battle-n2-typo3-joomla-and-drupal-cmss-performance-testing.html</link>
		<comments>http://blogs.helion-prime.com/alexshapovalov/2008/07/02/battle-n2-typo3-joomla-and-drupal-cmss-performance-testing.html#comments</comments>
		<pubDate>Wed, 02 Jul 2008 08:34:55 +0000</pubDate>
		<dc:creator>alex.shapovalov</dc:creator>
		
		<category><![CDATA[drupal]]></category>

		<category><![CDATA[joomla]]></category>

		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://blogs.helion-prime.com/?p=39</guid>
		<description><![CDATA[“More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason - including blind stupidity.”
William A. Wulf
preamble
Since my last article about performance comparison of popular CMSs: Typo3, Joomla!, and Drupal [typo3-joomla-and-drupal-cmss-performance-testing.html] I got enormous amount of messages, emails and notes.
Most discussed question is:
*What the hell you [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>“More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason - including blind stupidity.”<br />
William A. Wulf</p></blockquote>
<h2>preamble</h2>
<p>Since my last article about performance comparison of popular CMSs: Typo3, Joomla!, and Drupal [<a href="http://blogs.helion-prime.com/alexshapovalov/2008/05/19/typo3-joomla-and-drupal-cmss-performance-testing.html">typo3-joomla-and-drupal-cmss-performance-testing.html</a>] I got enormous amount of messages, emails and notes.</p>
<p>Most discussed question is:<br />
<span style="color: #3366ff;">*</span>What the hell you didn&#8217;t turn cache on, and forgot about optimization?</p>
<p><strong>And comments like:</strong><br />
In case of optimization zzz will take first place.<br />
No one runs systems like that in real life. Every real web server is optimized for performance ..</p>
<p><strong>I answered several times with:</strong><br />
I make tests to test effectiveness of pure systems rather then caching sub-system or optimization methods.<br />
Developers should think about effectiveness of their components and don’t pass care about performance entirely to caching or other technics.<br />
Surely cache is good as well as better CPU, bandwidth, and cluster when solution is already got all benefits of good software design.</p>
<p><em>But if you want OK.<br />
I will turn ON everything I know on all CMSs, and will make all environment optimizations. I hope you will be glad.</em></p>
<p>Surely if you are hacker that want to tune all the daylights you will beat any system.<br />
Let&#8217;s think that this environment presents common set of optimizations on general production system.</p>
<h2>Prepared configuration</h2>
<p>architecture: x86<br />
CPU: 3.0Ghz<br />
RAM: 512Mb<br />
OS: Debian GNU/Linux lenny/sid (testing)<br />
kernel: 2.6.22, optimized for current computer configuration</p>
<p><strong>software versions:</strong><br />
apache: 2.2.8<br />
php: 5.2.5-3<br />
mysql: 5.0.51a-3</p>
<p>joomla!: 1.5.3<br />
drupal: 6.2<br />
typo3: 4.2.1</p>
<p><strong>apache:</strong><br />
web-server API: apache2.0 handler<br />
processing model: mpm-prefork [http://httpd.apache.org/docs/2.0/mod/prefork.html]<br />
MaxClient  adapted for load<br />
excessive login disabled<br />
HostNameLookups dissabled</p>
<p><strong>PHP:</strong><br />
XCache PHP opcode cacher installed [http://xcache.lighttpd.net/]</p>
<p>xcache.cacher = On<br />
xcache.optimizer = On<br />
xcache.coverager = Off</p>
<p>xcache.size=64M # cache size<br />
xcache.count=2 # cpu count</p>
<p>xcache.var_size = 64M # variable data cache size<br />
xcache.var_count = 2 # cpu count</p>
<p><strong>MySQL:</strong><br />
mysqli database adapter used  where appropriate<br />
bin log disabled<br />
query_cache_limit = 2M # default was 1M<br />
query_cache_size = 64M # default was 16M<br />
table_cache = 256 # default was 64<br />
key_buffer_size = 64M # default was 16M</p>
<p>CMSs returned specially prepared page contains:<br />
menu, login form, 2 articles with overall size 40Kb<br />
Testing series contains results for 10, and 20 simultaneous users.</p>
<h2>comparison results</h2>
<p><strong>note: </strong><br />
results in the tables are presented in milliseconds per page request<br />
and surely smaller result is better.</p>
<p><strong>10 users</strong></p>
<table style="border-color: lightgrey; border-style: dotted; width:450px;" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td></td>
<td><strong>joomla</strong></td>
<td><strong>drupal</strong></td>
<td><strong>typo3</strong></td>
</tr>
<tr>
<td><strong>average</strong></td>
<td>101</td>
<td>19</td>
<td>71</td>
</tr>
<tr>
<td><strong>median</strong></td>
<td>100</td>
<td>18</td>
<td>71</td>
</tr>
<tr>
<td><strong>90% results line</strong></td>
<td>145</td>
<td>30</td>
<td>103</td>
</tr>
<tr>
<td><strong>min</strong></td>
<td>19</td>
<td>8</td>
<td>16</td>
</tr>
<tr>
<td><strong>max</strong></td>
<td>289</td>
<td>60</td>
<td>570</td>
</tr>
</tbody>
</table>
<p><img class="alignnone size-full wp-image-42" title="results_10u1" src="http://blogs.helion-prime.com/wp-content/uploads/2008/07/results_10u1.jpg" alt="" width="370" height="276" /></p>
<p><strong>20 users</strong></p>
<table style="border-color: lightgrey; border-style: dotted; width:450px;" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td></td>
<td><strong>joomla</strong></td>
<td><strong>drupal</strong></td>
<td><strong>typo3</strong></td>
</tr>
<tr>
<td><strong>average</strong></td>
<td>237</td>
<td>47</td>
<td>187</td>
</tr>
<tr>
<td><strong>median</strong></td>
<td>196</td>
<td>41</td>
<td>146</td>
</tr>
<tr>
<td><strong>90% results line</strong></td>
<td>357</td>
<td>72</td>
<td>318</td>
</tr>
<tr>
<td><strong>min</strong></td>
<td>18</td>
<td>8</td>
<td>16</td>
</tr>
<tr>
<td><strong>max</strong></td>
<td>7323</td>
<td>356</td>
<td>4378</td>
</tr>
</tbody>
</table>
<p><img class="alignnone size-full wp-image-43" title="results_20u1" src="http://blogs.helion-prime.com/wp-content/uploads/2008/07/results_20u1.jpg" alt="" width="371" height="277" /></p>
<p><strong>fast conclusion:</strong><br />
Drupal uses caching mechanism more effectively that explains such lag of others.<br />
Numbers, and graphs are very loud, and so I think you don&#8217;t need any additional descriptions.</p>
<p>You can always compare this result with result without optimization techniques using my previous article [<a href="http://blogs.helion-prime.com/alexshapovalov/2008/05/19/typo3-joomla-and-drupal-cmss-performance-testing.html">typo3-joomla-and-drupal-cmss-performance-testing.html</a>].</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.helion-prime.com/alexshapovalov/2008/07/02/battle-n2-typo3-joomla-and-drupal-cmss-performance-testing.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Performance testing of new JoomFish 2.0b2 for Joomla!</title>
		<link>http://blogs.helion-prime.com/alexshapovalov/2008/06/30/performance-testing-of-new-joomfish-20b2-for-joomla.html</link>
		<comments>http://blogs.helion-prime.com/alexshapovalov/2008/06/30/performance-testing-of-new-joomfish-20b2-for-joomla.html#comments</comments>
		<pubDate>Mon, 30 Jun 2008 14:39:53 +0000</pubDate>
		<dc:creator>alex.shapovalov</dc:creator>
		
		<category><![CDATA[joomla]]></category>

		<category><![CDATA[joomfish]]></category>

		<guid isPermaLink="false">http://blogs.helion-prime.com/?p=32</guid>
		<description><![CDATA[preamble
JoomFish heavily influences Joomla! performance and with new release of JoomFish we have a question: which performance changes we have with new version of JoomFish 2.0b2.
New revolution today, no just another good enhancement
Testing conditions exactly like in previous test:
I have created virtual dedicated server with following configuration within our server
to have a picture of average [...]]]></description>
			<content:encoded><![CDATA[<h2>preamble</h2>
<p>JoomFish heavily influences Joomla! performance and with new release of JoomFish we have a question: which performance changes we have with new version of JoomFish 2.0b2.</p>
<h2>New revolution today, no just another good enhancement</h2>
<p>Testing conditions exactly like in previous test:<br />
I have created virtual dedicated server with following configuration within our server<br />
to have a picture of average hosting providers.</p>
<p><strong>configuration:<br />
</strong> architecture: x86<br />
CPU: 3.0Ghz<br />
RAM: 512Mb<br />
OS: Debian GNU/Linux lenny/sid (testing)<br />
kernel: 2.6.22-3-686<br />
CMSs returned specially prepared page contains:<br />
menu, login form, 2 articles with overall size 40Kb<br />
Testing series contains results for 1, 10, and 20 simultaneous users.<br />
Caching functionally turned off.</p>
<p><strong>apache configuration:<br />
</strong> apache web-server API: apache2.0 handler<br />
processing model: mpm-prefork [<a href="http://httpd.apache.org/docs/2.0/mod/prefork.html">http://httpd.apache.org/docs/2.0/mod/prefork.html</a>]</p>
<p><strong>software versions:<br />
</strong> apache: 2.2.8<br />
php: 5.2.5-3<br />
mysql: 5.0.51a-3<br />
joomla!: 1.5.3<br />
joomFish: 2.0b2</p>
<p>Look on these tables and pictures.<br />
I think you don&#8217;t need any conclusions because pictures and table are quite plain.</p>
<p><em>note: </em><br />
results in the tables are presented in milliseconds per page request<br />
and surely smaller result is better</p>
<p><strong>1 user</strong></p>
<table style="border-color: lightgrey; border-style: dotted;  width:700px;" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td></td>
<td><strong>joomla</strong></td>
<td><strong>joomla + joomfish</strong></td>
<td><strong>slowdown beta2, %</strong></td>
<td><strong>slowdown beta1, %</strong></td>
</tr>
<tr>
<td><strong>average</strong></td>
<td>177</td>
<td>230</td>
<td>23.04</td>
<td>32.18</td>
</tr>
<tr>
<td><strong>median</strong></td>
<td>177</td>
<td>223</td>
<td></td>
</tr>
<tr>
<td><strong>90% results line</strong></td>
<td>183</td>
<td>234</td>
<td></td>
</tr>
</tbody>
</table>
<p><img class="alignnone size-full wp-image-36" title="joomfish2b2_1u" src="http://blogs.helion-prime.com/wp-content/uploads/2008/07/results_1u.jpg" alt="" width="401" height="324" /></p>
<p><strong>10 users</strong></p>
<table style="border-color: lightgrey; border-style: dotted; width:700px;"  cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td></td>
<td><strong>joomla</strong></td>
<td><strong>joomla+joomfish</strong></td>
<td><strong>slowdown beta2, %</strong></td>
<td><strong>slowdown beta1, %</strong></td>
</tr>
<tr>
<td><strong>average</strong></td>
<td>1497</td>
<td>1888</td>
<td>20.71</td>
<td>28.48</td>
</tr>
<tr>
<td><strong>median</strong></td>
<td>1397</td>
<td>1772</td>
<td></td>
</tr>
<tr>
<td><strong>90% results line</strong></td>
<td>2019</td>
<td>2571</td>
<td></td>
</tr>
</tbody>
</table>
<p><img class="alignnone size-full wp-image-37" title="joomfish2b2_10u" src="http://blogs.helion-prime.com/wp-content/uploads/2008/07/results_10u.jpg" alt="" width="412" height="324" /></p>
<p><strong>20 users</strong></p>
<table style="border-color: lightgrey; border-style: dotted; width:700px;"  cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td></td>
<td><strong>joomla</strong></td>
<td><strong>joomla+joomfish</strong></td>
<td><strong>slowdown beta2, %</strong></td>
<td><strong>slowdown beta1, %</strong></td>
</tr>
<tr>
<td><strong>average</strong></td>
<td>2748</td>
<td>3588</td>
<td>23.41</td>
<td>33.07</td>
</tr>
<tr>
<td><strong>median</strong></td>
<td>2321</td>
<td>3144</td>
<td></td>
</tr>
<tr>
<td><strong>90% results line</strong></td>
<td>3506</td>
<td>4520</td>
<td></td>
</tr>
</tbody>
</table>
<p><img class="alignnone size-full wp-image-38" title="joomfish2b2_20u" src="http://blogs.helion-prime.com/wp-content/uploads/2008/07/results_20u.jpg" alt="" width="401" height="324" /></p>
<p><br/><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.helion-prime.com/alexshapovalov/2008/06/30/performance-testing-of-new-joomfish-20b2-for-joomla.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>On-the-fly compilation in Java6</title>
		<link>http://blogs.helion-prime.com/henadiyatroshko/2008/06/13/on-the-fly-compilation-in-java6.html</link>
		<comments>http://blogs.helion-prime.com/henadiyatroshko/2008/06/13/on-the-fly-compilation-in-java6.html#comments</comments>
		<pubDate>Fri, 13 Jun 2008 09:03:05 +0000</pubDate>
		<dc:creator>henadiy.atroshko</dc:creator>
		
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blogs.helion-prime.com/?p=30</guid>
		<description><![CDATA[One of interesting novelty of Java6 is a possibility to access compiler via special API.
Let&#8217;s look on this feature a bit closer.
In order to have an access to compilation subsystem we should use classes located at javax.tools package [http://java.sun.com/javase/6/docs/api/javax/tools/package-summary.html].
In the future in this package possibly appear classes to work with different external utilities,
but at this [...]]]></description>
			<content:encoded><![CDATA[<p>One of interesting novelty of Java6 is a possibility to access compiler via special API.<br />
Let&#8217;s look on this feature a bit closer.</p>
<p>In order to have an access to compilation subsystem we should use classes located at javax.tools package [<a href="http://java.sun.com/javase/6/docs/api/javax/tools/package-summary.html">http://java.sun.com/javase/6/docs/api/javax/tools/package-summary.html</a>].<br />
In the future in this package possibly appear classes to work with different external utilities,<br />
but at this moment we have only access to the compiler.</p>
<p>As simple example let&#8217;s look on request to compile:</p>
<pre>	JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

	Iterable&lt;SimpleJavaFileObject&gt; srcList =  Arrays.asList(new SimpleJavaFileObject[]{
		new SimpleJavaFileObject(URI.create(&#8221;string:///myclass.java&#8221;), Kind.SOURCE) {

			@Override
			public CharSequence getCharContent(boolean ignoreEncodingErrors) {
				return &#8220;class myclass {}&#8221;;
			}
		}
	});
       JavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
       compiler.getTask(null, fileManager, null, null, null, srcList).call();</pre>
<p><strong>Let&#8217;s try to understand how it&#8217;s work:</strong></p>
<p>The compiler access input data not directly but via objects inherited form JavaFileObject.<br />
Therefore depending on needs of developer information for compilation can be received from any place:<br />
network, file, memory; for that we need to implement successor of JavaFileObject.<br />
It is better to do it by inheriting class-gag  SimpleJavaFileObject</p>
<p>In our example implementation of SimpleJavaFileObject  returns source of class as constant string.</p>
<p>It is slightly harder with output data. There is another abstraction layer called JavaFileManager that is<br />
object factory per se.</p>
<p>Standard file manager that we receive in our example let us work with files on the disk. If you need to place output data<br />
on the network on in the memory you need to override  JavaFileManager. It is better to do it inheriting<br />
ForwardingJavaFileManager, this class retarget request to provided during creation file manager.<br />
At the same time you can handle only those request that you need.</p>
<p>Last string of example creates compilation command and execute it at once. As a result of execution we have file<br />
in the execution directory of example with name  myclass.class that contains bytecode of appropriate class.</p>
<p>It is noteworthy that classloaders of system know nothing about existence of given class and so call<br />
Class.forName(“myclass”) throws ClassNotFoundException.<br />
Let&#8217;s complete our example to get class bytecode as byte array. For that we need to implement our own file manager:</p>
<pre>public class JavaMemFileManager extends ForwardingJavaFileManager {

	class ClassMemFileObject extends SimpleJavaFileObject {
		ByteArrayOutputStream os = new ByteArrayOutputStream();

		ClassMemFileObject(String className) {
			super(URI.create("mem:///" + className + Kind.CLASS.extension), Kind.CLASS);
		}
		byte[] getBytes() {
			return os.toByteArray();
		}

		@Override
		public OutputStream openOutputStream() throws IOException {
			return os;
		}
	}

	private HashMap&lt;String, ClassMemFileObject&gt; classes =
			new HashMap&lt;String, ClassMemFileObject&gt;();

	public JavaMemFileManager() {
		super(ToolProvider.getSystemJavaCompiler().getStandardFileManager(null, null, null));
	}

	@Override
	public JavaFileObject getJavaFileForOutput(Location location,
			String className, Kind kind, FileObject sibling) throws IOException {
		if (StandardLocation.CLASS_OUTPUT == location &amp;&amp; JavaFileObject.Kind.CLASS == kind) {
			ClassMemFileObject clazz = new ClassMemFileObject(className);
			classes.put(className, clazz);
			return clazz;
		} else {
			return super.getJavaFileForOutput(location, className, kind, sibling);
		}
	}

	public byte[] getClassBytes(String className) {
		if (classes.containsKey(className)) {
			return classes.get(className).getBytes();
		}
		return null;
	}
}</pre>
<p>As you see our file manager override method  getJavaFileForOutput that complier calls to receive output file object.<br />
Here we check destination, for new classes it should be StandardLocation.CLASS_OUTPUT and type.<br />
If it correspond to newly compiled class then we create new file object: we save it and pass it to the compiler.<br />
Then we can receive access to the bytecode with method getClassBytes(className) passing the name of the class.</p>
<p>Let us change previous example to use new functionality:</p>
<pre>	....
	JavaFileManager fileManager = new JavaMemFileManager();
	compiler.getTask(null, fileManager, null, null, null, srcList).call();

	byte[] myClassBytes = ((JavaMemFileManager)fileManager).getClassBytes(“myclass”);
	&#8230;.</pre>
<p>And yet one feature of example execution in our case will be absence of file on the disk.</p>
<p>Finally I made a library that makes easier access to Java6 Compiler API.<br />
See details on: [ <a href="http://opensource.helion-prime.com/jruntime/">http://opensource.helion-prime.com/jruntime/</a> ]</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.helion-prime.com/henadiyatroshko/2008/06/13/on-the-fly-compilation-in-java6.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>New web-experience with Mozilla Prism</title>
		<link>http://blogs.helion-prime.com/vasiliykiryanov/2008/06/03/new-web-experience-with-mozilla-prism.html</link>
		<comments>http://blogs.helion-prime.com/vasiliykiryanov/2008/06/03/new-web-experience-with-mozilla-prism.html#comments</comments>
		<pubDate>Tue, 03 Jun 2008 12:28:59 +0000</pubDate>
		<dc:creator>vasiliy.kiryanov</dc:creator>
		
		<category><![CDATA[internet]]></category>

		<category><![CDATA[browser]]></category>

		<category><![CDATA[firefox]]></category>

		<category><![CDATA[prism]]></category>

		<guid isPermaLink="false">http://blogs.helion-prime.com/?p=26</guid>
		<description><![CDATA[preamble

Our world is currently in transition from traditional desktop applications to web-oriented where most of time we want to do everything in the Web with help of our browsers.
Sometimes nevertheless we want to use some web-applications like: Gmail, Google docs, FaceBook or on-line dictionary as desktop application. Is it possible ? Try the Prism.
prism world
With [...]]]></description>
			<content:encoded><![CDATA[<h2>preamble</h2>
<p><img style="float: right;" title="prismlogo400" src="http://blogs.helion-prime.com/wp-content/uploads/2008/06/prismlogo400.png" alt="" width="199" height="117" /></p>
<p>Our world is currently in transition from traditional desktop applications to web-oriented where most of time we want to do everything in the Web with help of our browsers.<br />
Sometimes nevertheless we want to use some web-applications like: Gmail, Google docs, FaceBook or on-line dictionary as desktop application. Is it possible ? Try the Prism.</p>
<h2>prism world</h2>
<p>With Prism you can run web-oriented applications directly on desktop in their own window where they have access to all windows features and you still can access these same applications from your web browser.<br />
Prism is built on Firefox so it supports all rich internet technologies and runs on Windows, Mac OS X, and Linux.<br />
Also Prism developers thinking how to integrate better the Prism with Firefox,<br />
enabling one-click “make this a desktop app” functionality that preserves a user preferences.</p>
<p>For more information about Prism go to the project page: [<a href="http://developer.mozilla.org/en/docs/Prism">http://developer.mozilla.org/en/docs/Prism</a>]<br />
When invoked it is as pretty as following picture:</p>
<p><img class="alignnone size-full wp-image-27" title="googlecalendar550" src="http://blogs.helion-prime.com/wp-content/uploads/2008/06/googlecalendar550.png" alt="google calendar in Prism" /></p>
<h2>getting Started with Prism</h2>
<p>download and install appopriate version for your platform:</p>
<p><a href="https://addons.mozilla.org/en-US/firefox/addon/6665">Prism for Firefox v0.2</a> for Firefox 3.0b3pre or greater, Windows/Mac/Linux.</p>
<p>The standalone version of Prism v0.9 is also available:<br />
for Windows (<a href="http://people.mozilla.com/%7Emfinkle/prism/prism-0.9.en-US.win32.exe">installer</a>, <a href="http://people.mozilla.com/%7Emfinkle/prism/prism-0.9.en-US.win32.zip">archive</a>), <a href="http://people.mozilla.com/%7Emfinkle/prism/prism-0.9.en-US.mac.dmg">Mac</a> and <a href="http://people.mozilla.com/%7Emfinkle/prism/prism-0.9.en-US.linux-i686.tar.bz2">Linux</a>.</p>
<h2>Mozilla foundation wants for you</h2>
<p>Prism is open source project and if you want to help Mozilla with Prism development go to:<br />
[<a href="http://wiki.mozilla.org/Prism">http://wiki.mozilla.org/Prism</a>]<br />
forum for discussions: [<a href="https://labs.mozilla.com/forum/index.php/board,16.0.html">https://labs.mozilla.com/forum/index.php/board,16.0.html</a>]<br />
Bugzilla for bug reporting: [<a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Mozilla+Labs&amp;component=Prism">https://bugzilla.mozilla.org/enter_bug.cgi?product=Mozilla+Labs&amp;component=Prism</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.helion-prime.com/vasiliykiryanov/2008/06/03/new-web-experience-with-mozilla-prism.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Simplify of web-development with Firefox plug-ins</title>
		<link>http://blogs.helion-prime.com/alexshapovalov/2008/06/02/simplify-of-web-development-with-firefox-plug-ins.html</link>
		<comments>http://blogs.helion-prime.com/alexshapovalov/2008/06/02/simplify-of-web-development-with-firefox-plug-ins.html#comments</comments>
		<pubDate>Mon, 02 Jun 2008 14:36:40 +0000</pubDate>
		<dc:creator>alex.shapovalov</dc:creator>
		
		<category><![CDATA[general programming]]></category>

		<category><![CDATA[web-development]]></category>

		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://blogs.helion-prime.com/?p=21</guid>
		<description><![CDATA[preamble
There is set of plug-ins that really simplify development process and glance will help you select something for your daily work.
golden list
name: firebug
functions: edit, debug, and monitor CSS, HTML, and JavaScript live
hints: page loading analysis, live working with CSS styles, JavaScript debugger
add-on page: [https://addons.mozilla.org/en-US/firefox/addon/1843]
name: user agent switcher
functions: switch the user agent of the browser
hints: cool [...]]]></description>
			<content:encoded><![CDATA[<h2>preamble</h2>
<p>There is set of plug-ins that really simplify development process and glance will help you select something for your daily work.</p>
<h2>golden list</h2>
<p><strong>name:</strong> firebug<br />
<strong>functions:</strong> edit, debug, and monitor CSS, HTML, and JavaScript live<br />
<strong>hints:</strong> page loading analysis, live working with CSS styles, JavaScript debugger<br />
<strong>add-on page:</strong> [<a href="https://addons.mozilla.org/en-US/firefox/addon/1843">https://addons.mozilla.org/en-US/firefox/addon/1843</a>]</p>
<p><strong>name:</strong> user agent switcher<br />
<strong>functions:</strong> switch the user agent of the browser<br />
<strong>hints:</strong> cool but IE, and Firefox still interpret code differently and anyway for interpretation tests you need &#8216;ies4linux&#8217; [<a href="http://www.tatanka.com.br/ies4linux/page/Main_Page">http://www.tatanka.com.br/ies4linux/page/Main_Page</a>]<br />
<strong>add-on page:</strong> [<a href="https://addons.mozilla.org/en-US/firefox/addon/59">https://addons.mozilla.org/en-US/firefox/addon/59</a>]</p>
<p><strong>name:</strong> firesizer<br />
<strong>functions:</strong> resize of firefox the window to specific dimensions<br />
<strong>hints:</strong> it helps to test site in required resolutions<br />
<strong>add-on page:</strong> [<a href="https://addons.mozilla.org/en-US/firefox/addon/5792">https://addons.mozilla.org/en-US/firefox/addon/5792</a>]</p>
<p><strong>name:</strong> SQLite manager<br />
<strong>functions:</strong> manage SQLite databases<br />
<strong>hints:</strong> I think you know why it is better to use SQLite DB on workplaces<br />
<strong>add-on page:</strong> [<a href="https://addons.mozilla.org/en-US/firefox/addon/5817">https://addons.mozilla.org/en-US/firefox/addon/5817</a>]</p>
<p><strong>name:</strong> add N edit cookies<br />
<strong>functions:</strong> allows you add and edit session and saved cookies in live<br />
<strong>add-on page:</strong> [<a href="https://addons.mozilla.org/en-US/firefox/addon/573">https://addons.mozilla.org/en-US/firefox/addon/573</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.helion-prime.com/alexshapovalov/2008/06/02/simplify-of-web-development-with-firefox-plug-ins.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Gem of the day: haml - abstraction markup language</title>
		<link>http://blogs.helion-prime.com/vasiliykiryanov/2008/05/30/gem-of-the-day-haml-abstraction-markup-language.html</link>
		<comments>http://blogs.helion-prime.com/vasiliykiryanov/2008/05/30/gem-of-the-day-haml-abstraction-markup-language.html#comments</comments>
		<pubDate>Fri, 30 May 2008 08:53:18 +0000</pubDate>
		<dc:creator>vasiliy.kiryanov</dc:creator>
		
		<category><![CDATA[ruby]]></category>

		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://blogs.helion-prime.com/?p=20</guid>
		<description><![CDATA[preamble
If you use RoR [http://en.wikipedia.org/wiki/Ruby_on_Rails] then you already know that
ERuby [http://en.wikipedia.org/wiki/ERuby] is pretty enough and you don&#8217;t ever think you need something else.
Haml {markup haiku}
Haml is an alternative way to code your &#8220;views&#8221;. It can be much easier, look on these examples:
XHTML:
&#60;strong class=&#8221;code&#8221; id=&#8221;message&#8221;&#62;Hello, World!&#60;/strong&#62;
Haml:
%strong{:class =&#62; &#8220;code&#8221;, :id =&#62; &#8220;message&#8221;} Hello, World!
XHTML:
&#60;div id=&#8217;content&#8217;&#62;
&#60;div class=&#8217;left column&#8217;&#62;
&#60;h2&#62;Welcome [...]]]></description>
			<content:encoded><![CDATA[<h2>preamble</h2>
<p>If you use RoR [<a href="http://en.wikipedia.org/wiki/Ruby_on_Rails">http://en.wikipedia.org/wiki/Ruby_on_Rails</a>] then you already know that<br />
ERuby [<a href="http://en.wikipedia.org/wiki/ERuby">http://en.wikipedia.org/wiki/ERuby</a>] is pretty enough and you don&#8217;t ever think you need something else.</p>
<h2>Haml {markup haiku}</h2>
<p>Haml is an alternative way to code your &#8220;views&#8221;. It can be much easier, look on these examples:</p>
<p><strong>XHTML:</strong><br />
&lt;strong class=&#8221;code&#8221; id=&#8221;message&#8221;&gt;Hello, World!&lt;/strong&gt;</p>
<p><strong>Haml:</strong><br />
%strong{:class =&gt; &#8220;code&#8221;, :id =&gt; &#8220;message&#8221;} Hello, World!</p>
<p><strong>XHTML:</strong><br />
&lt;div id=&#8217;content&#8217;&gt;<br />
&lt;div class=&#8217;left column&#8217;&gt;<br />
&lt;h2&gt;Welcome to our site!&gt;/h2&gt;<br />
&lt;p&gt;<br />
&lt;%= print_information %&gt;<br />
&lt;/p&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&#8221;right column&#8221;&gt;<br />
&lt;%= render :partial =&gt; &#8220;sidebar&#8221; %&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;</p>
<p><strong>Haml:</strong><br />
#content<br />
.left.column<br />
%h2 Welcome to our site!<br />
%p= print_information<br />
.right.column= render :partial =&gt; &#8220;sidebar&#8221;</p>
<p>like it .. so give you a try with Haml..</p>
<p>haml site: [<a href="http://haml.hamptoncatlin.com/">http://haml.hamptoncatlin.com/</a>]<br />
haml docs: [<a href="http://haml.hamptoncatlin.com/docs/">http://haml.hamptoncatlin.com/docs/</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.helion-prime.com/vasiliykiryanov/2008/05/30/gem-of-the-day-haml-abstraction-markup-language.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>World largest database works on modified PostgreSQL</title>
		<link>http://blogs.helion-prime.com/alexshapovalov/2008/05/29/world-largest-database-works-on-modified-postgresql.html</link>
		<comments>http://blogs.helion-prime.com/alexshapovalov/2008/05/29/world-largest-database-works-on-modified-postgresql.html#comments</comments>
		<pubDate>Thu, 29 May 2008 09:35:26 +0000</pubDate>
		<dc:creator>alex.shapovalov</dc:creator>
		
		<category><![CDATA[rdbms]]></category>

		<category><![CDATA[db]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://blogs.helion-prime.com/?p=19</guid>
		<description><![CDATA[According to InformationWeek [http://www.informationweek.com/news/software/database/showArticle.jhtml?articleID=207801436]
Yahoo! corporation [http://en.wikipedia.org/wiki/Yahoo!] has world busiest and largest database.
System has build for analytical purposes, and contains history of web-users behavior.
It has size: 2-petabyte, and loading about 24 billion events a day.
Engineers of Yahoo expect size increasing up to 5-petabyte by next year.
In order to compare sizes: 
USA Revenue Service DB: about 150 [...]]]></description>
			<content:encoded><![CDATA[<p>According to InformationWeek [http://www.informationweek.com/news/software/database/showArticle.jhtml?articleID=207801436]</p>
<p>Yahoo! corporation [<a href="http://en.wikipedia.org/wiki/Yahoo!">http://en.wikipedia.org/wiki/Yahoo!</a>] has world busiest and largest database.<br />
System has build for analytical purposes, and contains history of web-users behavior.<br />
It has size: 2-petabyte, and loading about 24 billion events a day.<br />
Engineers of Yahoo expect size increasing up to 5-petabyte by next year.</p>
<p><strong>In order to compare sizes: </strong><br />
USA Revenue Service DB: about 150 terabyte<br />
Ebay: overall size: 6-petabyte, size of biggest system: about 1.4-petabyte</p>
<p>We should understand that we are talking about DBs. Because there are data repository with much greater sizes but data in such repositories practically unaccessible for analyzes and processing.</p>
<p>Surely it is nice to know that it works on modified PostgreSQL [<a href="http://en.wikipedia.org/wiki/Postgresql">http://en.wikipedia.org/wiki/Postgresql</a>].<br />
PostgreSQL continues active development and prove status as best open-source RDBMS.</p>
<p>As we remember in 2007 year Sun Microsystems [<a href="http://en.wikipedia.org/wiki/Sun_microsystems">http://en.wikipedia.org/wiki/Sun_microsystems</a>] published<br />
production test [<a href="http://www.spec.org/jAppServer2004/results/res2007q3/">http://www.spec.org/jAppServer2004/results/res2007q3/</a>] which showed that tuned PostgreSQL performance<br />
is very close to Oracle DB [<a href="http://en.wikipedia.org/wiki/Oracle_db">http://en.wikipedia.org/wiki/Oracle_db</a>]: difference only about 15%. Don&#8217;t forget about price of Oracle DB.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.helion-prime.com/alexshapovalov/2008/05/29/world-largest-database-works-on-modified-postgresql.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
