<?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>TechKnack &#187; html</title>
	<atom:link href="http://techknack.net/category/html/feed/" rel="self" type="application/rss+xml" />
	<link>http://techknack.net</link>
	<description>The rantings of a techie</description>
	<lastBuildDate>Thu, 24 Dec 2009 19:53:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Moving from Blogger to Wordpress</title>
		<link>http://techknack.net/moving-from-blogger-to-wordpress/</link>
		<comments>http://techknack.net/moving-from-blogger-to-wordpress/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 15:37:35 +0000</pubDate>
		<dc:creator>eternicode</dc:creator>
				<category><![CDATA[blogs]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://techknack.net/?p=153</guid>
		<description><![CDATA[Recently, I&#8217;ve reached the point, like probably many bloggers have, where I&#8217;ve outgrown Blogger.
Don&#8217;t get me wrong, Blogger was great to use as I began my blogging journey.  A freely-hosted blog is probably the best way to test the waters, so you don&#8217;t spend $10 on a domain and who knows how much on [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I&#8217;ve reached the point, like probably many bloggers have, where I&#8217;ve outgrown Blogger.</p>
<p>Don&#8217;t get me wrong, Blogger was great to use as I began my blogging journey.  A freely-hosted blog is probably the best way to test the waters, so you don&#8217;t spend $10 on a domain and who knows how much on hosting for a blog that&#8217;ll be dead in a few months.  It&#8217;s just that hacking functionality into Blogger, when that functionality can easily be gained through a WordPress plugin, gets old after a while.  And besides, I had to do something with my new server <img src='http://techknack.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<p>The main problem with moving is that free services like Blogger give you very, very little control over the server.  The best way to maintain whatever incoming links and &#8220;Google juice&#8221; you&#8217;ve built up, assuming you&#8217;re moving to a new domain, is to set up a 301 Permanent Redirect to the new blog.  And, well, Blogger doesn&#8217;t like that idea <img src='http://techknack.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<p>The next best thing, though nowhere near as desirable, is to setup various client-side redirects, and hope that at least one of them works.  This, of course, pretty much leaves behind whatever link juice you may have, but it&#8217;s better than users coming to a seemingly dead blog without some way to find the regularly-updated version.</p>
<p>Here&#8217;s what I did: throughout the course of using blogspot, I&#8217;ve been using &#8220;post pages&#8221;, which is essentially a permalink.  You can setup self-hosted WordPress to use the .htaccess file to redirect users from the old URL version (with year, month, and trailing .html) to the new version used by WordPress.  For details, see <a href='http://www.blogbloke.com/migrating-redirecting-blogger-wordpress-htaccess-apache-best-method/'>BlogBloke.com&#8217;s article</a> (currently under construction, see the <a href='http://64.233.167.104/search?q=cache:www.blogbloke.com/migrating-redirecting-blogger-wordpress-htaccess-apache-best-method/'>google cached version</a>).  To test if your implementation works (after importing all your Blogger posts), pull up an article on the blogspot blog, replace the blog.blogspot.com in the url with your WordPress blog&#8217;s base address, and hit enter. You should be redirected to that same article on your WP blog.</p>
<p>As for performing the actual redirect, there are several ways to go, including javascript, meta redirects, and plain links within your pages.  I set up a simple javascript redirect that goes in the head of the blog template.  This takes the current URL, replaces the blogspot part with the new blog&#8217;s URL, and sends the user there.  Instant client-side redirect, provided the user has javascript enabled.</p>
<pre class="brush: jscript;">
&lt;script type='text/javascript'&gt;
// &lt; ![CDATA[

document.location.href=document.location.href.replace(/oldblog.blogspot.com/, &quot;newblog.com&quot;);

// ]]&gt;
&lt;/script&gt;
</pre>
<p>I put this directly under the title tags, so it would be executed as soon as possible.  Then, it occurred to me to move the Google Analytics tracker code above that, so that I would still receive stats from that site.<br />
Note: The CDATA tags are from the fact that New Blogger templates use XML.  Occasionally, I would get issues with using my javascript without CDATA tags surrounding the code.  These may or may not be necessary.
</p>
<p>In addition to the javascript redirect, I put a Text widget above the main blog content, alerting users to the new location, in case they&#8217;ve disabled javascript.<br />
<a href='http://techknack.net/wp-content/uploads/screenshot1.png'><img src="http://techknack.net/wp-content/uploads/screenshot1.png" alt="" title="screenshot1" width="500" height="117" class="aligncenter size-full wp-image-154" /></a><br />
I wouldn&#8217;t recommend using a <a href='http://www.libertyinteractivemarketing.com/blog/successfully-forwarding-blogger-to-wordpress/'>meta tag redirect</a>, unless you can somehow incorporate the current article&#8217;s URL into it.  You don&#8217;t want to auto-redirect the user from the article they want to read to the homepage of your new blog, even if you give them a 6-second warning.  It&#8217;s just downright inconsiderate.  If you can&#8217;t &#8220;seamlessly&#8221; redirect them, tell them how they can get to the new place, and leave it at that.</p>
<p>Once you&#8217;ve got the web-based redirects working, you need to take care of your RSS readers.  If you used Blogger (which, since you&#8217;re reading this, I assume you have), check out their RSS redirect service.  If you&#8217;re using FeedBurner, it&#8217;s almost as simple.  FeedBurner has acquired a FeedBurner WordPress plugin called <a href='http://www.google.com/support/feedburner/bin/answer.py?answer=78483&#038;topic=13252'>FeedSmith</a>.  Simply install the plugin, re-burn your FeedBurner feed (&#8221;Edit feed details&#8221; from your feed&#8217;s dashboard, and enter your WordPress feed, which should be at http://blog.com/feed/), and enter your FeedBurner URL in the appropriate field in WordPress&#8217;s Settings &rarr; FeedBurner page.  Your existing readers shouldn&#8217;t notice any change (they may receive duplicate entries of your recent articles), and any future subscribers will be redirected to your FeedBurner feed.</p>
<img src="http://techknack.net/?ak_action=api_record_view&id=153&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://techknack.net/moving-from-blogger-to-wordpress/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Lists, Useful For More Than Menus</title>
		<link>http://techknack.net/lists-useful-for-more-than-menus/</link>
		<comments>http://techknack.net/lists-useful-for-more-than-menus/#comments</comments>
		<pubDate>Sun, 11 May 2008 19:23:00 +0000</pubDate>
		<dc:creator>eternicode</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.techknack.net/lists-useful-for-more-than-menus/</guid>
		<description><![CDATA[I came across a page recently that uses ordered lists for the entire layout &#8212; not just the menu.  The entire layout is in two parts: one ordered list for the header/body/footer, and another ordered list for the three columns inside the body.
I find this to be an interesting approach to multi-column layouts.  [...]]]></description>
			<content:encoded><![CDATA[<p>I came across a page recently that uses <a href='http://www.tjkdesign.com/articles/css-layout/no_div_no_float_no_clear_no_hack_no_joke.asp'>ordered lists for the entire layout</a> &#8212; not just <a href='http://www.dynamicdrive.com/style/csslibrary/category/C2/'>the menu</a>.  The entire layout is in two parts: one ordered list for the header/body/footer, and another ordered list for the three columns inside the body.</p>
<p>I find this to be an interesting approach to multi-column layouts.  Better yet, the author claims that it works in <i>all</i> major browsers on the three major operating systems.</p>
<p>However, are ordered lists the proper elements to use in this case?  Is it &#8220;semantically correct&#8221;?  What about unordered versus ordered lists?  It&#8217;d be terribly simple to convert the layout to work with unordered lists, but which is more &#8220;correct&#8221;.</p>
<p>Regardless of correctness, though, &#8220;no floats, no divs, no clears&#8221; is rather appealing.</p>
<img src="http://techknack.net/?ak_action=api_record_view&id=128&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://techknack.net/lists-useful-for-more-than-menus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Do we really need the br element?</title>
		<link>http://techknack.net/do-we-really-need-the-br-element/</link>
		<comments>http://techknack.net/do-we-really-need-the-br-element/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 13:13:00 +0000</pubDate>
		<dc:creator>eternicode</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.techknack.net/do-we-really-need-the-br-element/</guid>
		<description><![CDATA[Do we really need the lowly &#60;br/&#62; element?  Apparently the W3C thinks so, with HTML5 containing the element.  I mean, seriously, what does it do that a span styled with display:block; can&#8217;t?
The last two times I&#8217;ve seen it used were in articles about creating a tableless photo gallery and making a CSS block [...]]]></description>
			<content:encoded><![CDATA[<p>Do we really need the lowly &lt;br/&gt; element?  Apparently the W3C thinks so, with <a href='http://www.w3.org/html/wg/html5/#the-br'>HTML5 containing the element</a>.  I mean, seriously, what does it do that a span styled with display:block; can&#8217;t?</p>
<p>The last two times I&#8217;ve seen it used were in articles about <a href='http://dustinbrewer.com/creating-a-photo-gallery-in-css-without-tables/'>creating a tableless photo gallery</a> and <a href='http://vikiworks.com/2008/03/29/a-css-block-navigation-menu/'>making a CSS block nav menu</a>.  In both instances, the br was used to drop down the descriptive text to the next line.  In both instances, a span surrounding the descriptive text, and with its display set to block, does the exact same thing.</p>
<p>I suppose an argument could be made about users with CSS turned off.  In my opinion, though, if you have CSS turned off, you&#8217;re willing to deal with a few minor inconveniences.  If you&#8217;re that worried about them, throw in a space before the span for readability.  And if you <i>really</i> insist on giving them the extra lines of text &#8212; there&#8217;s always the naturally-block-level &lt;div&gt;.</p>
<p>And what about screenreaders?  I doubt they&#8217;d be affected either way (it is whitespace, after all &#8212; right?), but I really have no clue.  Perhaps someone who uses a screenreader could tell me, after chewing me out about my own blog&#8217;s (actually Blogger&#8217;s) screenreader-friendliness. <img src='http://techknack.net/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> </p>
<img src="http://techknack.net/?ak_action=api_record_view&id=117&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://techknack.net/do-we-really-need-the-br-element/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Promote Standards Awareness with CSS Naked</title>
		<link>http://techknack.net/promote-standards-awareness-with-css-naked/</link>
		<comments>http://techknack.net/promote-standards-awareness-with-css-naked/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 19:15:00 +0000</pubDate>
		<dc:creator>eternicode</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.techknack.net/promote-standards-awareness-with-css-naked/</guid>
		<description><![CDATA[CSS Naked is a standards-awareness initiative led/organized by Dustin Diaz.  On the specified date, April 9th, all participating websites will strip their sites of their CSS, allowing the world to see the underlying clean-code usability:
The idea behind this event is to promote Web Standards. Plain and simple. This includes proper use of (x)html, semantic [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://naked.dustindiaz.com/'>CSS Naked</a> is a standards-awareness initiative led/organized by <a href='http://dustindiaz.com/'>Dustin Diaz</a>.  On the specified date, April 9th, all participating websites will strip their sites of their CSS, allowing the world to see the underlying clean-code usability:</p>
<blockquote><p>The idea behind this event is to promote Web Standards. Plain and simple. This includes proper use of (x)html, semantic markup, a good hierarchy structure, and of course, a good &#8216;ol play on words. It&#8217;s time to show off your &lt;body&gt;.</p>
</blockquote>
<p>While I would love to participate in this, I wouldn&#8217;t recommend it for Blogger users.  The building blocks of Blogger blogs, widgets, produce all sort of irrelevant divs and such that are used exclusively as CSS hooks.  Aside from the fact that the underlying code is NOT semantic, disabling styles on Blogger sites (well, this one anyway) is NOT pretty (or, for that matter, usable).  If you must see the results of such an inadvisable act as disabling CSS, you can (using FireFox) go to View -&gt; Page Style -&gt; No Style.  This will disable styles for the current page (or the current tab, I&#8217;m not exactly sure).</p>
<p>So, to reverse Dustin&#8217;s little play on words &#8212; sorry, you don&#8217;t get to see my &lt;body&gt; <img src='http://techknack.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<img src="http://techknack.net/?ak_action=api_record_view&id=115&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://techknack.net/promote-standards-awareness-with-css-naked/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Got Mad Coding Skills?</title>
		<link>http://techknack.net/got-mad-coding-skills/</link>
		<comments>http://techknack.net/got-mad-coding-skills/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 16:20:00 +0000</pubDate>
		<dc:creator>eternicode</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.techknack.net/got-mad-coding-skills/</guid>
		<description><![CDATA[Think you got what it takes to slice up a PSD file into a valid and usable (X)HTML template?  Then check out CSS Off, a contest that gives you the opportunity to do just that.  At one minute past midnight CST on April 5, a PSD file will be uploaded for contestants to [...]]]></description>
			<content:encoded><![CDATA[<p>Think you got what it takes to slice up a PSD file into a valid and usable (X)HTML template?  Then check out <a href='http://cssoff.com/2008/03/20/next-contest-is-april-4-2008/'>CSS Off</a>, a contest that gives you the opportunity to do just that.  At one minute past midnight CST on April 5, a PSD file will be uploaded for contestants to download.  Contestants will have up to 24 hours to submit their completed entry.</p>
<p><a href='http://answers.yahoo.com/question/index?qid=20061003221806AAdLmsE'>Don&#8217;t have Photoshop?</a>  Check out the <a href='http://gimp.org/'>GIMP</a>!  I&#8217;m hoping that the PSD file is GIMP-compatible.  You could try to convert it one way (using an <a href='http://fivepointsome1.blogspot.com/2007/12/how-to-convert-your-files-online-into.html'>online service</a>) or another (<a href='http://www.gimptalk.com/forum/topic/Can-Gimp-Open-A-Psd-File-4722-1.html'>directly in the GIMP</a>),but there&#8217;s always the issue of unsupported layer effects getting messed up.</p>
<p>And, no, this is not an <acronym title='April Fool&#39;s Day'>AFD</acronym> trick.  At least, I hope it isn&#8217;t&#8230;</p>
<img src="http://techknack.net/?ak_action=api_record_view&id=114&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://techknack.net/got-mad-coding-skills/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Faviconize your blog</title>
		<link>http://techknack.net/faviconize-your-blog/</link>
		<comments>http://techknack.net/faviconize-your-blog/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 20:06:00 +0000</pubDate>
		<dc:creator>eternicode</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.techknack.net/faviconize-your-blog/</guid>
		<description><![CDATA[Favicons.  Those little icons that appear on FireFox&#8217;s tabs, IE&#8217;s favorites bar, and various other places in web-related applications.  Simple little icons, no larger than 32 pixels square, yet they are a part of your site&#8217;s identity.
Why have a favicon?  Kiseki.co.uk puts it well:
A favicon can help people identify your site quickly [...]]]></description>
			<content:encoded><![CDATA[<p>Favicons.  Those little icons that appear on FireFox&#8217;s tabs, IE&#8217;s favorites bar, and various other places in web-related applications.  Simple little icons, no larger than 32 pixels square, yet they are a part of your site&#8217;s identity.</p>
<p>Why have a favicon?  <a href='http://www.kiseki.co.uk/'>Kiseki.co.uk</a> puts it well:</p>
<blockquote><p>A favicon can help people identify your site quickly and easily in, say, a long list of bookmarks&#8230;.It is only a small detail, but it can be useful for people to recognise your site.</p>
</blockquote>
<p>A favicon is an instant visual cue that, when a visitor sees it, conjures your website in their minds.  As <a href='http://www.abstractpromotion.com/if-you-dont-have-a-favicon-your-users-will-forget-about-you'>AbstractPromotion.com</a> says, &#8220;If you don’t have a favicon, your users will forget about you&#8221;.</p>
<p>Making a favicon is fairly straightforward: churn up your creative juices, fire up the gimp, create a new 16&#215;16px or 32&#215;32px image, brand away, save as an ICO, GIF, or PNG file, then upload the image to a file hosting site.  I personally enjoy <a href='http://www.villagephotos.com'>Village Photos&#8217;</a> free account, though there&#8217;s always PhotoBucket, ImageShack, or Google&#8217;s own <a href='http://picasaweb.google.com/'>Picasa service</a>.  After the image is web-accessible, add the following lines to the &lt;head&gt; section of your blog HTML template:</p>
<pre class="brush: xml;">
&lt;link href=&quot;http://host.com/path/to/image.png&quot; rel=&quot;shortcut icon&quot; type=&quot;image/png&quot; /&gt;
&lt;link href=&quot;http://host.com/path/to/image.png&quot; rel=&quot;icon&quot; type=&quot;image/png&quot; /&gt;
</pre>
<p>And, voila!  You should obviously replace the href and type attributes to fit your situation.  For type, use image/png for PNG, image/gif for GIF, and image/ico for ICO, in case you were wondering <img src='http://techknack.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Why two nigh-identical tags?  To answer a question with a question, what browser has, in decades past, caused us all so much pain?  That&#8217;s right.  It seems that older versions of IE need the &#8220;shortcut icon&#8221; link just to see the favicon image&#8230;whether or not they decide to display it.</p>
<p><a href='http://www.w3.org/2005/10/howto-favicon'>According to the W3C</a>, the rel attribute&#8217;s value should, &#8220;officially&#8221;, be &#8220;icon&#8221;.  Interestingly, they also recommend putting a &#8220;profile&#8221; attribute in the &lt;head&gt; tag, &#8220;to define what the ["icon"] value means&#8221;.  Their version:</p>
<pre class="brush: xml;">
&lt;head profile=&quot;http://www.w3.org/2005/10/profile&quot;&gt;
&lt;link rel=&quot;icon&quot;
      type=&quot;image/png&quot;
      href=&quot;/somewhere/myicon.png&quot; /&gt;
</pre>
<p>Though I don&#8217;t know for sure how well this will make IE6 behave&#8230;if such a thing is indeed possible.</p>
<img src="http://techknack.net/?ak_action=api_record_view&id=111&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://techknack.net/faviconize-your-blog/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Browsershots: Mass Website Testing</title>
		<link>http://techknack.net/browsershots-mass-website-testing/</link>
		<comments>http://techknack.net/browsershots-mass-website-testing/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 18:06:00 +0000</pubDate>
		<dc:creator>eternicode</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.techknack.net/browsershots-mass-website-testing/</guid>
		<description><![CDATA[In the world of Web 2.0, cross-browser compatibility is a necessary evil.  With different browsers, different versions of different browsers, and different operating systems with different versions of different browsers, you can rarely predict how your visitor might be viewing your site (unless, of course, you&#8217;re developing for a tightly controlled intranet, where everyone [...]]]></description>
			<content:encoded><![CDATA[<p>In the world of Web 2.0, cross-browser compatibility is a necessary evil.  With different browsers, different versions of different browsers, and different operating systems with different versions of different browsers, you can rarely predict how your visitor might be viewing your site (unless, of course, you&#8217;re developing for a tightly controlled intranet, where everyone uses the same OS and browser).  Unfortunately, it&#8217;s rarely, if ever, possible or sensible to test your site on even the major browser/OS combinations, let alone every conceivable combination.</p>
<p>Enter <a href='http://browsershots.org/'>BrowserShots</a> (currently <a href='http://trac.browsershots.org/wiki/BlogRelease04beta2'>version 0.4 beta 2</a>).  What is browsershots?</p>
<blockquote><p>Browsershots makes screenshots of your web design in different browsers. It is a free open-source online service created by Johann C. Rocholl. When you submit your web address, it will be added to the job queue. A number of distributed computers will open your website in their browser. Then they will make screenshots and upload them to the central server here.</p>
</blockquote>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_6C7jhrvrP14/R91nYG1ySLI/AAAAAAAAAEg/olfGhauc9iE/s1600-h/screenshot4.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_6C7jhrvrP14/R91nYG1ySLI/AAAAAAAAAEg/olfGhauc9iE/s320/screenshot4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5178408810396666034" /></a> The process is very simple: point your browser to <a href='http://browsershots.org/'>BrowserShots.org</a>, enter your website&#8217;s URL, check off the browser/OS combinations you want to check it in (there are a LOT of choices!), set any optional settings, and click &#8220;submit&#8221;.  Optional settings include screen size, color depth, javascript support, java support, and flash support.  Once you click submit, your requests are placed in a queue.<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_6C7jhrvrP14/R91qKG1ySMI/AAAAAAAAAEo/6lp-CXwRLC0/s1600-h/screenshot3.png"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_6C7jhrvrP14/R91qKG1ySMI/AAAAAAAAAEo/6lp-CXwRLC0/s320/screenshot3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5178411868413380802" /></a> In my experience, the wait time to receive all requested snapshots (mainly using the top browsers on all three platforms) varies between 3 minutes (last night) and 30 minutes (estimated time as I write this post <img src='http://techknack.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ), though for $15 (10€), you can get <a href='http://trac.browsershots.org/wiki/BlogPriority'>priority processing</a>.  The snapshots are available for 30min (or more, if you want to extend it), and can be viewed as they are taken (you don&#8217;t have to wait for the whole batch to finish).  Refresh your &#8220;Website Overview&#8221; page to see screenshots as they are uploaded.  On the Website overview page, you also have the opportunity to download a zip file containing all snapshots that have been taken so far.</p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_6C7jhrvrP14/R91rj21ySNI/AAAAAAAAAEw/lUbZ4crWQqc/s1600-h/browsershots.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_6C7jhrvrP14/R91rj21ySNI/AAAAAAAAAEw/lUbZ4crWQqc/s320/browsershots.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5178413410306640082" /></a> Once a screenshot has been taken and uploaded, you can click on its thumbnail to view the details of the browser and OS the snap was taken on, as well as a full-size screenshot of the page.  Details include browser, engine, javascript capabilities, java capabilities, flash capabilities; &#8220;factory&#8221;, sponsor, hardware, and OS of the machine that took that snapshot; dimensions and file size of the screenshot; and various timestamps related to the screenshot.</p>
<p>Granted, you can&#8217;t check website behavior (javascript animations, interactions, and such), but for those without access to different operating systems and different browsers, this is a very useful tool for cross-browser compatibility checking.</p>
<p><a href='http://browsershots.org/'>Browser Shots</a></p>
<img src="http://techknack.net/?ak_action=api_record_view&id=108&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://techknack.net/browsershots-mass-website-testing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Blue Spring Blogger template</title>
		<link>http://techknack.net/blue-spring-blogger-template/</link>
		<comments>http://techknack.net/blue-spring-blogger-template/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 00:32:00 +0000</pubDate>
		<dc:creator>eternicode</dc:creator>
				<category><![CDATA[blogs]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://blog.techknack.net/blue-spring-blogger-template/</guid>
		<description><![CDATA[
Over my spring break, I decided to spruce up my blog a bit (read: redesign).  Unfortunately, I am design-challenged and too cheap to pay someone to create a new design for me.  So I started perusing the designs available at OSWD, and found a nice template called Blue Spring.
 After finding, downloading, and [...]]]></description>
			<content:encoded><![CDATA[<div class="download"><a href="http://www.box.net/shared/ng7wm4by88"><img src='http://img.villagephotos.com/p/2005-1/928148/dlex.gif' alt='Download template files' /></a></div>
<p>Over my spring break, I decided to spruce up my blog a bit (read: redesign).  Unfortunately, I am design-challenged and too cheap to pay someone to create a new design for me.  So I started perusing the designs available at <a href='http://oswd.org'><acronym title='Open Source Web Design'>OSWD</acronym></a>, and found a nice template called <a href='http://www.oswd.org/design/preview/id/3649'>Blue Spring</a>.</p>
<p><a href="http://bp2.blogger.com/_6C7jhrvrP14/R9nKBW1ySJI/AAAAAAAAAEQ/AkmF3GQZxDk/s1600-h/screenshot3.png"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_6C7jhrvrP14/R9nKBW1ySJI/AAAAAAAAAEQ/AkmF3GQZxDk/s320/screenshot3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5177391371298949266" /></a> After finding, downloading, and familiarizing myself with the template&#8217;s HTML and CSS, I set about hacking it into Blogger XML submission.  It was mostly an effort of looking at my existing template, as well as the generated HTML, and revamping the CSS to support the structure produced by the Blogger widgets (mainly the Blog and Header widgets).</p>
<p>After combining HTML and CSS into one XML file and making sure the CSS supported all the widgets one might want in the sidebar, I set about &#8220;making it customizable&#8221;.  Not everyone likes to muck about in the CSS code &#8212; some (most?) prefer to use Blogger&#8217;s &#8220;Fonts and Colors&#8221; tab to do what they can.  Supporting this was a simple matter of pulling out all the major colors and fonts into skin variables.  After that, I made sure that all the widget sections had the proper settings.</p>
<p>Now, a &#8220;how to&#8221; on usage.  In the original template, there were designated spots above and below the header for links, namely &#8220;navigation&#8221; and &#8220;other&#8221;.  I have left these as two empty sections, with a limit of one widget each.  They are optimized for the &#8220;Link List&#8221; widget, but, as you can see by the search bar I&#8217;ve placed at the top, you may be able to fit other widgets in them.  Beware when putting something other than a LinkList widget in the bottom slot, though &#8212; it can seriously mess up your layout (and can usually be fixed by removing the widget).</p>
<p><a href="http://bp2.blogger.com/_6C7jhrvrP14/R9nTsW1ySKI/AAAAAAAAAEY/R16OGZMS0M4/s1600-h/screenshot2.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_6C7jhrvrP14/R9nTsW1ySKI/AAAAAAAAAEY/R16OGZMS0M4/s320/screenshot2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5177402005637974178" /></a> The &#8220;Page Elements&#8221; layout is slightly a mess; as I have no clue how to modify the XML file to fix this &#8212; without melting the layout &#8212; you&#8217;ll just have to deal with it <img src='http://techknack.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   The &#8220;edit&#8221; link for the top LinkList section is hidden by the logo.  To get around this, move the widget to the lower slot (or a slot on the sidebar), edit it, then move it back.</p>
<p>Before uploading the template to your blog, be sure to upload the images to a hosting service, and replace all images used in the template with the appropriate URLs.  Searching the XML file for &#8220;images/&#8221; will show you the images to be replaced.  If you have a favicon for your blog, find the following section:</p>
<pre class="brush: xml;">
  &lt;!-- link href='#favicon-url-here' rel='shortcut icon' type='image/gif'/&gt;
  &lt;link href='#favicon-url-here' rel='icon' type='image/gif'/ --&gt;
</pre>
<p>Uncomment it, and replace &#8220;#favicon-url-here&#8221; with the URL of your favicon.  If you want a small RSS icon to the right of the bottom LinkList section, find this section:</p>
<pre class="brush: xml;">
        &lt;!-- span id='feedlink'&gt;
          &lt;a href='#your-rss-feed-here'&gt;
            &lt;img alt='Subscribe' src='images/rss.gif' /&gt;
          &lt;/a&gt;
        &lt;/span --&gt;
</pre>
<p>Uncomment it, and replace &#8220;#your-rss-feed-here&#8221; with the URL of the feed you want visitors to subscribe to.
</p>
<p>As the devil is in the details, you will, more likely than not, come across issues if you try to add custom or third-party code to the sidebar (or any other part of the template, for that matter).  The CSS has been tweaked to make most of the official Blogger widgets look good; anything unofficial is just that, unofficial.  Please keep in mind that I am not your personal HelpDesk, nor will I likely have time to help everyone &#8220;fix&#8221; their blog.  There are Blogger help forums, as well as HTML/CSS help forums, that will be more than happy to help you, if you ask.</p>
<p>For you web standardistas out there, I don&#8217;t know if the Blogger engine puts out standards-compliant code or not, but almost any Bloger blog you try to validate will turn out hundreds of errors <img src='http://techknack.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  as such, I didn&#8217;t quite worry about making the template standards-compliant.  If it is, it&#8217;s completely on accident <img src='http://techknack.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />   The theme does NOT render properly on IE6-.  Seems to work fine on IE7, IE8 is unknown.</p>
<p>As always, with anything remotely related to technology, BACKUP!!!  Go to your blog&#8217;s layout, select the &#8220;Edit HTML&#8221; tab, and click the &#8220;Download Full Template&#8221; link.  Save the XML file to your computer, so you have a backup to restore from if you prefer your old template.</p>
<p>The template&#8217;s footer (and some comments in the CSS) credits the designer, <a href='http://www.dcarter.co.uk/'>DCarter</a>, and the one who converted it into a template (Templater?), <a href='http://techknack.blogspot.com/'>me</a>.  If you do use this template, please leave this info intact.</p>
<p><strong>[ 5/11/08 ] Update</strong>: Turns out the first version would break when text size was increased, if you had menu items.  Fixed by adding overflow:hidden; to the first #main-wrapper declaration.  <del>Still doesn&#8217;t work in IE6.</del>  Also added overflow:hidden; to the #sidebar declaration, and the layout now <em>mostly</em> works in IE6 (there are still a few quirks, but it&#8217;s usable).  The sidebar is strangely displaced in IE5.01 and slightly off in IE5.5 and IE4.01 according to <a href='http://browsershots.org'>browsershots.org</a>, but the template now supports &#8220;all major browsers on all major operating systems&#8221;.</p>
<p>Additional links:<br />
<a href='http://www.box.net/shared/ng7wm4by88'>Download the Blogger template</a><br />
<a href='http://www.oswd.org/files/designs/3649/blue_spring/'>OSWD: Blue Spring template</a><br />
<a href='http://www.headsetoptions.org/2007/03/24/wordpress-theme-blue-spring-released/'>Blue Spring WordPress template</a><br />
<a href='http://oswd.org'>Open Source Web Design</a><br />
<a href='http://eternicode.deviantart.com/art/Aurora-Banner-79894765'>The header image I use</a></p>
<p>This template featured at <a href='http://the-blogger-templates.blogspot.com/2008/03/blue-spring-blogger-template.html'>The Blogger Templates</a></p>
<img src="http://techknack.net/?ak_action=api_record_view&id=107&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://techknack.net/blue-spring-blogger-template/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Super-target your AdSense ads</title>
		<link>http://techknack.net/super-target-your-adsense-ads/</link>
		<comments>http://techknack.net/super-target-your-adsense-ads/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 20:14:00 +0000</pubDate>
		<dc:creator>eternicode</dc:creator>
				<category><![CDATA[blogs]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://blog.techknack.net/super-target-your-adsense-ads/</guid>
		<description><![CDATA[While perusing the AdSense Optimization Tips, I came across a section on Blogtimizing, optimizing ad placement on a blog.  That article, however, linked to the more interesting concept of section targeting &#8211; the idea of super-targeting your ads to a specific section of content, rather than all content on the page (which, on a [...]]]></description>
			<content:encoded><![CDATA[<p>While perusing the <a href='https://www.google.com/adsense/support/bin/static.py?page=tips.html&#038;sourceid=aso&#038;subid=ww-ww-et-asui&#038;medium=link'>AdSense Optimization Tips</a>, I came across a section on <a href='https://www.google.com/adsense/support/bin/answer.py?answer=43869'>Blogtimizing</a>, optimizing ad placement on a blog.  That article, however, linked to the more interesting concept of <a href='https://www.google.com/adsense/support/bin/answer.py?answer=23168'>section targeting</a> &#8211; the idea of super-targeting your ads to a specific section of content, rather than all content on the page (which, on a blog, includes navigation links, blog title, sidebar content, and all sorts of non-topic-specific junk).  From the section targeting page:</p>
<blockquote>
<p>Section targeting allows you to suggest sections of your text and HTML content that you&#8217;d like us to emphasize&#8230;when matching ads to your site&#8217;s content. By providing us with your suggestions, you can assist us in improving your ad targeting. We recommend that only those familiar with HTML attempt to implement section targeting.</p>
<p>To implement section targeting, you&#8217;ll need to add a set of special HTML comment tags to your code. These tags will mark the beginning and end of whichever section(s) you&#8217;d like to emphasize&#8230;for ad targeting.</p>
<p>The HTML tags to emphasize a page section take the following format:<br />
&lt;!&#8211; google_ad_section_start &#8211;&gt;</p>
<p>&lt;!&#8211; google_ad_section_end &#8211;&gt;</p>
</blockquote>
<p>So, essentially, to super-target your ads, just wrap the relevant content in these special HTML comment tags.  For Blogger blogs using the XML templates, however, it&#8217;s a bit trickier.  More likely than not, you&#8217;ll want to target your ads to the content of your blog posts.  To do so, it would appear obvious to wrap the &lt;data:post.body/&gt; Blogger tag with the appropriate comment tags, like so:</p>
<pre class="brush: xml;">
&lt;!-- google_ad_section_start --&gt;
    &lt;p&gt;&lt;data:post.body/&gt;&lt;/p&gt;
&lt;!-- google_ad_section_end --&gt;
</pre>
<p>The problem is, Blogger&#8217;s template engine strips out all HTML comments contained within &lt;b:includable&gt; tags.  Fortunately, Blogger themselves have a solution to this issue: &lt;data:adStart/&gt; and &lt;data:adEnd/&gt;:</p>
<pre class="brush: xml;">
&lt;data:adStart/&gt;
    &lt;p&gt;&lt;data:post.body/&gt;&lt;/p&gt;
&lt;data:adEnd/&gt;
</pre>
<p>These tags will be expanded by Blogger into the desired HTML comments, allowing you to super-target your AdSense ads.
</p>
<p>Beware of being too specific in your targeting, however.  Google has put in measures against &#8220;keyword spamming&#8221; your ads:</p>
<blockquote><p>Include a significant amount of content within the section targeting tags; including insufficient content may result in less relevant ads or PSAs. Please also be sure only to emphasize significant sections of your site&#8217;s relevant content, since it&#8217;s against our program policies to the ad targeting to result in ads that are not relevant to the content of your pages.</p>
</blockquote>
<p>That means no exclusively targeting your post titles or post tags.</p>
<p>Also of use are the &#8220;ignore tags&#8221; that go hand-in-hand with the targeting tags:</p>
<blockquote><p>You can also designate sections you&#8217;d like to have ignored by adding a (weight=ignore) to the starting tag:</p>
<p>&lt;!&#8211; google_ad_section_start(weight=ignore) &#8211;&gt;</p>
</blockquote>
<p>This is good for topic-irrelevant content that appears on pages, specifically the content-ridden sidebar(s) that almost every Blogger blog has.  Simply wrap the sidebar div in these tags to de-emphasize its content.</p>
<p>The way I set up my ads was to enable per-post ads (blog layout -&gt; page elements -&gt; click &#8220;edit&#8221; on the &#8220;Blog Posts&#8221; element -&gt; check &#8220;Show ads between posts&#8221;), then move (only!) the &lt;data:adCode/&gt; line to the desired position within my post template, after the fashion of an article on <a href='http://woork.blogspot.com/2007/11/place-google-adsense-below-posts-title.html'>Woork</a>.  I then removed all Blogger-added adStart and adEnd tags, and placed my own around my &lt;data:post.body/&gt; line, as specified above.  I&#8217;ve found it works rather well on the individual posts&#8217; pages, though it seems to get a little confused on the front page.  This is understandable, since there are multiple targeted content sections to process on the homepage, all with different content.</p>
<p>After specifying the targeted sections, I wrapped my sidebar content in the ignore tags.  In my template HTML (no need to &#8220;expand widget templates&#8221;), I searched for the sidebar section:</p>
<pre class="brush: xml;">
&lt;b:section class='sidebar' id='sidebar' preferred='no'&gt;
...all the various widgets...
&lt;/b:section&gt;
</pre>
<p>And wrapped the entire section in the ignore tags:</p>
<pre class="brush: xml;">
&lt;!-- google_ad_section_start(weight=ignore) --&gt;
&lt;b:section class='sidebar' id='sidebar' preferred='no'&gt;
...all the various widgets...
&lt;/b:section&gt;
&lt;!-- google_ad_section_end(weight=ignore) --&gt;
</pre>
<p>And, voila, ads that are more relevant to my content!  Enjoy!</p>
<img src="http://techknack.net/?ak_action=api_record_view&id=106&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://techknack.net/super-target-your-adsense-ads/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>A well-designed website: many things to many people</title>
		<link>http://techknack.net/a-well-designed-website-many-things-to-many-people/</link>
		<comments>http://techknack.net/a-well-designed-website-many-things-to-many-people/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 22:44:00 +0000</pubDate>
		<dc:creator>eternicode</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.techknack.net/a-well-designed-website-many-things-to-many-people/</guid>
		<description><![CDATA[In my Advanced Web Design class at school, my professor asked us to post what we thought defined a well-designed website.  I thought I&#8217;d share my answer here.  I&#8217;m sure he wasn&#8217;t expecting anything so involved as this  
&#8220;What makes a well-designed website?&#8221;  That&#8217;s quite a question.
As a dabbler in web [...]]]></description>
			<content:encoded><![CDATA[<p>In my Advanced Web Design class at school, my professor asked us to post what we thought defined a well-designed website.  I thought I&#8217;d share my answer here.  I&#8217;m sure he wasn&#8217;t expecting anything so involved as this <img src='http://techknack.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>&#8220;What makes a well-designed website?&#8221;  That&#8217;s quite a question.</p>
<p>As a dabbler in web design, I would say a well-designed website is &#8220;good-looking&#8221;.  It should look somewhat elegant.  The &#8220;Web 2.0 style&#8221; &#8212; glossy buttons, spacious openness, minimalistic simplicity, and copious use of gradients &#8212; comes to mind.  I can&#8217;t think of any sites that strictly adhere to all these points, but <a href="http://dynamicdrive.com/">DynamicDrive</a> is a good-looking site.</p>
<p>As an <acronym title="Human-Computer Interaction">HCI</acronym>-minded individual, a well-designed website is made by more than its layout. A well-designed website makes it obvious what the site&#8217;s purpose is, what can be done on the site, how to go about doing it, etc.  Again, simplicity is king, and clutter is sin.  Content is easy to skim and understand.  The layout does not make it difficult to navigate.  If a feature breaks, the site will either <em>gently</em> tell the user so, and make it easy for the user to report the breakage; or the site will function in such a way that the user doesn&#8217;t notice the difference, and the developer will be alerted.  I think <a href="http://digg.com/">Digg</a> is a fairly usable, well-designed site.</p>
<p>As a web developer at heart, a well-designed website is all in the code.  Separation of structure, content, presentation, and functionality is something to be strived for.  It should be built as follows:</p>
<ol>
<li>First build a mock page (with the final site&#8217;s design in mind) which contains either mock or real content, and only structure-oriented HTML markup.  Presentational markup is sin <img src='http://techknack.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   This page is not design-oriented; its only purpose is to structure the page&#8217;s content in a semantically meaningful way.  Any tags that do not directly relate to the structure and/or content of the page should be struck down with a flaming sword of death.  Organize things in such a ay that they flow logically along the page.</li>
<li>Develop the CSS in an externally linked file.  Introduce any design-specific images through the CSS, if possible (and it should be possible).  Strive for cross-browser compatibility within the CSS, making the site look as similar as possible from one browser to the next.  If any additional markup is required for the design of the site, the CSS should be developed to make the site look good without it; if still necessary, the necessary markup can be added through the next step.  Use what you have to get what you want.</li>
<li>Develop the functionality (using JavaScript) in another externally linked file.  Nonintrusive javascript should be used, progressively enhancing the site after it has loaded.  Nonintrusive javascript should also be used to add any necessary additional markup to be used by the CSS.  Again, use what you have to get what you want.</li>
<li>If possible, convert the finished page layout into a template, and use a server-side language to fill it with dynamic content.</li>
<li>Finally, when all is said and done, pull up the page in a browser, and make sure everything works.  Turn off javascript, refresh, and make sure everything works.  Turn off css, refresh, and make sure everything works.  Then browse the web for a while&#8230;.and see if it works <img src='http://techknack.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ol>
<p>According to these steps, a well-designed website will work across browsers, degrade gracefully in older browsers, respect the wishes of those with Javascript turned off.<br />
There are lots of websites that use this methodology (using only semantically-meaningful html, etc).  One well-designed website in this case is <a href="http://www.dynamixlabs.com/">Dynamix Labs</a>.  It doesn&#8217;t seem that they use any javascript, and if you turn off CSS, the site is still very readable.</p>
<p>As a user, I want information, and I want simplicity in doing what I want to do.  A lot of the time, I want information that I can talk about in my blog.  I use google as my main go-to source for finding things.  If I find a site that gives me good information on a regular basis, I want to be able to subscribe to its RSS feed, or something similar.  If I find a site that I come back to on a regular basis (whether I be forced to, or do so of my own free will), I want to be able to customize my experience on that site.  I want to be able to change the colors, the landing page content; anything and (usually) everything, I want to customize it to better serve my way of doing things.<br />
One service that I use on a daily basis is <a href="https://www.google.com/reader/view/#">Google Reader</a> (you&#8217;ll have to sign in to your google account), a web-based RSS aggregator.  It features &#8220;folders&#8221; that you can use to organize your feeds, drag-and-drop re-ordering of feeds, and very easy-to-use methods of subscribing and unsubscribing from feeds.<br />
Another service that I use regularly is <a href="http://netvouz.com/">Netvouz</a>, a social bookmarking site.  I chose Netvouz over other bookmarking sites because of its folder organization feature.  You can organize your bookmarks according to category (and sub-category) and make certain bookmarks private.  It&#8217;s also easy to delete or edit my existing bookmarks, and really easy to add new bookmarks using the Netvouz firefox extension.</p>
<p>I must say, though, that my most frequently used and favorite thing is <a href="http://getfirefox.com/">FireFox</a>.  It is customizable in (almost) every way possible; its functionality is infinitely extendable through extensions, which anyone familiar with XML and Javascript can write.  It has excellent support for standards; the upcoming FireFox 3 is said to have passed <a href="http://webstandards.org/acid2">the Acid2 test</a>, which is huge for web developers.</p>
<p>As you can see, from my point(s) of view, a well designed website can and should be many things to many different people.</p>
<p>So, what do you think?  What makes a website &#8220;well-designed&#8221;?  What are some examples of well-designed websites?</p>
<p><b>Note:</b> References to certain things &#8220;being sin&#8221; should not be taken literally.  Putting presentational markup on your page will not send you to hell.  Nor will avoiding clutter send you to heaven.  These are just my personal pet peeves <img src='http://techknack.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://techknack.net/?ak_action=api_record_view&id=96&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://techknack.net/a-well-designed-website-many-things-to-many-people/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
