<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<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/"
	>

<channel>
	<title>Web Site Development</title>
	<link>http://salmonsites.com</link>
	<description>Tips and tricks to web site development</description>
	<pubDate>Mon, 17 Nov 2008 04:07:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Cross-Domain Issue - JSON to the Rescue</title>
		<link>http://salmonsites.com/2008/11/05/cross-domain-issue-json-to-the-rescue/</link>
		<comments>http://salmonsites.com/2008/11/05/cross-domain-issue-json-to-the-rescue/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 13:31:01 +0000</pubDate>
		<dc:creator>DevMaster</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://salmonsites.com/2008/11/05/cross-domain-issue-json-to-the-rescue/</guid>
		<description><![CDATA[About two weeks ago I started out on a little project for one of my web sites that I figured would be rather trivial.  All I wanted to do was provide a way for my customers to put a search box on their own web sites and have the search call a &#8220;service&#8221; hosted on [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Cross-Domain Issue - JSON to the Rescue", url: "http://salmonsites.com/2008/11/05/cross-domain-issue-json-to-the-rescue/" });</script>]]></description>
			<content:encoded><![CDATA[<p>About two weeks ago I started out on a little project for one of my web sites that I figured would be rather trivial.  All I wanted to do was provide a way for my customers to put a search box on their own web sites and have the search call a &#8220;service&#8221; hosted on my web site to then display results.  This is essentially what Google allows you to do, so I knew it was possible and assumed it wouldn&#8217;t be very hard.</p>
<p>I wanted it to be easy for my customers to put the search box on their web pages, so I went down the path of create a Javascript file that they could just reference via a &lt;script src=&#8221;&#8230;&#8221; /&gt; block.  Again, this is the same way that Google Adsense and Google Search works.  Inside the Javascript code I would create the HTML to display the search box and then have a function that would get called when the search button was clicked.  The search function would then use XMLHttpRequest to call a service on my web site that would perform the search and return results that would then be display in a &lt;div&gt; on the web page.</p>
<p>Ah, it all seemed so easy and was working great on my internal development sites. I then made the &#8220;mistake&#8221; of testing using Firefox and quickly ran into a problem. When I clicked the Search button nothing happened.  It took me a little while to track down the issue, but eventually discovered that what I was doing was a cross-domain security issue.  You see, it is not allowed having client-side script use XMLHttpRequest to access a file/script/service located on a different domain from the one the web page was served up from.  Doh!  This really sucked.  I searched and searched for ways to resolve the issue.  One common approach is to create a &#8220;proxy&#8221;, but that wasn&#8217;t a valid option for me since the web site using my search control wasn&#8217;t my own web site.  I really didn&#8217;t want to force my customers to create or install some proxy file.</p>
<p>After more searching I came across another solution &#8212; use JSON (JavaScript Object Notation).  Like most things, it&#8217;s not quite as simple as just flipping a switch and using JSON.  There was some work involved, but it wasn&#8217;t that hard and the result is excellent.</p>
<p>For starters, I recommend getting familar with JSON by checking out this <a href="http://www.hunlock.com/blogs/Mastering_JSON_(_JavaScript_Object_Notation_)">Mastering JSON</a> post.  It&#8217;s brief but covers the key things you need to know about the layout of JSON.  The next thing I had to do was change my service so it formatted and returned JSON text instead of HTML/XML like it was doing.  The last (and perhaps most important) step was to change my Javascript code to do two things:</p>
<p>1) On the button click I needed to dynamically add a &#8220;&lt;script&gt;&#8221; block to the HEAD section.  The source of the script is my search service.  Doing this causes the pages to automatically call the search service.</p>
<p>2) Create a function that will process the JSON data that is returned from the search service.</p>
<p>The real &#8220;trick&#8221; in all of this is that the text that the search service returns is actually the call to the function that processes the JSON text.  (If you&#8217;re thoroughly confused at this point don&#8217;t worry&#8230;so was I&#8230;but let me try to make it easier to understand).</p>
<p>Here&#8217;s an example that will hopefully bring all of the pieces together for you:</p>
<p><strong><u>User.html (my customer&#8217;s web page)</u></strong></p>
<p>&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;http://www.MyWebSite.com/Search.js&#8221;/&gt;<br />
&lt;/body&gt;&lt;/html&gt;</p>
<p><u><strong>Search.js (Javascript file stored on my web site)</strong></u></p>
<p>function process_json_data(jsondata) {<br />
  var resultCtrl = document.getElementById(&#8221;resultDiv&#8221;);<br />
  resultCtrl.innerHTML = jsondata.Results[0].Title;<br />
}</p>
<p>function onSearchClick() {<br />
// Add a script to the HEAD which has the Search service as the source<br />
request_script = document.createElement(&#8221;script&#8221;);<br />
request_script.src=&#8221;http://www.MyWebSite.com/search.aspx?kw=abc&amp;jf=process_json_data&#8221;;<br />
request_script.setAttribute(&#8221;id&#8221;, &#8220;myscript&#8221;);<br />
request_script.setAttribute(&#8221;type&#8221;, &#8220;text/javascript&#8221;);<br />
document.getElementsByTagName(&#8221;head&#8221;)[0].appendChild(request_script);<br />
}</p>
<p>// code that displays the search control&#8230;<br />
document.writeln(&#8221;&lt;input id=\&#8221;searchBtn\&#8221; type=\&#8221;button\&#8221; value=\&#8221;Search\&#8221; onclick=\&#8221;onSearchClick();\&#8221; /&gt;&#8221;);</p>
<p><u><strong> Search.aspx (my search &#8220;service&#8221; on my site)</strong></u><br />
This will perform the search and return JSON formatted data, but also includes the function name:</p>
<p>process_json_data({ &#8220;Results&#8221; : [ { &#8220;Title&#8221;:&#8221;ABC&#8221; }, { &#8220;Title&#8221;:&#8221;XYZ&#8221; } ] });</p>
<p><a href="http://sharethis.com/item?&wp=2.3.3&amp;publisher=b498ccdc-a5bd-4dc8-8389-eeb87c4becdf&amp;title=Cross-Domain+Issue+-+JSON+to+the+Rescue&amp;url=http%3A%2F%2Fsalmonsites.com%2F2008%2F11%2F05%2Fcross-domain-issue-json-to-the-rescue%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://salmonsites.com/2008/11/05/cross-domain-issue-json-to-the-rescue/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Microsoft Azure Services Platform</title>
		<link>http://salmonsites.com/2008/10/27/microsoft-azure-services-platform/</link>
		<comments>http://salmonsites.com/2008/10/27/microsoft-azure-services-platform/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 17:38:18 +0000</pubDate>
		<dc:creator>DevMaster</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://salmonsites.com/2008/10/27/microsoft-azure-services-platform/</guid>
		<description><![CDATA[Today Microsoft has officially announced their cloud computing platform and strategy.&#160; They made the announcement at their Professional Developers Conference and also put up a new web site for Azure Services Platform at Azure.com.&#160; If the term &#8220;cloud computing&#8221; is foreign to you, don&#8217;t despair because your not alone.&#160; The good news is that cloud [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Microsoft Azure Services Platform", url: "http://salmonsites.com/2008/10/27/microsoft-azure-services-platform/" });</script>]]></description>
			<content:encoded><![CDATA[<p>Today Microsoft has officially announced their cloud computing platform and strategy.&nbsp; They made the announcement at their Professional Developers Conference and also put up a new web site for <a href="http://www.azure.com" target="_blank" rel="nofollow">Azure Services Platform</a> at Azure.com.&nbsp; If the term &#8220;cloud computing&#8221; is foreign to you, don&#8217;t despair because your not alone.&nbsp; The good news is that cloud computing is slowly moving out of the fantasy land and into the reality land.</p>
<p>Last week Amazon announced they would be providing support for Windows and SQL Server on their <a title="Amazon Elastic Compute" href="http://aws.amazon.com/windows/" target="_blank" rel="nofollow">Elastic Compute</a> platform.&nbsp; The Amazon approach is certainly different than the Microsoft approach. I&#8217;m not going to say one is better than the other because it just depends on what you want to accomplish.&nbsp; With Amazon you need to start up and shutdown server instances yourself, while with Azure you have the ability to define the characteristics and requirements of the app and the platform will scale up/down instances as needed.&nbsp; It sounds good in theory, but I&#8217;ll wait to see it before I vote <img src='http://salmonsites.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The Azure Services Platform comes with some SDKs and it will be easy for developers familiar with .NET development to build applications for the cloud. The Azure Services Platform is also very much focused on eliminating the complexity of building highly scalable, multi-tenant applications. If you&#8217;re an ISV that means you can focus on the business functionality instead of the technical details.</p>
<p>There are still questions I have about Azure Services Platform and the core services it provides, so I have some research to do. I&#8217;m downloading the SDKs and what ever other info I can find to see what this can do to help me.&nbsp; So stay tuned!</p>
<p><a href="http://sharethis.com/item?&wp=2.3.3&amp;publisher=b498ccdc-a5bd-4dc8-8389-eeb87c4becdf&amp;title=Microsoft+Azure+Services+Platform&amp;url=http%3A%2F%2Fsalmonsites.com%2F2008%2F10%2F27%2Fmicrosoft-azure-services-platform%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://salmonsites.com/2008/10/27/microsoft-azure-services-platform/feed/</wfw:commentRss>
		</item>
		<item>
		<title>System.Transactions and legacy code</title>
		<link>http://salmonsites.com/2008/09/30/systemtransactions-and-legacy-code/</link>
		<comments>http://salmonsites.com/2008/09/30/systemtransactions-and-legacy-code/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 18:22:23 +0000</pubDate>
		<dc:creator>DevMaster</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://salmonsites.com/2008/09/30/systemtransactions-and-legacy-code/</guid>
		<description><![CDATA[System.Transaction is the latest incarnation of transactions from Microsoft.&#160; It first showed up on the scene with the release of .NET Framework 2.0.&#160; Today, however, was my first interaction with it.&#160; As with most things I do, I happened to be trying to do something that apparently no one else in the world as done [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "System.Transactions and legacy code", url: "http://salmonsites.com/2008/09/30/systemtransactions-and-legacy-code/" });</script>]]></description>
			<content:encoded><![CDATA[<p>System.Transaction is the latest incarnation of transactions from Microsoft.&#160; It first showed up on the scene with the release of .NET Framework 2.0.&#160; Today, however, was my first interaction with it.&#160; As with most things I do, I happened to be trying to do something that apparently no one else in the world as done (okay, probably not true, but when I ran into problems I sure didn&#8217;t find much help out there).</p>
<p>My goal was to create some WCF services that would expose some legacy C++ functionality.&#160; The C++ functionality was doing updates to some database tables using ADO (the old ADO, not the new ADO.NET).&#160; My approach to doing this seemed quite straight-forward to me so I naturally figured it wouldn&#8217;t take me long.&#160; I was going to create a new C++ library containing managed code that would turn around and call the legacy functions that are exported from another C++ library.&#160; My new C++ library could be compiled into a nice .NET assembly that I would reference from the C# WCF library.&#160; The WCF service in the C# library would just call the &quot;wrapper&quot; class in the new C++ library, which in turn would call the legacy function.&#160; Piece o&#8217; cake, right?</p>
<p>Getting things built and compiled was easy.&#160; Getting things to work, however, was not.&#160; My issue was that the database updates that occurred within the legacy code did not occur within the WCF transaction that was created.&#160; So, if I had to rollback the transaction I would be screwed because the legacy updates wouldn&#8217;t get rolled back.&#160; </p>
<p>I tried several different approaches.&#160; I even went down the path of creating a ServicedComponent as my &quot;wrapper&quot; and using EnterpriseServices.&#160; It was that path that led me to the answer (or at least one answer that seems to work).&#160; The approach I ended up with is to put a &quot;using (TransactionScope &#8230;.)&quot; statement in my WCF operation that wraps the call to the C++ wrapper.&#160; The not-so-obvious trick, however, is that the TransactionScope constructor needs to be the one that allows me to specify EnterpriseServicesInteropOption = Full, like this:</p>
<p><span style="color: blue; font-family: courier">using (TransactionScope s = new TransactionScope(Transaction.Current, new TimeSpan(0, 2, 0),      <br />&#160;&#160;&#160; EnterpriseServicesInteropOption.Full))&#160; {       <br />// call the legacy component       <br />s.Complete();       <br />} </span></p>
<p>This made things work like a charm and a did NOT need to have the wrapper actually be a ServiceComponent.</p>
<p><a href="http://sharethis.com/item?&wp=2.3.3&amp;publisher=b498ccdc-a5bd-4dc8-8389-eeb87c4becdf&amp;title=System.Transactions+and+legacy+code&amp;url=http%3A%2F%2Fsalmonsites.com%2F2008%2F09%2F30%2Fsystemtransactions-and-legacy-code%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://salmonsites.com/2008/09/30/systemtransactions-and-legacy-code/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Enterprise Library</title>
		<link>http://salmonsites.com/2008/09/25/enterprise-library/</link>
		<comments>http://salmonsites.com/2008/09/25/enterprise-library/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 21:28:37 +0000</pubDate>
		<dc:creator>DevMaster</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://salmonsites.com/2008/09/25/enterprise-library/</guid>
		<description><![CDATA[Microsoft&#8217;s Enterprise Library has been around for a few years now.&#160; The current release is version 4.0 and you can download it from CodePlex - patterns &#38; practices Enterprise Library.&#160; Enterprise Library is a set of &#34;application blocks&#34; that address some of the common, technical services that are often needed when building enterprise applications.&#160; The [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Enterprise Library", url: "http://salmonsites.com/2008/09/25/enterprise-library/" });</script>]]></description>
			<content:encoded><![CDATA[<p>Microsoft&#8217;s Enterprise Library has been around for a few years now.&#160; The current release is version 4.0 and you can download it from CodePlex - <a href="http://www.codeplex.com/entlib" target="_blank" rel="nofollow">patterns &amp; practices Enterprise Library</a>.&#160; Enterprise Library is a set of &quot;application blocks&quot; that address some of the common, technical services that are often needed when building enterprise applications.&#160; The source code is available for you, but in general you want to leave it as is.&#160; Many of the blocks are constructed so they can be easily extended by creating additional providers that you can just &quot;plug-in&quot;.</p>
<p>I confess that I haven&#8217;t used Enterprise Library very much.&#160; I just recently started taking a close look at what it can do and thinking about how I to best leverage some of the blocks.&#160; It definitely has some nice features like Logging and Data Access that you can use and benefit from even for some smaller scale applications.</p>
<p><a href="http://sharethis.com/item?&wp=2.3.3&amp;publisher=b498ccdc-a5bd-4dc8-8389-eeb87c4becdf&amp;title=Enterprise+Library&amp;url=http%3A%2F%2Fsalmonsites.com%2F2008%2F09%2F25%2Fenterprise-library%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://salmonsites.com/2008/09/25/enterprise-library/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Free Web Proxy List</title>
		<link>http://salmonsites.com/2008/09/04/free-web-proxy-list/</link>
		<comments>http://salmonsites.com/2008/09/04/free-web-proxy-list/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 13:20:39 +0000</pubDate>
		<dc:creator>DevMaster</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[web proxy]]></category>

		<guid isPermaLink="false">http://salmonsites.com/2008/09/04/free-web-proxy-list/</guid>
		<description><![CDATA[The first question you may ask is &#8220;what&#8217;s a web proxy&#8221;. The answer is quite simple.  A web proxy is a web site that you can go to and use to access other web sites as if you were on the web server.  It is a proxy for you.  So, why is that helpful?  Many [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Free Web Proxy List", url: "http://salmonsites.com/2008/09/04/free-web-proxy-list/" });</script>]]></description>
			<content:encoded><![CDATA[<p>The first question you may ask is &#8220;what&#8217;s a web proxy&#8221;. The answer is quite simple.  A web proxy is a web site that you can go to and use to access other web sites as if you were on the web server.  It is a proxy for you.  So, why is that helpful?  Many companies will block access to certain web sites because they don&#8217;t want their employees wasting time during working hours. Sites like YouTube, MySpace, MetaCafe, Amazon, etc. are often on the black list.  With a web proxy, however, you can go to the web proxy and then enter in the URL you want to go to.  The web proxy will display a frame with your requested site.  Since the web proxy is the machine that actually goes to the web site, your network filters do not some into play.  It&#8217;s pretty slick.</p>
<p>The next question (at least in my mind) is &#8220;why do people create FREE web proxies&#8221;.  Again, the answer is pretty basic.  Most free web proxy sites have advertising on them and obviously hope to generate some revenue from users clicking on the ads or buying products from the ads.</p>
<p>I&#8217;ve included a list of free web proxies below.  Note that some of these may no longer be valid. The life span of a free web proxy seems to vary.  I think people create one with the hope of making some money but then realize they eat up a LOT of bandwidth on the server and they erodes any type of profit from the ads!</p>
<p><a href="http://014.ca" rel="nofollow" target="_blank">014.ca</a></p>
<p><a href="http://64.27.4.141" rel="nofollow" target="_blank">64.27.4.141</a></p>
<p><a href="http://alwayshide.com" rel="nofollow" target="_blank">alwayshide.com</a></p>
<p><a href="http://ano-web.hostinplace.com" rel="nofollow" target="_blank">ano-web.hostinplace.com</a></p>
<p><a href="http://browseatwork1.com" rel="nofollow" target="_blank">browseatwork1.com</a></p>
<p><a href="http://bypass-rules.info" rel="nofollow" target="_blank">bypass-rules.info</a></p>
<p><a href="http://checkprofiles.com" rel="nofollow" target="_blank">checkprofiles.com</a></p>
<p><a href="http://devilsproxy.com" rel="nofollow" target="_blank"></a><a href="http://www.ekey.us" rel="nofollow" target="_blank">ekey.us</a></p>
<p><a href="http://evade123.com" rel="nofollow" target="_blank">evade123.com</a></p>
<p><a href="http://facebookpr0xy.info" rel="nofollow" target="_blank">facebookpr0xy.info</a></p>
<p><a href="http://fastproxy.info" rel="nofollow" target="_blank">fastproxy.info</a></p>
<p><a href="http://fire-proxy.com" rel="nofollow" target="_blank">fire-proxy.com</a></p>
<p><a href="http://free2surf.info" rel="nofollow" target="_blank">free2surf.info</a></p>
<p><a href="http://freeanonymousproxy.net" rel="nofollow" target="_blank">freeanonymousproxy.net</a></p>
<p><a href="http://fsurf.com" rel="nofollow" target="_blank">fsurf.com</a></p>
<p><a href="http://hiddencloak.com" rel="nofollow" target="_blank">hiddencloak.com</a></p>
<p><a href="http://hostagecr3w.info" rel="nofollow" target="_blank">hostagecr3w.info</a></p>
<p><a href="http://iproxy.eu" rel="nofollow" target="_blank">iproxy.eu</a><br />
<a href="http://www.letsneak.com" rel="nofollow" target="_blank"></a><br />
<a href="http://www.sweeties.info" rel="nofollow" target="_blank">sweeties.info</a></p>
<p><a href="http://eaglesurf.info" rel="nofollow" target="_blank">eaglesurf.info</a><br />
<a href="http://campusfox.info" rel="nofollow" target="_blank">campusfox.info</a><br />
<a href="http://gatewaybypass.info" rel="nofollow" target="_blank">gatewaybypass.info</a><br />
<a href="http://www.ugaat.com" rel="nofollow" target="_blank">ugaat.com</a><br />
<a href="http://askmeaquestion.co.cc/" rel="nofollow" target="_blank">askmeaquestion.co.cc</a><br />
<a href="http://www.krodi.com/" rel="nofollow" target="_blank">krodi.com</a></p>
<p><a href="http://www.umedication.com/" rel="nofollow" target="_blank">umedication.com</a><br />
<a href="http://proxy.sm-s.at/" rel="nofollow" target="_blank">proxy.sm-s.at</a><br />
<a href="http://www.onlineatschool.com/" rel="nofollow" target="_blank">onlineatschool.com</a><br />
<a href="http://www.freeproxy.ws/" rel="nofollow" target="_blank"></a><br />
<a href="http://www.uvods.com/" rel="nofollow" target="_blank">uvods.com</a><br />
<a href="http://www.cazed.com/" rel="nofollow" target="_blank"></a><br />
<a href="http://forbidyour.info/" rel="nofollow" target="_blank">forbidyour.info</a></p>
<p><a href="http://www.amalt.com/" rel="nofollow" target="_blank">amalt.com</a><br />
<a href="http://www.madproxy.net/" rel="nofollow" target="_blank">madproxy.net</a><br />
<a href="http://www.smoothtraffic.info/" rel="nofollow" target="_blank"></a><br />
<a href="http://www.digab.com/" rel="nofollow" target="_blank">digab.com</a><br />
<a href="http://www.huldo.com/" rel="nofollow" target="_blank">huldo.com</a><a href="http://crystalunblocker.info/" rel="nofollow" target="_blank"></a><a href="http://www.ipcrack.com/" rel="nofollow" target="_blank"><br />
</a></p>
<p><a href="http://livenetproxy.info" rel="nofollow" target="_blank">livenetproxy.info</a></p>
<p><a href="http://myspaceproxyy.com" rel="nofollow" target="_blank">myspaceproxyy.com</a></p>
<p><a href="http://ninjaproxy.com" rel="nofollow" target="_blank">ninjaproxy.com</a></p>
<p><a href="http://novaproxy.info" rel="nofollow" target="_blank">novaproxy.info</a></p>
<p><a href="http://poolcash.info" rel="nofollow" target="_blank">poolcash.info</a></p>
<p><a href="http://proxy4myspace.org" rel="nofollow" target="_blank">proxy4myspace.org</a></p>
<p><a href="http://proxylord.com" rel="nofollow" target="_blank">proxylord.com</a></p>
<p><a href="http://relay.us.to" rel="nofollow" target="_blank">relay.us.to</a></p>
<p><a href="http://surf2acess.info" rel="nofollow" target="_blank">surf2acess.info</a></p>
<p><a href="http://surfcovertly.com" rel="nofollow" target="_blank">surfcovertly.com</a></p>
<p><a href="http://unfiltersites.com" rel="nofollow" target="_blank">unfiltersites.com</a></p>
<p><a href="http://w0t.us" rel="nofollow" target="_blank">w0t.us</a></p>
<p><a href="http://webwarper.net" rel="nofollow" target="_blank">webwarper.net</a></p>
<p><a href="http://wildproxy.net" rel="nofollow" target="_blank">wildproxy.net</a></p>
<p><a href="http://youhide.info" rel="nofollow" target="_blank">youhide.info</a></p>
<p><a href="http://zaxiproxy.com" rel="nofollow" target="_blank">zaxiproxy.com</a></p>
<p><a href="http://zeroproxy.com" rel="nofollow" target="_blank">zeroproxy.com</a></p>
<p><a href="http://zozookey.info" rel="nofollow" target="_blank">zozookey.info</a></p>
<p><a href="http://sharethis.com/item?&wp=2.3.3&amp;publisher=b498ccdc-a5bd-4dc8-8389-eeb87c4becdf&amp;title=Free+Web+Proxy+List&amp;url=http%3A%2F%2Fsalmonsites.com%2F2008%2F09%2F04%2Ffree-web-proxy-list%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://salmonsites.com/2008/09/04/free-web-proxy-list/feed/</wfw:commentRss>
		</item>
		<item>
		<title>mod_rewrite Workaround</title>
		<link>http://salmonsites.com/2008/07/24/mod_rewrite-workaround/</link>
		<comments>http://salmonsites.com/2008/07/24/mod_rewrite-workaround/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 18:01:06 +0000</pubDate>
		<dc:creator>DevMaster</dc:creator>
		
		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[PHP Dev]]></category>

		<guid isPermaLink="false">http://salmonsites.com/2008/07/24/mod_rewrite-workaround/</guid>
		<description><![CDATA[I have managed to work around the issue of not having mod_rewrite on my IIS hosting account. Since I can use by ASP.NET and PHP on a single site, I took advantage of the free UrlRewriter library and web.config settings. It&#8217;s actually pretty cool.&#160; I have a new Health &#38; Fitness Clickbank Mall site create [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "mod_rewrite Workaround", url: "http://salmonsites.com/2008/07/24/mod_rewrite-workaround/" });</script>]]></description>
			<content:encoded><![CDATA[<p>I have managed to work around the issue of not having mod_rewrite on my IIS hosting account. Since I can use by ASP.NET and PHP on a single site, I took advantage of the free UrlRewriter library and web.config settings. It&#8217;s actually pretty cool.&nbsp; I have a new <a href="http://fitness-mall.clickbankunleashed.com/" target="_blank">Health &amp; Fitness Clickbank Mall</a> site create that is all done using PHP, but I use a web.config file along with UrlRewriter to handle correctly rewriting URLs. The funky thing is that all of the URLs look like they are for aspx files, but they are actually all served up by my index.php file.&nbsp; It may not be ideal or pretty, but it sure seems to work!</p>
<p><a href="http://sharethis.com/item?&wp=2.3.3&amp;publisher=b498ccdc-a5bd-4dc8-8389-eeb87c4becdf&amp;title=mod_rewrite+Workaround&amp;url=http%3A%2F%2Fsalmonsites.com%2F2008%2F07%2F24%2Fmod_rewrite-workaround%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://salmonsites.com/2008/07/24/mod_rewrite-workaround/feed/</wfw:commentRss>
		</item>
		<item>
		<title>No mod_rewrite on IIS</title>
		<link>http://salmonsites.com/2008/07/24/no-mod_rewrite-on-iis/</link>
		<comments>http://salmonsites.com/2008/07/24/no-mod_rewrite-on-iis/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 13:22:24 +0000</pubDate>
		<dc:creator>DevMaster</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[PHP Dev]]></category>

		<guid isPermaLink="false">http://salmonsites.com/2008/07/24/no-mod_rewrite-on-iis/</guid>
		<description><![CDATA[Once again I have run smack into the reality that no hosting provider is perfect. While I have been quite happy with my Windows based DailyRazor hosting account I have just discovered an issue that is really bumming me out.&#160; With DailyRazor I can use both PHP and ASP.NET on my sites, which is very [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "No mod_rewrite on IIS", url: "http://salmonsites.com/2008/07/24/no-mod_rewrite-on-iis/" });</script>]]></description>
			<content:encoded><![CDATA[<p>Once again I have run smack into the reality that no hosting provider is perfect. While I have been quite happy with my Windows based DailyRazor hosting account I have just discovered an issue that is really bumming me out.&nbsp; With DailyRazor I can use both PHP and ASP.NET on my sites, which is very cool. I created a new subdomain and developed the site using PHP.&nbsp; I created a .htaccess file and put in my rewrite commands. When I ran it, however, the rewrite wasn&#8217;t working at all. The thing I forgot about is that mod_rewrite is specific to Apache and not PHP.&nbsp; Since my site is running on IIS there is no mod_rewrite.&nbsp; </p>
<p>So, I did some research. I did find an IIS addon product called IIS Mod-Rewrite from MicroNovae that looks promising.&nbsp; I contact DailyRazor support to see if they had anything already installed or suggestions.&nbsp; Unfortunately they weren&#8217;t much help. They said I could buy a license to IIS Mod-Rewrite and they would install it for me (which is certainly a decent option, but I&#8217;m not sure I want to buy the license and risk there being issues on a server I can&#8217;t administer myself).</p>
<p>I am considering another option, but need to really think it through to see if it would actually work.&nbsp; I have some ASP.NET sites that are using a free URL Rewriter product. It works pretty good and does the same basic things that mod_rewrite does.&nbsp; Since I can mix and match PHP and ASP.NET on my sites, I&#8217;m thinking I could use that ASP.NET URL rewriter product (which is configured via web.config) to do what I need.&nbsp; I&#8217;m keeping my fingers crossed!</p>
<p><a href="http://sharethis.com/item?&wp=2.3.3&amp;publisher=b498ccdc-a5bd-4dc8-8389-eeb87c4becdf&amp;title=No+mod_rewrite+on+IIS&amp;url=http%3A%2F%2Fsalmonsites.com%2F2008%2F07%2F24%2Fno-mod_rewrite-on-iis%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://salmonsites.com/2008/07/24/no-mod_rewrite-on-iis/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Visual Studio vs. Eclipse</title>
		<link>http://salmonsites.com/2008/07/09/visual-studio-vs-eclipse/</link>
		<comments>http://salmonsites.com/2008/07/09/visual-studio-vs-eclipse/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 12:00:33 +0000</pubDate>
		<dc:creator>DevMaster</dc:creator>
		
		<category><![CDATA[PHP Dev]]></category>

		<category><![CDATA[Site Development]]></category>

		<guid isPermaLink="false">http://salmonsites.com/2008/07/09/visual-studio-vs-eclipse/</guid>
		<description><![CDATA[It&#8217;s probably not fair to compare Microsoft Visual Studio to Eclipse. Visual Studio, for example, is a full fledged product from Microsoft that is supported and comes with a hefty price tag.&#160; Eclipse, on the other hand, is an open source tool that is support by the community and is free for all to use.&#160; [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Visual Studio vs. Eclipse", url: "http://salmonsites.com/2008/07/09/visual-studio-vs-eclipse/" });</script>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s probably not fair to compare Microsoft Visual Studio to Eclipse. Visual Studio, for example, is a full fledged product from Microsoft that is supported and comes with a hefty price tag.&nbsp; Eclipse, on the other hand, is an open source tool that is support by the community and is free for all to use.&nbsp; The reason I think it&#8217;s fair to do some amount of comparison is because Eclipse gets positioned in the marketplace as a tool that can do all that Visual Studio can. So, they brought this on themselves.</p>
<p>I&#8217;ve been using Visual Studio for over 10 years. It has gone through several upgrades as the Microsoft programming languages and technologies have evolved from Visual Basic and C++ to C# and VB.NET. The tool is extremely stable.&nbsp; I&#8217;m not using the current version - Visual Studio 2008 - and can&#8217;t recall it ever crashing or locking up. While most people think of Visual Studio as only being used for Microsoft programming languages, Visual Studio is an extensible tool. For example, you can do PHP programming in Visual Studio using <a href="http://www.jcxsoftware.com/vs.php" target="_blank">VS.Php</a> from jcxSoftware. Want to do Ruby programming? No problem, check out <a href="http://www.sapphiresteel.com/Ruby-In-Steel-Developer-Overview" target="_blank">Ruby in Steel</a>.&nbsp; In some cases there is an additional cost for the Visual Studio add-on, but in other cases it is free.&nbsp; My point is that you can use a very stable, proven development tool like Visual Studio to do more than just Microsoft development.</p>
<p>My experience with Eclipse is limited compared to Visual Studio. I first started using Eclipse about a year ago when I expanded my horizons to develop with PHP.&nbsp; I considered using VS.Php add-on to Visual Studio but confess that I was cheap and didn&#8217;t want to spend any money at the time since I wasn&#8217;t sure I&#8217;d stick with PHP. After doing a lot of searching and research I decided to go with Eclipse and use a free PHP plugin. Considering everything was free I must say it worked pretty good.&nbsp; The Eclipse workspace was similar in structure to Visual Studio so the learning curve was minimal. The PHP programming was pretty good and included intellisense. There were some quirky things with auto formatting, but overall a good experience. As I started to use it more, however, I began to run into stability issues.&nbsp; If I left Eclipse running for the day it would often end up crashing. I ended up installing the more recent version to see if that would help but it really didn&#8217;t.&nbsp; Different issues, but still not as stable as Visual Studio.</p>
<p>There&#8217;s an old saying - &#8220;You get what you pay for&#8221; - and that holds true for Visual Studio and Eclipse.&nbsp; If you want professional grade development then spend the money and stick with Visual Studio. If you&#8217;re looking for a decent, free development environment then give Eclipse a look.</p>
<p><a href="http://sharethis.com/item?&wp=2.3.3&amp;publisher=b498ccdc-a5bd-4dc8-8389-eeb87c4becdf&amp;title=Visual+Studio+vs.+Eclipse&amp;url=http%3A%2F%2Fsalmonsites.com%2F2008%2F07%2F09%2Fvisual-studio-vs-eclipse%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://salmonsites.com/2008/07/09/visual-studio-vs-eclipse/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Getting mod_rewrite working on PC</title>
		<link>http://salmonsites.com/2008/06/28/getting-mod_rewrite-working-on-pc/</link>
		<comments>http://salmonsites.com/2008/06/28/getting-mod_rewrite-working-on-pc/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 13:45:52 +0000</pubDate>
		<dc:creator>DevMaster</dc:creator>
		
		<category><![CDATA[PHP Dev]]></category>

		<guid isPermaLink="false">http://salmonsites.com/2008/06/28/getting-mod_rewrite-working-on-pc/</guid>
		<description><![CDATA[I have Xamp installed on my local PC. That gives me a working Apache web server that lets me test out my PHP based web sites before I publish them. This has been working great until I needed to utilize mod_rewrite. I had created a subdirectory on my local web server for a new test [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Getting mod_rewrite working on PC", url: "http://salmonsites.com/2008/06/28/getting-mod_rewrite-working-on-pc/" });</script>]]></description>
			<content:encoded><![CDATA[<p>I have Xamp installed on my local PC. That gives me a working Apache web server that lets me test out my PHP based web sites before I publish them. This has been working great until I needed to utilize mod_rewrite. I had created a subdirectory on my local web server for a new test site.&#160; I created a .htaccess file with the necessary rewrite statements but it wasn&#8217;t working.&#160; After some Googling and testing I finally got things working.&#160; Here&#8217;s the steps:</p>
<ol>
<li>Need to modify the httpd.conf file for Apache. Find the line &quot;LoadModule rewrite_module modules/mod_rewrite.so&quot; and uncomment it (remove the # sign at the start of the line) </li>
<li>Because my test site was in a sub-directory I had to change my .htaccess file just a bit from what I&#8217;ve normally had.&#160; The &quot;RewriteBase&quot; line needed to be &quot;RewriteBase /test&quot; (where &quot;test&quot; is the name of my subdirectory). </li>
<li>The final, important step, was that I needed to add a few lines to the httpd.conf file where I had defined my sub directory. </li>
</ol>
<blockquote><p><font color="#000000">&lt;Directory &quot;c:/dev/test&quot;&gt;</font>      <br /><font color="#000000">Options All</font>      <br /><font color="#000000">AllowOverride All</font>      <br /><font color="#000000">&lt;/Directory&gt;</font>      </p>
</blockquote>
<p>Restart Apache and everything worked great!</p>
<p><a href="http://sharethis.com/item?&wp=2.3.3&amp;publisher=b498ccdc-a5bd-4dc8-8389-eeb87c4becdf&amp;title=Getting+mod_rewrite+working+on+PC&amp;url=http%3A%2F%2Fsalmonsites.com%2F2008%2F06%2F28%2Fgetting-mod_rewrite-working-on-pc%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://salmonsites.com/2008/06/28/getting-mod_rewrite-working-on-pc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My New Favorite Web Hosting Company</title>
		<link>http://salmonsites.com/2008/06/09/my-new-favorite-web-hosting-company/</link>
		<comments>http://salmonsites.com/2008/06/09/my-new-favorite-web-hosting-company/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 20:45:57 +0000</pubDate>
		<dc:creator>DevMaster</dc:creator>
		
		<category><![CDATA[web hosting]]></category>

		<guid isPermaLink="false">http://salmonsites.com/2008/06/09/my-new-favorite-web-hosting-company/</guid>
		<description><![CDATA[If you&#8217;ve read my blog before you know that I have gone through quite a few different web hosting providers over the years. It seems that as my web sites expand in sophistication I run up against some limitation with my hosting company.  A few months ago I thought I had found a great [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "My New Favorite Web Hosting Company", url: "http://salmonsites.com/2008/06/09/my-new-favorite-web-hosting-company/" });</script>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve read my blog before you know that I have gone through quite a few different web hosting providers over the years. It seems that as my web sites expand in sophistication I run up against some limitation with my hosting company.  A few months ago I thought I had found a great host with ReliableSite.net, but I was having some issues with sessions being dropped and one of my scheduled jobs not working.  That caused me to once again search for alternatives.</p>
<p>Lucky for me, I&#8217;m getting much better at searching for a hosting company! It didn&#8217;t take me long to find one that looked good and I decided to give it a shot (the 30-day money back guarantee made the decision quite easy). This past weekend I got a new account setup with <a href="http://www.dailyrazor.com/affiliate/idevaffiliate.php?id=2384" title="DailyRazor">DailyRazor</a>.  Yes, I know, that&#8217;s a rather odd name for a hosting company; but the feature set is good and so is the price.  The are currently running a special promotion where they will quadruple the limits for any package.  I went with the .NET Edge package and with the 4x I get 40GB of disk, 100GB bandwidth, 20 Websites hosted, 20 SQL Server DBS, 2GB SQL Disk, etc.  All for only $9.95/month!  That&#8217;s pretty sweet, but as I&#8217;ve learned (time and time again) you don&#8217;t want to get suckered into a provider based on low price.<br />
<br/><br />
<a href="http://www.dailyrazor.com/affiliate/idevaffiliate.php?id=2384_3_1_38"><img src="http://www.dailyrazor.com/affiliate/banners/a_468x60.jpg" border="0"></a><br />
<br/><br />
While I&#8217;ve only been using <a href="http://www.dailyrazor.com/affiliate/idevaffiliate.php?id=2384">DailyRazor </a>for a few days, there are some things that I really like over other hosting I&#8217;ve had.</p>
<ol>
<li>They use the Plesk control panel. It&#8217;s my first time using it, but it&#8217;s easy to navigate and provides a lot of functionality. If I want I can create multiple user accounts and control what each user can administer. I can set limits for each web site also.</li>
<li>Unlimited subdomains, which can be either physically hosted or just map to a subdirectory on your main web site. It&#8217;s nice to have the option. Sometimes you just want a subdomain to be an easy way to get to a directory on your site; but other times you want it to be completely separate from your main site.</li>
<li>Support for both ASP.NET and PHP.  ReliableSite.net has this too, but I really like it and figured I&#8217;d mention it again <img src='http://salmonsites.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Scheduled Task using the Windows Task Scheduler.  Okay, this is very nice and works great. This is basically just like cron on Linux.  On ReliableSite.net they provided a &#8220;web scheduler&#8221; which had some real limitations.  With DailyRazor I can specify if I want the output of the job (i.e., stdout/stderr) to automatically be emailed to me after the job runs. I can have it run any type of executable and specify command line args for it.</li>
</ol>
<p>I&#8217;m sure there are more things I&#8217;ll find that I like over the next few weeks. Hopefully I won&#8217;t run into anything major that I don&#8217;t like!</p>
<p><a href="http://sharethis.com/item?&wp=2.3.3&amp;publisher=b498ccdc-a5bd-4dc8-8389-eeb87c4becdf&amp;title=My+New+Favorite+Web+Hosting+Company&amp;url=http%3A%2F%2Fsalmonsites.com%2F2008%2F06%2F09%2Fmy-new-favorite-web-hosting-company%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://salmonsites.com/2008/06/09/my-new-favorite-web-hosting-company/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
