<?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>the jackol's den</title>
	<atom:link href="http://www.thejackol.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thejackol.com</link>
	<description>01100010 01101100 01100101 01101000</description>
	<lastBuildDate>Tue, 05 Jan 2010 09:54:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Take Your HTML Tables to a New Level with JavaScript Frameworks</title>
		<link>http://www.thejackol.com/2010/01/05/take-your-html-tables-to-a-new-level-with-javascript-frameworks/</link>
		<comments>http://www.thejackol.com/2010/01/05/take-your-html-tables-to-a-new-level-with-javascript-frameworks/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 09:54:31 +0000</pubDate>
		<dc:creator>Mikhail Esteves</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://www.thejackol.com/?p=645</guid>
		<description><![CDATA[	
		With basic HTML tables, the structure and the way the table are presented inherits the native html style. And if you like to change it then you need to change the underlying HTML code or spend time in adding attributes to all tables tags, in order to style it with CSS . But what if [...]]]></description>
			<content:encoded><![CDATA[	<blockquote>
		<p>With basic <span class="caps">HTML</span> tables, the structure and the way the table are presented inherits the native html style. And if you like to change it then you need to change the underlying <span class="caps">HTML</span> code or spend time in adding attributes to all tables tags, in order to style it with <span class="caps">CSS</span> . But what if you want to make the tables more interesting, more dynamic, more visual appealing without spending so much time. Yes you can certainly use JavaScript for this, but coding it from scratch will be time consuming and it’s not worth. But JS libraries/frameworks will allow you to add a range of dynamic behavior to your tables and manipulate it for better presentation on a webpage without spending much time. We decided to list a few for the benefit of those who intend to use tables with JavaScript(JS). Most of these are for the popular jQuery, MooTools and Prototype/script.aculo.us JS frameworks. Since most of the JS frameworks mentioned below are plug-ins that work on top of existing JS frameworks, it is recommended that you take a look at those base frameworks first. But there are a few others that do not require an existing JS frameworks.</p>
	</blockquote>

	<p><a href="http://www.thepixelart.com/take-your-html-tables-to-a-new-level-with-javascript-frameworks/">Read more</a></p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.thejackol.com%2F2010%2F01%2F05%2Ftake-your-html-tables-to-a-new-level-with-javascript-frameworks%2F&amp;linkname=Take%20Your%20HTML%20Tables%20to%20a%20New%20Level%20with%20JavaScript%20Frameworks" target="_blank"><img src="http://www.thejackol.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.thejackol.com/2010/01/05/take-your-html-tables-to-a-new-level-with-javascript-frameworks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimizing HTML</title>
		<link>http://www.thejackol.com/2010/01/04/optimizing-html/</link>
		<comments>http://www.thejackol.com/2010/01/04/optimizing-html/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 04:47:08 +0000</pubDate>
		<dc:creator>Mikhail Esteves</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.thejackol.com/?p=643</guid>
		<description><![CDATA[	
		Client-side optimization is getting a lot of attention lately, but some of its basic aspects seem to go unnoticed. If you look carefully at pages on the web (even those that are supposed to be highly optimized), it&#8217;s easy to spot a good amount of redundancies, and inefficient or archaic structures in their markup. All [...]]]></description>
			<content:encoded><![CDATA[	<blockquote>
		<p>Client-side optimization is getting a lot of attention lately, but some of its basic aspects seem to go unnoticed. If you look carefully at pages on the web (even those that are supposed to be highly optimized), it&#8217;s easy to spot a good amount of redundancies, and inefficient or archaic structures in their markup. All this baggage adds extra weight to pages that are supposed to be as light as possible.</p>
		<p>The reason to keep documents clean is not so much about faster load times, as it is about having a solid and robust foundation to build upon. Clean markup means better accessibility, easier maintenance, and good search engine visibility. Smaller size is just a property of clean documents, and another reason to keep them this way.</p>
		<p>In this post, we&#8217;ll take a look at <span class="caps">HTML</span> optimization: removing some of the common markup smells; reducing document size by getting rid of redundant structures, and employing minification techniques. We&#8217;ll look at currently available minification tools, and analyze what they do wrong and right. We&#8217;ll also talk about what can be done in a future.</p>
	</blockquote>

	<p><a href="http://perfectionkills.com/optimizing-html/">Read more</a></p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.thejackol.com%2F2010%2F01%2F04%2Foptimizing-html%2F&amp;linkname=Optimizing%20HTML" target="_blank"><img src="http://www.thejackol.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.thejackol.com/2010/01/04/optimizing-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How I Hire Programmers</title>
		<link>http://www.thejackol.com/2009/12/05/how-i-hire-programmers/</link>
		<comments>http://www.thejackol.com/2009/12/05/how-i-hire-programmers/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 08:09:34 +0000</pubDate>
		<dc:creator>Mikhail Esteves</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.thejackol.com/?p=641</guid>
		<description><![CDATA[	
		There are three questions you have when you&#8217;re hiring a programmer (or anyone, for that matter): Are they smart? Can they get stuff done? Can you work with them? Someone who&#8217;s smart but doesn&#8217;t get stuff done should be your friend, not your employee. You can talk your problems over with them while they procrastinate [...]]]></description>
			<content:encoded><![CDATA[	<blockquote>
		<p>There are three questions you have when you&#8217;re hiring a programmer (or anyone, for that matter): Are they smart? Can they get stuff done? Can you work with them? Someone who&#8217;s smart but doesn&#8217;t get stuff done should be your friend, not your employee. You can talk your problems over with them while they procrastinate on their actual job. Someone who gets stuff done but isn&#8217;t smart is inefficient: non-smart people get stuff done by doing it the hard way and working with them is slow and frustrating. Someone you can&#8217;t work with, you can&#8217;t work with.</p>
		<p>The traditional programmer hiring process consists of: a) reading a resume, b) asking some hard questions on the phone, and c) giving them a programming problem in person. I think this is a terrible system for hiring people. You learn very little from a resume and people get real nervous when you ask them tough questions in an interview. Programming isn&#8217;t typically a job done under pressure, so seeing how people perform when nervous is pretty useless. And the interview questions usually asked seem chosen just to be cruel. I think I&#8217;m a pretty good programmer, but I&#8217;ve never passed one of these interviews and I doubt I ever could.</p>
	</blockquote>

	<p><a href="http://www.aaronsw.com/weblog/hiring">Read more</a></p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.thejackol.com%2F2009%2F12%2F05%2Fhow-i-hire-programmers%2F&amp;linkname=How%20I%20Hire%20Programmers" target="_blank"><img src="http://www.thejackol.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.thejackol.com/2009/12/05/how-i-hire-programmers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Frequently Forgotten Fundamental Facts about Software Engineering</title>
		<link>http://www.thejackol.com/2009/12/03/frequently-forgotten-fundamental-facts-about-software-engineering/</link>
		<comments>http://www.thejackol.com/2009/12/03/frequently-forgotten-fundamental-facts-about-software-engineering/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 15:33:54 +0000</pubDate>
		<dc:creator>Mikhail Esteves</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.thejackol.com/?p=639</guid>
		<description><![CDATA[	
		This month&#8217;s column is simply a collection of what I consider to be facts &#8211; truths, if you will &#8211; about software engineering. I&#8217;m presenting this software engineering laundry list because far too many people who call themselves software engineers, or computer scientists, or programmers, or whatever nom du jour you prefer, either aren&#8217;t familiar [...]]]></description>
			<content:encoded><![CDATA[	<blockquote>
		<p>This month&#8217;s column is simply a collection of what I consider to be facts &#8211; truths, if you will &#8211; about software engineering. I&#8217;m presenting this software engineering laundry list because far too many people who call themselves software engineers, or computer scientists, or programmers, or whatever nom du jour you prefer, either aren&#8217;t familiar with these facts or have forgotten them.</p>
		<p>I don&#8217;t expect you to agree with all these facts; some of them might even upset you. Great! Then we can begin a dialog about which facts really are facts and which are merely figments of my vivid loyal opposition imagination! Enough preliminaries. Here are the most frequently forgotten fundamental facts about software engineering. Some are of vital importance &#8211; we forget them at considerable risk.</p>
	</blockquote>

	<p><a href="http://www.computer.org/portal/web/buildyourcareer/fa035?utm_source=bronto&#38;utm_medium=email&#38;utm_term=Forgotten+Facts+About+Software+Engineering&#38;utm_content=andrew%40badera.us&#38;utm_campaign=BYC-Issue+38-December+3">Read more</a></p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.thejackol.com%2F2009%2F12%2F03%2Ffrequently-forgotten-fundamental-facts-about-software-engineering%2F&amp;linkname=Frequently%20Forgotten%20Fundamental%20Facts%20about%20Software%20Engineering" target="_blank"><img src="http://www.thejackol.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.thejackol.com/2009/12/03/frequently-forgotten-fundamental-facts-about-software-engineering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Mystery Of The CSS Float Property</title>
		<link>http://www.thejackol.com/2009/10/20/the-mystery-of-the-css-float-property/</link>
		<comments>http://www.thejackol.com/2009/10/20/the-mystery-of-the-css-float-property/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 13:44:32 +0000</pubDate>
		<dc:creator>Mikhail Esteves</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.thejackol.com/?p=636</guid>
		<description><![CDATA[	
		Years ago, when developers first started to make the transition to HTML layouts without tables, one CSS property that suddenly took on a very important role was the float property. The reason that the float property became so common was that, by default, block-level elements will not line up beside one another in a column-based [...]]]></description>
			<content:encoded><![CDATA[	<blockquote>
		<p>Years ago, when developers first started to make the transition to <span class="caps">HTML</span> layouts without tables, one <span class="caps">CSS</span> property that suddenly took on a very important role was the float property. The reason that the float property became so common was that, by default, block-level elements will not line up beside one another in a column-based format. Since columns are necessary in virtually every <span class="caps">CSS</span> layout, this property started to get used &#8211; and even overused &#8211; prolifically.</p>
		<p>The <span class="caps">CSS</span> float property allows a developer to incorporate table-like columns in an <span class="caps">HTML</span> layout without the use of tables. If it were not for the <span class="caps">CSS</span> float property, <span class="caps">CSS</span> layouts would not be possible except using absolute and relative positioning &#8211; which would be messy and would make the layout unmaintainable.</p>
	</blockquote>

	<p><a href="http://www.smashingmagazine.com/2009/10/19/the-mystery-of-css-float-property/">Read more</a></p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.thejackol.com%2F2009%2F10%2F20%2Fthe-mystery-of-the-css-float-property%2F&amp;linkname=The%20Mystery%20Of%20The%20CSS%20Float%20Property" target="_blank"><img src="http://www.thejackol.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.thejackol.com/2009/10/20/the-mystery-of-the-css-float-property/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prevent One Click Attacks by setting ViewStateUserKey in ASP.NET applications</title>
		<link>http://www.thejackol.com/2009/09/14/prevent-one-click-attacks-by-setting-viewstateuserkey-in-asp-net-applications/</link>
		<comments>http://www.thejackol.com/2009/09/14/prevent-one-click-attacks-by-setting-viewstateuserkey-in-asp-net-applications/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 20:11:08 +0000</pubDate>
		<dc:creator>Mikhail Esteves</dc:creator>
				<category><![CDATA[C#/.NET]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://www.thejackol.com/?p=633</guid>
		<description><![CDATA[	Here&#8217;s an easy way to avoid One Click Attacks in ASP.NET applications. If you have a Base class that all your ASP.NET pages derive from, override the OnInit function. For example:

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);

    if (User.Identity.IsAuthenticated)
        ViewStateUserKey = User.Identity.Name;
}


	If you [...]]]></description>
			<content:encoded><![CDATA[	<p>Here&#8217;s an easy way to avoid <a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery">One Click Attacks</a> in <span class="caps">ASP</span>.<span class="caps">NET</span> applications. If you have a Base class that all your <span class="caps">ASP</span>.<span class="caps">NET</span> pages derive from, override the <code>OnInit</code> function. For example:</p>

<pre><code>protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
</code>
<code>    if (User.Identity.IsAuthenticated)
        ViewStateUserKey = User.Identity.Name;
}
</code></pre>

	<p>If you don&#8217;t have a base class defined, you would have to put the above code in every <span class="caps">ASP</span>.<span class="caps">NET</span> page.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.thejackol.com%2F2009%2F09%2F14%2Fprevent-one-click-attacks-by-setting-viewstateuserkey-in-asp-net-applications%2F&amp;linkname=Prevent%20One%20Click%20Attacks%20by%20setting%20ViewStateUserKey%20in%20ASP.NET%20applications" target="_blank"><img src="http://www.thejackol.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.thejackol.com/2009/09/14/prevent-one-click-attacks-by-setting-viewstateuserkey-in-asp-net-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing BugZilla 3.4.1 on Dreamhost</title>
		<link>http://www.thejackol.com/2009/08/24/installing-bugzilla-3-4-1-on-dreamhost/</link>
		<comments>http://www.thejackol.com/2009/08/24/installing-bugzilla-3-4-1-on-dreamhost/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 14:17:18 +0000</pubDate>
		<dc:creator>Mikhail Esteves</dc:creator>
				<category><![CDATA[LAMP]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[bugzilla]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://www.thejackol.com/?p=630</guid>
		<description><![CDATA[	Here&#8217;s a quick guide on installing Bugzilla 3.4.1 on Dreamhost.

	Fire up a shell and follow these steps (these command are from http://wiki.dreamhost.com/Bugzilla) in the directory of the domain you want to install Bugzilla in.

mkdir bugs
cd bugs
wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-STABLE.tar.gz
tar zxf bugzilla-STABLE.tar.gz
rm bugzilla-STABLE.tar.gz
mv bugzilla*/* .


	Next, follow setups 6, 7, 8 and 9 from the Bugzilla Dreamhost wiki.

	Now you [...]]]></description>
			<content:encoded><![CDATA[	<p>Here&#8217;s a quick guide on installing Bugzilla 3.4.1 on Dreamhost.</p>

	<p>Fire up a shell and follow these steps (these command are from <a href="http://wiki.dreamhost.com/Bugzilla">http://wiki.dreamhost.com/Bugzilla</a>) in the directory of the domain you want to install Bugzilla in.</p>

<pre><code>mkdir bugs
cd bugs
wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-STABLE.tar.gz
tar zxf bugzilla-STABLE.tar.gz
rm bugzilla-STABLE.tar.gz
mv bugzilla*/* .
</code></pre>

	<p>Next, follow setups 6, 7, 8 and 9 from the <a href="http://wiki.dreamhost.com/Bugzilla">Bugzilla Dreamhost wiki</a>.</p>

	<p>Now you will need to manually install <code>Module::Build</code> and <code>DateTime::Locale</code> for Bugzilla to work. To do this, first get the latest <span class="caps">CPAN</span> download links for the modules.</p>

	<p>For Module::Build, you&#8217;ll find the download link here: <a href="http://search.cpan.org/~kwilliams/Module-Build/">http://search.cpan.org/~kwilliams/Module-Build/</a><br />
For DateTime::Locale, you&#8217;ll find the download at: <a href="http://search.cpan.org/~drolsky/DateTime-Locale-0.43/">http://search.cpan.org/~drolsky/DateTime-Locale-0.43/</a></p>

	<p>I&#8217;ve used the latest available builds at the time of this writing for the example below. Next, follow these steps in the Bugzilla installation directory:</p>

<pre><code>mkdir tmp
cd tmp
PERL5LIB=/full-path-to-bugzilla-install-dir/lib
export PERL5LIB
wget http://search.cpan.org/CPAN/authors/id/K/KW/KWILLIAMS/Module-Build-0.31.tar.gz
tar xzf Module-Build-0.31.tar.gz
cd Module-Build-0.31
perl Makefile.pl
make
make test
make install
cd ..
rm -rf Module-Build*
</code>
<code># To install DateTime::Locale
wget http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/DateTime-Locale-0.43.tar.gz
tar zxf DateTime-Locale-0.43.tar.gz
cd DateTime-Locale-0.43
perl Makefile.pl
make
make test
make install
cd ../..
rm -rf tmp
</code></pre>

	<p>Re-run ./checksetup.pl and then fix permissions as in the Dreamhost Bugzilla wiki page:</p>

<pre><code>for i in docs graphs images js skins; do find $i -type d -exec chmod o+rx {} \; ; done
for i in jpg gif css js png html rdf xul; do find . -name \*.$i -exec chmod o+r {} \; ; done
find . -name .htaccess -exec chmod o+r {} \;
chmod o+x . data data/webdot
</code></pre>

	<p>You should now have a working Bugzilla installation at yourdomain.com/bugs.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.thejackol.com%2F2009%2F08%2F24%2Finstalling-bugzilla-3-4-1-on-dreamhost%2F&amp;linkname=Installing%20BugZilla%203.4.1%20on%20Dreamhost" target="_blank"><img src="http://www.thejackol.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.thejackol.com/2009/08/24/installing-bugzilla-3-4-1-on-dreamhost/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Encrypt your config please&#8230;</title>
		<link>http://www.thejackol.com/2009/07/23/encrypt-your-config-please/</link>
		<comments>http://www.thejackol.com/2009/07/23/encrypt-your-config-please/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 07:34:26 +0000</pubDate>
		<dc:creator>Raghavendra K</dc:creator>
				<category><![CDATA[C#/.NET]]></category>

		<guid isPermaLink="false">http://www.thejackol.com/?p=618</guid>
		<description><![CDATA[	ASP.NET 2.0 makes encrypting configSections in the web.config file a snap and there is no reason to not encrypt sensitive configSections. Just google for &#8220;encrypt config&#8221; and there are tons of code snippets waiting for you to copy and paste. Below is a code snippet that is found most commonly in google search results for [...]]]></description>
			<content:encoded><![CDATA[	<p><span class="caps">ASP</span>.<span class="caps">NET</span> 2.0 makes encrypting configSections in the web.config file a snap and there is no reason to not encrypt sensitive configSections. Just google for &#8220;encrypt config&#8221; and there are tons of code snippets waiting for you to copy and paste. Below is a code snippet that is found most commonly in google search results for protecting and unprotecting web.config file:<br />
<pre><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> ProtectSection(</span><span style="color: #0000ff">string</span><span style="color: #000000"> sectionName, </span><span style="color: #0000ff">string</span><span style="color: #000000"> provider)<br />
{
    Configuration config </span><span style="color: #000000">=</span><span style="color: #000000"> WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);</p>

    ConfigurationSection section </span><span style="color: #000000">= </span><span style="color: #000000">config.GetSection(sectionName);

    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (section </span><span style="color: #000000">!=</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000"> </span><span style="color: #000000">&amp;&amp; </span><span style="color: #000000">!</span><span style="color: #000000">section.SectionInformation.IsProtected)
    {
        section.SectionInformation.ProtectSection(provider);
        config.Save();
    }
}
</span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> UnProtectSection(</span><span style="color: #0000ff">string</span><span style="color: #000000"> sectionName)
{
    Configuration config </span><span style="color: #000000">=</span><span style="color: #000000"> WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);

    ConfigurationSection section </span><span style="color: #000000">= </span><span style="color: #000000">config.GetSection(sectionName);

    </span><span style="color: #0000ff">if</span><span style="color: #000000"> (section </span><span style="color: #000000">!=</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000"> </span><span style="color: #000000">&amp;&amp; </span><span style="color: #000000">section.SectionInformation.IsProtected)
    {
        section.SectionInformation.UnprotectSection();
        config.Save();
    }
}
</span><span style="color: #000000"> </span></pre>
You would usually call <strong>ProtectSection </strong>method in the <strong>Application_Start</strong> event in global.asax. As you can see, it accepts two parameters, sectionName (like &#8220;connectionStrings&#8221;) and provider which is basically an encryption services provider. <span class="caps">ASP</span>.<span class="caps">NET</span> ships with 2 default providers:
<ul>
	<li>The Windows Data Protection <span class="caps">API</span> (<span class="caps">DPAPI</span>) Provider (<strong>DataProtectionConfigurationProvider</strong>)
If you use this provider then the encryption keys are provided by the Windows OS. You don&#8217;t need to maintain the keys. However, this also means that you will need to deploy you application initially with a plain-text config file and then wait for your application logic to actually encrypt it.</li>
</ul>
<ul>
	<li><span class="caps">RSA</span> Protected Configuration Provider (<strong>RSAProtectedConfigurationProvider</strong>)
If you use this options then you are also required to create key containers to hold the public and private keys used for encrypting and decrypting the config information.</li>
</ul>
Once the data is encrypted, you don&#8217;t need to change anything in your code while accessing the settings. The <span class="caps">ASP</span>.<span class="caps">NET</span> configuration classes are smart enough to decrypt and provide you plain-text when they come across encrypted configSections. Pretty cool eh!

	<p>Please note that you may never need to invoke the UnprotectSection method. It is only provided, just in case you want to revert back to a plain-text config file.</p>

	<p>For a complete detailed tutorial on encrypting configSections see <a href="http://aspnet.4guysfromrolla.com/articles/021506-1.aspx" target="_blank">http://aspnet.4guysfromrolla.com/articles/021506-1.aspx</a></p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.thejackol.com%2F2009%2F07%2F23%2Fencrypt-your-config-please%2F&amp;linkname=Encrypt%20your%20config%20please%26%238230%3B" target="_blank"><img src="http://www.thejackol.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.thejackol.com/2009/07/23/encrypt-your-config-please/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
