<?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>gljakal.com - blog &#187; web design</title>
	<atom:link href="http://www.gljakal.com/blog/category/web-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gljakal.com/blog</link>
	<description></description>
	<lastBuildDate>Sat, 14 Nov 2009 17:27:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Getting rid of the Naming container in ASP.Net 2.0 &#8211; update</title>
		<link>http://www.gljakal.com/blog/2009/10/06/getting-rid-of-the-naming-container-in-asp-net-2-0-update/</link>
		<comments>http://www.gljakal.com/blog/2009/10/06/getting-rid-of-the-naming-container-in-asp-net-2-0-update/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 17:33:44 +0000</pubDate>
		<dc:creator>glJakaL</dc:creator>
				<category><![CDATA[Tips and tricks]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.gljakal.com/blog/?p=59</guid>
		<description><![CDATA[In my previous article, Getting rid of the Naming Container in asp.net 2.0, I explained a method to override the extended naming functionality provided by ASP.net in order to create client-side controls with better IDs.
I was however informed in the comments that by overriding the NamingContainer property the control loses the ability to read its [...]]]></description>
			<content:encoded><![CDATA[<p>In my previous article, <a href="http://www.gljakal.com/blog/2007/09/12/getting-rid-of-the-naming-container-in-aspnet-20/">Getting rid of the Naming Container in asp.net 2.0</a>, I explained a method to override the extended naming functionality provided by ASP.net in order to create client-side controls with better IDs.</p>
<p>I was however informed in the comments that by overriding the NamingContainer property the control loses the ability to read its value from the PostBack data.</p>
<p>Since the controls I developed were not meant to to be used in a postback scenario, this wasn’t a big problem for me.</p>
<p>Fast-forward a couple of years and here I am, wondering why post back does not work in one of my projects <img src='http://www.gljakal.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Anyway, I looked at the link provided by Alex, where <a href="http://www.west-wind.com/WebLog/ShowPost.aspx?id=4605">Rick Strahl talks about overriding the <code>ClientId</code> and the <code>UniqueId</code> properties</a> instead of <code>NamingContainer</code>.</p>
<p>In a standard web control, the two properties <code>ClientID</code> and <code>UniqueID</code> are mapped, respectively, to the <code>id</code> and <code>name</code> properties of the HTML control generated. </p>
<p>Since most (all? ) JS frameworks use the <code>id</code> property to access the varius HTML elements and the PostBack mechanism uses the <code>name</code> property, I think the “best of both worlds” solution is to only override the ClientId:</p>
</p>
<p>  <pre><pre class="csharpcode">&lt;p&gt;&lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;class&lt;/span&gt; NiceTextBox : System.Web.UI.WebControls.TextBox
{
&nbsp;&nbsp;&nbsp;&nbsp;&lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;bool&lt;/span&gt; UseNamingContainer { get; set; }
&lt;/p&gt;&lt;p&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;override&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;string&lt;/span&gt; ClientID
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span class=&quot;kwrd&quot;&gt;if&lt;/span&gt; (&lt;span class=&quot;kwrd&quot;&gt;this&lt;/span&gt;.UseNamingContainer)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;base&lt;/span&gt;.ClientID;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span class=&quot;kwrd&quot;&gt;else&lt;/span&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;this&lt;/span&gt;.ID;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
}
&lt;/p&gt;</pre></pre></p>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>Now our NiceTextBox works even during post-back scenarios <img src='http://www.gljakal.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fwww.gljakal.com%2Fblog%2F2009%2F10%2F06%2Fgetting-rid-of-the-naming-container-in-asp-net-2-0-update%2F';
  addthis_title  = 'Getting+rid+of+the+Naming+container+in+ASP.Net+2.0+%26%238211%3B+update';
  addthis_pub    = 'gljakal';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://www.gljakal.com/blog/2009/10/06/getting-rid-of-the-naming-container-in-asp-net-2-0-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting rid of the Naming Container in asp.net 2.0</title>
		<link>http://www.gljakal.com/blog/2007/09/12/getting-rid-of-the-naming-container-in-aspnet-20/</link>
		<comments>http://www.gljakal.com/blog/2007/09/12/getting-rid-of-the-naming-container-in-aspnet-20/#comments</comments>
		<pubDate>Wed, 12 Sep 2007 13:46:33 +0000</pubDate>
		<dc:creator>glJakaL</dc:creator>
				<category><![CDATA[asp.net]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://gljakal.com/blog/2007/09/12/getting-rid-of-the-naming-container-in-aspnet-20/</guid>
		<description><![CDATA[Lately I&#8217;ve been playing around with asp.net 2.0.
One of the new &#34;features&#34; of asp.net 2 is the introduction of Naming containers. 
While using naming containers can be really useful when using databound controls and standard asp.net coding, they can be a real pain to work with when making extensive use of javascript.
This is because a [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been playing around with asp.net 2.0.<br />
One of the new &quot;features&quot; of asp.net 2 is the introduction of <a title="Understanding the naming container hierarchy of ASP.NET databound controls" href="http://aspadvice.com/blogs/joteke/archive/2007/02/25/Understanding-the-naming-container-hierarchy-of-ASP.NET-databound-controls.aspx">Naming containers</a>. <br />
While using naming containers can be really useful when using databound controls and standard asp.net coding, they can be a real pain to work with when making extensive use of javascript.<br />
This is because a control declared as<br />
<pre><pre>
&lt;asp:TextBox ID=”TextBox1” runat=”server” /&gt;
</pre></pre><br />
will be rendered as<br />
<pre><pre>
&lt;input name=”ctl00$ContentPlaceHolder1$TextBox1” type=”text”
&nbsp;&nbsp;&nbsp;&nbsp;id=”ctl00_ContentPlaceHolder1_TextBox1” /&gt;
</pre></pre><br />
on the client side, thus breaking any script referencing <span class="code">TextBox1</span> with, for example, <span class="code">getElementById(&#8217;TextBox1&#8242;)</span>.<br />
This behavior is built inside asp.net and is triggered not only when using databoud controls (where it would be necessary to prevent having multiple controls with the same name, for example inside a datagrid), but it is also triggered when using <a href="http://msdn2.microsoft.com/en-us/library/wtxbf3hh.aspx">Master Pages</a>, where having multiple controls with the same name is almost impossible.<br />
<strong>So, how do we code around it?</strong></p>
<h3>The client-side hack</h3>
<p>Luke Foust, in his article <a href="http://blog.spontaneouspublicity.com/2007/08/20/using-jquery-to-make-aspnet-play-nice-with-aspnet/">Using JQuery to Make Asp.Net Play Nice with Asp.Net</a>, explains a couple of client-side methods to let your javascripts select the right element in this situation. I recommend you to read it, because it contains some nice ideas and it also shows off some of the power of <a href="http://www.jquery.com">JQuery</a>.<br />
While these methods will work for most projects, they still present a couple of issues:</p>
<ul>
<li>Generally quite <strong>hard to mantain</strong>, especially the first hack</li>
<li><strong>Code bloat.</strong> While bandwidth is costantly becoming less of an issue, the generated page will have elements with horribly long declarations</li>
<li>It <strong>breaks existing scripts</strong>. You&#8217;ll have to re-check and re-code most of the scripts that should already work</li>
<li><strong>Extra workload on the client.</strong> Todays PCs are fast, so this is less of an issue, however it is something you should consider if you have a lot of asp.net controls in your page.</li>
</ul>
<h3>The Solution</h3>
<p>Let&#8217;s face it: the problem is really on the server, not on the client. Asp.net should not generate those horribly long IDs in the first place, <em>unless we want to</em>. So the best solution is a <strong>server-side hack</strong>.<br />
How does asp.net know whether or not it should generate a unique id for our controls?<br />
Every WebControl in asp.net exposes a property called (I&#8217;m sure you guessed it) <em>NamingContainer</em>, which tells asp.net what&#8217;s the parent control for our textboxes, labels and so on. All we have to do in our code is create a new class that will inherit the control we want to &quot;sanitize&quot; and hide that property from asp.net. Better said in code than in words:<br />
<pre><pre>
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace wtd
{

&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;
&nbsp;&nbsp;&nbsp;&nbsp;/// A TextBox control without ugly IDs
&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;/summary&gt;
&nbsp;&nbsp;&nbsp;&nbsp;public class TextBox : System.Web.UI.WebControls.TextBox
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public override Control NamingContainer
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return null; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}

}
</pre></pre><br />
Then, in our pages, all we have to do is register our new set of controls, like this:<br />
<pre><pre>
&lt;%@ Register TagPrefix=&quot;wtd&quot; Assembly=&quot;app_code&quot;
&nbsp;&nbsp;&nbsp;&nbsp; Namespace=&quot;wtd&quot; %&gt;
</pre></pre><br />
and replace every instance of the default asp controls with our own set of controls (a simple find&amp;replace will do the trick), so<br />
<pre><pre>
&lt;asp:TextBox ID=&quot;TextBox1&quot; runat=&quot;server&quot;&gt;&lt;/asp:TextBox&gt;
</pre></pre><br />
becomes:<br />
<pre><pre>
&lt;wtd:TextBox ID=&quot;TextBox1&quot; runat=&quot;server&quot;&gt;&lt;/wtd:TextBox&gt;
</pre></pre><br />
And that&#8217;s it! Our textbox will now be rendered like this:<br />
<pre><pre>
&lt;input name=”TextBox1” type=”text” id=”TextBox1” /&gt;
</pre></pre><br />
Not only this method won&#8217;t break your existing javascript, it also works nicely with your existing server-side code <img src='http://www.gljakal.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><b style="color:red;">Update</b></p>
<p>
As pointed out by some of you in the comments, this method <b>does not work</b> in a traditional post-back scenario. <a href="http://www.gljakal.com/blog/2009/10/06/getting-rid-of-the-naming-container-in-asp-net-2-0-update/">See my new article for a possible solution to this problem</a>.
</p>
<p></p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fwww.gljakal.com%2Fblog%2F2007%2F09%2F12%2Fgetting-rid-of-the-naming-container-in-aspnet-20%2F';
  addthis_title  = 'Getting+rid+of+the+Naming+Container+in+asp.net+2.0';
  addthis_pub    = 'gljakal';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://www.gljakal.com/blog/2007/09/12/getting-rid-of-the-naming-container-in-aspnet-20/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Unknown runtime error in Internet explorer?</title>
		<link>http://www.gljakal.com/blog/2006/02/19/unknown-runtime-error-in-internet-explorer/</link>
		<comments>http://www.gljakal.com/blog/2006/02/19/unknown-runtime-error-in-internet-explorer/#comments</comments>
		<pubDate>Sun, 19 Feb 2006 18:07:05 +0000</pubDate>
		<dc:creator>glJakaL</dc:creator>
				<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://gljakal.com/blog/2006/02/19/unknown-runtime-error-in-internet-explorer/</guid>
		<description><![CDATA[If you&#8217;re getting an &#8220;unknown runtime error&#8221; in internet explorer while using  the javascript method object.innerHTML=&#8221;&#8230;some html&#8221;, here is a hint to put you on the   right track: you&#8217;re probabily trying to put a block-level element inside an inline element.
For example, given the html code:

&#60;p id=&#34;the_container&#34;&#62;Hello&#60;/p&#62;

&#60;script type=&#34;text/javascript&#34;&#62;
&#60;!--
var obj=document.getElementById(&#039;the_container&#039;);
try
{
obj.innerHTML=&#039;&#60;ul&#62;&#60;li&#62;List item 1&#60;/li&#62;&#60;li&#62;List item 2&#60;/li&#62;&#60;/ul&#62;&#039;; [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re getting an &#8220;unknown runtime error&#8221; in internet explorer while using  the javascript method object.innerHTML=&#8221;&#8230;some html&#8221;, here is a hint to put you on the   right track: you&#8217;re probabily trying to put a block-level element inside an inline element.<br />
For example, given the html code:<br />
<pre><pre>
&lt;p id=&quot;the_container&quot;&gt;Hello&lt;/p&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
var obj=document.getElementById(&#039;the_container&#039;);
try
{
obj.innerHTML=&#039;&lt;ul&gt;&lt;li&gt;List item 1&lt;/li&gt;&lt;li&gt;List item 2&lt;/li&gt;&lt;/ul&gt;&#039;; 
}
catch(ex)
{
alert(ex.message);
}
//--&gt;
&lt;/script&gt;</pre></pre><br />
In  internet explorer, a dialog will pop up complaining about an &#8220;unknown run-time error&#8221; (Thanks Microsoft for your helpful error messages). The solution (if you really can&#8217;t force your users to use Firefox <img src='http://www.gljakal.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) is to sobstitute the   parent element with a block-level one, such as a DIV:<br />
<pre><pre>
&lt;div id=&quot;the_container2&quot;&gt;Hello&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
var obj=document.getElementById(&#039;the_container2&#039;);
try
{
obj.innerHTML=&#039;&lt;ul&gt;&lt;li&gt;List item 1&lt;/li&gt;&lt;li&gt;List item 2&lt;/li&gt;&lt;/ul&gt;&#039;;
}
catch(ex)
{
alert(ex.message); // never displayed
}
//--&gt;
&lt;/script&gt;</pre></pre></p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fwww.gljakal.com%2Fblog%2F2006%2F02%2F19%2Funknown-runtime-error-in-internet-explorer%2F';
  addthis_title  = 'Unknown+runtime+error+in+Internet+explorer%3F';
  addthis_pub    = 'gljakal';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://www.gljakal.com/blog/2006/02/19/unknown-runtime-error-in-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>61</slash:comments>
		</item>
		<item>
		<title>How to choose your hosting plan</title>
		<link>http://www.gljakal.com/blog/2006/02/09/how-to-choose-your-hosting-plan/</link>
		<comments>http://www.gljakal.com/blog/2006/02/09/how-to-choose-your-hosting-plan/#comments</comments>
		<pubDate>Thu, 09 Feb 2006 10:23:11 +0000</pubDate>
		<dc:creator>glJakaL</dc:creator>
				<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://gljakal.com/blog/2006/02/09/how-to-choose-your-hosting-plan/</guid>
		<description><![CDATA[Choosing a good web hosting provider should always involve a bit of research (unless you like to throw your money out of the window, in which case you could always give some to me :) ). There are a lot of parameters you should check before selling your soul choosing your hosting company. Here are some of them...]]></description>
			<content:encoded><![CDATA[<p>Choosing a good web hosting provider should always involve a bit of research (unless you like to throw your money out of the window, in which case you could always <a title="Donate :)" href="http://www.gljakal.com/donate.php">give some to me</a> <img src='http://www.gljakal.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ). There are a lot of parameters you should check before <strike>selling your soul</strike> choosing your hosting company. Here are some of them&#8230;</p>
<ul>
<li><strong>The server&#8217;s operating system</strong> That&#8217;s an easy choice, choose a Windows-based server if you intend to build your website using ASP or ASP.net, or choose a Linux for everything else.</li>
<li><span style="font-weight: bold">The scripting language support</span>    That&#8217;s another easy one. What do you want to use for your website? ASP? ASP.net? <span id="misp_compose_1" class="hm">php</span>? <span id="misp_compose_2" class="hm">perl</span>? <a title="Ruby on rails" href="http://www.rubyonrails.org/">Ruby on rails</a>? Do you need a particular script? Choose the hosting companies that give you what you want, and ditch the others.</li>
<li><strong>The monthly bandwidth</strong> This is probably the most undervalued feature when choosing a web hosting plan. The term bandwidth refers to the amount of data your account can transfer in a month. That means that, for example, if your site consist of a single 100Kilobytes page and it gets viewed 100.000 times in a month, your account is consuming 100Kx100.000=10.000.000K, which is more or less 9.7 gigabytes in a month. It all depends on how many visitors your site gets and on the type of content you intend to publish. My advice is to stay away from companies claiming to give you &#8220;unlimited bandwidth&#8221;: there is no such thing as unlimited bandwidth, and it will often mean that if your website gets too many visitors, it will get randomly suspended or will get as slow as hell.</li>
<li><strong>The disk space </strong>explains itself: How much space does your site need? how much do you think it will grow in the next two years? More space is better, but in most cases you won&#8217;t even need all the space offered by the hosting plan.</li>
<li><span style="font-weight: bold">The domain name </span>Of course you will need a domain name for your website. Does your hosting plan give you a free domain name? If yes, who will be the owner of the domain name? You or them? Keep in mind that you can always register a .com with <a target="_blank" title="godaddy domain registration" href="http://www.godaddy.com"><span id="misp_compose_3" class="hm">godaddy</span></a> for just $9/year.</li>
<li><span style="font-weight: bold">Database resources </span>This single parameter can mean everything or nothing, depending on how your site is done. Do you need to use a blog? a <span id="misp_compose_4" class="hm">CMS</span>? do you use any script that needs database access? Unlimited databases are, of course, better than being limited to just one or two, but with a little of manual labor, you can always use the same database with more scripts.</li>
<li><span style="font-weight: bold">E-mail </span>Any serious hosting provider will give your account some email capability. How many addresses do you need? Do they give you <span id="misp_compose_5" class="hm">autoforwarders</span>, mailing lists, <span id="misp_compose_6" class="hm">autoresponders</span>, and a catch-all address?</li>
<li><strong><span id="misp_compose_7" class="hm">Uptime</span> </strong>is another very important parameter. It indicates the probability a visitor has to find your site actually running. 99% <span id="misp_compose_8" class="hm">uptime</span> is simply not enough for any serious need, because it means that statistically you&#8217;ll lose a visitor every 100. Keeping in mind that 100% <span id="misp_compose_9" class="hm">uptime</span> is impossible, choose a company that gives you 99.9% (lose a visitor every 1000) <span id="misp_compose_10" class="hm">uptime</span> or more.</li>
<li><strong>Speed </strong>You should always check the host&#8217;s speed (with a fast connection of course). How fast is the the hosting company&#8217;s website? How fast are their customers&#8217; websites?</li>
<li><strong>Raw log files</strong>   Does your hosting plan give you access to raw log files? Raw log files are text files monitoring every single access to your website, and are very important for any kind of statistical analysis you want to do, in order to know better who your visitors are and what are they looking for.</li>
<li><strong>The company&#8217;s reputation </strong>You have to choose a company you can trust. Once you have narrowed down the few companies that give you what you need, you should search for any complaints you can find on google. Be careful to weight them right however, there&#8217;s quite some difference between a forum user saying that the host xxx sucks and someone who took the time to create a website named &#8220;<span id="misp_compose_13" class="hm">hostxxxsucks</span>.com&#8221; to tell his horror story with that company. If you&#8217;re still in doubt, you can always ask to the people at <a title="web hosting talk" href="http://www.webhostingtalk.com/"><span id="misp_compose_14" class="hm">webhostingtalk</span>.com</a>.</li>
</ul>
<p>My search for a good web hosting company finally ended when I found <a href="http://www.lunarpages.com/id/blend3" >LunarPages</a>, wich is now giving away the basic plan (400GB bandwidth, 5GB HDD space, unlimited mysql databases, unlimited subdomains) for $6.95/month.<br />
<span id="misp_compose_15" class="hm">Ok</span>, that&#8217;s it for this entry. Please leave a comment if you have anything to add, or just to say hi <img src='http://www.gljakal.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , I&#8217;ll be sure to read them all.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fwww.gljakal.com%2Fblog%2F2006%2F02%2F09%2Fhow-to-choose-your-hosting-plan%2F';
  addthis_title  = 'How+to+choose+your+hosting+plan';
  addthis_pub    = 'gljakal';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://www.gljakal.com/blog/2006/02/09/how-to-choose-your-hosting-plan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
