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

<channel>
	<title>Be Technical by Techniques</title>
	<atom:link href="http://sudhaker.com/feed" rel="self" type="application/rss+xml" />
	<link>http://sudhaker.com</link>
	<description>by Sudhaker Raj</description>
	<pubDate>Wed, 28 Jan 2009 23:18:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Clean Drupal DB</title>
		<link>http://sudhaker.com/web-development/drupal/clean-drupal-db.html</link>
		<comments>http://sudhaker.com/web-development/drupal/clean-drupal-db.html#comments</comments>
		<pubDate>Wed, 28 Jan 2009 23:18:21 +0000</pubDate>
		<dc:creator>Sudhaker</dc:creator>
		
		<category><![CDATA[Drupal]]></category>

		<guid isPermaLink="false">http://sudhaker.com/web-development/drupal/clean-drupal-db.html</guid>
		<description><![CDATA[We can use following script to clean Drupal database; I do this every time before taking a db-backup.

TRUNCATE `cache_block`;
TRUNCATE `cache_filter`;
TRUNCATE `cache_form`;
TRUNCATE `cache_menu`;
TRUNCATE `cache_page`;
TRUNCATE `sessions`;
TRUNCATE `watchdog`;

]]></description>
			<content:encoded><![CDATA[<p>We can use following script to clean Drupal database; I do this every time before taking a db-backup.</p>
<p><code lang="sql"><br />
TRUNCATE `cache_block`;<br />
TRUNCATE `cache_filter`;<br />
TRUNCATE `cache_form`;<br />
TRUNCATE `cache_menu`;<br />
TRUNCATE `cache_page`;<br />
TRUNCATE `sessions`;<br />
TRUNCATE `watchdog`;<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://sudhaker.com/web-development/drupal/clean-drupal-db.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Clean New Install Wordpress</title>
		<link>http://sudhaker.com/web-development/wordpress/clean-new-install-wordpress.html</link>
		<comments>http://sudhaker.com/web-development/wordpress/clean-new-install-wordpress.html#comments</comments>
		<pubDate>Wed, 28 Jan 2009 23:11:09 +0000</pubDate>
		<dc:creator>Sudhaker</dc:creator>
		
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://sudhaker.com/web-development/wordpress/clean-new-install-wordpress.html</guid>
		<description><![CDATA[Fresh install of wordpress has little junk in it (a test post, a test comment and 7 links)

TRUNCATE TABLE `wp_links`;
TRUNCATE TABLE `wp_comments`;
TRUNCATE TABLE `wp_posts`;
TRUNCATE TABLE `wp_term_relationships`;
UPDATE `wp_term_taxonomy` SET `count` = '0' WHERE `term_taxonomy_id` = 1;
UPDATE `wp_term_taxonomy` SET `count` = '0' WHERE `term_taxonomy_id` = 2;

]]></description>
			<content:encoded><![CDATA[<p>Fresh install of wordpress has little junk in it (a test post, a test comment and 7 links)</p>
<p><code lang="sql"><br />
TRUNCATE TABLE `wp_links`;<br />
TRUNCATE TABLE `wp_comments`;<br />
TRUNCATE TABLE `wp_posts`;<br />
TRUNCATE TABLE `wp_term_relationships`;<br />
UPDATE `wp_term_taxonomy` SET `count` = '0' WHERE `term_taxonomy_id` = 1;<br />
UPDATE `wp_term_taxonomy` SET `count` = '0' WHERE `term_taxonomy_id` = 2;<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://sudhaker.com/web-development/wordpress/clean-new-install-wordpress.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Web 2.0 Frameworks - Struts vs. JSF</title>
		<link>http://sudhaker.com/java/web-20-frameworks-struts-vs-jsf.html</link>
		<comments>http://sudhaker.com/java/web-20-frameworks-struts-vs-jsf.html#comments</comments>
		<pubDate>Wed, 29 Oct 2008 13:55:20 +0000</pubDate>
		<dc:creator>Sudhaker</dc:creator>
		
		<category><![CDATA[Java Technologies]]></category>

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

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

		<guid isPermaLink="false">http://sudhaker.com/java/web-20-frameworks-struts-vs-jsf.html</guid>
		<description><![CDATA[The Top 10 List
#10 There&#8217;s only one Struts - Struts is an open-source product, whereas JSF is a specification.
#9 JSF is the standard - JEE 5.0 containers must provide an implementation of JSF, which means that JSF will soon be ubiquitous.
#8  POJO Action Methods - Struts actions are tied to the Struts API, but [...]]]></description>
			<content:encoded><![CDATA[<p><strong>The Top 10 List</strong></p>
<p>#10 There&#8217;s only one Struts - Struts is an open-source product, whereas JSF is a specification.</p>
<p>#9 JSF is the standard - JEE 5.0 containers must provide an implementation of JSF, which means that JSF will soon be ubiquitous.</p>
<p>#8  POJO Action Methods - Struts actions are tied to the Struts API, but JSF action methods can be implemented in Plain Old Java Objects.</p>
<p>#7  Managed Beans - Like Spring, JSF uses dependency injection (or inversion of control, if you will), for instantiating and initializing beans. It&#8217;s true that Struts creates action beans and form beans for you, but JSF generalizes that concept and adds the ability to initialize managed beans-of any type-created by the framework.</p>
<p>#6  Extensibility - This is huge. JSF has 6 objects that implement much of the framework&#8217;s capabilities and you can easily replace those objects by decorating the default implementations. That makes it ridiculously easy, for example, to add your own custom variables to the JSF expression language. It also makes it easy, for example, to plug in your own view handlers, perhaps a view handler that implements Tapestry-like views so you can truly separate components and HTML. In fact, Shale, does both of those things. As if that weren&#8217;t enough, JSF gives you numerous hooks into the JSF lifecycle to inject your own voodoo. Shale gives you even more.</p>
<p>#5  Event Model - JSF has an event model that lets you react to value changes, actions, and phase changes in the JSF lifecycle.</p>
<p>#4 Value Bindings - With Struts, you are responsible for ferrying data from your forms to your model objects. You implement an action with an execute method that takes a form bean as an argument. Then you manually pull data out of that form bean and push it to your model. For every form in your application. Ugh.With JSF, you do this:<br />
 #{model.property}. That&#8217;s all. JSF takes care of the rest.</p>
<p>#3  Renderers - Have you ever looked at the source code for Struts tags? They generate HTML directly. JSF component tags, OTOH, don&#8217;t generate anything; instead, they refer to a component-renderer pair on the server. The component maintains state whereas the renderer is in charge of rendering a view. The point here is that renderers are pluggable: you can replace the default renderers with your own implementations; for example, in my Felix talk at NFJS, I illustrate how to implement a custom label renderer that adds asteriks to labels that represent required fields. You plug in that renderer, and JSF will automatically use it throughout your application.Sweet.</p>
<p>#2  Render Kits - I had a Struts consulting job a few years ago where we had to support both a browser-based interface and radio frequency devices, and it was painful.That task would&#8217;ve been greatly simplified with JSF because you can create your own render kit-a collection of renderers for a particular display technology-and plug it into JSF.</p>
<p>#1  Components - Components are the number one differentiator between Struts and JSF. Like Swing, JSF provides a rich infrastructure for developing components in addition to a standard set of components. That infrastructure makes it relatively easy to create your own components and share them with others. Already, we&#8217;re seeing custom components popping up all over the place, for example with Oracle&#8217;s ADF and MyFaces, both of which provide a rich set of components such as JavaScript-powered calendars, trees, etc. Of course, components are only half the story; typically, components delegate rendering to a separate renderer, which provides substantial benefits (see item #3 above). But, as with most things in JSF, you are not forced to adhere to the party line. If you want, you can implement components that render themselves, although if you do so, you will loose the ability to plug a different renderer into your component.</p>
<p>Note: This wonderful article is taken from <a href="http://www.freedomoss.com/">Freedom OSS</a> newsletter, thanks to OSS for that.</p>
]]></content:encoded>
			<wfw:commentRss>http://sudhaker.com/java/web-20-frameworks-struts-vs-jsf.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Lighttpd modules compared - mod_magnet and mod_rewrite</title>
		<link>http://sudhaker.com/web-development/lighttpd-modules-compared-mod_magnet-and-mod_rewrite.html</link>
		<comments>http://sudhaker.com/web-development/lighttpd-modules-compared-mod_magnet-and-mod_rewrite.html#comments</comments>
		<pubDate>Fri, 17 Oct 2008 04:57:32 +0000</pubDate>
		<dc:creator>Sudhaker</dc:creator>
		
		<category><![CDATA[Web Development]]></category>

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

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

		<guid isPermaLink="false">http://sudhaker.com/web-development/lighttpd-modules-compared-mod_magnet-and-mod_rewrite.html</guid>
		<description><![CDATA[Stress tool: http://openwebload.sourceforge.net/
Server: PIII 900MHz, 512MB, CentOS 5.2, lighttpd/1.4.19, PHP 5.2.6
Desktop: Athlon XP 2600+, 2GB, WinXP
[index.php]

Php says 2 + 2 = &#60;?php echo &#40;2 + 2&#41;; ?&#62;

Since PHP code is a very simple one, response time (or cpu usage) should have better representation of  magnet/rewrite over-head.
Statistics without any technique
C:\>openload.exe http://example.com/index.php 4

MaTps 237.86, Tps 237.86, [...]]]></description>
			<content:encoded><![CDATA[<p>Stress tool: http://openwebload.sourceforge.net/<br />
Server: PIII 900MHz, 512MB, CentOS 5.2, lighttpd/1.4.19, PHP 5.2.6<br />
Desktop: Athlon XP 2600+, 2GB, WinXP</p>
<p>[index.php]</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">Php says 2 + 2 = <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #990000;">echo</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Since PHP code is a very simple one, response time (or cpu usage) should have better representation of  magnet/rewrite over-head.</p>
<p><strong>Statistics without any technique</strong></p>
<p>C:\>openload.exe http://example.com/index.php 4</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">MaTps 237.86, Tps 237.86, Resp Time  0.016, Err   0%, Count   240
MaTps 237.77, Tps 237.00, Resp Time  0.017, Err   0%, Count   477
MaTps 238.06, Tps 240.59, Resp Time  0.017, Err   0%, Count   720
MaTps 238.55, Tps 243.03, Resp Time  0.016, Err   0%, Count   964
MaTps 238.58, Tps 238.85, Resp Time  0.017, Err   0%, Count  1205
MaTps 238.28, Tps 235.59, Resp Time  0.017, Err   0%, Count  1442
MaTps 238.12, Tps 236.61, Resp Time  0.017, Err   0%, Count  1685
MaTps 238.20, Tps 239.00, Resp Time  0.017, Err   0%, Count  1924
MaTps 238.51, Tps 241.28, Resp Time  0.017, Err   0%, Count  2166
MaTps 238.29, Tps 236.29, Resp Time  0.017, Err   0%, Count  2403
MaTps 239.21, Tps 247.52, Resp Time  0.016, Err   0%, Count  2653
MaTps 239.37, Tps 240.80, Resp Time  0.017, Err   0%, Count  2895
MaTps 238.50, Tps 230.69, Resp Time  0.017, Err   0%, Count  3128
MaTps 239.05, Tps 244.00, Resp Time  0.016, Err   0%, Count  3372
MaTps 239.52, Tps 243.76, Resp Time  0.016, Err   0%, Count  3616
MaTps 238.90, Tps 233.30, Resp Time  0.017, Err   0%, Count  3850
MaTps 240.06, Tps 250.50, Resp Time  0.016, Err   0%, Count  4103
MaTps 240.23, Tps 241.79, Resp Time  0.017, Err   0%, Count  4346
MaTps 240.49, Tps 242.81, Resp Time  0.016, Err   0%, Count  4591
MaTps 239.78, Tps 233.37, Resp Time  0.017, Err   0%, Count  4826
MaTps 240.11, Tps 243.06, Resp Time  0.016, Err   0%, Count  5071
MaTps 240.20, Tps 241.07, Resp Time  0.017, Err   0%, Count  5314
MaTps 240.23, Tps 240.52, Resp Time  0.017, Err   0%, Count  5555
MaTps 240.57, Tps 243.54, Resp Time  0.016, Err   0%, Count  5800
MaTps 240.79, Tps 242.81, Resp Time  0.016, Err   0%, Count  6045
MaTps 240.82, Tps 241.07, Resp Time  0.017, Err   0%, Count  6288
MaTps 240.32, Tps 235.82, Resp Time  0.017, Err   0%, Count  6525
MaTps 241.19, Tps 249.00, Resp Time  0.016, Err   0%, Count  6774
MaTps 241.20, Tps 241.28, Resp Time  0.016, Err   0%, Count  7016</pre></div></div>

<p><em>CPU usage by lighttpd process was swinging between 20% &#038; 22%</em></p>
<p><span id="more-30"></span><br />
<strong>Statistics for mod_magnet</strong></p>
<p>[lighttpd.conf]</p>

<div class="wp_syntax"><div class="code"><pre class="lua" style="font-family:monospace;">$HTTP<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;host&quot;</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">==</span> <span style="color: #ff0000;">&quot;example.com&quot;</span> <span style="color: #66cc66;">&#123;</span>
  server.document-root <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">&quot;/sites/example.com/htdocs&quot;</span>
  magnet.attract-physical-path-to <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span> server.document-root + <span style="color: #ff0000;">&quot;/rewrite.lua&quot;</span> <span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>C:\>openload.exe http://example.com/index.php 4</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">MaTps 228.40, Tps 228.40, Resp Time  0.017, Err   0%, Count   230
MaTps 227.47, Tps 219.12, Resp Time  0.018, Err   0%, Count   450
MaTps 227.17, Tps 224.43, Resp Time  0.018, Err   0%, Count   676
MaTps 226.31, Tps 218.60, Resp Time  0.018, Err   0%, Count   897
MaTps 224.58, Tps 208.98, Resp Time  0.018, Err   0%, Count  1111
MaTps 224.39, Tps 222.66, Resp Time  0.019, Err   0%, Count  1335
MaTps 224.07, Tps 221.23, Resp Time  0.018, Err   0%, Count  1558
MaTps 223.32, Tps 216.57, Resp Time  0.019, Err   0%, Count  1775
MaTps 222.38, Tps 213.93, Resp Time  0.019, Err   0%, Count  1990
MaTps 223.41, Tps 232.67, Resp Time  0.017, Err   0%, Count  2225
MaTps 222.73, Tps 216.57, Resp Time  0.018, Err   0%, Count  2442
MaTps 223.61, Tps 231.54, Resp Time  0.017, Err   0%, Count  2674
MaTps 223.86, Tps 226.10, Resp Time  0.018, Err   0%, Count  2901
MaTps 224.37, Tps 229.00, Resp Time  0.018, Err   0%, Count  3130
MaTps 223.91, Tps 219.78, Resp Time  0.018, Err   0%, Count  3350
MaTps 223.00, Tps 214.79, Resp Time  0.019, Err   0%, Count  3565
MaTps 222.64, Tps 219.37, Resp Time  0.018, Err   0%, Count  3787
MaTps 222.37, Tps 220.00, Resp Time  0.018, Err   0%, Count  4007
MaTps 222.11, Tps 219.78, Resp Time  0.018, Err   0%, Count  4227
MaTps 222.10, Tps 222.00, Resp Time  0.018, Err   0%, Count  4449
MaTps 222.25, Tps 223.55, Resp Time  0.018, Err   0%, Count  4673
MaTps 221.56, Tps 215.42, Resp Time  0.018, Err   0%, Count  4891</pre></div></div>

<p>C:\>openload.exe http://example.com/missing/ 4</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">MaTps 210.95, Tps 210.95, Resp Time  0.019, Err   0%, Count   212
MaTps 212.25, Tps 224.00, Resp Time  0.018, Err   0%, Count   436
MaTps 213.80, Tps 227.77, Resp Time  0.018, Err   0%, Count   664
MaTps 214.51, Tps 220.90, Resp Time  0.018, Err   0%, Count   886
MaTps 214.44, Tps 213.79, Resp Time  0.019, Err   0%, Count  1100
MaTps 215.47, Tps 224.78, Resp Time  0.018, Err   0%, Count  1325
MaTps 216.20, Tps 222.77, Resp Time  0.018, Err   0%, Count  1550
MaTps 215.36, Tps 207.79, Resp Time  0.019, Err   0%, Count  1758
MaTps 215.83, Tps 220.00, Resp Time  0.018, Err   0%, Count  1978
MaTps 216.95, Tps 227.09, Resp Time  0.017, Err   0%, Count  2206
MaTps 217.84, Tps 225.87, Resp Time  0.018, Err   0%, Count  2433
MaTps 217.59, Tps 215.28, Resp Time  0.019, Err   0%, Count  2650
MaTps 218.91, Tps 230.85, Resp Time  0.017, Err   0%, Count  2882
MaTps 218.90, Tps 218.81, Resp Time  0.018, Err   0%, Count  3103
MaTps 219.21, Tps 222.00, Resp Time  0.018, Err   0%, Count  3325
MaTps 219.23, Tps 219.37, Resp Time  0.018, Err   0%, Count  3547
MaTps 218.91, Tps 216.00, Resp Time  0.019, Err   0%, Count  3763
MaTps 219.21, Tps 222.00, Resp Time  0.018, Err   0%, Count  3985
MaTps 219.59, Tps 223.00, Resp Time  0.018, Err   0%, Count  4208
MaTps 219.43, Tps 217.91, Resp Time  0.018, Err   0%, Count  4427
MaTps 219.89, Tps 224.10, Resp Time  0.018, Err   0%, Count  4652
MaTps 220.04, Tps 221.34, Resp Time  0.018, Err   0%, Count  4874</pre></div></div>

<p><em>CPU usage by lighttpd process was swinging between 25% &#038; 28%</em></p>
<p><strong>Statistics for mod_rewrite</strong></p>
<p>[lighttpd.conf]</p>

<div class="wp_syntax"><div class="code"><pre class="lua" style="font-family:monospace;">$HTTP<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;host&quot;</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">==</span> <span style="color: #ff0000;">&quot;example.com&quot;</span> <span style="color: #66cc66;">&#123;</span>
  server.document-root <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">&quot;/sites/example.com/htdocs&quot;</span>
  url.rewrite <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#40;</span>
    <span style="color: #ff0000;">&quot;^/(.*)<span style="color: #000099; font-weight: bold;">\.</span>(.+)$&quot;</span> <span style="color: #66cc66;">=&gt;</span> <span style="color: #ff0000;">&quot;$0&quot;</span>,
    <span style="color: #ff0000;">&quot;^/(.+)/?$&quot;</span> <span style="color: #66cc66;">=&gt;</span> <span style="color: #ff0000;">&quot;/index.php/$1&quot;</span>
  <span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>C:\>openload.exe http://example.com/index.php 4</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">MaTps 219.00, Tps 219.00, Resp Time  0.018, Err   0%, Count   219
MaTps 219.32, Tps 222.22, Resp Time  0.018, Err   0%, Count   443
MaTps 219.05, Tps 216.57, Resp Time  0.018, Err   0%, Count   660
MaTps 219.84, Tps 227.00, Resp Time  0.018, Err   0%, Count   887
MaTps 220.02, Tps 221.67, Resp Time  0.018, Err   0%, Count  1110
MaTps 220.40, Tps 223.78, Resp Time  0.018, Err   0%, Count  1334
MaTps 220.79, Tps 224.33, Resp Time  0.018, Err   0%, Count  1559
MaTps 221.69, Tps 229.77, Resp Time  0.018, Err   0%, Count  1789
MaTps 221.17, Tps 216.48, Resp Time  0.018, Err   0%, Count  2007
MaTps 222.12, Tps 230.69, Resp Time  0.017, Err   0%, Count  2240
MaTps 222.39, Tps 224.78, Resp Time  0.018, Err   0%, Count  2465
MaTps 222.22, Tps 220.68, Resp Time  0.018, Err   0%, Count  2687
MaTps 222.63, Tps 226.32, Resp Time  0.018, Err   0%, Count  2914
MaTps 223.20, Tps 228.32, Resp Time  0.017, Err   0%, Count  3143
MaTps 222.88, Tps 220.00, Resp Time  0.018, Err   0%, Count  3363
MaTps 222.49, Tps 219.00, Resp Time  0.018, Err   0%, Count  3582
MaTps 222.34, Tps 221.00, Resp Time  0.018, Err   0%, Count  3803
MaTps 223.14, Tps 230.31, Resp Time  0.017, Err   0%, Count  4034
MaTps 222.64, Tps 218.13, Resp Time  0.018, Err   0%, Count  4253
MaTps 223.17, Tps 228.00, Resp Time  0.018, Err   0%, Count  4481
MaTps 223.75, Tps 229.00, Resp Time  0.018, Err   0%, Count  4710
MaTps 222.96, Tps 215.78, Resp Time  0.018, Err   0%, Count  4926</pre></div></div>

<p>C:\>openload.exe http://example.com/missing/ 4</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">MaTps 219.78, Tps 219.78, Resp Time  0.018, Err   0%, Count   220
MaTps 219.64, Tps 218.34, Resp Time  0.018, Err   0%, Count   439
MaTps 219.71, Tps 220.36, Resp Time  0.018, Err   0%, Count   662
MaTps 219.85, Tps 221.12, Resp Time  0.018, Err   0%, Count   884
MaTps 219.58, Tps 217.13, Resp Time  0.018, Err   0%, Count  1102
MaTps 219.79, Tps 221.67, Resp Time  0.018, Err   0%, Count  1325
MaTps 220.00, Tps 221.89, Resp Time  0.018, Err   0%, Count  1548
MaTps 221.49, Tps 234.89, Resp Time  0.017, Err   0%, Count  1785
MaTps 221.39, Tps 220.57, Resp Time  0.018, Err   0%, Count  2008
MaTps 221.92, Tps 226.64, Resp Time  0.018, Err   0%, Count  2236
MaTps 222.13, Tps 224.00, Resp Time  0.018, Err   0%, Count  2460
MaTps 221.11, Tps 212.00, Resp Time  0.019, Err   0%, Count  2672
MaTps 221.90, Tps 229.00, Resp Time  0.018, Err   0%, Count  2901
MaTps 222.57, Tps 228.54, Resp Time  0.017, Err   0%, Count  3130
MaTps 222.91, Tps 226.00, Resp Time  0.018, Err   0%, Count  3356
MaTps 222.39, Tps 217.69, Resp Time  0.018, Err   0%, Count  3575
MaTps 222.64, Tps 224.88, Resp Time  0.018, Err   0%, Count  3801
MaTps 222.85, Tps 224.78, Resp Time  0.018, Err   0%, Count  4026
MaTps 221.17, Tps 206.00, Resp Time  0.019, Err   0%, Count  4232
MaTps 221.97, Tps 229.17, Resp Time  0.017, Err   0%, Count  4463
MaTps 222.73, Tps 229.62, Resp Time  0.017, Err   0%, Count  4694
MaTps 223.74, Tps 232.84, Resp Time  0.017, Err   0%, Count  4928</pre></div></div>

<p><em>CPU usage by lighttpd process was swinging between 21% &#038; 23%</em></p>
<p><strong>Conclusions</strong></p>
<p>Permalink solution using mod_magnet &#038; mod_rewrite are having similar response time (under light load - 4 concurrent users). I did not see any significant performance difference (for response time) in both solution. I&#8217;ve also performed similar test for 10 concurrent users and results were similar (response time increased by about 50%).</p>
<p>I also monitored CPU usage by lighttpd process during the test and it was slightly higher (25-28%) for mod_magnet based solution (as compared to 21-23% for mod_rewrite). This indicates that <strong>mod_rewrite</strong> should perform slightly better under heavy load. Sorry, I could not confirm heavy load scenario as my desktop CPU was maxing (going 60-80%) for 10 concurrent users.</p>
<p>Note: Permalink solution based on mod_magnet is more reliable and should always work for any permalink pattern. Permalink solution based on mod_rewrite needs special tuning for not-so-common patterns and non-wordpress content inside your webroot. For example, my favorite pattern <em>/%category%/%postname%.html</em> and <em>custom folder like http://sudhaker.com/demo/</em> will need special tuning in mod_rewrite rules.</p>
<p>Cheers,<br />
Sudhaker</p>
]]></content:encoded>
			<wfw:commentRss>http://sudhaker.com/web-development/lighttpd-modules-compared-mod_magnet-and-mod_rewrite.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Store Warranty on Golf Equipments</title>
		<link>http://sudhaker.com/golf-for-techie/store-warranty-on-golf-equipments.html</link>
		<comments>http://sudhaker.com/golf-for-techie/store-warranty-on-golf-equipments.html#comments</comments>
		<pubDate>Fri, 03 Oct 2008 21:50:23 +0000</pubDate>
		<dc:creator>Sudhaker</dc:creator>
		
		<category><![CDATA[Golf for Techie]]></category>

		<category><![CDATA[store warranty]]></category>

		<category><![CDATA[warranty scam]]></category>

		<guid isPermaLink="false">http://sudhaker.com/golf-for-techie/store-warranty-on-golf-equipments.html</guid>
		<description><![CDATA[I recently bought a &#8220;TaylorMade Burner Draw 460 Drivers&#8221; from a leading sporting goods chain for $199 (currently selling for $149 +taxes). The salesman (a golf-pro working there) also wanted me to get the &#8220;Store Warranty&#8221; for extra $18. Store warranty would cover any damage to the club for next two years which was tempting [...]]]></description>
			<content:encoded><![CDATA[<p>I recently bought a &#8220;TaylorMade Burner Draw 460 Drivers&#8221; from a leading sporting goods chain for $199 (currently selling for $149 +taxes). The salesman (a golf-pro working there) also wanted me to get the &#8220;Store Warranty&#8221; for extra $18. Store warranty would cover any damage to the club for next two years which was tempting but somehow I declined it.<span id="more-28"></span></p>
<p>Indeed, it was a great driver from the best golf equipment manufacturer. Within a month I was hitting about 300 yards; my tee-shots were straighter, farther and staying more on the fairway.  Needless to say that credit also goes to my instructor &#8220;Joe Porter&#8221; and my hard efforts.</p>
<p>After two months on a range I observed a half-inch dent on the club face. It was little heart breaking for me to find the deformity at the edge of the sweet spot. I ran to &#8220;retail store&#8221; immediately where they called it a manufacturing defect (not an abuse) but expressed their inability to do anything about it. They would have given me a brand new club if I had their &#8220;store warranty&#8221; but now I am left to deal with manufacturer directly.</p>
<p>Anyway, the very next day I called &#8220;TaylorMade&#8221; and a friendly staff heard my full story. She was very happy about &#8220;declining the store warranty&#8221; part. According to her, it is a popular SCAM where retailers typically re-sell the &#8220;manufacturer warranty&#8221; as it is and pocket the extra money for it. SCAM! SCAM!! SCAM!!!</p>
<p>She suggested me two options:<br />
1) Send the club to &#8220;TaylorMade&#8221; and they will send the replacement for free (may take few weeks).<br />
2) Go to &#8220;retailer&#8221; and ask for replacement.</p>
<p>Second option was obviously better! I explained the situation once again and repeated what store manager told me earlier; &#8220;we do not have such relationship with manufacturer and can&#8217;t deal with them on your behalf&#8221;.</p>
<p>She laughed a bit and said &#8220;Another lie! Any authorized retailer selling our equipments is supposed to honor this manufacturer warranty&#8221;. She asked me to visit the store once again and ask the manager to give her a call. She also gave me her direct number along with her supervisor&#8217;s for backup (in case she is busy with any other customer). Wow! What a friendly customer service <img src='http://sudhaker.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>So I went to the store and found a different store manager who repeated exactly same stuff (no shop warranty, can&#8217;t do anything, call manufacturer directly). I smiled and handed over the paper with phone numbers. Then I said &#8220;I&#8217;ve talked to them already and they are very eager to talk to you; according to them retailer is supposed to take care of it&#8221;.</p>
<p>This worked like magic and the guy was literally speechless. Without any further argument, he left for the area where drivers were kept and pulled a brand new club. I got a new club <img src='http://sudhaker.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Well, now you know what to say when a salesman is trying to resell you the manufacturer&#8217;s warranty as-it-is. Almost all top golf manufacturers mandate their authorized retailer to honor their warranty.</p>
<p>See the follwoing faq from TaylorMade&#8217;s website.</p>
<blockquote><p>
Q: WHAT DO I DO IF I HAVE BROKEN MY CLUB AND IT IS STILL UNDER WARRANTY?</p>
<p>If you have broken your TaylorMade club, please take it in to your nearest TaylorMade retailer for evaluation. <strong>The retailer will call in the damaged club, and have it sent in to us for repair/replacement.</strong> To exercise our five year warranty on our clubs, you do not need a receipt or proof of purchase unless it is specifically requested. To be covered by our two year warranty, you must have your sales receipt from the authorized TaylorMade retailer. The consumer may be responsible for shipping charges to return the defective product back to us. TaylorMade will return the repaired or replaced product at no charge.</p>
<p>Details can be found on our Warranty Information page. You can locate a TaylorMade retailer in your area by using our Retail Locator.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://sudhaker.com/golf-for-techie/store-warranty-on-golf-equipments.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>The Tax System - Explained With Beer</title>
		<link>http://sudhaker.com/techie-talks/chit-chat/the-tax-system-explained-with-beer.html</link>
		<comments>http://sudhaker.com/techie-talks/chit-chat/the-tax-system-explained-with-beer.html#comments</comments>
		<pubDate>Thu, 02 Oct 2008 18:27:51 +0000</pubDate>
		<dc:creator>Sudhaker</dc:creator>
		
		<category><![CDATA[Chit Chat]]></category>

		<guid isPermaLink="false">http://sudhaker.com/techie-talks/chit-chat/the-tax-system-explained-with-beer.html</guid>
		<description><![CDATA[Suppose that every day, ten men go out for beer and the bill for all ten comes to $100. If they paid their bill the way we pay our taxes, it would go something like this:
The first four men (the poorest) would pay nothing.
The fifth would pay $1.
The sixth would pay $3.
The seventh would pay [...]]]></description>
			<content:encoded><![CDATA[<p>Suppose that every day, ten men go out for beer and the bill for all ten comes to $100. If they paid their bill the way we pay our taxes, it would go something like this:</p>
<p>The first four men (the poorest) would pay nothing.<br />
The fifth would pay $1.<br />
The sixth would pay $3.<br />
The seventh would pay $7.<br />
The eighth would pay $12.<br />
The ninth would pay $18.<br />
The tenth man (the richest) would pay $59.<br />
<span id="more-27"></span><br />
So, that&#8217;s what they decided to do.</p>
<p>The ten men drank in the bar every day and seemed quite happy with the arrangement, until one day, the owner threw them a curve. &#8220;Since you are all such good customers,&#8221; he said, &#8220;I&#8217;m going to reduce the cost of your daily beer by $20.&#8221;Drinks for the ten now cost just $80.</p>
<p>The group still wanted to pay their bill the way we pay our taxes so the first four men were unaffected. They would still drink for free. But what about the other six men - the paying customers? How could they divide the $20 windfall so that everyone would get his &#8216;fair share?&#8217;</p>
<p>They realized that $20 divided by six is $3.33. But if they subtracted that from everybody&#8217;s share, then the fifth man and the sixth man would each end up being paid to drink his beer. So, the bar owner suggested that it would be fair to reduce each man&#8217;s bill by roughly the same amount, and he proceeded to work out the amounts each should pay.</p>
<p>And so:</p>
<p>The fifth man, like the first four, now paid nothing (100% savings).<br />
The sixth now paid $2 instead of $3 (33%savings).<br />
The seventh now pay $5 instead of $7 (28%savings).<br />
The eighth now paid $9 instead of $12 (25% savings).<br />
The ninth now paid $14 instead of $18 (22% savings).<br />
The tenth now paid $49 instead of $59 (16% savings).</p>
<p>Each of the six was better off than before. And the first four continued to drink for free. But once outside the restaurant, the men began to compare their savings.</p>
<p>&#8220;I only got a dollar out of the $20,&#8221;declared the sixth man. He pointed to the tenth man,&#8221; but he got $10!&#8221;</p>
<p>&#8220;Yeah, that&#8217;s right,&#8221; exclaimed the fifth man. &#8220;I only saved a dollar, too. It&#8217;s unfair that he got ten times more than I!&#8221;</p>
<p>&#8220;That&#8217;s true!!&#8221; shouted the seventh man. &#8220;Why should he get $10 back when I got only two? The wealthy get all the breaks!&#8221;</p>
<p>&#8220;Wait a minute,&#8221; yelled the first four men in unison. &#8220;We didn&#8217;t get anything at all. The system exploits the poor!&#8221;</p>
<p>The nine men surrounded the tenth and beat him up.</p>
<p>The next night the tenth man didn&#8217;t show up for drinks, so the nine sat down and had beers without him. But when it came time to pay the bill, they discovered something important. They didn&#8217;t have enough money between all of them for even half of the bill!</p>
<p>And that, boys and girls, journalists and college professors, is how our tax system works. The people who pay the highest taxes get the most benefit from a tax reduction. Tax them too much, attack them for being wealthy, and they just may not show up anymore. In fact, they might start drinking overseas where the atmosphere is somewhat friendlier.</p>
<p><em>David R. Kamerschen, Ph.D.<br />
Professor of Economics<br />
University of Georgia</em></p>
<blockquote><p>For those who understand, no explanation is needed.<br />
For those who do not understand, no explanation is possible.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://sudhaker.com/techie-talks/chit-chat/the-tax-system-explained-with-beer.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Companies Listed at AMEX, NASDAQ and NYSE</title>
		<link>http://sudhaker.com/financial-world/companies-listed-at-amex-nasdaq-and-nyse.html</link>
		<comments>http://sudhaker.com/financial-world/companies-listed-at-amex-nasdaq-and-nyse.html#comments</comments>
		<pubDate>Thu, 25 Sep 2008 17:48:30 +0000</pubDate>
		<dc:creator>Sudhaker</dc:creator>
		
		<category><![CDATA[Financial World]]></category>

		<guid isPermaLink="false">http://sudhaker.com/financial-world/companies-listed-at-amex-nasdaq-and-nyse.html</guid>
		<description><![CDATA[You can download CSV for list of companies listed at AMEX (American Stock Exchange), NASDAQ (National Association of Securities Dealers Automated Quotations) and NYSE (New York Stock Exchange) from here.
FYI: Data is not clean and requires some deal of scripting before you can extract list of symbols from it. I&#8217;ll post more on this to [...]]]></description>
			<content:encoded><![CDATA[<p>You can download CSV for list of companies listed at AMEX (American Stock Exchange), NASDAQ (National Association of Securities Dealers Automated Quotations) and NYSE (New York Stock Exchange) from <a href="http://www.nasdaq.com/reference/comlookup.stm">here</a>.</p>
<p>FYI: Data is not clean and requires some deal of scripting before you can extract list of symbols from it. I&#8217;ll post more on this to make things better and handy.</p>
<p>Cheers,</p>
]]></content:encoded>
			<wfw:commentRss>http://sudhaker.com/financial-world/companies-listed-at-amex-nasdaq-and-nyse.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Companies Listed at NYSE</title>
		<link>http://sudhaker.com/financial-world/companies-listed-at-nyse.html</link>
		<comments>http://sudhaker.com/financial-world/companies-listed-at-nyse.html#comments</comments>
		<pubDate>Thu, 25 Sep 2008 17:28:12 +0000</pubDate>
		<dc:creator>Sudhaker</dc:creator>
		
		<category><![CDATA[Financial World]]></category>

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

		<guid isPermaLink="false">http://sudhaker.com/financial-world/list-of-nyse-listed-companies.html</guid>
		<description><![CDATA[Here is a small program that can create list of companies listed at NYSE (New York Stock Exchange). I created the script to help a friend of mine who has a itch for &#8220;stock analysis&#8221;.

&#60;?php
$files = range&#40;'A', 'Z'&#41;;
$files&#91;&#93; = 'Other';
&#160;
$curl = curl_init&#40;&#41;;
curl_setopt&#40;$curl, CURLOPT_USERAGENT, &#34;Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)&#34;&#41;;
curl_setopt&#40;$curl, CURLOPT_RETURNTRANSFER, TRUE&#41;;
&#160;
foreach &#40;$files as $f&#41; [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a small program that can create list of companies listed at NYSE (New York Stock Exchange). I created the script to help a friend of mine who has a itch for &#8220;stock analysis&#8221;.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$files</span> <span style="color: #339933;">=</span> <span style="color: #990000;">range</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'A'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Z'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$files</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Other'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$curl</span> <span style="color: #339933;">=</span> curl_init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
curl_setopt<span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span> CURLOPT_USERAGENT<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
curl_setopt<span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span> CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">TRUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$files</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$f</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://www.nyse.com/about/listed/lc_ny_name_<span style="color: #006699; font-weight: bold;">${f}</span>.js&quot;</span><span style="color: #339933;">;</span>
  curl_setopt<span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #339933;">,</span> CURLOPT_URL<span style="color: #339933;">,</span> <span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> curl_exec<span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">// get symbol from JS</span>
  <span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'%\[\&quot;(\w*)\&quot;,%'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$content</span><span style="color: #339933;">,</span> <span style="color: #000088;">$matches</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$symbol</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #990000;">echo</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$symbol</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>I&#8217;ll upload the complete list somewhere to make it more handy.</p>
<p>Cheers,</p>
]]></content:encoded>
			<wfw:commentRss>http://sudhaker.com/financial-world/companies-listed-at-nyse.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Funny Quotes About Commuter</title>
		<link>http://sudhaker.com/techie-talks/chit-chat/funny-quotes-about-commuter.html</link>
		<comments>http://sudhaker.com/techie-talks/chit-chat/funny-quotes-about-commuter.html#comments</comments>
		<pubDate>Wed, 24 Sep 2008 15:34:26 +0000</pubDate>
		<dc:creator>Sudhaker</dc:creator>
		
		<category><![CDATA[Chit Chat]]></category>

		<guid isPermaLink="false">http://sudhaker.com/techie-talks/chit-chat/funny-quotes-about-commuter.html</guid>
		<description><![CDATA[Commuter &#8212; one who spends his life in riding to and from his wife; And man who shaves and takes a train, and then rides back to shave again. - Elwyn Brooks White
Funny, isn&#8217;t it?
Cheers,
]]></description>
			<content:encoded><![CDATA[<blockquote><p><strong>Commuter</strong> &#8212; one who spends his life in riding to and from his wife; And man who shaves and takes a train, and then rides back to shave again. - Elwyn Brooks White</p></blockquote>
<p>Funny, isn&#8217;t it?</p>
<p>Cheers,</p>
]]></content:encoded>
			<wfw:commentRss>http://sudhaker.com/techie-talks/chit-chat/funny-quotes-about-commuter.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Switch Email Hosting To Google Apps</title>
		<link>http://sudhaker.com/web-development/switch-email-hosting-to-google-apps.html</link>
		<comments>http://sudhaker.com/web-development/switch-email-hosting-to-google-apps.html#comments</comments>
		<pubDate>Tue, 23 Sep 2008 17:29:26 +0000</pubDate>
		<dc:creator>Sudhaker</dc:creator>
		
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://sudhaker.com/web-development/switch-email-hosting-to-google-apps.html</guid>
		<description><![CDATA[Here are few reasons for switching your email service (for your small business/personal domains) to Google apps.
1. Google is very reputed and trusted company
- check their company profile
2. Email component in Google Apps platform is Gmail
- the best available in the market, Web 2.0 platform
- IMAP and Pop3 access are free
- mobile version is also [...]]]></description>
			<content:encoded><![CDATA[<p>Here are few reasons for switching your email service (for your small business/personal domains) to <em>Google apps</em>.</p>
<p>1. Google is very reputed and trusted company<br />
- check their <a href="http://finance.yahoo.com/q?s=GOOG" target="_blank">company profile</a><br />
2. Email component in Google Apps platform is Gmail<br />
- the best available in the market, Web 2.0 platform<br />
- IMAP and Pop3 access are free<br />
- mobile version is also included<br />
3. Google apps is built using massive distributed infrastructure<br />
- great reliability<br />
- huge mailbox, never have to delete any email<br />
4. Better SPAM handling<br />
- best spam flagging (lesser false spam)<br />
- better delivery chances for legitimate email sender<br />
5. Standard edition is free, enterprise is cheap<br />
- free is great for non-profit, small business and webmasters<br />
- enterprise edition is cheaper than owning your own infrastructure</p>
]]></content:encoded>
			<wfw:commentRss>http://sudhaker.com/web-development/switch-email-hosting-to-google-apps.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
