<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-18628733</id><updated>2011-12-03T03:58:59.117-07:00</updated><title type='text'>Smorgasbord - Politics, Lisp, Rails, Fencing, etc.</title><subtitle type='html'>My musings on assortment of things ranging from politics, computer technology and programming to sports.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>55</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-18628733.post-8697511275354933755</id><published>2008-02-19T09:41:00.003-07:00</published><updated>2008-02-19T09:47:12.112-07:00</updated><title type='text'>Whistle blower Wikileaks.org forcibly taken off in US</title><content type='html'>Read &lt;a href="http://blog.wired.com/27bstroke6/2008/02/cayman-island-b.html"&gt;http://blog.wired.com/27bstroke6/2008/02/cayman-island-b.html&lt;/a&gt; and &lt;a href="http://news.bbc.co.uk/2/hi/technology/7250916.stm"&gt;http://news.bbc.co.uk/2/hi/technology/7250916.stm&lt;/a&gt; for more details. The wikileaks site can be still accessed at &lt;a href="http://88.80.13.160/"&gt;http://88.80.13.160/&lt;/a&gt; and the page on the Swiss Bank Julius Baer which led to the legal action and the corresponding legal notice can be found at &lt;a href="http://88.80.13.160/wiki/Bank_Julius_Baer"&gt;http://88.80.13.160/wiki/Bank_Julius_Baer&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-8697511275354933755?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://88.80.13.160/wiki/Bank_Julius_Baer' title='Whistle blower Wikileaks.org forcibly taken off in US'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/8697511275354933755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=8697511275354933755' title='347 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/8697511275354933755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/8697511275354933755'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2008/02/whistle-blower-wikileaksorg-forcibly.html' title='Whistle blower Wikileaks.org forcibly taken off in US'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>347</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-4634722062936934543</id><published>2007-03-22T01:36:00.000-07:00</published><updated>2007-03-22T01:58:12.411-07:00</updated><title type='text'>Clusterer + other plugins</title><content type='html'>Lately I have been very busy with commercial work, so I am not able to give much time to Open Source projects. But I still somehow managed to clean up the &lt;a href="http://rubyforge.org/projects/clusterer/"&gt;clusterer&lt;/a&gt; gem somewhat and has made a release 0.1.9, its actually a release candidate for 0.2.0. The gem has changed quite a lot, since the &lt;a href="http://cuttingtheredtape.blogspot.com/2006/08/ruby-clustering-library-for-text-data.html"&gt;initial release&lt;/a&gt;, and its not backwards compatible. But there are several new features including Bayesian classifiers. The documentation is very sparse at this moment, but the examples and tests should help.&lt;br /&gt;&lt;br /&gt;There is a new version of &lt;a href="http://cuttingtheredtape.blogspot.com/2006/05/actsasclassifiable.html"&gt;acts_as_classifiable&lt;/a&gt; . There was some incompatibility issue with the old version and Rails 1.2.*, this is fixed in the new release. The plugin now depends upon the clusterer gem and &lt;span style="font-weight:bold;"&gt;not&lt;/span&gt; classifier gem.&lt;br /&gt;The new plugin can be downloaded from rubyforge: &lt;br /&gt;svn://rubyforge.org/var/svn/clusterer/tags/rel_0_1_9/rails-plugins/acts_as_classifiable&lt;br /&gt;&lt;br /&gt;Also there is a new release of &lt;a href="http://cuttingtheredtape.blogspot.com/2006/08/actsasclusterable.html"&gt;acts_as_clusterable&lt;/a&gt; it can be downloaded from: &lt;br /&gt;svn://rubyforge.org/var/svn/clusterer/tags/rel_0_1_9/rails-plugins/acts_as_clusterable&lt;br /&gt;&lt;br /&gt;Please try out the gem and the plugins, and if you face any problems let me know.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-4634722062936934543?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://rubyforge.org/projects/clusterer/' title='Clusterer + other plugins'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/4634722062936934543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=4634722062936934543' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/4634722062936934543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/4634722062936934543'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2007/03/clusterer-other-plugins.html' title='Clusterer + other plugins'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-115782595261520479</id><published>2006-09-09T11:17:00.000-07:00</published><updated>2006-10-20T05:09:34.507-07:00</updated><title type='text'>Changing and Rising China</title><content type='html'>My affair with China continues, another &lt;a href="http://www.nytimes.com/2006/09/09/opinion/09terrill.html"&gt;story&lt;/a&gt;, this one from NYT.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-115782595261520479?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.nytimes.com/2006/09/09/opinion/09terrill.html' title='Changing and Rising China'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/115782595261520479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=115782595261520479' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115782595261520479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115782595261520479'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/09/changing-and-rising-china.html' title='Changing and Rising China'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-115747813376803121</id><published>2006-09-05T10:36:00.000-07:00</published><updated>2006-10-20T05:09:34.430-07:00</updated><title type='text'>Google Eavesdropping - the technology</title><content type='html'>Just few days back it came to limelight that Google would be listening to noises in the room to find out what users are watching on TV and offer web-based supplemental information (see &lt;a href="http://cuttingtheredtape.blogspot.com/2006/09/do-no-evil.html"&gt;'do no evil'&lt;/a&gt; or read &lt;a href="http://www.techcrunch.com/2006/06/08/google-research-prototypes-ambient-audio-contextual-content/"&gt;Techcrunch&lt;/a&gt; or &lt;a href="http://yro.slashdot.org/article.pl?sid=06/09/03/2148216"&gt;slashdot&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;For people who were in the &lt;a href="http://www2003.org/"&gt;The Twelfth International World Wide Web Conference(WWW2003, Budapest Hungary)&lt;/a&gt; this should come as no surprise. &lt;a href="http://www-db.stanford.edu/~sergey/"&gt;Sergey Brin&lt;/a&gt; had co-authored a paper titled &lt;a href="http://citeseer.ist.psu.edu/henzinger03queryfree.html"&gt;Query-Free News Search&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To quote from the abstract of the paper clearly says &lt;b&gt;"in this paper we discuss finding news articles on the web that are relevant to news currently being broadcast."&lt;/b&gt; Broadcast here refers to TV broadcast. There they had discussed extracting "queries from the ongoing stream of closed captions" and based on that showing relevant pages/information.&lt;br /&gt;&lt;br /&gt;Currently they are talking about audio, if one reads the very last paragraph then, one can clearly find "Finally, as voice recognition systems improve, the same kind of topic finding and query generation algorithms described in this paper could be applied to conversations, providing relevant information immediately upon demand."&lt;br /&gt;&lt;br /&gt;So, has the voice recognition systems improved so much that such systems can make sense out of low quality noise and understand words from it? That would be magic.&lt;br /&gt;&lt;br /&gt;The key thing is "listening on TV". If one were to carefully read the &lt;a href="http://www.mangolassi.org/covell/pubs/euroITV-2006.pdf"&gt;paper&lt;/a&gt;, which was the source if this story, then one would find that they actually compare the audio which is recorded from the user's machine to the audio of things which were telecasted (in last X number of days, on various channels). Doing it fast is a challenge, but with resources which google have at their disposal it is not very hard. Then from the matched shows, they pick up the captions, and then do the search in a fashion similar to one mentioned in &lt;a href="http://citeseer.ist.psu.edu/henzinger03queryfree.html"&gt;Query-Free News Search&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Another aspect of this search algorithm is to maintain "terms from previous text segments to aid in generating a query for the current text segment, the notion being that the context leading up to the current text may contain terms that are still valuable in generating the query". A concept similar to what is currently being used in Google Personalized search.&lt;br /&gt;&lt;br /&gt;If some people where wondering that why don't they "train their system to listen in on everything that goes on at home", things still have some way to go before that is feasible.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-115747813376803121?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://citeseer.ist.psu.edu/henzinger03queryfree.html' title='Google Eavesdropping - the technology'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/115747813376803121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=115747813376803121' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115747813376803121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115747813376803121'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/09/google-eavesdropping-technology.html' title='Google Eavesdropping - the technology'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-115735479466714030</id><published>2006-09-04T00:24:00.000-07:00</published><updated>2006-10-20T05:09:34.358-07:00</updated><title type='text'>Do No Evil</title><content type='html'>&lt;a href="http://www.techcrunch.com/2006/06/08/google-research-prototypes-ambient-audio-contextual-content/"&gt;Do no evil&lt;/a&gt;. Hey but I am writing on a site owned by &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt;. Read the comments, also &lt;a href="http://yro.slashdot.org/article.pl?sid=06/09/03/2148216"&gt;Slashdot&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-115735479466714030?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.techcrunch.com/2006/06/08/google-research-prototypes-ambient-audio-contextual-content/' title='Do No Evil'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/115735479466714030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=115735479466714030' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115735479466714030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115735479466714030'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/09/do-no-evil.html' title='Do No Evil'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-115651307267561840</id><published>2006-08-25T06:32:00.000-07:00</published><updated>2006-10-20T05:09:32.535-07:00</updated><title type='text'>India vis-a-vis China</title><content type='html'>An old but nice summarized comparison drawing from &lt;a href="http://yaleglobal.yale.edu/display.article?id=6887"&gt;articles&lt;/a&gt; by &lt;a href="http://web.mit.edu/yshuang/www/"&gt;Yasheng Huang&lt;/a&gt;, a business professor at MIT Sloan and his book. &lt;br /&gt;&lt;br /&gt;Maybe someday when I am in the mood to write I will post my own rant on some of the problems which small startups face in India.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-115651307267561840?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sepiamutiny.com/sepia/archives/002944.html' title='India vis-a-vis China'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/115651307267561840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=115651307267561840' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115651307267561840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115651307267561840'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/08/india-vis-vis-china.html' title='India vis-a-vis China'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-115644299567990992</id><published>2006-08-24T10:45:00.000-07:00</published><updated>2007-03-22T02:00:22.516-07:00</updated><title type='text'>acts_as_clusterable</title><content type='html'>This plugin makes it very easy to cluster active record objects. It uses the &lt;a href="http://cuttingtheredtape.blogspot.com/2006/08/ruby-clustering-library-for-text-data.html"&gt;clusterer&lt;/a&gt; Ruby gem.&lt;br /&gt;&lt;br /&gt;Download and install the gem, and its dependencies. Copy the plugin into vendor/plugins from the following svn repository&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;http://opensvn.csie.org/acts_as_clusterable/&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Add the following lines to your model:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;  acts_as_clusterable :fields  =&gt; ['title','text']&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;If no fields are given then it will use all text and string fields present in the model.&lt;br /&gt;Now, doing clustering is as easy as:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;Joke.hierarchical_clustering()&lt;br /&gt;Joke.kmeans_clustering()&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;By default the number of clusters is &lt;i&gt;Math.sqrt(no. of objects)&lt;/i&gt;. To get custom no. of clusters give the method the no. of clusters as an argument, i.e.,&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;Joke.hierarchical_clustering(2)&lt;br /&gt;Joke.kmeans_clustering(2)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;For better results use hierarchical clustering, for faster results use kmeans.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Update: New release &lt;a href="http://cuttingtheredtape.blogspot.com/2007/03/clusterer-other-plugins.html"&gt;Clusterer + other plugins&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-115644299567990992?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://opensvn.csie.org/acts_as_clusterable/' title='acts_as_clusterable'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/115644299567990992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=115644299567990992' title='74 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115644299567990992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115644299567990992'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/08/actsasclusterable.html' title='acts_as_clusterable'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>74</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-115625618023027433</id><published>2006-08-22T06:45:00.000-07:00</published><updated>2007-03-22T02:00:57.302-07:00</updated><title type='text'>Ruby Clustering Library for Text Data</title><content type='html'>Few days back I came across, the &lt;a href="http://demo.carrot-search.com/carrot2-webapp/main"&gt;Carrot Clustering Framework&lt;/a&gt; this inspired me to write something similar for Ruby. So, I started off with this project, and have right now implemented the basic K-Means and Hierarchical Clustering algorithms.&lt;br /&gt;&lt;br /&gt;The first release can be downloaded from &lt;a href="http://rubyforge.org/"&gt;Rubyforge&lt;/a&gt; using the following command&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;  gem install clusterer&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The gem requires the &lt;a href="http://rubyforge.org/projects/stemmer/"&gt;stemmer&lt;/a&gt; gem, as a dependency.&lt;br /&gt;&lt;br /&gt;There are also two example files which shows, how to use the library by clustering search results returned by &lt;a href="http://www.yahoo.com"&gt;Yahoo&lt;/a&gt; and &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt;. To try the example, the corresponding API key is needed.&lt;br /&gt;&lt;br /&gt;Basically, one has to pass an array of strings to the clustering algorithm, and it will return the index of the clustered elements.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;Clusterer::Clustering.kmeans_clustering(["hello world","mea culpa","goodbye world"])&lt;br /&gt;Clusterer::Clustering.hierarchical_clustering(["hello world","mea culpa","goodbye world"])&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The result might be something like &lt;strong&gt;[[1,3],[2]]&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;The method signature for K-means is as follows&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt; def kmeans_clustering (docs, k = nil, max_iter = 10, &amp;similarity_function)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;K-means is a simple hill climbing algorithm, and can get stuck at local maxima, but it fast in nature. Just to ensure that the algorithm doesn't gets stuck in a state where it oscillates the max number of iteration is necessary.&lt;br /&gt;&lt;br /&gt;When &lt;span style="font-style:italic;"&gt;k=nil&lt;/span&gt;  the algorithm finds &lt;span style="font-style:italic;"&gt;k = Math.sqrt(docs.size)&lt;/span&gt; clusters.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;  def hierarchical_clustering (docs, k = nil, &amp;similarity_function)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Hierarchical clustering gives much better results, but is comparatively slower, when data volume is quite high.&lt;br /&gt;&lt;br /&gt;If you are using this gem in a live public facing site, then let me know; I would like to link to that.&lt;br /&gt;&lt;br /&gt;Update: New release &lt;a href="http://cuttingtheredtape.blogspot.com/2007/03/clusterer-other-plugins.html"&gt;Clusterer + other plugins&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-115625618023027433?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://rubyforge.org/projects/clusterer/' title='Ruby Clustering Library for Text Data'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/115625618023027433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=115625618023027433' title='54 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115625618023027433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115625618023027433'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/08/ruby-clustering-library-for-text-data.html' title='Ruby Clustering Library for Text Data'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>54</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-115606852452606027</id><published>2006-08-20T02:53:00.000-07:00</published><updated>2006-10-20T05:09:32.359-07:00</updated><title type='text'>IE the Cancer</title><content type='html'>Internet Explorer is a cancer, it has an extremely poor web standards support. A nightmare for web developers and designers. &lt;br/&gt;&lt;br /&gt;&lt;br /&gt;It doesn't seems that things are likely to improve much with the IE7 release. &lt;br/&gt;&lt;br /&gt;&lt;br /&gt;As the above and this slashdot articles point out &lt;a href="http://slashdot.org/article.pl?sid=06/08/16/1315237"&gt;http://slashdot.org/article.pl?sid=06/08/16/1315237&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hopefully one day, most web users will get smarter and switch to &lt;a href="http://www.mozilla.com/firefox/"&gt;Firefox&lt;/a&gt; or some other standards friendly browser.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-115606852452606027?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://developers.slashdot.org/article.pl?sid=06/08/07/1824250' title='IE the Cancer'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/115606852452606027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=115606852452606027' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115606852452606027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115606852452606027'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/08/ie-cancer.html' title='IE the Cancer'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-115471092036196708</id><published>2006-08-04T09:52:00.000-07:00</published><updated>2006-10-20T05:09:32.301-07:00</updated><title type='text'>Rails model - next and previous objects</title><content type='html'>Its been a long time since, I posted anything. So, I thought I will let something go.&lt;br /&gt;&lt;br /&gt;In one of my Rails application, while showing an object I need to show links to the previous and next objects. I think, this is a common task in many Rails application, the way I am doing it is I have extended the Active Record Base class so that all my models have this function. There are numerous way to include this, choose one which you think most suits your purpose or which you like.&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;module ActiveRecord #:nodoc:&lt;br /&gt;  class Base&lt;br /&gt;    def next_id&lt;br /&gt;      @next ||= self.class.find(:first,:select =&gt; ['id'],:conditions =&gt; ['id &gt; ?', id], :order =&gt; 'id')&lt;br /&gt;      @next ? @next.id : nil&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    def previous_id&lt;br /&gt;      @previous ||= self.class.find(:first,:select =&gt; ['id'],:conditions =&gt; ['id &lt; ?', id], :order =&gt; "id desc")&lt;br /&gt;      @previous ? @previous.id : nil&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Let this file be called 'base_ext.rb' and put it in 'lib' folder of your application.&lt;br /&gt;&lt;br /&gt;Now, in your model files add the line&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;require 'base_ext'&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;at the top this will ensure that this file is loaded before your model class is declared.&lt;br /&gt;&lt;br /&gt;Now, in your views you can use something like this:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  &lt;%= link_to '&amp;laquo; Previous',{:id =&gt; @creation.previous_id},:class =&gt; "alignleft" if @creation.previous_id %&gt;&lt;br /&gt;  &lt;%= link_to 'Next &amp;raquo;',{:id =&gt; @creation.next_id},:class =&gt; "alignright" if @creation.next_id %&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-115471092036196708?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/115471092036196708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=115471092036196708' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115471092036196708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115471092036196708'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/08/rails-model-next-and-previous-objects.html' title='Rails model - next and previous objects'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-115346096496961216</id><published>2006-07-20T22:44:00.000-07:00</published><updated>2006-10-20T05:09:32.243-07:00</updated><title type='text'>Blog websites go blank</title><content type='html'>What the f***? Terror makes everyone paranoid, and insane. In a stupid act, the Indian government asked the ISP's to act as censor, and block some websites. The ISP's do even one better, and blocks the entire portals. So, I can spew venom and post using &lt;a href="http://www.blogger.com"&gt;blogger.com&lt;/a&gt;, but cannot see my on post on &lt;a href="http://cuttingtheredtape.blogspot.com/"&gt;cuttingtheredtape.blogspot.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But, screw the government and ISP's, use service like &lt;a href="http://www.pkblogs.com/"&gt;pkblogs&lt;/a&gt; and browse whatever you want.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-115346096496961216?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.financialexpress.com/fe_full_story.php?content_id=134366' title='Blog websites go blank'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/115346096496961216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=115346096496961216' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115346096496961216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115346096496961216'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/07/blog-websites-go-blank.html' title='Blog websites go blank'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-115277489349451624</id><published>2006-07-13T00:01:00.000-07:00</published><updated>2006-10-20T05:09:32.185-07:00</updated><title type='text'>Need Jihad, Jihad against Terrorism</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://newsimg.bbc.co.uk/media/images/41876000/jpg/_41876030_victim_afp.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px;" src="http://newsimg.bbc.co.uk/media/images/41876000/jpg/_41876030_victim_afp.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://newsimg.bbc.co.uk/media/images/41876000/jpg/_41876028_search_afp.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px;" src="http://newsimg.bbc.co.uk/media/images/41876000/jpg/_41876028_search_afp.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://newsimg.bbc.co.uk/media/images/41876000/jpg/_41876044_train_ut.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px;" src="http://newsimg.bbc.co.uk/media/images/41876000/jpg/_41876044_train_ut.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://newsimg.bbc.co.uk/media/images/41876000/jpg/_41876498_clearing_416afp.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://newsimg.bbc.co.uk/media/images/41876000/jpg/_41876498_clearing_416afp.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://newsimg.bbc.co.uk/media/images/41876000/jpg/_41876548_stretcher_416afp.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://newsimg.bbc.co.uk/media/images/41876000/jpg/_41876548_stretcher_416afp.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-115277489349451624?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/115277489349451624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=115277489349451624' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115277489349451624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115277489349451624'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/07/need-jihad-jihad-against-terrorism.html' title='Need Jihad, Jihad against Terrorism'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-115200809405088387</id><published>2006-07-04T03:07:00.000-07:00</published><updated>2006-10-20T05:09:32.124-07:00</updated><title type='text'>Firebug - Debugging JavaScript</title><content type='html'>An excellent &lt;a href="http://encytemedia.com/blog/articles/2006/05/12/an-in-depth-look-at-the-future-of-javascript-debugging-with-firebug"&gt;article&lt;/a&gt; showing how to use the various features of &lt;a href="https://addons.mozilla.org/firefox/1843/"&gt;Firebug&lt;/a&gt; to debug JavaScript.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;Also, check out this &lt;a href="http://www.digitalmediaminute.com/screencast/firebug-js/"&gt;screencast&lt;/a&gt; which shows how to use some of the features mentioned in the above article.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-115200809405088387?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://encytemedia.com/blog/articles/2006/05/12/an-in-depth-look-at-the-future-of-javascript-debugging-with-firebug' title='Firebug - Debugging JavaScript'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/115200809405088387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=115200809405088387' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115200809405088387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115200809405088387'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/07/firebug-debugging-javascript.html' title='Firebug - Debugging JavaScript'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-115069645999555027</id><published>2006-06-18T22:45:00.000-07:00</published><updated>2006-10-20T05:09:32.000-07:00</updated><title type='text'>Nifty Corners Cube - freedom to round</title><content type='html'>I am no great web designer, and hardly had much previous exerience with XHTML/CSS and web UI designing. So, as many of you must have noticed that the old UI of &lt;a href="http://www.kreeti.com"&gt;kreeti.com&lt;/a&gt;, was very simplistic and minimal. &lt;br /&gt;&lt;br /&gt;Then I discovered, this &lt;a href="http://www.html.it/articoli/niftycube/index.html"&gt;nifty cube&lt;/a&gt; page, and it has completely changed the way, the site looks now. There are no more sharp corners, the pages are more colourful and have much improved look even in IE. Nifty cube is a wonderful tool.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;P.S.- Nifty cube is licensed under GPL.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-115069645999555027?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.html.it/articoli/niftycube/index.html' title='Nifty Corners Cube - freedom to round'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/115069645999555027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=115069645999555027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115069645999555027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115069645999555027'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/06/nifty-corners-cube-freedom-to-round.html' title='Nifty Corners Cube - freedom to round'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-115022316360889584</id><published>2006-06-13T11:22:00.000-07:00</published><updated>2006-10-20T05:09:31.941-07:00</updated><title type='text'>Mashable - The ultimate Web 2.0 blog</title><content type='html'>If someone is interested in Web 2.0 companies, their recent launches, strategies, products etc., then &lt;a href="http://mashable.com/"&gt;mashable blog&lt;/a&gt; by Pete Cashmore is a must read.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-115022316360889584?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://mashable.com/' title='Mashable - The ultimate Web 2.0 blog'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/115022316360889584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=115022316360889584' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115022316360889584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115022316360889584'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/06/mashable-ultimate-web-20-blog.html' title='Mashable - The ultimate Web 2.0 blog'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-115011865251004435</id><published>2006-06-12T06:20:00.000-07:00</published><updated>2006-10-20T05:09:31.828-07:00</updated><title type='text'>Scaling Rails</title><content type='html'>&lt;a href="http://poocs.net/"&gt;http://poocs.net/&lt;/a&gt; has a series of articles on scaling rails application. Must read for any rails developer.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-115011865251004435?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://poocs.net/articles/2006/04/03/the-adventures-of-scaling-stage-4' title='Scaling Rails'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/115011865251004435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=115011865251004435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115011865251004435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/115011865251004435'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/06/scaling-rails.html' title='Scaling Rails'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114883796115040463</id><published>2006-05-28T10:37:00.000-07:00</published><updated>2006-10-20T05:09:31.767-07:00</updated><title type='text'>ICML 2006 - accepted papers</title><content type='html'>The &lt;a href="http://www.icml2006.org/icml2006/technical/accepted.html"&gt;PDF copies&lt;/a&gt; of accepted papers is now available. Check out paper no. 107.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114883796115040463?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.icml2006.org/icml2006/technical/accepted.html' title='ICML 2006 - accepted papers'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114883796115040463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114883796115040463' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114883796115040463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114883796115040463'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/05/icml-2006-accepted-papers.html' title='ICML 2006 - accepted papers'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114806608660561908</id><published>2006-05-19T12:01:00.000-07:00</published><updated>2006-10-20T05:09:31.702-07:00</updated><title type='text'>Improving performance of classifier gem</title><content type='html'>In the post &lt;a href="http://cuttingtheredtape.blogspot.com/2006/05/actsasclassifiable.html"&gt;acts_as_classifier&lt;/a&gt; I had mentioned that the &lt;a href="http://en.wikipedia.org/wiki/Naive_Bayesian_classifier"&gt;Bayesian classifier&lt;/a&gt; in the gem &lt;a href="http://rubyforge.org/projects/classifier/"&gt;classifier&lt;/a&gt; needs some work. After, that I got some emails asking me more details about what it needs, I will briefly mention some of the points which I think can improve it. The current gem is absolutely ok, the features below will just add more value to it, and may help in improving classification accuracy.&lt;br /&gt;&lt;br /&gt;1. It should take prior probability into consideration. For example, a certain kind of document may be likely to occur than the other, using prior probability will help in incorporating this factor into decision making.&lt;br /&gt;&lt;br /&gt;2. While classifying, currently the probability P(x|y) is calculated as: the number of times the word has been in a particular category/ total number of words in that category.&lt;br /&gt;Instead of using, total number of words in a category, use number of documents in that category. The latter is the standard technique and gives better result.&lt;br /&gt;&lt;br /&gt;3. Cannot use cost-sensitive learning. This will help in scenarios where some kind of decisions are more important than others. For example in preliminary testing, not missing a tumor is more important than incorrectly giving the result that someone has a tumor.&lt;br /&gt;&lt;br /&gt;4. Cannot use threshold in the classify method, but this can be easily worked around. &lt;br /&gt;&lt;br /&gt;There are other fine tunings which can be done, but they are problem specific, and require some empirical experiments.&lt;br /&gt;&lt;br /&gt;But despite all this, there is the standard disclaimer used in Machine Learning.&lt;br /&gt;&lt;br /&gt;There is something called &lt;a href="http://en.wikipedia.org/wiki/No-Free-Lunch_theorems"&gt;No-free-lunch&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114806608660561908?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114806608660561908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114806608660561908' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114806608660561908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114806608660561908'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/05/improving-performance-of-classifier.html' title='Improving performance of classifier gem'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114776678048098448</id><published>2006-05-16T00:59:00.000-07:00</published><updated>2007-11-29T10:58:44.277-07:00</updated><title type='text'>acts_as_classifiable</title><content type='html'>Consider a scenario where you have a blog, and you want to prevent spam comments, but don't want to use captcha as they are bad from accessibility standpoint. What is the solution, in steps `acts_as_classifiable'. Use a Bayesian classifier to distinguish between spam and non-spam and if the comment is flagged as a spam, use a captcha based solution or reject it. Or maybe you want to track the preferences of each user and then based on that make suggestions to them. `acts_as_classifiable' can help in both scenarios and several other. Currently I use it for the web application at &lt;a href="http://www.kreeti.com"&gt;Kreeti.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To use this plugin, you need to have the gem `classifier' and its dependencies installed. The command below should do it.&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;gem install classifier --include-dependencies&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt; The plugin itself can be downloaded from &lt;br /&gt;&lt;a  href="http://opensvn.csie.org/sksinghi/acts_as_classifiable/"&gt;http://opensvn.csie.org/sksinghi/acts_as_classifiable/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next your database needs to have a table named `classifier_models'. This is used as a persitent store for the built classifier model.&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  create_table :classifier_models, :force =&gt; true do |t|&lt;br /&gt;      t.column :identifier, :int&lt;br /&gt;      t.column :classifiable_type, :string, :null =&gt; false&lt;br /&gt;      t.column :data, :blob&lt;br /&gt;  end&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Now, to use this plugin in your model, put:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;class Comment &lt; ActiveRecords::Base&lt;br /&gt;acts_as_classifiable :fields =&gt; ["text"], :categories =&gt; ["Spam", "Legit"]&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Let us assume that we have an instance of the above model in '@comment'. Then the classifier can be trained by calling the method `train' &lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;@comment.train :legit&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;or&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;@comment.train :spam&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Better have some additional helper functions in the model which will do so.&lt;br /&gt;You can also untrain (use it with care) an instance, by using &lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;@comment.untrain :spam&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Bulk training and untraining is also possible by&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;Comment.train @comments, @classifications&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;where both @comments and @classifications are arrays, such that @classifications contain categorization of each message in @comments.&lt;br /&gt;&lt;br /&gt;To use, the classifier to make classification:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;@comment.classify&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;this will return either "Spam" or "Legit". Bulk classification is also possible.&lt;br /&gt;&lt;br /&gt;If you want the comment class to have multiple classifiers, one for each user, then all the above methods can be given an additional argument `identifier'. &lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;@comment.train :legit, @user.id&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;This will create and store a classifier for that particular model, identified by the `identifier'. This can be used in scenarios when one wants to track preference of each user and then want to make suggestions.&lt;br /&gt;&lt;br /&gt;The Bayesian classifier in the gem &lt;a href="http://rubyforge.org/projects/classifier/"&gt;classifier&lt;/a&gt; needs some work, but more about it later.&lt;br /&gt;&lt;br /&gt;Any questions/issues about this plugin, please post it as a comment or email me.&lt;br /&gt;&lt;br /&gt;Update: New release &lt;a href="http://cuttingtheredtape.blogspot.com/2007/03/clusterer-other-plugins.html"&gt;Clusterer + other plugins&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114776678048098448?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114776678048098448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114776678048098448' title='95 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114776678048098448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114776678048098448'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/05/actsasclassifiable.html' title='acts_as_classifiable'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>95</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114760396629437747</id><published>2006-05-14T03:26:00.000-07:00</published><updated>2006-10-20T05:09:31.574-07:00</updated><title type='text'>Share your creativity - Kreeti.com</title><content type='html'>The Beta site has gone live. The ideas is that people can share their &lt;a href="http://www.kreeti.com/jokes"&gt;jokes&lt;/a&gt;, &lt;a href="http://www.kreeti.com/stories"&gt;narrations&lt;/a&gt;, &lt;a href="http://www.kreeti.com/recipes"&gt;recipes&lt;/a&gt;, and &lt;a href="http://www.kreeti.com/verses"&gt;verses&lt;/a&gt; with each other, then comment upon them and rate them. It is also possible to subscribe to rss feeds and follow the top or recent items in each category. Also, kreetis or creations can be assigned different tags, and then searched upon based on the tags. There are also tag specific rss feeds.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114760396629437747?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.kreeti.com/' title='Share your creativity - Kreeti.com'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114760396629437747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114760396629437747' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114760396629437747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114760396629437747'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/05/share-your-creativity-kreeticom.html' title='Share your creativity - Kreeti.com'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114719308970101355</id><published>2006-05-09T09:43:00.000-07:00</published><updated>2006-10-20T05:09:31.507-07:00</updated><title type='text'>On Reviewers</title><content type='html'>If you are new to writing research papers then, I will suggest first reading this &lt;a href="http://www.alice.org/Randy/raibert.htm"&gt;article&lt;/a&gt;. A technical paper should have some standard, before it can be considered worth reviewing; otherwise most reviewers will immediately reject it. Though, my experience of reviewing is only limited to computer science research papers, but I think my analysis here is quite general and should be applicable to other sciences also. &lt;br /&gt;&lt;br /&gt;Although, there are occasional exceptions but generally most paper reviewers fall under one of the following categories:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Experienced Professor - These people generally know about a wide range of topics, and very likely have an idea about the specific field which the paper addresses. But, generally their knowledge is very high level, and they don't go into or understand the details of the paper. Such reviewers generally pay special attention to the introduction and conclusion of the paper. You should clear state in these two sections what are the contributions of the paper, and why should it be accepted for being published. They will generally never give a strongly favorable reviews, and will always find out some fault or the other, for example the authors should consider some more experimental cases, the paper is weak in theory, or weak proof, not enough contribution, or the authors failed to consider some related research, etc. Extremely tough reviewers, but luckily very seldom do such people review papers, rather they assign this task to their graduate students.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Sincere but nescient student - Here I mean a graduate student who knows about the field in large but is unfamiliar with the specific topic which the paper is addressing. Such, reviewers work extremely hard and consult many sources such as Google search and the references mentioned in the paper, to get an overview of what the paper means. These reviewers generally comment on the general quality of the writing, experiments and explanation in the paper. These reviewers are unable to point out if there is any lack of novelty in the paper, or if the technique is some old known method in a new cloak. They generally give neutral review, or if your paper is well written then a favorable reviews. The most common type of reviews.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Expert student - Such people rarely review the paper, because generally if a student is expert in some topic then he must be doing research in that area and might have his own papers in that track (or someone else in his research team) and hence not eligible for reviewing papers from that track. These reviewers are extremely harsh, because they can understand and see through everything mentioned in the paper. If you are able to escape with minor criticism then you should consider yourself lucky and quality of your research extremely good, because for such reviewers most contributions seem minor.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Lazy and dumb student - These qualities go side by side, these students are generally dumb, due to their laziness. Such reviewers generally look at the general structure of the paper, and will give it a favorable review with maybe some minor criticism. They hardly bother to understand the paper, and require that it should be coherent and easy to read.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Inexperienced professors - These are new generally new PHD graduate students who have been just been appointed as a professor in some college. These reviewers have very strong expertise in their research areas, but again they don't review paper in that area, as they will generally also have some submissions in the same track. But unlike experienced professors these people do have to review papers, as they do not have many graduate students working under them, besides they also have the enthusiasm of a new comer.&lt;br /&gt;These reviewers are generally lenient, because they want other reviewers to be lenient on their work also, and hope that somehow their charity work will help them in return. Overall, their reviews are generally high quality, because even if they don't know much about the specific topic, they do have the  experience of reviewing several papers in their student years, and besides they are hard working which helps them in quickly learning and getting acquainted with the field.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;If you want to add something to my this categorization or argue against it, then feel free to post it as a comment. &lt;br /&gt;&lt;br /&gt;Next, review of selected &lt;a href="www.icml2006.org"&gt;ICML 2006&lt;/a&gt; papers.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114719308970101355?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114719308970101355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114719308970101355' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114719308970101355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114719308970101355'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/05/on-reviewers.html' title='On Reviewers'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114664175658507924</id><published>2006-05-03T00:04:00.000-07:00</published><updated>2006-10-20T05:09:31.449-07:00</updated><title type='text'>Securing Rails application</title><content type='html'>Using Ruby on Rails has been fun. An important part of developing a web application is making sure that most of the security loopholes are plugged in. Here are few basic things which should be checked and fixed in any security audit:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;em&gt;User trying to execute javascript or inserting html statement, or &lt;a href="http://www.technicalinfo.net/papers/CSS.html"&gt;Cross-Site Scripting (CSS/XSS)&lt;/a&gt;.&lt;/em&gt;&lt;br /&gt;&lt;a href="http://manuals.rubyonrails.com/read/chapter/44"&gt;http://manuals.rubyonrails.com/read/chapter/44&lt;/a&gt; provides a tutorial in this, but the basic idea is that use HTML-escaping function `h' or `sanitize' while displaying all data input by the user. Even the XML/RSS data which is displayed should be secured. Sanitize is generally safe but there may still be some hidden security flaws.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;em&gt;SQL Injection or user maliciously inserting sql statements in you queries.&lt;/em&gt;&lt;br /&gt;  &lt;a href="http://manuals.rubyonrails.com/read/chapter/43"&gt;http://manuals.rubyonrails.com/read/chapter/43&lt;br /&gt;&lt;/a&gt; has again a tutorial chapter on this. The key point is not using sql directly, but in some cases where you need to then instead of embedding user input in sql by using &lt;br /&gt;&lt;center&gt; " ..subject = #{param[:subject]} ..."&lt;/center&gt;&lt;br /&gt;use &lt;br /&gt;&lt;center&gt;" ..subject = ? ...", param[:subject]&lt;/center&gt;&lt;br /&gt;Also, turn off the echo service on production web server.&lt;br /&gt;Rails makes it so easy to avoid common SQL injection attack, whereas I remember working in a corporate environment and using PHP, and in all most all sql statements in the code, it was possible to do SQL injection attack.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;em&gt;Creating records directly from form parameters.&lt;/em&gt;&lt;br /&gt;  Another chapter &lt;a href="http://manuals.rubyonrails.com/read/chapter/47"&gt;http://manuals.rubyonrails.com/read/chapter/47&lt;/a&gt;  giving tutorial details. The key point is that to prevent some model fields being updated by the form parameters directly (or en masse), use `attr_protected' or the more secure `attr_accessible'.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Not exposing controller methods.&lt;br /&gt;Make controller methods which should not be accessible to the user as `private' or `protected'.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;em&gt;Checking file/attachment uploads.&lt;/em&gt;&lt;br /&gt;It is generally safer to store the files in the database. Check the size of the file being uploaded, and make sure that it doesn't exceeds the permissible limit. Also, check the file extension, and make sure that it is a valid extension and not `*.cgi', `*.php', `*.js' etc.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;em&gt;Be careful about ID parameters.&lt;/em&gt;&lt;br /&gt;For certain operations, for example say displaying email, a user should be only able to read his or her email. In this case, in the email displaying controller, a check should be made to verify that the user is authorized to read the email.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Remember a chain is as strong as the weakest link in it.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114664175658507924?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114664175658507924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114664175658507924' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114664175658507924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114664175658507924'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/05/securing-rails-application.html' title='Securing Rails application'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114551888980369680</id><published>2006-04-20T00:41:00.000-07:00</published><updated>2006-10-20T05:09:31.383-07:00</updated><title type='text'>WHO IS NAVEEN</title><content type='html'>&lt;a href="http://whoisnaveen.blogspot.com/"&gt;WHO IS NAVEEN&lt;/a&gt; also&lt;br /&gt;&lt;a href="http://630usd.blogspot.com/"&gt;Hey Elance, we want our money back!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recently, I also was talking to this crook, after his &lt;a href="http://www.ruby-forum.com/topic/62017#63221"&gt;email&lt;/a&gt; in Ruby Forum, his messages where very cryptic, and he never signed his email messages with a name. Initially he wanted, a per hour rate, and then later asked me to quote a fixed rate for a particular &lt;a href="http://ssinghi.kreeti.com/GAPI-spec-final.pdf"&gt;spec&lt;/a&gt; (I think I have seen it on rentacoder, but I am not able to find it anymore, anyway I have put it online). I had some questions, about the spec, and when I asked him to talk to me, he agreed for a chat over AIM (no voice chat, only text based chat, didn't say anything about my offer to call me or use skype). He introduced himself as Mark, and said he is not a technical person, and other developers will be coming shortly to answer my questions. But, then he himself tried to answer my questions, and finally came to the conclusion, that he has given me the wrong specification. This really pissed me off, and I showed sarcasm, and this ended our conversation abruptly.&lt;br /&gt;&lt;br /&gt;Before this, I had asked him if &lt;a href="http://www.nakshsys.com/"&gt;http://www.nakshsys.com/&lt;/a&gt; was his company's website, he said no it is &lt;a href="http://www.nakshsys.com/CRM/"&gt;http://www.nakshsys.com/CRM/&lt;/a&gt;, which is rather wierd.&lt;br /&gt;&lt;br /&gt;As a precautionary measure to all elancers, I will suggest before accepting any work, check the following:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Do a thorough background check of the company or individual before accepting work from them. Google them.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Try to get a written deed or an agreement with the company before accepting work.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Make sure that you get some advance payment, before you deliver the work.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If something makes you feel suspicious, recheck the company, call them up, or demand fees for every module which you finish, before starting work on the next module.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;It is always safer to use websites like www.rentacoder.com, or www.guru.com; inspite of the hefty fee charged by them. You should try to have some sort of escrow mechanism.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;If there are any other suggestions which you would like to make, then please post them as a comment.&lt;br /&gt;&lt;br /&gt;Info which I collected about &lt;b&gt;Naveen&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;Latest company - Nakshtra Systems&lt;br /&gt;Email Id-  &lt;a mailto"nakshsys@gmail.com"&gt;nakshsys@gmail.com&lt;/a&gt;&lt;br /&gt;Spec which he gave me is &lt;a href="http://ssinghi.kreeti.com/GAPI-spec-final.pdf"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114551888980369680?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://whoisnaveen.blogspot.com/' title='WHO IS NAVEEN'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114551888980369680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114551888980369680' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114551888980369680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114551888980369680'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/04/who-is-naveen.html' title='WHO IS NAVEEN'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114512547567498275</id><published>2006-04-15T10:48:00.000-07:00</published><updated>2006-10-20T05:09:31.314-07:00</updated><title type='text'>Amritsar - Wagah Border</title><content type='html'>Besides the &lt;a href="http://cuttingtheredtape.blogspot.com/2006/04/amritsar-golden-temple_03.html"&gt;Golden Temple&lt;/a&gt;, we also went to Wagah Border for the ceremonial changing of the guard at dusk. One should reach there at least one hour before sunset, to be able to comfortably go in and get a good seat. &lt;br /&gt; As soon as people are seated, Hindi patriotic songs such as are played, and between songs the host leads people to shout the slogans 'Hindustan Zindabad', 'Bharat Mata Ki Jai', 'Jai Hind' and 'Vande Matram'. There is even some dancing and Bhangra to some of the songs. The whole atmosphere is filled with excitement and anticipation.&lt;br /&gt;  Then the spectacle begins. One would expect the drill to be some smart looking show, but in reality it looks funny than anything else. The soldiers march, and while saluting they raise their foott above head height (which is well more than 6 and half feet, because of the excess heel in their shoes) without bending the back. The way both Indian and Pakistani soldiers march and try to outdo each other, is really humorous.&lt;br /&gt;Finally, the flag is lowered and this marks the end of the show.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114512547567498275?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114512547567498275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114512547567498275' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114512547567498275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114512547567498275'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/04/amritsar-wagah-border.html' title='Amritsar - Wagah Border'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114408737216780431</id><published>2006-04-03T10:53:00.000-07:00</published><updated>2006-10-20T05:09:31.256-07:00</updated><title type='text'>Amritsar Golden Temple</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1443/1828/1600/DSCF0567.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/1443/1828/320/DSCF0567.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1443/1828/1600/National_Senior_Fencing%20001.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/1443/1828/320/National_Senior_Fencing%20001.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;I will rate the Amritsar Golden Temple as one of the most tourist friendly places in the world. The people over there are very hospitable and friendly. &lt;br /&gt;&lt;br /&gt;The Golden temple is situated in the middle of a lake in a citadel. As a mark of respect, all visitors are required to cover their heads. One can use any piece of cloth to cover the head, but if none is available on hand then free scarfs are available inside the temple complex but just outside the citadel. Also, shoes need to be removed, and people must not drink alcohol, eat meat or smoke cigarettes or other drugs while in the shrine. The citadel has four entrances and is open 24hrs for people of any religion/caste/colour/sex etc.&lt;br /&gt;&lt;br /&gt;The temple houses &lt;strong&gt;Sri Guru Granth Sahib&lt;/strong&gt; which is considered the Supreme Spiritual Authority and Head of the Sikh religion. Sikhism rejects idol worship, so the book is not worshiped as an idol, but is respected for its contents. In the evening around 10:30pm there is a &lt;em&gt;Sawari&lt;/em&gt; during which the book is removed from the Golden Temple and taken to its resting place. The book is take back to the temple early in the morning around 2:30am. In the mean time, the temple is washed and cleaned with milk. &lt;br /&gt;&lt;br /&gt;The citadel also contains Akhal Takht, the supreme decision making body for Sikhs all over the world. Besides the citadel there is a building where in langar people are served free food 24hrs, 365 days. Many visitors also take bath in the pond (Sarovar) surrounding the temple. Roughly, for every worker in the temple there are three &lt;em&gt;sevaks&lt;/em&gt; who work and help in performing the various chores voluntarily. Anyone, interested in performing &lt;em&gt;seva&lt;/em&gt; can also approach other volunteers and ask for guidance.&lt;br /&gt;&lt;br /&gt;If anyone goes to Punjab, I will highly recommend a trip to the Golden Temple.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114408737216780431?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114408737216780431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114408737216780431' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114408737216780431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114408737216780431'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/04/amritsar-golden-temple_03.html' title='Amritsar Golden Temple'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114301739121586087</id><published>2006-03-22T01:48:00.000-07:00</published><updated>2006-10-20T05:09:31.141-07:00</updated><title type='text'>Some good news</title><content type='html'>&lt;div&gt;&lt;div class="goalentry"&gt;&lt;p&gt;I am leaving for Amritsar today, to participate in the National fencing competition. Since, I don&amp;#8217;t have much of fencing experience behind me, the expectations are not very high, but I will give it my best shot and aim for the best possible result.&lt;/p&gt;&lt;/div&gt;&lt;div class="goalprogresslink"&gt;See more progress on: &lt;a href="http://www.43things.com/people/progress/surendrasinghi?on=2122180"&gt;learn to fence&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114301739121586087?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114301739121586087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114301739121586087' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114301739121586087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114301739121586087'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/03/some-good-news.html' title='Some good news'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114193015534731595</id><published>2006-03-09T11:21:00.000-07:00</published><updated>2006-10-20T05:09:30.971-07:00</updated><title type='text'>Rails User Engine - Adding permissions</title><content type='html'>A while back, there was &lt;a href="http://article.gmane.org/gmane.comp.lang.ruby.rails.engines.user/49/"&gt;discussion&lt;/a&gt; on the &lt;a href="http://dir.gmane.org/gmane.comp.lang.ruby.rails.engines.user"&gt;engines mailing list&lt;/a&gt; on how to add permissions for different roles in the database for the &lt;a href="http://rails-engines.org/user_engine"&gt;user engine&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;My preferred way of doing this is using migrations. I will illustrate it here using an example, say we have a controller &lt;em&gt;about&lt;/em&gt; with actions &lt;em&gt;["terms", "privacy", "faq", "about"]&lt;/em&gt; and we want to give permissions to both &lt;em&gt;Guest&lt;/em&gt; and &lt;em&gt;User&lt;/em&gt; roles to have access to this.&lt;br /&gt;&lt;br /&gt;So, to write a migration for this, fire up a shell and type:&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;ruby script\generate migration AddPermissionsData&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This will create a new migration file in the `db\migrate' folder:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class AddPermissionsData &lt; ActiveRecord::Migration&lt;br /&gt;  def self.up&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def self.down&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Now, to add permissions modify the above file, and add the following code:&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class AddPermissionsData &lt; ActiveRecord::Migration&lt;br /&gt;  def self.up&lt;br /&gt;    guest_role = Role.find_by_name("Guest")&lt;br /&gt;    user_role = Role.find_by_name("User")&lt;br /&gt;    controller_actions = {:about =&gt; ["terms", "privacy", &lt;br /&gt;                                          "faq", "about"] }&lt;br /&gt;    controller_actions.each do |controller,actions|&lt;br /&gt;      for action in actions&lt;br /&gt;        permission = Permission.find_by_controller_and_action(&lt;br /&gt;                                           controller.to_s,action)&lt;br /&gt;        if permission&lt;br /&gt;          permission.roles &lt;&lt; guest_role&lt;br /&gt;          permission.roles &lt;&lt; user_role&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def self.down&lt;br /&gt;    guest_role = Role.find_by_name("Guest")&lt;br /&gt;    user_role = Role.find_by_name("User")&lt;br /&gt;    controller_actions = {:about =&gt; ["terms", "privacy",&lt;br /&gt;                                            "faq", "about"]}&lt;br /&gt;    controller_actions.each do |controller,actions|&lt;br /&gt;      for action in actions&lt;br /&gt;        permission = Permission.find_by_controller_and_action(&lt;br /&gt;                                             controller.to_s,action)&lt;br /&gt;        if permission&lt;br /&gt;          permission.roles.delete guest_role&lt;br /&gt;          permission.roles.delete user_role&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The code in &lt;em&gt;self.down&lt;/em&gt; should remove whatever was added in &lt;em&gt;self.up&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Important: &lt;/strong&gt;Before running the above migration, don't forget to run  &lt;q&gt;&lt;em&gt;rake sync_permissions&lt;/em&gt;&lt;/q&gt;.&lt;br /&gt;&lt;br /&gt;If you know of a better approach of doing the above then please post it as a comment.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114193015534731595?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114193015534731595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114193015534731595' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114193015534731595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114193015534731595'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/03/rails-user-engine-adding-permissions.html' title='Rails User Engine - Adding permissions'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114163035565935278</id><published>2006-03-06T00:13:00.000-07:00</published><updated>2006-10-20T05:09:30.908-07:00</updated><title type='text'>India in Nuclear Club</title><content type='html'>The article &lt;a href="http://www.nytimes.com/2006/03/05/weekinreview/05sanger.html?ex=1299214800&amp;en=2c6517d09d6ee59f&amp;ei=5088&amp;partner=rssnyt&amp;emc=rss"&gt;We Are (Aren't) Safer With India in the Nuclear Club&lt;/a&gt; in &lt;a href="http://www.nytimes.com"&gt;New York Times&lt;/a&gt; discusses the recently signed Indo-US Nuclear Deal. Being an Indian, the initial reaction would be to disparage the article, but some of the points raised in article are worth pondering.&lt;br /&gt;In particular: &lt;br /&gt;&lt;br /&gt;&lt;q&gt;the deal could make the world more dangerous: Even if India is a responsible player, the deal could touch off a regional race to produce more bomb fuel. In that case, more of that fuel would be floating around Â perhaps to tempt terrorists.&lt;/q&gt;&lt;br /&gt;&lt;br /&gt;On a more positive note:&lt;br /&gt;&lt;br /&gt;&lt;q&gt;India shows restraint and Mr. Bush's gamble pays off, other nations that defiantly built their own weapons may gradually be drawn back into a new club whose membership rules are still being written.&lt;/q&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114163035565935278?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.nytimes.com/2006/03/05/weekinreview/05sanger.html?ex=1299214800&amp;en=2c6517d09d6ee59f&amp;ei=5088&amp;partner=rssnyt&amp;emc=rss' title='India in Nuclear Club'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114163035565935278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114163035565935278' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114163035565935278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114163035565935278'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/03/india-in-nuclear-club.html' title='India in Nuclear Club'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114140963073259236</id><published>2006-03-03T10:40:00.000-07:00</published><updated>2006-10-20T05:09:30.849-07:00</updated><title type='text'>Protests and Violence - Psyche</title><content type='html'>In &lt;a href="http://www.rediff.com/news/2006/mar/03bush33.htm"&gt;Lucknow, 4 people were killed as anti-George Bush&lt;/a&gt; protests turned violent. In the past also many people died, and property worth millions were destroyed during violent protests in &lt;a href="http://www.msnbc.msn.com/id/11383819/"&gt;Nigeria&lt;/a&gt;, &lt;a href="http://www.msnbc.msn.com/id/11341523/"&gt;Pakistan&lt;/a&gt; etc., against the &lt;a href="http://en.wikipedia.org/wiki/Jyllands-Posten_Muhammad_cartoons"&gt;cartoons&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Many people must be wondering why such protests needlessly turn violent and hurt the local civilians and property. Rarely ever is the offending party anywhere near the scene of protest, so what end can be achieved by needless violence and self-destruction.&lt;br /&gt;&lt;br /&gt;Well the truth is (at least in India, and I can imagine quite likely in Pakistan, Nigeria and other developing nations) the people who participate in these rallies are rarely genuinely concerned about the issue at stake. Even if occasionally they do sympathize with the issue, nevertheless they participate in these rallies only for monetary benefits.&lt;br /&gt;&lt;br /&gt;These protests are generally organized by local politicians or pseudo-religious leaders and they pay the participants wages for taking part in the rallies. The poor people who go to these protests are most often well aware that there will be some violence but still the lure of easy money is strong enough to overcome the fear. The leaders then hire some goons and miscreants to cause violence, because generally the success of the protest is gaged by the amount of violence and destruction it causes,  besides it also helps in getting coverage in local and international news.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114140963073259236?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114140963073259236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114140963073259236' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114140963073259236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114140963073259236'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/03/protests-and-violence-psyche.html' title='Protests and Violence - Psyche'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114116009938644482</id><published>2006-02-28T13:33:00.000-07:00</published><updated>2006-10-20T05:09:30.794-07:00</updated><title type='text'>India Rising</title><content type='html'>Farid Zakaria has this article in &lt;a href="http://www.msnbc.msn.com/id/3032542/site/newsweek/"&gt;Newsweek&lt;/a&gt; titled &lt;a href="http://www.msnbc.msn.com/id/11571348/site/newsweek/"&gt;India Rising&lt;/a&gt;. Its a pretty long article and it talks about the rise of India, about its burgeoning middle class, about how the rise has been due to efforts of Indian entrepreneurs and populace, in spite of the corrupt bureaucracy and political class. It also compares India vis-a-vis China, and stresses the important role which democracy has played in India's progress. India's growing proximity with the US has also been discussed. Overall it is a good article, but a little bit too fawning.&lt;br /&gt;&lt;br /&gt;There is one particular line in the article, which I found to be extremely offensive.  I quote&lt;br /&gt;&lt;br /&gt;&lt;q&gt;China's Mandarin class has been able to rethink its country's new role as a world power with skill and effectiveness. So far, India's Brahmins have not shown themselves the equals of their neighbor.&lt;/q&gt;&lt;br /&gt;&lt;br /&gt;I don't know about China and the Mandarin class, but in India although the number of educated and successfully Brahmins may be more than other communities, but by no stretch of imagination (and thankfully) they call the shots. It is the entire country and the general population which needs to rethink their role, and not some cast, or special group of people. Thankfully, in most Indian &lt;b&gt;cities&lt;/b&gt; the religious, parochial, casteist, communal, and racial differences are hardly an issue.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114116009938644482?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.msnbc.msn.com/id/11571348/site/newsweek/' title='India Rising'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114116009938644482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114116009938644482' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114116009938644482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114116009938644482'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/02/india-rising.html' title='India Rising'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114113817357401616</id><published>2006-02-28T07:30:00.000-07:00</published><updated>2006-10-20T05:09:30.736-07:00</updated><title type='text'>Rails and AJAX, even getting better</title><content type='html'>&lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt; is very close its 1.1 release. This release will introduce a plethora of &lt;a href="http://scottraymond.net/articles/2006/02/28/rails-1.1"&gt;new features&lt;/a&gt;. The one which I am most eagerly looking forward to is Rails RJS, a new form of template, called JavascriptGeneratorTemplates. These templates generate instructions on how to modify an already generated page, thus making it even more easy to incorporate AJAX into web applications. This &lt;a href="http://www.codyfauser.com/articles/trackback/1"&gt;article&lt;/a&gt;  through a simple example demonstrates RJS.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114113817357401616?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114113817357401616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114113817357401616' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114113817357401616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114113817357401616'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/02/rails-and-ajax-even-getting-better.html' title='Rails and AJAX, even getting better'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114104472729243325</id><published>2006-02-27T05:42:00.000-07:00</published><updated>2006-10-20T05:09:30.679-07:00</updated><title type='text'>Button Maker - promoting your feed</title><content type='html'>I wanted to add buttons to my blog which will allow people to easily subscribe to my blog's feed using google, yahoo, bloglines, etc. Initially, I was searching for each individual publisher and then generating their html code. But then I found this link for &lt;a href="http://www.toprankresults.com/tools/button-maker.php"&gt;button maker"&lt;/a&gt; which lets one customize and choose the buttons, and then generates the code.&lt;br /&gt;But the image files of feed buttons instead of being embedded from the rss feed aggregator website, are embedded from &lt;a href="http://www.toprankresults.com/"&gt;Top Rank&lt;/a&gt; website. &lt;br /&gt;&lt;br /&gt;In case, if one doesn't wants to embed images from the Top Rank, here is a list of some links, where one can get the HTML code for buttons of the corresponding aggregator:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.google.com/intl/zh-cn/webmasters/addfeed.html"&gt;Google&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://publisher.yahoo.com/rss_guide/promote.php"&gt;Yahoo&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.bloglines.com/about/subscribe"&gt;Bloglines&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.newsgator.com/thebutton.aspx"&gt;Newsgator&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://rss.msn.com/publisher.armx"&gt;MSN&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114104472729243325?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114104472729243325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114104472729243325' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114104472729243325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114104472729243325'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/02/button-maker-promoting-your-feed.html' title='Button Maker - promoting your feed'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114067710462947259</id><published>2006-02-22T23:22:00.000-07:00</published><updated>2006-10-20T05:09:30.619-07:00</updated><title type='text'>Holocaust, Cartoons &amp; Free Speech</title><content type='html'>An interesting story in news is of British historian David Irvine who has been &lt;a href="http://news.bbc.co.uk/1/hi/world/europe/4734648.stm"&gt; sentenced to three years in jail&lt;/a&gt; by an Austrian court for denying the holocaust. Denying the Nazi genocide in Austria is a crime which is punishable by up to 10 years in prison. At the same time, many newspapers and political parties have been defending the right of people to &lt;a href="http://news.bbc.co.uk/1/hi/uk_politics/4739336.stm"&gt;satirize and publish any cartoons&lt;/a&gt; they want.  &lt;br /&gt;Huh? Freedom of Speech.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114067710462947259?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://news.bbc.co.uk/1/hi/world/europe/4734648.stm' title='Holocaust, Cartoons &amp; Free Speech'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114067710462947259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114067710462947259' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114067710462947259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114067710462947259'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/02/holocaust-cartoons-free-speech.html' title='Holocaust, Cartoons &amp; Free Speech'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114053548680035519</id><published>2006-02-21T08:20:00.000-07:00</published><updated>2006-10-20T05:09:30.564-07:00</updated><title type='text'>VMWARE - SUSE Linux 10 &amp; KDE 3.5</title><content type='html'>&lt;div&gt;&lt;div class="goalentry"&gt;&lt;p&gt;I tried out &lt;a href="http://developer.kde.org/%3Csub"&gt;binner/vmware/"&gt;&lt;span class="caps"&gt;SUSE &lt;/span&gt;Linux 10 &amp; &lt;span class="caps"&gt;KDE 3&lt;/span&gt;.5&lt;/a&gt; on &lt;a href="http://www.vmware.com/products/player/"&gt;vmware player&lt;/a&gt; and the look and feel of it is just fabulous.&lt;br /&gt;Also, it is extremely easy to install and use it.&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Download &lt;a href="http://www.vmware.com/products/player/"&gt;vmware player&lt;/a&gt; . Install it.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Download and unzip &lt;a href="http://developer.kde.org/%3C/sub"&gt;binner/vmware/"&gt;&lt;span class="caps"&gt;SUSE &lt;/span&gt;Linux 10 &amp;amp; &lt;span class="caps"&gt;KDE 3&lt;/span&gt;.5&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Start vmware player, it will show you pick a file dialog box. Go to the folder where you unzipped &lt;span class="caps"&gt;SUSE &lt;/span&gt;Linux, and select the vmware file.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You will be logged on as guest, and you will not have access to Internet connection. If you want to create user accounts, acesss Internet, change other system settings, then logout as guest and log in as root, the password is &lt;b&gt;toor&lt;/b&gt; and start up yast. It will be one of the icons in the bottom.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The default user accounts will have Internet connection enabled.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;To download the &lt;a href="http://developer.kde.org/%7Ebinner/vmware/"&gt;&lt;span class="caps"&gt;SUSE &lt;/span&gt;Linux 10 &amp;amp; &lt;span class="caps"&gt;KDE 3&lt;/span&gt;.5&lt;/a&gt; you might consider using &lt;a href="http://www.bittorrent.com/"&gt;bittorrent&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="goalprogresslink"&gt;See more progress on: &lt;a href="http://www.43things.com/people/progress/surendrasinghi?on=2122640"&gt;get familiarized with vmware&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114053548680035519?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114053548680035519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114053548680035519' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114053548680035519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114053548680035519'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/02/vmware-suse-linux-10-kde-35.html' title='VMWARE - SUSE Linux 10 &amp; KDE 3.5'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114025052321060890</id><published>2006-02-18T01:15:00.000-07:00</published><updated>2006-10-20T05:09:30.499-07:00</updated><title type='text'>Vegan Lunch Box</title><content type='html'>&lt;a href="http://veganlunchbox.blogspot.com/"&gt;Vegan Lunch Box&lt;/a&gt;: a good blog promoting veganism.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114025052321060890?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://veganlunchbox.blogspot.com/' title='Vegan Lunch Box'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114025052321060890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114025052321060890' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114025052321060890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114025052321060890'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/02/vegan-lunch-box.html' title='Vegan Lunch Box'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114024967066885363</id><published>2006-02-18T00:34:00.000-07:00</published><updated>2006-10-20T05:09:30.441-07:00</updated><title type='text'>Freedom Net</title><content type='html'>Today morning I saw an &lt;a href="http://ask.slashdot.org/article.pl?sid=06/02/17/2355231&amp;from=rss"&gt;article&lt;/a&gt; in the slashdot asking whether it is possible to have a back-boneless Internet, without any sort of governmental control, completely free and democratic.&lt;br /&gt;&lt;br /&gt;My first reaction was to think that indeed such an Internet exists, and it is called &lt;a href="http://freenet.sourceforge.net/"&gt;Free Network Project&lt;/a&gt;. Freenet allows one to access the contents of Internet in a completely secure manner, and it is practically impossible for anyone to find out who is doing what. Also, one can publish whatever they feel like on Freenet and again no one has any way of knowing who was the original publisher. It is based on peer-to-peer technology, the users contribute to the network by giving bandwidth and a portion of their hard drive, but unlike normal peer to peer softwares they don't control what is stored on their computer. It is sort of an Internet inside Internet.&lt;br /&gt;&lt;br /&gt;Whenever someone wants to publish something the data is encrypted and stored and replicated in bits and pieces on several computers. In other words every machine which connects to Freenet is a web server. Various factors like the newness and popularity decide the amount of replication. Also, because the data is encrypted the user of the computer where it is stored cannot decipher and find out what he is storing. Similarly, while retrieving something to view either from Freenet or the Internet, the request instead of going directly from one computer is routed through many nodes making it extremely hard to determine the requester of information and its content.&lt;br /&gt;&lt;br /&gt;But the problems which plague this network are: one it is extremely slow, this is due to the overhead of encryption and the distributed nature of almost every operation. The second problem with this network is that because of its anonymous nature most of the contents found on it are child pornography and other such objectionable materials which regular web-hosts will not carry.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114024967066885363?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://freenet.sourceforge.net/' title='Freedom Net'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114024967066885363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114024967066885363' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114024967066885363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114024967066885363'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/02/freedom-net.html' title='Freedom Net'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114017206654213364</id><published>2006-02-17T03:21:00.000-07:00</published><updated>2006-10-20T05:09:30.382-07:00</updated><title type='text'>Elephant's Memory!!!</title><content type='html'>It is not just humans who take revenge, even some animals have long memories and the ability to strike back on their tormentors.&lt;br /&gt;&lt;br /&gt;Read the complete article at &lt;a href="http://www.timesonline.co.uk/article/0,,3-2043236,00.html"&gt;http://www.timesonline.co.uk/article/0,,3-2043236,00.html&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114017206654213364?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.timesonline.co.uk/article/0,,3-2043236,00.html' title='Elephant&apos;s Memory!!!'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114017206654213364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114017206654213364' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114017206654213364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114017206654213364'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/02/elephants-memory.html' title='Elephant&apos;s Memory!!!'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-114017107601984443</id><published>2006-02-17T02:56:00.000-07:00</published><updated>2006-10-20T05:09:30.320-07:00</updated><title type='text'>Christening a Pet?  Honor or Insult</title><content type='html'>Recently in Mumbai there were protests against Manisha Koirala because she had named her pet dog 'Mustafa', supposedly some prophet of Islam.&lt;br /&gt;&lt;br /&gt;This event demonstrates an important difference between Oriental (at least South Asian) and Occidental (at least American) cultures. In America naming a pet after someone is an act of showing love and honor towards that person. My roommate's dad who is religiously Republican and a strong supported of the current President named his dog "George W." to honor him. Whereas in India people consider it an affront to their dignity if someone names their pet after them.&lt;br /&gt;&lt;br /&gt;Poor Manisha, I am pretty sure that she had no inkling that what she thought of as an innocuous cool sounding name will land her in so much controversy.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-114017107601984443?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/114017107601984443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=114017107601984443' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114017107601984443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/114017107601984443'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/02/christening-pet-honor-or-insult.html' title='Christening a Pet?  Honor or Insult'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113984815110416028</id><published>2006-02-13T09:26:00.000-07:00</published><updated>2006-10-20T05:09:30.262-07:00</updated><title type='text'>Fencing and Systema</title><content type='html'>&lt;div&gt;&lt;div class="goalentry"&gt;&lt;p&gt;Many people think that fencing is just fighting with swords and stabbing each other, but it requires a lot more than that. It is like a dance or a martial art, and also has the same principles. My past martial art experience with &lt;a href="http://www.russianmartialart.com/"&gt;Systema&lt;/a&gt; is helping me a lot in learning fencing. The Systema principles of breathing, relaxation, posture, and constant movement are applicable to fencing also. Breathing is very important, and is a prerequisite to doing anything else correctly. Quite often during bouts when I make a mistake, and then on doing post-mortem I find that I had got over excited and was holding my breath. Keeping the body and mind relaxed is also equally important. I had read somewhere that good fencers hold their swords the way one would hold a small bird. This can only come by keeping the body relaxed. Also, a relaxed body allows one easy movement in any direction and to the ability to fight for long. Keeping the correct posture, ensures that one is not exposing his/her body to attacks, also it helps in keeping the balance right. The last principle of constant movement keeps the opponent guessing, and because one is in motion, and moving swiftly is easy because there is no inertia of rest (Newton&amp;#8217;s principle).&lt;/p&gt;&lt;/div&gt;&lt;div class="goalprogresslink"&gt;See more progress on: &lt;a href="http://www.43things.com/people/progress/surendrasinghi?on=2122180"&gt;learn fencing&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113984815110416028?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113984815110416028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113984815110416028' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113984815110416028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113984815110416028'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/02/fencing-and-systema_113984815110416028.html' title='Fencing and Systema'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113964420177169631</id><published>2006-02-11T00:34:00.000-07:00</published><updated>2006-10-20T05:09:30.084-07:00</updated><title type='text'>Alipore Zoo</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1443/1828/1600/Picture%20010.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/1443/1828/320/Picture%20010.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1443/1828/1600/Picture%20003.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/1443/1828/320/Picture%20003.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1443/1828/1600/Picture%20009.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/1443/1828/320/Picture%20009.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1443/1828/1600/Picture%20013.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/1443/1828/320/Picture%20013.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Last Saturday I went to Alipore Zoo in Kolkata one of the biggest zoos in India. Once upon a time it use to be a big tourist attraction in Kolkata, but when I proposed to some of my cousins about making a trip to the zoo, I was mocked at. The zoo is really in dilapidated state, and there are rumors that the building Mafia has vested interest in this being so, the zoo takes a large prime piece of real-state in the heart of city.&lt;br /&gt;&lt;br /&gt;outside the zoo entrance there were signs that the animals should not be fed anything, initially I was also scrupulous about this. But inside after looking at the malnutritioned animals and seeing other people feeding them, I lost all my scruples. My highlight of the day was watching a beautiful parrot dexterously peeling a peanut with its claw and then eating the nuts.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113964420177169631?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113964420177169631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113964420177169631' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113964420177169631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113964420177169631'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/02/alipore-zoo.html' title='Alipore Zoo'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113957681817399331</id><published>2006-02-10T06:06:00.000-07:00</published><updated>2006-10-20T05:09:29.955-07:00</updated><title type='text'>Vmware Player </title><content type='html'>&lt;div&gt;&lt;div class="goalentry"&gt;&lt;p&gt;Today I succesfully installed and tried out &lt;a href="www.vmware.com/products/player/"&gt;vmware player&lt;/a&gt; on my Windows XP machine, and tried the pre-built &lt;a href="http://www.vmware.com/vmtn/vm/browserapp.html"&gt;Browser Appliance&lt;/a&gt; provided by vmware, it comes with &lt;a href="http://www.ubuntu.com/"&gt;ubuntu&lt;/a&gt; as the OS, and is a real pleasure to use. The benefit of vmware is that once I configure and save the virtual machine (VM) environment, I can allow anyone to use the VM and browse internet through it without worrying about what they are downloading and installing. Every time the browser appliance VM is restarted, it provides the same initial envionment, and everything saved/installed during the previous session is deleted, unless one saves an image of it. It is ideal environment for &lt;b&gt;accessing bank accounts&lt;/b&gt; and doing &lt;b&gt;credit card purchases&lt;/b&gt; on the Internet.&lt;/p&gt;	&lt;p&gt;Now, I am downloading the pre-built &lt;a href="http://www.vmware.com/vmtn/vm/"&gt;&lt;span class="caps"&gt;SLES VM&lt;/span&gt;&lt;/a&gt;, it is a huge download, but should be worth it.&lt;/p&gt;&lt;/div&gt;&lt;div class="goalprogresslink"&gt;See more progress on: &lt;a href="http://www.43things.com/people/progress/surendrasinghi?on=2122640"&gt;get familiarized with vmware&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113957681817399331?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113957681817399331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113957681817399331' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113957681817399331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113957681817399331'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/02/vmware-player.html' title='Vmware Player '/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113950304511290749</id><published>2006-02-09T09:35:00.000-07:00</published><updated>2006-10-20T05:09:29.894-07:00</updated><title type='text'>Rails Framework and Agile Web Development Book</title><content type='html'>&lt;div&gt;&lt;div class="goalentry"&gt;&lt;p&gt;I am really impressed with the rails framework, it makes web development very easy. Also, the agile web development with rails is an extremely good introduction to rails, the first part of the book walks the reader through an example, and the second part then explains the framework. It is an ideal book for people like me who enjoy learning by exploring and trying out the code.&lt;/p&gt;&lt;/div&gt;&lt;div class="goalprogresslink"&gt;See more progress on: &lt;a href="http://www.43things.com/people/progress/surendrasinghi?on=2140312"&gt;finish reading Agile Web Development with Rails&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113950304511290749?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113950304511290749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113950304511290749' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113950304511290749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113950304511290749'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/02/rails-framework-and-agile-web.html' title='Rails Framework and Agile Web Development Book'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113930364115326349</id><published>2006-02-07T00:45:00.000-07:00</published><updated>2006-10-20T05:09:29.839-07:00</updated><title type='text'>Haskell</title><content type='html'>I wanted to learn &lt;a href="http://www.haskell.org/"&gt;Haskell&lt;/a&gt; a year back, and I did pick up little bit of it, but then didn't do much pogramming in it and so forgot most of the stuff. I was really impressed when I was learning it, and with the increasing hype about it, there seems all the reason for me to go back to learning it once again.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.darcs.net"&gt;Darcs&lt;/a&gt; and &lt;a href="http://www.pugscode.org/"&gt;Pugs&lt;/a&gt; are two widely used open source projects which are using Haskell. &lt;a href="http://www.autrijus.org/"&gt;Audrey Tang&lt;/a&gt; [1] the founder and the lead hacker of the Pugs project, an implementation of &lt;a href="http://dev.perl.org/perl6/"&gt;Perl 6&lt;/a&gt; in Haskell, recently she gave a good &lt;a href="http://www.perl.com/pub/a/2005/03/03/pugs_interview.html"&gt;interview&lt;/a&gt; explaining why did she decide to choose Haskell and the merits of the language.&lt;br /&gt;&lt;br /&gt;[1] I don't understand why Chinese people so readily change their names and adopt an English name.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113930364115326349?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.haskell.org/' title='Haskell'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113930364115326349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113930364115326349' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113930364115326349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113930364115326349'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/02/haskell.html' title='Haskell'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113929829881976368</id><published>2006-02-07T00:32:00.000-07:00</published><updated>2006-10-20T05:09:29.779-07:00</updated><title type='text'>Fencing in India</title><content type='html'>Last day I went for fencing classes in Kolkata Maidan area. Unfortunately the state of fencing in India is pretty bad, not only are the fencing association short on funds and resources, there is a lack of quality coaches and even the standards are very low. Also, most people have very vague idea about fencing, when I initially told my family members about it, they thought I was talking about putting a barrier, or a boundary around something, rather than the modern sport of swordfighting. &lt;br /&gt;&lt;br /&gt; I have only a week and half of fencing training behind me (2 classes at ASU and 1 here), and still I was asked if I am interested in representing West Bengal in the National Fencing Championship at Hyderabad. It reflects more on the low standard of fencing in West Bengal than my fencing ability.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113929829881976368?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113929829881976368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113929829881976368' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113929829881976368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113929829881976368'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/02/fencing-in-india.html' title='Fencing in India'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113776080036352141</id><published>2006-01-20T05:40:00.000-07:00</published><updated>2006-10-20T05:09:29.603-07:00</updated><title type='text'>Virtual Karma: Complete List of Web 2.0 Applications | Rian's blog</title><content type='html'>A list of different Web 2.0 applications. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://virtualkarma.blogspot.com/2006/01/complete-list-of-web-20-applications.html"&gt;Virtual Karma: Complete List of Web 2.0 Applications | Rian's blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113776080036352141?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://virtualkarma.blogspot.com/2006/01/complete-list-of-web-20-applications.html' title='Virtual Karma: Complete List of Web 2.0 Applications | Rian&apos;s blog'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113776080036352141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113776080036352141' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113776080036352141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113776080036352141'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/01/virtual-karma-complete-list-of-web-20.html' title='Virtual Karma: Complete List of Web 2.0 Applications | Rian&apos;s blog'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113624303446771562</id><published>2006-01-02T15:30:00.000-07:00</published><updated>2006-10-20T05:09:29.544-07:00</updated><title type='text'>Lisp Web application development - TBNL</title><content type='html'>I have been trying to develop a small sample web application using different lisp web application frameworks. For this purpose the two frameworks which I am going to evaluate are &lt;a href="http://www.weitz.de/"&gt;Edi Weitz&lt;/a&gt;'s &lt;a href="http://www.weitz.de/tbnl/"&gt;TBNL&lt;/a&gt; and Marco Baringer's &lt;a href="http://common-lisp.net/project/ucw/"&gt;Uncommon Web(UCW)&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;The steps to install and get started with tbnl are as follows:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;First install Apache using &lt;a href="http://www.spikesource.com"&gt;Spike Source&lt;/a&gt;'s &lt;br /&gt;&lt;a href="http://www.spikesource.com/downloads.html"&gt;core stack&lt;/a&gt;. I installed the WAMP stack, but one can use any other web stack also. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Then download &lt;a href="http://www.fractalconcept.com/asp/zjj/sdataQIUvnrW1RGnODM==/asdataQuvY9x3g$ecX"&gt;mod_lisp&lt;/a&gt; and copied the mod_lisp.so file to the modules folder in httpd directory of apache.&lt;br /&gt;Some of the links are broken, so I downloaded mod_lisp from this link:&lt;br /&gt;&lt;a href="http://www.fractalconcept.com:8000/public/open-source/mod_lisp/windows/"&gt;http://www.fractalconcept.com:8000/public/open-source/mod_lisp/windows/&lt;/a&gt; &lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Configure the httpd.conf file, using the instructions in tbnl's manual.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Restart Apache.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Fire up &lt;a href="http://www.franz.com"&gt;AllegroCL&lt;/a&gt;, and using asdf-install install tbnl and install all the required libraries using asdf-install.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Follow the instructions to load the tbnl test suite, and start tbnl.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Go to &lt;a href="http://127.0.0.1/tbnl/test/"&gt;http://127.0.0.1/tbnl/test/&lt;/a&gt; and you should able to see pages created by tbnl.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;Right now tbnl does not works with &lt;a href="http://clisp.cons.org/"&gt;clisp&lt;/a&gt;.&lt;br /&gt;In a future post I will describe how to set up UCW.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113624303446771562?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113624303446771562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113624303446771562' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113624303446771562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113624303446771562'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/01/lisp-web-application-development-tbnl.html' title='Lisp Web application development - TBNL'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113615957736682222</id><published>2006-01-01T15:45:00.000-07:00</published><updated>2006-10-20T05:09:29.488-07:00</updated><title type='text'>New Year in Times Square</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1443/1828/1600/Jan%201%20012.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/1443/1828/400/Jan%201%20012.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1443/1828/1600/Jan%201%20004.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/1443/1828/400/Jan%201%20004.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1443/1828/1600/Jan%201%20007.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/1443/1828/400/Jan%201%20007.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1443/1828/1600/Jan%201%20003.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/1443/1828/400/Jan%201%20003.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1443/1828/1600/Jan%201%20005.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/1443/1828/400/Jan%201%20005.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Happy New Year everybody. I was in &lt;a href="http://www.timessquare.com/"&gt;Times Square&lt;/a&gt; on this New Year's party. The largest, grandest and supposedly one of the most spectacular new year's eve party in the world. Lucky me, isn't it, so read on about me experience of it.&lt;br /&gt;&lt;br /&gt;Well I reached &lt;a href="http://en.wikipedia.org/wiki/Manhattan"&gt;Manhattan&lt;/a&gt; around 5:30pm, most of the streets where blocked, so I had to walk for a mile from Port Authority Bus Stop to 52nd Street, through which commoners were to enter the secluded party zone. At 52nd Street there was a sea of humanity, which was trying to get into the party area through a narrow outlet, from which only two people can exit at one time after being frisked by police officers. I was in the middle of melee, where people who where in the back where pushing forward, while people in the front where resisting and holding back; standing in the middle I felt as if everyone wanted to converge to a single point centered upon me. I am an Indian so I easily overcame this claustrophobia and was somehow able to enter the so called `party zone' by around 6:15pm. By the way, if you work in Times Square area, or you have a room in one of the hotels there, you can easily get in from some of the other streets by showing your id and/or hotel keys, and no need to fight your way in.&lt;br /&gt;&lt;br /&gt;Once I was in there, it felt good, there were so many people around, so much infectious excitement and enthusiasm. There were several fenced enclosures, and  everyone had to be in one of them, and hope to get a chance to move to the next enclosure which was closer to the stage. Near Times Square they had set up a stage from which they where playing music, and the show was being hosted and broad-casted on TV. The music which they where playing was good, but unfortunately the acoustics where horrible. One was only able to hear noise, and maybe get a vague feeling that it  was something musical. There should have been speakers along the entire avenue. Everyone was thinking that if they can get closer to the stage the music will become clearer, in the same hope after much jostling I was able to get within 500 feet of the stage, but still the music was sounding hopelessly bad. Maybe for the people who where within few tens of feet away from the stage the music was clear, because from a distance they were looking cheerful and it seemed as if they were enjoying.&lt;br /&gt;&lt;br /&gt;After standing there in the street for two hours and with nothing exciting to do, everyone started to feel hungry. Luckily there were few souls out there who had the business sense to take advantage of this situation and sell some pizzas, but for some reason they were supplying only few boxes of pizzas and that also, only once in every half hour. Being a vegetarian, I generally prefer carrying food with me, and so luckily I didn't have to wait and scout for the pizza delivery boy. With hunger satiated, it was the time for cold to strike. Everyone was wearing big jackets and caps, etc. so the torso and the head were well insulated, but the feet were getting numb with cold. To compound it the roads where cold and wet due to morning rain and snow. So, everyone was moving their legs and dancing, not to any music, but just to keep their legs warm. After some time I realized that I have another problem, I wanted to pee, but there is no way I can leave the enclosure in which I am standing, if I do so, I will lose my well advantaged position and I have to go to the end of line (there where at least 7-8 thousand people behind me). So, I had to be in that situation for more than 4 hours. Afterwards on my way back home the bus driver, told me that he heard stories of people doing it in empty water bottles, but anyway I can never imagine myself doing that, I am too prude.&lt;br /&gt;&lt;br /&gt;Everyone including myself endured everything hoping for something gala around the period when the ball will be dropped. Finally, the countdown happened, and the ball was dropped followed by a minute's fireworks (the local independence day city or community fireworks are much better), and everyone started congratulating each other and wishing a happy new year. That was my highlight of the night. It taught me a valuable lesson, people can be made willing sufferers of pain and hardship by being promised a chimerical reward, and finally when the reward is not delivered, they will still appear happy and not whine, because they invested so much energy and enthusiasm into it and don't want to believe that they where crazy to do this. There was a method to the entire madness. It was all organized in such a way, that things look neat and fun on TV, but who the heck cares about people out on the street who have traveled thousands of miles, crossed oceans to come and see this. Its only foreigners, tourists and few gullible people from other US states who go to the ball drop, the local guys only watch it on TV.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113615957736682222?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113615957736682222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113615957736682222' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113615957736682222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113615957736682222'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2006/01/new-year-in-times-square.html' title='New Year in Times Square'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113598970673516468</id><published>2005-12-30T17:38:00.000-07:00</published><updated>2006-10-20T05:09:29.431-07:00</updated><title type='text'>Goodbye Tempe</title><content type='html'>I am leaving Tempe today for good, and going to New York/New Jersey. I hope to go to Times Square tomorrow for the New Year's eve party.&lt;br /&gt;&lt;br /&gt;It has been a busy and hectic last couple of days with all the packing, and meeting people which I had to do. Besides I was also working on a Conference paper (more on Scientific writing latter), finally today we (me + my advisor)  finished it, and I am feeling relieved.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113598970673516468?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113598970673516468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113598970673516468' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113598970673516468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113598970673516468'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2005/12/goodbye-tempe.html' title='Goodbye Tempe'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113568300165819543</id><published>2005-12-27T04:30:00.000-07:00</published><updated>2006-10-20T05:09:29.372-07:00</updated><title type='text'>Narcissistic views on News/Politics: Bob Herbert says most damage to blacks is self-inflicted.</title><content type='html'>A nice article written by Bob Herbert of the &lt;a href="http://www.nytimes.com"&gt;NY Times&lt;/a&gt; about the ailing state of Blacks in America. This article is only available to Times Select customers, one has to pay a fee for that, but this blog scooped it up and made it available to public.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113568300165819543?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://rpv.blogspot.com/2005/12/bob-herbert-says-most-damage-to-blacks.html' title='Narcissistic views on News/Politics: Bob Herbert says most damage to blacks is self-inflicted.'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113568300165819543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113568300165819543' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113568300165819543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113568300165819543'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2005/12/narcissistic-views-on-newspolitics-bob.html' title='Narcissistic views on News/Politics: Bob Herbert says most damage to blacks is self-inflicted.'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113565039581176319</id><published>2005-12-26T19:20:00.000-07:00</published><updated>2006-10-20T05:09:29.312-07:00</updated><title type='text'>Emacs Key Binding for Eclipse</title><content type='html'>&lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt; has &lt;a href="http://www.gnu.org/software/emacs/emacs.html"&gt;Emacs&lt;/a&gt; key binding mode, although it is not as powerful as Emacs itself, but it is definitely better than the usual Eclipse key bindings.&lt;br /&gt;&lt;br /&gt;To set it on:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;Go to Window -&gt; Preferences.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Expand the `General' tab in left column, select `Keys' option.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Change the window tab to `Modify' and then change the `Scheme' to `Emacs'.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;`Apply' and then `OK'.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113565039581176319?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113565039581176319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113565039581176319' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113565039581176319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113565039581176319'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2005/12/emacs-key-binding-for-eclipse.html' title='Emacs Key Binding for Eclipse'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113557948721073702</id><published>2005-12-25T23:36:00.000-07:00</published><updated>2006-10-20T05:09:29.256-07:00</updated><title type='text'>Programming Pearls</title><content type='html'>Currently I am reading &lt;a href="http://portal.acm.org/citation.cfm?id=59935"&gt;Programming Pearls&lt;/a&gt; by Jon Bentley. It is a wonderful book, a true collection of pearls, to quote from the preface: &lt;span style="font-style:italic;"&gt;"Just as natural pearls grow from grains of sand that irritate oysters, programming pearls have grown from real problems that have irritated real programmers."&lt;/span&gt; It is a must read for any programmer/developer who wants to work in my company.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Also, thanks to people who wrote the java script for adding the feature of &lt;a href="http://www.new-links.info/adding-on-this-day-to-blogger"&gt;On This Day&lt;/a&gt; to my blog.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113557948721073702?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113557948721073702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113557948721073702' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113557948721073702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113557948721073702'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2005/12/programming-pearls.html' title='Programming Pearls'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113547346324742945</id><published>2005-12-24T18:17:00.000-07:00</published><updated>2006-10-20T05:09:29.203-07:00</updated><title type='text'>Saying No........</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1443/1828/1600/Sep%208%20057.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/1443/1828/320/Sep%208%20057.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;How does it feels to turn down an interview offer with &lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt; and then on the same day say no to an informal job offer from another company. Well I did that on last Thursday, I was supposed to interview with &lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt; at &lt;a href="http://www.ci.redmond.wa.us/"&gt;Redmond&lt;/a&gt; sometime in February, but I sent them an email saying I am not looking for an employment and won't be interviewing, my recruiting coordinator was nice and he even wished me luck and said that it sounds exciting. I also sent an email to my ex-manager at &lt;a href="http://www.spikesource.com/"&gt;Spike Source&lt;/a&gt; located in &lt;a href="http://www.ci.redwood-city.ca.us/"&gt;Redwood City&lt;/a&gt;, the place where I did my Summer internship, telling him that I am not looking for a job. If anyone has any doubts about whether I am serious or not about my entrepreneurship ambitions then these should lay all of them to rest.&lt;br /&gt;&lt;br /&gt;I will be leaving &lt;a href="http://www.tempe.gov/"&gt;Tempe&lt;/a&gt; and &lt;a href="http://www.asu.edu/"&gt;Arizona State University&lt;/a&gt; for good on next Friday (Dec, 30) and going to &lt;a href="http://www.state.nj.us/"&gt;New Jersey&lt;/a&gt;. These are nostalgic last few days at &lt;a href="http://www.asu.edu/"&gt;ASU&lt;/a&gt; when I will be saying good bye to everyone and everything here.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113547346324742945?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113547346324742945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113547346324742945' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113547346324742945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113547346324742945'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2005/12/saying-no.html' title='Saying No........'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113523627711257388</id><published>2005-12-22T00:17:00.000-07:00</published><updated>2006-10-20T05:09:29.144-07:00</updated><title type='text'>Guide to Setting up wxCL</title><content type='html'>In this post I describe how to setup &lt;a href="http://www.wxcl-project.org"&gt;wxCL&lt;/a&gt; on a Windows machine. &lt;br /&gt;LeAnthony Mathews was having a real hard time setting up  &lt;a href="http://www.wxcl-project.org"&gt;wxCL&lt;/a&gt;, along with the &lt;a href="http://www.gigamonkeys.com/book/lispbox/"&gt;Lisp in Box&lt;/a&gt;, so I decided to write step by step instructions to do so. These instructions are not meant to be used  with &lt;a href="http://www.gigamonkeys.com/book/lispbox/"&gt;Lisp in Box&lt;/a&gt; but they can be combined with it.&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt; Download &lt;a href="http://clisp.cons.org/"&gt;clisp 2.36&lt;/a&gt; and install it somewhere on the hard drive, say `c:/clisp-2.36'.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Download &lt;a href="http://cvs.sourceforge.net/viewcvs.py/*checkout*/cclan/asdf/asdf.lisp"&gt;asdf&lt;/a&gt;&lt;br /&gt;and put it somewhere, say in the folder called&lt;br /&gt;`c:/clisp-2.36/library/'.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Download &lt;a href="http://weitz.de/files/asdf-install.tar.gz"&gt;asdf-install&lt;/a&gt;, &lt;br /&gt;untar it (&lt;a href="http://www.winzip.com/"&gt;winzip&lt;/a&gt; can be used) into the `c:/clisp-2.36/library/' folder.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Go to the home directory, say `C:/Documents and Settings/Owner'&lt;br /&gt;or it might be different depending upon your windows user name, and Create a file &lt;br /&gt;named `.clisprc.lisp', this is an initialization file for clisp.&lt;br /&gt;&lt;br /&gt;Add the following code:&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;#-:asdf (load "C:/clisp-2.36/library/asdf")&lt;br /&gt;(pushnew "C:/clisp-2.35/library/asdf-install/" asdf:*central-registry* :test #'equal)&lt;br /&gt;#-:asdf-install (asdf:operate 'asdf:load-op :asdf-install)&lt;br /&gt;(pushnew 'asdf-install:sysdef-source-dir-search&lt;br /&gt;         asdf:*system-definition-search-functions*)&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Start command prompt. Start &lt;a href="http://clisp.cons.org/"&gt;clisp&lt;/a&gt;, either by just typing `clisp' if it is on your windows path variable, or by typing&lt;br /&gt;`c:/clisp-2.36/clisp. You should see that while starting clisp loads&lt;br /&gt;various asdf-install files, and finally .clisprc.lisp. If not, then you&lt;br /&gt;did not create the `.clisprc.lisp' file in the right place.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;Download latest release, currently &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=143661"&gt;wxcl-1.2.0.tar.gz&lt;/a&gt; and store it somewhere, say `C' drive. If the extension of the file doesn't appears as above then change it to  end with `.tar.gz'.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Now on your lisp prompt type&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;(asdf-install:install "c:/wxcl-1.2.0.tar.gz")&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;This will show you three options select the second one (personal&lt;br /&gt;installation). Now, asdf-install will hang don't worry use Ctrl-Z to&lt;br /&gt;quit clisp.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Now if you look into the folder `C:/Documents and Settings/Owner'&lt;br /&gt;there will be a sub-folder named `.asdf-install-dir'. Go into it,&lt;br /&gt;inside it there is another sub folder `site', go into that, and now&lt;br /&gt;untar `wxcl-1.2.0.tar.gz' right there.&lt;br /&gt;Any asdf installable package can be uncompressed and put there, and&lt;br /&gt;asdf will find it.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Now edit the file wxcl/src/defpackage.lisp so that the variable&lt;br /&gt;library name contains the absolute file path.&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;(defconstant +library-name+ "../lib/wxc-msw2.6.2.dll")&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;change the above to&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;(defconstant +library-name+ "C:/Documents and Settings/Owner/.asdf-install-dir/site/wxcl/lib/wxc-msw2.6.2.dll")&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Now go to command prompt, change the directory so that you are in&lt;br /&gt;the wxcl/examples directory. Start clisp, and then type&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;(load "hello-world.lisp")&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; This will load and compile wxcl, and start the hello world&lt;br /&gt;example. Similarly you can load other examples.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113523627711257388?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.wxcl-project.org' title='Guide to Setting up wxCL'/><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113523627711257388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113523627711257388' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113523627711257388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113523627711257388'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2005/12/guide-to-setting-up-wxcl.html' title='Guide to Setting up wxCL'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113481168291566169</id><published>2005-12-17T02:18:00.000-07:00</published><updated>2006-10-20T05:09:29.077-07:00</updated><title type='text'>Cricket and Parochialism</title><content type='html'>The omission of Sourav Ganguly first from the Indian One-day team and then the Test team has been a big news. The behavior of the fans in Eden Garden during the India-South Africa match was horrible, it was not only parochial and selfish but also unpatriotic. Time changes quickly but the character of people changes very slowly. The Britishers took advantage of the same parochial tendencies of Indians in their Divide and Rule policy. The crowd of Calcutta demonstrated why it wasn't hard for them to do so.&lt;br /&gt;&lt;br /&gt;What is now even worse is that this issue will be discussed in the Indian parliament. It seems the left parties and in particular Speaker Somnath Chatterjee and Defense Minister Pranab Mukherjee (both from West Bengal) played a big role in bringing this issue to the parliament. It is really unfortunate that this is happening, first of all they are not qualified and capable enough to decide the selection of Indian cricket team, and more importantly they are there in the Parliament to do their jobs and it is none of their business to decide what happens with the Indian cricket team. I agree that the current selectors are idiots but in spite of this, only they and nobody else should decide the team composition.&lt;br /&gt;&lt;br /&gt;Another, sad thing is that omission of Ganguly has drawn so much attention, but the Indian politicians and governments hardly care about the state of India's national sport, yes hockey and not cricket. The bas***d *** Gill has completely ruined hockey. His whims and fancies decide everything in Indian hockey, besides whenever Indian hockey team goes on a foreign tour he takes a junket. What is his business to follow the team? I doubt if he has ever played hockey even at domestic level, and unfortunately such a person is controlling hockey in India for now more than 10 years, or is it more?&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113481168291566169?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113481168291566169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113481168291566169' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113481168291566169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113481168291566169'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2005/12/cricket-and-parochialism.html' title='Cricket and Parochialism'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18628733.post-113445661463513950</id><published>2005-12-12T23:39:00.000-07:00</published><updated>2006-10-20T05:09:29.011-07:00</updated><title type='text'>My First Post</title><content type='html'>This is my first post on this blog. Instead of just soliloquizing my ideas and interesting stories, through this blog I hope to share them with you. I am not writing this blog with an alias, so don't expect any raunchy or streamy content on it, but I will do try to keep you entertained. &lt;br /&gt;&lt;br /&gt;Last night, or rather last morning I made the release of &lt;a href="http://www.wxcl-project.org"&gt;wxCL&lt;/a&gt;. It was pain going through the &lt;a href="http://www.sourceforge.net"&gt;sourceforge&lt;/a&gt; release mechanism, one has to first ftp the files into sourceforge server, and then make the release. By mistake I had ftped wrong files, and made a release. Then when I realized my mistake, I went back and deleted the released files, now when I was trying to ftp the new release files, I was getting ftp error messages. For half an hour I tried different things but to no avail, finally I realized that I had forgotten to change directory in the sourceforge ftp server before ftping files. I don't understand why can't they provide a simple web interface to upload release files.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Today I have to grade the homework 4 of the &lt;a href="http://www.public.asu.edu/~huanliu/AI05F/cse471-598.htm"&gt;Introduction to Artificial Intelligence&lt;/a&gt; course for which I am a TA. But, I am hardly getting any motivation to do so. I have to also send personal emails to at least 5 people, but I am feeling lazy about that as well, I have been procrastinating this for more than a month. First I had the excuse of being busy with school and thesis work, but now I don't have any such excuse. I hope I will positively do that tomorrow.&lt;div class="blogger-post-footer"&gt;The Odyssey of an entrepreneur.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18628733-113445661463513950?l=cuttingtheredtape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cuttingtheredtape.blogspot.com/feeds/113445661463513950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18628733&amp;postID=113445661463513950' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113445661463513950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18628733/posts/default/113445661463513950'/><link rel='alternate' type='text/html' href='http://cuttingtheredtape.blogspot.com/2005/12/my-first-post.html' title='My First Post'/><author><name>Surendra Singhi</name><uri>http://www.blogger.com/profile/00681554697716420356</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry></feed>
