<?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>Travis Ward</title>
	<atom:link href="http://travisward.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://travisward.com</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Mon, 22 Aug 2011 07:38:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Responsive Design</title>
		<link>http://travisward.com/blog/2011/06/07/responsive-design/</link>
		<comments>http://travisward.com/blog/2011/06/07/responsive-design/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 22:47:29 +0000</pubDate>
		<dc:creator>travis</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://travisward.com/?p=227</guid>
		<description><![CDATA[Since the first book on responsive design came out today, I thought I&#8217;d share a responsive site I completed recently.  At work we spend a good deal of time making sure our templates are designed with mobile-first techniques that respond &#8230; <a href="http://travisward.com/blog/2011/06/07/responsive-design/">Continue <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since the first <a title="Responsive Web Design" href="http://www.abookapart.com/products/responsive-web-design">book on responsive design</a> came out today, I thought I&#8217;d share a responsive site I completed recently.  At work we spend a good deal of time making sure our templates are designed with mobile-first techniques that respond to the size of the client&#8217;s viewport.  We are also careful to reduce http requests in general and specifically for smaller viewports to reduce load times. I thought I&#8217;d try to push out a responsive design on a simple quick-turn blog job.</p>
<div id="attachment_228" class="wp-caption aligncenter" style="width: 310px"><a href="http://travisward.com/wp-content/uploads/2011/06/Screen-shot-2011-06-07-at-5.29.46-PM.png"><img class="size-medium wp-image-228" src="http://travisward.com/wp-content/uploads/2011/06/Screen-shot-2011-06-07-at-5.29.46-PM-300x169.png" alt="" width="300" height="169" /></a><p class="wp-caption-text">Desktop rendering of site designed by Bronson</p></div>
<p>Luckily, the desktop-browser design had already completed by a very talented print and branding designer, <a title="Bronson Ma Creative" href="http://bronsonma.com/" target="_blank">Bronson Ma</a>.</p>
<div id="attachment_229" class="wp-caption aligncenter" style="width: 186px"><a href="http://travisward.com/wp-content/uploads/2011/06/Screen-shot-2011-06-07-at-5.29.16-PM.png"><img class="size-medium wp-image-229" src="http://travisward.com/wp-content/uploads/2011/06/Screen-shot-2011-06-07-at-5.29.16-PM-176x300.png" alt="" width="176" height="300" /></a><p class="wp-caption-text">Mobile</p></div>
<p>I also had an early version of <a title="Jason Weaver" href="http://jasonweaver.name/" target="_blank">Jason Weaver&#8217;s</a> <a title="Flexopotamus" href="https://github.com/indyplanets/flexopotamus" target="_blank">responsive WordPress parent theme, Flexopotamus</a>, at my disposal.  So, all I had to to was improvise a few smaller screens and make it work.  You can see the screencaps here, or see it live at <a title="New Responsive Blog" href="http://rethinkingmythinking.info/" target="_blank">Rethinking My Thinking</a>.</p>
<p style="text-align: center;">
<div id="attachment_230" class="wp-caption aligncenter" style="width: 310px"><a href="http://travisward.com/wp-content/uploads/2011/06/Screen-shot-2011-06-07-at-5.28.46-PM.png"><img class="size-medium wp-image-230 " src="http://travisward.com/wp-content/uploads/2011/06/Screen-shot-2011-06-07-at-5.28.46-PM-300x268.png" alt="" width="300" height="268" /></a><p class="wp-caption-text">Tablet</p></div>
<p>&nbsp;</p>
<p>To learn more about <a title="Responsive Web Design" href="http://www.alistapart.com/articles/responsive-web-design/" target="_blank">responsive web design</a> read <a title="Responsive Web Design" href="http://www.alistapart.com/articles/responsive-web-design/" target="_blank">Ethan Marcotte&#8217;s article on ALA</a>, or see some <a title="Media Queries" href="http://mediaqueri.es/" target="_blank">examples of responsive design</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://travisward.com/blog/2011/06/07/responsive-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple 301 redirects and domain mapping</title>
		<link>http://travisward.com/blog/2011/06/03/simple-301-redirects-domain-mapping/</link>
		<comments>http://travisward.com/blog/2011/06/03/simple-301-redirects-domain-mapping/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 21:31:02 +0000</pubDate>
		<dc:creator>travis</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://travisward.com/?p=216</guid>
		<description><![CDATA[My group moves a lot of legacy sites into multisite WordPress.  Quite often we will also map a client&#8217;s existing domain and set up redirects so established links will resolve.  We really like using the plugin Simple 301 Redirects, but &#8230; <a href="http://travisward.com/blog/2011/06/03/simple-301-redirects-domain-mapping/">Continue <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My group moves a lot of legacy sites into multisite WordPress.  Quite often we will also map a client&#8217;s existing domain and set up redirects so established links will resolve.  We really like using the plugin <a title="Simple 301 Redirects Plugin" href="http://wordpress.org/extend/plugins/simple-301-redirects/" target="_blank">Simple 301 Redirects</a>, but it does not work with domain mapping.  I&#8217;ve added a couple of lines of code to the plugin that allows the plugin to function when a particular site is using domain mapping.</p>
<p><a href="http://travisward.com/wp-content/uploads/2011/06/Screen-shot-2011-06-03-at-4.35.16-PM.png"><img class="alignright size-medium wp-image-224" src="http://travisward.com/wp-content/uploads/2011/06/Screen-shot-2011-06-03-at-4.35.16-PM-300x163.png" alt="" width="300" height="163" /></a>The plugin works the same way as the original, so you can redirect requests to .php, .htm or whatever legacy paths you want to redirect.  <a title="Simple 301 Redirects WordPress Plugin" href="https://github.com/travisward/Simple-301-Redirects--w--domain-mapping-" target="_blank">Download my patched version at git hub</a>. Thanks to <a title="Scott Nelle" href="http://scottnelle.com" target="_blank">Scott Nellé</a> for writing a great, useful plugin.</p>
]]></content:encoded>
			<wfw:commentRss>http://travisward.com/blog/2011/06/03/simple-301-redirects-domain-mapping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pagely vs WP-Engine</title>
		<link>http://travisward.com/blog/2011/04/12/pagely-vs-wpengine/</link>
		<comments>http://travisward.com/blog/2011/04/12/pagely-vs-wpengine/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 20:47:53 +0000</pubDate>
		<dc:creator>travis</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://travisward.com/?p=198</guid>
		<description><![CDATA[A lot of people ask me about WordPress hosting, but this post it not about that.  I was given two t-shirts from WordPress hosting companies at SXSW this year.  I intend to compare these two freebies in a highly scientific &#8230; <a href="http://travisward.com/blog/2011/04/12/pagely-vs-wpengine/">Continue <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A lot of people ask me about WordPress hosting, but this post it not about that.  I was given two t-shirts from WordPress hosting companies at SXSW this year.  I intend to compare these two freebies in a highly scientific shoot-out full of truthiness*.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-199" src="http://travisward.com/wp-content/uploads/2011/04/20110412-040346-e1303329654629.jpg" alt="" width="482" height="360" /></p>
<p>&nbsp;</p>
<h3>Color</h3>
<p>WP Engine uses one color, but on two sides (2 screens).  Pagely&#8217;s design is one-sided, but three colors (3 screens). More screens = more caring: Pagely +1</p>
<h3>Distribution</h3>
<p>Pagely sent a box of shirts to my office after bumping into Josh at an event.  WP-Engine&#8217;s shirts were in one of several piles (not as cool) on a stage (kind of cool).  Pagely +1</p>
<h3>Tag</h3>
<p>Pagely&#8217;s tee had a thoughtful tag printed up that instructs the user to take a photo in the tee and add it to their Flickr pool.  WP-Engine had no custom-printed tag. Pagely +1</p>
<h3>Sizes</h3>
<p>WP Engine had a full array of sizes available for the taking.  I&#8217;m talking, small, large, XL and even the difficult to find &#8216;medium&#8217;.  Pagely only sent L, and XL.  Point: WP-Engine</p>
<h3>Blanks</h3>
<p>WP engine used a nice Fruit of the Loom Beefy Tee (100% cotton), which is a nice blank.  Pagely went for the American Apparel 50/50 which is very soft and the cut of American Apparel fits me much better (if it were in my size). For the higher-quality blank: Pagely +1</p>
<h3>Conclusions</h3>
<p>So, there you have it.  The free Pagely shirt is exactly four times better than the free WP-Engine shirt.  There may be something you could read into this about how their model of distribution could reflect properties of their datacenters.  Or, perhaps the lack of smaller sizes indicates one service has more smaller clients.  Those topics will have to be covered in an entirely different post that is not about tee shirts.</p>
<p>&nbsp;</p>
<h4>* Full Disclosure</h4>
<p>I have some sites with Pagely and have actually used their product.  Additionally, I am a Texan and WP Engine is also in Texas.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://travisward.com/blog/2011/04/12/pagely-vs-wpengine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3.1 Network Upgrade and corrupt attachments</title>
		<link>http://travisward.com/blog/2011/04/06/311-network-upgrade-corrupt-attachments/</link>
		<comments>http://travisward.com/blog/2011/04/06/311-network-upgrade-corrupt-attachments/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 22:33:26 +0000</pubDate>
		<dc:creator>travis</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://travisward.com/?p=189</guid>
		<description><![CDATA[I ran my 3.1 upgrade yesterday thinking it&#8217;d be fairly uneventful coming from 3.0.5. However, I was disappointed to see all the sites on my network were serving corrupt images. Not theme images, mind you, jut the ones that were &#8230; <a href="http://travisward.com/blog/2011/04/06/311-network-upgrade-corrupt-attachments/">Continue <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://travisward.com/wp-content/plugins/wordpress-code-snippet/scripts/shBrushSql.js"></script>
<p>I ran my 3.1 upgrade yesterday thinking it&#8217;d be fairly uneventful coming from 3.0.5.  However, I was disappointed to see all the sites on my network were serving corrupt images.  Not theme images, mind you, jut the ones that were pushed up though the WP uploader.  I soon found that all uploaded media had the same problem.</p>
<p>I got some pointers from a few threads on the wordpress.org forum.  A discussion titled <a href="http://wordpress.org/support/topic/media-library-and-pics-in-wpmu-doesnt-work?replies=55" target="_blank">Media Library and pics in WPMU don&#8217;t work</a> was particularly helpful.</p>
<p>This sort of thing generally means .htaccess issues, specifically the line below being goofed up somehow. (this example is for a subdirectory install and NOT for subdomain-style)</p>
<p><pre class="brush: sql"># uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]</pre></p>
<p>This was not the case, so then you&#8217;ll want to check httpd.conf to make sure your AllowOverride is set to All for the directory that the .htaccess file lives in.</p>
<p>I also went through the drill of turning off all plugins and switching to twenty ten theme just to be sure, but without any luck.</p>
<p>After digging a little deeper I <a title="Trac Bug Report" href="http://core.trac.wordpress.org/ticket/14730" target="_blank">found a bug report on TRAC</a>.  After applying <a title="patch" href="http://core.trac.wordpress.org/attachment/ticket/14730/ms-files.php.patch" target="_blank">a patch to ms-files.php</a> everything is working great again.</p>
<div id="attachment_190" class="wp-caption aligncenter" style="width: 444px"><img class="size-full wp-image-190" src="http://travisward.com/wp-content/uploads/2011/04/Screen-shot-2011-04-06-at-5.29.09-PM.png" alt="" width="434" height="186" /><p class="wp-caption-text">The patch clears out the buffer before reading the file.</p></div>
<p>I don&#8217;t know if this will make it into the core, but it certainly helped in my case.  This patch is not in 3.1.1.</p>
]]></content:encoded>
			<wfw:commentRss>http://travisward.com/blog/2011/04/06/311-network-upgrade-corrupt-attachments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gwProxy and jsProxy Appearing In Posts</title>
		<link>http://travisward.com/blog/2011/01/26/gwproxy-and-jsproxy-appearing-in-posts/</link>
		<comments>http://travisward.com/blog/2011/01/26/gwproxy-and-jsproxy-appearing-in-posts/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 06:23:39 +0000</pubDate>
		<dc:creator>travis</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://travisward.com/?p=114</guid>
		<description><![CDATA[I was picking through a WordPress export file today and discovered some garbage in my database.  My immediate reaction was &#8220;Oh no, I&#8217;ve been hacked!&#8221;, but after a quick search, I found this can be the symptom of a user &#8230; <a href="http://travisward.com/blog/2011/01/26/gwproxy-and-jsproxy-appearing-in-posts/">Continue <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://travisward.com/wp-content/plugins/wordpress-code-snippet/scripts/shBrushSql.js"></script>
            <script type="text/javascript" src="http://travisward.com/wp-content/plugins/wordpress-code-snippet/scripts/shBrushXml.js"></script>
<p>I was picking through a WordPress export file today and discovered some garbage in my database.  My immediate reaction was &#8220;Oh no, I&#8217;ve been hacked!&#8221;, but after a quick search, I found this can be the symptom of a user having the <a href="https://addons.mozilla.org/en-US/firefox/addon/11808/" target="_blank">Firefox Browser Highlighter add-on</a> installed.</p>
<p><pre class="brush: xml">&lt;input id=&quot;gwProxy&quot; type=&quot;hidden&quot; /&gt;
&lt;input id=&quot;jsProxy&quot; onclick=&quot;if(typeof(jsCall)=='function'){jsCall();}else{setTimeout('jsCall()',500);}&quot; type=&quot;hidden&quot; /&gt;</pre></p>
<p>The above was being placed in custom field set up as a WYSIWYG input area.</p>
<p>Asking the offending user to disable the plugin is one fix, alternatively there&#8217;s a <a href="http://www.latentmotion.com/fck-firefox-fix/">FCK Firefox Fix Plugin</a> available for WordPress.</p>
]]></content:encoded>
			<wfw:commentRss>http://travisward.com/blog/2011/01/26/gwproxy-and-jsproxy-appearing-in-posts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Secure WordPress Updates On DV</title>
		<link>http://travisward.com/blog/2010/09/09/secure-wordpress-updates-on-dv/</link>
		<comments>http://travisward.com/blog/2010/09/09/secure-wordpress-updates-on-dv/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 09:38:56 +0000</pubDate>
		<dc:creator>travis</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://travisward.com/?p=88</guid>
		<description><![CDATA[Once you&#8217;ve installed WordPress in multisite mode. You&#8217;ll soon see the screen below when you want to add plugins or themes though the admin area. You can manually enter your FTP credentials each time, or follow this tutorial and enjoy &#8230; <a href="http://travisward.com/blog/2010/09/09/secure-wordpress-updates-on-dv/">Continue <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[            <script type="text/javascript" src="http://travisward.com/wp-content/plugins/wordpress-code-snippet/scripts/shBrushSql.js"></script>
            <script type="text/javascript" src="http://travisward.com/wp-content/plugins/wordpress-code-snippet/scripts/shBrushXml.js"></script>
            <script type="text/javascript" src="http://travisward.com/wp-content/plugins/wordpress-code-snippet/scripts/shBrushPhp.js"></script>
<p>Once you&#8217;ve installed WordPress in multisite mode.  You&#8217;ll soon see the screen below when you want to add plugins or themes though the admin area.  You can manually enter your FTP credentials each time, or follow this tutorial and enjoy the one-click updates WordPress users are accustomed to.</p>
<div id="attachment_179" class="wp-caption aligncenter" style="width: 617px"><img class="size-full wp-image-179" src="http://travisward.com/wp-content/uploads/2010/09/Screen-shot-2011-01-17-at-12.49.51-PM.png" alt="" width="607" height="348" /><p class="wp-caption-text">Your fingers will become fatigued after a round of upgrading.</p></div>
<p>There&#8217;s two steps to this tut.  First, create a new user with a it&#8217;s own rsa key.  This account will only be used for updating WordPress and is named &#8216;wp-updater&#8217; in this example.  Secondly, we&#8217;ll add the sftp information to wp-config.</p>
<p>1. Create a new user<br />
Fire up the command line:</p>
<p><pre class="brush: sql">groupadd wp-updater
useradd -g wp-updater -d /home/wp-updater -m wp-updater
su wp-updater
ssh-keygen
cp /home/wp-updater/.ssh/id_rsa.pub /home/wp-updater/.ssh/authorized_keys
chmod 755 /home/wp-updater/.ssh
chmod 644 /home/wp-updater/.ssh/*</pre></p>
<p>2. Add upgrade constants to wp-config.php</p>
<p><pre class="brush: php">define('FS_METHOD', 'direct');
define('FS_CHMOD_DIR', 0777);
define('FS_CHMOD_FILE', 0777);
define('FTP_BASE', '/var/www/vhosts/domain.com/httpdocs');
define('FTP_CONTENT_DIR', '/var/www/vhosts/domain.com/httpdocs/wp-content/');
define('FTP_PLUGIN_DIR ', '/var/www/vhosts/domain.com/httpdocs/wp-content/plugins/');
define('FTP_PUBKEY', '/home/wp-updater/.ssh/id_rsa.pub');
define('FTP_PRIKEY', '/home/wp-updater/.ssh/id_rsa');
define('FTP_USER', 'wp-updater');
define('FTP_HOST', '255.255.255.255:22'); // your server's ip

/* That's all, stop editing! Happy blogging. */
</pre></p>
<p>You will also want to activate SFTP with the following directive:</p>
<p><pre class="brush: sql">define('FTP_SSL', true);
</pre></p>
<p>Read more about <a href="http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants">WordPress Upgrade Constants</a>.</p>
<p>Might also have to manually create your upgrade directory depending on your permission scheme:<br />
<pre class="brush: sql">cd wp-content
mkdir upgrade
chown apache:apache upgrade
chown apache:ftp plugins -R</pre></p>
<h2>Securing</h2>
<p>Putting your FTP credentials into a file is generally not a great thing to do.  However, the time savings may be with it to you.  You can take some additional steps to obscure your wp-config file.</p>
<ul>
<li>Move it up a directory &#8211; Since WordPress 2.-something you&#8217;ve been able to move your wp-config.php up a directory (out of you web root) and WordPress will look for it there.  I&#8217;ve heard tell of some plugins not complying with this, and if you run into that you can try:</li>
<li>Puting a PHP include in your wp-config &#8211; You can move the &#8216;meat&#8217; of your wp-config to another file and use a php include() to bring it in to your wp-config.</li>
</ul>
<p>If someone gets into your wp-config, then all they&#8217;ll see is this:<br />
<pre class="brush: php">include('/var/www/vhosts/domain.com/filename.php');

/** WordPress likes the language defined here */
define ('WPLANG', '');
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
        define('ABSPATH', dirname(__FILE__) . '/');

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');</pre><br />
&nbsp;</p>
<p>Hopefully this will help someone.</p>
]]></content:encoded>
			<wfw:commentRss>http://travisward.com/blog/2010/09/09/secure-wordpress-updates-on-dv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

