<?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 Van Patten versus The World</title>
	<atom:link href="http://www.chrisvanpatten.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.chrisvanpatten.com</link>
	<description></description>
	<lastBuildDate>Fri, 27 Apr 2012 13:52:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Theme wrappers sans spanning</title>
		<link>http://www.chrisvanpatten.com/blog/2012/04/theme-wrappers-sans-spanning/</link>
		<comments>http://www.chrisvanpatten.com/blog/2012/04/theme-wrappers-sans-spanning/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 13:52:20 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Computers and Technology]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.chrisvanpatten.com/?p=620</guid>
		<description><![CDATA[Last night at the Buffalo WordPress Meetup I did a little talk about theme wrappers. I briefly alluded to the dangers of tag spanning but didn&#8217;t follow up on it, and when I live-converted a theme to use theme wrappers I didn&#8217;t convert it to the format I typically use that repurposes header.php and footer.php... <a href="http://www.chrisvanpatten.com/blog/2012/04/theme-wrappers-sans-spanning/">Read more...</a>]]></description>
			<content:encoded><![CDATA[<p>Last night at the Buffalo WordPress Meetup I did a little talk about theme wrappers. I briefly alluded to the dangers of tag spanning but didn&#8217;t follow up on it, and when I live-converted a theme to use theme wrappers I didn&#8217;t convert it to the format I typically use that repurposes header.php and footer.php to help prevent tag spanning. I thought I&#8217;d go over it here to help clear that up!<span id="more-620"></span></p>
<p>In the final example I showed, where I converted a site to the theme wrapper method live, tag spanning was still in place because I used the get_header and get_footer functions for their typical purpose (and the way I had originally used them in the theme). This is <em>totally okay</em> if that&#8217;s how you like to work, but I actually ended up modifying that base.php file this morning to make it a little more sane.</p>
<p>Here&#8217;s how you can do that too.</p>
<p>First, create a new file: head.php. Head.php is a partial that contains the entire content of the <head> HTML tag, and the opening and closing tags themselves. Now where that markup would normally be included in header.php, I just add <code><?php get_template_part('head'); ?></code> to pull in the head.php partial. </p>
<p>There&#8217;s no real reason to do this other than keeping a lot of code out of my base.php file and keeping things a little cleaner. I think it just overall makes it easier to parse through a file and get to relevant content faster, but that&#8217;s just me. And because the <head> tag gets opened and closed right within the head.php partial, you don&#8217;t have to worry about spanning. I also like it because I can easily copy head.php between projects that often start with the same basic needs.</p>
<p>Now in your header.php file, copy everything over to your base.php. Keep you header.php file, you&#8217;ll probably want it, but ignore it for now. Replace your call to get_header with what you just copied. Do the same with get_footer and footer.php.</p>
<p>So now your base.php file is a whole lot bigger. But we can trim it back down by looking in your header and footer (in your markup, not those files yet) for the actual header and footer markup that closes itself. <em>That&#8217;s</em> what you want to copy back into your header and footer files, and replace that markup in your base.php file with get_header and get_footer.</p>
<p>Here&#8217;s a gist that shows the finished base.php.</p>
<p><script src="https://gist.github.com/2509424.js?file=base.php"></script></p>
<p>I hope this makes some sense. Let me know if you have any questions and what you think of this method!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisvanpatten.com/blog/2012/04/theme-wrappers-sans-spanning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Even better DRY for WordPress</title>
		<link>http://www.chrisvanpatten.com/blog/2012/04/better-dry-wordpress/</link>
		<comments>http://www.chrisvanpatten.com/blog/2012/04/better-dry-wordpress/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 15:07:03 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Computers and Technology]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.chrisvanpatten.com/?p=617</guid>
		<description><![CDATA[So I posted a week or so ago about DRY themes for WordPress. Turns out, this has been done already (I thought it might have been), and in an even more awesome way that avoids my conditional-filled logic statements. Check out scribu&#8217;s Theme Wrappers, the most brilliant handling of this issue yet. With a little... <a href="http://www.chrisvanpatten.com/blog/2012/04/better-dry-wordpress/">Read more...</a>]]></description>
			<content:encoded><![CDATA[<p>So I posted a week or so ago about <a href="http://www.chrisvanpatten.com/blog/2012/04/dry-wordpress-themes/" title="DRY WordPress Themes">DRY themes for WordPress</a>. Turns out, this has been done already (I thought it might have been), and in an even more awesome way that avoids my conditional-filled logic statements.</p>
<p>Check out <a href="http://scribu.net/wordpress/theme-wrappers.html">scribu&#8217;s Theme Wrappers</a>, the most brilliant handling of this issue yet.</p>
<p>With a little bit of extra code in your functions.php file (or in a plugin–after a little more testing I&#8217;ll probably incorporate this into the <a href="https://www.github.com/vanpattenmedia/rach5-helper">rach5-helper</a>) you have a perfect setup that lets you define a base php file (wrapper.php in his example, but I prefer base.php) and use WordPress standard template names to fill in the gaps, saving you time and energy and keeping you from needing to maintain a 20 line conditional check.</p>
<p>This is an awesome system and absolutely worth checking out if easily maintainable themes is something that matters to you!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisvanpatten.com/blog/2012/04/better-dry-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DRY WordPress Themes</title>
		<link>http://www.chrisvanpatten.com/blog/2012/04/dry-wordpress-themes/</link>
		<comments>http://www.chrisvanpatten.com/blog/2012/04/dry-wordpress-themes/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 17:54:10 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Computers and Technology]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.chrisvanpatten.com/?p=612</guid>
		<description><![CDATA[I&#8217;ve been working out a new process for developing WordPress themes and I wanted to share it here before I take it over to the Van Patten Media blog. I&#8217;d love to get feedback and tweak it as much as possible! I&#8217;ve been developing WordPress themes for a lot of years–almost as long as I&#8217;ve... <a href="http://www.chrisvanpatten.com/blog/2012/04/dry-wordpress-themes/">Read more...</a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working out a new process for developing WordPress themes and I wanted to share it here before I take it over to the Van Patten Media blog. I&#8217;d love to get feedback and tweak it as much as possible!</p>
<p>I&#8217;ve been developing WordPress themes for a lot of years–almost as long as I&#8217;ve been doing professional web development. One of the biggest problems I&#8217;ve run into (especially lately) is writing themes that are easily maintainable.</p>
<p>Sass and Compass have helped in the style sheet department (<a title="Sexy Style Sheets with Sass (and Compass)" href="http://www.chrisvanpatten.com/blog/2012/04/sexy-style-sheets-sass-compass/">see my introduction to them</a>) but the WordPress themes themselves still are full of heavily repeated content. What do I mean?</p>
<p>Well, a WordPress theme generally has a few base items:</p>
<ul>
<li>index.php</li>
<li>page.php</li>
<li>single.php</li>
<li>header.php</li>
<li>footer.php</li>
<li>page-{your-template}.php</li>
<li>etc.</li>
</ul>
<p>&#8220;So where&#8217;s the problem?&#8221; you might ask. &#8220;Your header and footer are included in every file, and that solves every problem.&#8221; Yes, but I have one requirement that stumps things: I want no tags spanning across files.</p>
<p>What do I mean? Simple: if I open a &lt;div&gt; in one file, I don&#8217;t want to close it in another. And with header and footer.php files, that&#8217;s exactly the situation you end up in. You probably open up your &lt;html&gt;, &lt;body&gt;, and a number of wrapper &lt;div&gt;s.</p>
<p>That gets unmaintainable quickly when you&#8217;re bouncing between multiple projects a day and don&#8217;t remember what the third closing div tag lined up with in your footer.php file. So I&#8217;ve implemented a new system, visible in the most recent <a href="https://github.com/vanpattenmedia/rach5">Rach5</a> commits.</p>
<p>This system forgoes the traditional page.php and single.php templates, and instead makes extensive use of conditionals called from index.php. Now if you are familiar with the <a href="http://codex.wordpress.org/Template_Hierarchy">WordPress template hierarchy</a>, you know that conditionals in an index file are doing double the work, as WordPress has already tried to find an appropriate file. But by putting the majority of your theme structure in index.php (think of it as your base file) you save yourself a massive amount of work down the line.</p>
<p><script src="https://gist.github.com/2430622.js"> </script></p>
<p>You can see in the gist how my files are laid out: header.php now includes the <em>visible header</em> within the <body> tag. And I&#8217;m now using a new template part, head.php, to serve the <head> tag. You can see an example of the <a href="https://github.com/vanpattenmedia/rach5/blob/master/head.php">head.php from Rach5 here</a> (Note: with this method, you could easily include the <head> tag directly in your base file, but I choose not to for maintainability reasons).</p>
<p>Then every time I want to include new content in the &#8220;content area&#8221; of the site, I have conditionals that determine which file to include. I have two default loop files, loop-page.php and loop-post.php which handle basic loops, and a pg-front.php template part. Calling these conditionals from here causes some extra logic to be executed (duplicating logic that WordPress executed previously, in a way), but caching will make that negligible, and this means I can minimize duplicated template code.</p>
<p>I&#8217;ve only loosely sketched out the concept, but you can see it and try it for yourself by downloading the latest Rach5. I&#8217;d love to hear what others think!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisvanpatten.com/blog/2012/04/dry-wordpress-themes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sexy Style Sheets with Sass (and Compass)</title>
		<link>http://www.chrisvanpatten.com/blog/2012/04/sexy-style-sheets-sass-compass/</link>
		<comments>http://www.chrisvanpatten.com/blog/2012/04/sexy-style-sheets-sass-compass/#comments</comments>
		<pubDate>Sat, 14 Apr 2012 20:23:55 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Computers and Technology]]></category>
		<category><![CDATA[Ramblings]]></category>
		<category><![CDATA[Talks]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.chrisvanpatten.com/?p=607</guid>
		<description><![CDATA[Today at BarCamp Rochester I gave a talk outlining some of the awesome features of Sass and Compass (the style sheet preprocessor and the preeminent framework built for it, respectively) with lots of examples and lots of code. The slides are online here (built with DeckJS). They discuss some basic Sass features and some additions... <a href="http://www.chrisvanpatten.com/blog/2012/04/sexy-style-sheets-sass-compass/">Read more...</a>]]></description>
			<content:encoded><![CDATA[<p>Today at <a href="http://barcamproc.org/">BarCamp Rochester</a> I gave a talk outlining some of the awesome features of <a href="http://sass-lang.com/">Sass</a> and <a href="http://compass-style.org/">Compass</a> (the style sheet preprocessor and the preeminent framework built for it, respectively) with lots of examples and lots of code.</p>
<p>The slides are <a href="http://www.chrisvanpatten.com/talks/ssssc/">online here</a> (built with <a href="http://imakewebthings.com/deck.js/">DeckJS</a>). They discuss some basic Sass features and some additions Compass brings to the table as well.</p>
<p>Considering the fairly dense nature of the material and the speed I had to rush through them, I think the talk was fairly well received. If I could have another go (and I may soon) I would consider reformatting the presentation so it&#8217;s less &#8220;here&#8217;s a feature, here&#8217;s another feature, and yet another feature&#8221; but instead connects the features so you get a better sense of how they&#8217;re used in a workflow. Demonstrating the process of building of a page in realtime with Sass and Compass would be more fun and accomplish this, but it would have to be carefully scripted.</p>
<p>I left out three major things in the discussion (but touched briefly on one of them):</p>
<ol>
<li><a href="http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#partials">Partials</a></li>
<li><a href="http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#syntax">Sass vs. SCSS syntax</a></li>
<li>Getting started (installation <a href="http://sass-lang.com/download.html">for Sass</a> and <a href="http://compass-style.org/install/">for Compass</a>)</li>
</ol>
<p>I&#8217;ve linked to some resources above that will guide you to the right places for beginning your own exploration of those topics.</p>
<p>I had a great time at BarCamp Rochester, reconnecting with folks from the Rochester tech community and hanging out with friends from Buffalo. And the swag is awesome: I walked away with three new t-shirts (thanks BarCamp Rochester, Puppet Labs, and Stack Overflow!), many new stickers (thanks jQuery UI, Puppet Labs, and Stack Overflow!) and a killer beer stein (thanks Stack Overflow!).</p>
<p>I&#8217;m already looking forward to the next BarCamp, and hopefully we can get one running in Buffalo regularly again soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisvanpatten.com/blog/2012/04/sexy-style-sheets-sass-compass/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Thoughts on licenses</title>
		<link>http://www.chrisvanpatten.com/blog/2012/04/thoughts-licenses/</link>
		<comments>http://www.chrisvanpatten.com/blog/2012/04/thoughts-licenses/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 00:02:37 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Computers and Technology]]></category>
		<category><![CDATA[Deep thoughts]]></category>
		<category><![CDATA[Rant]]></category>

		<guid isPermaLink="false">http://www.chrisvanpatten.com/?p=592</guid>
		<description><![CDATA[I was going to write this post here, then I thought I&#8217;d post it at the Van Patten Media blog, then I changed my mind and cancelled the whole post. Finally, I&#8217;ve decided to write a shorter version of my thoughts here. Bear with me. I&#8217;ve been thinking a lot lately about open source software... <a href="http://www.chrisvanpatten.com/blog/2012/04/thoughts-licenses/">Read more...</a>]]></description>
			<content:encoded><![CDATA[<p><em>I was going to write this post here, then I thought I&#8217;d post it at the Van Patten Media blog, then I changed my mind and cancelled the whole post. Finally, I&#8217;ve decided to write a shorter version of my thoughts here. Bear with me.</em></p>
<p>I&#8217;ve been thinking a lot lately about open source software licenses. Aside from using open source all day err&#8217; day, Van Patten Media has also released several open source software components; most of these in connection with WordPress.</p>
<p>So why think about licenses? Well, they&#8217;re the framework that defines a piece of open source software. Essentially they are what opens it. And when VPM has been so active in ensuring compliance with the open source ecosystems we&#8217;re apart of (our publicly available plugins and theme utilities are entirely GPL or GPL-compatible, as circumstances dictate) I get annoyed when other services in this same ecosystem (the WordPress ecosystem, usually) violate what I believe is the spirit of the GPL, the license that governs most WordPress activity.</p>
<p>What leads me to feel this way? Three things:<span id="more-592"></span></p>
<h3>Dual-licensing of themes.</h3>
<p>Admittedly the Software Freedom Law Center has <a href="https://wordpress.org/news/2009/07/themes-are-gpl-too/">given the thumbs-up to dual-licensing themes</a>, under the logic that the PHP files require WordPress to run, but the CSS/images/javascript can stand alone. They have valid technical reasons for their assessment of why PHP code in a theme is assuredly GPL, but I think their analysis of static content is critically flawed.</p>
<p>Much in the same way that removing WordPress removes the functionality of a theme, removing a theme&#8217;s static content removes the very essence of what makes it unique and usable. Without (at the very least) CSS, a theme can hardly be considered a &#8220;theme&#8221; at all. And the GPL has this important passage:</p>
<blockquote><p>If identifiable sections of that [modified] work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. <strong>But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License</strong></p></blockquote>
<p>This is taken from <a href="https://www.gnu.org/licenses/gpl-2.0.html">section 2</a>, which is the section that initiates virality. And to my mind, that passage sets it up quite clearly that GPL is all or nothing, unless the components are distributed separately. (The emphasis above is mine.)</p>
<h3>Misleading users</h3>
<p>This one is a personal pet peeve. Certain theme repositories that will not be named lead users to believe that their WordPress theme purchases can only be used a limited number of times before they must purchase new licenses.</p>
<p>Remember how <a href="https://wordpress.org/news/2009/07/themes-are-gpl-too/">WordPress themes are GPL</a>? Even if you don&#8217;t share my opinion that all components of publicly distributed themes should be GPL (and admittedly, many do not) this practice is still misleading. While you may be restricted by a secondary license on reuse of static content, make no mistake: <strong>you can use theme PHP files as many times as you want to.</strong> Any copy that confuses users and leads them to believe otherwise is morally suspect and just plain shady.</p>
<h3>Paywalls</h3>
<p>This last issue is another one that bothers me (and I know others): the issue of the paywall. It&#8217;s an incredibly touchy issue, as paywalls (or perceived paywalls) are probably the number one way WordPress developers can create quick revenue streams.</p>
<p>My concern is that paywalls, in congress with the issues I&#8217;ve mentioned above, are antithetical to the openness and virality that the GPL is designed to promote.</p>
<p>Yes, the GPL permits charging for distribution. The GNU website even has a <a href="https://www.gnu.org/philosophy/selling.html">fascinating article</a> encouraging individuals to charge for their open source software. But it&#8217;s key to understand their perspective: they&#8217;re encouraging you to charge so as to support the community around the program and donate to future developments. In fact, their article assumes you&#8217;re charging for <em>redistribution</em>. In their scenario, the software is already out and available in the public sphere, ready to be used and picked apart by those with the know-how. As a redistributor, you&#8217;re just helping to make it more readily available.</p>
<p>In the WordPress ecosystem, this is rarely the case. Software developers <em>are</em> the distributors, so you have no choice but to pay to get it from the source. While this is permitted by the letter of the license, I think it&#8217;s a violation of the spirit of the license, which is designed to perpetuate the spread of free software, not lock it behind a door.</p>
<p>To me, the paywall is the manifestation of an attitude I get from many WordPress theme and plugin developers: the GPL (and licensing) is just an inconvenience; a requirement from on high to satisfy some arcane legal nonsense. To me, the paywall is the physicalization of the search for loopholes in the license so you can squeeze more money out of your end users while consolidating control and restricting access.</p>
<p>And furthermore, I&#8217;m frustrated by the services that refuse to sell me a theme or plugin without also selling me some sort of support package that I don&#8217;t need. Frankly, I&#8217;m not sure that is at all within the letter of the GPL. Forcing me to buy bundles with support and plugin access is price gouging, and taking advantage of end users. Sell support separately.</p>
<h3>Ultimately&#8230;</h3>
<p>I would love nothing more than to see plugin and theme developers start developing their wares out in the open on Github or their own code repositories. I would love to see &#8220;purchase upgrades&#8221; or &#8220;buy this theme/plugin&#8221; become a thing of the past.</p>
<p>The emphasis should be on personalization. Upselling is the name of the game, right? Instead of asking users to spend $200 on a theme, why not spend $200 and take an hour or so with every user to actually help them get their website live. Offer more than just &#8220;support when it breaks&#8221; but &#8220;support before you need it.&#8221; Be the concierge for your product.</p>
<p>Admittedly my opinions on licensing are a bit extreme in the WordPress ecosystem. Even some members of the core team have expressed opinions that are contrary to my own. <em>And that&#8217;s okay.</em></p>
<p>But when you set out to make a buck, and you&#8217;re doing it on the backs of hundreds if not thousands of folks who collectively built a piece of software that your creation depends on, give it some thought&#8230; are you making your thing in the most ethical way possible? Are you treating your customer with respect and without misleading them? Are you contributing to the software ecosystem that you&#8217;re apart of?</p>
<p>If you can&#8217;t answer yes to those questions, you may need to stop and seriously re-examine your approach. I know we have at Van Patten Media, and I sleep better at night for it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisvanpatten.com/blog/2012/04/thoughts-licenses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Local WordPress Development Dilemma</title>
		<link>http://www.chrisvanpatten.com/blog/2012/04/local-wordpress-development-dilemma/</link>
		<comments>http://www.chrisvanpatten.com/blog/2012/04/local-wordpress-development-dilemma/#comments</comments>
		<pubDate>Fri, 06 Apr 2012 03:24:06 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Computers and Technology]]></category>

		<guid isPermaLink="false">http://www.chrisvanpatten.com/?p=581</guid>
		<description><![CDATA[My current web development workflow is a little sloppy, I admit. Traditionally, you have four stages: dev, QA, staging, and production. My workflow completely eliminates one of those stages (QA) and combines two (dev and staging are just one stage for me). And–the pièce de résistance–I don&#8217;t keep my combined dev/staging setup on my local... <a href="http://www.chrisvanpatten.com/blog/2012/04/local-wordpress-development-dilemma/">Read more...</a>]]></description>
			<content:encoded><![CDATA[<p>My current web development workflow is a little sloppy, I admit. Traditionally, you have four stages: dev, QA, staging, and production. My workflow completely eliminates one of those stages (QA) and combines two (dev and staging are just one stage for me). And–the pièce de résistance–I don&#8217;t keep my combined dev/staging setup on my local machine; it&#8217;s all on my remote server.</p>
<p>Sure, it works&#8230; but it&#8217;s not ideal (as <a href="http://paddy.io/">Paddy</a> has been very quick and all too eager to point out). And as I&#8217;m on the hunt for a new text editor (my beloved Espresso 1.x is not Lion-friendly) and get to know Git better, I&#8217;ve decided to overhaul my development workflow (and eventually institute the changes across <a href="http://www.vanpattenmedia.com/">Van Patten Media</a>&#8230; I&#8217;m sure <a href="http://www.peter.upfold.org.uk/">Peter</a> will be happy to see me attempting to standardize this process a bit!). <strong>The goal?</strong> <strong>Local dev, remote staging and production, with deployment between the three handled by Git and Git hooks</strong> (as much as possible)<strong> with Vagrant handling the local server environment </strong>(as opposed to MAMP or something like that)<strong>.<span id="more-581"></span></strong></p>
<p>Now the conventional wisdom is &#8220;just install WordPress and go wild!&#8221; But remember–Van Patten Media is primarily dealing in WordPress, so there are a few hiccups along the way (I love WordPress, but it&#8217;s making this a pain in the neck!). Among them:</p>
<ol>
<li>WordPress sets the site URL in the database&#8230; so every time I want to push database content between <code>dev.*</code>, <code>staging.*</code>, and the production site, I need to change that item in the database.</li>
<li>Whenever you insert an image in the editor, it uses the absolute URL (e.g. <code>site.com/path/to/image.ext</code>). Remember that last item? Same situation, but even more fun: I&#8217;ll need to scan <em>every post</em> for the site&#8217;s hostname and switch it out based on whether I&#8217;m at <code>dev.*</code>, <code>staging.*</code>, or on production.</li>
<li>I like to arrange my WordPress projects in a specific way, because I often have custom <code>humans.txt</code>/<code>robots.txt</code> files and <code>maintenance.php</code> files that live outside the theme root. You can see an example of this at the <a href="https://github.com/vanpattenmedia/vanpattenmedia.com">Github repo for the Van Patten Media website</a>.</li>
<li>I absolutely do not want to keep WordPress core (or plugins) in version control. WordPress core needs to be managed separate for each website, and plugins as well (updates to custom developed plugins are handled by a local update API I have in place).</li>
</ol>
<p>If you&#8217;re doing a little critical thinking, you can see where things start to fall apart&#8230; it&#8217;s all in steps 3 and 4. It should be easy to handle database syncing with tools like <a href="http://www.liquibase.org/">Liquibase</a> or database diff tools (and that&#8217;s really only for merging staging into production, I think). The problem is what files I like to keep around, and what files I don&#8217;t like to keep around. The natural solution would be just to set up a WordPress install and symlink the theme folder, but remember how I keep other things around outside the theme folder? Enter frustration, stage right.</p>
<p>So I appeal to you, internet community. What&#8217;s the best way to handle this sync? The ability to have a local Vagrant-managed replica of my server, send the <code>vagrant up</code> command from a project directory, and get a fully working dev environment <em>without ever seeing a WordPress core file</em> is my ideal situation.</p>
<p>And then of course, that introduces another question–how do I handle this sync up to the server (and between staging and production)? It&#8217;d be one thing if I just had the remote theme folder set as the Git remote, but, again, that&#8217;s just not how I&#8217;m handling things. Ideas?</p>
<p>Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisvanpatten.com/blog/2012/04/local-wordpress-development-dilemma/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Quick Suitcase Fusion 3 tip</title>
		<link>http://www.chrisvanpatten.com/blog/2012/03/quick-suitcase-fusion-3-tip/</link>
		<comments>http://www.chrisvanpatten.com/blog/2012/03/quick-suitcase-fusion-3-tip/#comments</comments>
		<pubDate>Sat, 17 Mar 2012 21:58:27 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.chrisvanpatten.com/?p=576</guid>
		<description><![CDATA[I was working on a mockup today and got this message while in the process of activating a font in Suitcase Fusion 3, my font manager of choice (well, by necessity, but that&#8217;s another story): Suitcase Fusion Client encountered an unexpected error. 83914764 Google lead me to a forum thread that discussed the issue, but... <a href="http://www.chrisvanpatten.com/blog/2012/03/quick-suitcase-fusion-3-tip/">Read more...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.chrisvanpatten.com/wp-content/uploads/2012/03/sferror.png"><img class="alignright size-full wp-image-577" title="sferror" src="http://www.chrisvanpatten.com/wp-content/uploads/2012/03/sferror.png" alt="" width="250" height="229"></a>I was working on a mockup today and got this message while in the process of activating a font in Suitcase Fusion 3, my font manager of choice (well, by necessity, but that&#8217;s another story):</p>
<blockquote><p>Suitcase Fusion Client encountered an unexpected error. 83914764</p></blockquote>
<p>Google lead me to a <a href="http://forums.extensis.com/viewtopic.php?f=30&amp;t=3874">forum thread that discussed the issue</a>, but I wasn&#8217;t too interested in accepting the thread&#8217;s &#8220;reinstall the program&#8221; advice so quickly.</p>
<p>After a bit of playing, I found a solution that was a lot more painless. No guarantees it will work for you, but it&#8217;s worth a shot!<span id="more-576"></span></p>
<p>Simply open your Suitcase Fusion 3 preferences (<strong>⌘</strong>+<strong>comma</strong>), navigate to the <strong>Type Core</strong> tab, and click the <strong>Stop FMCore&#8230;</strong> button. That will kill FMCore (the process that handles type activation when Suitcase Fusion is closed) and Suitcase Fusion itself. Then just open Suitcase Fusion again to restart FMCore.</p>
<p>If your setup is anything like mine, you&#8217;ll be back in business, error-free!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisvanpatten.com/blog/2012/03/quick-suitcase-fusion-3-tip/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Europics</title>
		<link>http://www.chrisvanpatten.com/blog/2012/02/europics/</link>
		<comments>http://www.chrisvanpatten.com/blog/2012/02/europics/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 16:18:48 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Pictures]]></category>

		<guid isPermaLink="false">http://www.chrisvanpatten.com/?p=571</guid>
		<description><![CDATA[For the curious, nosy, or just plain bored, I&#8217;ve posted pictures of my December/January trip to Europe (primarily central/south Italy) on Picasa. The pictures are broken up into three galleries: The Journey to Italy and a week in (and around) Naples The Journey to (and two weeks in and around) Rome The Journey to (and... <a href="http://www.chrisvanpatten.com/blog/2012/02/europics/">Read more...</a>]]></description>
			<content:encoded><![CDATA[<p><img class=" wp-image-572 alignright" title="2011-12-31 13.30.55" src="http://www.chrisvanpatten.com/wp-content/uploads/2012/02/2011-12-31-13.30.55-300x225.jpg" alt="" width="240" height="180"></p>
<p>For the curious, nosy, or just plain bored, I&#8217;ve posted pictures of my December/January trip to Europe (primarily central/south Italy) on Picasa.</p>
<p>The pictures are broken up into three galleries:</p>
<ul>
<li><a href="https://picasaweb.google.com/113866151716680717173/TheJourneyToItalyAndAWeekInAndAroundNaples?authkey=Gv1sRgCOy-n_Ox4JLptQE">The Journey to Italy and a week in (and around) Naples</a></li>
<li><a href="https://picasaweb.google.com/113866151716680717173/TheJourneyToAndTwoWeeksInAndAroundRome?authkey=Gv1sRgCOCwiYG-itq7GQ">The Journey to (and two weeks in and around) Rome</a></li>
<li><a href="https://picasaweb.google.com/113866151716680717173/TheJourneyToAndANightInLondonMatildaAndTheTripHome?authkey=Gv1sRgCLTRh7zU_v7ElgE">The Journey to (and a night in) London, Matilda, and the trip Home</a></li>
</ul>
<p>All the pictures were taken from my phone, a rooted <a href="http://www.amazon.com/gp/product/B004M5HB6U/ref=as_li_ss_tl?ie=UTF8&amp;tag=chrvanpat-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B004M5HB6U">HTC Thunderbolt</a> (affiliate link). For the majority of the trip I used the stock camera app, but midway through the trip (I believe in Rome?) I installed <a href="https://market.android.com/details?id=com.almalence.hdr_plus">HDR Camera+</a> which got impressive results.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisvanpatten.com/blog/2012/02/europics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Van Patten Media goodies</title>
		<link>http://www.chrisvanpatten.com/blog/2012/02/van-patten-media-goodies/</link>
		<comments>http://www.chrisvanpatten.com/blog/2012/02/van-patten-media-goodies/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 05:23:22 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.chrisvanpatten.com/?p=568</guid>
		<description><![CDATA[Van Patten Media has really been busy lately! I just posted our second week in review. See what we&#8217;ve been up to the past seven days (and if you really care, the seven days before that). For those who don&#8217;t know, Van Patten Media is the website design firm I run. We&#8217;re targeted toward actors and... <a href="http://www.chrisvanpatten.com/blog/2012/02/van-patten-media-goodies/">Read more...</a>]]></description>
			<content:encoded><![CDATA[<p><strong><img class="alignright  wp-image-569" title="Google-Calendar" src="http://www.chrisvanpatten.com/wp-content/uploads/2012/02/Google-Calendar.png" alt="" width="210" height="184">Van Patten Media</strong> has really been busy lately!</p>
<p>I just posted our <a href="http://www.vanpattenmedia.com/2012/one-week-more-vpm-week-in-review/">second week in review</a>. See what we&#8217;ve been up to the past seven days (and if you really care, <a href="http://www.vanpattenmedia.com/2012/week-in-review-january-20-26/">the seven days before that</a>).</p>
<p>For those who don&#8217;t know, Van Patten Media is the <a href="http://www.vanpattenmedia.com/">website design</a> firm I run. We&#8217;re targeted toward actors and theatre people, but have worked and continue to work with just about anyone. We also have a strong commitment to the <a href="http://labs.vanpattenmedia.com/">open source software</a> community. And we love <a href="http://www.vanpattenmedia.com/how/websites/">WordPress</a>.</p>
<p>We&#8217;re available for March and beyond &#8211; feel free to <a href="http://www.vanpattenmedia.com/contact/">contact Van Patten Media</a> directly for more info.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisvanpatten.com/blog/2012/02/van-patten-media-goodies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comma-separated tagging in the Delicious Chrome extension</title>
		<link>http://www.chrisvanpatten.com/blog/2012/01/comma-separated-tagging-delicious-chrome-extension/</link>
		<comments>http://www.chrisvanpatten.com/blog/2012/01/comma-separated-tagging-delicious-chrome-extension/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 02:47:24 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Computers and Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.chrisvanpatten.com/?p=556</guid>
		<description><![CDATA[Do you use the Delicious extension for Google Chrome? I am (still, 6 years later) a Delicious-lover, but the Chrome extension has been–admittedly–neglected while the team builds up other elements of the service to modern standards. The current plugin is a rebuild of the previous plugin that works with current APIs, but still has a... <a href="http://www.chrisvanpatten.com/blog/2012/01/comma-separated-tagging-delicious-chrome-extension/">Read more...</a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-thumbnail wp-image-562" title="delicious_logo" src="http://www.chrisvanpatten.com/wp-content/uploads/2012/01/delicious_logo-150x150.png" alt="" width="150" height="150">Do you use the <a href="http://www.delicious.com/">Delicious</a> extension <a href="https://chrome.google.com/webstore/detail/mnaelnkmidnndgikjbiifihgklnocljd">for Google Chrome</a>? I am (still, 6 years later) a Delicious-lover, but the Chrome extension has been–<a href="http://blog.delicious.com/2012/01/update-on-the-browser-extensions/">admittedly</a>–neglected while the team builds up other elements of the service to modern standards.</p>
<p>The current plugin is a rebuild of the previous plugin that works with current APIs, but still has a few holdovers from the Yahoo days. Unfortunately, one of those holdovers is the enter-to-autocomplete function, which still retains the space separator instead of the recently instated comma separator. Fortunately, it&#8217;s a quick fix. <strong>Follow the steps below to make enter-to-autocomplete easy again!<span id="more-556"></span></strong></p>
<h1>Fixing enter-to-autocomplete</h1>
<ol>
<li>First you need to <strong>find where the extension is located on your computer&#8217;s hard drive</strong>. Here are some probable paths:</li>
<ol>
<li><strong>Older Windows:</strong> <code>C:\Documents and Settings\*UserName*\Local Settings\Application Data\Google\Chrome\User Data\Default\Extensions</code></li>
<li><strong>Windows 7:</strong> <code>C:\Users\*UserName*\AppData\Local\Google\Chrome\User Data\Default\Extensions</code></li>
<li><strong>Mac OS X:</strong> <code>/Users/*UserName*/Library/Application Support/Google/Chrome/Default/Extensions</code></li>
</ol>
<li>You&#8217;ll need to figure out which folder is the Delicious extension next. Take note of the ID: <strong>mnaelnkmidnndgikjbiifihgklnocljd</strong>To check yourself, open your Chrome extensions list by <a href="chrome://settings/extensions" target="_blank">clicking here</a> (careful, it&#8217;ll take you to a new window). Find the Delicious extension in that list, and click the arrow to see a few more options appear, as seen in this picture:<br>
<a href="http://www.chrisvanpatten.com/wp-content/uploads/2012/01/Preferences-Extensions.png"><img class="size-medium wp-image-560 aligncenter" title="Preferences - Extensions" src="http://www.chrisvanpatten.com/wp-content/uploads/2012/01/Preferences-Extensions-300x51.png" alt="" width="300" height="51"></a></li>
<li>See that ID? That&#8217;s the folder you want in your Chrome extensions directory. Open it up, and you&#8217;ll see another folder (hopefully called <strong>1.1_0</strong>). Open it up, and you should have a list of files that looks something like this:<br>
<img class="aligncenter size-full wp-image-561" title="1.1_0" src="http://www.chrisvanpatten.com/wp-content/uploads/2012/01/1.1_0.png" alt="" width="173" height="229"></li>
<li>Still with me? Great! Now we&#8217;re at the good part. Open the file called <strong>del-chrome.js</strong> in your text editor of choice.</li>
<li>Search for the text &#8220;<strong>delimChar</strong>&#8221; &#8211; there are two instances of it in the file, one at line 838, and another at 1052. It&#8217;s pretty easy to guess what delimChar does &#8211; it sets the character that delimits the tags! Here&#8217;s how it looks now:
<pre>delimChar : " "</pre>
<p><strong>And here&#8217;s what you should change it to:</strong></p>
<pre>delimChar : ","</pre>
</li>
<li>Got it? Changed in both places (lines 838 and 1052)? Perfect. <strong>Save that file.</strong> You&#8217;re almost done.</li>
<li><strong>Restart Chrome!</strong> That&#8217;s it! You&#8217;re done! <strong>Open up a page and enter-to-autocomplete to your heart&#8217;s content.</strong></li>
</ol>
<p>Hopefully Delicious launches an updated extension quickly, but in the meantime this is a quick way to speed up your tagging and bookmarking.</p>
<p>Thanks for stopping by, and <strong>let me know if you have questions in the comments below!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.chrisvanpatten.com/blog/2012/01/comma-separated-tagging-delicious-chrome-extension/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

