<?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>david (b) hayes &#187; Ikiru Design</title>
	<atom:link href="http://www.davidbhayes.com/category/ikiru-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.davidbhayes.com</link>
	<description>That's My Name!</description>
	<lastBuildDate>Sat, 28 Aug 2010 01:10:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>The Mini Quilt Plugin for WordPress</title>
		<link>http://feedproxy.google.com/~r/ikiru/~3/tKhjr7Dggcg/</link>
		<comments>http://feedproxy.google.com/~r/ikiru/~3/tKhjr7Dggcg/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 23:03:57 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[Ikiru Design]]></category>

		<guid isPermaLink="false">http://www.ikirudesign.com/?p=272</guid>
		<description><![CDATA[Weeks have a way of getting away from me. Last weekend I was thinking I&#8217;d get a post up about my first WordPress plugin, a stand-alone implementation of the Kaleidoscope Mini Quilt, by Tuesday. Suddenly I look down and realize that it&#8217;s Sunday and I&#8217;ve not written such a post and not updated the plugin&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Weeks have a way of getting away from me. Last weekend I was thinking I&#8217;d get a post up about my first WordPress plugin, a stand-alone implementation of the Kaleidoscope Mini Quilt, by Tuesday. Suddenly I look down and realize that it&#8217;s Sunday and I&#8217;ve not written such a post and not updated the plugin&#8217;s page beyond a goofy first draft.</p>
<p>If you&#8217;re familiar with <a href="http://www.ikirudesign.com/themes/kaleidoscope/">Kaleidoscope</a>, you know it&#8217;s most unique feature is the algorithm that takes the date a post was published and determines a color that, based on some vague ideas of what colors fit what time of year, seems appropriate.</p>
<p>My original implementation of that was a large quilt-looking series of patchs that you can find on my archives page. And while I do like that&thinsp;&#8212;&thinsp;and the fact that it gives post names as well as colors&thinsp;&#8212;&thinsp;it requires someone to create and click to an archives page to see the best use of the algorithm.</p>
<p>The Mini Quilt was a way that I could have the quilt-looking array of posts, but offer it on every page of any WordPress blog, regardless of the existence of an archives page.</p>
<p>Well, I like the Mini Quilt, and I got a few requests from people who liked it too, so I built a plugin to allow anyone to add it to any widgetized WordPress theme. If also features simple but useful controls that allow you to quickly change patch size, and the number of patches in it to fit any size and show any number of posts.</p>
<p>To use it, you just need to search for the Mini Quilt plugin from inside your WordPress dashboard and install it (still from your dashboad&thinsp;&#8212;&thinsp;you&#8217;re using WordPress 2.7+, right?). Once it&#8217;s installed, activate the plugin and add the widget to your sidebar. It couldn&#8217;t be much simpler.</p>
<p>If you&#8217;re looking for more information before you take the above steps, you can try <a href="http://www.ikirudesign.com/plugins/mini-quilt/">the plugin&#8217;s page here at Ikiru Design</a>, or <a href="http://wordpress.org/extend/plugins/mini-quilt/">at the WordPress plugin repository</a>.</p>
<img src="http://feeds.feedburner.com/~r/ikiru/~4/tKhjr7Dggcg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ikirudesign.com/2009/03/01/mini-quilt-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Reasons for Writing Software</title>
		<link>http://feedproxy.google.com/~r/ikiru/~3/8I5JiAoHEFw/</link>
		<comments>http://feedproxy.google.com/~r/ikiru/~3/8I5JiAoHEFw/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 17:49:16 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[Ikiru Design]]></category>

		<guid isPermaLink="false">http://www.ikirudesign.com/?p=244</guid>
		<description><![CDATA[Are, in rough order of nobleness: Because no one else has made anything like this before and I&#8217;m sure it&#8217;ll be awesome. Because no one has ever combined these feature sets and the combination will be legen&#8201;&#8212;&#8201;dramatic pause&#8201;&#8212;&#8201;dary. Because this platform needs this type of software. Because my version will be way better than all [...]]]></description>
			<content:encoded><![CDATA[<p>Are, in rough order of nobleness:</p>
<ol class="verboselist">
<li>Because no one else has made anything like this before and I&#8217;m sure it&#8217;ll be awesome.</li>
<li>Because no one has ever combined these feature sets and the combination will be legen&thinsp;&#8212;&thinsp;dramatic pause&thinsp;&#8212;&thinsp;dary.</li>
<li>Because this platform <em>needs</em> this type of software.</li>
<li>Because my version will be way better than all the others.</li>
<li>Because building it will teach me something.</li>
<li>Because I can do it too.</li>
</ol>
<img src="http://feeds.feedburner.com/~r/ikiru/~4/8I5JiAoHEFw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ikirudesign.com/2009/02/08/reasons-for-writing-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Containment vs. The Cascade</title>
		<link>http://feedproxy.google.com/~r/ikiru/~3/tSdVxAAEPr8/</link>
		<comments>http://feedproxy.google.com/~r/ikiru/~3/tSdVxAAEPr8/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 21:29:37 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[Ikiru Design]]></category>

		<guid isPermaLink="false">http://www.ikirudesign.com/?p=84</guid>
		<description><![CDATA[I wrote this back at the end of May 2008 and didn&#8217;t publish it. When I thought about posting something similar a few days ago, I was surprised to find this nearly complete set of thoughts. I&#8217;ve decided to post this version, and will probably add some further thoughts on the topic soon. For better [...]]]></description>
			<content:encoded><![CDATA[<p><em>I wrote this back at the end of May 2008 and didn&#8217;t publish it. When I thought about posting something similar a few days ago, I was surprised to find this nearly complete set of thoughts. I&#8217;ve decided to post this version, and will probably add some further thoughts on the topic soon.</em></p>
<p>For better or worse, Cascading Style Sheets are meant to cascade. That means if you style an <code>&lt;h1&gt;&lt;/h1&gt;</code>, all thing elements enclosed in <code>&lt;h1&gt;</code> tags well inherent that <code>h1</code> style. This is both incredibly useful and incredibly troublesome.</p>
<p>It nice that if you really do want all your <code>&lt;h1&gt;</code>s to look the same. The cascade assures that they do regardless of the <code>&lt;div&gt;</code> they&#8217;re under or the classes you&#8217;ve given them. It&#8217;s a problem because when you absent-mindedly use an <code>&lt;h1&gt;</code> tag without remembering that you&#8217;ve styled the attribute, you can get some wonky looking stuff.</p>
<p>There are two basic means to deal with this reality: containment and a laissez-faire &#8220;let it cascade&#8221; approach. The first has the advantage of meaning that you never accidentally have things cascade, but the disadvantage that your stylesheet may well end up incredibly verbose. The latter has the advantage that when used correctly it can give you surprisingly brief stylesheets, but while composing that sheet you may well fall victim to the aforementioned surprise cascade.</p>
<p>Before we get too far into the analysis of the problem, some basic understanding. A containment strategy will wrap everything in every ancestor class all the way down to the exact element you&#8217;re styling. This assures that you never have a single style cascading in an expected way, and will generally yield something like this:</p>
<pre><code>#container #content .post .entry p {
margin: 1em 0;
font-size: 1.2em;
font-face: "Times New Roman", Times, serif;
}</code></pre>
<p>Conversely, a cascaded style you only define what you&#8217;re styling in a loose  and primarily pragmatic manner. The above might come out simply as:</p>
<pre><code>.entry p {
font size: 1.2em;
}</code></pre>
<p>This obviously assumes that face and margins were defined elsewhere. And though it&#8217;s not always going to be true, it&#8217;s a realistic possibility with a full-fledged cascade.</p>
<p>From a simple length perspective, there&#8217;s reason to assume that the latter method is better. But you never know when you&#8217;ll realize that you&#8217;ve already styled <code>&lt;p&gt;</code> to include <code>font-size: 5em;</code> or some such nonsense. In this case&thinsp;&#8212;&thinsp;and this is a unique problem for those sizing thing in ems&thinsp;&#8212;&thinsp;you&#8217;ll get a font size of 6<code>em</code>s, or around 60 pixels, certainly not what you wanted.</p>
<p>I&#8217;ve got a gut-level aversion to verbosity where it&#8217;s not necessary. But I don&#8217;t like being surprised by unexpected cascading bits either.</p>
<p>There is, I think, a way to split the difference. A managed cascade can allow for a reasonable number of &#8220;presets&#8221; while still leaving sufficient room to avoid the accidental cascade. Though I still think that <a href="http://www.ikirudesign.com/2008/03/26/the-movement-toward-zoom/">browsers welcome movement away from crude text resizing and toward zoom</a> will eventually render the use of <code>em</code>s for sizing completely obsolete, that day isn&#8217;t here yet. (And if it were, not all the issues in the containment versus cascade battle would be resolved.)</p>
<p>So for now, I think it&#8217;s best to contain as much styling as you feel is reasonable, while allowing some things to cascade. It&#8217;s an unconscious working assumption I&#8217;m sure more than a few designers already use, but it&#8217;s a conscious one I&#8217;m certain I&#8217;ll be helped by.</p>
<img src="http://feeds.feedburner.com/~r/ikiru/~4/tSdVxAAEPr8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ikirudesign.com/2009/01/25/containment-vs-the-cascade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kaleidoscope 0.7.8</title>
		<link>http://feedproxy.google.com/~r/ikiru/~3/PZZJK1uK6TQ/</link>
		<comments>http://feedproxy.google.com/~r/ikiru/~3/PZZJK1uK6TQ/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 22:12:30 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[Ikiru Design]]></category>

		<guid isPermaLink="false">http://www.ikirudesign.com/?p=217</guid>
		<description><![CDATA[I&#8217;ve been thoroughly neglectful about updating this blog over the last few month. And though I earlier said I didn&#8217;t want to post about every release, I feel people might actually want to know that I have released a new version of Kaleidoscope at the WordPress.org Theme Directory. It supports both threaded comments and pagination. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thoroughly neglectful about updating this blog over the last few month.</p>
<p>And though I earlier said I didn&#8217;t want to post about every release, I feel people might actually want to know that I have released a new version of Kaleidoscope <a href="http://wordpress.org/extend/themes/kaleidoscope">at the WordPress.org Theme Directory</a>.</p>
<p>It supports both threaded comments and pagination. I actually forgot about the existence of &#8220;sticky posts&#8221; until after I uploaded it, so I have no idea what, if anything,  needs to be done to support those.</p>
<p>It&#8217;s not the polished version I&#8217;ve been hoping to make, but it functions well for most purposes. And it offers support for the most anticipated features of WordPress 2.7, so I&#8217;ve no doubt that despite its shortcomings it&#8217;s worth releasing.</p>
<p>Just a note for those looking for threaded comments: you need to enable them (In Settings&gt;Discussion) before you&#8217;ll see them. They&#8217;re turned off by default for the sake of backwards compatibility.</p>
<p><strong>UPDATE</strong> (19 Jan 09)&thinsp;&#8212;&thinsp;In a heretofore unprecedented move, I actually dropped an even newer version yesterday, and it&#8217;s available. Major highlights: basic sticky post support, and lots of styles for obscure situations that no blog but the example at the theme directory is very likely to try.</p>
<img src="http://feeds.feedburner.com/~r/ikiru/~4/PZZJK1uK6TQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ikirudesign.com/2009/01/18/kaleidoscope-078/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fieldnotes on a WordPress 2.7 Development Build</title>
		<link>http://feedproxy.google.com/~r/ikiru/~3/9kE_HF_A5B0/</link>
		<comments>http://feedproxy.google.com/~r/ikiru/~3/9kE_HF_A5B0/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 16:14:47 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[Ikiru Design]]></category>

		<guid isPermaLink="false">http://www.ikirudesign.com/?p=192</guid>
		<description><![CDATA[Over the weekend, I decided to finally install a copy of the WordPress trunk&#8201;&#8212;&#8201;that&#8217;s the currently-being-worked-on version for those not familiar with the term. For need of something to write on that new installation, I noted my first impressions of it. It seems relevant to share as the WordPress team is now soliciting advice about [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend, I decided to finally install a copy of the WordPress trunk&thinsp;&#8212;&thinsp;that&#8217;s the currently-being-worked-on version for those not familiar with the term. For need of something to write on that new installation, I noted my first impressions of it. It seems relevant to share as the WordPress team is now <a href="http://www.polldaddy.com/s/A02A1308A9F8D944">soliciting advice about its menu structures</a>.</p>
<p>It worth noting that I did this Saturday. Things have changed since. If you&#8217;re interested, popularly relevant information about development is at <a href="http://wordpress.org/development/">the WordPress Blog</a>. More abbreviated notes, and up-to-the-day changes are tracked <a href="http://wpdevel.wordpress.com/">here</a>.</p>
<p>Because some of my impressions make little sense without visuals, I&#8217;ve included a gallery of the most notable changes that have so far been made in the progress toward 2.7. (Sidenote: first time I&#8217;ve used the gallery in WordPress.)</p>

<a href='http://www.ikirudesign.com/2008/09/17/fieldnotes-wordpress-27-dev/fieldtest1/' title='The Dashboard'><img width="150" height="150" src="http://www.ikirudesign.com/wp-content/uploads/2008/09/fieldtest1-150x150.png" class="attachment-thumbnail" alt="The Inbox and Quickpost fields are both new additions to the dashboard." title="The Dashboard" /></a>
<a href='http://www.ikirudesign.com/2008/09/17/fieldnotes-wordpress-27-dev/fieldtest2/' title='The Write Page'><img width="150" height="150" src="http://www.ikirudesign.com/wp-content/uploads/2008/09/fieldtest2-150x150.png" class="attachment-thumbnail" alt="On the write page, you can drag most of the meta boxes around." title="The Write Page" /></a>
<a href='http://www.ikirudesign.com/2008/09/17/fieldnotes-wordpress-27-dev/fieldtest3/' title='The Inbox'><img width="150" height="150" src="http://www.ikirudesign.com/wp-content/uploads/2008/09/fieldtest3-150x150.png" class="attachment-thumbnail" alt="A view of the main inbox. Again, that&#039;s just dummy text." title="The Inbox" /></a>
<a href='http://www.ikirudesign.com/2008/09/17/fieldnotes-wordpress-27-dev/fieldtest4/' title='Install Plugin Page'><img width="150" height="150" src="http://www.ikirudesign.com/wp-content/uploads/2008/09/fieldtest4-150x150.png" class="attachment-thumbnail" alt="The Install Plugins page is your jumping off point for, well, installing plugins." title="Install Plugin Page" /></a>
<a href='http://www.ikirudesign.com/2008/09/17/fieldnotes-wordpress-27-dev/fieldtest5/' title='Choosing among CSS Plugins'><img width="150" height="150" src="http://www.ikirudesign.com/wp-content/uploads/2008/09/fieldtest5-150x150.png" class="attachment-thumbnail" alt="This is what a click on &quot;CSS&quot; from among the tag cloud gets you." title="Choosing among CSS Plugins" /></a>
<a href='http://www.ikirudesign.com/2008/09/17/fieldnotes-wordpress-27-dev/fieldtest6/' title='Plugin Description'><img width="150" height="150" src="http://www.ikirudesign.com/wp-content/uploads/2008/09/fieldtest6-150x150.png" class="attachment-thumbnail" alt="Clicking Install brings a longer description of it into focus." title="Plugin Description" /></a>
<a href='http://www.ikirudesign.com/2008/09/17/fieldnotes-wordpress-27-dev/fieldtest7/' title='Plugin Installed'><img width="150" height="150" src="http://www.ikirudesign.com/wp-content/uploads/2008/09/fieldtest7-150x150.png" class="attachment-thumbnail" alt="The dialogue you get once the new plguin his been successfully installed." title="Plugin Installed" /></a>
<a href='http://www.ikirudesign.com/2008/09/17/fieldnotes-wordpress-27-dev/fieldtest8/' title='The Upgrade Page'><img width="150" height="150" src="http://www.ikirudesign.com/wp-content/uploads/2008/09/fieldtest8-150x150.png" class="attachment-thumbnail" alt="The upgrade page gives you the option of doing an old-fashioned upgrade or a new one." title="The Upgrade Page" /></a>
<a href='http://www.ikirudesign.com/2008/09/17/fieldnotes-wordpress-27-dev/fieldtest9/' title='The Upgaded Page'><img width="150" height="150" src="http://www.ikirudesign.com/wp-content/uploads/2008/09/fieldtest9-150x150.png" class="attachment-thumbnail" alt="Much like for plugins, the page marks progress and lets you know if it did or didn&#039;t work." title="The Upgaded Page" /></a>

<p>And now my impressions, as originally noted:</p>
<blockquote><p>I don&#8217;t really like how the new version smashes out the horizontal space. Though I doubt the change is nearly as big as it currently seems to me, it&#8217;s undeniable that the compose area fits fewer words per line than did previous (2.6-) versions.</p>
<p>The left side navigation has its pluses and minuses. I like that you can get to any page at all from it, but it&#8217;s also there even when you aren&#8217;t wanting to go to any page.</p>
<p>I think the term Utilities in the sidebar is misguided. &#8220;Manage&#8221; seemed to make more sense, and still does.</p>
<p>The built-in browse and install feature for plugins is pretty unquestionably cool.</p>
<p>The built-in upgrade to WordPress itself seemed to have failed on my one and only attempt. (It has since worked for me, the failure may have been a fluke.)</p>
<p>I think the ability to drag anything on the write page the sidebar is good, but it&#8217;s not as much customizability as I&#8217;d like. Will I ever be able to put a custom field on a post, without having to name that field every time? And be able to put that field right under the title field if I so choose? Until then any changes or not to the Write page will seem rather superficial to me.</p>
<p>There appears to have been few or no changes made to the Themes area thus far.</p>
<p>The dashboard has changed, but right now the utility of the &#8220;Inbox&#8221; and Quick Post sections, both sitting above the news boxes of 2.5+, are open questions.</p></blockquote>
<p>Clearly there&#8217;s no small amount of work left before 2.7 &#8220;ships&#8221; in November (by current plans). That said, I&#8217;m amazed by all the great features slated for inclusion, and I feel so lucky to blog on such a constantly-improving platform.</p>
<img src="http://feeds.feedburner.com/~r/ikiru/~4/9kE_HF_A5B0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ikirudesign.com/2008/09/17/fieldnotes-wordpress-27-dev/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging: Random Redirect and WP Super Cache</title>
		<link>http://feedproxy.google.com/~r/ikiru/~3/H1JDxC2GNnw/</link>
		<comments>http://feedproxy.google.com/~r/ikiru/~3/H1JDxC2GNnw/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 02:41:37 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[Ikiru Design]]></category>

		<guid isPermaLink="false">http://www.ikirudesign.com/?p=133</guid>
		<description><![CDATA[I think the quip, which I most often see attributed to Thomas Fuller, that &#8220;All things are difficult before they are easy&#8221; is so clearly borne out by debugging that the truth of it cannot be doubted. You can easily spend minutes, hours, even days bashing your head against a metaphorical wall only to notice [...]]]></description>
			<content:encoded><![CDATA[<p>I think the quip, which I most often see attributed to Thomas Fuller, that &#8220;All things are difficult before they are easy&#8221; is so clearly borne out by debugging that the truth of it cannot be doubted. You can easily spend minutes, hours, even days bashing your head against a metaphorical wall only to notice that a misplaced colon&thinsp;&#8212;&thinsp;which you of course, didn&#8217;t realize was misplaced&thinsp;&#8212;&thinsp;was the cause of reams of unnecessary pain.</p>
<h3>The Problem: Incompatible Rules</h3>
<p>During my work on Kaleidoscope, that&#8217;s the theme this site is running, I decided that a random post link in the footer would be nice. A quick search yeilded <a href="http://wordpress.org/extend/plugins/random-redirect/">Matt&#8217;s Random Redirect Plugin</a>, which was more than up to the job. Without a need to reinvent the wheel, I just borrowed the core functionality of Matt&#8217;s plugin function and dropped it into my theme&#8217;s functions.php file.</p>
<p>And on my personal test server, it worked well. And when I put it on the Ikiru Demo Blog, there too it worked fine. But I found problems on Ikiru Design. More frustratingly, those problems would sometimes seem to suddenly disappear. (It was only later that I realized that it was whether or not I&#8217;d logged in that was the cause of that disparity.)</p>
<p>As you may suspect from what I&#8217;ve said so far, Ikiru Design has the <a href="http://ocaoimh.ie/wp-super-cache/">WP Super Cache</a> plugin running (though it has rarely needed it). Looking desperately to figure out why my redirect link in the footer worked on the demo blog but not on the main one, I decided to look through their directories.</p>
<h3>Solution One: Changing .htaccess</h3>
<p>Mercifully, I noticed that the .htaccess files were drastically different sizes. And I remembered that SuperCache depends on your making changes to that file. And indeed, comparing the two showed these lines added to Ikiru&#8217;s .htaccess file:</p>
<pre><code># BEGIN WPSuperCache

&lt;IfModule mod_rewrite.c&gt;
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} !.*s=.*
RewriteCond %{HTTP_COOKIE} !^.*(comment_author_|wordpress|wp-postpass_).*$
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz -f
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz [L]

RewriteCond %{QUERY_STRING} !.*s=.*
RewriteCond %{HTTP_COOKIE} !^.*(comment_author_|wordpress|wp-postpass_).*$
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html -f
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html [L]
&lt;/IfModule&gt;

# END WPSuperCache</code></pre>
<p>I now understand what this does, but at first I didn&#8217;t. It looked like a mash of random characters. But I know enough about programming conventions to guess that an &#8220;!&#8221; means not. And I also know enough about this modern world to know to Google things I don&#8217;t understand. &#8220;RewriteRule&#8221; seemed a reasonable phrase to start with.</p>
<p>I&#8217;ll spare you the full narrative of the search, but I&#8217;ll explain what I learned. <code>RewriteCond</code> provides the conditions that determine whether or not a <code>RewriteRule</code> is used by the server. Essentially, if a user trying to access a given file on the server gets through all the conditions in the <code>RewriteCond</code> stack, they&#8217;ll be made to follow the <code>RewriteRule</code>.</p>
<p>In this case, that means that if their query string&thinsp;&#8212;&thinsp;that&#8217;s the <code>?s</code> or <code>?p=187</code> or <code>?random</code> that tells the server what dynamic features are wanted&thinsp;&#8212;&thinsp;doesn&#8217;t start with <code>?s</code>, and if the user doesn&#8217;t have a cookie specifying that they&#8217;ve either logged in or commented, and if the proper static file has been generated, send them that static file. (You see essentially the same rules there twice, the top one is for if you&#8217;re using compression, the other for if you&#8217;re not.) This is exactly how Super Cache is advertised to work.</p>
<p>But it means that the server will ignore the query string <code>?random</code> that Matt&#8217;s Random Redirect function relies on. So the user will get, as I was, the cached version of the index page. And they&#8217;ll get it before Matt&#8217;s plugin has had a chance to well, redirect them.</p>
<p>Having figured that this was what was probably happening, I felt reasonably hopeful that I could finally fix this week-old problem. After all, the random link was working when I was logged in&thinsp;&#8212;&thinsp;thus not making me follow the <code>RewriteRule</code>&thinsp;&#8212;&thinsp;but it was failing when I wasn&#8217;t.</p>
<p>So I added was this line to the <code>RewriteCond</code> stacks:</p>
<pre><code>RewriteCond %{QUERY_STRING} !.*random*</code></pre>
<p>This adds an exclusion, which says that if the url looks something like &#8220;http://www.ikirudesign.com/?random&#8221;, exclude the user from the <code>RewriteRule</code>. Uploading the modified file and opening the link from every conceivable page I could find showed that it was finally working.</p>
<h3>Solution Two: Changing the Function</h3>
<p>But this can&#8217;t be packaged into a theme. Fortunately, a usable but imperfect solution can be. The basic problem is that redirects break with WP Super Cache. The solution is to do this same thing without a redirect.</p>
<p>Essentially, all this take is simplifying Matt&#8217;s Random Redirect Plugin even further. The result was this function:</p>
<pre><code>function sc_safe_random() {
	global $wpdb;
	$query = "SELECT ID FROM $wpdb-&gt;posts WHERE post_type = 'post' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1";
	$random_id = $wpdb-&gt;get_var( $query );
	return get_permalink($random_id);
}</code></pre>
<p>This is essentially the first three lines of Matt&#8217;s function&thinsp;&#8212;&thinsp;which picks a random post from among those eligible on your blog&thinsp;&#8212;&thinsp;and adds a line that just tells it to pass the permalink for that post to the place where the function is called. Then you simply call the function for your random link, like:</p>
<pre><code>&lt;a href="&lt;?php echo sc_safe_random() ?&gt;"&gt;a random post&lt;/a&gt;
</code></pre>
<p>This solution works, but it&#8217;s got a problem. If I were to click the redirect version into five new tabs from a single page, I&#8217;d receive five tabs each with a different random post in it. If I do the same with this version, I get the same post each time.</p>
<p>The likelihood of someone doing this is obviously questionable, but it&#8217;s a feature that I&#8217;d rather not lose. For that reason, I&#8217;m planning on making sure that I allow a user who doesn&#8217;t have WP Super Cache enabled, or who have implemented Solution One, to use the redirect version. Those who have Super Cache enabled, or who don&#8217;t mind the limitations of this second solution, would be able to continue to use it.</p>
<img src="http://feeds.feedburner.com/~r/ikiru/~4/H1JDxC2GNnw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ikirudesign.com/2008/09/13/debugging-random-redirect-and-wp-super-cache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kaleidoscope 0.7.7</title>
		<link>http://feedproxy.google.com/~r/ikiru/~3/d77NQtp2Am4/</link>
		<comments>http://feedproxy.google.com/~r/ikiru/~3/d77NQtp2Am4/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 17:48:42 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[Ikiru Design]]></category>

		<guid isPermaLink="false">http://www.ikirudesign.com/?p=167</guid>
		<description><![CDATA[I have mixed feelings about posting whenever a single theme is updated, but this is a pretty big one. And it&#8217;s also worth noting that the WordPress Themes Directory got it up less than 24 hours after I uploaded it. Given the large lead time that was needed for 0.7.6, I was pleasantly surprised to [...]]]></description>
			<content:encoded><![CDATA[<p>I have mixed feelings about posting whenever a single theme is updated, but this is a pretty big one. And it&#8217;s also worth noting that the WordPress Themes Directory got it up less than 24 hours after I uploaded it. Given the large lead time that was needed for 0.7.6, I was pleasantly surprised to see that. So anyway, the most important changes are, in a particular order:</p>
<ol class="verboselist">
<li><strong>The theme now has an options page.</strong> Controllable are the accent color&thinsp;&#8212;&thinsp;at Ikiru Design that&#8217;s set to &#8220;orange&#8221;&thinsp;&#8212;&thinsp;which is used one the description in the header and the links in the footer, the display of default gravatars, the display of The Mini Quilt (see #2), and switching to Southern Hemisphere colors.</li>
<li><strong>The Mini Quilt.</strong> The Mini Quilt is a smaller version of the Quilt that appears on Kaleidoscope archives pages. To fit, it sacrifices displaying the Post Titles&thinsp;&#8212;&thinsp;though you&#8217;ll see them on hover&thinsp;&#8212;&thinsp;in favor of offering many more posts than a basic Recent Posts widget would. (And if you want to display both, or have even more control of your sidebar, the quilt will also appear as a potential sidebar widget.)</li>
<li>The <strong>random post link in the footer is now compatible with WP Super Cache.</strong> Because the popular plugin changes a blog&#8217;s redirect rules, the old method&thinsp;&#8212;&thinsp;which required a redirect&thinsp;&#8212;&thinsp;would break when you ran the plugin. The new method, which gets rid of the need for a redirect, will help keep your server load down, and will let readers use the link whether you&#8217;re caching or note. (Also, I&#8217;m working on a post explaining two different workarounds for the problem.)</li>
<li><strong>Fixed a number of visual &#8220;bugs&#8221;.</strong> Two different problems caused the layout of certain pages to break in 0.7.6, with the help of <a href="http://babspace.com/">Babs</a>, those are fixed. A number of little problems have been tackled.</li>
<li>Finally, and this may have been unnoticed by everyone but me, in previous version of Kaleidoscope (and every theme I&#8217;ve made for that matter) the search bar has been outside of the area in the sidebar that is replaced by widget. That is because I didn&#8217;t like the styling of the widget. But now I&#8217;ve overridden the styling of the widget, and am satisfied with it. Essentially, <strong>you finally have the freedom to put the search box where ever you want it in the sidebar.</strong></li>
</ol>
<p>These are some of things I&#8217;d been planning to do on Kaleidoscope and I&#8217;m glad to have finally gotten them out. I&#8217;m sure there are still problems lurking under the surface, and I&#8217;m sure a quick-eyed user will find them quicker than I. If you&#8217;re such a user, please <a href="http://www.ikirudesign.com/contact/">drop me a line</a>.</p>
<p>Oh, <a href="http://wordpress.org/extend/themes/download/kaleidoscope.0.7.7.zip">the download link</a>! And here&#8217;s a link to <a href="http://wordpress.org/extend/themes/kaleidoscope">Kaleidoscope&#8217;s listing in the WordPress Themes Directory</a>.</p>
<img src="http://feeds.feedburner.com/~r/ikiru/~4/d77NQtp2Am4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ikirudesign.com/2008/09/03/kaleidoscope-077/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Latest: Kaleidoscope</title>
		<link>http://feedproxy.google.com/~r/ikiru/~3/0YvpLd6IY04/</link>
		<comments>http://feedproxy.google.com/~r/ikiru/~3/0YvpLd6IY04/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 14:09:59 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[Ikiru Design]]></category>

		<guid isPermaLink="false">http://www.ikirudesign.com/?p=88</guid>
		<description><![CDATA[I&#8217;ve been working, on and off for a while, on a theme that translates the date of a post&#8201;&#8212;&#8201;or in the case of multiple, the topmost&#8201;&#8212;&#8201;into a color and uses that to determine the color of the page. This was inspired in no small part by the now-retired look that Shaun Inman used to use. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working, on and off for a while, on a theme that translates the date of a post&thinsp;&#8212;&thinsp;or in the case of multiple, the topmost&thinsp;&#8212;&thinsp;into a color and uses that to determine the color of the page. This was inspired in no small part by the <a href="http://si10.shauninman.com/">now-retired look</a> that <a href="http://www.shauninman.com/">Shaun Inman</a> used to use.</p>
<p>I honestly don&#8217;t remember when I started working on it, but I wouldn&#8217;t be surprised to find out it began in January. That isn&#8217;t to say that development of this theme has been terribly difficult&thinsp;&#8212;&thinsp;though there were certainly parts I&#8217;ve struggled with&thinsp;&#8212;&thinsp;but also that I&#8217;ve simply been short on time I&#8217;ve been able to devote to the project.</p>
<p>It wasn&#8217;t until Friday, after what felt like a too-long wait, that I  finally saw the then-current version, 0.7.6 in the newly opened WordPress Theme Directory. This release, as signified by it&#8217;s less than 1.0 status, is less than I intend to do with the theme. But I&#8217;m hoping that finally making the project public will force me to spend more time to add the last features that I&#8217;ve been waiting so long to build.</p>
<p>Enough about how my development process works however, let&#8217;s cover the highlights of the theme itself. The primary feature, the one for which it is named, is the algorithm that translates dates into colors. This is done with a few PHP functions which take advantage of cosine curves to generate colors that are generally suited to the time of year. Essentially, the three colors of the red-green-blue system commonly used in HTML, all peak at different times. The blue is at it&#8217;s height around January first, green peaks around April 1, and red peaks around September 1. All of these are estimates, as I&#8217;ve fudged a bit with the peaks and valleys of these curves to give me colors closer to what I want.</p>
<p>Taking advantage of this date-to-color algorithm, I&#8217;ve made my favorite feature, the quilt. The quilt is, as you may guess, a collection of differently colored squares to create a blanket to keep you warm&#8230; err, display your posts. Rather than use the month-divided list-style archives I&#8217;ve built for my themes in the past, I&#8217;ve made a single collection of all posts, with colors serving to give you a rough idea of the date. You can easily tell posts from January from those from August, and you can also tell posts from 2008 are different from those from 2005. Of course, this feature is also made even easier to understand by the fact that the post are themselves shown chronologically in the quilt. The real result of the quilt, however, is that you get a beautiful rendering of your archives.</p>
<p>There are many more little features in this theme. I&#8217;ve added a rather novel system to hide the default gravatars when a user hasn&#8217;t set them. Trackback are seperated from comments so they don&#8217;t break the flow of conversation. The whole archives page is prettier than any I&#8217;ve made. Heck, the theme itself is just prettier than any I&#8217;ve made. And page titles have a novel organization I&#8217;m rather fond of.</p>
<p>Mostly though, I&#8217;m glad to have finally put this out into the world. It&#8217;s still not done, but I simply can&#8217;t continue to sit on it. I&#8217;ll keep you updated about changes I make to it in the future, and I hope to write a few tutorials explaining the most interesting features of Kaleidoscope to anyone interesting in using them in a different context.</p>
<p>You can, of course, see a demo of the theme at the <a href="http://www.ikirudesign.com/demo/index.php?wptheme=Kaleidoscope">Ikiru Demo Blog</a>. Be sure to look at <a href="http://www.ikirudesign.com/demo/index.php?wptheme=Kaleidoscope&amp;urladd=archives">the archives page</a>. (Or you can just look around here, as it   is the theme Ikiru Design is currently using.) There is also <a href="http://wp-themes.com/kaleidoscope">a demo, lacking an archives page</a>, at the WordPress Theme Directory. And you can <a href="http://wordpress.org/extend/themes/download/kaleidoscope.0.7.6.zip">download the theme</a> from there. You can find even more rambling about it at <a href="http://www.ikirudesign.com/themes/kaleidoscope/">the theme&#8217;s page</a>. And if you have anything to tell me about it&thinsp;&#8212;&thinsp;be it bug reports, complaints, or compliments&thinsp;&#8212;&thinsp;feel free to <a href="http://www.ikirudesign.com/contact/">contact me</a>.</p>
<img src="http://feeds.feedburner.com/~r/ikiru/~4/0YvpLd6IY04" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ikirudesign.com/2008/09/01/kaleidoscope/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Problem with Mailto:</title>
		<link>http://feedproxy.google.com/~r/ikiru/~3/cZrIQKtd6XY/</link>
		<comments>http://feedproxy.google.com/~r/ikiru/~3/cZrIQKtd6XY/#comments</comments>
		<pubDate>Wed, 21 May 2008 21:23:43 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[Ikiru Design]]></category>

		<guid isPermaLink="false">http://www.ikirudesign.com/?p=82</guid>
		<description><![CDATA[uzards (ASA) As anyone who&#8217;s spent much time surfing the internet can probably tell you, a mailto: link is the kind that usually launches a user&#8217;s email client and has some information&#8201;&#8212;&#8201;at minimum an address, but subjects aren&#8217;t uncommon&#8201;&#8212;&#8201;already filled in. It sounds benign enough, but I don&#8217;t like it. There are three essential problems [...]]]></description>
			<content:encoded><![CDATA[<p class="rightcite"><span><a href="http://www.flickr.com/photos/uzvards/2481348414/">uzards</a> (<a href="http://creativecommons.org/licenses/by-sa/2.0/deed.en">ASA</a>)</span><img title="muchmail" src="http://www.ikirudesign.com/wp-content/uploads/2008/05/muchmail.jpg" alt="A very large stack of mail." width="240" height="180" /></p>
<p>As anyone who&#8217;s spent much time surfing the internet can probably tell you, a mailto: link is the kind that usually launches a user&#8217;s email client and has some information&thinsp;&#8212;&thinsp;at minimum an address, but subjects aren&#8217;t uncommon&thinsp;&#8212;&thinsp;already filled in.</p>
<p>It sounds benign enough, but I don&#8217;t like it. There are three essential problems with using mailto: links on today&#8217;s internet. The first is a problems for the publisher, the second is a problem for users like me, and the third is a problem for all users. Add those all up, and I&#8217;m rather certain that mailto: links should be used as little as possible.</p>
<p>The most obvious and well known problem is the one posed to the publisher. That is: for nearly as long as there have been spammers on the internet, they&#8217;ve built bots those go around and scrape information from mailto: links. With this information, they do what any sensible spammer will, send you offers to enlarge your penis, get rich quick, win the lottery, and&thinsp;&#8212;&thinsp;if you&#8217;re really lucky&thinsp;&#8212;&thinsp;sign up for totally disgusting forms of pornography.</p>
<p>No one wants this stuff, and so schemes have been imagined to combat the problem. Some are rather low-tech, like creating a broken mailto: link like &#8220;mailto:me[at]me[dot]com.&#8221; This can work, <em>if</em> the sender recognizes that you&#8217;ve broken the link and they need to fix it. A myriad of other, more complex, options exist and yet none of them offer much compelling reason for not abandoning the format altogether.</p>
<p>But honestly, I don&#8217;t really care about the problems a publisher has when they use mailto: links, I have a problem with the inconveniences they cause me.</p>
<p>The first of which, and admittedly a not completely common one, is that I use Gmail as my primary email client. As such, when I (inadvertently) click a mailto: link the computer launches the default email client which I&#8217;ve never used nor configured. This means that I get a useless program launch that lets me compose an unsendable email.</p>
<p>There are work around for this, of course. One of the more elegant is offered for the forthcoming&thinsp;&#8212;&thinsp;but already widely used&thinsp;&#8212;&thinsp;Firefox 3. <a href="http://lifehacker.com/392287/set-firefox-3-to-launch-gmail-for-mailto-links">Gina Trapani explains</a> how a few mildly technical steps can make the browser launch Gmail for mailto: link. But this isn&#8217;t something that the average user of a web-based email client is likely to know about or do, so it hardly solves this problem for those who want to use the mailto: link.</p>
<p>The last gripe was already touched on, but has broader implications than I earlier suggested. I can think of few things worse than navigating around a site and inadvertently launching another program&thinsp;&#8212;&thinsp;whether or not I regularly use that program.</p>
<p>This is usually a result of poor design, but not always. To my mind, the greatest sin is when a site puts a mailto: link in main navigation controls. This wasn&#8217;t too abnormal a decade ago, but mercifully convention now say that such a link should never launch an external program without warning. Some have yet to get that memo about conventions, however.</p>
<p>Though I personally dislike curmudgeonly exhortation from anyone, including myself, sometimes it just feels necessary. Mailto: links are a poor invention when they work perfectly, and a hideous invention when they don&#8217;t work properly.</p>
<p>Personally I&#8217;m a fan of contact forms&thinsp;&#8212;&thinsp;like <a href="http://www.ikirudesign.com/contact/">the one I use</a>. There are a lot of plugins that make it easy to build one for WordPress, the most noted of which is <a href="http://www.deliciousdays.com/cforms-plugin">cforms II</a>. If that&#8217;s too much, you can also simply create a separate page that says Contact, and offers an email address there. Or you could simply make explicitly clear that your email address is behind a mailto: link. I&#8217;d certainly prefer seeing the inelegant &#8220;Contact Me (<a href="mailto:dummyaddress@dummydomain.com">mailto:</a>)&#8221; to the deceptive &#8220;<a href="mailto:dummyaddress@dummydomain.com">Contact Me</a>.&#8221;</p>
<p>Of course as just a random internet curmudgeon, there&#8217;s little reason for you to follow my advice. I accept that. But don&#8217;t tell me I didn&#8217;t warn you when you receive an angry email from a curmudgeon like me.</p>
<img src="http://feeds.feedburner.com/~r/ikiru/~4/cZrIQKtd6XY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ikirudesign.com/2008/05/21/the-problem-with-mailto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Few Weeks with WordPress 2.5</title>
		<link>http://feedproxy.google.com/~r/ikiru/~3/EPxNur1tWK0/</link>
		<comments>http://feedproxy.google.com/~r/ikiru/~3/EPxNur1tWK0/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 22:40:29 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[Ikiru Design]]></category>

		<guid isPermaLink="false">http://www.ikirudesign.com/?p=79</guid>
		<description><![CDATA[When WordPress 2.5 came out, I was thinking I&#8217;d offer a narrative of &#8220;how I stopped worrying and learned to love WordPress 2.5.&#8221; That ended up being a little dull. Instead, because we&#8217;re always told that the internet loves lists&#8201;&#8212;&#8201;and at this late date it seems unreasonable to offer something more comprehensive&#8201;&#8212;&#8201;I&#8217;ve got a short [...]]]></description>
			<content:encoded><![CDATA[<p>When WordPress 2.5 came out, I was thinking I&#8217;d offer a narrative of &#8220;how I stopped worrying and learned to love WordPress 2.5.&#8221; That ended up being a little dull. Instead, because we&#8217;re always told that the internet loves lists&thinsp;&#8212;&thinsp;and at this late date it seems unreasonable to offer something more comprehensive&thinsp;&#8212;&thinsp;I&#8217;ve got a short enumerations of the good and bad.</p>
<h3>Good</h3>
<ul>
<li><strong>A New Look</strong>&thinsp;&#8212;&thinsp;Though I wouldn&#8217;t say that all aesthetic changes made to WordPress redound to the good, I&#8217;m satisfied. The new colors are nice, the dashboard&#8217;s been improved, and everything feels better.</li>
<li><strong>Much Better Tag Integration</strong>&thinsp;&#8212;&thinsp;This is a direct descendant of the above point. Now a list of entries shows the tags. Now we get tag suggestions. And the ability to edit tags as a group. All of these are big improvements over the piecemeal support for tags that felt tagged on to 2.3.</li>
<li><strong>Better Media Integration</strong>&thinsp;&#8212;&thinsp;Though I&#8217;ve heard&thinsp;&#8212;&thinsp;and share&thinsp;&#8212;&thinsp;some discontent with the new Flash uploader, it&#8217;s nice that it was rethought. The ability to easily upload many pictures, and to easily create galleries are nice changes.</li>
<li><strong><em>Crucial or Trivial Bonus:</em> Plays nice with Safari/WebKit</strong>&thinsp;&#8212;&thinsp;Anyone who tried using Safari with WordPress before will understand what a nice change this is. Anyone who hasn&#8217;t tried will think this is a silly point.</li>
</ul>
<h3>Bad</h3>
<ul>
<li><strong>The Bugs</strong>&thinsp;&#8212;&thinsp;This may be based solely on the fact that I use custom fields, but I&#8217;ve been having terrible trouble with both scheduling posts and the unnecessary creation of extraneous drafts. These sins can be forgiven, but I am getting rather impatient waiting for a fix.</li>
<li><strong>The New Look</strong>&thinsp;&#8212;&thinsp;A lot of changes to the Write page are for the better, but the dearth of white space on the right side confounds me. Catergories were there previously, and I think there was a number of good reasons for that. Tags, I think, should go there as well. But neither&#8217;s there. As I sidenote: I&#8217;m not really a fan of this Lucidia Grande business in the editor either.</li>
<li><strong>Change is Hard </strong>&thinsp;&#8212;&thinsp;This is more a personal problem, but a lot of people (myself included) have been and slow to accept 2.5. This innate resistance to change is both irrational, and a waste of time.</li>
</ul>
<p>I&#8217;m certainly not going back, and am even less likely to change blogging platforms, so all of this is essentially trivial. But now you know.</p>
<img src="http://feeds.feedburner.com/~r/ikiru/~4/EPxNur1tWK0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ikirudesign.com/2008/04/23/a-few-weeks-with-wordpress-25/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
