<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Monday By Noon</title>
	
	<link>http://mondaybynoon.com</link>
	<description>A resource for Web designers and developers to read about and discuss their craft.</description>
	<lastBuildDate>Mon, 06 Jul 2009 19:18:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/MondayByNoon" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Current Events: The Official End to XHTML</title>
		<link>http://mondaybynoon.com/2009/07/06/current-events-the-official-end-to-xhtml/</link>
		<comments>http://mondaybynoon.com/2009/07/06/current-events-the-official-end-to-xhtml/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 11:43:47 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[Current Events]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Semantics]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[XHTML 2]]></category>
		<category><![CDATA[XHTML2]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=505</guid>
		<description><![CDATA[XHTML 2 has been officially dropped in favor of HTML 5. Find out what that means to you.]]></description>
			<content:encoded><![CDATA[<p>Late last week, the <a href="http://www.w3.org">W3C</a> released a seemingly &#8220;light on perceived emphasis&#8221; note announcing that the <a href="http://www.w3.org/News/2009#item119">XHTML 2 working group is expected to disband</a> at the end of 2009. The long running debate between XHTML and HTML has finally come to a close, and we&#8217;re all better off for it. Regardless of your opinion on the subject, you&#8217;re better off. Instead of two camps working toward separate goals, our efforts are now combined for the greater good and we&#8217;ll all benefit.</p>

<h2>It&#8217;s been a long time coming</h2>

<p>The debate has raged for quite some time, and many people have taken a stand on the matter, <a href="http://mondaybynoon.com/2008/06/30/siding-with-html-over-xhtml-my-decision-to-switch/">including myself</a>. From the people I talked to, most had taken a stance on one side of the line, and been comfortable in doing so. Each camp had good reason behind its decision, but HTML 5 is now the official victor.</p>

<p>The response to the announcement has been very&#8230; interesting. There is quite a bit more misinformation out there than I had originally expected. I realize that not every developer writing markup is going to know the defining characteristics of such emerging technologies, but there are some misconceptions out there that just don&#8217;t fit. If you&#8217;re at all confused behind either technology, there is <em>a ton</em> of information out there, and I highly recommend you bookmark a few articles to read at your leisure over the coming weeks.</p>

<ul>
	<li><a href="http://www.alistapart.com/articles/previewofhtml5">A List Apart: A Preview of HTML 5</a></li>
	<li><a href="http://www.alistapart.com/articles/semanticsinhtml5/">A List Apart: Semantics in HTML 5</a></li>
	<li><a href="http://www.optimiced.com/en/2009/05/15/xhtml1-html4-html5/">XHTML 1.0 vs. HTML 4.01 (or HTML 5)?</a></li>
	<li><a href="http://xhtml.com/en/future/x-html-5-versus-xhtml-2/">X/HTML 5 Versus XHTML 2</a></li>
	<li><a href="http://www.cmswire.com/cms/industry-news/setting-the-standards-html-5-vs-xhtml-2-002032.php">Setting the Standards: HTML 5 vs. XHTML 2</a></li>
</ul>

<p>Reading a few of those articles should really help you to begin to understand the fundamental differences between HTML 5 and XHTML 2. They will also help you to recognize the similarities as well.</p>

<h3>What it means to you</h3>

<p>One of the most interesting pieces of commentary I&#8217;ve come across to date on the subject is the reactions posted to <a href="http://www.zeldman.com">Mr. Zeldman&#8217;s</a> <a href="http://www.zeldman.com/2009/07/02/xhtml-wtf/">XHTML DOA WTF</a>. It&#8217;s obvious from that comment thread alone that there is far too much confusion surrounding this decision that has been made by the W3C. Many people don&#8217;t understand the true effect this has on our future work, and fail to see the benefit of such a decision being made. Also a very interesting read, specifically as a follow-up to Mr. Zeldman&#8217;s comment thread, is <a href="http://stoneship.org/journal/2009/comments-on-comments-on-zeldmans-xhtml-wtf/">Comments on Comments on Zeldman&#8217;s XHTML [DOA] WTF</a>.</p>

<p>A great way to continue the streak of knowledge is to check out a great resource that has bubbled up recently: <a href="http://hsivonen.iki.fi/xhtml2-html5-q-and-a/">An Unnofficial Q&amp;A about the Discontinuation of the XHTML2 WG</a>. Although unofficial, it is by far the most targeted Q&amp;A I&#8217;ve seen so far. A <em>big</em> take home message in the Q&amp;A is this:</p>

<blockquote cite="http://hsivonen.iki.fi/xhtml2-html5-q-and-a/">
	<dl>
		<dt>Did the W3C kill XHTML2?</dt>
		<dd>No, XHTML2 was already dead for all practical purposes due to its failure to be backwards compatible and its failure to deliver compelling new features. The W3C just announced they will take it off life support.</dd>
	</dl>
</blockquote>

<p>XHTML2 has indeed been dead for some time, the announcement only makes it as official as it could ever be.</p>


<h3>It&#8217;s a great move for everybody</h3>

<p>I&#8217;m a huge fan of HTML 5, and I was pleasantly surprised to see the announcement from the W3C last week. I&#8217;ll also go on record saying that although it was beyond the scope I had imagined, the reaction of many developers is completely expected. Unfortunately that&#8217;s a result of not enough self-education, and will eventually sort itself out. I will continue to prefer HTML as opposed to XHTML simply because I will continue to enforce the aspects of XHTML I really enjoyed in the HTML I&#8217;ve been writing and will continue writing. Another piece to take home from <a href="http://hsivonen.iki.fi/xhtml2-html5-q-and-a/">An Unnofficial Q&amp;A about the Discontinuation of the XHTML2 WG</a> is:</p>

<blockquote cite="http://hsivonen.iki.fi/xhtml2-html5-q-and-a/">
	<dl>
		<dt>If I upgrade from XHTML-served-as-text/html to HTML5, do I need to revise all my empty tags?</dt>
		<dd>No. HTML5 permits both the XHTML-style syntax (&lt;br/&gt;) and the HTML 4-style syntax (&lt;br&gt;) for void elements (elements that never take any content).</dd>
	</dl>
</blockquote>

<p>The syntax rules seem to be the most common denominator when it comes to XHTML fans. You can still write markup in a very strict way, but you&#8217;ll need to enforce it yourself as the rules themselves are more lenient.</p>

<p>Last, but absolutely not least, how can you not like this:</p>

<blockquote cite="http://hsivonen.iki.fi/xhtml2-html5-q-and-a/">
	<dl>
		<dt>What’s the doctype for HTML5 documents?</dt>
		<dd>Simply: &lt;!DOCTYPE html&gt;</dd>
	</dl>
</blockquote>

<p>There is quite a bit of great information in <a href="http://hsivonen.iki.fi/xhtml2-html5-q-and-a/">An Unnofficial Q&amp;A about the Discontinuation of the XHTML2 WG</a> and you should assign it to yourself as required reading this week, along with a number of other articles on HTML 5 and what it means to everyone, not just us writing the markup.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=mS280BslUTk:pSq_-SK-mww:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=mS280BslUTk:pSq_-SK-mww:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=mS280BslUTk:pSq_-SK-mww:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=mS280BslUTk:pSq_-SK-mww:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=mS280BslUTk:pSq_-SK-mww:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MondayByNoon/~4/mS280BslUTk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/2009/07/06/current-events-the-official-end-to-xhtml/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google’s “Let’s Make the Web Faster” Movement</title>
		<link>http://mondaybynoon.com/2009/06/29/googles-lets-make-the-web-faster-movement/</link>
		<comments>http://mondaybynoon.com/2009/06/29/googles-lets-make-the-web-faster-movement/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 12:04:57 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[front end]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[Page Speed]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=496</guid>
		<description><![CDATA[Google's Let's Make the Web Faster and Page Speed Firebug add-on can help you optimize your Web pages.]]></description>
			<content:encoded><![CDATA[<p>I love Google, I really do. The company and all of its work is heavily integrated into everyone&#8217;s lives no matter how hard you may try to escape it. Google not only takes a lot of initiative when it comes to the Web in general, Google has done a lot to facilitate Web development on many levels. From <a href="http://code.google.com/">Google Code</a> to <a href="http://gears.google.com/">Google Gears</a> and many (<strong><em>many</em></strong>) in between, Google&#8217;s latest venture, <a href="http://code.google.com/speed">Let&#8217;s Make the Web Faster</a>, is geared directly at Web developers.</p>


<h2>What you can learn</h2>

<p>By far the largest resource available on Let&#8217;s Make the Web Faster is the <a href="http://code.google.com/speed/articles/">collection of articles</a> available. The articles are put together quite well, involving a good blend of video and supporting imagery. You&#8217;ll be able to quickly learn the background behind some of the jargon used in document optimization.</p>

<p>Articles aren&#8217;t limited to front end development, because there&#8217;s more to writing markup and style if you&#8217;re a Web designer. Google takes the time to discuss other relevant areas such as the <a href="http://code.google.com/speed/articles/optimizing-images.html">optimization of Web graphics</a> for faster download times without losing quality. There are also articles on <a href="http://code.google.com/speed/articles/optimizing-javascript.html">optimizing your JavaScript</a> and even some <a href="http://code.google.com/speed/articles/optimizing-php.html">PHP performance tips</a>. One of the headlines that first caught my attention was <a href="http://code.google.com/speed/articles/usability-latency.html">UI Messaging and Perceived Latency</a> &#8212; what a great topic. Google also includes a number of links to various Tech Talks @ Google, which are always a good watch.</p>

<p>Let&#8217;s Make the Web Faster launched as a very information-rich resource, and I imagine Google will be adding new articles fairly consistently from here on out. What&#8217;s great is that Google has done its part in retaining the community value of Web developers by devoting a section of Let&#8217;s Make the Web Faster to <a href="http://code.google.com/speed/community.html">the community</a>, opening doors for your input.</p>


<h3>As with everything, be wary</h3>

<p>Just because you read it on the Internet, the information you got may not be bulletproof, even if Google wrote it. Articles attempting to <a href="http://www.codexon.com/posts/debunking-googles-internet-optimization-tips">Debunk Google&#8217;s Internet Optimization Tips</a> are beginning to crop up, and I think it&#8217;s great. Google suggests a number of techniques, actively put in practice on many Google products, that I will personally never employ just because it skirts around a rule or two. Saving a few bytes by writing sloppy code just isn&#8217;t something I&#8217;m interested in doing.</p>

<p>Like <strong>every</strong> Web designer, I&#8217;ve worked in PHP. I tend to really like PHP, but I don&#8217;t know PHP on the intimate level that programmers know PHP. I&#8217;m still learning about how the language itself actually works. I&#8217;m specifically interested in what PHP does differently than other languages which causes it to be huffed and puffed upon by so many.</p>

<p>It&#8217;s very interesting to read that some of the <a href="http://code.google.com/speed/articles/optimizing-php.html">PHP optimizations</a> suggested by Google <a href="http://groups.google.com/group/make-the-web-faster/browse_thread/thread/ddfbe82dd80408cc?pli=1">may not be entirely accurate</a>. I always enjoy reading technical pieces written by programmers who will always know more than me about programming. The existence of such a thread shows the nature of the PHP community, and it&#8217;s good to see that even Google might not know everything after all.</p>

<p>The important thing to keep in mind when reading <a href="http://code.google.com/speed">Let&#8217;s Make the Web Faster</a>, as with reading <em>every</em> article on the topic of Web development, is to take everything with a grain of salt, and to not follow the advice blindly.</p>


<h2>Page Speed for Firebug</h2>

<p>Everyone knows about <a href="http://getfirebug.com/">Firebug</a>. It&#8217;s arguable the most widespread, actively used tool by the majority of developers and designers, and for good reason. The tool changed the way many people approach front end development, and it was a true game changer.</p>

<p>Some time ago, Yahoo! released an add-on for Firebug called <a href="http://developer.yahoo.com/yslow/">YSlow</a>. The tool aimed to help developers analyze documents and suggest optimizations not only for speed, but <a href="http://developer.yahoo.com/performance/rules.html">rules for optimization</a>. YSlow proved to be very helpful for many people, and I know I learned a thing or two about some of the techniques I had been using for quite some time.</p>

<p>As part of Google&#8217;s initiative, they have released <a href="http://code.google.com/speed/page-speed/">Page Speed</a>, also a Firebug add-on aimed at page performance analysis. After installing the Page Speed add-on, you&#8217;ll notice a new tab within Firebug:</p>

<p><img src="http://mondaybynoon.com/images/pagespeed01.png" alt="Screenshot of Google's Page Speed Firebug add-on, default tab"></p>

<p>As with YSlow, you need to invoke the analysis by clicking a button quickly after navigating to the document you&#8217;d like to test. After completion, you&#8217;re provided with a very detailed report containing a breakdown of the criteria against which your document was run:</p>

<p><img src="http://mondaybynoon.com/images/pagespeed02.png" alt="Screenshot of Google's Page Speed Firebug add-on, after site analysis"></p>

<p>Additionally, Page Speed takes another step forward in offering to apply a number of optimizations to your document immediately. For instance, if deemed necessary, Page Speed will go ahead and minimize your JavaScript on the fly, as the browser downloads the JavaScript, having an optimized version ready at any time:</p>

<p><img src="http://mondaybynoon.com/images/pagespeed03.png" alt="Screenshot of Google's Page Speed Firebug add-on, offering minified JavaScript"></p>

<p>The last feature within Page Speed I&#8217;d like to tout is the CSS analysis. Beyond suggesting the combination of CSS files to reduce the number of HTTP requests, Page Speed will examine your style sheet on a per-line basis, letting you know what could be written better:	</p>

<p><img src="http://mondaybynoon.com/images/pagespeed04.png" alt="Screenshot of Google's Page Speed Firebug add-on, CSS analysis"></p>

<p>Page Speed will separate your &#8216;very inefficient&#8217; and &#8216;inefficient&#8217; rules and let you know what makes each less than ideal.</p>

<p>As with YSlow, Page Speed has links throughout the panel directing you to the information backing up the suggestion, found on Google&#8217;s <a href="http://code.google.com/speed">Let&#8217;s Make the Web Faster</a>. I would suggest that everyone have <a href="http://code.google.com/speed/page-speed/">Page Speed</a> at the ready during a testing phase of a Web project. It will make sure your documents are top notch concerning performance, and you&#8217;ll become a better developer because of it.</p>

<p>There is an <a href="http://code.google.com/speed/page-speed/docs/using.html">abundance of information available</a> if you&#8217;d like to read a bit more before installing Page Speed. Even if you&#8217;re not a Firefox user, I absolutely suggest keeping it on hand not only for render tests, but optimization tests using Page Speed as well.</p>

<h3>Overall impression</h3>

<p>There is a lot to learn as far as Web page optimization goes. As new technology appears, you&#8217;ll have to learn even more, but it&#8217;s an important aspect of Web design and a valuable part of the medium. It&#8217;s important for you as a professional to know how to produce work of the highest caliber, and optimizations can do a great deal to make your work feel that much more polished. Google&#8217;s &#8220;<a href="http://code.google.com/speed">Let&#8217;s Make the Web Faster</a>&#8221; is a great platform that should help spread the word very quickly to a large audience.</p>

<p>I hope to see Google continue developing content for the recent project, and I hope to see a decent community response, especially debunking any poor advice Google may be giving by offering detailed responses. While certain practices may achieve the most desirable result, it will be up to the community to ensure that the actions aren&#8217;t welcoming detrimental side effects causing more problems than before.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=lz-GnP7HuYc:_hinEBTnho0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=lz-GnP7HuYc:_hinEBTnho0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=lz-GnP7HuYc:_hinEBTnho0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=lz-GnP7HuYc:_hinEBTnho0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=lz-GnP7HuYc:_hinEBTnho0:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MondayByNoon/~4/lz-GnP7HuYc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/2009/06/29/googles-lets-make-the-web-faster-movement/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Improving Your Process: Faster Front End Development</title>
		<link>http://mondaybynoon.com/2009/06/15/improving-your-process-faster-front-end-development/</link>
		<comments>http://mondaybynoon.com/2009/06/15/improving-your-process-faster-front-end-development/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 12:19:59 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Improving Your Process]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=490</guid>
		<description><![CDATA[Time is very important in Web design. Here are a few tips to keep that time to a minimum, allowing for budgeted experimentation and polish.]]></description>
			<content:encoded><![CDATA[<p>In our business, time is of the essence. Regardless of your billing policies, as a professional designer it is <strong>imperative</strong> that you have the ability to accurately estimate a workload <em>and then follow through, <strong>on schedule</strong></em>. The ability to estimate work comes only with experience. You can read countless articles on design, even specifically on Web design, but until you get at least a year of consistent, professional work under your belt, it just won&#8217;t be there. It&#8217;s absolutely no fault of your own, simply because you haven&#8217;t worked enough.</p>

<p>That said, depending on your billing structure, you&#8217;ll be able to optimize your workflow in such a way that not only reduces your stress level, but will make your clients happy to boot. I mention a dependence on your billing structure simply because sometimes getting a project done well under a time-based budget can result in trouble for you financially. The important thing to realize, however, is that with newfound extra time comes extra polish. If you come in a few hours under budget, you now have the time to try that element you were toying with in design. Does it work now? How about the leading in that area? Would it look better if it were bumped up, just a bit?</p>

<p>Reducing the time you spend on front end development can lead to more experimentation and a better end product should you have extra time to play with late in a project. Personally, I like to keep front end development estimates to a minimum, allowing the budget to focus on design. I work with a team of designers, so the better we plan from the start, the better a project will go.</p>



<h2>Have a plan, start with a static file</h2>

<p>By far the most effective way to cut down on front end development time is to be involved in the design process. You don&#8217;t even have to be the designer, but you should periodically review any design for a basic feasibility assessment. That&#8217;s not to say that you should be prototyping designs to make sure something is going to work, but you should be able to process a design to a level that will let you be comfortable with it.</p>

<p>As you examine a design, try to abstract your brain from admiring the aesthetics of the design. Try to visualize how you will approach the front end for this document. Take a look at a comp for another page, can you determine how much markup and style you&#8217;ll be able to reuse from the first page to this one? Are there any modifications that should be made to the design to establish some consistency on a more technical level? Take a second look at the design, take a third look. Has someone added a gradient or texture that physically can&#8217;t translate to the Web?</p>

<p>Once you&#8217;ve signed off on approval for a design and it comes time to begin work, I can&#8217;t emphasize enough how much it will help you to start with a static HTML document. Stay away from your server side technology, no matter what it is, and instead use a static file that takes advantage of any dynamic resources you&#8217;ve set up.</p>

<p>For example, at my company we&#8217;ve established a site framework that we use to begin each project. In this site framework is your usual array of template-supported, server-side powered files that tie in directly with our <abbr title="Content Mangement System">CMS</abbr>, and the like. Alongside this set of files are two static files: <code>home.html</code> and <code>secondary.html</code>. These are the first two files I&#8217;ll open and work with on a project.</p>

<p>The files are prepped in such a way that the path to the <abbr title="Cascading Style Sheets">CSS</abbr> directory is hard coded, removing the need to copy and paste once our original documents have been written. I&#8217;ll work my way through a secondary page, <strong>then</strong> the home page, and once that&#8217;s done, I&#8217;ll integrate.</p>



<h2>Write your markup first, all of it</h2>

<p>Nearly two years ago, I wrote about <a href="http://mondaybynoon.com/2007/01/29/my-development-and-design-process/">my development and design process</a>. Much of my strategy remains the same to this day, specifically the first steps I take. The initial markup process ties in heavily with the original review of a site design. From the first time I open a PSD or PNG my mind begins working, breaking down the design into markup and markup alone.</p>

<p>I&#8217;ll break apart the design into sections, until I&#8217;ve found myself at the lowest common denominator, whether it be an <code>h3</code> or an <code>li</code>. Once I&#8217;ve got a general idea of the overall structure, I&#8217;ll write it. All of it, from <code>#header</code> to <code>#footer</code>. I&#8217;ll switch to and from Fireworks (or Photoshop) and my editor, making sure all of my elements are in place.</p>

<p>Writing the initial markup for a document doesn&#8217;t take very long, an hour if you take your time. There really isn&#8217;t that much to it, especially if you&#8217;ve had a look at the design as it was being put together. You already know what to expect, and you can hit the ground running.</p>

<p>The important thing to keep in mind at this step is optimization. Don&#8217;t move on to CSS until every bit of markup is in place to support the design. Sure, you&#8217;re probably going to have to add an element or two as you continue development, but getting the initial structure <em>entirely</em> in place will be super helpful when it comes to the style layer.</p>



<h3>Use a reset stylesheet</h3>

<p>I can&#8217;t stress enough <a href="http://mondaybynoon.com/2008/04/21/why-i-like-and-use-reset-css/">how helpful a reset stylesheet is</a> when it comes to optimizing your front end development. It doesn&#8217;t have to be Eric Meyer&#8217;s reset stylesheet, but working from a consistent base is extremely helpful when it comes to building out your CSS, even more-so when it comes to <a href="http://mondaybynoon.com/2009/03/09/improving-your-process-the-browser-gauntlet/">The Browser Gauntlet</a>.</p>



<h3>Write CSS in blocks</h3>

<p>I can remember my first few weeks with CSS; I&#8217;ve never been so excited to refresh a browser, and I never will be again. With each refresh came a new and exciting change that I was struggling to understand. Learning about CSS was very exciting for me, but it forced me to implement designs slower than ever. As with everything, the more you do, the better you get. As your skill with CSS grows, force restraint on yourself when you think you need to refresh the browser.</p>

<p>Chances are, that <code>property:value;</code> you just set is going to work out just fine. Move on to the next, and the next. Finish setting all the properties you want for that selector and <em>then</em> switch over to refresh. Once you&#8217;ve become comfortable with that, style an entire <code>div</code> before refreshing. Once you&#8217;ve become comfortable with that, structure your entire document before refreshing, and the move on to styling each <code>div</code> you just positioned.</p>

<p>The more CSS you can write in a single thought, the better <strong>and faster</strong> you&#8217;ll be. The important thing to keep in mind, though, is not to write too much at once. As you&#8217;re forcing yourself not to refresh, you may make a significant mistake that wreaks havoc on a few dozen lines of later CSS. Push yourself, but don&#8217;t push yourself too far too fast.</p>


<h3>Save JavaScript until last</h3>

<p>Exciting as it may be to implement, make sure you&#8217;re postponing <strong>all</strong> JavaScript development until last. Integrating JavaScript too early is going to destroy the integrity of both your markup and style, and will cause more trouble than it&#8217;s worth.</p>

<p>Instead, take the time to develop the markup and style for any states you may be integrating with JavaScript, and make sure they&#8217;re ready to be toggled (or otherwise) via JavaScript. Abstracting markup and style from JavaScript can help you to focus and optimize as you put together a design.</p>



<h3>Take advantage of helpful tools</h3>

<p>My last tip is something I depend very heavily on; finding the right tools for the job. If there are any applications under consistent development and refinement, it&#8217;s Web development applications and tools. Even browser makers are now giving us gold platters with which to work through built in developer tools.</p>

<p>First, find yourself a great text editor. Who cares what everyone else is using, find something that you enjoy working with, and most important: something stable that saves you time. I can definitively say that <a href="http://macromates.com/">TextMate</a> (Windows users: <a href="http://www.e-texteditor.com/">e text editor</a>) has had significant impact on my development time.</p>

<p>There are plenty of fancy tools out there, but I can&#8217;t stress enough the importance of your editor.</p>

<p>Along with your editor, another integral part of your workflow is your browser of choice. Your browser should support your efforts, providing the tools you need to get the job done. Toolsets for browsers have been talked to death, but a favorite tool of mine has never received much press, and I&#8217;d like to heavily suggest your adoption of it.</p>

<p><a href="http://dmachi.dojotoolkit.org/recss.html">ReCSS</a> is a bookmarklet that comes from <a href="http://dojotoolkit.org/">dojo</a> and it&#8217;s something I use on a very consistent basis with every project. The sole purpose of the bookmarklet is to force a reload of CSS used on the current document. This helps you to avoid reloading the entire page (including server processing and other latency) and instead request only the latest stylesheets. It&#8217;s such a simple idea, but I&#8217;ll use the bookmarklet at least a few dozen times per-project to ensure that I&#8217;m not dealing with any caching issues.</p>

<h4>Let&#8217;s have it</h4>

<p>Do everyone a favor and post your favorite time saving front end development tip or trick.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=91Q8KkzQ5D0:u9v85BZlHF4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=91Q8KkzQ5D0:u9v85BZlHF4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=91Q8KkzQ5D0:u9v85BZlHF4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=91Q8KkzQ5D0:u9v85BZlHF4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=91Q8KkzQ5D0:u9v85BZlHF4:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MondayByNoon/~4/91Q8KkzQ5D0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/2009/06/15/improving-your-process-faster-front-end-development/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Improving Your Process: Thinking More About Your CSS</title>
		<link>http://mondaybynoon.com/2009/06/01/improving-your-process-thinking-more-about-your-css/</link>
		<comments>http://mondaybynoon.com/2009/06/01/improving-your-process-thinking-more-about-your-css/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 13:17:50 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Improving Your Process]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[organization]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=486</guid>
		<description><![CDATA[It's important to constantly improve yourself, even when you've become completely comfortable with it. CSS is a simple technology, but putting proper thought behind it can make a stylesheet beautiful.]]></description>
			<content:encoded><![CDATA[<p>Over the past few months, I&#8217;ve been trying to keep an eye on myself as far as writing CSS goes. Writing CSS leaves a lot in the hands of the author, and every designer has his or her very own method to madness. When it comes to CSS, you can do anything you want, which is mostly valuable, but sometimes hurtful with inexperience. I&#8217;m always curious to know the thought process behind writing CSS from the eyes of the author, as every stylesheet can be quite different from the next.</p>

<p>The way you write your CSS today depends heavily on what you were initially taught (self or otherwise) in conjunction with other things such as what you&#8217;ve read that counteracts your teachings, as well as the level of desire to improve your craft. I like finding out the lessons learned behind your reasons (or lack thereof) for writing CSS the way you do.</p>

<p>I really enjoy writing about CSS, and if you&#8217;re a fairly recent subscriber, here&#8217;s a quick breakdown of my tips, tricks, and suggestions from the past:</p>

<dl>
	<dt><a href="http://mondaybynoon.com/2006/02/19/write-better-css/">Write Better CSS</a></dt>
	<dd>One of the earliest articles I had written for Monday By Noon, but I still practice much of what was written over three years ago.</dd>
	<dt><a href="http://mondaybynoon.com/2007/02/26/improving-your-process-css-techniques-part-1/">Improving Your Process: CSS Techniques Part 1</a></dt>
	<dd>In the first part of the Techniques series, I mentioned a few ways that I tried to be more organized with my CSS writing, especially when working with a team. I have made some revisions since the publication of that article, specifically in <a href="http://mondaybynoon.com/2008/04/21/why-i-like-and-use-reset-css/">dealing with browser defaults</a>. Apart from that, I still stand by the advice offered in that piece.</dd>
	<dt><a href="http://mondaybynoon.com/2008/01/14/improving-your-process-css-techniques-part-2/">Improving Your Process: CSS Techniques Part 2</a></dt>
	<dd>In this article I made public my switch to using a reset stylesheet. I also tried to put into words some of the thought process behind my front end development process. You won&#8217;t find many code samples in that article.</dd>
	<dt><a href="http://mondaybynoon.com/2008/09/01/css-organization-methods-and-writing-style/">CSS Organization Methods and Writing Style</a></dt>
	<dd>This article was all about writing style. Style as far as comment blocks, overall stylesheet organization, right down to single line versus multiline. I touched on the idea of using flags as a hook for searching to quickly find various sections of your stylesheet, but that didn&#8217;t catch on with me.</dd>
</dl>

<p>With that reviewed, I&#8217;ve got a few other things I&#8217;d like to share as far as my CSS writing style is concerned.</p>

<h2>It&#8217;s about patterns</h2>

<p>One of the best habits I&#8217;ve found for myself is the desire to find patterns in designs. Patterns go a long way in design, and every good design inherits a certain level of pattern. Whether it be in organization, texture, or otherwise, a pattern provides consistency, and you&#8217;ll see patterns everywhere on the Web.</p>

<p>It will be in your absolute best interest to discover these patterns prior to writing a single line of markup or style. You want to use patterns to your benefit. Not only will finding patterns reduce your workload, it will make maintenance that much easier.</p>

<p>Jeff Croft recently posted an insightful article on finding patterns in CSS, but instead compared it to <a href="http://jeffcroft.com/blog/2009/may/20/applying-oop-concepts-css/">applying <abbr title="Object Oriented Programming">OOP</abbr> concepts to CSS</a>. I&#8217;m a big fan of Jeff, and much of my fandom comes from a similarity not only in workflow, but also opinion and thought process when it comes to Web design. In that article, Jeff puts into words something I&#8217;ve tried to verbalize in the past, and I&#8217;m thrilled to have it as a reference now.</p>

<p>I can see how using OOP methods in your CSS can be an eye-opening discovery, but it&#8217;s <em>very important</em> that you don&#8217;t become overzealous with it. As with many aspects of Web design, there is a fine line to walk when it comes to finding a happy medium with something like this. You&#8217;ll need to take a step back and really think about your implementation before taking action, else you&#8217;ll find yourself fighting an uphill battle when it comes to troubleshooting and maintenance. Using too many classes in a widespread way is going to cause trouble when you need to make a sitewide change and need to edit nearly every file on the site because you used a combination of classes in too many places.</p>

<p>Before I begin writing a line of markup, I take enough time to look at every comp for a website. I&#8217;ll look to see which elements, both structural and stylistic, have a repetitious property to them. I&#8217;ll keep these repetitions in mind as I write my initial markup, and then again when I&#8217;m later starting to write my CSS, and use the patterns to my advantage. Experience will help you better recognize and use patterns as you design and build more websites, but it will be a great skill to focus on throughout your career.</p>

<h3>It&#8217;s also about structure</h3>

<p>One of my biggest peeves when maintaining CSS is poor stylesheet structure. That is to say, when a production stylesheet has been in place for a decent amount of time, and the website has undergone some revisions, the edits were not properly put in place. Instead, declarations are sometimes simply appended to the end of the file to ensure their application, instead of finding the proper place in the file in which to make a change. I can recognize the desire to do such a thing, especially if you&#8217;re doing maintenance yourself, and the original file structure is so unkempt it would take hours to sift and organize it yourself. While the fault lies with the original author, it&#8217;s something that should be entirely avoided from the start.</p>

<p>I don&#8217;t mean to say that the way I write my CSS is a superior way to do so, my point is that you <strong>need</strong> to have some structure to your stylesheets. The technique I use for structuring my stylesheets is roughly the following:</p>

<ol>
	<li>Global styles such as &#8216;main&#8217; copy properties (size, color, font) at the top</li>
	<li>Global structure definition (main (secondary) page structure)</li>
	<li>Header styles</li>
	<li>Content area styles</li>
	<li>Sidebar styles</li>
	<li>Footer styles</li>
	<li>Per-page specific styles</li>
</ol>

<p>My basic reasoning is to work top down as far as specificity is concerned. I&#8217;ll work from the most global properties down to the most detailed as I work through a stylesheet. I try to keep things organized with how I think in a way. I&#8217;ll start with the main structure of the document, and then continue to style the header, content area, sidebar, and footer, respectively.</p>

<p>Once the more generic, consistent styles are taken care of, I&#8217;ll set up sections of the stylesheet specifically for one-off pages in the site should the design require it. Proper attention is given to these groups of styles via comments outlining which page is associated with a set of selectors.</p>

<p>Working in such a way will help you abstract which edits will affect the site in its entirety as opposed to the single instance you&#8217;re trying to modify. When working on a site you didn&#8217;t originally style, it&#8217;s very easy to make an edit that may in fact destroy a significant portion of the site you&#8217;re not even aware of.</p>

<h3>Do you consitently keep your CSS in check?</h3>

<p>Is it strange that I still put this much emphasis on the quality of my stylesheets? Are you at all interested in how other people write CSS or do you prefer to work in the way you&#8217;re comfortable? What techniques do you use when organizing your stylesheets from a more global perspective, as opposed to writing comments here and there for reference?</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=XsabSyFTzGU:B6YUfX6yUio:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=XsabSyFTzGU:B6YUfX6yUio:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=XsabSyFTzGU:B6YUfX6yUio:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=XsabSyFTzGU:B6YUfX6yUio:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=XsabSyFTzGU:B6YUfX6yUio:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MondayByNoon/~4/XsabSyFTzGU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/2009/06/01/improving-your-process-thinking-more-about-your-css/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Building Functional Alt Sites using SWFAddress</title>
		<link>http://mondaybynoon.com/2009/05/18/building-functional-alt-sites-using-swfaddress/</link>
		<comments>http://mondaybynoon.com/2009/05/18/building-functional-alt-sites-using-swfaddress/#comments</comments>
		<pubDate>Mon, 18 May 2009 15:40:37 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[SWFAddress]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=478</guid>
		<description><![CDATA[When developing a full Flash website, it is very important to provide an effective alternate site for viewing. SWFAddress helps extensively with exactly that.]]></description>
			<content:encoded><![CDATA[<p>My position on Flash changes from time to time, but to be brutally honest, I&#8217;m not a big fan. I absolutely see its worth, and understand that using Flash can enhance the experience of a website in a wide variety of ways. To me, though, Flash is not the Web at its greatest. The Web, to me, is information. It&#8217;s a living, ever expanding library of data available for our interpretation and digestion. That&#8217;s not to say that the Web can&#8217;t be used as an entertainment platform, however. The Web is becoming more adaptive to the entertainment industry than it has ever before, and all for good reason.</p>

<p>When it comes to websites though, seeing a website built in Flash is a near guaranteed turn off personally. To me, a website built in Flash forks away from the inherent purpose of a website, and turns into a novelty. From the most generic standpoint, my opinion doesn&#8217;t even generate from the accessibility and performance concerns that come from a website built in Flash. It&#8217;s the usability of the website, the fact that it&#8217;s just, different.</p>

<p>However, many clients are attracted to websites built entirely in Flash. To me that comes from an interest rooted in everyone: motion. Things that move are, by default, more interesting to look at. I think I&#8217;ve discovered that my distaste for such things comes from a personal appreciation that has evolved as a Web designer. To me, a website with a solid design, solid information architecture, is extensively more pleasing than something that glows and animates left to right simply for the sake of visual stimulus. Information architecture, to me, is that visual stimulus, and making it move around completely detracts from my experience.</p>

<p>I don&#8217;t mean to say that a Flash site, by default, lacks anything from an information architecture point of view. In fact I&#8217;ve seen many Flash based websites that were designed terrifically, I simply would have preferred to view it as markup and style. I have the upmost respect for Flash designers &amp; developers, as some of the work is simply stunning. I&#8217;m speaking from an abstract personal preference here, full of my own bias. I don&#8217;t mean to offend and I hope this isn&#8217;t coming off with any sort of attitude.</p>

<h2>Working with Flash as a front end developer</h2>

<p>I think my opinion of Flash based sites comes from my position as a Web designer. Specifically I&#8217;m a Web designer with a focus on front end architecture, quite different from a Flash designer. I&#8217;m a big believer in great teams working very well together, and my company has some terrifically talented Flash developers that I work with every day to create stunning pieces that please our clients. I need to put my opinions aside and make sure that the client gets what he wants, all the while making sure the website has an equally effective and useful alternate site to use. That involves a revised design to accommodate the variation in medium, as well as the development and deployment of that website for use.</p>

<p>One of the greatest things to ever happen to Flash, in my opinion, is <a href="http://www.asual.com/swfaddress/">SWFAddress</a> by <a href="http://www.asual.com/">Asual</a>. SWFAddress is:</p>

<blockquote cite="http://www.asual.com/swfaddress/">
	<p>SWFAddress is a small, but powerful library that provides <a href="http://en.wikipedia.org/wiki/Deep_linking">deep linking</a> for Flash and Ajax. It&#8217;s a developer tool, allowing creation of unique virtual URLs that can point to a website section or an application state. SWFAddress enables a number of important capabilities which are missing in today&#8217;s rich web technologies including:</p>
	<ul>
		<li>Bookmarking in a browser or social website</li>
		<li>Sending links via email or instant messenger</li>
		<li>Finding specific content with the major search engines</li>
		<li>Utilizing browser history and reload buttons</li>
	</ul>
</blockquote>

<p>Basically, what SWFAddress does is give Flash the ability to behave that much more like a regular website by enabling the built in functionality of the browser within the Flash movie itself.</p>

<p>Using SWFAddress is necessary when working with a Flash website, not only for the inherent functionality improvements, but also to the benefits of your alternate site. The Asual team has included many examples of SWFAddress as well as documentation for each, the one to focus on is the <a href="http://www.asual.com/swfaddress/samples/seo/">SEO Example</a>. This sample demonstrates what SWFAddress can do to integrate your Flash site with your alternate site seamlessly, allowing for effective search engine indexing, as well as equivalent access to your <abbr title="alternate">alt</abbr> site.</p>

<p>The demo provided gives you access to a bit of PHP that handles quite a bit of redirection when it comes to processing a URL request. The script will help to determine if the visitor does indeed have Flash/JavaScript and in turn provide the proper &#8220;enhanced&#8221; URL, while passing site content to a user without the ability to view the Flash site. Clean URLs are retained and it&#8217;s actually a very effective solution.</p>

<h2>Making an effective alt site</h2>

<p>Building a Flash site is quite a bit of work, not only on the Flash side of things, but the development and maintenance of the alternate site as well. SWFAddress will route your traffic effectively, but you&#8217;ll need to manually distinguish which pages should serve which content and make sure equivalent content is represented in both websites.</p>

<p>With a content management system, you&#8217;ll be able to pull the same data per page via XML or otherwise, allowing both the Flash version of the site as well as the alt site, to pull from the same data source which will remove any discrepancy when it comes to content.</p>

<p>The inclusion of SWFAddress helps to tackle many of the baggage of Flash, and allows Web designers to create a very effective alt site both for the sake of search engine saturation, but even more importantly the benefit of accessibility.</p>

<h3>What do you think?</h3>

<p>What&#8217;s your opinion on Flash? Has that boat sailed when it comes to full websites? Will we see Flash only used when really necessary, for rich site widgets, video (until HTML5 becomes available), or other implementations limited to Flash? Does it bother you when you find yourself at a website built entirely in Flash? Does SWFAddress help with any issues you&#8217;ve got with Flash? With the advancements in front end technologies such as CSS3, <a href="http://mondaybynoon.com/2009/05/04/covering-the-implication-and-basics-of-css-animation/">CSS animations</a>, canvas support, and <a href="http://code.google.com/apis/o3d/">O3D</a>, do you think Flash is steadily taking a back seat for things to come? I&#8217;m just not sure if I&#8217;m alone here, and would love to hear some other opinions.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=SYIZeKjHQ4o:iot6L7nSsy8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=SYIZeKjHQ4o:iot6L7nSsy8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=SYIZeKjHQ4o:iot6L7nSsy8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=SYIZeKjHQ4o:iot6L7nSsy8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=SYIZeKjHQ4o:iot6L7nSsy8:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MondayByNoon/~4/SYIZeKjHQ4o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/2009/05/18/building-functional-alt-sites-using-swfaddress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Covering the Implication and Basics of CSS Animation</title>
		<link>http://mondaybynoon.com/2009/05/04/covering-the-implication-and-basics-of-css-animation/</link>
		<comments>http://mondaybynoon.com/2009/05/04/covering-the-implication-and-basics-of-css-animation/#comments</comments>
		<pubDate>Mon, 04 May 2009 12:45:53 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Examples]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=470</guid>
		<description><![CDATA[Allowing CSS to control the animation of various aspects of your document can have some very interesting implications. Should CSS or JavaScript control animation?]]></description>
			<content:encoded><![CDATA[<p>Over the past few months, I&#8217;ve been embracing <a href="http://en.wikipedia.org/wiki/Progressive_enhancement">progressive enhancement</a> on a new(er) level. I&#8217;ve been using <a href="http://www.css3.info/">CSS3</a> to make my life easier, leaving other browsers in the dust with the extra touches. I&#8217;ve lost all interest in making sure a design looks equally sophisticated in substandard browsers, and instead opted to <a href="http://mondaybynoon.com/2009/04/20/taking-advantage-of-what-tables-have-to-offer/">leave that last column in my table left aligned</a> instead of making the table a bit easier to read with right justification.</p>

<p>Of course I still support <acronym title="Internet Explorer">IE</acronym>, and I don&#8217;t want to bring that up for debate at this time. That poor horse has been long gone for quite a while, so we can all put our sticks down for a bit. I have, however, taken a more aggressive personal stance in my lack of attention to detail when it comes to that browser family.</p>

<p>A <a href="http://twitter.com/zeldman/status/1642292742">tweet by Jeffrey Zeldman</a> really got me hooked to the prospect of further adoption of CSS3:</p>

<blockquote cite="http://twitter.com/zeldman/status/1642292742">
	<p>When all browsers except IE support CSS3, it will test the limits of progressive enhancement as a design philosophy.</p>
</blockquote
	
<p>With my further embrace of and focus on CSS3 came an increased interest in other bleeding edge techniques in Web design, primarily CSS animation.</p>

<h2>Does CSS animation belong?</h2>

<p>One of the ways in which I&#8217;ve been trying to raise the overall comprehensiveness of my projects is incorporating CSS animation where it may enhance the experience of a particular design. Animation in CSS has, from time to time, been a hot topic in Web design. Does animation belong in CSS? Does it constitute behavioral modification to the document, and therefore find its proper place through JavaScript? Is animation technically behavior?</p>

<p>Trying to classify the true placement of animation has proven to be a personal challenge to me. I can see both sides of the argument. I agree that animation can be correctly implemented through JavaScript, as has been done for some time. On the other side of my personal coin, I see that animation is more of a visual stimulus as opposed to direct behavioral change (e.g. updating the <acronym title="Document Object Model">DOM</acronym> with data received via <acronym title="Asynchronous JavaScript and XML">AJAX</acronym>).</p>

<h2>The basics of CSS animation</h2>

<p>As with all new technologies, you should take a minute to familiarize yourself with implementation as well as implication to make a more educated (and therefore accurate) decision to (not) use it.</p>

<p>The WebKit team provided a <a href="http://webkit.org/blog/138/css-animation/">very nice write up</a> upon the release of a nightly build that supports CSS animation. In the post, an overview of animation with CSS is provided, as well as a bit of documentation and example.</p>

<p>The WebKit implementation of CSS animation has a bit of a learning curve, but once you decipher how it works, it&#8217;s quite elegant (in my opinion). Applying a CSS animation comes in two steps. You&#8217;ll first designate your style as you would normally, defining any properties you&#8217;d like, with the addition of something new: <code>-webkit-transition</code>.</p>

<p><code>-webkit-transition</code> is actually shorthand for three transition properties:</p>

<ul>
	<li><code>transition-property</code>: The property to which the animation will be applied</li>
	<li><code>transition-duration</code>: The length of time the transition will last</li>
	<li><code>transition-timing-function</code>: Possibly better explained as the <a href="http://www.robertpenner.com/easing/">easing method</a> you&#8217;d like to use</li>
</ul>

<p>With these three properties, you&#8217;re provided a set of tools that can directly affect the richness of your designs, bringing the level of interaction up a notch or two. To make things even more elaborate, the WebKit team has also included support for comma delimited transition declarations, allowing you to animate multiple values using a single property declaration.</p>

<p>A finished implementation of WebKit CSS animation may look something like this:</p>

<pre class="sh_css"><code>div.message a.dismiss {
  opacity:0.2;
  -webkit-transition:opacity 0.3s ease-in-out;
}

div.message a.dismiss:hover {
  opacity:1;
}</code></pre>

<p>If you&#8217;re using a recent build of WebKit that supports CSS animation, check out <a href="http://mondaybynoon.com/examples/css-animation.html">the example</a>.</p>

<p>CSS animation can have dramatic affect on your designs, especially in Web application enahcements. Jonathan Snook recently published a screencast <a href="http://snook.ca/archives/other/screencast-webkit-in-titanium">outlining his use of CSS animations</a> while playing with <a href="http://titaniumapp.com/">Titanium</a>, a platform I&#8217;m actively researching as well.</p>

<p>Jonathan&#8217;s use of CSS animation in his screencast really brings its potential to the surface. With animations such as the combination of scale and opacity to achieve stellar effects really helps to make CSS animations shine.</p>

<h3>What should control animation?</h3>

<p>Truly classifying CSS animation has been a personal challenge for me as a designer; what are <em>your</em> thoughts? Do you feel that animation belongs in the realm of style or behavior? Do you feel animation is something else entirely? Now that an option beyond JavaScript has surfaced, did that change your opinion? Do you see animation in CSS being continually adopted on a more consistent level when it comes to adding &#8216;that little something extra&#8217; for those using an applicable browser?</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=2eNlSsOcKZQ:SGJIKOh-JYY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=2eNlSsOcKZQ:SGJIKOh-JYY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=2eNlSsOcKZQ:SGJIKOh-JYY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=2eNlSsOcKZQ:SGJIKOh-JYY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=2eNlSsOcKZQ:SGJIKOh-JYY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MondayByNoon/~4/2eNlSsOcKZQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/2009/05/04/covering-the-implication-and-basics-of-css-animation/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>A Couple of Quick Tips for JavaScript Optimization</title>
		<link>http://mondaybynoon.com/2009/04/27/a-couple-of-quick-tips-for-javascript-optimization/</link>
		<comments>http://mondaybynoon.com/2009/04/27/a-couple-of-quick-tips-for-javascript-optimization/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 13:51:34 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[DOM]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=460</guid>
		<description><![CDATA[A couple of tips to optimize the speed of your slow JavaScript. Code examples using jQuery.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a huge fan of JavaScript. I&#8217;ve spent the past couple years trying to really enhance my knowledge of the subject, and with the volatile ingenuity of the modern Web, I&#8217;m able to pick up new things on a very consistent basis. Keeping myself in check, however, is a recognition that I&#8217;ll never embrace all there is to know about JavaScript. The best I can do is teach myself everything I can, and have consistent discussion with those who know more than me. What better way than publishing?</p>
<span id="more-460"></span>
<p>I work primarily in <a href="http://jquery.com">jQuery</a> when I write JavaScript. I&#8217;ve become very comfortable with the library, as it meets my needs on a very consistent basis. I&#8217;m not biased, however. With each project, I evaluate whether there&#8217;s a need for a full library such as jQuery. There have been many projects which simply didn&#8217;t need the full functionality of a library as feature-rich, and therefore bigger in file size, as jQuery. Many times I&#8217;ll use a more lightweight library such as <a href="http://www.domassistant.com/">DOMAssistant</a> which lets you build your own library with modules you&#8217;ll be working with. There have been many times where <a href="http://www.robertnyman.com/dlite/">dLite</a> (DOMAssistant Lite) has been more than enough to work with, this site for example.</p>

<p>You should evaluate which library you&#8217;re using on a case-by-case basis as well, as it seems that with jQuery being so popular, many designers simply default to using it with every project, even if they&#8217;re only binding a click event in one area of a website.</p>

<p>As I&#8217;ve been writing more elaborate pieces of JavaScript, I&#8217;ve picked up a bit more knowledge in optimizations. It&#8217;s become my focus lately; trying to write cleaner JavaScript resulting in faster processing and therefore a better experience for the user. I&#8217;d like to quickly discuss a couple things I&#8217;ve started doing to ease the load of JavaScript on the browser and therefore the user.</p>




<h2>Creating reference variables</h2>

<p>Traversing the <acronym title="Document Object Model">DOM</acronym> is sometimes expensive, depending on your selector. Keeping node selection to a minimum will help speed up your scripts quite a bit. If you&#8217;re working with a specific node repeatedly, it will probably be in your best judgement to define a variable with that node, instead of traversing for it repeatedly.</p>

<p>For example, if you need to manipulate multiple children of a parent element, it is probably in your best interest to define the parent element as a variable, and work with the children from there.</p>
	
<p>While not a gigantic enhancement, we can project the benefits on a larger scale, especially when working with a <code>classed</code> element as opposed to one which has an <code>id</code>. This comes in especially handy if you&#8217;re nesting animations, and you need to work with the initial element throughout the process. You can simply reference the variable you&#8217;ve defined instead of possibly having to hunt for a <code>parent()</code> or two.</p>

<p>While libraries such as <a href="http://sizzlejs.com/">Sizzle</a> are dramatically enhancing node selection, it&#8217;s always good practice to write inexpensive code, and sometimes selector abstraction is the way to go.</p>





<h2>Avoiding iterative DOM manipulation</h2>

<p>Perhaps the biggest change to embrace was to avoid manipulating the DOM iteratively. That is to say, making a change to the DOM each time you run through a loop. This practice is definitely not limited to jQuery, but I&#8217;ll be using jQuery syntax in code samples throughout this article.</p>

<p>Keeping this in mind came in very handy as I was working with <a href="http://mondaybynoon.com/2009/02/23/creating-custom-form-elements-using-jquery-selects/">creating custom <code>selects</code> via jQuery</a>. Essentially what I needed to do was loop through an existing <code>select</code> and duplicate each <code>option</code> <code>value</code> as a list item in a newly created list. At first you may write your snippet like so:</p>

<pre class="sh_javascript"><code>// parse all options within the select and set indices
var i = 0;
targetselect.find('option').each(function() 
{
  // add the option
  target.find('.options ul').append('&lt;li&gt;&lt;a href=&quot;#&quot;&gt;&lt;span class=&quot;value&quot;&gt;' + $(this).text() + '&lt;/span&gt;&lt;span class=&quot;hidden index&quot;&gt;' + i + '&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;');

  // check to see if this is what the default should be
  if($(this).attr('selected') == true)
  {
    targetselect.parent().find('a.dropdown_toggle').append('&lt;span&gt;&lt;/span&gt;').find('span').text($(this).text());
  }
  i++;
});</code></pre>

<p>You&#8217;ll notice that with each iteration of the loop, we&#8217;re appending a list element to our unordered list. If you&#8217;re running this function on a document with quite a few <code>selects</code> (especially with many <code>options</code>), you&#8217;ll notice quite a bit of lag.</p>

<p>This code can be better optimized by abstracting the injection until after processing the <code>select</code> in its entirety by concatenating the list items to a string, and then appending that string a single time:</p>

<pre class="sh_javascript"><code>// parse all options within the select and set indices
var i = 0;
var options = '';
targetselect.find('option').each(function() 
{
  // add the option
  options += '&lt;li&gt;&lt;a href=&quot;#&quot;&gt;&lt;span class=&quot;value&quot;&gt;' + $(this).text() + '&lt;/span&gt;&lt;span class=&quot;hidden index&quot;&gt;' + i + '&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;';

  // check to see if this is what the default should be
  if($(this).attr('selected') == true)
  {
    targetselect.parent().find('a.dropdown_toggle').append('&lt;span&gt;&lt;/span&gt;').find('span').text($(this).text());
  }
  i++;
});
target.find('.options ul').append(options);</code></pre>

<p>Instead of appending the list item with each iteration, which becomes very expensive very quickly, we simply build a string and work with it once the heavy lifting has been done.</p>

<h3>Do you have any tips?</h3>

<p>I know these tips are nothing extraordinary, but I hope they may help you enhance the performance of your future scripts. I realize that my code examples use jQuery syntax, the tips themselves can be applied to any implementation of JavaScript.</p>

<p>Do you have any techniques you&#8217;re using consistently in the interest of both code organization as well as optimization?</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=KCvj6LWHcXg:Xjha-y6mXq0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=KCvj6LWHcXg:Xjha-y6mXq0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=KCvj6LWHcXg:Xjha-y6mXq0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=KCvj6LWHcXg:Xjha-y6mXq0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=KCvj6LWHcXg:Xjha-y6mXq0:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MondayByNoon/~4/KCvj6LWHcXg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/2009/04/27/a-couple-of-quick-tips-for-javascript-optimization/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Taking Advantage of What Tables Have to Offer</title>
		<link>http://mondaybynoon.com/2009/04/20/taking-advantage-of-what-tables-have-to-offer/</link>
		<comments>http://mondaybynoon.com/2009/04/20/taking-advantage-of-what-tables-have-to-offer/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 14:34:28 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[tables]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=450</guid>
		<description><![CDATA[Find out some of my tricks for boosting the aesthetics of your tables in Web design]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ll skip right over the nasty past that <code>tables</code> have and cut right to it: <code>tables</code> always have been and will remain very useful in Web design. A well designed group of tabular data can be an outstanding aspect of any document. Unfortunately, <code>tables</code> have a bit of baggage in that applying your desired style can sometimes be quite the challenge. As with everything in Web design, experience will teach you what is easily done and what just isn&#8217;t possible.</p>

<p>There is a <a href="http://www.w3.org/TR/html4/struct/tables.html">ton of information available</a> on what you can do with a <code>table</code>, but I&#8217;ve got a few things I&#8217;d like to share as well.</p>

<h2>Effectively structuring your <code>table</code></h2>

<p>Beyond the basic structuring of <code>table</code> data using table rows and table cells, there are a number of elements you can use to make your tabular data that much more structured.</p>

<p>Some of the more basic, but helpful elements to take under your wing are <a href="http://www.w3.org/TR/html4/struct/tables.html#h-11.2.3">row groups</a>. Row groups consist of <code>thead</code>, <code>tfoot</code>, and <code>tbody</code>. You can group your table heading rows in a <code>thead</code> tag, your table footer rows in <code>tfoot</code>, and the data itself in a <code>tbody</code> tag.</p>

<p>Segmenting your rows into these categories will allow you to write more targeted, straightforward styles for your <code>table</code>. Instead of giving your table rows a specific class, you can use these tags to make your markup more semantic and easier to work with.</p>

<p>As with everything, there are some rules to implementing these tags in your <code>table</code>. For example, the most interesting aspect of this group of tags is that when using <code>tfoot</code>, you <em>must</em> include it <strong>before</strong> your <code>tbody</code> tag. According to the W3C:</p>

<blockquote cite="http://www.w3.org/TR/html4/struct/tables.html#h-11.2.3">
	<p>TFOOT must appear before TBODY within a TABLE definition so that user agents can render the foot before receiving all of the (potentially numerous) rows of data</p>
</blockquote>

<p>It seems counterintuitive from a human standpoint, but rules are rules.</p>

<h3>Perhaps the best kept secret about tables</h3>

<p>It wasn&#8217;t until a few years ago that I stumbled upon one of the most valuable things I have learned about <code>table</code> markup. By default, columns in tables behave in a liquid manor to accommodate the data held within each cell. If a column of cells has more content, a bigger area will be devoted to that column of data. More often than not, however, when designing a <code>table</code> you&#8217;ll want each column of data to have a more targeted width. For a long time, simply due to ignorance, I would solve this issue by giving my table cells a <code>class</code> a defining a width using said <code>classes</code>.</p>

<p>That was of course until I came across <a href="http://www.w3.org/TR/html4/struct/tables.html#h-11.2.4">column groups</a>. Column groups allow you to tackle this very issue by giving each column a specific <code>id</code> and styling your widths from there. For example:</p>

<pre class="sh_html"><code>&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
	&lt;caption&gt;New York Yankees 2009 Schedule Snippet&lt;/caption&gt;
	&lt;colgroup&gt;
		&lt;col id=&quot;date&quot; /&gt;
		&lt;col id=&quot;time&quot; /&gt;
		&lt;col id=&quot;opponent&quot; /&gt;
		&lt;col id=&quot;home_away&quot; /&gt;
	&lt;/colgroup&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th&gt;Date&lt;/th&gt;
			&lt;th&gt;Time&lt;/th&gt;
			&lt;th&gt;Opponent&lt;/th&gt;
			&lt;th&gt;Home/Away&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;April 20&lt;/td&gt;
			&lt;td&gt;7:05PM&lt;/td&gt;
			&lt;td&gt;OAK&lt;/td&gt;
			&lt;td&gt;Home&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;April 21&lt;/td&gt;
			&lt;td&gt;7:05PM&lt;/td&gt;
			&lt;td&gt;OAK&lt;/td&gt;
			&lt;td&gt;Home&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</code></pre>

<p>To style the columns of the above <code>table</code>:</p>

<pre class="sh_css"><code>col#date { width:25%; }
col#time { width:25%; }
col#opponent { width:25%; }
col#home_away { width:25%; }</code></pre>

<p>Using column groups is a <em>much more effective</em> way of styling your columns. There are a <a href="http://www.w3.org/TR/html4/struct/tables.html#h-11.2.4.4">number of ways to define the actual width of your columns</a>, you&#8217;re not limited to a percentage. Definitely take a few minutes to read the W3C documentation on these elements if you&#8217;re not familiar with them, your life may get a bit easier.</p>

<h3>Further styling your <code>table</code></h3>

<p>Beyond the markup behind your <code>tables</code>, applying a layer of style is a different aspect of designing your <code>table</code>. There are many techniques for styling your <code>table</code>, and depending on your design, some techniques may work, and others won&#8217;t. My general technique involves adding only paint that helps support digesting the data. The last thing you&#8217;ll want to go overboard with styling is your <code>tables</code> &#8212; they&#8217;re meant to be a useful tool used in organizing a group of data. Keep that in mind as you add your style declarations.</p>

<p>One thing I&#8217;ll try to do, especially with larger tables, is include a variant of zebra striping. Zebra striping involves alternating every other row of a table to make it easier to discern the relationship between the columns represented in that row. There have been many studies behind the true value of zebra striping, and plenty of <a href="http://www.alistapart.com/articles/zebrastripingdoesithelp">articles</a> written. While research shows that zebra striping doesn&#8217;t improve readability on any sort of conscious level, in my personal experience, when used properly, zebra striping can make a table easier to read. I will admit, however, that I&#8217;m much more likely to use a soft border as a separator between rows as opposed to changing the background color entirely.</p>

<p>Another trick that I&#8217;ve become accustomed to using is <a href="http://www.w3.org/TR/CSS2/selector.html#q15">pseudo-classes</a>, specifically <code>:first-child</code> and <code>:last-child</code>. When applied to <code>table</code> cells, you can easily control your end caps to achieve a more polished look.</p>

<p>For example, using <code>table th:last-child</code> in conjunction with <code>table td:last-child</code> can allow you to right justify both the heading and data cells of your <code>table</code> which may prove beneficial to the overall design.</p>

<h3>Share your tips &amp; tricks</h3>

<p>That&#8217;s what I do to keep my tables in line and looking pretty. Do you have any tricks up your sleeve that you have become comfortable with over time? Do you find yourself working with tables very often from project to project?</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=5CIt5qXhIrU:mIg6POZ-Q2I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=5CIt5qXhIrU:mIg6POZ-Q2I:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=5CIt5qXhIrU:mIg6POZ-Q2I:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=5CIt5qXhIrU:mIg6POZ-Q2I:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=5CIt5qXhIrU:mIg6POZ-Q2I:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MondayByNoon/~4/5CIt5qXhIrU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/2009/04/20/taking-advantage-of-what-tables-have-to-offer/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Our Yearly Reminder of What it’s All About</title>
		<link>http://mondaybynoon.com/2009/04/06/our-yearly-reminder-of-what-its-all-about/</link>
		<comments>http://mondaybynoon.com/2009/04/06/our-yearly-reminder-of-what-its-all-about/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 13:28:10 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Current Events]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Semantics]]></category>
		<category><![CDATA[Site News]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[CSS Naked Day]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=435</guid>
		<description><![CDATA[CSS Naked Day 2009 is set for April 9th. Find out more about the event and participate!]]></description>
			<content:encoded><![CDATA[<p class="article-image"><a href="http://naked.dustindiaz.com/"><img src="http://mondaybynoon.com/images/naked-day-09.png" alt="CSS Naked Day 2009" /></a></p>

<p>For the fourth year in a row, <a href="http://www.dustindiaz.com/">Dustin Diaz</a> is bringing back <a href="http://naked.dustindiaz.com/">CSS Naked Day</a>. CSS Naked Day was brought about by Dustin as an effort to celebrate the goodness that is semantic markup and good document hierarchy.</p>

<p>The idea is this: for one day, each bit of <acronym title="Cascading Style Sheets">CSS</acronym> is removed from your website. For real. While the makeup has been removed, your website should remain proud. CSS Naked Day usually generates quite a bit of chatter, but there are plenty of designers who don&#8217;t know much about it.</p>

<h2>The point of it all</h2>

<p>Much of the (minimal) negative feedback about CSS Naked Day surrounds the concept that completely removing the style layer from a website will bring businesses to a screeching halt, turn clients into enemies, and generally wreak havoc on every website it touches. They&#8217;re missing the point.</p>

<p>We can safely assume that it wasn&#8217;t Dustin&#8217;s intention for shops to remove the style from client websites in celebration of CSS Naked Day. Instead, he&#8217;s trying to actively spread the word about the good things behind markup structure by enticing the Web design community to show that solid markup can indeed be a beautiful thing.</p>

<p>The idea behind CSS Naked Day is that you the designer remove the style layer from, say, <strong>your personal website</strong>. In doing so, you show the world that you truly know and understand what you&#8217;re doing under the hood and you make it look good. Your confidence in removing the CSS from your website is an act of community participation, not a hostile act against business.</p>

<h3>Why I participate</h3>

<p>I&#8217;ve participated in <a href="http://naked.dustindiaz.com/">CSS Naked Day</a> each year since its inception, and I hope Dustin continues the tradition for many years to come. I think it&#8217;s great to see that so many people appreciate the value of Web design, and I feel that CSS Naked Day helps bring us back to our roots for a few hours. All the while we&#8217;re spreading the words about semantic HTML to up-and-coming designers who are still wrapping their heads around the concepts and purpose of semantic markup.</p>

<p>I enjoy checking out the websites of participants and seeing what creative solutions others have implemented on one of the lowest levels we work. I check out nearly all the websites listed on <a href="http://naked.dustindiaz.com/">the participant list</a> and it&#8217;s great to see such an abundance of style-less documents for a short time. The worst part is not being able to view every site in the short window that is CSS Naked Day. The best part, though, is being able to easily make use of the website given that the style layer has been completely removed.</p>

<p>CSS Naked Day is a great way for a knowledgeable Web designer to get back to basics and be reminded of the fact that (X)HTML alone is an impressive markup language, allowing us to convey meaning on levels that many people will never see.</p>

<h3>Will you participate this year?</h3>

<p>CSS Naked Day has been around for years &#8212; what&#8217;s your track record? If you&#8217;ve participated before, do you plan on doing so again? If you haven&#8217;t, how come? If you&#8217;d like to find out the more technical details on participation, specifically how to implement a date check on your website to remove all of your CSS, there are a number of code snippets and plugins available on the official <a href="http://naked.dustindiaz.com/">CSS Naked Day</a> website.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=CeefCd1F0XE:KrUfzt2QIgQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=CeefCd1F0XE:KrUfzt2QIgQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=CeefCd1F0XE:KrUfzt2QIgQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=CeefCd1F0XE:KrUfzt2QIgQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=CeefCd1F0XE:KrUfzt2QIgQ:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MondayByNoon/~4/CeefCd1F0XE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/2009/04/06/our-yearly-reminder-of-what-its-all-about/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sexy Web Design Book Review and Giveaway</title>
		<link>http://mondaybynoon.com/2009/03/30/sexy-web-design-book-review/</link>
		<comments>http://mondaybynoon.com/2009/03/30/sexy-web-design-book-review/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 12:41:09 +0000</pubDate>
		<dc:creator>Jonathan Christopher</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://mondaybynoon.com/?p=429</guid>
		<description><![CDATA[Sexy Web Design by Elliot Jay Stocks is definitely a recommended read for anyone interested in Web Design]]></description>
			<content:encoded><![CDATA[<div class="hreview" id="hreview-Book-review"><div class="item description">

<p class="img book-cover"><a href="http://www.sitepoint.com/books/sexy1/"><img src="http://mondaybynoon.com/images/books/sexy-web-design.jpg" alt="Sexy Web Design Book Cover" /></a></p>

<p>I&#8217;ve just finished reading <a href="http://www.sitepoint.com/books/sexy1/"><span class="summary">Sexy Web Design</span></a>, a very recently published book by <a href="http://elliotjaystocks.com/">Elliot Jay Stocks</a>. I first saw Elliot speak at <a href="http://mondaybynoon.com/2007/11/12/future-of-web-design-nyc-2007-recap/">The Future Of Web Design 2007</a> during which I became an instant fan. His keynote was titled &#8220;Destroying the Web 2.0 Look&#8221; and not only did he engage the entire audience with thoughtful opinions, but also injected just the right amount of humor as well. I&#8217;ve been a subscriber ever since, and I was thrilled to see that he has put out a book.</p>

<h2>Content summary</h2>

<p>Chapter 1: Interfaces are Sexy provides a detailed explanation of what subsequent chapters in the book will cover. Interfaces are the first topic of conversation, and Elliot gives some insight as to why he&#8217;s a designer. The gap between real life and Web design is bridged by the topic of interface; what you see is what you get, and if it&#8217;s hard to use, there&#8217;s a problem. We&#8217;re also given a brief overview of Elliot&#8217;s suggested design process, which I took great interest in, with my fascination of process at the forefront. Unsurprisingly, Elliot&#8217;s design process is spot on in line with what I have found to bring the greatest success. Through his writing, it&#8217;s apparent that he&#8217;s faced resistance (read: cut due to budget) in the same areas as well, specifically the research phase. Throughout his explanation, Elliot provides some visual examples to support exactly the topic at hand.</p>

<p>The remaining chapters carry you through the design of a client website from beginning to end, outlining in detail the steps explained in chapter one. Chapter 2 focuses on the research phase of Web design. Elliot discusses the importance of receiving an <em>informational</em> design brief, which is imperative if you&#8217;d like to start off on the right foot. The design brief needs to answer (at least) a few standard questions that will give you enough insight to explore the proper angles in your design. Brand consistency is also touched on, something that takes true talent to effectively retain. Elliot also shines some light on his inspiration process, which ties heavily into the research phase, taking into account the details provided in the design brief.</p>

<p>Chapter 3: Structure is all about figuring out the underlying foundation for your design. Part design, part information architecture, part page hierarchy, the structure phase of a design process can bring anything to an entirely new level by adding a completely new level of organization to the table. As you read, you&#8217;re walked through the process of mapping out the site at hand, sketching some ideas, and finally carrying those sketches to the computer and digitizing them as wireframes. These resources will be heavily depended on throughout the rest of the design process.</p>

<p>The navigation of a website is arguably the most important feature throughout. Without an effectively implemented navigation, calls to action will be ignored, readers will become frustrated, and the website will be considered ineffective. Chapter 4: Navigation and Interaction discusses the various methods of including site navigation as a way to support website browsing, all while meeting the goals of the site itself. The chapter touches on many various navigation implementations, from global navigation, to breadcrumb trails, to supporting navigation. Additionally, the chapter discusses lists, drop-down menus, tabs, accordions, tag clouds, and tool tips as methods of effectively navigating appropriate information sources. Form interaction is touched upon in this chapter as well, providing some items to keep in mind as you&#8217;re putting together information entry sections of your website.</p>

<p>Chapter 5 focuses on another very popular phase of design; Aesthetics. Elliot regards this phase as &#8216;the fun part of design&#8217; and that definitely comes through while reading this chapter. He takes the time to discuss some basics as far as design principles and color theory go, and ties that in with a few more technical details integrated with Web design. A few pages are devoted to the grid, which is, in my opinion, an essential ingredient of successful Web design. Elliot touches on a number of important aspect of aesthetics in Web design including contrast, consistency, volume, depth, pattern and texture. Imagery, illustration, and iconography are also discussed in applicable detail and Elliot saved the best for last, one of my favorite topics; type. The remaining pages of this chapter apply everything just covered to the existing pseudo project we&#8217;ve been &#8220;working on&#8221; throughout the book. Many images are provided as reference, visualizing exactly the changes made to comps with each iteration.</p>

<p>Chapter 6: Deliverables focuses entirely on comp preparation concerning longevity and maintenance. Elliot shares how he organizes his Photoshop files, and walks through the front end development of the project website, giving a few of his personal tips along the way. Some details are discussed which apply only to Web design, and there&#8217;s something for everyone to learn.</p>

<h3>Recommended?</h3>

<p>I&#8217;m a fan of <a href="http://www.sitepoint.com">SitePoint</a>. As a company, they put out a quality product, paying attention to publishing authors with a known credibility and for good reason. As with all SitePoint books, I am a big fan of <a href="http://www.sitepoint.com/books/sexy1/">Sexy Web Design</a> by Elliot Jay Stocks, and I would absolutely recommend it to any Web designer, no matter what his or her skill level. Just reading the book is inspiration to sit down and create something. There is definitely quite a bit of information to be learned from this book, and I&#8217;m sure even the veterans can pick up at least a pointer or two.</p>

<p>On top of that, SitePoint books are put together extremely well. They&#8217;re printed in full color, and the visualizations used in this book are exceptionally supportive. I&#8217;m not sure if it was intentional, but more times than not, the images referenced by Elliot fell on the next page. While that may prove to be irritating to some people, by the end of the book I had embraced it because it allowed me to retain focus on the words I was reading instead of glancing back and forth at the imagery. I would absolutely recommend this book to just about anyone with an interest in Web design.</p>

<p>If you&#8217;re interested, SitePoint is offering some <a href="http://www.sitepoint.com/books/sexy1/samplechapters.php">sample content</a> straight from the book.</p>

<h3>Book Giveaway</h3>

<p>I&#8217;m going to try something a bit different with this book review. At random, I&#8217;m going to choose one person from the comment thread below at random, and mail them my copy of <a href="http://www.sitepoint.com/books/sexy1/">Sexy Web Design</a>. If you&#8217;d like to enter your name in the drawing, simply leave a comment below and one week from today, April 6, 2009, I will pick a winner and contact you for your shipping information. You can comment more than once, but I&#8217;ll remove any duplicates prior to getting a random name from the thread.</p>

<div class="hidden meta">
	<p>
		<span class="type">Product</span> 
		reviewed <abbr class="dtreviewed" title="20090330T0800-0500">Mar 30, 2009</abbr> 
		by <span class="reviewer vcard"><span class="fn">Jonathan Christopher</span></span>
	</p>
	<p>Rating: <abbr title="5" class="rating">&#x2605;&#x2605;&#x2605;&#x2605;&#x2605;</abbr></p>
</div>

</div></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=4pIAT2Cm4xk:PoRa7htorvY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=4pIAT2Cm4xk:PoRa7htorvY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=4pIAT2Cm4xk:PoRa7htorvY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MondayByNoon?a=4pIAT2Cm4xk:PoRa7htorvY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MondayByNoon?i=4pIAT2Cm4xk:PoRa7htorvY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MondayByNoon/~4/4pIAT2Cm4xk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mondaybynoon.com/2009/03/30/sexy-web-design-book-review/feed/</wfw:commentRss>
		<slash:comments>100</slash:comments>
		</item>
	</channel>
</rss>
