<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>perl on S Anand</title>
    <link>https://www.s-anand.net/blog/tag/perl/</link>
    <description>Recent content in perl on S Anand</description>
    <generator>Hugo -- 0.164.0</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 28 Sep 2024 16:51:31 +0000</lastBuildDate>
    <atom:link href="https://www.s-anand.net/blog/tag/perl/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Perl, 1994-2011</title>
      <link>https://www.s-anand.net/blog/perl-1994-2011/</link>
      <pubDate>Sat, 28 Sep 2024 16:51:14 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/perl-1994-2011/</guid>
      <description>&lt;p&gt;In 1994, I learnt &lt;a href=&#34;https://www.perl.org/&#34;&gt;Perl&lt;/a&gt;. It was fantastic. I used it to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;1995: Build CCChat - the unofficial IITM &lt;a href=&#34;https://www.s-anand.net/blog/bets-and-pranks/lee-in-the-cc/&#34;&gt;email system&lt;/a&gt; and software repository&lt;/li&gt;
&lt;li&gt;1999: Build &lt;a href=&#34;https://s-anand.net/&#34;&gt;my entire blog&lt;/a&gt; from scratch&lt;/li&gt;
&lt;li&gt;2000: Author my 2nd year thesis on the &lt;a href=&#34;https://archive.org/download/final-report_20240928/Final_Report.doc&#34;&gt;&lt;strong&gt;Behavioural Aspects of Financial Analysts&lt;/strong&gt;&lt;/a&gt; by analyzing 600MB of IBES data&lt;/li&gt;
&lt;li&gt;2002: Analyze where to place the &lt;a href=&#34;https://www.s-anand.net/blog/visualisation-locating-hubs/&#34;&gt;central processing hubs&lt;/a&gt; for a bank&lt;/li&gt;
&lt;li&gt;2004: Analyze the interest durations of public sector banks&lt;/li&gt;
&lt;li&gt;2005: Creating &lt;a href=&#34;https://www.s-anand.net/blog/matching-misspelt-tamil-movie-names/&#34;&gt;music quizzes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2006: Create my own &lt;a href=&#34;https://www.s-anand.net/blog/hindi-songs-online/&#34;&gt;music search engine&lt;/a&gt; (which earned me about $100 a month in Google Ad revenue for a while)&lt;/li&gt;
&lt;li&gt;2006: Automated &lt;a href=&#34;https://www.s-anand.net/blog/automated-resume-filtering/&#34;&gt;resume filtering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2007: Create custom search engines&lt;/li&gt;
&lt;li&gt;2008: &lt;a href=&#34;https://www.s-anand.net/blog/launching-applications/&#34;&gt;Build application launchers&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In 2006, I was convinced &lt;a href=&#34;https://www.s-anand.net/blog/python-vs-perl/&#34;&gt;I should stick to Perl&lt;/a&gt; over Python.&lt;/p&gt;
&lt;p&gt;In 2008, Google launched AppEngine and it provided free hosting (which was a &lt;strong&gt;big deal&lt;/strong&gt;!) but had only 2 runtimes: Java and Python. The choice was clear. I&amp;rsquo;d rather learn Python than code in Java.&lt;/p&gt;
&lt;p&gt;By 2011, I &lt;a href=&#34;https://www.s-anand.net/blog/software-for-my-new-laptop-2/&#34;&gt;stopped installing Perl&lt;/a&gt; on my laptop.&lt;/p&gt;
&lt;p&gt;Though most people know me mainly as a Python developer, I&amp;rsquo;ve programmed in Perl for about as long as I have in Python. I have fond memories of it. But I can&amp;rsquo;t read any of my code, nor write in it anymore.&lt;/p&gt;
&lt;p&gt;When I watched The Perl Conference (now called The Perl and Raku Conference &amp;ndash; Perl 6 is called Raku), I was surprised to hear how much the language had declined.&lt;/p&gt;
&lt;div class=&#34;video-embed&#34;&gt;&lt;iframe src=&#34;https://www.youtube.com/embed/BgjV8A10peI&#34; title=&#34;YouTube video&#34; loading=&#34;lazy&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&#34; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=BgjV8A10peI&amp;amp;t=533s&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/perl-conference-attendees.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There were fewer than 100 attendees - and for 2025, they&amp;rsquo;ve &lt;a href=&#34;https://blogs.perl.org/users/makoto_nozaki/2024/09/things-ive-learned-serving-on-the-board-of-the-perl-foundation.html&#34;&gt;decided to go smaller&lt;/a&gt; and book a tiny hotel, so as to break-even even if only 20 people show up.&lt;/p&gt;
&lt;p&gt;Few languages have had as much of an impact on my life and thinking. My knowledge of modern programming comes from &lt;a href=&#34;https://en.wikipedia.org/wiki/Programming_Perl&#34;&gt;The Camel Book&lt;/a&gt;, functional programming from &lt;a href=&#34;https://hop.perl.plover.com/&#34;&gt;Higher Order Perl&lt;/a&gt;, Windows programming from &lt;a href=&#34;https://www.goodreads.com/book/show/86631.Learning_Perl_on_Win32_Systems&#34;&gt;Learning Perl on Win32 Systems&lt;/a&gt;, and so on. Even my philosophy of coding was shaped by Larry Wall&amp;rsquo;s the &lt;a href=&#34;https://thethreevirtues.com/&#34;&gt;three great virtues of a programmer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is my homage to the language that shaped me. Bless you, Perl!&lt;/p&gt;
</description>
    </item>
    <item>
      <title>The Social Network</title>
      <link>https://www.s-anand.net/blog/the-social-network/</link>
      <pubDate>Thu, 24 Feb 2011 19:00:33 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/the-social-network/</guid>
      <description>&lt;p&gt;4:00pm. Just started watching The Social Network. I&amp;rsquo;m fairly sure I won&amp;rsquo;t like the film, mostly because I&amp;rsquo;ll be jealous of Mark.&lt;/p&gt;
&lt;p&gt;About 5 minutes into the movie. I find myself rewinding to catch the dialogues. They&amp;rsquo;re very fast. Very, very fast.&lt;/p&gt;
&lt;p&gt;10 minutes. I like the code. I stopped on a screen to start checking if it&amp;rsquo;s real code. It&amp;rsquo;s in Perl. Stopped myself before I started dry-running the code.&lt;/p&gt;
&lt;p&gt;20 minutes. OK, some of this is a bit beyond me. But good movie.&lt;/p&gt;
&lt;p&gt;1:20. Dropped a note to Ram asking (almost forcing) him to watch the film. A fair bit to learn from a stakeholding perspective.&lt;/p&gt;
&lt;p&gt;1:45. Dammit. I see a bit of the anti-social me in him.&lt;/p&gt;
&lt;p&gt;Gripping. Overall, bloody good movie. Quite surprised. And no, definitely not feeling jealous.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>To Python from Perl</title>
      <link>https://www.s-anand.net/blog/to-python-from-perl/</link>
      <pubDate>Tue, 20 Jan 2009 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/to-python-from-perl/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve recently switched to Python, after having programmed in Perl for many years. I&amp;rsquo;m sacrificing all my knowledge of the libraries and language quirks of Perl. The reason I moved despite that is for a somewhat trivial reason, actually. It&amp;rsquo;s because Python doesn&amp;rsquo;t require a closing brace.&lt;/p&gt;
&lt;p&gt;Consider this &lt;strong&gt;Javascript&lt;/strong&gt; (or very nearly C or Java) code:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;++&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;++&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;s&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;s&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That&amp;rsquo;s 6 lines, with two lines just containing the closing brace. Or consider &lt;strong&gt;Perl&lt;/strong&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-perl&#34; data-lang=&#34;perl&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;my&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$s&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;foreach&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;my&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$i&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;..&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;foreach&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;my&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$j&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;..&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nv&#34;&gt;$s&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$s&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$j&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Again, 6 lines with 2 for the braces. The $ before the variables also drops readability just a little bit. Here&amp;rsquo;s &lt;strong&gt;Python&lt;/strong&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;xrange&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;xrange&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;s&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;s&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;On the margin, I like writing shorter programs, and it annoys me to no end to have about 20 lines in a 100-line program devoted to standalone closing braces.&lt;/p&gt;
&lt;p&gt;\&lt;/p&gt;
&lt;p&gt;What I find is that &lt;strong&gt;once you&amp;rsquo;ve really know one language, the rest are pretty straightforward&lt;/strong&gt;. OK, that&amp;rsquo;s not true. Let me qualify. Knowing one language well out of C, C++, Java, Javascript, PHP, Perl, Python and Ruby means that you can program in any other pretty quickly &amp;ndash; perhaps with a day&amp;rsquo;s reading and a reference manual handy. It does NOT mean that you can pick up and start coding with Lisp, Haskell, Erlang or OCaml.&lt;/p&gt;
&lt;p&gt;Occasionally, availability constrains which programming language I use. If I&amp;rsquo;m writing a web app, and my hosting provider does not offer Ruby or Python, that rules them out. If I don&amp;rsquo;t have a C or Java compiler on my machine, that rules them out. But quite often, these can be overcome. Installing a compiler is trivial and switching hosting providers is not too big a deal either.&lt;/p&gt;
&lt;p&gt;Most often, it&amp;rsquo;s the &lt;strong&gt;libraries that determine the language I pick&lt;/strong&gt; for a task. Perl&amp;rsquo;s &lt;a href=&#34;http://perldoc.perl.org/perlre.html&#34;&gt;regular expression&lt;/a&gt; library is why I&amp;rsquo;ve been using it for many years. Ruby&amp;rsquo;s &lt;a href=&#34;http://www.google.com/search?q=HPricot&#34;&gt;HPricot&lt;/a&gt; and Python&amp;rsquo;s &lt;a href=&#34;http://www.google.com/search?q=BeautifulSoup&#34;&gt;BeautifulSoup&lt;/a&gt; make them ideal for scraping, much more than any regular expression setup I could use with Perl. &lt;a href=&#34;http://www.pythonware.com/products/pil/&#34;&gt;Python Image Library&lt;/a&gt; is great with graphics, though for animated GIFs, I need to go to the &lt;a href=&#34;http://jmge.net/java/gifenc/&#34;&gt;GIF89 library&lt;/a&gt; in Java. &lt;strong&gt;And I can&amp;rsquo;t do these easily with other languages&lt;/strong&gt;. Though each of these languages boast of vast libraries (and it&amp;rsquo;s true), there are still enough things that you want done on a regular basis for which some libraries are a lot easier to use than others.&lt;/p&gt;
&lt;p&gt;So these days, I just find the library that suits my purpose, and pick the language based on that. Working with &lt;a href=&#34;http://www.flickr.com/services/api/&#34;&gt;Flickr API&lt;/a&gt; or &lt;a href=&#34;http://developers.facebook.com/&#34;&gt;Facebook API&lt;/a&gt;? Go with their default PHP APIs. Working on &lt;a href=&#34;http://appengine.google.com/&#34;&gt;AppEngine&lt;/a&gt;? Python. These days, I pick Python by default, unless I need something quick and dirty, or if it&amp;rsquo;s heavy text processing. (Python&amp;rsquo;s regular expression syntax isn&amp;rsquo;t as elegant as Perl&amp;rsquo;s or Javascript&amp;rsquo;s, mainly because it isn&amp;rsquo;t built into the language.)&lt;/p&gt;
&lt;p&gt;\&lt;/p&gt;
&lt;p&gt;To get a better hang of Python (and out of sheer bloody-mindedness), I&amp;rsquo;m working through the problems in &lt;a href=&#34;http://projecteuler.net/&#34;&gt;Project Euler&lt;/a&gt; in Python. For those who don&amp;rsquo;t know about Project Euler,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.&lt;/p&gt;
&lt;p&gt;Each problem has been designed according to a &amp;ldquo;one-minute rule&amp;rdquo;, which means that although it may take several hours to design a successful algorithm with more difficult problems, an efficient implementation will allow a solution to be obtained on a modestly powered computer in less than one minute.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It&amp;rsquo;s a great way of learning a new programming language, and my knowledge of Python is pretty rudimentary. At the very least, going through this exercise has taught me the basics of &lt;a href=&#34;http://www.python.org/dev/peps/pep-0255/&#34;&gt;generators&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve solved around 40 problems so far. Here are &lt;a href=&#34;https://github.com/sanand0/euler/&#34;&gt;my solutions to Project Euler&lt;/a&gt;. I&amp;rsquo;m also measuring the time it takes to run each solution. My target is no more than 10 seconds per problem, rather than the one-minute, for a very practical reason: &lt;a href=&#34;https://github.com/sanand0/euler/&#34;&gt;the solutions page&lt;/a&gt; itself is generated by a Python script that runs each script, and I can&amp;rsquo;t stand waiting for more than that to refresh the page each time I solve a problem.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Nicola&lt;/strong&gt; &lt;em&gt;17 Dec 2014 10:15 am&lt;/em&gt;:
Hi guy,
I think you should add a comment form on your Euler page&amp;hellip; this is not the right page for this comment.
Anyway it seems your page is one of the favourites for the students that have project Euler probems as class assignments. So I&amp;rsquo;d like to contribute&amp;hellip;
This is a better solution for the problem #18 using an easy formulation od Dijkstra algorithm.
tr = (
(75, ),
(95, 64, ),
(17, 47, 82, ),
(18, 35, 87, 10, ),
(20, 4, 82, 47, 65, ),
(19, 1, 23, 75, 3, 34, ),
(88, 2, 77, 73, 7, 63, 67, ),
(99, 65, 4, 28, 6, 16, 70, 92, ),
(41, 41, 26, 56, 83, 40, 80, 70, 33, ),
(41, 48, 72, 33, 47, 32, 37, 16, 94, 29, ),
(53, 71, 44, 65, 25, 43, 91, 52, 97, 51, 14, ),
(70, 11, 33, 28, 77, 73, 17, 78, 39, 68, 17, 57, ),
(91, 71, 52, 38, 17, 14, 91, 43, 58, 50, 27, 29, 48, ),
(63, 66, 4, 68, 89, 53, 67, 30, 73, 16, 69, 87, 40, 31, ),
( 4, 62, 98, 27, 23, 9, 70, 98, 73, 93, 38, 53, 60, 4, 23, ),
)
sums=[0]
for i in xrange(len(tr)):
ns=[0]*len(tr[i])
for c,v in enumerate(tr[i]):
if c&amp;gt;0:
s0=sums[c-1]+v
if s0&amp;gt;ns[c]:
ns[c]=s0
else:
pass
try:
s1=sums[c]+v
if s1&amp;gt;ns[c]:
ns[c]=s1
except:
pass
sums=ns
max(sums)
For each row the program stores the greater accumulator of the numbers leading to that row, so it is not an O(2^n) problem but a O(n^2).
I have also a solution for problem #31:
coins = (1, 2, 5, 10, 20, 50, 100, 200)
count=0
def coinFlip(level, residual, pattern):
global count, tests
p = residual / coins[level]
&lt;h1 id=&#34;print-level-residual-pattern-innresid&#34;&gt;print level, residual, pattern, innResid&lt;/h1&gt;
while True:
tests += 1
innResid = residual-p*coins[level]
if level&amp;gt;0:
coinFlip(level-1, innResid, pattern + (p,))
if p==0:
break
p=p-1
else:
if innResid==0:
count += 1
&lt;h1 id=&#34;print-count-pattern--p&#34;&gt;print count, pattern + (p,)&lt;/h1&gt;
break
count=0
tests=0
coinFlip(7, 200, ())
It works by &amp;ldquo;changing&amp;rdquo; the coins: we start with one 2P and change it for two 1P, then we change one of the two 1P with two 50p&amp;hellip; and so on.
I&amp;rsquo;d be very glad if you like them and decide to publish my code on your site.
Greetings,
Nicola.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Caching pages on Apache</title>
      <link>https://www.s-anand.net/blog/caching-pages-on-apache/</link>
      <pubDate>Thu, 14 Aug 2008 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/caching-pages-on-apache/</guid>
      <description>&lt;p&gt;I don&amp;rsquo;t use any &lt;a href=&#34;http://en.wikipedia.org/wiki/Blog_hosting_service&#34;&gt;blogging software&lt;/a&gt; for my site. I just hand-wired it some years ago. When doing this, one of the &lt;strong&gt;biggest problems was &lt;a href=&#34;http://en.wikipedia.org/wiki/Caching&#34;&gt;caching&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Consider each blog entry page. Each page has the same template, but different content. Both the template and content could be changed. So ideally, blog pages should be served dynamically. That is, every time someone requests the page, I should look up the content, look up the template, and put them together.&lt;/p&gt;
&lt;p&gt;I did that, and within a few days outgrew my &lt;a href=&#34;http://www.hostgator.com/&#34;&gt;hosting service&lt;/a&gt;&amp;rsquo;s CPU usage limit. Running such a program for every page hit is too heavy on the CPU.&lt;/p&gt;
&lt;p&gt;One way around this is to create the pages beforehand and serve it as regular HTML. But every time the template changes, you need to re-generate every single page. I had over 2,500 pages. That would kill the CPU usage if I changed the template often.&lt;/p&gt;
&lt;p&gt;At that point, I did a piece of analysis. &lt;strong&gt;Do I really need to regenerate all 2000 blog entries?&lt;/strong&gt; Wouldn&amp;rsquo;t the &lt;a href=&#34;http://en.wikipedia.org/wiki/80-20_rule&#34;&gt;80-20 rule&lt;/a&gt; apply? The Apache log confirmed that 20% of the URLs were accounting for 76% of the hits. So I&amp;rsquo;d be wasting my time regenerating all the pages every time I changed the template.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-hits-per-page_2761682983_o-png.webp&#34; title=&#34;Cumulative Hits Per Page&#34;&gt;&lt;img alt=&#34;Graph: 20% of URLs account for 76% of hits&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-hits-per-page_2761682983_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So based on this, I decided to dynamically cache the pages. When a page is requested for the first time, I create the page and save it in a cache. The next time, I&amp;rsquo;d just serve it from the cache. If the template changes, I just need to delete the cache. This way, I only generate pages that are requested, and they&amp;rsquo;re only generated once.&lt;/p&gt;
&lt;p&gt;OK, so that&amp;rsquo;s the background. Now let me get to how I did it.&lt;/p&gt;
&lt;p&gt;I wrote a Perl script, &lt;code&gt;blog.pl&lt;/code&gt;, that would generate a page in the &lt;code&gt;html&lt;/code&gt; folder whenever it is called. Next, I changed &lt;a href=&#34;http://httpd.apache.org/&#34;&gt;Apache&lt;/a&gt;&amp;rsquo;s &lt;a href=&#34;http://httpd.apache.org/docs/2.0/howto/htaccess.html&#34;&gt;.htaccess&lt;/a&gt; to run this program &lt;strong&gt;only&lt;/strong&gt; if the page did not exist in the &lt;code&gt;html&lt;/code&gt; folder.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Redirect to cache first&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RewriteCond %&lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;REQUEST_FILENAME&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt; !-f
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RewriteRule ^&lt;span class=&#34;o&#34;&gt;([&lt;/span&gt;^/&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;*&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\.&lt;/span&gt;html$       html/&lt;span class=&#34;nv&#34;&gt;$1&lt;/span&gt;.html
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# If not found, run program to create page&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RewriteCond %&lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;REQUEST_FILENAME&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt; !-f
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;RewriteRule ^html/&lt;span class=&#34;o&#34;&gt;([&lt;/span&gt;^/&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;*&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\.&lt;/span&gt;html$  blog.pl?t&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The first block redirects Apache to the cache. The second block checks if the file exists in the cache. If it doesn&amp;rsquo;t, the Apache redirects to the program. The program creates the page in the cache and displays it. Thereafter, Apache will just serve the file from the cache.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This Apache trick can be used in another way. I keep files organised in different folders to simplify my work. But to visitors of this site, that organisation is irrelevant. So I effectively merge these folders into one. For example, I have a folder called &lt;a href=&#34;https://www.s-anand.net/blog/a/&#34;&gt;a&lt;/a&gt; in which I keep my static content. I also have this piece of code:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-apacheconf&#34; data-lang=&#34;apacheconf&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteCond&lt;/span&gt; %{REQUEST_FILENAME} !-f
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;RewriteRule&lt;/span&gt; ^([^/]+)$   a/$1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If any file is not found in the main folder, just check in the &lt;code&gt;a/&lt;/code&gt; folder. So I can access the file &lt;a href=&#34;https://www.s-anand.net/blog/assets/hindholam.midi&#34;&gt;/a/hindholam.midi&lt;/a&gt; as &amp;lt;/hindholam.midi&amp;gt; as well.&lt;/p&gt;
&lt;p&gt;This can be extended to a series of folders: either as a cascade of caches, or to merge many folders into one.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kannan Ekanath&lt;/strong&gt; &lt;em&gt;17 Aug 2008 7:00 am&lt;/em&gt;:
[http://random-thoughts-and-rambling.blogspot.com/]&lt;/p&gt;
&lt;p&gt;Hi,
I wanted to know a comparison/contrast how setting up blog etc in your own hosted space compares with things like &lt;a href=&#34;http://sites.google.com&#34;&gt;http://sites.google.com&lt;/a&gt;. I have always postponed this buying of a domain in favour of things like sites.google.com. Obviously I understand that the advantages would be you can control the LAF, the content, the organisation etc. But have you got a comparison doc or something on what precisely one would get if he hosts things in his own domain instead of a google/yahoo powered wiki style page?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;17 Aug 2008 1:31 pm&lt;/em&gt;:
@Kannan: Don&amp;rsquo;t have anything offhand, Kannan. But buying a domain would make sense anyway &amp;ndash; you could point your domain to sites.google.com transparently. If you wanted to build your own blogging system for your site, though, I&amp;rsquo;d advise against it. I did it because I started in 1999 and there weren&amp;rsquo;t many blogging systems then. Today, it just doesn&amp;rsquo;t make sense.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Nirupam&lt;/strong&gt; &lt;em&gt;18 Aug 2008 7:43 am&lt;/em&gt;:
Hi
Want to create a site for myself. Should I go for own hosted space or should I start using sites like Geosites etc. I want to deploy web-based applications in my site. Can you please advise?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;19 Aug 2008 11:24 am&lt;/em&gt;:
@Nirupam: If you want to deploy your own applications, you should probably create your own site. Get a free hosting service to start with. I&amp;rsquo;ve used 110mb.com, freestarthost.com and awardspace.com, and found them to be OK.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Launching applications</title>
      <link>https://www.s-anand.net/blog/launching-applications/</link>
      <pubDate>Sat, 02 Aug 2008 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/launching-applications/</guid>
      <description>&lt;p&gt;Opening programs from the Start - All Programs menu is painful. For many years, I relied on the quick launch bar.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-quicklaunch_2724573143_o-png.webp&#34; title=&#34;QuickLaunch&#34;&gt;&lt;img alt=&#34;QuickLaunch&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-quicklaunch_2724573143_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But it&amp;rsquo;s space constrained. There are only so many applications you can place there. I want space enough for frequently used documents as well. Recently, I decided that I need all the space on the screen. So my task bar is on auto hide, and that makes the quick launch bar a little tougher to use as well. And finally, I can&amp;rsquo;t use the quick launch bar with the keyboard. &lt;a href=&#34;https://www.s-anand.net/blog/excel-never-use-the-mouse/&#34;&gt;That&amp;rsquo;s important&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So I switched to the pinned menus on the Start Menu.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-startmenu_2725407500_o-png.webp&#34; title=&#34;StartMenu&#34;&gt;&lt;img alt=&#34;StartMenu&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-startmenu_2725407500_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This works better with the keyboard. I access Word, I just type the Ctrl-Esc, W. Excel: Ctrl-Esc, E. But I run short of letters soon. I have trouble between Powerpoint and &lt;a href=&#34;http://processing.org/&#34;&gt;processing&lt;/a&gt;, for instance. And I can&amp;rsquo;t store documents.&lt;/p&gt;
&lt;p&gt;I tried &lt;a href=&#34;http://www.humanized.com/enso/launcher/&#34;&gt;Enso Launcher&lt;/a&gt; and &lt;a href=&#34;http://www.launchy.net/&#34;&gt;Launchy&lt;/a&gt;, both of which are great products, but I just can&amp;rsquo;t stand the thought of them hogging up all the memory that they do. Launchy in particular.&lt;/p&gt;
&lt;p&gt;Given that I almost always have one or two command prompts open, I write my own little tool to do the job now. It&amp;rsquo;s a command line launcher I&amp;rsquo;ve written in Perl. I call it &amp;ldquo;o&amp;rdquo;. At the first run, it indexes my hard disk. (Well, not all of it. I&amp;rsquo;ve picked what I need.) Now, if I want to read &lt;strong&gt;Harry Potter and the Deathly Hallows&lt;/strong&gt;, I just type:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;gt; o harry potter hallows
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If I wanted to pick a Harry Potter book, I could:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;l&#34;&gt;&amp;gt; o harry potter&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;D:/Entertainment/Books/Hugo Awards/2001 - J K Rowling - Harry Potter and the Goblet Of Fire.rar&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;D:/Entertainment/Books/J K Rowling.1.Harry Potter and The Sorcerer&amp;#39;s Stone.pdf&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;D:/Entertainment/Books/J K Rowling.2.Harry Potter and The Chamber of Secrets.pdf&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;D:/Entertainment/Books/J K Rowling.3.Harry Potter and The Prisoner of Azkaban.pdf&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;D:/Entertainment/Books/J K Rowling.4.Harry Potter and The Goblet of Fire.doc&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;D:/Entertainment/Books/J K Rowling.5.Harry Potter and the Order of the Phoenix.pdf&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;D:/Entertainment/Books/J K Rowling.6.Harry Potter and the Half-Blood Prince.pdf&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;D:/Entertainment/Books/J K Rowling.7.Harry Potter and the Deathly Hallows.pdf&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;D:/Entertainment/Books/J K Rowling.The Harry Potter Encyclopedia.doc&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;9&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;D:/My Pictures/2005-06 London/2005-07-16 06 Waterstones Oxford Street Harry Potter release.JPG&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;... more&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;gt; (0-9, q, any word)&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;prince&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;l&#34;&gt;D:/Entertainment/Books/J K Rowling.6.Harry Potter and the Half-Blood Prince.pdf&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The program lists the files matching the words I typed, and lets me filter within that.&lt;/p&gt;
&lt;p&gt;I just wrote this yesterday, and already, I&amp;rsquo;ve used it dozens of times. Here&amp;rsquo;s the &lt;a href=&#34;https://www.s-anand.net/blog/o_pl&#34;&gt;source&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;PS: While I was at it, I downloaded a &lt;a href=&#34;http://search.cpan.org/~cpb/Flickr-Upload/Upload.pm&#34;&gt;Flickr uploader for Perl&lt;/a&gt;. So I can now upload images with the command line. This easily saves me at least 5 minutes per article.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Karthik A&lt;/strong&gt; &lt;em&gt;2 Aug 2008 12:00 pm&lt;/em&gt;:
Oc here&lt;br&gt;
I got equally bugged long back and wrote a python program called fo (folder opener ;-)&lt;br&gt;
&lt;br&gt;
Here it is - crude but worked pretty well \
&lt;h2 id=&#34;setlocal-enableextensions--python--x-f0---goto-eof-&#34;&gt;@setlocal enableextensions &amp;amp; python -x %~f0 %* &amp;amp; goto :EOF \&lt;/h2&gt;
import os&lt;br&gt;
import ConfigParser&lt;br&gt;
import sys&lt;br&gt;
&lt;br&gt;
CONFIGFILENAME = &amp;ldquo;config.ini&amp;rdquo;&lt;br&gt;
CONFIGFILENAME1 = &amp;ldquo;config1.ini&amp;rdquo;&lt;br&gt;
cleanInp = &amp;lsquo;&amp;rsquo;&lt;br&gt;
scuth = {}&lt;br&gt;
\
&lt;h2 id=&#34;load-all-the-config-file-details-in-a-hash-&#34;&gt;Load all the config file details in a hash \&lt;/h2&gt;
cfgFile = ConfigParser.ConfigParser()&lt;br&gt;
cfgFile.read(CONFIGFILENAME)&lt;br&gt;
cfgFileFP = open(CONFIGFILENAME,&amp;lsquo;r+&amp;rsquo;)&lt;br&gt;
&lt;br&gt;
scuts = cfgFile.items(&amp;ldquo;shortcuts&amp;rdquo;)&lt;br&gt;
&lt;br&gt;
\
&lt;h2 id=&#34;load-into-a-dictionary-&#34;&gt;load into a dictionary \&lt;/h2&gt;
for (x,y) in scuts:&lt;br&gt;
scuth[x]=y&lt;br&gt;
&lt;br&gt;
print &amp;ldquo;&amp;ldquo;&amp;ldquo;Folder and file rapid opener (FO)&lt;br&gt;
&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&lt;br&gt;
Ctrl-Alt-C - to start&lt;br&gt;
@shortcut,path - to add a shortcut&lt;br&gt;
x - exit&lt;br&gt;
&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;rdquo;&amp;rdquo;&amp;rdquo;&lt;br&gt;
&lt;br&gt;
while cleanInp != &amp;lsquo;x&amp;rsquo;:&lt;br&gt;
inp = raw_input(&amp;ldquo;Your wish Master!:&amp;rdquo;)&lt;br&gt;
cleanInp = inp.strip()&lt;br&gt;
if cleanInp.find(&amp;rsquo;@&amp;rsquo;) == -1:&lt;br&gt;
try:&lt;br&gt;
os.startfile(scuth[cleanInp])&lt;br&gt;
except:&lt;br&gt;
pass&lt;br&gt;
else:&lt;br&gt;
tmp = cleanInp.split(&amp;quot;@&amp;quot;)[1]&lt;br&gt;
tmp1 = tmp.split(&amp;quot;,&amp;quot;)&lt;br&gt;
cfgFile.set(&amp;ldquo;shortcuts&amp;rdquo;,tmp1[0], tmp1[1])&lt;br&gt;
cfgFile.write(cfgFileFP)&lt;br&gt;
q&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sathish&lt;/strong&gt; &lt;em&gt;2 Aug 2008 12:00 pm&lt;/em&gt;:
Anand,&lt;br&gt;
&lt;br&gt;
Did you try slickrun.. It is extremely slick..&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;2 Aug 2008 12:00 pm&lt;/em&gt;:
@OC: Hey, didn&amp;rsquo;t realise you were into python. Neat!&lt;br&gt;
&lt;br&gt;
@Sathish: How much memory does Slickrun use up? Given some of the apps I&amp;rsquo;m running on my 1GB laptop, I&amp;rsquo;m having to count each byte!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;oracle&lt;/strong&gt; &lt;em&gt;2 Aug 2008 12:00 pm&lt;/em&gt;:
The method I use:&lt;br&gt;
&lt;br&gt;
enable google desktop by ctrl-ctrl&lt;br&gt;
&lt;br&gt;
in the search bar first few alphabets of the app..invariably it shows me the app i need.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Saurabh&lt;/strong&gt; &lt;em&gt;2 Aug 2008 12:00 pm&lt;/em&gt;:
I used to use Launchy before switching to Mac an year book and have been using QuickSilver since then. Dont use the Apple Spotlight, neither the Google Desktop thing..QS does all the work - launching apps, searching for files and quickly accessing them, a nice article abt a great QS trick (for Mac users) here : &lt;a href=&#34;http://www.43folders.com/2005/06/13/quicksilver-the-comma-trick&#34;&gt;http://www.43folders.com/2005/06/13/quicksilver-the-comma-trick&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
BTW Processing.org seems to be interesting, plan to check it out soon!&lt;br&gt;
&lt;br&gt;
Cheers!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;11 Aug 2008 5:35 am&lt;/em&gt;:
@Sathish: 7MB is not too bad. Launchy was taking up over 25MB in my case.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Reducing the server load</title>
      <link>https://www.s-anand.net/blog/reducing-the-server-load/</link>
      <pubDate>Wed, 06 Jun 2007 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/reducing-the-server-load/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m been using a shared hosting service with &lt;a href=&#34;http://www.100ws.com/&#34;&gt;100 WebSpace&lt;/a&gt; over the last 7 years. It&amp;rsquo;s an ad-free account that offers 100MB of space and 3GB of bandwidth per month. Things were fine until two months ago, which was when my &lt;a href=&#34;https://www.s-anand.net/blog/hindi&#34;&gt;song search engines&lt;/a&gt; started attracting an audience. I had anticipated that I might run out of bandwidth, so I used a &lt;a href=&#34;http://www.freehostia.com/&#34;&gt;different server&lt;/a&gt; (that has 5GB of bandwidth per month quota) for loading the songs. But what I didn&amp;rsquo;t anticipate whas that &lt;strong&gt;my server load would run over the allotted CPU limit&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;d think this is unusual, given how cheap computing power is, and that I&amp;rsquo;d run out of bandwidth quicker. But no. My allotted limit was 1.3% of CPU usage (whatever that meant), and about 2 months ago, I hit 1.5% a few times. I upgraded my account to one which had a 2.5% limit immediately, but the question was: &lt;strong&gt;why did this happen?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This blog uses a lot of Perl scripts&lt;/strong&gt;. I store all articles on a MySQL database. Every time a link is requested, I dynamically generate the HTML by pulling up the article from the MySQL database and formatting the text based on a template.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-schematic-of-how-my-website-displays-pages_533687183_o-gif.webp&#34;&gt;&lt;img alt=&#34;Schematic of how my website displays pages&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-schematic-of-how-my-website-displays-pages_533687183_o-gif.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I also use MySQL to store users&amp;rsquo; comments. Every time I display each page, I also pull out the comments related to that page.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I can&amp;rsquo;t store the files directly as HTML because I keep changing the template&lt;/strong&gt;. Every time I change the template, I have to regenerate all the files. If I do that on my laptop and upload it, I consume a lot of bandwidth. If I do that on the server, I consume a lot of server CPU time.&lt;/p&gt;
&lt;p&gt;Anyway, since I&amp;rsquo;d upgraded my account, I thought things would be fine. Two weeks ago, I hit the 2.5% limit as well. No choice. Had to do something.&lt;/p&gt;
&lt;p&gt;If you read the &lt;a href=&#34;http://www.google.co.uk/search?&amp;amp;q=o%27reilly+database+war+stories&#34;&gt;O&amp;rsquo;Reilly Radar Database War Stories&lt;/a&gt;, you&amp;rsquo;ll gather that &lt;strong&gt;databases are great for queries, joins and the like, while flat files are better to process large volume data as a batch&lt;/strong&gt;. Since page requests come one by one, and I don&amp;rsquo;t need to do much batch processing, I&amp;rsquo;d gone in for a MySQL design. &lt;strong&gt;But there&amp;rsquo;s a fair bit of overhead to each databasse query&lt;/strong&gt;, and that&amp;rsquo;s the key problem. Perl takes a while to load (and I suspect my server is not using &lt;a href=&#34;http://perl.apache.org/&#34;&gt;mod_perl&lt;/a&gt;). The &lt;a href=&#34;http://dbi.perl.org/&#34;&gt;DBI module&lt;/a&gt; takes a while to load. Connecting to MySQL takes a while. (The query itself, though, is quite fast.)&lt;/p&gt;
&lt;p&gt;So &lt;strong&gt;I moved to flat files instead&lt;/strong&gt;. Instead of looking up from a database, I just look up a test file using &lt;a href=&#34;http://en.wikipedia.org/wiki/Grep&#34;&gt;grep&lt;/a&gt;. (I don&amp;rsquo;t use Perl&amp;rsquo;s regular expression matching because &lt;a href=&#34;http://swtch.com/~rsc/regexp/regexp1.html&#34;&gt;regular expression matching in UNIX is faster than in Perl&lt;/a&gt;.) I have a 1.6MB text file that contains all my blog entries.&lt;/p&gt;
&lt;p&gt;But looking up a 1.6MB text file takes a while. So I split the file based on the first letter of the title. So this post (&lt;a href=&#34;https://www.s-anand.net/blog/reducing-the-server-load/&#34;&gt;Reducing the server load&lt;/a&gt;) would go under a file &lt;code&gt;x.r.txt&lt;/code&gt; (for &amp;lsquo;R&amp;rsquo;) while my last post (&lt;a href=&#34;https://www.s-anand.net/blog/calvin-and-hobbes-animated/&#34;&gt;Calvin and Hobbes animated&lt;/a&gt;) would go under a file &lt;code&gt;x.c.txt&lt;/code&gt; (for &amp;lsquo;C&amp;rsquo;). This speeds up the grep by a factor of 5-10.&lt;/p&gt;
&lt;p&gt;On average, using MySQL query used to take 0.9 seconds per query. Now, using grep, it&amp;rsquo;s down to about 0.5 seconds per query. &lt;strong&gt;Flat files reduced the CPU load by about half&lt;/strong&gt;. (And as a bonus, my site has no SQL code. I never did like SQL that much.)&lt;/p&gt;
&lt;p&gt;So that&amp;rsquo;s why you haven&amp;rsquo;t seen any posts from me the last couple of weeks. Partly because I didn&amp;rsquo;t have anything to say. Partly because I was forced to revamp this site.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sathya&lt;/strong&gt; &lt;em&gt;6 Jun 2007 12:00 pm&lt;/em&gt;:
Wow. thats quite interesting. Perhaps you could have also tried caching. keep a copy of &amp;lsquo;&amp;lsquo;hot&amp;rsquo;&amp;rsquo; (Most Recently used -MRU) stuff in memory, so you dont have to relaod it again. Given that most of the hits would be for the latest entries ( or atleast 80% of the hits are for 20% of ur posts) then caching might be an option. However, I dont know how much of RAM quota you have ;-)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;somnath&lt;/strong&gt; &lt;em&gt;6 Jun 2007 12:00 pm&lt;/em&gt;:
Do you work at your company in business consulting or technology. Having known you for the past eight years (jeez a long time) I have no doubt you manage not just both but spend quality time with your family as well. Maybe it would be a good idea to blog about your typical day when you juggle between work (consulting for a big client), passion (revaming this site or taking pictures or doing a project like building media pc etc. etc.) and family (playing with a baby daughter is wonderful). BTW got your mail but I check internet mail very infrequently. Cheers!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Saurabh&lt;/strong&gt; &lt;em&gt;6 Jun 2007 12:00 pm&lt;/em&gt;:
This one is slightly off the topic..I also started using freehostia a few months back, however I find that 2 out of 7 days in a week, my website is not available for more than 96% of the time..(I monitor the uptime using something called as InternetSeer)..Would you have any tips here, is freehostia not a good option for free services or should I switch to some other service provider?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.google.com&#34;&gt;Rocco Blegen&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;4 Dec 2011 4:14 am&lt;/em&gt;:
Howdy! This post couldn’t be written any better! Reading through this post reminds me of my old room mate! He always kept talking about this. I will forward this post to him. Pretty sure he will have a good read. Thank you for sharing!&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Splitting a sentence into words</title>
      <link>https://www.s-anand.net/blog/splitting-a-sentence-into-words/</link>
      <pubDate>Thu, 26 Apr 2007 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/splitting-a-sentence-into-words/</guid>
      <description>&lt;p&gt;I often need to extract words out of sentences. It&amp;rsquo;s one of the things I used to build the &lt;a href=&#34;https://www.s-anand.net/blog/statistically-improbable-phrases-2/&#34;&gt;Statistically Improbable Phrases for Calvin and Hobbes&lt;/a&gt;. But splitting a sentence into words isn&amp;rsquo;t as easy as you think.&lt;/p&gt;
&lt;p&gt;Think about it. &lt;strong&gt;What is a word&lt;/strong&gt;?&lt;/p&gt;
&lt;p&gt;Something that has spaces around it? OK, let&amp;rsquo;s start with the simplest way to get words: &lt;strong&gt;split by spaces&lt;/strong&gt;. Consider this piece:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;I&amp;#39;d look at McDonald&amp;#39;s,&amp;#34; he said.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;They sell over 3,000,000 burgers a day -- at $1.50 each.&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-fat foods were the rage. For e.g., margins in fries
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;were over 50%... and (except for R&amp;amp;M &amp;amp; Dyana [sic]) everyone
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;was at ~30% net margin; growing at 25% too!
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Splitting this by spaces (consider new lines, tabs, etc as spaces too.), we get the following:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;I&amp;#39;d
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;look
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;at
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;McDonald&amp;#39;s,&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now, some of these like &amp;ldquo;I&amp;rsquo;d&amp;rdquo; are words. But &amp;ldquo;McDonald&amp;rsquo;s&amp;rdquo; isn&amp;rsquo;t. I mean, there&amp;rsquo;s a full-stop and a double-quotes at the end. Clearly we need to remove the punctuation as well. But, if we do that, &lt;code&gt;I&#39;d&lt;/code&gt; becomes &lt;code&gt;Id&lt;/code&gt;. So we need to be careful about which punctuation to remove. Let&amp;rsquo;s take a closer look.&lt;/p&gt;
&lt;p&gt;The following punctuation marks are &lt;strong&gt;clear word separators&lt;/strong&gt;: spaces, the exclamation mark, the question mark, semicolon, brackets of any kind, and double-quotes (not single quotes). No word has these in the middle. If we use these as separators, our list of words is better, but we still have some words with punctuation:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;McDonald&amp;#39;s,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;e.g.,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;High-fat
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;R&amp;amp;M
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The issue is, these punctuation marks are &lt;strong&gt;ambiguous word separators&lt;/strong&gt;: comma, hyphen, single-quote, ampersand, period and slash. These usually separate words, but there are exceptions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Comma&lt;/strong&gt;: Not inside numbers: 3,000,000.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hyphen&lt;/strong&gt;: Not for hyphenated words: High-fat.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Single-quote&lt;/strong&gt;: Not for possessives: McDonald&amp;rsquo;s. Not for joint words: I&amp;rsquo;d.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ampersand&lt;/strong&gt;: Not for abbreviations: R&amp;amp;M&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Period&lt;/strong&gt;: Not for abbreviations: O.K. Not for URLs: &lt;a href=&#34;https://www.s-anand.net&#34;&gt;www.s-anand.net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Slash&lt;/strong&gt;: Not for fractions: 3/4. Not for URLs: google.com/search&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Colon is ambiguous too. In normal English usage, it would be a separator. But URLs like &lt;a href=&#34;http://www.s-anand.net/&#34;&gt;http://www.s-anand.net/&lt;/a&gt; use these characters, and it doesn&amp;rsquo;t make sense to separate them.&lt;/p&gt;
&lt;p&gt;So here are my current rules for splitting a sentence into words. (It&amp;rsquo;s a &lt;a href=&#34;http://www.perl.com/doc/manual/html/pod/perlre.html&#34;&gt;Perl regular expression&lt;/a&gt;. Don&amp;rsquo;t worry. &lt;a href=&#34;http://forums.speedguide.net/showthread.php?t=166822&#34;&gt;Cooper&amp;rsquo;s Law&lt;/a&gt;: If you do not understand a particular word in a piece of technical writing, ignore it. The piece will make perfect sense without it.)&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Split by clear word separators&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/       &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\s&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\!&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\?&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\;\(\)\[\]\{\}\&amp;lt;\&amp;gt;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34; ]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;# ... by COMMA, unless it has numbers on both sides: 3,000,000
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;|       (?&amp;lt;=\D) ,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;|       , (?=\D)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;# ... by FULL-STOP, SINGLE-QUOTE, HYPHEN, AMPERSAND, unless it has a letter on both sides
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;|       (?&amp;lt;=\W) [\.\-\&amp;amp;]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;|       [\.\-\&amp;amp;] (?=\W)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;# ... by QUOTE, unless it follows a letter (e.g. McDonald&amp;#39;s, Holmes&amp;#39;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;|       (?&amp;lt;=\W) [&amp;#39;]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;# ... by SLASH, if it has spaces on at least one side. (URLs shouldn&amp;#39;t be split)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;|       \s \/
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;|       \/ \s
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;# ... by COLON, unless it&amp;#39;s a URL or a time (11:30am for e.g.)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;|       \:(?!\/\/|\d)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;/x;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This doesn&amp;rsquo;t even scratch the surface of the issue, though. Here are some issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lots of files &lt;strong&gt;split words&lt;/strong&gt; into two at the end of a line. How do we handle that?&lt;/li&gt;
&lt;li&gt;How do we handle &lt;strong&gt;incorrect punctuation&lt;/strong&gt;? For instance, if someone types &amp;ldquo;done.Yet,&amp;rdquo; without leaving a space after the full-stop, I&amp;rsquo;ll think it&amp;rsquo;s an abbreviation.&lt;/li&gt;
&lt;li&gt;What about &lt;strong&gt;other separators&lt;/strong&gt;? Like the ± symbol or the £ symbol for instance.&lt;/li&gt;
&lt;li&gt;What about &lt;strong&gt;other languages&lt;/strong&gt;?!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And you thought it was easy!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Kasi&lt;/strong&gt; &lt;em&gt;27 Apr 2007 10:18 pm&lt;/em&gt;:
Hi Anand, Nice site..It was good talking to you! When u find time, pls do visit my humble less visited blog at &lt;a href=&#34;https://www.raconteurkasi.blogspot.com&#34;&gt;www.raconteurkasi.blogspot.com&lt;/a&gt; !&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ramya&lt;/strong&gt; &lt;em&gt;3 May 2007 7:52 am&lt;/em&gt;:
Hi Anand, Can u guide me through the interview process of INSEAD MBA . Can you share your wisdom with me to crack the interview, and one more question .. do u sleep for less than 5 hrs a day ?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Andrew&lt;/strong&gt; &lt;em&gt;26 Apr 2007 12:00 pm&lt;/em&gt;:
Thanks, this is very helpful.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Hindi songs online</title>
      <link>https://www.s-anand.net/blog/hindi-songs-online/</link>
      <pubDate>Mon, 19 Feb 2007 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/hindi-songs-online/</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://www.s-anand.net/blog/hindi&#34;&gt;Click here to search for Hindi songs&lt;/a&gt;&lt;/strong&gt;.
This is an article on how I wrote the search engine.&lt;/p&gt;
&lt;p&gt;I find it a nuisance to have to go to &lt;a href=&#34;http://www.raaga.com/&#34;&gt;Raaga&lt;/a&gt;, search for a song, not find it, then go to &lt;a href=&#34;http://www.musicindiaonline.com&#34;&gt;MusicIndiaOnline&lt;/a&gt;, not find it, then go to &lt;a href=&#34;http://www.musicplug.in/&#34;&gt;Musicplug.in&lt;/a&gt;, and so on until Google.&lt;/p&gt;
&lt;p&gt;So I got the list of songs from some of these sites, put it together in one place, and implemented a find-as-you-type.&lt;/p&gt;
&lt;p&gt;Just go to &lt;strong&gt;&lt;a href=&#34;https://www.s-anand.net/blog/hindi&#34;&gt;s-anand.net/hindi&lt;/a&gt; and type a song or movie name&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; How I created this is a very long story, spanning over two years. And here it is.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Over the last 5 years, my MP3 collection had grown quite large. Most of these were from MP3 CDs I had bought, songs I&amp;rsquo;d downloaded, or songs I&amp;rsquo;d recorded. In any case, the file names were a mess. In early 2005, I decided to organise the collection and put them all into one big directory per language, and name the files in the format &amp;ldquo;Movie.Song.mp3&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;People think I&amp;rsquo;m crazy to use a single large directory. But I prefer one directory with 5,000 files to 1000 directories with 5 files for a simple reason. &lt;strong&gt;Searching in one directory is easier than in multiple directories&lt;/strong&gt;. You can just sort everything by name, date modified, size, whatever. On the command prompt, you can type &amp;ldquo;DIR dil*.txt&amp;rdquo; to see all movies starting with &amp;ldquo;Dil&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;I chose the &amp;ldquo;Movie.Song.mp3&amp;rdquo; format because the movie name and the song name were really the only two things I knew about &lt;strong&gt;every&lt;/strong&gt; song I had. I didn&amp;rsquo;t always know the music director, singers or year of the movie. And I placed &amp;ldquo;Movie&amp;rdquo; before &amp;ldquo;Song&amp;rdquo; because I often browse songs within a single movie, and it&amp;rsquo;s useful to sort by name in Windows Explorer and see all the songs in a movie. I&amp;rsquo;ve never had a need to sort by song name. If I wanted to find a song that started with, say, &amp;ldquo;pehla&amp;rdquo;, I&amp;rsquo;d just type &amp;ldquo;DIR *pehla*&amp;rdquo; on the Command Prompt. (As you might have guessed, I have a Command Prompt window always open.)&lt;/p&gt;
&lt;p&gt;So, having very rationally organised my music collection, I was happy.&lt;/p&gt;
&lt;p&gt;Soon the problem shifted to song discovery. I&amp;rsquo;d heard the familiar songs in my collection many times. Of the unfamiliar songs, but I didn&amp;rsquo;t know which to pick. I knew I liked some music directors more than others, and had a hunch I liked older songs. (My subsequent &lt;a href=&#34;https://www.s-anand.net/blog/top-tamil-songs/&#34;&gt;analysis of song preferences&lt;/a&gt; confirmed this.) But I didn&amp;rsquo;t know the year or music director for any of my songs.&lt;/p&gt;
&lt;p&gt;Since &lt;a href=&#34;http://wwww.raaga.com/&#34;&gt;Raaga&lt;/a&gt; had a decent collection of songs, along with the year and music director, I decided to download this information and tag my files with this information. There were two problems. Firstly, the &lt;strong&gt;data in Raaga needs to be parsed&lt;/strong&gt;. I need to hunt through each file to find the year and music director. The second was worse: &lt;strong&gt;my song names were spelt differently from Raaga&amp;rsquo;s&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1: download the HTML and parse it&lt;/strong&gt;. Perl is pretty much the only programming language I know. I used &lt;a href=&#34;http://www.perl.com/pub/a/2002/08/20/perlandlwp.html&#34;&gt;Perl&amp;rsquo;s LWP library&lt;/a&gt; to download the &lt;a href=&#34;http://www.raaga.com/channels/hindi/movies.asp&#34;&gt;movie index of Raaga&lt;/a&gt;. Each movie in the index always has the URL &lt;a href=&#34;http://www.raaga.com/channels/hindi/movie/something.html&#34;&gt;http://www.raaga.com/channels/hindi/movie/something.html&lt;/a&gt;. So I extracted these patterns and downloaded all these URLs as well. (Others have a recognisable pattern as well: &lt;a href=&#34;http://www.musicindiaonline.com/music/hindi&#34;&gt;http://www.musicindiaonline.com/music/hindi&lt;/a&gt;_bollywood/s/movie.some_number/, &lt;a href=&#34;http://www.musicplug.in/songs.php?movieid=some&#34;&gt;http://www.musicplug.in/songs.php?movieid=some&lt;/a&gt;_number, &lt;a href=&#34;http://ww.smashits.com/music/hindi&#34;&gt;http://ww.smashits.com/music/hindi&lt;/a&gt;_film/songs/some_number, etc.)&lt;/p&gt;
&lt;p&gt;You probably realise that I downloaded a fair bit of the entire Raaga.com site&amp;rsquo;s HTML. Actually, it&amp;rsquo;s not that big. The 800-odd files in the Hindi collection didn&amp;rsquo;t take more than 40MB of space, and a few hours to download. Here&amp;rsquo;s what the code looks like:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Get the list of movies HTML file&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;my&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;index&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;http://www.raaga.com/channels/hindi/movies.asp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Extract the list of movies from that into a hash (movie, url pairs)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;my&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;movie&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;index&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=~&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;href&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/channels/hindi/movie/([^&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;html&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34; class=&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;^&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;]*&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;([&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;^&amp;gt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;|&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;gsi&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Loop through each movie&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;my&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;keys&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;movie&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;# Get the song HTML file&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;my&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;html&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;http://www.raaga.com/channels/hindi/movie/$file.html&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;# Year is typically like this: Movie_Name (1983)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;my&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;year&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;html&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=~&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;movie&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;\&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;+&lt;/span&gt;\&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;\&lt;span class=&#34;n&#34;&gt;d&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;\&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;|&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;?&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;# Music director always has the URL /channels/hindi/music/something&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;my&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;md&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;html&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=~&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;href&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;http://www.raaga.com/channels/hindi/music/[^&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34; class=&amp;#34;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;black&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;gt;(.*?)&amp;lt;/a&amp;gt;|) ? $1 : &amp;#34;&amp;#34;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;split&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;\&lt;span class=&#34;n&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;html&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# Now get individual songs and rating. They always have an onClick=&amp;#34;setList(something)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;|&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;onClick&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;setList1\((\d*)\)[^&amp;gt;]*&amp;gt;(.*?)&amp;lt;\/a&amp;gt;.*?&amp;#34;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;http&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;//&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;images&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raaga&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;com&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/.*&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;?&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;gif&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34; alt=&amp;#34;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;RATING&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;([&lt;/span&gt;\&lt;span class=&#34;n&#34;&gt;d&lt;/span&gt;\&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;|) {&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;song&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rating&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\t&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;movie&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;song&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;year&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;md&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rating&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Incidentally, I&amp;rsquo;m showing you a simplifed version. I actually wrote the script in a way that I could resume where I left off. The &lt;strong&gt;ability to resume was probably the single most useful time-saver&lt;/strong&gt; in the entire process.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2: match the song names with those on my list&lt;/strong&gt;. This is tricky. I hate doing it manually. So I developed a set of rules that could compare two spellings of a movie and decide if they were the same or not (see my earlier post on &lt;a href=&#34;https://www.s-anand.net/blog/matching-misspelt-tamil-movie-names/&#34;&gt;matching misspelt movie names&lt;/a&gt;). For Hindi songs and movies, here are my rules (in JavaScript):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;toUpperCase&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// Convert to upper case
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sr&#34;&gt;/\s+/&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// All whitespaces = 1 space
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// Ensure there&amp;#39;s a space after every word
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sr&#34;&gt;/W/g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;V&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// V=W
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sr&#34;&gt;/Z/g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;J&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// Z=J
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sr&#34;&gt;/PH/g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;F&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// PH=F
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sr&#34;&gt;/([KGCJTDPBS])H/g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;$1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// Ignore H after most consonants
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sr&#34;&gt;/(.)\1/g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;$1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// Ignore repeated letters
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sr&#34;&gt;/Y/g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// Ignore Y
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sr&#34;&gt;/([AEIOU])N /g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;$1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// Ignore trailing N after vowel (hein, mein)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sr&#34;&gt;/[AEIOU]/g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// Ignore vowels
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;replace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sr&#34;&gt;/ /g&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;// Ignore spaces
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;These are the rules, incidentally, that I use in my &lt;a href=&#34;https://www.s-anand.net/blog/hindi-songs-1995s/&#34;&gt;Hindi&lt;/a&gt; &lt;a href=&#34;https://www.s-anand.net/blog/hindi-songs-2000s/&#34;&gt;quizzes&lt;/a&gt;. Even if you type in a different spelling, the rules above will match the correct answer.&lt;/p&gt;
&lt;p&gt;I extended these programs over 2006 to cover &lt;a href=&#34;http://www.musicindiaonline.com/&#34;&gt;MusicIndiaOnline&lt;/a&gt;, &lt;a href=&#34;http://musicplug.in&#34;&gt;Musicplug.in&lt;/a&gt; and &lt;a href=&#34;http://ww.smashits.com&#34;&gt;Smashits&lt;/a&gt;. (I&amp;rsquo;ve hit a point of diminishing returns, I think, so I&amp;rsquo;m not too keen on expanding this list.)&lt;/p&gt;
&lt;p&gt;Now, with a database of song information, I needed a good media player to view this in. I&amp;rsquo;ve used several media players over time: &lt;a href=&#34;http://www.winamp.com/&#34;&gt;WinAmp&lt;/a&gt;, &lt;a href=&#34;http://www.microsoft.com/windows/windowsmedia/&#34;&gt;Windows Media Player&lt;/a&gt;, &lt;a href=&#34;http://www.real.com/player&#34;&gt;RealPlayer&lt;/a&gt;, &lt;a href=&#34;http://www.apple.com/itunes/&#34;&gt;iTunes&lt;/a&gt;, and &lt;a href=&#34;http://www.mediamonkey.com/&#34;&gt;MediaMonkey&lt;/a&gt;. I&amp;rsquo;m a big WinAmp fan, but I&amp;rsquo;ve been forced to Media Monkey now. WinAmp has a 10 second delay before playing any song on my &lt;a href=&#34;https://www.s-anand.net/blog/software-for-my-new-laptop/&#34;&gt;new laptop&lt;/a&gt;. MediaMonkey&amp;rsquo;s not bad, though. The lack of advanced filters is countered by the heavy programmability (I can use Javascript to update MP3 ID3 tags on MediaMonkey). Plus, I get all the WinAmp plugins. As for the other media players, I think they&amp;rsquo;re junk.&lt;/p&gt;
&lt;p&gt;There are five things I want in a perfect media player:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Find as I type&lt;/strong&gt;. I shouldn&amp;rsquo;t have to type the entire song, or press a &amp;ldquo;Go&amp;rdquo; button. I&amp;rsquo;ll just type. It should show all matches instantly. WinAmp does this, and that&amp;rsquo;s why I loved it. (Today, most media players can do this.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Advanced filters&lt;/strong&gt;. Instead of manually creating playlists, I&amp;rsquo;d rather create filters, like &amp;ldquo;Highly rated songs in the 2000s I haven&amp;rsquo;t heard recently&amp;rdquo;. (See &lt;a href=&#34;https://www.s-anand.net/blog/how-i-listen-to-music/&#34;&gt;How I listen to music&lt;/a&gt;.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enqueable playlists&lt;/strong&gt;. When I click on a song, I don&amp;rsquo;t want my current song to be interrupted. Just play it next.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Global hotkeys&lt;/strong&gt;. I want to pause the song when someone says something &amp;ndash; without having to go to the application, search for the pause button, etc. WinAmp does this brilliantly with its global hotkeys.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Online and offline integration&lt;/strong&gt;. I want to be able to search online collections, like Raaga. Unfortunately none of the media players can do this. They have their own collections (radio stations, really), but even these aren&amp;rsquo;t really searchable.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Since my favourite media players (WinAmp and MediaMonkey) lack only one of these features, I thought I might be able to build them in.&lt;/p&gt;
&lt;p&gt;But no such luck. It was almost easier to build my own media player. So I started to build my two weeks ago. My hope was to cover as many of my favourite requirements, beginning with &lt;strong&gt;find as you type&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The key to find-as-you-type is speed. You can&amp;rsquo;t afford many calls back and forth between the browser and the server. Even if people have a fast connection, my server is not fast enough. (A good part of the reason &lt;a href=&#34;https://www.s-anand.net/blog/why-google-reader/&#34;&gt;why I use Google applications&lt;/a&gt; is &lt;strong&gt;speed&lt;/strong&gt;. Google&amp;rsquo;s server is blazingly fast, and the design of their applications complements that.) To make find-as-you-type fast, ideally the entire database should be loaded. Then, as you type, I just need to check with the database in memory. But downloading an entire database takes ages! (My full music database is 7MB right now.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3: compress the database&lt;/strong&gt;. Rathern than load the full 4MB, I managed to get the page to start after loading 100KB of data. First, I cut down less important fields. Most searches are for a song or movie, rarely for a year or music director. So I took &lt;strong&gt;only the movie and song names&lt;/strong&gt;. That brought the data down to ~2MB.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t need to repeat the movie name across songs. If I have something like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Movie1  Song1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Movie1  Song2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Movie1  Song3
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Movie2  Song1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Movie2  Song2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I can store this instead as:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Movie1  Song1   Song2   Song3
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Movie2  Song1   Song2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I can also eliminate duplicate names. This brings down the space requirements to ~500KB.&lt;/p&gt;
&lt;p&gt;The next step was the clever one. &lt;strong&gt;I don&amp;rsquo;t need to load the full database before you start searching!&lt;/strong&gt; It&amp;rsquo;s enough to load a reasonable subset, and let you start searching while the rest loads in the background. So my &lt;a href=&#34;https://www.s-anand.net/blog/hindi&#34;&gt;hindi song search engine&lt;/a&gt; loads about 100KB of the data from one Javascript file, lets you search, and in the background loads the 400KB Javascript file. As soon as that finishes loading, it displays results from that set as well. (The initial portion is really songs on Raaga. I figured it would represent a decent search set.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 4: find-as-you-type&lt;/strong&gt;. This is quite easy, actually. I send the onkeyup event to my search function.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;input&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;id&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;inp&amp;#34;&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;onkeyup&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;csearch()&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The csearch() function goes through all the songs, checks if there&amp;rsquo;s a match, and prints all those results.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Create a case-insensitive regular expression
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;re&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;RegExp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;search&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;i&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;songs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;re&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;test&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;songs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;str&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;songs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;innerHTML&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;str&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;But that, unfortunately, takes &lt;strong&gt;ages&lt;/strong&gt; to finish. If you implemented this as is, you would have to wait 1 - 1.5 seconds between each key stroke. So I made two modifications. Firstly, I restrict the number of results displayed to 100. When you start typing, (for example, you&amp;rsquo;d go &amp;lsquo;c&amp;rsquo;&amp;hellip; &amp;lsquo;ch&amp;rsquo;&amp;hellip; &amp;lsquo;chu&amp;rsquo;&amp;hellip;) there are several songs early on that match the string, so I don&amp;rsquo;t have to search through the whole list. This speeds up the search for small strings.&lt;/p&gt;
&lt;p&gt;When the search gets bigger, (&amp;lsquo;chupke chu&amp;rsquo;&amp;hellip; &amp;lsquo;chupke chupk&amp;rsquo;&amp;hellip;), there aren&amp;rsquo;t 100 results. So the search has to cover the full list, and that takes 1-1.5 seconds between each keystroke. So I took another clever step. I broke the search into chunks of 5000 songs. That takes a fraction of a second. I search successive chunks of 5000 songs. If I find any results, I add them. Then I wait for a keystroke. If nothing happens, I continue searching the next 5000 after 50 milliseconds, and so on. If you press a key in the meantime, I stop searching for the original word, and start searching for the new word. This makes the application appear a lot faster.&lt;/p&gt;
&lt;p&gt;There are ways I could make this even faster. For example, people type more often than delete. A typical sequence would be (&amp;lsquo;chupke ch&amp;rsquo;&amp;hellip; &amp;lsquo;chupke chu&amp;rsquo;&amp;hellip; &amp;lsquo;chupke chupk&amp;rsquo;&amp;hellip;) rather than the reverse. Backspace is not pressed very often. So, instead of re-searching the whole list, I could just search the already-searched list in such cases. But right now, the search works fast enough, so I&amp;rsquo;ll leave it at that.&lt;/p&gt;
&lt;p&gt;The next step is &lt;strong&gt;advanced filters&lt;/strong&gt;. I&amp;rsquo;m working on that right now. Hopefully you&amp;rsquo;ll see in a while.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;reshma&lt;/strong&gt; &lt;em&gt;21 Feb 2007 9:46 am&lt;/em&gt;:
your search tool is awesome !&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;sarangan&lt;/strong&gt; &lt;em&gt;21 Feb 2007 9:18 pm&lt;/em&gt;:
anand - can you illuminate the technique you used to consolidate the names of tracks in one list and the dynamic search based on combination of letters ?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;gagan&lt;/strong&gt; &lt;em&gt;21 Feb 2007 10:42 pm&lt;/em&gt;:
god level tool man! awesome!! please do elaborate on the methodology followed to make the tool. thanks :)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;22 Feb 2007 2:22 pm&lt;/em&gt;:
Sure. Will post the details soon.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sai&lt;/strong&gt; &lt;em&gt;23 Feb 2007 4:27 am&lt;/em&gt;:
Well, now that you&amp;rsquo;ve posted this list, you should become the next raaga and allow songs to be heard!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;23 Feb 2007 7:38 am&lt;/em&gt;:
You can do that even now &amp;ndash; just click on the song :-)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;jake&lt;/strong&gt; &lt;em&gt;23 Feb 2007 9:17 am&lt;/em&gt;:
dude your tool is good.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Saurabh&lt;/strong&gt; &lt;em&gt;23 Feb 2007 2:21 pm&lt;/em&gt;:
Brilliant! Sheer genius!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sai&lt;/strong&gt; &lt;em&gt;23 Feb 2007 4:45 pm&lt;/em&gt;:
Yup i just realized!! Mighty impressive bud!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sriram&lt;/strong&gt; &lt;em&gt;23 Feb 2007 11:45 pm&lt;/em&gt;:
thamizh sevai..&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;shane&lt;/strong&gt; &lt;em&gt;24 Feb 2007 11:34 am&lt;/em&gt;:
i love you&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Karthik A&lt;/strong&gt; &lt;em&gt;25 Feb 2007 2:04 am&lt;/em&gt;:
This is awesome man. 2 days I have seen this I dont go to Music India or Raaga. This is neat, but how are you going to keep it updated?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Raga&lt;/strong&gt; &lt;em&gt;25 Feb 2007 6:24 am&lt;/em&gt;:
dude, is it possible to download songs like ilayaraja&amp;rsquo;s how to name it?.. please tell how&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;25 Feb 2007 8:59 am&lt;/em&gt;:
Hi Karthik, updating is not an issue. I have an automated script that checks for updates and downloads the info. Takes 10 minutes. I&amp;rsquo;ll run it every two weeks or so.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;25 Feb 2007 9:00 am&lt;/em&gt;:
Raga, try TamilTorrents.net &amp;ndash; they have the full How To Name It collection.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ramkumar R&lt;/strong&gt; &lt;em&gt;25 Feb 2007 9:08 am&lt;/em&gt;:
Awesome tool! Really appreciate the effort.. Just a suggestion.. CoolToad has a huge tamil/hindi collection as well.. Any possibility of indexing that as well?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Raga&lt;/strong&gt; &lt;em&gt;25 Feb 2007 10:50 am&lt;/em&gt;:
Thanks anand&amp;hellip; i couldnt find the songs there. there is no searching tool there.. please post any other place where i can find them.. thanks once again&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;25 Feb 2007 11:45 am&lt;/em&gt;:
Ramkumar, cooltoad is next on my list.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Raga&lt;/strong&gt; &lt;em&gt;25 Feb 2007 2:04 pm&lt;/em&gt;:
One more thing anand, there are many very good BGm tracks by ilayaraja.. is it possible to add them ? rhanks&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;25 Feb 2007 2:08 pm&lt;/em&gt;:
Raga, you&amp;rsquo;re right &amp;ndash; I couldn&amp;rsquo;t find it on TamilTorrents any more. I have a bunch. Mail me at root dot node at gmail dot com. And where can I find links to the background music collection? Would love to add them&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ravi&lt;/strong&gt; &lt;em&gt;25 Feb 2007 2:49 pm&lt;/em&gt;:
thanks for the useful tool. you rock!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Karthikeyan&lt;/strong&gt; &lt;em&gt;25 Feb 2007 6:04 pm&lt;/em&gt;:
Well done Anand! The tool is amazing!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Karthikeyan&lt;/strong&gt; &lt;em&gt;25 Feb 2007 8:11 pm&lt;/em&gt;:
See my blog! I have published an article about this&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Divya&lt;/strong&gt; &lt;em&gt;25 Feb 2007 8:55 pm&lt;/em&gt;:
aaamazing!!!!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Divya&lt;/strong&gt; &lt;em&gt;25 Feb 2007 9:00 pm&lt;/em&gt;:
bookmarked.. added to favourites.. everything :)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Divya&lt;/strong&gt; &lt;em&gt;25 Feb 2007 9:01 pm&lt;/em&gt;:
i love the part where the results start appearing even before u finish typing.. like the google toolbar search&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;senthil k&lt;/strong&gt; &lt;em&gt;25 Feb 2007 9:49 pm&lt;/em&gt;:
nice one&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Meenakshi Sundaram&lt;/strong&gt; &lt;em&gt;25 Feb 2007 10:32 pm&lt;/em&gt;:
Anand, You have a amazing job man. Keep it up.This would help many tamil music lovers and save their time on searching. I am really greatfull to you for the effort and time you have put.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;johan paris&lt;/strong&gt; &lt;em&gt;25 Feb 2007 10:58 pm&lt;/em&gt;:
fantastic job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Prasanna&lt;/strong&gt; &lt;em&gt;25 Feb 2007 11:02 pm&lt;/em&gt;:
This is amazing. Well done!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Thiagu&lt;/strong&gt; &lt;em&gt;25 Feb 2007 11:59 pm&lt;/em&gt;:
really good tool Anand. Thanks for the same. I am not able to download any songs. rightclick and &amp;ldquo;save target as&amp;rdquo; is saving the html page. Could you provide your suggestion&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SP.VR.Subbiah&lt;/strong&gt; &lt;em&gt;26 Feb 2007 1:27 am&lt;/em&gt;:
I appreciate your marvelous work Many songs in tamil are available in &lt;a href=&#34;https://www.musicplug.in&#34;&gt;www.musicplug.in&lt;/a&gt; Site. Please provide your links also to that site&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;keshav bhat&lt;/strong&gt; &lt;em&gt;26 Feb 2007 3:10 am&lt;/em&gt;:
Fantastic! I&amp;rsquo;m not certain how you found time for this, but the results are truly fantastic! keep up the great work&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Radha&lt;/strong&gt; &lt;em&gt;26 Feb 2007 4:03 am&lt;/em&gt;:
Thanks so much. You are genius.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Jala&lt;/strong&gt; &lt;em&gt;26 Feb 2007 4:50 am&lt;/em&gt;:
Really cool&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;sundararajan&lt;/strong&gt; &lt;em&gt;26 Feb 2007 5:26 am&lt;/em&gt;:
Anand fantastic buddy&amp;hellip;beautiful&amp;hellip;..&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;sundar&lt;/strong&gt; &lt;em&gt;26 Feb 2007 5:27 am&lt;/em&gt;:
Anand simply superb..GR888&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;naveen&lt;/strong&gt; &lt;em&gt;26 Feb 2007 5:37 am&lt;/em&gt;:
nice tool&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;usha&lt;/strong&gt; &lt;em&gt;26 Feb 2007 5:45 am&lt;/em&gt;:
a very good job anand, came thro karthiks blog. i have been trying for a long time to download the song thendral vanthu theedum pothu from avatharam. though i couldnt download i was happy to hear the song here. thanks&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;sathik&lt;/strong&gt; &lt;em&gt;26 Feb 2007 6:24 am&lt;/em&gt;:
coll saite&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Rakesh&lt;/strong&gt; &lt;em&gt;26 Feb 2007 6:53 am&lt;/em&gt;:
Its wonderful .. and ultra fast .. Thanks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Priya&lt;/strong&gt; &lt;em&gt;26 Feb 2007 10:10 am&lt;/em&gt;:
nice site enjoyed a lot thanks&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Gops&lt;/strong&gt; &lt;em&gt;26 Feb 2007 11:50 am&lt;/em&gt;:
wonderful stuff from u Anand..really a nice one.. i&amp;rsquo;ve been searching songs from Thalaivasal Album all these days&amp;hellip; wow finally&amp;hellip;. thanks a lot&amp;hellip;..&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kaps&lt;/strong&gt; &lt;em&gt;26 Feb 2007 2:43 pm&lt;/em&gt;:
Anand, This is a great tool. Thanks for all the effort. Can you also include Tamilbeat and Thenisai into this?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Chakra&lt;/strong&gt; &lt;em&gt;26 Feb 2007 3:05 pm&lt;/em&gt;:
Brilliant stuff Anand. Thank you.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kaps&lt;/strong&gt; &lt;em&gt;26 Feb 2007 3:08 pm&lt;/em&gt;:
Anand, Understand your time constraints. Just wanted to give some hint about the ways to strengthen this tool. IMHO, Music Director - good to have (not essential). Year - doesn&amp;rsquo;t matter that much to music fans (low priority). The percentage of people wanting to know the year would definitely be low.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;26 Feb 2007 3:53 pm&lt;/em&gt;:
Thanks, Kaps. It&amp;rsquo;s exactly this sort of prioritisation help that I need. Will try and pull in these additional databases.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cosmic Voices&lt;/strong&gt; &lt;em&gt;26 Feb 2007 3:53 pm&lt;/em&gt;:
Truly amazing!!!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Rajagopalan&lt;/strong&gt; &lt;em&gt;26 Feb 2007 4:27 pm&lt;/em&gt;:
Hi Anandavi Kannnadasan,s songs are available in Tamilnation website Why don&amp;rsquo;t u combine this in the Tamil songs script. V.Rajagopalan Chennai&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Syam&lt;/strong&gt; &lt;em&gt;26 Feb 2007 5:59 pm&lt;/em&gt;:
Awesome search engine dude&amp;hellip;.Thanks bunch&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;thetalkativeman&lt;/strong&gt; &lt;em&gt;26 Feb 2007 7:08 pm&lt;/em&gt;:
Anand, hats off to you. This is fantastic :) I&amp;rsquo;ve been using these sites for 5 years on a daily basis and your tool means a lot to me :-)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;kittu&lt;/strong&gt; &lt;em&gt;26 Feb 2007 8:37 pm&lt;/em&gt;:
nice work anand. key change search is great. GR8 work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;kittu&lt;/strong&gt; &lt;em&gt;26 Feb 2007 8:43 pm&lt;/em&gt;:
you are going to rock the music world maamu :-)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;madhu&lt;/strong&gt; &lt;em&gt;27 Feb 2007 1:15 am&lt;/em&gt;:
that is cool. thanks&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kaps&lt;/strong&gt; &lt;em&gt;27 Feb 2007 2:55 am&lt;/em&gt;:
Anand, You are right, the collection in Thenisai and Tamilbeat are not all that impressive. Most of them are recent collections and they would have been covered by Raaga and Music India anyway.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Adiya&lt;/strong&gt; &lt;em&gt;27 Feb 2007 5:29 am&lt;/em&gt;:
Super .romba nalla eruku.. super super&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mugunth&lt;/strong&gt; &lt;em&gt;27 Feb 2007 6:46 am&lt;/em&gt;:
Hi Anand, Wonderful service. I have blogged about this here: &lt;a href=&#34;http://mugunth.blogspot.com/2007/02/tamil-song-search.html&#34;&gt;http://mugunth.blogspot.com/2007/02/tamil-song-search.html&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;27 Feb 2007 7:03 am&lt;/em&gt;:
Thanks, everyone! Enjoy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;deekshanya&lt;/strong&gt; &lt;em&gt;27 Feb 2007 10:40 am&lt;/em&gt;:
Your effort needs true appreciation! Good job! Hatsoff for all the hardwork&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Gopinath Selvaraj&lt;/strong&gt; &lt;em&gt;27 Feb 2007 11:47 am&lt;/em&gt;:
This is the first ever search engine that gave me immediate results for songs like &amp;lsquo;Aayar paadi maaligayil&amp;rsquo; and &amp;lsquo;meenkodi theryil&amp;rsquo;&amp;hellip; Its a google for Tamil and Hindi Music. Thanks a lot for your hard work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Viren Manek&lt;/strong&gt; &lt;em&gt;27 Feb 2007 1:00 pm&lt;/em&gt;:
I liked this search very much. Its fantastic&amp;hellip;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Viren Manek&lt;/strong&gt; &lt;em&gt;27 Feb 2007 1:04 pm&lt;/em&gt;:
Why dont u keep the hit counter on ur site, u will get lots of hit&amp;hellip;. :). People will like to bookmark this URL for any song to listen.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Jaganath&lt;/strong&gt; &lt;em&gt;27 Feb 2007 4:35 pm&lt;/em&gt;:
Unbeleivable Performance of the Search Functionality. Cool Site dude!&amp;hellip;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Raamcm&lt;/strong&gt; &lt;em&gt;27 Feb 2007 4:40 pm&lt;/em&gt;:
You did great job man&amp;hellip;. Thanks&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ரவி&lt;/strong&gt; &lt;em&gt;27 Feb 2007 7:03 pm&lt;/em&gt;:
chanceless tool !!!! thank u so much..i was fed up clicking link after links in raaga, musicindia etc..please give more tools like this for the needs of tamils, indians. நன்றி&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kapil&lt;/strong&gt; &lt;em&gt;27 Feb 2007 10:12 pm&lt;/em&gt;:
Anand, AWESOME Tool ! I found songs that I never thought I&amp;rsquo;d find. However, most of the links were not working. A few took me to either raaga or musicplug but there were more that gave an error message saying the link on sanand.freehostia.com is not working&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Prabha&lt;/strong&gt; &lt;em&gt;28 Feb 2007 1:39 am&lt;/em&gt;:
Great piece of work, Anand. I always wanted to have such a tool for Tamil music. In fact, i started to write something similar, more of a user contribution kind of thing, similar to IMDB. Displaying other Meta tags (artist, movie, year, director) would be really useful here. I appreciate your work!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Saurabh&lt;/strong&gt; &lt;em&gt;28 Feb 2007 6:32 am&lt;/em&gt;:
Addition of playlist by Music Directors is awesome!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;cr.sathish&lt;/strong&gt; &lt;em&gt;28 Feb 2007 5:28 pm&lt;/em&gt;:
Dear anand, its really kool and kudos to you for making this up.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;madhan&lt;/strong&gt; &lt;em&gt;28 Feb 2007 6:57 pm&lt;/em&gt;:
u r rocking&amp;hellip;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;reshma&lt;/strong&gt; &lt;em&gt;28 Feb 2007 8:32 pm&lt;/em&gt;:
anand, would it be too much to ask for multiple selections against a list of songs?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;RPanda&lt;/strong&gt; &lt;em&gt;28 Feb 2007 8:42 pm&lt;/em&gt;:
Hi Anand, it&amp;rsquo;s a very neat site with great feature. Really appreciate your efforts!!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;28 Feb 2007 9:19 pm&lt;/em&gt;:
Reshma, what do you mean by multiple selections?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Maya&lt;/strong&gt; &lt;em&gt;28 Feb 2007 9:52 pm&lt;/em&gt;:
Great job ..&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;buspass&lt;/strong&gt; &lt;em&gt;1 Mar 2007 1:13 am&lt;/em&gt;:
cool work man. AJAX rocks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Vinay&lt;/strong&gt; &lt;em&gt;1 Mar 2007 2:57 pm&lt;/em&gt;:
Excellent.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sriram&lt;/strong&gt; &lt;em&gt;1 Mar 2007 7:14 pm&lt;/em&gt;:
Great Tool!! Awesome Job!!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Supremus&lt;/strong&gt; &lt;em&gt;1 Mar 2007 10:06 pm&lt;/em&gt;:
Awesome job dude!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;reshma&lt;/strong&gt; &lt;em&gt;1 Mar 2007 10:26 pm&lt;/em&gt;:
right now i click on a single song, hear it, and come back here to click on another. It would help if I could select more than one song at a time - so that those songs could play one after the other without my intervention.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;1 Mar 2007 10:55 pm&lt;/em&gt;:
Reshma, continuous playback is what I want next as well. It&amp;rsquo;s very difficult, though. Don&amp;rsquo;t know if I&amp;rsquo;ll be able to do it. Will try.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;maniprakash&lt;/strong&gt; &lt;em&gt;2 Mar 2007 2:55 am&lt;/em&gt;:
Good work man,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;aman&lt;/strong&gt; &lt;em&gt;2 Mar 2007 3:00 am&lt;/em&gt;:
pretty cool man&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;aman&lt;/strong&gt; &lt;em&gt;2 Mar 2007 3:01 am&lt;/em&gt;:
y not create a request play&amp;hellip; like a playlist created by everyone&amp;hellip; which everyone can hear&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;BHARANI&lt;/strong&gt; &lt;em&gt;2 Mar 2007 7:39 am&lt;/em&gt;:
This looks brilliant. Good Concept and congrats.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Anonymous&lt;/strong&gt; &lt;em&gt;3 Mar 2007 9:57 am&lt;/em&gt;:
unfin!!!finally u got it man!!!!really super work! mercy&amp;hellip;add more top 20 in all language tamil,english hindi&amp;hellip;mercy&amp;hellip;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;nagu&lt;/strong&gt; &lt;em&gt;3 Mar 2007 12:43 pm&lt;/em&gt;:
அருமையான படைப்புங்க&amp;hellip;.ரொம்ப நன்றிங்க&amp;hellip;.வெறும் நன்றிங்கறத விட நாலுபேருக்கு இத இன்ட்ரோ&amp;hellip; கொடுத்தாத்தான் கரெக்ட்டா இருக்கும் என்ன நாஞ்சொல்றது&amp;hellip;. சரிதானுங்களே?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;PK&lt;/strong&gt; &lt;em&gt;4 Mar 2007 6:16 am&lt;/em&gt;:
Good work dude&amp;hellip;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tejas&lt;/strong&gt; &lt;em&gt;4 Mar 2007 7:29 pm&lt;/em&gt;:
I salute your creative/techi mind.Thats AJAX right ?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;shema&lt;/strong&gt; &lt;em&gt;5 Mar 2007 12:08 pm&lt;/em&gt;:
Few suggestions of movies to add to your playlist. Vennira Aadai (Enna enna vaarthaigalo), Kunguman (Chinnanj chiriya Vanna paravai), Paadhai theriyudhu paar (Thennangeetru oonjalile) I&amp;rsquo;ve searched for these songs in the net and have failed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;shema&lt;/strong&gt; &lt;em&gt;5 Mar 2007 12:10 pm&lt;/em&gt;:
Excellent work. I see the desi Indian instincts being very strong in you. Did this work take a vigorous shape after Shilpa&amp;rsquo;s issue?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;5 Mar 2007 1:16 pm&lt;/em&gt;:
Hema chithi, the songs are already there. Just type Vennira Aadai ~ Enna Enna Varthaigal, Kumkumam ~ Chinnanchiriya and Pathai Theriyudhu Paar ~ Thennan Keethu Onjalile. Who is Shilpa?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;indu&lt;/strong&gt; &lt;em&gt;5 Mar 2007 4:47 pm&lt;/em&gt;:
hi anand, cool site&amp;hellip; you should add a hits counter, you could rake some big bucks with ads if this link gets popular..&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;தமிழ்பித்தன&lt;/strong&gt; &lt;em&gt;6 Mar 2007 2:15 am&lt;/em&gt;:
உண்மையில் உங்கள் முயற்சி என்னை மெய்சிலிர்கக வைக்கிறது உங்கள் தயவால்விரும்பிய பாடலை நின்ற இடத்திலிருந்து கேட்க முடிகிறது கொசுறு:-இன்னும் வேறு தளங்களையும் இணைக்க இயன்றளவு முயலுங்கள்&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Anonymous&lt;/strong&gt; &lt;em&gt;6 Mar 2007 5:05 am&lt;/em&gt;:
கலக்கல் சாமீ ஆனந்த் அருமையான உழைப்பு வாழ்த்துகள&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;रवि&lt;/strong&gt; &lt;em&gt;6 Mar 2007 6:43 am&lt;/em&gt;:
बहुत उम्दा प्रयास और सराहनीय कार्य. हमारी शुभकामनाएँ.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Debashish&lt;/strong&gt; &lt;em&gt;6 Mar 2007 9:00 am&lt;/em&gt;:
Splendid work guys :)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sagar Jain&lt;/strong&gt; &lt;em&gt;6 Mar 2007 9:38 am&lt;/em&gt;:
Good work, keep it up :)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;shema&lt;/strong&gt; &lt;em&gt;6 Mar 2007 11:32 am&lt;/em&gt;:
Shilpa Shetty. The actress who stood up against racial discrimination.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;shema&lt;/strong&gt; &lt;em&gt;6 Mar 2007 12:15 pm&lt;/em&gt;:
I could hear thennangeetru&amp;hellip;&amp;hellip;. but unable to listen to chinnannchiriya vanna paravai. Help me with other search words. Also the song chinna chinna mookuthiyaam from the same movie paadhai theriyudhu paar&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;sri&lt;/strong&gt; &lt;em&gt;6 Mar 2007 6:08 pm&lt;/em&gt;:
you have done agreat job man&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;srk&lt;/strong&gt; &lt;em&gt;7 Mar 2007 9:10 am&lt;/em&gt;:
Anand, there is a good collection of songs on dhingana.com , specially marathi, can you index those as well ?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ravi&lt;/strong&gt; &lt;em&gt;8 Mar 2007 6:30 pm&lt;/em&gt;:
hi anand, is there any chance of making this as a toolbar which can be downloaded in to IE or Mozilla?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ram&lt;/strong&gt; &lt;em&gt;8 Mar 2007 10:05 pm&lt;/em&gt;:
hey man..gr8..keep going&amp;hellip;it wud be best if u can giv downloads too&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Subhash&lt;/strong&gt; &lt;em&gt;10 Mar 2007 3:47 pm&lt;/em&gt;:
Anand Bhai You should be no.1 on &amp;ldquo;The Google&amp;rdquo; list. You are the best.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Hamish&lt;/strong&gt; &lt;em&gt;10 Mar 2007 4:16 pm&lt;/em&gt;:
man thanx for ths great site.it helps really.keep it up.kudo&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ashish Ranpara&lt;/strong&gt; &lt;em&gt;11 Mar 2007 10:17 am&lt;/em&gt;:
plz keep going and get more and more old songs you have a really good old hindi songs i really glad for that thanks&amp;hellip;&amp;hellip;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sriram&lt;/strong&gt; &lt;em&gt;11 Mar 2007 4:10 pm&lt;/em&gt;:
ur tool is just awesome!!!!!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Saravanan&lt;/strong&gt; &lt;em&gt;11 Mar 2007 7:04 pm&lt;/em&gt;:
Dear Friends, I am a big fan of tamil comedy dramas by Shekar and Crazy Mohan and talk show by Leoni. Is there anyway I use this tool to find the availabile mp3s on that?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sanketh&lt;/strong&gt; &lt;em&gt;12 Mar 2007 8:11 am&lt;/em&gt;:
Man, this is a truly cool tool &amp;hellip; Can you do the same thing for Tamil/Telugu songs? Tell me something - does Raaga etc show information about how long the song is? I can think of a really cool tool if raaga does maintain that info.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;12 Mar 2007 8:44 am&lt;/em&gt;:
Sanketh, none of the sites show the song length, unfortunately. But if we could get it, what could we do?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mano&lt;/strong&gt; &lt;em&gt;12 Mar 2007 3:11 pm&lt;/em&gt;:
great work Anand !!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sanketh&lt;/strong&gt; &lt;em&gt;12 Mar 2007 6:56 pm&lt;/em&gt;:
We could create an online playlist of songs, drag and drop songs from your search to a frame on the right. To play we just load the link in a hidden iframe (or a frame at the bottom). The problem is we wouldn&amp;rsquo;t know when each song is done to switch to the next song.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Anonymous&lt;/strong&gt; &lt;em&gt;12 Mar 2007 8:17 pm&lt;/em&gt;:
This is amazing Anand .. I wish there was one for Telugu/Tamil songs as well.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;13 Mar 2007 12:21 am&lt;/em&gt;:
Sanketh, good point. I haven&amp;rsquo;t given up hope on that, though. May still be possible. Let&amp;rsquo;s see&amp;hellip;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;vijay&lt;/strong&gt; &lt;em&gt;13 Mar 2007 6:25 am&lt;/em&gt;:
Great work anand&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Anotheranon&lt;/strong&gt; &lt;em&gt;13 Mar 2007 4:29 pm&lt;/em&gt;:
Anand ! Love ur work! I am looking for &amp;ldquo;Nee munnale pona naan pinnaale vaaren&amp;rdquo; REMIX from vaathiyaar. Any idea why not there ?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;13 Mar 2007 5:33 pm&lt;/em&gt;:
Search for &amp;ldquo;Yennadi Muniyamma&amp;rdquo;, and you&amp;rsquo;ll find the song.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mahendra&lt;/strong&gt; &lt;em&gt;13 Mar 2007 8:00 pm&lt;/em&gt;:
Ananda i want to know, can i download the songs that r being played after i click on them &amp;amp; when realone player window opens&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;13 Mar 2007 8:53 pm&lt;/em&gt;:
Not on this page, Mahendra. Go instead to s-anand.net/hindimp3 or s-anand.net/tamilmp3 to download songs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;rajvir&lt;/strong&gt; &lt;em&gt;14 Mar 2007 5:26 am&lt;/em&gt;:
i want to download the song..jeene ke ishaare&amp;hellip;but it &amp;rsquo;s not there in your content please help me&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;14 Mar 2007 6:03 am&lt;/em&gt;:
Rajvir, the song is there in the collection. When you tried it, for some reason, it was using only a fraction of the index. Just wait a few seconds for the full index to load (or reload the page), and you&amp;rsquo;ll have the song.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;mak&lt;/strong&gt; &lt;em&gt;14 Mar 2007 8:46 pm&lt;/em&gt;:
infact a good tool. but cudn&amp;rsquo;t find movie &amp;ldquo;begunaah qaidi&amp;rdquo;. neways thumbs up to u.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;sundar&lt;/strong&gt; &lt;em&gt;15 Mar 2007 1:39 pm&lt;/em&gt;:
Excellent work, Anand!!! Thank you very much&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;sundar&lt;/strong&gt; &lt;em&gt;15 Mar 2007 1:52 pm&lt;/em&gt;:
Anand, not sure if this is already on cards. It would be great if you can add more Carnatic/Tamizh isai songs to the database&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Raja.S&lt;/strong&gt; &lt;em&gt;16 Mar 2007 5:21 am&lt;/em&gt;:
Hey Anand, Excellent man.. I got rare songs I was looking for a long time. Thanks a ton. Love Raja&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sanketh&lt;/strong&gt; &lt;em&gt;16 Mar 2007 5:26 am&lt;/em&gt;:
Man, your search algo is pretty decent too. Was just searching for &amp;rsquo;elangaathu&amp;rsquo; and typed it as elankaa.. and it still showed the right song.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;16 Mar 2007 9:16 am&lt;/em&gt;:
Sundar, Carnatic music search is already live at s-anand.net/carnatic and I&amp;rsquo;m planning to add to the (currently somewhat sparse) collection.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kalpesh&lt;/strong&gt; &lt;em&gt;16 Mar 2007 11:49 pm&lt;/em&gt;:
I really liked the site &amp;amp; idea. I am not sure that I am being naive, is it possible for me to select multiple songs &amp;amp; play them one by one?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Smitha&lt;/strong&gt; &lt;em&gt;17 Mar 2007 2:20 pm&lt;/em&gt;:
Excellent site very cool.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;17 Mar 2007 3:46 pm&lt;/em&gt;:
Kalpesh, playing multiple songs is not possible right now. I&amp;rsquo;m trying. It&amp;rsquo;s difficult, though. Don&amp;rsquo;t know if I&amp;rsquo;ll be able to do it. Will keep trying.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;மதி&lt;/strong&gt; &lt;em&gt;17 Mar 2007 7:15 pm&lt;/em&gt;:
அண்ணன் என்னடா தம்பி என்னடா&amp;hellip;. பாடலைக் கேட்டேன் இதனை எப்படி தரவிறக்கம் செய்து கேட்பது எனத் தெரியவில்லை, அருமையான பாடலைத் தந்தமைக்கு மிக்க நன்றி&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;17 Mar 2007 8:30 pm&lt;/em&gt;:
Mathy, search for &amp;ldquo;Annan Ennada&amp;rdquo; at s-anand.net/tamilmp3&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Krishnamurthy&lt;/strong&gt; &lt;em&gt;18 Mar 2007 5:05 pm&lt;/em&gt;:
you worked very very hard make such a search tool, its really amazing keep well , keep doing good work&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sundar&lt;/strong&gt; &lt;em&gt;21 Mar 2007 3:26 am&lt;/em&gt;:
Anand, it would be great if we can have some site preferred over others (something like appearing on Top). Because as I observed oosai &amp;amp; Music-Plugin has got good sound quality over others. I also found my favorite carnatic songs in the carnatic page. Thanks again!!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Chirag Mehta&lt;/strong&gt; &lt;em&gt;21 Mar 2007 9:16 am&lt;/em&gt;:
Hey Anand , Really Good Site I liked it What was ur idea behind this Site development is the same which i was facing. Thanx for a ready made solution for me Added Link to ur Site as a post on my site &lt;a href=&#34;http://www.chiragmehta.info/chirag/2007/03/21/hindi-songs-online-search-engine/&#34;&gt;http://www.chiragmehta.info/chirag/2007/03/21/hindi-songs-online-search-engine/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;21 Mar 2007 11:37 am&lt;/em&gt;:
Sundar, how about this order: MusicPlug.in &amp;gt; Oosai &amp;gt; Musicindiaonline &amp;gt; Raaga &amp;gt; Smashits?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Shekhar&lt;/strong&gt; &lt;em&gt;22 Mar 2007 4:34 pm&lt;/em&gt;:
Good site. I am searching for koyil pura film song &amp;lsquo;vedam nee&amp;rsquo; n surfed the whole net without success. Please help&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;22 Mar 2007 5:15 pm&lt;/em&gt;:
Shekhar, search for &amp;ldquo;koyil pura&amp;rdquo; on s-anand.net/tamilmp3 and you&amp;rsquo;ll find Vedham nee&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Shekhar&lt;/strong&gt; &lt;em&gt;22 Mar 2007 8:05 pm&lt;/em&gt;:
Thanks Anand. I tried for almost an hour but could not able to download the song as it always says the network is busy&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;22 Mar 2007 8:10 pm&lt;/em&gt;:
Shekhar, I&amp;rsquo;m having some trouble at cooltoad as well. Usually, I wait a day and it&amp;rsquo;s fine.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Shekhar&lt;/strong&gt; &lt;em&gt;23 Mar 2007 6:28 pm&lt;/em&gt;:
Tried whole day but without luck. Any other option.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Aqua&lt;/strong&gt; &lt;em&gt;23 Mar 2007 6:49 pm&lt;/em&gt;:
aWesoME TOOL.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;sundar&lt;/strong&gt; &lt;em&gt;24 Mar 2007 7:39 am&lt;/em&gt;:
Anand, Thanks for considering my request. That order would be great.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Varun&lt;/strong&gt; &lt;em&gt;24 Mar 2007 10:50 pm&lt;/em&gt;:
Hi! Awesome search&amp;hellip;just like Winamp&amp;hellip;lot of effort put..good going!!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;shilpa&lt;/strong&gt; &lt;em&gt;25 Mar 2007 9:12 am&lt;/em&gt;:
hi! Congrats&amp;hellip;. amazing search. Could you add other regional songs to the list??&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;பாலச்சந்தர் முருகானந்தம்&lt;/strong&gt; &lt;em&gt;26 Mar 2007 8:51 am&lt;/em&gt;:
நல்ல கருவி&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Prasun&lt;/strong&gt; &lt;em&gt;28 Mar 2007 4:49 am&lt;/em&gt;:
I came here searching for music. Your tool is awesome. It would be nice if this were extended to playlist creation etc - I think it would probably be not very hard if all songs are from a single site. Oh, and I spent a couple of hours in your writings section!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Varun&lt;/strong&gt; &lt;em&gt;29 Mar 2007 11:14 am&lt;/em&gt;:
Great tool anand!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Seshan&lt;/strong&gt; &lt;em&gt;29 Mar 2007 11:59 am&lt;/em&gt;:
Anand, just happened to visit this page. Awesome. Couple of songs that I found it difficult to get were made so easy with your tool. (Sorgame endralum, solladi bharatha maatha to name a couple). Great work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Seshan&lt;/strong&gt; &lt;em&gt;29 Mar 2007 12:51 pm&lt;/em&gt;:
Anand - For carnatic songs, can&amp;rsquo;t the search be made on &amp;lsquo;ragam&amp;rsquo;. It would be cool to have it. Just a suggestion.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Roopa&lt;/strong&gt; &lt;em&gt;29 Mar 2007 4:21 pm&lt;/em&gt;:
Hi!!&amp;hellip;Superb job! Good going..&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Anonymous&lt;/strong&gt; &lt;em&gt;30 Mar 2007 8:54 am&lt;/em&gt;:
hai friends.. its not working&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Shekhar&lt;/strong&gt; &lt;em&gt;30 Mar 2007 9:46 am&lt;/em&gt;:
After continuous effort I managed to download koyil pura songs. Many thanks Anand for making my day. Keep up the great job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Vishal&lt;/strong&gt; &lt;em&gt;31 Mar 2007 1:51 pm&lt;/em&gt;:
Anand ,I have forgotten all other hindi song websites now.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Venkat&lt;/strong&gt; &lt;em&gt;2 Apr 2007 6:29 am&lt;/em&gt;:
Good keep it up I advocate open source can u think of simple tools for day to day money management and account management with banks&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kannan&lt;/strong&gt; &lt;em&gt;5 Apr 2007 9:56 am&lt;/em&gt;:
First of all good work !!! I keep referring to this whenever I have to get some movie names for songs. I personally have a 17Gig songs collection, I would like to know if you have encountered an API to change properties of a mp3 file like title, album title etc. programmatically (preferably in Java or Groovy or Ruby or Perl) ???&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;abbas&lt;/strong&gt; &lt;em&gt;8 Apr 2007 11:16 am&lt;/em&gt;:
good job man,thanks alot.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Anu&lt;/strong&gt; &lt;em&gt;9 Apr 2007 12:24 am&lt;/em&gt;:
Hi Anand&amp;hellip;this is really a great job&amp;hellip;i need a help&amp;hellip;i find that tamil and hindi songs are available at your site for download&amp;hellip;Can you please help me out with the carnatic songs too&amp;hellip;.for now it would be great if i have &amp;lsquo;Sachmara ramavani&amp;rsquo; atleast&amp;hellip;.i have been trying to get this song for such a long time&amp;hellip;thanks so much for the great work!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Viju&lt;/strong&gt; &lt;em&gt;10 Apr 2007 6:48 am&lt;/em&gt;:
Interesting work. Is there a similar serach tool for carnatic/hindi radio? There is a similar search site for lyrics&amp;hellip;at lyricsdir.com.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ramkrishna&lt;/strong&gt; &lt;em&gt;11 Apr 2007 4:09 am&lt;/em&gt;:
hindi song&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ramkrishna&lt;/strong&gt; &lt;em&gt;11 Apr 2007 4:11 am&lt;/em&gt;:
Kachche Dhaage&amp;rsquo;s songs&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Kavitha&lt;/strong&gt; &lt;em&gt;12 Apr 2007 2:51 am&lt;/em&gt;:
That was a wonderful tool Anand. I found it very useful&amp;hellip; :)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pradeep&lt;/strong&gt; &lt;em&gt;12 Apr 2007 3:29 am&lt;/em&gt;:
hello bro awesome work da. can u pls find me a song from Prem Qaidi - I live for u.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;jagannath&lt;/strong&gt; &lt;em&gt;13 Apr 2007 11:03 am&lt;/em&gt;:
awesome job, Anand could you also upload kannada. Will You&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Nainesh&lt;/strong&gt; &lt;em&gt;15 Apr 2007 12:25 am&lt;/em&gt;:
Superb, and fast i like the idea, Keep it up, i found it useful.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;sameer jain&lt;/strong&gt; &lt;em&gt;15 Apr 2007 4:56 am&lt;/em&gt;:
awesome anand but can please help me in finding one song from maine pyaar kiya ..its aate jaate i am not able to hear it ..please help .. but one thing is for sure ..u really did a gr8 job ..get this gud work going all the way up ..all the best&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Anonymous&lt;/strong&gt; &lt;em&gt;16 Apr 2007 6:20 am&lt;/em&gt;:
awesome job&amp;hellip;..&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Manikandan&lt;/strong&gt; &lt;em&gt;18 Apr 2007 10:59 am&lt;/em&gt;:
I guess there are some issues. Webpage is loaded with errors. Also, Why cant we have Punnagai Mannan Theme Music?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;animesh&lt;/strong&gt; &lt;em&gt;19 Apr 2007 8:38 am&lt;/em&gt;:
Hey Anand&amp;hellip;.u are genius&amp;hellip;great idea&amp;hellip;nicely implemented&amp;hellip;..all of us (i.e. people like me) are greatful to u for making this tool and letting us use it&amp;hellip;..one idea (if u have some free time) that u can try &amp;hellip;.let users create a playlist using ur site&amp;hellip;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Hemant B.&lt;/strong&gt; &lt;em&gt;20 Apr 2007 5:14 pm&lt;/em&gt;:
Thanks Annand you have created very useful site for music lovers. wish you best luck for your new creation.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;jitendrasharma&lt;/strong&gt; &lt;em&gt;22 Apr 2007 12:53 pm&lt;/em&gt;:
jitu&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;thuva&lt;/strong&gt; &lt;em&gt;22 Apr 2007 1:48 pm&lt;/em&gt;:
wow nice and great i will give you 90% for this website tthat tamil sitet downloading for free i love it and your the best fro my life ok then take care and good luck best of luck and great and great good site and 90% rating&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;your name&lt;/strong&gt; &lt;em&gt;27 Apr 2007 12:05 am&lt;/em&gt;:
awesome collection!!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SHAMIT&lt;/strong&gt; &lt;em&gt;27 Apr 2007 7:48 am&lt;/em&gt;:
Absolutely splendid job using: Perl, your brain and its ideas &amp;hellip; !! ;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SHAMIT&lt;/strong&gt; &lt;em&gt;27 Apr 2007 1:38 pm&lt;/em&gt;:
Can&amp;rsquo;t stop admiring! Killer App. Listening to Guide songs BRILLAINT !!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sabarish&lt;/strong&gt; &lt;em&gt;28 Apr 2007 4:10 pm&lt;/em&gt;:
Its absolutely wonderful&amp;hellip;..Really helpful for avid song listeners like me..the web application speaks for itself&amp;hellip;i dont need to add any more nice adjectives to it. great work dude..&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Deepak&lt;/strong&gt; &lt;em&gt;30 Apr 2007 8:46 am&lt;/em&gt;:
great job anand, really great collection&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Siva Chandran P&lt;/strong&gt; &lt;em&gt;3 May 2007 11:17 am&lt;/em&gt;:
Great Job&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;mahesh raghunathan&lt;/strong&gt; &lt;em&gt;4 May 2007 10:10 am&lt;/em&gt;:
really great da&amp;hellip; infact i was searchin for SRI RAGAVENDRA movie scorings for a long time.. got it frm ur site&amp;hellip; its really good&amp;hellip; keep going..&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Anonymous&lt;/strong&gt; &lt;em&gt;5 May 2007 3:50 am&lt;/em&gt;:
great job anand..searching a song is very easy now..hats off to u.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;k.Bharathi Kannan&lt;/strong&gt; &lt;em&gt;5 May 2007 5:34 am&lt;/em&gt;:
First of all, THANKS A LOT to you sir. Me too had disappointed in searching for many songs.But I dont know any sites to which i hav to search for songs. This is the first site which i came to know about, regarding cine songs. And this is really great work. Once again THANKS A LOT sir&amp;hellip;&amp;hellip;&amp;hellip;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;your name&lt;/strong&gt; &lt;em&gt;6 May 2007 4:16 pm&lt;/em&gt;:
Hi&amp;hellip;will you be making the carnatic songs too downloadable? am waiting for them&amp;hellip;..&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;avinash&lt;/strong&gt; &lt;em&gt;8 May 2007 6:44 pm&lt;/em&gt;:
great work anand.. its really very simple to listen songs over here. can u please include the songs from strings..the pakistani band. thanx for creation of such link&amp;hellip;keep goin&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;shivam&lt;/strong&gt; &lt;em&gt;12 May 2007 11:21 pm&lt;/em&gt;:
thank you so much yaar i am simply feeling so relaxed now. after searching for geeta dutt songs for six months i finally got them from your site. thank you so much and if there is anyway i can send songs to upload, do tell me.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;srinath&lt;/strong&gt; &lt;em&gt;13 May 2007 6:47 am&lt;/em&gt;:
hi dude mann u r search tool i awesome and its really so simpel to get us the required song. One suggestion to u buddy&amp;hellip;.how abt adding a playlist&amp;hellip;so tht ppl can add their list and den keep njoyin the music&amp;hellip;&amp;hellip;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;srikan&lt;/strong&gt; &lt;em&gt;15 May 2007 5:49 pm&lt;/em&gt;:
gud one. u can actually make it further responsive. do u use prototype?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Bala&lt;/strong&gt; &lt;em&gt;17 May 2007 8:38 am&lt;/em&gt;:
Your site is the single most impressive site i have seen.. Kudos &lt;a href=&#34;http://quietturbulence.blogspot.com&#34;&gt;http://quietturbulence.blogspot.com&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;sai kalyan&lt;/strong&gt; &lt;em&gt;17 May 2007 11:27 am&lt;/em&gt;:
excellent site man really great search tool&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;mohan&lt;/strong&gt; &lt;em&gt;18 May 2007 7:10 pm&lt;/em&gt;:
Nice job dube :)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;shashwat&lt;/strong&gt; &lt;em&gt;19 May 2007 12:05 pm&lt;/em&gt;:
Great job buddy !! Thanks a lot&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;InTeGeR&lt;/strong&gt; &lt;em&gt;20 May 2007 9:22 am&lt;/em&gt;:
Simply awesome&amp;hellip; You helped me get some old Ilayaraja gems. Thanks a lot. It has also climbed up in Google search&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ravi&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
Nice Job Anand! Excellent work!!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;thiru&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
song is good but how can i download plz give me the link thak for the song&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Paritosh Arya&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
Hi Anand, You really have done a lot of research while developing this search engine&amp;hellip;.really inspiring&amp;hellip;keep it up.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;venkat&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
Excellent job man.hats off to ur idea.One question is that cant we select multiple songs at a time and play the continously becos i think thats repeated song to play a single song.if we can do that pls tell me how to do that&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;rama ragbir&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
thanks for a great service . i am looking for a song of&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Jagadesh Kumar&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
Hi Anand This is a fantastic effort you have made and suceed to get this much big database. I was randomly searching for movie converter tools, to get information from the internet (like IMDb, Amazon Movie Databases) and come across your website. I really felt happy and you have done excellent job. If you have any idea how to get the movie information (title, cast, director, music etc etc) as well list of all songs (by singer). Thanks Jag&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;kannu71&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
really a nice piece of work, waiting for more&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sravya&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
Hello, We are not able to search the desired songs.You are not providing the search box.Sometimes the search box appears,sometimes not. We liked the website,but we want you to always provide the search box.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Dhimant Panchal&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
it is a nice program to find a song. but i have one problem. your program search the song but cannt play it. it sows an error message to contect the real network support center. you have any solution ? pls tell me. Thanks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;rahul kumar gupta&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
the site is so good but&amp;hellip; if i want select all song how?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;milton&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
What site give the fastest download in window media player? Please list this to me.Thanks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Rahul&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
Excellent. Excellent. Is it possible to download songs on iPod. I am not an expert in technology and hold basic knowledge but would appreciate if somebody can tell me if it is possible to download songs from this site on my iPod. Thanks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;parag&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
gr8 effort man, even i too a music freak. I hv collected thousands of songs in mp3 format, but same problem here too, how to maintain database, for few i generated playlist &amp;amp; put on my site:- &lt;a href=&#34;http://geocities.com/direct2parag/new/coolgoose/&#34;&gt;http://geocities.com/direct2parag/new/coolgoose/&lt;/a&gt; still i found it cumbersome. will u plz help me out to maintain a good database for the same&amp;hellip;.. solicit ur co-operation&amp;hellip;. Thanks. parag&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;priyanka&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
raaga&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;E.Srinivasarao&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
E X C E L L E N T&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ASHOK&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
your job is ecellent can you upload the tamil karoake also? ashok&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;sen&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
u have done a commendable job - &amp;lsquo;anand&amp;rsquo; a gaya&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;A K V K Rao&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
Excellent work. Brilliant Idea. Good luck. Rao.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Nitin Patel&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
A very good information. I would also like to suggest 2 different websites &lt;a href=&#34;http://musicmirchi.net&#34;&gt;http://musicmirchi.net&lt;/a&gt; and &lt;a href=&#34;http://dhintana.com&#34;&gt;http://dhintana.com&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mohd Abdullah&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
no comment&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Binosh Nambiar&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
Mindblowing..Excellent&amp;hellip;&amp;hellip;!!!!! Anand you have really done a great job&amp;hellip; Can u provide URL Addresses of all songs????? Actually i have an Account in Zorpia.com&amp;hellip; I want to creat my Own playlist..&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Chetan&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
This is great. The concept, the implementation, the application of it. Everything is great ! I love it when ideas get implemented and get implemented in a way that they stay around e.g. your bi weekly updates is the best part.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;prakash&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
i like you&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;AKASH&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
this is great site. i am enjoye it this concept. best of luck&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Neha singh&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
i like old indian songs&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Nitin&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
I also like old India songs just like Neha :)&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://musicmirchi.net&#34;&gt;MP3 Songs Downloads&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;sangye&lt;/strong&gt; &lt;em&gt;19 Feb 2007 12:00 pm&lt;/em&gt;:
Hi I really do hope you will write me back. i have seen your song collection and it is fantastic. I live in europe and teach bollywood dancing. so your site is perfect. thanks as the saying goes you are a genius for many. Ah but lets see if you will be one for me too. i have a hindi song it is a mix of east meets west. cannot find the name of the movie, everytime i tupe in 2 to 3 words i get the silsilay as the first words are same. so here goes.
&amp;quot; oh oh oh, oh oh oh, oh oh oh feel it oh sooniya oh oh mahiya oh la la la &amp;hellip; feel it feel it , meri chanii tu meri sona tu mera hera tu mera ,,,,.. zindagi ka guzara tere bin nahi hona ishaq hai tum se yaara tum ko nahi khona. )2)
male - oh sooniya oh mahiya&amp;hellip;.
Waiting for your reply.
thx dear&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;vaidehi&lt;/strong&gt; &lt;em&gt;28 Aug 2008 12:45 pm&lt;/em&gt;:
GGGGGGGGGGGGOOOOOOOOOOOOOOOOOOOOOOOOOOOD&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;murali&lt;/strong&gt; &lt;em&gt;6 Nov 2008 8:55 pm&lt;/em&gt;:
solla vaarthaigal illa&amp;hellip;&amp;hellip;&amp;hellip;&amp;hellip;.&lt;/p&gt;
&lt;p&gt;born genius..
&lt;a href=&#34;https://www.cooldls.com&#34;&gt;www.cooldls.com&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;samarth&lt;/strong&gt; &lt;em&gt;13 Dec 2008 2:01 pm&lt;/em&gt;:
hi..i couldn&amp;rsquo;t open ur web page search engine..it becomes totally white page..and the web messege is also showing done..why is it so??i too want to take taste of your music search engine as i m one of great lovers of music..so plz show me way..&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ratna&lt;/strong&gt; &lt;em&gt;28 Dec 2008 8:20 am&lt;/em&gt;:
anand you are simply briliant.my husband and I are both in music profession and it helps a lot to find a song.Great job. God bless you!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Vinoth&lt;/strong&gt; &lt;em&gt;15 Jan 2009 11:26 pm&lt;/em&gt;:
Mr. Anand&lt;/p&gt;
&lt;p&gt;I am from chennai. for long i have been trying to do some thing like you have done. only that i started in 2009 and not in 2005. anyway now what i am looking for is to collect and prepare a complete database of old and new hindi songs. now my work has become simpler as you already have collected. i would further interact with you so if you give me your email it will be helpful to me.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Vishwanath.P&lt;/strong&gt; &lt;em&gt;7 Feb 2009 6:56 am&lt;/em&gt;:
You are really great &amp;ldquo;SIR&amp;rdquo;. You if, with one man army did all these things, my hats off to you..
Well i am also like you, in the sense that i wanted to a complete NEAT collection of songs&amp;hellip;
Thank you&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Hemant Shah&lt;/strong&gt; &lt;em&gt;21 Feb 2009 5:06 pm&lt;/em&gt;:
Splendidly done - What marvellous use of available tools&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;http://www.sriramajeyam.com&#34;&gt;Sriram&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;2 Mar 2009 11:32 pm&lt;/em&gt;:
Good job..&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ROHAN GANDHI&lt;/strong&gt; &lt;em&gt;20 Mar 2009 6:58 am&lt;/em&gt;:
where i can find tag songs or tag list for hindi songs&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Srikanth&lt;/strong&gt; &lt;em&gt;23 Jun 2009 7:06 pm&lt;/em&gt;:
Excellent work! The way you have thought about the whole process is remarkable and the fact that you shared every step is highly appreciable. Helps a lot to see stuff like this for working on other projects. Thanks a lot!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Saravanan&lt;/strong&gt; &lt;em&gt;15 Jan 2010 12:42 am&lt;/em&gt;:
Simply Excellent, the thought process is simple great
Fantastic job, clean and neat :)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;NSaravanan&lt;/strong&gt; &lt;em&gt;14 Dec 2010 7:16 am&lt;/em&gt;:
Hi Anand, Simply superb.
I am not very familiar with programming&amp;hellip;I sometimes adapt few VB codes for my excel. that&amp;rsquo;s all.
Is there a list of Tamil movies with tags, which you can share?
Also, have you tried copying the Album Artwork for the movies / songs?
cheers,
Saravanan, Gurgaon&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Akshay&lt;/strong&gt; &lt;em&gt;27 Jun 2012 3:47 pm&lt;/em&gt;:
Hey man. I am currently in the process of the tagging my hindi mp3 files as well and like you am a serious media monkey user. I was wondering if you could help me with 1) a comprehensive database of songs with id3 tags and 2) set up a way to auto tag my files with missing info.
Thanks&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Parthasarathy-82, @ Sarathy&lt;/strong&gt; &lt;em&gt;1 Jun 2011 10:00 am&lt;/em&gt;:
Dear Sir,
You have achieved 30% of quantum., that means you have conquered Tamil Nadu completely many decades back. About 60% have finished becasue you have conquered entire South India and made Bollywood admired about your excellency, but your goodself is about to achieve 100% centum per cent by conquering the entire world by scoring different melodies in almost about all world languages in the remaining period.
Why you know sir &amp;hellip;.. Because there is no another ILAYARAJA SIR IS GOING TO BE BORN. This is plain truth and universal fact as well.
&amp;ldquo;pudu raagam padaippadaale &amp;ldquo;NAANUM IRAIVANE&amp;rdquo;
Yes, of your are the Iraivan of WORLD MUSIC OF 21ST CENTURY OF UNIVERSE
Regards,
Parthasarathy-TVK NAGAR - CHENNAI - 82, @ Sarathy&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;http://gmail.com&#34;&gt;Nirmala&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;13 Apr 2011 9:06 am&lt;/em&gt;:
It is very interesting to read your adventure. Music drives us crazy sometime. In turn wonders m ay happen.As I am also into your craze why cant you add features so that songs can be played remotely also voice input would be another challenge. What do you say. I have not yet tried your application. Happy music days !&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mohan Kethees&lt;/strong&gt; &lt;em&gt;30 Aug 2011 2:30 pm&lt;/em&gt;:
Hi. Nice work.
2 things.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;How do i use the python crawler you have linked in the help.&lt;/li&gt;
&lt;li&gt;Why not make it a web service? Idea for web service would be to query for a song and you get full ID3 detail or query for a movie and you get all the song ID3 details in that movie. It would help for
I am willing to help But I am a C# developer and have little to no knowledge in python or Perl.
Thank you&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;shiva prakash&lt;/strong&gt; &lt;em&gt;17 Aug 2011 12:01 pm&lt;/em&gt;:
Thanks a lot for your dedication&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ambarish&lt;/strong&gt; &lt;em&gt;19 Jul 2011 7:07 pm&lt;/em&gt;:
Thank you very Much&amp;hellip;Awesome&amp;hellip; I can&amp;rsquo;t believe i got all my favourite songs here in one single website&amp;hellip;Thank you very much again&amp;hellip;Good Luck&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;http://tusharg.blogspot.com&#34;&gt;Tushar&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;21 Mar 2011 8:01 am&lt;/em&gt;:
Hats off to you! You ave done excellent job. Hope the search site you have created will be always up.
and thanks a lot. :)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;nk&lt;/strong&gt; &lt;em&gt;26 Jun 2013 10:47 am&lt;/em&gt;:
Excellent work putting this up! Thank you.
FYI, Musicindiaonline links don&amp;rsquo;t seem to work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Nadeem&lt;/strong&gt; &lt;em&gt;25 Aug 2015 9:02 am&lt;/em&gt;:
[http://music.cooltoad.com/music/download.php]
This site is down, is there any other link for those songs???&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Programming theorems</title>
      <link>https://www.s-anand.net/blog/programming-theorems/</link>
      <pubDate>Wed, 08 Nov 2006 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/programming-theorems/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.minds.nuim.ie/~dez/serendipity/index.php?/archives/102-Programming-Theorems.html&#34;&gt;Programming theorems&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The likelihood of Perl being involved in a system is directly proportional to the length of time the system has been in maintenance.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Every 5 minutes you spend writing code in a new language is more useful than 5 hours reading blog posts about how great the language is.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Think twice before presuming that CSV is a nice little easy file format. (see &lt;a href=&#34;http://secretgeek.net/csv_trouble.asp&#34;&gt;Leon&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    <item>
      <title>Automated resume filtering</title>
      <link>https://www.s-anand.net/blog/automated-resume-filtering/</link>
      <pubDate>Tue, 03 Oct 2006 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/automated-resume-filtering/</guid>
      <description>&lt;p&gt;I had to screen resumes from a leading MBA school. I&amp;rsquo;m lazy, and there were hundreds of CVs. So after &lt;a href=&#34;http://paulgraham.com/procrastination.html&#34;&gt;procrastinating&lt;/a&gt; until this morning, I decided on 2 principles:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I will not spend more than 45 minutes on this. (That&amp;rsquo;s the duration of my train ride to office.)&lt;/li&gt;
&lt;li&gt;I will not read a single CV. (I would write a program.)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The CVs were in a single PDF file. I saved it as text (it shrunk from 66MB to 1.6MB without the photos). Then I wrote a Perl &lt;strong&gt;program to filter CVs by keywords&lt;/strong&gt;. We were looking for people with an interest and/or experience in IT consulting, so I picked &amp;ldquo;technology&amp;rdquo;, &amp;ldquo;consulting&amp;rdquo;, &amp;ldquo;SAP&amp;rdquo;, &amp;ldquo;IBM&amp;rdquo;, &amp;ldquo;Accenture&amp;rdquo;, &amp;ldquo;Deloitte&amp;rdquo;, etc.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Anyone without these keywords would fall out of the list&lt;/strong&gt;. This eliminated 75% of the crowd. But since I didn&amp;rsquo;t want to read the rest, I used my favourite text-analysis technique: &lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-concordance_259769212_o-gif.webp&#34;&gt;concordance&lt;/a&gt;. I extracted 3 words on either side of each keywords, and just read those. It was easy to see who&amp;rsquo;d &amp;ldquo;worked with suppliers like IBM&amp;rdquo; as opposed to who&amp;rsquo;d worked at IBM.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s it! I managed to cut the list down to 10%. Better yet, I also had a preference ranking. People with multiple keywords ranked higher than those with fewer keywords. And all this took little more than my train ride to office.&lt;/p&gt;
&lt;p&gt;I can see this going to the next level. It&amp;rsquo;s &lt;strong&gt;easy to write a customised rejection letter&lt;/strong&gt;, depending on which keywords are missing for each person.&lt;/p&gt;
&lt;p&gt;Now, if it&amp;rsquo;s this easy to filter resumes, I can see every organisation do it in a few years. Which means, &lt;strong&gt;you need to write resumes for machines&lt;/strong&gt; as well, not just for humans! For example, on my next CV, I&amp;rsquo;ll make sure I include the words &amp;ldquo;Boston Consulting Group&amp;rdquo; as well as &amp;ldquo;BCG&amp;rdquo; &amp;ndash; just in case the software searches for only one of those keywords. Further, I&amp;rsquo;ll make sure I avoid spelling mistakes!&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Siddharth Nagpal&lt;/strong&gt; &lt;em&gt;3 Oct 2006 9:17 pm&lt;/em&gt;:
How rational it is to screen CVs, like this..instead if u cud hv glanced thru CVs..then taken a decision it wud hv been lot more intelligent..than writing a search program..&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;4 Oct 2006 6:44 am&lt;/em&gt;:
When I manually scan CVs, &lt;strong&gt;I miss out a lot of keywords&lt;/strong&gt; that I want to spot &amp;ndash; simply because humans are not good at scanning accurately. For example, when searching for SAP in the CVs, I missed it in half the CVs &lt;strong&gt;that the program had told me had SAP&lt;/strong&gt; &amp;ndash; and I initially thought my program was wrong. Contrawise, &lt;strong&gt;programs don&amp;rsquo;t look for synonyms or abbreviations&lt;/strong&gt;. So I need to make sure the keywords are accurate &amp;ndash; otherwise I miss out on potential candidates. So there&amp;rsquo;s flaws in both approaches, but they&amp;rsquo;re complementary. Meaning, what you miss in one, you catch out on another. Since another colleague is doing the manual scanning, my using a program helps, I think.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kaviraj Nair&lt;/strong&gt; &lt;em&gt;4 Oct 2006 9:31 am&lt;/em&gt;:
but I am sure you wanted to spend more than 45 minutes to decide the fate of those students!! no offence!! what say you??&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;4 Oct 2006 10:51 am&lt;/em&gt;:
They haven&amp;rsquo;t started applying to us yet. We&amp;rsquo;re just fishing around for good candidates ourselves. So if it&amp;rsquo;s anyone&amp;rsquo;s loss, it&amp;rsquo;s ours. If anyone applies, the CV is read and that&amp;rsquo;s a separate process. This is, like I said, proactive fishing.&lt;br&gt;
Also, I don&amp;rsquo;t feel bad about it being 45 minutes: if I&amp;rsquo;d run through the CVs manually, I&amp;rsquo;d have taken 3-4 hours at least for the same quality!&lt;br&gt;
Sorry &amp;ndash; guess I&amp;rsquo;m not being too considerate here :(&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sudheer&lt;/strong&gt; &lt;em&gt;4 Oct 2006 4:46 pm&lt;/em&gt;:
Hi Anand, Being an ex-placecommer from ur alma mater&amp;hellip; I can assure you that students/prospects looking for a job are always a couple of steps ahead of the firms&amp;hellip; Simply because students have much more to lose/gain than corporates&amp;hellip;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sudheer&lt;/strong&gt; &lt;em&gt;4 Oct 2006 4:51 pm&lt;/em&gt;:
What I am saying is that such programs/ algos might not yield most honest results. Even though I accept your effort - returns calculation - It just supports my argument that corporates have less to lose/gain in the recruitment process&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;4 Oct 2006 5:09 pm&lt;/em&gt;:
Sudheer, I agree: students have more to lose. I see resume-filtering software becoming more popular. I know Google uses it as a process. BCG automates much of its screening using Excel. I&amp;rsquo;m sure it&amp;rsquo;s going to be more popular. I do hope students stay ahead. I wonder what tecniques will help, though. I suspect very different strategies will be required for machines &amp;ndash; sort-of like search engine optimisation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sai&lt;/strong&gt; &lt;em&gt;4 Oct 2006 7:42 pm&lt;/em&gt;:
You really have to be extensive in your &amp;lsquo;keyword&amp;rsquo; list don&amp;rsquo;t you? And any use for fuzzy logic here? For example somebody who has package implementation experience can quickly ramp up an learn other packages? Same for analyst kind of jobs - technology is probably the least important of the factors - what matters is the vertical industry knowledge. My 2 cents!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;4 Oct 2006 9:01 pm&lt;/em&gt;:
Sai, you&amp;rsquo;re right, the keywords have to be broad. I did use some pattern matching (for e.g, when looking for banking experience, using patterns like bank*; using synonyms like financ*, insur*; using abbreviations like FS, etc.) The things is, once I match and get snippets around the words, I can read the words and get the context. That&amp;rsquo;s practically the equivalent of my software telling me where to read on the CV. Then I make a judgement call. But you&amp;rsquo;re right about this example. I looked for SAP and ignored other packages. Will add a few more keywords and re-run it. Thanks!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ND&lt;/strong&gt; &lt;em&gt;5 Oct 2006 5:35 am&lt;/em&gt;:
Like your blog :-). I get &amp;ldquo;screened&amp;rdquo; resumes and 75% are irrelevant! For e.g. When I want Mercury ITG profiles, I get is Mercury QC profiles. I sift through &amp;ldquo;screened&amp;rdquo; resumes useing Edit-Find option in MS Word often using more verbs (both present and past tense) than nouns. I spend 10-15 minutes on identifying these &amp;ldquo;keywords&amp;rdquo;. MS Word takes me to the spot on the doc and I read around. I don&amp;rsquo;t get more than 50 &amp;ldquo;screened&amp;rdquo; resumes and all are .doc files. And I open upto 12 docs at a time without a system crash. Don&amp;rsquo;t mind some Type 1 error as long as Type 2 error is minimized!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;5 Oct 2006 5:59 am&lt;/em&gt;:
I know what you mean, ND. And my guess is, this is how it&amp;rsquo;s done in many places. I can&amp;rsquo;t believe everyone reads through every word of every CV. Yet so many students indignantly object to this reality!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sathya&lt;/strong&gt; &lt;em&gt;5 Oct 2006 9:37 am&lt;/em&gt;:
Perhaps a tip for resume writes &amp;hellip; have a keyword section and put all the keywords out there -like the one u have in th &amp;ldquo;Contact&amp;rdquo; section. Putting all the keywords in the context of the CV might bloat up the size of CV.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;6 Oct 2006 6:18 am&lt;/em&gt;:
That would work Sathya, but perhaps look a little awkward. Maybe a smarter thing to do is to prepare a keyword list, and &lt;strong&gt;ensure that&amp;rsquo;s woven into the text&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;sathya&lt;/strong&gt; &lt;em&gt;6 Oct 2006 12:42 pm&lt;/em&gt;:
May be looks odd to the humans &amp;hellip; but not so for machines :-) It could be made to look less awkward by making it a tag cloud. That would also indicate the comfort/expertise level (relatively). Is there a way to mark certain sections in word doc that appears when opened but does not get printed ??&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nitu Agarwal&lt;/strong&gt; &lt;em&gt;6 Oct 2006 1:32 pm&lt;/em&gt;:
Hi Anand, I read this article of your and have been trying to add key words which are generally asked in the job description.I hope to get some positive feedback now.I have been in London since last 4 months but not able to get a suitable job may be my CV didn&amp;rsquo;t have key words required in the UK.(Just to let u know i&amp;rsquo;m an Chartered Accountant from India)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nitu&lt;/strong&gt; &lt;em&gt;6 Oct 2006 1:37 pm&lt;/em&gt;:
Hi Anand , I read this article of urs yesrterday and have been trying to add the key words as required by the job description.Hope there&amp;rsquo;s something positive soon.I have been in London for around 4 months and not been able to find a suitable job for myself ,may be my CV lacked key words.(Just to let u know i&amp;rsquo;m a Chartered accountant from India).It is nice reading ur articles.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;6 Oct 2006 1:48 pm&lt;/em&gt;:
Sathya, yeah, I guess you could do that &amp;ndash; a tag cloud would look funky, and you could always hide sections (maybe font colour?) It&amp;rsquo;d be interesting to see some CVs like that :-)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;6 Oct 2006 1:49 pm&lt;/em&gt;:
Nitu, to my knowledge, using keywords is not &lt;strong&gt;that&lt;/strong&gt; prevalent yet. But yeah, way to go!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nitu&lt;/strong&gt; &lt;em&gt;6 Oct 2006 2:22 pm&lt;/em&gt;:
Not using the key words seperately but adding in the sentences to make sense and almost the same meaning as i was trying to tell earlier.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;6 Oct 2006 3:09 pm&lt;/em&gt;:
Nitu, that&amp;rsquo;s probably the best thing. Happy to see at least one person have a better shot because of this article. Spread the word :-)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;joey&lt;/strong&gt; &lt;em&gt;28 Oct 2006 10:37 pm&lt;/em&gt;:
anand Many recruitment firms use this method in Oz (Australia). It works - the right words get an phone interview call. For Nitu - my advise is to scan job ads and incorporate those sentences into the resume (nt just words) this will guarantee a higher response rate. worked for both my wife and me. And the first job in a new country is always hard.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Swapna&lt;/strong&gt; &lt;em&gt;29 Mar 2007 8:17 am&lt;/em&gt;:
Nitu, any improvement in reponse? I am also a CA from India and looking for job in UK!! Its seems really difficult to get an interview call here!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Georgie Girl&lt;/strong&gt; &lt;em&gt;31 Oct 2009 4:36 am&lt;/em&gt;:
A really interesting idea. In Canada I&amp;rsquo;ve seen the use of scanning program as well. I have been in HR and had to manually scan 100&amp;rsquo;s of resumes and I can tell you that you are cross-eyed at the end. I guess a resume should have a footer with tag line extras, what would a good set include do you think?&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Software for my new laptop</title>
      <link>https://www.s-anand.net/blog/software-for-my-new-laptop/</link>
      <pubDate>Tue, 26 Sep 2006 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/software-for-my-new-laptop/</guid>
      <description>&lt;p&gt;And so, thanks to Infosys Consulting being spun off as a separate legal entity in the UK, I got my new laptop. (Because our old laptops were legally the assets of Infosys Technologies Ltd, and not Infosys Consulting Inc. Weirder things have happened, but who&amp;rsquo;s complaining?)&lt;/p&gt;
&lt;p&gt;My old &lt;a href=&#34;http://www.google.com/search?q=Toshiba+Portege+A200&#34;&gt;Toshiba Portege A200&lt;/a&gt; has been replaced by a &lt;a href=&#34;http://www.google.com/search?q=dell+latitude+D420&#34;&gt;Dell Latitude D420&lt;/a&gt; (which I was dreaming for, after having just read &lt;a href=&#34;http://www.codinghorror.com/blog/archives/000685.html&#34;&gt;Jeff&amp;rsquo;s post on big laptops&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-dell-latitude-d420_252330198_o-png.webp&#34;&gt;&lt;img alt=&#34;Dell Latitude D420&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-dell-latitude-d420_252330198_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Firstly, it&amp;rsquo;s &lt;strong&gt;light&lt;/strong&gt;. I thought my Toshiba was light compared to the Dell monsters others had, but this weighs 1.4 kgs! Secondly, it&amp;rsquo;s &lt;strong&gt;thin&lt;/strong&gt;. It&amp;rsquo;s thinner than some of the paper notebooks I used to carry. It&amp;rsquo;s hard to imagine where we will be in 5-7 years time if innovations keep rolling in at this rate.&lt;/p&gt;
&lt;p&gt;There were only two (minor) problems I saw with it. It didn&amp;rsquo;t have an S-Video port &amp;ndash; so I can&amp;rsquo;t watch movies on TV. And it had a fairly small (12&amp;quot;) screen. Being a wide screen, I get a lot less height than I used to. I&amp;rsquo;m still having some trouble getting used to that, especially when browsing tall pages but it&amp;rsquo;s a good laptop for playing games such as &lt;a href=&#34;https://floorballontario.com&#34;&gt;올인구조대&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My weekend was like a kid in a candy store. Here&amp;rsquo;s what I did.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Uninstalled useless software&lt;/strong&gt;: The laptop came with &lt;a href=&#34;http://www.roxio.com/&#34;&gt;Roxio Easy CD Creator 5 Basic&lt;/a&gt; and &lt;a href=&#34;http://www.cyberlink.com/multi/products/main_1_ENU.html&#34;&gt;PowerDVD 5.1&lt;/a&gt;. I got rid of them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Copied all my files&lt;/strong&gt;: I had about 25GB of data (15GB of music, 5 GB of books, 2 GB of video, 3GB of work). This was a bit tricky: some of my data was in &lt;a href=&#34;http://subversion.tigris.org/&#34;&gt;SVN&lt;/a&gt; repositories, and I had to &lt;a href=&#34;http://dotnot.org/blog/archives/2005/01/13/move-a-subversion-repository-from-one-machine-to-another/&#34;&gt;migrate them&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configured the new system&lt;/strong&gt; by literally running through each entry in the control panel, and ensuring that it&amp;rsquo;s the same as my old machine. Most of my changes are spartan (aimed at less eye-candy, usually). For example,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Display&lt;/strong&gt;: I switch to Windows Classic and a black background. I used to do this because it takes less memory, but with 1GB of RAM, that&amp;rsquo;s no longer a consideration. I just got used to this. I also turn off all special effects, and remove everything except the Recycle Bin from my desktop. But the really useful thing is to &lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-display-settings_252330202_o-png.webp&#34;&gt;turn on ClearType&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Taskbar and Start Menu&lt;/strong&gt;: I switch to the Classic Start Menu, and turn off everything. Here&amp;rsquo;s what mine looks like now.&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-start-menu-settings_252330205_o-png.webp&#34;&gt;&lt;img alt=&#34;Start Menu settings&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-start-menu-settings_252330205_o-png.webp&#34;&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Toolbars&lt;/strong&gt;: I like my toolbars to fit on one line. So I do some heavy customisation with the &lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-ie-toolbar-settings_252330204_o-png.webp&#34;&gt;Internet Explorer toolbar&lt;/a&gt; to shrink it to a line. Similarly on the &lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-desktop-toolbar-settings_252330208_o-png.webp&#34;&gt;desktop toolbars&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Installed software&lt;/strong&gt;. This is the fun part. I&amp;rsquo;ve made a number of changes to &lt;a href=&#34;https://www.s-anand.net/blog/software-inventory/&#34;&gt;my software inventory&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://www.activestate.com/activeperl/&#34;&gt;ActivePerl&lt;/a&gt;: Perl is the only language I still know.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.activestate.com/activepython/&#34;&gt;ActivePython&lt;/a&gt;: I&amp;rsquo;m learning Python. I&amp;rsquo;m not impressed, but the &lt;a href=&#34;http://www.pythonware.com/products/pil/&#34;&gt;Python Image Library&lt;/a&gt; makes &lt;a href=&#34;https://www.s-anand.net/blog/movie-jigsaw-quiz-1/&#34;&gt;jigsaw quizzes&lt;/a&gt; easier than in Perl.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://httpd.apache.org/&#34;&gt;Apache HTTP server&lt;/a&gt;: To test this web page locally.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://audacity.sourceforge.net/&#34;&gt;Audacity&lt;/a&gt;: To record and convert sounds. I&amp;rsquo;ve ditched &lt;a href=&#34;http://www.goldwave.com/&#34;&gt;Goldwave&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.google.com/search?q=camstudio&#34;&gt;Camstudio&lt;/a&gt;: To capture screen sessions.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.crimsoneditor.com/&#34;&gt;Crimson Editor&lt;/a&gt;: I&amp;rsquo;m still trying to &lt;a href=&#34;http://wikipedia/wiki/Comparison_of_text_editors&#34;&gt;pick a good text editor&lt;/a&gt;. (I need block operations, filtering, regular expressions and syntax highlighting. No editor seems to offer all of these. Filtering is especially rare.)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.cygwin.com/&#34;&gt;Cygwin&lt;/a&gt;: Just for the basic tools (head, tail, less). &lt;a href=&#34;http://unxutils.sourceforge.net/&#34;&gt;UnixUtils&lt;/a&gt; would do just fine, actually.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.ldagames.com/dxball2/&#34;&gt;DX-Ball 2&lt;/a&gt;: The only game I play other than Solitaire, Minesweeper and Age of Kings.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://desktop.google.com/&#34;&gt;Google Desktop&lt;/a&gt;: I can&amp;rsquo;t live without it any more.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://earth.google.com/&#34;&gt;Google Earth&lt;/a&gt;: I find &lt;a href=&#34;http://maps.google.com/&#34;&gt;Google Maps&lt;/a&gt; faster and better (because of the street maps).&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://toolbar.google.com/&#34;&gt;Google Toolbar for IE&lt;/a&gt;: It practically replaces my address bar.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.imgburn.com/&#34;&gt;ImgBurn&lt;/a&gt;: I&amp;rsquo;m trying it instead of Nero. Except for multi-session support, it&amp;rsquo;s great.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.microsoft.com/reader/default.mspx&#34;&gt;Microsoft Reader&lt;/a&gt;: I have a lot of books in the .LIT format&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.mozilla.com/firefox/&#34;&gt;Mozilla Firefox&lt;/a&gt;: Mainly for its extensions (&lt;a href=&#34;http://www.google.com/tools/firefox/suggest/&#34;&gt;Google Suggest&lt;/a&gt;, &lt;a href=&#34;https://addons.mozilla.org/firefox/390/&#34;&gt;NextPlease&lt;/a&gt;, &lt;a href=&#34;https://addons.mozilla.org/firefox/1122/&#34;&gt;Tab Mix Plus&lt;/a&gt;, &lt;a href=&#34;https://addons.mozilla.org/firefox/2453/&#34;&gt;Google Bookmarks Button&lt;/a&gt;, &lt;a href=&#34;https://addons.mozilla.org/firefox/1433/&#34;&gt;Extended Statusbar&lt;/a&gt;, &lt;a href=&#34;https://addons.mozilla.org/firefox/1419/&#34;&gt;IE Tab&lt;/a&gt;, &lt;a href=&#34;http://livehttpheaders.mozdev.org/&#34;&gt;Live HTTP Headers&lt;/a&gt;, &lt;a href=&#34;https://addons.mozilla.org/firefox/60/&#34;&gt;Web Developer&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.getpaint.net/&#34;&gt;Paint.NET&lt;/a&gt;: Quicker than Photoshop. Mostly I just crop images.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://picasa.google.com&#34;&gt;Picasa&lt;/a&gt;: Adequate for viewing photos.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx&#34;&gt;Powertoys for Windows - TweakUI&lt;/a&gt;: To make Windows even more spartan.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.aumha.org/a/recover.php&#34;&gt;Restoration&lt;/a&gt;: Can restore permanently deleted files.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://subversion.tigris.org/&#34;&gt;Subversion&lt;/a&gt;: I like the version numbers (1, 2, 3, &amp;hellip;) better than CVS&amp;rsquo; (1.1, 1.1.1, 1.1.1.1, &amp;hellip;).&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.virtualdub.org/&#34;&gt;VirtualDub&lt;/a&gt;: Mainly to convert videos from my digicam to DivX.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.videolan.org/vlc/&#34;&gt;VLC player&lt;/a&gt;: When all else fails, I turn to VLC.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.winamp.com/&#34;&gt;WinAmp&lt;/a&gt;: with &lt;a href=&#34;http://forums.winamp.com/showthread.php?s=&amp;amp;threadid=155680#b4s&#34;&gt;Media Library import/export&lt;/a&gt; and &lt;a href=&#34;http://www.winamp.com/plugins/details.php?id=91119&#34;&gt;Pepper&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.rarlab.com/&#34;&gt;WinRAR&lt;/a&gt;: For the occasional .rar download&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And finally, after reinstalling my SVN repository and copying my WinAmp playlists, Firefox bookmarks, etc, my new laptop feels as good as old.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Somnath&lt;/strong&gt; &lt;em&gt;27 Sep 2006 4:03 am&lt;/em&gt;:
How do you have admin rights our laptop? Most companies IT security policy means no admin rights on your machines (laptops or desktops).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;27 Sep 2006 7:08 am&lt;/em&gt;:
Oh yes, thankfully! I can install pretty much anything, and the only issue is that these won&amp;rsquo;t be &amp;ldquo;supported&amp;rdquo; by our IT team. (But in reality, they&amp;rsquo;re actually thrilled to support these, when called :-)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Somnath&lt;/strong&gt; &lt;em&gt;3 Oct 2006 3:30 am&lt;/em&gt;:
One definitely good reason to work for Infy Consulting then ;-)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Michelle&lt;/strong&gt; &lt;em&gt;5 Dec 2006 12:38 pm&lt;/em&gt;:
Please tell me there is literature of non-fiction in 1977. Except for MOVIES!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Anand&lt;/strong&gt; &lt;em&gt;8 Jan 2007 6:59 pm&lt;/em&gt;:
Do you plan to embrace Windows Vista when it is released later this month ? Also I recommend the Firefox extension Colorful Tabs. It is pretty&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;15 Jan 2007 8:16 pm&lt;/em&gt;:
Guess I don&amp;rsquo;t have a choice about Vista. If Infosys upgrades, I upgrade.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Anonymous&lt;/strong&gt; &lt;em&gt;3 Apr 2007 3:58 pm&lt;/em&gt;:
I have also reently swicthed to D420. I can&amp;rsquo;t get it to record on audacity (or anything else). Previous Dell laptop was fine. Any suggestions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;3 Apr 2007 4:19 pm&lt;/em&gt;:
I&amp;rsquo;m able to record using the Microphone on Audacity. But on my Toshiba, I was able to record what I was playing on the speaker as well, and that&amp;rsquo;s not possible on D420, thanks to the sound card. Also, the hard disk is incredibly slow.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rockey Nebhwani&lt;/strong&gt; &lt;em&gt;11 Jan 2010 4:02 pm&lt;/em&gt;:
I would like to see the revised list of softwares on your laptop :-)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.s-anand.net/blog/software-for-my-new-laptop-2/&#34;&gt;Software for my new laptop 2 | s-anand.net&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;27 Sep 2011 7:15 pm&lt;/em&gt; &lt;em&gt;(pingback)&lt;/em&gt;:
[&amp;hellip;] for my new laptop 2 September 27th, 2011 Top 10 lists S Anand Time for a new laptop, and to replace software. Here’s my new [&amp;hellip;]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;http://www.s-anand.net/blog/software-i-currently-use/&#34;&gt;Software I currently use | s-anand.net&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;9 May 2014 6:23 pm&lt;/em&gt; &lt;em&gt;(pingback)&lt;/em&gt;:
[…] Every few years, I review the software I use. Here are some of my earlier lists. […]&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Experiments in sound</title>
      <link>https://www.s-anand.net/blog/experiments-in-sound/</link>
      <pubDate>Tue, 12 Sep 2006 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/experiments-in-sound/</guid>
      <description>&lt;p&gt;Wikipedia says the human &lt;a href=&#34;http://en.wikipedia.org/wiki/Voice_frequency&#34;&gt;voice frequency&lt;/a&gt; for speech is between 85 to 155 Hz for men, and 165 to 255 Hz for women. That set me thinking.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What is the limit to our hearing?&lt;/li&gt;
&lt;li&gt;How do sounds differ?&lt;/li&gt;
&lt;li&gt;How can we synthesise speech?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;What are the limits to our hearing?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Kids can hear frequencies from 20 Hz to 20 kHz, while adults hear only up to 12-14 kHz (&lt;a href=&#34;http://hypertextbook.com/facts/2003/ChrisDAmbrose.shtml&#34;&gt;Frequency Range of Human Hearing&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;To check the lower frequency limit, I created an MP3 with &lt;a href=&#34;https://files.s-anand.net/blog/a/lower.mp3&#34;&gt;sounds from 1 Hz to 100 Hz&lt;/a&gt; at 1 second intervals. Just play the sound, and see when you &lt;strong&gt;start&lt;/strong&gt; hearing something. (Of course, whether you can hear something also depends on the volume of your speaker, the ambient noise, etc.) I could hear nothing for the first 40 seconds: so I can&amp;rsquo;t hear frequencies lower than 40 Hz.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PS: Don&amp;rsquo;t be worried if you don&amp;rsquo;t hear anything for a while. You&amp;rsquo;re not supposed to!&lt;/strong&gt; Keep the volume at full level, though.&lt;/p&gt;
&lt;p&gt;To check the upper frequency limit, I created this MP3 with &lt;a href=&#34;https://files.s-anand.net/blog/a/upper.mp3&#34;&gt;sounds from 1 kHz to 20 kHz&lt;/a&gt; in 1 second intervals. Just play the sound, and see when you &lt;strong&gt;stop&lt;/strong&gt; hearing anything. I couldn&amp;rsquo;t hear anything beyond 14 seconds: so I can&amp;rsquo;t hear frequencies beyond 14 kHz.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do sounds differ?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I took this &lt;a href=&#34;https://files.s-anand.net/blog/a/vowels.mp3&#34;&gt;audio file of someone reciting vowels&lt;/a&gt; and plotted a spectrogram (below). A &lt;a href=&#34;http://www.google.com/search?q=define%3Aspectrogram&#34;&gt;spectrogram&lt;/a&gt; plots time on the X axis and frequency on the Y-axis.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/assets/flickr-vowels-spectrogram_241586415_o-jpg.webp&#34;&gt;&lt;img alt=&#34;Vowels spectrogram&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/flickr-vowels-spectrogram_241586415_o-jpg.webp&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Some observations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All the vowels have evenly spaced bars. (In this case, they&amp;rsquo;re all multiples of something around 120 Hz.)&lt;/li&gt;
&lt;li&gt;&amp;lsquo;u&amp;rsquo; has the lowest frequency mix. &amp;lsquo;a&amp;rsquo; spans from low to high. &amp;lsquo;i&amp;rsquo; has a bit of low and a bit of high, nothing in the middle. &amp;lsquo;ai&amp;rsquo; and &amp;lsquo;au&amp;rsquo; look like &amp;lsquo;a&amp;rsquo; followed by &amp;lsquo;i&amp;rsquo; and &amp;lsquo;u&amp;rsquo; respectively.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;How can we synthesise speech?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t know. There are lots of speech synthesizers. They sound robotic. I&amp;rsquo;m trying to see if knowing what sounds look like improves things. I&amp;rsquo;ll let you know if I do well.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dhar&lt;/strong&gt; &lt;em&gt;13 Sep 2006 5:09 am&lt;/em&gt;:
How did you go about synthesizing the MP3s with increasing frequencies? Did you use some software for that? Similarly what software did you use to plot the spectrogram?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;13 Sep 2006 6:10 am&lt;/em&gt;:
I wrote a &lt;a href=&#34;http://www.s-anand.net/a/sound&#34;&gt;perl script to generate the frequencies&lt;/a&gt;, and &lt;a href=&#34;http://www.hitsquad.com/smm/programs/SPECTROGRAM/&#34;&gt;Spectrogram v.0.8&lt;/a&gt; to create the spectrograms.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sumit Dhar&lt;/strong&gt; &lt;em&gt;16 Sep 2006 9:23 am&lt;/em&gt;:
Dude, just downloaded the files. Is the sound stereophonic or monoaural? If it is mono, do you think creating an MP3 with stereophonic sound will make a difference? Cheers, D.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sumit Dhar&lt;/strong&gt; &lt;em&gt;16 Sep 2006 9:25 am&lt;/em&gt;:
Loved the experiment. Lower: 42 Hz, Higher: 15 KHz&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;16 Sep 2006 9:38 am&lt;/em&gt;:
It&amp;rsquo;s mono. I doubt if stereo would make a difference. I&amp;rsquo;d be playing the same frequency on both speakers, which is what a mono MP3 does anyway.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dhar&lt;/strong&gt; &lt;em&gt;17 Sep 2006 2:05 am&lt;/em&gt;:
The reason I asked about whether the sound is Mono or Stereo is because of my experience during eye tests. Some letters that were not visible when viewed with just &lt;strong&gt;one&lt;/strong&gt; eye, were clearly readable when using both eyes. Was wondering if the same &lt;strong&gt;may&lt;/strong&gt; be applicable in this case?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;17 Sep 2006 7:36 am&lt;/em&gt;:
Ah, I see what you mean. Since both speakers would be playing the sound, hopefully this should not be a factor.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Python vs Perl</title>
      <link>https://www.s-anand.net/blog/python-vs-perl/</link>
      <pubDate>Wed, 11 Jan 2006 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/python-vs-perl/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.developertutorials.com/tutorials/python/python-perl-050423/page1.html&#34;&gt;Python vs Perl&lt;/a&gt;. Sums up my feelings perfectly: Python may be better for larger projects, but for my meddling, I&amp;rsquo;ll stick to Perl. It&amp;rsquo;s served me well for 10 years.&lt;/p&gt;
&lt;p&gt;Until 1999, I used Perl a fair bit, but no more than Java or C or anything else. My first &amp;ldquo;real-life&amp;rdquo; use of Perl was in 2000, when I was processing 600MB of IBES data. Access and SPSS couldn&amp;rsquo;t handle the load. Perl slurped all the data in a few seconds, though. A few years later, when processing bank data (3GB worth, this time), Perl again was the only saviour. In fact, between Excel and Perl (and &lt;a href=&#34;http://www.cpan.org/&#34;&gt;CPAN&lt;/a&gt;), I think I have all the data analysis power I&amp;rsquo;ve ever needed. This blog, for instance, is written in an Excel spreadsheet, exported to XML, and converted into the blog format by Perl.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Matching misspelt Tamil movie names</title>
      <link>https://www.s-anand.net/blog/matching-misspelt-tamil-movie-names/</link>
      <pubDate>Fri, 09 Dec 2005 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/matching-misspelt-tamil-movie-names/</guid>
      <description>&lt;p&gt;I don&amp;rsquo;t like hunting for new songs either. Too much effort.&lt;/p&gt;
&lt;p&gt;External recommendations like &lt;a href=&#34;http://www.raaga.com/channels/tamil/top10.asp&#34;&gt;Raaga Top 10&lt;/a&gt; help, but not much. I usually like only 1 of the top 10.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t really know the recent music directors. But many interesting songs I&amp;rsquo;ve heard recently (like Ondra Renda in Kakka Kakka, Vaseegara in Minnale, and Kaadhalikkum in Chellame) are by Harris Jayaraj. So maybe if I can find the music directors I like, other songs by them would be good recommendations.&lt;/p&gt;
&lt;p&gt;I have an automated way to find the music director for a movie. First, I spent a few hours renaming my MP3s to a Movie.Song.mp3 filename format (using Excel and Perl liberally). After that, I wrote a Perl program that reads movie names and the movie directors from &lt;a href=&#34;http://www.raaga.com/&#34;&gt;Raaga&lt;/a&gt; and matches the Raaga movie names with my movie names. (Raaga has all but 5 movies whose songs I&amp;rsquo;ve heard.) Then I rate music directors based on my songs&amp;rsquo; ratings.&lt;/p&gt;
&lt;p&gt;Unfortunately, the matching worked only for 45% of my 273 movies. The rest were spelt differently on my list and Raaga. I checked &lt;a href=&#34;http://www.cpan.org/&#34;&gt;CPAN&lt;/a&gt; if there was a way to match Tamil words roughly. The closest was &lt;a href=&#34;http://search.cpan.org/~jaspax/Lingua-Phonology-0.32/Phonology.pm&#34;&gt;Lingua::Phonology&lt;/a&gt;, but Jesse, the author, mailed me saying that was &amp;ldquo;like slicing your bread with a chainsaw&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;So I developed these rules. The -&amp;gt; arrow below is to be read as &amp;ldquo;is also spelt as&amp;rdquo;. By just applying them &lt;strong&gt;sequentially&lt;/strong&gt;, I matched 33% more movies.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vowel rules&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;AE&lt;/strong&gt;dhiri -&amp;gt; &lt;strong&gt;E&lt;/strong&gt;dhiri&lt;br&gt;
kadhal kond&lt;strong&gt;EI&lt;/strong&gt;n -&amp;gt; kadhal kond&lt;strong&gt;E&lt;/strong&gt;n&lt;br&gt;
chellam&lt;strong&gt;EY&lt;/strong&gt; at end-&amp;gt; chellam&lt;strong&gt;E&lt;/strong&gt;&lt;br&gt;
sach&lt;strong&gt;IE&lt;/strong&gt;n -&amp;gt; sach&lt;strong&gt;I&lt;/strong&gt;n&lt;br&gt;
marupad&lt;strong&gt;IU&lt;/strong&gt;m -&amp;gt; marupad&lt;strong&gt;IYU&lt;/strong&gt;m&lt;br&gt;
&lt;strong&gt;OI&lt;/strong&gt;, &lt;strong&gt;OY&lt;/strong&gt;, &lt;strong&gt;OVI&lt;/strong&gt;, &lt;strong&gt;OYI&lt;/strong&gt; are all the same&lt;br&gt;
&lt;strong&gt;AA&lt;/strong&gt;thma -&amp;gt; &lt;strong&gt;A&lt;/strong&gt;thma&lt;br&gt;
azhagiya th&lt;strong&gt;EE&lt;/strong&gt;ye -&amp;gt; azhagiya th&lt;strong&gt;I&lt;/strong&gt;ye&lt;br&gt;
ab&lt;strong&gt;OO&lt;/strong&gt;rva ragam -&amp;gt; ab&lt;strong&gt;U&lt;/strong&gt;rva ragam&lt;br&gt;
Ignore &lt;strong&gt;H&lt;/strong&gt;. It is redundant.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Consonant rules&lt;/strong&gt;&lt;br&gt;
arasak&lt;strong&gt;TCH&lt;/strong&gt;i -&amp;gt; arasak&lt;strong&gt;SH&lt;/strong&gt;i&lt;br&gt;
&lt;strong&gt;CH&lt;/strong&gt;ippikkul muthu -&amp;gt; &lt;strong&gt;S&lt;/strong&gt;ippikkul muthu&lt;br&gt;
then&lt;strong&gt;NDR&lt;/strong&gt;al -&amp;gt; then&lt;strong&gt;NR&lt;/strong&gt;al&lt;br&gt;
devar ma&lt;strong&gt;H&lt;/strong&gt;an -&amp;gt; devar ma&lt;strong&gt;G&lt;/strong&gt;an&lt;br&gt;
baga&lt;strong&gt;W&lt;/strong&gt;athi -&amp;gt; baga&lt;strong&gt;V&lt;/strong&gt;athi&lt;br&gt;
avvai shanmu&lt;strong&gt;G&lt;/strong&gt;i -&amp;gt; avvai shanmu&lt;strong&gt;K&lt;/strong&gt;i&lt;br&gt;
kon&lt;strong&gt;J&lt;/strong&gt;i pesalam -&amp;gt; kon&lt;strong&gt;CH&lt;/strong&gt;i pesalam&lt;br&gt;
an&lt;strong&gt;D&lt;/strong&gt;ha 7 naatkal -&amp;gt; an&lt;strong&gt;T&lt;/strong&gt;ha 7 naatkal&lt;br&gt;
a&lt;strong&gt;B&lt;/strong&gt;oorva sagodharargal -&amp;gt; a&lt;strong&gt;P&lt;/strong&gt;oorva sagodharargal&lt;br&gt;
agni natcha&lt;strong&gt;THIR&lt;/strong&gt;am -&amp;gt; agni natcha&lt;strong&gt;THR&lt;/strong&gt;am&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The remaining movies either had spelling mistakes (e.g. Kilipethcu Ketkavaa) or had structural differences (Ilamai Oonjal Aadu&lt;strong&gt;giradhu&lt;/strong&gt; vs Ilamai Oonjal Aadu&lt;strong&gt;dhu&lt;/strong&gt;). By permitting approximate matches using &lt;a href=&#34;http://search.cpan.org/~jhi/String-Approx-3.25/Approx.pm&#34;&gt;String::Approx&lt;/a&gt;, I was able to match 12% more, making my total accuracy ~90%.&lt;/p&gt;
&lt;p&gt;Though this is good enough for identifying music directors, I&amp;rsquo;m working on improving the approximate matching rules. I hope to have 98% accuracy, and then I can match individual songs &amp;ndash; and know who the singers are. Hopefully, this can be extended to other sites like &lt;a href=&#34;http://www.musicindiaonline.com/&#34;&gt;MusicIndiaOnline&lt;/a&gt;, and who knows &amp;ndash; maybe even &lt;a href=&#34;http://www.imdb.com/&#34;&gt;IMDb&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ashwin&lt;/strong&gt; &lt;em&gt;10 Dec 2005 3:36 am&lt;/em&gt;:
I use &lt;a href=&#34;https://www.arthika.net&#34;&gt;www.arthika.net&lt;/a&gt; for downloading high quality MP3&amp;rsquo;s. Their song ratings are good. This is my strategy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;12 Dec 2005 6:55 pm&lt;/em&gt;:
I tried it out&amp;hellip; maybe it was just me, but I thought they had a smaller collection than Raaga. Is that right?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ashwin&lt;/strong&gt; &lt;em&gt;18 Dec 2005 6:41 am&lt;/em&gt;:
Ya, They have only a small collection but he quality of the songs are very good.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bala&lt;/strong&gt; &lt;em&gt;9 Dec 2005 12:00 pm&lt;/em&gt;:
Can you make the script you made downloadable for folks to normalize their unwieldy MP3 library? Even 80% would do for me considering the amount of chaos that prevails! :) Thanks&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>How social network analysis is used</title>
      <link>https://www.s-anand.net/blog/how-social-network-analysis-is-used/</link>
      <pubDate>Fri, 28 Oct 2005 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/how-social-network-analysis-is-used/</guid>
      <description>&lt;p&gt;An interview with the creators of InFlow (a software to map social networks) shows &lt;a href=&#34;http://www.infoworld.com/article/04/03/26/13FEsocialint_1.html&#34;&gt;how social network analysis is used&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;comments&#34;&gt;Comments&lt;/h2&gt;
&lt;!-- wp-comments-start --&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dhar&lt;/strong&gt; &lt;em&gt;30 Oct 2005 6:10 am&lt;/em&gt;:
Anand, do you know of any freely available Social Network Analysis tool?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S Anand&lt;/strong&gt; &lt;em&gt;31 Oct 2005 6:16 pm&lt;/em&gt;:
Afraid not. I&amp;rsquo;ve only done this twice in projects, and I just used Excel and Perl both times.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- wp-comments-end --&gt;
</description>
    </item>
    <item>
      <title>Perl illiteracy</title>
      <link>https://www.s-anand.net/blog/perl-illiteracy/</link>
      <pubDate>Thu, 15 May 2003 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/perl-illiteracy/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.bbspot.com/News/2001/03/perl_test.html&#34;&gt;US high school seniors can&amp;rsquo;t read Perl&lt;/a&gt;. Not even a simple DeCSS program (obufuscated, of course).&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Microsoft dumps Java</title>
      <link>https://www.s-anand.net/blog/microsoft-dumps-java/</link>
      <pubDate>Wed, 12 Jul 2000 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/microsoft-dumps-java/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://news.cnet.com/news/0-1003-200-2240702.html?tag=st.ne.1002.tgif.ni&#34;&gt;Microsoft dumps Java&lt;/a&gt;. Doesn&amp;rsquo;t worry me to much. I&amp;rsquo;ve never had much use for Java as a user. They&amp;rsquo;ve &amp;lsquo;adopted&amp;rsquo; &lt;a href=&#34;http://www.perl.com&#34;&gt;Perl&lt;/a&gt;, though. And I was always a Perl fan.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>CGI.pm</title>
      <link>https://www.s-anand.net/blog/cgi-pm/</link>
      <pubDate>Sun, 25 Jul 1999 12:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/cgi-pm/</guid>
      <description>&lt;p&gt;I was playing around with CGI and wrote a script to determine when somebody last logged in. Read about &lt;a href=&#34;http://stein.cshl.org/WWW/software/CGI/cgi_docs.html&#34;&gt;CGI.pm&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
  </channel>
</rss>
