<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Brilliant Corners</title>
	
	<link>http://brilliantcorners.org</link>
	<description>The weblog, writing, whatever of Bill Turner</description>
	<lastBuildDate>Tue, 22 Sep 2009 11:40:46 PDT</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/brilliantcorners" type="application/rss+xml" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/brilliantcorners" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Fbrilliantcorners" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>(Untitled) [Flickr]</title><link>http://www.flickr.com/photos/billturner/3945516228/</link><category>mushrooms</category><category>yum</category><category>henofthewoods</category><category>maitake</category><category>foraging</category><category>sheephead</category><dc:creator>billturner</dc:creator><pubDate>Tue, 22 Sep 2009 11:40:46 PDT</pubDate><guid isPermaLink="false">tag:flickr.com,2005:/photo/3945516228</guid><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/billturner/"&gt;billturner&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/billturner/3945516228/" title=""&gt;&lt;img src="http://farm3.static.flickr.com/2631/3945516228_45ea1e2b6c_m.jpg" width="240" height="180" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first weekend's spoils! With the tip of my size 13 boot for comparison.&lt;/p&gt;</description><enclosure url="http://farm3.static.flickr.com/2631/3945516228_45ea1e2b6c_m.jpg" length="0" type="image/jpeg" /><dc:date.Taken>2009-09-20T15:42:01-08:00</dc:date.Taken></item><item>
		<title>Back to WordPress</title>
		<link>http://brilliantcorners.org/2009/04/back-to-wordpress</link>
		<comments>http://brilliantcorners.org/2009/04/back-to-wordpress#comments</comments>
		<pubDate>Tue, 21 Apr 2009 13:40:42 +0000</pubDate>
		<dc:creator>billturner</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[merb]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://brilliantcorners.org/?p=194</guid>
		<description><![CDATA[Although Ben Johnson is talking about the Ruby on Rails weblog app Mephisto (tip #6), almost all the same arguments can be applied to the app I wrote in Merb that was running this weblog up until a week or so ago:


  I can not tell you how much of a pain in the [...]]]></description>
			<content:encoded><![CDATA[<p>Although <a href="http://www.binarylogic.com/2009/04/19/ruby-tips-from-me-your-idol/" title="Ben Johnson's weblog post with many good Ruby/Rails tips">Ben Johnson is talking about the Ruby on Rails weblog app Mephisto</a> (tip #6), almost all the same arguments can be applied to the app I wrote in <a href="http://merbivore.com/" title="The Merb homepage">Merb</a> that was running this weblog up until a week or so ago:</p>

<blockquote>
  <p>I can not tell you how much of a pain in the ass [it is]. If you want to customize [it], feature wise, you are SOL. Don’t bother modifying the source because you will not know what the hell is going on.</p>
</blockquote>

<p>Yep. I was eating my own nasty dog food. </p>

<p>Okay, so my code may not be all <em>that</em> bad, but it did take a lot more work to adjust the layout, or to add even the simplest of features. One super-nice thing about <a href="http://wordpress.org/" title="The WordPress homepage">WordPress</a> is the number of plugins and source code that can be found online to easily adjust the app to do what you need. And, if you can&#8217;t find exactly what you&#8217;re looking for, it&#8217;s fairly simple to extend WordPress by <a href="http://brilliantcorners.org/2009/04/use-tags-as-meta-keywords-wordpress-plugin" title="My own post on writing a simple WordPress plugin">writing your own plugin to do what you need</a>.</p>

<p>So, that&#8217;s why I&#8217;m back to using WordPress to run this weblog. I need to update the <a href="http://brilliantcorners.org/about" title="The about page for this site">about page</a> and run down the crazy-long list of applications that have run this weblog over the years.</p>
]]></content:encoded>
			<wfw:commentRss>http://brilliantcorners.org/2009/04/back-to-wordpress/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sketching again</title>
		<link>http://brilliantcorners.org/2009/04/sketching-again</link>
		<comments>http://brilliantcorners.org/2009/04/sketching-again#comments</comments>
		<pubDate>Sat, 18 Apr 2009 03:22:45 +0000</pubDate>
		<dc:creator>billturner</dc:creator>
				<category><![CDATA[Sketch Posts]]></category>
		<category><![CDATA[inspiration]]></category>
		<category><![CDATA[sketch]]></category>
		<category><![CDATA[sketching]]></category>

		<guid isPermaLink="false">http://brilliantcorners.org/?p=184</guid>
		<description><![CDATA[

I&#8217;m finally breaking out the pencils and pens and trying my hand at sketching again. I&#8217;ve been at this position many times before, but then I&#8217;ll lose interest, or worry about putting down something crappy in the sketchbook. But from following the Urban Sketchers weblog for the last couple of months, I&#8217;ve been wanting to [...]]]></description>
			<content:encoded><![CDATA[<div class="image-center"><a href="http://www.flickr.com/photos/billturner/3399340165/" title="Looking out the window at Amani Coffee House by billturner, on Flickr"><img src="http://farm4.static.flickr.com/3448/3399340165_3367585b1c.jpg" width="500" height="314" alt="Looking out the window at Amani Coffee House" /></a></div>

<p>I&#8217;m finally breaking out the pencils and pens and trying my hand at sketching again. I&#8217;ve been at this position many times before, but then I&#8217;ll lose interest, or worry about putting down something crappy in the sketchbook. But from following the <a href="http://www.urbansketchers.com/" title="The Urban Sketchers weblog">Urban Sketchers weblog</a> for the last couple of months, I&#8217;ve been wanting to get out and draw, no matter the outcome. If I can someday get half as good as the artists posting there, I&#8217;ll be happy.</p>

<p>I&#8217;d like to challenge myself to draw something for a month straight, maybe for May. But I&#8217;m afraid that trying to get too serious too fast, is just setting the project up for failure. I think I will start posting some here on the weblog, and <a href="http://www.flickr.com/photos/billturner/sets/72157616051015265/detail" title="My Sketches 2009 Flickr set">this Flickr set</a>. Hopefully this will help a little with the motivation.</p>
]]></content:encoded>
			<wfw:commentRss>http://brilliantcorners.org/2009/04/sketching-again/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Use tags as meta keywords WordPress plugin</title>
		<link>http://brilliantcorners.org/2009/04/use-tags-as-meta-keywords-wordpress-plugin</link>
		<comments>http://brilliantcorners.org/2009/04/use-tags-as-meta-keywords-wordpress-plugin#comments</comments>
		<pubDate>Fri, 17 Apr 2009 15:06:01 +0000</pubDate>
		<dc:creator>billturner</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://brilliantcorners.org/?p=162</guid>
		<description><![CDATA[In the spirit of &#8220;as simple as it could be and still work&#8221; comes a WordPress plugin I wrote called &#8220;Simple Meta Keywords&#8221; that will take all tags specified on a post and use them to populate the meta &#8220;keywords&#8221; tag to help (a little, maybe) with search engine visibility. 

For example, I&#8217;m using the [...]]]></description>
			<content:encoded><![CDATA[<p>In the spirit of &#8220;as simple as it could be and still work&#8221; comes a WordPress plugin I wrote called &#8220;Simple Meta Keywords&#8221; that will take all tags specified on a post and use them to populate the meta &#8220;keywords&#8221; tag to help (a little, maybe) with search engine visibility. </p>

<p>For example, I&#8217;m using the plugin on this site, and it has added the following HTML tag to the <code>&lt;head&gt;&lt;/head&gt;</code> section:</p>

<pre><code> &lt;meta name="keywords" content="weblog, brilliant, corners, pittsburgh, dallas, italy, merb, ruby on rails, ruby, rails, music, programming, web development, jquery, javascript, code, plugin, wordpress" /&gt;
</code></pre>

<p>At the end of the content there, you&#8217;ll see &#8220;code, plugin, wordpress&#8221; which are the tags on this post. The rest of those keywords are the defaults and are also specified in the plugin code (see instructions below).</p>

<p><strong>Instructions:</strong></p>

<ol>
<li>Visit <a href="http://github.com/billturner/wp-simple-meta-keywords" title="The Github project page for the Simple Meta Keywords WordPress plugin">the Github project page</a> and click the &#8220;Download&#8221; button (to the right of the project/plugin name). You&#8217;ll be given a choice of .zip or .tar files to download.</li>
<li>Unzip the archive that you downloaded to your computer.</li>
<li>Edit the PHP file (simple-meta-keywords.php) and change the $default_keywords variable contents (if you feel the need to).</li>
<li>Upload that .php file into your WordPress installation&#8217;s wp-content/plugins/ directory.</li>
<li>Activate the plugin the from the plugins page in WordPress admin.</li>
<li>That&#8217;s it!</li>
</ol>

<p><strong>Some caveats:</strong></p>

<ul>
<li>It will only work on single post archive pages. On the index, pages, tag archives, etc. it will display the tags specified by the $default_keywords variable.</li>
<li>It only uses the &#8220;tags&#8221; that are specified for a post, and not any &#8220;categories.&#8221;</li>
<li>If your activated theme or some other active plugin includes or does something with the meta keywords tag in your header, I&#8217;m not sure what will happen if you use this plugin as well.</li>
</ul>

<p><strong>Why?</strong></p>

<p>After some searching through the <a href="http://wordpress.org/extend/plugins/" title="The WordPress plugin directory">WordPress plugin directory</a> I couldn&#8217;t find a plugin that did exactly what I wanted. Some plugins did too many things, and some were needlessly complex. So I wrote my own. With all that said, I hope the plugin helps someone!</p>
]]></content:encoded>
			<wfw:commentRss>http://brilliantcorners.org/2009/04/use-tags-as-meta-keywords-wordpress-plugin/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What was old is revived, updated, refreshed, and new again</title>
		<link>http://brilliantcorners.org/2009/04/what-was-old</link>
		<comments>http://brilliantcorners.org/2009/04/what-was-old#comments</comments>
		<pubDate>Wed, 15 Apr 2009 23:25:54 +0000</pubDate>
		<dc:creator>billturner</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[house]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[magazines]]></category>

		<guid isPermaLink="false">http://brilliantcorners.org/?p=151</guid>
		<description><![CDATA[Since we&#8217;ve been over our heads in a house remodel the last couple of months, the stack of home, kitchen, and bathroom design magazines gets taller and taller. One of them features 18 older homes (all built before 1930) that have undergone some kind of update. The houses and their new leases on life are [...]]]></description>
			<content:encoded><![CDATA[<p>Since we&#8217;ve been over our heads in a house remodel the last couple of months, the stack of home, kitchen, and bathroom design magazines gets taller and taller. One of them features 18 older homes (all built before 1930) that have undergone some kind of update. The houses and their new leases on life are nice and all, but what I was wondering if they would ever run out of adjectives to specify an updated old home. Here are just a few of the titles from the 18 home makeovers:</p>

<ul>
<li>Rustic <strong>Revival</strong></li>
<li>Southern <strong>Renewal</strong></li>
<li><strong>Preserved</strong> in Stone</li>
<li><strong>Salvaged</strong> Charm</li>
<li>Elegance <strong>Renewed</strong></li>
<li><strong>Return</strong> to Glory</li>
<li><strong>Second Life</strong></li>
<li>Farm <strong>Fresh</strong></li>
</ul>

<p>These are just the most striking alternatives to &#8220;updated&#8221; or &#8220;saved&#8221; that the editors used in titling the features. I can imagine that it&#8217;s difficult to think of so many different ways to say the same thing, but I&#8217;m sure they could have been a little more creative.</p>
]]></content:encoded>
			<wfw:commentRss>http://brilliantcorners.org/2009/04/what-was-old/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting has_many :through working with Datamapper</title>
		<link>http://brilliantcorners.org/2009/01/getting-has-many-through-working-with-datamapper</link>
		<comments>http://brilliantcorners.org/2009/01/getting-has-many-through-working-with-datamapper#comments</comments>
		<pubDate>Sat, 24 Jan 2009 07:07:29 +0000</pubDate>
		<dc:creator>billturner</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[datamapper]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[merb]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">146@http://brilliantcorners.org/</guid>
		<description><![CDATA[Datamapper is a great little ORM (object-relational mapping), but it&#8217;s still a little rough around the edges (as of this post, anyway). This homebrew weblog application was initially using ActiveRecord with Merb, but with release of the 1.0.x branch of Merb, I thought I&#8217;d give Datamapper another try. So far, I&#8217;m both happy and not [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://datamapper.org/" title="The Datamapper homepage/wiki.">Datamapper</a> is a great little ORM (<a href="http://en.wikipedia.org/wiki/Object-relational_mapping" title="The Wikipedia article on object-relational mapping">object-relational mapping</a>), but it&#8217;s still a little rough around the edges (as of this post, anyway). This homebrew weblog application was initially using <a href="http://ar.rubyonrails.com/" title="A webpage detailing the ActiveRecord API that isn't Rails-specific.">ActiveRecord</a> with <a href="http://merbivore.com/" title="The Merb framework homepage.">Merb</a>, but with release of the 1.0.x branch of Merb, I thought I&#8217;d give Datamapper another try. So far, I&#8217;m both happy <em>and</em> not happy about the decision. I&#8217;m happy because of things like the way <a href="http://datamapper.org/doku.php?id=docs:finders" title="The finder methods page on the Datamapper wiki.">the finder methods work</a> and how the migrations are created via the models. But then I&#8217;m unhappy with how unfinished it seems, and this makes me curious why the Merb team sets it up as the default ORM when creating a new project.</p>

<p>Anyway, I was trying to figure out the best way to implement tagging posts for this weblog and my (in need of an update) <a href="http://bluemonkcreative.com/" title="I'm a web application developer, based in Pittsburgh, PA.">professional site</a>. The <a href="http://datamapper.org/doku.php?id=docs:associations#adding_to_associations" title="The Datamapper documentation section on adding to associations">Datamapper docs</a> say you should be able to do it in this way:</p>

<pre><code>@post = Post.get(1)

# append it to the existing tags with some pseudocode
tags.each do |tag|
  @post.tags &lt;&lt; tag
end

# and save
@post.save
</code></pre>

<p>But, if you try something like that, you&#8217;ll get an &#8220;Immutable Association Error&#8221; or something about a &#8220;frozen array.&#8221; The associated tags won&#8217;t save like you want them to. <a href="http://datamapper.lighthouseapp.com/projects/20609/tickets/485-has-n-through-does-not-allow-saving-of-model" title="The bug in question at the Datamapper bug tracker.">The problem is described in this ticket</a> at the Datamapper bug tracker.</p>

<p>So, instead of trying to save the tags through the association, I just create the join/association record itself. Here is what&#8217;s in my <code>post.rb</code> model (well, the important bits anyway):</p>

<pre><code>class Post
  include DataMapper::Resource

  # set up taglist for editing
  # * Not a column in 'posts' table
  # * Shown on edit form as a text_field for free entering of tags
  attr_accessor :taglist

  # relationships
  has n, :taggings
  has n, :posts, :through =&gt; :taggings

  # callbacks
  after :create, :assign_tags
  after :update, :update_tags

  private

    # Set up initial tags on creation
    def assign_tags
      self.taglist.split(',').collect {|t| t.strip}.uniq.each do |tag|
        thistag = Tag.first_or_create(:name =&gt; tag.downcase)
        Tagging.create(:post_id =&gt; self.id, :tag_id =&gt; thistag.id)
      end
    end

    # Wipe out and then add the tags again
    def update_tags
      self.taggings.each { |tagging| tagging.destroy }
      self.taggings.reload
      assign_tags
    end

end
</code></pre>

<p>As long as I have a taglist field defined in the admin form it will save/update the tags (create the association) when I add/edit a weblog post. Here&#8217;s how I have that field in the view:</p>

<pre><code>&lt;%= text_field :taglist, :size =&gt; 50, :value =&gt; @post.tags.map{ |tag| tag.name }.join(", ") %&gt;
</code></pre>

<p>Now, this may not be the most elegant way to make tagging work, but it works for me, and hopefully this may come in handy for anyone else trying to get this kind of a <code>has_many :through</code> relationship working and keeps getting stopped by the errors.</p>
]]></content:encoded>
			<wfw:commentRss>http://brilliantcorners.org/2009/01/getting-has-many-through-working-with-datamapper/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tumbling</title>
		<link>http://brilliantcorners.org/2008/11/tumbling</link>
		<comments>http://brilliantcorners.org/2008/11/tumbling#comments</comments>
		<pubDate>Fri, 14 Nov 2008 01:51:53 +0000</pubDate>
		<dc:creator>billturner</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[inspiration]]></category>
		<category><![CDATA[tumblr]]></category>

		<guid isPermaLink="false">145@http://brilliantcorners.org/</guid>
		<description><![CDATA[I think I&#8217;m going to abandon trying to keep the art inspiration posts here on this weblog. It&#8217;s sometimes more time-consuming than I wanted it to be. So, I&#8217;m moving the inspiration posts to Tumblr. Now, you can get your wonderful and inspiring art at http://billturner.tumblr.com/.

I think I&#8217;ll eventually roll those posts into the RSS [...]]]></description>
			<content:encoded><![CDATA[<p>I think I&#8217;m going to abandon trying to keep the <a href="http://brilliantcorners.org/tags/inspiration" title="Most of the art inspiration posts">art inspiration posts</a> here on this weblog. It&#8217;s sometimes more time-consuming than I wanted it to be. So, I&#8217;m moving the inspiration posts to <a href="http://tumblr.com/" title="The Tumblr home page">Tumblr</a>. Now, you can get your wonderful and inspiring art at <a href="http://billturner.tumblr.com/" title="My own Tumblr blog">http://billturner.tumblr.com/</a>.</p>

<p>I think I&#8217;ll eventually roll those posts into the RSS feed here, but until then those art posts will live there, and there alone. Also, I&#8217;m really digging the Tumblr interface, so I&#8217;ll probably have something more to say on that at a later date.</p>
]]></content:encoded>
			<wfw:commentRss>http://brilliantcorners.org/2008/11/tumbling/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>THE PROJECT: Language? Framework?</title>
		<link>http://brilliantcorners.org/2008/10/the-project-language-framework</link>
		<comments>http://brilliantcorners.org/2008/10/the-project-language-framework#comments</comments>
		<pubDate>Sat, 01 Nov 2008 03:58:12 +0000</pubDate>
		<dc:creator>billturner</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[merb]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[theproject]]></category>

		<guid isPermaLink="false">144@http://brilliantcorners.org/</guid>
		<description><![CDATA[One of the first things I need to determine about THE PROJECT is what I&#8217;ll build the application with. I&#8217;m positive I&#8217;ll take advantage of one of the frameworks (like Ruby on Rails or CakePHP) to build the application, but I need to nail down which language I&#8217;ll use. There are many many choices out [...]]]></description>
			<content:encoded><![CDATA[<p>One of the first things I need to determine about <a href="http://brilliantcorners.org/nodes/141-introducing-the-project" title="My introduction to THE PROJECT">THE PROJECT</a> is what I&#8217;ll build the application with. I&#8217;m positive I&#8217;ll take advantage of one of the frameworks (like Ruby on Rails or CakePHP) to build the application, but I need to nail down which language I&#8217;ll use. There are many many choices out there on what language to use, but for me there are only two I&#8217;ll choose from: PHP or Ruby. But, which one? I&#8217;ve done quite a bit of work with both, although less with PHP. Let&#8217;s see the options:</p>

<p><strong>Ruby</strong></p>

<p>For the last three years, most of the work I&#8217;ve done has been with Ruby, either with <a href="http://www.rubyonrails.com/" title="The Ruby on Rails Framework home page">Rails</a> or, more recently, <a href="http://www.merbivore.com/" title="The Merb framework home page">Merb</a>. I grow more comfortable with Ruby every day and I still have fun learning new tricks. This had been pretty much restricted to Rails up until I gave Merb a try a few months ago. I rewrote this weblog with Merb and I had a good time teaching myself something new. Yes, there are many, many similarities between Rails and Merb, but I think there are some things that Merb does better (and easier). Rails, on the other hand, is a little more robust and has a larger community behind it. It <em>could</em> be easier to do what I want to (in the scope of this project) with Rails, as opposed to Merb.</p>

<p><strong>PHP</strong></p>

<p>In the last year, I&#8217;ve built a few web apps using the <a href="http://www.cakephp.org/" title="The CakePHP framework home page">CakePHP</a> framework, and I found it quite a nice change of pace to work with. Since I had a strong Rails background, CakePHP was easy to pick up since they certainly had Rails in mind when putting the framework together. However, if I went with PHP, I&#8217;m not sure I&#8217;d go with CakePHP. I&#8217;ve heard many good things about another framework, <a href="http://codeigniter.com/" title="The CodeIgniter framework home page">CodeIgniter</a>, and I&#8217;m eager to try it. There&#8217;s nothing that particular bugged me about CakePHP, but CodeIgniter has a reputation as being a little faster, but it may not have a community as big as CakePHP&#8217;s backing it up, or as many places to look for code examples.</p>

<p><strong>The Decision</strong></p>

<p>So, what will it be? First of all, I think I can narrow it down to using Ruby instead of PHP. PHP is more widely supported (and easier to deploy, etc., etc.), but I think my day-to-day experience leans me more towards Ruby. I&#8217;m just more comfortable with Ruby than I am with PHP. I do want to use the CodeIgniter framework for something in the future (and I think I <em>may</em> already know what that is), but I just don&#8217;t think it&#8217;s quite right for this project.</p>

<p>That leaves me with the Ruby language, but which of the frameworks? Merb is just about to reach the big 1.0 milestone, but while Merb may be ready, I&#8217;m not sure I&#8217;m ready to build something big on the framework. It&#8217;s still young and with many fairly drastic changes in the API the last few months, there&#8217;s not a whole lot out there in the way of documentation and sample apps and code. In the few years I&#8217;ve been working with Ruby on Rails, the community has exploded with plugins for just about everything, tons of sample code, and a growing reference library (thanks to the Rails-related weblogs and numerous tutorials). I know Rails is up to the task, and that it can handle all that I&#8217;m wanting to do (and more).</p>

<p>In my mind, that settles it: I&#8217;ll use Ruby on Rails.</p>
]]></content:encoded>
			<wfw:commentRss>http://brilliantcorners.org/2008/10/the-project-language-framework/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some ideas are good. Some are bad.</title>
		<link>http://brilliantcorners.org/2008/10/some-ideas-are-good-some-are-bad</link>
		<comments>http://brilliantcorners.org/2008/10/some-ideas-are-good-some-are-bad#comments</comments>
		<pubDate>Thu, 23 Oct 2008 14:03:44 +0000</pubDate>
		<dc:creator>billturner</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[inspiration]]></category>

		<guid isPermaLink="false">143@http://brilliantcorners.org/</guid>
		<description><![CDATA[Jillian Tamaki on idea generation: Plunking yourself down in front of a pad of paper and scraping the inside of your brain is probably not the most effective way of generating ideas.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jilliantamaki.com/sketchbook/2008/10/idea-generation.html" title="Some great tips whether you're talking about art or anything creative.">Jillian Tamaki on idea generation</a>: <em>Plunking yourself down in front of a pad of paper and scraping the inside of your brain is probably not the most effective way of generating ideas.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://brilliantcorners.org/2008/10/some-ideas-are-good-some-are-bad/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Written in David’s Journal</title>
		<link>http://brilliantcorners.org/2008/10/written-in-davids-journal</link>
		<comments>http://brilliantcorners.org/2008/10/written-in-davids-journal#comments</comments>
		<pubDate>Wed, 08 Oct 2008 01:04:40 +0000</pubDate>
		<dc:creator>billturner</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[inspiration]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">142@http://brilliantcorners.org/</guid>
		<description><![CDATA[&#8220;I simply ask people to write in my journal. What they write is up to them.&#8221;
]]></description>
			<content:encoded><![CDATA[<p><em>&#8220;<a href="http://www.writeinmyjournal.com/" title="Some touching and surprising stories told by strangers">I simply ask people to write in my journal</a>. What they write is up to them.&#8221;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://brilliantcorners.org/2008/10/written-in-davids-journal/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing THE PROJECT</title>
		<link>http://brilliantcorners.org/2008/09/introducing-the-project</link>
		<comments>http://brilliantcorners.org/2008/09/introducing-the-project#comments</comments>
		<pubDate>Tue, 30 Sep 2008 21:30:55 +0000</pubDate>
		<dc:creator>billturner</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[theproject]]></category>

		<guid isPermaLink="false">141@http://brilliantcorners.org/</guid>
		<description><![CDATA[I&#8217;ve had the idea for this web application for over a year now, but haven&#8217;t done much with it. Well, I take that back. I started and stopped it about three or four times, but I always stalled on some small detail or became distracted by something else. This time I&#8217;m going to do quite [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had the idea for this web application for over a year now, but haven&#8217;t done much with it. Well, I take that back. I started and stopped it about three or four times, but I always stalled on some small detail or became distracted by something else. This time I&#8217;m going to do quite a bit more planning up front to avoid the traps I fell into in the past. I also thought I&#8217;d post about my progress here on the weblog. Hopefully, this exercise will help me organize my thoughts and ideas.</p>

<p>The last big web application project I built was Lists of Bests (<a href="http://web.archive.org/web/20060209030438/http://listsofbests.com/" title="my version of listsofbests.com saved forever(?) thanks to the Internet Archive">archive of my version</a>, <a href="http://listsofbests.com/" title="listsofbests.com is now managed by the Robot Co-op">current version</a>), but it&#8217;s been two years since I sold the site to <a href="http://blog.robotcoop.com/" title="A fine bunch of coders!">The Robot Co-op</a>. I haven&#8217;t done anything of note since then. Well, I <em>could</em> mention the intranet app I work on for a small Dallas-based company, but no one outside of the company will ever see it, so that one doesn&#8217;t count (even though it is pretty awesome). It&#8217;s now well past time for me to start up something new, and the fact that I have the idea, that&#8217;s all for the better. I will say that the idea behind THE PROJECT isn&#8217;t an entirely new idea, but my plans are to make a good idea even better. We&#8217;ll see if I can deliver on that!</p>

<p>I plan on covering much of the progress of the application while I&#8217;m working through it: technology used; layout decisions; administrivia; and everything else. However, I will keep the actual focus of the web application secret until I get a little further along in the process, although some clues may surface throughout the series of posts. The next couple of posts will cover more general ideas and questions, before I start writing any code at all. Then I&#8217;ll get into the meat of building the full-on web application. So stay tuned!</p>

<p>As a final note, a bit of inspiration for putting this series together goes to <a href="http://garrettdimon.com/" title="I love Garrett's mimimal design">Garrett Dimon</a> and the <a href="http://www.nextupdate.com/blog/">blogging he&#8217;s been doing</a> while building his app <a href="http://sifterapp.com/" title="The Sifter homepage (currently in closed beta)">Sifter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://brilliantcorners.org/2008/09/introducing-the-project/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
