<?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>In All Reality &#187; Resources</title>
	<atom:link href="http://ryanburrell.com/category/resources/feed/" rel="self" type="application/rss+xml" />
	<link>http://ryanburrell.com</link>
	<description>I can't be a rockstar...so I do this instead.</description>
	<lastBuildDate>Fri, 22 Apr 2011 14:59:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>.Net CMS Roundup</title>
		<link>http://ryanburrell.com/2010/03/dot-net-cms-roundup/</link>
		<comments>http://ryanburrell.com/2010/03/dot-net-cms-roundup/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 15:09:01 +0000</pubDate>
		<dc:creator>Ryan Burrell</dc:creator>
				<category><![CDATA[Resources]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[content management system]]></category>
		<category><![CDATA[dotnetnuke]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[evaluation]]></category>
		<category><![CDATA[kentico]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[sitefinity]]></category>
		<category><![CDATA[telerik]]></category>
		<category><![CDATA[templating]]></category>
		<category><![CDATA[umbraco]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://ryanburrell.com/?p=657</guid>
		<description><![CDATA[Choosing a CMS is always a big decision, especially when it's for your employer and your options are limited to a specific language and supporting infrastructure. In today's adventure, I explore the options available for content management within the confines of .NET and SQL Server.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had the recent dubious honor of doing some research into CMS solutions for the site redesign of my company: <a title="Educational Benchmarking, Inc." href="http://www.webebi.com">Educational Benchmarking</a>. For better or worse our entire infrastructure is built in Microsoft technologies, and as such the mandate has been that – if at all possible – the CMS we implement needs to be .NET-based and SQL Server capable. I&#8217;ve spent the last week or so evaluating different options, and thought I&#8217;d give a brief snyopsis of my findings for reference.</p>
<h3><a title="Umbraco" href="http://www.umbraco.org">Umbraco</a></h3>
<p><a title="Umbraco" href="http://www.umbraco.org"><img title="Umbraco" src="http://ryanburrell.com/wp-content/uploads/2010/03/umbraco.png" alt="Snapshot of Umbraco homepage" width="530" height="225" /></a></p>
<p>Umbraco was my initial and most promising choice for evaluation. At first blush it seemed to have good documentation, flexibility, was open source, permissions structure, and (this is particularly important to me) a growing and active community around it. Umbraco boasted several very enticing features, including revisions, a workflow process, custom document type creation, plugin capability, and the ability to easily integrate custom user controls. Perhaps most important for my personal role in the redesign was that Umbraco didn&#8217;t store all of its templating, formatting, and CSS in a database (as many CMS solutions do) and instead wrote to physical files on the server. Changes made in the admin would write to the physical files, and changes to the physical files outside of Umbraco would be reflected in its admin interface.</p>
<p>My optimism started to fade after installing and getting my hands dirty with the CMS. Umbraco is extremely flexible&#8230; to the point of almost not functioning as a <a title="Content Management System on Wikipedia" href="http://en.wikipedia.org/wiki/Content_management_system">CMS</a> and more as a <a title="Framework - definition" href="http://www.thefreedictionary.com/framework">framework</a>. Standard features such as predefined document types functionality, blogging, and even a search module weren&#8217;t included; these would all need to be developed mostly from scratch. There is a boilerplate sample site plugin that can be installed to learn from, but it is confusing at best. It becomes increasingly clear that Umbraco has been written for the dedicated developer (or at least from their viewpoint) and the time hasn&#8217;t been taken to ensure easy understanding from a less programmatic viewpoint. The user interface for the admin is very barebones and somewhat confusing, again defeating the purpose of a CMS.</p>
<p>Umbraco also makes extensive use of <a title="XSL at W3schools" href="http://www.w3schools.com/xsl/default.asp">XSLT</a> to accomplish much of its content and templating output. This was a large part of the confusion in using the system, as some content seemed to be stored in XML files, while other parts are stored in the database. This led me to questions of how a search feature would work in practice and the performance of storing the data in XML versus pulling it from the DB. The documentation, while prolific, is less than helpful and largely devoid of any sort of standard style guide for ease of understanding.</p>
<p>All-in-all, I can&#8217;t recommend Umbraco for the end user, which is ultimately what a CMS is built for. If you have the time and skills needed to develop functionality from scratch, Umbraco provides a nice framework to build upon. If you don&#8217;t know XSL/XSLT, it is a requirement to learn it for using the system – even for basic things like outputting a navigation list. The permissions capabilities are standard, but nothing to write home about. The community is active, but it still has a long way to go to achieve the standards of usability and pervasiveness of alternative options, such as <a title="WordPress" href="http://www.wordpress.org">WordPress</a>, <a title="Drupal" href="http://www.drupal.org">Drupal</a>, <a title="ExpressionEngine" href="http://www.expressionengine.com/">ExpressionEngine</a>, etc.</p>
<h3><a title="Sitefinity" href="http://www.sitefinity.com">Sitefinity</a></h3>
<h3><a title="Sitefinity" href="http://www.sitefinity.com/"><img title="Sitefinity" src="http://ryanburrell.com/wp-content/uploads/2010/03/sitefinity.png" alt="Snapshot of Sitefinity homepage" width="530" height="225" /></a></h3>
<p>Sitefinity is the CMS offering of .NET UI giant <a title="Telerik" href="http://www.telerik.com/">Telerik</a>. We already use Telerik&#8217;s <a title="RadControls for .NET and AJAX" href="http://www.telerik.com/products/aspnet-ajax.aspx">RadControls</a> product line and are relatively familiar with their methodologies. They offer both a <a title="Sitefinity Demo" href="http://demo.sitefinity.com/">live demo</a> version (without having to register!), and a downloadable trial version. After playing with the freebie web demo to determine basic usability and process, I downloaded the trial and installed it locally.</p>
<p>The user interface and workflow for Sitefinity is much more polished than any of the other CMS options I evaluated, with the possible exception of Drupal. It comes with most of the content types and features that are generally used on websites out-of-the-box, including blogs, events, and even an in-admin email newsletter manager. It has the ability to create custom search modules and RSS feeds without needing to touch the controlling code. This is nice because while the Telerik team has taken the pains to create a module API, Sitefinity doesn&#8217;t let you see its source code.</p>
<p>The templating process for Sitefinity is somewhat odd, but I think this lies more in my relative unfamiliarity with the way .NET typically structures and defines &#8220;theming&#8221; and less with their implementation of it. Nonetheless, I&#8217;ve yet to fully understand how one creates a template and the references the necessary resources (like CSS and images). I&#8217;m certain the capability is there, and I&#8217;m in the process of reading through their 50+ page <a title="Sitefinity user's manual" href="http://www.sitefinity.com/support/user-manual.aspx">users manual</a> PDF to discover where it makes its lair.</p>
<p>Sitefinity is currently the front-runner for our system of choice. Non-technical personnel will need to use the system, and the permissions/users structure is granular enough to make this easy to setup. While I have reservations for my personal role in the redesign – namely the creation and implementation of templates and the overall frontend functionality – the admin workflow for editing and adding new content is fairly smooth. Should we need additional functionality (and we will) the well-documented API should be able to accommodate anything we want to do. It&#8217;s worth noting that most of the included modules and document types seem to have hard-coded output templates that are compiled into the CMS runtimes; it doesn&#8217;t appear that you can edit these, so if you want different markup or functionality than the included functionality, the module will need to be rewritten and provision for that capability included. The $899 price tag is steep especially when compared to the prospect of open source alternatives, but the time has obviously been taken to make the user experience pleasant and useful and build in extensibility.</p>
<h3><a title="DotNetNuke" href="http://www.dotnetnuke.com/">DotNetNuke</a></h3>
<h3><a title="DotNetNuke" href="http://www.dotnetnuke.com/"><img title="DotNetNuke" src="http://ryanburrell.com/wp-content/uploads/2010/03/dotnetnuke.png" alt="Snapshot of DotNetNuke homepage" width="530" height="225" /></a></h3>
<p>I installed DotNetNuke with less than the normal enthusiam I&#8217;ve had for evaluating the other options on my list, largely because of a prior experience with it some years back. Still, I banished this from my mind as unfair and did my best to not let it color my opinions. Much to my pleasant surprise, &#8216;Nuke turned out to be a worthy (if somewhat eccentric) contender.</p>
<p>Reading through the documentation on developing a theme or &#8220;skin&#8221;, it quickly became apparent that a lot of thought was put into the engine driving the CMS. This unfortunately hasn&#8217;t manifested itself on the admin side of things, as the interface and workflow is a bit too abstracted and becomes confusing. Still, comparing features-to-features &#8216;Nuke has more capability out-of-the-box than Sitefinity does – but not by much. The skinning process makes more sense to me than the implementation provided in Sitefinity, but both are going to require a shift in both my mindset and workflow compared to my typical fare of WordPress themes.</p>
<p>An important item to note is that DotNetNuke doesn&#8217;t really have an admin per se. Instead it operates from the standpoint that, if you are logged in and have the proper permissions, the site <em>is</em> the admin. This doesn&#8217;t agree with my personal preferences on the sbuject, but I can see it being easy to use for others who don&#8217;t have quite the anal-retentiveness and everything-must-be-separate-and-in-its-proper-placeness that I do. &#8216;Nuke is currently a close second, largely because of its open-source price tag. While not nearly as user-friendly, its abilities match or exceed those of Sitefinity in the realm of extensibility. I believe the final decision will come down to the numbers and the requirements of our content team; it&#8217;s a decision I&#8217;m glad I don&#8217;t have sole responsibility for.</p>
<h3><a title="Kentico" href="http://www.kentico.com/">Kentico</a></h3>
<h3><a title="Kentico" href="http://www.kentico.com/"><img title="Kentico" src="http://ryanburrell.com/wp-content/uploads/2010/03/kentico.png" alt="Snapshot of Kentico homepage" width="530" height="225" /></a></h3>
<p>I knew this option was almost certainly out of the running due to its $1999 starting price. Still, they had a web demo to try out free of charge. I was immediately greeted with OMG SO MANY OPTIONS THERE ARE BUTTONS AND BOXES EVERYWHERE!!!!!!!!!!!! To say Kentico is feature-packed would be a grave understatement – I would liken it to taking a drink from a high pressure fire hose. This CMS can do anything and everything, and if it can&#8217;t (because I can&#8217;t verify that it can because there are so many buttons and switches and levers) then why does it have all those buttons and switches and levers? The user interface reminds me largely of <a title="Plesk from Parallels" href="http://www.parallels.com/products/plesk/">Plesk</a>, which is to say that it is the promise of functionality wrapped in confusion and baked into the flaky crust of enigma.</p>
<p>Kentico can handle the administration of multiple websites and domains, multiple languages, content, navigation, etc from a single admin. It has extensive controls for SEO (namely URL rewriting). It is confusing as hell to edit content and apply themes/skins/styling. Fear it. Kentico is geared at enterprise level needs and packs a lot of punch. I can&#8217;t say that I don&#8217;t recommend it, but it definitely isn&#8217;t for us because of the price and sheer amount of features (and the learning curve associated with them). You may get the vague feeling that night classes will be needed to use the system, and you probably wouldn&#8217;t be wrong in that.</p>
<h3><a title="Drupal" href="http://www.drupal.org">Drupal</a></h3>
<h3><a title="Drupal" href="http://www.drupal.org"><img title="Drupal" src="http://ryanburrell.com/wp-content/uploads/2010/03/drupal.png" alt="Snapshot of Drupal homepage" width="530" height="225" /></a></h3>
<p>If you know anything about Drupal, you might find it odd that I&#8217;ve included it in this list. Drupal is nominally a <a title="LAMP on Wikipedia" href="http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29">LAMP</a> (Linux, Apache, MySQL, PHP) application, but its development team has taken on the time and headaches needed to make it equally easy to run under IIS and has provided a database abstraction layer to make connecting to a non-supported database as painless as possible. Because of this last item, I thought it would be worth taking the time to evaluate in relation to our needs.</p>
<p>Drupal is nice, it has a lot of capabilities by default and has provision for the creation of custom content types and blogging. The templating capability is easy enough and user interface is relatively simply to understand. I didn&#8217;t spend a large amount of time walking through its features because it became quickly apparent that anything it may have had in advantage over Sitefinity or the other options was still overshadowed by the need to write a custom database connector. While not an impossible task, it would take time and testing – an amount of which that would probably come close to the $899 pricetag of Sitefinity when considering the necessary diversion from working on our actual products. Also, it was 5:00 PM on Friday afternoon. Still, it was definitely worth a shot and I would push harder to use this CMS if our infrastructure were less SQL Server-centric.</p>
<p>Some other options that were discarded for various reasons – ranging from infrastructure incompability to install issues to pricing – but that are still worth noting include: <a title="AxCMS" href="http://www.axcms.net/">AxCMS</a>, <a title="Titan CMS" href="http://www.titancms.com/">Titan CMS</a>, <a title="Movable Type" href="http://www.movabletype.com/">Movable Type</a> (the Enterprise edition contains MSSQL/Oracle connectivity), and <a title="CMS400.net from Ektron" href="http://www.ektron.com/cms/">Ektron</a>. Like most anything, each of these other options has their own merits and shortcomings. I highly encourage anyone to evaluate these solutions as well if any of the options discussed above fails to meet approval. I welcome comments or experiences that anyone else has had that can better flesh out the pros and cons of the items reviewed on this list.</p>
]]></content:encoded>
			<wfw:commentRss>http://ryanburrell.com/2010/03/dot-net-cms-roundup/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>LUTs: Lists of Useful Things</title>
		<link>http://ryanburrell.com/2010/03/lists-of-useful-things/</link>
		<comments>http://ryanburrell.com/2010/03/lists-of-useful-things/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 15:56:10 +0000</pubDate>
		<dc:creator>Ryan Burrell</dc:creator>
				<category><![CDATA[Resources]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Trends]]></category>
		<category><![CDATA[articles]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[lists]]></category>
		<category><![CDATA[reference guides]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[useful things]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[user interface]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://ryanburrell.com/?p=636</guid>
		<description><![CDATA[I spend a lot of time reading through things on the interwebs. I've decided to compile the things I've found useful into weekly lists for the benefit of all (or possibly just my memory). For the acronym-savvy, I'm going to call these LUTs.]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } 		A:link { so-language: zxx } --></p>
<p style="margin-bottom: 0in;">I take great pains to keep up with news and info related (directly or indirectly) to my particular areas of expertise. During the week, I typically filter out all the links, articles, tutorials, tools, etc that appear in my RSS subscriptions, Twitter feeds, newsletters, and general perusal. At work, this gets translated into emails I send out to my fellow developers in the hopes that they may glean something useful, or at the very least have an interesting read. For myself, these end up in my vast, every-lengthening bookmarks list, which I have been suprisingly slow to add to a service like Delicious.</p>
<p style="margin-bottom: 0in;">So, I&#8217;ve decided to start making posts of Useful Things, and because I&#8217;m all crazy about acronyms and stuff I&#8217;m going to call them LUTs. I thought about calling them Selected Lists of Useful Things&#8230; but I think we know what that would end up shortened to. Anyone reading these gets the added benefit of the info already being filtered out from all the plankton that drifts through the media ocean each day. And like any journey, it begins with this first step:</p>
<h3 style="margin-bottom: 0in;">List of Useful Things &#8211; Week of March 14<sup>th</sup></h3>
<h4 style="margin-bottom: 0in;">Resources</h4>
<h5 style="margin-bottom: 0in;">Debugging tools for IE<a href="http://samuli.hakoniemi.net/debugging-and-testing-in-internet-explorer-made-easy/"></a></h5>
<p style="margin-bottom: 0in;"><a href="http://samuli.hakoniemi.net/debugging-and-testing-in-internet-explorer-made-easy/">http://samuli.hakoniemi.net/debugging-and-testing-in-internet-explorer-made-easy/</a></p>
<p style="margin-bottom: 0in;">I don&#8217;t develop in IE (at least, as a primary). Part of that is a residual disgust with Microsoft from the IE6 regime years, but largely it has to do with the fact that there have never been quality tools or approaches for debugging issues in IE, compared to tools like Firefox and – more recently – Chrome. The tools listed here put a heavy dent in that viewpoint.</p>
<h5 style="margin-bottom: 0in;">jQuery References</h5>
<p style="margin-bottom: 0in;"><a href="http://net.tutsplus.com/tutorials/javascript-ajax/uncovering-jquerys-hidden-features/">http://net.tutsplus.com/tutorials/javascript-ajax/uncovering-jquerys-hidden-features/</a></p>
<p style="margin-bottom: 0in;"><a href="http://addyosmani.com/blog/50-jquery-snippets-for-developers/">http://addyosmani.com/blog/50-jquery-snippets-for-developers/</a></p>
<p style="margin-bottom: 0in;">You can never have too many lists of snippets or brief how-tos on hand. These links provide a fairly extensive, if arbitrary, list ranging from simple items to things I barely know anything about. Especially useful is the concise explanation of event namespacing and what that means for rolling your own plugin.</p>
<h5 style="margin-bottom: 0in;">User Experience</h5>
<p style="margin-bottom: 0in;"><a href="http://www.uxbooth.com/blog/essential-controls-for-web-applications/">http://www.uxbooth.com/blog/essential-controls-for-web-applications/</a></p>
<p style="margin-bottom: 0in;">A well-developed list of UI controls for use in, well&#8230; anything. Screenshots and examples included! A good, quick-reference list for inspiration on your next UI project or redesign.</p>
<p style="margin-bottom: 0in;"><a href="http://www.lukew.com/ff/entry.asp?156">http://www.lukew.com/ff/entry.asp?156</a></p>
<p style="margin-bottom: 0in;">PDFs and pages of process diagrams relating to design, development, UI, and UX.</p>
<p style="margin-bottom: 0in;"><a href="http://www.jankoatwarpspeed.com/post/2010/02/26/table-ui-patterns.aspx">http://www.jankoatwarpspeed.com/post/2010/02/26/table-ui-patterns.aspx</a></p>
<p style="margin-bottom: 0in;">The title says it all: &#8220;Ultimate guide to table UI patterns&#8221;</p>
<p style="margin-bottom: 0in;"><a href="http://www.smashingmagazine.com/2010/03/11/forms-on-mobile-devices-modern-solutions/">http://www.smashingmagazine.com/2010/03/11/forms-on-mobile-devices-modern-solutions/</a></p>
<p style="margin-bottom: 0in;">Working on an iPhone app, or Droid doodle? Some examples of input forms on mobile devices/OS&#8217;s.</p>
<h4 style="margin-bottom: 0in;">Articles</h4>
<p style="margin-bottom: 0in;"><a href="http://www.smashingmagazine.com/2010/02/25/designing-user-interfaces-for-business-web-applications/">http://www.smashingmagazine.com/2010/02/25/designing-user-interfaces-for-business-web-applications/</a></p>
<p style="margin-bottom: 0in;">Containing some reference items but largely dealing with the theory behind designing for business applications versus traditional websites, a well-written article that lays out the processes involved and some best-practices for creating the levers and switches users will flip to run a web app.</p>
<p style="margin-bottom: 0in;"><a href="http://vimeo.com/9641036">http://vimeo.com/9641036</a></p>
<p style="margin-bottom: 0in;">A fantastic video visualization of data pertaining to web usage, social networking, communications usage, etc, etc. Superb visual motif and a fun little soundtrack:</p>
<p style="margin-bottom: 0in;">[vimeo]http://vimeo.com/9641036[/vimeo]</p>
<h4 style="margin-bottom: 0in;">Tools</h4>
<p style="margin-bottom: 0in;"><a href="http://gomockingbird.com/">http://gomockingbird.com/</a></p>
<p style="margin-bottom: 0in;"><a title="Mockingbird Homepage" href="http://gomockingbird.com/"><img title="mockingbird - Wireframes on the fly" src="http://ryanburrell.com/wp-content/uploads/2010/03/mockingbird_home.png" alt="mockingbird homepage" width="530" height="225" /></a></p>
<p style="margin-bottom: 0in;">A completely free, easy-to-use, web-based wireframing app. Exports to PDF or PNG formats. Create an account, save your work, share it with other people. Safari, Firefox, and Chrome only.</p>
<p style="margin-bottom: 0in;"><a title="Mockingbird App Launch" href="http://gomockingbird.com/mockingbird/"><img title="The mockingbird interface." src="http://ryanburrell.com/wp-content/uploads/2010/03/mockingbird_app.png" alt="mockingbird application screenshot" width="530" height="225" /></a></p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
]]></content:encoded>
			<wfw:commentRss>http://ryanburrell.com/2010/03/lists-of-useful-things/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Level The Playing Field: Using A Reset Stylesheet</title>
		<link>http://ryanburrell.com/2008/12/level-the-playing-field-using-a-reset-stylesheet/</link>
		<comments>http://ryanburrell.com/2008/12/level-the-playing-field-using-a-reset-stylesheet/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 14:00:14 +0000</pubDate>
		<dc:creator>Ryan Burrell</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[reset stylesheet]]></category>
		<category><![CDATA[stylesheets]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://ryanburrell.com/?p=131</guid>
		<description><![CDATA[Ever heard of a reset stylesheet?  No?

In this article, we explore what a reset stylsheet is, why it's useful, and why you should be using one.  There's a little history involved, some romance, some action, and intrigue!  Well, not really...except for the history.  We'll even do a rundown of a customized reset stylesheet gleaned from CSS master Eric Meyer.]]></description>
			<content:encoded><![CDATA[<p><img title="Reset Stylesheets: Making things flat and nifty" src="http://ryanburrell.com/wp-content/uploads/2008/12/reset.jpg" alt="A field a barley" width="530" height="180" /></p>
<p>I&#8217;ve discovered as of late that there are a lot of practices that haven&#8217;t been adopted by the web community that have been around for quite some time (meaning a year or two in web terms).  This is particularly surprising to me in some cases simply because of the sheer usefulness of the practice(s) in question.  A lot of this is simply because of ignorance, and I use that term as it was intended, not with any negative connotation.  So, to help correct that, I thought I&#8217;d churn out a quick post on one of the biggest time-savers: the reset stylesheet.</p>
<p>If you&#8217;re unfamiliar with what a reset stylesheet is, the concept is very simple.  So simple, in fact, that once you understand it you&#8217;ll wonder why we haven&#8217;t been using the idea all along.  But to understand why a reset stylesheet is so great, there&#8217;s a bit of a back story.</p>
<h2>A Brief History of Web Browsers and Why They Suck</h2>
<p>The web has been, unbeknownst to most people, a fairly brutal battleground since its inception.  The W3C has been the determining body for what standards browsers and other content devices should adhere to, and they have been soundly ignored from the beginning.  Things really came to a head in the battles between Microsoft and Netscape, with each racing to develop their own proprietary methods that would make developers want to create sites for their browser specifically.</p>
<p>Eventually things calmed down, mostly because of accessibility concerns.  However, the fallout from the earlier battles is apparent in that most browsers still have differing methods of rendering data on the screen.  Things like forms having extra spacing inside them, input fields having their own font families different from the surround elements, lists with varying levels of padding, etc.  This is a <em>huge</em> headache for design and development, to say the least.</p>
<h2>Ok, so what is it?</h2>
<p>A reset stylesheet is a specialized CSS file, or a collection of CSS definitions, that override all default styling provided by a browser for HTML tags with a visual output.  The practical result of such a sheet is that it removes the ambiguity in display, telling all browsers that <em>this</em> has <em>these</em> types of margins and <em>that</em> has <em>this</em> type of padding.</p>
<p>Exactly what a particular reset stylesheet does is, obviously, based on its contents.  Different stylesheets have been developed with varying degrees of specificity as to what styling they apply.  The stlyesheet that I&#8217;ve found to work best for most situations has been one developed by CSS guru, <a href="http://meyerweb.com/" target="_blank">Eric Meyer</a>.  I&#8217;ve made a few modifications to <a href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/" target="_blank">his stylesheet</a> and added a few other items:</p>
<p class="update">Download the stylesheet listed below here: <a href="http://ryanburrell.com/freebies/css/reset.css" target="_blank">Reset Stylesheet</a> (save as&#8230;)</p>
<ol class="code">
<li><code>html, body, div, span, applet, object, iframe,</code></li>
<li><code>blockquote, pre,</code></li>
<li><code>a, abbr, acronym, address, big, cite, code,</code></li>
<li><code>del, dfn, em, font, img, ins, kbd, q, s, samp,</code></li>
<li><code>small, strike, strong, sub, sup, tt, var,</code></li>
<li><code>dl, dt, dd, ol, ul, li,</code></li>
<li><code>fieldset, form, label, legend,</code></li>
<li><code>table, caption, tbody, tfoot, thead, tr, th, td {</code></li>
<li class="tab1"><code>margin: 0;</code></li>
<li class="tab1"><code>padding: 0;</code></li>
<li class="tab1"><code>border: 0;</code></li>
<li class="tab1"><code>outline: 0;</code></li>
<li class="tab1"><code>font-weight: inherit;</code></li>
<li class="tab1"><code>font-style: inherit;</code></li>
<li class="tab1"><code>font-size: 100%;</code></li>
<li class="tab1"><code>font-family: inherit;</code></li>
<li class="tab1"><code>vertical-align: baseline;</code></li>
<li><code>}</code></li>
<li><code>/* remember to define focus styles! */</code></li>
<li><code>:focus {</code></li>
<li class="tab1"><code>outline: 0;</code></li>
<li><code>}</code></li>
<li><code>body {</code></li>
<li class="tab1"><code>line-height: 1;</code></li>
<li class="tab1"><code>color: black;</code></li>
<li class="tab1"><code>background: white;</code></li>
<li class="tab1"><code>/* opacity: .99; text-rendering bug in Fx2/Mac --- doesn't validate */</code></li>
<li><code>}</code></li>
<li><code>h1, h2, h3, h4, h5, h6 {</code></li>
<li class="tab1"><code>margin: 10px 10px 10px 5px;</code></li>
<li class="tab1"><code>padding: 0;</code></li>
<li><code>}</code></li>
<li><code>p {</code></li>
<li class="tab1"><code>margin: 5px;</code></li>
<li class="tab1"><code>padding: 0;</code></li>
<li><code>}</code></li>
<li><code>ol, ul {</code></li>
<li class="tab1"><code>list-style: none;</code></li>
<li><code>}</code></li>
<li><code>/* tables still need 'cellspacing="0"' in the markup */</code></li>
<li><code>table {</code></li>
<li class="tab1"><code>border-collapse: separate;</code></li>
<li class="tab1"><code>border-spacing: 0;</code></li>
<li><code>}</code></li>
<li><code>caption, th, td {</code></li>
<li class="tab1"><code>text-align: left;</code></li>
<li class="tab1"><code>font-weight: normal;</code></li>
<li><code>}</code></li>
<li><code>blockquote:before, blockquote:after,</code></li>
<li><code>q:before, q:after {</code></li>
<li class="tab1"><code>content: "";</code></li>
<li><code>}</code></li>
<li><code>blockquote, q {</code></li>
<li class="tab1"><code>quotes: "" "";</code></li>
<li><code>}</code></li>
<li><code>/* CLEAFIX */</code></li>
<li><code>.clearfix:after {</code></li>
<li class="tab1"><code>content: ".";</code></li>
<li class="tab1"><code>display: block;</code></li>
<li class="tab1"><code>height: 0;</code></li>
<li class="tab1"><code>clear: both;</code></li>
<li class="tab1"><code>visibility: hidden;</code></li>
<li><code>}</code></li>
<li><code>.clearfix {display: inline-block;}</code></li>
<li><code>/* Hides from IE-mac \*/</code></li>
<li><code>* html .clearfix {height: 1%;}</code></li>
<li><code>.clearfix {display: block;}</code></li>
<li><code>/* End hide from IE-mac */</code></li>
<li><code>.clearer {</code></li>
<li class="tab1"><code>clear: both;</code></li>
<li><code>}</code></li>
</ol>
<p>It&#8217;s a bit lengthy, but still a very small overall file as far as size is concerned.  It can obviously be condensed and is presented in its current format for readability.  The notable changes that I&#8217;ve made to Eric&#8217;s base stylesheet have been the addition of the &#8220;clearfix&#8221; methodology (as described at <a href="http://www.webtoolkit.info/css-clearfix.html" target="_blank">Webtoolkit</a>) to the bottom, as well as a utility clearing class that I found myself using in nearly every site.</p>
<p>Briefly, what the above code does:</p>
<ul>
<li>The <code>&lt;html&gt; &lt;body&gt; &lt;div&gt; &lt;span&gt; &lt;form&gt; &lt;ul&gt; &lt;ol&gt;</code> and other tags are all specifically told to have no margins, no padding, no borders, no outlines, and to inherit their font settings from their parent elements.</li>
<li>The <code>&lt;body&gt;</code> is given a default <code>color</code> attribute of <code>black</code> and a default <code>background</code> color of <code>white</code>, so you don&#8217;t have to set these every time you make a new site.</li>
<li>Headings and paragraphs are given a specified set of margins and zero padding.</li>
<li>List items are set to show no bullet or other notation by default (especially useful since most lists tend to end up as navigation or with custom styling).</li>
<li>For browsers with better support of CSS2 &amp; 3 standards, other things like defining a default focus state for form elements are added as well.</li>
<li>The clearfix code snippets allow the application of a <code>clearfix</code> class to any element, resulting in that element clearing itself after all floated elements inside it (<em>extremely </em>useful).</li>
<li>The utility <code>clearer</code> class can be applied to any element, causing it to clear any floats above it.</li>
</ul>
<p>And that&#8217;s basically it.  Here are some important tips and directions:</p>
<ul>
<li>Include your reset stylesheet <em>above all other stylesheets</em>.  People tend to forget that HTML is read in a procedural manner, and if your reset stylesheet is placed below all other stylesheets, it&#8217;s styling will take precendence over the other CSS definitions. &#8220;Thou shalt not have other stylesheets before me.&#8221;</li>
<li>To make your life less of a hassle, <em>always</em> include your reset stylesheet from the very start of your design/development.  Trying to add a reset stylesheet after the fact can sometimes be more of a headache than starting from scratch.</li>
<li>Recycle!  Save your reset stylesheet code as a snippet or simply as a file located somewhere that you can easily copy and paste into any new projects you begin to work on.</li>
</ul>
<p>Thanks to all those people who have developed this idea long before I got hold of it, because it has saved me a ton of time and headache.  Enjoy!</p>
<p class="credit">Image credit: <a href="http://www.sxc.hu/profile/sumeja" target="_blank">sumeja</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ryanburrell.com/2008/12/level-the-playing-field-using-a-reset-stylesheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

