<?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>Bill Erickson</title>
	<atom:link href="http://www.billerickson.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.billerickson.net</link>
	<description>Wordpress Consultant</description>
	<lastBuildDate>Wed, 14 Oct 2009 17:46:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Adding External Content (via RSS) to Wordpress</title>
		<link>http://www.billerickson.net/external-content-rss-wordpress/</link>
		<comments>http://www.billerickson.net/external-content-rss-wordpress/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 17:39:27 +0000</pubDate>
		<dc:creator>Bill Erickson</dc:creator>
				<category><![CDATA[Post]]></category>

		<guid isPermaLink="false">http://www.billerickson.net/?p=1394</guid>
		<description><![CDATA[There are many plugins that let you pull in posts from an RSS feed. But if you want to show them WITHOUT filling up your database, this is your solution.]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.billerickson.net/external-content-rss-wordpress/" title="Permanent link to Adding External Content (via RSS) to Wordpress"><img class="post_image aligncenter" src="http://www.billerickson.net/wp-content/uploads/2009/10/project7.jpg" width="500" height="333" alt="Post image for Adding External Content (via RSS) to Wordpress" /></a>
</p><p>One of my current clients (<a href="http://www.project7.com/">Project7</a>) wanted a feed of Global News in their sidebar that pulled news articles from many different sources. RSS is perfect for this, but there&#8217;s a problem with most of the RSS plugins out there &#8211; they will pull the news articles into your site as blog posts. While this might not be a problem for some projects, when you&#8217;re dealing with hundreds of news articles a day you&#8217;ll need a solution that doesn&#8217;t store them locally.</p>
<p>First I&#8217;m going to cover how to use <a href="http://simplepie.org/">SimplePie</a> (which already comes with Wordpress) to pull in an RSS feed. Then, I&#8217;ll briefly cover how we used <a href="http://pipes.yahoo.com/pipes/">Yahoo Pipes</a> to create a single RSS feed from many.</p>
<p><strong>Looping through an RSS Feed</strong></p>
<p>You&#8217;ll want to place this code where you want the RSS feed to appear. In my case, this is the sidebar.php file.</p>
<blockquote><p><code><br />
&lt;?php<br />
include_once(ABSPATH . WPINC . '/feed.php');<br />
$rss = fetch_feed('http://pipes.yahoo.com/pipes/pipe.run?_id=057832c1dcec7b587df982d689373923&amp;_render=rss');<br />
if(!empty($rss)):<br />
$maxitems = $rss-&gt;get_item_quantity(5);<br />
$rss_items = $rss-&gt;get_items(0, $maxitems);<br />
endif;<br />
?&gt;</code></p></blockquote>
<p>Here&#8217;s what it&#8217;s doing:</p>
<ul>
<li><code> include_once(ABSPATH . WPINC . '/feed.php'); </code> &#8211; Pull in the the feed.php file which contains SimplePie.</li>
<li><code> $rss = fetch_feed('http://pipes.yahoo.com/pipes/pipe.run?_id=057832c1dcec7b587df982d689373923&amp;_render=rss'); </code> &#8211; Fetch your feed. Set this to whatever RSS feed you want (as I mentioned, we&#8217;re using a Yahoo Pipe).</li>
<li><code> if(!empty($rss)): </code> &#8211; If the RSS feed isn&#8217;t empty &#8230;</li>
<li><code> $maxitems = $rss-&gt;get_item_quantity(5); $rss_items = $rss-&gt;get_items(0, $maxitems); endif; </code> &#8211; Set the limit to the 5 most recent items (you can set this to whatever you want).</li>
</ul>
<p>That pulls in your RSS feed; now it&#8217;s time to do something with it. We&#8217;ll run it through a loop that displays the title (linked to the original permalink) and the summary. For a full list of what you can display, check the <a href="http://simplepie.org/wiki/reference/start">SimplePie Documentation</a>.</p>
<p>First, the code:</p>
<blockquote><p><code><br />
&lt;ul&gt;<br />
&lt;?php if ($maxitems == 0) echo '&lt;li&gt;No news.&lt;/li&gt;';<br />
else<br />
foreach ( $rss_items as $item ) : ?&gt;<br />
&lt;li&gt;&lt;strong&gt;&lt;a href="&lt;?php echo $item-&gt;get_permalink(); ?&gt;" rel="bookmark"&gt;&lt;?php echo $item-&gt;get_title(); ?&gt;&lt;/a&gt;&lt;/strong&gt; - &lt;?php echo $item-&gt;get_description() ?&gt; &lt;/li&gt;<br />
&lt;?php endforeach; ?&gt;<br />
&lt;/ul&gt;</code></p></blockquote>
<p>Here&#8217;s what it&#8217;s doing:</p>
<ul>
<li><code>&lt;ul&gt;</code> &#8211; Start an unordered list</li>
<li><code>&lt;?php if ($maxitems == 0) echo '&lt;li&gt;No news.&lt;/li&gt;'; else foreach ( $rss_items as $item ) : ?&gt;</code> &#8211; If there&#8217;s nothing in the RSS feed, display &#8220;No News.&#8221; If there is posts in the RSS feed, run through them individually, assigning them to the variable $item.</li>
<li><code>&lt;li&gt;&lt;strong&gt;&lt;a href="&lt;?php echo $item-&gt;get_permalink(); ?&gt;"&gt;&lt;?php echo $item-&gt;get_title(); ?&gt;&lt;/a&gt;&lt;/strong&gt; - </code><code>&lt;?php echo $item-&gt;get_description() ?&gt;</code><code>&lt;/li&gt;</code> &#8211; The &lt;li&gt; defines it as an item of the unordered list, &lt;strong&gt; bolds it, we&#8217;re then linking the title of the post to the permalink (the original source of the content), closing the link and the &lt;strong&gt;, then displaying the summary of the post and ending the list item.</li>
<li><code>&lt;?php endforeach; ?&gt; &lt;/ul&gt;</code> &#8211; The endforeach ends the loop. When we&#8217;ve gone through all the post items, close the unordered list.</li>
</ul>
<p>That&#8217;s pretty much it. The one on Project7&#8217;s site is a bit more complicated (we had to analyze the permalink to determine what kind of icon to display next to the post),  but that&#8217;s how you display posts from an external RSS feed on your site, without storing those posts in your Wordpress database.</p>
<p>Finally, I wanted to touch on <a href="http://pipes.yahoo.com/pipes/">Yahoo Pipes</a>. If you haven&#8217;t used it before, it&#8217;s a great visual way for doing common programming mashups. Since we have 6 RSS feeds that we want included in this, and we want the 5 most recent posts from the total, I used Yahoo Pipes to combine these feeds into a single one. Below is a screenshot of my Pipe, along with a walkthrough of what it&#8217;s doing:</p>
<p><img class="alignnone size-full wp-image-1396" title="pipes" src="http://www.billerickson.net/wp-content/uploads/2009/10/pipes.jpg" alt="pipes" width="700" height="402" /></p>
<ul>
<li>First I created 6 &#8220;Fetch Feed&#8221; objects, and added the URL to the individual feeds to them.</li>
<li>I then used the &#8220;Union&#8221; tool to group them together (you can only Union 5 objects, so I had to do two Unions with 3 objects each, then a Union on those two Unions)</li>
<li>I then piped it through a &#8220;Sort&#8221; filter that sorts all the posts in descending order.</li>
<li>I then limited the feed to 5 posts. While this might not be necessary for you since we were limiting the feed length above in Wordpress ( <code> $maxitems = $rss-&gt;get_item_quantity(5); </code>), the final feed I pulled in had hundreds of posts and overloaded Wordpress.</li>
<li>I then sent this to the Pipe output.</li>
</ul>
<p>Once you&#8217;ve saved the Pipe, you can go to Run Pipe, which will display the output. From there you have the option to &#8220;Get as RSS&#8221; &#8211; take that URL and paste it in the above code.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.billerickson.net/external-content-rss-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thesis Tips #3 &#8211; Multiple content areas</title>
		<link>http://www.billerickson.net/wordpress-thesis-multiple-content-areas/</link>
		<comments>http://www.billerickson.net/wordpress-thesis-multiple-content-areas/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 23:48:28 +0000</pubDate>
		<dc:creator>Bill Erickson</dc:creator>
				<category><![CDATA[Post]]></category>
		<category><![CDATA[thesis]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.billerickson.net/?p=1377</guid>
		<description><![CDATA[This is a very elegant solution to the problem of having multiple content areas on a single page. It uses headlines to identify the different blocks of content.]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.billerickson.net/wordpress-thesis-multiple-content-areas/" title="Permanent link to Thesis Tips #3 &#8211; Multiple content areas"><img class="post_image aligncenter" src="http://www.billerickson.net/wp-content/uploads/2009/07/mac.jpg" width="500" height="333" alt="Post image for Thesis Tips #3 &#8211; Multiple content areas" /></a>
</p><p>Wordpress works great if you want to display a title and then a block of content, but if you&#8217;re using it as a CMS you&#8217;ll often be faced with the problem of multiple content areas. You might need multiple boxes on a homepage, or 3 columns of text on an inner page.</p>
<p>There&#8217;s many ways to go about this. Some of them include:</p>
<ul>
<li>Including <code>&lt;div&gt;</code>&#8217;s in your post content. This will work well for a developer like me who understands code, but for clients it is not usually a good option. They will typically work in the Visual mode, and can easily delete or break the<code>&lt;div&gt;</code>&#8217;s, then not know how to add them back in HTML mode.</li>
<li>Using sidebars and widgets to display content. This is good for one-off things like sidebars (same across the site) or boxes on a homepage (only used once), but it doesn&#8217;t scale well &#8211; you don&#8217;t want 20 different sidebars for different areas of your site. It also disconnects the content from the page. It&#8217;s nice to have all the content that will appear on a page editable in the same place. (This goes back to my principle of making client&#8217;s sites easy to use and hard to break).</li>
</ul>
<p>For a project I&#8217;m working on now we needed two columns of content to appear below the main page content on every page. All three blocks of content are unique to that page. This solution was heavily inspired by <a href="http://www.kriesi.at/archives/wordpress-display-content-in-multiple-columns">a post at kriesi.at</a>, but I&#8217;ve modified it with the help of <a href="http://chrisbratlien.com/">Chris Bratlien</a> to make as many content areas as you like (the code from that post only creates a left column and a right column).</p>
<p><strong>The Content</strong></p>
<p>When you&#8217;re writing your content in Wordpress, simply break up the content sections using an <code>&lt;h4&gt;</code> heading. I chose <code>&lt;h4&gt;</code> because it&#8217;s easily accessible from the menu bar. Select the text you want as your heading, click on the last icon in the menu( <img src="http://www.billerickson.net/wp-includes/js/tinymce/plugins/wordpress/img/toolbars.gif" alt="" />)  then click where it says Paragraph and go down to Heading 4. You could change this to whatever heading you&#8217;d like; I chose Heading 4 because I seem to only use <code>&lt;h1&gt;</code>, <code>&lt;h2&gt;</code> and <code>&lt;h3&gt;</code>.</p>
<p><strong>The Code</strong></p>
<p>In your Custom Functions file, paste the following code:</p>
<blockquote><p><code>function multi_content($content){<br />
$columns = explode('&lt;h4&gt;', $content);<br />
$i = 0;<br />
foreach ($columns as $column){<br />
if (($i % 2) == 0){<br />
$return .= "&lt;div class=\"column\" id=\"content-$i\"&gt;" . "\n";<br />
if ($i &gt; 1){<br />
$return .= "&lt;h4&gt;";<br />
}<br />
} else{<br />
$return .= "&lt;div </code><code>class=\"column\" id=</code><code>\"content-$i\"&gt;" . "\n &lt;h4&gt;";<br />
}<br />
$return .= $column;<br />
$return .= '&lt;/div&gt;';<br />
$i++;<br />
}<br />
if(isset($columns[1])){<br />
$content = wpautop($return);<br />
}else{<br />
$content = wpautop($content);<br />
}<br />
return $content;<br />
}<br />
add_filter('the_content', 'multi_content');<br />
</code></p></blockquote>
<p>Here&#8217;s what that is doing:</p>
<ul>
<li><code>$columns = explode('&lt;h4&gt;', $content);</code> Break up the content into separate blocks every time you find an <code>&lt;h4&gt;</code>.</li>
<li><code>$i = 0;</code> Make a counter (called i) and start at 0.</li>
<li><code>foreach ($columns as $column){</code> For every block of content&#8230;</li>
<li><code>if (($i % 2) == 0){ </code> If i is an even number (0, 2,4&#8230;) &#8230;</li>
<li><code>$return .= "&lt;div </code><code>class=\"column\" id=</code><code>\"content-$i\"&gt;" . "\n"; </code>Add a div with the class of &#8220;column&#8221; and the id of &#8220;content-[i]&#8220;, so content-0, content-2&#8230;</li>
<li><code>if ($i &gt; 1){$return .= "&lt;h4&gt;";} </code>If this is any block of content except the first, add back the <code>&lt;h4&gt;</code> (our first block of content was everything before the first <code>&lt;h4&gt;</code>, so we don&#8217;t want to add an additional one)</li>
<li><code>} else{ $return .= "&lt;div </code><code>class=\"column\" id=</code><code>\"content-$i\"&gt;" . "\n &lt;h4&gt;";} </code>If i is an odd number (1,3,5&#8230;), add a div with the class of &#8220;column&#8221; and the id of &#8220;content-[i]&#8221; and an <code>&lt;h4&gt;</code>.</li>
<li><code>$return .= $column; $return .= '&lt;/div&gt;'; $i++;} </code>Add the block of content and close the div at the end. Then move the counter up one and start again.</li>
<li><code>if(isset($columns[1])){ $content = wpautop($return); </code>If there&#8217;s only one block of content (no <code>&lt;h4&gt;</code>&#8217;s were used), ignore everything we did and just show the content.</li>
<li><code>}else{ $content = wpautop($content); } return $content; } </code>If there was more than one block of content, replace the default Wordpress content with the div&#8217;s and content we just did.</li>
<li><code>add_filter('the_content', 'multi_content'); </code>Run this filter every time Wordpress wants to see the content of a post or page.</li>
</ul>
<p>You&#8217;ll then need to add the appropriate css to make it behave as you like. If you want to apply css to all the columns, use the class &#8220;column.&#8221; If you want to add css to individual columns, use their id&#8217;s. Here&#8217;s an example:</p>
<p><code><br />
.column {float: left;}<br />
#content-0 {width: 400px;}<br />
#content-1 {width: 300px;}<br />
</code><br />
I hope that helps some of you. I know I will be using it a lot for client websites.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.billerickson.net/wordpress-thesis-multiple-content-areas/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Thesis Tips #2 &#8211; Additional Sidebars</title>
		<link>http://www.billerickson.net/wordpress-thesis-additional-sidebars/</link>
		<comments>http://www.billerickson.net/wordpress-thesis-additional-sidebars/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 14:26:59 +0000</pubDate>
		<dc:creator>Bill Erickson</dc:creator>
				<category><![CDATA[Post]]></category>
		<category><![CDATA[thesis]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.billerickson.net/?p=1366</guid>
		<description><![CDATA[Additional sidebars allow you to easily manage content that doesn't fit in a post or page. I'll outline how to implement them using Thesis, but you could also do this with any Wordpress theme.]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.billerickson.net/wordpress-thesis-additional-sidebars/" title="Permanent link to Thesis Tips #2 &#8211; Additional Sidebars"><img class="post_image aligncenter" src="http://www.billerickson.net/wp-content/uploads/2009/07/mac.jpg" width="500" height="333" alt="Post image for Thesis Tips #2 &#8211; Additional Sidebars" /></a>
</p><p>When building a website using Wordpress, you&#8217;ll often have a piece of content that doesn&#8217;t fit into a post or page; for example, an &#8220;Additional Information&#8221; box that appears above the sidebars on a specific page.  There are many approaches you could take:</p>
<ul>
<li>Code it directly into the template files, which should only be done if the content won&#8217;t need to be changed (example: a footer on a website).</li>
<li>Include it as a custom field on a post or page. This is best for content that is page/post-specific, but found on almost every post or page (example: Photographer&#8217;s name associated with the post&#8217;s header image).</li>
<li>Build an additional sidebar. This is best for something that&#8217;s repeated often and/or needs to be easily editable.</li>
</ul>
<p>I&#8217;m going to focus on the last approach using additional sidebars.</p>
<p>First you need to create an additional sidebar, then include it somewhere in your site, and finally populate it with content.</p>
<p><strong>Creating an Additional Sidebar</strong></p>
<p>In your custom_functions.php file, include the following code:</p>
<blockquote><p><code>register_sidebars(1,<br />
array(<br />
'name' =&gt; 'Additional Sidebar',<br />
'before_widget' =&gt; '&lt;li id="%1$s"&gt;',<br />
'after_widget' =&gt; '&lt;/li&gt;',<br />
'before_title' =&gt; '&lt;h3&gt;',<br />
'after_title' =&gt; '&lt;/h3&gt;'<br />
)<br />
);</code></p></blockquote>
<p>That will create a new sidebar titled &#8220;Additional Sidebar,&#8221; with the appropriate default parameters (which you can change if you like).</p>
<p><strong>Include in Site</strong></p>
<p>Since we&#8217;re working with Thesis, I&#8217;ll make a custom function that displays the additional sidebar and stick it after the existing sidebars using <code>add_action</code>.</p>
<blockquote><p><code><br />
function custom_sidebar(){?&gt;<br />
&lt;div id="sidebar_3"&gt;&lt;ul&gt;<br />
&lt;?php dynamic_sidebar('</code><code>Additional Sidebar</code><code>'); ?&gt;<br />
&lt;/ul&gt;&lt;/div&gt;<br />
&lt;?php<br />
}<br />
add_action('thesis_hook_after_sidebars','custom_sidebar');</code></p></blockquote>
<p>You could use <a href="http://diythemes.com/thesis/rtfm/hooks/">any of the hooks</a> to stick it wherever you&#8217;d like.</p>
<p><strong>Populate the sidebar with content </strong></p>
<p>From your wp-admin area, go to Appearance &gt; Widgets. You should see all of your sidebars displayed on the right side, and your choice of widgets on the left. If you just want text in this sidebar, drag the Text widget over to &#8220;Additional Sidebar&#8221; and fill it with your title and content. Once you save it, your sidebar should be ready to view on your site.</p>
<p>You can customize the look and feel of it using custom.css, Thesis&#8217; CSS file. In the above example, I put the sidebar in a div titled &#8220;sidebar_3&#8243;, so I can modify it by using <code>.custom #sidebar_3</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.billerickson.net/wordpress-thesis-additional-sidebars/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Thesis Tips #1</title>
		<link>http://www.billerickson.net/wordpress-thesis-tips-1/</link>
		<comments>http://www.billerickson.net/wordpress-thesis-tips-1/#comments</comments>
		<pubDate>Sun, 26 Jul 2009 17:20:20 +0000</pubDate>
		<dc:creator>Bill Erickson</dc:creator>
				<category><![CDATA[Post]]></category>
		<category><![CDATA[thesis]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.billerickson.net/?p=1346</guid>
		<description><![CDATA[As I’ve been working with Thesis a lot lately, I thought it would be a good idea to start posting some tips for customizing it. This post covers customizing post image/thumbnails and displaying category posts on pages.]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.billerickson.net/wordpress-thesis-tips-1/" title="Permanent link to Thesis Tips #1"><img class="post_image aligncenter" src="http://www.billerickson.net/wp-content/uploads/2009/07/mac.jpg" width="500" height="333" alt="Post image for Thesis Tips #1" /></a>
</p><p>As I&#8217;ve been working with <a href="http://diythemes.com/?a_aid=billerickson">Thesis</a> a lot lately, I thought it would be a good idea to start posting some tips for customizing it. If you need help with Thesis or Wordpress, please review my <a href="/index.php/wordpress-consulting">Wordpress Consulting</a> page.</p>
<p><strong>1. Custom Use of Post Image and Thumbnails</strong><br />
Thesis has a great tool for adding images to posts, and when making customizations you might need to access those images.  Thesis stores the URL for the post image in a custom field titled <code>thesis_post_image</code>, so assign it to a variable like this:</p>
<blockquote><p><code><br />
global $post;<br />
$post_image = get_post_meta($post-&gt;ID, 'thesis_post_image',$single=true);<br />
</code></p></blockquote>
<p>You can then use $post_image to plug the image url where you want it, like :</p>
<blockquote><p><code><br />
&lt;a href="&lt;?php the_permalink() ?&gt;"&gt;&lt;img src="&lt;?php echo $post_image ?&gt;" alt="" /&gt;&lt;/a&gt;</code></p></blockquote>
<p>If you would like to use a thumbnail of this image, you&#8217;ll need to use the thumb.php script included with Thesis (found in /lib/scripts/thumb.php). There&#8217;s five parameters you can use:</p>
<ul>
<li>src= url to the image</li>
<li>w= the width of your thumbnail</li>
<li>h= the height of your thumbnail</li>
<li>zc= whether it should zoom (0) or crop (1) the original image</li>
<li>q= quality, the default is 75 and max is 100</li>
</ul>
<p>To make a thumbnail, you simply link to thumb.php script and include the parameters. Here&#8217;s an example:</p>
<blockquote><p><code>&lt;img src="<span style="color: #ff0000;">&lt;?php bloginfo('template_url'); ?&gt;/lib/scripts/thumb.php</span><span style="color: #339966;">?src=&lt;?php echo $post_image ?&gt;</span><span style="color: #0000ff;">&amp;w=66&amp;h=66&amp;zc=1&amp;q=100</span>" width="66" height="66" alt="Thumbnail image for &lt;?php echo $post-&gt;post_title ?&gt;" /&gt;</code></p></blockquote>
<p>The red part is the link to the thumb.php script, the green is the link to the original image, and blue is the other four parameters defining the thumbnail.</p>
<p><strong>2. Displaying Category Posts on a page</strong></p>
<p><a href="http://www.United4Iran.org">United4Iran.org</a> organized events in over 100 cities, and created a page for each city with relevant information. They wanted a way to show relevant posts on those pages (we define &#8220;relevant posts&#8221; as posts in a certain category; posts for the Austin, TX page are in the &#8220;austin&#8221; category). We used a custom function so Thesis could be updated in the future without causing problems to our customizations.</p>
<p>When the client wants to add a post category to a page, he simply adds the category ID to the page&#8217;s custom field called <code>custom_cat_page</code>. The page will then list the 10 most recent posts from those post categories, and provide a link to the archive page for more.</p>
<p>I&#8217;ll work through the custom function, detailing what each part does (the parts beginning &#8220;<span style="color: #ff0000;">//</span>&#8221; are my comments).</p>
<blockquote><p><code>function custom_cat_page() {<br />
global $post;<br />
$temp_query = $post;<br />
<span style="color: #ff0000;"> // This loads the data on the current post and saves it in $temp_query (so we can get it later)</span><br />
$postID = $post-&gt;ID;<br />
$custom_cat = get_post_meta($postID, 'custom_cat_page',$single=true);<br />
<span style="color: #ff0000;"> // Save the custom field 'custom_cat_page' to $custom_cat</span><br />
if($custom_cat){<br />
<span style="color: #ff0000;"> // If the custom field is in use...</span><br />
?&gt;&lt;?php<br />
$posts = new WP_Query('cat='.$custom_cat.'&amp;showposts=10');<br />
<span style="color: #ff0000;"> // Get the 10 most recent posts from the specified categories</span><br />
while ($posts-&gt;have_posts()) : $posts-&gt;the_post();<br />
?&gt;<br />
&lt;h3&gt;&lt;a href="&lt;?php the_permalink() ?&gt;"&gt;&lt;?php echo $post-&gt;post_title ?&gt;&lt;/a&gt;&lt;/h3&gt;</code></p>
<p><code>&lt;?php the_excerpt();<br />
<span style="color: #ff0000;"> // Show the post title and excerpt.</span><br />
endwhile;<br />
?&gt;<br />
&lt;p&gt;&lt;a href="/?cat=&lt;?php echo $custom_cat;?&gt;"&gt;View the Archives&lt;/a&gt;&lt;/p&gt;<br />
<span style="color: #ff0000;"> // Link to the archives page for the categories</span><br />
&lt;?php<br />
$post = $temp_query;<br />
<span style="color: #ff0000;"> // Reset $post back to its original content</span><br />
}<br />
?&gt;<br />
&lt;?php<br />
}<br />
add_action('thesis_hook_after_post','custom_cat_page');<br />
<span style="color: #ff0000;"> // Add this function after the page's content</span></code></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.billerickson.net/wordpress-thesis-tips-1/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Search Engine Optimization for Wordpress</title>
		<link>http://www.billerickson.net/wordpress-seo/</link>
		<comments>http://www.billerickson.net/wordpress-seo/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 12:08:26 +0000</pubDate>
		<dc:creator>Bill Erickson</dc:creator>
				<category><![CDATA[Post]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.billerickson.net/?p=1327</guid>
		<description><![CDATA[These are notes from a presentation by Matt Cutts (from Google) on optimizing your Wordpress site. While Wordpress already takes care of most SEO issues, there are a few things you can do to improve it. But remember the 80/20 rule: 80% of SEO is writing compelling content for your readers. The other 20% is simple optimizations of that content. ]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.billerickson.net/wordpress-seo/" title="Permanent link to Search Engine Optimization for Wordpress"><img class="post_image aligncenter" src="http://www.billerickson.net/wp-content/uploads/2009/07/matt-cutts-wordcamp.jpg" width="500" height="375" alt="Matt Cutts at WordCamp 2009" /></a>
</p><p style="text-align: right;">(photo by <a href="http://www.flickr.com/photos/miss604/3578441149/">miss604</a>)</p>
<blockquote><p style="text-align: left">&#8220;The problem with SEO is that the good advice is obvious, the rest doesn’t work, and it’s poisoning the web.&#8221; &#8211; <a href="http://powazek.com/posts/2090">Derek Powazek</a></p>
</blockquote>
<p style="text-align: left;">Many people have asked me for help getting better search engine rankings. While I love to help, most have spent too much time researching SEO online and want me to help them change &#8220;meta tags&#8221; and &#8220;anchor text.&#8221;</p>
<p style="text-align: left;">You shouldn&#8217;t build your site for search engines; you should build it for users. Filling your site with keywords and obsessing over how many backlinks you have is NOT the way to a good search engine ranking. If you have a compelling site with relevant and updated content that users want, Google will rank you well over time. You need to align your goals with Google&#8217;s &#8211; providing the content that user&#8217;s are looking for.</p>
<p style="text-align: left;">I call it the <strong>80/20 rule of SEO</strong>: 80% of Search Engine Optimization is writing compelling content for your readers. The other 20% is optimizing that content.</p>
<p>SEO is really simple. You follow a few basic SEO tips (have readable permalinks, descriptive titles) and then write original content that people will want to read. If you use Wordpress, most of the SEO tips are already in place, so you just have to focus on writing good content.</p>
<p>Some people might not believe this, and think it&#8217;s too simplistic. The rest of this post will be notes from a WordCamp 2009 presentation by <a href="http://www.mattcutts.com/blog/">Matt Cutts</a>, the head of Google&#8217;s Web Spam group. Video of the talk is at the bottom, and you can view the slides here: <a href="http://www.mattcutts.com/blog/seo-for-bloggers/">&#8220;Straight from Google: What You Need To Know.&#8221;</a></p>
<ul>
<li>WordPress already takes care of 80-90% of Search Engine Optimization.</li>
<li>Don&#8217;t obsess about backlinks. Focus on being relevant and reputable.</li>
<li>Use analytics tools to see what people are searching for on your site (internal) and to get to your site (external). Make this information easy to access ( &#8220;Common Questions&#8221; on the homepage)</li>
<li>Some great tools: <a href="http://www.google.com/analytics">Google Analytics</a>, <a href="http://www.google.com/webmaster">Google Webmaster Tools</a>, <a href="https://adwords.google.com/select/KeywordToolExternal">Google Keyword Tool</a></li>
<li>Make sure your URL&#8217;s are friendly: <a href="http://www.billerickson.net/index.php/wordpress-consulting">http://www.billerickson.net/index.php/wordpress-consulting</a> instead of <a href="http://www.billerickson.net/?p=83">http://www.billerickson.net/?p=83</a> . In Wordpress, go to Settings &gt; Permalinks, select custom, and use either /%category%/%postname%/  or /%postname%/ (what Matt uses). Use the first option if you&#8217;re using multiple post categories.</li>
<li>Make your post categories descriptive and good keywords: &#8220;apple&#8221; instead of &#8220;cool-stuff&#8221;</li>
<li>Modify your post&#8217;s permalink to remove unnecessary words and reflect alternate keywords for your post. Example: this post is titled &#8220;Search Engine Optimization for Wordpress,&#8221; and the permalink is &#8220;/wordpress-seo/&#8221; . When writing the post, directly below the Title box it shows your permalink with an &#8220;Edit&#8221; button.</li>
<li>Keep WordPress updated! Many WordPress updates are security updates, which means they fix a hole that makes your site vulnerable to hackers.</li>
<li>Don&#8217;t overuse keywords in the post. Write the post for users.</li>
</ul>
<p>The overarching SEO tip is &#8220;write compelling content for your readers.&#8221; All these other tips are secondary.</p>
<p><object id="viddler" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="437" height="282" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="src" value="http://www.viddler.com/player/bc656bb0/" /><param name="name" value="viddler" /><param name="allowfullscreen" value="true" /><embed id="viddler" type="application/x-shockwave-flash" width="437" height="282" src="http://www.viddler.com/player/bc656bb0/" name="viddler" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.billerickson.net/wordpress-seo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quickly find books at library</title>
		<link>http://www.billerickson.net/quickly-find-books-at-library/</link>
		<comments>http://www.billerickson.net/quickly-find-books-at-library/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 14:19:41 +0000</pubDate>
		<dc:creator>Bill Erickson</dc:creator>
				<category><![CDATA[Post]]></category>
		<category><![CDATA[book-review]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.billerickson.net/?p=1181</guid>
		<description><![CDATA[Here's a script you can use in Firefox to see if a book is at your local library.]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.billerickson.net/quickly-find-books-at-library/" title="Permanent link to Quickly find books at library"><img class="post_image aligncenter" src="http://www.billerickson.net/wp-content/uploads/2009/06/books.jpg" width="500" height="333" alt="Post image for Quickly find books at library" /></a>
</p><p>When I come across an interesting book review or recommendation from a friend, I go straight to Amazon, read a little about it, and if I&#8217;m still interested I add it to <a href="http://www.amazon.com/wishlist/2Y7PMW4MGB3BB">my wish list</a>. Then when I need some books to read, I go through and see if any on my list are already at the local library. About every three months I buy 5-10 of the one&#8217;s that aren&#8217;t at the library.</p>
<p>I was looking for an easier way to do my library lookup today. On Twitter, <a href="http://twitter.com/milsyobtaf/status/2402684158">milsyobtaf</a> suggested a Firefox bookmarklet, and after playing around with it I decided to just write a quick script for Ubiquity to do the lookup (<a href="http://labs.mozilla.com/projects/ubiquity/">Ubiquity</a> is a very cool text-based add-on to firefox).  In case anyone else is interested, here&#8217;s how you do it:</p>
<ol>
<li>Install <a href="http://labs.mozilla.com/projects/ubiquity/">Ubiquity</a> if you don&#8217;t already have it.</li>
<li>Open Ubiquity (not sure what the default command is, I have mine set to Alt + Space) and type help.</li>
<li>Click &#8220;Your Commands&#8221; at the top</li>
<li>Copy/paste this code in there:<br />
<code>CmdUtils.CreateCommand({<br />
name: "library search",<br />
takes: {"query": noun_arb_text},<br />
execute: function(directObject) {<br />
var url = "https://libcat.tamu.edu/cgi-bin/Pwebrecon.cgi?&amp;HIST=1&amp;DB=local&amp;SL=none&amp;Search_Arg={QUERY}&amp;Search_Code=GKEY^*&amp;CNT=50"<br />
var query = directObject.text;<br />
var urlString = url.replace("{QUERY}", query);<br />
Utils.openUrlInBrowser(urlString);<br />
}<br />
})</code></li>
<li>Go to your local library&#8217;s website, find the catalog search, do a search for something, and then copy the url of the results page. Paste the url above where it says <code>var url = " ... "</code></li>
<li>In the url, change whatever you searched for to {QUERY}. For example, if I searched for Vonnegut, the above url would have in it <code>...Search_Arg=Vonnegut&amp;...</code> . This is the part that will get replaced when you do a search.</li>
</ol>
<p>That&#8217;s it! Now open Ubiquity (Alt + Space on my computer), start typing &#8220;library&#8221;, once you see your library search option press space then type your search, hit Enter and it should do a library search for you.</p>
<p>Another way to search Ubiquity is to select text, then open ubiquity and start typing &#8220;library.&#8221; It will use your selected text as the search query. So, on this page highlight Kurt Vonnegut, then open Ubiquity, type library, and press Enter.</p>
<p>&#8212;</p>
<p>If you have a book recommendation, please leave them as a comment or <a href="mailto:bill.erickson@gmail.com">email me</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.billerickson.net/quickly-find-books-at-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easy Contact Forms using Google Forms</title>
		<link>http://www.billerickson.net/easy-wordpress-contact-forms/</link>
		<comments>http://www.billerickson.net/easy-wordpress-contact-forms/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 22:49:53 +0000</pubDate>
		<dc:creator>Bill Erickson</dc:creator>
				<category><![CDATA[Post]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.billerickson.net/?p=1126</guid>
		<description><![CDATA[This is a more technical post than usual. I outline how to quickly build a Contact Form for Wordpress (or any other site). ]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.billerickson.net/easy-wordpress-contact-forms/" title="Permanent link to Easy Contact Forms using Google Forms"><img class="post_image aligncenter" src="http://www.billerickson.net/wp-content/uploads/2009/06/form2.jpg" width="500" height="333" alt="Form used on BIL:PIL website " /></a>
</p><p>The one feature that Wordpress doesn&#8217;t provide that many businesses request is a contact form. There&#8217;s many plugins out there (I used to use <a href="http://www.deliciousdays.com/cforms-plugin">cforms2</a>), but for something as simple as this you don&#8217;t need to use a plugin.</p>
<ol>
<li>Open up <a href="http://docs.google.com">Google Docs</a> and click New &gt; Form.</li>
<li>Fill out all the questions you want. A typical contact form might just include Name, Email, Message.</li>
<li>Go back to the spreadsheet and click Share &gt; Set Notification Rules. Check &#8220;email me when someone submits a form&#8221; and &#8220;email me right away&#8221;</li>
<li>(Option 1) If you like Google&#8217;s default form design, click &#8220;Embed&#8221; and copy the code it provides (an iframe).</li>
<li>(Option 2) If you would like to customize the design of the form, go to the spreadsheet and click  Form &gt; View Live Form. Right click on the page, press &#8220;View Source,&#8221; and copy the code: &lt;form&gt; &#8230; &lt;/form&gt;.</li>
<li>(Simple option). Go to Wordpress, edit your Contact Page, switch to HTML view and paste the code. This will add the form to your page.</li>
<li>(More difficult option) If you&#8217;re a developer and don&#8217;t want clients messing with the form&#8217;s code, create a page template, include the code in there, and then set the contact page to that page template.</li>
<li>If you chose Option 2 above, you can now use CSS to style the form to match your site.</li>
</ol>
<p>Here&#8217;s an example of the form in action: <a href="http://2010.bilconference.com">http://2010.bilconference.com</a> I just used the iframe because I didn&#8217;t need to change the look of the form.</p>
<p><strong>Additional feature &#8211; </strong>If you&#8217;d like to share the responses on your site (like the <a href="http://2010.bilconference.com/signup/attendees/">BIL Attendees page</a>), just:</p>
<ol>
<li>Create a new sheet on the spreadsheet (at the bottom, &#8220;Add Sheet&#8221;).</li>
<li>Label the columns you&#8217;d like to include at the top.</li>
<li>Under the first column, type &#8220;=&#8221; then switch to the previous sheet and select the first column&#8217;s contents. Press Enter. This should give you a formula the duplicates the content (something like =Sheet1!A2). Repeat for each column you&#8217;d like to share.</li>
<li>Select all the cells of the first row of data, hover over the bottom right corner, click the square and drag down. This will repeat the formula across the lower cells.</li>
<li>Click &#8220;Share &gt; Publish as a Web Page.&#8221; Under Sheets to Publish select &#8220;Sheet 2&#8243;, and click &#8220;Start Publishing&#8221;.</li>
<li>Under Get a link to the published data, select &#8220;HTML to embed in a page&#8221; and copy the code.</li>
<li>Open Wordpress and paste the code in the page you&#8217;d like to share it on.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.billerickson.net/easy-wordpress-contact-forms/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Review of Effectuation</title>
		<link>http://www.billerickson.net/review-of-effectuation/</link>
		<comments>http://www.billerickson.net/review-of-effectuation/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 01:04:26 +0000</pubDate>
		<dc:creator>Bill Erickson</dc:creator>
				<category><![CDATA[Post]]></category>
		<category><![CDATA[book-review]]></category>
		<category><![CDATA[entrepreneurship]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://www.billerickson.net/?p=1102</guid>
		<description><![CDATA[Causal strategies are useful when the future is predictable, goals are clear, and the environment is independent of our actions; effectual strategies are useful when the future is unpredictable, goals are unclear, and the environment is driven by human action.]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.billerickson.net/review-of-effectuation/" title="Permanent link to Review of Effectuation"><img class="post_image aligncenter" src="http://www.billerickson.net/wp-content/uploads/2009/06/effectuation.jpg" width="500" height="333" alt="Post image for Review of Effectuation" /></a>
</p><p>I just finished reading <a href="http://www.amazon.com/gp/product/1848445725?ie=UTF8&amp;tag=ipodincar-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1848445725">Effectuation</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ipodincar-20&amp;l=as2&amp;o=1&amp;a=1848445725" border="0" alt="" width="1" height="1" /> by Saras Sarasvathy. It&#8217;s a great look at the non-causal (therefore &#8220;effectual&#8221;) logic used by entrepreneurs (and everyone else) in the face of an unpredictable future.</p>
<p>Here&#8217;s some excerpts and thoughts:</p>
<p>Causation v. Effectuation</p>
<ul>
<li>Causal logic is based on the premise: &#8220;To the extent we can predict the future, we can control it.&#8221;</li>
<li>Effectual logic is based on the premise: &#8220;To the extent we can control the future, we do not need to predict it.&#8221;</li>
<li>Causal problems are problems of decision; effectual problems are problems of design. Causal logic helps us choose; effectual logic helps us construct. Causal strategies are useful when the future is predictable, goals are clear, and the environment is independent of our actions; effectual strategies are useful when the future is unpredictable, goals are unclear, and the environment is driven by human action.</li>
<li>Causal question: What should I do to achieve this effect?</li>
<li>Effectual question: What can I do with these means?</li>
<li>Surprises are usually relegated to error terms in formal models. Effectual logic sees them as source of opportunities for value creation.</li>
<li>Contractual claims are causal claims on the predictable future; equity provides effectual claims on the unpredictable future.</li>
<li>The paths to entrepreneurial success expand in the future rather than converge (one-to-many, in contrast to causation&#8217;s many-to-one approach towards &#8216;the goal&#8217;)</li>
</ul>
<p>On the Entrepreneur</p>
<ul>
<li>Expert entrepreneurs distrust market research; distrust attempt at predicting the future</li>
<li>&#8220;In commercializing new technologies, entrepreneurs often find that formal market research and expert forecasts, however sophisticated in methods and impeccable in their analyses, fail to predict where the markets will turn out to be or what new markets will come into existence.&#8221; Christensen (1997) and Mintzberg (1994)</li>
<li>Expert entrepreneurs start with three categories of means: their identity, their knowledge base, and their social network.</li>
<li>Theme of converting initial customers to partners</li>
<li>Entrepreneurs perceive the world around them as human-made</li>
<li>&#8220;Serial entrepreneurship is a temporal portfolio&#8221; &#8211; diversified over time rather than concurrently like a traditional investment portfolio</li>
</ul>
<p>Decision Making</p>
<ul>
<li>Pragmatism does not assert a singular truth and declare all else false; rather, it compares truths and tests for differences. If no difference in the consequences of the two truths, they are the same pragmatically.</li>
<li>What does this truth tell us that we don&#8217;t already know?</li>
<li>Risk involves known distribution of options (1 in 5 chance of winning). Uncertainty involves unknown distribution of options</li>
<li>&#8220;Rational choice involves two guesses, a guess about uncertain future consequences, and a guess about uncertain future preferences.&#8221; March (1978) in RAND Journal of Economics</li>
<li>Human rationality is bounded by cognitive limitations such as physiological constraints on computational capacity, and psychological limitations like biases &amp; fallacies</li>
</ul>
<p>Principles of Entrepreneurial Expertise:</p>
<ul>
<li>Bird-in-hand principle: create something with existing means rather than discovering new ways to achieve goals (&#8221;What do I have?&#8221; vs &#8220;What do I need?&#8221;)</li>
<li>Affordable loss principle: Committing what you&#8217;re willing to lose rather than investing based on expected returns</li>
<li>Crazy quilt principle: Negotiate with all stakeholders willing to commit to a project without worrying about the opportunity costs. The venture (or &#8220;quilt&#8221;) evolves over time based on interactions of all stakeholders (investors, customers, employees, suppliers&#8230;).</li>
<li>Lemonade principle: Leverage surprises rather than avoiding them</li>
<li>Pilot in the plane principle: Rely on human agency as prime driver of opportunity rather than technical/economic trends. (Comes from SpaceShipOne putting a pilot in charge of the spaceship instead of a computer. The pilot can think on his feet, while a computer would need every possible contingency pre-programmed.)</li>
</ul>
<p>I&#8217;m not sure where I found this book, but it was most likely a blog post or tweet by <a href="http://ben.casnocha.com/">Ben Casnocha</a> or <a href="http://paul.kedrosky.com/">Paul Kedrosky</a>. Whoever suggested it, thanks.</p>
<p><strong>More information:</strong><br />
<a href="http://www.gaebler.com/Effectuation.htm">Effectuation: How Entrepreneurs Think</a></p>
<p><object width="400" height="230"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4717683&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=4717683&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="230"></embed></object>
<p><a href="http://vimeo.com/4717683">Jason Fried @ Big Omaha 2009</a> from <a href="http://vimeo.com/bigomaha">Big Omaha</a> on <a href="http://vimeo.com">Vimeo</a>. Many of his thoughts on starting a business are aligned with the idea of Effectuation. &#8220;We don&#8217;t have a plan.&#8221; &#8220;We don&#8217;t set sales targets. They&#8217;re numbers you pick out of the air and make you do things you don&#8217;t want to do&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.billerickson.net/review-of-effectuation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Recent Readings</title>
		<link>http://www.billerickson.net/recent-readings/</link>
		<comments>http://www.billerickson.net/recent-readings/#comments</comments>
		<pubDate>Fri, 01 May 2009 05:15:34 +0000</pubDate>
		<dc:creator>Bill Erickson</dc:creator>
				<category><![CDATA[Post]]></category>
		<category><![CDATA[book-review]]></category>
		<category><![CDATA[education]]></category>

		<guid isPermaLink="false">http://www.billerickson.net/?p=1014</guid>
		<description><![CDATA[Some thoughts and excerpts from books I've read recently.]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.billerickson.net/recent-readings/" title="Permanent link to Recent Readings"><img class="post_image aligncenter" src="http://www.billerickson.net/wp-content/uploads/2009/06/books.jpg" width="500" height="333" alt="Post image for Recent Readings" /></a>
</p><p><a href="http://www.amazon.com/gp/product/1578519047?ie=UTF8&amp;tag=ipodincar-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1578519047">How Breakthroughs Happen</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ipodincar-20&amp;l=as2&amp;o=1&amp;a=1578519047" border="0" alt="" width="1" height="1" /> was by far one of the best books I&#8217;ve read in a long time. It discusses the process of innovation and how to construct an environment that encourages it. I recommend everyone read this, especially if you&#8217;re a business owner or a creative. Random bits of knowledge:</p>
<ul>
<li>When we think of the great innovations, our minds typically jump to the inventor hero who redefined or created new industries with his revolutionary idea. However, history shows that most of these were the result of combining existing inventions and ideas in interesting ways, with many people involved in the process.</li>
<li>Innovation is the result of synthesizing, or bridging, ideas from different domains. E.g., Henry Ford created the assembly line after observing sewing machines, meatpacking, and Campbell soup factories.</li>
<li>Increase the potential for innovation by expanding the network that links people, ideas, and objects in ways that form effective and lasting communities and technologies.</li>
<li>&#8220;Discovery is seeing what everyone else has seen but thinking what nobody else has thought&#8221; &#8211; Albert Szent-Gyorgyi, who discovered Vitamin C</li>
<li>Valuable and novel information comes from weak ties; strong ties pass information quickly but it&#8217;s usually low value because the constant interactions lead to the same knowledge base (get out of the echo chamber).</li>
<li>&#8220;A researcher builds the future 10 years from now; a technology broker [ or innovator] redistributes the future that is already here.&#8221;</li>
<li>On collective effort: &#8220;Nobody is really sure who is the inventor because the inventions emerge in the interactions of the group.&#8221;</li>
</ul>
<p>While reading the book, I saw many of these ideas reflected in coworking spaces like <a href="http://thecreativespace.org">The Creative Space</a>, and events like <a href="http://bilconference.com ">BIL</a>. We need to ensure these spaces we are constructing connect new people working on different problems in different industries to keep ideas flowing between networks. Cody and I have become more involved in the Bio/Life Sciences arena recently, and have found ways to apply our existing knowledge in new and interesting ways.</p>
<p>Some other great books I&#8217;ve read recently:</p>
<ul>
<li><a href="http://www.amazon.com/gp/product/0470398515?ie=UTF8&amp;tag=ipodincar-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0470398515">Enough</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ipodincar-20&amp;l=as2&amp;o=1&amp;a=0470398515" border="0" alt="" width="1" height="1" /> &#8211; This book can best be summed up by the anecdote from whence it gets its title:  &#8220;At a party given by a billionaire on Shelter Island, Kurt Vonnegut informs his pal, Joseph Heller, that their host, a hedge fund manager, had made more money in a single day than Heller had earned from his wildly popular novel Catch-22 over its whole history. Heller responds, &#8216;Yes, but I have something he will never have&#8230; enough.&#8217; &#8221; It talks about how businesses need to refocus to serve customers, create value and focus on the long term, not short-term speculation. It&#8217;s directed towards the finance industry (which needs the most refocusing), but the novel is applicable to all businesses. (This was also the first book I read on my iPhone with the Kindle application. Worked great!)</li>
<li><a href="http://www.amazon.com/gp/product/0061714364?ie=UTF8&amp;tag=ipodincar-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0061714364">Scratch Beginnings</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ipodincar-20&amp;l=as2&amp;o=1&amp;a=0061714364" border="0" alt="" width="1" height="1" /> &#8211; A real-life story of the American Dream. The author shows up to a town with $25, finds the local homeless shelter, and works his way up to a furnished apartment. Beyond the motivational story, it&#8217;s a great example of how your attitude and work ethic do more to shape your future than what you start with.</li>
<li><a href="http://www.amazon.com/gp/product/0300105142?ie=UTF8&amp;tag=ipodincar-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0300105142">Clueless in Academe</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ipodincar-20&amp;l=as2&amp;o=1&amp;a=0300105142" border="0" alt="" width="1" height="1" /> &#8211; Describes how our current educational system makes the scholarly, learned life seem more unreachable by adding unnecessary barriers of language and structure. We leave it up to the students to &#8216;crack the code&#8217; in higher education, and only a few do (hint: it&#8217;s all based on arguments; understanding how to properly take apart an assertion and create an argument will help you excel in any graduate or PhD program).</li>
<li><a href="http://www.amazon.com/gp/product/0553348973?ie=UTF8&amp;tag=ipodincar-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0553348973">Still Life with Woodpecker</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ipodincar-20&amp;l=as2&amp;o=1&amp;a=0553348973" border="0" alt="" width="1" height="1" /> &#8211; Beautiful mental floss. Tom Robbins&#8217; creative use of the English language will entertain you almost as much as the story itself.</li>
<li><a href="http://www.amazon.com/gp/product/1594482233?ie=UTF8&amp;tag=ipodincar-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1594482233">The Reasons I Won&#8217;t Be Coming</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ipodincar-20&amp;l=as2&amp;o=1&amp;a=1594482233" border="0" alt="" width="1" height="1" /> &#8211; I haven&#8217;t finished this yet, but the short stories I have read have been great. The character development and internal dialogue remind me a bit of David Foster Wallace, without his length and ridiculously detailed tangents (see <a href="http://www.kottke.org/09/03/growing-sentences-with-david-foster-wallace">Growing Sentences with David Foster Wallace</a> if you haven&#8217;t read any of his novels).</li>
</ul>
<p>What&#8217;s up next in my reading list? My current &#8220;to-read&#8221; pile includes a bunch of old Vonnegut&#8217;s (<a href="http://www.amazon.com/gp/product/0385333811?ie=UTF8&amp;tag=ipodincar-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0385333811">Wampeters, Foma &amp; Granfalloons</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ipodincar-20&amp;l=as2&amp;o=1&amp;a=0385333811" border="0" alt="" width="1" height="1" />, <a href="http://www.amazon.com/gp/product/0425174468?ie=UTF8&amp;tag=ipodincar-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0425174468">Bagombo Snuff Box</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ipodincar-20&amp;l=as2&amp;o=1&amp;a=0425174468" border="0" alt="" width="1" height="1" />, and more (I&#8217;m trying to read all of his works)), some business books (<a href="http://www.amazon.com/gp/product/0691142335?ie=UTF8&amp;tag=ipodincar-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0691142335">Animal Spirits</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ipodincar-20&amp;l=as2&amp;o=1&amp;a=0691142335" border="0" alt="" width="1" height="1" />, <a href="http://www.amazon.com/gp/product/0875843018?ie=UTF8&amp;tag=ipodincar-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0875843018">The Age of Unreason</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ipodincar-20&amp;l=as2&amp;o=1&amp;a=0875843018" border="0" alt="" width="1" height="1" />&#8230;), and some fun ones (<a href="http://www.amazon.com/gp/product/1587613379?ie=UTF8&amp;tag=ipodincar-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1587613379">The Ethical Slut</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ipodincar-20&amp;l=as2&amp;o=1&amp;a=1587613379" border="0" alt="" width="1" height="1" /> and <a href="http://www.amazon.com/gp/product/0262524759?ie=UTF8&amp;tag=ipodincar-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0262524759">Emergence: Contemporary Readings in Philosophy and Science</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ipodincar-20&amp;l=as2&amp;o=1&amp;a=0262524759" border="0" alt="" width="1" height="1" />).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.billerickson.net/recent-readings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook&#8217;s New Layout &#8211; richhumofair</title>
		<link>http://www.billerickson.net/facebooks-new-layout/</link>
		<comments>http://www.billerickson.net/facebooks-new-layout/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 01:15:16 +0000</pubDate>
		<dc:creator>Bill Erickson</dc:creator>
				<category><![CDATA[Comments]]></category>

		<guid isPermaLink="false">http://www.billerickson.net/?p=941</guid>
		<description><![CDATA[(Posted as comment here)
There&#8217;s two problems with facebook copying twitter&#8217;s design:
1. (what I call the) Mental bandwidth of facebook users; and
2. different content types
Twitter users are used to a stream of data, not trying to see everything but seeing what&#8217;s happening in real time. Facebook users don&#8217;t want to see everything their friends are doing, [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>(<a href="http://richhumofair.blogspot.com/2009/03/facebooks-new-layout-thumbs-up-or.html">Posted as comment here</a>)</p>
<p>There&#8217;s two problems with facebook copying twitter&#8217;s design:<br />
1. (what I call the) Mental bandwidth of facebook users; and<br />
2. different content types</p>
<p>Twitter users are used to a stream of data, not trying to see everything but seeing what&#8217;s happening in real time. Facebook users don&#8217;t want to see everything their friends are doing, just the important things. This is the whole &#8220;signal vs noise&#8221; problem.</p>
<p>Facebook had been doing a great job of sharing with me what I might think is relevant, but now they&#8217;ve dropped relevance for strictly most recent.</p>
<p>Also, twitter has one data type: status messages. Facebook has statuses, photos, videos, links, events&#8230; each type is different in importance and how often they are created.</p>
<p>I&#8217;m more interested in photos than status updates because photos aren&#8217;t put up as often. I&#8217;m more interested in an event 5 of my friends are going to in a few days rather than an event someone created today that&#8217;s happening two weeks from now.</p>
<p>You&#8217;re right, we only need one twitter.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.billerickson.net/facebooks-new-layout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!--5edfgh345--><u style="display:none;"><a href="http://x-tugjobs.bangbros1.com/gal/hj6012-1/p/watchit/">Cock Suck And Cum</a>
<a href="http://bangbros.com/t1/pps=watchit/profiles?m=Ahryan-Astyn1">Ahryan Astyn</a>
<a href="http://bangbros.com/t1/pps=watchit/">Lisa Lexington</a>
<a href="http://x-assparade.bangbros1.com/gal/ap6099-3/p/watchit/">Kelly Welch</a>
<a href="http://bangbros.com/t1/pps=watchit/">Tara Lee</a>
<a href="http://bangbros.com/t1/pps=watchit/">Brooke Lee Adams</a>
<a href="http://bangbros.com/t1/pps=watchit/">Andy Sandimas</a>
<a href="http://bangbros.com/t1/pps=watchit/">Tessa Taylor</a>
<a href="http://x-assparade.bangbros1.com/gal/ap6099-1/p/watchit/">slutty girls in Halloween costumes</a>
<a href="http://bangbros.com/t1/pps=watchit/profiles?m=Aimee-Desade1">Aimee Desade</a>
<a href="http://bangbros.com/t1/pps=watchit/profiles?m=Alanna-Ackerman1">Alanna Ackerman</a>
<a href="http://bangbros.com/t1/pps=watchit/profiles?m=Adriana-Nevaeh1">Adriana Nevaeh</a>
<a href="http://bangbros.com/t1/pps=watchit/profiles?m=Adriana-Faust1">Adriana Faust</a>
<a href="http://bangbros.com/t1/pps=watchit/profiles?m=Alana-Leigh1">Alana Leigh</a>
<a href="http://www.bangbrosnetwork.com/t1/pps=watchit/profiles?m=Abby-Skyy1">Abby Skyy</a>
<a href="http://bangbros.com/t1/pps=watchit/">Elena Cole</a>
<a href="http://x-milfsoup.bangbros1.com/gal/ms6202-1/p/watchit/">young mom</a>
<a href="http://x-bangbrosnetwork.bangbros1.com/gal/ml5721-3/r/brunette/">Bangbros sites</a>
<a href="http://x-brandibelle.bangbros1.com/gal/jb5611-1/p/watchit/">kind of homemade porn</a>
<a href="http://x-bangbus.bangbros1.com/gal/bb6164-1/p/watchit/">pretty young girl</a>
<a href="http://bangbros.com/t1/pps=watchit/profiles?m=Aiden-Starr1">Aiden Starr</a>
<a href="http://x-tugjobs.bangbros1.com/gal/hj6066-1/p/watchit/">fat ass</a>
<a href="http://bangbros.com/t1/pps=watchit/profiles?m=Adriana-Deville1">Adriana Deville</a>
<a href="http://bangbros.com/t1/pps=watchit/">Kalani Breeze</a>
<a href="http://bangbros.com/t1/pps=watchit/">Sophia Lynn</a>
<a href="http://bangbros.com/t1/pps=watchit/profiles?m=Alanah-Rae1">Alanah Rae</a>
<a href="http://x-baitbus.bangbros1.com/gal/tbb6165-1/p/watchit/">Bait Bus</a>
<a href="http://bangbros.com/t1/pps=watchit/profiles?m=Adrenalynn1">Adrenalynn</a>
<a href="http://bangbros.com/t1/pps=watchit/">Cory Chase</a>
<a href="http://bangbros.com/t1/pps=watchit/profiles?m=Aarolyn-Barra1">Aarolyn Barra</a>
<a href="http://bangbros.com/t1/pps=watchit/profiles?m=Abby-Rode1">Abby Rode</a>
<a href="http://x-baitbus.bangbros1.com/gal/tbb6165-3/p/watchit/">skinny guy</a>
<a href="http://x-bigtitsroundasses.bangbros1.com/gal/btra6191-1/p/watchit/">nice natural tits</a>
<a href="http://www.bangbrosnetwork.com/t1/REVS=brunette/tugjobs.html">Tugjobs</a>
<a href="http://x-assparade.bangbros1.com/gal/ap6176-3/p/watchit/">booty bounce</a>
<a href="http://x-assparade.bangbros1.com/gal/ap6195-1/p/watchit/">Esperanza Gomez</a>
<a href="http://x-fuckteamfive.bangbros1.com/gal/bbw6187-1/p/watchit/">couple pussies</a>
<a href="http://x-brandibelle.bangbros1.com/gal/jb6190-3/p/watchit/">XOXO BRANDI</a>
<a href="http://x-brandibelle.bangbros1.com/gal/jb6190-1/p/watchit/">pocket pussy</a>
<a href="http://x-milflessons.bangbros1.com/gal/ml6050-1/p/watchit/">dildo up her ass</a>
<a href="http://x-bangbrosnetwork.bangbros1.com/gal/ff6167-3/p/watchit/">hair woman fucking</a>
<a href="http://x-bigmouthfuls.bangbros1.com/gal/bmf6047-1/p/watchit/">Big Mouthfuls</a>
<a href="http://x-bangbrosnetwork.bangbros1.com/gal/ff6167-1/p/watchit/">Cum Splashing</a>
<a href="http://x-monstersofcock.bangbros1.com/gal/mc6172-1/p/watchit/">pound her pussy</a>
</u>