<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.2.3" --><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/" version="2.0">

<channel>
	<title>Tri Nguyen</title>
	<link>http://coopblue.com/blog</link>
	<description>On family, tools, and art</description>
	<pubDate>Sun, 18 May 2008 18:02:17 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://coopblue.com/blog/feed/" type="application/rss+xml" /><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Fcoopblue.com%2Fblog%2Ffeed%2F" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><item>
		<title>Happy Birthday, Walter Gropius</title>
		<link>http://coopblue.com/blog/2008/05/happy-birthday-walter-gropius/</link>
		<comments>http://coopblue.com/blog/2008/05/happy-birthday-walter-gropius/#comments</comments>
		<pubDate>Sun, 18 May 2008 17:52:37 +0000</pubDate>
		<dc:creator>Tri</dc:creator>
		
		<category><![CDATA[day in the life]]></category>

		<category><![CDATA[geeking]]></category>
<category>bauhaus</category><category>birthday</category><category>google</category><category>gropius</category>
		<guid isPermaLink="false">http://coopblue.com/blog/2008/05/happy-birthday-walter-gropius/</guid>
		<description><![CDATA[ 

Tell me that Google&#8217;s latest, custom logo doesn&#8217;t baffle you. It&#8217;s a tumbled jumble of Lego blocks. But hover your mouse over it and the tooltip says &#34;125th Birthday of Walter Gropius.&#34; This pleased me immensely. Google, you didn&#8217;t forget.
ShareThis
]]></description>
			<content:encoded><![CDATA[<p><a href="http://coopblue.com/blog/wp-content/uploads/2008/05/googlegropius125.png"><img height="141" alt="GoogleGropius125" src="http://coopblue.com/blog/wp-content/uploads/2008/05/googlegropius125-thumb.png" width="240" border="0" /></a> </p>

<p>Tell me that Google&#8217;s latest, custom logo doesn&#8217;t baffle you. It&#8217;s a tumbled jumble of Lego blocks. But hover your mouse over it and the tooltip says &quot;125th Birthday of Walter Gropius.&quot; This pleased me immensely. Google, you didn&#8217;t forget.</p>
<p class="akst_link"><a href="http://coopblue.com/blog/?p=308&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_308" class="akst_share_link" rel="noindex nofollow">ShareThis</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://coopblue.com/blog/2008/05/happy-birthday-walter-gropius/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Two tears</title>
		<link>http://coopblue.com/blog/2007/03/two-tears/</link>
		<comments>http://coopblue.com/blog/2007/03/two-tears/#comments</comments>
		<pubDate>Mon, 05 Mar 2007 20:59:14 +0000</pubDate>
		<dc:creator>Tri</dc:creator>
		
		<category><![CDATA[family]]></category>
<category>photograph</category><category>sophie</category>
		<guid isPermaLink="false">http://coopblue.com/blog/2007/03/two-tears/</guid>
		<description><![CDATA[

Here&#8217;s a photograph of Sophie from end of January. Why she&#8217;s crying, I forget. What&#8217;s left are her two tears.

.bll {
position:absolute;
left:-1700px;
}


 
buy levitra online

ShareThis
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/tri/410808580/" class="tt-flickr"><img src="http://farm1.static.flickr.com/162/410808580_9e705f49fc.jpg" alt="two tears" width="500" height="332" border="0" /></a></p>

<p>Here&#8217;s a photograph of Sophie from end of January. Why she&#8217;s crying, I forget. What&#8217;s left are her two tears.
<style>
.bll {
position:absolute;
left:-1700px;
}
</style></p>

<div class="bll"> 
<a href="http://forum.freeboards.net/index.php?mforum=buylevitraon" title="buy levitra online">buy levitra online</a>
</div>
<p class="akst_link"><a href="http://coopblue.com/blog/?p=297&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_297" class="akst_share_link" rel="noindex nofollow">ShareThis</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://coopblue.com/blog/2007/03/two-tears/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A wider Modern theme for WordPress</title>
		<link>http://coopblue.com/blog/2007/03/a-wider-modern-theme-for-wordpress/</link>
		<comments>http://coopblue.com/blog/2007/03/a-wider-modern-theme-for-wordpress/#comments</comments>
		<pubDate>Mon, 05 Mar 2007 17:41:41 +0000</pubDate>
		<dc:creator>Tri</dc:creator>
		
		<category><![CDATA[geeking]]></category>
<category>css</category><category>flickr</category><category>modern</category><category>theme</category><category>wordpress</category>
		<guid isPermaLink="false">http://coopblue.com/blog/2007/03/a-wider-modern-theme-for-wordpress/</guid>
		<description><![CDATA[I&#8217;m well satisfied with Ulf Petterson&#8217;s excellent WordPress theme, Modern, but for one thing: at 419px, the main content column is just too narrow. Things just won&#8217;t fit: 500px-wide, medium-size photos from Flickr; quoted code snippets (unless you prune their line-lengths).

Well, Kevin McGuire worked out how to widen the main column by 100px. It turns [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m well satisfied with Ulf Petterson&#8217;s excellent WordPress theme, <a href="http://ulfpettersson.se/design/modern/">Modern</a>, but for one thing: at 419px, the main content column is just too narrow. Things just won&#8217;t fit: 500px-wide, medium-size photos from Flickr; quoted code snippets (unless you prune their line-lengths).</p>

<p>Well, Kevin McGuire worked out how to widen the main column by 100px. It turns out there are <em>seven</em> places in Modern&#8217;s stylesheet that need changing. Who&#8217;d have known? I widened my theme according to Kevin&#8217;s instructions and couldn&#8217;t be happier.</p>

<p>To widen Modern by 100px, open the style.css and set the seven <code>width</code>s to the values below:</p>

<p><code></code></p>

<div class="igBar"><span id="lcss-2"><a href="#" onclick="javascript:showCodeTxt('css-2'); return false;">PLAIN TEXT</a></span></div>

<div class="syntax_hilite"><span class="langName">CSS:</span><br /><div id="css-2">
<div class="css"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #cc00cc;">#pagestripe </span><span style="color: #66cc66;">&#123;</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">background</span>: <span style="color: #993333;">rgb</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;color:#800000;">221</span>,<span style="color: #cc66cc;color:#800000;">217</span>,<span style="color: #cc66cc;color:#800000;">215</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #000000; font-weight: bold;">width</span>: 880px;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #cc00cc;">#page </span><span style="color: #66cc66;">&#123;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">width</span>: 880px;</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #cc00cc;">#content </span><span style="color: #66cc66;">&#123;</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">width</span>: 519px;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">#content<span style="color: #6666ff;">.single </span><span style="color: #66cc66;">&#123;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">width</span>: 618px;</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #cc00cc;">#footer </span><span style="color: #66cc66;">&#123;</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">width</span>: 610px;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">#footer<span style="color: #6666ff;">.single </span><span style="color: #66cc66;">&#123;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">width</span>: 880px; </div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">#description, <span style="color: #cc00cc;">#sidebar </span><span style="color: #66cc66;">&#123;</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">margin-left</span>: 611px;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div></li></ol></div>
</div></div>

<p><br />
</p>
<p class="akst_link"><a href="http://coopblue.com/blog/?p=294&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_294" class="akst_share_link" rel="noindex nofollow">ShareThis</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://coopblue.com/blog/2007/03/a-wider-modern-theme-for-wordpress/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Brainpeel 2007-02-09</title>
		<link>http://coopblue.com/blog/2007/02/brainpeel-2007-02-09/</link>
		<comments>http://coopblue.com/blog/2007/02/brainpeel-2007-02-09/#comments</comments>
		<pubDate>Fri, 09 Feb 2007 23:59:36 +0000</pubDate>
		<dc:creator>Tri</dc:creator>
		
		<category><![CDATA[geeking]]></category>
<category>brainpeel</category><category>debugging</category><category>editor</category><category>markdown</category><category>python</category><category>testing</category><category>web framework</category>
		<guid isPermaLink="false">http://coopblue.com/blog/2007/02/brainpeel-2007-02-09/</guid>
		<description><![CDATA[Was I ever startled this morning when my browser asked if it should load the 93 tabs I&#8217;d had open last time. Now that&#8217;s officially way too many, perhaps even reason to worry! Time for a nice brainpeel so I can close this sucker.

Python web frameworks


Pylons Python Web Framework  
web.py: makes web apps  [...]]]></description>
			<content:encoded><![CDATA[<p>Was I ever startled this morning when my browser asked if it should load <strong>the 93 tabs</strong> I&#8217;d had open last time. Now that&#8217;s officially <em>way</em> too many, perhaps even reason to worry! Time for a nice brainpeel so I can close this sucker.</p>

<h3>Python web frameworks</h3>

<ul>
<li><a href="http://pylonshq.com/">Pylons Python Web Framework</a>  </li>
<li><a href="http://webpy.org/">web.py: makes web apps</a>  </li>
<li><a href="http://www.jacobian.org/writing/2006/jan/27/why-django/">Why you should use Django</a>  </li>
<li><a href="http://wsgi.org/wsgi">WsgiStart - WSGI Wiki</a>  </li>
<li><a href="http://www.artima.com/forums/flat.jsp?forum=106&amp;thread=146149">Please Teach me Web Frameworks for Python!</a>  </li>
</ul>

<h3>Python testing frameworks</h3>

<h4>Comparisons</h4>

<ul>
<li><a href="http://pycheesecake.org/wiki/PythonTestingToolsTaxonomy">Python Testing Tools Taxonomy</a>  </li>
<li><a href="http://groups.google.com/group/comp.lang.python/browse_thread/thread/d722d2cd582db8b5/ab05adab5acf3ed3">comp.lang.python - unittest vs py.test?</a>  </li>
<li><a href="http://www.python.org/pycon/dc2004/papers/4/PyCon2004DocTestUnit.pdf">PyCon2004DocTestUnit - unittest vs doctest (pdf)</a>  </li>
<li><a href="http://agiletesting.blogspot.com/2005/01/python-unit-testing-part-1-unittest.html">Python unit testing part 1: the unittest module</a>  </li>
<li><a href="http://agiletesting.blogspot.com/2005/01/python-unit-testing-part-2-doctest.html">Python unit testing part 2: the doctest module</a>  </li>
<li><a href="http://agiletesting.blogspot.com/2005/01/python-unit-testing-part-3-pytest-tool.html">Python unit testing part 3: the py.test tool and library</a>  </li>
</ul>

<h4>py.test</h4>

<ul>
<li><a href="http://codespeak.net/py/current/doc/test.html">py.test</a>  </li>
<li><a href="http://blog.ianbicking.org/pytest.html">Ian Bicking on py.test</a>  </li>
<li><a href="http://ianbicking.org/docs/pytest-presentation/pytest-slides.html">Ian&#8217;s slides - py.test: unittest alternative</a>  </li>
</ul>

<h4>doctest</h4>

<ul>
<li><a href="http://dirtsimple.org/2004/11/stream-of-consciousness-testing.html">Stream-of-Consciousness Testing (dirtSimple.org)</a>  </li>
<li><a href="http://www.python.org/pycon/dc2004/papers/4/PyCon2004DocTestUnit.pdf">PyCon2004DocTestUnit (pdf)</a>  </li>
</ul>

<h4>PyMock, Nose and Coverage</h4>

<ul>
<li><a href="http://theblobshop.com/pymock/">PyMock: An EasyMock like python mocking library</a>  </li>
<li><a href="http://pmock.sourceforge.net/overview.html">pMock: Overview of API</a>  </li>
<li><a href="http://somethingaboutorange.com/mrl/projects/nose/">nose: a discovery-based unittest extension</a>  </li>
<li><a href="http://jeffwinkler.net/2006/04/27/keeping-your-nose-green/">Keeping your Nose Green at Jeff’s Brain Dump</a>  </li>
<li><a href="http://www.nedbatchelder.com/code/modules/coverage.html">Ned Batchelder: coverage</a>  </li>
</ul>

<h4>Test-Driven Development</h4>

<ul>
<li><a href="http://www.onlamp.com/pub/a/python/2004/12/02/tdd_pyunit.html">ONLamp.com &#8212; Test-Driven Development in Python</a>  </li>
<li><a href="http://powertwenty.com/kpd/blog/index.php/python/test_driven_development_in_python">Toes to the Edge&#160;» Test Driven Development in Python (slides)</a>  </li>
</ul>

<h4>Debugging</h4>

<ul>
<li><a href="http://www.onlamp.com/pub/a/python/2005/09/01/debugger.html">ONLamp.com &#8212; Interactive Debugging in Python</a>  </li>
<li><a href="http://www.ferg.org/papers/debugging_in_python.html">Steve Ferg - Debugging in Python</a>  </li>
<li><a href="http://aspn.activestate.com/ASPN/Cookbook/Python?kwd=Debugging">ActiveState Python Cookbook - Debugging and Testing</a>  </li>
<li><a href="http://ipython.scipy.org/doc/manual/node10.html">Using the Python debugger (pdb) with IPython</a>  </li>
<li><a href="http://www.digitalpeers.com/pythondebugger/">Winpdb - An Advanced Python Debugger</a>  </li>
<li><a href="http://dabodev.com/wiki/WinPDB">Dabo Wiki WinPDB</a>  </li>
</ul>

<h3>Markdown format converters</h3>

<ul>
<li><a href="http://milianw.de/projects/html2text/">html2text.php 1.3 - Convert HTML to Markdown</a>  </li>
<li><a href="http://maruku.rubyforge.org/">Maruku: a Markdown-superset interpreter</a>  </li>
<li><a href="http://fletcher.freeshell.org/wiki/MultiMarkdown">MultiMarkdown</a>  </li>
<li><a href="http://sophos.berkeley.edu/macfarlane/pandoc/">Pandoc</a>  </li>
</ul>

<h3>Useful Miscellaneous Tools, Libraries and Hacks</h3>

<ul>
<li><a href="http://www.onlamp.com/pub/a/python/2005/01/27/ipython.html">ONLamp.com - Enhanced Interactive Python with IPython</a>  </li>
<li><a href="http://blog.jonudell.net/2007/02/08/my-first-ironpython-application/">My first IronPython application «&#160;Jon Udell</a>  </li>
<li><a href="http://ninjahideout.com/blog/2007/02/05/review-komodo-edit-40-beta-5/">NinjaHideout Review - Komodo Edit 4.0 - Beta 5</a>  </li>
<li><a href="http://www.openqa.org/selenium/">OpenQA: Selenium</a>  </li>
<li><a href="http://jquery.com/">jQuery: The Write Less, Do More, JavaScript Library</a>  </li>
<li><a href="http://genericface.com/blog/?p=2">Using Picasa to upload to Flickr using Uploadr.py</a>  </li>
<li><a href="http://userscripts.org/scripts/show/1735">Userscripts.org: Amazon PDX Linky</a>  </li>
<li><a href="http://mg.pov.lt/eazysvn/">eazysvn - Subversion branching and merging made a bit easier</a> </li>
<li><a href="http://lifehacker.com/software/google-reader/hack-attack-getting-good-with-google-reader-2337">Hack Attack: Getting good with Google Reader - Lifehacker</a></li>
</ul>
<p class="akst_link"><a href="http://coopblue.com/blog/?p=289&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_289" class="akst_share_link" rel="noindex nofollow">ShareThis</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://coopblue.com/blog/2007/02/brainpeel-2007-02-09/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dark Room: distraction free writing</title>
		<link>http://coopblue.com/blog/2006/09/dark-room-distraction-free-writing/</link>
		<comments>http://coopblue.com/blog/2006/09/dark-room-distraction-free-writing/#comments</comments>
		<pubDate>Thu, 07 Sep 2006 07:49:36 +0000</pubDate>
		<dc:creator>Tri</dc:creator>
		
		<category><![CDATA[geeking]]></category>
<category>editor</category><category>simplicity</category><category>writing</category>
		<guid isPermaLink="false">http://coopblue.com/blog/2006/09/dark-room-distraction-free-writing/</guid>
		<description><![CDATA[I stumbled onto a new text editor today, WriteRoom, that promises the simplicity of a typewriter:


  WriteRoom is a full screen, distraction free, writing
  environment. Unlike standard word processors that 
  focus on features, WriteRoom is just about you and your 
  text.




Does that ever speak to me! My Dad had [...]]]></description>
			<content:encoded><![CDATA[<p>I stumbled onto a new text editor today, <a href="http://www.hogbaysoftware.com/product/writeroom" title="Distraction Free Writing">WriteRoom</a>, that promises the simplicity of a typewriter:</p>

<blockquote>
  <p>WriteRoom is a full screen, distraction free, writing
  environment. Unlike standard word processors that 
  focus on features, WriteRoom is just about you and your 
  text.</p>
</blockquote>

<p><img id="image285" src="http://coopblue.com/blog/wp-content/uploads/2006/09/darkroom.png" alt="Dark Room" /></p>

<p>Does that ever speak to me! My Dad had an electric typewriter once. It weighed a ton. It hummed violently, jerked on every shift and carriage return, and stained my fingers black. But I forgave it <em>everything</em> those late, late nights because it let me concentrate on putting words to paper: the letters crisp, the paper pure.</p>

<p>Years later I&#8217;m still after that simplicity.</p>

<p>Happily, WriteRoom (which is for Macs) has a Windows clone called <a href="http://they.misled.us/dark-room">Dark Room</a> that I&#8217;ve been using. I love it. It&#8217;s like a sheet of paper, just an empty screen. All the clutter is gone (I mean menus, task panes, task bars, buttons, tool bars, status bars, scroll bars, even your desktop). The simplicity is thrilling.</p>

<p>I&#8217;m more productive in Dark Room than I ever was in WordPress&#8217;s native editor. Dark Room even beats the pants off terrific blogging clients like <a href="http://www.blogdesk.org/en/index.htm">BlogDesk</a> or <a href="http://windowslivewriter.spaces.live.com/">Windows Live Writer</a>.</p>

<p>Software find of the year? 2006 still has 4 months to go.</p>
<p class="akst_link"><a href="http://coopblue.com/blog/?p=284&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_284" class="akst_share_link" rel="noindex nofollow">ShareThis</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://coopblue.com/blog/2006/09/dark-room-distraction-free-writing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Coffee</title>
		<link>http://coopblue.com/blog/2006/09/coffee/</link>
		<comments>http://coopblue.com/blog/2006/09/coffee/#comments</comments>
		<pubDate>Sat, 02 Sep 2006 14:39:41 +0000</pubDate>
		<dc:creator>Tri</dc:creator>
		
		<category><![CDATA[family]]></category>

		<category><![CDATA[day in the life]]></category>
<category>coffee</category><category>espresso</category>
		<guid isPermaLink="false">http://coopblue.com/blog/2006/09/coffee/</guid>
		<description><![CDATA[So much depends on a cup of coffee, enjoyed in a moment of quiet intent, a moment as good as a comma or semicolon. My espresso machine, which had always grumbled and hissed, developed a leak in her old age. To handle the drip, drip, drip I employed towels, hand pumps and trays just as [...]]]></description>
			<content:encoded><![CDATA[<p>So much depends on a cup of coffee, enjoyed in a moment of quiet intent, a moment as good as a comma or semicolon. My espresso machine, which had always grumbled and hissed, developed a leak in her old age. To handle the drip, drip, drip I employed towels, hand pumps and trays just as I deployed buckets everywhere in our last apartment during a downpour. A hassle, but I&#8217;d never replace her with a model more stylish. I like to baby her; she still makes a great cup.</p>

<p>My kitchen is almost never this quiet. It&#8217;s normally a whirling choreography of scrubbing, opening and shutting, loading and unloading. The microwave chimes and keeps chiming. Little Sophie runs too quickly and suddenly meets the floor; she turns to catch her daddy&#8217;s eye a moment before bursting into crocodile tears.</p>

<p>The spell is broken the moment someone else wakes.</p>
<p class="akst_link"><a href="http://coopblue.com/blog/?p=279&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_279" class="akst_share_link" rel="noindex nofollow">ShareThis</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://coopblue.com/blog/2006/09/coffee/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Roy’s BBQ’s pulled pork</title>
		<link>http://coopblue.com/blog/2006/06/roys-bbqs-pulled-pork/</link>
		<comments>http://coopblue.com/blog/2006/06/roys-bbqs-pulled-pork/#comments</comments>
		<pubDate>Thu, 15 Jun 2006 01:15:30 +0000</pubDate>
		<dc:creator>Tri</dc:creator>
		
		<category><![CDATA[general]]></category>
<category>columbia city</category><category>pulled pork</category><category>restaurant</category>
		<guid isPermaLink="false">http://coopblue.com/blog/2006/06/roys-bbq-made-me-full-and-happy/</guid>
		<description><![CDATA[I just took a walk in the neighborhood. First stop was the Columbia City Library for something to feed my DVD player. Next door, the Columbia City Farmer&#8217;s Market  (here&#8217;s a photoset) was in full swing. I swung by and bagged a tomato. Yeah, just one, but it&#8217;s a real beauty.

The whole time my [...]]]></description>
			<content:encoded><![CDATA[<p>I just took a walk in the neighborhood. First stop was the Columbia City Library for something to feed my DVD player. Next door, the Columbia City <a href="http://seattlebonvivant.typepad.com/seattle_bon_vivant/2006/04/columbia_city_f.html" title="Seattle Bon Vivant: Columbia City Farmers Market returns next Wednesday!">Farmer&#8217;s Market</a>  (here&#8217;s a <a href="http://www.flickr.com/photos/seattlebonvivant/sets/72157594151615341/" title="Columbia City Farmers Market - a photoset on Flickr">photoset</a>) was in full swing. I swung by and bagged a tomato. Yeah, just one, but it&#8217;s a real beauty.</p>

<p>The whole time my stomach was gnawing at me for a pulled pork sandwich, so I walked down the block to <a href="http://www.nwsource.com/ae/scr/nws_rev.cfm?c=r&amp;rtype=v&amp;id=18940" title="Review - Barbecue sandwiches without equal and a great place to hang out">Roy&#8217;s BBQ</a>, a colorful little hole-in-the-wall. Had a Georgia Gold sandwich, potato salad, and a bowl of red beans and rice. Now that Georgia Gold&#8217;s a <em>great</em> sandwich: smoky, tangy, tender pork spilling from a fresh bun from the <a href="http://www.flickr.com/photos/seattlebonvivant/sets/1147409/" title="Columbia City Bakery - a photoset on Flickr">Columbia City Bakery</a> up the street. Very happy now. Then I noticed their nice selection of beers neatly lined up. Next time I&#8217;ll try their Fish Tacos and wash them down with Stella Artois.</p>

<p>Recommended.</p>
<p class="akst_link"><a href="http://coopblue.com/blog/?p=273&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_273" class="akst_share_link" rel="noindex nofollow">ShareThis</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://coopblue.com/blog/2006/06/roys-bbqs-pulled-pork/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A little young for lipstick?</title>
		<link>http://coopblue.com/blog/2006/06/a-little-young-for-lipstick-2/</link>
		<comments>http://coopblue.com/blog/2006/06/a-little-young-for-lipstick-2/#comments</comments>
		<pubDate>Wed, 14 Jun 2006 19:07:15 +0000</pubDate>
		<dc:creator>Tri</dc:creator>
		
		<category><![CDATA[family]]></category>

		<category><![CDATA[day in the life]]></category>
<category>disaster</category><category>lipstick</category><category>photograph</category><category>sophie</category>
		<guid isPermaLink="false">http://coopblue.com/blog/2006/06/a-little-young-for-lipstick-2/</guid>
		<description><![CDATA[We&#8217;d been cruising south toward Tacoma. Sophie was awake in her car seat but was strangely quiet. I turned around and&#8212;-whoa! &#8220;Pull over! Pull over!&#8221; We stopped. Luna got to Sophie first. I grabbed the camera. Cars hurtled behind my back at highway speed.

									
Sophie&#8217;s lips and hands were a red, smeary mess! We&#8217;d given her [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;d been cruising south toward Tacoma. Sophie was awake in her car seat but was strangely quiet. I turned around and&#8212;-whoa! &#8220;Pull over! Pull over!&#8221; We stopped. Luna got to Sophie first. I grabbed the camera. Cars hurtled behind my back at highway speed.</p>

<div class="falbum-post-box" style="float: right; margin: 0px -5px -5px 5px">	<div class='falbum-thumbnail-nods'>		<a href='/blog/photos/show/recent/photo/166540782' title='Array'>			<img src="http://static.flickr.com/60/166540782_60b2278032_m.jpg" alt="" />		</a>	</div></div>
Sophie&#8217;s lips and hands were a red, smeary mess! We&#8217;d given her a <strong>tube of lipstick</strong> to play with. Smart, huh? Well, the &#8220;active ingredient&#8221; was so far down that tube, I figured that she&#8217;d <em>never</em> get to it. How wrong I was. Get to it she did, maybe by twisting the tube.

<p>&#8220;Do you think she swallowed any?&#8221; asked Luna. She cleaned baby&#8217;s hands with a towel.</p>

<p>I didn&#8217;t even want to think about that.</p>

<p>We buckled ourselves back in. Wow. A disaster averted. Checking the mirror, I merged into traffic and came up to speed.</p>

<p>I laughed. Luna started laughing, too. We couldn&#8217;t stop.</p>
<p class="akst_link"><a href="http://coopblue.com/blog/?p=272&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_272" class="akst_share_link" rel="noindex nofollow">ShareThis</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://coopblue.com/blog/2006/06/a-little-young-for-lipstick-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sophie’s one</title>
		<link>http://coopblue.com/blog/2006/06/sophies-one/</link>
		<comments>http://coopblue.com/blog/2006/06/sophies-one/#comments</comments>
		<pubDate>Sun, 11 Jun 2006 19:25:43 +0000</pubDate>
		<dc:creator>Tri</dc:creator>
		
		<category><![CDATA[family]]></category>
<category>birthday</category><category>photograph</category><category>sophie</category><category>woodland park zoo</category><category>zoo</category>
		<guid isPermaLink="false">http://coopblue.com/blog/2006/06/sophies-one/</guid>
		<description><![CDATA[
Sophie&#8217;s one today. We regaled her this morning with &#8220;Happy Birthday!&#8221; as she sat up in bed and smiled like a scamp. She was amiable at breakfast, too, a big surprise to me because she gets fussy at the sight of solids these days (to get her to eat, Luna and I have resorted to [...]]]></description>
			<content:encoded><![CDATA[<p>
Sophie&#8217;s one today. We regaled her this morning with &#8220;Happy Birthday!&#8221; as she sat up in bed and smiled like a scamp. She was amiable at breakfast, too, a big surprise to me because she gets fussy at the sight of solids these days (to get her to eat, Luna and I have resorted to singing and cavorting; believe me, neither of us can hold a tune).</p>

<div class="falbum-post-box" style="float: left; margin: 0px 5px -5px 0px">	<div class='falbum-thumbnail-nods'>		<a href='/blog/photos/show/recent/photo/166537288' title='Array'>			<img src="http://static.flickr.com/49/166537288_8a9c9e9573_m.jpg" alt="" />		</a>	</div></div> She&#8217;s in love with a cracker, a big, flat, rectangular thing studded with sesame seeds, fennel seeds and parmesan cheese. Sophie nibbled one with me, in bed, as we watched Mexico trounce the Iranian team 3&#8212;1 at the World Cup. Afterwards I carefully gathered cracker crumbs from the comforter. Sophie snuggled up to me and drifted off to sleep. (She&#8217;s still sleeping, flat on her back in a powder blue two-piece, lavender socks, and a noup-noup in her mouth.)

<p>After lunch we&#8217;re taking Sophie to <a href="http://www.zoo.org/" title="Woodland Park Zoo">the Zoo</a>. Mom&#8217;ll join us. I can&#8217;t recall the last time I visited the Zoo, but having a kid means getting to re-live it. But it&#8217;ll be much better. Everything&#8217;s better shared with your daughter!</p>
<p class="akst_link"><a href="http://coopblue.com/blog/?p=268&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_268" class="akst_share_link" rel="noindex nofollow">ShareThis</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://coopblue.com/blog/2006/06/sophies-one/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Posting to Wordpress from Vim with tags and Markdown</title>
		<link>http://coopblue.com/blog/2006/06/posting-to-wordpress-from-vim-with-tags-and-markdown/</link>
		<comments>http://coopblue.com/blog/2006/06/posting-to-wordpress-from-vim-with-tags-and-markdown/#comments</comments>
		<pubDate>Mon, 05 Jun 2006 20:21:49 +0000</pubDate>
		<dc:creator>Tri</dc:creator>
		
		<category><![CDATA[geeking]]></category>
<category>blog</category><category>markdown</category><category>python</category><category>tagging</category><category>vim</category><category>wordpress</category>
		<guid isPermaLink="false">http://coopblue.com/blog/2006/06/post-to-wordpress-with-tags-and-markdown-from-vim/</guid>
		<description><![CDATA[
Only a certain kind of geek will delight in the following post.

I favor Vim for most of my text editing. I wanted to compose my WordPress entries with Vim, especially after finding a Vim syntax file for Markdown. Great! But how to post those entries into WordPress?

I found a way last night. A Berkeley student [...]]]></description>
			<content:encoded><![CDATA[<p>
Only a certain kind of geek will delight in the following post.</p>

<p>I favor <a href="http://www.vim.org/" title="a highly configurable text editor">Vim</a> for most of my text editing. I wanted to compose my WordPress entries with Vim, especially after finding a Vim <a href="http://www.plasticboy.com/markdown-vim-mode/" title="Markdown Vim Mode">syntax file</a> for <a href="http://daringfireball.net/projects/markdown/" title="Markdown is a text-to-HTML conversion tool for web writers">Markdown</a>. Great! But how to post those entries <em>into</em> WordPress?</p>

<p>I found a way last night. A Berkeley student with the same itch, Kesava Yerra, wrote a Python Vim script that posts to WordPress. Supposing you&#8217;ve installed the <a href="http://www.neato.co.nz/ultimate-tag-warrior/" title="Christine Davis's Ultimate Tag Warrior">Ultimate Tag Warrior</a> plug-in for WordPress, <a href="http://not.upbylunch.com/2006/05/27/tags-vim-post/" title="Tags Vim Post">his script</a> even lets you tag your post. (An <a href="http://not.upbylunch.com/2006/05/16/wordpress-posting-vim-script/" title="Wordpress Posting Vim Script">earlier version</a> didn&#8217;t have tagging.)</p>

<p>So to make this work, you first enable Ultimate Tag Warrior&#8217;s &#8220;embedded tag support&#8221; (it&#8217;s in WordPress&#8217;s Options screen). Then open your Vim configuration file (.vimrc) and add the following code:
<code></code></p>

<div class="igBar"><span id="lpython-4"><a href="#" onclick="javascript:showCodeTxt('python-4'); return false;">PLAIN TEXT</a></span></div>

<div class="syntax_hilite"><span class="langName">PYTHON:</span><br /><div id="python-4">
<div class="python"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">python &lt;&lt;EOF</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">urllib</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">urllib2</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">import</span> vim</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">xml</span>.<span style="color: black;">dom</span>.<span style="color: black;">minidom</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">xmlrpclib</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; blog_username = <span style="color: #483d8b;">'your_username'</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; blog_password = <span style="color: #483d8b;">'your_password'</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; blog_url = <span style="color: #483d8b;">'http://path.to.your.weblog/xmlrpc.php'</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> make_tags<span style="color: black;">&#40;</span>text, numtags=<span style="color: #ff4500;color:#800000;">5</span><span style="color: black;">&#41;</span>:</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; params = <span style="color: #dc143c;">urllib</span>.<span style="color: black;">urlencode</span><span style="color: black;">&#40;</span><span style="color: black;">&#123;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #483d8b;">'appid'</span>: <span style="color: #483d8b;">'upbylunch'</span>,</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #483d8b;">'context'</span>: text<span style="color: black;">&#125;</span><span style="color: black;">&#41;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; u = <span style="color: #dc143c;">urllib2</span>.<span style="color: black;">urlopen</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">"http://api.search.yahoo.com/"</span> </div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + <span style="color: #483d8b;">"ContentAnalysisService/V1/termExtraction"</span>, </div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; params<span style="color: black;">&#41;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; response = u.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; doc = <span style="color: #dc143c;">xml</span>.<span style="color: black;">dom</span>.<span style="color: black;">minidom</span>.<span style="color: black;">parseString</span><span style="color: black;">&#40;</span>response<span style="color: black;">&#41;</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; tags = <span style="color: black;">&#91;</span><span style="color: #008000;">str</span><span style="color: black;">&#40;</span>i.<span style="color: black;">childNodes</span><span style="color: black;">&#91;</span><span style="color: #ff4500;color:#800000;">0</span><span style="color: black;">&#93;</span>.<span style="color: black;">nodeValue</span><span style="color: black;">&#41;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> doc.<span style="color: black;">getElementsByTagName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Result'</span><span style="color: black;">&#41;</span><span style="color: black;">&#93;</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span> tags<span style="color: black;">&#91;</span>:numtags<span style="color: black;">&#93;</span> </div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> post_blog<span style="color: black;">&#40;</span>numtags=<span style="color: #ff4500;color:#800000;">5</span><span style="color: black;">&#41;</span>:</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; strid = <span style="color: #483d8b;">''</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; offsetline = <span style="color: #ff4500;color:#800000;">0</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> vim.<span style="color: black;">current</span>.<span style="color: black;">buffer</span><span style="color: black;">&#91;</span><span style="color: #ff4500;color:#800000;">0</span><span style="color: black;">&#93;</span>.<span style="color: black;">find</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'StrID:'</span><span style="color: black;">&#41;</span> != -<span style="color: #ff4500;color:#800000;">1</span>:</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strid = vim.<span style="color: black;">current</span>.<span style="color: black;">buffer</span><span style="color: black;">&#91;</span><span style="color: #ff4500;color:#800000;">0</span><span style="color: black;">&#93;</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">':'</span><span style="color: black;">&#41;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;color:#800000;">1</span><span style="color: black;">&#93;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; offsetline = <span style="color: #ff4500;color:#800000;">1</span> </div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; title = vim.<span style="color: black;">current</span>.<span style="color: black;">buffer</span><span style="color: black;">&#91;</span>offsetline + <span style="color: #ff4500;color:#800000;">0</span><span style="color: black;">&#93;</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; tags = vim.<span style="color: black;">current</span>.<span style="color: black;">buffer</span><span style="color: black;">&#91;</span>offsetline + <span style="color: #ff4500;color:#800000;">1</span><span style="color: black;">&#93;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; text = <span style="color: #483d8b;">'</span><span style="color: #000099; font-weight: bold;">\n</span>'.<span style="color: black;">join</span><span style="color: black;">&#40;</span>vim.<span style="color: black;">current</span>.<span style="color: black;">buffer</span><span style="color: black;">&#91;</span>offsetline + <span style="color: #ff4500;color:#800000;">2</span>:<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;"># Tag condition</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> tags == <span style="color: #483d8b;">''</span>:</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tags = <span style="color: #483d8b;">'[ tags</span><span style="color: #000099; font-weight: bold;">\]</span>' + <span style="color: #483d8b;">','</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span>make_tags<span style="color: black;">&#40;</span>text, </div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; numtags<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'[ /tags]</span><span style="color: #000099; font-weight: bold;">\n</span>'</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">else</span>:</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tags = <span style="color: #483d8b;">'[ tags]'</span> + tags + <span style="color: #483d8b;">'[ /tags]</span><span style="color: #000099; font-weight: bold;">\n</span>'</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; content = tags + text</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; wp = <span style="color: #dc143c;">xmlrpclib</span>.<span style="color: black;">ServerProxy</span><span style="color: black;">&#40;</span>blog_url<span style="color: black;">&#41;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; post = <span style="color: black;">&#123;</span> </div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #483d8b;">'title'</span>: title,</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #483d8b;">'description'</span>: content </div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: black;">&#125;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">if</span> strid == <span style="color: #483d8b;">''</span>:</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strid = wp.<span style="color: black;">metaWeblog</span>.<span style="color: black;">newPost</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">''</span>, blog_username, </div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; blog_password, post, <span style="color: #ff4500;color:#800000;">1</span><span style="color: black;">&#41;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vim.<span style="color: black;">current</span>.<span style="color: black;">buffer</span>.<span style="color: black;">append</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'</span><span style="color: #000099; font-weight: bold;">\n</span>'<span style="color: black;">&#41;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vim.<span style="color: black;">current</span>.<span style="color: black;">buffer</span><span style="color: black;">&#91;</span>:<span style="color: black;">&#93;</span> = <span style="color: black;">&#91;</span><span style="color: #483d8b;">'StrID:'</span> + strid<span style="color: black;">&#93;</span> + <span style="color: black;">&#91;</span>i </div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> vim.<span style="color: black;">current</span>.<span style="color: black;">buffer</span><span style="color: black;">&#91;</span>:<span style="color: black;">&#93;</span><span style="color: black;">&#93;</span></div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">else</span>:</div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; wp.<span style="color: black;">metaWeblog</span>.<span style="color: black;">editPost</span><span style="color: black;">&#40;</span>strid, blog_username,</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; blog_password, post, <span style="color: #ff4500;color:#800000;">1</span><span style="color: black;">&#41;</span></div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; vim.<span style="color: black;">command</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'set nomodified'</span><span style="color: black;">&#41;</span> </div></li>
<li style="font-weight: bold;color:#26536A;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; EOF </div></li></ol></div>
</div></div>

<p><br />

<strong>(Note: remove the whitespace from <code>'[ tags]'</code> and <code>'[ \tags']</code>)</strong> All set? Now you can compose in Vim, using the following format:</p>

<pre><code>Title
your,tags,separated,by,commas (to auto-tag, leave line blank)
The content of your post...
</code></pre>

<p>When you&#8217;re ready, issue this Vim command:</p>

<pre><code>:py post_blog()
</code></pre>

<p>After a heartbeat, your entry is posted to WordPress (or to any blog that supports the <a href="http://en.wikipedia.org/wiki/MetaWeblog" title="List of Metaweblog blogs">Metaweblog API</a>).</p>

<p>Oh, before I forget, you <em>are</em> going to have to assign Categories to your post manually in WordPress&#8217;s Manage Posts panel.</p>

<p>I write using Markdown and, for syntax highlighting in Vim, I find <a href="http://www.plasticboy.com/markdown-vim-mode/" title="Vim Syntax file for Markdown">Markdown Vim Mode</a> to be indispensible. (I&#8217;ll cover installation in a later post, as I had some trouble with it.) So to activate that, I save my entries with an *.mkd extension. The Markdown looks pretty. I write my post. Then I type <code>:py post_blog()</code> to publish.</p>

<p>I&#8217;m delighted.</p>
<p class="akst_link"><a href="http://coopblue.com/blog/?p=267&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_267" class="akst_share_link" rel="noindex nofollow">ShareThis</a>
</p>]]></content:encoded>
			<wfw:commentRss>http://coopblue.com/blog/2006/06/posting-to-wordpress-from-vim-with-tags-and-markdown/feed/</wfw:commentRss>
		</item>
	<feedburner:awareness xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://api.feedburner.com/awareness/1.0/GetFeedData?uri=coopblue/cubG</feedburner:awareness></channel>
</rss>
