<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Emad Alashi&#039;s Blog &#187; DotNetArabi</title>
	<atom:link href="http://www.emadashi.com/index.php/category/dotnetarabi/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.emadashi.com</link>
	<description></description>
	<lastBuildDate>Sun, 15 Jan 2012 10:05:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Hide Subfolder in Multiple Domains Under One Site</title>
		<link>http://www.emadashi.com/index.php/2011/12/hide-subfolder-in-multiple-domains-under-one-site/</link>
		<comments>http://www.emadashi.com/index.php/2011/12/hide-subfolder-in-multiple-domains-under-one-site/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 17:10:40 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[DotNetArabi]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[multiple domains under one site]]></category>
		<category><![CDATA[url rewrite]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/?p=403</guid>
		<description><![CDATA[After I have moved to WinHost, I was surprised they don’t support multiple domains under one site out of the box; you have to rely on IIS URL Rewrite magic to achieve that.
So as expected, I looked for a solution in their KB and the internet (you don’t reinvent the wheel, remember?) and found couple [...]]]></description>
			<content:encoded><![CDATA[<p>After I have moved to <a href="http://www.winhost.com/">WinHost</a>, I was surprised they don’t support multiple domains under one site out of the box; you have to rely on IIS URL Rewrite magic to achieve that.</p>
<p>So as expected, I looked for a solution in their KB and the internet (you don’t reinvent the wheel, remember?) and found couple of posts <a href="http://learn.iis.net/page.aspx/465/url-rewrite-module-configuration-reference/">here</a>, <a href="http://learn.iis.net/page.aspx/500/testing-rewrite-rule-patterns/">here</a>, <a href="http://weblogs.asp.net/owscott/archive/2010/01/26/iis-url-rewrite-hosting-multiple-domains-under-one-site.aspx">here</a>, and <a href="http://forum.winhost.com/showthread.php?t=4545&amp;highlight=url+rewrite">here</a> that helped a lot in achieving this.     <br />So I managed to have <a href="http://www.emadashi.com">www.emadashi.com</a> and <a href="http://www.dotnetarabi.com">www.dotnetarabi.com</a> working fine together residing in the folders “emadashi-blog” and “dotnetarabi-root” respectively under the root; they both have same IP address, but upon request a redirection is made to the proper application folder. </p>
<p>Until one day my very good friend <a href="http://blog.jerashdev.net/">Omar Qadan</a> generously shared a link to an episode he found interesting; and the link was as the following:</p>
<p>“www.dotnetarabi.com/<b>dotnetarabi-root</b>/episode.aspx?..etc”</p>
<p>Ops! that’s not right isn’t it! The URL should not include the folder name “dotnetarabi-root”! So I read more about Regular Expressions, read the <a href="http://learn.iis.net/page.aspx/465/url-rewrite-module-configuration-reference/">above mentioned article</a> more thoroughly, and came to the conclusion that for each domain we have we are going to write two rules:</p>
<p>1) Correct and Redirect undesired URL’s:    <br />If IIS receives a request that contains the folder name (e.g “www.dotnetarabi.com/<b>dotnetarabi-root</b>/episode.aspx”), then: </p>
<ol>
<li>Omit the folder name from the URL, in our case the URL becomes “www.dotnetarabi.com/episode.aspx”&#160; </li>
<li><b>Redirect</b> the request again to IIS using the new URL, by sending 301 status prompting the browser to initiate a new request with the new URL </li>
</ol>
<p>The step above can be achieved by the following:</p>
<p>Figure 1:</p>
<ol>
<ol style="line-height: normal; padding-left: 0px; margin-bottom: 0in; margin-left: 30pt" type="1">
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><font face="Courier New"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">&lt;rule</font></span></b><font style="font-size: 10pt"><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">name</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;UnWantedDirectAccessToSubFolder-DotNetArabi-root&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">patternSyntax</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;ECMAScript&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">stopProcessing</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;true&quot;</font></span></font><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">&gt;</font></span></b></font><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><font face="Courier New"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">&lt;match</font></span></b><font style="font-size: 10pt"><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">url</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;.*&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span></font><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">/&gt;</font></span></b></font><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><font face="Courier New"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">&lt;action</font></span></b><font style="font-size: 10pt"><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">type</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;Redirect&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">url</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;{C:1}&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">appendQueryString</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;true&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">logRewrittenUrl</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;false&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span></font><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">/&gt;</font></span></b></font><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font face="Courier New"><font style="font-size: 10pt">&lt;conditions&gt;</font></font></span></b><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><font face="Courier New"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">&lt;add</font></span></b><font style="font-size: 10pt"><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">input</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;{HTTP_HOST}&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">pattern</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;^(www.)?dotnetarabi.com&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span></font><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">/&gt;</font></span></b></font><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><font face="Courier New"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">&lt;add</font></span></b><font style="font-size: 10pt"><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">input</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;{PATH_INFO}&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">pattern</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;^[/\\]dotnetarabi_root[/\\](.*)&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span></font><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">/&gt;</font></span></b></font><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font face="Courier New"><font style="font-size: 10pt">&lt;/conditions&gt;</font></font></span></b><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font face="Courier New"><font style="font-size: 10pt">&lt;/rule&gt;</font></font></span></b><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
</ol>
</ol>
<p>Then we do the second rule:</p>
<p>2) Guide and Redirect desired URL’s to the right folder:    <br />If IIS receives a request by the URL format we desire, which doesn’t contain the folder name (e.g. “www.dotnetarabi.com/episode.aspx”) then: </p>
<ol>
<li>Insert the folder name to the URL to be come “www.dotnetarabi.com/dotnetarabi-root/episode.aspx” in our case </li>
<li><b>Rewrite</b> the URL again within IIS using the new URL </li>
</ol>
<p>Which can be achieved by the following:</p>
<p>Figure 2:</p>
<ol>
<ol style="line-height: normal; padding-left: 0px; margin-bottom: 0in; margin-left: 30pt" type="1">
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><font face="Courier New"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">&lt;rule</font></span></b><font style="font-size: 10pt"><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">name</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;DirectToDotNetArabiRoot&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">patternSyntax</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;ECMAScript&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">stopProcessing</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;true&quot;</font></span></font><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">&gt;</font></span></b></font><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><font face="Courier New"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">&lt;match</font></span></b><font style="font-size: 10pt"><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">url</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;.*&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span></font><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">/&gt;</font></span></b></font><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><font face="Courier New"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">&lt;action</font></span></b><font style="font-size: 10pt"><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">type</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;Rewrite&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">url</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;dotnetarabi_root/{R:0}&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">appendQueryString</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;true&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">logRewrittenUrl</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;false&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span></font><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">/&gt;</font></span></b></font><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font face="Courier New"><font style="font-size: 10pt">&lt;conditions&gt;</font></font></span></b><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><font face="Courier New"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">&lt;add</font></span></b><font style="font-size: 10pt"><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">input</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;{HTTP_HOST}&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">pattern</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;^(www.)?dotnetarabi.com&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span></font><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">/&gt;</font></span></b></font><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><font face="Courier New"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">&lt;add</font></span></b><font style="font-size: 10pt"><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">input</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;{PATH_INFO}&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">pattern</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;^[/\\]emadalashi_blog[/\\]&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">negate</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;true&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span></font><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">/&gt;</font></span></b></font><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><font face="Courier New"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">&lt;add</font></span></b><font style="font-size: 10pt"><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">input</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;{PATH_INFO}&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">pattern</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;^[/\\]dotnetarabi_root[/\\]&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#000066">negate</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900">=</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#ff0000">&quot;true&quot;</font></span><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font color="#009900"> </font></span></font><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font style="font-size: 10pt">/&gt;</font></span></b></font><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font face="Courier New"><font style="font-size: 10pt">&lt;/conditions&gt;</font></font></span></b><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
<li style="line-height: 14.4pt; margin: 0in 0in 10pt; color: ; vertical-align: top; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoNormal"><b><span style="font-family: ; color: ; mso-fareast-font-family: &#39;Times New Roman&#39;"><font face="Courier New"><font style="font-size: 10pt">&lt;/rule&gt;</font></font></span></b><span style="font-family: ; mso-fareast-font-family: &#39;Times New Roman&#39;"></span> </li>
</ol>
</ol>
<p>The best way to describe what happens is through this diagram I put together (the start block is the “Browser”):</p>
<p><a href="http://www.gliffy.com/"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://emadashi.com/wp-content/uploads/c144f43a3a6c_10467/clip_image001_3.jpg" width="420" height="368" /></a></p>
<p>And that was it, now notice the following:</p>
<ol>
<li>The rules should maintain the mentioned order </li>
<li>Rule 1 uses action type “<b>Redirect</b>”, and Rule 2 uses action type “<b>Rewrite</b>” </li>
<li>We configure the rules to stop processing any rule after it is executed </li>
<li>Your key to successful and easy manipulation of the URL is to understand the Back-references in the URL Rewriting, notice the {C:1} and {R:0} usage above, notice as well the brackets () in the URL’s; they are used to capture the back-references, check the “<a name="Using_back-references_in_rewrite_rules"></a><i>Using back-references in rewrite rules</i>” in the <a href="http://learn.iis.net/page.aspx/465/url-rewrite-module-configuration-reference/#Rewrite_Rules_Overview">above mentioned article</a> </li>
<li>To test your rules use <a href="http://www.fiddler2.com/fiddler2/">Fiddler</a>, IE Developers Tools (Network tab), or <a href="http://getfirebug.com/">Firebug</a> (Net tab), and the great tool IIS provides to test rules which can be accessed by: open IIS –&gt; select site-&gt; URL Rewrite –&gt; Double click rule –&gt; double click condition –&gt; Test pattern:       <br /><a href="http://emadashi.com/wp-content/uploads/c144f43a3a6c_10467/clip_image002.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://emadashi.com/wp-content/uploads/c144f43a3a6c_10467/clip_image002_thumb.png" width="444" height="473" /></a> </li>
</ol>
<p>I hope you found this useful. </p>
<p>Let me do thanks here to&#160; <a href="http://www.gliffy.com">www.gliffy.com</a> as well for providing such great service for drawing diagrams online</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2011/12/hide-subfolder-in-multiple-domains-under-one-site/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Best Skype Audio Chat Recorder</title>
		<link>http://www.emadashi.com/index.php/2011/10/best-skype-audio-chat-recorder/</link>
		<comments>http://www.emadashi.com/index.php/2011/10/best-skype-audio-chat-recorder/#comments</comments>
		<pubDate>Sat, 15 Oct 2011 14:24:08 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[DotNetArabi]]></category>
		<category><![CDATA[mp3 recorder]]></category>
		<category><![CDATA[skype recorder]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/?p=382</guid>
		<description><![CDATA[This is a shout-out to MP3 Skype Recorder, the best Skype recorder I have ever used to record Skype calls.
It’s been two years since DotNetArabi’s first episode, most of the episodes were recorded over Skype using MP3 Skype Recorder. It wasn’t the only tool I tried, I have downloaded several, but none competed with its [...]]]></description>
			<content:encoded><![CDATA[<p>This is a shout-out to <a href="http://voipcallrecording.com/">MP3 Skype Recorder</a>, the best Skype recorder I have ever used to record Skype calls.<br />
It’s been two years since <a href="http://www.dotnetarabi.com/">DotNetArabi’s</a> first episode, most of the episodes were recorded over Skype using MP3 Skype Recorder. It wasn’t the only tool I tried, I have downloaded several, but none competed with its simplicity and robustness, never hanged, never failed, and it’s totally free!</p>
<p><a href="http://voipcallrecording.com/"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="10-15-2011CropperCapture[2]" src="http://www.emadashi.com/misc/images/1cec17406ad1_1074D/10-15-2011CropperCapture2.jpg" border="0" alt="10-15-2011CropperCapture[2]" width="88" height="84" /></a></p>
<p>If you want the best Skype audio recorder, check <a href="http://voipcallrecording.com/">MP3 Skype Recorder</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2011/10/best-skype-audio-chat-recorder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use Powershell To Follow Your Followers On Twitter</title>
		<link>http://www.emadashi.com/index.php/2010/08/use-powershell-to-follow-your-followers-on-twitter/</link>
		<comments>http://www.emadashi.com/index.php/2010/08/use-powershell-to-follow-your-followers-on-twitter/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 18:24:32 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[DotNetArabi]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/index.php/2010/08/use-powershell-to-follow-your-followers-on-twitter/</guid>
		<description><![CDATA[Update: Twitter “statuses/followers” API documentation had a small note at the bottom that says that it returns only 100 followers if no paging is used, I have updated the script accordingly. Thanks to @RamyMahrous for notifying me on this in his comment below. &#60;End of Update&#62;
For a long time I thought that @DotNetArabi shouldn’t follow [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update</strong>: Twitter “<a href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0followers">statuses/followers</a>” API documentation had a small note at the bottom that says that it returns only 100 followers if no paging is used, I have updated the script accordingly. Thanks to <a href="http://twitter.com/RamyMahrous">@RamyMahrous</a> for notifying me on this in his comment below. <strong>&lt;End of Update&gt;</strong></p>
<p>For a long time I thought that <a href="http://www.twitter.com/DotNetArabi">@DotNetArabi</a> shouldn’t follow it’s own followers due to various reasons I had, but lately I discovered that I was wrong. So I have decided to follow them back no matter how many they are, but that would be a tedious thing to do manually. Here comes <a href="http://en.wikipedia.org/wiki/Powershell">Powershell</a> to the rescue.</p>
<p>I wrote the following Powershell script in <a href="http://technet.microsoft.com/en-us/library/dd315244.aspx">Powershell ISE</a> (the Integrated Scripting Environment) which is already shipped with Win7, utilizing <a href="http://apiwiki.twitter.com/Twitter-API-Documentation">Twitter’s API’s</a> and it did the trick:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;    <br /><span style="color: #000000">&#160;</span><span style="color: #ff4500">$wc</span><span style="color: #000000">&#160;</span><span style="color: #a9a9a9">=</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">new-object</span><span style="color: #000000">&#160;</span><span style="color: #8a2be2">System.Net.Webclient</span>    <br /><span style="color: #000000">&#160;</span><span style="color: #ff4500">$wc</span><span style="color: #a9a9a9">.</span><span style="color: #000000">Credentials</span><span style="color: #000000">&#160;</span><span style="color: #a9a9a9">=</span><span style="color: #000000">&#160;</span><span style="color: #0000ff">new-object</span><span style="color: #000000">&#160;</span><span style="color: #8a2be2">System.Net.NetworkCredential</span><span style="color: #000000">&#160;</span><span style="color: #8b0000">&quot;dotnetarabi&quot;</span><span style="color: #a9a9a9">,</span><span style="color: #8b0000">&quot;UseYourOwnPWbuddy!&quot;</span>    <br /><span style="color: #000000">&#160;</span><span style="color: #ff4500">$cursorCount</span><span style="color: #000000">&#160;</span><span style="color: #a9a9a9">=</span><span style="color: #000000">&#160;</span><span style="color: #8b0000">&quot;-1&quot;</span>    <br /><span style="color: #000000">&#160; </span>    <br /><span style="color: #000000">&#160;</span><span style="color: #00008b">do</span><span style="color: #000000">&#160;</span><span style="color: #000000">{</span><span style="color: #000000">&#160;</span>    <br /><span style="color: #000000">&#160; </span>    <br /><span style="color: #000000">&#160;</span><span style="color: #ff4500">$rest</span><span style="color: #000000">&#160;</span><span style="color: #a9a9a9">=</span><span style="color: #000000">&#160;</span><span style="color: #ff4500">$wc</span><span style="color: #a9a9a9">.</span><span style="color: #000000">DownloadString</span><span style="color: #000000">(</span><span style="color: #8b0000">&quot;http://api.twitter.com/statuses/followers.xml?cursor=&quot;</span><span style="color: #000000">&#160;</span><span style="color: #a9a9a9">+</span><span style="color: #000000">&#160;</span><span style="color: #ff4500">$cursorCount</span><span style="color: #000000">)</span>    <br /><span style="color: #000000">&#160;</span><span style="color: #ff4500">$xml</span><span style="color: #000000">&#160;</span><span style="color: #a9a9a9">=</span><span style="color: #000000">&#160;</span><span style="color: #008080">[xml]</span><span style="color: #ff4500">$rest</span>    <br /><span style="color: #000000">&#160;</span><span style="color: #00008b">foreach</span><span style="color: #000000">(</span><span style="color: #000000">&#160;</span><span style="color: #ff4500">$user</span><span style="color: #000000">&#160;</span><span style="color: #00008b">in</span><span style="color: #000000">&#160;</span><span style="color: #ff4500">$xml</span><span style="color: #a9a9a9">.</span><span style="color: #000000">Users_list</span><span style="color: #a9a9a9">.</span><span style="color: #000000">users</span><span style="color: #a9a9a9">.</span><span style="color: #000000">user</span><span style="color: #000000">&#160;</span><span style="color: #000000">)</span><span style="color: #000000">&#160;</span>    <br /><span style="color: #000000">&#160;</span><span style="color: #000000">{</span><span style="color: #000000">&#160;</span>    <br /><span style="color: #000000">&#160;&#160;&#160; </span><span style="color: #ff4500">$wc</span><span style="color: #a9a9a9">.</span><span style="color: #000000">UploadString</span><span style="color: #000000">(</span><span style="color: #8b0000">&quot;http://api.twitter.com/1/friendships/create/&quot;</span><span style="color: #000000">&#160;</span><span style="color: #a9a9a9">+</span><span style="color: #000000">&#160;</span><span style="color: #ff4500">$user</span><span style="color: #a9a9a9">.</span><span style="color: #000000">screen_name</span><span style="color: #000000">&#160;</span><span style="color: #a9a9a9">+</span><span style="color: #000000">&#160;</span><span style="color: #8b0000">&quot;.xml&quot;</span><span style="color: #a9a9a9">,</span><span style="color: #000000">&#160;</span><span style="color: #8b0000">&quot;&quot;</span><span style="color: #000000">)</span>    <br /><span style="color: #000000">&#160;</span><span style="color: #000000">}</span><span style="color: #000000">&#160;</span>    </p>
<p><span style="color: #000000">&#160;</span><span style="color: #ff4500">$cursorCount</span><span style="color: #000000">&#160;</span><span style="color: #a9a9a9">=</span><span style="color: #000000">&#160;</span><span style="color: #ff4500">$xml</span><span style="color: #a9a9a9">.</span><span style="color: #000000">users_list</span><span style="color: #a9a9a9">.</span><span style="color: #000000">next_cursor</span>    <br /><span style="color: #000000">}</span>    <br /><span style="color: #00008b">while</span><span style="color: #000000">(</span><span style="color: #ff4500">$xml</span><span style="color: #a9a9a9">.</span><span style="color: #000000">users_list</span><span style="color: #a9a9a9">.</span><span style="color: #000000">next_cursor</span><span style="color: #000000">&#160;</span><span style="color: #a9a9a9">-ne</span><span style="color: #000000">&#160;</span><span style="color: #800080">0</span><span style="color: #000000">)</span>    </p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</span></p>
<p>It’s simple and straight forward; I used “UploadString” method of the Webclient class because it produces a “POST” HTTP request required by Twitter API rather than “GET”.    <br />Note that the response you get from the “Create” API will be either an XML representation of the followed-user entity, or a server error “Forbidden” for many of reasons Twitter may have. This is how you will know if each “follow” procedure succeeded or not</p>
<p>Thanks to <a href="http://www.sepago.de/sepago-backstage/blogs/helge">Helge Klein</a> I could highlight my Powershell script by <a href="http://www.sepago.de/helge/2010/01/18/syntax-highlighting-powershell-code-in-html-with-a-powershell-script/">his script here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2010/08/use-powershell-to-follow-your-followers-on-twitter/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Exposing DotNetArabi for OData</title>
		<link>http://www.emadashi.com/index.php/2010/04/exposing-dotnetarabi-for-odata/</link>
		<comments>http://www.emadashi.com/index.php/2010/04/exposing-dotnetarabi-for-odata/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 08:14:43 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[DotNetArabi]]></category>
		<category><![CDATA[ado.net services]]></category>
		<category><![CDATA[odata]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/?p=341</guid>
		<description><![CDATA[ 
Lately OData (Open Data protocol) is gaining a great momentum, everybody is talking about, and in fact it deserves all this fuss. OData is a protocol through which you can share data provided as ATOM or JSON formats by exposing URI’s to be invoked via HTTP, check the FAQ for fast information.
One of the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dotnetarabi.com"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="www.DotNetArabi.com" src="http://www.emadashi.com/wp-content/uploads/2010/04/logoCopy.jpg" border="0" alt="www.DotNetArabi.com" width="92" height="92" /></a> <a href="http://www.odata.org"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="www.odata.org" src="http://www.emadashi.com/wp-content/uploads/2010/04/images.jpg" border="0" alt="www.odata.org" width="60" height="60" /></a></p>
<p>Lately <a href="http://www.odata.org/developers/protocols/overview">OData</a> (Open Data protocol) is gaining a great momentum, everybody is talking about, and in fact it deserves all this fuss. OData is a protocol through which you can share data provided as ATOM or JSON formats by exposing URI’s to be invoked via HTTP, check the <a href="http://www.odata.org/faq">FAQ</a> for fast information.</p>
<p>One of the interesting things is that the protocol provides <a href="http://www.odata.org/developers/protocols/uri-conventions">various options</a> through the URI to query all sort data; conditions, ordering, filtering, smart selection, …etc, in addition to very smart linking between exposed entities.</p>
<p>So hereby I provide the data of DotNetArabi through OData on the link <a href="http://odata.dotnetarabi.com/odata.svc">http://odata.dotnetarabi.com/odata.svc</a> for the sake of fun and for anyone who might find it useful. I used the Entity Framework for this purpose since it was the easiest, you can find a very helpful information <a href="http://msdn.microsoft.com/en-us/library/cc668792.aspx">here</a>.</p>
<p>To start playing around check:</p>
<p><a title="http://odata.dotnetarabi.com/odata.svc/Guests" href="http://odata.dotnetarabi.com/odata.svc/Guests">http://odata.dotnetarabi.com/odata.svc/Guests</a><br />
<a href="http://odata.dotnetarabi.com/odata.svc/Episodes?$filter=AudioFileLength gt 40">http://odata.dotnetarabi.com/odata.svc/Episodes?$filter=AudioFileLength gt 40</a></p>
<p>I hope you find it interesting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2010/04/exposing-dotnetarabi-for-odata/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>If Crashing Gracefully Is Nice, Recovering From It Is Awesome</title>
		<link>http://www.emadashi.com/index.php/2010/03/if-crashing-gracefully-is-nice-recovering-from-it-is-awesome/</link>
		<comments>http://www.emadashi.com/index.php/2010/03/if-crashing-gracefully-is-nice-recovering-from-it-is-awesome/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 22:54:31 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[DotNetArabi]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[software management]]></category>
		<category><![CDATA[Audacity]]></category>
		<category><![CDATA[Crash]]></category>
		<category><![CDATA[Recover]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/index.php/2010/03/if-crashing-gracefully-is-nice-recovering-from-it-is-awesome/</guid>
		<description><![CDATA[Last Saturday we had a SharePointSaturday event here in Jordan, in which I had the pleasure of interviewing Joel Oleson and Michael Noel for DotNetArabi.
At the end of Joel’s valuable interview, which can happen only in a life time, I stopped the recording by hitting the “Stop” button, simple. Surprisingly, instead of stopping the recording, [...]]]></description>
			<content:encoded><![CDATA[<p>Last Saturday we had a <a href="http://www.sharepointsaturday.org/jordan/default.aspx">SharePointSaturday</a> event here in Jordan, in which I had the pleasure of interviewing <a href="http://twitter.com/joeloleson">Joel Oleson</a> and <a href="http://twitter.com/michaeltnoel">Michael Noel</a> for <a href="http://www.dotnetarabi.com">DotNetArabi</a>.</p>
<p>At the end of Joel’s valuable interview, which can happen only in a life time, I stopped the recording by hitting the “Stop” button, simple. Surprisingly, instead of stopping the recording, <a href="http://audacity.sourceforge.net/">Audacity</a> just froze! I could hear myself screaming inside “NOOO!!!”, I guess even Joel heard that! the whole machine stuck that I had to force it to a Hard Shut down.</p>
<p>But knowing Audacity as a great piece of software, which really is, I hoped that I could still retrieve the recording. I rebooted and started Audacity again, and here comes the so refreshing alert at the start:</p>
<p><a href="http://www.emadashi.com/wp-content/uploads/2010/03/CrashRecovery.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="CrashRecovery" border="0" alt="CrashRecovery" src="http://www.emadashi.com/wp-content/uploads/2010/03/CrashRecovery_thumb.jpg" width="401" height="314" /></a></p>
</p>
<p>“<strong>Some projects were not saved properly the last time Audacity was run. Fortunately, the following projects can automatically be recovered</strong>”</p>
<p>THAT is a successful software! of course I lost portions of the recording still, but I can’t complain; I have most of the interview. So, When you design your software, DO make sure you don’t crash gracefully only, but yet to recover correctly from the crash.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2010/03/if-crashing-gracefully-is-nice-recovering-from-it-is-awesome/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>DotNetArabi Podcast Equipment</title>
		<link>http://www.emadashi.com/index.php/2010/01/dotnetarabi-podcast-equipment/</link>
		<comments>http://www.emadashi.com/index.php/2010/01/dotnetarabi-podcast-equipment/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 19:14:22 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[DotNetArabi]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[recording]]></category>
		<category><![CDATA[xlr]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/index.php/2010/01/dotnetarabi-podcast-equipment/</guid>
		<description><![CDATA[After publishing 8 episodes of DotNetArabi, I think it would be nice to share on this blog how it goes and what equipment needed in the process. But before we begin, dear reader, note that I am not an expert, I am still in the beginning of the way, though it’s going good so far.
&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>After publishing 8 episodes of DotNetArabi, I think it would be nice to share on this blog how it goes and what equipment needed in the process. But before we begin, dear reader, note that I am not an expert, I am still in the beginning of the way, though it’s going good so far.<img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="pavillion" border="0" alt="pavillion" align="right" src="http://www.emadashi.com/wp-content/uploads/2010/01/pavillion.jpg" width="212" height="212" /></p>
<p>&#160; My working machine is HP dv 6700 laptop, my first trials with recording was with simple microphone like the ones you use for chats; recording in winter made things smooth, but when summer came a long the <a href="http://www.emadashi.com/index.php/2008/07/new-laptop/" target="_blank">heating problem</a> became obvious in the low quality of the audio recorded, in addition to the higher target I needed anyway, so a different measure had to take place.</p>
<p>&#160;</p>
<p>I looked for an audio device that would clear the recording of any noise that is caused by the internal electrical and the fan. I had different options then, but the most interesting one was the <strong><a href="http://www.m-audio.com/products/en_us/MobilePreUSB.html" target="_blank">MobilePre USB</a></strong> audio interface which I finally got. It takes analog inputs (2 of which are XLR) and transforms to digital signal view USB.</p>
<p><a href="http://www.m-audio.com/products/en_us/MobilePreUSB.html"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="MobilePre_3qtr" border="0" alt="MobilePre_3qtr" src="http://www.emadashi.com/wp-content/uploads/2010/01/MobilePre_3qtr.jpg" width="255" height="120" /></a><a href="http://www.m-audio.com/products/en_us/MobilePreUSB.html"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="MobilePre_back" border="0" alt="MobilePre_back" src="http://www.emadashi.com/wp-content/uploads/2010/01/MobilePre_back.jpg" width="359" height="119" /></a> </p>
<p>Of course it appeared that it is over bloated than what I really needed, but I liked it anyway and produced the quality I looked for, though if you are going to record voice only, I believe there are other devices with lower cost.</p>
<p>To complete the set I got myself two XLR Microphones, not fancy ones, 15 JD’s each (about 22 US $) and that was it.</p>
<p><a href="http://en.wikipedia.org/wiki/XLR_connector"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="microphone" border="0" alt="microphone" src="http://www.emadashi.com/wp-content/uploads/2010/01/microphone.jpg" width="260" height="209" /></a> <a href="http://en.wikipedia.org/wiki/XLR_connector"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="xlrPort" border="0" alt="xlrPort" src="http://www.emadashi.com/wp-content/uploads/2010/01/xlrPort.jpg" width="170" height="170" /></a> </p>
</p>
</p>
</p>
<p>Now on the software side I use <a href="http://audacity.sourceforge.net/">Audacity</a>, I find it the best free audio software.</p>
<p><a href="http://audacity.sourceforge.net/"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="AudacityScreen" border="0" alt="AudacityScreen" src="http://www.emadashi.com/wp-content/uploads/2010/01/AudacityScreen.jpg" width="208" height="161" /></a> <a href="http://audacity.sourceforge.net/"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="audacity" border="0" alt="audacity" src="http://www.emadashi.com/wp-content/uploads/2010/01/audacity.jpg" width="186" height="160" /></a> </p>
</p>
<p>After all that, you’d find it surprising that you still need to use the <a href="http://wiki.audacityteam.org/index.php?title=Noise_Removal">Noise Removal</a> feature in Audacity. And by that you can have your own podcast <img src='http://www.emadashi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2010/01/dotnetarabi-podcast-equipment/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>DotNetArabi Episode 5 دوت نت عربي الحلقة الخامسة</title>
		<link>http://www.emadashi.com/index.php/2009/08/dotnetarabi-episode-5-%d8%af%d9%88%d8%aa-%d9%86%d8%aa-%d8%b9%d8%b1%d8%a8%d9%8a-%d8%a7%d9%84%d8%ad%d9%84%d9%82%d8%a9-%d8%a7%d9%84%d8%ae%d8%a7%d9%85%d8%b3%d8%a9/</link>
		<comments>http://www.emadashi.com/index.php/2009/08/dotnetarabi-episode-5-%d8%af%d9%88%d8%aa-%d9%86%d8%aa-%d8%b9%d8%b1%d8%a8%d9%8a-%d8%a7%d9%84%d8%ad%d9%84%d9%82%d8%a9-%d8%a7%d9%84%d8%ae%d8%a7%d9%85%d8%b3%d8%a9/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 17:38:52 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[DotNetArabi]]></category>
		<category><![CDATA[DotNetArabi ORM Object Relational Mapping Mohamad Meligy]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/?p=310</guid>
		<description><![CDATA[    
Episode 5 of DotNetArabi podcast is published on www.dotnetarabi.com
Mohamad Meligy talked in this episode about ORM (Object Relational Mapping), he explained in details how they work, why we need them, their advantages and disadvantages, and listed some of the known ORM engines.
لقد تم نشر الحلقة الخامسة من دوت نت عربي على www.dotnetarabi.com. تحدث فيها [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dotnetarabi.com/"><img src="http://www.emadashi.com/wp-content/uploads/2009/04/dotnetarabi_1.jpg" alt="" /></a>    <a href="http://www.dotnetarabi.com/"><img src="http://www.emadashi.com/wp-content/uploads/2009/04/dotnetarabi_2.jpg" alt="" /></a></p>
<p>Episode 5 of DotNetArabi podcast is published on <a href="http://www.dotnetarabi.com">www.dotnetarabi.com</a></p>
<p>Mohamad Meligy talked in this episode about <a href="http://en.wikipedia.org/wiki/Object-relational_mapping">ORM (Object Relational Mapping)</a>, he explained in details how they work, why we need them, their advantages and disadvantages, and listed some of the known ORM engines.</p>
<p style="direction: rtl" align="right">لقد تم نشر الحلقة الخامسة من دوت نت عربي على www.dotnetarabi.com. تحدث فيها محمد مليجي بإسهاب عن<br />
الـ <span dir="ltr"><a href="http://en.wikipedia.org/wiki/Object-relational_mapping">ORM (Object Relational Mapping)</a></span>. مفصلا ماهيتها، و كيف تعمل، و حسناتها و سيئاتها، و ذكر كذلك بعضا من المكتبات البرمجية  منها و حسناتها.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/index.php/2009/08/dotnetarabi-episode-5-%d8%af%d9%88%d8%aa-%d9%86%d8%aa-%d8%b9%d8%b1%d8%a8%d9%8a-%d8%a7%d9%84%d8%ad%d9%84%d9%82%d8%a9-%d8%a7%d9%84%d8%ae%d8%a7%d9%85%d8%b3%d8%a9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

