<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8998646982227098365</id><updated>2012-01-17T17:52:51.361+05:30</updated><category term='Interop'/><category term='Web Development'/><category term='Fitness'/><category term='Tennis'/><category term='General'/><category term='Technology'/><category term='Formula 1'/><category term='Javascript'/><category term='Software Development'/><category term='Cricket'/><category term='Review'/><category term='SQL Server'/><category term='SharePoint'/><category term='AJAX'/><category term='Presentation'/><category term='Sports'/><category term='WWE'/><category term='Current Affairs'/><category term='.NET'/><title type='text'>Sanket's Blog</title><subtitle type='html'>One stop shop for all things Technology, Fitness, Personal Stories,Sports, Current Affairs etc</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>62</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-3556642623112537909</id><published>2010-06-30T00:59:00.001+05:30</published><updated>2010-06-30T00:59:49.169+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Web designers, stop using splash ads!!!</title><content type='html'>&lt;p&gt;Have you visited websites and got really annoyed by ads that span almost the whole page and flash suddenly out of nowhere, blocking you from doing anything meaningful on the page? If so, then welcome to the club – the club of disgruntled web users who get frustrated day in day out by such ads (sometimes called splash ads). But surprisingly, many web designers seem completely oblivious to their agony and keep using these ads on the home pages of their websites. Even hugely popular websites like &lt;a href="http://www.espnstar.com/" target="_blank"&gt;Espnstar&lt;/a&gt; (see screenshot below), &lt;a href="http://www.cricinfo.com/" target="_blank"&gt;Cricinfo&lt;/a&gt; and &lt;a href="http://timesofindia.indiatimes.com/" target="_blank"&gt;Times of India&lt;/a&gt;, to name a few, are resorting to the use of these kind of ads.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Saa_LJZkn2o/TCpJn5pzrvI/AAAAAAAABrc/wSeffs9yBLc/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 5px; display: inline; float: none; border-top: 0px; border-right: 0px" title="Espnstar splash ad" border="0" alt="Espnstar splash ad" src="http://lh4.ggpht.com/_Saa_LJZkn2o/TCpJqkRDoiI/AAAAAAAABrg/mqSofBMSZ6k/image_thumb%5B2%5D.png?imgmax=800" width="644" height="408" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I find ads in general to be obtrusive and irritating but as long as they are in the corner of the page and do not hinder your interactions with the “useful” elements on the page, they are bearable. But splash ads go a step further and make it impossible to use the site as long as they are in view. And as can be expected, the “close” button to get rid of this ad is so miniscule and well camouflaged that you will have to strain your eyes to spot it. I have been visiting Espnstar quite frequently these days thanks to the sports bonanza, what with &lt;a href="http://www.fifa.com/" target="_blank"&gt;Football world cup&lt;/a&gt;, &lt;a href="http://www.wimbledon.org/" target="_blank"&gt;Wimbledon&lt;/a&gt;, Natwest series and &lt;a href="http://www.formula1.com/" target="_blank"&gt;Formula 1&lt;/a&gt; all happening simultaneously. But my experience on the site has been pretty frustrating thanks to these ads. I hope the web designers out there are listening to this feedback and stop using such ads soon.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-3556642623112537909?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/3556642623112537909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2010/06/web-designers-stop-using-splash-ads.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3556642623112537909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3556642623112537909'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2010/06/web-designers-stop-using-splash-ads.html' title='Web designers, stop using splash ads!!!'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_Saa_LJZkn2o/TCpJqkRDoiI/AAAAAAAABrg/mqSofBMSZ6k/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-5195949416403720060</id><published>2010-06-07T21:46:00.001+05:30</published><updated>2010-06-07T21:46:37.726+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Interop'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Merging and Centering Excel cells from C# using Office Interop</title><content type='html'>&lt;p&gt;Many a times, we need to generate Excel reports as output from Windows applications. There are now 2 ways to do this:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Using Office interop&lt;/li&gt;    &lt;li&gt;Using &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c6e744e5-36e9-45f5-8d8c-331df206e0d0&amp;amp;displaylang=en" target="_blank"&gt;Open XML SDK&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;To be clear, Open XML is the recommended approach for working with Office applications using .Net. However, there are still many systems that rely heavily on Interop for this so in this post, I will be talking using the Interop approach to work with Excel. Specifically, let’s look at how we can merge a collection of cells and center them through .Net. &lt;/p&gt;  &lt;p&gt;To accomplish this, we need to perform 3 steps, and they are as easy as they come – each step requires a single line of code in C#. So let’s take a look at the steps involved:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Get an Excel range&lt;/strong&gt; – For folks familiar with Excel interop, they would be aware that for most operations we would need to get our hands on an Excel Range object and then perform the intended operation on the range. Here is how we can create a Range object&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Microsoft.Office.Interop.Excel.Range range = excelApp.get_Range(sheet.Cells[startRowIndex, startColumnIndex], sheet.Cells[endRowIndex, endColumnIndex]);&lt;/p&gt;  &lt;p&gt;Here, excelApp refers to an instance of Microsoft.Office.Interop.Excel.Application class. The parameters that we need to pass to the get_Range() specify where we want the range to start and where it should end.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Merge the cells&lt;/strong&gt; – Once we have the handle to the range, we can call the Merge() on the range to do just that – merge the cells that form the range into a single cell &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;(&lt;u&gt;Warning&lt;/u&gt; – there might be data loss if multiple cells within the range have different values)&lt;/p&gt;  &lt;p&gt;range.Merge(Type.Missing);&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Center the cells&lt;/strong&gt; – Finally, we need to set the alignment of the data in the merged cells so that data appears centered horizontally. This can be done again with a single statement as shown below&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;&lt;/p&gt;  &lt;p&gt;So there you have it, we can put these 3 steps into a method and use it whenever we want to merge and center cells. One more thing we need to do is add a reference to &lt;u&gt;Microsoft.Office.Interop.Excel.dll&lt;/u&gt; and import the same DLL to be able to use the Excel Interop API.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-5195949416403720060?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/5195949416403720060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2010/06/merging-and-centering-excel-cells-from.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5195949416403720060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5195949416403720060'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2010/06/merging-and-centering-excel-cells-from.html' title='Merging and Centering Excel cells from C# using Office Interop'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-656993679560248622</id><published>2010-06-06T22:58:00.001+05:30</published><updated>2010-06-06T22:58:57.481+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>How to make your Windows form appear “Always on Top”</title><content type='html'>&lt;p&gt;Most of us would have seen and used the Task Manager which is an integral part of Windows. One key behavior exhibited by the task manager is that if its “Always on top” option is turned on, the window will remain open even if focus is moved to another window. So suppose you have notepad and task manager open and the Always on top option is turned on. Now, even if you have set the focus inside notepad and are able to type in notepad, the foreground form will still appear to be Task manager. It makes sense to have this option in applications like Task manager. For example, suppose you want to see the spikes in memory usage or network bandwidth in real time as you use a particular application. It will be easy to have the application open and use it while Task manager is on top so that the changes are visible in real time. In general, this behavior would seem appropriate for many applications that provide system level information in real time.&lt;/p&gt;  &lt;p&gt;Having said that, usage of this option can also make sense for user applications, especially for applications which provide some features that work across multiple other applications. For example, I was recently developing an application that provides a history feature in the Windows clipboard (by default Windows clipboard allows a single item to be maintained on the clipboard so this tool was designed to have multiple items on the clipboard and allow pasting of any item from within those) and works across all Windows applications. I felt it would be great to have the Always on top kind of functionality in the form for this application since it would let users always see what is there in the clipboard currently thereby letting him choose the right text/image to paste. As it turns out, enabling this behavior for your applications is really easy if you are using .Net. All you need to do is set the property named &lt;strong&gt;TopMost&lt;/strong&gt; to &lt;strong&gt;True&lt;/strong&gt; for the form that you want to always appear on top. Something like,&lt;/p&gt;  &lt;div&gt;   &lt;div class="csharpcode"&gt;     &lt;pre class="alt"&gt;mainForm.TopMost = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt; .Net and hence, Windows will handle the rest of the stuff for you; you don’t need to do anything else. Isn’t that really easy? I guess that’s the power that frameworks make available to developers and help in improving their productivity.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-656993679560248622?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/656993679560248622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2010/06/how-to-make-your-windows-form-appear.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/656993679560248622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/656993679560248622'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2010/06/how-to-make-your-windows-form-appear.html' title='How to make your Windows form appear “Always on Top”'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-597251395774103139</id><published>2010-06-06T18:19:00.001+05:30</published><updated>2010-06-06T18:19:44.670+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Problem with SSL in SQL Reporting Services</title><content type='html'>&lt;p&gt;When you do a fresh install of the &lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/trial-software.aspx" target="_blank"&gt;SQL Server&lt;/a&gt;, you get an option to install and configure or only install Reporting Services along with the Database engine. If you choose the install and configure option, the Report Server and Report Manager websites will be created and configured for you by the wizard itself (along with a bunch of other stuff like the databases used by Reporting Services). However, it seems the wizard configures the websites to use SSL and when you try to browse the websites using the default URLs – &lt;a href="http://localhost/reports"&gt;http://localhost/reports&lt;/a&gt; and &lt;a href="http://localhost/reportserver"&gt;http://localhost/reportserver&lt;/a&gt;, you get this error:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Digging deeper, if we look at the RSReportServer.config file which we can find in &lt;strong&gt;&amp;lt;installation directory&amp;gt;:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer&lt;/strong&gt; (this is the location for SQL 2008 R2, for SQL 2008 the folder name should be &lt;strong&gt;MSRS10.MSSQLSERVER&lt;/strong&gt;) , we can find the configuration setting which causes this. Within the &amp;lt;configuration&amp;gt; node, there should be an element as below,&lt;/p&gt;  &lt;div&gt;   &lt;div class="csharpcode"&gt;     &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Add&lt;/span&gt; &lt;span class="attr"&gt;Key&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;SecureConnectionLevel&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;Value&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;2&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;The value of the &lt;a href="http://msdn.microsoft.com/en-us/library/ms155384.aspx" target="_blank"&gt;SecureConnectionLevel&lt;/a&gt; setting can vary from 0-3, with a higher value indicating a greater level of security. In order to avoid using SSL, we need to change the value to 0. After changing this value and saving the config file, if we try hitting the Report manager or Report server site, it should start working. One surprising thing that I found was that there was no way (at least I couldn’t find one) to change this setting from the &lt;a href="http://msdn.microsoft.com/en-us/library/ms156305.aspx" target="_blank"&gt;Reporting Services Configuration Manager&lt;/a&gt;. Even though we can add/remove the certificates which will be used by SSL, even if we delete all certificates from the configuration manager, it still doesn’t stop using SSL. But hopefully this post will help you to change it from the config file and get rid of the error.  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-597251395774103139?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/597251395774103139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2010/06/problem-with-ssl-in-sql-reporting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/597251395774103139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/597251395774103139'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2010/06/problem-with-ssl-in-sql-reporting.html' title='Problem with SSL in SQL Reporting Services'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-2349885078068284309</id><published>2010-04-13T15:30:00.001+05:30</published><updated>2010-04-13T15:30:45.183+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Powerful Disk management features in Windows 7</title><content type='html'>&lt;p&gt;As you all might have read or heard, Visual Studio’s latest version has been shipped – VS 2010. So I decided to get rid of Visual Studio 2008 from my machine and install the latest (and greatest) version. Unfortunately, I didn’t have enough space in my hard disc for installing it – there was 6 GB free space only in my OS drive (C drive) and Visual Studio 2010 Ultimate needs 6GB of space for itself. However, I had lots of free space in the other drives so I was wondering if somehow I could magically extend the OS drive by borrowing space from the other drives. Enter Windows 7 disk management. &lt;/p&gt;  &lt;p&gt;To start using the built in disk management utility in Windows 7, just type “disk management” in the start box and click on the “Create and format hard disk partitions” link which should appear almost instantaneously. The start menu should look something like below.&lt;/p&gt; &lt;a href="http://lh3.ggpht.com/_Saa_LJZkn2o/S8RAu1UnhaI/AAAAAAAABqc/sH7HlkZ0P8s/s1600-h/image%5B12%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_Saa_LJZkn2o/S8RAwB4PJLI/AAAAAAAABqg/esXZlQUlifA/image_thumb%5B8%5D.png?imgmax=800" width="411" height="460" /&gt;&lt;/a&gt;   &lt;p&gt;The disk management UI is fairly intuitive and shows information about the drives on your hard disc in a tabular as well as graphical format. This is what it showed for my machine.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Saa_LJZkn2o/S8RAxo0YdpI/AAAAAAAABqk/CB3S_21BFWI/s1600-h/image%5B15%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_Saa_LJZkn2o/S8RAy0GmmLI/AAAAAAAABqo/wrwQltwWBy0/image_thumb%5B11%5D.png?imgmax=800" width="644" height="370" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As we can see, there are 3 drives as well as a system partition of 300MB. This snapshot shows information after I extended the drive:). The C: drive was only 40 GB earlier. So let me mention the steps that I followed to extend C: from 40GB to 60GB by taking 20GB from D: drive.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Backup data from D: - I copied the data to E: since I had a lot of free space in that drive&lt;/li&gt;    &lt;li&gt;Delete the D: - We need to do this to make the space available for use in another drive. To delete the drive, right click on it in the graph and select “Delete Volume”&lt;/li&gt;    &lt;li&gt;Extend C: – To do this, right click on the C drive in the graph and select “Extend Volume”. A wizard will open up asking for the amount of space you want to add to the existing space in the drive. Enter an appropriate amount of space and complete the wizard to extend the volume&lt;/li&gt;    &lt;li&gt;Recreate D: – Right click in the unallocated space between C: and E: and select the option to create a new Simple volume. Use all the space available when prompted to enter the space to be used for the drive and complete the wizard.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;NOTE: In case the UI shows “At risk” for any of the drives, it will not allow the volume extension. In this case, click on Action –&amp;gt; Rescan disks from the menu to refresh the drive information. This should hopefully resolve the “At risk” errors, unless there is something seriously wrong with your disc :)&lt;/p&gt;  &lt;p&gt;I really loved the disk management utility shipped with Windows and hopefully, this post will help highlight how easy yet powerful this utility really is. Hope this also helps you in resolving similar space crunch issues.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-2349885078068284309?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/2349885078068284309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2010/04/powerful-disk-management-features-in.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/2349885078068284309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/2349885078068284309'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2010/04/powerful-disk-management-features-in.html' title='Powerful Disk management features in Windows 7'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_Saa_LJZkn2o/S8RAwB4PJLI/AAAAAAAABqg/esXZlQUlifA/s72-c/image_thumb%5B8%5D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-8613611756247760878</id><published>2010-04-12T17:53:00.000+05:30</published><updated>2010-04-13T14:18:06.478+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Having the right mindset when using a TO DO list</title><content type='html'>&lt;p&gt;Many of us use To Do lists to keep track of our immediate and future tasks, some maintain it more religiously than others; some rely on it much more than others. Generalizing, To Do lists are known to be a good practice to follow and provides many benefits, some of which being:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Provides clarity on how much workload you are under and should expect in the near future&lt;/li&gt;    &lt;li&gt;Streamline your activities and reduce randomization&lt;/li&gt;    &lt;li&gt;Can also be used to act as a repository of completed tasks which can be useful when you are trying to review the work you have done with your manager&lt;/li&gt;    &lt;li&gt;Allows prioritization of work&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Given all these benefits that To Do lists provide, there seems a compelling reason to maintain them. There are also plenty of articles, like this &lt;a href="http://www.dumblittleman.com/2010/03/how-to-tame-your-to-do-list.html" target="_blank"&gt;one&lt;/a&gt;, available on the Internet providing suggestions on how to get the best out of using them. However, I would also like to highlight some traps that one may risk falling into when using these lists.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Overreliance on To Do lists&lt;/strong&gt; : Once you start using to do lists, you can end up feeling the need to put the smallest of tasks that you need to complete in this list. The problem with this approach is, after a period of time, you might start losing confidence in your own memory and feel that you absolutely need to enter the tasks in the list in order to be able to remember them&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Fiddling with the list too frequently&lt;/strong&gt; : Another habit that some people develop is to be obsessed with their lists and reviewing it every hour and making unnecessary changes. This is quite obviously not useful since valuable time is wasted in updating the to do list instead of spending it on doing productive work. The ideal way to maintain the list up to date would be to review the list and update, if needed, in the morning – this would give you an idea of what all tasks you need to complete on that day – and reviewing and updating at the end of day – you can mark the completed tasks and add any new ones/change existing ones based on the day’s happenings&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Incomplete To Do lists&lt;/strong&gt; : This is arguably much more damaging than being over reliant on the lists. If you are lazy in updating the list, you might miss adding some tasks to the list and since you have the false comfort that there is a To do list, you might not make an effort to remember those tasks. As a result, the task is lost and there is a high likelihood of you missing out on it.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In addition to talking about these pitfalls, I would also like to quote and recommend the strategy that I picked up from a lecture on &lt;a href="http://www.youtube.com/watch?v=oTugjssqOT0" target="_blank"&gt;Time Management by Randy Pausch&lt;/a&gt;. According to him, one should break up the To do list into a matrix as below&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Important – Due Soon (I)&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Important – Not Due Soon (II)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Not Important – Due Soon (III)&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Not Important – Not Due Soon (IV)&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;* The numbers in the brackets indicate the order in which the quadrants must be visited to pick up new tasks&lt;/p&gt;  &lt;p&gt;Essentially, there are 2 columns – tasks can be Due soon or Not due soon; and there are 2 rows – tasks which are Important or Not important. The mistake that most people make, according to Randy, is to take up Unimportant tasks just because they are due soon. The ideal thing to do is to take up and complete ALL Important tasks, ones which are Due soon first and then, the ones which are not due soon. Only if you have no pending important tasks should you take up Unimportant ones. The reasoning being that, when you are working on Important tasks which are not due soon, the Unimportant – Due soon ones can either be discarded (because they are not important) without any problems or they might become important in which case they will move to the first row and can be taken up next. I have been following it religiously ever since I saw his lecture and can vouch for its effectiveness. Hope you find it useful too. &lt;/p&gt;  &lt;p&gt;If one manages to avoid falling into the traps I have mentioned above and maintain an accurate but practical to do list, it is bound to prove very useful in managing your time and work. So go ahead and give it a try, trust me, you will be glad you took the plunge.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-8613611756247760878?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/8613611756247760878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2010/04/having-right-mindset-when-using-to-do.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/8613611756247760878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/8613611756247760878'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2010/04/having-right-mindset-when-using-to-do.html' title='Having the right mindset when using a TO DO list'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-4915583739042790417</id><published>2010-04-09T23:56:00.000+05:30</published><updated>2010-04-09T23:56:00.546+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Current Affairs'/><title type='text'>Blogging v/s Micro blogging – Follow up post</title><content type='html'>&lt;p&gt;Some time back, I had written about the uptrend in&amp;#160; the number of people turning away from blogging and jumping onto micro blogging in this &lt;a href="http://sanketvasa.blogspot.com/2008/12/will-microblogging-replace-blogging.html" target="_blank"&gt;post&lt;/a&gt;. As I mentioned in that post, I feel both these platforms for expressing oneself are going to co-exist in the near future at least. Not only that, we might also see much more integration between the 2 platforms. One such example of combining the power of both these 2 mediums can be seen on a number of popular blogs these days. People nowadays read blog posts and then, spread word about it by talking about the post on their micro blog networks. This is another means of word of mouth publicity. The blog owners, fully aware of this, have started to integrate the comments that people leave on the micro blogs onto their own blogs. So, in effect, anyone who visits the blog now will not only see the comments people have left on that blog itself but also a complete history of what people are saying about that blog post on the micro blogging network. One of the big reasons why this has become possible is also due to the powerful APIs being exposed by micro blogs like Twitter. These APIs allow the consumers to extract exactly the kind of data they are interested in and consume it in any way they want to. &lt;/p&gt;  &lt;p&gt;I feel this kind of interaction is only going to grow in the future and this augurs well for us, bloggers and blog readers alike, since we will have better ways to exchange information and knowledge with a larger set of people.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-4915583739042790417?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/4915583739042790417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2010/04/blogging-vs-micro-blogging-follow-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4915583739042790417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4915583739042790417'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2010/04/blogging-vs-micro-blogging-follow-up.html' title='Blogging v/s Micro blogging – Follow up post'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-6851106873916120756</id><published>2010-04-06T19:46:00.001+05:30</published><updated>2010-04-13T14:18:06.479+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>One of the best ways to relax</title><content type='html'>&lt;p&gt;I have been based out of Hyderabad for close to 3 years now and since my home town is in Mumbai, I frequently travel back and forth between the 2 cities. My preferred mode of transport is via train, which takes around 14-15 hours to cover the distance. From the time I remember, I have always liked travelling in long distance trains but recently, the love for such journeys has grown mainly because I have found a great way to relax and rid myself of all the tensions – Standing at the door of the moving trains.&lt;/p&gt;  &lt;p&gt;Now I know this is something not very advisable and I completely agree that it isn’t very safe but according to me, it is comparatively safer in long distance trains because there isn’t much crowd so the chances of you falling off because of someone’s push are reduced drastically. Also, if you take the necessary precautions i.e. holding onto the handles tightly at all times and maintaining good balance, this can be a very enjoyable experience. The best part about doing this is being able to take in the sights of the country place and enjoy the strong breeze blowing against you as the train hurtles down the track at almost 70-80 KPH. I realized the enormity of the mood change that this can bring about yesterday. I started from Mumbai on Sunday night and was expecting to reach Hyderabad by around Monday noon. However, the train had some engine problems along the way and before I knew it, we were already running late by a couple of hours. To add to the problems caused by the immense heat, there was unbearable chatter going on around my seat thanks to half a dozen kids who kept running around and shouting at the top of their voice all the time. All this made me very irritated and I desperately needed some way to cool down. So, after having reached my reading target for the day (I was reading Atlas Shrugged by Ayn Rand, awesome book!!!), I decided to start up some music on my MP3 player and headed to the door. Just 5 minutes of standing there and I could hardly believe the change in my mindset. I was completely relaxed, enjoying the wind hitting me with a strong force and humming the songs I was listening to. Even though it was slightly difficult to breathe at times because of the strong breeze, I thoroughly enjoyed it and those 20-30 minutes at the door made the rest of the journey bearable. It also kept me refreshed during the entire day so all in all, it was an awesome experience.&lt;/p&gt;  &lt;p&gt;One can argue that the relaxation can also be attributed to the power of music and I would agree with it 100% but even without music, just standing at the door and enjoying the ride helps in keeping aside all the troubling thoughts and feeling refreshed. However, one obvious but very important disclaimer is that one should try this if, and only if, they are strong enough and confident of being able to take care of themselves.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-6851106873916120756?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/6851106873916120756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2010/04/one-of-best-ways-to-relax.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/6851106873916120756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/6851106873916120756'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2010/04/one-of-best-ways-to-relax.html' title='One of the best ways to relax'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-626270391455430203</id><published>2010-03-17T17:00:00.001+05:30</published><updated>2010-04-13T14:18:06.480+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Dandeli visit (continued…)</title><content type='html'>&lt;p&gt;In the previous &lt;a href="http://sanketvasa.blogspot.com/2010/03/one-helluva-experience-dandeli-visit.html" target="_blank"&gt;post&lt;/a&gt;, I talked about the first day of our trip to Dandeli. Moving forward, the second day was the most happening of them all. The day started with Rappelling down a cliff of about 50-60 feet. I had done it a couple of times before and hence, was not too scared this time around. Rappelling was fun but was not as good as we expected. Also, the sun was beating down real hard by the time we started and hence, most of us were sweating like dogs. The sun was not able to discourage us from taking some really funny and weird photos though before we started rappelling. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Saa_LJZkn2o/S6C9FzPiw1I/AAAAAAAABpA/2qKe0rr5PGw/s1600-h/DSC04211%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="DSC04211" border="0" alt="DSC04211" src="http://lh3.ggpht.com/_Saa_LJZkn2o/S6C9Gw33suI/AAAAAAAABpE/hjyV3KqZRQ8/DSC04211_thumb.jpg?imgmax=800" width="184" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After rappelling, we went to the river front again, this time for a doze of natural Jacuzzi and Kayaking. To reach the actual Jacuzzi spot, which was basically a part of the river where the passage was very narrow thereby causing the water force to be higher, we took a saucer like boat which was called the Cormandel. The ride was very relaxing but the real fun was about to start once we got into the Jacuzzi. I must confess, I have experienced artificial Jacuzzi many times but this one was 100 times better (and more dangerous). The flow of water was so strong, it took tremendous efforts just to maintain your position. In fact, I was almost washed away when trying to get out of the Jacuzzi. We also got to experience Kayaking which was a first for me, and for most of us. This one was fun again but tiring and a bit scary, specially for me since I almost managed to overturn the Kayak before even starting out :). Thankfully though, I managed to reach back to the shore safely after kayaking for about half an hour. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Saa_LJZkn2o/S6C9IPgpJ9I/AAAAAAAABpI/qSUU6ZRmnsQ/s1600-h/IMG_0362%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="IMG_0362" border="0" alt="IMG_0362" src="http://lh4.ggpht.com/_Saa_LJZkn2o/S6C9JMA3C8I/AAAAAAAABpM/9dN3XuC-bAM/IMG_0362_thumb.jpg?imgmax=800" width="244" height="184" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;There were only 3 Kayaks available for use at a time so during the time others would take their turn at kayaking, the rest of us were fooling around in water, trying our hand at swimming, diving etc.&lt;/p&gt;  &lt;p&gt;By the time all this was over, it was well past noon and we were exceedingly hungry. After getting back to the resort and treating ourselves to a good lunch, we rested for a while and then set off for River crossing. This was a bit of a let down because the rope which we were using for crossing the river was too low. So even if we would do it right, we would still be half submerged in water. It was still fun though and it got pretty dark by the time we got back to the resort. We again had a camp fire and then, dinner and walks again. We initially had plans to stay up all night but most of us were dead tired and slept off around midnight.&lt;/p&gt;  &lt;p&gt;The last day started pretty early since we had to leave for the night safari around 5 in the morning. I was very excited about the safari since I love animals and I had hopes of catching glimpses of at least 3-4 different animals. However, it just turned out to be a trek of 5-6 km and a climb of about 500 stairs to a cave which housed a small shivling. By the time we made it back to the place where we started, we were all very exhausted. The sole consolation was catching a glimpse of 2-3 spotted deer when we were driving out of the jungle.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Saa_LJZkn2o/S6C9KgWtFxI/AAAAAAAABpQ/n__CWHKXMhU/s1600-h/IMG_0430%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="IMG_0430" border="0" alt="IMG_0430" src="http://lh4.ggpht.com/_Saa_LJZkn2o/S6C9L8bkTuI/AAAAAAAABpU/GF_EkvNWnQQ/IMG_0430_thumb.jpg?imgmax=800" width="244" height="184" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Our last activity was a crocodile watch which was much more exciting than the trek/safari. For the first time in my life, I managed to see a crocodile for real and it was simply awe-inspiring to see that huge animal, the meanest of all killing machines. We also saw a couple of baby crocodiles feeding on chicken and kites and sea gulls fighting for their piece of the chicken with the crocodiles.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Saa_LJZkn2o/S6C9NJvJX-I/AAAAAAAABpY/cMDHlEfB2aI/s1600-h/IMG_0432%5B2%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="IMG_0432" border="0" alt="IMG_0432" src="http://lh4.ggpht.com/_Saa_LJZkn2o/S6C9O-sQObI/AAAAAAAABpc/Wr5l1AXaQu0/IMG_0432_thumb.jpg?imgmax=800" width="244" height="184" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After returning to the resort following the crocodile watch and having lunch, we packed our stuff and started on our journey back home. The return train journey was a bit mellowed down because most of us had not slept well for the past 2-3 days and were very tired. Still, we managed to muster up energy for some more Dumb cherads but the same story unfolded – all movies being guessed within a minute. We reached Hyderabad on Monday morning and quickly dispersed as office beckoned. I think it would be pretty apparent from my description here that the trip was just too good but I would still like to explicitly state it again – This was one of my best trips ever!!! Special thanks to all the people who accompanied and bore with me during the trip. And for those of you reading this, if you like adventure sports, a visit to Dandeli must certainly be high up in your list of places to visit.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-626270391455430203?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/626270391455430203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2010/03/dandeli-visit-continued.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/626270391455430203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/626270391455430203'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2010/03/dandeli-visit-continued.html' title='Dandeli visit (continued…)'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_Saa_LJZkn2o/S6C9Gw33suI/AAAAAAAABpE/hjyV3KqZRQ8/s72-c/DSC04211_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-5866741022205481789</id><published>2010-03-17T14:10:00.001+05:30</published><updated>2010-04-13T14:18:06.481+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>One helluva experience – Dandeli visit</title><content type='html'>&lt;p&gt;The first week of March provided a 3 day long weekend thanks to Holi. So me and 6 of my friends decided to go for an adventure trip to &lt;a href="http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=dandeli+karnataka&amp;amp;sll=17.385044,78.486671&amp;amp;sspn=0.643479,1.234589&amp;amp;ie=UTF8&amp;amp;hq=&amp;amp;hnear=Dandeli,+Uttara+Kannada,+Karnataka,+India&amp;amp;ll=15.32591,74.610901&amp;amp;spn=0.325153,0.617294&amp;amp;z=11" target="_blank"&gt;Dandeli&lt;/a&gt;, situated in the state of Karnataka. And boy, was it an adventurous trip or what – one of the best trips ever (an opinion shared by most people on the trip).&lt;/p&gt;  &lt;p&gt;The adventure started earlier than we had thought. It started off with us nearly missing the train to reach Dandeli. We were supposed to board the train from Hyderabad Deccan and had hired an Innova to reach the station. However, on the way, we got stuck thanks to one of those Telangana rallies that have become commonplace in Hyderabad these days. In fact, we were pretty sure we will miss the train and as a last ditch effort, we decided to give up on the cab midway and took auto rickshaws to Lingampally, where the train was supposed to halt next after Deccan. But the misfortune didn’t stop there. Since there were 7 of us, we took 3 autos and all of them had some problem or the other on the way. The auto I was in couldn’t go beyond 30 KPH and after 10 mins of frustration and trying to push the driver to go faster (including monetary incentives), we gave up and changed autos. The other 2 autos had breakdowns along the way and only added to the nervousness. However, in the end, all was OK and we reached the station on time. In fact, the train was late by some 15-20 mins so we were pretty safe by then.&lt;/p&gt;  &lt;p&gt;The train journey, a pretty long one, was a lot of fun. After the initial settling down which took about half an hour, we started off playing Uno but got bored of it soon after that. Thereafter started the marathon Dumbsies session. It lasted for 4-5 hours and after a certain point, some of us started looking up names on Internet forums because no matter which movie, Hindi or English, was given, teams were guessing it in less than a minute. The train journey was pretty long, about 16 hours, but it was great thanks to the games and all.&lt;/p&gt;  &lt;p&gt;We reached Alnavar station on Saturday morning where the cab from the resort was waiting to pick us up. After half an hour drive from the station (and some bad singing in the guise of Antakshari along with way), we reached the resort which was pretty decent except the fact that there was no electricity when we reached, and throughout the day in fact. After freshening up and having breakfast, we started off for our first “planned” adventure activity – Rafting, well aware of the good news that the Kali river water was released from the dam that day so we would be able to enjoy the rapids. Personally, I was a bit apprehensive about going for rafting since not only do I not know swimming but I am also afraid of water and panic easily. The rafting experience was really enthralling though and we enjoyed every bit of the 1:30 hours we spent in the water. To get an idea of the thrills we experienced, check out the video below of us tackling one of the 8 rapids (my group is the 3rd one in the video). &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:3cd94dd0-befe-40fd-a03a-53e16e350747" class="wlWriterEditableSmartContent"&gt;&lt;div id="21bdd2ef-5d05-401d-b6d5-2a3ca0ff578f" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=q-03l2tyn8I" target="_new"&gt;&lt;img src="http://lh6.ggpht.com/_Saa_LJZkn2o/S6CVeiSHgNI/AAAAAAAABo8/ph4dwMoGwis/videoec5ad6d820c8%5B3%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('21bdd2ef-5d05-401d-b6d5-2a3ca0ff578f'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/q-03l2tyn8I&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/q-03l2tyn8I&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After coming back from rafting, even though we were exhausted, we were hoping to complete some more activities that day but were advised by the resort owner to rest the remaining part of the day and be fresh for the hectic day that was to follow.&lt;/p&gt;  &lt;p&gt;We had a small camp fire in the evening where we played some fun games. This was followed by dinner and some long, interesting walks. The only real problem at the resort , if I may call it so, was that the cell network was non-existent. So during our walk in the evening, all of us made calls to our loved ones. We decided to experience sleeping in tents that night and even though it was pretty comfortable, I had a slightly unpleasant experience in the early morning because it got really cold (and I forgot to realize there were blankets in the tent that I could have used :) )&lt;/p&gt;  &lt;p&gt;Stay tuned for a follow up post on the remaining 2 days of the trip…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-5866741022205481789?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/5866741022205481789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2010/03/one-helluva-experience-dandeli-visit.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5866741022205481789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5866741022205481789'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2010/03/one-helluva-experience-dandeli-visit.html' title='One helluva experience – Dandeli visit'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_Saa_LJZkn2o/S6CVeiSHgNI/AAAAAAAABo8/ph4dwMoGwis/s72-c/videoec5ad6d820c8%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-7040608912363017734</id><published>2010-02-22T20:19:00.000+05:30</published><updated>2010-02-22T20:19:00.567+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Displaying context menu for system tray icon in C#</title><content type='html'>&lt;p&gt;In the last &lt;a href="http://sanketvasa.blogspot.com/2010/02/creating-system-tray-application-in-c.html" target="_blank"&gt;post&lt;/a&gt;, I talked about creating a system tray icon for applications. Often, there is also a need to show menus when the user clicks this icon. Let’s see how we can accomplish this.&lt;/p&gt;  &lt;p&gt;To enable menus on the system tray icon, we need to use the &lt;strong&gt;ContextMenuStrip&lt;/strong&gt; control. Drop this control from the toolbox onto the form design surface. The control will be displayed in the bottom half, below the actual form. We need to do 3 things now to make the menu work:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Link the menu to the icon – The &lt;strong&gt;ContextMenuStrip&lt;/strong&gt; only represents a menu of options. To make it work, we need to link it to another control, in our case, it is the &lt;strong&gt;NotifyIcon&lt;/strong&gt; control. Select the &lt;strong&gt;NotifyIcon&lt;/strong&gt; control, go to its Properties and set the &lt;strong&gt;ContextMenuStrip&lt;/strong&gt; property to point to the menu control. &lt;/li&gt;    &lt;li&gt;Add the menu options – Select the menu control and go to its properties. For the &lt;strong&gt;Items&lt;/strong&gt; property, click on the Ellipsis to open the Items Collection Editor. Here, we can add the menu items we want to appear in the context menu &lt;/li&gt;    &lt;li&gt;Add event handlers for menu options – Finally, we need to specify what should happen when the menu items are clicked. For this, we need to attach event handlers. Attaching event handlers is pretty straightforward. In the code behind, use the normal &lt;strong&gt;&amp;lt;controlName&amp;gt;.&amp;lt;eventName&amp;gt; += &amp;lt;eventHandler&amp;gt;&lt;/strong&gt; syntax to specify the event handler. For example, for a control named menuExit, we can attach menuExit_Click as a Click event handler using the following line: &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;menuExit.Click += &lt;span class="kwrd"&gt;new&lt;/span&gt; EventHandler(menuExit_Click);&lt;/p&gt;  &lt;p&gt;You can add as many menu options as you want. In fact, it is quite common to have applications like &lt;a href="http://www.freedownloadmanager.org/" target="_blank"&gt;download accelerators&lt;/a&gt; and &lt;a href="http://www.microsoft.com/security/products/mse.aspx" target="_blank"&gt;anti virus&lt;/a&gt; software to run in the background with an icon in the system tray that has huge (often multi level) menus. But now, creating such menus is no longer limited to large product companies. You also know the trick for making menus like these :-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-7040608912363017734?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/7040608912363017734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2010/02/displaying-context-menu-for-system-tray.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7040608912363017734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7040608912363017734'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2010/02/displaying-context-menu-for-system-tray.html' title='Displaying context menu for system tray icon in C#'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-5013233903657738707</id><published>2010-02-15T20:18:00.001+05:30</published><updated>2010-02-15T20:18:35.246+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Difference in Repeat behavior between Windows Media Player and Winamp</title><content type='html'>&lt;p&gt;Most of you would have used at the Windows media player (WMP) or Winamp or both as your music player of choice. Both of them provide 2 options to control the sequence in which songs are played. These are &lt;strong&gt;Shuffle&lt;/strong&gt; and &lt;strong&gt;Repeat&lt;/strong&gt;. The definition of Shuffle is the same in both the players and basically means that instead of the songs being played sequentially, they will be chosen randomly from the playlist. However, there is a subtle difference in the definition of Repeat. Let me try to highlight this difference in this post.&lt;/p&gt;  &lt;p&gt;There are 4 combinations possible between Shuffle and Repeat. The table below highlights the behavior of each player for the various combinations.&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="133"&gt;         &lt;p align="center"&gt;&lt;strong&gt;Shuffle/Repeat combination&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="133"&gt;         &lt;p align="center"&gt;&lt;strong&gt;Windows Media Player&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="133"&gt;         &lt;p align="center"&gt;&lt;strong&gt;Winamp&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Shuffle – OFF         &lt;br /&gt;Repeat – OFF          &lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;Plays songs in sequence. Cycles to the beginning of the list once the last song is played&lt;/td&gt;        &lt;td valign="top" width="133"&gt;Plays songs in sequence. Stops playing songs once the last song is played&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Shuffle – OFF         &lt;br /&gt;Repeat – ON          &lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;Plays songs in sequence. Cycles to the beginning of the list once the last song is played&lt;/td&gt;        &lt;td valign="top" width="133"&gt;Plays songs in sequence. Cycles to the beginning of the list once the last song is played&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Shuffle – ON         &lt;br /&gt;Repeat – OFF          &lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;Plays songs randomly. Cycles to the beginning of the list once the last song is played&lt;/td&gt;        &lt;td valign="top" width="133"&gt;Plays songs randomly and stops when each song in the playlist has been played once&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Shuffle – ON         &lt;br /&gt;Repeat – ON          &lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;Plays songs randomly. Songs can be repeated even when all the songs in the playlist have not yet been played at least once&lt;/td&gt;        &lt;td valign="top" width="133"&gt;Plays songs randomly. Songs can be repeated even when all the songs in the playlist have not yet been played at least once&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;As is evident from the above table, the difference in the behaviors of both the players comes when Repeat is OFF. This is because of 2 reasons:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Repeat in Winamp means turning repeat of song &lt;strong&gt;and&lt;/strong&gt; playlist on/off&lt;/li&gt;    &lt;li&gt;Repeat in WMP only means turning repeat of songs on or off. Repeat of playlist is not under the control of the user. Once the playlist is complete, WMP will automatically cycle back to the beginning of the list.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Given this understanding of Repeat, when using Shuffle in WMP, based on the playlist type, we should set the Repeat as on/off as follows:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Playlist with few songs : We might want to set Repeat OFF so that all the songs in the playlist have an equal chance of being played. No song will be repeated till ALL songs have been played once&lt;/li&gt;    &lt;li&gt;Playlist with large number of songs : We might want to set Repeat ON otherwise we might have to wait a long time before a song we hear once gets played again&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hope this post helps in clarifying the difference in behavior of both these popular players and aids you in choosing the right setting when listening to your favorite songs.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-5013233903657738707?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/5013233903657738707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2010/02/difference-in-repeat-behavior-between.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5013233903657738707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5013233903657738707'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2010/02/difference-in-repeat-behavior-between.html' title='Difference in Repeat behavior between Windows Media Player and Winamp'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-428805167647381958</id><published>2010-02-04T14:28:00.001+05:30</published><updated>2010-02-04T14:28:25.597+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Creating a system tray application in C#</title><content type='html'>&lt;p&gt;Many a times, we want to create applications that sit in the system tray (the area where the clock, volume control etc are displayed) instead of/in addition to the taskbar. Or, when the user minimizes the application window, we would want it to work in the background and display an icon for it in the system tray. Doing this is very easy and can be accomplished by the following steps:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Hiding the form&lt;/li&gt;    &lt;li&gt;Turn OFF the taskbar display&lt;/li&gt;    &lt;li&gt;Setting properties for display in system tray&lt;/li&gt; &lt;/ol&gt;  &lt;ul&gt;   &lt;li&gt;Hiding the form – This is pretty straightforward and needs just 2 lines of C# code&lt;/li&gt; &lt;/ul&gt;  &lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;   &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;     &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.WindowState = FormWindowState.Minimized;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Hide();&lt;/pre&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;where “this” refers to the form being hidden&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Set taskbar display to be OFF – This needs setting just a single property which can be set either at design time or at run time, as follows&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;&lt;br /&gt;  &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.ShowInTaskbar = &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;again, “this” refers to the form being hidden&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Setting properties for display in system tray – To display the application icon in the system tray, we need to drop the &lt;strong&gt;NotifyIcon control&lt;/strong&gt; from the toolbox onto the form. The control will be displayed under the actual form on the design surface. After dropping the control, we can set the following properties for it:&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;ul&gt;&lt;br /&gt;    &lt;li&gt;Text – This is the text that will be displayed when you hover the mouse over the system tray icon&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;    &lt;li&gt;Icon – An &amp;quot;ico” icon file which will be used as the icon in the system tray&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;    &lt;li&gt;BalloonTipText – The text which will be displayed when you enable the balloon tip&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;    &lt;li&gt;BalloonTipTitle – The title of the balloon tip when it is enabled&lt;/li&gt;&lt;br /&gt;  &lt;/ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;So there you have it, 3 simple steps to enable system tray display for your application. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-428805167647381958?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/428805167647381958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2010/02/creating-system-tray-application-in-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/428805167647381958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/428805167647381958'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2010/02/creating-system-tray-application-in-c.html' title='Creating a system tray application in C#'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-1902320279336953010</id><published>2009-11-08T19:44:00.001+05:30</published><updated>2009-11-08T19:44:15.664+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>SQL Server 2008 Compression Features</title><content type='html'>&lt;p&gt;SQL Server 2005 introduced the concept of variable length fields to enable space conservation by using only the storage needed for the value even if the declared storage is more than that. SQL Server 2008 takes storage space saving not only a step further, but a giant leap ahead. This is especially important since databases in today’s times are reaching sizes of Tera bytes and beyond. I will be covering some high level concepts behind the compression features introduced in SQL 2008. For more detailed reading, you can follow the links provided at the bottom of the post.&lt;/p&gt;  &lt;p&gt;Essentially, SQL 2008 provides 2 ways to compress the data:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Backup Compression&lt;/li&gt;    &lt;li&gt;Data Compression&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Row Compression&lt;/li&gt;      &lt;li&gt;Page Compression&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Backup compression&lt;/strong&gt; enables shrinking the size of the backup files when they are written to the file system. Since almost all important databases have a backup strategy in place, this is a feature that should be applicable in a wide range of scenarios. It can be enabled either on an individual basis using an option in the &lt;strong&gt;Backup command&lt;/strong&gt; or using the system SP &lt;strong&gt;sp_configure&lt;/strong&gt;. Restoring would be the same regardless of whether the backup is compressed or not except the fact that older versions of SQL Server would not be able to read the compressed backups.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Data compression&lt;/strong&gt; is a slightly more complex topic as compared to Backup compression. Let me first explain the 2 compression techniques in Data compression.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Row compression&lt;/strong&gt; uses variable length storage technique for all data types, including fixed data types. For the application, it would still seem that the fixed types are implemented as such but under the hood, SQL Server stores them using variable storage. Row compression doesn’t impose a very big overhead on the system and should &lt;strong&gt;generally be enabled on all tables and indexes&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Page compression&lt;/strong&gt; is a slightly more complicated beast. First and foremost, when you enable Page compression, Row compression is enabled automatically. Additionally, Page compression uses something called Column prefix and Page dictionary to provide a greater degree of compression. &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;In &lt;strong&gt;Column prefix&lt;/strong&gt;, SQL Server stores the common values at the beginning of values in a column in the &lt;strong&gt;CI(Compression Information)&lt;/strong&gt; section and the actual cells will have pointers to the CI block&lt;/li&gt;      &lt;li&gt;For &lt;strong&gt;Page dictionary&lt;/strong&gt;, a 'dictionary' of repeating column values on the given page is created in the CI structure, and again, pointers to the value in the dictionary are left in the original column value location&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Page compression involves additional overhead in case of querying as well as inserts and updates. So it &lt;strong&gt;must be enabled selectively&lt;/strong&gt;. Generally, it should be enabled only for tables and indexes with very few updates and/or high number of scans.&lt;/p&gt;  &lt;p&gt;SQL Server also provides some DMVs and system SPs to help developers/administrators to get a better understanding of the impact and possible gains from enabling compression. Some of these are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;sp_estimate_data_compression_savings&lt;/strong&gt; - Allows you to estimate the savings you will be able to perceive for a given table/index&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;sys.dm_db_persisted_sku_features&lt;/strong&gt; - To determine whether a database is using compression&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;data_compression_desc column in the catalog view sys.partitions&lt;/strong&gt; - To determine what is compressed, and how (row or page)&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;sys.dm_db_index_operational_stats&lt;/strong&gt; - To determine the number of Scans (S) and Updates (U) on a table&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Some additional points about SQL Compression:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The data compression feature is available in the &lt;strong&gt;Enterprise&lt;/strong&gt; and &lt;strong&gt;Developer&lt;/strong&gt; editions of SQL Server 2008 only&lt;/li&gt;    &lt;li&gt;It is recommended to compress one table, index, or partition at a time in most cases because compression requires additional temporary structures to be created which impose space and processing overheads&lt;/li&gt;    &lt;li&gt;It is also recommended to compress smaller objects before larger ones so that the space freed up by the smaller ones can be utilised as temporary storage when compressing the larger objects.&lt;/li&gt;    &lt;li&gt;After data compression has completed, the space saved is released to the respective data file(s). However, the space is not released to the file system, because the file size doesn’t reduce automatically as part of data compression. There are ways to release the space to the file system, including using &lt;strong&gt;DBCC SHRINKDATABASE&lt;/strong&gt; and &lt;strong&gt;DBCC SHRINKFILE&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;As mentioned earlier, I tried to cover most of the high level concepts that one would need to understand for using compression. There are some excellent articles on MSDN that cover various implementation details and performance benchmarks regarding compression. I am providing a couple of links below, which you can use for reference.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd894051.aspx" target="_blank"&gt;Data Compression: Strategy, Capacity Planning and Best Practices&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/chadboyd/archive/2007/07/28/katmai-sql-2008-data-compression-including-backup-compression.aspx" target="_blank"&gt;Katmai (Sql 2008) - Data Compression (including Backup Compression)&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-1902320279336953010?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/1902320279336953010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2009/11/sql-server-2008-compression-features.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/1902320279336953010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/1902320279336953010'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2009/11/sql-server-2008-compression-features.html' title='SQL Server 2008 Compression Features'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-5613980108941195570</id><published>2009-08-09T23:35:00.001+05:30</published><updated>2009-08-09T23:35:15.749+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Modify SharePoint website Quick Launch</title><content type='html'>&lt;p&gt;So after a series of non Technical posts, I am back at writing some technical ones, starting with this one. I was in a Solution Manager role for the last 6 months so I wasn’t getting my hands dirty with tech stuff as much. But now I am back into a Developer role so hopefully there would be many more tech posts from now on.&lt;/p&gt;  &lt;p&gt;To start with, I would like to talk about a very basic requirement in SharePoint – adding new links to the Quick launch or modifying the existing links. For the uninitiated, Quick launch is the set of links we get on every page (as long as Quick launch is enabled for a web page; I will be talking about enabling Quick launch for new pages in another post) on the left hand side, just below the title of the site. Commonly, you would have links like Shared Documents, Tasks, Calendar etc. in here by default when you create a basic site. Now you might not want some of these links to appear because your site won’t be using a particular feature, for example, you don’t need the calendar and hence, having the Calendar link in the Quick launch would be meaningless. Or suppose you have created a new page of your own and want it to appear in the Quick launch so that users can visit this page from any page they are currently browsing. Both these requirements can be easily accomplished by editing the Quick launch section.&lt;/p&gt;  &lt;p&gt;Here is how you can play around with the Quick launch:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;From any page, click on Site Actions in the top right corner and then click on Site Settings from the drop down that appears(you need to be an admin to have this option available to you)&lt;/li&gt;    &lt;li&gt;In the Site settings page, under the Look &amp;amp; Feel section, there would be a link either called Navigation or Quick Launch, depending on the version of SharePoint Server you are working with&lt;/li&gt;    &lt;li&gt;On clicking this link, a page would open that would show the existing Quick launch items along with options to add a heading, a new link, edit the existing links, change the order of links etc&lt;/li&gt;    &lt;li&gt;After making the changes, click OK to save the changes and you should be seeing the changes on any of the pages with Quick launch from now onwards&lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-5613980108941195570?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/5613980108941195570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2009/08/modify-sharepoint-website-quick-launch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5613980108941195570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5613980108941195570'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2009/08/modify-sharepoint-website-quick-launch.html' title='Modify SharePoint website Quick Launch'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-6261068408091216081</id><published>2009-07-18T20:54:00.000+05:30</published><updated>2009-07-18T20:54:00.843+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Current Affairs'/><title type='text'>Wanted : Some originality in Indian reality TV</title><content type='html'>&lt;p&gt;Ever since the craze of reality shows on Indian television has picked up, we have seen time and time again all the channels blatantly lifting concepts from US or UK based shows and creating Indian versions off them. Be it American Idol to Indian Idol, Big Brother to Big Boss, Fear Factor to Khatron ke Khiladi (can’t blame you if you don’t know when this was launched and when it went off air), Who wants to be a millionaire to Kaun banega crorepati, Are you smarter than a 5th grader to Kya aap paachvi pass se tez hai and so on. &lt;/p&gt;  &lt;p&gt;There were also other stupid/cheap shows which Splitsvilla, Sawaal dus crore ka, 10 ka dum (I guess Salman himself is funding the producer to keep the show running!!!) etc, all in the name of reality television. In case, these shows have also been ripped off some other shows do let me know.&lt;/p&gt;  &lt;p&gt;Till now, according to me, there have been very few shows which have been likeable and logical. The first one is Sa re ga ma pa which incidentally is the father of Indian music reality show craze, Great Indian laughter challenge (minus Sidhu), Kaun banega crorepati (ya ya, I know I have listed it above as a rip off but come on, it had Amitabh Bachhan hosting the show!!!!) and the Bournvita quiz contest. The main reason why I liked these shows was because they weren’t too outrageous and they stuck to the purpose for which the show was designed. &lt;/p&gt;  &lt;p&gt;I sincerely hope that Indian serial makers can think of some creative ideas for the reality shows of the future and stop being the &lt;a href="http://movietonic.com/2007/04/02/part-1-pritam-is-a-copy-cat/" target="_blank"&gt;Pritam&lt;/a&gt; of reality shows.&lt;/p&gt;  &lt;p&gt;PS : I wouldn’t really mind reduction in the number of reality shows either, there have been just far too many shows being started by people in the hope that they will do well by riding on the wave of success of reality shows&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-6261068408091216081?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/6261068408091216081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2009/07/wanted-some-originality-in-indian.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/6261068408091216081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/6261068408091216081'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2009/07/wanted-some-originality-in-indian.html' title='Wanted : Some originality in Indian reality TV'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-4670825285085298404</id><published>2009-07-15T20:01:00.001+05:30</published><updated>2009-07-15T20:01:10.771+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fitness'/><title type='text'>Golden rule for working out in the gym</title><content type='html'>&lt;p&gt;If you are one of those who do weight training i.e. lift weights in the form of dumbbells or barbells, then this is something you should keep in mind come what may : &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;YOU DO NOT NEED TO INCREASE THE WEIGHT YOU LIFT WITH EVERY SET&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Often, people forget that there is a second, and equally important parameter that can be varied while exercising: &lt;strong&gt;Number of repetitions&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Ideally, one should start with a light weight and and gradually increase the weight over 3 or 4 sets. The breakup should be something like below. The number in brackets signify the breakup in case you are doing just 3 sets.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Set 1 – 15 repetitions and Stamina building (same)&lt;/li&gt;    &lt;li&gt;Set 2 – 12 repetitions and Stamina building (12 repetitions and Muscle building)&lt;/li&gt;    &lt;li&gt;Set 3 – 10 repetitions and Muscle building (10 or 8 repetitions and Muscle building)&lt;/li&gt;    &lt;li&gt;Set 4 – 6 to 8 repetitions and Muscle building&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Whether you do 3 sets or 4 sets depends on a number of factors, primary among them being,&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Type of exercise&lt;/li&gt;    &lt;li&gt;Exercise routine&lt;/li&gt;    &lt;li&gt;Your capacity&lt;/li&gt;    &lt;li&gt;How much time you have on hand&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Very often I have seen people increasing the weight repeatedly even when they are struggling to lift lighter weights. I understand that there is always that inner push to increase the weight so that next time you have a conversation with your friend about how much weight you lift, you stand a chance to claim lifting more weight than him. However, doing this is futile as it would, more often than not, lead to improper postures while exercising (for example, bending the back to use it to lift the weight when doing dumbbell biceps) and greatly increase the likelihood of injuries. &lt;/p&gt;  &lt;p&gt;Hence, next time onwards, when you start doing weight training, always keep this point in mind and choose weights accordingly. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-4670825285085298404?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/4670825285085298404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2009/07/golden-rule-for-working-out-in-gym.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4670825285085298404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4670825285085298404'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2009/07/golden-rule-for-working-out-in-gym.html' title='Golden rule for working out in the gym'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-7879181185408203017</id><published>2009-07-05T17:17:00.001+05:30</published><updated>2009-07-05T17:17:58.440+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development'/><title type='text'>Effects of Internet on developers : Positive or negative?</title><content type='html'>&lt;p&gt;I have been thinking recently about what effects the explosion of information on the Internet has been having on software developers and how it has been shaping their skills. On the one hand, one can argue that it has helped them immensely in improving their knowledge and broadening their horizons. It has also helped them in getting answers to their problems quicker than ever, specially with forums like &lt;a href="http://stackoverflow.com" target="_blank"&gt;StackOverflow&lt;/a&gt; and having an abundance of search engines like &lt;a href="http://www.bing.com" target="_blank"&gt;Bing&lt;/a&gt; and &lt;a href="http://www.google.com" target="_blank"&gt;Google&lt;/a&gt; to get relevant links at the click of a button. &lt;/p&gt;  &lt;p&gt;On the flip side though, it has also in some ways made it less likely for the developers to feel the need to investigate into their problems and do thorough debugging and troubleshooting. All they need to do now is to copy paste the error in their favorite search engine and get links to web pages directly giving them the workarounds and resolutions. Even though this does improve their productivity in the short term, over a period of time it always helps for developers to troubleshoot the problems they face. This would enable them to understand the system better, get familiar with the quirks that almost any system typically has and also, the researching that goes on in resolving the problem also helps them to learn more. This &lt;a href="http://www.theatlantic.com/doc/200807/google" target="_blank"&gt;blog post&lt;/a&gt; also talks about a similar problem being caused by search engines but for people in general, not specifically for developers.&lt;/p&gt;  &lt;p&gt;I think that in today’s times, where developers’ time comes at a premium, there has to be a middle ground that needs to be chosen by the developers. It certainly helps and makes sense to make use of the search engines and developer forums to get answers to get unblocked and resolve problems. However, instead of doing a search the moment a problem is encountered, developers must try and see if they can find the resolution themselves and invest time in troubleshooting as much as they can afford to. Only if they cannot get a resolution and time is running out, should they look it up on the Internet.&lt;/p&gt;  &lt;p&gt;What do you think developers should be doing? Would trying to troubleshoot it themselves help or should they just give importance to saving time and resolving problems as soon as possible?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-7879181185408203017?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/7879181185408203017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2009/07/effects-of-internet-on-developers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7879181185408203017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7879181185408203017'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2009/07/effects-of-internet-on-developers.html' title='Effects of Internet on developers : Positive or negative?'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-3694045201014444853</id><published>2009-06-23T17:40:00.001+05:30</published><updated>2009-06-23T17:40:47.318+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Current Affairs'/><category scheme='http://www.blogger.com/atom/ns#' term='Cricket'/><title type='text'>Why India lost in the T20 World cup</title><content type='html'>&lt;p&gt;By now, a lot has been said about India’s unexpected loss in the group stages of the world cup. A lot was expected from the Indian team and they were probably the favorites along with South Africa and Sri Lanka. However, I had my doubts right from the beginning and I had shared this with my friends then itself. Unfortunately, mine and many Indian fans’ worst fears came true.&lt;/p&gt;  &lt;p&gt;There have been many excuses flying around post the debacle, from Indian coach, Indian captain, BCCI and the innumerable so-called experts. Some of the blame has been put on the IPL for tiring Indian players. However, the people making this excuse (read Gary Kirsten) don’t seem to realize that most of the big players from the other major teams were also part of IPL and they also put in just as many hours on the field. According to me, fatigue was not the reason for India’s defeat. Some of the reasons that I feel led to India’s loss are :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Insufficient batting prowess&lt;/strong&gt; : India was missing some of the big players and hardly had any experienced, consistent performers on whom we could have banked upon. The established players were also woefully out of form&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Lazy fielding &lt;/strong&gt;: Our fielding was nowhere near the standard set by teams like South Africa, New Zealand etc. Eventually, these misfields led, in one way or another, to the defeats and cost us dearly (remember Yuvraj misfielding a wide which went for a boundary to concede 4 byes in the last over against England)&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Dhoni&lt;/strong&gt; : In the recent past, a lot of praises had been showered on Dhoni, both as a player and as a captain. He was called the man with the Midas touch and what not. However, those were the times when whatever he did luckily turned out as planned. However, there were many tactics that came unstuck in this world cup. The worst moment was in the match against West Indies. Normally, when India is batting well, Dhoni promotes himself to get the most of the remaining overs, sometimes even coming in at one down. However, in this match, where the West Indian pace bowlers had scared the living daylights out of the Indian batsmen, he chose to protect himself and Yuvraj and sent in Jadeja……bad move Mr.. Dhoni&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Inability to handle quick, short pitched bowling &lt;/strong&gt;: This has long been the bane of Indian cricket and once again, it has been exposed badly. In both the super league matches, we were just not able to survive, let alone score off,the quick short pitched bowling unleashed by the West Indian and English quick bowlers&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Complacency&lt;/strong&gt; : I always get this feeling that the senior Indian cricketers get complacent and perform mostly when their place in the team starts to come under pressure. They are not worried about how their performance, or the lack of it, is going to affect the team nor do they seem to be affected one bit by India’s losses. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I won’t claim to have predicted India losing in the league stages itself but I certainly wasn’t in agreement with the people predicting India to win the world cup. Unfortunately, my feeling came true and we lost….and very badly at that.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-3694045201014444853?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/3694045201014444853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2009/06/why-india-lost-in-t20-world-cup.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3694045201014444853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3694045201014444853'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2009/06/why-india-lost-in-t20-world-cup.html' title='Why India lost in the T20 World cup'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-1294712373552769144</id><published>2009-05-01T17:52:00.001+05:30</published><updated>2009-05-01T17:52:19.355+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Current Affairs'/><title type='text'>Indians desperately need some Etiquettes</title><content type='html'>&lt;p&gt;I have been frequenting some crowded public places (read airports and train stations) over the last few weeks and there have been some pretty frustrating moments during these visits. &lt;/p&gt;  &lt;p&gt;In India, wherever we go, people just don’t have the sense of following queues; everyone wants to get in at the head of the line while being completely oblivious to the fact that there are tons of people standing behind in the queue, patiently waiting for their turn to come. If you don’t have queues then it becomes a bit easy because you know that you should expect chaos. But people don’t behave even when everyone is standing in a queue. Two places where this stood out the most was &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;When going for security checks in the airports, people want to put their stuff the first on the conveyor belt so that they can jump the line and go first for the security check. Come on, going first in the security check queue won’t make your flight take off early and make you reach your destination ahead of time&lt;/li&gt;    &lt;li&gt;I was travelling by the Delhi metro recently and there were operational staff at the station specifically there to make people waiting for the trains to stand in queues and get into the train systematically. But no, even here the typical Indians want to jump the queue, to the extent of pushing and shoving the people standing in the queue just to get into the train soon.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;These are just 2 of the numerous instances where people have pissed me off by their ignorant and uncivilized behavior. If you go to any western country, people are so courteous. They invariably give way and say sorry for the minutest of physical contacts. Out here, pushing and shoving is more like a norm in public places. I feel these are small things that contribute to the perception of a nation of being civilized as well as act as a measure of how hospitable the country is. It is high time we wake up and start being polite, courteous and civilized to our fellow citizens.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-1294712373552769144?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/1294712373552769144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2009/05/indians-desperately-need-some.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/1294712373552769144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/1294712373552769144'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2009/05/indians-desperately-need-some.html' title='Indians desperately need some Etiquettes'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-8702828223929516036</id><published>2009-04-26T17:02:00.001+05:30</published><updated>2009-04-26T17:02:50.416+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Current Affairs'/><title type='text'>Incompetency of the Delhi Police</title><content type='html'>&lt;p&gt;I was travelling by the Delhi Metro yesterday for the first time and I must say it was a pretty pleasant experience, specially for people used to travelling by Mumbai trains. However, there was one thing that stood out like a sore thumb, something that showed the glaring incompetency of the Delhi police. There were constant announcements in the train which went like this :&lt;/p&gt;  &lt;p&gt;“Pickpockets have been identified in the Metro trains, please be careful!!!!”&lt;/p&gt;  &lt;p&gt;Well, how about nabbing the identified pickpockets Delhi police????&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;PS : The Hindi translation of this announcement made more sense and indicated the pickpockets are suspected to be around, not identified ;-)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-8702828223929516036?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/8702828223929516036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2009/04/incompetence-of-delhi-police.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/8702828223929516036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/8702828223929516036'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2009/04/incompetence-of-delhi-police.html' title='Incompetency of the Delhi Police'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-4929042689056317058</id><published>2009-04-19T23:17:00.001+05:30</published><updated>2010-04-13T14:16:52.951+05:30</updated><title type='text'>Multitasking : Not always the right thing to do</title><content type='html'>&lt;p&gt;Multitasking is the art of being able to perform multiple tasks simultaneously. Evidently, doing tasks simultaneously will always be faster than doing them sequentially. But the question to be asked is whether multitasking is always &lt;strong&gt;more effective&lt;/strong&gt; than doing tasks one at a time.&lt;/p&gt;  &lt;p&gt;The reason I feel multitasking is not always good is because the effectiveness or quality of what you do isn’t determined on the basis of the time it took for completion. There are many other factors that also need to be taken into account, for example, being able to remember things. Take my own case for example. I have been struggling to get everything I want to do within the time available at hand, at times it seems like 24 hours a day is just not enough (one of the reasons why I haven’t been able to blog much recently :) ). The alternative I took was to start multitasking almost everything. However, I have recently started feeling the adverse effects of this. I started working on the laptop and talking on the phone simultaneously or watching TV while talking on the phone. In both the cases, I have been noticing that I haven’t been able to recollect a number of times the conversation I had over call just a couple of days back. What I realized is that the attention is getting divided into multiple tasks and hence I was not able to give my best to either case (I am sure my work also suffers when I do such multitasking).&lt;/p&gt;  &lt;p&gt;The main thing to keep in mind is that we should probably not try and multitask stuff that requires significant amount of concentration. For other tasks, we can happily multitask, a common example would be watching TV while walking on the treadmill or listening to music while jogging. &lt;/p&gt;  &lt;p&gt;As evidenced from the above examples, the point I am trying to make is that one needs to be careful of where multitasking is applied in order to be effective at each and everything one does. If applied carefully, multitasking is a powerful weapon that allows you to get more done in a day and be more productive.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-4929042689056317058?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/4929042689056317058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2009/04/multitasking-not-always-right-thing-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4929042689056317058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4929042689056317058'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2009/04/multitasking-not-always-right-thing-to.html' title='Multitasking : Not always the right thing to do'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-5922410152846653034</id><published>2009-04-05T23:05:00.001+05:30</published><updated>2009-04-05T23:05:13.121+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Tennis'/><title type='text'>Federer : Heartbreak again</title><content type='html'>&lt;p&gt;I have been really caught up with work over the past couple of months and just haven’t been able to take time out to write new posts. Well, this week, I had made up my mind to set aside some time and write something. Little did I know however, that I will have to write another post questioning Federer’s future (I had written about this first &lt;a href="http://sanketvasa.blogspot.com/2008/08/sudden-fall-of-maestro-roger-federer.html" target="_blank"&gt;here&lt;/a&gt; but then, Federer seemed to have come back to form and I wrote a post acknowledging this &lt;a href="http://sanketvasa.blogspot.com/2008/10/follow-up-post-on-sudden-fall-of.html" target="_blank"&gt;here&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Yesterday, I had to go through the heartbreak of watching Federer lose in the semi finals of the Sony Ericsson Open to Novak Djokovic. The loss wasn’t as hard to swallow as the manner in which the defeat came. After playing pretty good Tennis in the first set and winning it, Federer lost his way completely and seemed dazed, confused and not knowing what to do. In fact, during this match, one got to see something that is truly a unique sight : Federer smashed his racquet on the court in frustration. For someone like Federer, who has such a calm on court demeanor, it was startling to see him lose his cool and gives us an idea of how bad he must have been playing. He went on to lost the next 2 sets and hence, the match thereby continuing his title drought this year. It just adds to the pain of the loss in the previous ATP tournament where he lost to Murray. Some might say that this slump has been coming for a long time, over the past year probably. Some of the reasons for the current state of affairs could be&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;No Coach&lt;/strong&gt; : Regardless of how great a player you are, there has to be someone who is there to oversee your game, make a note of what’s going right and what’s not and how to keep improving &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Unforced Errors&lt;/strong&gt; : Federer made 47 errors and that too in just a 3 set match, most of those coming in the last 2 sets. One major change in Federer’s game in the last year has been an exponential rise in the errors he has been making. There were times during his glory days when he would go through a 3-4 setter without having his error count reach double digits. And the worrying thing is, the errors are no longer restricted to backhands – even the forehand has started giving way now &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Lack of improvement&lt;/strong&gt; : Federer’s game has been the same for the last 4-5 years, there has been no improvement whatsoever. Compare that with the improvements in his main competitors, Nadal and Murray, and you will know why he has started losing &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Ineffectiveness of serve&lt;/strong&gt; : One of Federer’s main weapons used to be his serve. He didn’t use to hit a bunch of aces like Ivanisevic, Dent etc but he had a very high number of unreturned serves. His serve has lost the sting lately and he hardly gets the free points that he used to get earlier. This has also added to the pressure that his groundstroke now have to withstand from the opponents &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Reduced volleying&lt;/strong&gt; : Federer has also reduced the number of times he comes to the net which is a shame because he has a magical touch at the net &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Having talked about a host of reasons for his losses, I won’t stop there. I would also like to talk about some things that might help him become number 1 again&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Get a coach&lt;/strong&gt; : It’s obvious &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Improve your game&lt;/strong&gt; : It’s high time he adds new dimensions to his game and improves the ones already part of his game; backhand being the first and foremost amongst the items needing improvement &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Get fitter&lt;/strong&gt; : Get rid of that protruding tummy :-) and maybe add some muscle which will add power to his groundstroke as well as his serve &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Back your strength&lt;/strong&gt; : Federer’s strength is the serve and volley game and he should back it to the hilt and continue coming to the net &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;All said and done, I sincerely hope to see Federer get back to his winning ways and break Sampras’ record of 14 Grand Slams because I love seeing Federer win and of course HE IS THE BEST!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-5922410152846653034?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/5922410152846653034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2009/04/federer-heartbreak-again.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5922410152846653034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5922410152846653034'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2009/04/federer-heartbreak-again.html' title='Federer : Heartbreak again'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-4345424823184175460</id><published>2009-02-08T22:01:00.001+05:30</published><updated>2010-04-13T14:18:06.481+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Expectations</title><content type='html'>&lt;p&gt;The dictionary meaning of Expectation is “Belief about (or mental picture of) the future” or “Anticipating with confidence of fulfillment”. It is a human tendency to create a mental picture of what will happen given the present scenario and the actions being carried out now. Very rarely does it happen though that what you expected actually happens. More often than not, expectations don’t come true and this leads to a multitude of problems.&lt;/p&gt;  &lt;p&gt;Having expectations is bad and something that should be avoided for 2 reasons. Firstly, if you had expectations which didn’t come true, it will cause you a great amount of distress and lead to sorrow, possibly even fractured relationships. Secondly, if you expected something and it actually came true, it won’t give you much happiness; you will just feel that this was always supposed to happen so what’s the big deal. On the other hand, had you not expected it, you would be overjoyed when it happens. These 2 reasons are precisely why I avoid (although many a times unsuccessfully) having expectations and would suggest you do the same.&lt;/p&gt;  &lt;p&gt;Assuming one just can’t help keeping expectations, there is one thing that becomes a must. One should always think from the other person’s point of view as to why something that you expected didn’t happen. For example, your group is going for a movie and you expect them to call you but they don’t. Now the typical reaction would be to feel bad and get pissed at your friends. However, one must think from their point of view and ask oneself why they didn’t ask you to join them. It might just be that you have been refusing them last 10 times or so they called and so they assumed you’ll do the same this time as well. Or maybe someone told them you are very busy with your work and might not make it or simply, there might have been a miscommunication regarding who was to inform you about the outing and eventually no one ended up doing it. There are numerous possibilities for this and frankly speaking, the best way to avoid breaking your head over these is to not have expectations in the first place. But in case you do, just make sure you give the other person a fair chance before starting to judge him/her.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-4345424823184175460?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/4345424823184175460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2009/02/expectations.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4345424823184175460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4345424823184175460'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2009/02/expectations.html' title='Expectations'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-6585511021618606711</id><published>2009-01-14T02:10:00.001+05:30</published><updated>2009-01-14T13:22:45.780+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Review'/><title type='text'>Review : Windows Live Writer</title><content type='html'>&lt;p&gt;Microsoft recently &lt;a target="_blank" href="http://arstechnica.com/journals/microsoft.ars/2009/01/08/windows-live-essentials-including-messenger-wave-3-final"&gt;announced the final release of Windows Live Wave 3 at CES 2009&lt;/a&gt;. The Windows Live Wave contains a suite of applications like Windows Live Messenger, Windows Live Mail, Silverlight etc. It also contains a slightly lesser known application called “Windows Live Writer” which allows you to post articles to your blogs which may be hosted on any of the popular hosting platforms such as &lt;a target="_blank" href="http://www.blogger.com/"&gt;Blogger&lt;/a&gt;, &lt;a target="_blank" href="http://wordpress.com/"&gt;Wordpress&lt;/a&gt; or &lt;a target="_blank" href="http://spaces.live.com/"&gt;Windows Live Spaces&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I recently downloaded the Beta version of Windows Live Writer after reading some &lt;a target="_blank" href="http://www.labnol.org/internet/blogging/blogging-with-windows-live-writer/5073/"&gt;good things&lt;/a&gt; being written about it. I am really glad I installed this application because it is a much more efficient and user friendly way of writing, publishing and managing your posts as compared to doing it from Blogger. Setting up Live Writer is pretty straightforward. You just need to select the blogging platform and give the url of your blog along with the credentials which will be used to connect to the blog. Once that is done, Live Writer connects to the blog and downloads all sorts of information such as your blog template, list of tags defined by you etc.As a last (optional) step, it will also publish a dummy post so that you can verify that the posts appear as expected. Once this is done, you can start writing posts in Live Writer and publishing them.&lt;/p&gt;&lt;p&gt;Here are some of the features of Live Writer that I really like :&lt;/p&gt;&lt;ol&gt;&lt;li&gt;It works OFFLINE!!!!!!!!!!! Since it is a Windows application, you can run it without Internet connectivity and write all your posts, saving them as drafts. Once you get the connectivity, you can just publish them. &lt;/li&gt;&lt;li&gt;There are a number of options to insert items in your post including Images, Video, Map, Tables etc. &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Saa_LJZkn2o/SWpZSJaUIjI/AAAAAAAABIU/Yz9AFDbb4m4/s1600-h/InsertOptions.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="InsertOptions" border="0" alt="InsertOptions" src="http://lh6.ggpht.com/_Saa_LJZkn2o/SWpZVjYFRPI/AAAAAAAABIY/lEg-Y2giAoY/InsertOptions_thumb.png?imgmax=800" width="192" height="162" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;There is an “Add a plug in” option which takes you to a website from where you can install plug ins for added functionality. One of the first plug ins I installed was one to format code snippets that you would like to put into your posts. &lt;/li&gt;&lt;li&gt;&lt;p&gt;Another useful option is one which lets you control what happen when a user selects the “Blog This” option from the browser. This setting can be accessed from Tools &amp;gt; Options &amp;gt; Blog This&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;You can also see a list of the “Drafts” and “Recently posted articles” on the right hand sidebar and work with them by simply clicking the relevant article once.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;In addition, it has all the normal features you would expect such as Spell check, ability to publish posts in the future, updating previously published posts etc.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;There is 1 feature though that is still missing and I am hoping the Live Writer team incorporates this soon. I am talking about the AutoCorrect feature which comes handy ever so often in editing software like MS Word. It is really tedious to capitalize the words yourself and to insert appropriate apostrophes instead of the software taking care of it.&lt;/p&gt;&lt;p&gt;All in all, it is a very good blog writing software and I am loving it. I will definitely be using it from now onwards, Good bye Blogger editor. Given the overwhelming good things to rave about, I would like to give kudos to the Windows Live Writer team for creating a great app.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-6585511021618606711?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/6585511021618606711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2009/01/review-windows-live-writer.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/6585511021618606711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/6585511021618606711'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2009/01/review-windows-live-writer.html' title='Review : Windows Live Writer'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_Saa_LJZkn2o/SWpZVjYFRPI/AAAAAAAABIY/lEg-Y2giAoY/s72-c/InsertOptions_thumb.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-284180065306068071</id><published>2009-01-12T23:52:00.000+05:30</published><updated>2009-01-12T23:52:00.303+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fitness'/><title type='text'>Narcissist people at the gym</title><content type='html'>&lt;p&gt;I have been going to the gym for more than 4 years now and there is one type of people who have been getting on my nerve since day one – the narcissist people who just can’t get enough of themselves. &lt;/p&gt;  &lt;p&gt;These people are so self obsessed that physique or not, they keep looking at themselves from every possible angle in between exercises. Not to forget the muscle flexing from time to time. Most of the gyms have mirrors all around but the mirrors are there so that people can look at their positioning from all angles while exercising. This allows them to do the exercise with the best possible posture in the correct manner. But apparently, the narcissist people aren’t quite satisfied with seeing themselves while exercising. Even after the exercise, they will walk in front of the mirror and keep flexing, completely oblivious to the people standing behind them who are trying to see their posture while exercising. Eventually, either one has to exercise without any visual feedback, which although bad in itself, isn’t as bad as having to move in the middle of an exercise in case you are not quite sure of whether you are doing it right or not.&lt;/p&gt;  &lt;p&gt;Another set of people who fall in the same category are the newbies who feel as if they have become professional body builders within a week of gymming. The way this is manifested is in their walking style – they suddenly start walking like &lt;a target="_blank" href="http://www.123musiq.com/Hindi-Images/SalmanKhan-BollywoodHunk.jpg"&gt;Salman Khan&lt;/a&gt; even if their physique is no better than &lt;a target="_blank" href="http://eap.cricinfo.com/db/PICTURES/CMS/84800/84851.jpg"&gt;Ishant Sharma&lt;/a&gt;. But still, one can just ignore this and move on, so it’s not as much of an issue and it certainly doesn’t affect your exercises.&lt;/p&gt;  &lt;p&gt;I know this post seems a bit like an outburst but I just couldn’t help it; I am fed up with such people but unfortunately can’t really do much about it other than ranting here. If you got any ideas please do let me know.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-284180065306068071?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/284180065306068071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2009/01/narcissist-people-at-gym.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/284180065306068071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/284180065306068071'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2009/01/narcissist-people-at-gym.html' title='Narcissist people at the gym'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-7485244001409024247</id><published>2009-01-11T23:18:00.000+05:30</published><updated>2009-01-11T23:56:43.289+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development'/><title type='text'>Beware when Copy Pasting</title><content type='html'>&lt;p&gt;Often times, a developer needs to copy code from one place and paste it at another place, followed by some minor modifications at the destination. Of course, copy pasting the same code at multiple places such that no modification would be needed isn’t a good practice and essentially, the developer must refactor and move the common code into a function and insert function calls at the appropriate places.&lt;/p&gt;  &lt;p&gt;There are many scenarios where the former operation is required. Even though it is at times possible to move slightly variant code into a separate function and use parameters for the differing functionality, this might not always suffice for a multitude of reasons. The code might be getting used only in a couple of places for example. In such cases, the best way to reuse code is to copy paste. However, from my experience, most errors (often times so stupid that you won’t suspect them to be the cause of problems) occur when one forgets to make a particular change after pasting the code.&lt;/p&gt;  &lt;p&gt;One major reason why one tends to miss one or two modifications is that a very minor/no change is needed when doing such reuse (of course, if major changes were needed then one should prefer rewriting code instead of reusing). So people just assume that no change is needed and leave the code as is. Some of the changes that are needed frequently include,&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Change of the value of a enum &lt;/li&gt;    &lt;li&gt;Change of index variable &lt;/li&gt;    &lt;li&gt;Changing the index value. &lt;/li&gt;    &lt;li&gt;Needing to declare a variable which was available for use in the copied code but not present at the place the code has been pasted. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Forget these kind of changes and you would spend another hour trying to find the issue and fixing it. Hence, be extra careful whenever copy-pasting code to be able to make the most of the time saving gained from not having to write the code again and in case some error crops up after you pasted code from somewhere, the first check you should make is whether the minor changes like the ones for variable names etc have been taken care of.&lt;/p&gt;  &lt;p&gt;UPDATE : After discussions with &lt;a target="_blank" href="mailto:jaydinakar@yahoo.com"&gt;Dinkar&lt;/a&gt;, one important point came up which was that such errors are more likely in Weakly typed languages for obvious reasons.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-7485244001409024247?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/7485244001409024247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2009/01/beware-when-copy-pasting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7485244001409024247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7485244001409024247'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2009/01/beware-when-copy-pasting.html' title='Beware when Copy Pasting'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-913012229111752966</id><published>2008-12-31T23:00:00.000+05:30</published><updated>2008-12-31T23:00:03.913+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Current Affairs'/><title type='text'>Will Microblogging replace Blogging?</title><content type='html'>There has been a lot of hype created around microblogging - writing posts or messages of 100 to 200 words (one might be tempted to say 140 words but microblogging isn't just about &lt;a href="http://twitter.com/"&gt;twitter&lt;/a&gt;). There have even been reports claiming that blogging has started slowing down and people are slowly moving from being bloggers to microbloggers like &lt;a href="http://www.readwriteweb.com/archives/state_of_the_blogosphere_2008.php"&gt;here&lt;/a&gt;, &lt;a href="http://www.marketingpilgrim.com/2007/04/blogging-growth-stalling-or-taking-a-breather.html"&gt;here&lt;/a&gt; and &lt;a href="http://scobleizer.com/2007/06/20/jaikutwitterfacebookkyteplaxo-something-happening-you-should-pay-attention-to/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I think it is going to be very unlikely that people will move completely from blogging to microblogging. Here are the reasons why :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Blogging is all about sharing and expressing your thoughts with others and it is extremely difficult to express any thoughts in 100-200 words. Microblogging is mainly about staying in touch with others and keeping your friends updated. It is difficult to do much else apart from this given the size restrictions&lt;/li&gt;&lt;li&gt;Blogging is also a way of earning for many people by placing ads on their blogs as well as embedding ads within the blog posts. It is very difficult to place ads when doing microblogging&lt;/li&gt;&lt;li&gt;Given the size of each post, microblogging generates a deluge of messages and hence, the importance of each message goes down. On the other hand, in case of blogging, even the most professional of bloggers can shell out about 5-10 posts a day. Thus, each post carries much more importance in the case of blogging&lt;/li&gt;&lt;li&gt;Blogging is also a way for creating a repository of ideas and events reflecting one's life. This again is difficult to do with microblogging.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;All in all, I feel that blogging and mciroblogging are designed to address different requirements and both can, and most probably will, co-exist in the years to come without eating into each other's audience. Also,  the recent reduction in blogging, as indicated by the links I mentioned at the start of this post, is likely a result of the initial hype of blogging settling down and becoming a niche area.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-913012229111752966?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/913012229111752966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/will-microblogging-replace-blogging.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/913012229111752966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/913012229111752966'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/will-microblogging-replace-blogging.html' title='Will Microblogging replace Blogging?'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-7826321619782402518</id><published>2008-12-30T23:00:00.003+05:30</published><updated>2008-12-30T23:00:02.403+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Getting available screen space for web pages</title><content type='html'>One of the most common requirements when creating a web page is to get the&lt;br /&gt;space available in the browser window where the content will be displayed. It is always preferable to fit the content into the available space to prevent scroll bars and reduce the effort required on the part of the user. A number of factors cause variations in&lt;br /&gt;the width and the height available for the content of the web page, some of them&lt;br /&gt;being,&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Windows Taskbar&lt;/li&gt;&lt;li&gt;Status bar&lt;/li&gt;&lt;li&gt;Toolbars (for eg., MSN toolbar, Google toolbar etc)&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Because the user can have any combination of these things enabled, it is difficult to get the exact space and height available. Add to this the fact that different browsers support different sets of properties of the BOM and even for the common set of properties, they give different meanings. Hence, we need to combine multiple approaches to get the available space so that it works in almost all browsers. The code that will do exactly this is given below :&lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff9900;"&gt;//Returns an array containing the available width and height&lt;br /&gt;function GetWindowSize()&lt;br /&gt;{&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;....&lt;/span&gt;try&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;....&lt;/span&gt;{&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;var myWidth = 0, myHeight = 0;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;if (typeof (window.innerWidth) == 'number')&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;{&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;//Non-IE&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;myWidth = window.innerWidth;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;myHeight = window.innerHeight;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;}&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;else if(document.documentElement &amp;amp;&amp;amp; (document.documentElement.clientWidth&lt;br /&gt;document.documentElement.clientHeight))&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;{&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;//IE 6+ in 'standards compliant mode'&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;myWidth = document.documentElement.clientWidth;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;myHeight = document.documentElement.clientHeight;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;&lt;span style="color:#ff9966;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;else if (document.body &amp;amp;&amp;amp; (document.body.clientWidth&lt;br /&gt;document.body.clientHeight))&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;{&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;//IE 4 compatible&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;myWidth = document.body.clientWidth;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;myHeight = document.body.clientHeight;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;}&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;return new Array(myWidth,myHeight);&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;....&lt;/span&gt;}&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;....&lt;/span&gt;catch (ex)&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;....&lt;/span&gt;{&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;return null;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;....&lt;/span&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;span style="color:#ff9900;"&gt;&lt;/span&gt;The above code should suffice for almost all browsers and different browser versions. It is not advisable to use "Screen.availWidth" and "Screen.availHeight" since it doesn't return the correct values in case the user is using toolbars. I have tested the above code for IE and FireFox with and without toolbars and it worked like a charm.&lt;br /&gt;&lt;span style="color:#ff9900;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-7826321619782402518?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/7826321619782402518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/getting-available-screen-space-for-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7826321619782402518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7826321619782402518'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/getting-available-screen-space-for-web.html' title='Getting available screen space for web pages'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-6930403621785768012</id><published>2008-12-29T23:00:00.001+05:30</published><updated>2008-12-29T23:00:00.229+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Preventing JavaScript injection attacks</title><content type='html'>Whenever one is developing web pages that accept input from the user, one needs to be extra careful in order to prevent the extremely dangerous &lt;a href="http://en.wikipedia.org/wiki/Cross-site_scripting"&gt;XSS (Cross Site Scripting)&lt;/a&gt; attacks. Typically, these attacks are carried out by users who input malicious scripts in the input fields provided on the web page. The scripts get executed when the page tries to display back the values that were input by the user. For example, if the user is presented with a field for entering his name, he may enter something like&lt;br /&gt;&lt;p&gt;&lt;span style="color:#ffcc66;"&gt;ABC;&amp;lt;script&amp;gt;alert("This site is hacked")&amp;lt;/script&amp;gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;Now, whenever the site displays this user's name, the script also gets executed and the viewer of the page will get an alert box proclaiming "This site is hacked". Although this is a contrived example, there is the potential to do much more harmful things using the same technique. Skilled users can write scripts that can read data from cookies, for example, and send to another site (hence the name cross site scripting).&lt;br /&gt;&lt;br /&gt;In order to prevent such things from happening, all one has to do is "&lt;span style="color:#ffcc66;"&gt;Server.HTMLEncode&lt;/span&gt;" all the values that the user provides, assuming you are using ASP.NET. There are 2 places where you can do the encoding :&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;You can do the encoding while storing the data in the database so that anytime those values are to be displayed to the user, they won't cause any problems.&lt;/li&gt;&lt;li&gt;You can also do the encoding just before showing the values to the user. This technique can be used when you are just displaying the values without ever storing them in the database or in case you need to display the values before storing them in the database&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;What Server.HTMLEncode does is it converts all the special characters such as "&amp;lt;" and "&amp;gt;" to their ASCII equivalents so that the browser runtime engine interprets them as normal characters instead of interpreting and executing them. You can find the complete list of actions taken by this method &lt;a href="http://msdn.microsoft.com/en-us/library/ms525347.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Remember to encode any and all values you accept from users to avoid having serious XSS attacks launched on your website.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-6930403621785768012?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/6930403621785768012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/preventing-javascript-injection-attacks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/6930403621785768012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/6930403621785768012'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/preventing-javascript-injection-attacks.html' title='Preventing JavaScript injection attacks'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-1454519927028362584</id><published>2008-12-28T23:00:00.001+05:30</published><updated>2008-12-28T23:00:01.631+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Weird behaviour of "onchange" event of Listbox in FireFox</title><content type='html'>The HTML listbox has an "onchange" event which is fired whenever the item selected in the listbox has been changed. The contents of the listbox can be changed either by clicking the corresponding item from the listbox or by using the up and down arrow keys or pressing the beginning alphabet of any of the items when the listbox has focus. Ideally, even when changing the selected item by using the keyboard, the onchange event should be fired. In fact, the event is fired in all major browsers except Firefox. With Firefox, the onchange event is called only when the listbox loses focus.&lt;br /&gt;&lt;br /&gt;Suppose you have a form whose contents you would like to change based on the value selected in the listbox. For example, have different fields on the form based on whether the user is interested in Sports, Music, Dance etc. You can do this by capturing the item selected by the user in the onchange event and making the necessary changes by manipulating the DOM. However, you would have a problem with users using FireFox. To be able to capture the value every time the user makes a new selection, we need to add some javascript for the "onkeyup" event. The code needed is,&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#ff9966;"&gt;&amp;lt;select id="items" onchange='itemSelected();' &lt;span style="color:#ff6600;"&gt;onkeyup="this.blur();this.focus();"&lt;/span&gt;&amp;gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ff9966;"&gt;&amp;lt;/select&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;All that needs to be done is to momentarily remove focus from the listbox so that the onchange event is called and then, set the focus again. Setting the focus again on the listbox is needed because, if we don't do that, the user will have the set the focus explicitly on the listbox every time he changes it's value with the keyboard - he wouldn't appreciate this if he wants to select a value which is 4-5 values further in the list from where he's currently at.&lt;br /&gt;&lt;br /&gt;I spent nearly 2 hours trying to figure out why the onchange event wasn't getting called in FireFox. Hope this post will go some way in helping you reduce the debugging time in case you happen to come across a similar situation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-1454519927028362584?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/1454519927028362584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/weird-behaviour-of-onchange-event-of.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/1454519927028362584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/1454519927028362584'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/weird-behaviour-of-onchange-event-of.html' title='Weird behaviour of &quot;onchange&quot; event of Listbox in FireFox'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-4353155554875474360</id><published>2008-12-27T23:00:00.000+05:30</published><updated>2008-12-27T23:00:00.555+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fitness'/><title type='text'>Another set of DONTs when joining a gym</title><content type='html'>Sometime back, I had posted an &lt;a href="http://sanketvasa.blogspot.com/2008/09/working-out-at-gym-dos-donts.html"&gt;article&lt;/a&gt; detailing the dos and don'ts when working out at the gym. I would like to mention a few more don'ts that one should be careful of and avoid specially when joining gym (it's good to keep these in mind even if you are a gym veteran because it's easy to fall for any of these).&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Don't join gym because your parents/family members want you to&lt;/strong&gt; : Even though they will have genuine reasons for wanting you to join a gym, your heart won't be into it and inevitably, you will quit within a month or two.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Don't join the gym because your friends have joined&lt;/strong&gt; : There are a number of important reasons why one should join gym but this isn't one of them (mind you, joining the gym along with your friend is perfectly fine as long as accompanying your friend isn't your primary and/or sole motive of joining the gym)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Don't indulge in showmanship at the gym&lt;/strong&gt; : Many people are so busy showing off their physique and/or newly purchased gadgets that exercising takes a backseat.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Don't indulge in one-upmanship at the gym&lt;/strong&gt; : This is a big no-no and must be avoided at all cost. Just because someone can lift 50kg doesn't mean you should also do the same; lift only as much as your body can afford to do without injury&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Don't give up gymming because of the initial period of pain&lt;/strong&gt; : It is natural that the body will pain when you join the gym initially since the muscles will feel more strain than the are normally subjected to (and some muscles which you never knew existed are put to work). Once the body gets used to the physical strain, the pain will go away. So keep going at it and get through the pain barrier.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-4353155554875474360?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/4353155554875474360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/another-set-of-donts-when-joining-gym.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4353155554875474360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4353155554875474360'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/another-set-of-donts-when-joining-gym.html' title='Another set of DONTs when joining a gym'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-3556746848439870252</id><published>2008-12-26T23:00:00.000+05:30</published><updated>2008-12-26T23:00:01.084+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Cricket'/><title type='text'>Sachin - Conquering the final frontier</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Sachin_Tendulkar"&gt;Sachin Tendulkar &lt;/a&gt;, the God of Indian cricket is also one of the greatest batsmen to have graced the game ever. He made his debut against Pakistan in 1989 and has been going strong ever since. Having almost all &lt;a href="http://en.wikipedia.org/wiki/Achievements_of_Sachin_Tendulkar"&gt;batting records&lt;/a&gt; to his name by now, one would imagine he doesn't have many things left to prove to anyone. However, there was always the criticism levelled against him of not being a good finisher, not staying till the end and bringing victories for India in test matches. Critics would use this single point to justify their claim that Lara has been a better cricketer than Sachin.&lt;br /&gt;&lt;br /&gt;There is one other achievement that has eluded Sachin throughout his glorious career - winning the cricket World cup. Sachin took India to the 2003 world cup finals through his glorious batting (he was adjudged the "Man of the tournament" for the world cup). India were on the verge of being knocked out of the tournament but then, the master started showing his true skills and using this as a platform, the Indian team started winning again. The importance of Sachin's batting in that tournament was underlined by the fact that when he failed in the finals, India's batting collapsed and suffered a heavy defeat.&lt;br /&gt;&lt;br /&gt;Sachin seems to be conscious of the criticism of him not being a good finisher and trying his best to set the record straight. This was evident in the first test match against England. India, set a difficult target of 387 on a wearing pitch with variable bounce, batted serenely in the fourth innings and &lt;a href="http://content-ind.cricinfo.com/indveng/engine/match/361050.html"&gt;won&lt;/a&gt; by 6 wickets. There were valuable contributions from Sehwag, Gambhir and Yuvraj but it was Sachin who played the perfect sheet anchor's role and held the innings together. Sachin ensured that he was there till the end, hitting the winning runs and scoring a century in the process. It was extremely pleasing to see Sachin play such an innings and silencing his critics.&lt;br /&gt;&lt;br /&gt;Let's hope Sachin plays many more such innings in the coming years and brings many more victories for India. And who knows, maybe Sachin might be able to accomplish the only thing he has not been able to do till now, which is winning the world cup for India. Given the way India are playing at the moment, I'd imagine that India has a fair chance of winning the next edition of the world cup if they continue playing the way they are. If that were to happen, it would be the ideal end to one of the most glorious careers and Sachin would have conquered the final frontier on his way to completing the "perfect career".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-3556746848439870252?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/3556746848439870252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/sachin-conquering-final-frontier.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3556746848439870252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3556746848439870252'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/sachin-conquering-final-frontier.html' title='Sachin - Conquering the final frontier'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-5932540448931460903</id><published>2008-12-22T00:08:00.003+05:30</published><updated>2008-12-22T00:42:53.465+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Current Affairs'/><title type='text'>Ignorance and stupidity of the news channels</title><content type='html'>During the recent Mumbai terror attacks, there were 3 stand out instances where the problems that can be caused by irresponsible news channels were clearly visible. The incidents and the problems that arose because of the news channels were :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;In their quest to get "Exclusive" footage of the terror attacks and in trying to go one up on their competitors, each of the news channels worked their socks off in trying to get as close to the action as possible, show the next moves of the NSG, what their plans were for capturing the terrorists etc. Little did they know that the terrorists holed up inside the Taj hotel were in constant touch with their bosses across the border who were watching the same news channels and conveying the next moves of the NSG to them. This was admitted by the army itself and the government even requested the news channels to stop showing live footage. The channels complied for a few hours but were back to their old habits shortly thereafter. As a result, the government has now passed a bill wherein the Information and Broadcasting ministry can impose constraints on the news channels during such attacks and regulate the content being broadcasted.&lt;/li&gt;&lt;li&gt;One of the news channels managed to get a chance to talk to one of the terrorists (there was a doubt on the location of the terrorist though : experts felt he was calling from across the border). The news channel people, thinking they had a huge TRP booster at their disposal, allowed the call to be broadcast live. This was a huge blunder because the terrorist went on to completely ignore whatever questions the anchors were trying to ask him and just started preaching the jihadi teachings on air. This happened not once but twice, obviously the people at the helm didn't seem to be learning from their mistakes. Eventually the channel was served a notice for their brazen foolishness by the government.&lt;/li&gt;&lt;li&gt;When the terrorists hijacked the police van and opened fire on the people standing on the by lanes, one person was killed. The news channels were repeatedly showing the dead man being put into a cab. Showing such pictures not only hurts the sentiments of the people but in my opinion, I don't see any real gain in showing them. They could have easily conveyed the same message by showing images of the terrorists shooting on the people.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;The news channels are a medium for the people to stay informed and aware of what's going on in their surroundings. The news channels are also a way to question the government and bureaucracy because in a way they represent the voice of the people. But given all these responsibilities and powers, the news channels should exercise some discretion and act in a mature way when covering such gruesome events, keeping in mind the repercussions of their coverage and actions.  &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-5932540448931460903?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/5932540448931460903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/ignorance-and-stupidity-of-news.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5932540448931460903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5932540448931460903'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/ignorance-and-stupidity-of-news.html' title='Ignorance and stupidity of the news channels'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-8835732231649204955</id><published>2008-12-20T23:09:00.004+05:30</published><updated>2008-12-21T01:09:17.505+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fitness'/><title type='text'>Maintain a balance of strength between both halves of the body</title><content type='html'>All of us are born either right handed or left handed. What this essentially means is that we prefer using one side of the body for doing most of our work. Typically, the right side of a right handed person will be stronger and have more bulk and vice versa for a left handed person. This is because a right handed person will use his right side for doing most of the work - stuff like lifting a bucket of water, carrying bags etc. Hence, his favoured side will get more (if not most) exercise and will eventually be the stronger side. There is nothing wrong in having a "stronger" side but problems occur when the imbalance gets too much. Whenever you are doing weight lifting exercises in the gym, make it a point to keep the strength of both halves of your body the same.&lt;br /&gt;&lt;br /&gt;I recently experienced the negative effects that such an imbalance can cause. The imbalance manifested itself in my shoulders : my right shoulder is a lot stronger than the left. I always used to lift weights based on the strength of my right side neglecting the strain this would put on the left side. Eventually this resulted in pain in my left collar bone (evidently I lifted too much weight while doing an exercise for the collar with the barbell). There are a few things that one can do to avoid a strength imbalance and the resulting problems.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Use both the halves in your daily chores. This will not only maintain a strength balance but it will also help you be more ambidextrous. Some ways in which you can follow this are to use the less favoured side when lifting things, put the less favoured leg second when climbing down the stairs (when climbing down the leg you put first is used mainly for balance and the pressure falls on the left you put second, at least for me) and put the less favoured leg first when climbing stairs (the situation is opposite in this case)&lt;/li&gt;&lt;li&gt;When working out in the gym, choose weights according to the lifting capabilities of the weaker half. This will increase the strength in the less favoured side and reduce the gap between the 2 sides.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;If you know of more ways to maintain the balance, please mention them in the comments. In the meanwhile, try to ensure that you don't create an imbalance between the 2 halves of your body which will help you enjoy your workouts even more.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-8835732231649204955?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/8835732231649204955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/maintain-balance-of-strength-between.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/8835732231649204955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/8835732231649204955'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/maintain-balance-of-strength-between.html' title='Maintain a balance of strength between both halves of the body'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-3726100334177970567</id><published>2008-12-07T21:23:00.003+05:30</published><updated>2008-12-08T17:00:00.553+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development'/><title type='text'>One really useful reason to use Social Networks</title><content type='html'>If you go around and ask people why they use social networks, you will get a variety of answers ranging from being able to stay in touch with friends, making new friends, possibly spying on others etc. All these things are good to haves but according to me there is one reason why it is pretty important for us, software developers, to use social networks currently. There have been a huge number of "social" sites that have come up in the past 4-5 years. One of the main characteristics of Web 2.0 and 3.0 is the social aspect to it. Every day, thousands , even millions of new users get onto the social networking bandwagon. This provides us with a huge user base ready to be served with software that does fascinating things. Hence, I feel that the main reason one should use social networks is to identify possible market opportunities, identify areas where we can innovate, areas where users are having problems currently etc.&lt;br /&gt;&lt;br /&gt;This is sort of a cycle which feeds itself : if we create good software users will come and use that, as more users come the demands increase in number as well as variety, this creates the need for more and/or better software. Of course, this cycle will exist only when there is public interest in the area in the first place. Otherwise no one is going to come and use your software regardless of how great it is and the cycle will stop at the first step itself. With social networking, there has been an obvious demand from the users and that demand hasn't been satiated yet, there is still scope for more.&lt;br /&gt;&lt;br /&gt;When a developer starts using social networks, he has to always be on the lookout for opportunities, functionality gaps which the users are bemoaning, some problems the users are facing (for example, the problem of multiple identities and multiple contact lists, mailing lists etc) as well as places where one can innovate and bring about a change in the way people use social networks. A great example of this is &lt;a href="http://www.facebook.com/"&gt;Facebook&lt;/a&gt; which started the concept of having applications on social networking sites. It was such a hit that &lt;a href="http://www.orkut.com/"&gt;other&lt;/a&gt; sites have now adapted this idea.&lt;br /&gt;&lt;br /&gt;So if you are looking to build some cool applications and earn money in the process or maybe launch your own startup, get experimenting in the social networks space and you will find quite a lot of opportunities for yourself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-3726100334177970567?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/3726100334177970567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/one-really-useful-reason-to-use-social.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3726100334177970567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3726100334177970567'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/one-really-useful-reason-to-use-social.html' title='One really useful reason to use Social Networks'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-1204382950344847132</id><published>2008-12-07T21:02:00.003+05:30</published><updated>2008-12-07T21:16:16.178+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fitness'/><title type='text'>Breathe right while exercising</title><content type='html'>While working out in the gym, one should pay extra attention to their breathing pattern and ensure that they breathe right. Not breathing properly will not only reduce the amount of exercises one can do in a single session but also the intensity of the exercises. It can also cause long term damage to the heart because of the added pressure on the heart and other body parts because of the shortage of oxygen supply.&lt;br /&gt;&lt;br /&gt;Until recently, it was believed that for most exercises the right form of breathing was to inhale when the muscles contract and to exhale when muscles expand. For example, suppose you are doing bench press. You should inhale when moving the bar towards your chest and exhale when moving it away from the chest. Each repetition of the exercise should constitute one breath cycle.&lt;br /&gt;&lt;br /&gt;Recently, some people have also suggested that the opposite breathing pattern is more effective i.e. exhaling when muscles contract and inhaling when muscles expand. I am still sceptical about this and follow the traditional technique. The most important thing to remember is to ensure that you don't stop your breaths when lifting heavy weights and continue breathing normally even while exercising.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-1204382950344847132?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/1204382950344847132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/breathe-right-while-exercising.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/1204382950344847132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/1204382950344847132'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/breathe-right-while-exercising.html' title='Breathe right while exercising'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-5473680738235074293</id><published>2008-12-07T19:22:00.003+05:30</published><updated>2008-12-07T20:12:15.562+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><title type='text'>Calling Web Services from Javascript</title><content type='html'>One of the most powerful features of ASP.Net AJAX is the ability to call server side web services seamlessly from plain Javascript. There is nothing special that needs to be done to create a web service that can be called from JavaScript apart from adding the "ScriptService" attribute at the beginning of the web service declaration. We can use ASMX as well as WCF web services with ASP.Net AJAX. Let's take a look at the steps needed to call web services with AJAX.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Server side&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;On the server side, we will create a normal ASMX web service.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Right click your project in Visual Studio and click "Add new item". In the dialog that opens up, select "Web service" and give it an appropriate name&lt;/li&gt;&lt;li&gt;Once the web service has been added, open it's .cs file. At the very top, before the class declaration there will be the following commented attribute &lt;/li&gt;&lt;p&gt;&lt;span style="color:#ff9966;"&gt;[System.Web.Script.Services.ScriptService]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Uncomment this attribute.&lt;/p&gt;&lt;li&gt;Add the methods you want to call from the client side and annotate them with the &lt;span style="color:#ff9966;"&gt;[WebMethod]&lt;/span&gt; attribute&lt;/li&gt;&lt;li&gt;Test the web service and ensure that the web methods are working fine&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;Client side&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;On the client side, we will need to do the following to be able to call the web service created in the above steps&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Add a ScriptManager tag at the top of your page. The script manager is required on every page that should provide AJAX functionality. It instantiates the PageRequestManager class and handles the downloading of all the necessary script and service proxy files. (If you are using master pages and the ScriptManager is present in the master page, you can add a ScriptManagerProxy tag to the current page)&lt;/li&gt;&lt;li&gt;Within the ScriptManager tag, add a ServiceReference and provide the path to the web service. It should look something like this,&lt;/li&gt;&lt;plt: id=" runat="&gt;&lt;span style="color:#ff9966;"&gt;&amp;lt;services&amp;gt;&lt;br /&gt;&amp;lt;asp:servicereference path="~/Sample.asmx"&amp;gt;&lt;br /&gt;&amp;lt;/services&amp;gt;&lt;br /&gt;&amp;lt;/asp:scriptmanager&amp;gt;&lt;/span&gt; &lt;p&gt;&lt;/p&gt;&lt;p&gt;Here, I am adding a reference to a web service named "Sample.asmx" which is present in the same project. What happens under the hood is that, for each service that you reference with the ServiceReference tag, a proxy is created and downloaded on the client side and this proxy is used to validate the calls from JavaScript to the web service.&lt;/p&gt;&lt;li&gt;Once this is done, we can call a web method from JavaScript as follows :&lt;/li&gt;&lt;p&gt;&lt;span style="color:#ff9966;"&gt;WebServiceClass.WebMethod(parameters, Success Callback function, Failure callback function, context);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;parameters&lt;/strong&gt; : We can specify as many as needed, or even 0, parameters to be passed to the web method, each separated from the other by comma&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Success Callback function&lt;/strong&gt; : We specify name of the JavaScript function that will be called when the web method completes execution&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Failure Callback function&lt;/strong&gt; : We specify name of the JavaScript function which will be called in case the web method encountered some error during execution&lt;/p&gt;&lt;p&gt;&lt;strong&gt;context&lt;/strong&gt; : This is an optional string value that we can provide. It is used in case we are using the same JavaScript function as callback for multiple web methods so that in the JavaScript function, we can determine the web method call for which the callback was invoked.&lt;/p&gt;&lt;li&gt;The final step is to code the success and failure callbacks, syntax for which is as follows :&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="color:#ff9966;"&gt;function SuccessCallback(response, context, method)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff9966;"&gt;function FailureCallback(error, context, method)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Here,&lt;/p&gt;&lt;p&gt;&lt;strong&gt;response &lt;/strong&gt;: It contains the values returned by the web method. It can be as simple as an integer or a string or as complex as JSON representation of List&lt;string[]&gt; or even a custom object. The values can be accessed using the normal object.property syntax.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;error&lt;/strong&gt; : Object representing the error that occurred in the web method. The most useful method of this object is &lt;span style="color:#ff9966;"&gt;get_message()&lt;/span&gt; which returns a description of the error that occurred&lt;/p&gt;&lt;p&gt;&lt;strong&gt;context&lt;/strong&gt; : Optional value, which will have the same value as provided as the last parameter when calling the web method&lt;/p&gt;&lt;p&gt;&lt;strong&gt;method &lt;/strong&gt;: Name of the web method from which the current JavaScript function has been invoked&lt;/p&gt;&lt;p&gt;Having the ability to call web services asynchronously from the client provides tremendous flexibility as well as performance advantages to the programmers and allows us to create really powerful and performant sites with ease.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-5473680738235074293?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/5473680738235074293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/calling-web-services-from-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5473680738235074293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5473680738235074293'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/calling-web-services-from-javascript.html' title='Calling Web Services from Javascript'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-3255975901270391609</id><published>2008-12-07T18:18:00.004+05:30</published><updated>2008-12-26T22:20:20.133+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Ignoring certain characters from user input in HTML Textbox</title><content type='html'>One common requirement when creating user input forms in websites is to not show some of the characters in a text box. For example, we would not want to show alphabets in input fields for dates and age. Similarly, we would not want to show numbers in an input field for name.&lt;br /&gt;&lt;br /&gt;As it turns out, this is really easy to do with some simple JavaScript. We can accomplish this with the following steps :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Identify the characters that need to be ignored (Black listing approach)&lt;/li&gt;&lt;li&gt;Add an event handler for the key down event on the text box&lt;/li&gt;&lt;li&gt;In the event handler, check whether the input character is one of the characters that needs to be ignored. For these characters, just return false from the event handler. This will prevent that particular character from reflecting in the text box&lt;/li&gt;&lt;li&gt;Optionally, one can show an error message if one of the unwanted characters is input. This is done to avoid the user from getting confused when his inputs don't cause any changes in the contents of the text box&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Here is the code for declaring text field in HTML :&lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff9966;"&gt;&amp;lt;input id="'startDate'" type="'text'"&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;We can add the event handler in &lt;span style="color:#000000;"&gt;the&lt;/span&gt; HTML tag itself or in a Javascript function which will be called on the "onload" event of the body as follows :&lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff9966;"&gt;document.getElementById('startDate').onkeydown = CheckNumber;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;Here, we are using the "Key Down" event of the text box to check for the character input by the user. Finally, the event handler function code is as follows :&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff9966;"&gt;function CheckNumber(e)&lt;br /&gt;{&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;....&lt;/span&gt;try&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;....{&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;if (!e)&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;{&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;e = window.event;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;}&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;var keynum;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;try&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;{&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;//IE : Get the code of the key the user pressed&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;keynum = e.keyCode;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;}&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;catch (err)&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;{&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;//Netscape/Firefox/Opera : Get the code of the key the user pressed&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;keynum = e.which;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;/*Prevent any character not in the range 0-9 and not '/', backspace, delete or left and right arrow keys, Tab and Shift+Tab. ASCII Code : / is 191, Backspace is 8,Delete is 46, Left : 37, Right :39, Tab : 9, Shift + Tab: 16*/&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff9966;"&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;if (keynum != 191 &amp;amp;&amp;amp; (keynum &lt;&gt; 57) &amp;amp;&amp;amp; keynum != 8 &amp;amp;&amp;amp; keynum != 46 &amp;amp;&amp;amp; keynum != 37 &amp;amp;&amp;amp; keynum != 39 &amp;amp;&amp;amp; keynum != 9 &amp;amp;&amp;amp; keynum != 16)&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;{&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;//Show error to the user to inform him that the input was invalid&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;document.getElementById("dateErrorMessage").style.display = "inline";&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;//Return false to prevent the character from being added to textbox&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;return false;&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;}&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;else&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;{&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;//Remove error message if it's visible&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;............&lt;/span&gt;document.getElementById("dateErrorMessage").style.display = "none";&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;}&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;....&lt;/span&gt;}&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;....&lt;/span&gt;catch (ex)&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;....&lt;/span&gt;{&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;........&lt;/span&gt;alert("Check number : " + ex.message);&lt;br /&gt;&lt;span style="color:#ffffff;"&gt;....&lt;/span&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;As can be seen from the comments, we first retrieve the ASCII code for the character typed by the user (as expected, we have 2 different ways of getting the value based on the browser type) . Then we check against the characters we will allow (I am using white listing here, one can use blacklisting also, as mentioned earlier. The right approach will depend on the number of conditions that need to be specified but generally white listing is preferred for 2 reasons. It will cause fewer problems in case you miss out on some conditions and this mistake will be easier to catch during testing. If the character doesn't fall within our white list, we show an error message on a label and then return false to prevent it from appearing in the text box. Otherwise, we do nothing so that the character appears normally in the text box.&lt;/p&gt;&lt;p&gt;So there you have it, a texbox that accepts restricted inputs. Customise for the type of inputs you want to allow/disallow.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-3255975901270391609?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/3255975901270391609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/ignoring-certain-characters-from-user.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3255975901270391609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3255975901270391609'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/ignoring-certain-characters-from-user.html' title='Ignoring certain characters from user input in HTML Textbox'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-3705636837395628338</id><published>2008-12-07T17:19:00.002+05:30</published><updated>2008-12-07T18:00:29.172+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Current Affairs'/><title type='text'>What we should learn from our politicians</title><content type='html'>Indian Politicians have always been the subject of jokes and criticism and rightly so too. They promise a ton of things so that they get elected and then, once they are, they disappear from their constituencies not to be seen until the next elections are around the corner. They splurge on themselves using the taxpayer's money, go on unnecessary foreign and domestic trips with huge entourages, do their best to ensure India ranks high on the list of most corrupted countries and do not much else apart from filling their pockets.&lt;br /&gt;&lt;br /&gt;However, there is one thing that all of us can learn from politicians : Have a single objective, focus on that all the time and perform each action keeping that objective in mind. Nowhere else was this quality on display more prominently than in the aftermath of the recent Mumbai terror attacks. Even amidst the immense sorrow, pain and anger being experienced by the Mumbaiites and the country in general, the politicians were busy trying to collect publicity points. We had Modi, who a few weeks back questioned the morality of Hemant Karkare because he was investigating into the Malegaon blasts and unearthing dark secrets about the RSS, suddenly do a complete turn around and showered praises on him for his bravery along with declaring a compensation of 1 crore for his family. Little did he know that his publicity stunt will bomb when Hemant Karkare's wife rejected the compensation.&lt;br /&gt;&lt;br /&gt;Even the Congress is taking at least some actions only because the general elections are around the corner and unless it does something concrete soon, it is bound to suffer a heavy defeat in the upcoming elections. Let's not be mistaken, even the BJP is just as focused. Even during these tough times, they refuse to co-operate with the ruling party and try to go by the literal meaning of being an "opposition party" - assuming that they have to oppose everything the government does.&lt;br /&gt;&lt;br /&gt;All we can hope is for some common sense to prevail so that the politicians don't completely ruin our country and stunt its potential super growth. In the meanwhile, let's us all learn to be as focused as the politicians are :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-3705636837395628338?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/3705636837395628338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/what-we-should-learn-from-our.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3705636837395628338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3705636837395628338'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/12/what-we-should-learn-from-our.html' title='What we should learn from our politicians'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-2417238845103250501</id><published>2008-11-30T01:01:00.002+05:30</published><updated>2010-04-13T14:18:31.945+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>My Friend List longest!!!</title><content type='html'>There has been a great proliferation of social networks in the recent past, viz. past 3-5 years I suppose, and with it some annoying behaviour of people have started to appear. One such prominent behaviour is for people to do everything they can to add more and more friends to their list in a quest to have a friends' list with the maximum number of friends so that he/she can boast about it amongst his friends.&lt;br /&gt;&lt;br /&gt;People add just about any tom, dick and harry they come across while browsing, regardless of whether they know him or not and even if they most probably are never going to scrap him (put the equivalent term used by your favourite social network) even once. The most annoying situation occurs when someone adds you as their friend even though that same person blatantly ignores you when you come face to face with that person (I recently faced such a situation on facebook) .  I wonder what the big deal is about having the most number of friends on a social network, frankly speaking I dislike people bragging about their huge friends list or the size of their scrap book etc. It's completely different and in no way comparable to having a network of "real" friends.&lt;br /&gt;&lt;br /&gt;I really hope this craze about social networks dies down sooner rather than later and people start spending more time in the "Real" world than in the online world. Relationships and friendships in the real world are far more enriching than having online friends. I am not undermining the importance of social networks which are a good means to maintain contact but these should not be used as the "primary" means of staying in touch with all your friends. There is so much one can learn, gain and share through real friendships...it's something irreplaceable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-2417238845103250501?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/2417238845103250501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/11/my-friend-list-longest.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/2417238845103250501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/2417238845103250501'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/11/my-friend-list-longest.html' title='My Friend List longest!!!'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-7139728332679949055</id><published>2008-11-09T20:42:00.003+05:30</published><updated>2010-04-13T14:16:52.954+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentation'/><title type='text'>Presentation Tips</title><content type='html'>I know there are umpteen number of tips out there about how to give presentations, how to prepare for preparations etc. I don't intend to repeat the same stuff here. Instead there is 1 point that is very important, at least in my point of view, and which I haven't seen in any of these lists.&lt;br /&gt;&lt;br /&gt;According to me, one should always try to give the presentation from his/her own laptop/desktop. This case comes into the picture when you have a long presentation which will be taken by multiple speakers in parts. The reason giving presentations on another machine can be problematic is that you don't know the locations of most files and folders, how some things work/don't work on that machine, quirks thrown up by that machine on certain user actions etc. It wouldn't be a good experience to look flummoxed in front of your audiences when you can't find a particular window or folder :-)&lt;br /&gt;&lt;br /&gt;So, in my opinion, using your own machine is one more stepping stone towards having a successful, smooth presentation&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-7139728332679949055?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/7139728332679949055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/11/presentation-tips.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7139728332679949055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7139728332679949055'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/11/presentation-tips.html' title='Presentation Tips'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-3197698297241914298</id><published>2008-10-28T21:02:00.002+05:30</published><updated>2008-10-28T22:05:00.753+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Cricket'/><title type='text'>Indian fast bowlers coming of age</title><content type='html'>The Indian cricket team has almost always had a dearth of good fast bowlers and it has long been searching for decent fast bowlers who can take some pressure off the spinners at least, if not dismiss the opposition on their own. India has had, in my opinion, just 3 good fast bowlers in the last 2 decades of the 20Th century : Kapil dev, arguably the best fast bowler India has produced, Srinath and Prabhakar.&lt;br /&gt;&lt;br /&gt;Apart from these, we had quite a few bowlers opening the bowling for India, some who had a variation called a "Faster ball" whereas most quick bowlers have a "slower ball" and some who seem to be interested more in histrionics and following extreme superstition rather than doing well on the field. However, we never had a settled pair opening the bowling for India. At times, it got so bad that in the sub continent, we had Ganguly or even the spinner who &lt;strike&gt;doesn't&lt;/strike&gt; didn't spin the ball (Kumble) opening the bowling. However, times have changed, and for the better.&lt;br /&gt;&lt;br /&gt;Today we have a good crop of fast bowlers, Zaheer Khan, Ishant Sharma, Munaf Patel, RP Singh (sometimes good) Sreesanth,(the expensive but wicket taking) Agarkar, (the one who was billed as the next Akram) Pathan and the impressive M Gony. Some of these bowlers are good at swinging the ball, some at seaming the ball and some adept at both. India's opening bowlers in the ongoing series against Australia are leading this resurgence amongst Indian quickies. One is a left armer who has started bringing the ball back into the right hander, making him even more dangerous and the other is a tall, lanky, fast bowler who can bowl around 90mph as well as swing the ball.&lt;br /&gt;&lt;br /&gt;Another deadly ability that both these bowlers possess is to be able to reverse swing the ball prodigiously and that too, from quite early on in the innings. The Aussies have been known to struggle against good swing bowling and that's exactly what the Indian bowlers are doing. This has made it possible for India to draw the first match even though the spinners struggled to pick any wickets. The quickies played a major part in the second test win too and seem to have continued in the second test from where they left off in the first.&lt;br /&gt;&lt;br /&gt;There has always been the perception that Indian fast bowlers are there only to roughen up the ball for the spinners. Let's just hope that these 2 as well as the other quickies stay fit and keep performing at these levels so that this perception is changed. India also needs them when touring overseas where the spinners won't be as effective as they are in the sub continent.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-3197698297241914298?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/3197698297241914298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/10/indian-fast-bowlers-coming-of-age.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3197698297241914298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3197698297241914298'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/10/indian-fast-bowlers-coming-of-age.html' title='Indian fast bowlers coming of age'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-7156576431699202116</id><published>2008-10-28T20:42:00.004+05:30</published><updated>2008-10-28T21:01:08.972+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Tennis'/><title type='text'>Follow up post on "The sudden fall of the maestro, Roger Federer"</title><content type='html'>It has been slightly over 2 months since the time I posted &lt;a href="http://sanketvasa.blogspot.com/2008/08/sudden-fall-of-maestro-roger-federer.html"&gt;this&lt;/a&gt; article about Roger Federer in which I raised questions on whether Federer's star was fading and what the future holds for the great champion. Federer though answered his critics in the way he knows best : by getting back to his good old winning ways.&lt;br /&gt;&lt;br /&gt;He won his 5Th consecutive US Open title in September to take his tally of Grand slams to 13. He played some superb tennis in the semis and the finals to down Djokovic and Murray, respectively. He had a really close shave in the 3rd round against Igor Andreev where he won in 5 sets, 2 of them tie breakers. From then on, he didn't look back and kept raising his game with each round and went on to win the title. Although he still wasn't quite at his best yet, he had proven that the lack of titles this year were mostly because of the illness than anything else.&lt;br /&gt;&lt;br /&gt;Although Nadal is still no. 1, I feel that Federer will snatch that position from Nadal next year and overhaul Sampras' record of 14 grand slams. Thanks for proving me wrong Federer and winning again :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-7156576431699202116?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/7156576431699202116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/10/follow-up-post-on-sudden-fall-of.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7156576431699202116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7156576431699202116'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/10/follow-up-post-on-sudden-fall-of.html' title='Follow up post on &quot;The sudden fall of the maestro, Roger Federer&quot;'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-7388494522212222266</id><published>2008-10-28T20:11:00.003+05:30</published><updated>2008-10-28T20:39:49.410+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Cricket'/><title type='text'>Fatness of Indian cricketers' salaries rubbing off on their health</title><content type='html'>Recently, there were reports in the media about a statement by one of the members of the support staff of the Indian cricket team questioning the fitness of the Indian players. The quote was something on the lines of accusing half of the team to be unfit. Following the quote, there was a huge uproar against the staff member who, as has become the tradition now, claimed he was "misinterpreted" by the media and retracted on his statement. Needless to say that there was pressure put on him by the BCCI and the players themselves to do so.&lt;br /&gt;&lt;br /&gt;However, I completely agree with the statement, half (or even more) of the team, specially the test team, is unfit. There are plenty of obvious signs on the field and occasions during the match that point to this and I think it's high time the administration stops turning a blind eye to such issues and takes the players to task (or more appropriately, the gym :-) ).&lt;br /&gt;&lt;br /&gt;One of the most obvious signs is the pronounced tummies of quite a few players. Based on my observation during the recent Australia - India series, I would count Ganguly, Zaheer, Sehwag, Dhoni (guess he's having too much &lt;strike&gt;milk&lt;/strike&gt; milk products i.e. cheese,butter etc), Dravid, Yuvraj (noticed him during the Challenger series) as part of this "elite" group. Another sign is the speed and the agility of these players. Ganguly's fielding abilities, or the lack f it, has been the talking point of the cricketing circles for a long time, and it was on show during the first 2 matches too. He is slow in bending down to stop the ball, takes forever to catch up with the ball and haul it within the boundary ropes etc. Some of these players are pretty young and hence, their speeds aren't as terrible as Ganguly's (thankfully). However, I am sure the extra flab is certainly having some effects.&lt;br /&gt;&lt;br /&gt;Contrast this with the Australian team members, who are extremely fit and agile. Even the senior members like Hayden don't think twice before diving around and making every effort to stop the ball. I agree that traditionally Indians are not physically the strongest but sportsmen should work on this part of the game just as much as the cricketing abilities these days. The Indian team gets such huge pay cheques (I have no qualms about this as long as they perform well, win and bring glory to the country and smiles on the faces of their countrymen) and it's not unreasonable to expect them to put in the hard work to get fit and improve with each passing day and justify the funding that goes into cricket.&lt;br /&gt;&lt;br /&gt;Let's hope Kirsten and Co. can instill the importance of physical fitness in the minds of the players and prepare a fit Indian team, ready to take on and beat any team in the world. What do you think about the state of the Indian team's fitness?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-7388494522212222266?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/7388494522212222266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/10/fatness-of-indian-cricketers-salaries.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7388494522212222266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7388494522212222266'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/10/fatness-of-indian-cricketers-salaries.html' title='Fatness of Indian cricketers&apos; salaries rubbing off on their health'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-3044721432711203264</id><published>2008-10-28T18:22:00.002+05:30</published><updated>2008-10-28T18:58:18.270+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Development'/><title type='text'>Importance of sending Status Reports</title><content type='html'>In this post I would like to highlight the importance of having a habit of sending regular status reports to your manager and also, if need be, to your immediate team.&lt;br /&gt;&lt;br /&gt;I generally send out the report on Friday evenings so that the manager has an idea of what happened during the week, before that week ends. One can also send the report on Monday mornings but then, that would, theoretically at least, mean you are communicating to your manager a tad late. Status reports that I send out contain 3 main sections :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Activities completed this week : What were the things you worked on and managed to complete this week (do not include items that you are still working on and haven't completed, those will go into the next section)&lt;/li&gt;&lt;li&gt;Actions items for next week : What things are you planning to work on and/or complete in the following week&lt;/li&gt;&lt;li&gt;Blocking issues : This is the most important section that you should send out to your manager. Communicate clearly issues that restrict your progress and follow up on them to get them sorted out asap&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Given these sections, one can either send out a simple list of activities for each section or have multiple columns under the first 2 sections to be more elaborate. The columns that I include under the first 2 sections are :&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Activity : The activity that you completed/are going to complete in the following week&lt;/li&gt;&lt;li&gt;Effort : An indication of the effort needed for completing an activity (if that activity falls under the first section) or an estimate of the effort that will be required(for activities that are part of the second section)&lt;/li&gt;&lt;li&gt;Main challenges/points : Highlight the main technical issues that had to be /will need to be addressed/solved to complete the stated activity&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;The big question in your mind would be, why should I waste somewhere around half an hour every week in sending this to my manager, who might not even give it anything more than a cursory glance. Well, here are some of the reasons why that half an hour will be a time well invested :&lt;/p&gt;&lt;ol&gt;&lt;li&gt;When you sit to jot down the activities, it helps you to get an idea of how much work has been done and allows you to get an understanding of how efficient you are being at what you are doing. You will be able to catch early signs when there is a need for you to pull up your socks and work harder.&lt;/li&gt;&lt;li&gt;Jotting down the action items for the coming week streamlines your work and thinking&lt;/li&gt;&lt;li&gt;Highlighting the blocking items gives you a better chance of getting it resolved sooner so that you can get back on track with your work&lt;/li&gt;&lt;li&gt;If you organise your status reports in a separate folder (like I do using Outlook rules), you can just take a look at the status reports to get an idea of what all work you did during any given time period. This will prove priceless when you sit down at the year end to fill up your performance review.&lt;/li&gt;&lt;li&gt;Finally, and probably most importantly, it's your chance to show off your efficiency and abilities to your manager. Thanks to &lt;a href="http://www.realsoftwaredevelopment.com/how-to-rate-a-software-developer/"&gt;this&lt;/a&gt; post for highlighting this point&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;I agree that some of these advantages are already inherent in software development methodologies like &lt;a href="http://en.wikipedia.org/wiki/Scrum_(development)"&gt;Scrum&lt;/a&gt;, but there are plenty of other reasons, as can be seen from the list above, for you to use regular status reports. Feel free to add more advantages or some of the best practices you follow when it comes to status reports. Also, share your views if and why you think that sending status reports is a waste of time.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-3044721432711203264?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/3044721432711203264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/10/importance-of-sending-status-reports.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3044721432711203264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3044721432711203264'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/10/importance-of-sending-status-reports.html' title='Importance of sending Status Reports'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-7327522180926965952</id><published>2008-10-05T23:47:00.003+05:30</published><updated>2008-10-06T00:15:16.120+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Dataset v/s DataReader</title><content type='html'>In this post, I will be discussing the behavioral characteristics and the performance differences of the DataSet and the DataReader as well as indicate the suitability of use of these objects in various scenarios.&lt;br /&gt;&lt;br /&gt;The Dataset is a "disconnected" data store. What this means is that the DataSet object need not maintain a connection with the database at all times, a connection is needed only at the time of fetching data and updating it. The DataSet can be populated with data using something like this ,&lt;br /&gt;&lt;br /&gt;SqlConnection conn=new SqlConnection();&lt;br /&gt;conn.ConnectionString="Data Source=.;Database=TempDB;Integrated Security=true;";&lt;br /&gt;SqlDataAdapter da=new SqlDataAdapter("select * from Temp",conn);&lt;br /&gt;DataSet ds=new DataSet();&lt;br /&gt;da.Fill(ds);&lt;br /&gt;conn.Close();&lt;br /&gt;//Process data in the DataSet ds&lt;br /&gt;&lt;br /&gt;As can be seen from the above snippet, once the data has been read into the DataSet, the connection can be closed immediately. The data can still be accessed from within the DataSet.&lt;br /&gt;&lt;br /&gt;DataReader, on the other hand, is a "connected" data store which means that there needs to be a connection maintained to the database in order to be able to access the values in the DataReader. The DataReader can be populated with data using something like this ,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SqlConnection conn = new SqlConnection();&lt;br /&gt;conn.ConnectionString = "Data Source=.;Database=TempDB;Integrated Security=true;";&lt;br /&gt;conn.Open();&lt;br /&gt;SqlCommand cmd = conn.CreateCommand();&lt;br /&gt;cmd.CommandText = "select * from Temp";&lt;br /&gt;cmd.CommandType = CommandType.Text;&lt;br /&gt;SqlDataReader rdr = cmd.ExecuteReader();&lt;br /&gt;while (rdr.Read())&lt;br /&gt;{&lt;br /&gt;      //Process the data read from the DB&lt;br /&gt;}&lt;br /&gt;conn.Close();&lt;br /&gt;&lt;br /&gt;Notice here that the connection is closed only after iterating through the entire record set returned by the query.&lt;br /&gt;&lt;br /&gt;As can be seen from above, a DataSet, although providing a lot of flexibility in terms of usage scenarios, is memory intensive. Since it is a disconnected data store, it stores all the data read from the database in memory. As can be inferred, this can really slow down the application if the DataSet is populated with millions of rows of data. On the other hand, the DataSet provides "random" access : any record stored in it can be directly accessed and records can be accessed in any order desired. One can also go back and forth through the DataSet records. Another important flexibility with DataSets is that data within it can be modified and the updates will be percolated to the database automatically. Thus, a DataSet is suitable for scenarios in which data update is needed or where random access is needed but should be used cautiously when huge data is being fetched from the database.&lt;br /&gt;&lt;br /&gt;As for the DataReader, it is almost an opposite of the DataSet. Since it maintains an open connection to the database at all times, it needn't store data in local memory. Instead records are read in chunks on a need basis. Thus, it proves to be pretty efficient in terms of memory usage. However, this efficiency comes at a cost : records within a DataReader can be traversed only forward and that too, only once. If a record needs to be read a second time, the query needs to be executed again as there is no provision to move backwards through the DataReader. Also the data read through the DataReader is read only. Thus, a DataReader lends itself to scenarios where huge amounts of data are being read without having the need to update them or have random access over that data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-7327522180926965952?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/7327522180926965952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/10/dataset-vs-datareader.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7327522180926965952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7327522180926965952'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/10/dataset-vs-datareader.html' title='Dataset v/s DataReader'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-614992410340516572</id><published>2008-10-05T22:46:00.003+05:30</published><updated>2008-10-05T23:47:06.027+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Accessing return value of SPs</title><content type='html'>When working with databases, it is recommended that all the database queries should be moved to Stored Procedures (hereafter referred to as SP). This makes perfect sense because having all the queries in one place makes it easy to debug in case the database integration is not working as well as makes it less cumbersome to make changes (since it is known where those changes need to be made and the changes need not be duplicated in multiple code files). Given this best practice, it is often a requirement to capture the return value of the SP in order to determine whether the SP execution succeeded or failed.&lt;br /&gt;&lt;br /&gt;ADO.NET has the SqlCommand and SqlConnection objects to allow the user to invoke the SP and have access to the results returned by the SP. Specifically, there are 3 methods that can be used to execute a query or an SP on the database :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;SqlCommand.ExecuteNonQuery() : Used for queries which don't return any value, i.e. insert, update and delete queries&lt;/li&gt;&lt;li&gt;SqlCommand.ExecuteScalar() : Used for queries which are guaranteed to return a single value&lt;/li&gt;&lt;li&gt;SqlCommand.ExecuteReader() : Used for queries that return multi column and/or multi row result sets&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;There is 1 important difference in the use of these 3 methods when it comes to accessing return values. It turns out that when using ExecuteScalar() and ExecuteNonQuery(), we can access the return value immediately following this method call whereas, for the ExecuteReader() method this is not the case. If we try to access the value of the parameter object created for the return value, it will have a null value. The return value is set only after we iterate through the entire result set returned by the reader object. The reasoning behind this behaviour can be as follows. If the result set was returned successfully, it means the SP succeeded so there's no point of checking the return value. It only makes sense to check the return value in case there was no result returned. The return value will then enable us to determine whether there was actually no data in the database for the given query or there is a bug which caused incorrect results to be returned. &lt;/p&gt;&lt;p&gt;Do keep this slight variation in the behaviour of the ExecuteReader() the next time you use it.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-614992410340516572?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/614992410340516572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/10/accessing-return-value-of-sps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/614992410340516572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/614992410340516572'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/10/accessing-return-value-of-sps.html' title='Accessing return value of SPs'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-1428848568823390025</id><published>2008-10-05T22:39:00.001+05:30</published><updated>2010-04-13T14:18:31.946+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>The law of foul tasting food</title><content type='html'>Coined this from personal experience over the last few months,&lt;br /&gt;&lt;br /&gt;"If you are going to get a bad tasting chunk of food, it invariably will be the last one of your meal"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-1428848568823390025?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/1428848568823390025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/10/law-of-foul-tasting-food.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/1428848568823390025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/1428848568823390025'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/10/law-of-foul-tasting-food.html' title='The law of foul tasting food'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-2543576722964380523</id><published>2008-09-21T18:29:00.003+05:30</published><updated>2008-09-21T19:22:01.336+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Tennis'/><title type='text'>Drastic reduction in start age amongst tennis players</title><content type='html'>Over the last few years I have noticed that the age at which tennis players turn pro has begun to reduce. This is especially true amongst the female players, some turning pro as early as 13- 14. Male players have also shown this trend but their starting age hasn't shown such a drastic drop, average age amongst the male players seems to be around 17 - 18.&lt;br /&gt;&lt;br /&gt;This trend has been led by the plethora of Russian players infused into the game from the beginning of the 21st century. During the 20Th century, the game was ruled mostly by American female players. But now, the tide has turned and Russia is ruling the roost when it comes to tennis rankings : last year they had more than 5 players in the top 10.&lt;br /&gt;&lt;br /&gt;The fact that players are starting young has brought a lot of pleasant changes to the game. It has brought the youthful exuberance to the game and also brought more power into the female game. It also shows the great amount of interest and funding pouring into the game at early stages of a player's career and the ample amount of facilities available for the players to grow and improve. It also shows that the players, and their parents, feel that sport is a viable option as a career in this day and age even though the career lasts only about 10 years. This is possible because of the amount of money the players are making these days. One (positive) side effect of having young female players is the exponential rise in the glamour quotient that we are seeing in the game today.&lt;br /&gt;&lt;br /&gt;However, all is not perfect with having players start so early. The biggest repercussion of this is the burn out issue that is becoming more and more frequent these days. Players are having serious, career threatening injuries in their early 20's. I don't know whether it is due to the increased stress brought on by the intense physical training regime of today's players, tighter schedules etc (or possibly even global warming :), after all players need to play in hotter conditions because of it). Another, more subtle loss is the fact that the players don't really get to enjoy their childhood. They don't get to experience the carefree life that one gets to enjoy as a child. All their time goes in practicing (3-4 hours a day) , physical conditioning and studies. Maybe these players realise what they have lost out after retiring , or after being forced on the sidelines due to injuries.&lt;br /&gt;&lt;br /&gt;It is great to see new young players entering the game in such large numbers and challenging the players at the top, and some even dethroning them. It shows that the game of tennis is growing and attracting more and more talent. Let's just hope it stays this way and at the same time, doesn't force the players to make too many sacrifices along the way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-2543576722964380523?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/2543576722964380523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/09/drastic-reduction-in-start-age-amongst.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/2543576722964380523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/2543576722964380523'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/09/drastic-reduction-in-start-age-amongst.html' title='Drastic reduction in start age amongst tennis players'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-7145773805784171641</id><published>2008-09-21T17:15:00.004+05:30</published><updated>2008-12-26T22:19:53.077+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Javascript : Creating Textbox watermarks</title><content type='html'>One of the common requirements when working with web page forms is to have some default text show within a text box and make it disappear when the user enters something in the text box, in other words, create a text box watermark.&lt;br /&gt;&lt;br /&gt;Now if you are working with ASP.NET then an easy way to do this is to use the AJAX Control Toolkit's 'TextboxWatermark' control and just link the AJAX control to the text box in which we want the watermark to appear. The AJAX control provides a number of options to control the watermark. However, if you are working with pure HTML pages then, you are stuck with Javascript and need to figure out a way to control the watermarking. I recently wrote some code to do the same and would like to share it in this post.&lt;br /&gt;&lt;br /&gt;Assuming you have a html page added to your project, the following steps would enable the watermarking of the text box :&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The first step obviously is to define the basic HTML tag which will add a normal text box to your page. Here's a sample code for this : &lt;p&gt;&amp;lt;input id="txtUsername" name="txtUsername"&amp;gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;The next step is to define a variable which will store the string that will act as the watermark (Thanks Pratik for sharing this best practice with me). The advantage of creating a variable is that it makes it easy to perform comparisons (which will be mentioned in a later step) and also requires you to change the watermark text in only one place. &lt;p&gt;var gcUsernameTbDefaultText='Please enter a username';&lt;/p&gt;&lt;/li&gt;&lt;li&gt;The trick to have the watermark appear and disappear is to capture the 'onblur' and 'onfocus' events and manipulate the contents of the text box. The following code snippet shows functions being called for these 2 events. &lt;p&gt;&amp;lt;input type="text" id="txtUsername" name="txtUsername" onfocus="clearTextbox('txtUsername',gcUsernameTbDefaultText);" onblur="showDefaultText('txtUsername',gcUsernameTbDefaultText);" /&amp;gt;&lt;/p&gt;&lt;p&gt;As you can see, the functions called when the events occur are passed the id of the text box on which the watermark is needed and also the watermark text, making these functions generic and usable with any text box.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;The last and final step is to implement the 2 functions that do the actual manipulation. So here they are : &lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;ul type="disc"&gt;&lt;li&gt;function clearTextbox(objId,text)&lt;br /&gt;{&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;var obj = document.getElementById(objId);&lt;br /&gt;//Clear the textbox only if the textbox contains the original default value&lt;br /&gt;if (obj != null &amp;amp;&amp;amp; obj.value.toString().toLowerCase() == text.toLowerCase())&lt;br /&gt;{&lt;br /&gt;obj.value = "";&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;catch (e)&lt;br /&gt;{&lt;br /&gt;alert(e.message);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;function showDefaultText(objId,text)&lt;br /&gt;{&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;var obj = document.getElementById(objId);&lt;br /&gt;if (obj != null &amp;amp;&amp;amp; obj.value == "")&lt;br /&gt;{&lt;br /&gt;obj.value = text;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;catch (e)&lt;br /&gt;{&lt;br /&gt;alert(e.message);&lt;br /&gt;}&lt;br /&gt;}&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;So there you have it, simple text box watermarking. There are 2 improvements one can do on this implementation :&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Dynamically apply styles in order to show the watermark text in gray, with some sort of transparency and have the normal text with normal appearance&lt;/li&gt;&lt;li&gt;This approach won't work with 'password' text boxes since even the watermark will appear as asterisks. &lt;a href="http://naspinski.net/post/Text-Input-Watermarks-using-Javascript-(IE-Compatible).aspx"&gt;This&lt;/a&gt; post talks about implementing watermarks for password text boxes&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-7145773805784171641?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/7145773805784171641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/09/javascript-creating-textbox-watermarks.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7145773805784171641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7145773805784171641'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/09/javascript-creating-textbox-watermarks.html' title='Javascript : Creating Textbox watermarks'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-4935465236249325176</id><published>2008-09-21T16:29:00.004+05:30</published><updated>2008-09-21T17:11:52.767+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Review'/><title type='text'>Review : Dropbox</title><content type='html'>I recently came across a new file sharing service called &lt;a href="http://www.getdropbox.com/"&gt;&lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;Dropbox&lt;/span&gt;&lt;/a&gt;. The service is currently in beta and comes with an optional client side software which makes working with the service really simple.&lt;br /&gt;&lt;br /&gt;The service comes with a 2GB space limit for free usage, with plans for providing more storage at different pricing options. The site is really easy to use and pretty fast (they have made good use of AJAX to make as few page refreshes as possible). The single, most prominent, differentiating factor between &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;dropbox&lt;/span&gt; and the other tons of file sharing services out there is the desktop app that comes with the service. A folder is created as part of the local file system and works just like any other local folder : you can seamlessly drag and drop files and folders into the &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;dropbox&lt;/span&gt; folder and the changes will be synced to their servers and eventually to other users connected to the shared folders. If you have the system tray icon running, you will also get notifications anytime your &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;dropbox&lt;/span&gt; folder contents are changed by other users.&lt;br /&gt;&lt;br /&gt;This desktop app makes it really easy to work with the service and cuts down on the learning curve. This folder contains 2 sub folders by default : Public and Photos. The public folder is supposed to contain the files and folders that you want anyone to be able to access. For each file in this folder, &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;dropbox&lt;/span&gt; generates a link which can be sent out to anyone (Even non-&lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;dropbox&lt;/span&gt; users) and they would be able to access the files. The Photos folder represents a photo gallery. Each sub folder in here will become an album on the web interface and you can drop any photos within these folders. The service has been built on top of the incredibly useful Amazon's Simple Storage Service (S3).&lt;br /&gt;&lt;br /&gt;Here are the pros and cons of the service in my view :&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Pros&lt;/strong&gt; :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The web interface is really fast and easy to use, complimented nicely by the desktop app, making the service extremely user friendly&lt;/li&gt;&lt;li&gt;The site uses &lt;span id="SPELLING_ERROR_6" class="blsp-spelling-error"&gt;SSL&lt;/span&gt; for transferring any content over the Internet, making the process safe and secure&lt;/li&gt;&lt;li&gt;&lt;span id="SPELLING_ERROR_7" class="blsp-spelling-error"&gt;Dropbox&lt;/span&gt; supports all 3 major OSes : Windows, Mac and Linux&lt;/li&gt;&lt;li&gt;It uses the "Delta sync" technique to sync the files and folders. What this means is that the entire file isn't uploaded every time it has been changed. Only the parts that have been changed are uploaded thereby saving precious bandwidth and reducing syncing times&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt; :&lt;/p&gt;&lt;ol&gt;&lt;li&gt;The storage limit of 2GB is pretty limiting, specially if you are planning to store images and audio/video content&lt;/li&gt;&lt;li&gt;It doesn't handle conflicting changes really well currently, taking only the first change and requiring users to manually resolve conflicts&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Overall, I found the service really useful and simple to use. Instead of trying to implement too many features, the &lt;span id="SPELLING_ERROR_8" class="blsp-spelling-error"&gt;dropbox&lt;/span&gt; team has given importance to simplicity and they have come up with a service which does minimal things, but does them really well. I would definitely recommend people to at least give it a try, at least I am going to keep it installed and will use it whenever I need to share stuff with my friends. It is much easier than going to a website and uploading files from there and sending the resultant links through email.&lt;/p&gt;&lt;p&gt;Let me know your experience with the service and what you liked/disliked about it&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-4935465236249325176?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/4935465236249325176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/09/review-dropbox.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4935465236249325176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4935465236249325176'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/09/review-dropbox.html' title='Review : Dropbox'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-3411644786325534754</id><published>2008-09-14T23:26:00.004+05:30</published><updated>2008-09-15T00:09:42.588+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><title type='text'>Sania Mirza : The archetypal Indian sportsperson</title><content type='html'>I have always been a real sports buff and very patriotic, always wanting my country to do well in whatever sport it participates in. In fact, back in the school days, I used to start feeling so low for a day or 2 everytime India lost a cricket match (it has stopped happening since the past 2-3 years, I guess I basically got used to seeing India lose in cricket). There has been one thing that has always pained me and that has been the attitude of most of our sportspersons.&lt;br /&gt;&lt;br /&gt;Although I have quoted Sania Mirza in the title of this post, one can come up with a huge list of players who have followed the same path. The problem with these sportsmen isn't the dearth of talent to compete at the global level. Take Sania's example, she broke into the top 32 last year and everyone was convinced of her talent, so much so that they reckoned she could even break into the top 10 in the near future. She had already beaten a number of top 15 players and she had fierce ground strokes. But then, the typical story began. With her success came plenty of endorsements and public felicitations. Every state's politician was eager to invite her to their state and felicitate her so that they can boast about it come election time. Sania, on her part, made the mistake of probably getting distracted and not concentrating enough on the thing that got her all the adulation : her tennis. The wins weren't there anymore, her fitness was totally gone and she started getting plagued with all sorts of injuries : ankle, wrist etc. She spent most of this year o the sidelines. The end result? Her ranking has dropped out of the top 50. Only time will tell whether she will be able to get her mind on the right track again and do justice to her talent, she definitely has time on her side.&lt;br /&gt;&lt;br /&gt;Till Sania came along, such instances used to happen only in cricket as that was the only sport that received so much attention and sponsorship. There are lots of shining examples of cricketers who do well in their first year of international cricket, show a lot of promise, and then go into oblivion. To name a few from the recent times, we have Sreesanth, Parthiv Patel, Ashish Nehra, Irfan Pathan. Yuvraj Singh also keeps drifting into this category from time to time, and the worrying thing is that Rohit Sharma also seems to be moving into this category gradually.&lt;br /&gt;&lt;br /&gt;According to me, there are only 3 categories of sports persons who have managed to keep up their performances in spite of their huge successes. In the first category are people like Sachin Tendulkar and Rahul Dravid who have never lost their focus in spite of extreme media attention and success. The second category consists of people like Anil Kumble who, although they have achieved a lot in their careers, never get that much media spotlight and hence are able to focus on their game and perform. The final category include sportsmen from sports other than cricket. Unfortunately (but fortunately when it comes to this) these sports never receive as much funding or media coverage.&lt;br /&gt;&lt;br /&gt;I seriously hope that the Indian sports persons get their act together and focus on the thing that is their source of success : sports, and start performing back at their best. They must remember the old adage : If you have a hen which lays golden eggs, make sure the hen is safe and sound. Here, the hen is the sport, so if the sportsmen want the money and spotlight to continue, they must ensure their performances are up to the mark. This will benefit themselves as well as Indian sports and make India a force to be reckoned with in a number of different sports.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-3411644786325534754?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/3411644786325534754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/09/sania-mirza-archetypal-indian.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3411644786325534754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/3411644786325534754'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/09/sania-mirza-archetypal-indian.html' title='Sania Mirza : The archetypal Indian sportsperson'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-8587598772544762761</id><published>2008-09-14T22:33:00.003+05:30</published><updated>2008-09-14T23:23:58.118+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='WWE'/><title type='text'>Why do people watch WWE</title><content type='html'>WWE, also formerly known as WWF, stands for World Wrestling Entertainment. I can understand the World and the Entertainment part of the acronym but I can't figure out when and where the Wrestling part comes into the picture. As far as I see it, it's a big farce in the name of wrestling and is more like a larger than life, forever running, theatre with  some really good actors (although many a times they overact too much, making the farcical fights all the more obvious and funny).&lt;br /&gt;&lt;br /&gt;I must confess upfront that I was one of the people who used to regularly watch WWE and tried to keep myself abreast with the latest happenings , after all it was the main topic of conversations amongst guys during school. However, I have pretty much stopped watching it now as I am busy with my job most of the time and also because my interest has gradually waned. Even when I used to watch it, it wasn't as if I didn't know that the fights weren't real. I was more interested in the stories that they create involving the "wrestlers". One must credit Mr. Mcmahon, the owner of WWE, in this regard. He definitely knows how to put up a grand show, what with all the pyrotechnics during the wrestlers' entry and special guests and elaborate story lines. But after some point, it all seems too predictable and lame.&lt;br /&gt;&lt;br /&gt;All the fights have the same pattern with both wrestlers taking turns in beating each other up. The funniest parts are when one can actually make out one wrestler lining himself up so that the other one can execute his move to perfection. Then there are matches where we have wrestlers turning up as guest commentators. Eventually, the guest commentator always gets involved in the match and ends up screwing one of the 2 fighters. In my opinion, the referees have the toughest job in the business. They need to coordinate with both the wrestlers to ensure the fight goes as per plan (why do you think they have earphones) , they need to bang their hands furiously on the mat when doing the counting (still can't figure out why they slam their hands so hard), need to hand over the blades to the wrestler so that they can make a cut on the forehead and start the blood bath (yes the blade is the real reason for the blood and not the opponent's hammering) and most importantly, they need to look stupid!!!&lt;br /&gt;&lt;br /&gt;Even if one can reason people watching this on TV just for fun, I cannot figure out why in the world would so many Americans pay a hefty amount every week to attend the events. The crowds attracted by the matches are insanely big. The only possible explanation that I could come think of is that maybe they have too much extra money and they can't think of better ways to spend (read waste) it.&lt;br /&gt;&lt;br /&gt;One more reason why one should not watch such entertainment programs is that they have a very bad effect on children. There have been numerous reports of kids hurting themselves or their friends and siblings while trying out some of these stunts by themselves. Also, kids develop an obsession of wanting physiques like the wrestlers in WWE (who develop such physiques by taking steroids and other such harmful supplements) and then, might even resort to supplements, which are very dangerous, to achieve that. I hope people realise that WWE is essentially a waste of time and spend their time on doing and/or watching something more creative and useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-8587598772544762761?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/8587598772544762761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/09/why-do-people-watch-wwe.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/8587598772544762761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/8587598772544762761'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/09/why-do-people-watch-wwe.html' title='Why do people watch WWE'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-7488074857390230827</id><published>2008-09-14T00:54:00.006+05:30</published><updated>2008-09-14T02:44:49.426+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fitness'/><title type='text'>Working out at the gym : The DOs &amp; DONTs</title><content type='html'>This is the first of a series of posts that I plan to write on fitness and exercising at the gym. I have been going to the gym for quite some time and wanted to share whatever I have learned from the numerous instructors I have taken training from and interacted with, as well as share some of my points of view .&lt;br /&gt;&lt;br /&gt;In this post, I am going to point out those things that one must take care of and put into practice as well as the things one must avoid doing in order to have a good time exercising and also to get the desired results at the end of it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Go to gym for the right reasons&lt;/strong&gt; : Go to gym because you want to stay/get fit or want to develop a good physique and not just because your friend is also going or simply because it's the "in" thing&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Be ready to slug it out &lt;/strong&gt;: Exercising will not be pain free and will require you to put in the effort. Just standing on the treadmill won't get you to lose any weight&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Have the right expectations&lt;/strong&gt; : Don't have unrealistic expectations when you join the gym. Having expectations like losing 10 kg a month or getting a 6 pack in 2 weeks will only lead to 1 of 2 things : disappointment which might even cause some people to give up exercising thinking it's not producing results anyways, or it might cause burnout since one might put in more than what a human body can endure in order to achieve those unrealistic goals set by him/her.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Learn from the right people &lt;/strong&gt;: It is very important to follow instructions on which routine to follow, how to execute a particular exercise etc from someone who has a good understanding about exercising and its different facets. I have often seen a person joining the gym where one of his friends has been working out for some time and then the newbie takes guidance from his "experienced" friend. Although this is perfectly fine as long as the experienced guy knows what needs to be done, it often leads to problems for the newbie since the other guy would ask him to do the wrong exercise and/or show him the wrong way to do exercises&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Have a proper diet to go along with the gymming&lt;/strong&gt; : It is very important to have a diet that matches the kinds of workout you are doing in the gym whether it be for a weight loss routine or a muscle building routine. &lt;/li&gt;&lt;ul&gt;&lt;li&gt;People trying to lose weight : They need to cut down on the fat and concentrate on food items having a good amount of fibres, proteins and vitamins. &lt;/li&gt;&lt;li&gt;People wanting to build muscle : They need to have a diet consisting mainly of proteins and carbohydrates&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Not taking the right diet will not only make the benefits of exercising negligible but may also lead to health problems if the energy spent during exercising is not replenished in the right amounts.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Don't concentrate only on weight training &lt;/strong&gt;: This is something that I was guilty of for some part of my gymming career, if I may call it so. Even if one is concentrating mainly on building muscle and getting good cuts on the body, doing cardio exercises is important in 2 ways. &lt;ul&gt;&lt;li&gt;It improves the body stamina and strengthens the heart thereby improving the blood circulation&lt;/li&gt;&lt;li&gt;It helps the body lose the extra fat making the person healthier&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Don't concentrate only on cardio exercises&lt;/strong&gt; : This is analogous to the above point. Nearly 75-80% of the people doing the weight loss routines completely neglect weight exercises i.e. dumbbells and machines. However, these people must also do some weight training since it again helps in 2 regards &lt;ul&gt;&lt;li&gt;It helps in building strength into the body at the same time when the body is getting into shape&lt;/li&gt;&lt;li&gt;As has been proven by quite a few studies, weight training can also help in losing as much weight as normal cardio exercises do.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Take hygiene very seriously while exercising &lt;/strong&gt;: Gyms can be akin to breeding grounds for a number of diseases if a high level of cleanliness is not maintained. One must give high importance to the level of hygiene maintained at the gym when deciding on which gym to join. One can ensure the maintenance of hygiene in the gym on his part by ensuring that he doesn't leave drops of sweat on machines in his wake and wearing clean clothes and shoes while working out. I have had some bad experiences in this regard. What happens is, many a times,someone else might be using the machine I plan to use next. When he's done &amp;amp; I walk up to use the machine, I see sweat on the machine handles and/or cushion. On requesting the person to wipe it, I get a big glare in return as if I had asked him to clean someone Else's dirt. This is the wrong attitude to have. One must ensure that he/she does his best to provide a clean environment for the fellow gym members to work out in. &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Use the right set of clothes and footwear&lt;/strong&gt; : One must wear comfortable clothes while exercising - wearing extremely tight clothes might restrict one's movement while wearing loose clothes might cause problems since chances are that the dumbbells or machines might get caught up in your clothes&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Take massage at regular intervals &lt;/strong&gt;: It is very important to have a massage at least once a month if not more frequently. Massages help in relaxing the body, fostering the growth of muscles and removing stiffness from the muscles&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Avail of the steam, sauna and jacuzzi facilities if available&lt;/strong&gt; : This is one more thing I could have done more often. Steam baths cleanse the skin and help improve your complexion. Sauna baths are intended to make the bones stronger and help somewhat in reducing weight. Jacuzzi primarily helps in relaxing and relieving the body pains after exercising&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Expect pain in the first few weeks &lt;/strong&gt;: One of the biggest hurdles a newcomer to the gym faces is the pain suffered in the first few exercise sessions. The pain occurs because one starts to use muscles he never knew existed in his body, let alone use them anytime in his life. As the body gets used to the exercising, the pain level drops away gradually. But most people don't like the pain that comes with the exercising and quit before the body gets a chance to adapt to the new regime. One should prepare mentally to wade through the pain barrier after which it'll be smooth sailing.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Water consumption while exercising &lt;/strong&gt;: One must be careful to strike the right balance when it comes to drinking water while exercising. Following guidelines can be kept in mind to avoid problems : &lt;ul&gt;&lt;li&gt;Don't drink water immediately before doing exercising while cause the stomach muscles to stretch, for eg., triceps or abs&lt;/li&gt;&lt;li&gt;Make sure you drink water at regular intervals while exercising in order to compensate for the loss of fluids due the sweating&lt;/li&gt;&lt;li&gt;When drinking water while exercising, drink small amounts each time and that too in small sips - don't gulp it down in one go&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I hope some of these points will help you in a some small measure to have a better time at the gym. I will try to add more points as and when I come across something. Feel free to correct any of my suggestions or share some of your suggestions/experiences through the comments section or by contacting me.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-7488074857390230827?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/7488074857390230827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/09/working-out-at-gym-dos-donts.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7488074857390230827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/7488074857390230827'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/09/working-out-at-gym-dos-donts.html' title='Working out at the gym : The DOs &amp; DONTs'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-1714242557737693422</id><published>2008-08-31T13:57:00.004+05:30</published><updated>2008-09-14T22:33:36.263+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Formula 1'/><title type='text'>What is wrong with Kimster???</title><content type='html'>Well, for those of you who don't know, &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;Kimster&lt;/span&gt; is the way people generally refer to &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;Kimi&lt;/span&gt; &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;Raikonnen&lt;/span&gt;. He is one of the best drivers amongst the current breed of Formula 1 drivers, in fact, I feel he is the best if you look at sheer speed and racing abilities. Of course there are a number of other things that the driver must be good at, such as being able to give valuable inputs to the team to help them in their testing, being a good speaker etc. &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;Kimi&lt;/span&gt; might not be great at all these but he is a true racer and that is what I love him for.&lt;br /&gt;&lt;br /&gt;He is the defending champion and is in the best car in formula 1 right now (proven by the fact that Ferrari are leading the constructor's championship). He was right up there, in contention for the world championship this year, being amongst the top 3 drivers in the first third of the year. However, his bad luck struck him once again (Kimi has always had the worst luck when it comes to mechanical issues) in the Canadian grand &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;prix&lt;/span&gt; where Hamilton hit him in the pit lane. The accident could have been avoided by either one of 2 things happening : Hamilton being awake in his car or the &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;FIA&lt;/span&gt; changing the stupid rule of blocking the pit lane exit abruptly. Unfortunately, neither happened and &lt;span id="SPELLING_ERROR_6" class="blsp-spelling-error"&gt;Kimi&lt;/span&gt; was out of the race. Since then, he has looked out of sorts in most of the races, being bogged down behind the mid field drivers and unable to overtake them, let alone being able to do it with ease given his superior car and ability. One of the best moments in an F1 race happen when we see overtaking and that is what Kimi is so good at but it just ain't happening in the last few races.&lt;br /&gt;&lt;br /&gt;Two races back the commentators were talking about &lt;span id="SPELLING_ERROR_8" class="blsp-spelling-error"&gt;Kimi&lt;/span&gt; possibly losing interest in the sport and contemplating retirement!!! I was like, are you guys out of your mind????? But seeing the way &lt;span id="SPELLING_ERROR_9" class="blsp-spelling-error"&gt;Kimi&lt;/span&gt; has driven in the last 2 races has made me put in a second thought. Not only in the actual race, Kimi has consistently been beaten by Massa in the last 3-4 races. I just don't see the aggression in his driving right now. One would imagine that given that he is about 10 points behind Hamilton and more or less on par with &lt;span id="SPELLING_ERROR_10" class="blsp-spelling-error"&gt;Massa&lt;/span&gt;, he would put in an extra effort to go for the wins and close down the points gap, even building up a lead if possible. But he has seemed content with 3rd-4&lt;span id="SPELLING_ERROR_11" class="blsp-spelling-corrected"&gt;Th&lt;/span&gt; place finishes. I was surprised to read an article recently which said that &lt;span id="SPELLING_ERROR_12" class="blsp-spelling-error"&gt;Kimi&lt;/span&gt; would be relegated to be the second driver in his team and asked to help &lt;span id="SPELLING_ERROR_13" class="blsp-spelling-error"&gt;Massa&lt;/span&gt; in his fight to be the champion. How can someone of &lt;span id="SPELLING_ERROR_14" class="blsp-spelling-error"&gt;Kimi's&lt;/span&gt; ability be anything but the number 1 driver in his team and that too when he himself is well within reach of defending his title? I was somehow not convinced that Ferrari would actually do something like that so I headed to the &lt;a href="http://www.formula1.com/"&gt;F1&lt;/a&gt; site. Sure enough, I found that the actual statement made by the team was very generic and if you look at it, kind of obvious one. The article I read had made some inaccurate conclusions. What the Ferrari team had said is that if need be we might ask &lt;span id="SPELLING_ERROR_15" class="blsp-spelling-error"&gt;Raikonnen&lt;/span&gt; to help &lt;span id="SPELLING_ERROR_16" class="blsp-spelling-error"&gt;Massa&lt;/span&gt; win the world title. This will happen only if &lt;span id="SPELLING_ERROR_17" class="blsp-spelling-error"&gt;Raikonnen&lt;/span&gt; has mathematically no chance of winning the championship and judging by the performance of Ferrari till now, I don't see this happening till the last 2-3 races of the season so we can put aside any thoughts of &lt;span id="SPELLING_ERROR_18" class="blsp-spelling-error"&gt;Raikonnen&lt;/span&gt; being demoted to the number 2 slot.&lt;br /&gt;&lt;br /&gt;The championship this year is closer than it has ever been with Hamilton, &lt;span id="SPELLING_ERROR_19" class="blsp-spelling-error"&gt;Massa&lt;/span&gt; and &lt;span id="SPELLING_ERROR_20" class="blsp-spelling-error"&gt;Raikonnen&lt;/span&gt; fighting it out for the top position and all this while, &lt;span id="SPELLING_ERROR_21" class="blsp-spelling-error"&gt;Kubica&lt;/span&gt; and &lt;span id="SPELLING_ERROR_22" class="blsp-spelling-error"&gt;Heidfeld&lt;/span&gt; are also scoring some good points and being in the fray for at least a top 3 finish. I hope the minor blip in Ferrari's performance, which certainly could have been one of the reasons for Kimi's poor performances, has been taken care of by the team. It certainly seems so as Massa was on the verge of winning the race before last and he won the last race too. Me being a hardcore Ferrari fan, would love to see the fire back in &lt;span id="SPELLING_ERROR_23" class="blsp-spelling-error"&gt;Kimi's&lt;/span&gt; driving so that he and &lt;span id="SPELLING_ERROR_24" class="blsp-spelling-error"&gt;Massa&lt;/span&gt; can beat Hamilton and either one of them can go on and win the title.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-1714242557737693422?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/1714242557737693422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/08/what-is-wrong-with-kimster.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/1714242557737693422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/1714242557737693422'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/08/what-is-wrong-with-kimster.html' title='What is wrong with Kimster???'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-4387636319173004954</id><published>2008-08-30T23:57:00.004+05:30</published><updated>2010-04-13T14:18:56.553+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Should one actually use RSS readers?</title><content type='html'>I am sure the first thing on your mind after reading the title of this post is to ask yourselves whether you should even read this post. The question asked in the title would seem a no brainer to most people : obviously one has to, how else do you suppose one will manage reading so many feeds? That is exactly the problem I am trying to bring out in this post. In today's world, there are so many blogs and so many sources of information, sometimes one tends to get overwhelmed.&lt;br /&gt;&lt;br /&gt;Personally, I am just not able to keep up with the feeds I have subscribed to. I need to do my normal job as well which leaves very little time for me to try and read all the good stuff. The trouble starts now because in such situations one's primary goal is to finish the unread messages as fast as possible so that he/she can have the peace of mind that he/she has read everything and get to work. However, the entire essence of reading blogs is lost here since one is no longer able to energise his/her thoughts while reading posts and think about the various possibilities on that particular topic. Sometimes I wonder whether wouldn't it be much better if we just went to selected sites and read the stuff there. That way, one would in a way be forced to check only the most important sites but at least read them properly.&lt;br /&gt;&lt;br /&gt;Another alternative, and one which some of my friends use effectively, is to stop worrying about having unread posts and rely on the feed reader's search capabilities to find out articles based on the keywords of interest. I completely agree that feeds and readers are 2 of the best things to have happened to the Internet in recent times but, in case you have a mindset like me which keeps pricking you if you have unread posts, then maybe one should reconsider subscribing to too many blogs just because we have an aggregation of all of them in the reader. It makes much more sense to read a few good blogs with full concentration rather than reading a ton of blogs half heartedly.&lt;br /&gt;&lt;br /&gt;Of course, this is mostly applicable to technical blogs. For entertainment and news blogs, I guess the searching technique would do just fine since reading every post isn't really necessary.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-4387636319173004954?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/4387636319173004954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/08/should-one-actually-use-rss-readers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4387636319173004954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4387636319173004954'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/08/should-one-actually-use-rss-readers.html' title='Should one actually use RSS readers?'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-4772769584701856243</id><published>2008-08-30T23:03:00.005+05:30</published><updated>2008-09-14T16:27:27.060+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Review'/><title type='text'>Review : Viewzi</title><content type='html'>In today's day and age, search is becoming more and more critical to Internet users. As the amount of data on the Internet is growing exponentially, it's becoming very difficult to find exactly what you need since there are so many variations of everything on the net. Add to this the potential revenue to be earned via ads and you have one very lucrative field (Online ad revenues are estimated to be around $80 billion by 2010).&lt;br /&gt;&lt;br /&gt;The success of Google and the above mentioned factors have all led to a proliferation of search engines : each one promoting itself as the next potential Google killer. However, it is not very easy to create a scalable search engine which is also good at returning relevant results. One needs a very good indexing algorithm, just having enough infrastructure is not enough. I have seen and tried a number of search engines including (and the now infamous) &lt;a href="http://www.cuil.com/"&gt;&lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;Cuil&lt;/span&gt;&lt;/a&gt; which went down on the very first day even after generating a lot of hype before its launch. Another one, which is pretty useful but whose usefulness is currently just limited to &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;Wikipedia&lt;/span&gt;, is the semantic search engine &lt;a href="http://www.powerset.com/"&gt;&lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;Powerset&lt;/span&gt;&lt;/a&gt;. Semantic means that the search engine is able to "understand" the contents of the web pages and hence, allows users to query in natural language rather than the user having to frame his query in a way that the search engine can understand. &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;Powerset&lt;/span&gt; has shown potential and Microsoft's acquisition of the company is a testament to this.&lt;br /&gt;&lt;br /&gt;However, the one search engine &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-corrected"&gt;I've&lt;/span&gt; liked the most (amongst the latest ones of course :) ) is &lt;a href="http://www.viewzi.com/"&gt;&lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;Viewzi&lt;/span&gt;&lt;/a&gt;. It has an extremely appealing visual interface which certainly impressed me the first time I tried it. Instead of the normal hyperlink (famously called the "ten blue link") design, it has a number of different "views" (actually it has the "ten blue link" design as one of the views, for the traditional people I suppose). Each of the views has a number of sources, for example, for the "Simple text view" the sources used are Yahoo and Google. The site has about 15 different views (talk about spoiling the customer for choice). Some of my favourite views are :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Video view : Sources are &lt;a href="http://www.youtube.com/"&gt;&lt;span id="SPELLING_ERROR_6" class="blsp-spelling-error"&gt;youtube&lt;/span&gt;&lt;/a&gt; (has to be), &lt;a href="http://www.blinkx.com/"&gt;&lt;span id="SPELLING_ERROR_7" class="blsp-spelling-error"&gt;blinkx&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.veoh.com/"&gt;&lt;span id="SPELLING_ERROR_8" class="blsp-spelling-error"&gt;veoh&lt;/span&gt;&lt;/a&gt;. The results appear as 3 horizontal bars across the page and are very intuitive to use&lt;/li&gt;&lt;li&gt;MP3 view : This view uses &lt;a href="http://www.seeqpod.com/"&gt;&lt;span id="SPELLING_ERROR_9" class="blsp-spelling-error"&gt;seeqpod&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.mp3realm.org/"&gt;mp3 realm&lt;/a&gt; as its sources. The best thing about this view is that you can play songs directly from the search page. Here is an example search for &lt;a href="http://www.viewzi.com/search/joshuamp3/shaan"&gt;&lt;span id="SPELLING_ERROR_10" class="blsp-spelling-error"&gt;Shaan&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Timeline view : This is a very informative and at the same time attractive way of looking at results. The results are laid out from left to right along a timeline and scrolling at the ends will move the timeline accordingly. One can also look at a glimpse of the article by clicking on one of the results. Just check out this view for &lt;a href="http://www.viewzi.com/search/cronotron/sachin%20tendulkar"&gt;&lt;span id="SPELLING_ERROR_11" class="blsp-spelling-error"&gt;Sachin&lt;/span&gt; &lt;span id="SPELLING_ERROR_12" class="blsp-spelling-error"&gt;Tendulkar&lt;/span&gt;&lt;/a&gt;, its amazing&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Here are the pros and cons of this tool, in my opinion :&lt;/p&gt;&lt;p&gt;Pros :&lt;/p&gt;&lt;ol&gt;&lt;li&gt;The visual attractiveness has to be the USP for this site. I have not seen any other search engine come anywhere close to its ease of use and interactiveness&lt;/li&gt;&lt;li&gt;The results are fairly good for common queries&lt;/li&gt;&lt;li&gt;There are no ads (at least not yet)&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Cons :&lt;/p&gt;&lt;ol&gt;&lt;li&gt;To be a real threat to Google and be a major contender in the search engine industry, the site needs to add more sources for getting better results&lt;/li&gt;&lt;li&gt;One major limitation of the service currently (and something which they will hopefully fix soon) is an absence of a toolbar. all the other major search engines have one, even new ones like &lt;a href="http://www.scour.com/"&gt;Scour&lt;/a&gt;. Toolbars make it really easy for the user to perform searches without disrupting his current page. I think it would be even more useful for viewzi given its multiple views options.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;I think that there has to be something disruptive like &lt;span id="SPELLING_ERROR_13" class="blsp-spelling-error"&gt;viewzi&lt;/span&gt; or the vertical search engines which can break the near monopoly of Google in the search business and make search a level playing field again. The only concern for me is that Google can just as easily buy such engines for a huge amount and increase its monopoly. Let's hope Microsoft or Yahoo gets to &lt;span id="SPELLING_ERROR_14" class="blsp-spelling-error"&gt;viewzi&lt;/span&gt; first and maybe that will narrow the gap in the search market share.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-4772769584701856243?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/4772769584701856243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/08/review-viewzi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4772769584701856243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/4772769584701856243'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/08/review-viewzi.html' title='Review : Viewzi'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-2650731125467291113</id><published>2008-08-30T22:18:00.004+05:30</published><updated>2008-08-30T23:08:49.883+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Review'/><title type='text'>Review : Photosynth</title><content type='html'>Microsoft recently released its much awaited technology called &lt;a href="http://photosynth.net/"&gt;Photosynth&lt;/a&gt;. This is a very cool technology developed by Microsoft Research in association with University of Washington. The name is derived from "photo" which means picture and "synth" which is a short form for a "musical synthesizer" i.e. an instrument used to create music. Photosynth allows users to create a 3D model from a collection of "related" 2D photos. The users can then zoom in and out of the 3D picture as well as move in all directions.&lt;br /&gt;&lt;br /&gt;The tool works by identifying a set of common areas between images and then stitching together those areas to form a 3D model of the scene. All that one needs is a decent camera and some ingenuity to be able to shoot a series of photos that resemble each other. In addition, one needs a decent Internet connection to be able to upload all those pics onto the site. Microsoft has used this technology to create another similar application which also creates a 3D model of a structure but has additional powerful features such as balance out the lighting effects between different photos to create a smoother model. Photosynth has already been featured on CSI:Miami where it was used by detectives to solve a case and talks are on between Microsoft and NASA to use this technology at the International Space Station for finding out defects in the ISS body. The service has proven really popular, so popular in fact that the servers were overwhelmed on the first day itself and service went down for a few hours.&lt;br /&gt;&lt;br /&gt;Here is how to use this service :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Navigate to &lt;a href="http://photosynth.net/"&gt;Photosynth&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Log in with your live id and create a profile which basically requires you to specify a name and description for the synth (yes that is what they call the 3D model :) ) you are trying to create&lt;/li&gt;&lt;li&gt;Once logged in, browse your desktop and upload the photos from which you want the synth to be created and wait till the images are uploaded and processed.&lt;/li&gt;&lt;li&gt;Once done, the synth will be displayed. You can check &lt;a href="http://photosynth.net/view.aspx?cid=0ef1b42b-b4c3-4adf-a8f1-c7474fd7dce0"&gt;mine&lt;/a&gt; although evidently, it's not too synthy (only 20%)&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Here are the pros and cons of the service, in my opinion :&lt;/p&gt;&lt;p&gt;Pros :&lt;/p&gt;&lt;ol&gt;&lt;li&gt;It is a really cool tool to play with and use to share photos with your friends and family&lt;/li&gt;&lt;li&gt;It has very little client footprint ( only a plugin needs to be installed). Much of the processing happens on the cloud.&lt;/li&gt;&lt;li&gt;It's decent in terms of speed, much of it depends on your Internet connection speed but the processing seems pretty fast&lt;/li&gt;&lt;li&gt;You can tag the synths which makes searching easier&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Cons :&lt;/p&gt;&lt;ol&gt;&lt;li&gt;The fact that it has a very little client footprint is also a disadvantage since one needs to be connected to the Internet to be able to use it&lt;/li&gt;&lt;li&gt;There is no option to save your creations onto the desktop ( Hopefully this will change once the product matures )&lt;/li&gt;&lt;li&gt;All creations are public which means anyone can see any one's synths&lt;/li&gt;&lt;li&gt;It works only on PCs right now (Support for the Mac is expected soon)&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;However, the product is still in its infancy and we can expect Microsoft to add more features (most importantly : Saving synths and authorization ) in the near future. All in call, I found it a lot of fun to work with and a nice way to share your experiences with your family and friends and help them relive it in 3D&lt;span style="font-size:+0;"&gt;&lt;/span&gt;&lt;span style="font-size:+0;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-2650731125467291113?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/2650731125467291113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/08/review-photosynth.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/2650731125467291113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/2650731125467291113'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/08/review-photosynth.html' title='Review : Photosynth'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-6022288815065790478</id><published>2008-08-25T00:06:00.007+05:30</published><updated>2008-08-25T00:55:49.987+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sports'/><category scheme='http://www.blogger.com/atom/ns#' term='Tennis'/><title type='text'>The sudden fall of the maestro, Roger Federer</title><content type='html'>I would like to admit at the outset itself that I am a huge fan of Federer and it pains me a lot to accept that he has fallen from his throne and relinquished his no.1 spot, w&lt;span&gt;&lt;/span&gt;hich he had made all his own for the past 4 years.&lt;br /&gt;&lt;br /&gt;This year has been really tough for Federer. It started out with him suffering from a debilitating disease called glandular fever which ruled him out of action for a few weeks at the start of the year. He returned to the Australian open - albeit not in the best of physical and probably mental condition - but lost in the semi finals to eventual winner Djokovic. That was just the start. After that defeat, there were numerous other defeats in ATP masters series tournaments. Although he would reach the semis easily, he would struggle after that against better opponents and lose in the semis itself or maybe make it to the finals but lose there.&lt;br /&gt;&lt;br /&gt;Then came one of the most critical moments of the year, both for him and Nadal : The French open finals. Nadal handed Federer the most humiliating defeat he has suffered in years and the scoreline of the final was one of the most one sided ever in the history of the tournament. Before the start of the tournament, many pundits had predicted that maybe Federer might just win the title that had eluded him for so long this year. But it was not to be. He looked lacklustre in the finals, tried a few different things none of which came off successfully, and after losing the second set, he had a look of resignation on his face and eventually lost the final set 6-0.&lt;br /&gt;&lt;br /&gt;After this defeat, many people noticed cracks appearing in Federer's game but thought that it might be still due to the after effects of the illness. Federer was still the favourite to win the Wimbledon for a record 6th consecutive year. The final, again between Federer and Nadal, was an absolute classic. It was one of the longest Wimbledon finals in the Open era and was a topsy turvy affair. It had everything : brilliant tennis, rain breaks, drama, fist pumping by Nadal (and also the "crying" look on Nadal's face when he started losing sets). Nadal dominated the first 2 sets, then there was a rain break, after which Federer slowly crawled his way back into the match by taking the next 2 sets. The final set looked like going Federer's way. We just had to back him given his class, experience at winning this tournament and composure. However, a lapse of concentration in just 1 game and the set was won by Nadal and this brought down the curtains on the Federer era at Wimbledon. Nadal become the first player after Bjorn Borg to win French and Wimbledon titles in the same year. He seemed unbeatable!!!&lt;br /&gt;&lt;br /&gt;Federer, on the other hand, seemed like he had lost in his own backyard to an outsider. The chinks in his armour started widening : his first serve % was going down, the free points on the first serve weren't there, his main weapon - the forehand - was giving up on him and he was making errors after errors on his favourite shot. All these losses also meant that he had to relinquish his no. 1 rank to Nadal. Federer however seemed confident of bouncing back strongly.&lt;br /&gt;&lt;br /&gt;Then came the Olympics, a place where Federer hadn't won a single medal in his 2 previous attempts : could things be any different this time? NO. The match between Federer and Blake was a real dampener and utterly disheartening for any Federer fan. He was playing as if he was completely disinterested in the game after he had lost the first set and was making errors upon errors. There was a time when he used to go through a 3 or 4 set match with errors in single digits but this year, the errors column has always had a pretty big number. Although he showed some form reminiscent of the old Federer, it wasn't consistent enough and he had lost. It was another nail being drilled in the Federer coffin.&lt;br /&gt;&lt;br /&gt;Throughout this year what has been the most troubling thing hasn't essentially been the losses he has suffered but the game which he has been putting on display and the opponents to whom he has lost : Mardy Fish, Richard Gasquet, James Blake.... These are players which Federer has annihilated time and again throughout his career which makes his straight sets losses to these players all the more painful.&lt;br /&gt;&lt;br /&gt;Federer still has the US Open and the year end Masters series to salvage something out of this year : he hasn't won a single trophy in the entire year!!!! But the odds will be heavily stacked against him and in my opinion, he will not even be amongst the top 2 favourites to win the tournament. That honour will go to Nadal and Djokovic.&lt;br /&gt;&lt;br /&gt;All I can hope, as a fan of Federer and as a fan of tennis, is that this blip was due to the illness he suffered and that come next year, he will get back to his winning ways and smoking his opposition. It really is a treat to watch him conduct himself on and off the court, he isn't too bad at handling the racquet either. The man rightly commands respect from one and all. Tennis needs him to get back to form so that all of us can enjoy many memorable matches between the 3 great rivals : Nadal, Djokovic and King Federer.&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-6022288815065790478?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/6022288815065790478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/08/sudden-fall-of-maestro-roger-federer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/6022288815065790478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/6022288815065790478'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/08/sudden-fall-of-maestro-roger-federer.html' title='The sudden fall of the maestro, Roger Federer'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-6403456475374900558</id><published>2008-08-24T02:06:00.004+05:30</published><updated>2010-04-13T14:18:56.554+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Another trekking experience</title><content type='html'>Two weeks back, I had gone for another trek, this time in India. This one was in completely different weather conditions : it was raining heavily and there were huge gusts of wind accompanying the rain. We had planned to start from &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;Lonavala&lt;/span&gt; and trek till &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;Rajmachi&lt;/span&gt; which is about 15 &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;kms&lt;/span&gt; from &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;Lonavala&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The trek started in good spirits. All of us friends (6 of us this time) were meeting after a long time and were quite upbeat about the whole thing. We had started trekking pretty early, around 9.30, after having a light breakfast. However, I &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;don't&lt;/span&gt; think any of us knew the level of endurance required to complete the trek. Moreover, most of us were newbies to the whole trekking thing and hence, made some pretty stupid decisions (mentioned at the end of this post) in doing our preparations.&lt;br /&gt;&lt;br /&gt;The rains had caused the pathway to become extremely muddy and sluggish to the extent that some of us even found ourselves stuck in quick sand a couple of times. Also, it was pretty foggy and visibility at times was restricted to about a few metres. Although we &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;couldn't&lt;/span&gt; enjoy all of the surrounding beauty because of the fog, there was still plenty of scenic stuff to marvel. We came across small streams ever so often which led into quite a few waterfalls. Some frequent trekkers pointed us to a place from where we could see the largest waterfall in the area but that day, we &lt;span id="SPELLING_ERROR_6" class="blsp-spelling-error"&gt;couldn't&lt;/span&gt; see it because of the fog.&lt;br /&gt;&lt;br /&gt;Since we &lt;span id="SPELLING_ERROR_7" class="blsp-spelling-error"&gt;didn't&lt;/span&gt; know the route (online maps &lt;span id="SPELLING_ERROR_8" class="blsp-spelling-error"&gt;didn't&lt;/span&gt; have much information on the area) we were relying on the other groups trekking on that day to act as our guides. There was a group which had come there to do &lt;span id="SPELLING_ERROR_9" class="blsp-spelling-error"&gt;rappelling&lt;/span&gt; at a waterfall. Me, with my fear of heights, &lt;span id="SPELLING_ERROR_10" class="blsp-spelling-error"&gt;couldn't&lt;/span&gt; even get myself to look down from the point where those pros were going to &lt;span id="SPELLING_ERROR_11" class="blsp-spelling-error"&gt;rappel&lt;/span&gt; their way down.&lt;br /&gt;&lt;br /&gt;After much struggling, we reached a place (which we hoped was close to our destination because none of us had much gas left in the tank) where 2 jeeps were parked. We met a couple of guys there who gave us the shock of our lives by telling us that there was no village on the path we were following (we had decided to go to a village and stay there instead of trekking further to the &lt;span id="SPELLING_ERROR_12" class="blsp-spelling-error"&gt;Rajmachi&lt;/span&gt; fort since it was too tiring and quite slippery). For a moment or 2, we were scared since we were in a situation where, according to those guys' advice, there was no point in continuing further nor could we turn around and climb down since that would take another 4-5 hours, which would have been impossible for us to do given our physical condition at that time. However, we decided to probe a bit more and continued on and finally reached a small village after 15-20 &lt;span id="SPELLING_ERROR_13" class="blsp-spelling-error"&gt;mins&lt;/span&gt; more. The whole climb took about 5 hours and was incredibly tiring.&lt;br /&gt;&lt;br /&gt;We found a house where we could spend the night. It was a single &lt;span id="SPELLING_ERROR_14" class="blsp-spelling-corrected"&gt;storeyed&lt;/span&gt; building where the villagers occupied the ground floor and we got to stay in a room on the first floor. The food provided by them was really good and very much homely. In a casual conversation with the house owner, we found out that they needed to do the same trek we were doing every week just to get the food, clothing etc from shops in the city. This gave us an idea of how secluded the village really was.&lt;br /&gt;&lt;br /&gt;That night we slept pretty early as we had to start the next day early morning. Most of us had cramps in multiple places but all of us showed determination and the will to slug it out and prove to ourselves that we can complete this arduous trek. The return journey was relatively less tiring, one of the reasons for this being that we knew the route now so we had a basic idea of where we were and how much further we had to go.&lt;br /&gt;&lt;br /&gt;We finally reached the &lt;span id="SPELLING_ERROR_15" class="blsp-spelling-error"&gt;Lonavala&lt;/span&gt; city after walking for almost 5 hours that day again. All in all, we had covered about 30 &lt;span id="SPELLING_ERROR_16" class="blsp-spelling-error"&gt;kms&lt;/span&gt; in a day and a half, and all of us were very proud (and rightly so) of completing the trek. Even though all of us were tired like hell, there wasn't a single moment where any of us regretted going on this trek. There were 2 main reasons for not having any feelings of regret. One of them was obviously the fact that it helped us prove to ourselves that we can get out of our comfort zones and do something like this which was like an ultimate test of one's endurance. The other reason was that it helped us spend some time together and get to know what is going on in each other's lives, after quite a gap where we were kind of busy with work and couldn't stay well connected.&lt;br /&gt;&lt;br /&gt;There were some very important lessons learnt on this trek. I will try to list them down, &lt;strike&gt;mainly&lt;/strike&gt; as a reminder for myself and also, as a checklist of things to take care of for someone who is planning to go for a trek.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Carry backpacks so that the weight is &lt;span id="SPELLING_ERROR_17" class="blsp-spelling-corrected"&gt;evenly&lt;/span&gt; distributed on both shoulders&lt;/li&gt;&lt;li&gt;Do not carry umbrellas, use wind cheaters always&lt;/li&gt;&lt;li&gt;Use proper footwear viz., Floaters or shoes, no sandals!!!&lt;/li&gt;&lt;li&gt;Do not carry even a single gram of weight more than you need. Try to eliminate as much stuff as possible from your bags&lt;/li&gt;&lt;li&gt;Always carry some pain killers and generally used medicines &lt;span id="SPELLING_ERROR_18" class="blsp-spelling-corrected"&gt;along with&lt;/span&gt; you&lt;/li&gt;&lt;li&gt;Wear track pants, 3/4&lt;span id="SPELLING_ERROR_19" class="blsp-spelling-corrected"&gt;Th's&lt;/span&gt; or shorts while trekking. This will help in giving better flexibility and also feel light on your legs&lt;/li&gt;&lt;li&gt;&lt;span id="SPELLING_ERROR_20" class="blsp-spelling-error"&gt;Don't&lt;/span&gt; worry if you &lt;span id="SPELLING_ERROR_21" class="blsp-spelling-error"&gt;don't&lt;/span&gt; have the minutest details of the plan chalked out. It might just become too predictable if you do that&lt;/li&gt;&lt;li&gt;Finally, and most importantly, &lt;span id="SPELLING_ERROR_22" class="blsp-spelling-error"&gt;don't&lt;/span&gt; forget to have fun!!!&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-6403456475374900558?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/6403456475374900558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/08/another-trekking-experience.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/6403456475374900558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/6403456475374900558'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/08/another-trekking-experience.html' title='Another trekking experience'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998646982227098365.post-5621385488232262068</id><published>2008-08-24T01:40:00.007+05:30</published><updated>2010-04-13T14:18:56.555+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>First trekking experience</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_Saa_LJZkn2o/SLCGvqXR3_I/AAAAAAAAA98/bxUF5rNqFkw/s1600-h/DSC05858.JPG"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; FLOAT: right; CURSOR: hand" id="BLOGGER_PHOTO_ID_5237834520015790066" border="0" alt="" src="http://2.bp.blogspot.com/_Saa_LJZkn2o/SLCGvqXR3_I/AAAAAAAAA98/bxUF5rNqFkw/s320/DSC05858.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Last month I had gone to the US for 2 weeks for some job related training. On one of the weekends, I had the chance to go for a trek on Mt. Rainier, which is the most well known mountain amongst a bunch of volcanic mountains surrounding Seattle, Washington.&lt;br /&gt;&lt;br /&gt;This experience brought a number of firsts in my life - it was my first trek, the first time I felt snow in my hand and played with it and the first time I felt breathless even though I was walking at a leisurely pace. The trek was about a quarter of a mile while climbing and took us (about 15 friends) approximately 45 mins. We were going to be at a height of about 7.5-8K feet by the time we reached the end of the trek.&lt;br /&gt;&lt;br /&gt;The scenic beauty on display was just breathtaking. There were beautiful flowers, rarely seen in the urban areas we inhabit, on both sides of the pathway, huge decades old trees, valleys and to top it all off, there were snow clad areas strewn across the place. The best part was at the end of the trek where we got to a lake which was partly frozen. The lake was looking really beautiful but unfortunately we couldn't take close up pictures since the nearby area was cordoned off to prevent the flowers from being crushed.&lt;br /&gt;&lt;br /&gt;On our way down, we had to take a slightly different route which required us to cover about 1 mile but took us nearly the same time since climbing down is always faster than going up. All of us were really tired and spent most of the time sleeping during the bus ride from the foot of the mountain back to our hotel.&lt;br /&gt;&lt;br /&gt;That day is going to remain etched in my memory for a long time and so will the natural beauty I got a chance to see upfront. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998646982227098365-5621385488232262068?l=sanketvasa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sanketvasa.blogspot.com/feeds/5621385488232262068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sanketvasa.blogspot.com/2008/08/first-trekking-experience.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5621385488232262068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998646982227098365/posts/default/5621385488232262068'/><link rel='alternate' type='text/html' href='http://sanketvasa.blogspot.com/2008/08/first-trekking-experience.html' title='First trekking experience'/><author><name>Sanket Vasa</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Saa_LJZkn2o/SLCGvqXR3_I/AAAAAAAAA98/bxUF5rNqFkw/s72-c/DSC05858.JPG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
