<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.mohanjith.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Mohanjith's Blog</title><link>http://mohanjith.net/blog</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.mohanjith.com/Mohanjith" /><description>MOHA bloging news and thoughts...</description><language>en</language><lastBuildDate>Tue, 23 Feb 2010 02:45:01 PST</lastBuildDate><generator>http://wordpress.org/?v=2.9.2</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.mohanjith.com/Mohanjith" /><feedburner:info uri="mohanjith" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Mohanjith</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><title>Patch the iPC DVD image – Step 1 – Installing Mac OS X 10.5.8 on AMD Athlon X2</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/44aR55JNFMw/patch-the-ipc-dvd-image-step-1-installing-mac-os-x-10-5-8-on-amd-athlon-x2.html</link><category>Mac OS X</category><category>GeForce 6100</category><category>nForce</category><category>nForce 405</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Tue, 23 Feb 2010 02:43:18 PST</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=487</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>When booting the DVD it was always stuck at &#8220;Still waiting for root device&#8230;&#8221;, this was because there was no kext for SATA chip for my motherboard (nForce 405 chip). It was simple has adding the required kext to the DVD and rebuilding the Extensions.mkext. Unfortunately you will need a working Mac OS X installation to do this. Follow the instructions bellow.</p><p><strong>Mount the image in read write mode</strong></p><pre>$ hdiutil mount iPC_OSx86_10.5.6.iso -readwrite
</pre><p><strong>Extract kexts from mkext</strong></p><pre>$ mkdir /tmp/Extensions
$ mkextunpack -d /tmp/Extensions Extensions.mkext
</pre><p><strong>Copy kexts and remove unwanted kexts</strong></p><pre>$ cp -R nForceLan.kext /tmp/Extesions/
$ cp -R AppleNForceATA.kext /tmp/Extensions/
$ find /tmp/Extensions/ -name "*Intel*" -print0 | xargs -0 rm -R
</pre><p><strong>Cache kext into mkext</strong></p><pre>$ sudo chown -R root:wheel /tmp/Extensions/
$ sudo chmod -R 755 /tmp/Extensions/
$ kextcache -a i386 -m /tmp/Extensions.mkext /tmp/Extensions
</pre><p><strong>Copy Extenions.mkext to /System/Library on the ISO</strong></p><pre>$ cp /tmp/Extensions.mkext .
</pre><p>That&#8217;s it, now unmount the ISO and burn it to a DVD. Now we are ready to move on to the next step. I&#8217;ll be posting the details for actual installation Mac OS X 10.5.6 tomorrow.</p><div
id="_mcePaste" style="position: absolute; left: -10000px; top: 171px; width: 1px; height: 1px; overflow: hidden;"><pre>/tmp/Extensions</pre></div> 
<p><a href="http://feedads.g.doubleclick.net/~a/IPG5cWg_Ln-XVEkO4YpTQIDIhCc/0/da"><img src="http://feedads.g.doubleclick.net/~a/IPG5cWg_Ln-XVEkO4YpTQIDIhCc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/IPG5cWg_Ln-XVEkO4YpTQIDIhCc/1/da"><img src="http://feedads.g.doubleclick.net/~a/IPG5cWg_Ln-XVEkO4YpTQIDIhCc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=44aR55JNFMw:5yb4TpxGx2c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=44aR55JNFMw:5yb4TpxGx2c:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=44aR55JNFMw:5yb4TpxGx2c:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=44aR55JNFMw:5yb4TpxGx2c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=44aR55JNFMw:5yb4TpxGx2c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=44aR55JNFMw:5yb4TpxGx2c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=44aR55JNFMw:5yb4TpxGx2c:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=44aR55JNFMw:5yb4TpxGx2c:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=44aR55JNFMw:5yb4TpxGx2c:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=44aR55JNFMw:5yb4TpxGx2c:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=44aR55JNFMw:5yb4TpxGx2c:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=44aR55JNFMw:5yb4TpxGx2c:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=44aR55JNFMw:5yb4TpxGx2c:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/44aR55JNFMw" height="1" width="1"/>]]></content:encoded><description>When booting the DVD it was always stuck at &amp;#8220;Still waiting for root device&amp;#8230;&amp;#8221;, this was because there was no kext for SATA chip for my motherboard (nForce 405 chip). It was simple has adding the required kext to the DVD and rebuilding the Extensions.mkext. Unfortunately you will need a working Mac OS X installation [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2010/02/patch-the-ipc-dvd-image-step-1-installing-mac-os-x-10-5-8-on-amd-athlon-x2.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2010/02/patch-the-ipc-dvd-image-step-1-installing-mac-os-x-10-5-8-on-amd-athlon-x2.html</feedburner:origLink></item><item><title>Installing Mac OS X 10.5.8 on AMD Athlon X2</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/GlRZTH7HuIk/installing-mac-os-x-10-5-8-on-amd-athlon-x2.html</link><category>Mac OS X</category><category>AMD</category><category>Athlon</category><category>GeForce 6100</category><category>nForce</category><category>nForce 405</category><category>nVidia</category><category>X2</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Sun, 21 Feb 2010 12:39:04 PST</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=469</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><img
class="size-full wp-image-471 alignright" style="margin-right: 5px; margin-left: 5px;" title="Mac OS X 10.5.8" src="http://mohanjith.net.nyud.net/blog/wp-content/uploads/2010/02/mac_os_x_10.5.8.png" alt="Mac OS X 10.5.8" width="313" height="385" />I managed to install Mac OS X 10.5.8 on an AMD Athlon X2 system after little trouble. I&#8217;ll post the procedure to make sure if I have to do it again I can easily refer and someone trying to do the same can save the trouble. This will be composed of a series of posts, a post per step.</p><p>In the mean time find out the specifications of your box. I&#8217;m using GIGABYTE GAPM61SME-S2 motherboard with AMD Athlon X2 CPU. If your specifications are just like mine go ahead and download all the files listed bellow, otherwise download 1-3 and then look for kexts for your motherboard.</p><p><strong>System specification</strong></p><ul><li>AMD Athlon X2 2800</li><li>nVidia GeForce 6100/nForce 405 chipset</li><li>1 x 2 GB of DDR2 DIMM</li><li>On board ethernet (nForce 10/1oo Mbit)</li><li>Realtek ALC883 CODEC chip</li><li>SATA HDD (nForce sata controller)</li><li>USB Mouse</li><li>USB Keyboard</li><li>DVD Drive</li></ul><p><strong>Downloads</strong></p><ol><li>iPC OSx86 Leopard 10.5.6 Intel AMD SSE2 SSE3 DVD (Google and find out, you will have to download via Bit torrent)</li><li>Mac OS X 10.5.7 Update (http://keti.ws/95282)</li><li>Mac OS X 10.5.8 Combo Update (http://keti.ws/95283)</li><li>nForceLAN (http://keti.ws/94281)</li><li>AppleNForceATA (http://keti.ws/95281)</li></ol><p><strong>Steps</strong></p><ol><li>Patch the iPC DVD image (Otherwise the DVD will never boot)</li><li>Install Mac OS X 10.5.6</li><li>Remove all Intel kexts (Improves the boot time)</li><li>Install Mac OS X 10.5.7 update</li><li>Install Mac OS X 10.5.8 update</li></ol><p>Await step 1, Patching the iPC DVD image tomorrow.</p> 
<p><a href="http://feedads.g.doubleclick.net/~a/dbW7Gx5hUgy6soQI4YNR62hhnks/0/da"><img src="http://feedads.g.doubleclick.net/~a/dbW7Gx5hUgy6soQI4YNR62hhnks/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/dbW7Gx5hUgy6soQI4YNR62hhnks/1/da"><img src="http://feedads.g.doubleclick.net/~a/dbW7Gx5hUgy6soQI4YNR62hhnks/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=GlRZTH7HuIk:S5hvfxRDP2U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=GlRZTH7HuIk:S5hvfxRDP2U:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=GlRZTH7HuIk:S5hvfxRDP2U:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=GlRZTH7HuIk:S5hvfxRDP2U:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=GlRZTH7HuIk:S5hvfxRDP2U:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=GlRZTH7HuIk:S5hvfxRDP2U:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=GlRZTH7HuIk:S5hvfxRDP2U:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=GlRZTH7HuIk:S5hvfxRDP2U:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=GlRZTH7HuIk:S5hvfxRDP2U:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=GlRZTH7HuIk:S5hvfxRDP2U:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=GlRZTH7HuIk:S5hvfxRDP2U:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=GlRZTH7HuIk:S5hvfxRDP2U:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=GlRZTH7HuIk:S5hvfxRDP2U:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/GlRZTH7HuIk" height="1" width="1"/>]]></content:encoded><description>I managed to install Mac OS X 10.5.8 on an AMD Athlon X2 system after little trouble. I&amp;#8217;ll post the procedure to make sure if I have to do it again I can easily refer and someone trying to do the same can save the trouble. This will be composed of a series of posts, [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2010/02/installing-mac-os-x-10-5-8-on-amd-athlon-x2.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2010/02/installing-mac-os-x-10-5-8-on-amd-athlon-x2.html</feedburner:origLink></item><item><title>Movie science vs actual science</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/hLn-DzkDOrs/movie-science-vs-actual-science.html</link><category>comic</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Thu, 31 Dec 2009 22:41:58 PST</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=461</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><img
class="aligncenter" title="Science Montage fromxkcd" src="http://imgs.xkcd.com/comics/science_montage.png" alt="Science Montage" width="461" height="865" /></p> 
<p><a href="http://feedads.g.doubleclick.net/~a/D7qZsFn-vPJeYWCIJ_bvveaLLmw/0/da"><img src="http://feedads.g.doubleclick.net/~a/D7qZsFn-vPJeYWCIJ_bvveaLLmw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/D7qZsFn-vPJeYWCIJ_bvveaLLmw/1/da"><img src="http://feedads.g.doubleclick.net/~a/D7qZsFn-vPJeYWCIJ_bvveaLLmw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=hLn-DzkDOrs:ZRkIoa7E-TE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=hLn-DzkDOrs:ZRkIoa7E-TE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=hLn-DzkDOrs:ZRkIoa7E-TE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=hLn-DzkDOrs:ZRkIoa7E-TE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=hLn-DzkDOrs:ZRkIoa7E-TE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=hLn-DzkDOrs:ZRkIoa7E-TE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=hLn-DzkDOrs:ZRkIoa7E-TE:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=hLn-DzkDOrs:ZRkIoa7E-TE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=hLn-DzkDOrs:ZRkIoa7E-TE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=hLn-DzkDOrs:ZRkIoa7E-TE:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=hLn-DzkDOrs:ZRkIoa7E-TE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=hLn-DzkDOrs:ZRkIoa7E-TE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=hLn-DzkDOrs:ZRkIoa7E-TE:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/hLn-DzkDOrs" height="1" width="1"/>]]></content:encoded><description></description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2010/01/movie-science-vs-actual-science.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2010/01/movie-science-vs-actual-science.html</feedburner:origLink></item><item><title>With great power comes great …</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/rhnRZvXt9CY/with-great-power-comes-great.html</link><category>comic</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Thu, 01 Oct 2009 05:40:08 PDT</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=453</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p
style="text-align: center;"><img
class="aligncenter" title="OHM" src="http://imgs.xkcd.com/comics/ohm.png" alt="With great power comes great current squared times resistance." width="242" height="313" /></p> 
<p><a href="http://feedads.g.doubleclick.net/~a/HJSSRusgZtvDEmnrjJIBDghvq08/0/da"><img src="http://feedads.g.doubleclick.net/~a/HJSSRusgZtvDEmnrjJIBDghvq08/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/HJSSRusgZtvDEmnrjJIBDghvq08/1/da"><img src="http://feedads.g.doubleclick.net/~a/HJSSRusgZtvDEmnrjJIBDghvq08/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rhnRZvXt9CY:MI6BljMWt0E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rhnRZvXt9CY:MI6BljMWt0E:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=rhnRZvXt9CY:MI6BljMWt0E:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rhnRZvXt9CY:MI6BljMWt0E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=rhnRZvXt9CY:MI6BljMWt0E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rhnRZvXt9CY:MI6BljMWt0E:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rhnRZvXt9CY:MI6BljMWt0E:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rhnRZvXt9CY:MI6BljMWt0E:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=rhnRZvXt9CY:MI6BljMWt0E:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rhnRZvXt9CY:MI6BljMWt0E:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rhnRZvXt9CY:MI6BljMWt0E:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rhnRZvXt9CY:MI6BljMWt0E:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=rhnRZvXt9CY:MI6BljMWt0E:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/rhnRZvXt9CY" height="1" width="1"/>]]></content:encoded><description></description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/10/with-great-power-comes-great.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/10/with-great-power-comes-great.html</feedburner:origLink></item><item><title>The search for intelligent life</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/E73YwhAfqaI/the-search-for-intelligent-life.html</link><category>comic</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Fri, 18 Sep 2009 04:28:58 PDT</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=447</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><img
class="aligncenter" title="The Search" src="http://imgs.xkcd.com/comics/the_search.png" alt="" width="413" height="336" /></p> 
<p><a href="http://feedads.g.doubleclick.net/~a/oxBd2j_GvYs_0qT_zjx4BmD1IT0/0/da"><img src="http://feedads.g.doubleclick.net/~a/oxBd2j_GvYs_0qT_zjx4BmD1IT0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/oxBd2j_GvYs_0qT_zjx4BmD1IT0/1/da"><img src="http://feedads.g.doubleclick.net/~a/oxBd2j_GvYs_0qT_zjx4BmD1IT0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=E73YwhAfqaI:TdNTJAlxqmg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=E73YwhAfqaI:TdNTJAlxqmg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=E73YwhAfqaI:TdNTJAlxqmg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=E73YwhAfqaI:TdNTJAlxqmg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=E73YwhAfqaI:TdNTJAlxqmg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=E73YwhAfqaI:TdNTJAlxqmg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=E73YwhAfqaI:TdNTJAlxqmg:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=E73YwhAfqaI:TdNTJAlxqmg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=E73YwhAfqaI:TdNTJAlxqmg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=E73YwhAfqaI:TdNTJAlxqmg:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=E73YwhAfqaI:TdNTJAlxqmg:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=E73YwhAfqaI:TdNTJAlxqmg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=E73YwhAfqaI:TdNTJAlxqmg:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/E73YwhAfqaI" height="1" width="1"/>]]></content:encoded><description></description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/09/the-search-for-intelligent-life.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/09/the-search-for-intelligent-life.html</feedburner:origLink></item><item><title>Using custom error pages in Varnish</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/rlXW5yx2bMA/using-custom-error-pages-in-varnish.html</link><category>errors</category><category>varnish</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Mon, 24 Aug 2009 04:24:40 PDT</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=391</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>While playing around with the <a
href="/blog/2009/08/fancy-http-error-pages-5xx.html">fancy error pages</a> I wanted to use them with <a
href="http://varnish.projects.linpro.no/">Varnish</a> as well. Since there is no means to include a file or serve a file from Varnish (without serving from a back end server), I went with inline C snippet to read and serve the error pages. Please note that the style sheet and the images are being served from a CDN. Otherwise it will have to be cached prior to the back end server becoming inaccessible. <a
href="http://pastebin.com/f1fa0f6a1">Here</a> is the whole vcl_error sub. You will notice that we fall back to default Varnish error page for anything other than 5XX errors.</p><p><code><pre class="brush: c; ">
sub vcl_error {
set obj.http.Content-Type = &quot;text/html; charset=utf-8&quot;;

if ( obj.status &gt;= 500 &amp;&amp; obj.status &lt;= 505) {
C{
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;

FILE * pFile;
char content [100];
char page [10240];
char fname [50];

page[0] = &#039;\0&#039;;
sprintf(fname, &quot;/var/www/errors/%d.html&quot;, VRT_r_obj_status(sp));

pFile = fopen(fname, &quot;r&quot;);
while (fgets(content, 100, pFile)) {
strcat(page, content);
}
fclose(pFile);
VRT_synth_page(sp, 0, page, &quot;&lt;!-- XID: &quot;, VRT_r_req_xid(sp), &quot; --&gt;&quot;, vrt_magic_string_end);
}C
} else {
synthetic {&quot;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;&quot;} obj.status &quot; &quot; obj.response {&quot;&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Error &quot;} obj.status &quot; &quot; obj.response {&quot;&lt;/h1&gt;
&lt;p&gt;&quot;} obj.response {&quot;&lt;/p&gt;
&lt;h3&gt;Guru Meditation:&lt;/h3&gt;
&lt;p&gt;XID: &quot;} req.xid {&quot;&lt;/p&gt;
&lt;address&gt;
&lt;a href=&quot;http://www.varnish-cache.org/&quot;&gt;Varnish&lt;/a&gt;
&lt;/address&gt;
&lt;/body&gt;
&lt;/html&gt;
&quot;};
}

return (deliver);
}
</pre><p>Hope someone will find this useful as I had to put some effort to find out all the internal Varnish function names</p> 
<p><a href="http://feedads.g.doubleclick.net/~a/4OfNYQMLkdvqrOspVwOv4B07WnU/0/da"><img src="http://feedads.g.doubleclick.net/~a/4OfNYQMLkdvqrOspVwOv4B07WnU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/4OfNYQMLkdvqrOspVwOv4B07WnU/1/da"><img src="http://feedads.g.doubleclick.net/~a/4OfNYQMLkdvqrOspVwOv4B07WnU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rlXW5yx2bMA:SBWVkoZlAOo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rlXW5yx2bMA:SBWVkoZlAOo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=rlXW5yx2bMA:SBWVkoZlAOo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rlXW5yx2bMA:SBWVkoZlAOo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=rlXW5yx2bMA:SBWVkoZlAOo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rlXW5yx2bMA:SBWVkoZlAOo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rlXW5yx2bMA:SBWVkoZlAOo:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rlXW5yx2bMA:SBWVkoZlAOo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=rlXW5yx2bMA:SBWVkoZlAOo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rlXW5yx2bMA:SBWVkoZlAOo:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rlXW5yx2bMA:SBWVkoZlAOo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=rlXW5yx2bMA:SBWVkoZlAOo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=rlXW5yx2bMA:SBWVkoZlAOo:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/rlXW5yx2bMA" height="1" width="1"/>]]></content:encoded><description>While playing around with the fancy error pages I wanted to use them with Varnish as well. Since there is no means to include a file or serve a file from Varnish (without serving from a back end server), I went with inline C snippet to read and serve the error pages. Please note that [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/08/using-custom-error-pages-in-varnish.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/08/using-custom-error-pages-in-varnish.html</feedburner:origLink></item><item><title>Fancy HTTP Error pages – 5xx</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/Jz401vQ-IZY/fancy-http-error-pages-5xx.html</link><category>errors</category><category>Apache HTTP Server</category><category>Lighttpd</category><category>varnish</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Mon, 24 Aug 2009 01:05:59 PDT</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=388</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>If you hadn&#8217;t noticed my site was giving HTTP 500 errors last couple of days. The issue was found to be a segfault and it&#8217;s fixed now. That got me to come up with a set of funny and slick HTTP error pages. I only came up with HTTP 5xx error pages, I believe HTTP 4xx error pages should be specific to the site. You can download them <a
href="http://mohanjith.com/public/downloads/misc/errors.zip">here</a>. If you want to take a peek, here is the list. HTTP <a
href="http://mohanjith.net/errors/500.html">500</a>, <a
href="http://mohanjith.net/errors/501.html">501</a>, <a
href="http://mohanjith.net/errors/502.html">502</a>, <a
href="http://mohanjith.net/errors/503.html">503</a>, <a
href="http://mohanjith.net/errors/504.html">504</a>, <a
href="http://mohanjith.net/errors/505.html">505</a>. Feel free to modify them and share what you come up with.</p> 
<p><a href="http://feedads.g.doubleclick.net/~a/4Y6EougILF1QnFfLh62K52rSMfA/0/da"><img src="http://feedads.g.doubleclick.net/~a/4Y6EougILF1QnFfLh62K52rSMfA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/4Y6EougILF1QnFfLh62K52rSMfA/1/da"><img src="http://feedads.g.doubleclick.net/~a/4Y6EougILF1QnFfLh62K52rSMfA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=Jz401vQ-IZY:yJDdvISN-PE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=Jz401vQ-IZY:yJDdvISN-PE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=Jz401vQ-IZY:yJDdvISN-PE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=Jz401vQ-IZY:yJDdvISN-PE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=Jz401vQ-IZY:yJDdvISN-PE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=Jz401vQ-IZY:yJDdvISN-PE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=Jz401vQ-IZY:yJDdvISN-PE:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=Jz401vQ-IZY:yJDdvISN-PE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=Jz401vQ-IZY:yJDdvISN-PE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=Jz401vQ-IZY:yJDdvISN-PE:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=Jz401vQ-IZY:yJDdvISN-PE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=Jz401vQ-IZY:yJDdvISN-PE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=Jz401vQ-IZY:yJDdvISN-PE:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/Jz401vQ-IZY" height="1" width="1"/>]]></content:encoded><description>If you hadn&amp;#8217;t noticed my site was giving HTTP 500 errors last couple of days. The issue was found to be a segfault and it&amp;#8217;s fixed now. That got me to come up with a set of funny and slick HTTP error pages. I only came up with HTTP 5xx error pages, I believe HTTP [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/08/fancy-http-error-pages-5xx.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/08/fancy-http-error-pages-5xx.html</feedburner:origLink></item><item><title>How to customize a WordPress plugin and upgrade</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/lOlwGEffZLk/how-to-customize-a-wordpress-plugin-and-upgrade.html</link><category>Git</category><category>WordPress</category><category>hacking</category><category>subversion</category><category>svn</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Tue, 18 Aug 2009 06:42:39 PDT</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=381</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Sometimes you want to make minor changes to WordPress plugins that no body except your self would want. Then comes the issue of upgrading to new versions of the plugin. git-svn is the perfect tool for this. It has all the cool features of the distributed SCM git and ability to pull from subversion (and push to it as well). Here is how I do it:</p><ol><li>Clone the trunk<pre class="brush: shell; toolbar: false; gutter: false;">
git svn clone http://svn.wp-plugins.org/web-invoice/trunk/
</pre></li><li>Make your changes</li><li>Commit changes locally<pre class="brush: shell; toolbar: false; gutter: false;">
git commit -a
</pre></li><li>Pull new changes (e.g. new release). Git is very good at merging, you will not have conflicts unless you edit exact same lines in the local version. Still a manual merge shouldn&#8217;t be too complicated<pre class="brush: shell; toolbar: false; gutter: false;">
git svn rebase
</pre></li></ol><p>In the example I have taken the svn trunk of <a
href="http://mohanjith.com/wordpress/web-invoice.html">Web Invoice</a> WordPress plugin. Hope you find this information useful next time you hack a WordPress plugin.</p> 
<p><a href="http://feedads.g.doubleclick.net/~a/tsukbSE8pSNIGn6HvOjVaVw-TEM/0/da"><img src="http://feedads.g.doubleclick.net/~a/tsukbSE8pSNIGn6HvOjVaVw-TEM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/tsukbSE8pSNIGn6HvOjVaVw-TEM/1/da"><img src="http://feedads.g.doubleclick.net/~a/tsukbSE8pSNIGn6HvOjVaVw-TEM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=lOlwGEffZLk:k0EkKnS7CQc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=lOlwGEffZLk:k0EkKnS7CQc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=lOlwGEffZLk:k0EkKnS7CQc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=lOlwGEffZLk:k0EkKnS7CQc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=lOlwGEffZLk:k0EkKnS7CQc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=lOlwGEffZLk:k0EkKnS7CQc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=lOlwGEffZLk:k0EkKnS7CQc:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=lOlwGEffZLk:k0EkKnS7CQc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=lOlwGEffZLk:k0EkKnS7CQc:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=lOlwGEffZLk:k0EkKnS7CQc:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=lOlwGEffZLk:k0EkKnS7CQc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=lOlwGEffZLk:k0EkKnS7CQc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=lOlwGEffZLk:k0EkKnS7CQc:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/lOlwGEffZLk" height="1" width="1"/>]]></content:encoded><description>Sometimes you want to make minor changes to WordPress plugins that no body except your self would want. Then comes the issue of upgrading to new versions of the plugin. git-svn is the perfect tool for this. It has all the cool features of the distributed SCM git and ability to pull from subversion (and [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/08/how-to-customize-a-wordpress-plugin-and-upgrade.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/08/how-to-customize-a-wordpress-plugin-and-upgrade.html</feedburner:origLink></item><item><title>Dialog GSM has been deceiving the public</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/gmCTqLA5IKU/dialog-gsm-has-been-deceiving-the-public.html</link><category>Dialog</category><category>billing department</category><category>local calls</category><category>marketing</category><category>public shame</category><category>sri lanka</category><category>telecom provider</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Thu, 23 Apr 2009 00:28:33 PDT</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=369</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Dialog GSM (biggest telecom provider in Sri Lanka) has been deceiving the public about their Family package tarrifs. Their marketing material, customer service representatives and the web site states there is a commitment of Rs. 250 (Local call charges) per supplementary connection and no commitment for the primary connection. Until February it was the case, but from March they started to have a commitment for the primary connection as well. I made a complaint to Dialog and initial response was prompt but there after one person from the billing department agreed that there was a mistake and 2 weeks later another person called up and said it was correct and the marketing material was wrong. Just to clarify I contacted the customer service department to clarify things viola, their intial response was that there is no commitment for the primary package but when I insisted that it may be wrong and many minutes of waiting they got back to me saying there is a group commitment of  Rs. 250.</p><p>If you have a <a
href="http://www.dialog.lk/en/mobile/tariff/postpaid/familypackage.html" target="_blank">Dialog Family package</a> please go through your bills for February and March (April if you have already got it) 2009 and you will see the difference. Please post a comment if you are affected and even if you are not affected leave a comment then we might be able to find a pattern <img
src='http://mohanjith.net.nyud.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . It might not affect you if your primary connection makes more than Rs. 250 worth of local calls, not the case with me.</p><p>If you want to see my bills please leave a comment, it&#8217;s 8 pages, little too much to post in a blog.</p><p>I believe this is clearly deceiving the public. Shame on you Dialog GSM.</p> 
<p><a href="http://feedads.g.doubleclick.net/~a/5DAORsWEze37U3oeze0PfBGp-To/0/da"><img src="http://feedads.g.doubleclick.net/~a/5DAORsWEze37U3oeze0PfBGp-To/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/5DAORsWEze37U3oeze0PfBGp-To/1/da"><img src="http://feedads.g.doubleclick.net/~a/5DAORsWEze37U3oeze0PfBGp-To/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gmCTqLA5IKU:OpsW0fXnX7E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gmCTqLA5IKU:OpsW0fXnX7E:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=gmCTqLA5IKU:OpsW0fXnX7E:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gmCTqLA5IKU:OpsW0fXnX7E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=gmCTqLA5IKU:OpsW0fXnX7E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gmCTqLA5IKU:OpsW0fXnX7E:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gmCTqLA5IKU:OpsW0fXnX7E:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gmCTqLA5IKU:OpsW0fXnX7E:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=gmCTqLA5IKU:OpsW0fXnX7E:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gmCTqLA5IKU:OpsW0fXnX7E:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gmCTqLA5IKU:OpsW0fXnX7E:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gmCTqLA5IKU:OpsW0fXnX7E:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=gmCTqLA5IKU:OpsW0fXnX7E:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/gmCTqLA5IKU" height="1" width="1"/>]]></content:encoded><description>Dialog GSM (biggest telecom provider in Sri Lanka) has been deceiving the public about their Family package tarrifs. Their marketing material, customer service representatives and the web site states there is a commitment of Rs. 250 (Local call charges) per supplementary connection and no commitment for the primary connection. Until February it was the case, [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/04/dialog-gsm-has-been-deceiving-the-public.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/04/dialog-gsm-has-been-deceiving-the-public.html</feedburner:origLink></item><item><title>Twitter Updates for 2009-04-21</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/N4S1Qaeo0lY/twitter-updates-for-2009-04-21.html</link><category>twitter</category><category>definitive agreement</category><category>hunch</category><category>oracle</category><category>sun</category><category>Twi</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Mon, 20 Apr 2009 20:29:00 PDT</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/2009/04/twitter-updates-for-2009-04-21.html</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<ul
class="aktt_tweet_digest"><li>Oracle has come to a definitive agreement to acquire Sun. See <a
rel="nofollow" href="http://keti.ws/41284">http://keti.ws/41284</a> . Wonder where MySQL will head <a
href="http://twitter.com/mohanjith/statuses/1565037146">#</a></li><li>@<a
href="http://twitter.com/hunch">hunch</a> is impressive. Checkout <a
rel="nofollow" href="http://www.hunch.com/">http://www.hunch.com/</a> . But you will have to wait for an invitation. <a
href="http://twitter.com/mohanjith/statuses/1564361565">#</a></li><li>Sign into my TwitterRemote on <a
rel="nofollow" href="http://twittercounter.com/mohanjith">http://twittercounter.com/mohanjith</a> so I know when you check my stats! <a
href="http://twitter.com/mohanjith/statuses/1563969737">#</a></li></ul> 
<p><a href="http://feedads.g.doubleclick.net/~a/KUk75FBi9OBL1CXCD9oLBBJEMLQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/KUk75FBi9OBL1CXCD9oLBBJEMLQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/KUk75FBi9OBL1CXCD9oLBBJEMLQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/KUk75FBi9OBL1CXCD9oLBBJEMLQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=N4S1Qaeo0lY:lgNr4tSFU5E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=N4S1Qaeo0lY:lgNr4tSFU5E:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=N4S1Qaeo0lY:lgNr4tSFU5E:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=N4S1Qaeo0lY:lgNr4tSFU5E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=N4S1Qaeo0lY:lgNr4tSFU5E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=N4S1Qaeo0lY:lgNr4tSFU5E:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=N4S1Qaeo0lY:lgNr4tSFU5E:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=N4S1Qaeo0lY:lgNr4tSFU5E:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=N4S1Qaeo0lY:lgNr4tSFU5E:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=N4S1Qaeo0lY:lgNr4tSFU5E:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=N4S1Qaeo0lY:lgNr4tSFU5E:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=N4S1Qaeo0lY:lgNr4tSFU5E:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=N4S1Qaeo0lY:lgNr4tSFU5E:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/N4S1Qaeo0lY" height="1" width="1"/>]]></content:encoded><description>Oracle has come to a definitive agreement to acquire Sun. See http://keti.ws/41284 . Wonder where MySQL will head #
@hunch is impressive. Checkout http://www.hunch.com/ . But you will have to wait for an invitation. #
Sign into my TwitterRemote on http://twittercounter.com/mohanjith so I know when you check my stats! #</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/04/twitter-updates-for-2009-04-21.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/04/twitter-updates-for-2009-04-21.html</feedburner:origLink></item><item><title>Load balanced and High Availability cluster for your web site under USD 60 pm – Part 2</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/fH_pL-y1rOw/load-balanced-and-high-availability-cluster-for-your-web-site-under-usd-60-pm-part-2.html</link><category>Lighttpd</category><category>Linux</category><category>authentication keys</category><category>config</category><category>High Availability</category><category>keygen</category><category>MySQL</category><category>PHP</category><category>public key</category><category>root logins</category><category>rsa</category><category>SSH</category><category>ssh tunnel</category><category>tunnels</category><category>vpn</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Tue, 14 Apr 2009 07:21:13 PDT</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=273</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Update 2009-09-02:</strong> Now I&#8217;m using a single Linode and a Xen VPS from my very own <a
href="http://mohanjith.com/xen-linux-vps.html">hosting service</a>. This means the VPSes have one less thing in common; hosting company.</p><p>As I promised, here is the post that will discuss in detail how I configured my cluster of 2 nodes to host my sites.</p><p><strong>Setting up SSH tunnels</strong></p><p>You have to setup a SSH tunnel between the nodes. In order to do that you need to allow restricted root logins into your nodes. Using your favourite text editor edit <code>/etc/ssh/sshd_config</code> and change the line <code>PermitRootLogin</code> to <code>PermitRootLogin forced-commands-only</code>.</p><p>Then generate SSH authentication keys for all your nodes and add the public keys to <code>/root/.ssh/authorized_keys</code> on other nodes. Keys can be generated by running <code>ssh-keygen</code>. By default your private key is stored in <code>/root/.ssh/id_rsa</code> and public key in <code>/root/.ssh/id_rsa.pub</code>. Your public key will look similar to bellow (Key shortened for brevity)</p><p><code><pre class="brush: plain; toolbar: false; gutter: false;">
ssh-rsa AAAA...w== root@example.com
</pre><p></code></p><p>To enable tunnel only access via root you need to add <code>tunnel="0",command="/sbin/ifdown tun0;/sbin/ifup tun0" </code> before your public key in <code>/root/.ssh/authorized_keys</code>. Your <code>/root/.ssh/authorized_keys</code> will look something like bellow.</p><p><code><pre class="brush: plain; toolbar: false; gutter: false;">
tunnel=&#039;0&#039;,command=&#039;/sbin/ifdown tun0;/sbin/ifup tun0&#039; ssh-rsa AAAA...w== root@example.com
</pre><p></code></p><p>Now setup the actual tunnel. Add following lines to <code>/etc/network/interfaces</code> in the &#8220;server&#8221;</p><p><code><pre class="brush: plain; ">

auto tun0
iface tun0 inet static
address 10.100.2.1
netmask 255.255.255.0
pointopoint 10.100.2.2
</pre><p></code></p><p>and the following in the &#8220;client&#8221;</p><p><code><pre class="brush: plain; ">

auto tun0
iface tun0 inet static
pre-up ssh -S /var/run/ssh-myvpn-tunnel-control -M -f -w 0:0 example.com true
pre-up sleep 5
address 10.100.2.2
pointopoint 10.100.2.1
netmask 255.255.255.0
up route add -net 10.100.2.0 netmask 255.255.255.0 gw 10.100.2.0 tun0
post-down ssh -S /var/run/ssh-myvpn-tunnel-control -O exit example.com
</pre><p></code></p><p>Now you only have to restart  networking to enable the tunnel. Now your nodes will be in their own VPN.</p><p><strong>Setting up document root replication (<code>rsync</code>)</strong></p><p>Share /var/www via rsync. You need to install rsync and add following to /etc/rsyncd.conf if they are not already there.</p><p><code><pre class="brush: plain; ">
max connections = 2
log file = /var/log/rsync.log
timeout = 300

[www]
comment = DOC Root
path = /var/www
read only = yes
list = yes
uid = www-data
gid = www-data
auth users = replicator
secrets file = /etc/rsyncd.secrets
</pre><p></code></p><p>Add following cron jobs to www-data crontab (crontab -e)</p><p><code><pre class="brush: plain; gutter: false; toolbar: false;">

1/10 *  *   *   *    test -r /tmp/rsync.docroot.lock || touch /tmp/rsync.docroot.lock &amp;&amp; rsync -aP rsync://replicator@10.100.2.2/www/ /var/www/ --password-file=/etc/rsync.secrets  --contimeout=30  &gt; /dev/null 2&gt;1 &amp;&amp; rm /tmp/rsync.docroot.lock
</pre><p></code></p><p><code><pre class="brush: plain; gutter: false; toolbar: false;">

1/10 *  *   *   *    test -r /tmp/rsync.docroot.lock || touch /tmp/rsync.docroot.lock &amp;&amp; rsync -aP rsync://replicator@10.100.2.1/www/ /var/www/ --password-file=/etc/rsync.secrets  --contimeout=30 &gt; /dev/null 2&gt;1 &amp;&amp; rm /tmp/rsync.docroot.lock
</pre><p></code></p><p><strong>Setting up <code>session_mysql</code></strong></p><p>Next let us setup <code>session_mysql</code> such that we can forget  about replicating PHP session <img
src='http://mohanjith.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p><p>Install php5-dev and libmysql++-dev, download <a
href="http://websupport.sk/~stanojr/projects/session_mysql/" target="_blank"><code>session_mysql</code></a> and extract it, running following commands as root within the extracted location.</p><p><code><pre class="brush: bash; ">
export PHP_PREFIX=&#039;/usr&#039;
$PHP_PREFIX/bin/phpize
./configure --enable-session-mysql --with-php-config=$PHP_PREFIX/bin/php-config --with-mysql=$PHP_PREFIX
make
make install
</pre><p></code></p><p>Create the database to store the session data with the following SQL</p><p><code><pre class="brush: sql; ">

create database phpsession;
grant all privileges on phpsession.* to phpsession identified by &#039;phpsession&#039;; -- CHANGE DEFAULT PASSWORD
create table phpsession(
sess_key char(64) not null,
sess_mtime int(10) unsigned not null,
sess_host char(64) not null,
sess_val mediumblob not null,

index i_key(sess_key(6)),
index i_mtime(sess_mtime),
index i_host(sess_host)
);
</pre><p></code></p><p>Add the following to your <code>php.ini</code> (or <code>/etc/php5/conf.d/session_mysql.ini</code>)</p><p><code><pre class="brush: plain; ">

session.save_handler = &#039;mysql&#039;
session_mysql.db=&#039;host=localhost db=phpsession user=phpsession pass=phpsession&#039;
</pre><p></code></p><p>Do not forget to change the default password. Restart Apache or Lighttpd (or any other web server you are using).</p><p><strong>MySQL asynchronous two way replication</strong></p><p>I&#8217;m sure some of you are asking why I went for asynchronous replication. Main reasons being flexibility and lack of nodes (My cluster is just 2 nodes).</p><p>Stop MySQL from listening only to local connections. Remember to review your user table (<code>mysql.user</code>) to make sure you don&#8217;t grant wild card access like <code>'user'@'%'</code>. Comment out bind-address in<code>/etc/mysql/my.cnf</code> in all nodes. Then add following to node1</p><p><code><pre class="brush: plain; ">
server-id               = 1
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset   = 1
log_bin                 = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M

master-host = 10.100.2.2
master-user = slave_user_0
master-password = your$password
master-connect-retry = 60
</pre><p></code></p><p>and following to node2</p><p><code><pre class="brush: plain; ">
server-id               = 2
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset   = 2
log_bin                 = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M

master-host = 10.100.2.1
master-user = slave_user_1
master-password = your$password
master-connect-retry = 60
</pre><p></code></p><p>Now create the users only granting them with replication rights. Also make sure you specify the hostname or the IP to make sure someone is not offloading your data <img
src='http://mohanjith.net.nyud.net/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . Following SQL will create the users given in the example. You will have to run the command in both nodes as the data in either node is identical.</p><p><code><pre class="brush: sql; ">
CREATE USER &#039;slave_user_1&#039;@&#039;10.100.2.1&#039; IDENTIFIED BY &#039;your$password&#039;;

GRANT REPLICATION SLAVE ON * . * TO &#039;slave_user_1&#039;@&#039;10.100.2.1&#039; IDENTIFIED BY &#039;your$password&#039; WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER &#039;slave_user_2&#039;@&#039;10.100.2.2&#039; IDENTIFIED BY &#039;your$password&#039;;

GRANT REPLICATION SLAVE ON * . * TO &#039;slave_user_2&#039;@&#039;10.100.2.2&#039; IDENTIFIED BY &#039;your$password&#039; WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
</pre><p></code></p><p>Now start MySQL and run following in <code>mysql</code> prompt on each of the nodes.</p><p><code><pre class="brush: sql; ">
reset master;
stop slave;
start slave;
</pre><p></code></p><p><strong>Finally</strong></p><p>Now you have a cluster of 2 nodes where you can run your PHP site. Your databases are replicated, your user  session data is replicated and your document root is replicated. Have fun, if you have issues please post it as a comment.</p> 
<p><a href="http://feedads.g.doubleclick.net/~a/mnNYOFv8389tMkRMsjsOXYA7x8g/0/da"><img src="http://feedads.g.doubleclick.net/~a/mnNYOFv8389tMkRMsjsOXYA7x8g/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mnNYOFv8389tMkRMsjsOXYA7x8g/1/da"><img src="http://feedads.g.doubleclick.net/~a/mnNYOFv8389tMkRMsjsOXYA7x8g/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=fH_pL-y1rOw:DoFrlvQ5LxE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=fH_pL-y1rOw:DoFrlvQ5LxE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=fH_pL-y1rOw:DoFrlvQ5LxE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=fH_pL-y1rOw:DoFrlvQ5LxE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=fH_pL-y1rOw:DoFrlvQ5LxE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=fH_pL-y1rOw:DoFrlvQ5LxE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=fH_pL-y1rOw:DoFrlvQ5LxE:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=fH_pL-y1rOw:DoFrlvQ5LxE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=fH_pL-y1rOw:DoFrlvQ5LxE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=fH_pL-y1rOw:DoFrlvQ5LxE:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=fH_pL-y1rOw:DoFrlvQ5LxE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=fH_pL-y1rOw:DoFrlvQ5LxE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=fH_pL-y1rOw:DoFrlvQ5LxE:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/fH_pL-y1rOw" height="1" width="1"/>]]></content:encoded><description>Update 2009-09-02: Now I&amp;#8217;m using a single Linode and a Xen VPS from my very own hosting service. This means the VPSes have one less thing in common; hosting company.
As I promised, here is the post that will discuss in detail how I configured my cluster of 2 nodes to host my sites.
Setting up SSH [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/04/load-balanced-and-high-availability-cluster-for-your-web-site-under-usd-60-pm-part-2.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/04/load-balanced-and-high-availability-cluster-for-your-web-site-under-usd-60-pm-part-2.html</feedburner:origLink></item><item><title>Load balanced and High Availability cluster for your web site under USD 60 pm</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/p5fU-5ZvRbc/load-balanced-and-high-availability-cluster-for-your-web-site-under-usd-60-pm.html</link><category>Uncategorized</category><category>High Availability</category><category>Lighttpd</category><category>Linux</category><category>MySQL</category><category>PHP</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Mon, 06 Apr 2009 06:19:45 PDT</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=258</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Update 2009-09-02:</strong> Now I&#8217;m using a single Linode and a Xen VPS from my very own <a
href="http://mohanjith.com/xen-linux-vps.html">hosting service</a>. This means the VPSes have one more thing less in common, hosting company.</p><p>Until recently I used one <a
href="http://keti.ws/138" target="_blank">Linode VPS</a> for hosting all my sites. On 26th March, there was a DDoS attack on one of the Linode customers in the Fremont Datacenter (where my node was as well). This made my sites inaccessible for couple of hours. This got me thinking, what could be done to mitigate such downtime. Answer of course is having a load balanced and high availability cluster. However I couldn&#8217;t afford 2 dedicated servers to do this, but I of course can afford 2 Linodes <img
src='http://mohanjith.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . I&#8217;ll try to explain how I set up a load balanced, high availability and shared nothing cluster using Linodes (you can use any VPS or dedicated server). I used two Linode 540 s for the job.</p><p>All of my web sites are either using PHP, Python or Perl. All of them are using MySQL as the database. Problems I had to solve were;</p><ol><li>replicate files across the nodes</li><li>replicate databases across the nodes</li><li>replicate session (PHP session variables) across the nodes</li></ol><p>All the replication needs to be done securely, so I went for a SSH tunnel between the nodes of the cluster. Over which I&#8217;ll;</p><ol><li>use <code>rsync</code> to replicate/synchronize the document root</li><li>use MySQL asynchronous replication (not a <code>NDBCLUSTER</code>) to synchronize data across the nodes</li><li>use <code>session_mysql</code> PECL extension to store PHP session in MySQL database transparent to all applications</li></ol><p>Check back next week when I&#8217;ll post with configuration examples on how I configured my server. If you are in a hurry above pointers are good enough to get you started.</p> 
<p><a href="http://feedads.g.doubleclick.net/~a/cC6nW2gH8LA0x-uW7z2YTcO9r78/0/da"><img src="http://feedads.g.doubleclick.net/~a/cC6nW2gH8LA0x-uW7z2YTcO9r78/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/cC6nW2gH8LA0x-uW7z2YTcO9r78/1/da"><img src="http://feedads.g.doubleclick.net/~a/cC6nW2gH8LA0x-uW7z2YTcO9r78/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=p5fU-5ZvRbc:f1neMDdMHEs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=p5fU-5ZvRbc:f1neMDdMHEs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=p5fU-5ZvRbc:f1neMDdMHEs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=p5fU-5ZvRbc:f1neMDdMHEs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=p5fU-5ZvRbc:f1neMDdMHEs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=p5fU-5ZvRbc:f1neMDdMHEs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=p5fU-5ZvRbc:f1neMDdMHEs:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=p5fU-5ZvRbc:f1neMDdMHEs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=p5fU-5ZvRbc:f1neMDdMHEs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=p5fU-5ZvRbc:f1neMDdMHEs:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=p5fU-5ZvRbc:f1neMDdMHEs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=p5fU-5ZvRbc:f1neMDdMHEs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=p5fU-5ZvRbc:f1neMDdMHEs:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/p5fU-5ZvRbc" height="1" width="1"/>]]></content:encoded><description>Update 2009-09-02: Now I&amp;#8217;m using a single Linode and a Xen VPS from my very own hosting service. This means the VPSes have one more thing less in common, hosting company.
Until recently I used one Linode VPS for hosting all my sites. On 26th March, there was a DDoS attack on one of the Linode [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/04/load-balanced-and-high-availability-cluster-for-your-web-site-under-usd-60-pm.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/04/load-balanced-and-high-availability-cluster-for-your-web-site-under-usd-60-pm.html</feedburner:origLink></item><item><title>How to customize Web Invoice e-mail templates</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/gzYu3QJNH6A/how-to-customize-web-invoice-e-mail-templates.html</link><category>Uncategorized</category><category>Web Invoice</category><category>WordPress</category><category>plugin</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Mon, 06 Apr 2009 04:06:20 PDT</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=255</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>In the latest release of Web Invoice &#8211; Invoicing and Billing for WordPress plugin you can customize the e-mails sent to your clients. You can customize the subject as well as the e-mail content. Please bear in mind that Web Invoice only supports plain text e-mails, but you can do wonders with plain text <img
src='http://mohanjith.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .  This can definitely come in handy if you want to localize your invoices or just does not like what comes as default.</p><p>Now to get to the point, the e-mail templates are found in &#8216;Web Invoice&#8217; -&gt; &#8216;E-mail templates&#8217;.  There are three templates,</p><ul><li>Invoice e-mail &#8211; First e-mail your client receives about the invoice</li><li>Reminder e-mail &#8211; E-mail sent when send reminder(s) is selected</li><li>Receipt e-mail &#8211; Sent when the client makes a payment. You also need to set &#8216;Send Payment Confirmation&#8217; to yes in Settings</li></ul><p>All variables are of the format <code>%variable_name</code>. Bellow you will find the list of variables available in the current version.</p><ul><li><code>%call_sign</code> &#8211; First name + Last name of the client</li><li><code>%business_name</code> &#8211; Business name as set in the &#8216;Settings&#8217;</li><li><code>%recurring</code> &#8211; Recurring or not</li><li><code>%amount</code> &#8211; Amount, with currency symbol and currency formatted</li><li><code>%link</code> &#8211; Link to the invoice</li><li><code>%business_email</code> &#8211; Business e-mail as set in the &#8216;Settings&#8217;</li><li><code>%subject</code> &#8211; Invoice subject</li><li><code>%description</code> &#8211; Invoice description</li></ul><p>You can definitely use the default templates as a guideline for your templates. IMHO, default templaes are awesome <img
src='http://mohanjith.net.nyud.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p>Don&#8217;t go away, there is more. You can write your own plugin to add more variables. e.g. you want to use web invoice along with a booking system. In your plugin add a filter for web_invoice_email_variables and add to the global array (variable) <code>$web_invoices_email_variables</code>.</p><p>I want to hear what you think about this feature or Web Invoice in general. Please post your ideas and comments in the <a
href="http://mohanjith.com/forum/forum.php?id=1" target="_blank">Web Invoice community forum</a>. Do not forget to subscribe to my <a
href="http://feeds.mohanjith.net/Mohanjith" target="_blank">RSS feed</a> to get latest news about WordPress plugins and all things web <img
src='http://mohanjith.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> 
<p><a href="http://feedads.g.doubleclick.net/~a/fXEmDbofBlcRQ3KXy5lQmZ_Lxvs/0/da"><img src="http://feedads.g.doubleclick.net/~a/fXEmDbofBlcRQ3KXy5lQmZ_Lxvs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/fXEmDbofBlcRQ3KXy5lQmZ_Lxvs/1/da"><img src="http://feedads.g.doubleclick.net/~a/fXEmDbofBlcRQ3KXy5lQmZ_Lxvs/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gzYu3QJNH6A:HYEUBjR4zYs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gzYu3QJNH6A:HYEUBjR4zYs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=gzYu3QJNH6A:HYEUBjR4zYs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gzYu3QJNH6A:HYEUBjR4zYs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=gzYu3QJNH6A:HYEUBjR4zYs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gzYu3QJNH6A:HYEUBjR4zYs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gzYu3QJNH6A:HYEUBjR4zYs:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gzYu3QJNH6A:HYEUBjR4zYs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=gzYu3QJNH6A:HYEUBjR4zYs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gzYu3QJNH6A:HYEUBjR4zYs:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gzYu3QJNH6A:HYEUBjR4zYs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=gzYu3QJNH6A:HYEUBjR4zYs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=gzYu3QJNH6A:HYEUBjR4zYs:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/gzYu3QJNH6A" height="1" width="1"/>]]></content:encoded><description>In the latest release of Web Invoice &amp;#8211; Invoicing and Billing for WordPress plugin you can customize the e-mails sent to your clients. You can customize the subject as well as the e-mail content. Please bear in mind that Web Invoice only supports plain text e-mails, but you can do wonders with plain text  [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/04/how-to-customize-web-invoice-e-mail-templates.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/04/how-to-customize-web-invoice-e-mail-templates.html</feedburner:origLink></item><item><title>Web Invoice exceeds 1000 downloads</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/0GSLr-JFPe4/web-invoice-exceeds-1000-downloads.html</link><category>Web Invoice</category><category>WordPress</category><category>plugin</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Sun, 05 Apr 2009 14:31:09 PDT</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=252</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Web Invoice &#8211; Invoicing and billing for WordPress plugin has exceeded 1000 downloads. It has 1172 dowloads to date. First release of the plugin was made on March 15, 2009 and now in less than 1 month it has more than 1000 downloads.</p><p>Web Invoice is ideal for web developers, SEO consultants, general contractors, or anyone with a WordPress blog and clients to bill. If you come under any of the above, you should give Web Invoice a try.</p><p>Download or read more about <a
href="http://mohanjith.com/wordpress/web-invoice.html" target="_blank">Web Invoice</a>.</p> 
<p><a href="http://feedads.g.doubleclick.net/~a/BSvZpgiWMALCvBhsoLbaiCTdNJ0/0/da"><img src="http://feedads.g.doubleclick.net/~a/BSvZpgiWMALCvBhsoLbaiCTdNJ0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/BSvZpgiWMALCvBhsoLbaiCTdNJ0/1/da"><img src="http://feedads.g.doubleclick.net/~a/BSvZpgiWMALCvBhsoLbaiCTdNJ0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=0GSLr-JFPe4:QV3G4Lnj6ug:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=0GSLr-JFPe4:QV3G4Lnj6ug:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=0GSLr-JFPe4:QV3G4Lnj6ug:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=0GSLr-JFPe4:QV3G4Lnj6ug:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=0GSLr-JFPe4:QV3G4Lnj6ug:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=0GSLr-JFPe4:QV3G4Lnj6ug:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=0GSLr-JFPe4:QV3G4Lnj6ug:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=0GSLr-JFPe4:QV3G4Lnj6ug:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=0GSLr-JFPe4:QV3G4Lnj6ug:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=0GSLr-JFPe4:QV3G4Lnj6ug:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=0GSLr-JFPe4:QV3G4Lnj6ug:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=0GSLr-JFPe4:QV3G4Lnj6ug:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=0GSLr-JFPe4:QV3G4Lnj6ug:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/0GSLr-JFPe4" height="1" width="1"/>]]></content:encoded><description>Web Invoice &amp;#8211; Invoicing and billing for WordPress plugin has exceeded 1000 downloads. It has 1172 dowloads to date. First release of the plugin was made on March 15, 2009 and now in less than 1 month it has more than 1000 downloads.
Web Invoice is ideal for web developers, SEO consultants, general contractors, or anyone [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/04/web-invoice-exceeds-1000-downloads.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/04/web-invoice-exceeds-1000-downloads.html</feedburner:origLink></item><item><title>How to migrate from WP-Invoice to Web Invoice?</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/dK9GOQacPFc/how-to-migrate-from-wp-invoice-to-web-invoice.html</link><category>Web Invoice</category><category>WordPress</category><category>Invoice</category><category>Moneybookers</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Mon, 30 Mar 2009 08:10:53 PDT</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=247</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a
href="http://mohanjith.com/wordpress/web-invoice.html" target="_blank">Web Invoice</a> and <a
href="http://wordpress.org/extend/plugins/wp-invoice/" target="_blank">WP-Invoice</a> are two WordPress plugins that allow sending invoices and bills. Web Invoice is a fork of WP-Invoice with lot of new features that most people will want. In the current release (1.6.2) they are:</p><ul><li>Send invoice reminders to customers with a secured link back to the<br
/> web invoice</li><li>Moneybookers, AlertPay or PayPal available if you don&#8217;t have a<br
/> credit card processing account</li><li>Setup recurring billing using Authorize.net&#8217;s ARB (Automatic Recurring Billing) feature or Moneybookers</li><li>Automatically mark invoices paid via Moneybookers as paid (Requires<br
/> merchant status)</li><li>Automatically mark invoices paid via AlertPay as paid (Requires<br
/> business status)</li><li>Split gateway support (Your client is given the option of choosing the preferred gateway from the list of gateways you support). e.g PayPal and Moneybookers</li><li>All user interfaces are internationalized</li></ul><p>If you are already using WP-Invoice and would like to leverage these new features, it&#8217;s simple. Follow the 3 step process to switch from WP-Invoice to Web Invoice.</p><ol><li>Rename the tables <code>invoice_log</code> to <code>web_invoice_log</code>, <code>invoice_main</code> to <code>web_invoice_main</code>, <code>invoice_meta</code> to <code>web_invoice_meta</code>. (Assuming <code>$table_prefix</code> is empty)</li><li>Download Web Invoice WordPress plugin and upload it to your server</li><li>Activate Web Invoice</li></ol><p>That&#8217;s all, you can use Web Invoice without losing that you generated with WP-Invoice.</p> 
<p><a href="http://feedads.g.doubleclick.net/~a/6r3m0qNpSM-4tsSzlXSvdfbaogU/0/da"><img src="http://feedads.g.doubleclick.net/~a/6r3m0qNpSM-4tsSzlXSvdfbaogU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6r3m0qNpSM-4tsSzlXSvdfbaogU/1/da"><img src="http://feedads.g.doubleclick.net/~a/6r3m0qNpSM-4tsSzlXSvdfbaogU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=dK9GOQacPFc:utx_W-DcEPg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=dK9GOQacPFc:utx_W-DcEPg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=dK9GOQacPFc:utx_W-DcEPg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=dK9GOQacPFc:utx_W-DcEPg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=dK9GOQacPFc:utx_W-DcEPg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=dK9GOQacPFc:utx_W-DcEPg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=dK9GOQacPFc:utx_W-DcEPg:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=dK9GOQacPFc:utx_W-DcEPg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=dK9GOQacPFc:utx_W-DcEPg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=dK9GOQacPFc:utx_W-DcEPg:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=dK9GOQacPFc:utx_W-DcEPg:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=dK9GOQacPFc:utx_W-DcEPg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=dK9GOQacPFc:utx_W-DcEPg:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/dK9GOQacPFc" height="1" width="1"/>]]></content:encoded><description>Web Invoice and WP-Invoice are two WordPress plugins that allow sending invoices and bills. Web Invoice is a fork of WP-Invoice with lot of new features that most people will want. In the current release (1.6.2) they are:Send invoice reminders to customers with a secured link back to the
web invoice
Moneybookers, AlertPay or PayPal available if [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/03/how-to-migrate-from-wp-invoice-to-web-invoice.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/03/how-to-migrate-from-wp-invoice-to-web-invoice.html</feedburner:origLink></item><item><title>SyntaxHighlighter2 WordPress plugin released</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/NHYEumozI40/syntaxhighlighter2-wordpress-plugin-released.html</link><category>SyntaxHighlighter2</category><category>Ubuntu</category><category>WordPress</category><category>plugin</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Mon, 16 Mar 2009 05:04:06 PDT</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=241</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a
href="http://mohanjith.com/wordpress/syntaxhighlighter2.html" target="_blank">SyntaxHighlighter2</a> WordPress plugin was released yesterday on WordPress Extend <a
href="http://wordpress.org/extend/plugins/syntaxhighlighter2" target="_blank">plugin repository</a>. SyntaxHighlighter2 allows you to easily post syntax highlighted code all without loosing it&#8217;s formatting or making an manual changes. Main addition is upgrade to SyntaxHighlighter JavaScript 2.0 by Alex Gorbatchev. Also in this release the web master/blogger is given the ability to choose from 6 themes for the SyntaxHighlighter.</p><p>If you already using SyntaxHighlighter WordPress plugin and using XHTML, you should upgrade to SyntaxHighlighter2 because SyntaxHighlighter uses invalid XHTML. Bellow you will find the sample WordPress configuration file with SyntaxHighlighter2 <img
src='http://mohanjith.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p><pre class="brush: php; ">
&lt;?php
/**
 * The base configurations of the WordPress.
 *
 * This file has the following configurations: MySQL settings, Table Prefix,
 * Secret Keys, WordPress Language, and ABSPATH. You can find more information by
 * visiting {@link http://codex.wordpress.org/Editing_wp-config.php Editing
 * wp-config.php} Codex page. You can get the MySQL settings from your web host.
 *
 * This file is used by the wp-config.php creation script during the
 * installation. You don&#039;t have to use the web site, you can just copy this file
 * to &quot;wp-config.php&quot; and fill in the values.
 *
 * @package WordPress
 */

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define(&#039;DB_NAME&#039;, &#039;putyourdbnamehere&#039;);

/** MySQL database username */
define(&#039;DB_USER&#039;, &#039;usernamehere&#039;);

/** MySQL database password */
define(&#039;DB_PASSWORD&#039;, &#039;yourpasswordhere&#039;);

/** MySQL hostname */
define(&#039;DB_HOST&#039;, &#039;localhost&#039;);

/** Database Charset to use in creating database tables. */
define(&#039;DB_CHARSET&#039;, &#039;utf8&#039;);

/** The Database Collate type. Don&#039;t change this if in doubt. */
define(&#039;DB_COLLATE&#039;, &#039;&#039;);

/**#@+
 * Authentication Unique Keys.
 *
 * Change these to different unique phrases!
 * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/ WordPress.org secret-key service}
 *
 * @since 2.6.0
 */
define(&#039;AUTH_KEY&#039;, &#039;put your unique phrase here&#039;);
define(&#039;SECURE_AUTH_KEY&#039;, &#039;put your unique phrase here&#039;);
define(&#039;LOGGED_IN_KEY&#039;, &#039;put your unique phrase here&#039;);
define(&#039;NONCE_KEY&#039;, &#039;put your unique phrase here&#039;);
/**#@-*/

/**
 * WordPress Database Table prefix.
 *
 * You can have multiple installations in one database if you give each a unique
 * prefix. Only numbers, letters, and underscores please!
 */
$table_prefix  = &#039;wp_&#039;;

/**
 * WordPress Localized Language, defaults to English.
 *
 * Change this to localize WordPress.  A corresponding MO file for the chosen
 * language must be installed to wp-content/languages. For example, install
 * de.mo to wp-content/languages and set WPLANG to &#039;de&#039; to enable German
 * language support.
 */
define (&#039;WPLANG&#039;, &#039;&#039;);

/* That&#039;s all, stop editing! Happy blogging. */

/** WordPress absolute path to the Wordpress directory. */
if ( !defined(&#039;ABSPATH&#039;) )
	define(&#039;ABSPATH&#039;, dirname(__FILE__) . &#039;/&#039;);

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . &#039;wp-settings.php&#039;);
?&gt;
&lt;?php
/**
 * The base configurations of the WordPress.
 *
 * This file has the following configurations: MySQL settings, Table Prefix,
 * Secret Keys, WordPress Language, and ABSPATH. You can find more information by
 * visiting {@link http://codex.wordpress.org/Editing_wp-config.php Editing
 * wp-config.php} Codex page. You can get the MySQL settings from your web host.
 *
 * This file is used by the wp-config.php creation script during the
 * installation. You don&#039;t have to use the web site, you can just copy this file
 * to &quot;wp-config.php&quot; and fill in the values.
 *
 * @package WordPress
 */

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define(&#039;DB_NAME&#039;, &#039;putyourdbnamehere&#039;);

/** MySQL database username */
define(&#039;DB_USER&#039;, &#039;usernamehere&#039;);

/** MySQL database password */
define(&#039;DB_PASSWORD&#039;, &#039;yourpasswordhere&#039;);

/** MySQL hostname */
define(&#039;DB_HOST&#039;, &#039;localhost&#039;);

/** Database Charset to use in creating database tables. */
define(&#039;DB_CHARSET&#039;, &#039;utf8&#039;);

/** The Database Collate type. Don&#039;t change this if in doubt. */
define(&#039;DB_COLLATE&#039;, &#039;&#039;);

/**#@+
 * Authentication Unique Keys.
 *
 * Change these to different unique phrases!
 * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/ WordPress.org secret-key service}
 *
 * @since 2.6.0
 */
define(&#039;AUTH_KEY&#039;, &#039;put your unique phrase here&#039;);
define(&#039;SECURE_AUTH_KEY&#039;, &#039;put your unique phrase here&#039;);
define(&#039;LOGGED_IN_KEY&#039;, &#039;put your unique phrase here&#039;);
define(&#039;NONCE_KEY&#039;, &#039;put your unique phrase here&#039;);
/**#@-*/

/**
 * WordPress Database Table prefix.
 *
 * You can have multiple installations in one database if you give each a unique
 * prefix. Only numbers, letters, and underscores please!
 */
$table_prefix  = &#039;wp_&#039;;

/**
 * WordPress Localized Language, defaults to English.
 *
 * Change this to localize WordPress.  A corresponding MO file for the chosen
 * language must be installed to wp-content/languages. For example, install
 * de.mo to wp-content/languages and set WPLANG to &#039;de&#039; to enable German
 * language support.
 */
define (&#039;WPLANG&#039;, &#039;&#039;);

/* That&#039;s all, stop editing! Happy blogging. */

/** WordPress absolute path to the Wordpress directory. */
if ( !defined(&#039;ABSPATH&#039;) )
	define(&#039;ABSPATH&#039;, dirname(__FILE__) . &#039;/&#039;);

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . &#039;wp-settings.php&#039;);
?&gt;
</pre>
<p><a href="http://feedads.g.doubleclick.net/~a/dZ0pfZ92XCqK7aQwIPpC-p4A0DQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/dZ0pfZ92XCqK7aQwIPpC-p4A0DQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/dZ0pfZ92XCqK7aQwIPpC-p4A0DQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/dZ0pfZ92XCqK7aQwIPpC-p4A0DQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=NHYEumozI40:4qGrvWVkcDQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=NHYEumozI40:4qGrvWVkcDQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=NHYEumozI40:4qGrvWVkcDQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=NHYEumozI40:4qGrvWVkcDQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=NHYEumozI40:4qGrvWVkcDQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=NHYEumozI40:4qGrvWVkcDQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=NHYEumozI40:4qGrvWVkcDQ:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=NHYEumozI40:4qGrvWVkcDQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=NHYEumozI40:4qGrvWVkcDQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=NHYEumozI40:4qGrvWVkcDQ:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=NHYEumozI40:4qGrvWVkcDQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=NHYEumozI40:4qGrvWVkcDQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=NHYEumozI40:4qGrvWVkcDQ:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/NHYEumozI40" height="1" width="1"/>]]></content:encoded><description>SyntaxHighlighter2 WordPress plugin was released yesterday on WordPress Extend plugin repository. SyntaxHighlighter2 allows you to easily post syntax highlighted code all without loosing it&amp;#8217;s formatting or making an manual changes. Main addition is upgrade to SyntaxHighlighter JavaScript 2.0 by Alex Gorbatchev. Also in this release the web master/blogger is given the ability to choose from [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/03/syntaxhighlighter2-wordpress-plugin-released.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/03/syntaxhighlighter2-wordpress-plugin-released.html</feedburner:origLink></item><item><title>WordPress object cache with memcached backend for vanilla WordPress</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/YLOI5-clN28/wordpress-object-cache-with-memcached-backend-for-vanilla-wordpress.html</link><category>WordPress</category><category>memcached</category><category>patch</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Thu, 12 Mar 2009 07:08:09 PDT</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=233</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>WordPress object cache with memcached backend is mainly meant for WPMU and doesn&#8217;t work well if you happened to have many vanilla WordPress installations using the same memcached backend like it is pointed out <a
href="http://mohanjith.net/blog/2008/10/using-memcached-with-wordpress-object-cache.html">here</a> and <a
href="http://wordpress.org/support/topic/241314?replies=1" target="_blank">here</a>.</p><p>I have created a <a
href="http://mohanjith.net.nyud.net/blog/wp-content/uploads/2009/03/object-cachephp.patch" target="_blank">simple patch</a> which you can apply against <a
href="http://plugins.trac.wordpress.org/export/71058/memcached/trunk/object-cache.php" target="_blank">object-cache.php</a> (downloadable from WordPress plugin repository) or <a
href="http://mohanjith.net.nyud.net/blog/wp-content/uploads/2009/03/object-cachephp.txt" target="_blank">here is the file already patched</a>. The patch prepends the <code>$blog_id</code> to the object key. You will have to specify global variable <code>$blog_id</code> in <code>wp-config.php</code> and give it a unique id (like your blog url).</p><pre class="brush: php; ">
global $blog_id;
$blog_id = &#039;mohanjith_net&#039;;
</pre>
<p><a href="http://feedads.g.doubleclick.net/~a/HPssbPhCtzwVC7IPZOUDG_AMiSg/0/da"><img src="http://feedads.g.doubleclick.net/~a/HPssbPhCtzwVC7IPZOUDG_AMiSg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/HPssbPhCtzwVC7IPZOUDG_AMiSg/1/da"><img src="http://feedads.g.doubleclick.net/~a/HPssbPhCtzwVC7IPZOUDG_AMiSg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=YLOI5-clN28:IMl6rnuQulo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=YLOI5-clN28:IMl6rnuQulo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=YLOI5-clN28:IMl6rnuQulo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=YLOI5-clN28:IMl6rnuQulo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=YLOI5-clN28:IMl6rnuQulo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=YLOI5-clN28:IMl6rnuQulo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=YLOI5-clN28:IMl6rnuQulo:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=YLOI5-clN28:IMl6rnuQulo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=YLOI5-clN28:IMl6rnuQulo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=YLOI5-clN28:IMl6rnuQulo:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=YLOI5-clN28:IMl6rnuQulo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=YLOI5-clN28:IMl6rnuQulo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=YLOI5-clN28:IMl6rnuQulo:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/YLOI5-clN28" height="1" width="1"/>]]></content:encoded><description>WordPress object cache with memcached backend is mainly meant for WPMU and doesn&amp;#8217;t work well if you happened to have many vanilla WordPress installations using the same memcached backend like it is pointed out here and here.
I have created a simple patch which you can apply against object-cache.php (downloadable from WordPress plugin repository) or here [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/03/wordpress-object-cache-with-memcached-backend-for-vanilla-wordpress.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">3</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/03/wordpress-object-cache-with-memcached-backend-for-vanilla-wordpress.html</feedburner:origLink></item><item><title>FeedBurner Widget plugin released with MyBrand support</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/EeUi7pT4aGM/feedburner-widget-plugin-released-with-mybrand-support.html</link><category>WordPress</category><category>patch</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Mon, 09 Mar 2009 04:38:27 PDT</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=226</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a
href="http://wordpress.org/extend/plugins/feedburner-widget/" target="_blank">FeedBurner Widget</a> 1.2 (WordPress plugin) was released last Friday with much needed MyBrand support. Thank you <a
href="http://dichev.com/" target="_blank">Alexander Dichev</a> for the release.</p> 
<p><a href="http://feedads.g.doubleclick.net/~a/T15BljqeZWJGMCNyv83MsRN-Q08/0/da"><img src="http://feedads.g.doubleclick.net/~a/T15BljqeZWJGMCNyv83MsRN-Q08/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/T15BljqeZWJGMCNyv83MsRN-Q08/1/da"><img src="http://feedads.g.doubleclick.net/~a/T15BljqeZWJGMCNyv83MsRN-Q08/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=EeUi7pT4aGM:vdrKA-gnnh8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=EeUi7pT4aGM:vdrKA-gnnh8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=EeUi7pT4aGM:vdrKA-gnnh8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=EeUi7pT4aGM:vdrKA-gnnh8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=EeUi7pT4aGM:vdrKA-gnnh8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=EeUi7pT4aGM:vdrKA-gnnh8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=EeUi7pT4aGM:vdrKA-gnnh8:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=EeUi7pT4aGM:vdrKA-gnnh8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=EeUi7pT4aGM:vdrKA-gnnh8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=EeUi7pT4aGM:vdrKA-gnnh8:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=EeUi7pT4aGM:vdrKA-gnnh8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=EeUi7pT4aGM:vdrKA-gnnh8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=EeUi7pT4aGM:vdrKA-gnnh8:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/EeUi7pT4aGM" height="1" width="1"/>]]></content:encoded><description>FeedBurner Widget 1.2 (WordPress plugin) was released last Friday with much needed MyBrand support. Thank you Alexander Dichev for the release.</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/03/feedburner-widget-plugin-released-with-mybrand-support.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/03/feedburner-widget-plugin-released-with-mybrand-support.html</feedburner:origLink></item><item><title>Read only Facebook – Database write failed</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/9LInrfuF3ks/read-only-facebook-database-write-failed.html</link><category>Uncategorized</category><category>facebook</category><category>status message</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Fri, 27 Feb 2009 00:34:54 PST</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=219</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>To my despair <a
href="http://facebook.com" target="_blank">Facebook</a> went read only for a brief period of time (aproximately 10 minutes). I was not able to comment on my friend&#8217;s status messages, or like them, or post my own status message; I was confronted with the message bellow. However adding friends, approving requests were working fine. I believe the issue was isolated to status messages and related functionality (IMHO most popular).</p><p><img
class="aligncenter size-full wp-image-220" title="facebook-home_1235722315186" src="http://mohanjith.net.nyud.net/blog/wp-content/uploads/2009/02/facebook-home_1235722315186.png" alt="facebook-home_1235722315186" width="493" height="174" /></p><p>Facebook do not dare to do something like this again, I need Facebook to keep in touch with my friends. I&#8217;m not a Facebook addict, just that the issue happened to coincide with the time of day I would get on Facebook to get an update on my friends andmake my own online presence.</p><p>I would like to know whether you had a similar issue, or was it just me. At the time of writing the issue is fixed. Thanks Facebook for the quick fix.</p> 
<p><a href="http://feedads.g.doubleclick.net/~a/T7bzaf5bkr-JFLAApVSpsSi8BZk/0/da"><img src="http://feedads.g.doubleclick.net/~a/T7bzaf5bkr-JFLAApVSpsSi8BZk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/T7bzaf5bkr-JFLAApVSpsSi8BZk/1/da"><img src="http://feedads.g.doubleclick.net/~a/T7bzaf5bkr-JFLAApVSpsSi8BZk/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=9LInrfuF3ks:RdmGsdeN5FU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=9LInrfuF3ks:RdmGsdeN5FU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=9LInrfuF3ks:RdmGsdeN5FU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=9LInrfuF3ks:RdmGsdeN5FU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=9LInrfuF3ks:RdmGsdeN5FU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=9LInrfuF3ks:RdmGsdeN5FU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=9LInrfuF3ks:RdmGsdeN5FU:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=9LInrfuF3ks:RdmGsdeN5FU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=9LInrfuF3ks:RdmGsdeN5FU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=9LInrfuF3ks:RdmGsdeN5FU:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=9LInrfuF3ks:RdmGsdeN5FU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Mohanjith?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.mohanjith.com/~ff/Mohanjith?a=9LInrfuF3ks:RdmGsdeN5FU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Mohanjith?i=9LInrfuF3ks:RdmGsdeN5FU:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/9LInrfuF3ks" height="1" width="1"/>]]></content:encoded><description>To my despair Facebook went read only for a brief period of time (aproximately 10 minutes). I was not able to comment on my friend&amp;#8217;s status messages, or like them, or post my own status message; I was confronted with the message bellow. However adding friends, approving requests were working fine. I believe the issue [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/02/read-only-facebook-database-write-failed.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/02/read-only-facebook-database-write-failed.html</feedburner:origLink></item><item><title>jango vs. last.fm</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/eUx0qkKFC2c/jango-vs-lastfm.html</link><category>Online radio</category><category>jango</category><category>last.fm</category><category>music</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Fri, 13 Feb 2009 07:58:15 PST</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=214</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a
href="http://www.last.fm/"><img
class="size-full wp-image-215 alignright" title="last.fm" src="http://mohanjith.net.nyud.net/blog/wp-content/uploads/2009/02/logo6.png" alt="last.fm" width="103" height="50" /></a></p><p><a
href="http://jango.com/"><img
class="size-full wp-image-216 alignleft" style="margin-left: 5px; margin-right: 5px;" title="jango" src="http://mohanjith.net.nyud.net/blog/wp-content/uploads/2009/02/masthead_logo_248x267.jpg" alt="jango" width="246" height="267" /></a>I had been using last.fm for a while and recently tried out jango. Though jango lacks the bells and whistles of last.fm like desktop client, feeds, etc it does it&#8217;s job; play music.</p><p>I like jango for it&#8217;s discovery algorithm. It plays music I&#8217;d like. With time it has been improving. In contrast last.fm would get worst with time, playing songs I&#8217;d not like at all. Either from genres  I wouldn&#8217;t like or from artist I have marked as I dislike.</p><p>jango seems to have better collection of tracks (more about quality than quantity) compared to last.fm. I really get annoyed when last.fm plays mix tapes, which doesn&#8217;t happen on jango <img
src='http://mohanjith.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Biggest minus point of jango is lack of a desktop client, but it doesn&#8217;t bother me because I can browse around jango site without the track stopping (I believe they use iframes). Next is a lack of an API/feed. At least a feed of items I recently listened would have been nice, so I could add to the blog <img
src='http://mohanjith.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>IMHO, jango is good if you would like to listen to good quality tracs from artist you like and last.fm is awesome for discovering new music, new artist, and even new genres. last.fm has an API for the inner geek as well. last.fm is truely a radio while jango is more of a juke box.</p><p>Either way both are awesome services that help you avoid boredom and know about artist you listen to. I would say I like both <a
href="http://jango.com/profiles/11909552" target="_blank">jango</a> and <a
href="http://www.last.fm/user/mohanjith" target="_blank">last.fm</a>, each with it&#8217;s plus and minus.</p> 
<p><a href="http://feedads.g.doubleclick.net/~a/LR769bDtfPehE9DoPiS_luZjeJM/0/da"><img src="http://feedads.g.doubleclick.net/~a/LR769bDtfPehE9DoPiS_luZjeJM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/LR769bDtfPehE9DoPiS_luZjeJM/1/da"><img src="http://feedads.g.doubleclick.net/~a/LR769bDtfPehE9DoPiS_luZjeJM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~f/Mohanjith?a=jjwEKArS"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=41" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=tfMHgQuX"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=tfMHgQuX" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=GvqyRjt9"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=GvqyRjt9" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=eErCHM46"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=52" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=mw4eqNwd"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=129" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=5uG1C36m"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=5uG1C36m" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=4MEyyG3c"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=54" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=CH3hm5R6"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=43" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/eUx0qkKFC2c" height="1" width="1"/>]]></content:encoded><description>I had been using last.fm for a while and recently tried out jango. Though jango lacks the bells and whistles of last.fm like desktop client, feeds, etc it does it&amp;#8217;s job; play music.
I like jango for it&amp;#8217;s discovery algorithm. It plays music I&amp;#8217;d like. With time it has been improving. In contrast last.fm would get [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/02/jango-vs-lastfm.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">3</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/02/jango-vs-lastfm.html</feedburner:origLink></item><item><title>Google Analytics for WordPress plugin is incompatible with AddThis plugin</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/e_R5kaWDgOc/google-analytics-for-wordpress-plugin-is-incompatible-with-addthis-plugin.html</link><category>WordPress</category><category>patch</category><category>Google Analytics</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Sun, 08 Feb 2009 21:42:00 PST</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=211</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Google Analytics for WordPress plugin adds an onclick attribute to links when &#8220;Track outbound clicks &amp; downloads&#8221; is enabled irrespective of whether there is already an onclick attribute. AddThis plugin adds a link with onclick attribute to the post when enabled. This combination causes WordPress to generate invalid mark up. Same would happen if the post contains any links with onclick attribute (very unlikely scenario).</p><p>I have created a patch (with Git) that adds the content of $coolBit to the existing onclick attribute (without onclick=&#8221;") else a new onclick attribute is added with the $coolBit. <a
href="http://mohanjith.net.nyud.net/blog/wp-content/uploads/2009/02/google-analytics-for-wordpress.patch">You can download the patch</a>. I have also <a
href="http://wordpress.org/support/topic/241757">reported the issue</a> to Joost (plugin developer).</p><p>Hope this will be useful for someone in a similar situation until the fix makes it into the plugin.</p> 
<p><a href="http://feedads.g.doubleclick.net/~a/6x9-brFLHpnVIxhmE5qHu7t1HYQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/6x9-brFLHpnVIxhmE5qHu7t1HYQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6x9-brFLHpnVIxhmE5qHu7t1HYQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/6x9-brFLHpnVIxhmE5qHu7t1HYQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~f/Mohanjith?a=yUxPSPmj"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=41" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=agFJ4e5t"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=agFJ4e5t" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=4JZPvUPT"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=4JZPvUPT" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=NYFPMzE5"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=52" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=JH3cvcmB"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=129" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=GXWrBJMX"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=GXWrBJMX" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=HGymZmqW"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=54" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=3xdAMX6l"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=43" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/e_R5kaWDgOc" height="1" width="1"/>]]></content:encoded><description>Google Analytics for WordPress plugin adds an onclick attribute to links when &amp;#8220;Track outbound clicks &amp;#38; downloads&amp;#8221; is enabled irrespective of whether there is already an onclick attribute. AddThis plugin adds a link with onclick attribute to the post when enabled. This combination causes WordPress to generate invalid mark up. Same would happen if the [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/02/google-analytics-for-wordpress-plugin-is-incompatible-with-addthis-plugin.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/02/google-analytics-for-wordpress-plugin-is-incompatible-with-addthis-plugin.html</feedburner:origLink></item><item><title>WordPress plugin Smart Throttle 1.0.0 released</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/yHJghKDt40U/wordpress-plugin-smart-throttle-100-released.html</link><category>Smart Throttle</category><category>WordPress</category><category>plugin</category><category>spam</category><category>throttle</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Wed, 28 Jan 2009 04:54:19 PST</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=208</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>WordPress plugin Smart Throttle 1.0.0 released. With this release Smart Throttle is hosted on WordPress plugin repository allowing users to easily install and upgrade.</p><p>In this release I have added the ability to configure throttling parameters. You can download the latest release from either <a
href="http://wordpress.org/extend/plugins/smart-throttle/" target="_blank">here</a>, <a
href="http://mohanjith.com/wordpress/smart-throttle.html">here</a> or from your WordPress blog under Plugins -&gt; Add New in wp-admin.</p><p>Please do not forget to rate the <a
href="http://wordpress.org/extend/plugins/smart-throttle/" target="_blank">Smart Throttle</a> plugin and give your ideas to improve it. <img
src='http://mohanjith.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> 
<p><a href="http://feedads.g.doubleclick.net/~a/VVQl5MIbH4g3zthRtZbjKaOMLMQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/VVQl5MIbH4g3zthRtZbjKaOMLMQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/VVQl5MIbH4g3zthRtZbjKaOMLMQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/VVQl5MIbH4g3zthRtZbjKaOMLMQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~f/Mohanjith?a=9zogat58"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=41" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=1jhoaSRg"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=1jhoaSRg" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=wlNmXFZV"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=wlNmXFZV" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=1okDis5S"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=52" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=3sgCH392"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=129" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=oQXsb7ZV"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=oQXsb7ZV" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=DdQdBTOg"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=54" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=pUcpSJAk"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=43" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/yHJghKDt40U" height="1" width="1"/>]]></content:encoded><description>WordPress plugin Smart Throttle 1.0.0 released. With this release Smart Throttle is hosted on WordPress plugin repository allowing users to easily install and upgrade.
In this release I have added the ability to configure throttling parameters. You can download the latest release from either here, here or from your WordPress blog under Plugins -&amp;#62; Add New [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/01/wordpress-plugin-smart-throttle-100-released.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/01/wordpress-plugin-smart-throttle-100-released.html</feedburner:origLink></item><item><title>My fight against comment spam on Wordpress blogs – Smart Throttle</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/ovpMo7RCs4s/my-fight-against-comment-spam-on-wordpress-blogs-smart-throttle.html</link><category>WordPress</category><category>plugin</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Sun, 25 Jan 2009 12:22:12 PST</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=205</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>My blog was hit with a comment spam flood which almost brought down the server under load. There were aproximately 30 bots continuously posting spam comments, geez don&#8217;t they realize that none of the comments get published. With all the writes to the database, my servers came to a crawling stop. I disabled comments for a while, until I figure out a means to prevent the spam messages from being posted. First option was CAPTCHA, I installed re-CAPTCHA Wordpress plugin. This did reduce the spam but in an ugly way. I was thinking of a means to stop the nuisance spam without even writing to the database. Then I came accross <a
href="http://codex.wordpress.org/Function_Reference/wp_throttle_comment_flood" target="_blank">this</a>, and gave me the idea for <a
href="http://mohanjith.com/wordpress/smart-throttle.html" target="_blank">Smart Throttle</a> Wordpress plugin. It&#8217;s very simple, depending on the rate of comments in the last hour by the user the comment flood time out will be automatically adjusted. Check out the <a
href="http://mohanjith.com/wordpress/smart-throttle.html" target="_blank">plugin home page</a> for details how it&#8217;s done. The plugin is released under GPLv3. I have now disabled re-CAPTCHA plugin and so far things are looking good, most of the spam bots are lost in the you are posting too fast message <img
src='http://mohanjith.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Give your blog a break with Smart Throttle.</p> 
<p><a href="http://feedads.g.doubleclick.net/~a/21U7o14Shp-4sziNT8MIW1cC2_0/0/da"><img src="http://feedads.g.doubleclick.net/~a/21U7o14Shp-4sziNT8MIW1cC2_0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/21U7o14Shp-4sziNT8MIW1cC2_0/1/da"><img src="http://feedads.g.doubleclick.net/~a/21U7o14Shp-4sziNT8MIW1cC2_0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~f/Mohanjith?a=AyALO4kU"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=41" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=YiyQGoO8"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=YiyQGoO8" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=7heT8meR"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=7heT8meR" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=ava4I9JF"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=52" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=PS5K1VTI"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=129" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=0OQeOft1"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=0OQeOft1" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=Ny4f6SDx"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=54" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=S1SP2Uec"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=43" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/ovpMo7RCs4s" height="1" width="1"/>]]></content:encoded><description>My blog was hit with a comment spam flood which almost brought down the server under load. There were aproximately 30 bots continuously posting spam comments, geez don&amp;#8217;t they realize that none of the comments get published. With all the writes to the database, my servers came to a crawling stop. I disabled comments for [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/01/my-fight-against-comment-spam-on-wordpress-blogs-smart-throttle.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/01/my-fight-against-comment-spam-on-wordpress-blogs-smart-throttle.html</feedburner:origLink></item><item><title>Subversion to Git</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/RxRjCFiyUbg/subversion-to-git.html</link><category>Git</category><category>subversion</category><category>svn</category><category>Linux</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Tue, 20 Jan 2009 09:02:52 PST</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=198</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>My new year resolution was to ditch Subversion and move to Git. I switched to Git as my SCM for all my development work on new year day it self. I did hit some issues because my ignorance about how things are done with Git, however everything was fixed within the day. Now, 20 days later; I&#8217;m really happy that I did make the switch. Git has reduced development time greatly. No longer do I think about whether I should commit, wait for commit to finish for many minutes, or worry about overwriting someone&#8217;s work. Now I spend more time doing actual development than thinking about planning merges and commits.</p><p>I&#8217;ll blog about the few gotchas that I faced when I have time, hopefully soon. Development is fun again, thanks to Git. <img
src='http://mohanjith.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> 
<p><a href="http://feedads.g.doubleclick.net/~a/6qiDkIDhikaVoZLPK4Dm1wfsOgs/0/da"><img src="http://feedads.g.doubleclick.net/~a/6qiDkIDhikaVoZLPK4Dm1wfsOgs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6qiDkIDhikaVoZLPK4Dm1wfsOgs/1/da"><img src="http://feedads.g.doubleclick.net/~a/6qiDkIDhikaVoZLPK4Dm1wfsOgs/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~f/Mohanjith?a=Axu0ZnLP"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=41" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=TBvnFFLM"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=TBvnFFLM" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=Do5Sov3L"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=Do5Sov3L" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=v0PjyBwY"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=52" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=ngKSjI40"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=129" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=ODIeft2Y"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=ODIeft2Y" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=CRLBwJiO"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=54" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=TH5CvE5k"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=43" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/RxRjCFiyUbg" height="1" width="1"/>]]></content:encoded><description>My new year resolution was to ditch Subversion and move to Git. I switched to Git as my SCM for all my development work on new year day it self. I did hit some issues because my ignorance about how things are done with Git, however everything was fixed within the day. Now, 20 days [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/01/subversion-to-git.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/01/subversion-to-git.html</feedburner:origLink></item><item><title>Use KernelCheck to build the latest kernel for debian/ubuntu</title><link>http://feeds.mohanjith.com/~r/Mohanjith/~3/hkZGZCaBYw8/use-kernelcheck-to-build-the-latest-kernel-for-debianubuntu.html</link><category>Debian</category><category>Linux</category><category>Ubuntu</category><category>Automatic</category><category>Kernel</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">S H Mohanjith</dc:creator><pubDate>Sun, 18 Jan 2009 21:58:43 PST</pubDate><guid isPermaLink="false">http://mohanjith.net/blog/?p=193</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I recently found this awesome project called <a
href="http://kcheck.sourceforge.net/">KernelCheck</a> that allows you to build the latest Linux Kernel for your distribution. It requires very little interaction from the user and automatically optimizes the kernel to user&#8217;s needs. Currently it only supports Debian based distributions but support for RPM and Slackware based distributions is planned. KernelCheck is build around the AutoKernel idea by PinguinZ.</p><p>Building the Linux Kernel was never easier on Debian (and derivatives) before. I just compiled the 2.6.28.1, it wasn&#8217;t a pain at all.</p> 
<p><a href="http://feedads.g.doubleclick.net/~a/iq7X5EY4FLfRL_JvXPXwCRos0No/0/da"><img src="http://feedads.g.doubleclick.net/~a/iq7X5EY4FLfRL_JvXPXwCRos0No/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/iq7X5EY4FLfRL_JvXPXwCRos0No/1/da"><img src="http://feedads.g.doubleclick.net/~a/iq7X5EY4FLfRL_JvXPXwCRos0No/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.mohanjith.com/~f/Mohanjith?a=G2s70GO2"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=41" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=hutQMWxq"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=hutQMWxq" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=Q6ZnszNw"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=Q6ZnszNw" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=bsyTWAIG"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=52" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=npoHxQMq"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=129" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=UrchpRwa"><img src="http://feeds.feedburner.com/~f/Mohanjith?i=UrchpRwa" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=gLNzDIbC"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=54" border="0"></img></a> <a href="http://feeds.mohanjith.com/~f/Mohanjith?a=Fj7j2qfC"><img src="http://feeds.feedburner.com/~f/Mohanjith?d=43" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Mohanjith/~4/hkZGZCaBYw8" height="1" width="1"/>]]></content:encoded><description>I recently found this awesome project called KernelCheck that allows you to build the latest Linux Kernel for your distribution. It requires very little interaction from the user and automatically optimizes the kernel to user&amp;#8217;s needs. Currently it only supports Debian based distributions but support for RPM and Slackware based distributions is planned. KernelCheck is [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://mohanjith.net/blog/2009/01/use-kernelcheck-to-build-the-latest-kernel-for-debianubuntu.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://mohanjith.net/blog/2009/01/use-kernelcheck-to-build-the-latest-kernel-for-debianubuntu.html</feedburner:origLink></item></channel></rss>
