<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Chris Burbridge</title>
	<atom:link href="http://chrisburbridge.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://chrisburbridge.com</link>
	<description>WordPress Developer and Consultant</description>
	<lastBuildDate>Fri, 11 May 2012 21:19:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Web Design for Print Designers Videos</title>
		<link>http://chrisburbridge.com/web-design-for-print-designers-videos/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=web-design-for-print-designers-videos</link>
		<comments>http://chrisburbridge.com/web-design-for-print-designers-videos/#comments</comments>
		<pubDate>Sun, 29 Apr 2012 02:31:17 +0000</pubDate>
		<dc:creator>cb-admin</dc:creator>
				<category><![CDATA[For Designers]]></category>

		<guid isPermaLink="false">http://chrisburbridge.com/?p=855</guid>
		<description><![CDATA[<p>Here are the videos for the Web Designers for Print Designers videos. Here are the word posts: Part 1 &#124; Part 2 &#124; Part 3 &#160; &#160; &#160;</p>
 ]]></description>
			<content:encoded><![CDATA[<p>Here are the videos for the Web Designers for Print Designers videos.</p>
<p>Here are the word posts: <strong><a href="http://chrisburbridge.com/web-design-for-print-designers-pt-1">Part 1</a> | <a href="http://chrisburbridge.com/web-design-for-print-designers-pt-2">Part 2</a> | <a href="http://chrisburbridge.com/web-design-for-print-designers-pt-3">Part 3</a></strong></p>
<p>&nbsp;</p>
<p><a href="http://www.youtube.com/watch?v=JStwFXwrpdY"><img src="http://img.youtube.com/vi/JStwFXwrpdY/2.jpg"></a></p>
<p><a href="http://www.youtube.com/watch?v=JStwFXwrpdY">Click here</a> to view the video on YouTube.</p>

<p>&nbsp;</p>
<p><a href="http://www.youtube.com/watch?v=h7iG_Xm54lQ"><img src="http://img.youtube.com/vi/h7iG_Xm54lQ/2.jpg"></a></p>
<p><a href="http://www.youtube.com/watch?v=h7iG_Xm54lQ">Click here</a> to view the video on YouTube.</p>

<p>&nbsp;</p>
<p><a href="http://www.youtube.com/watch?v=NzpmPyonanE"><img src="http://img.youtube.com/vi/NzpmPyonanE/2.jpg"></a></p>
<p><a href="http://www.youtube.com/watch?v=NzpmPyonanE">Click here</a> to view the video on YouTube.</p>

]]></content:encoded>
			<wfw:commentRss>http://chrisburbridge.com/web-design-for-print-designers-videos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brilliant cartoon about mental models</title>
		<link>http://chrisburbridge.com/brilliant-cartoon-about-mental-models/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=brilliant-cartoon-about-mental-models</link>
		<comments>http://chrisburbridge.com/brilliant-cartoon-about-mental-models/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 13:04:07 +0000</pubDate>
		<dc:creator>cb-admin</dc:creator>
				<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://chrisburbridge.com/?p=836</guid>
		<description><![CDATA[<p>I love this! He&#8217;s managed to encapsulate an important (and oft-ignored) truth about design, in such a way that it will be accessible to everyone: http://uxdesign.smashingmagazine.com/2012/04/23/mental-model-diagrams-cartoon/ Here is another one he did about personas (again—important idea, hard to explain and sell to your team): http://thinkvitamin.com/design/how-to-understand-your-users-with-personas/ I&#8217;m thinking this is really a key—cartoons. Encapsulate everything easily Make it [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>I love this! He&#8217;s managed to encapsulate an important (and oft-ignored) truth about design, in such a way that it will be accessible to everyone: http://uxdesign.smashingmagazine.com/2012/04/23/mental-model-diagrams-cartoon/</p>
<p>Here is another one he did about personas (again—important idea, hard to explain and sell to your team): http://thinkvitamin.com/design/how-to-understand-your-users-with-personas/</p>
<p>I&#8217;m thinking this is really a key—cartoons.</p>
<ul>
<li>Encapsulate everything easily</li>
<li>Make it appealing and gettable</li>
</ul>
<p>The new info-overload world has highlighted peoples&#8217; impatience. It&#8217;s made information so available, but still as hard as ever (more or less) to see the important stuff. But what&#8217;s been coming out are means that are easier, simpler, for conveying info in <em><strong>ways that work</strong></em>. (And that&#8217;s—kind of—all that matters.)</p>
]]></content:encoded>
			<wfw:commentRss>http://chrisburbridge.com/brilliant-cartoon-about-mental-models/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Promising Plugins: Duplicator</title>
		<link>http://chrisburbridge.com/duplicator-plugin/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=duplicator-plugin</link>
		<comments>http://chrisburbridge.com/duplicator-plugin/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 14:52:52 +0000</pubDate>
		<dc:creator>cb-admin</dc:creator>
				<category><![CDATA[Promising Plugins]]></category>

		<guid isPermaLink="false">http://chrisburbridge.com/?p=827</guid>
		<description><![CDATA[<p>Duplicate, clone, backup and transfer an entire site from one location to another in 3 easy steps. The Duplicator plugin is designed to give WordPress Administrators the ability to migrate a site from one location to another location in 3 easy steps. Just create a package, download it and install. No need to change all [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>Duplicate, clone, backup and transfer an entire site from one location to another in 3 easy steps.</p>
<blockquote><p>The Duplicator plugin is designed to give WordPress Administrators the ability to migrate a site from one location to another location in 3 easy steps. Just create a package, download it and install. No need to change all your settings and re-run import/export scripts. The plugin also serves as a simple backup utility.</p></blockquote>
<div> This could be a good alternative to BackupBuddy—even simpler?</div>
<p><a href="http://wordpress.org/extend/plugins/duplicator/">wordpress.org/extend/plugins/duplicator/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://chrisburbridge.com/duplicator-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Delete Unwanted WordPress Custom Capabilities</title>
		<link>http://chrisburbridge.com/delete-unwanted-wordpress-custom-capabilities/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=delete-unwanted-wordpress-custom-capabilities</link>
		<comments>http://chrisburbridge.com/delete-unwanted-wordpress-custom-capabilities/#comments</comments>
		<pubDate>Sat, 14 Apr 2012 13:48:52 +0000</pubDate>
		<dc:creator>cb-admin</dc:creator>
				<category><![CDATA[Code & Tech]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://chrisburbridge.com/?p=824</guid>
		<description><![CDATA[<p>What happens, as mentioned in this post in the WordPress forum, is that you can end up with custom capabilities as remnants of old plugins you&#8217;ve used&#8211;or, as in my case, because I am playing around with custom capabilities. It&#8217;s very easy in various role plugins to say &#8220;Add New Capability&#8221;, but nowhere could I [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>What happens, as mentioned in <a href="http://wordpress.org/support/topic/delete-capabilities?replies=4">this post </a>in the WordPress forum, is that you can end up with custom capabilities as remnants of old plugins you&#8217;ve used&#8211;or, as in my case, because I am playing around with custom capabilities. It&#8217;s very easy in various role plugins to say &#8220;Add New Capability&#8221;, but nowhere could I find anywhere to <em>remove</em> them. They are actually stored in a record of the wp_options table.</p>
<p>Here&#8217;s the code to do this:</p><pre class="crayon-plain-tag">add_action( 'admin_init', 'clean_unwanted_caps' );
function clean_unwanted_caps(){
	$delete_caps = array('edit_issues', 'publish_issues', 'edit_other_issues', 'read_private_issues',
		'delete_issue', 'edit_issue');
	global $wp_roles;
	foreach ($delete_caps as $cap) {
		foreach (array_keys($wp_roles-&amp;gt;roles) as $role) {
			$wp_roles-&amp;gt;remove_cap($role, $cap);
		}
	}
}</pre><p>For  $delete_caps, just include whatever capabilities you want to delete.</p>
<p>Be careful with this, of course!! Backup first!!</p>
<p>You have to do it this way, because the data is structured like this: $wp_roles-&gt;{role name}-&gt;capabilities-&gt;{array of all capabilities}. So each capability is listed separately for each role. That sounds redundant, doesn&#8217;t it? But I guess they figured it was more elegant than creating yet another table in order to store the capabilities, and I&#8217;ll bet they were right.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://chrisburbridge.com/delete-unwanted-wordpress-custom-capabilities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Uploaded the Web Newbie&#8217;s Survival Guide</title>
		<link>http://chrisburbridge.com/uploaded-the-web-newbies-survival-guide/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=uploaded-the-web-newbies-survival-guide</link>
		<comments>http://chrisburbridge.com/uploaded-the-web-newbies-survival-guide/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 02:48:43 +0000</pubDate>
		<dc:creator>cb-admin</dc:creator>
				<category><![CDATA[End User Info]]></category>
		<category><![CDATA[Web Design Biz]]></category>

		<guid isPermaLink="false">http://chrisburbridge.com/?p=822</guid>
		<description><![CDATA[<p>I wrote this some years ago, and kind of forgot about it&#8211;but even though it was on an old site, people would periodically download it and read it! I wrote it in hopes of preparing people for hiring a web designer/developer, or for the overall process of creating a website, in hopes that it would [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>I wrote this some years ago, and kind of forgot about it&#8211;but even though it was on an old site, people would periodically download it and read it! I wrote it in hopes of preparing people for hiring a web designer/developer, or for the overall process of creating a website, in hopes that it would help them be more successful. Get it here: <a href="http://chrisburbridge.com/web-newbies-survival-guide/">chrisburbridge.com/web-newbies-survival-guide/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://chrisburbridge.com/uploaded-the-web-newbies-survival-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reasons Not to Hack Pre-Built Themes, #1: Gorgon&#8217;s Knot of Conditional Code</title>
		<link>http://chrisburbridge.com/reasons-not-to-hack-pre-built-themes-1-gorgons-knot-of-conditional-code/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=reasons-not-to-hack-pre-built-themes-1-gorgons-knot-of-conditional-code</link>
		<comments>http://chrisburbridge.com/reasons-not-to-hack-pre-built-themes-1-gorgons-knot-of-conditional-code/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 12:28:10 +0000</pubDate>
		<dc:creator>cb-admin</dc:creator>
				<category><![CDATA[Code & Tech]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://chrisburbridge.com/?p=787</guid>
		<description><![CDATA[<p>I&#8217;ve been collating the reasons why it&#8217;s unwise to do any significant customization to custom-built themes. Here&#8217;s one: Premium theme builders are selling to a market that wants tons and tons of options. Under the hood, that translates into zillions of conditional segments. I&#8217;ve borrowed, and partially obfuscated, a chunk of code I&#8217;m having to [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been collating the reasons why it&#8217;s unwise to do any significant customization to custom-built themes. Here&#8217;s one: Premium theme builders are selling to a market that wants tons and tons of options. Under the hood, that translates into zillions of conditional segments. I&#8217;ve borrowed, and partially obfuscated, a chunk of code I&#8217;m having to modify, that was from one such theme.</p>
<p>When you build a &#8220;bespoke&#8221; theme, you build in what the client actually needs. In contrast, this theme builder had to build in what <em>thousands</em> of different customers might want. That may make it easier for them, but to modify it, makes the simplest change much harder.</p>
<p>Here&#8217;s the snippet:</p><pre class="crayon-plain-tag">&amp;lt;?php
                 $xcol=&quot;theTopSecond&quot;;

			if(get_option($xcol.'select')==$xcol.&quot;-1&quot;) { ?&amp;gt;
				&amp;lt;?php custom_html(get_option($xcol.'htmltitle'),do_shortcode(get_option($xcol.'content'))); ?&amp;gt;
			&amp;lt;?php } elseif(get_option($xcol.'select')==$xcol.&quot;-2&quot;) { ?&amp;gt;
				&amp;lt;?php	contact_form($xcol.'',get_option($xcol.'mytitle'),get_option($xcol.'contactdesc'),get_option($xcol.'contactemail'),get_option($xcol.'contactmsg'));	?&amp;gt;
			&amp;lt;?php } elseif(get_option($xcol.'select')==$xcol.&quot;-3&quot;) { ?&amp;gt;
				&amp;lt;?php	pages_list(get_option($xcol.'pagestitle'),get_option($xcol.'pagesexc')); ?&amp;gt;
			&amp;lt;?php } elseif(get_option($xcol.'select')==$xcol.&quot;-4&quot;) { ?&amp;gt;
				&amp;lt;?	recent_posts(get_option($xcol.'recent-title'),get_option($xcol.'recentcat'),get_option($xcol.'recentnum'));	?&amp;gt;
			&amp;lt;?php } elseif(get_option($xcol.'select')==$xcol.&quot;-5&quot;) { ?&amp;gt;
				&amp;lt;?php	categories(get_option($xcol.'cat-title'),get_option($xcol.'cat'));	?&amp;gt;
			&amp;lt;?php } elseif(get_option($xcol.'select')==$xcol.&quot;-6&quot;) { ?&amp;gt;
				&amp;lt;?	meta_information(get_option($xcol.'metatitle'),get_option($xcol.'meta1'),get_option($xcol.'meta2'),get_option($xcol.'meta3'),get_option($xcol.'meta4'),get_option($xcol.'meta5')); ?&amp;gt;
			&amp;lt;?php } ?&amp;gt;
	&amp;lt;/div&amp;gt;&amp;lt;!-- / panel-wrap --&amp;gt;
	&amp;lt;div class=&quot;panel-wrap&quot;&amp;gt;
		&amp;lt;?php

                 $xcol=&quot;theTopThird&quot;;

			if(get_option($xcol.'select')==$xcol.&quot;-1&quot;) { ?&amp;gt;
				&amp;lt;?php custom_html(get_option($xcol.'htmltitle'),do_shortcode(get_option($xcol.'content'))); ?&amp;gt;
			&amp;lt;?php } elseif(get_option($xcol.'select')==$xcol.&quot;-2&quot;) { ?&amp;gt;
				&amp;lt;?php	contact_form($xcol.'',get_option($xcol.'mytitle'),get_option($xcol.'contactdesc'),get_option($xcol.'contactemail'),get_option($xcol.'contactmsg'));	?&amp;gt;
			&amp;lt;?php } elseif(get_option($xcol.'select')==$xcol.&quot;-3&quot;) { ?&amp;gt;
				&amp;lt;?php	pages_list(get_option($xcol.'pagestitle'),get_option($xcol.'pagesexc')); ?&amp;gt;
			&amp;lt;?php } elseif(get_option($xcol.'select')==$xcol.&quot;-4&quot;) { ?&amp;gt;
				&amp;lt;?	recent_posts(get_option($xcol.'recent-title'),get_option($xcol.'recentcat'),get_option($xcol.'recentnum'));	?&amp;gt;
			&amp;lt;?php } elseif(get_option($xcol.'select')==$xcol.&quot;-5&quot; || get_option($xcol.'select')==&quot;&quot;) {  // ********* Default Option ?&amp;gt;
				&amp;lt;?	categories(get_option($xcol.'cat-title'),get_option($xcol.'cat')); ?&amp;gt;
			&amp;lt;?php } elseif(get_option($xcol.'select')==$xcol.&quot;-6&quot;) { ?&amp;gt;
				&amp;lt;?	meta_information(get_option($xcol.'metatitle'),get_option($xcol.'meta1'),get_option($xcol.'meta2'),get_option($xcol.'meta3'),get_option($xcol.'meta4'),get_option($xcol.'meta5')); ?&amp;gt;
			&amp;lt;?php } ?&amp;gt;
	&amp;lt;/div&amp;gt;&amp;lt;!-- / panel-wrap --&amp;gt;
	&amp;lt;div class=&quot;panel-wrap last&quot;&amp;gt;
		&amp;lt;?php

                 $xcol=&quot;theTopFourth&quot;;

			if(get_option($xcol.'select')==$xcol.&quot;-1&quot;) { ?&amp;gt;
				&amp;lt;?php custom_html(get_option($xcol.'htmltitle'),do_shortcode(get_option($xcol.'content'))); ?&amp;gt;
			&amp;lt;?php } elseif(get_option($xcol.'select')==$xcol.&quot;-2&quot;) { ?&amp;gt;
				&amp;lt;?	contact_form($xcol.'',get_option($xcol.'mytitle'),get_option($xcol.'contactdesc'),get_option($xcol.'contactemail'),get_option($xcol.'contactmsg'));	?&amp;gt;
			&amp;lt;?php } elseif(get_option($xcol.'select')==$xcol.&quot;-3&quot;) { ?&amp;gt;
				&amp;lt;?	pages_list(get_option($xcol.'pagestitle'),get_option($xcol.'pagesexc')); ?&amp;gt;
			&amp;lt;?php } elseif(get_option($xcol.'select')==$xcol.&quot;-4&quot;) { ?&amp;gt;
				&amp;lt;?php	recent_posts(get_option($xcol.'recent-title'),get_option($xcol.'recentcat'),get_option($xcol.'recentnum'));	?&amp;gt;
			&amp;lt;?php } elseif(get_option($xcol.'select')==$xcol.&quot;-5&quot;) { ?&amp;gt;
				&amp;lt;?	categories(get_option($xcol.'cat-title'),get_option($xcol.'cat'));	?&amp;gt;
			&amp;lt;?php } elseif(get_option($xcol.'select')==$xcol.&quot;-6&quot;) { ?&amp;gt;
				&amp;lt;?	meta_information(get_option($xcol.'metatitle'),get_option($xcol.'meta1'),get_option($xcol.'meta2'),get_option($xcol.'meta3'),get_option($xcol.'meta4'),get_option($xcol.'meta5')); ?&amp;gt;
			&amp;lt;?php } ?&amp;gt;

	&amp;lt;/div&amp;gt;&amp;lt;!-- / panel-wrap --&amp;gt;
	&amp;lt;?php } ?&amp;gt;
&amp;lt;/div&amp;gt;&amp;lt;!-- / content --&amp;gt;
&amp;lt;/div&amp;gt; &amp;lt;!-- / panel --&amp;gt;</pre><p>I was going to reduce it to the code I actually need&#8211;but to be honest, I&#8217;m not even sure what it does. And the investment to understand what it did, would not be worthwhile.</p>
<p>If I were to write this for a particular customer, it would be a few lines of simple code. Easy to write, easy to maintain, easy to understand.</p>
<p>Not that it might not be a good theme for consumers, but working in this, is just a bloody mess. That&#8217;s why I feel very strongly that you should either build from scratch (or a framework), or use a pre-built theme with all its options&#8211;but trying to combine the two, is very foolish.</p>
]]></content:encoded>
			<wfw:commentRss>http://chrisburbridge.com/reasons-not-to-hack-pre-built-themes-1-gorgons-knot-of-conditional-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Best Practices Database Published</title>
		<link>http://chrisburbridge.com/wordpress-best-practices-database-published/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wordpress-best-practices-database-published</link>
		<comments>http://chrisburbridge.com/wordpress-best-practices-database-published/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 18:26:38 +0000</pubDate>
		<dc:creator>cb-admin</dc:creator>
				<category><![CDATA[Code & Tech]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[webdevelopment]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://chrisburbridge.com/?p=783</guid>
		<description><![CDATA[<p>I just published a WordPress best practices database, here: wp-best-practices.asdf573189.com/. It&#8217;s mainly for my internal use and sharing with colleagues, but I might as well share it with the world, as well.</p>
 ]]></description>
			<content:encoded><![CDATA[<p>I just published a WordPress best practices database, here: <a href="http://wp-best-practices.asdf573189.com/">wp-best-practices.asdf573189.com/</a>. It&#8217;s mainly for my internal use and sharing with colleagues, but I might as well share it with the world, as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://chrisburbridge.com/wordpress-best-practices-database-published/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Roots Theme—HTML5+Responsive Design+more</title>
		<link>http://chrisburbridge.com/roots-theme/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=roots-theme</link>
		<comments>http://chrisburbridge.com/roots-theme/#comments</comments>
		<pubDate>Fri, 06 Apr 2012 14:41:37 +0000</pubDate>
		<dc:creator>cb-admin</dc:creator>
				<category><![CDATA[Code & Tech]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[webdevelopment]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://chrisburbridge.com/?p=759</guid>
		<description><![CDATA[<p>Responsive Design CSS So I have been looking a lot at Responsive Design. If you are not familiar, my brutish summary is: Fluid layouts are (a) manageable, (b) cool. You can use the CSS @media queries feature to rearrange elements on your page layout, based on different window widths, and this means making things easier [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<h3><a href="http://chrisburbridge.com/roots-theme/picture-11/" rel="attachment wp-att-763"><img class="alignnone size-medium wp-image-763" title="Roots Theme" src="http://chrisburbridge.com/wp-content/uploads/2012/04/Picture-11-590x332.png" alt="Roots Theme" width="590" height="332" /></a></h3>
<h3>Responsive Design CSS</h3>
<p>So I have been looking a lot at <a href="http://www.smashingmagazine.com/responsive-web-design-guidelines-tutorials/">Responsive Design</a>. If you are not familiar, my brutish summary is:</p>
<ul>
<li>Fluid layouts are (a) manageable, (b) cool.</li>
<li>You can use the CSS @media queries feature to rearrange elements on your page layout, based on different window widths, and this means making things easier to read on iPhones and Androids, etc.</li>
</ul>
<p>There&#8217;s a bunch more, such as responsive images, where you try to serve images that are appropriate to the bandwidth of the visitor, and their screen size. But, that kind of sums up a lot of it. The term responsive design was coined by Ethan Marcotte, borrowing it from a term <em>responsive architecture</em>, which refers to a movement to make buildings adapt to their users. I guess that&#8217;s where we get somewhat dis-contiguous concepts, such as adapting to mobile devices, and providing fluid layouts, bundled in the same concept. But—both are cool.</p>
<p>Anyway, this leads me toward looking at CSS <em>responsive frameworks</em>, such as the <a href="http://lessframework.com">Less Framework</a>, that  give you some cool magical things about adapting to different screen widths using @media queries.</p>
<p>See <a href="http://speckyboy.com/2011/11/17/15-responsive-css-frameworks-worth-considering/">15 Responsive CSS Frameworks Worth Considering</a>, for a list of other good, juicy-looking things like this.</p>
<div>So, that&#8217;s interesting.</div>
<div></div>
<h3>WordPress Themes</h3>
<p>But what, I thought, about using a WordPress theme framework that already incorporated some of this stuff? So, <a href="http://www.wpmayor.com/polls/whats-your-favourite-wordpress-responsive-theme-framework/">I discovered</a>:</p>
<ul>
<li><a href="http://themble.com/bones/">Bones</a></li>
<li><a href="http://themefortress.com/reverie/">Reverie</a></li>
<li><a href="http://foundation.zurb.com/">Foundation</a></li>
<li><a href="http://www.rootstheme.com/">Roots</a></li>
</ul>
<p>My instinctive choice, for whatever variety of reasons, is to play with the <a href="http://www.rootstheme.com/">Roots Theme</a>. When I started to unpack this, I discovered that it has a <em>lot</em> of things in it, that I need and want. And actually—it reminded me, that nowadays, there is such a long list of best practices to remember, that I am just—quite frankly—glad that they remembered so many of them here, that they reminded <em>me</em> about them! —Much better to have these things baked into your initial install, than have to cobble them all on top of it, where possible.</p>
<p>And, I feel they have done a good job of balancing the needs to add sensible defaults, with allowing people freedom and flexibility. That&#8217;s always an interesting balance. And, they have included a number of other sub-elements that I have been interested in using for a while. Some, like Modernizr, I have been using for a while, but I am soo happy to have other good people include this for me!</p>
<p>Here&#8217;s a list of things Roots covers / includes:</p>
<p><span id="more-759"></span></p>
<h4><a href="http://html5boilerplate.com/">HTML5 Boilerplate</a></h4>
<div>A long-running, well-matured framework of code for developing using HTML5. This buys me:</div>
<div>
<ul>
<li>Careful coverage of backwards compatibility for HTML5</li>
<li>The ability to use all of HTML5&#8242;s more semantic elements—such as article, section, and header</li>
<li>Be prepared for, and move towards, the future</li>
<li>A whole bunch of little niceties that I don&#8217;t have to worry about, because they have (I think my strategy combines a search for what&#8217;s going on, with a knowledge of letting people who want to be experts in a thing, be that)</li>
<li>Using <a href="http://modernizr.com/">Modernizr</a> to easily detect a browser&#8217;s capabilities, allowing you to create backwards-compatible alternatives where necessary</li>
<li>Paul Irish&#8217;s <a href="http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/">elegant technique</a> for handling Internet Explorer anomalies gracefully without adding lots of extra style sheets</li>
</ul>
<h4><a href="http://twitter.github.com/bootstrap/">Bootstrap</a> from Twitter</h4>
<div>A CSS framework that combines best practices for a lot of things:</div>
<ul>
<li><a href="http://necolas.github.com/normalize.css/">Normalizing CSS</a>, which is a leaner alternative to the traditional CSS Reset</li>
<li>A grid system that allows a lot of flexibility, and you can easily use to manage fluid layouts, or static layouts</li>
<li>Lots of support for responsive design, including special classes to show or hide things on different sizes of things, where you can just say &#8220;Tablet Only&#8221;, and have it work, and easily implement @media queries</li>
<li>A lot of really elegant defaults for HTML things. For example, I love the way they reset bulleted lists to an attractive bulleted list format, but you can apply a class of &#8220;unstyled&#8221; to remove the list&#8217;s bullets (other systems just strip out the bullets, which I think is weird). Very lovely table formatting options, form formatting options, beautiful buttons and even button icons, that you can use all by just applying some classes</li>
</ul>
<p>Beyond this kind of basic really good, elegant stuff, Bootstrap includes a bunch of fancy UI elements, such as content tabs, and drop-down menu thingies, that are very nicely done. All-in-all, I think there is a philosophy here, of &#8220;we chose one good, nice way of doing things—maybe you can just use it!&#8221;—I think this is a lovely baseline.</p>
</div>
<p>Bootstrap also uses <a href="http://lesscss.org">LESS</a>—a compiled CSS that allows you to include variables, calculations, and re-usable chunks. This is another &#8220;best practice&#8221; that is growing and growing right now, and it is lovely. Note that you can use the pre-compiled bootstrap.css and bootstrap-responsive.css out of the box, if you want to. When you run Roots, it does not do anything with the .less files that are included—if you want, you can modify these, and recompile them into bootstrap.css.</p>
<h4>Other Nicifications</h4>
<ul>
<li>Path nicifications—they shortcut a bunch of common theme paths, like /css for /wp-content/themes/&lt;my theme&gt;/css. I think that&#8217;s handy</li>
<li>Combining all Javascript plugin code into a single plugins.js file, as a default, to save requests</li>
<li>Pre-creating a script.js file for you to use</li>
<li>Lots of language support built in</li>
<li>A stylesheet for the TinyMCE built-in editor, so that you can make the text when someone is managing the site, look like it will when it&#8217;s published; this is the first time I&#8217;ve even seen someone address this!</li>
<li>Creating a very nice /inc/roots-*.php framework of functions files, to neatly manage configuration, including a roots-custom.php place for you to put your own code</li>
</ul>
<p>I feel intuitively, that these guys have done a very nice job of balancing making this thing<em> too </em>structured and rigid, with a zillion files for every possible eventuality, or making it so bare-bones that the moment you start, you have to do all this organization of your own, just go get things set up in a good, basic way. The structure of these /inc/roots-*.php files, as an example, is such that you can clearly see where you might want to add your own custom code, and keep a default t thing intact—or, you might want to modify something in the structure of what&#8217;s already there. This applies to a lot of parts of this framework.</p>
<p>The documentation is also pretty good, and there is clearly a lot of support and activity for it. As of this writing, there are 26 open issues, and 354 closed ones, since the project was first added to GitHub, about a year ago.</p>
<p>There is documentation on how to use it with Nginx and Lighttpd (=non-Apache, more optimized) web servers.</p>
<p><!--more--></p>
<h3>Very Nice Out of the Box</h3>
<p><img class="alignnone size-medium wp-image-762" title="Normal Width" src="http://chrisburbridge.com/wp-content/uploads/2012/04/Picture-10-590x354.png" alt="Normal Width" width="590" height="354" /></p>
<div id="attachment_780" class="wp-caption alignnone" style="width: 360px"><img class="size-medium wp-image-780" title="iPhone-y (narrow width)" src="http://chrisburbridge.com/wp-content/uploads/2012/04/Picture-12-350x403.png" alt="iPhone-y (narrow width)" width="350" height="403" /><p class="wp-caption-text">iPhone-y (narrow width)</p></div>
<p>Lastly, a very important thing in a practical life, is that this theme looks very nice out of the box, as the example screen shot shows. Furthermore, it is already &#8220;responsive,&#8221; so that if you narrow the window, the top menu becomes an iPhone-like button menu, and the sidebar stacks below.</p>
<h3>Installation and Use Notes</h3>
<p>A few things I noticed:</p>
<ul>
<li>Installing the theme copies the inc/h5bp-htaccess into the document root, adding several optimizations provided by HTML5 Boilerplate. But for whatever reason, this totally crashed my local Apache (maybe its just old). So, I had to comment a number of those things out. You could probably just delete the generated .htaccess file, and then go do WordPress Settings &gt; Permalinks to rebuild it as the default.</li>
<li>At first, understanding Bootstrap was a little intimidating, until I realized that I could let 95% of it just be as it was, and just learn what little @variables I needed to modify, and then recompile bootstrap.less. (And in fact, I could leave 100% of it alone, if I wanted). For the most part, you can just allow its basic goodness to influence your site, and override it as needed, and utilize the classes to make it do special magic things.)</li>
<li>Roots calls 4 CSS files:</li>
<ul>
<li>css/style.css — This appears to just be the HTML5 Boilerplate baseline. I believe one would not want to modify this, normally</li>
<li>css/bootstrap.css — The compiled Bootstrap file. Again, if you wanted to modify anything here you could, but you&#8217;d want to modify the .less files, and recompile that</li>
<li>css/app.css — This is a nicely-organized skeleton which is mostly empty, and provides a nice place to add your custom CSS, with some reasonable sections</li>
</ul>
</ul>
<h3>Process Management</h3>
<p>So a very big part of all this, in considering a framework you might use, and thinking about the implications for the future, and long-term use and so on. So a great part of using the Roots Theme, is that they have built it on a bunch of other best-practices work—HTML5 Boilerplate, Bootstrap, etc.—that, themselves are taking advantage of other good best-practices code.</p>
<p>Now, we want to balance efficiency of developing our own themes, with being able to take advantage of code updates in the Roots Theme. The theme is set up so that you could really do it either way. It includes a bunch of hooks, which you could use in a child theme. But, the author does not just praise the use of child themes, acknowledging that the tradeoff is, that while using one makes it easier to update the core Roots code, it makes development slower and less intuitive, as well.</p>
<p>Personally, I could imagine that if I was doing a simple project, then <em>perhaps</em> I might use a child theme. But overall, I am with them—I&#8217;d rather use Roots as a starting place, and modify the code as it worked for me.</p>
<p>Now, having said this, there should be a good development process in place. Perhaps one should decide which files were &#8220;sacrosanct&#8221;, and make them read-only, and decide on a standard about how and when files were to be modified.</p>
<p>Another thing that would be smart to do, is keep a snapshot of an unchanged version of the code, from when you started the project (e.g., by using a Git tag). This way, when Roots was updated, you could see what changes between that and what you have now, were a result of updates in the core code, and what changes were a result of your modifications. I guess you could use Git to merge the Roots core updates into your project &#8230; it would be a bit sophisticated, but it would make a lot of sense to do learn how to do that.</p>
]]></content:encoded>
			<wfw:commentRss>http://chrisburbridge.com/roots-theme/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>NextSpace</title>
		<link>http://chrisburbridge.com/portfolio/nextspace/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nextspace</link>
		<comments>http://chrisburbridge.com/portfolio/nextspace/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 21:40:55 +0000</pubDate>
		<dc:creator>chris</dc:creator>
		
		<guid isPermaLink="false">http://chrisburbridge.local/?post_type=portfolio-items&#038;p=686</guid>
		<description><![CDATA[ ]]></description>
			<content:encoded><![CDATA[    ]]></content:encoded>
			<wfw:commentRss>http://chrisburbridge.com/portfolio/nextspace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Design Process: Design in the Browser?</title>
		<link>http://chrisburbridge.com/web-design-process-design-in-browser/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=web-design-process-design-in-browser</link>
		<comments>http://chrisburbridge.com/web-design-process-design-in-browser/#comments</comments>
		<pubDate>Wed, 25 May 2011 18:43:55 +0000</pubDate>
		<dc:creator>chris</dc:creator>
				<category><![CDATA[For Designers]]></category>

		<guid isPermaLink="false">http://chrisburbridge.com/?p=536</guid>
		<description><![CDATA[<p>&#8220;Designing in the Browser&#8221; My previous post about web design for print designers, got me thinking more about what the &#8220;best&#8221; process, the best workflow, for designing and creating websites is. Andy Clarke, a very influential British web designer gave a very influential talk about this a few years ago,  being a proponent of &#8220;designing [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p><strong>&#8220;Designing in the Browser&#8221;</strong></p>
<p>My previous post about <a href="http://chrisburbridge.com/web-design-for-print-designers-pt-1">web design for print designers</a>, got me thinking more about what the &#8220;best&#8221; process, the best workflow, for designing and creating websites is.</p>
<p>Andy Clarke, a very influential British web designer gave a <a href="http://stuffandnonsense.co.uk/blog/about/walls_come_tumbling_down_presentation_slides_and_transcript">very influential</a> talk about this a few years ago,  being a proponent of &#8220;designing in the browser&#8221;—that is, leaving Photoshop behind, and working straight in the medium that your client&#8217;s site will actually be living in—HTML, CSS, Javascript.</p>
<p>Here&#8217;s a sloppy summary of why:</p>
<ul>
<li>The way Photoshop treats type is totally different from the way browser treat it</li>
<li>It creates a whole other step in the process, that can slow things down</li>
<li>PS does not have any way of mocking up dynamic elements, such as hover-over behaviors</li>
<li>You have to translate what Photoshop can do, into what a browser can do—why not start in the browser itself?</li>
</ul>
<p><a href="http://24ways.org/2009/make-your-mockup-in-markup">Meagan Fisher</a> did another great article about this on 24 Ways. She goes into more depth about the process she uses to design in the browser—using HTML and CSS. (See the comments on this article for an in-depth discussion, by real designers, of the pros and cons of this method.)</p>
<p>A small company called <a href="http://handcraft.com/">Handcraft</a> has even started to create a little web app to help you do this, <a href="http://danlewisjames.com/resources/designing-in-the-browser/">Dan Lewis James</a> wrote a post about his process, and 37 Signals wrote a characteristically great and opinionated piece about it, <a href="http://37signals.com/svn/posts/1061-why-we-skip-photoshop">Why we Skip Photoshop</a>.</p>
<p><strong>Why it Matters</strong></p>
<p>My previous post got me thinking a lot about the problems of using Photoshop—or Illustrator, or really, Fireworks.</p>
<ul>
<li>It encourages the client, and the designer, to continue thinking about the work as a static piece of paper, that only gets &#8220;converted&#8221; into a web page at the end</li>
<li>It relegates any work on the dynamic elements to the end, if at all (if the designer doesn&#8217;t pay attention to them, and the developer doesn&#8217;t feel it&#8217;s his duty to worry about it, and the client doesn&#8217;t even know that it&#8217;s possible—where the heck is it supposed to come up?)</li>
</ul>
<p><strong>Drawbacks</strong></p>
<p>There are a number of drawbacks of the &#8220;designing in the browser&#8221; approach:</p>
<ul>
<li>Many designers don&#8217;t know CSS and HTML, and don&#8217;t want to</li>
<li>Working in the browser might make you think more &#8220;left-brained,&#8221; and limit your creativity (if you&#8217;re like that)</li>
<li>It might make you think in &#8220;boxy&#8221; terms, because it&#8217;s so easy to make boxes in HTML and CSS; Photoshop lets you break out of the &#8220;box&#8221; and create things that people may not have seen before—then, you can go back and figure out how to code it</li>
</ul>
<p><strong>Moving Forward—Solution?</strong></p>
<p>I don&#8217;t think there&#8217;s one solution here. Here&#8217;s what I think:</p>
<ul>
<li>It&#8217;s not just a question about tools; it&#8217;s a question about process—the process tends to drive decisions. For example, if the designer is the de facto driver of a project, and the designer uses a process of &#8220;I show the Photoshop comps to the client, and he signs off on them,&#8221; this will <em>inevitably</em> tend to downplay dynamic elements, and relegate them to the back burner. They may never get addressed at all.</li>
<li>We probably need to think about a process that includes people working <em>concurrently</em>—let&#8217;s have a copywriter developing some lead copy, as the designer uses whatever creative tool they like to work with to open up their minds, and meanwhile, let&#8217;s have a &#8220;web expert&#8221; point out great examples of subtle dynamic behavior, or trends in web design, that could positively impact the design.</li>
</ul>
<p>Let me summarize even more:</p>
<ul>
<li>I think we need a process that co-evolves with an <strong>expert writer</strong>, a <strong>web expert</strong>, a <strong>coder</strong>, a <strong>designer</strong>, and a <strong>marketing person</strong>, and an <strong>information architect</strong>, all co-creating the work simultaneously, so that the project ends up placing correct emphasis on everything, and design considers.. marketing. Design considers&#8230; the actual content. Design considers&#8230; the organization of the site.</li>
</ul>
<p>Of course, you could have more than one person wearing some of these hats. But bottom line, I don&#8217;t think anymore that you can have just one person who understands the big picture well enough to create a work in isolation. I think you should use the tools that work for you, but you should incorporate any important considerations in the process. It&#8217;s unrealistic to make one person responsible for all of this—it&#8217;s just equally unreasonable to ignore the different factors.</p>
<p>&nbsp;</p>
<p><strong>What do you think?</strong></p>
<p>What is your web design process like, and how does it work for you?</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://chrisburbridge.com/web-design-process-design-in-browser/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

