<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:posterous="http://posterous.com/help/rss/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Zain Shaikh's posterous</title>
    <link>http://zainshaikh.posterous.com</link>
    <description>Most recent posts at Zain Shaikh's posterous</description>
    <generator>posterous.com</generator>
    <link xmlns="http://www.w3.org/2005/Atom" href="http://posterous.com/api/sup_update#a32dca005" type="application/json" rel="http://api.friendfeed.com/2008/03#sup" />
    
    
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ZainshaikhsPosterous" /><feedburner:info uri="zainshaikhsposterous" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://posterous.superfeedr.com/" /><feedburner:emailServiceId>ZainshaikhsPosterous</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
      <pubDate>Thu, 23 Feb 2012 05:55:00 -0800</pubDate>
      <title>What is my ip?</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/buLMo4yz36k/what-is-my-ip</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/what-is-my-ip</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lrACCitqaGvhoRT8r56dRbXwP7A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lrACCitqaGvhoRT8r56dRbXwP7A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lrACCitqaGvhoRT8r56dRbXwP7A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lrACCitqaGvhoRT8r56dRbXwP7A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;Ah! after spending a lot of time in googling that how can I detect IP address of a user via client side script, I found a website which does nothing, but only tells you the ip address of current user in json format (such a simple work but great!). So I wrote a small javascript to query that site via ajax and get the result in json format.&lt;/p&gt;

&lt;p&gt;following is the small snippet of code which does the task ;)&lt;/p&gt;

&lt;h3&gt;code snippet&lt;/h3&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="comment"&gt;// call the json api to get IP address&lt;/span&gt;
&lt;span class="error"&gt;$&lt;/span&gt;.getJSON(&lt;span class="string"&gt;&lt;span class="delimiter"&gt;'&lt;/span&gt;&lt;span class="content"&gt;http://jsonip.appspot.com/?callback=?&lt;/span&gt;&lt;span class="delimiter"&gt;'&lt;/span&gt;&lt;/span&gt;, function(result){

    &lt;span class="comment"&gt;// IP address found, display in alert&lt;/span&gt;
    alert(&lt;span class="string"&gt;&lt;span class="delimiter"&gt;'&lt;/span&gt;&lt;span class="content"&gt;Your public IP address is: &lt;/span&gt;&lt;span class="delimiter"&gt;'&lt;/span&gt;&lt;/span&gt; + result.ip)

});&lt;span class="error"&gt;​&lt;/span&gt;&lt;span class="error"&gt;​&lt;/span&gt;&lt;span class="error"&gt;​&lt;/span&gt;&lt;span class="error"&gt;​&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;a href="http://jsfiddle.net/zainshaikh/QdPdp/" title="Working demo of "&gt;See a working demo here&lt;/a&gt;&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/what-is-my-ip"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/what-is-my-ip#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=buLMo4yz36k:D_c_nkCgqlc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=buLMo4yz36k:D_c_nkCgqlc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=buLMo4yz36k:D_c_nkCgqlc:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=buLMo4yz36k:D_c_nkCgqlc:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=buLMo4yz36k:D_c_nkCgqlc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=buLMo4yz36k:D_c_nkCgqlc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=buLMo4yz36k:D_c_nkCgqlc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=buLMo4yz36k:D_c_nkCgqlc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=buLMo4yz36k:D_c_nkCgqlc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/buLMo4yz36k" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/what-is-my-ip</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 12 Dec 2011 05:28:00 -0800</pubDate>
      <title>Adding attributes on body tag from server-side</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/cieC0fBO63g/adding-attributes-on-body-tag-from-server-sid</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/adding-attributes-on-body-tag-from-server-sid</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0xqI1_WcFlWsTFdxBUzAfEZA3l4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0xqI1_WcFlWsTFdxBUzAfEZA3l4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0xqI1_WcFlWsTFdxBUzAfEZA3l4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0xqI1_WcFlWsTFdxBUzAfEZA3l4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;today, I ran into an issue that I had to make some interface changes based on different devices like iPhone, iPad, Android etc via CSS.&lt;/p&gt;

&lt;p&gt;I thought to apply a css class on the body tag, and then handle the inteface changes in the stylesheet.&lt;/p&gt;

&lt;p&gt;since body tag is in the masterpage and can not be accessed directly, therefore I had to do a small trick ;) see the code below.&lt;/p&gt;

&lt;h2&gt;Markup code&lt;/h2&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="comment"&gt;&amp;lt;!-- Assign an id to body tag and add runat=&amp;quot;server&amp;quot;. --&amp;gt;&lt;/span&gt;
&lt;span class="tag"&gt;&amp;lt;body&lt;/span&gt; &lt;span class="attribute-name"&gt;id&lt;/span&gt;=&lt;span class="string"&gt;&lt;span class="delimiter"&gt;&amp;quot;&lt;/span&gt;&lt;span class="content"&gt;page_body&lt;/span&gt;&lt;span class="delimiter"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="attribute-name"&gt;runat&lt;/span&gt;=&lt;span class="string"&gt;&lt;span class="delimiter"&gt;&amp;quot;&lt;/span&gt;&lt;span class="content"&gt;server&lt;/span&gt;&lt;span class="delimiter"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;Server side&lt;/h2&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="comment"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;span class="comment"&gt;/// Page Load event of current page&lt;/span&gt;
&lt;span class="comment"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;span class="comment"&gt;/// &amp;lt;param name=&amp;quot;sender&amp;quot; /&amp;gt;&lt;/span&gt;
&lt;span class="comment"&gt;/// &amp;lt;param name=&amp;quot;e&amp;quot; /&amp;gt;&lt;/span&gt;
&lt;span class="directive"&gt;protected&lt;/span&gt; &lt;span class="type"&gt;void&lt;/span&gt; Page_Load(object sender, EventArgs e)
{
    &lt;span class="comment"&gt;// initialize browser detector class&lt;/span&gt;
    BrowserDetector browserDetector = &lt;span class="keyword"&gt;new&lt;/span&gt; BrowserDetector();

    &lt;span class="comment"&gt;// get the operating system name, being used by client&lt;/span&gt;
    var os = browserDetector.OS.ToLowerInvariant();

    &lt;span class="comment"&gt;// get the body tag from masterpage&lt;/span&gt;
    HtmlGenericControl body = (HtmlGenericControl)&lt;span class="local-variable"&gt;this&lt;/span&gt;.Page.Master.FindControl(&lt;span class="string"&gt;&lt;span class="delimiter"&gt;&amp;quot;&lt;/span&gt;&lt;span class="content"&gt;page_body&lt;/span&gt;&lt;span class="delimiter"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);

    &lt;span class="comment"&gt;// if body tag found successfully&lt;/span&gt;
    &lt;span class="comment"&gt;// then apply class attribute on it, so simple :)&lt;/span&gt;
    &lt;span class="keyword"&gt;if&lt;/span&gt; (body != &lt;span class="predefined-constant"&gt;null&lt;/span&gt;)
    {
        body.Attributes.Add(&lt;span class="string"&gt;&lt;span class="delimiter"&gt;&amp;quot;&lt;/span&gt;&lt;span class="content"&gt;class&lt;/span&gt;&lt;span class="delimiter"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="string"&gt;&lt;span class="delimiter"&gt;&amp;quot;&lt;/span&gt;&lt;span class="content"&gt;os-&lt;/span&gt;&lt;span class="delimiter"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; + os);
    }
}&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/adding-attributes-on-body-tag-from-server-sid"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/adding-attributes-on-body-tag-from-server-sid#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=cieC0fBO63g:ZmviXNMxZ7I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=cieC0fBO63g:ZmviXNMxZ7I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=cieC0fBO63g:ZmviXNMxZ7I:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=cieC0fBO63g:ZmviXNMxZ7I:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=cieC0fBO63g:ZmviXNMxZ7I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=cieC0fBO63g:ZmviXNMxZ7I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=cieC0fBO63g:ZmviXNMxZ7I:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=cieC0fBO63g:ZmviXNMxZ7I:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=cieC0fBO63g:ZmviXNMxZ7I:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/cieC0fBO63g" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/adding-attributes-on-body-tag-from-server-sid</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 15 Jan 2011 11:33:00 -0800</pubDate>
      <title>ASP.NET MVC 3 released</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/PwkCXHSd6UA/aspnet-mvc-3-released</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/aspnet-mvc-3-released</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qMYP9FnDG2SGTqauQWbal1GgY30/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qMYP9FnDG2SGTqauQWbal1GgY30/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qMYP9FnDG2SGTqauQWbal1GgY30/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qMYP9FnDG2SGTqauQWbal1GgY30/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;For so long, I was waiting for the final release of ASP.NET MVC 3, and now the wait ends and I should properly dive into MVC. ;)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=d2928bc1-f48c-4e95-a064-2a455a22c8f6&amp;amp;displaylang=en"&gt;Download and Install ASP.NET MVC 3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Following is the list of some key features and improvments in ASP.NET MVC 3:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt; &lt;strong&gt;Razor&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx"&gt;Introducing Razor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/10/19/asp-net-mvc-3-new-model-directive-support-in-razor.aspx"&gt;New @model keyword in Razor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx"&gt;Layouts with Razor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/11/12/asp-net-mvc-3-server-side-comments-with-razor.aspx"&gt;Server-Side Comments with Razor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax.aspx"&gt;Razor&amp;rsquo;s @: and  syntax&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/16/asp-net-mvc-3-implicit-and-explicit-code-nuggets-with-razor.aspx"&gt;Implicit and Explicit code nuggets with Razor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx"&gt;Layouts and Sections with Razor&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt; &lt;strong&gt;JavaScript Improvements&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.jeremyskinner.co.uk/2010/12/27/unobtrusive-ajax-helpers-in-mvc3/"&gt;Unobtrusive JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://yobriefcase.posterous.com/aspnet-mvc3s-jsonvalueproviderfactory"&gt;Posting JSON-based parameters to action methods&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt; &lt;strong&gt;Improved Validation&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2011/01/04/ASPNETMVC3RemoteValidationTutorial.aspx"&gt;Remote Validation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/10/class-level-model-validation-with-ef-code-first-and-asp-net-mvc-3.aspx"&gt;IValidatableObject interface&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2011/01/01/CompareAttributeASPNETMVC3.aspx"&gt;Built-in [Compare] validation attribute&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx"&gt;EF Code First library&lt;/a&gt; &amp;ndash; (&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/08/announcing-entity-framework-code-first-ctp5-release.aspx"&gt;First post&lt;/a&gt;, &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/10/class-level-model-validation-with-ef-code-first-and-asp-net-mvc-3.aspx"&gt;Second post&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package/"&gt;MvcScaffolding project&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt; &lt;strong&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/10/announcing-asp-net-mvc-3-release-candidate-2.aspx"&gt;Output Caching&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt; &lt;strong&gt;Better Dependency Injection&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;There are a lot more great improvements in ASP.NET MVC 3 listed below:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Improved New Project dialog that makes it easy to start new ASP.NET MVC 3 projects from templates.&lt;/li&gt;
&lt;li&gt; Improved Add-&gt;View Scaffolding support that enables the generation of even cleaner view templates.&lt;/li&gt;
&lt;li&gt; New &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/10/announcing-asp-net-mvc-3-release-candidate-2.aspx"&gt;ViewBag&lt;/a&gt; property that uses .NET 4’s dynamic support to make it easy to pass late-bound data from Controllers to Views.&lt;/li&gt;
&lt;li&gt; Global Filters support that allows specifying cross-cutting filter attributes (like [HandleError]) across all Controllers within an app.&lt;/li&gt;
&lt;li&gt; New &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/10/announcing-asp-net-mvc-3-release-candidate-2.aspx"&gt;[AllowHtml]&lt;/a&gt; attribute that allows for more granular request validation when binding form posted data to models.&lt;/li&gt;
&lt;li&gt; &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/10/announcing-asp-net-mvc-3-release-candidate-2.aspx"&gt;Sessionless controller&lt;/a&gt; support that allows fine grained control over whether SessionState is enabled on a Controller.&lt;/li&gt;
&lt;li&gt; New ActionResult types like HttpNotFoundResult and &lt;a href="http://davidhayden.com/blog/dave/archive/2010/12/29/AspNetMvc3RedirectPermanentSEO.aspx"&gt;RedirectPermanent&lt;/a&gt; for common HTTP scenarios.&lt;/li&gt;
&lt;li&gt; New Html.Raw() helper to indicate that output should not be HTML encoded.&lt;/li&gt;
&lt;li&gt; New Crypto helpers for salting and hashing passwords.&lt;/li&gt;
&lt;li&gt; And much, much more…&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;strong&gt;More about ASP.NET MVC 3&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;a href="http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part1-cs"&gt;Step by Step ASP.NET MVC 3 Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part1-cs"&gt;Build your First ASP.NET MVC 3 Application&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.asp.net/mvc/tutorials/mvc-music-store-part-1"&gt;Building the ASP.NET MVC 3 Music Store&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;read more details on &lt;a href="http://weblogs.asp.net/scottgu/archive/2011/01/13/announcing-release-of-asp-net-mvc-3-iis-express-sql-ce-4-web-farm-framework-orchard-webmatrix.aspx"&gt;Scott Gu&amp;rsquo;s blog&lt;/a&gt;&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/aspnet-mvc-3-released"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/aspnet-mvc-3-released#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=PwkCXHSd6UA:N8WKJLPRWdY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=PwkCXHSd6UA:N8WKJLPRWdY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=PwkCXHSd6UA:N8WKJLPRWdY:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=PwkCXHSd6UA:N8WKJLPRWdY:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=PwkCXHSd6UA:N8WKJLPRWdY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=PwkCXHSd6UA:N8WKJLPRWdY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=PwkCXHSd6UA:N8WKJLPRWdY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=PwkCXHSd6UA:N8WKJLPRWdY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=PwkCXHSd6UA:N8WKJLPRWdY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/PwkCXHSd6UA" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/aspnet-mvc-3-released</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 06 Jan 2011 05:23:00 -0800</pubDate>
      <title>Join twitter for 7 reasons </title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/TdSzPiEbTw0/join-twitter-for-7-reasons</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/join-twitter-for-7-reasons</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gdI8Ef8Zk9SVF6S0500emXa54XQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gdI8Ef8Zk9SVF6S0500emXa54XQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gdI8Ef8Zk9SVF6S0500emXa54XQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gdI8Ef8Zk9SVF6S0500emXa54XQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;I feel like a twitter representative :D (unfortunately I am not), I keep asking people to join twitter, and in reply they ask me &amp;lsquo;why?&amp;rsquo;, I tell them benefits of twitter, and then they join twitter. So finally I thought to write a blog post telling the 7 reasons to join twitter. :)&lt;/p&gt;

&lt;h2&gt;A great source of traffic&lt;/h2&gt;

&lt;p&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/temp-2011-01-06/jInrcmBEebvjIHnrtFzsiHIwsBonCEeGggayxhIupdAjIGAjFweogbfdCbes/web-traffic.jpg" alt="Increase web traffic" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="http://www.dtiwinegard.com/"&gt;Image credit&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Your twitter followers know that you run a blog, so whenever you write a new blog post, just post a link on twitter with the blog post title. And I am damn sure you&amp;rsquo;ll get hundreds or may be thousands of clicks only from twitter.&lt;/p&gt;

&lt;h2&gt;Real-time&lt;/h2&gt;

&lt;p&gt;Twitter is all real-time, You&amp;rsquo;ll get real-time results about anything you search on twitter.
According to &lt;a href="http://en.wikipedia.org/wiki/Twitter"&gt;Wikipedia&lt;/a&gt;: &lt;em&gt;Twitter has 190 million users, generating 65 million tweets a day and handling over 800,000 search queries per day.&lt;/em&gt; Which is around &lt;strong&gt;750 tweets per second&lt;/strong&gt;. so you&amp;rsquo;ll surely get the best out of it.&lt;/p&gt;

&lt;h2&gt;Free of cost for your business&lt;/h2&gt;

&lt;p&gt;Twitter only requires a very small investment for marketing. And the investment is not money, its your time. :)
Stay active on twitter, spend some time in building up your own community with twitter. set up your blog with auto-posting services, and keep sharing some great stuff with your twitter followers.&lt;/p&gt;

&lt;h2&gt;It&amp;rsquo;s all social&lt;/h2&gt;

&lt;p&gt;Twitter is a way of spreading your words worldwide. All your tweets on twitter, are not only visible to your followers, but can be viewed by &lt;a href="http://en.wikipedia.org/wiki/Twitter"&gt;more than 175 million users&lt;/a&gt;. And people will share them on facebook and other social networks. They will also link them to their blog.&lt;/p&gt;

&lt;h2&gt;Helpful for Building Valuable Relationships&lt;/h2&gt;

&lt;blockquote&gt;&lt;p&gt;Laura Fitton, the author of Twitter for Dummies, chalks up success on Twitter to four basic concepts: listen, learn, care, and serve. Basically, if you listen to the community, you will learn, and if you show that you care, you are more likely to get more out of your efforts. Serving means providing something of use to the community. If you what you&amp;rsquo;re not doing that, you may be setting yourself up to fail, as Fitton talked about in &lt;a href="http://videos.webpronews.com/2009/11/04/the-secret-to-success-on-twitter/"&gt;this interview with WebProNews&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;

&lt;h2&gt;The power of the Re-Tweet equals Viral Gold&lt;/h2&gt;

&lt;blockquote&gt;&lt;p&gt;It&amp;rsquo;s been said that blogs can take an idea and spread it from New York to Tokyo in minutes. If that&amp;rsquo;s true, then it&amp;rsquo;s also true Twitter can do it in seconds. It takes very little time to blog something. It takes less time to email something. It takes even less time to tweet it. Send something interesting out into Twitter and folks will pick it up and repost to their own list of followers in seconds. Suddenly your own network grows infinitely. &lt;a href="http://www.searchengineguide.com/jennifer-laycock/five-reasons-twitter-is-an-essential-soc.php"&gt;read more »&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;h2&gt;Know what you want to&lt;/h2&gt;

&lt;p&gt;Twitter is not as formal as LinkedIn and making friends on Twitter is even easier than Facebook. Start following people of your domain, and stay up to date about whats happening in the world right now. Twitter is just an open place for sharing. People share here everything including Good morning, Good night, having a cup of coffee, taking dinner, meeting with a client, signing a project, going on a drive, singing, listening to music, studying, or even thinking.&lt;/p&gt;

&lt;p&gt;Twitter loves your tweets :)&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/join-twitter-for-7-reasons"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/join-twitter-for-7-reasons#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=TdSzPiEbTw0:E6ciximr118:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=TdSzPiEbTw0:E6ciximr118:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=TdSzPiEbTw0:E6ciximr118:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=TdSzPiEbTw0:E6ciximr118:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=TdSzPiEbTw0:E6ciximr118:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=TdSzPiEbTw0:E6ciximr118:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=TdSzPiEbTw0:E6ciximr118:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=TdSzPiEbTw0:E6ciximr118:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=TdSzPiEbTw0:E6ciximr118:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/TdSzPiEbTw0" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/join-twitter-for-7-reasons</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 25 Dec 2010 00:44:00 -0800</pubDate>
      <title>Working with Ajax and HTML/Text files</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/3JfrOznrcg0/working-with-ajax-and-htmltext-files</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/working-with-ajax-and-htmltext-files</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MWuffB6WFJfdi7aUesr8VvEyUPI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MWuffB6WFJfdi7aUesr8VvEyUPI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MWuffB6WFJfdi7aUesr8VvEyUPI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MWuffB6WFJfdi7aUesr8VvEyUPI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;In my previous post, I told about &lt;a href="http://bit.ly/f5WDt5"&gt;Working with AJAX and ASP.Net Generic Handlers&lt;/a&gt; and today I am gonna tell how load the content of any html/text file into your web page. This is damn easy, and we can re-use the &lt;a href="http://bit.ly/f5WDt5"&gt;code of ajax.js from my last post&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Create a html file named &amp;lsquo;htmldatafile.htm&amp;rsquo; and a text file named &amp;lsquo;textdatafile.txt&amp;rsquo; in your project, and put some content in them. We will load the contents of these files using ajax in our webpage.&lt;/p&gt;

&lt;p&gt;Now create a html file with any name and put following html in it.&lt;/p&gt;

&lt;h2&gt;HTML&lt;/h2&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;Some Other text&lt;span class="ta"&gt;&amp;lt;br&lt;/span&gt; &lt;span class="ta"&gt;/&amp;gt;&lt;/span&gt;Some Other text&lt;span class="ta"&gt;&amp;lt;br&lt;/span&gt; &lt;span class="ta"&gt;/&amp;gt;&lt;/span&gt;Some Other text&lt;span class="ta"&gt;&amp;lt;br&lt;/span&gt; &lt;span class="ta"&gt;/&amp;gt;&lt;/span&gt;

&lt;span class="ta"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="an"&gt;id&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;textResultDiv&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;  

&lt;span class="ta"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="an"&gt;id&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;htmlResultDiv&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;  

Some Other text&lt;span class="ta"&gt;&amp;lt;br&lt;/span&gt; &lt;span class="ta"&gt;/&amp;gt;&lt;/span&gt;Some Other text&lt;span class="ta"&gt;&amp;lt;br&lt;/span&gt; &lt;span class="ta"&gt;/&amp;gt;&lt;/span&gt;Some Other text&lt;span class="ta"&gt;&amp;lt;br&lt;/span&gt; &lt;span class="ta"&gt;/&amp;gt;&lt;/span&gt;

&lt;span class="ta"&gt;&amp;lt;script&lt;/span&gt; &lt;span class="an"&gt;type&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;text/javascript&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="an"&gt;src&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;ajax.js&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- get ajax.js code from http://bit.ly/f5WDt5 --&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Now put the following javascript in your same html page. and you are done :)&lt;/p&gt;

&lt;p&gt;The following javascript makes two ajax calls for html and text file respectively and loads their contents into their respective divs.&lt;/p&gt;

&lt;p&gt;I have also put comments with each line of code for better understanding :)&lt;/p&gt;

&lt;h2&gt;Javascript&lt;/h2&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="c"&gt;// Make an ajax call to htmldatafile.htm&lt;/span&gt;
&lt;span class="c"&gt;// You will receive the data from html file in the &lt;/span&gt;
&lt;span class="c"&gt;// data parameter of callback function&lt;/span&gt;
ajax.get(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;htmldatafile.htm&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="kw"&gt;function&lt;/span&gt; (data) {

    &lt;span class="c"&gt;// get the div element&lt;/span&gt;
    &lt;span class="kw"&gt;var&lt;/span&gt; resultDiv = document.getElementById(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;htmlResultDiv&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;);

    &lt;span class="c"&gt;// put the data in the div&lt;/span&gt;
    resultDiv.innerHTML = data;

});


&lt;span class="c"&gt;// Make an ajax call to textdatafile.txt&lt;/span&gt;
&lt;span class="c"&gt;// You will receive the data from text file in the &lt;/span&gt;
&lt;span class="c"&gt;// data parameter of callback function&lt;/span&gt;
ajax.get(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;textdatafile.txt&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="kw"&gt;function&lt;/span&gt; (data) {

    &lt;span class="c"&gt;// get the div element&lt;/span&gt;
    &lt;span class="kw"&gt;var&lt;/span&gt; resultDiv = document.getElementById(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;textResultDiv&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;);

    &lt;span class="c"&gt;// put the data in the div&lt;/span&gt;
    resultDiv.innerHTML = data;

});&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;Source Code&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://bit.ly/fplyj6"&gt;Download the source code »&lt;/a&gt;&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/working-with-ajax-and-htmltext-files"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/working-with-ajax-and-htmltext-files#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=3JfrOznrcg0:R2voOZ6XswU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=3JfrOznrcg0:R2voOZ6XswU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=3JfrOznrcg0:R2voOZ6XswU:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=3JfrOznrcg0:R2voOZ6XswU:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=3JfrOznrcg0:R2voOZ6XswU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=3JfrOznrcg0:R2voOZ6XswU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=3JfrOznrcg0:R2voOZ6XswU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=3JfrOznrcg0:R2voOZ6XswU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=3JfrOznrcg0:R2voOZ6XswU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/3JfrOznrcg0" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/working-with-ajax-and-htmltext-files</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 21 Dec 2010 02:42:00 -0800</pubDate>
      <title>Yahooooo! I successfully cleared MCTS – 70-515</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/94pvDUkfk_E/yahooooo-successfully-cleared-mcts-70-515</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/yahooooo-successfully-cleared-mcts-70-515</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CZvKBnPl3PQkLO2fbswr96PhLV8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CZvKBnPl3PQkLO2fbswr96PhLV8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CZvKBnPl3PQkLO2fbswr96PhLV8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CZvKBnPl3PQkLO2fbswr96PhLV8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;Yahooooo! today, I am so much happy that I have successfully cleared the MCTS Exam &lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-515"&gt;TS 70-515: Web Applications Development with Microsoft .NET Framework 4&lt;/a&gt; and have been awarded with the title of &lt;a href="http://www.microsoft.com/learning/en/us/certification/mcts.aspx"&gt;Microsoft Certified Technology Specialist&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Since this was my first certification, therefore now I am &lt;a href="http://en.wikipedia.org/wiki/Microsoft_Certified_Professional"&gt;Microsoft Certified Professional&lt;/a&gt; as well. :)&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/yahooooo-successfully-cleared-mcts-70-515"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/yahooooo-successfully-cleared-mcts-70-515#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=94pvDUkfk_E:NqW5jNUEIvc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=94pvDUkfk_E:NqW5jNUEIvc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=94pvDUkfk_E:NqW5jNUEIvc:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=94pvDUkfk_E:NqW5jNUEIvc:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=94pvDUkfk_E:NqW5jNUEIvc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=94pvDUkfk_E:NqW5jNUEIvc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=94pvDUkfk_E:NqW5jNUEIvc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=94pvDUkfk_E:NqW5jNUEIvc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=94pvDUkfk_E:NqW5jNUEIvc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/94pvDUkfk_E" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/yahooooo-successfully-cleared-mcts-70-515</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 10 Dec 2010 04:58:00 -0800</pubDate>
      <title>Working with AJAX and ASP.Net Generic Handlers</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/aOLjxnC5f_s/working-with-ajax</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/working-with-ajax</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kdWWhqtMFAsENvErsPt9toSrns0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kdWWhqtMFAsENvErsPt9toSrns0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kdWWhqtMFAsENvErsPt9toSrns0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kdWWhqtMFAsENvErsPt9toSrns0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;AJAX (Asynchronous Javascript and XML) is vastly being used on the web today, and is one of great technologies which helps us making interactive web applications,  and very beautiful and smooth web interfaces.&lt;/p&gt;

&lt;p&gt;The basic purpose of Ajax is to retrieve data from server &lt;code&gt;asynchronously&lt;/code&gt; in the background and update the User Interface with out reloading the whole page.&lt;/p&gt;

&lt;p&gt;Ajax saves the page load time as because the whole page does not load again due to asynchronous data retrieval, only a part of page is requested from server, and then served to user.&lt;/p&gt;

&lt;p&gt;I will use ASP.Net Generic Handler on the server which will return me the required data via Ajax and I am only going to discuss on how to use Ajax with your web applications. I will not discuss the pros and cons of Ajax, because &lt;a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29" title="Ajax programming"&gt;Wikipedia&lt;/a&gt; already has an article about it :).&lt;/p&gt;

&lt;p&gt;First of all, create a Generic Handler in your website named &amp;lsquo;HelloWorld.ashx&amp;rsquo; and you will see the following code by default in the handler. The default code in the handler writes &amp;lsquo;Hello World&amp;rsquo; to the response.&lt;/p&gt;

&lt;h2&gt;Generic Handler&lt;/h2&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&amp;lt;%&lt;span class="ex"&gt;@&lt;/span&gt; &lt;span class="co"&gt;WebHandler&lt;/span&gt; &lt;span class="co"&gt;Language&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;C#&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="r"&gt;Class&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;HelloWorld&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; %&amp;gt;

using &lt;span class="pd"&gt;System&lt;/span&gt;;
using &lt;span class="pd"&gt;System&lt;/span&gt;.&lt;span class="co"&gt;Web&lt;/span&gt;;

&lt;span class="r"&gt;public&lt;/span&gt; &lt;span class="r"&gt;class&lt;/span&gt; &lt;span class="cl"&gt;HelloWorld&lt;/span&gt; : &lt;span class="co"&gt;IHttpHandler&lt;/span&gt; 
{
    &lt;span class="r"&gt;public&lt;/span&gt; void &lt;span class="co"&gt;ProcessRequest&lt;/span&gt;(&lt;span class="co"&gt;HttpContext&lt;/span&gt; context)
    {
        context.&lt;span class="co"&gt;Response&lt;/span&gt;.&lt;span class="co"&gt;ContentType&lt;/span&gt; = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;text/plain&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;
        context.&lt;span class="co"&gt;Response&lt;/span&gt;.&lt;span class="co"&gt;Write&lt;/span&gt;(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Hello World&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
    }

    &lt;span class="r"&gt;public&lt;/span&gt; &lt;span class="pt"&gt;bool&lt;/span&gt; &lt;span class="co"&gt;IsReusable&lt;/span&gt;
    {
        get
        {
            &lt;span class="r"&gt;return&lt;/span&gt; &lt;span class="pc"&gt;false&lt;/span&gt;;
        }
    }
}&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Now create a html file named &amp;lsquo;index.html&amp;rsquo;. Include ajax.js file and put the following html in your html file.&lt;/p&gt;

&lt;h2&gt;HTML&lt;/h2&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="ta"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="an"&gt;id&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;result&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;  

&lt;span class="ta"&gt;&amp;lt;script&lt;/span&gt; &lt;span class="an"&gt;type&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;text/javascript&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; &lt;span class="an"&gt;src&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;ajax.js&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Now put the following javascript in your same html page. and you are done :)&lt;/p&gt;

&lt;p&gt;And see I have also put comments with each line of code for better understanding :)&lt;/p&gt;

&lt;h2&gt;Javascript&lt;/h2&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="c"&gt;// Make an ajax call to HelloWorld.ashx handler&lt;/span&gt;
&lt;span class="c"&gt;// You will receive the data from server in the &lt;/span&gt;
&lt;span class="c"&gt;// data parameter of callback function&lt;/span&gt;
ajax.get(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;HelloWorld.ashx&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="kw"&gt;function&lt;/span&gt;(data) {

    &lt;span class="c"&gt;// get the div element&lt;/span&gt;
    &lt;span class="kw"&gt;var&lt;/span&gt; resultDiv = document.getElementById(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;result&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;);

    &lt;span class="c"&gt;// put the data in the div&lt;/span&gt;
    resultDiv.innerHTML = data;

});&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;and put following text in ajax.js&lt;/p&gt;

&lt;h2&gt;ajax.js&lt;/h2&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="kw"&gt;var&lt;/span&gt; ajax = {

    &lt;span class="c"&gt;// creates the xml http request object&lt;/span&gt;
    &lt;span class="c"&gt;// which will be used to make an asynchronous call to server.&lt;/span&gt;
    &lt;span class="c"&gt;// the try catch blocks in the following function are used for cross-browser compatibility  &lt;/span&gt;
    &lt;span class="fu"&gt;CreateXMLHttpRequest&lt;/span&gt;: &lt;span class="kw"&gt;function&lt;/span&gt;() {
        &lt;span class="kw"&gt;var&lt;/span&gt; xmlHTTP = &lt;span class="pc"&gt;null&lt;/span&gt;; &lt;span class="kw"&gt;try&lt;/span&gt; { xmlHTTP = &lt;span class="kw"&gt;new&lt;/span&gt; XMLHttpRequest(); }
        &lt;span class="kw"&gt;catch&lt;/span&gt; (e) {
            &lt;span class="kw"&gt;try&lt;/span&gt; { xmlHTTP = &lt;span class="kw"&gt;new&lt;/span&gt; XMLHttpRequest(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Microsoft.XMLHTTP&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;); }
            &lt;span class="kw"&gt;catch&lt;/span&gt; (e) {
                &lt;span class="kw"&gt;try&lt;/span&gt; { xmlHTTP = &lt;span class="kw"&gt;new&lt;/span&gt; ActiveXObject(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Microsoft.XMLHTTP&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;); }
                &lt;span class="kw"&gt;catch&lt;/span&gt; (e) {
                    &lt;span class="kw"&gt;try&lt;/span&gt; { xmlHTTP = &lt;span class="kw"&gt;new&lt;/span&gt; ActiveXObject(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Msxml2.XMLHTTP&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;); }
                    &lt;span class="kw"&gt;catch&lt;/span&gt; (e) { alert(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Your Browser does not support Ajax&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;); &lt;span class="kw"&gt;return&lt;/span&gt; &lt;span class="pc"&gt;false&lt;/span&gt;; }
                }
            }
        } &lt;span class="kw"&gt;return&lt;/span&gt; xmlHTTP;
    },

    &lt;span class="c"&gt;// gets the data from specified url and&lt;/span&gt;
    &lt;span class="c"&gt;// returns the data in the callback function&lt;/span&gt;
    &lt;span class="fu"&gt;get&lt;/span&gt;: &lt;span class="kw"&gt;function&lt;/span&gt;(url, callback) {
        &lt;span class="kw"&gt;try&lt;/span&gt; {

            &lt;span class="c"&gt;// create the new xml http object&lt;/span&gt;
            &lt;span class="kw"&gt;var&lt;/span&gt; httpRequest = ajax.CreateXMLHttpRequest();

            &lt;span class="c"&gt;// if xmlHttpRequest object created successfuly, then go on&lt;/span&gt;
            &lt;span class="kw"&gt;if&lt;/span&gt; (httpRequest) {

                &lt;span class="c"&gt;// set the request method to GET (for retrieving data from server) or POST (for sending data to server)&lt;/span&gt;
                &lt;span class="c"&gt;// set the Url to get data from or to post data to&lt;/span&gt;
                &lt;span class="c"&gt;// set async flag to true for making an async request&lt;/span&gt;
                httpRequest.open(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;GET&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, url, &lt;span class="pc"&gt;true&lt;/span&gt;);

                &lt;span class="c"&gt;// register the 'ready state change' event&lt;/span&gt;
                &lt;span class="c"&gt;// this will be called every time when the state&lt;/span&gt;
                &lt;span class="c"&gt;// of httpRequest changes.&lt;/span&gt;
                httpRequest.&lt;span class="fu"&gt;onreadystatechange&lt;/span&gt; = &lt;span class="kw"&gt;function&lt;/span&gt;() {

                    &lt;span class="c"&gt;// if httpRequest state is 4 &lt;/span&gt;
                    &lt;span class="c"&gt;// it means response has been recieved.&lt;/span&gt;
                    &lt;span class="kw"&gt;if&lt;/span&gt; (httpRequest.readyState == &lt;span class="i"&gt;4&lt;/span&gt;) {

                        &lt;span class="c"&gt;// check to see if callback is a function&lt;/span&gt;
                        &lt;span class="kw"&gt;if&lt;/span&gt; (&lt;span class="kw"&gt;typeof&lt;/span&gt; (callback) == &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;) {

                            &lt;span class="c"&gt;// invoke the callback&lt;/span&gt;
                            &lt;span class="c"&gt;// and pass 'responseText' to callback&lt;/span&gt;
                            &lt;span class="c"&gt;// if you are making request to xml file then you can also use 'responseXml' to get data in xml format&lt;/span&gt;
                            callback(httpRequest.responseText);
                        }
                    }
                }

                &lt;span class="c"&gt;// the send method is used to invoke the request&lt;/span&gt;
                &lt;span class="c"&gt;// pass null for GET request.&lt;/span&gt;
                httpRequest.send(&lt;span class="pc"&gt;null&lt;/span&gt;);
            }
        } &lt;span class="kw"&gt;catch&lt;/span&gt; (e) { alert(e.message); }
    }
};&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;a href="http://posterous.com/getfile/files.posterous.com/zainshaikh/7DWfgWhWxU4lVcpoR4EVPbpT44Rp8yHKSS0r6Hv6EW8Bo8bmFozjuPk1cJIy/WorkingWithAjax.zip"&gt;Download Source code »&lt;/a&gt;&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/working-with-ajax"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/working-with-ajax#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=aOLjxnC5f_s:tZYIj3sYPHY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=aOLjxnC5f_s:tZYIj3sYPHY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=aOLjxnC5f_s:tZYIj3sYPHY:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=aOLjxnC5f_s:tZYIj3sYPHY:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=aOLjxnC5f_s:tZYIj3sYPHY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=aOLjxnC5f_s:tZYIj3sYPHY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=aOLjxnC5f_s:tZYIj3sYPHY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=aOLjxnC5f_s:tZYIj3sYPHY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=aOLjxnC5f_s:tZYIj3sYPHY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/aOLjxnC5f_s" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/working-with-ajax</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 08 Dec 2010 04:47:00 -0800</pubDate>
      <title>A handy class for logging in C-Sharp</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/u7ZtckPW6XE/a-handy-class-for-logging-in-c-sharp</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/a-handy-class-for-logging-in-c-sharp</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/c6fwitBPZUPKnyOBpN1ZBx-DluI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/c6fwitBPZUPKnyOBpN1ZBx-DluI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/c6fwitBPZUPKnyOBpN1ZBx-DluI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/c6fwitBPZUPKnyOBpN1ZBx-DluI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;Hello, I was working on a program today in which I had to log some information so that I know of what events are occurring and what is actually happening in the code. And this have happened most of the times with me, I frequently need to write some logging information to a text file during different projects, therefore I just wrote a simple class, which is very helpful.&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;using System;
using System.IO;

namespace Logging
{
    class Program
    {
        &lt;span class="di"&gt;static&lt;/span&gt; &lt;span class="di"&gt;void&lt;/span&gt; Main(string[] args)
        {
            &lt;span class="c"&gt;// create the new object of Logger&lt;/span&gt;
            Logger logger = new Logger(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;D:&lt;/span&gt;&lt;span class="ch"&gt;\\&lt;/span&gt;&lt;span class="k"&gt;log.log&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);

            &lt;span class="c"&gt;// call the logger method and&lt;/span&gt;
            &lt;span class="c"&gt;// pass the text that needs to be written to a text file.&lt;/span&gt;
            logger.Log(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Hello World!&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
        }
    }


    class Logger
    {
        &lt;span class="c"&gt;// the file path of log&lt;/span&gt;
        private String _filePath = string.Empty;

        public Logger(String filePath)
        {
            _filePath = filePath;
        }

        &lt;span class="c"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;/// Log method responsible for logging given text&lt;/span&gt;
        &lt;span class="c"&gt;/// to a text file&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;text&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        public &lt;span class="di"&gt;void&lt;/span&gt; Log(String text)
        {
            &lt;span class="c"&gt;// Open the file using stream write.&lt;/span&gt;
            &lt;span class="c"&gt;// If file does not exist, StreamWriter will create it.&lt;/span&gt;
            &lt;span class="c"&gt;// Use the overloaded constructor of StreamWriter and &lt;/span&gt;
            &lt;span class="c"&gt;// pass second parameter as true for appending text to file.&lt;/span&gt;
            using (StreamWriter writer = new StreamWriter(this._filePath, &lt;span class="pc"&gt;true&lt;/span&gt;))
            {
                &lt;span class="c"&gt;// write the text to writer&lt;/span&gt;
                writer.WriteLine(text);

                &lt;span class="c"&gt;// clear all the buffer and &lt;/span&gt;
                &lt;span class="c"&gt;// write the buffered data to text file.&lt;/span&gt;
                writer.Flush();
            }
        }
    }
}&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/a-handy-class-for-logging-in-c-sharp"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/a-handy-class-for-logging-in-c-sharp#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=u7ZtckPW6XE:qcfFI2WI3Fs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=u7ZtckPW6XE:qcfFI2WI3Fs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=u7ZtckPW6XE:qcfFI2WI3Fs:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=u7ZtckPW6XE:qcfFI2WI3Fs:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=u7ZtckPW6XE:qcfFI2WI3Fs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=u7ZtckPW6XE:qcfFI2WI3Fs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=u7ZtckPW6XE:qcfFI2WI3Fs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=u7ZtckPW6XE:qcfFI2WI3Fs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=u7ZtckPW6XE:qcfFI2WI3Fs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/u7ZtckPW6XE" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/a-handy-class-for-logging-in-c-sharp</feedburner:origLink></item>
    <item>
      <pubDate>Sun, 05 Dec 2010 06:52:00 -0800</pubDate>
      <title>Difference between EXE and DLL</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/wOynY5_NHLs/difference-between-dll-and-exe</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/difference-between-dll-and-exe</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jr5BqXVYOf7rehqQ3n3oW1aIDMo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jr5BqXVYOf7rehqQ3n3oW1aIDMo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jr5BqXVYOf7rehqQ3n3oW1aIDMo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jr5BqXVYOf7rehqQ3n3oW1aIDMo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;h3&gt;EXE:&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;It&amp;rsquo;s an executable program.&lt;/li&gt;
&lt;li&gt;There is only single main entry.&lt;/li&gt;
&lt;li&gt;When a system launches new EXE, a new process is created.&lt;/li&gt;
&lt;li&gt;The entry thread is called in context of main thread of that process.&lt;/li&gt;
&lt;/ol&gt;


&lt;h3&gt;DLL:&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;It&amp;rsquo;s a Dynamic Link Library that can be loaded and executed by programs dynamically.&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s an external code repository for programs.&lt;/li&gt;
&lt;li&gt;There are many entry points.&lt;/li&gt;
&lt;li&gt;The system loads a DLL into the context of an existing thread.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Reference: &lt;a href="http://bit.ly/gE0Zso"&gt;http://bit.ly/gE0Zso&lt;/a&gt;&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/difference-between-dll-and-exe"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/difference-between-dll-and-exe#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=wOynY5_NHLs:HKxAHKVeTXA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=wOynY5_NHLs:HKxAHKVeTXA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=wOynY5_NHLs:HKxAHKVeTXA:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=wOynY5_NHLs:HKxAHKVeTXA:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=wOynY5_NHLs:HKxAHKVeTXA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=wOynY5_NHLs:HKxAHKVeTXA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=wOynY5_NHLs:HKxAHKVeTXA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=wOynY5_NHLs:HKxAHKVeTXA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=wOynY5_NHLs:HKxAHKVeTXA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/wOynY5_NHLs" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/difference-between-dll-and-exe</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 04 Dec 2010 00:00:00 -0800</pubDate>
      <title>Get your visitor's location using javascript</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/AqfjdGPk0Xo/get-your-visitors-location-using-javascript</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/get-your-visitors-location-using-javascript</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/26xtH-ciaYY-s7SLD356sNiN-XU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/26xtH-ciaYY-s7SLD356sNiN-XU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/26xtH-ciaYY-s7SLD356sNiN-XU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/26xtH-ciaYY-s7SLD356sNiN-XU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;hey you know you can get your visitor&amp;rsquo;s location right there in the browser using javascript. Firefox made it so simple and easy. Its only few lines of code to get your visitor&amp;rsquo;s longitude and latitude, but remember Firefox will ask visitor if they want to share their location or not. The following code also works in Chrome, but not in IE :)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://jsfiddle.net/zainshaikh/NDtHJ/1/" title="Demo of geo location"&gt;See the working demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.mozilla.com/en-US/firefox/geolocation/" title="Location-Aware Browsing"&gt;Read more about geolocation&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Javascript Code&lt;/h3&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="c"&gt;// if geo location add on is available&lt;/span&gt;
    &lt;span class="kw"&gt;if&lt;/span&gt; (navigator.geolocation) {

        &lt;span class="c"&gt;// get location by using the built-in function of geo location&lt;/span&gt;
        navigator.geolocation.getCurrentPosition(&lt;span class="kw"&gt;function&lt;/span&gt;(result) {

            &lt;span class="c"&gt;// you get the coordinates in the result parameter&lt;/span&gt;
            &lt;span class="kw"&gt;var&lt;/span&gt; lat = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;latitude: &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; + result.coords.latitude;
            &lt;span class="kw"&gt;var&lt;/span&gt; lon = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;longitude: &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; + result.coords.longitude;

            &lt;span class="c"&gt;// write the coordinates to document&lt;/span&gt;
            document.write(lat);
            document.write(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;&amp;lt;br&amp;gt;&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
            document.write(lon);

        }, &lt;span class="kw"&gt;function&lt;/span&gt;() {

            &lt;span class="c"&gt;// aww, some error occured.&lt;/span&gt;
            document.write(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;could not find your location!&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
        });
    }
    &lt;span class="kw"&gt;else&lt;/span&gt; {

        &lt;span class="c"&gt;// browser does not support geo location&lt;/span&gt;
        document.write(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Your browser does not support geo location, please try using another browser.&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
    }&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/get-your-visitors-location-using-javascript"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/get-your-visitors-location-using-javascript#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=AqfjdGPk0Xo:CS5WAqaCfs0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=AqfjdGPk0Xo:CS5WAqaCfs0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=AqfjdGPk0Xo:CS5WAqaCfs0:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=AqfjdGPk0Xo:CS5WAqaCfs0:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=AqfjdGPk0Xo:CS5WAqaCfs0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=AqfjdGPk0Xo:CS5WAqaCfs0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=AqfjdGPk0Xo:CS5WAqaCfs0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=AqfjdGPk0Xo:CS5WAqaCfs0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=AqfjdGPk0Xo:CS5WAqaCfs0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/AqfjdGPk0Xo" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/get-your-visitors-location-using-javascript</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 27 Nov 2010 09:27:00 -0800</pubDate>
      <title>Using Is.gd API to shorten urls</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/dgFroEVLiWQ/using-isgd-api-to-shorten-urls</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/using-isgd-api-to-shorten-urls</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PSWguJLigWsjmD0G4DvL2jAQZeE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PSWguJLigWsjmD0G4DvL2jAQZeE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PSWguJLigWsjmD0G4DvL2jAQZeE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PSWguJLigWsjmD0G4DvL2jAQZeE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;These days I am working with APIs of &lt;a href="http://twitter.com"&gt;twitter&lt;/a&gt;, &lt;a href="http://stackoverflow.com"&gt;stackoverflow&lt;/a&gt;, &lt;a href="http://twitpic.com"&gt;twitpic&lt;/a&gt;, &lt;a href="http://is.gd"&gt;is.gd&lt;/a&gt;, &lt;a href="http://twurl.com"&gt;twurl&lt;/a&gt; and a lot more. I will keep sharing about how to use them in my upcoming posts.&lt;/p&gt;

&lt;p&gt;Here is the program which shortens any given URL using &lt;a href="http://is.gd/"&gt;is.gd&lt;/a&gt; service.&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;

namespace ShortenUrlUsingIsGdAPI
{
    class Program
    {
        &lt;span class="di"&gt;static&lt;/span&gt; &lt;span class="di"&gt;void&lt;/span&gt; Main(string[] args)
        {
            IsGdService service = new IsGdService();

            String longUrl = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;http://zainshaikh.posterous.com/google-translate-api-in-c&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;

            String shortUrl = service.ShortenUrl(longUrl);

            Console.WriteLine(shortUrl);

            Console.ReadLine();
        }
    }

    public class IsGdService
    {
        private &lt;span class="di"&gt;const&lt;/span&gt; string ApiUrl = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;http://is.gd/api.php?longurl={0}&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;

        &lt;span class="c"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;/// This method is responsible for shortening long url.&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;longUrl&amp;quot;&amp;gt;The long url to be shortened.&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;returns&amp;gt;The shortened url.&amp;lt;/returns&amp;gt;&lt;/span&gt;
        public String ShortenUrl(string longUrl)
        {
            &lt;span class="c"&gt;// create final url&lt;/span&gt;
            String finalUrl = String.Format(ApiUrl, longUrl);
            String result = string.Empty;

            try
            {
                &lt;span class="c"&gt;// created web request&lt;/span&gt;
                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(finalUrl));

                &lt;span class="c"&gt;// get the response&lt;/span&gt;
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    &lt;span class="c"&gt;// get response stream&lt;/span&gt;
                    using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                    {
                        &lt;span class="c"&gt;// read the response and save in a string&lt;/span&gt;
                        result = reader.ReadToEnd();
                    }
                }
            }
            catch (Exception e)
            {
                result = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Some error occured during shortening the url.&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;
            }

            &lt;span class="r"&gt;return&lt;/span&gt; result;
        }
    }
}&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/using-isgd-api-to-shorten-urls"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/using-isgd-api-to-shorten-urls#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=dgFroEVLiWQ:iJzQnZRYYtU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=dgFroEVLiWQ:iJzQnZRYYtU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=dgFroEVLiWQ:iJzQnZRYYtU:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=dgFroEVLiWQ:iJzQnZRYYtU:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=dgFroEVLiWQ:iJzQnZRYYtU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=dgFroEVLiWQ:iJzQnZRYYtU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=dgFroEVLiWQ:iJzQnZRYYtU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=dgFroEVLiWQ:iJzQnZRYYtU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=dgFroEVLiWQ:iJzQnZRYYtU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/dgFroEVLiWQ" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/using-isgd-api-to-shorten-urls</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 27 Nov 2010 02:01:00 -0800</pubDate>
      <title>Finding URL in text using Regular Expressions</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/F02suXi2DkU/finding-url-in-text-using-regular-expressions</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/finding-url-in-text-using-regular-expressions</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/R3Xt749MrIyZfZYkFBKCHZ_QnEI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R3Xt749MrIyZfZYkFBKCHZ_QnEI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/R3Xt749MrIyZfZYkFBKCHZ_QnEI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R3Xt749MrIyZfZYkFBKCHZ_QnEI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;Finding URL in a text is very easy using &lt;code&gt;Regular Expressions&lt;/code&gt; in C#. I created the following program which finds all the URLs in any given text and prints it to screen.&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;

namespace FindUrlFromString
{
    class Program
    {
        &lt;span class="di"&gt;static&lt;/span&gt; &lt;span class="di"&gt;void&lt;/span&gt; Main(string[] args)
        {
            string text = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;hello world. http://google.com https://twitter.com&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;

            string pattern = &lt;span class="er"&gt;@&lt;/span&gt;&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;(http|ftp|https)://([&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;\&lt;/span&gt;w+?&lt;span class="er"&gt;\&lt;/span&gt;.&lt;span class="er"&gt;\&lt;/span&gt;w+])+([a-zA-Z0-&lt;span class="i"&gt;9&lt;/span&gt;&lt;span class="er"&gt;\&lt;/span&gt;~&lt;span class="er"&gt;\&lt;/span&gt;!&lt;span class="er"&gt;\&lt;/span&gt;&lt;span class="er"&gt;@&lt;/span&gt;&lt;span class="er"&gt;\&lt;/span&gt;&lt;span class="pp"&gt;#&lt;/span&gt;&lt;span class="er"&gt;\&lt;/span&gt;$&lt;span class="er"&gt;\&lt;/span&gt;%&lt;span class="er"&gt;\&lt;/span&gt;^&lt;span class="er"&gt;\&lt;/span&gt;&amp;amp;&lt;span class="er"&gt;\&lt;/span&gt;*&lt;span class="er"&gt;\&lt;/span&gt;(&lt;span class="er"&gt;\&lt;/span&gt;)_&lt;span class="er"&gt;\&lt;/span&gt;-&lt;span class="er"&gt;\&lt;/span&gt;=&lt;span class="er"&gt;\&lt;/span&gt;+&lt;span class="er"&gt;\&lt;/span&gt;&lt;span class="er"&gt;\&lt;/span&gt;&lt;span class="er"&gt;\&lt;/span&gt;/&lt;span class="er"&gt;\&lt;/span&gt;?&lt;span class="er"&gt;\&lt;/span&gt;.&lt;span class="er"&gt;\&lt;/span&gt;:&lt;span class="er"&gt;\&lt;/span&gt;;&lt;span class="er"&gt;\&lt;/span&gt;&lt;span class="ch"&gt;'&lt;/span&gt;&lt;span class="er"&gt;\&lt;/span&gt;,]*)?&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;&lt;/span&gt;

            Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);

            MatchCollection matches = regex.Matches(text);

            foreach (Match match in matches)
            {
                Console.WriteLine(match);
            }

            Console.ReadLine();
        }
    }
}&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/finding-url-in-text-using-regular-expressions"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/finding-url-in-text-using-regular-expressions#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=F02suXi2DkU:vWp4qsnTY8I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=F02suXi2DkU:vWp4qsnTY8I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=F02suXi2DkU:vWp4qsnTY8I:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=F02suXi2DkU:vWp4qsnTY8I:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=F02suXi2DkU:vWp4qsnTY8I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=F02suXi2DkU:vWp4qsnTY8I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=F02suXi2DkU:vWp4qsnTY8I:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=F02suXi2DkU:vWp4qsnTY8I:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=F02suXi2DkU:vWp4qsnTY8I:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/F02suXi2DkU" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/finding-url-in-text-using-regular-expressions</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 19 Nov 2010 22:34:00 -0800</pubDate>
      <title>Parsing unix time in C#</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/uUUoezisSaA/33960527</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/33960527</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OH77A6_eAG60rrbKqoj2s--5NXc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OH77A6_eAG60rrbKqoj2s--5NXc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OH77A6_eAG60rrbKqoj2s--5NXc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OH77A6_eAG60rrbKqoj2s--5NXc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;today, I was playing with StackOverflow API (actually creating a desktop app for StackOverflow, will let you know soon ;) ) and I came across with the date time format of their API response. they are using the Unix time format. Many Unix-like operating systems keep time as seconds elapsed from the epoch date of January 1, 1970.&lt;/p&gt;

&lt;p&gt;I am creating app in C#, so I needed any way to parse the unix time in C#. I found following code snippet on StackOverflow which converts a given datetime of unix format into c# &lt;code&gt;DateTime&lt;/code&gt; object.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Simplest way is probably to use something like:&lt;/code&gt;&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;private &lt;span class="di"&gt;static&lt;/span&gt; readonly DateTime Epoch = new DateTime(&lt;span class="i"&gt;1970&lt;/span&gt;, &lt;span class="i"&gt;1&lt;/span&gt;, &lt;span class="i"&gt;1&lt;/span&gt;, &lt;span class="i"&gt;0&lt;/span&gt;, &lt;span class="i"&gt;0&lt;/span&gt;, &lt;span class="i"&gt;0&lt;/span&gt;, DateTimeKind.Utc);

 public &lt;span class="di"&gt;static&lt;/span&gt; DateTime UnixTimeToDateTime(string text)
 {
     &lt;span class="pt"&gt;double&lt;/span&gt; seconds = &lt;span class="pt"&gt;double&lt;/span&gt;.Parse(text, CultureInfo.InvariantCulture);
     &lt;span class="r"&gt;return&lt;/span&gt; Epoch.AddSeconds(seconds);
 }&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;code&gt;Three things to note:&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;If your strings are definitely of the form "x.y" rather than "x,y" you should use the invariant culture as shown above, to make sure that "." is parsed as a decimal point&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;You should specify UTC in the DateTime constructor to make sure it doesn't think it's a local time.&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;If you're using .NET 3.5 or higher, you might want to consider using DateTimeOffset instead of DateTime.&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Reference: &lt;a href="http://bit.ly/a2MOq6"&gt;http://bit.ly/a2MOq6&lt;/a&gt;&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/33960527"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/33960527#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=uUUoezisSaA:BMO2HEOXsMw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=uUUoezisSaA:BMO2HEOXsMw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=uUUoezisSaA:BMO2HEOXsMw:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=uUUoezisSaA:BMO2HEOXsMw:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=uUUoezisSaA:BMO2HEOXsMw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=uUUoezisSaA:BMO2HEOXsMw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=uUUoezisSaA:BMO2HEOXsMw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=uUUoezisSaA:BMO2HEOXsMw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=uUUoezisSaA:BMO2HEOXsMw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/uUUoezisSaA" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/33960527</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 18 Nov 2010 01:54:00 -0800</pubDate>
      <title>Some Extension methods for ObservableCollection</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/37ieK3zg7YU/some-extension-methods-for-observablecollecti</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/some-extension-methods-for-observablecollecti</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Oem8jGBEyvMBtRdHXUH1_nn3GS4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Oem8jGBEyvMBtRdHXUH1_nn3GS4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Oem8jGBEyvMBtRdHXUH1_nn3GS4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Oem8jGBEyvMBtRdHXUH1_nn3GS4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;I am working with &lt;code&gt;ObservableCollection&lt;/code&gt; these days, and found out that whenever I have to add a range of items in &lt;code&gt;ObservableCollection&lt;/code&gt; so I first have to convert the range of items to &lt;code&gt;List&lt;/code&gt; using &lt;code&gt;.ToList()&lt;/code&gt; method and then run a for loop on it to add its each item one by one into the observable collection, because like &lt;code&gt;List&amp;lt;T&amp;gt;&lt;/code&gt;, ObservableCollection does not have any kind of extension method for &lt;code&gt;AddRange&lt;/code&gt;, &lt;code&gt;InsertRange&lt;/code&gt; or &lt;code&gt;ForEach&lt;/code&gt; etc. therefore I wrote some extension methods for ObservableCollection to made my coding easy. Happy Programming :)&lt;/p&gt;

&lt;h3&gt;Extension methods&lt;/h3&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;public &lt;span class="di"&gt;static&lt;/span&gt; class Extensions
{

    &lt;span class="c"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// Creates a System.Collections.ObjectModel.ObservableCollection&amp;lt;T&amp;gt; from an System.Collections.Generic.IEnumerable&amp;lt;T&amp;gt;.&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;typeparam name=&amp;quot;T&amp;quot;&amp;gt;The type of the elements of source.&amp;lt;/typeparam&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;source&amp;quot;&amp;gt;The System.Collections.Generic.IEnumerable&amp;lt;T&amp;gt; to create a System.Collections.ObjectModel.ObservableCollection&amp;lt;T&amp;gt; from.&amp;lt;/param&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;returns&amp;gt;A System.Collections.ObjectModel.ObservableCollection&amp;lt;T&amp;gt; that contains elements from the input sequence.&amp;lt;/returns&amp;gt;&lt;/span&gt;
    public &lt;span class="di"&gt;static&lt;/span&gt; ObservableCollection&amp;lt;T&amp;gt; ToObservableCollection&amp;lt;T&amp;gt;(this IEnumerable&amp;lt;T&amp;gt; source)
    {
        &lt;span class="r"&gt;if&lt;/span&gt; (source != null)
        {
            &lt;span class="c"&gt;//create an emtpy observable collection object&lt;/span&gt;
            var observableCollection = new ObservableCollection&amp;lt;T&amp;gt;();

            &lt;span class="c"&gt;//loop through all the records and add to observable collection object&lt;/span&gt;
            foreach (var item in source)
                observableCollection.Add(item);

            &lt;span class="c"&gt;//return the populated observable collection&lt;/span&gt;
            &lt;span class="r"&gt;return&lt;/span&gt; observableCollection;
        }
        &lt;span class="r"&gt;return&lt;/span&gt; null;
    }

    &lt;span class="c"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// Adds the elements of the specified collection to the end of the System.Collections.ObjectModel.ObservableCollection&amp;lt;T&amp;gt;.&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;typeparam name=&amp;quot;T&amp;quot;&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;source&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;items&amp;quot;&amp;gt;The collection whose elements should be added to the end of the System.Collections.Generic.List&amp;lt;T&amp;gt;.&lt;/span&gt;
    &lt;span class="c"&gt;/// The collection itself cannot be null, but it can contain elements that are&lt;/span&gt;
    &lt;span class="c"&gt;/// null, if type T is a reference type.&amp;lt;/param&amp;gt;&lt;/span&gt;
    public &lt;span class="di"&gt;static&lt;/span&gt; &lt;span class="di"&gt;void&lt;/span&gt; AddRange&amp;lt;T&amp;gt;(this ObservableCollection&amp;lt;T&amp;gt; source, IEnumerable&amp;lt;T&amp;gt; items)
    {
        foreach (var item in items)
        {
            source.Add(item);
        }
    }

    &lt;span class="c"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// Inserts the elements of a collection into the System.Collections.ObjectModel.ObservableCollection&amp;lt;T&amp;gt; at the specified index.&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;typeparam name=&amp;quot;T&amp;quot;&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;source&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;index&amp;quot;&amp;gt;The zero-based index at which the new elements should be inserted.&amp;lt;/param&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;items&amp;quot;&amp;gt;The collection whose elements should be inserted into the System.Collections.ObjectModel.ObservableCollection&amp;lt;T&amp;gt;.&lt;/span&gt;
    &lt;span class="c"&gt;/// The collection itself cannot be null, but it can contain elements that are&lt;/span&gt;
    &lt;span class="c"&gt;/// null, if type T is a reference type.&amp;lt;/param&amp;gt;&lt;/span&gt;
    public &lt;span class="di"&gt;static&lt;/span&gt; &lt;span class="di"&gt;void&lt;/span&gt; InsertRange&amp;lt;T&amp;gt;(this ObservableCollection&amp;lt;T&amp;gt; source, &lt;span class="pt"&gt;int&lt;/span&gt; index, ObservableCollection&amp;lt;T&amp;gt; items)
    {
        foreach (var item in items.Reverse())
        {
            source.Insert(index, item);
        }
    }

    &lt;span class="c"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// Performs the specified action on each element of the System.Collections.Generic.IEnumerable&amp;lt;T&amp;gt;.&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;typeparam name=&amp;quot;T&amp;quot;&amp;gt;&amp;lt;/typeparam&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;source&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;action&amp;quot;&amp;gt;The System.Action&amp;lt;T&amp;gt; delegate to perform on each element of the System.Collections.Generic.IEnumerable&amp;lt;T&amp;gt;.&amp;lt;/param&amp;gt;&lt;/span&gt;
    public &lt;span class="di"&gt;static&lt;/span&gt; &lt;span class="di"&gt;void&lt;/span&gt; ForEach&amp;lt;T&amp;gt;(this IEnumerable&amp;lt;T&amp;gt; source, Action&amp;lt;T&amp;gt; action)
    {
        foreach (var cur in source)
        {
            action(cur);
        }
    }

}&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/some-extension-methods-for-observablecollecti"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/some-extension-methods-for-observablecollecti#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=37ieK3zg7YU:L_F638GJPGo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=37ieK3zg7YU:L_F638GJPGo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=37ieK3zg7YU:L_F638GJPGo:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=37ieK3zg7YU:L_F638GJPGo:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=37ieK3zg7YU:L_F638GJPGo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=37ieK3zg7YU:L_F638GJPGo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=37ieK3zg7YU:L_F638GJPGo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=37ieK3zg7YU:L_F638GJPGo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=37ieK3zg7YU:L_F638GJPGo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/37ieK3zg7YU" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/some-extension-methods-for-observablecollecti</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 30 Oct 2010 22:36:00 -0700</pubDate>
      <title>Get QueryString parameter from Url in Javascript</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/Xyep1IDVvMU/get-querystring-parameter-from-url-in-javascr</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/get-querystring-parameter-from-url-in-javascr</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Fxeu-ucceifOIXI9T0JviLOGWow/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Fxeu-ucceifOIXI9T0JviLOGWow/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Fxeu-ucceifOIXI9T0JviLOGWow/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Fxeu-ucceifOIXI9T0JviLOGWow/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;Most of the times, when we are working on purely client side scripting language that is, javascript, we need to play with url querystrings. and I also had the same experience few days ago, and I found this little method over the web which helped me finding the specific querystring parameter from the url.&lt;/p&gt;

&lt;h3&gt;Usage&lt;/h3&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="kw"&gt;var&lt;/span&gt; queryValue = getQueryString(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;myString&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;, &lt;span class="ke"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;http://go.microsoft.com/fwlink/?LinkID=152368&amp;amp;clcid=0x409&amp;amp;myString=Hello%20World&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;);
alert(queryValue);&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;Result&lt;/h3&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;Hello World&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;Code Snippet&lt;/h3&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="kw"&gt;function&lt;/span&gt; &lt;span class="fu"&gt;QueryString&lt;/span&gt;(url) {
    &lt;span class="c"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;///     Extract query string parmaeters from given url&lt;/span&gt;
    &lt;span class="c"&gt;///     and save in a dictionary&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;returns type=&amp;quot;String&amp;quot; /&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;url&amp;quot; type=&amp;quot;String&amp;quot;&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;///     The url to find the querystring in.&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;/param&amp;gt;&lt;/span&gt;

    &lt;span class="c"&gt;// constant values&lt;/span&gt;
    &lt;span class="kw"&gt;var&lt;/span&gt; queryStringSeparator = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;?&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;
    &lt;span class="kw"&gt;var&lt;/span&gt; queryStringParameterSeparator = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;&amp;amp;&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;
    &lt;span class="kw"&gt;var&lt;/span&gt; keyValueSeparator = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;

    &lt;span class="c"&gt;// if url contains ?&lt;/span&gt;
    &lt;span class="kw"&gt;if&lt;/span&gt; (url.indexOf(queryStringSeparator) &amp;gt; -&lt;span class="i"&gt;1&lt;/span&gt;) {
        &lt;span class="lv"&gt;this&lt;/span&gt;.q = url.split(queryStringSeparator)[&lt;span class="i"&gt;1&lt;/span&gt;];
    } &lt;span class="kw"&gt;else&lt;/span&gt; {
        &lt;span class="lv"&gt;this&lt;/span&gt;.q = &lt;span class="pc"&gt;null&lt;/span&gt;;
    }

    &lt;span class="c"&gt;// This dictionary will save all the query string parameters&lt;/span&gt;
    &lt;span class="lv"&gt;this&lt;/span&gt;.keyValuePairs = [];

    &lt;span class="c"&gt;// Only deal if query is non-null/undefined&lt;/span&gt;
    &lt;span class="kw"&gt;if&lt;/span&gt; (&lt;span class="lv"&gt;this&lt;/span&gt;.q) {

        &lt;span class="c"&gt;// Split query with ampersand sign, the query string separator&lt;/span&gt;
        &lt;span class="kw"&gt;var&lt;/span&gt; queryParameters = &lt;span class="lv"&gt;this&lt;/span&gt;.q.split(queryStringParameterSeparator);

        &lt;span class="c"&gt;// Fill the keyValuePairs dictionary from query&lt;/span&gt;
        &lt;span class="kw"&gt;for&lt;/span&gt; (&lt;span class="kw"&gt;var&lt;/span&gt; i = &lt;span class="i"&gt;0&lt;/span&gt;; i &amp;lt; queryParameters.length; i++) {

            &lt;span class="c"&gt;// Get the current queryParameter in the loop&lt;/span&gt;
            &lt;span class="kw"&gt;var&lt;/span&gt; queryParam = queryParameters[i].split(keyValueSeparator);

            &lt;span class="c"&gt;// Save the key and its value in the dictionary&lt;/span&gt;
            &lt;span class="lv"&gt;this&lt;/span&gt;.keyValuePairs[queryParam[&lt;span class="i"&gt;0&lt;/span&gt;]] = queryParam[&lt;span class="i"&gt;1&lt;/span&gt;];
        }
    }

    &lt;span class="lv"&gt;this&lt;/span&gt;.&lt;span class="fu"&gt;get&lt;/span&gt; = &lt;span class="kw"&gt;function&lt;/span&gt; (key) {
        &lt;span class="c"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;///     Gets the value associated with the specified key. If the specified key is not&lt;/span&gt;
        &lt;span class="c"&gt;///     found, 'undefined' is returned&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;returns type=&amp;quot;String&amp;quot; /&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;key&amp;quot; type=&amp;quot;String&amp;quot;&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;///     The key of the value to get.&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;/param&amp;gt;&lt;/span&gt;

        &lt;span class="c"&gt;// Return the value of specified key from dictionary&lt;/span&gt;
        &lt;span class="kw"&gt;return&lt;/span&gt; &lt;span class="lv"&gt;this&lt;/span&gt;.keyValuePairs[key];
    };
}

&lt;span class="kw"&gt;function&lt;/span&gt; &lt;span class="fu"&gt;getQueryString&lt;/span&gt;(key, url) {
    &lt;span class="c"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;///     Gets the value associated with the specified key. If the specified key is not&lt;/span&gt;
    &lt;span class="c"&gt;///     found, 'undefined' is returned&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;returns type=&amp;quot;String&amp;quot; /&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;key&amp;quot; type=&amp;quot;String&amp;quot;&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;///     The key of the value to get.&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;/param&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;url&amp;quot; type=&amp;quot;String&amp;quot; optional=&amp;quot;true&amp;quot;&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;///     The Url to find the querystring in. The default value is window.location&lt;/span&gt;
    &lt;span class="c"&gt;/// &amp;lt;/param&amp;gt;&lt;/span&gt;


    &lt;span class="c"&gt;// Set the default value of url, if not defined.&lt;/span&gt;
    &lt;span class="kw"&gt;if&lt;/span&gt; (!url) {
        &lt;span class="c"&gt;// Get the current window url&lt;/span&gt;
        url = window.location;
    }

    &lt;span class="c"&gt;// Crate new object of QueryString&lt;/span&gt;
    &lt;span class="kw"&gt;var&lt;/span&gt; query = &lt;span class="kw"&gt;new&lt;/span&gt; QueryString(url);

    &lt;span class="c"&gt;// Get the value from&lt;/span&gt;
    &lt;span class="kw"&gt;var&lt;/span&gt; val = query.get(key);

    &lt;span class="c"&gt;// Return the unescaped value&lt;/span&gt;
    &lt;span class="kw"&gt;return&lt;/span&gt; unescape(unescape(val));
}&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/get-querystring-parameter-from-url-in-javascr"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/get-querystring-parameter-from-url-in-javascr#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=Xyep1IDVvMU:e3ndEgiaymY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=Xyep1IDVvMU:e3ndEgiaymY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=Xyep1IDVvMU:e3ndEgiaymY:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=Xyep1IDVvMU:e3ndEgiaymY:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=Xyep1IDVvMU:e3ndEgiaymY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=Xyep1IDVvMU:e3ndEgiaymY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=Xyep1IDVvMU:e3ndEgiaymY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=Xyep1IDVvMU:e3ndEgiaymY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=Xyep1IDVvMU:e3ndEgiaymY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/Xyep1IDVvMU" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/get-querystring-parameter-from-url-in-javascr</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 29 Oct 2010 06:07:00 -0700</pubDate>
      <title>Convert collections of one type to string in c sharp</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/i4cq2vHK7lQ/convert-collections-of-one-type-to-string-in</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/convert-collections-of-one-type-to-string-in</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mEu310xye8vjVvcY8qsSIyXLkek/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mEu310xye8vjVvcY8qsSIyXLkek/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mEu310xye8vjVvcY8qsSIyXLkek/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mEu310xye8vjVvcY8qsSIyXLkek/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;Hello guys, hope you are fine, just a few days ago I was working on file writing in C#, and I had a list of numbers to print to the file, the best way I found was to convert the collection of numbers into a comma separated string and then write the string to the file.&lt;/p&gt;

&lt;p&gt;Here is the code I modified, and wanted to share with you:&lt;/p&gt;

&lt;h3&gt;Update&lt;/h3&gt;

&lt;p&gt;Adding special handling for Enum types list. :)&lt;/p&gt;

&lt;h3&gt;Code Snippet&lt;/h3&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;using System;
using System.Collections.Generic;
using System.Linq;

namespace ConvertNumberArraysToCommaSeparatedStrings
{
    class Program
    {
        &lt;span class="di"&gt;static&lt;/span&gt; &lt;span class="di"&gt;void&lt;/span&gt; Main(string[] args)
        {
            &lt;span class="c"&gt;// the default method for joining string arrays&lt;/span&gt;
            string[] friends = new string[] { &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Zain Shaikh&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Fasih Hansmukh&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Basit Ali&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;TJ&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt; };
            string joinedFriends = String.Join(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, friends);
            Console.WriteLine(joinedFriends);
            &lt;span class="c"&gt;// Outputs &amp;quot;Zain Shaikh,Fasih Hansmukh,Basit Ali,TJ&amp;quot;&lt;/span&gt;



            &lt;span class="c"&gt;// join array of int using extension method&lt;/span&gt;
            &lt;span class="pt"&gt;int&lt;/span&gt;[] numberArray = new &lt;span class="pt"&gt;int&lt;/span&gt;[] { &lt;span class="i"&gt;4&lt;/span&gt;, &lt;span class="i"&gt;5&lt;/span&gt;, &lt;span class="i"&gt;3&lt;/span&gt;, &lt;span class="i"&gt;7&lt;/span&gt;, &lt;span class="i"&gt;8&lt;/span&gt;, &lt;span class="i"&gt;4&lt;/span&gt;, &lt;span class="i"&gt;1&lt;/span&gt; };
            string joinedNumberArray = numberArray.ToString(null);
            Console.WriteLine(joinedNumberArray);
            &lt;span class="c"&gt;// Outputs &amp;quot;4,5,3,7,8,4,1&amp;quot;&lt;/span&gt;



            &lt;span class="c"&gt;// join list of long using extension method&lt;/span&gt;
            List&amp;lt;&lt;span class="pt"&gt;long&lt;/span&gt;&amp;gt; numbersList = new List&amp;lt;&lt;span class="pt"&gt;long&lt;/span&gt;&amp;gt;() { &lt;span class="i"&gt;5&lt;/span&gt;, &lt;span class="i"&gt;4&lt;/span&gt;, &lt;span class="i"&gt;5&lt;/span&gt;, &lt;span class="i"&gt;78&lt;/span&gt;, &lt;span class="i"&gt;9&lt;/span&gt;, &lt;span class="i"&gt;3&lt;/span&gt;, &lt;span class="i"&gt;11&lt;/span&gt;, &lt;span class="i"&gt;2&lt;/span&gt; };
            string joinedNumberList = numbersList.ToString(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;-&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
            Console.WriteLine(joinedNumberList);
            &lt;span class="c"&gt;// Outputs &amp;quot;5-4-5-78-9-3-11-2&amp;quot;&lt;/span&gt;



            Console.ReadLine();
        }
    }


    public &lt;span class="di"&gt;static&lt;/span&gt; class Extensions
    {
        &lt;span class="c"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;/// An extension method to convert an IEnumerable collection into a string representation.&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;typeparam name=&amp;quot;T&amp;quot;&amp;gt;The Type to be converted into string&amp;lt;/typeparam&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;collection&amp;quot;&amp;gt;The collection which needs to be converted into string representation.&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;separator&amp;quot;&amp;gt;A System.String&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;returns&amp;amp;gtA System.String consisting of the elements of value interspersed with the separator string.;&amp;lt;/returns&amp;gt;&lt;/span&gt;
        public &lt;span class="di"&gt;static&lt;/span&gt; string ToString&amp;lt;T&amp;gt;(this IEnumerable&amp;lt;T&amp;gt; collection, string separator)
        {
            &lt;span class="c"&gt;// Create a converter, which will convert T type variable to string.&lt;/span&gt;
            Converter&amp;lt;T, string&amp;gt; converter = new Converter&amp;lt;T, string&amp;gt;(delegate(T target) 
            { 
                &lt;span class="r"&gt;return&lt;/span&gt; (target.GetType().BaseType.Name == &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Enum&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;) ? Convert.ToString(target.GetHashCode()) : Convert.ToString(target);
            });

            &lt;span class="c"&gt;// Convert list into array.&lt;/span&gt;
            T[] array = collection.ToArray();

            &lt;span class="c"&gt;// Convert an array of one type to an array of another type.&lt;/span&gt;
            string[] converted = Array.ConvertAll&amp;lt;T, string&amp;gt;(array, converter);

            &lt;span class="c"&gt;// assign the default separator&lt;/span&gt;
            &lt;span class="r"&gt;if&lt;/span&gt; (separator == null)
            {
                separator = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;
            }

            &lt;span class="c"&gt;// join the converted string array into string&lt;/span&gt;
            string strArrayList = String.Join(separator, converted);

            &lt;span class="c"&gt;// return the string. :)&lt;/span&gt;
            &lt;span class="r"&gt;return&lt;/span&gt; strArrayList;
        }
    }
}&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/convert-collections-of-one-type-to-string-in"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/convert-collections-of-one-type-to-string-in#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=i4cq2vHK7lQ:PztJjL7EprM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=i4cq2vHK7lQ:PztJjL7EprM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=i4cq2vHK7lQ:PztJjL7EprM:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=i4cq2vHK7lQ:PztJjL7EprM:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=i4cq2vHK7lQ:PztJjL7EprM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=i4cq2vHK7lQ:PztJjL7EprM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=i4cq2vHK7lQ:PztJjL7EprM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=i4cq2vHK7lQ:PztJjL7EprM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=i4cq2vHK7lQ:PztJjL7EprM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/i4cq2vHK7lQ" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/convert-collections-of-one-type-to-string-in</feedburner:origLink></item>
    <item>
      <pubDate>Sun, 24 Oct 2010 08:57:19 -0700</pubDate>
      <title>Untitled</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/P9uGHYPE3lk/31423350</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/31423350</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uAQxRQOM5hd9AzIaiywJHRWKv0Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uAQxRQOM5hd9AzIaiywJHRWKv0Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uAQxRQOM5hd9AzIaiywJHRWKv0Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uAQxRQOM5hd9AzIaiywJHRWKv0Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Sadyain" height="93" src="http://posterous.com/getfile/files.posterous.com/zainshaikh/JdkxEzhpqIbwatzzeiJCnHgfhtInHGgzyexHrgafIgEhaobDoeEwAjusqBcb/sadYain.png.scaled500.png" width="101" /&gt;
&lt;/div&gt;
&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/31423350"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/31423350#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=P9uGHYPE3lk:9r6meWvwzqE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=P9uGHYPE3lk:9r6meWvwzqE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=P9uGHYPE3lk:9r6meWvwzqE:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=P9uGHYPE3lk:9r6meWvwzqE:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=P9uGHYPE3lk:9r6meWvwzqE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=P9uGHYPE3lk:9r6meWvwzqE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=P9uGHYPE3lk:9r6meWvwzqE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=P9uGHYPE3lk:9r6meWvwzqE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=P9uGHYPE3lk:9r6meWvwzqE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/P9uGHYPE3lk" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
      <media:content type="image/png" height="93" width="101" url="http://getfile4.posterous.com/getfile/files.posterous.com/zainshaikh/JdkxEzhpqIbwatzzeiJCnHgfhtInHGgzyexHrgafIgEhaobDoeEwAjusqBcb/sadYain.png">
        <media:thumbnail height="93" width="101" url="http://getfile5.posterous.com/getfile/files.posterous.com/zainshaikh/JdkxEzhpqIbwatzzeiJCnHgfhtInHGgzyexHrgafIgEhaobDoeEwAjusqBcb/sadYain.png.scaled500.png" />
      </media:content>
    <feedburner:origLink>http://zainshaikh.posterous.com/31423350</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 13 Oct 2010 13:55:00 -0700</pubDate>
      <title>Using XmlWriter in C-Sharp</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/srVemYom7jQ/using-xmlwriter-in-c-sharp</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/using-xmlwriter-in-c-sharp</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fBK1yv0IztUon3HYwRa1pG-T_fY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fBK1yv0IztUon3HYwRa1pG-T_fY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fBK1yv0IztUon3HYwRa1pG-T_fY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fBK1yv0IztUon3HYwRa1pG-T_fY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;I was playing with XML files today, and came across with XmlWriter class. XML files are the best for interoperability over the internet. using the XMLWriter class, you can easily create xml files through programming in C#.&lt;/p&gt;

&lt;h3&gt;Code Snippet&lt;/h3&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;using System.Xml;
namespace UsingXmlWriterClass
{
    class Program
    {
        &lt;span class="di"&gt;static&lt;/span&gt; &lt;span class="di"&gt;void&lt;/span&gt; Main(string[] args)
        {
            &lt;span class="c"&gt;// create the xml writer settings object.&lt;/span&gt;
            var writerSettings = new XmlWriterSettings();

            &lt;span class="c"&gt;// set the indention of nodes to true&lt;/span&gt;
            &lt;span class="c"&gt;// this will format the xml document.&lt;/span&gt;
            &lt;span class="c"&gt;// else your xml document will be all in one single line.&lt;/span&gt;
            writerSettings.Indent = &lt;span class="pc"&gt;true&lt;/span&gt;;

            &lt;span class="c"&gt;// create the new xml file at specified location&lt;/span&gt;
            &lt;span class="c"&gt;// and also pass the writerSettings. so that writer should work according to settings.&lt;/span&gt;
            XmlWriter writer = XmlWriter.Create(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;d:&lt;/span&gt;&lt;span class="ch"&gt;\\&lt;/span&gt;&lt;span class="k"&gt;MyFirstXmlFile.xml&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, writerSettings);

            &lt;span class="c"&gt;// write the document element.&lt;/span&gt;
            &lt;span class="c"&gt;// this will write the xml declaration tag i.e. &lt;/span&gt;
            writer.WriteStartDocument();

            &lt;span class="c"&gt;// write the root node of xml. &lt;/span&gt;
            &lt;span class="c"&gt;// You always need to write a root node of xml file, or your xml file will be called 'invalid'&lt;/span&gt;
            writer.WriteStartElement(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;People&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);





            &lt;span class="c"&gt;// the first node of person&lt;/span&gt;
            writer.WriteStartElement(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Person&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);

            &lt;span class="c"&gt;// write child nodes of person&lt;/span&gt;
            writer.WriteElementString(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Name&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Zain Shaikh&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
            writer.WriteElementString(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;JobDescription&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Software Engineer&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
            writer.WriteElementString(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Facebook&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;http://www.facebook.com/zainshaikh&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);

            &lt;span class="c"&gt;// end of first node&lt;/span&gt;
            writer.WriteEndElement();





            &lt;span class="c"&gt;// the second node of person&lt;/span&gt;
            writer.WriteStartElement(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Person&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);

            &lt;span class="c"&gt;// write child nodes of person&lt;/span&gt;
            writer.WriteElementString(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Name&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Fasih Hansmukh&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
            writer.WriteElementString(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;JobDescription&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Sr. Software Engineer&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
            writer.WriteElementString(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Facebook&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;http://www.facebook.com/fasih.hansmukh&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);

            &lt;span class="c"&gt;// end of second node&lt;/span&gt;
            writer.WriteEndElement();





            &lt;span class="c"&gt;// the third node of person&lt;/span&gt;
            writer.WriteStartElement(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Person&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);

            &lt;span class="c"&gt;// write child nodes of person&lt;/span&gt;
            writer.WriteElementString(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Name&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Basit Ali&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
            writer.WriteElementString(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;JobDescription&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Graphics Designer&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);
            writer.WriteElementString(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Facebook&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;http://www.facebook.com/brainscratcher&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);

            &lt;span class="c"&gt;// end of third node&lt;/span&gt;
            writer.WriteEndElement();





            &lt;span class="c"&gt;// end of root element&lt;/span&gt;
            writer.WriteEndElement();

            &lt;span class="c"&gt;// end of document&lt;/span&gt;
            writer.WriteEndDocument();

            &lt;span class="c"&gt;// flush the xml writer&lt;/span&gt;
            &lt;span class="c"&gt;// this will write everything in the xml file at specified location&lt;/span&gt;
            writer.Flush();

        }
    }&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;Output&lt;/h3&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="pp"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;/span&gt;
&lt;span class="ta"&gt;&amp;lt;People&amp;gt;&lt;/span&gt;
  &lt;span class="ta"&gt;&amp;lt;Person&amp;gt;&lt;/span&gt;
    &lt;span class="ta"&gt;&amp;lt;Name&amp;gt;&lt;/span&gt;Zain Shaikh&lt;span class="ta"&gt;&amp;lt;/Name&amp;gt;&lt;/span&gt;
    &lt;span class="ta"&gt;&amp;lt;JobDescription&amp;gt;&lt;/span&gt;Software Engineer&lt;span class="ta"&gt;&amp;lt;/JobDescription&amp;gt;&lt;/span&gt;
    &lt;span class="ta"&gt;&amp;lt;Facebook&amp;gt;&lt;/span&gt;http://www.facebook.com/zainshaikh&lt;span class="ta"&gt;&amp;lt;/Facebook&amp;gt;&lt;/span&gt;
  &lt;span class="ta"&gt;&amp;lt;/Person&amp;gt;&lt;/span&gt;
  &lt;span class="ta"&gt;&amp;lt;Person&amp;gt;&lt;/span&gt;
    &lt;span class="ta"&gt;&amp;lt;Name&amp;gt;&lt;/span&gt;Fasih Hansmukh&lt;span class="ta"&gt;&amp;lt;/Name&amp;gt;&lt;/span&gt;
    &lt;span class="ta"&gt;&amp;lt;JobDescription&amp;gt;&lt;/span&gt;Sr. Software Engineer&lt;span class="ta"&gt;&amp;lt;/JobDescription&amp;gt;&lt;/span&gt;
    &lt;span class="ta"&gt;&amp;lt;Facebook&amp;gt;&lt;/span&gt;http://www.facebook.com/fasih.hansmukh&lt;span class="ta"&gt;&amp;lt;/Facebook&amp;gt;&lt;/span&gt;
  &lt;span class="ta"&gt;&amp;lt;/Person&amp;gt;&lt;/span&gt;
  &lt;span class="ta"&gt;&amp;lt;Person&amp;gt;&lt;/span&gt;
    &lt;span class="ta"&gt;&amp;lt;Name&amp;gt;&lt;/span&gt;Basit Ali&lt;span class="ta"&gt;&amp;lt;/Name&amp;gt;&lt;/span&gt;
    &lt;span class="ta"&gt;&amp;lt;JobDescription&amp;gt;&lt;/span&gt;Graphics Designer&lt;span class="ta"&gt;&amp;lt;/JobDescription&amp;gt;&lt;/span&gt;
    &lt;span class="ta"&gt;&amp;lt;Facebook&amp;gt;&lt;/span&gt;http://www.facebook.com/brainscratcher&lt;span class="ta"&gt;&amp;lt;/Facebook&amp;gt;&lt;/span&gt;
  &lt;span class="ta"&gt;&amp;lt;/Person&amp;gt;&lt;/span&gt;
&lt;span class="ta"&gt;&amp;lt;/People&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/using-xmlwriter-in-c-sharp"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/using-xmlwriter-in-c-sharp#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=srVemYom7jQ:_xvNeDxvTCs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=srVemYom7jQ:_xvNeDxvTCs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=srVemYom7jQ:_xvNeDxvTCs:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=srVemYom7jQ:_xvNeDxvTCs:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=srVemYom7jQ:_xvNeDxvTCs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=srVemYom7jQ:_xvNeDxvTCs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=srVemYom7jQ:_xvNeDxvTCs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=srVemYom7jQ:_xvNeDxvTCs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=srVemYom7jQ:_xvNeDxvTCs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/srVemYom7jQ" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/using-xmlwriter-in-c-sharp</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 11 Oct 2010 01:56:40 -0700</pubDate>
      <title>The typical communication process between browser and server</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/aUv9WkQEyX0/the-typical-communication-process-between-bro</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/the-typical-communication-process-between-bro</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3lYXijWHGIUJiigbrx1fUMwkWdA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3lYXijWHGIUJiigbrx1fUMwkWdA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3lYXijWHGIUJiigbrx1fUMwkWdA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3lYXijWHGIUJiigbrx1fUMwkWdA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	       &lt;p&gt;A web application is unlike a standard Windows application. It does not run in a single process on a single machine. Instead, it is typically hosted on a web server and accessed via a Web browser on a client machine. The communication between the Web server and Web browser is sent using HTTP. It is imperative you have a basic understanding of how these items work and communicate together before you start writing much code. The typical communication process between browser and server can be generalized into the following steps: &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1. A user uses his or her web browser to initiate a request for a web server resource. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. HTTP is used to send a GET request to the web server. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3. The Web server processes the GET request on the server (typically locating the requested code and running it). &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4. The Web server then sends a response back to the web browser. The HTTP protocol is used to send the HTTP response back to the Web browser. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5. The user&amp;#8217;s web browser then processes the response (typically HTML and JavaScript) and renders the web page for display to the user. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6. The user may then enter data and perform an action such as clicking a submit button that causes his or her data to be sent back to the web server for processing. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7. HTTP is used to POST the data back to the Web server. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8. The web server then processes the POST request (again, calling your code in the process). &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9. The Web server then sends a response back to the web browser. HTTP is used to send the HTTP response to the web browser. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10. The web browser again processes the response and displays the web page to the user. This process is repeated over and over during a typical web application session.&lt;/p&gt; 
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/the-typical-communication-process-between-bro"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/the-typical-communication-process-between-bro#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=aUv9WkQEyX0:XJ4GcAFdvrc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=aUv9WkQEyX0:XJ4GcAFdvrc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=aUv9WkQEyX0:XJ4GcAFdvrc:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=aUv9WkQEyX0:XJ4GcAFdvrc:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=aUv9WkQEyX0:XJ4GcAFdvrc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=aUv9WkQEyX0:XJ4GcAFdvrc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=aUv9WkQEyX0:XJ4GcAFdvrc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=aUv9WkQEyX0:XJ4GcAFdvrc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=aUv9WkQEyX0:XJ4GcAFdvrc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/aUv9WkQEyX0" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/the-typical-communication-process-between-bro</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 04 Oct 2010 04:27:00 -0700</pubDate>
      <title>Google Translate API in C-Sharp</title>
      <link>http://feedproxy.google.com/~r/ZainshaikhsPosterous/~3/oQ1mjKmfOVM/google-translate-api-in-c</link>
      <guid isPermaLink="false">http://zainshaikh.posterous.com/google-translate-api-in-c</guid>
      <description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AvZgrs56eRXnMLsHjIgZ38j7gt4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AvZgrs56eRXnMLsHjIgZ38j7gt4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AvZgrs56eRXnMLsHjIgZ38j7gt4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AvZgrs56eRXnMLsHjIgZ38j7gt4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;
	&lt;p&gt;&lt;a href="http://translate.google.com/"&gt;Google Translate&lt;/a&gt; is such an awesome online tool to translate text from one language into other. I frequently use it for translation between English and Urdu. Google has also provided API for developers to use the translation tool for their applications.&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://code.google.com/apis/language/translate/v2/using_rest.html"&gt;Translate API&lt;/a&gt; is REST API, and can easily be consumed using C#, Java, Javascript, PHP and many other languages. Here I am gonna use C#. :)&lt;/p&gt;

&lt;p&gt;You need to only make a WebRequest to following url with your required parameters including an &lt;em&gt;apiKey&lt;/em&gt;. Get your api key from &lt;a href="https://code.google.com/apis/console/"&gt;Google API Console&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&amp;amp;source=en&amp;amp;target=de&amp;amp;q=Hello%20world"&gt;https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&amp;amp;sour...&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The response of &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST&lt;/a&gt; API is given below. Unfortunately Google only supports JSON response. No xml support. :(&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;{
 &lt;span class="ke"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;data&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;: {
  &lt;span class="ke"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;translations&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;: [
   {
    &lt;span class="ke"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;translatedText&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;: &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;hola mundo&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
   }
  ]
 }
}&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Following is the code of a &lt;em&gt;C# console application&lt;/em&gt; I created. You may have a glance on the code below.&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;namespace GoogleTranslator
{
    class Program
    {
        &lt;span class="di"&gt;static&lt;/span&gt; &lt;span class="di"&gt;void&lt;/span&gt; Main(string[] args)
        {
            &lt;span class="c"&gt;// get the word from user.&lt;/span&gt;
            Console.Write(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt; Please write a write and press enter to translate &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;);

            String text = Console.ReadLine();
            String fromLanguage = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;en&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;; &lt;span class="c"&gt;// english&lt;/span&gt;
            String toLanguage = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;es&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;; &lt;span class="c"&gt;// spanish&lt;/span&gt;
            String apiKey = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;YOUR_API_KEY_HERE&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;; &lt;span class="c"&gt;// get key from https://code.google.com/apis/console/&lt;/span&gt;

            &lt;span class="c"&gt;// create the url for making web request&lt;/span&gt;
            String apiUrl = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;https://www.googleapis.com/language/translate/v2?key={0}&amp;amp;source={1}&amp;amp;target={2}&amp;amp;q={3}&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;
            String url = String.Format(apiUrl, apiKey, fromLanguage, toLanguage, text);

            &lt;span class="c"&gt;// get translated text using google API.&lt;/span&gt;
            String data = Translate(url);

            &lt;span class="c"&gt;// show response data to user.&lt;/span&gt;
            Console.WriteLine(data);
            Console.ReadLine();
        }

        &lt;span class="c"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;/// Translates the text into specified language using google API.&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;param name=&amp;quot;url&amp;quot;&amp;gt;The url to make a web request to.&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="c"&gt;/// &amp;lt;returns&amp;gt;Returns the translated text&amp;lt;/returns&amp;gt;&lt;/span&gt;
        &lt;span class="di"&gt;static&lt;/span&gt; string Translate(string url)
        {
            string text = string.Empty;

            try
            {
                &lt;span class="c"&gt;// create the web request&lt;/span&gt;
                WebRequest req = HttpWebRequest.Create(url);

                &lt;span class="c"&gt;// set the request method&lt;/span&gt;
                req.Method = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;GET&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;;

                &lt;span class="c"&gt;// get the response&lt;/span&gt;
                using (WebResponse res = req.GetResponse())
                {
                    &lt;span class="c"&gt;// read response stream&lt;/span&gt;
                    &lt;span class="c"&gt;// you must specify the encoding as UTF8 &lt;/span&gt;
                    &lt;span class="c"&gt;// because google returns the response in UTF8 format&lt;/span&gt;
                    using (StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.UTF8))
                    {
                        &lt;span class="c"&gt;// read text from response stream&lt;/span&gt;
                        text = sr.ReadToEnd();
                    }
                }
            }
            catch (Exception e)
            {
                throw; &lt;span class="c"&gt;// throw the exception as is/&lt;/span&gt;
            }

            &lt;span class="c"&gt;// return text to callee&lt;/span&gt;
            &lt;span class="r"&gt;return&lt;/span&gt; text;
        }
    }
}&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;You can download the complete source code attached with this post.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://zainshaikh.posterous.com/google-translate-api-in-c"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://zainshaikh.posterous.com/google-translate-api-in-c#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=oQ1mjKmfOVM:ZIrV00oVfCk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=oQ1mjKmfOVM:ZIrV00oVfCk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=oQ1mjKmfOVM:ZIrV00oVfCk:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=oQ1mjKmfOVM:ZIrV00oVfCk:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=oQ1mjKmfOVM:ZIrV00oVfCk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=oQ1mjKmfOVM:ZIrV00oVfCk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=oQ1mjKmfOVM:ZIrV00oVfCk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?i=oQ1mjKmfOVM:ZIrV00oVfCk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?a=oQ1mjKmfOVM:ZIrV00oVfCk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ZainshaikhsPosterous?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ZainshaikhsPosterous/~4/oQ1mjKmfOVM" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1085756/Picture_001.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5ebAZP8m6Nc5</posterous:profileUrl>
        <posterous:firstName>Zain</posterous:firstName>
        <posterous:lastName>Shaikh</posterous:lastName>
        <posterous:nickName>Zain Shaikh</posterous:nickName>
        <posterous:displayName>Zain Shaikh</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://zainshaikh.posterous.com/google-translate-api-in-c</feedburner:origLink></item>
  <language>en-us</language></channel>
</rss>

