<?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>InfoTales &#187; Web Application Performance</title>
	<atom:link href="http://www.infotales.com/topic/web-performance-optimization/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.infotales.com</link>
	<description>Web application performance, Web Server Performance, Data Mining, SEO, MySQL, Magento Performance and much more</description>
	<lastBuildDate>Sat, 21 Jan 2012 14:51:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>Web Application Performance Tips</title>
		<link>http://www.infotales.com/web-application-performance-tips/</link>
		<comments>http://www.infotales.com/web-application-performance-tips/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 18:55:48 +0000</pubDate>
		<dc:creator>boogieman</dc:creator>
				<category><![CDATA[Web Application Performance]]></category>

		<guid isPermaLink="false">http://www.infotales.com/?p=1434</guid>
		<description><![CDATA[Web Application performance was the big question for the programmers and system administrators now technology is changing very fast. So now size of data increases day by day like facebook and google have billion of traffic with petabytes of data they are serving in milli seconds. So it is difficult to do? No there are [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Web Application performance was the big question for the programmers and system administrators now technology is changing very fast. So now size of data increases day by day like facebook and google have billion of traffic with petabytes of data they are serving in milli seconds. So it is difficult to do? No there are smarter ways to do it. So what are the core components of the web architecture?</p>
<p style="text-align: justify;"><span id="more-1434"></span></p>
<ol style="text-align: justify;">
<li>Web Servers</li>
<li>Databases Servers</li>
<li>Caches Servers</li>
</ol>
<p style="text-align: justify;">Lots of other things are also required. These all things helps in reducing the page render time when we have lesser amount of data. What if you have a terabytes of data and you need to serve it realtime Ooh that’s really difficult work to do. I will share my experience with you guy how I am doing this?</p>
<p style="text-align: justify;">Well my thoughts are that Web servers are the processors, cache is RAM and databases are the storage. We better know that storage I/O is very slow we cannot serve too much traffic from the normal databases like mySQL, Oracle, MSSQL etc. So we need to have some sort of things those can reduce our dependencies from the storage databases.</p>
<p style="text-align: justify;">So what are the things that we can use to increase the performance of our web applications at very low cost? So I will address the issues and then there solution for you.</p>
<p style="text-align: justify;">
<ol style="text-align: justify;">
<li>Full text search: On a huge amount of data in relational database full text search is almost impossible so we can use the Sphinx search system. Sphinx performance of serving full text search is outstanding.</li>
<li>SQL JOIN: Store the data in denormilized form on sql queries runs very fast with less joins. It’s easy to store that data in noSQL forms like Cassandra, Hadoop ,etc. These noSQL algorithms helps in sorting of trillions of rows in few seconds.</li>
<li>Caches: We need to use the cache systems very effective like complete key management system of Memcache, MCACHE, Eaccelerator, etc. These caches can help you in most access pages and static contents to serve them from the memory faster.</li>
<li style="text-align: justify;">Web Servers: Optimization of web servers are very important like we mostly use Apache web server which is more famous and its performance is outstanding on prefork and MPM Workers both thread controlling mechanism so we need to configure these process system very smartly.</li>
</ol>

<p class="FacebookLikeButton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.infotales.com%2Fweb-application-performance-tips%2F&amp;layout=standard&amp;show_faces=yes&amp;width=450&amp;action=like&amp;colorscheme=light&amp;locale=en_US" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height: 25px"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.infotales.com/web-application-performance-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Web Application Security Project (OWASP)</title>
		<link>http://www.infotales.com/open-web-application-security-project-owasp/</link>
		<comments>http://www.infotales.com/open-web-application-security-project-owasp/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 16:42:43 +0000</pubDate>
		<dc:creator>boogieman</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Web Application Performance]]></category>

		<guid isPermaLink="false">http://www.infotales.com/?p=1426</guid>
		<description><![CDATA[The Open source OWASP( Open Web Application Security Project) is a non revenue dependent worldwide charity organization, concentrating on the improvement of web application security. Their particular mission is to highlight the application security mechanism in every way possible, so that people and organizations can be informed regarding original application security risks and their solutions. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;">The Open source OWASP( Open Web Application Security Project) is a non revenue dependent worldwide charity organization, concentrating on the improvement of web application security. Their particular mission is to highlight the application security mechanism in every way possible, so that people and organizations can be informed regarding original application security risks and their solutions. Worldwide, OWASP is free for everyone to join and take advantage or provide and help on OWASP&#8217;s security projects.</p>
<p style="text-align: justify;"><span id="more-1426"></span></p>
<p style="text-align: justify;">All of the information about security risks and their solutions are available under one free web portal. All of the information can be found on OWASP&#8217;s official website and all the latest information about it is available on OWASP&#8217;s blog. It has been requested to feel very comfortable to help make any changes and improvement to any of their security projects. In fact, there are hundreds of people around the world who review the changes to the site to help ensure quality and performance. They do have a &#8216; Getting Started &#8216; page for new users, and it becomes very easy for a new person to get involved with the information they are providing. It has been highly appreciated by OWASP team that every visitor become a member of their security portal.</p>
<p>Some of the projects done by OWASP are follows:
</p>
<ol style="text-align: justify;">
<li>OWASP AntiSamy Java Project:  An API for validating rich HTML/CSS input from users without exposure to cross-site scripting and phishing attacks.</li>
<li>OWASP AntiSamy. NET Project:  An API for validating rich HTML/CSS input from users without exposure to cross-site scripting and phishing attacks.</li>
<li>OWASP Enterprise Security API (ESAPI) Project:  A free and open collection of all the security techniques that a developer needs to develop a secure web application.</li>
<li>OWASP ModSecurity Core Rule Set Project:  A project to document and develop the ModSecurity Core Rule Set.</li>
</ol>
<p style="text-align: justify;">
<p><strong>OWASP AntiSamy Java Project<br />
</strong></p>
<p style="text-align: justify;">The OWASP AntiSamy project consists a handful of things. Technically, it is an API for ensuring HTML/CSS provided by user is in compliance within an application&#8217;s rules. Yet another way of stating that could be: It&#8217;s an API that assists you to make sure that your clients don&#8217;t supply any harmful cargo codes in the HTML they supply for their profile, comments, images etc&#8230; that get persisted on the server. &#8220;Malicious Code&#8221; is a temr regarding to web applications usually mean &#8220;JavaScript&#8221;. The Cascading Stylesheets (css) are only considered malicious when they are linked with JavaScript engines. Moreover, there are many situations where a completly normal HTML and CSS cab be used in many different harmful manners, AntiSamy project take care of that too.</p>
<p style="text-align: justify;">
Philosophically, AntiSamy is a departure from modern day security mechanisms to the future security mechanisms. Generally speaking, the security mechanism and user have a very useful communication which is virtually one way, for very good reasons. Leading the potential attacker know the details about the validation is considered unwise as it allows the attacker to discover and recon the mechanism for weaknesses. These kinds of information leaks can also become harmful in many ways that a user cannot expect. A login mechanism that tells the user, &#8220;Username invalid&#8221; leaks the fact that a user by that name does not exist. There are more things like the Username example which we does not consider to any worth. Attacker can use a dictionary and a phonebook to remotely check out the list of valid usernames. Using this information, an attacker could use  a brute-force attack (very popular attack these days) or massive account lock denial-of-service. We get that. Unfortunately, that&#8217;s just not very functional in this situation. Typical Internet users are largely pretty bad when it comes to writing HTML/CSS, so where do they get their HTML from? Usually they copy it from somewhere out on the web. Simply rejecting their input without any clue as to why is jolting and annoying. Annoyed users go somewhere else to do their social networking.</p>
<p><strong>The Owasp Enterprise Security Api</strong></p>
<p>ESAPI (The Owasp Enterprise Security Api) is a web security control application library which provide ease to the developers to program applications with low risks. The ESAPI liabriries are basically designed for programmers to use it to retrofit security into their existing applications easily. ESAPI libraries are also very helpful for new development&#8217;s security foundations. Enabling for language-specific differences, all OWASP ESAPI versions have the same basic design:</p>
<p>There&#8217;ve been a set of interfaces for security control, they define for example, types of parameters that are passed to types of security controls.Each security control system is implemented with a reference guide for implementation. The logic is not both organization and application specific, string-based input validation is a good example. There could be different and custom implementations for each of your security control. In these classes, it may contain application logic which may be designed by or for your organization according to it&#8217;s requirement. Enterprise authentication is a good example.<br />
This project source code is licensed under the BSD license, which is very permissive and about as close to public domain as is possible. The project documentation is licensed under the Creative Commons license. You can use or modify ESAPI however you want, even include it in commercial products</p>
<p style="text-align: justify;">
<strong>OWASP ModSecurity Core Rule Set Project</strong><br />
<strong> </strong><br />
ModSecurity™<br />
A firewall web application engine which does not offer a lot of protection on its own. ModSecurity™ is to be configured under rules in order to become beneficial. SpiderLabs from Trustwave is serving a free certified rule set to provide maximized advantage for users of ModSecurity™ 2. x. It is not like a intrusion detection application or its preventation system, that rely on specific signature to capture vulnerabilities.<br />
The Core Rules are providing many similar type of protections against known and unknown vulnerabilities which are found in several web applications (which are mostly custom coded so they become unknown). The Core Rules are to be used for step-by-step deployment for ModSecurity™.</p>
<p>The Core Rules Content</p>
<p>To provide numerous similar sort of web applications&#8217; protection, Core Rules use the following methods:</p>
<p>1.     HTTP Protection &#8211; detects violation of the HTTP protocol as well as locally defined usage policy.<br />
2.     Real-time Blacklist Loockups &#8211; utilize 3rd Party IP Reputation.<br />
3.     Web-based Malware Detection &#8211; identifies malicious web content by examine towards the Google Safe Browsing API.<br />
4.     HTTP Refusal of Service Protections &#8211; defense against HTTP Flooding and Slow HTTP DoS Attacks.<br />
5.     Common Web Attacks Protection &#8211; detecting common web application security attack.<br />
6.     Automation Detection &#8211; Detecting bots, crawlers, scanners and other surface harmful activity.<br />
7.     Integration with AV Scanning for File Uploads &#8211; detects harmful files uploaded through the web application.<br />
8.     Tracking Sensitive Data &#8211; Monitors Credit Card usage and blocks leakages.<br />
9.     Trojan Protection &#8211; Detecting access to Trojans horses.<br />
10.  Identification of Application Defects &#8211; alerts on application misconfigurations.<br />
11.  Error Detection and Hiding &#8211; Disguising error messages sent by the server.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;">

<p class="FacebookLikeButton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.infotales.com%2Fopen-web-application-security-project-owasp%2F&amp;layout=standard&amp;show_faces=yes&amp;width=450&amp;action=like&amp;colorscheme=light&amp;locale=en_US" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height: 25px"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.infotales.com/open-web-application-security-project-owasp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Importance of Website Performance in SEO</title>
		<link>http://www.infotales.com/importance-of-website-performance-in-seo/</link>
		<comments>http://www.infotales.com/importance-of-website-performance-in-seo/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 16:20:21 +0000</pubDate>
		<dc:creator>boogieman</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[Web Application Performance]]></category>

		<guid isPermaLink="false">http://www.infotales.com/?p=1341</guid>
		<description><![CDATA[Before I tell you how website performance effect in SEO it is important to understand about Website performance. How do we measure the website performance? We characterize performance in three areas listed below Server Generation Time Network latency ( Bandwidth ) Browser Rendering Time These three major areas in performance effect the time. We need [...]]]></description>
			<content:encoded><![CDATA[<p>Before I tell you how website performance effect in SEO it is important to understand about Website performance. How do we measure the website performance? We characterize performance in three areas listed below</p>
<p><span id="more-1341"></span></p>
<ol>
<li>Server      Generation Time</li>
<li>Network      latency ( Bandwidth )</li>
<li>Browser      Rendering Time</li>
</ol>
<p>These three major areas in performance effect the time. We need to have focus on all there 3 variables to improve the performance of the website. There are many tools help you in gagging the performance like webpagetest.org and Google <a href="http://code.google.com/speed/page-speed/docs/module.html">mod_pagespeed</a> an Apache module.</p>
<p>Google have weight for performance in his Algorithm. Its says if the website loading time increasing so its mean that user will be not happy with our services. On daily basis when we are surfing websites it is clear in our minds that when the site is not opening in time then mostly we don’t want to browse another page. The most website is fast the most it help user to stay on it.</p>
<p>When the Google start working on website performance we have notices that 25% to 60% websites improved their performance. If you don’t have the good performance of your website and your ranking is not increasing Google its mean that you have a performance issue. Improve your site performance and see the results.</p>

<p class="FacebookLikeButton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.infotales.com%2Fimportance-of-website-performance-in-seo%2F&amp;layout=standard&amp;show_faces=yes&amp;width=450&amp;action=like&amp;colorscheme=light&amp;locale=en_US" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height: 25px"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.infotales.com/importance-of-website-performance-in-seo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter&#8217;s Database FlockDB</title>
		<link>http://www.infotales.com/twitters-database-flockdb/</link>
		<comments>http://www.infotales.com/twitters-database-flockdb/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 21:30:23 +0000</pubDate>
		<dc:creator>boogieman</dc:creator>
				<category><![CDATA[Web Application Performance]]></category>
		<category><![CDATA[noSQL]]></category>
		<category><![CDATA[FlockDB]]></category>
		<category><![CDATA[socical graph]]></category>
		<category><![CDATA[web performance]]></category>

		<guid isPermaLink="false">http://www.infotales.com/?p=1318</guid>
		<description><![CDATA[Introduction Twitter build the flockdb which is open source used in the distributed environment, it is also called the fault-tolerant graph database. It is used to manage the data huge amount of data on web environment. Twitter is using this database to manage the relationships of users like how is following whom and stores the [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong></p>
<p>Twitter build the flockdb which is open source used in the distributed environment, it is also called the fault-tolerant graph database. It is used to manage the data huge amount of data on web environment. Twitter is using this database to manage the relationships of users like how is following whom and stores the data 1st relation second relation and so one.<span id="more-1318"></span>witter says that it is a very simpler from the other graph databases. Its designed is horizontally scaleable for high traffic websites. This database is licensed under Apache. Twitter new gizzard tool is focused on the eliminating the pain of high end databases and queries.</p>
<p>This database will going to join the noSQL family soon like Cassandra and Hadoop. I think twitter efforts will help new business engaging in the social graph it will be easy and cost effected.</p>
<p><strong>Technical details</strong></p>
<p>FlockDB distributed environment graph database. Its benchmark in 2010 cluster of FlockDB stores more then 13 billion data and on maximum traffic of 20K+ w/sec and 100k+ r/sec. Which is the ultimate thing I ever seen? It is designed by using Java, sbt, thrift apache, Thrift is known as the extreme performer on the web.  Its supports</p>
<ul>
<li>80K/sec      add/update/remove operations it can do</li>
<li>Complex set      arithmetic queries can be designed and executed</li>
<li>paging through query      result sets containing millions of entries</li>
<li>You can archive and  restore archived data anytime</li>
<li>Replication with      horizontal scaling</li>
<li>Data migration      without shutting down the database</li>
</ul>

<p class="FacebookLikeButton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.infotales.com%2Ftwitters-database-flockdb%2F&amp;layout=standard&amp;show_faces=yes&amp;width=450&amp;action=like&amp;colorscheme=light&amp;locale=en_US" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height: 25px"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.infotales.com/twitters-database-flockdb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Optimization Tips: Use Descendant Selectors</title>
		<link>http://www.infotales.com/css-optimization-tips-use-descendant-selectors/</link>
		<comments>http://www.infotales.com/css-optimization-tips-use-descendant-selectors/#comments</comments>
		<pubDate>Sun, 10 Apr 2011 06:44:07 +0000</pubDate>
		<dc:creator>shahpar</dc:creator>
				<category><![CDATA[Web Application Performance]]></category>

		<guid isPermaLink="false">http://www.infotales.com/?p=1255</guid>
		<description><![CDATA[Another good idea to have an optimized css architecture is to avoid hard coding css classes into elements. This allow easy migration to a new theme and reduce code size in document. Descendant selectors allow to modify style of elements contained within another element. By distributing your page in different sections can allow to modify [...]]]></description>
			<content:encoded><![CDATA[<p>Another good idea to have an optimized css architecture is to avoid hard coding css classes into elements. This allow easy migration to a new theme and reduce code size in document.<br />
<span id="more-1255"></span><br />
Descendant selectors allow to modify style of elements contained within another element. By distributing your page in different sections can allow to modify styles of element in specific section. For example enclosing your footer section in &lt;div id=&#8221;my_footer&#8221;&gt;will allow to modify any element by &lt;!&#8211; #my_footer p{/*new style*/} &#8211;&gt;. This will modify style for any element in side footer.</p>
<p>For elements like &lt;ol&gt; &lt;li&gt; &lt;ul&gt;, child selectors should be used instead of descendant selectors. Child selectors support is available since IE7. For modifying any &lt;li&gt; item in &lt;ol&gt; following syntax can be used, ul &gt; li {/*new style*/}</p>
<p>Hope this will help you design good site with optimized css architecture</p>

<p class="FacebookLikeButton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.infotales.com%2Fcss-optimization-tips-use-descendant-selectors%2F&amp;layout=standard&amp;show_faces=yes&amp;width=450&amp;action=like&amp;colorscheme=light&amp;locale=en_US" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height: 25px"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.infotales.com/css-optimization-tips-use-descendant-selectors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Optimization Tips: Remove Inline Definations</title>
		<link>http://www.infotales.com/css-optimization-remove-inline-definations/</link>
		<comments>http://www.infotales.com/css-optimization-remove-inline-definations/#comments</comments>
		<pubDate>Sat, 02 Apr 2011 13:49:26 +0000</pubDate>
		<dc:creator>shahpar</dc:creator>
				<category><![CDATA[Web Application Performance]]></category>

		<guid isPermaLink="false">http://www.infotales.com/?p=1234</guid>
		<description><![CDATA[There are two ways a CSS style can be applied to a HTML element. One is to apply style by defining it in css file or &#60;style&#62; block. Second one is to provide style definition directly into &#8220;style&#8221; tag of an element, called inline style definition. Defining an inline style for element is less optimized, [...]]]></description>
			<content:encoded><![CDATA[<p>There are two ways a CSS style can be applied to a HTML element. One is to apply style by defining it in css file or &lt;style&gt; block. Second one is to provide style definition directly into &#8220;style&#8221; tag of an element, called inline style definition.<span id="more-1234"></span></p>
<p>Defining an inline style for element is less optimized, unless the style is only used once. If the style is used multiple times it is it is better to put style in external css file.</p>
<p>For example if your code looks like this</p>
<p><code>&lt;p style="font-size:1em;color:white;"&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit&lt;/p&gt;<br />
&lt;p style="font-size:1em;color:white;"&gt;consectetur adipiscing elit&lt;/p&gt;<br />
&lt;p style="font-size:1em;color:white;"&gt;Lorem ipsum dolor sit amet&lt;/p&gt;</code></p>
<p>than you should move style into a block like this</p>
<p><code>&lt;style type="text/css"&gt;<br />
#para p{font-size:1em;color:white;}<br />
&lt;/style&gt;</code></p>
<p>Now the HTML will look a bit cleaner</p>
<p><code>&lt;div id="para"&gt;<br />
&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit&lt;/p&gt;<br />
&lt;p&gt;consectetur adipiscing elit&lt;/p&gt;<br />
&lt;p&gt;Lorem ipsum dolor sit amet&lt;/p&gt;<br />
&lt;/div&gt;</code></p>
<p>So if you start optimizing your site speed, specially css, consider this option. For this you will need to move all &lt;style&gt; blocks and &#8220;style&#8221; tag to a css file. This will reduce the page size smaller and quick to download. This will also reduce code to content ratio which is beneficial for SEO.</p>

<p class="FacebookLikeButton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.infotales.com%2Fcss-optimization-remove-inline-definations%2F&amp;layout=standard&amp;show_faces=yes&amp;width=450&amp;action=like&amp;colorscheme=light&amp;locale=en_US" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height: 25px"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.infotales.com/css-optimization-remove-inline-definations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Application Performance: Google Analytics Script</title>
		<link>http://www.infotales.com/web-application-performance-google-analytics-script/</link>
		<comments>http://www.infotales.com/web-application-performance-google-analytics-script/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 07:18:09 +0000</pubDate>
		<dc:creator>shahpar</dc:creator>
				<category><![CDATA[Web Application Performance]]></category>

		<guid isPermaLink="false">http://www.infotales.com/?p=1216</guid>
		<description><![CDATA[Google Analytics (GA) script have become almost a must have part of a page. GA provides JavaScript code snippet to be placed on page. Today I will discuss few ways which will minimize the impact of GA on performance. First we will see how GA script impacts the performance. External Script: Means it will add [...]]]></description>
			<content:encoded><![CDATA[<p>Google Analytics (GA) script have become almost a must have part of a page. GA provides JavaScript code snippet to be placed on page. Today I will discuss few ways which will minimize the impact of GA on performance.</p>
<p>First we will see how GA script impacts the performance.</p>
<ol>
<li>External Script: Means it will add extra HTTP call and DNS resolution.</li>
<li>Its JavaScript: Placement is crucial as javascript can be a blocking call.</li>
</ol>
<p><span id="more-1216"></span>How to make it faster:</p>
<ol>
<li>External Script: We can&#8217;t do much about it. Google usually have very good DNS resolution time and content download time, so there is not much to worry about it. Also as most of the sites have GA script, so mostly the js will be served from local cache.</li>
<li>Its a JavaScript: Older version of GA are blocking calls, so if you are using it than be sure to place the GA code just before the &lt;/body&gt; tag. Blocking call will halt any download, rendering etc unless js file is downloaded and executed.</li>
<li>Upgrade to Newer Version: If you need to place GA script in &lt;head&gt; or higher in the &lt;body&gt; than you should upgrade the GA version to latest version which allows async download. Async call downloads the JavaScript in a manner that it does not block any other resources from download. In my personal opinion even with async call you should place the GA to just above the&lt;/body&gt;. However it is also safe to place GA in &lt;head&gt;.</li>
</ol>
<p>If you want to upgrade the version to async version than you can start with <a href="http://code.google.com/apis/analytics/docs/tracking/asyncMigrationExamples.html" target="_blank" rel="external nofollow">http://code.google.com/apis/analytics/docs/tracking/asyncMigrationExamples.html</a></p>

<p class="FacebookLikeButton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.infotales.com%2Fweb-application-performance-google-analytics-script%2F&amp;layout=standard&amp;show_faces=yes&amp;width=450&amp;action=like&amp;colorscheme=light&amp;locale=en_US" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height: 25px"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.infotales.com/web-application-performance-google-analytics-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Application Performance: How costly an image can be?</title>
		<link>http://www.infotales.com/how-costly-an-image-can-be/</link>
		<comments>http://www.infotales.com/how-costly-an-image-can-be/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 13:32:24 +0000</pubDate>
		<dc:creator>shahpar</dc:creator>
				<category><![CDATA[Web Application Performance]]></category>

		<guid isPermaLink="false">http://www.infotales.com/?p=1172</guid>
		<description><![CDATA[Did you ever think how a single image can hurt your page load time. Well if ensured that image is added in pure unoptimized way, its can hurt a lot. I recently experienced such an incident where an image was added. The image was visible at every page of the website. The issues with the [...]]]></description>
			<content:encoded><![CDATA[<p>Did you ever think how a single image can hurt your page load time. Well if ensured that image is added in pure unoptimized way, its can hurt a lot.</p>
<p>I recently experienced such an incident where an image was added. The image was visible at every page of the website. The issues with the image were</p>
<ul>
<li>External Site (Extra DNS to be resolved)</li>
<li>No expiry headers defined</li>
<li>Image not optimized</li>
</ul>
<p><span id="more-1172"></span><br />
This caused our page load time to increase by almost 0.5 seconds. Notice the red circle (a sort of) where the image was added and site performance graph went up.<br />
<a href="http://www.infotales.com/wp-content/uploads/2010/08/image_impact.png"><img class="alignleft size-full wp-image-1175" title="image_impact" src="http://www.infotales.com/wp-content/uploads/2010/08/image_impact.png" alt="" width="750" height="150" /></a><br />
After a few days image was fixed by adding proper expiry headers and optimizing file size. The +ve impact was immediate as see in site performance graph.<br />
<a href="http://www.infotales.com/wp-content/uploads/2010/09/chart.png"><img src="http://www.infotales.com/wp-content/uploads/2010/09/chart.png" alt="" title="Site performance graph" width="750" height="150" class="alignleft size-full wp-image-1187" /></a></p>

<p class="FacebookLikeButton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.infotales.com%2Fhow-costly-an-image-can-be%2F&amp;layout=standard&amp;show_faces=yes&amp;width=450&amp;action=like&amp;colorscheme=light&amp;locale=en_US" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height: 25px"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.infotales.com/how-costly-an-image-can-be/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Web Server Performance: Rotate Apache Access Logs on Windows</title>
		<link>http://www.infotales.com/web-server-performance-rotate-apache-access-logs-on-windows/</link>
		<comments>http://www.infotales.com/web-server-performance-rotate-apache-access-logs-on-windows/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 05:23:23 +0000</pubDate>
		<dc:creator>shahpar</dc:creator>
				<category><![CDATA[Web Application Performance]]></category>

		<guid isPermaLink="false">http://www.infotales.com/?p=1149</guid>
		<description><![CDATA[Apache web access logs provide vital information about visits, visitors and requests served by Apache web server. Each request is logged by the web server so the log file size can increase at high speed. If the log file size is small it is easy for apache to append lines. On other hand as the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.infotales.com/wp-content/uploads/2010/06/apache_webserver_logo.gif"><img src="http://www.infotales.com/wp-content/uploads/2010/06/apache_webserver_logo.gif" alt="Apache webserver logo" title="Apache webserver logo" width="133" height="36" class="alignleft size-full wp-image-1021" /></a>Apache web access logs provide vital information about visits, visitors and requests served by Apache web server. Each request is logged by the web server so the log file size can increase at high speed. If the log file size is small it is easy for apache to append lines. On other hand as the size of file grows, web server require more server resources to maintain logs.</p>
<p>If the access log file size reaches to around 4GB on windows machine, apache will be very slow to respond and will hurt the web application performance badly. You should keep checking log file size regularly to make sure its within acceptable range. Access log file is normally found in logs/access.log under the apache installation.<span id="more-1149"></span></p>
<p>Apache provides built in functionality to rotate these logs on daily basis so it does not grow much and create performance issues to server. If we set it up, new file will be created for each day. Following is method to setup log rotation on Windows with WAMP, Apache 2.2.11.</p>
<p>Log rotation can be done at two levels, one server level and second on virtual host level. To do a server level log rotation you will need to modify /conf/httpd.conf file under apache installation. To do a virtual host level rotation will need to modify file \conf\extra\httpd-vhosts.conf file.</p>
<p>For server level log rotation open file /conf/httpd.conf and find line like<br />
<code>CustomLog "C:/Program Files/wamp/logs/access.log" common</code><br />
The line defines the log file. Now we will define log rotation in following manner<br />
<code>CustomLog "|bin/rotatelogs.exe C:/Program Files/wamp/logs/access_%y-%m-%d.log 86400" common</code><br />
here |bin/rotatelogs.exe tells that logs should be sent to rotatelogs.exe program which is located under apache installation in bin folder (make sure the exe file exists and have permissions). </p>
<p>The C:/Program Files/wamp/logs/access_%y-%m-%d.log tells the location of new log files. Here %y is year, %m is month and %d is day so the file name remains unique. 86400 is time span defined in seconds after which new file is generated, in this case its 24 hours (24x60x60) means log should rotate daily.</p>
<p>Be sure that you user have permission to write a file on given location (C:\ in this case). Also be sure that there is no space in file path given as it will create issues in creating new file.</p>
<p>After making the changes save file and restart apache. Now check if new file is created properly on access any web pages on this server. The new file should be created with name like &#8220;access_10-08-18.log&#8221; assuming that today is (Aug, 18 2010). </p>
<p>If you have to do same thing for a particular virtual host than you should add following line in &lt;VirtualHost xxxxxxxx&gt; definition.<code>CustomLog "|bin/rotatelogs.exe C:/Program Files/wamp/logs/access_%y-%m-%d.log 86400" </code></p>
<p>This should help improving performance of the web server as it has to write to a small file, secondly it is easy to download and analyze small logs as compared to huge files.</p>

<p class="FacebookLikeButton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.infotales.com%2Fweb-server-performance-rotate-apache-access-logs-on-windows%2F&amp;layout=standard&amp;show_faces=yes&amp;width=450&amp;action=like&amp;colorscheme=light&amp;locale=en_US" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height: 25px"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.infotales.com/web-server-performance-rotate-apache-access-logs-on-windows/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Web Application Performance: JavaScript Placement</title>
		<link>http://www.infotales.com/web-application-performance-javascript-placement/</link>
		<comments>http://www.infotales.com/web-application-performance-javascript-placement/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 06:33:19 +0000</pubDate>
		<dc:creator>shahpar</dc:creator>
				<category><![CDATA[Web Application Performance]]></category>

		<guid isPermaLink="false">http://www.infotales.com/?p=1141</guid>
		<description><![CDATA[JavaScript files have become important part of most of the web. Placement of js file can play important role in front end performance. If you care about performance for you visitors, you must place JavaScript files properly. Browsers allow parallel connections to a single hostname. This allows files to download faster in parallel and very [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.infotales.com/wp-content/uploads/2010/06/JavaScript.gif"><img class="alignleft size-thumbnail wp-image-1143" title="JavaScript" src="http://www.infotales.com/wp-content/uploads/2010/06/JavaScript-150x150.gif" alt="" width="150" height="150" /></a>JavaScript files have become important part of most of the web. Placement of js file can play important role in front end performance. If you care about performance for you visitors, you must place JavaScript files properly.</p>
<p>Browsers allow parallel connections to a single hostname. This allows files to download faster in parallel and very helpful for web application performance. When JavaScript file is called browsers halts the parallel connections to all hosts. This is because JavaScript can alter the document dom with <em>document.write()</em>.<span id="more-1141"></span></p>
<p>This can badly hurt the front end performance of a web application. To avoid this all calls to JavaScript files should be moved to bottom of the page, just before end to BODY tag.</p>
<p>If it is not possible to move JavaScript calls to bottom, one should use DEFER attribute when calling script. Example code for this is<br />
<code>&lt;script src="script.js" type="text/javascript" defer="defer"&gt;&lt;/script&gt;</code><br />
Here defer tells that JavaScript does not contain any document.write() and browser should continue rendering. Problem with defer is that FireFox does not support it, Internet Explorer supports the defer but not to as desired. Still its batter to use it.</p>
<p>For faster page loadeds its recommended that JavaScript should be moved at bottom of the page, so parallel downloads are not blocked by JavaScript files.</p>
<p>This post is part of our &#8220;<a href="http://www.infotales.com/web-application-performance/" target="_blank">Web Application Performance</a>&#8220;. You can find more exciting post to improve performance of a web application in <a href="http://www.infotales.com/topic/web-performance-optimization/" target="_blank">Web Application Performance category</a>.</p>

<p class="FacebookLikeButton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.infotales.com%2Fweb-application-performance-javascript-placement%2F&amp;layout=standard&amp;show_faces=yes&amp;width=450&amp;action=like&amp;colorscheme=light&amp;locale=en_US" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height: 25px"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.infotales.com/web-application-performance-javascript-placement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

