<?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-21823126</id><updated>2012-02-16T22:14:09.471-05:00</updated><category term='Linked List Problems'/><category term='Find Cycle'/><category term='Assembly'/><category term='Technology'/><category term='Captcha'/><category term='Javascript'/><category term='Logmein'/><category term='Reporting Service'/><category term='reverse a string'/><category term='Tools'/><category term='Meebo'/><category term='Surface'/><category term='Remote Access'/><category term='Security'/><category term='algorithms'/><category term='Reverse a Linked List'/><category term='News'/><category term='.NET'/><title type='text'>Lav's Domain</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-21823126.post-2962887345031944843</id><published>2008-04-17T12:06:00.003-04:00</published><updated>2008-04-17T13:41:15.873-04:00</updated><title type='text'>stackoverflow.com</title><content type='html'>&lt;p&gt;Yesterday &lt;a href="http://joelonsoftware.com/items/2008/04/16.html"&gt;Joel Spolsky&lt;/a&gt; and &lt;a href="http://www.codinghorror.com/blog/archives/001101.html"&gt;Jeff Atwood&lt;/a&gt; announced that they will be launching programming Q&amp;amp;A site called &lt;a href="http://www.stackoverflow.com/"&gt;stackoverflow.com&lt;/a&gt;. This will be really amazing. I really like free programming forums and they are my best resources at times when I am looking to solve specific problem. I am a frequent user of &lt;a href="http://www.asp.net/forums"&gt;asp.net forums&lt;/a&gt; and try to answer other programmer's questions whenever I get time. I have also used it to ask questions and I have been really happy with results as I was successfully able to find solution each time.&lt;/p&gt;  &lt;p&gt;So stackoverflow.com is going to be pretty much same thing only for broader audience then asp.net forums. It is also gonna be free and will allow programmers to ask questions and also answer them. They also talked about using some sort of rating systems like digg so the correct and most updated answers to the questions will always stay on the top and will always be easy to get to. I have seen this problem way too many times in the forums, that sometimes a good answer to your forum question is way down below or those answers might be outdated.&lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Apart from this they also going to be discussing various technology issues once a week and put that discussion up on the web site as a podcast. They already have posted their first podcast on the web site. It is around 46 minutes long and they discussed why they are starting this web site and what are their future plans, but I have to agree with Joel over there that they had hard time stay on the topic. I suggest that they should announce the topic in advance that they will discuss next time so that way they can target specific audience and save time of others who doesn't have any interest in that particular topic. Also, I think these talks should be short around 30 minutes or so. I also suggest that they start another blog on this new web site. Everyone knows that both are great writers and having them work together on a blog can produce some really high quality blog posts.&lt;/p&gt;  &lt;p&gt;I am really excited though and will be waiting anxiously for this new web site to launch. Good luck to both Joel and Jeff on this new project.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-2962887345031944843?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/2962887345031944843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=2962887345031944843' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/2962887345031944843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/2962887345031944843'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2008/04/stackoverflowcom.html' title='stackoverflow.com'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-2559557284064982299</id><published>2008-03-27T12:18:00.001-04:00</published><updated>2008-03-27T14:22:16.236-04:00</updated><title type='text'>Posting Blogs using Windows Live Writer</title><content type='html'>&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3b3d8832-5948-480c-a371-780ab59a95e4" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Blogging" rel="tag"&gt;Blogging&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Tools" rel="tag"&gt;Tools&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows%20Live" rel="tag"&gt;Windows Live&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Editor" rel="tag"&gt;Editor&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;I have been using the editor provided by blogger to write and post my blog posts. I have to say that its really awful and really limited in features. I had following problems using it:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;I had lot of trouble posting pictures and format it properly with the content. &lt;/li&gt;    &lt;li&gt;Posting code blocks was also the pain in the ass. You have to go back and update HMTL in order to put any format around any specific paragraph. &lt;/li&gt;    &lt;li&gt;WYSWYG editor wasn't working properly either. After looking at the preview when I actually publish my post it would give me different view. There were spacing issues between lines. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Just today I came to know about Windows Live Writer. Its a light weight editor that you can download for free and install it and publish your blog posts. It seems pretty cool so far. I played with inserting pictures and inserting tables and stuff and it worked fine.&lt;/p&gt;  &lt;p&gt;It also provides connectivity with your blog&amp;#160; and stores all the connection information, so you can publish your posts just with one click. &lt;/p&gt;  &lt;p&gt;You can download several free plug-ins which will allow you to insert formatted code blocks or smiley or files and lot of other things.&lt;/p&gt;  &lt;p&gt;Example of a Code Block:&lt;/p&gt;  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4"&gt;   &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; myFunc()&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i=0;&lt;br /&gt;    Console.WriteLine(i);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;So As you can see it looks pretty neat here. You can also store drafts of your posts locally before publishing them.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This is the tool I am going to be using from now on to publish my blog posts.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-2559557284064982299?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/2559557284064982299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=2559557284064982299' title='33 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/2559557284064982299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/2559557284064982299'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2008/03/posting-blogs-using-windows-live-writer.html' title='Posting Blogs using Windows Live Writer'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>33</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-8905324592058114460</id><published>2008-03-21T09:44:00.013-04:00</published><updated>2008-12-09T17:34:00.569-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Assembly'/><title type='text'>Strong Naming your .NET Assembly</title><content type='html'>&lt;div align="left"&gt;Yesterday I was talking to one my &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;colleague&lt;/span&gt; about signing your assembly with a key pair and benefits that come with it. He was under the impression that signing an assembly would stop &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;anyone to decompile your assembly and see your code&lt;/span&gt;&lt;/span&gt;. Which is &lt;strong&gt;wrong&lt;/strong&gt;. Strong naming your assembly has quite a few advantages but it will not prevent anyone from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;decompiling&lt;/span&gt;&lt;/span&gt; your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;dlls&lt;/span&gt;.&lt;/span&gt; &lt;/div&gt;&lt;div align="left"&gt;So I thought let me blog about how to strong name your .NET assembly and what kind of advantages it can offer. We are part of internal IT group of an organization so we &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;dont&lt;/span&gt; need to distribute our apps out to lot of outside clients &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;thats&lt;/span&gt; why we usually &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;dont&lt;/span&gt; strong name our assemblies but if you wanna put your assembly in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;GAC&lt;/span&gt; and reference it from multiple applications then it is required to strong name your assembly.&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;strong&gt;Benefits&lt;/strong&gt;&lt;/div&gt;&lt;div align="left"&gt;Let me List the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;benefits&lt;/span&gt; of Strong naming your assembly first.&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;1) Like I said earlier that strong naming your assembly allows you to include your assembly into &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;GAC&lt;/span&gt; (Global Assembly Cache) thus allow you to share it among multiple applications.&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;2) Strong naming guarantees unique name for that assembly. Thus no one else can use same assembly name.&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;3) Strong name protect the version lineage of an assembly. A strong name can ensure that no one is able to produce a subsequent version of your assembly. Application users are ensured that a version of the assembly they are loading come from the same publisher that created the version the application was built with. &lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;4) Strong named assemblies are signed with a digital signature. This protects the assembly from modification. Any tampering causes the verification process that occurs at assembly load time to fail. An exception is generated and the assembly is not loaded. &lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;strong&gt;Fundamentals&lt;/strong&gt;&lt;/div&gt;&lt;div align="left"&gt;So what is happening behind the scene when you sign your assembly that will provide all the above benefits?&lt;/div&gt;&lt;div align="left"&gt;Signing your assembly is a two step process and it involves two fundamentals of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;cryptogratphy&lt;/span&gt;: hashing and digital signatures. &lt;/div&gt;&lt;div align="left"&gt;First a hash key is generated from assembly using hashing &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;algorithm&lt;/span&gt; (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;SHA&lt;/span&gt;1). After this hash key is generated it will be encrypted using the private key and then encrypted hash is placed with the assembly and the public key. After your assembly is consumed by client application it will use same hashing &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;algorithm&lt;/span&gt; to generate the hash from your assembly content again and then it will decrypt the previous hash key using the public key placed with the assembly. If two hash matches then you can say that your assembly has not been modified and thus it prevents &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;unauthorized&lt;/span&gt; tampering of your assembly.&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;strong&gt;How To&lt;/strong&gt;&lt;/div&gt;&lt;div align="left"&gt;So here's how you do it. I am using Visual Studio 2005 as my tool to write and sign an assembly.&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;First you need to generate key pair which is your private key and public key like I described earlier. Private key will not be distributed and will be used to encrypt the hash and public key will be distributed along with your assembly. You have to this only once as you can use same key pairs for all of your assemblies.&lt;/div&gt;&lt;div align="left"&gt;1) Run following command.&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;em&gt;&lt;span style="color:#666666;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;sn&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;exe&lt;/span&gt; -k &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;PublicPrivateKeyFile&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;snk&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="left"&gt;This randomly creates a pair of 1,024-bit cryptographic keys. You can use these keys for encryption and decryption by using the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;RSA&lt;/span&gt; public/private key algorithm. The resulting key file contains both the public and the private key. You can extract the public key from the file and place it in a separate file like this&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;em&gt;&lt;span style="color:#666666;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;sn&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;exe&lt;/span&gt; -p &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;PublicPrivateKeyFile&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;snk&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;PublicKeyFile&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;Make sure you keep your .&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;snk&lt;/span&gt; file at a secure place. You &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;dont&lt;/span&gt; distribute this file with your assembly. It will keep your private key safe.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p align="left"&gt;2) After you have your key file go to visual studio select "My Project" file on your solution explorer. This will open a form with tabs on left hand side. Select Signing tab. Check the Sign the assembly &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;checkbox&lt;/span&gt; and then browse to your .&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;snk&lt;/span&gt; file and select the file.&lt;/p&gt;&lt;p align="left"&gt;This will &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_29"&gt;essentially&lt;/span&gt; add &lt;em&gt;[assembly: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;AssemblyKeyFile&lt;/span&gt;("&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;PublicPrivateKeyFile&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;snk&lt;/span&gt;")] &lt;/em&gt;attribute to your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;asseblyinfo&lt;/span&gt; file. And &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;thats&lt;/span&gt; it!!! You have to perform this step &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;everytime&lt;/span&gt; you create a new assembly and you want to sign it with strong name.&lt;/p&gt;&lt;a href="http://4.bp.blogspot.com/_XzcpPd2X6Yw/R-gA8hfvCII/AAAAAAAAABE/NPHxHmCgjdA/s1600-h/untitled.jpeg"&gt;&lt;/a&gt;&lt;div align="left"&gt;&lt;a href="http://2.bp.blogspot.com/_XzcpPd2X6Yw/R-gBLBfvCJI/AAAAAAAAABM/-8UvK_18EjI/s1600-h/untitled.jpeg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5181392660181485714" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_XzcpPd2X6Yw/R-gBLBfvCJI/AAAAAAAAABM/-8UvK_18EjI/s320/untitled.jpeg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;You can now deploy your assembly to the client's machine. Client has to strong name his own applications also in order to use your assembly otherwise at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;runtime&lt;/span&gt; assembly load will fail.&lt;/div&gt;&lt;div align="left"&gt;Also if someone tempers with your assembly (unauthorized change in code) then the new hash will be different than the hash stored with the assembly so it will again fail to load. No one can change your hash also because they &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;dont&lt;/span&gt; have your private key generated earlier to encrypt the hash and put it with the assembly. Remember though that they still might use some &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;decompiler&lt;/span&gt; and might be able to see your code. Strong naming your assembly will not prevent that.&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;So this is it. Hope this has helped shed some more light.&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;Comments and questions are always welcome.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-8905324592058114460?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/8905324592058114460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=8905324592058114460' title='39 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/8905324592058114460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/8905324592058114460'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2008/03/strong-naming-your-net-assembly.html' title='Strong Naming your .NET Assembly'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XzcpPd2X6Yw/R-gBLBfvCJI/AAAAAAAAABM/-8UvK_18EjI/s72-c/untitled.jpeg' height='72' width='72'/><thr:total>39</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-612236689589556153</id><published>2008-03-12T11:29:00.022-04:00</published><updated>2008-12-09T17:34:00.944-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Reporting Service'/><title type='text'>Using Custom Assemblies with SQL Server Reporting Service</title><content type='html'>We use Microsoft Reporting Services a lot. Its our main platform for generating reports and provide Business Intelligence functionality to our users.&lt;br /&gt;There are times when I really like Reporting services and at many other times I have been disappointed. Using Custom assembly to write custom code inside Reporting Services is one of those disappointing time. I had to do it couple of times in past couple of years and everytime I had to search for blogs and such as I started getting errors and stuff. So I thought why not blog about what I have learned so I know where to go if any of such situation arise again in future.&lt;br /&gt;&lt;br /&gt;Let me list some of the limitations first that I found while doing this task:&lt;br /&gt;1) You can not use 1.1 .NET assemblies with SQL Reporting service 2005. You might have noticed that your 2.0 apps allow you to use 1.1 assemblies but not reporting services.&lt;br /&gt;&lt;br /&gt;2) Reporting Services can not access your assemblies from GAC. You have to deploy them specifically inside a specific bin folder for your report server.&lt;br /&gt;&lt;br /&gt;3) If you are using third party .NET component or COM assemblies and you dont have much of an idea how the code has been implemented then its the pain in the ass.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Development:&lt;/strong&gt;&lt;br /&gt;Here I am going to use Visual Studio 2005 for development. To Reference the custom dll copy and paste your dll into &lt;em&gt;C:\Program Files\Microsoft SQL Server\80\Tools\Report Designer &lt;/em&gt;Directory.&lt;br /&gt;&lt;br /&gt;After that inside visual studio go to Report &gt; Report Properties.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_XzcpPd2X6Yw/R96BMltTkwI/AAAAAAAAAA0/C1Bq7oApqOk/s1600-h/gotoProps.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5178718674803200770" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_XzcpPd2X6Yw/R96BMltTkwI/AAAAAAAAAA0/C1Bq7oApqOk/s200/gotoProps.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Select Reference Tab. Over there Browse to the folder where you copied your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;dll&lt;/span&gt; earlier and then add the reference.&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_XzcpPd2X6Yw/R96B9FtTkxI/AAAAAAAAAA8/b8bdVEt3hRA/s1600-h/Reference.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5178719508026856210" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_XzcpPd2X6Yw/R96B9FtTkxI/AAAAAAAAAA8/b8bdVEt3hRA/s200/Reference.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After that go to Code tab on the same Report Properties dialog box and you can create an object of a class from that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;dll&lt;/span&gt; and start using it.&lt;br /&gt;&lt;br /&gt;Now If your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;dll&lt;/span&gt; is signed &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;dll&lt;/span&gt; then you have to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;go to&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;assemblyinfo&lt;/span&gt; file and add&lt;em&gt;[assembly:&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;AllowPartiallyTruestedCallers&lt;/span&gt;]&lt;/em&gt; attribute. To add this you also have to add&lt;br /&gt;&lt;em&gt;using system.Security;&lt;/em&gt;&lt;br /&gt;This is required to allow reporting services to access your signed &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;dll&lt;/span&gt;. For unsigned &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;dlls&lt;/span&gt; this is not required.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Deployment:&lt;/strong&gt;&lt;br /&gt;After you deploy your report on report server copy the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;dll&lt;/span&gt; that you are referencing from your report to the directory &lt;em&gt;C:\Program Files\Microsoft &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;SQL&lt;/span&gt; Server\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;MSSQL&lt;/span&gt;\Reporting Services\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;ReportServer&lt;/span&gt;\bin&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now final step during deployment is to change reporting services policy file to grant the custom assembly required permissions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Open &lt;em&gt;C:\Program Files\Microsoft &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;SQL&lt;/span&gt; Server\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;MSSQL&lt;/span&gt;\Reporting Services\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;ReportServer&lt;/span&gt;\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;rssrvpolicy&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;config&lt;/span&gt;&lt;/em&gt; file.&lt;br /&gt;&lt;br /&gt;Add following &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;codegroup&lt;/span&gt; in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;config&lt;/span&gt; file&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#999999;"&gt;&lt;em&gt;&lt;span style="color:#666666;"&gt;&amp;lt;codegroup class="FirstMatchCodeGroup" version="1" permissionsetname="FullTrust" name="StrongNamedCodeGroup" description="A special code group for my custom Assembly."&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;imembershipconditionclass="urlmembershipcondition" url="C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin\myCustom.dll" version="1"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/codegroup&amp;gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After This you are all set to use your custom assembly. Deploy your reports on production box and try accessing them.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you wanna use COM assembly inside your reports &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;check out&lt;/span&gt; &lt;a href="http://www.codeproject.com/KB/reporting-services/CustomAssemblies.aspx"&gt;this article&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Comments and suggestions are always welcome.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;em&gt;&lt;/em&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-612236689589556153?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/612236689589556153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=612236689589556153' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/612236689589556153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/612236689589556153'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2008/03/using-custom-assemblies-with-sql-server.html' title='Using Custom Assemblies with SQL Server Reporting Service'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XzcpPd2X6Yw/R96BMltTkwI/AAAAAAAAAA0/C1Bq7oApqOk/s72-c/gotoProps.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-6860162664528820328</id><published>2008-03-10T10:21:00.006-04:00</published><updated>2008-03-10T13:57:15.534-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='News'/><category scheme='http://www.blogger.com/atom/ns#' term='Captcha'/><title type='text'>Death of Captchas</title><content type='html'>Hi&lt;br /&gt;Everyone by now must be &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;familiar&lt;/span&gt; with the news that three so called 'Unbreakable' &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;CAPTCHAs&lt;/span&gt; has been hacked.&lt;br /&gt;&lt;a href="http://www.codinghorror.com/blog/archives/001067.html"&gt;&lt;strong&gt;Here is the article&lt;/strong&gt;&lt;/a&gt; from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;CodingHorror&lt;/span&gt; Guy (Jeff Atwood).&lt;br /&gt;So what is next? How to stop them hackers? I know that they have to come up with a specific implementation for a specific &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;CAPTCHA&lt;/span&gt;. Jeff mentions in that article that no one would &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;come up&lt;/span&gt; with specific implementation of a bot to hack through your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;CAPTCHA&lt;/span&gt; if incentives are not significant enough but what if they are or what if your boss wants to change your authentication strategy anyway since he heard the same news about the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;CAPTCHA&lt;/span&gt;.&lt;br /&gt;I currently work for university and we manage quite a few apps where students can &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;log in&lt;/span&gt; and put money on their card using &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;credit cards&lt;/span&gt; or other resources. So We are thinking about coming up with some sort of educational question answer session or to have users selects few pictures to depict that user is actually a human not a bot.&lt;br /&gt;There are some challenges though, What if human is not clever enough to answer those questions or they &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;don't&lt;/span&gt; know how to spell specific word. How to identify them?&lt;br /&gt;I have found this &lt;a href="http://www.hotcaptcha.com/"&gt;&lt;strong&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Captcha&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;mashup&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;. Its Funny and it uses pictures from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;HotorNot&lt;/span&gt;.com website. It cracked me up as soon as I saw it.It shows you the set of 9 women (or men) and let you pick 'Hot' People. It looks really effective to me. I tried it like 5 times and every single time I was able to choose 3 'Hot' Women out of 9.&lt;br /&gt;Of course its not appropriate to use this on commercial website but its effective as far as I can tell. But we can take the same route and implement similar strategy.&lt;br /&gt;&lt;br /&gt;Your comments are always welcome. Ladies try&lt;strong&gt; &lt;/strong&gt;&lt;a href="http://www.hotcaptcha.com/"&gt;&lt;strong&gt;http://www.hotcaptcha.com/&lt;/strong&gt;&lt;/a&gt; and select 3 hot men from set of 9 and let me know if it worked for you or not.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-6860162664528820328?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/6860162664528820328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=6860162664528820328' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/6860162664528820328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/6860162664528820328'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2008/03/death-of-captchas.html' title='Death of Captchas'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-4193818563147430211</id><published>2008-02-26T15:41:00.009-05:00</published><updated>2008-12-09T17:34:01.262-05:00</updated><title type='text'>Microsoft DreamSpark</title><content type='html'>&lt;a href="https://downloads.channel8.msdn.com/"&gt;&lt;img id="BLOGGER_PHOTO_ID_5171392670452686242" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_XzcpPd2X6Yw/R8R6PAxkHaI/AAAAAAAAAAs/h5SO8nh40Fw/s320/image_3.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;If u are a student. Hurry!!! Microsoft is letting all the students (College/University) to download bunch of their application for free. Here are &lt;a href="http://channel8.msdn.com/Posts/2047/"&gt;Bill Gates' thoughts&lt;/a&gt; on it.&lt;br /&gt;These applications include some big names like Vistual Studio 2008 Professional edition, Microsoft Expression Studio and Windows server 2003.&lt;br /&gt;Click the image above to goto microsoft website and start downloading!!!&lt;/div&gt;&lt;br /&gt;&lt;div&gt;It will ask for verification of your stuent id. There are multiple options to verify yourself as a student.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;I think this is a great way for microsoft to promote their products among students who might choose career towards these microsot technologies after using them from free.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Bravo Microsoft!!!&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-4193818563147430211?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/4193818563147430211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=4193818563147430211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/4193818563147430211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/4193818563147430211'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2008/02/microsoft-dreamspark.html' title='Microsoft DreamSpark'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XzcpPd2X6Yw/R8R6PAxkHaI/AAAAAAAAAAs/h5SO8nh40Fw/s72-c/image_3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-8602823909454649555</id><published>2008-01-07T16:29:00.000-05:00</published><updated>2008-01-07T16:34:55.835-05:00</updated><title type='text'>New Year Resolutions</title><content type='html'>Hey Guys&lt;br /&gt;First of all Wishing &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;every&lt;/span&gt;one a great New Year!!!&lt;br /&gt;I was thinking about my New Year Resolutions. I usually dont have any resolutions but this year i thought of making a few (3 of em to be specific) and try to keep them for the rest of year.&lt;br /&gt;&lt;br /&gt;Resolution 1: Blog Often (Atleast once a week). Blog about technology and discuss programming problems.&lt;br /&gt;&lt;br /&gt;Resolution 2: Learning New Programming Language (Wanna learn and master Ruby).&lt;br /&gt;&lt;br /&gt;Resolution 3: Goto Gym and Do my Cardio regularly.&lt;br /&gt;&lt;br /&gt;Tell me about your resolutions, if any.&lt;br /&gt;&lt;br /&gt;Thanks&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-8602823909454649555?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/8602823909454649555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=8602823909454649555' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/8602823909454649555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/8602823909454649555'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2008/01/new-year-resolutions.html' title='New Year Resolutions'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-2142183605610288881</id><published>2007-09-05T15:03:00.000-04:00</published><updated>2008-12-09T17:34:01.459-05:00</updated><title type='text'>ipod Touch</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_XzcpPd2X6Yw/Rt7_IMFZTHI/AAAAAAAAAAk/rS-J280zcTc/s1600-h/hero_overview_20070905.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5106799543632612466" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_XzcpPd2X6Yw/Rt7_IMFZTHI/AAAAAAAAAAk/rS-J280zcTc/s200/hero_overview_20070905.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Apple just made an announcement about their new iPod version. It is being called '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;iPod&lt;/span&gt; touch' . &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;iPods&lt;/span&gt; are already great devices but this one is looking even cooler just like its big brother iPhone. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;iPod&lt;/span&gt; Touch has built in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Wifi&lt;/span&gt; capabilities and also allows you to download music from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;iTunes&lt;/span&gt; stores when your are on the road, it also has a superb touch screen and touch interface just like an iPhone. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;iPod&lt;/span&gt; Touch is basically an iPhone without phone. I specially liked wifi feature beacuse from now on you dont need to be near to any computer to get new music.&lt;br /&gt;&lt;br /&gt;Fine more details at &lt;a href="http://www.apple.com/ipodtouch/guidedtour/"&gt;http://www.apple.com/ipodtouch/guidedtour/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Apple has also overhauled all of its other &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;iPod&lt;/span&gt; versions. &lt;/p&gt;&lt;p&gt;Take a look at them at &lt;a href="http://www.apple.com/"&gt;http://www.apple.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;If anybody buys this new &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;iPod&lt;/span&gt; touch or bought an iPhone please write me a short review.&lt;/p&gt;&lt;p&gt;Thanks&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-2142183605610288881?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/2142183605610288881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=2142183605610288881' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/2142183605610288881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/2142183605610288881'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2007/09/ipod-touch.html' title='ipod Touch'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XzcpPd2X6Yw/Rt7_IMFZTHI/AAAAAAAAAAk/rS-J280zcTc/s72-c/hero_overview_20070905.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-2478451867047685415</id><published>2007-08-15T13:55:00.000-04:00</published><updated>2007-08-15T14:24:23.573-04:00</updated><title type='text'>Bill and Steve being interviewed together</title><content type='html'>&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Recently&lt;/span&gt;, on 30&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;Th&lt;/span&gt; May 2007 Walt &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Mossberg&lt;/span&gt; and Kara Swisher jointly interviewed &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;steve&lt;/span&gt; jobs and bill gates at D5 conference. They both were together on the stage and this is only third time when both are together on a stage for an interview.&lt;br /&gt;&lt;a href="http://d5.allthingsd.com/20070530/video-steve-jobs-and-bill-gates-prologue/"&gt;http://d5.allthingsd.com/20070530/video-steve-jobs-and-bill-gates-prologue/&lt;/a&gt;&lt;br /&gt;This is the link to the video they showed before the interview and it showed all three instances where both were together on the stage and kinda explain where both technology giants (Apple and Microsoft) stands.&lt;br /&gt;Interview was really interesting, they talked about MAC and PC collaboration and also &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;talked&lt;/span&gt; about their &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;rivalry&lt;/span&gt; in media world (i-pod Vs &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;zune&lt;/span&gt;). Page also has links to the complete video of the interview.&lt;br /&gt;I recommend you guys to watch movie &lt;a href="http://www.imdb.com/title/tt0168122/"&gt;'Pirates of the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;Silicon&lt;/span&gt; Valley'&lt;/a&gt;. It shows all the significant events happened in life of both companies and what caused downfall of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;steve&lt;/span&gt; jobs in late 80's. It also shows that both &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;steve&lt;/span&gt; and bill were visionaries and their prediction in Late 70s about computer being a household item justifies that.&lt;br /&gt;&lt;br /&gt;Your comments are welcomed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-2478451867047685415?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/2478451867047685415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=2478451867047685415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/2478451867047685415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/2478451867047685415'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2007/08/interview-of-bill-gates-and-steve-jobs.html' title='Bill and Steve being interviewed together'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-3941934694410470075</id><published>2007-08-13T14:44:00.001-04:00</published><updated>2007-08-13T14:44:20.080-04:00</updated><title type='text'>My Technorati Profile</title><content type='html'>&lt;a href="http://technorati.com/claim/7fjtnsda9s" rel="me"&gt;Technorati Profile&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-3941934694410470075?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/3941934694410470075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=3941934694410470075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/3941934694410470075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/3941934694410470075'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2007/08/my-technorati-profile.html' title='My Technorati Profile'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-3257017767414557610</id><published>2007-08-01T11:52:00.000-04:00</published><updated>2007-08-01T14:50:47.551-04:00</updated><title type='text'>Need Help - Looking to buy new TV</title><content type='html'>Hey guys, I am looking to buy new TV in a month or so (Before Football Season Starts). If you have recently bought one or found a good deal please put a comment or post a deal link and suggest me few options.&lt;br /&gt;I am looking for either 37" or 42" TVs but I dont know whether I should go with LCD, Plasma or newer flat-tube TVs. Please participate in a poll I just put up and leave me comments here on this post to help me out.&lt;br /&gt;&lt;br /&gt;Appriciate all your help!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-3257017767414557610?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/3257017767414557610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=3257017767414557610' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/3257017767414557610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/3257017767414557610'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2007/08/need-help-looking-to-buy-new-tv.html' title='Need Help - Looking to buy new TV'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-2568497417267707443</id><published>2007-07-10T15:28:00.000-04:00</published><updated>2007-07-10T15:43:01.654-04:00</updated><title type='text'>Google's so called Innovations.</title><content type='html'>Google is releasing one cool product every few months. I thought all their shared docs and spreadsheet idea was their own and unique. But when I found this list on &lt;a href="http://www.25hoursaday.com/weblog/2007/07/09/LessonsOnInnovationFromGoogle.aspx"&gt;'Innovations from Google'&lt;/a&gt; at one of the blogs, I was shocked that they did not come up with Google spreadsheet or Google docs originally. Hey even Google Maps and Google Earth are not their home grown products, just like youtube they bought em too. I did hear a lot about google coming up with their online office suit and how cool it will be. What the hack, they did not come up with anything, they just bought it.&lt;br /&gt;But I love the idea of buying or aquiring products which could be next big thing in online space and I really admire google executives for their foresight about it.&lt;br /&gt;I agree with the blog writer that "&lt;em&gt;A lot number of people in the software industry often criticize Microsoft for it's practice of innovation through acquisition but the fact is that the road to success lies in being able to spot good ideas whether they come from within your company or without.&lt;/em&gt;"&lt;br /&gt;&lt;br /&gt;By the way here is the list of google's acquired products/companies.&lt;br /&gt;&lt;br /&gt;Acquired Company/Product --- Google Product&lt;br /&gt;&lt;a href="http://www.google.com/press/pressrel/applied.html"&gt;Applied Semantics&lt;/a&gt; --- &lt;a href="https://www.google.com/adsense/"&gt;Google AdSense&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.google.com/press/pressrel/kaltix.html"&gt;Kaltix&lt;/a&gt; --- &lt;a href="http://blog.searchenginewatch.com/blog/050628-073541"&gt;Google Personalized Search&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.google.com/press/pressrel/keyhole.html"&gt;Keyhole Corp.&lt;/a&gt; --- &lt;a href="http://earth.google.com/"&gt;Google Earth&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.smh.com.au/mashup/archives/010257.html"&gt;Where2&lt;/a&gt; --- &lt;a href="http://maps.google.com/"&gt;Google Maps&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.siliconbeat.com/entries/2005/03/30/google_acquires_traffic_info_startup.html"&gt;ZipDash&lt;/a&gt; --- &lt;a href="http://labs.google.com/ridefinder"&gt;Google Ride Finder&lt;/a&gt;&lt;br /&gt;&lt;a href="http://googleblog.blogspot.com/2006/06/its-nice-to-share.html"&gt;2Web Technologies&lt;/a&gt; --- &lt;a href="http://docs.google.com/"&gt;Google Spreadsheets&lt;/a&gt;&lt;br /&gt;&lt;a href="http://googleblog.blogspot.com/2006/03/writely-so.html"&gt;Upstartle&lt;/a&gt; --- &lt;a href="http://docs.google.com/"&gt;Google Docs&lt;/a&gt;&lt;br /&gt;&lt;a href="http://battellemedia.com/archives/001360.php"&gt;Urchin Software Corporation&lt;/a&gt; + &lt;a href="http://googleblog.blogspot.com/2006/02/here-comes-measure-map.html"&gt;Measure Map&lt;/a&gt; --- &lt;a href="http://www.google.com/analytics/"&gt;Google Analytics&lt;/a&gt;&lt;br /&gt;&lt;a href="http://googleblog.blogspot.com/2007/06/more-sharing.html"&gt;Zenter&lt;/a&gt; + &lt;a href="http://googleblog.blogspot.com/2007/04/were-expecting.html"&gt;Tonic Systems&lt;/a&gt; --- Unreleased Google Web-based Presentation application&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;Share your Thoughts&lt;br /&gt;&lt;br /&gt;Link to original article: &lt;a href="http://www.25hoursaday.com/weblog/2007/07/09/LessonsOnInnovationFromGoogle.aspx"&gt;http://www.25hoursaday.com/weblog/2007/07/09/LessonsOnInnovationFromGoogle.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-2568497417267707443?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/2568497417267707443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=2568497417267707443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/2568497417267707443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/2568497417267707443'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2007/07/googles-domination.html' title='Google&apos;s so called Innovations.'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-8354898768746319496</id><published>2007-06-21T09:44:00.000-04:00</published><updated>2007-06-21T10:53:15.425-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Remote Access'/><category scheme='http://www.blogger.com/atom/ns#' term='Logmein'/><title type='text'>My Favourite Tool called Logmein</title><content type='html'>In past few days I was under heavy work pressure and was trying to finish coding for demo of the application I am working on. Well at Western Michigan University we do not have our &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;VPN&lt;/span&gt; client so I can not access my computer from home. So I had to stay at work late coding or take my code back and forth from work to home and worry about loosing versions of my code.&lt;br /&gt;Then my friend named 'B' introduced me to this fabulous tool called &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;logmein&lt;/span&gt;. It has two versions: Pro and Free. Free version allows you to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;remotely&lt;/span&gt; access your machine while Pro version has lot of other things like file transfer, guest invites etc.&lt;br /&gt;I have been using free version, and it is just amazing. You just have to install a small program which will be running and reside in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;taskbar&lt;/span&gt; of the machine you want to access remotely. After that you can just go your browser and access that machine from anywhere. It gives you feeling that you are working on that machine locally. No delays over the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;Internet&lt;/span&gt; and it is pretty secure as it uses https channel.&lt;br /&gt;For more information &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;go to&lt;/span&gt;:&lt;br /&gt;&lt;a href="https://secure.logmein.com/go.asp?page=products_pro"&gt;https://secure.logmein.com/go.asp?page=products_pro&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;While you access the remote machine from browser, you can either install &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;activex&lt;/span&gt; control and use that or you can use Java Applet version that they provide.&lt;br /&gt;It has simply made my job easier and allowed me to work from home at my own &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;convenience&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;PS   It works for MAC too!!!!&lt;br /&gt;&lt;br /&gt;Thanks&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-8354898768746319496?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/8354898768746319496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=8354898768746319496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/8354898768746319496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/8354898768746319496'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2007/06/my-favourite-tool-called-logmein.html' title='My Favourite Tool called Logmein'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-2383988925136520183</id><published>2007-06-06T11:18:00.000-04:00</published><updated>2007-06-06T11:37:10.464-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='algorithms'/><category scheme='http://www.blogger.com/atom/ns#' term='reverse a string'/><title type='text'>Reverse a String</title><content type='html'>Problem: How to reverse a string without creating any extra arrays?&lt;br /&gt;Answer:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;char *revstr (char *string)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;{&lt;/em&gt;&lt;br /&gt;&lt;em&gt;char *left = (char *)string; &lt;/em&gt;&lt;br /&gt;&lt;em&gt;char *right = (char *)string; &lt;/em&gt;&lt;br /&gt;&lt;em&gt;while (*right++); // find end of string right now you are pointing to \0&lt;/em&gt;&lt;br /&gt;&lt;em&gt;right -= 1; //get back to the last character&lt;/em&gt;&lt;br /&gt;&lt;em&gt;while (string &amp;lt; right)&lt;br /&gt;&lt;em&gt;{ &lt;/em&gt;&lt;br /&gt;&lt;em&gt;char ch = *string; &lt;/em&gt;&lt;br /&gt;&lt;em&gt;*string++ = *right; &lt;/em&gt;&lt;br /&gt;&lt;em&gt;*right-- = ch; &lt;/em&gt;&lt;br /&gt;&lt;em&gt;} &lt;/em&gt;&lt;br /&gt;&lt;em&gt;return left;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;}&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;I have tried to make this function as efficient as possible. Let me know if you have any improvements over it.&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-2383988925136520183?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/2383988925136520183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=2383988925136520183' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/2383988925136520183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/2383988925136520183'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2007/06/reverse-string.html' title='Reverse a String'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-6697357054904291396</id><published>2007-05-30T14:44:00.000-04:00</published><updated>2008-12-09T17:34:02.098-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Surface'/><title type='text'>Microsoft Surface</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_XzcpPd2X6Yw/Rl3IJ2DpomI/AAAAAAAAAAc/6nBCMMlFec8/s1600-h/MS+SC_Collab+Photo+App.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5070428826944250466" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_XzcpPd2X6Yw/Rl3IJ2DpomI/AAAAAAAAAAc/6nBCMMlFec8/s200/MS+SC_Collab+Photo+App.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;I thought, I should share this with everyone. Microsoft just revealed their new product.&lt;br /&gt;check out &lt;a href="http://www.microsoft.com/surface/" target="_blank"&gt;http://www.microsoft.com/surface/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_XzcpPd2X6Yw/Rl3H9GDpolI/AAAAAAAAAAU/7eh254TMHGM/s1600-h/MS+SC_Screenshot+Music+App.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5070428607900918354" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_XzcpPd2X6Yw/Rl3H9GDpolI/AAAAAAAAAAU/7eh254TMHGM/s200/MS+SC_Screenshot+Music+App.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_XzcpPd2X6Yw/Rl3H12DpokI/AAAAAAAAAAM/01R9CUIt_bo/s1600-h/MS+SC_3-4+View.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5070428483346866754" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_XzcpPd2X6Yw/Rl3H12DpokI/AAAAAAAAAAM/01R9CUIt_bo/s200/MS+SC_3-4+View.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Its so awesome. I was wandering what kind of compatibility you will need in your cell phones and cameras to work with surface?&lt;br /&gt;Comment on it, if you know more about it. &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-6697357054904291396?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/6697357054904291396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=6697357054904291396' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/6697357054904291396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/6697357054904291396'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2007/05/microsoft-surface.html' title='Microsoft Surface'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XzcpPd2X6Yw/Rl3IJ2DpomI/AAAAAAAAAAc/6nBCMMlFec8/s72-c/MS+SC_Collab+Photo+App.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-1903193641669102206</id><published>2007-05-22T10:02:00.000-04:00</published><updated>2007-05-22T11:12:27.871-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Meebo'/><title type='text'>Some Funky JavaScript Questions</title><content type='html'>I am a big fan of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Meebo&lt;/span&gt;. Its my favourite &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;IM&lt;/span&gt; client, and as you can see I also use their &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Meebo&lt;/span&gt; Me widget. It allows me instantly to get in touch with my site visitors. If you see my current status as online, just type your message in and I will get your message instantly.&lt;br /&gt;I was roaming around their website yesterday, and found their Job openings page. They have asked few Screening JavaScript questions for Front-End Developer job. If you see their applications, you would know that they must be dealing with lot of JavaScript as their application is completely AJAX based.&lt;br /&gt;So here are some of the questions with answers, I cant give you answers to all the questions. It would be unethical.&lt;br /&gt;So, Here we go&lt;br /&gt;1)What's the difference between these two statements:&lt;br /&gt;var x=3;&lt;br /&gt;x=3;&lt;br /&gt;The answer is first statement creates local variable in context of its parent and second statement creates global variable.&lt;br /&gt;Here, the sample code&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Function first()&lt;br /&gt;{&lt;br /&gt;var x=3;&lt;br /&gt;second();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Function Second()&lt;br /&gt;{&lt;br /&gt;alert(x);//It will show you java script error that x is not defined&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Function first()&lt;br /&gt;{&lt;br /&gt;x=3;&lt;br /&gt;second();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Function Second()&lt;br /&gt;{&lt;br /&gt;alert(x);//alert box shows 3!!!&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) What is the difference between:&lt;br /&gt;a. !!(obj1 &amp;&amp;amp; obj2)&lt;br /&gt;b. (obj1 &amp;&amp;amp; obj2)&lt;br /&gt;here (a) can only return true, false or null based on values of obj1 and obj2&lt;br /&gt;while (b) can return true, false, null or it could also return obj1 and obj2 based on their values.&lt;br /&gt;&lt;br /&gt;Let me give you few examples,&lt;br /&gt;In case of (a) two &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;Boolean&lt;/span&gt; 'not' in front will make sure that it will only &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;return&lt;/span&gt; true or false if both obj1 and obj2 have some value. But if both are null then it will return null.&lt;br /&gt;&lt;br /&gt;In case of (b)&lt;br /&gt;If obj1 and obj2 both are 'true', it will return true but if obj2 is 'false' and obj1 is 'true', it will return 'false', which is obj2. Now imagine obj1 is "" and obj2 is "a" then it will return "".&lt;br /&gt;So there are lot of possible return values for (b) .&lt;br /&gt;&lt;br /&gt;Do you want to have a stab at more these questions? visit &lt;a href="http://blog.meebo.com/?page_id=254"&gt;http://blog.meebo.com/?page_id=254&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-1903193641669102206?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/1903193641669102206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=1903193641669102206' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/1903193641669102206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/1903193641669102206'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2007/04/some-funky-javascript-questions.html' title='Some Funky JavaScript Questions'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-4681173508086543182</id><published>2007-05-20T22:01:00.000-04:00</published><updated>2007-05-21T12:16:35.884-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='algorithms'/><category scheme='http://www.blogger.com/atom/ns#' term='Reverse a Linked List'/><title type='text'>Reverse a Single Linked List</title><content type='html'>This is probably the most asked programming question.&lt;br /&gt;Here I have two small functions to perform the task: Non-Recursive and Recursive.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#999999;"&gt;struct node&lt;br /&gt;{&lt;br /&gt;int data;&lt;br /&gt;struct node* next;&lt;br /&gt;}&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;First function is Non-Recursive:&lt;br /&gt;&lt;span style="color:#999999;"&gt;&lt;em&gt;struct node* Reverse1(struct node** headRef)&lt;br /&gt;{&lt;br /&gt;struct node* current=*headRef;&lt;br /&gt;struct node* last=NULL;&lt;br /&gt;struct node* nextnode=NULL;&lt;br /&gt;&lt;br /&gt;while(current!=NULL)&lt;br /&gt;{&lt;br /&gt;nextnode=current-&gt;next;&lt;br /&gt;current-&gt;next=last;&lt;br /&gt;last=current;&lt;br /&gt;current=nextnode;&lt;br /&gt;}&lt;br /&gt;return last;&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;So the trick is to keep track of the next node every step, while removing the next link and point it to the last node. The algorithm is pretty efficient and reversing will be done in O(n) time.&lt;br /&gt;&lt;br /&gt;Now the following is Recursive version of it:&lt;br /&gt;&lt;span style="color:#999999;"&gt;&lt;em&gt;struct node *Reverse2(Node *cur, Node *rev) &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#999999;"&gt;&lt;em&gt;{&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#999999;"&gt;&lt;em&gt; if (!cur) return rev; &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#999999;"&gt;&lt;em&gt;struct node *next = cur-&gt;next;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#999999;"&gt;&lt;em&gt;cur-&gt;next = rev; &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#999999;"&gt;&lt;em&gt;r&lt;/em&gt;&lt;/span&gt;&lt;span style="color:#999999;"&gt;&lt;em&gt;ev = cur; &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#999999;"&gt;&lt;em&gt;return (Reverse2(next, rev)); //Recursion happens here&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#999999;"&gt;&lt;em&gt;}&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;Though if I am coding a professional application, I would not use Recursive version.&lt;br /&gt;&lt;br /&gt;Thanks&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-4681173508086543182?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/4681173508086543182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=4681173508086543182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/4681173508086543182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/4681173508086543182'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2007/05/reverse-single-linked-list.html' title='Reverse a Single Linked List'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-1950946025800816180</id><published>2007-05-18T17:32:00.000-04:00</published><updated>2007-05-20T22:18:21.068-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='algorithms'/><category scheme='http://www.blogger.com/atom/ns#' term='Linked List Problems'/><category scheme='http://www.blogger.com/atom/ns#' term='Find Cycle'/><title type='text'>Find Cycle in single Linked List.</title><content type='html'>Hi guys&lt;br /&gt;I have decided to post series of algorithms and programming questions and their answers.&lt;br /&gt;&lt;br /&gt;Here is my first Programming question:&lt;br /&gt;Find the Cycle in Single Linked List.&lt;br /&gt;&lt;br /&gt;Ok, So how would you do it? Here my goal is to use minimum storage and want to do it in O(n) time.&lt;br /&gt;&lt;br /&gt;So imagine this is the structure of my node&lt;br /&gt;&lt;em&gt;struct node &lt;br /&gt;{&lt;br /&gt; int data;&lt;br /&gt; struct node* next;&lt;br /&gt;};&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So here the idea is to write a function which will return either true or false based on if cycle is found on the list or not. I can achieve this by having two pointers, both of which initially points at the beginning of the list. Now I would increment the first pointer by one and second pointer by 2. So, in the end both of my pointers will meetup. If that happens I can say that there is a cycle.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;bool FindCycle(struct node* HeadRef)&lt;br /&gt;{&lt;br /&gt;  struct node* ptr1, ptr2;&lt;br /&gt;  ptr1=ptr2=HeadRef;&lt;br /&gt;  &lt;br /&gt;  While(ptr2!=NULL)&lt;br /&gt;  {&lt;br /&gt;&lt;br /&gt;    ptr1=ptr1-&gt;next;&lt;br /&gt;    ptr2=ptr2-&gt;next-&gt;next;&lt;br /&gt;    &lt;br /&gt;    //Found Cycle here&lt;br /&gt;    if(ptr1==ptr2)&lt;br /&gt;           return true;&lt;br /&gt;  }&lt;br /&gt;  //No Cycle has been found&lt;br /&gt;  return false;&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;This program is not using any flags or any extra storage space and can be done with just one simple loop through the List, so it of O(n) time.&lt;br /&gt;Now you might ask why would you increase ptr2 only by 2, you could have incremented it more faster.&lt;br /&gt;Assume here that ptr1 is incremented by n and ptr2 is incremented by m, where(m &gt; n). so if there are x number of nodes in the cycle then ptr1 will take values at any iteration i, (i*n)% k while ptr2 will take values (i*m)%k. So they will collide after n*m iterations and n*m is definitely the lowest for n=1 and m=2.&lt;br /&gt;&lt;br /&gt;I would definitely appreciate comments and suggestions. If you have answer to imporve this alogrithm even better and easy please comment on it.&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;Lav&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-1950946025800816180?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/1950946025800816180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=1950946025800816180' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/1950946025800816180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/1950946025800816180'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2007/05/find-cycle-in-single-linked-list.html' title='Find Cycle in single Linked List.'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-4347027697247770862</id><published>2007-04-18T13:37:00.000-04:00</published><updated>2007-04-18T17:07:15.259-04:00</updated><title type='text'>Google taking over Youtube is bad for users</title><content type='html'>Well, I was talking to my friend 'B' about youtube and the video culture that is evolving so rapidly. The Beauty of youtube is that, you should be able to find video of anything made by anybody, but since google has bought them, they have started to remove all the copyrighted materials because of the fear of lawsuits. I used to find all the different cricket videos, WWE videos, comedy central videos but its all gone now.&lt;br /&gt;Because of that, I have started to use it less and less often. If you limit the youtube just for the homemade videos, google is gonna loose large number of audience and they gonna go somewhere else like yahoo or aol. Youtube founders have said that their goal is to have videos of all the songs ever made on their site, but this was before google acquired them. I don't know what goals google have for youtube, but they should allow the concept of this site to continue, which is to share any video you like with your viewers. Even though if it is about how to create &lt;a href="http://youtube.com/results?search_query=bump%20keys&amp;search=Search"&gt;bump keys&lt;/a&gt; to break locks.&lt;br /&gt;I just pray to the god that google should not turn to the 'Dark Side'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-4347027697247770862?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/4347027697247770862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=4347027697247770862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/4347027697247770862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/4347027697247770862'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2007/04/google-takeover-youtube-is-bad-for.html' title='Google taking over Youtube is bad for users'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-117612969461607481</id><published>2007-04-09T10:31:00.000-04:00</published><updated>2007-04-09T10:45:28.463-04:00</updated><title type='text'>Top 15 schools for MBA</title><content type='html'>I was recently reading US News. It has list of top graduate schools. I am thinking about doing MBA next. Not right now but may be soon.&lt;br /&gt;Here are the top 15 schools in USA :&lt;br /&gt;1. Harvard&lt;br /&gt;2. Stanford&lt;br /&gt;3. University of Pennsylvania&lt;br /&gt;4. MIT&lt;br /&gt;5. Northwestern&lt;br /&gt;6. University of Chicago&lt;br /&gt;7. Dartmouth College&lt;br /&gt;8. University of California - Berkeley&lt;br /&gt;9. Columbia University&lt;br /&gt;10. New York University&lt;br /&gt;11. University of Michigan&lt;br /&gt;12. Duke&lt;br /&gt;13. University of Virgina&lt;br /&gt;14. Cornell&lt;br /&gt;15. Yale&lt;br /&gt;&lt;br /&gt;This list is taken from US news 2008 graduate school ranking.&lt;br /&gt;It has list of best schools for every major you can think of. I suggest you purchase it if you are planning to get into grad school soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-117612969461607481?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/117612969461607481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=117612969461607481' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/117612969461607481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/117612969461607481'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2007/04/top-15-schools-for-mba.html' title='Top 15 schools for MBA'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-117528056140672690</id><published>2007-03-30T15:48:00.000-04:00</published><updated>2007-03-30T16:25:20.266-04:00</updated><title type='text'>Web 2.0</title><content type='html'>It seems to be the coolest new term around. But what exactly &lt;a href="http://en.wikipedia.org/wiki/Web_2"&gt;Web 2.0&lt;/a&gt; means? Well, It does not have any particular definition. It is a phrase coined by O'Reilly Media in 2004 refers to a perceived second generation of Web-based servicesÂsuch as social networking sites, wikis, communication tools, andfulsomenesssÂthat emphasize online collaboration and sharing among users.&lt;br /&gt;Today I attended a Keynote from Rod Smith, an IBM fellow, at Western Michigan University's sixth annual IT forum. It was quite an interesting talk about Web 2.0 and how if affects current business world.&lt;br /&gt;Web 2.0 includes all the current hot technologies out there like Ajax, Wikis, Blogs, Social networking. It is based on notion that applications now are controlled by Content not the technology.&lt;br /&gt;&lt;br /&gt;He also mentioned a term called &lt;a href="http://news.zdnet.com/2100-3513_22-6065324.html?tag=nl.e622"&gt;end-user programming&lt;/a&gt;. In such applications developers provide tools to end-users, who can use those tools to create and customize applications useful to them at that moment, just like our google homepage where you can drag and drop widgets to customize your home page.&lt;br /&gt;&lt;br /&gt;To get More information on Web 2.0, &lt;a href="http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html"&gt;read here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-117528056140672690?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/117528056140672690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=117528056140672690' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/117528056140672690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/117528056140672690'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2007/03/web-20.html' title='Web 2.0'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-116897861675743342</id><published>2007-01-16T15:11:00.000-05:00</published><updated>2007-01-19T16:21:43.686-05:00</updated><title type='text'>Missing Warne and Mcgrath already</title><content type='html'>Well, over the last 10 days we (cricket lovers) lost two best bowlers of current generation and I am missing them already. Eventhough Mcgrath is going to be around till worldcup, the fact that he announced his retirement makes me sad.&lt;br /&gt;My this blog entry is tribute to these legends.&lt;br /&gt;&lt;br /&gt;Shane Keith Warne - Shane Warne is the legend and as Steve Waugh suggests, probably the second greatest cricketer we ever saw. His name needs no introduction to any cricket fan. Love him or Hate him you wont be able to pass him by without noticing him. He is the highest wicket taker in Test cricket, the best spin bowler ever, the greatest captain australia never had. He was the Man of the match in world cup semis and finals, bowled bowl of the 20th century, fined for tipping bookie about pitch condition, made the greatest comback after his year long drug ban, he has done it all. He is an entertainer, he is the guy on who attracts crowd to the game. The aura that surrounds him feel the atmosphere at the ground with excitement. I am sure cricket will be lesser thrilling with him gone.&lt;br /&gt;&lt;br /&gt;Glenn Donald Mcgrath - Glenn Mcgrath is known as the modern metronome. He is not your typical fast bowler with thin frame and less than express speed but he gets surprising bounce from good length and works almost every batsmen out sooner or later. Targeting best batsmen and captains of opposing teams and declaring their name publically are stuff of legends. He had memorable duels with Lara, Artherton, Tendulkar, Kirsten and many more through out his career, and it was him- the pegion - who came out on top at the end of those battles. His aggressive attitude also what I admire and I am strong believer of such attitude from fast bowlers. He is the highest wicket taking fast bowler in test cricket and he also had to compete with warne to get all those wickets! I think he never got enough credit of what he actually deserves, but I think we will all realize it after he will be gone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-116897861675743342?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/116897861675743342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=116897861675743342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/116897861675743342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/116897861675743342'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2007/01/missing-warne-and-mcgrath-already.html' title='Missing Warne and Mcgrath already'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-116604685006059308</id><published>2006-12-13T16:47:00.000-05:00</published><updated>2007-01-17T14:52:33.816-05:00</updated><title type='text'>Windows XP on MAC using Bootcamp</title><content type='html'>I recently bought a Macbook. I am a windows guy but i always had various installation of linux on either my desktop or laptop and played with them quite a bit, but this is the first time i am owning a computer other than a PC.&lt;br /&gt;&lt;br /&gt;Well as you all know that apple recently announced beta release of Bootcamp, a software, which will allow windows XP to be installed and have dual boot capability on your MAC. That was the driving force for me to conjure up enough courage to buy a MAC and boy was i served well. &lt;br /&gt;First, Macbooks come in overall nice package and looks pretty cool. It has tiger(version 10.8) Operating System installed on it. I had never used this OS, so I am still playing with it and figuring the stuff out.&lt;br /&gt;I installed Win XP Pro using apple bootcamp. It required little bit of tweaking but its pretty easy to achieve it.&lt;br /&gt;Follow &lt;a href="http://wiki.onmac.net/index.php/HOWTO"&gt;these instructions&lt;/a&gt; and they are pretty much intuitive. &lt;br /&gt;&lt;br /&gt;Once you install windows XP, you will need to install Mac drivers for XP. You can burn this driver's CD with Bootcamp also. Once you have both operating system installed properly, you need to press option button while you boot. It will show you a boot menu and you can choose either OS X or WIN XP to load. Rather surprisingly, if you do not hold down option key, it is loading windows XP by default.&lt;br /&gt;&lt;br /&gt;Right now i am enjoying both operating system on my MacBook. I also installed Counter strike source on my windows xp and after little bit of tweaking it is working fine without any serious graphics card issues.&lt;br /&gt;&lt;br /&gt;Thanks&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-116604685006059308?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/116604685006059308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=116604685006059308' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/116604685006059308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/116604685006059308'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2006/12/windows-xp-on-mac-using-bootcamp.html' title='Windows XP on MAC using Bootcamp'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-115109067464028314</id><published>2006-06-23T15:16:00.000-04:00</published><updated>2006-06-23T15:33:55.460-04:00</updated><title type='text'>Nullable types in .NET 2.0</title><content type='html'>We are currently moving from .NET 1.1 to .NET 2.0 at the place I work. So, rightnow I can get to play with lot of cool .NET 2.0 stuff and write some fun code snippets.&lt;br /&gt;During my playing with different value types, I came accross this cool Nullable types in .NET 2.0. They are the value types whose value canbe null also!!!&lt;br /&gt;&lt;br /&gt;For example&lt;span style="font-style: italic;"&gt;:  &lt;span style="color: rgb(102, 51, 255);"&gt;int? temp;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;will create an  integer temp varible with null allowed as a value. You can check whether a variable has null value or not by referring to&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;font&gt;&lt;span style="font-style: italic;"&gt;HasValue&lt;/span&gt; property of this type.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;font&gt;For example: &lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;if(&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;temp.HasValue) console.writeline(temp);&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;font&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;You can learn more about them at &lt;a href="http://msdn.microsoft.com/vcsharp/2005/overview/language/nullabletypes/"&gt;MSDN Article Nullable Types.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;&lt;/span&gt;.NET 2.0 Rocks, doesnt it?!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;font&gt;Thanks&lt;br /&gt;Lav&lt;/font&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&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/21823126-115109067464028314?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/115109067464028314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=115109067464028314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/115109067464028314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/115109067464028314'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2006/06/nullable-types-in-net-20.html' title='Nullable types in .NET 2.0'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-113932838043525966</id><published>2006-02-07T10:58:00.000-05:00</published><updated>2006-02-07T11:06:20.443-05:00</updated><title type='text'>Hostel</title><content type='html'>Hi,&lt;br /&gt;I have seen "Hostel(2006)" few days back, and that movie made me think, Is it possible?&lt;br /&gt;Are there places in the world just to kill...naah.. hunt  other human beings? Do people pay money to torture others whom they never met before?&lt;br /&gt;That thought make me shiver.&lt;br /&gt;Though I enjoyed that movie, very well done, ofcourse the bloodiest i have ever saw.  Direction is pretty good but it takes too much time to dive in to horror. First part is nothing but softporn.&lt;br /&gt;&lt;br /&gt;Anyway reply me if you know or heard about any place like that in real world? I would like to hear some stories like that.&lt;br /&gt;&lt;br /&gt;Regards&lt;br /&gt;&lt;br /&gt;Lav Pathak&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-113932838043525966?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/113932838043525966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=113932838043525966' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/113932838043525966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/113932838043525966'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2006/02/hostel.html' title='Hostel'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21823126.post-113881956314867905</id><published>2006-02-01T13:41:00.000-05:00</published><updated>2006-02-01T14:34:13.366-05:00</updated><title type='text'>Blogging!!!</title><content type='html'>Hi,&lt;br /&gt;I never thought before that I will be blogging, but now a days this seems to be the easiest way to communicate your thoughts.&lt;br /&gt;This is my first post so here's my introduction:&lt;br /&gt;I'm Lav Pathak, recent graduate from Western Michigan University with degree in computer science. I work in programming field and code mostly in .NET environment.&lt;br /&gt;I want to dedicate this blog to Computers, Cricket, Movies, Sports... and all the other good stuff. (Remember Cricket is not a sport It is a religion)&lt;br /&gt;&lt;br /&gt;Regards&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21823126-113881956314867905?l=lavpathak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lavpathak.blogspot.com/feeds/113881956314867905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21823126&amp;postID=113881956314867905' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/113881956314867905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21823126/posts/default/113881956314867905'/><link rel='alternate' type='text/html' href='http://lavpathak.blogspot.com/2006/02/blogging.html' title='Blogging!!!'/><author><name>Lav</name><uri>http://www.blogger.com/profile/03045874733682714412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
