<?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>bhat.log() &#62; web &#187; Programming</title>
	<atom:link href="http://blog.satishbhat.com/archives/category/programming/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.satishbhat.com</link>
	<description>It's simple, just a days work, it works</description>
	<lastBuildDate>Tue, 09 Jun 2009 20:55:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
	<atom:link rel='hub' href='http://blog.satishbhat.com/?pushpress=hub'/>
		<item>
		<title>Linksys hacks</title>
		<link>http://blog.satishbhat.com/archives/2006/02/07/linksys-hacks</link>
		<comments>http://blog.satishbhat.com/archives/2006/02/07/linksys-hacks#comments</comments>
		<pubDate>Tue, 07 Feb 2006 12:43:36 +0000</pubDate>
		<dc:creator>Satish Bhat</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.satishbhat.com/archives/2006/02/07/linksys-hacks/</guid>
		<description><![CDATA[I own one of these babies Just a bookmark for me to investigate Linksys hacks addthis_url = 'http%3A%2F%2Fblog.satishbhat.com%2Farchives%2F2006%2F02%2F07%2Flinksys-hacks'; addthis_title = 'Linksys+hacks'; addthis_pub = 'bhattisatish';]]></description>
			<content:encoded><![CDATA[<p>I own one of these babies <img src='http://blog.satishbhat.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Just a bookmark for me to investigate<br />
<a href="http://www.hanselman.com/blog/PermaLink.aspx?guid=d4a94cc0-8f19-4e43-8e76-4d74f9c4ad68">Linksys hacks</a></p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.satishbhat.com%2Farchives%2F2006%2F02%2F07%2Flinksys-hacks';
  addthis_title  = 'Linksys+hacks';
  addthis_pub    = 'bhattisatish';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.satishbhat.com/archives/2006/02/07/linksys-hacks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Overload == Polymorphism?</title>
		<link>http://blog.satishbhat.com/archives/2006/01/17/overload-polymorphism</link>
		<comments>http://blog.satishbhat.com/archives/2006/01/17/overload-polymorphism#comments</comments>
		<pubDate>Tue, 17 Jan 2006 06:55:14 +0000</pubDate>
		<dc:creator>Satish Bhat</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.satishbhat.com/archives/2006/01/17/overload-polymorphism/</guid>
		<description><![CDATA[Just went through another interview process today (I am averaging 3-4 a day for past few weeks!). After conducting so many interviews, especially past 6 months, I have kinda developed an interview model which works for me: - Ask about the project they have worked in the past year (Kinda Ice breaker). - Ask about [...]]]></description>
			<content:encoded><![CDATA[<p>Just went through another interview process today (I am averaging 3-4 a day for past few weeks!).</p>
<p>After conducting so many interviews, especially past 6 months, I have kinda developed an interview model which works for me:<br />
- Ask about the project they have worked in the past year (Kinda Ice breaker).<br />
- Ask about the architecture of the application or what they found to be most interesting in that project.<br />
- Move on to the platform specific questions, where the questions are more on the framework then any thing else.<br />
- Maybe even drill down to certain important API&#8217;s.<br />
- Give some problem for solving on an implementation level.<br />
- A generic scenario from which a class diagram needs to be generated. I like this one as it tells me if the candidate has an innate knowledge of design or not. You will be surprised by how people think of a <a title="Hierarchy" href="http://en.wikipedia.org/wiki/Hierarchy_%28mathematics%29">hierarchy</a>. Seems to be a simple &#8220;as-is&#8221; relationship, but reasons for justifying a base class! Even what base classes people can come up with (Whew).</p>
<p>Anyways, everytime what gets my goat is when we discuss Polymorphic behavour, especially in C++ or C# or Java, I hear about overloading being polymorphic. I still haven&#8217;t figured our how this term has come into being: <a title="Static polymorphism" target="_blank" href="http://www.devx.com/tips/Tip/12765">static polymorphism</a>?</p>
<p>In math we define <a title="Morphism" href="http://en.wikipedia.org/wiki/Morphism">Morphism</a> as something which can retain the same structure but the underlying mathematical structure (functions for e.g.) can change. This basically means in our modern OOPS language <a title="Polymorhism" target="_blank" href="http://en.wikipedia.org/wiki/Polymorphism">polymorphism</a> is alwyas be the usage of virtual functions (overriding).</p>
<p>Well, unfortunately all the new texts in India use this term liberally with overloading <img src='http://blog.satishbhat.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  go figure.</p>
<p>Refrencing Links:<br />
<a title="Morphism" href="http://en.wikipedia.org/wiki/Morphism">http://en.wikipedia.org/wiki/Morphism</a><br />
<a title="Polymorphism" href="http://en.wikipedia.org/wiki/Polymorphism">http://en.wikipedia.org/wiki/Polymorphism </a></p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.satishbhat.com%2Farchives%2F2006%2F01%2F17%2Foverload-polymorphism';
  addthis_title  = 'Overload+%3D%3D+Polymorphism%3F';
  addthis_pub    = 'bhattisatish';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.satishbhat.com/archives/2006/01/17/overload-polymorphism/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Trawling or Deep web search</title>
		<link>http://blog.satishbhat.com/archives/2005/02/01/web-trawling-or-deep-web-search</link>
		<comments>http://blog.satishbhat.com/archives/2005/02/01/web-trawling-or-deep-web-search#comments</comments>
		<pubDate>Tue, 01 Feb 2005 13:13:01 +0000</pubDate>
		<dc:creator>Satish Bhat</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.satishbhat.com/archives/2005/02/01/web-trawling-or-deep-web-search/</guid>
		<description><![CDATA[My bookmarks for searching and reading on CS stuff]]></description>
			<content:encoded><![CDATA[<h2 id="trawling">Web Trawling or Deep web search</h2>
<p>A friend asked me how do I keep in touch with the latest and greatest? The answer was &#8220;/.&#8221;<br />
But seriously if I am looking for something specific, the following bookmark is what I use for my searches, i.e. when I want more then then what <a href="http://google.com">google</a> can give me(!).</p>
<table>
<tr>
<td>PDF search</td>
<td>
<table>
<tr>
<td><a href="http://www.searchpdf.adobe.com">http://www.searchpdf.adobe.com</a></td>
<td>The guys who made it possible</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>Articles and journals archive</td>
<td>
<table>
<tr>
<td><a href="http://www.askeric.org">http://www.askeric.org</a></td>
<td>contains abstracts of journals and documents</td>
</tr>
<tr>
<td><a href="http://www.findarticles.com">http://www.findarticles.com</a></td>
<td>an archive of 300+ magazines from 1998</td>
</tr>
<tr>
<td><a href="http://www.lii.org">http://www.lii.org</a></td>
<td>The librarian&#8217;s starting point</td>
</tr>
<tr>
<td><a href="http://www.lita.org/committe/toptech/toolkit.htm#invisible">http://www.lita.org/committe/toptech/toolkit.htm#invisible</a></td>
<td>Lib and info tech associations tool kit for the expert web searcher</td>
</tr>
<tr>
<td><a href="http://dir.lycos.com/Reference/Searchable_Databases/">http://dir.lycos.com/Reference/Searchable_Databases/</a></td>
<td>Web catalog</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>Yet to be investigated</td>
<td>
<table>
<tr>
<td><a href="http://blog.satishbhat.com/www.lexibot.com">www.lexibot.com</a></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><a href="http://info.intelliseek.com/prod/bullseye.htm">http://info.intelliseek.com/prod/bullseye.htm</a></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><a href="http://blog.satishbhat.com/flipper.com">flipper.com</a></td>
<td>an archive of 300+ magazines from 1998</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>Bookmarks</td>
<td>
<table>
<tr>
<td><a href="http://www.freepint.com/gary/direct.htm">http://www.freepint.com/gary/direct.htm</a></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><a href="http://www.profusion.com/nav">Formerly http://www.invisibleweb.com, a vertical search/catalog engine</a></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><a href="http://www.completeplanet.com">http://www.completeplanet.com</a></td>
<td>&nbsp;</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>Research area on CS</td>
<td>
<table>
<tr>
<td><a href="http://liinwww.ira.uka.de/bibliography/">http://liinwww.ira.uka.de/bibliography/</a></td>
<td>A good CS bibliography query engine</td>
</tr>
<tr>
<td><a href="http://citeseer.nj.nec.com/">http://citeseer.nj.nec.com/</a></td>
<td>Research Paper Index&#8217;s</td>
</tr>
</table>
</td>
</tr>
</table>
<p>Other links<br />
<a href="http://www.nist.gov/dads/">Dictionary of Algorithms</a><br />
<a href="http://dmoz.org/">An open directory</a></p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.satishbhat.com%2Farchives%2F2005%2F02%2F01%2Fweb-trawling-or-deep-web-search';
  addthis_title  = 'Web+Trawling+or+Deep+web+search';
  addthis_pub    = 'bhattisatish';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.satishbhat.com/archives/2005/02/01/web-trawling-or-deep-web-search/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enabling compression in Web Servers</title>
		<link>http://blog.satishbhat.com/archives/2004/12/22/enabling-compression-in-web-servers</link>
		<comments>http://blog.satishbhat.com/archives/2004/12/22/enabling-compression-in-web-servers#comments</comments>
		<pubDate>Wed, 22 Dec 2004 13:12:20 +0000</pubDate>
		<dc:creator>Satish Bhat</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.satishbhat.com/archives/2004/12/22/enabling-compression-in-web-servers/</guid>
		<description><![CDATA[Enabling compression in IIS and Apache web servers for dynamic and static streams]]></description>
			<content:encoded><![CDATA[<h3>Enabling compression in Web Servers</h3>
<p>On a site serving static content or content that are read only, generally does<br />
not generate large data to be consumed by the client. Even in case of large<br />
documents/articles/content most of the sites split the content across multiple<br />
pages to ease the amount of data to be downloaded. In case of applications with<br />
web interfaces this can be different. Generally the users of the system have<br />
been used to a client-server based applications with UI interface with many<br />
smart tricks on the client side. A typical user expects the same behaviour on<br />
the web solution. A clever UI designer can design an interface which works well<br />
even in the web based mode.</p>
<p>But there are many cases where a small thin interface is difficult to design.<br />
    Standard examples are dashboard, reporting page or cases where filters are<br />
    removed, etc &#8230;</p>
<p>For these cases it is a good idea to enable stream compression at the web server<br />
    level. This can drastically reduce the bandwidth requirement and hence download<br />
    speeds for a site.</p>
<p>Few gotchas:</p>
<ul>
<li>
        Enabling compression will increase the server CPU load. But in a cluster<br />
        enviroment, I definetly recommend this. As a general thumb rule if the server<br />
        machine is running at the max load of 80% enable the compression, otherwise add<br />
        another machine to your cluster environment before enabling them.</p>
<li>
        There are browser quirks where these can create problem. Most notable Netscape<br />
        4.xx (these can be safely ignored) or IE 5.5 (yikes, baad browser. If your<br />
        users have this browser, recommend IE 5.5 SP2) or IE 6.0 Japanese version (similar to IE<br />
        5.5 in bugs!)</p>
<li>
            Compressing streams smaller then 1K will create unnecessary load on the server.<br />
            If possible disable compression for streams smaller then ~500-1000 bytes.
        </li>
</li>
</li>
</ul>
<p>
There is a decent article covering the same <a href="http://weblogs.asp.net/owscott/archive/2004/01/12/57916.aspx">here</a>. I will not cover the same points already discussed out there, but these are my take:</p>
<ul>
<li>
    Set compression for both static and dynamic files.</p>
<li>
    Disable compression for those aspx or server script files where we serve<br />
    already compressed files. e.g. jpeg, mpeg, dwf, jpg, jpe, gif, zip, cab, mpg,<br />
    mpe, mp3, png, amp, ptp, dwp, pnp, and zgl.</p>
<li>
        Understand the following variables of IIS: <a href="http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/ref_mb_hcdodynamiccompression.asp"><br />
            HcDoDynamicCompression</a>, <a href="http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/ref_mb_hcnocompressionforrange.asp"><br />
            HcNoCompressionForRange</a>, In fact readup on <a href="http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/Default.asp?url=/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/ref_prog_iaorefcompschs.asp"><br />
            IIsCompressionSchemes</a>.</p>
<li>
        To disable compression for certain files or nodes, set the <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/iis/ref_mb_dodynamiccompression.asp">DoDynamicCompression</a><br />
        to false.
    </li>
</li>
</li>
</li>
</ul>
<p>e.g. scripts:<br />
[code]<br />
C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/{siteID}/root/DoStaticCompression True</p>
<p>cscript C:/Inetpub/AdminScripts/adsutil.vbs set w3svc/{siteID}/root/DoDynamicCompression True</p>
<p>cscript C:/Inetpub/AdminScripts/adsutil.vbs set<br />
W3SVC/{siteID}/root/{subfolder}/{page.aspx}/DoDynamicCompression False<br />
[/code]</p>
<p>Otherwise you can use the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&#038;DisplayLang=en">Metabase Explorer</a> to do this.</p>
<h4>Apache web server</h4>
<p>There are two modules available, namely &#8220;deflate&#8221; and &#8220;gzip&#8221;.<br />
<br />
As the following <a href="http://lists.over.net/pipermail/mod_gzip/2003-June/007130.html">  thread</a> explains if you have Apache 2, use mod_deflate otherwise depending upon your configuration requirements go for either.</p>
<p>
    The apache site contains information for deflate (<a href="http://httpd.apache.org/docs-2.0/mod/mod_deflate.html">http://httpd.apache.org/docs-2.0/mod/mod_deflate.html</a>)<br />
and mod_gzip is explained at <a href="http://www.schroepl.net/projekte/mod_gzip/config.htm">http://www.schroepl.net/projekte/mod_gzip/config.htm</a>
</p>
<p>A sample configuration<br />
[code]<br />
mod_gzip_on                     Yes<br />
<ifmodule mod_gzip.c><br />
    mod_gzip_on                     Yes<br />
    #mod_gzip_send_vary              Yes<br />
    mod_gzip_add_header_count       Yes<br />
    mod_gzip_dechunk                Yes</p>
<p>    mod_gzip_can_negotiate          Yes<br />
    mod_gzip_update_static           No<br />
    mod_gzip_static_suffix          .gz</p>
<p>    mod_gzip_minimum_file_size      300<br />
    mod_gzip_maximum_inmem_size   60000<br />
    mod_gzip_maximum_file_size  2000000<br />
    mod_gzip_temp_dir              /tmp<br />
    mod_gzip_keep_workfiles          No</p>
<p>    ## minimal included set of items to compress to avoid sending Vary * header<br />
    ## This is very conservative and cooperates superbly with mod_expires<br />
    ## caching headers.  (Netscape 4.0[678] will still have problems, but it<br />
    ## only affects a fraction of a percent of hits (about 0.00015 == 0.015%)<br />
    ## on our site with the settings below)<br />
    mod_gzip_item_include           uri   .s?html?$<br />
    mod_gzip_item_include          mime   ^text/<br />
    mod_gzip_item_include          file   .php$<br />
    mod_gzip_item_include          file   .js$<br />
    mod_gzip_item_include          file   .css$</p>
<p>    mod_gzip_item_exclude         mime       ^image/<br />
</ifmodule><br />
[/code]
</p></p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.satishbhat.com%2Farchives%2F2004%2F12%2F22%2Fenabling-compression-in-web-servers';
  addthis_title  = 'Enabling+compression+in+Web+Servers';
  addthis_pub    = 'bhattisatish';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.satishbhat.com/archives/2004/12/22/enabling-compression-in-web-servers/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Search for open source</title>
		<link>http://blog.satishbhat.com/archives/2004/11/23/search-for-open-source-source</link>
		<comments>http://blog.satishbhat.com/archives/2004/11/23/search-for-open-source-source#comments</comments>
		<pubDate>Tue, 23 Nov 2004 14:08:29 +0000</pubDate>
		<dc:creator>Satish Bhat</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.satishbhat.com/archives/2004/11/23/search-for-open-source-source/</guid>
		<description><![CDATA[A search site that allows you to search for open source(http://www.koders.com/)]]></description>
			<content:encoded><![CDATA[<p>Divya pointed out this one for me.<br />
What I liked about the site is the way they have categorized and a simple way of browsing projects.<br />
<br />I guess a place I will haunt more <img src='http://blog.satishbhat.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<br />Check it out at <a href="http://www.koders.com/">http://www.koders.com/</a><br />
As they say in windows world &#8220;ctrl-c ctrl-v&#8221; or if you prefer vim &#8220;esc&#8221; &#8220;y&#8221; &#8220;p&#8221; or for the emacs fanatics &#8220;alt-w ctrl-y&#8221;. What&#8217;s your poison?</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.satishbhat.com%2Farchives%2F2004%2F11%2F23%2Fsearch-for-open-source-source';
  addthis_title  = 'Search+for+open+source';
  addthis_pub    = 'bhattisatish';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.satishbhat.com/archives/2004/11/23/search-for-open-source-source/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

