<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Joyce Babu &#187; Programming</title>
	<atom:link href="http://www.joycebabu.com/blog/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.joycebabu.com</link>
	<description>Read, learn and share.</description>
	<lastBuildDate>Sun, 25 Jul 2010 10:32:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Enabling gzip compression if mod_deflate is not enabled</title>
		<link>http://www.joycebabu.com/blog/enabling-gzip-compression-if-mod_gzip-is-not-enabled.html</link>
		<comments>http://www.joycebabu.com/blog/enabling-gzip-compression-if-mod_gzip-is-not-enabled.html#comments</comments>
		<pubDate>Wed, 06 Jan 2010 17:54:45 +0000</pubDate>
		<dc:creator>Joyce</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[hostgator]]></category>
		<category><![CDATA[mod_gzip]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.joycebabu.com/?p=217</guid>
		<description><![CDATA[Enabling gzip support on server without using mod_deflate or mod_gzip Apache module. The technique uses PHP with Gzip support for compressing the files.]]></description>
			<content:encoded><![CDATA[<p>Today I saw a tweet by my friend <a href="http://www.diovo.com/" target="_blank">Niyas</a> that Host Gator does not support <em>mod_gzip</em>. This made me wonder whether it is possible to achieve this using PHP. I contacted HostGator support and confirmed that GZip support for PHP is enabled on both shared and dedicated hosting accounts, whereas <em>mod_deflate</em> Apache module is available only for dedicated hosting customers. Fortunately, we can use PHP to compress files on the fly.</p>
<p>Enabling gzip compression in an existing PHP file is very simple. Add the following line at the beginning of the file (it should appear before any output statement).</p>
<pre><code>&lt;?php
ob_start ("ob_gzhandler");
?&gt;</code></pre>
<p>Very simple, right? But what if we have hundreds of files to edit? Don&#8217;t worry, there is solution for that too. We can use the PHP configuration variable <strong><code><em>auto_prepend_file</em></code></strong> to automatically include the above code at the beginning of all PHP files. Copy the above code to a file named prepend.php and place it at the root of your website (<em>~/public_html</em> in CPanel, <em>~/httpdocs</em> in Plesk).</p>
<p>Now we are going to automatically include the above file at the beginning of all PHP files using <em><code>auto_prepend_file</code></em>. Depending on how PHP is configured on your server, the steps for modifying the PHP configuration variable is also different.</p>
<p>If PHP is configured in CGI/FastCGI mode (HostGator uses this mode), we will be using <em>php.ini</em> file to make the above change. Create a file named <em>php.ini</em> at the root of your website and copy the following code into it. If the file already exists, append it to the end of the file.</p>
<pre><code>auto_prepend_file=&lt;full-path-to-document-root&gt;/prepend.php</code></pre>
<p>If PHP is loaded as apache module (<em>mod_php</em>), we will have to use <em>.htaccess</em> to achieve the same effect. Create a file named <em>.htaccess</em> at the web root and copy the following code into it. If the file exists, append at the end of the file.</p>
<pre><code>php_value auto_prepend_file &lt;full-path-to-document-root&gt;/prepend.php</code></pre>
<p>In both methods, replace <em>&lt;full-path-to-document-root&gt;</em> with the full path to your website root directory, for example <em>/home/joyce/public_html.</em></p>
<p>Now the <em>prepend.php</em> file is automatically included by the PHP interpreter, whenever a PHP file is requested. But this method (as of now) does not work for non PHP files like HTML, CSS, JavaScript etc, which should also be compressed. This is because these files are handled directly by Apache and is not passed to the PHP interpreter. To ensure that these files are also compressed, we have to instruct Apache to pass these files to the PHP interpreter before sending them to the browser. For this, lets once again go back to <em>.htaccess</em>. Append the following code at the end of your <em>.htaccess</em> file (create one, if you don&#8217;t have  it already).</p>
<pre><code>&lt;FilesMatch "\.(htm|html|css|js)"&gt;
	ForceType application/x-httpd-php
&lt;/FilesMatch&gt;
</code></pre>
<p>The above code instructs Apache that files ending with .<em>js</em>, .<em>htm</em>, .<em>html</em>, <em>.css </em>and .<em>js</em> extensions are also PHP files and should be passed through PHP interpreter. The only problem remaining is that Content-type header for all files have been changed to text/html. To fix this we need to check the requested file-name and set the correct Content-type header depending on the file extension. In order to do this, open <em>prepend.php</em> and replace the current code with</p>
<pre><code>&lt;?php
// Start output buffering
ob_start ("ob_gzhandler");

// Set the correct content type header depending on filename
$arContentType = array('htm' =&gt; 'text/html', 'html' =&gt; 'text/html', 'css' =&gt; 'text/css', 'js' =&gt; 'text/javascript');
if(strpos($_SERVER['REQUEST_URI'], '.') !== FALSE){
	$ext = explode('.', $_SERVER['REQUEST_URI']);
	$ext = array_pop($ext);
	if(($pos = strpos($ext, '?')) !== FALSE){
		$ext = substr($ext, 0, $pos);
	}
	if(isset($arContentType[$ext])){
		header ("Content-type: {$arContentType[$ext]}; charset: UTF-8");
	}
}

// You can also set expiration headers in this file
?&gt;
</code></pre>
<p>That&#8217;s all Folks. You have successfully enabled Gzip compression on your server without using any Apache modules.</p>
<p>This is a working code. But I have tested it only with <em>mod_php</em> configuration. You have to be very careful when enabling PHP code in JS/CSS files. There may be many flaws in this code. If you find any, please let me know. We can further improve this code by adding expiration and cache headers to enable client side caching.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joycebabu.com/blog/enabling-gzip-compression-if-mod_gzip-is-not-enabled.html/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Local Analytics &#8211; Errors &amp; Suggestions</title>
		<link>http://www.joycebabu.com/blog/local-analytics-errors-suggestions.html</link>
		<comments>http://www.joycebabu.com/blog/local-analytics-errors-suggestions.html#comments</comments>
		<pubDate>Sat, 10 Nov 2007 16:09:06 +0000</pubDate>
		<dc:creator>Joyce</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.joycebabu.com/blog/local-analytics-errors-suggestions.html</guid>
		<description><![CDATA[First of all, let me thank everyone, especially Joe, Kevin and David,  for their active participation and support in reporting the errors in Local Analytics. According to my Google Analytics stats, the plugin was downloaded over 200 times so far. A few errors were reported and fixed. Now the only unfixed problem is the corrupted [...]]]></description>
			<content:encoded><![CDATA[<p>First of all, let me thank everyone, especially <a HREF="http://www.churchgang.us/joe/blog" TARGET="_blank" TITLE="Joe Church">Joe</a>, <a HREF="http://psnow.es" TARGET="_blank" TITLE="Kevin S">Kevin</a> and <a HREF="http://infotech.lakeviewchurch.org/" TARGET="_blank" TITLE="David Szpunar">David</a>,  for their active participation and support in reporting the errors in Local Analytics. According to my Google Analytics stats, the plugin was downloaded over 200 times so far. A few errors were reported and fixed. Now the only unfixed problem is the corrupted zip file. I think it is caused by the some problem with my system, because it is showing some other troubles too. I will format my system and recreate the files in a few days.</p>
<p>I request you to report any difficulty or error you are having with the plugin. If no errors are reported during the next two days, then I will declare the current version stable and start working on the next version.</p>
<p>I also request you to suggest any improvements and changes you wish to include in the next version. <a HREF="http://afrison.com/" TARGET="_blank" TITLE="Not a Niche">Alex</a> and <a TITLE="David Szpunar" TARGET="_blank" HREF="http://infotech.lakeviewchurch.org/">David</a> have made a very good suggestion, which I will try to incorporate in the new version. Though I don&#8217;t promise this, if I have time I will try to integrate the Analytics Reports also within the Administration Panel, as <a HREF="http://jaredbares.com/" TARGET="_blank" TITLE="Jared">Jared</a> and <a HREF="http://ekowanz.com/" TARGET="_blank" TITLE="ekowanz">ekowanz</a> asked.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joycebabu.com/blog/local-analytics-errors-suggestions.html/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Local Analytics v1.1 Released</title>
		<link>http://www.joycebabu.com/blog/local-analytics-v11-released.html</link>
		<comments>http://www.joycebabu.com/blog/local-analytics-v11-released.html#comments</comments>
		<pubDate>Thu, 08 Nov 2007 18:24:59 +0000</pubDate>
		<dc:creator>Joyce</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.joycebabu.com/blog/local-analytics-v11-released.html</guid>
		<description><![CDATA[Today Kevin reported an error with Local Analytics. The plugin was spitting a warning on accessing a page from a RSS feed. Though I wasn&#8217;t able to exactly replicate the error, this version should fix that error. Also I have added some more changes to the plugin, especially in the admin section. As before, you [...]]]></description>
			<content:encoded><![CDATA[<p>Today Kevin reported an error with Local Analytics. The plugin was spitting a warning on accessing a page from a RSS feed. Though I wasn&#8217;t able to exactly replicate the error, this version should fix that error. Also I have added some more changes to the plugin, especially in the admin section.</p>
<p>As before, you can download the latest version of the plugin from the <a HREF="http://www.joycebabu.com/downloads/local-analytics/" TITLE="Local Analytics Download">Local Analytics</a> page.</p>
<p><u><strong>Change Log</strong></u></p>
<ul>
<li>Fixed the error pointed out by Kevin</li>
<li>Removed the <em>onclick</em> events from RSS feed</li>
<li>Dropped domain name from tracked downloads</li>
<li>Edited admin panel to display configuration errors.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.joycebabu.com/blog/local-analytics-v11-released.html/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Local Analytics &#8211; My first WordPress plugin</title>
		<link>http://www.joycebabu.com/blog/local-analytics-my-first-wordpress-plugin.html</link>
		<comments>http://www.joycebabu.com/blog/local-analytics-my-first-wordpress-plugin.html#comments</comments>
		<pubDate>Tue, 30 Oct 2007 18:14:02 +0000</pubDate>
		<dc:creator>Joyce</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.joycebabu.com/blog/my-first-wordpress-plugin.html</guid>
		<description><![CDATA[Today I am releasing my first WordPress plugin &#8211; Local Analytics. Though this is not the first plugin I have started working on, this is the first one to be released. The first plugin I started working on was WapPress &#8211; a plugin to make your blog Mobile Friendly. Local Analytics is based on a [...]]]></description>
			<content:encoded><![CDATA[<p>Today I am releasing my first WordPress plugin &#8211; <a TITLE="Local Analytics - Google Analytics plugin for WordPress" TARGET="_blank" HREF="http://www.joycebabu.com/downloads/local-analytics/">Local Analytics</a>. Though this is not the first plugin I have started working on, this is the first one to be released. The first plugin I started working on was WapPress &#8211; a plugin to make your blog Mobile Friendly.</p>
<p>Local Analytics is based on a program I wrote a few days back on how to speed up Google Analytics by locally hosting urchin.js and automatically updating it. The wonderful idea of creating a Word press plugin with it was suggested by <a TITLE="Defensio - Anti Spam Plugin" TARGET="_blank" HREF="http://www.defensio.com/">Carl mercier</a>. Carl is the author of the anti spam plugin, <a TITLE="Defensio - Anti Spam Plugin" TARGET="_blank" HREF="http://www.defensio.com/">Defensio</a>, which is still in beta stage. I have been been beta testing the plugin for the past few days and found it much easier to use, compared to Akismet.</p>
<p>Local Analytics is simple to use for a normal user and highly configurable for advanced users. Normal users only need to enter their Analytics Account ID, wheras advanced users can control the complete behavior of the plugin.</p>
<p>Please try the plugin and let me know your valuable comments and suggestions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joycebabu.com/blog/local-analytics-my-first-wordpress-plugin.html/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Speed up Google Analytics using simple PHP Script</title>
		<link>http://www.joycebabu.com/blog/speed-up-google-analytics-using-simple-php-script.html</link>
		<comments>http://www.joycebabu.com/blog/speed-up-google-analytics-using-simple-php-script.html#comments</comments>
		<pubDate>Tue, 23 Oct 2007 17:08:35 +0000</pubDate>
		<dc:creator>Joyce</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.joycebabu.com/blog/speed-up-google-analytics-using-simple-php-script.html</guid>
		<description><![CDATA[Update:  Thanks to the wonder idea by Carl Mercier, the script is now available as a WordPress pluging. Please try Local Analytics. Google Analytics is one of the best web traffic analysis service available. The best thing about Google Analytics is that it is FREE, while most  of the similar services requires a premium membership [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update: </strong> Thanks to the wonder idea by <a href="http://blog.carlmercier.com/" target="_blank">Carl Mercier</a>, the script is now available as a WordPress pluging. Please try <a title="Local Analytics" href="http://www.joycebabu.com/downloads/local-analytics/" target="_blank">Local Analytics</a>.</p>
<p>Google Analytics is one of the best web traffic analysis service available. The best thing about Google Analytics is that it is FREE, while most  of the similar services requires a premium membership for such detailed reports. Microsoft announced starting their own Web Analytics service codenamed</p>
<p>Back to our topic. Recently I came across an article in <a title="JonLee.ca" href="http://www.joycebabu.com/wp-admin/JonLee.ca" target="_blank">JonLee.ca</a> on <a title="Speed Up Google Analytics" href="http://www.jonlee.ca/speed-up-google-analytics-host-it-locally/" target="_blank">speeding Up Google Analytics</a> by hosting <em><span style="color: #800000;">urchin.js</span></em> it locally. Google <a href="http://www.google.com/support/analytics/bin/answer.py?hl=en&amp;answer=43183" target="_blank">support says</a> that it is allowed, though not recommended, to host urchin.js locally. Google recommends directly linking to the file hosted on their server, because it will ensure that your users are downloading the latest version of the file.</p>
<p>A work around to this proposed by the above site and many other blogs is to setup a cron job to automatically update the file at regular intervals. But most of the sites does not provide any information on how to do that. Also not all webhosts support crontab. When a gzip enabled browser requests for the file, Google compresses the file before sending theirby reducing the file size from 21KB to 6KB. If your server is not configured to automatically compress all Javascript files, then this can increase the file download time.</p>
<p>Hence I have created a simple php script that will automatically download the script from Google Server at regular intervals and provides your users with latest version of <em><span style="color: #800000;">urchin.js</span></em>. The script also supports Gzip compression by default, though it can be turned off by changing <span style="color: #800080;">$useGzip</span> to <span style="color: #0000ff;"><em>false</em></span>.<br />
Here is the script:</p>
<pre lang="php">&lt; ?php

// Remote file to download
$remoteFile = 'http://www.google-analytics.com/urchin.js';
// Local File name. Must be made writable
$localFile = "local-urchin.js";
// Time to cache in hours
$cacheTime = 24;
// Connection time out
$connTimeout = 10;
// Use Gzip compression
$useGzip = true;

if($useGzip){
     ob_start('ob_gzhandler');
}

if(file_exists($localFile) &amp;&amp; (time() - ($cacheTime * 3600) &lt; filemtime($localFile))){
     readfile($localFile);
}else{
     $url = parse_url($remoteFile);
     $host = $url['host'];
     $path = isset($url['path']) ? $url['path'] : '/';

     if (isset($url['query'])) {
          $path .= '?' . $url['query'];
     } 

     $port = isset($url['port']) ? $url['port'] : '80';

     $fp = @fsockopen($host, '80', $errno, $errstr, $connTimeout ); 

     if(!$fp){
          // On connection failure return the cached file (if it exist)
          if(file_exists($localFile)){
               readfile($localFile);
          }
     }else{
          // Send the header information
          $header = "GET $path HTTP/1.0\r\n";
          $header .= "Host: $host\r\n";
          $header .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6\r\n";
          $header .= "Accept: */*\r\n";
          $header .= "Accept-Language: en-us,en;q=0.5\r\n";
          $header .= "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";
          $header .= "Keep-Alive: 300\r\n";
          $header .= "Connection: keep-alive\r\n";
          $header .= "Referer: http://$host\r\n\r\n";

          fputs($fp, $header);

          $response = '';
          // Get the response from the remote server
          while($line = fread($fp, 4096)){
               $response .= $line;
          } 

          // Close the connection
          fclose( $fp );

          // Remove the headers
          $pos = strpos($response, "\r\n\r\n");
          $response = substr($response, $pos + 4);

          // Return the processed response
          echo $response;

          // Save the response to the local file
          if(!file_exists($localFile)){
               // Try to create the file, if doesn't exist
               fopen($localFile, 'w');
          }
          if(is_writable($localFile)) {
               if($fp = fopen($localFile, 'w')){
                    fwrite($fp, $response);
                    fclose($fp);
               }
          }
     }
}

?&gt;</pre>
<p><strong><span style="text-decoration: underline;"> Installing the Script</span></strong></p>
<p>Installing the script is extremely simple. Save the above code in a php file, say <span style="color: #800000;">analytics.php</span> or <a href="http://www.joycebabu.com/wp-content/uploads/2007/10/analytics.php" target="_blank">download it from here</a>. Edit your Google Analytics code and change <em>http://www.google-analytics.com/urchin.js</em> to your new file path, say <em>http://www.yourdomain.com/analytics.php</em>.</p>
<p>Now your code will be something like this</p>
<pre lang="javascript"><script src="http://www.yourdomain.com/analytics.php" type="text/javascript"><!--mce:0--></script>
<script type="text/javascript"><!--mce:1--></script></pre>
<p>Use this code instead of your original Google Analytics code.</p>
<p>After uploading analytics.php to the server, directly access the file using your web browser. This will create a local copy of <em><span style="color: #800000;">urchin.js</span></em>, named <span style="color: #800000;"><em>local-urchin.js</em></span>, on your server. Make sure that <span style="color: #800000;"><em>local-urchin.js</em></span> is writable (chmod to 777).</p>
<p>I<strong>mportant:</strong> If your server is using the zlib compression for compressing javascript files, then turn off gzip compression by changing line no. 11 to :</p>
<p><code><span style="color: #800080;">$useGzip</span> = <span style="color: #0000ff;">true</span>;</code></p>
<p><strong><span style="text-decoration: underline;">Advantages of using the script</span></strong></p>
<ul>
<li>Your webpage loads faster, since your user&#8217;s browser can use the existing connection with your web server to download the file and doesn&#8217;t need to create a new connection to google&#8217;s server.</li>
<li>Sometimes, though very rarely, google servers become overloaded and your page load time will be affected drastically.</li>
<li>Some ad blockers are now blocking Google Analytics too. This script will be a work around to that too.</li>
<li>Unlike other methods, the file is compressed before sending to gzip enabled browsers.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.joycebabu.com/blog/speed-up-google-analytics-using-simple-php-script.html/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>TorPlus includes Kestrel support</title>
		<link>http://www.joycebabu.com/blog/torplus-includes-kestrel-support.html</link>
		<comments>http://www.joycebabu.com/blog/torplus-includes-kestrel-support.html#comments</comments>
		<pubDate>Sun, 16 Sep 2007 08:55:13 +0000</pubDate>
		<dc:creator>Joyce</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Softwares]]></category>

		<guid isPermaLink="false">http://www.joycebabu.com/blog/torplus-includes-kestrel-support.html</guid>
		<description><![CDATA[I am releasing a minor update of the TorPlus proxy solution. This update changes the way in which file paths are referenced within the Opera Settings files. Previous released used relative path names. This created minor problems with user stylesheets. Hence the built-in IRC chat and feed reader lost their CSS formatting. Now absolute path [...]]]></description>
			<content:encoded><![CDATA[<p>I am releasing a minor update of the <a title="TorPlus" href="http://www.joycebabu.com/torplus/">TorPlus proxy solution</a>. This update changes the way in which file paths are referenced within the Opera Settings files. Previous released used relative path names. This created minor problems with user stylesheets. Hence the built-in IRC chat and feed reader lost their CSS formatting. Now absolute path is used within the files. This path is updated everytime TorPlus is run, thus the program is still portable. It is highly recommended that you don&#8217;t run the Opera browser directly.</p>
<p><em>Felix</em> and <em>Ray</em> requested <a title="Kestrel Website" href="http://www.opera.com/products/desktop/next/" target="_blank">Kestrel</a> support for <a title="TorPlus" href="http://www.joycebabu.com/torplus/">TorPlus</a>. Hence I am releasing <em><strong>TorKestrel+</strong></em> also with this version.  For those who are unaware of Kestrel, it is the official alpha release of the upcoming <a title="Opera" href="http://www.opera.com" target="_blank">Opera</a> v9.5. Opera v9.5 is promised to be much faster than all previous versions. Since Kestrel is still is alpha stage, <strong><em>TorKestrel+</em></strong> is provided as a separate zip file, without Tor and Privoxy. To use TorKestrel+, download and extract the zip files of <strong><em>TorOpera+</em></strong> and <strong><em>TorKestrel+</em></strong> to the same directory.</p>
<p><a title="TorPlus" href="http://www.joycebabu.com/torplus/">Read more and download TorPlus</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.joycebabu.com/blog/torplus-includes-kestrel-support.html/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>TorOpera Plus</title>
		<link>http://www.joycebabu.com/blog/toropera-plus.html</link>
		<comments>http://www.joycebabu.com/blog/toropera-plus.html#comments</comments>
		<pubDate>Fri, 31 Aug 2007 20:06:30 +0000</pubDate>
		<dc:creator>Joyce</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Softwares]]></category>

		<guid isPermaLink="false">http://www.joycebabu.com/blog/toropera-plus.html</guid>
		<description><![CDATA[Ever since I blogged on the topic &#8220;Protect your privacy, Hide your identity&#8220;, I have been thinking about creating a package similar to OperaTor. My search for a simple programming solution lead me to AutoIt. According to AutoIt Script homepage, AutoIt is a freeware Windows automation language. It can be used to script most simple [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since I blogged on the topic &#8220;<a TITLE="Protect your privacy, Hide your identity" HREF="http://www.joycebabu.com/blog/protect-your-privacy-hide-your-identity.html">Protect your privacy, Hide your identity</a>&#8220;, I have been thinking about creating a package similar to OperaTor. My search for a simple programming solution lead me to <a TITLE="AutoIt Homepage" HREF="http://www.autoitscript.com/">AutoIt</a>. According to AutoIt Script homepage,</p>
<blockquote><p>AutoIt is a freeware Windows automation language. It can be used to script most simple Windows-based tasks (great for PC rollouts or home automation).</p></blockquote>
<p>I too found AutoIt a helpful tool and was really amazed by its simplicity. It also supports GUI for your program. It cannot be used to create resource intensive programs. But for small programs like the one I intended to create, it is excellent.</p>
<p>I have created <a HREF="http://www.joycebabu.com/torplus/" TITLE="TorOpera+">TorOpera +</a>, which is a bundle of Opera, Tor and Privoxy. The program is fully configurable and contains many features that OperaTor lacked. The program can be configured to copy Opera to the Hard Disk from your pen drive which will speed up Opera. Also I have included several features like Ad Blocker, Flash Blocker, Image Blocker and several more.</p>
<p>I plan to create a similar bundle for Firefox too. Please <a HREF="http://www.joycebabu.com/torplus/" TITLE="TorOpera+">download TorOpera+</a> and let me know your valuable suggestions and opinions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joycebabu.com/blog/toropera-plus.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery &#8211; Fast, Light-weight Javascript Library</title>
		<link>http://www.joycebabu.com/blog/jquery-fast-light-weight-javascript-library.html</link>
		<comments>http://www.joycebabu.com/blog/jquery-fast-light-weight-javascript-library.html#comments</comments>
		<pubDate>Tue, 26 Jun 2007 06:04:06 +0000</pubDate>
		<dc:creator>Joyce</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.joycebabu.com/?p=10</guid>
		<description><![CDATA[A javascript library is a collection of functions and methods in Javascript for performing some of the most common needs like Dom traversing, event handling, adding Ajax interaction etc. There are many free Javascript libraries available like jQuery, Prototype, Scriptaculous, Dojo, MochiKit, Yahoo! UI Library (YUI). Prototype and Scriptaculous together forms the backbone of the [...]]]></description>
			<content:encoded><![CDATA[<p>A javascript library is a collection of functions and methods in Javascript for performing some of the most common needs like Dom traversing, event handling, adding Ajax interaction etc. There are many free Javascript libraries available like <a HREF="http://jquery.com/" TARGET="_blank" TITLE="jQuery">jQuery</a>, <a HREF="http://prototype.conio.net/" TARGET="_blank" TITLE="Prototype JS Library">Prototype</a>, <a HREF="http://script.aculo.us/" TARGET="_blank" TITLE="Scriptaculous">Scriptaculous</a>, <a HREF="http://dojotoolkit.org/" TARGET="_blank" TITLE="Dojo Toolkit">Dojo</a>, <a HREF="http://mochikit.com" TARGET="_blank" TITLE="MochiKit - A light-weight library">MochiKit</a>, <a HREF="http://developer.yahoo.com/yui/" TARGET="_blank" TITLE="Yahoo! User Interface Library (YUI)">Yahoo! UI Library (YUI)</a>. Prototype and Scriptaculous together forms the backbone of the Ruby-on-Rails project. YUI is a free  set of utilities and controls supported by Yahoo!. Dojo Toolkit is a library having Java like syntax.  All the libraries have their own highs and lows.</p>
<p>Recently jQuery has started getting a lot of attention. jQuery is a fast and extremely lightweight Javascript library. Recently jQuery v1.1.3 was released, which is said to be upto eight times faster than the previous version. But the biggest advantages is that the size of the library when compressed is just 20KB. Don&#8217;t you think that is great? <a HREF="http://drupal.org" TARGET="_blank" TITLE="Drupal">Drupal 5.0</a> is using jQuery instead of the older drupal.js.</p>
<p>Another advantage is that jQuery can be used with other Javascript Libraries without conflict. It also has a clean and modular approach to plugins. Since writing plugins is very simple in jQuery, a number of plugins are available for most of the common uses.</p>
<p>With jQuery running an animation like sliding and fading are very simple. Interface is a jQuery plugin for animation. Interface is like scriptaculous library for prototype. It can be used for handling sorting, drag and drop effect and other complex effects.</p>
<p>Another important feature of jQuery is the <em>ready</em> function. For Dom scripting we have to wait till the complete Dom loads. Using the <em>onload </em> event handler for this purpose is a waste of time for pages having images as the event is triggered only when every element, including the images, have been loaded. jQuery provides a workaround, ie the <em>ready</em> function, which is called when the dom has loaded completely.</p>
<p>Sending and retrieving data via ajax has never been easier. jQuery provides us with a rich set of functions for managing it.</p>
<p>jQuery has a really simplified format for traversing the Dom. jQuery&#8217;s selector syntax is based heavily on CSS3 and XPath. Hence selecting and traversing through elements have never been simpler. Elements can be selected using id, classname, a combination of id and classname and XPath reference.</p>
<p>Another important feature of jQuery is <em>method chaining.</em> Every call of a method on a jQuery object returns the object itself. Hence to apply multiple methods to an element you can do it without typing the selector again. All you have to do is to chain the new method at the end of the previous method.</p>
<p>jQuery has made Javascript programming fun and enjoyable for me. Try it and feel its power.</p>
<p><strong><u>Links</u></strong></p>
<ul>
<li><a TITLE="jQuery Documentation" TARGET="_blank" HREF="http://docs.jquery.com">Documentation</a></li>
<li><a TITLE="jQuery Tutorials" TARGET="_blank" HREF="http://docs.jquery.com/Tutorials">Tutorials</a></li>
<li><a TITLE="jQuery Plugins" TARGET="_blank" HREF="http://jquery.com/plugins/  ">Plugins</a></li>
<li><a TITLE="Visual jQuery" TARGET="_blank" HREF="http://visualjquery.com/">Visual jQuery</a></li>
<li><a TITLE="Learning jQuery" TARGET="_blank" HREF="http://www.learningjquery.com/">Learning jQuery</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.joycebabu.com/blog/jquery-fast-light-weight-javascript-library.html/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
