<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>Kevin's random thoughts - Home</title>
  <id>tag:kbullock.ringworld.org,2008:mephisto/</id>
  <generator version="0.8.0" uri="http://mephistoblog.com">Mephisto Drax</generator>
  <link href="http://kbullock.ringworld.org/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://kbullock.ringworld.org/" rel="alternate" type="text/html"/>
  <updated>2008-11-13T20:03:20Z</updated>
  <entry xml:base="http://kbullock.ringworld.org/">
    <author>
      <name>kbullock</name>
    </author>
    <id>tag:kbullock.ringworld.org,2008-11-13:856</id>
    <published>2008-11-13T20:02:00Z</published>
    <updated>2008-11-13T20:03:20Z</updated>
    <category term="tech"/>
    <category term="assume"/>
    <category term="list"/>
    <category term="rails"/>
    <category term="series"/>
    <link href="http://kbullock.ringworld.org/2008/11/13/rails-assumptions" rel="alternate" type="text/html"/>
    <title>Rails assumptions</title>
<content type="html">
            &lt;p&gt;&lt;em&gt;Second in what's now a series of &quot;list&quot; posts. First &lt;a href=&quot;/2008/11/12/2008-web-design-distinctives&quot; title=&quot;2008 Web design distinctives&quot;&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Standard assumptions in the Rails community:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Working in a &lt;a href=&quot;http://37signals.com/&quot;&gt;small start-up consultancy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.apple.com/&quot;&gt;Mac laptop&lt;/a&gt; for development&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://macromates.com/&quot;&gt;TextMate&lt;/a&gt; for editing&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/&quot;&gt;git&lt;/a&gt; for version control&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.mysql.com/&quot;&gt;MySQL&lt;/a&gt; for database backend&lt;/li&gt;
&lt;li&gt;Deployment on a hosted &lt;a href=&quot;http://en.wikipedia.org/wiki/Virtual_private_server&quot; title=&quot;Virtual Private Server - Wikipedia&quot;&gt;VPS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&quot;Application&quot; means &quot;&lt;strong&gt;&lt;em&gt;Web&lt;/strong&gt;&lt;/em&gt; application&quot;&lt;/li&gt;
&lt;li&gt;Any Web site you could want to develop is a Web &lt;strong&gt;&lt;em&gt;application&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://java.sun.com/&quot;&gt;Java&lt;/a&gt; background&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As &lt;a href=&quot;/2008/11/12/2008-web-design-distinctives&quot; title=&quot;2008 Web design distinctives&quot;&gt;before&lt;/a&gt;, add your own in the &lt;a href=&quot;/2008/11/12/2008-web-design-distinctives#comments&quot;&gt;comments&lt;/a&gt;.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://kbullock.ringworld.org/">
    <author>
      <name>kbullock</name>
    </author>
    <id>tag:kbullock.ringworld.org,2008-11-12:855</id>
    <published>2008-11-12T17:09:00Z</published>
    <updated>2008-11-13T20:04:38Z</updated>
    <category term="tech"/>
    <category term="2008"/>
    <category term="css"/>
    <category term="design"/>
    <category term="ems"/>
    <category term="layout"/>
    <category term="web 2.0"/>
    <category term="web design"/>
    <link href="http://kbullock.ringworld.org/2008/11/12/2008-web-design-distinctives" rel="alternate" type="text/html"/>
    <title>2008 Web design distinctives</title>
<content type="html">
            &lt;p&gt;&lt;em&gt;First in what's now a series of &quot;list&quot; posts. Next &lt;a href=&quot;/2008/11/13/rails-assumptions&quot;&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gradients&lt;/li&gt;
&lt;li&gt;Georgia for headings&lt;/li&gt;
&lt;li&gt;Large-surface-area navigation tabs&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/emastic/&quot; title=&quot;Emastic&quot;&gt;Design&lt;/a&gt; on a &lt;a href=&quot;http://960.gs/&quot; title=&quot;960 Grid System&quot;&gt;grid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Rich but totally random stock photos&lt;/li&gt;
&lt;li&gt;Subtly patterned backgrounds&lt;/li&gt;
&lt;li&gt;Everything in &lt;a href=&quot;http://jontangerine.com/log/2007/09/the-incredible-em-and-elastic-layouts-with-css&quot; title=&quot;The Incredible Em &amp;amp; Elastic Layouts with CSS&quot;&gt;ems&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Add others in comments. Preferrably with links to examples.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://kbullock.ringworld.org/">
    <author>
      <name>kbullock</name>
    </author>
    <id>tag:kbullock.ringworld.org,2008-11-05:854</id>
    <published>2008-11-05T01:54:00Z</published>
    <updated>2008-11-05T02:12:53Z</updated>
    <category term="politics"/>
    <category term="hagan"/>
    <category term="nc"/>
    <category term="obama"/>
    <category term="pa"/>
    <link href="http://kbullock.ringworld.org/2008/11/5/one-election-post" rel="alternate" type="text/html"/>
    <title>One election post</title>
<content type="html">
            &lt;p&gt;The resources I'm watching are ABC (&lt;a href=&quot;http://wcco.com/&quot;&gt;WCCO&lt;/a&gt;) on TV, &lt;a href=&quot;http://www.fivethirtyeight.com/&quot;&gt;fivethirtyeight.com&lt;/a&gt; online. Congratulations to my sister in NC for &lt;a href=&quot;http://politicalticker.blogs.cnn.com/2008/11/04/cnn-projects-hagan-defeats-dole-in-nc/&quot;&gt;ousting Elizabeth Dole&lt;/a&gt;, and to my parents in PA for (apparently) driving their state for Big O.&lt;/p&gt;

&lt;p&gt;But even in the midst of the excitement tonight, my attention turns towards the coming administration. No matter who wins, there's a lot of work to do after the election to put the country back together. Let us pray, and work, and apply political pressure, to make sure it happens.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://kbullock.ringworld.org/">
    <author>
      <name>kbullock</name>
    </author>
    <id>tag:kbullock.ringworld.org,2008-11-03:851</id>
    <published>2008-11-03T17:04:00Z</published>
    <updated>2008-11-03T20:25:29Z</updated>
    <category term="tech"/>
    <category term="hg"/>
    <category term="scm"/>
    <category term="svn"/>
    <link href="http://kbullock.ringworld.org/2008/11/3/subversion-to-mercurial" rel="alternate" type="text/html"/>
    <title>Subversion to Mercurial</title>
<summary type="html">&lt;p&gt;I've been working on migrating at least some of my work projects from &lt;a href=&quot;http://subversion.tigris.org/&quot; title=&quot;Subversion&quot;&gt;svn&lt;/a&gt; to &lt;a href=&quot;http://www.selenic.com/mercurial/&quot; title=&quot;Mercurial&quot;&gt;hg&lt;/a&gt;. Most of my projects are relatively simple and not very branchy, so converting them was a matter of doing:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ hg convert svn://my-repo.example.com/svn/project/trunk project
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Some of my bigger projects, though, made the &lt;a href=&quot;http://www.selenic.com/mercurial/wiki/index.cgi/ConvertExtension?highlight=%28convert%29&quot; title=&quot;Mercurial: ConvertExtension&quot;&gt;convert extension&lt;/a&gt; choke on my many branches. For these I resorted to &lt;a href=&quot;http://pypi.python.org/pypi/hgsvn&quot; title=&quot;hgsvn&quot;&gt;hgsvn&lt;/a&gt;, which converts one branch at a time. For the benefit of others, here's documentation of my process. &lt;em&gt;[Ed. note: now cleaned up a bit. Let me know if it's unclear.]&lt;/em&gt;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;I've been working on migrating at least some of my work projects from &lt;a href=&quot;http://subversion.tigris.org/&quot; title=&quot;Subversion&quot;&gt;svn&lt;/a&gt; to &lt;a href=&quot;http://www.selenic.com/mercurial/&quot; title=&quot;Mercurial&quot;&gt;hg&lt;/a&gt;. Most of my projects are relatively simple and not very branchy, so converting them was a matter of doing:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ hg convert svn://my-repo.example.com/svn/project/trunk project
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Some of my bigger projects, though, made the &lt;a href=&quot;http://www.selenic.com/mercurial/wiki/index.cgi/ConvertExtension?highlight=%28convert%29&quot; title=&quot;Mercurial: ConvertExtension&quot;&gt;convert extension&lt;/a&gt; choke on my many branches. For these I resorted to &lt;a href=&quot;http://pypi.python.org/pypi/hgsvn&quot; title=&quot;hgsvn&quot;&gt;hgsvn&lt;/a&gt;, which converts one branch at a time. For the benefit of others, here's documentation of my process. &lt;em&gt;[Ed. note: now cleaned up a bit. Let me know if it's unclear.]&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;First, create a clean directory to hold all of the converted trees. Then use hgsvn to convert the trunk:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;~ $ mkdir project &amp;amp;&amp;amp; cd project
~/project $ hgimportsvn svn://my-repo.example.com/svn/project/trunk
...
~/project $ (cd trunk &amp;amp;&amp;amp; hgpullsvn)
...
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now do the same to convert each branch:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;~/project $ mkdir branch-1 &amp;amp;&amp;amp; cd branch-1
~/project $ hgimportsvn svn://my-repo.example.com/svn/project/branches/branch-1
...
~/project $ (cd branch-1 &amp;amp;&amp;amp; hgpullsvn)
...
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Once you've got all the branches converted, you can merge them into one big named-branch repository (if you roll that way). Since hgsvn preserves the ancestry of your branches from where they split from trunk, it's a sensible operation to merge them all together. This is optional though; if you want to keep each branch as a separate directory, you can.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;~/project $ hg clone trunk whole-project
~/project $ cd whole-project
~/project/whole-project $ hg pull ../branch-1
...
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Repeat the pull for each branch. Note that the logs might appear a bit out-of-order afterward compared to the svn log. The logs for each branch will be brought in as a chunk, not interleaved with other branches' logs in commit-date order.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://kbullock.ringworld.org/">
    <author>
      <name>kbullock</name>
    </author>
    <id>tag:kbullock.ringworld.org,2008-10-03:840</id>
    <published>2008-10-03T21:48:00Z</published>
    <updated>2008-10-03T22:02:20Z</updated>
    <category term="biking"/>
    <link href="http://kbullock.ringworld.org/2008/10/3/in-memoriam" rel="alternate" type="text/html"/>
    <title>In Memoriam</title>
<content type="html">
            &lt;p&gt;&lt;a href=&quot;http://www.ghostbikempls.org/&quot;&gt;http://www.ghostbikempls.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Four cyclists were killed by cars in the Twin Cities last month. Tomorrow there will be a memorial ride. Details &lt;a href=&quot;http://ghostbikempls.org/main/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Bicycling is becoming a lot more popular as a daily mode of transportation. As such, I see a lot of cyclists doing it dangerously, and a lot more venom from annoyed drivers. Cyclists need to follow the &lt;a href=&quot;http://www.sharetheroadmn.org/rules.html&quot;&gt;rules of the road&lt;/a&gt;, and so do drivers. But realistically, the whole infrastructure is stacked against cyclists; drivers mostly think cyclists have no right to the road, and police reinforce this by enforcing the rules against cyclists while giving drivers free rein. Three foot clearance means three foot clearance.&lt;/p&gt;

&lt;p&gt;And stop means stop (to drivers and cyclists alike).&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://kbullock.ringworld.org/">
    <author>
      <name>kbullock</name>
    </author>
    <id>tag:kbullock.ringworld.org,2008-09-09:814</id>
    <published>2008-09-09T18:01:00Z</published>
    <updated>2008-09-09T18:01:44Z</updated>
    <category term="tech"/>
    <category term="monkey patching"/>
    <category term="ruby"/>
    <category term="syntax"/>
    <link href="http://kbullock.ringworld.org/2008/9/9/too-much-cleverness" rel="alternate" type="text/html"/>
    <title>Too much cleverness</title>
<content type="html">
            &lt;p&gt;&lt;a href=&quot;http://www.datamapper.org/&quot; title=&quot;DataMapper&quot;&gt;DataMapper&lt;/a&gt; is, in general, pretty cool, but like most Ruby developers lately, its developers seem to have seen all the &quot;syntactic&quot; fun you can have with the language and just taken it too far (&quot;syntactic&quot; in quotes because Ruby's syntax is actually fixed). Here's how DataMapper expects conditions to queries:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;exhibitions = Exhibition.all(:run_time.gt =&amp;gt; 2, :run_time.lt =&amp;gt; 5)
# =&amp;gt; SQL conditions: 'run_time &amp;gt; 1 AND run_time &amp;lt; 5'
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And it does the same thing for &lt;code&gt;ORDER BY&lt;/code&gt; clauses:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;@zoos_by_tiger_count = Zoo.all(:order =&amp;gt; [:tiger_count.desc])
# in SQL =&amp;gt;  select * from zoos ORDER BY tiger_count DESC
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;They actually defined methods on the Symbol class called &lt;code&gt;lt&lt;/code&gt;, &lt;code&gt;gt&lt;/code&gt;, &lt;code&gt;like&lt;/code&gt;, &lt;code&gt;not&lt;/code&gt;, &lt;code&gt;in&lt;/code&gt;, etc. This is &lt;a href=&quot;http://en.wikipedia.org/wiki/Monkey_patch&quot;&gt;monkey patching&lt;/a&gt; almost at its worst. What use, in any Ruby code outside of an argument hash to DataMapper model, is being able to say &lt;code&gt;:foobar.like(:a_duck)&lt;/code&gt; ?&lt;/p&gt;

&lt;p&gt;One example of &lt;em&gt;good&lt;/em&gt; monkey patching was (I think) introduced by Rails: the method &lt;code&gt;Object#blank?&lt;/code&gt;, defined (basically) thus:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;class Object
  def blank?
    nil? or (respond_to?(:empty?) and empty?)
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So it returns &lt;code&gt;true&lt;/code&gt; on &lt;code&gt;''&lt;/code&gt; (an empty String), &lt;code&gt;[]&lt;/code&gt; (an empty Array), and &lt;code&gt;nil&lt;/code&gt;, and &lt;code&gt;false&lt;/code&gt; on just about anything else (including objects that don't have an &lt;code&gt;empty?&lt;/code&gt; method). (The Rails implementation might also return &lt;code&gt;true&lt;/code&gt; if you call &lt;code&gt;false.empty?&lt;/code&gt;, as a special case. This might make sense; I haven't thought the semantics through fully.) &lt;code&gt;Object#blank?&lt;/code&gt; is a well-behaved monkey because it doesn't modify existing, expected behavior, &lt;em&gt;and&lt;/em&gt; it's globally useful (throughout the Ruby language). It's something that could be added to Ruby's core without breaking things.&lt;/p&gt;

&lt;p&gt;DataMapper's &lt;code&gt;Symbol&lt;/code&gt; extensions probably wouldn't break other libraries, but the semantics are senseless. If a &lt;code&gt;Symbol&lt;/code&gt; had a meaningful 'less-than' comparison to another symbol, it would just implement &lt;code&gt;&amp;lt;=&amp;gt;&lt;/code&gt; and mix in &lt;code&gt;Comparable&lt;/code&gt;. What the line&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;exhibitions = Exhibition.all(:run_time.gt =&amp;gt; 2, :run_time.lt =&amp;gt; 5)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;really means is that the &lt;em&gt;column&lt;/em&gt; called 'run_time', which isn't a Ruby quantity at all, should be between 2 and 5. A better way to say it would be:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;exhibitions = Exhibition.all(:run_time =&amp;gt; [:&amp;gt;, 2], :run_time =&amp;gt; [:&amp;lt;, 5])
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;or just&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;exhibitions = Exhibition.all(&quot;run_time BETWEEN 2 AND 5&quot;)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;which is basically how ActiveRecord does it. Using a global monkey patch to &lt;code&gt;Symbol&lt;/code&gt; to implement a syntactic translation of Ruby to SQL just muddies the semantics of Ruby without providing any extra clarity.&lt;/p&gt;

&lt;p&gt;It's a back door (through method definitions on symbols) into the kind of &lt;em&gt;real&lt;/em&gt; syntax translations you can write as macros in Lisp (which don't rely on the function invocation mechanism). You could define a macro &lt;code&gt;conditions&lt;/code&gt; to be used as an argument to the finder method, which could then be invoked like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(find-all-exhibitions (conditions (run-time &amp;gt; 2)
                                  (run-time &amp;lt; 5)))
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The difference is that the syntax you define only exists within the &lt;code&gt;conditions&lt;/code&gt; macro.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://kbullock.ringworld.org/">
    <author>
      <name>kbullock</name>
    </author>
    <id>tag:kbullock.ringworld.org,2008-08-21:807</id>
    <published>2008-08-21T19:36:00Z</published>
    <updated>2008-08-21T20:02:57Z</updated>
    <category term="tech"/>
    <category term="apple"/>
    <category term="mac"/>
    <category term="math"/>
    <link href="http://kbullock.ringworld.org/2008/8/21/doing-the-math-cont-d" rel="alternate" type="text/html"/>
    <title>Doing the math, cont'd</title>
<content type="html">
            &lt;p&gt;Not sure if &lt;a href=&quot;http://daringfireball.net/&quot; title=&quot;Daring Fireball&quot;&gt;John Gruber&lt;/a&gt; noted &lt;a href=&quot;http://arstechnica.com/journals/hardware.ars/2008/08/07/apple-asps-2x-higher-than-rest-of-market&quot;&gt;this jackassery&lt;/a&gt; or not. Writing on ars technica, Joel Hruska manages to stop just short of a Jackass-of-the-Week award, but nonetheless veers deep into irrational anti-&lt;a href=&quot;http://www.crazyapplerumors.com/?p=664&quot;&gt;Artie-MacStrawman&lt;/a&gt;-ism.&lt;/p&gt;

&lt;p&gt;Hruska's analysis of the fact that Apple's average selling prices are higher than the rest of the market starts off well enough:&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;Desktop PC average selling prices (ASPs) have scarcely changed in the past two years, while laptop ASPs have fallen 21 percent, probably in part thanks to rising demand and steeper competition among vendors. Mac desktop ASPs, on the other hand, have actually gone up by 7.7 percent, while laptop ASPs have dropped by just 3.8 percent. Apple, in other words, is bucking conventional wisdom, and selling computers that are significantly more expensive than the average unit shipped by the likes of Dell, HP, or Lenovo.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;...and turns back from the brink for a moment of insight...&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;This would normally be the point at which any Mac vs. PC discussion veers off into a heated debate over hardware specs, manufacturer build quality, and acerbic commentary on the more dubious characters in one's family history. I'm rather explicitly not going there. Instead, I'd like to draw attention to a different facet of the situation. ... Apple is clearly picking up steam without significantly reducing its ASPs. It's even happening while PC ASPs, particularly notebook ASPs, are dropping.&lt;/p&gt;
    
    &lt;p&gt;The current situation implies that Apple may be drawing high-end notebook sales that would have otherwise gone to Dell, HP, Lenovo, or the other major players in this space.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;...before veering off into warrantless-conclusion-land:&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;Apple has clearly created a value proposition that customers are willing to &lt;em&gt;pay a substantial premium&lt;/em&gt; in order to possess. &lt;em&gt;[emphasis added]&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I think he's right that Apple is drawing high&lt;em&gt;er&lt;/em&gt;-end (not just top-end, but mid-range too) notebook sales away from other makers, which makes his conclusion all the more senseless. As has been &lt;a href=&quot;http://kbullock.ringworld.org/2008/8/18/doing-the-math&quot;&gt;demonstrated already&lt;/a&gt;, &lt;em&gt;comparably equipped&lt;/em&gt; Macs sell in the same price range as their Windows-preinstalled counterparts. If it's true that Apple's sales are coming from customers who would have otherwise bought $1000+ Dell or hp laptops, those buying Macs &lt;strong&gt;&lt;em&gt;are not paying a premium.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://kbullock.ringworld.org/">
    <author>
      <name>kbullock</name>
    </author>
    <id>tag:kbullock.ringworld.org,2008-08-21:806</id>
    <published>2008-08-21T17:47:00Z</published>
    <updated>2008-08-21T17:50:10Z</updated>
    <category term="god"/>
    <category term="episcopal"/>
    <category term="funny"/>
    <category term="joke"/>
    <category term="light bulb"/>
    <link href="http://kbullock.ringworld.org/2008/8/21/how-many-episcopalians" rel="alternate" type="text/html"/>
    <title>How many Episcopalians...</title>
<content type="html">
            &lt;p&gt;How many Episcopalians does it take to change a light bulb? &lt;em&gt;[grin]&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;Sixty of 95 congregations have exchanged their incandescent light bulbs for compact fluorescents (CFLs) so far this summer in the &lt;a href=&quot;http://www.dohio.org/&quot;&gt;Diocese of Ohio’s&lt;/a&gt; “How Many Light Bulbs Does it Take to Change an Episcopalian?” campaign to reduce its carbon footprint.&lt;/p&gt;
    
    &lt;p&gt;“That’s 5,431 bulbs,” reports intern Andy Barnett.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So extrapolating from the average number of bulbs per congregation, and dividing the number of Episcopalians (&lt;a href=&quot;http://www.episcopalchurch.org/documents/2005_Red_Book_Table_of_Statistics_by_Prov_Diocese.pdf&quot;&gt;active baptized members&lt;/a&gt;) in Ohio by the total number of bulbs, that's...&lt;/p&gt;

&lt;p&gt;29,400 members ÷ 8600 bulbs = &lt;strong&gt;3 members per bulb&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;3: One to call the electrician, one to mix the drinks, and one to talk about how much better the old one was. (from &lt;a href=&quot;http://www.beliefnet.com/dailyjoke/DailyJoke.aspx?QID=9966&quot;&gt;BeliefNet&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Dibs on shaking martinis!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://kbullock.ringworld.org/">
    <author>
      <name>kbullock</name>
    </author>
    <id>tag:kbullock.ringworld.org,2008-08-19:803</id>
    <published>2008-08-19T22:58:00Z</published>
    <updated>2008-08-19T23:03:03Z</updated>
    <category term="random"/>
    <category term="cars"/>
    <category term="environment"/>
    <category term="gas"/>
    <category term="mpg"/>
    <category term="oil"/>
    <link href="http://kbullock.ringworld.org/2008/8/19/doing-the-mpg-math" rel="alternate" type="text/html"/>
    <title>Doing the MPG math</title>
<content type="html">
            &lt;blockquote&gt;
    &lt;p&gt;Suppose you had a household with two cars, and each car needs to be driven 10,000 miles per year. One car consumes 34 MPG, and the other car consumes 18 MPG. Since gas is expensive, you want to replace one car. Because of utility constraints, you have two choices:&lt;/p&gt;
    
    &lt;ul&gt;
    &lt;li&gt;Replace the 34 MPG car with a 50 MPG car — a 16 MPG improvement&lt;/li&gt;
    &lt;li&gt;Replace the 18 MPG car with a 28 MPG car — a 10 MPG improvement&lt;/li&gt;
    &lt;/ul&gt;
    
    &lt;p&gt;Which car replacement would save you the most gas?&lt;/p&gt;
    
    &lt;p&gt;... When you run the numbers, replacing the 34 MPG car with a 50 MPG (a 16 MPG improvement) car saves you 94.1 gallons per 10,000 miles, whereas replacing the 18 MPG car with a 28 MPG (a 10 MPG improvement) car saves you 198.4 gallons per 10,000 miles — more than double the savings.&lt;/p&gt;
    
    &lt;p&gt;... a textbook case for how common wisdom can fail the common person.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From &lt;a href=&quot;http://www.bunniestudios.com/blog/?p=257&quot;&gt;this blog post&lt;/a&gt; (h/t &lt;a href=&quot;http://blog.makezine.com/archive/2008/07/the_miles_per_gallon_illu.html&quot;&gt;MAKE blog&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;It's an interesting point, and a problem that's avoided by the metric measurement of gas mileage in L/100km (volume over distance). What we really care about is either (a) how much gas we're really using for the distance we need to drive, and thus how much money we're spending on it; or (b) how much particulate matter and noxious gas we're putting in the air. Both of these are related to the volume of gas used.&lt;/p&gt;

&lt;p&gt;Even so, the example above presents something of a false choice. Utility constraints, yes, but replacing an 18 MPG car with a 34 MPG car is still better than replacing an 18 MPG car with a 28 MPG car. Using the right grade gasoline and &lt;a href=&quot;http://www.edmunds.com/advice/fueleconomy/articles/106842/article.html&quot; title=&quot;We Test the Tips - edmunds.com&quot;&gt;driving for better mileage&lt;/a&gt; also help, no matter what vehicle you drive.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://kbullock.ringworld.org/">
    <author>
      <name>kbullock</name>
    </author>
    <id>tag:kbullock.ringworld.org,2008-08-19:802</id>
    <published>2008-08-19T22:26:00Z</published>
    <updated>2008-08-20T12:55:46Z</updated>
    <category term="tech"/>
    <category term="expression"/>
    <category term="one-liner"/>
    <category term="perl"/>
    <category term="ruby"/>
    <link href="http://kbullock.ringworld.org/2008/8/19/no-really-everything-is-an-expression" rel="alternate" type="text/html"/>
    <title>No, really, everything is an expression</title>
<content type="html">
            &lt;p&gt;I just had a realization about Ruby that others coming from C, Perl, Javascript, PHP, etc. may not have quite grasped yet: In Ruby, since everything is an expression, &lt;strong&gt;semicolons are allowed within parentheses.&lt;/strong&gt; That means parentheses effectively create a &lt;a href=&quot;http://en.wikipedia.org/wiki/Statement_block&quot; title=&quot;Statement block - Wikipedia, the free encyclopedia&quot;&gt;statement block&lt;/a&gt; (though not a new &lt;a href=&quot;http://en.wikipedia.org/wiki/Scope_%28programming%29&quot; title=&quot;Scope (programming) - Wikipedia, the free encyclopedia&quot;&gt;scope&lt;/a&gt;, and not a block in the Ruby sense of a first-class procedure object).&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt; (&quot;foo&quot;; 42; :coolness)
=&amp;gt; :coolness
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The above evaluates the values &lt;code&gt;&quot;foo&quot;&lt;/code&gt; (a String), &lt;code&gt;42&lt;/code&gt; (a Fixnum), and &lt;code&gt;:final&lt;/code&gt; (a Symbol) in that order, and returns the last one. In Lisp, this would be a &lt;code&gt;progn&lt;/code&gt; (Common Lisp) or &lt;code&gt;begin&lt;/code&gt; (Scheme).&lt;/p&gt;

&lt;p&gt;I've made use of this behavior before, I think, without really realizing the implications of it. In Perl, for example, you can use a bare block to group statements together. But you can't even apply a &lt;a href=&quot;http://www.rubycentral.com/book/intro.html#S4&quot; title=&quot;Control Structures - Programming Ruby: The Pragmatic Programmer's Guide&quot;&gt;statement modifier&lt;/a&gt; to such a grouping. The following is a syntax error:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{             
  print &quot;foo\n&quot;;
  exit(254);
} unless open(FOO, &quot;foo.txt&quot;;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;...leading to such idioms as:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;print &quot;foo\n&quot; &amp;amp;&amp;amp; exit(254) unless open(FOO, &quot;foo.txt&quot;);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In Ruby, since everything is an expression, you can use statement modifiers on a parenthesized expression, like so:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt; (f = open(&quot;hello.c&quot;); f.read) if File.exist? &quot;hello.c&quot;
=&amp;gt; # contents of hello.c
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You could even use a compound expression as a conditional test (in a statement modifier!):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt; &quot;non-empty file&quot; if (f = open(&quot;hello.c&quot;); !f.eof?)
=&amp;gt; &quot;non-empty file&quot;
&lt;/code&gt;&lt;/pre&gt;
          </content>  </entry>
  <entry xml:base="http://kbullock.ringworld.org/">
    <author>
      <name>kbullock</name>
    </author>
    <id>tag:kbullock.ringworld.org,2008-08-18:801</id>
    <published>2008-08-18T18:13:00Z</published>
    <updated>2008-08-18T18:14:15Z</updated>
    <category term="tech"/>
    <category term="apple"/>
    <category term="cost"/>
    <category term="dell"/>
    <category term="mac"/>
    <link href="http://kbullock.ringworld.org/2008/8/18/doing-the-math" rel="alternate" type="text/html"/>
    <title>Doing the math</title>
<content type="html">
            &lt;p&gt;Someone out there did &lt;a href=&quot;http://technologizer.com/2008/08/14/are-macs-more-expensive-lets-do-the-math-once-and-for-all/&quot;&gt;an extensive price comparison&lt;/a&gt; between the MacBook and comparably-equipped laptops from Dell, hp, and Sony (h/t &lt;a href=&quot;http://daringfireball.net/linked/2008/08/16/mccracken&quot;&gt;daring fireball&lt;/a&gt;). I thought I'd post here a similar comparison I did between comparably-equipped desktop machines from Apple and Dell back in 2002 (originally &lt;a href=&quot;http://slashdot.org/comments.pl?sid=26185&amp;amp;amp;cid=2846173&quot;&gt;posted to a slashdot comment&lt;/a&gt;). These numbers were drawn directly from the respective companies' online stores at the time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dell Dimension 8200&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pentium 4 1.7GHz&lt;/li&gt;
&lt;li&gt;256MB RAM&lt;/li&gt;
&lt;li&gt;40GB HD (no 60GB available)&lt;/li&gt;
&lt;li&gt;3yr ltd warranty/service plan&lt;/li&gt;
&lt;li&gt;Windows XP Home&lt;/li&gt;
&lt;li&gt;15in flat panel LCD (analog connector)&lt;/li&gt;
&lt;li&gt;64MB Geforce2 MX&lt;/li&gt;
&lt;li&gt;DVD-R/CD-RW drive&lt;/li&gt;
&lt;li&gt;Dell Jukebox, Image Expert 2000, Standard Dell Movie Studio bundle&lt;/li&gt;
&lt;li&gt;Microsoft Works 2002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Price: $2,209&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Apple iMac SuperDrive&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;G4 800MHz&lt;/li&gt;
&lt;li&gt;256MB RAM&lt;/li&gt;
&lt;li&gt;60GB HD (no 40GB available)&lt;/li&gt;
&lt;li&gt;3yr AppleCare Protection Plan [apple.com]&lt;/li&gt;
&lt;li&gt;Mac OS X and OS 9&lt;/li&gt;
&lt;li&gt;15in flat panel LCD (digitally connected)&lt;/li&gt;
&lt;li&gt;32MB Geforce2 MX&lt;/li&gt;
&lt;li&gt;DVD-R/CD-RW SuperDrive&lt;/li&gt;
&lt;li&gt;iTunes, iPhoto, iMovie, iDVD&lt;/li&gt;
&lt;li&gt;AppleWorks 6.2
&lt;strong&gt;Price: $1,948&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Difference: $261&lt;/strong&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://kbullock.ringworld.org/">
    <author>
      <name>kbullock</name>
    </author>
    <id>tag:kbullock.ringworld.org,2008-06-10:798</id>
    <published>2008-06-10T20:26:00Z</published>
    <updated>2008-06-10T21:42:40Z</updated>
    <category term="politics"/>
    <category term="mcclellan"/>
    <category term="media"/>
    <category term="war"/>
    <link href="http://kbullock.ringworld.org/2008/6/10/the-media-s-fault" rel="alternate" type="text/html"/>
    <title>The Media's fault</title>
<summary type="html">&lt;p&gt;I've mostly refrained from comment, even in my face-to-face life, about &lt;a href=&quot;http://www.amazon.com/What-Happened-Washingtons-Culture-Deception/dp/1586485563/&quot; title=&quot;amazon.com&quot;&gt;Scott McClellan's book&lt;/a&gt;, because &lt;a href=&quot;http://twitter.com/matthewbaldwin/statuses/821824102&quot; title=&quot;twitter.com&quot;&gt;the only necessary summary&lt;/a&gt; was tweeted (twit? twitted?) so wonderfully when the book came out at the end of last month (thanks &lt;a href=&quot;http://daringfireball.net/linked/2008/may#wed-28-mcclellan&quot; title=&quot;daringfireball.net&quot;&gt;daringfireball&lt;/a&gt;). But the maddening stream of &lt;a href=&quot;http://www.msnbc.msn.com/id/21134540/vp/24854188#24854188&quot; title=&quot;msnbc.msn.com&quot;&gt;defensive&lt;/a&gt; &lt;a href=&quot;http://kristof.blogs.nytimes.com/2008/06/09/the-presss-mistakes/&quot; title=&quot;blogs.nytimes.com&quot;&gt;self-congratulation&lt;/a&gt; by members of the media can't stand unchallenged.&lt;/p&gt;

&lt;p&gt;Well, &lt;a href=&quot;http://www.salon.com/opinion/greenwald/2008/05/28/gibson/&quot; title=&quot;salon.com&quot;&gt;actually&lt;/a&gt;, it &lt;a href=&quot;http://krugman.blogs.nytimes.com/2008/06/09/what-do-you-mean-we-white-man/&quot; title=&quot;blogs.nytimes.com&quot;&gt;hasn't&lt;/a&gt;. While I have no truck with Scott McClellan blaming the media for letting the administration start a war about which my views have been clear since before it started, neither should the media be so quick to congratulate themselves for their coverage:&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;I've mostly refrained from comment, even in my face-to-face life, about &lt;a href=&quot;http://www.amazon.com/What-Happened-Washingtons-Culture-Deception/dp/1586485563/&quot; title=&quot;amazon.com&quot;&gt;Scott McClellan's book&lt;/a&gt;, because &lt;a href=&quot;http://twitter.com/matthewbaldwin/statuses/821824102&quot; title=&quot;twitter.com&quot;&gt;the only necessary summary&lt;/a&gt; was tweeted (twit? twitted?) so wonderfully when the book came out at the end of last month (thanks &lt;a href=&quot;http://daringfireball.net/linked/2008/may#wed-28-mcclellan&quot; title=&quot;daringfireball.net&quot;&gt;daringfireball&lt;/a&gt;). But the maddening stream of &lt;a href=&quot;http://www.msnbc.msn.com/id/21134540/vp/24854188#24854188&quot; title=&quot;msnbc.msn.com&quot;&gt;defensive&lt;/a&gt; &lt;a href=&quot;http://kristof.blogs.nytimes.com/2008/06/09/the-presss-mistakes/&quot; title=&quot;blogs.nytimes.com&quot;&gt;self-congratulation&lt;/a&gt; by members of the media can't stand unchallenged.&lt;/p&gt;

&lt;p&gt;Well, &lt;a href=&quot;http://www.salon.com/opinion/greenwald/2008/05/28/gibson/&quot; title=&quot;salon.com&quot;&gt;actually&lt;/a&gt;, it &lt;a href=&quot;http://krugman.blogs.nytimes.com/2008/06/09/what-do-you-mean-we-white-man/&quot; title=&quot;blogs.nytimes.com&quot;&gt;hasn't&lt;/a&gt;. While I have no truck with Scott McClellan blaming the media for letting the administration start a war about which my views have been clear since before it started, neither should the media be so quick to congratulate themselves for their coverage:&lt;/p&gt;
&lt;blockquote&gt;
    &lt;p&gt;A majority of Democrats in the House voted against the authorization of force... There were also huge antiwar demonstrations, which received stunningly little coverage.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Some of which I helped organize in my admittedly tiny little college town. It's not ultimately the media's fault we invaded Iraq&amp;mdash;rarely is the media fully to blame for anything we try to push off on them&amp;mdash;but as usual, they bear the responsibility for giving a louder voice to those in power and ignoring all others.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://kbullock.ringworld.org/">
    <author>
      <name>kbullock</name>
    </author>
    <id>tag:kbullock.ringworld.org,2008-06-09:797</id>
    <published>2008-06-09T18:38:00Z</published>
    <updated>2008-06-09T19:32:07Z</updated>
    <category term="politics"/>
    <category term="csa"/>
    <category term="food"/>
    <category term="gardening"/>
    <category term="local"/>
    <category term="locavore"/>
    <link href="http://kbullock.ringworld.org/2008/6/9/food-security" rel="alternate" type="text/html"/>
    <title>Food security</title>
<summary type="html">&lt;p&gt;For the second year, my lovely partner and I have signed up for a &lt;a href=&quot;http://en.wikipedia.org/wiki/Community-supported_agriculture&quot; title=&quot;Community-supported agriculture - Wikipedia&quot;&gt;&lt;abbr title=&quot;Community Supported Agriculture &quot;&gt;CSA&lt;/abbr&gt;&lt;/a&gt; share. We were mostly happy with last year's, but they seemed to pick everything just a little too late; the produce we got was often a little too large and a bit bitter. This year we've signed up with the &lt;a href=&quot;http://www.localharvest.org/farms/M19979&quot; title=&quot;Turtle Creek CSA&quot;&gt;Turtle Creek Farm&lt;/a&gt;, and our first box came on Friday for pick-up at &lt;a href=&quot;http://www.hampdenparkcoop.com/&quot; title=&quot;Hampden Park Co-op&quot;&gt;our favorite co-op&lt;/a&gt;. So far, as expected, there's a lot of spring greens, including some tasty-looking spinach we'll be having tonight (probably as a salad). All of it looks really good, and the family running it seem really friendly.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Below the fold: our garden, companion planting, locavores and kitchen gardeners&lt;/em&gt;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;For the second year, my lovely partner and I have signed up for a &lt;a href=&quot;http://en.wikipedia.org/wiki/Community-supported_agriculture&quot; title=&quot;Community-supported agriculture - Wikipedia&quot;&gt;&lt;abbr title=&quot;Community Supported Agriculture &quot;&gt;CSA&lt;/abbr&gt;&lt;/a&gt; share. We were mostly happy with last year's, but they seemed to pick everything just a little too late; the produce we got was often a little too large and a bit bitter. This year we've signed up with the &lt;a href=&quot;http://www.localharvest.org/farms/M19979&quot; title=&quot;Turtle Creek CSA&quot;&gt;Turtle Creek Farm&lt;/a&gt;, and our first box came on Friday for pick-up at &lt;a href=&quot;http://www.hampdenparkcoop.com/&quot; title=&quot;Hampden Park Co-op&quot;&gt;our favorite co-op&lt;/a&gt;. So far, as expected, there's a lot of spring greens, including some tasty-looking spinach we'll be having tonight (probably as a salad). All of it looks really good, and the family running it seem really friendly.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Below the fold: our garden, companion planting, locavores and kitchen gardeners&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We also have our own garden going, a 5 x 20 ft. plot that I started a couple years ago. This year is the first time we've managed to get the thing planted in time to have some real success with it. The long, cold spring helped us in that regard&amp;mdash;it gave us more time to buy seeds and plants and get them into the ground. Currently planted:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Three &lt;a href=&quot;http://en.wikipedia.org/wiki/Three_Sisters_%28agriculture%29&quot; title=&quot;Three Sisters (agriculture) - Wikipedia&quot;&gt;mounds&lt;/a&gt; with corn, to be joined by beans and squash&lt;/li&gt;
&lt;li&gt;Six tomato plants, &lt;a href=&quot;http://en.wikipedia.org/wiki/Companion_planting&quot; title=&quot;Companion planting - Wikipedia&quot;&gt;companion-planted&lt;/a&gt; with two Thai basil plants&lt;/li&gt;
&lt;li&gt;One half-row each of butterhead lettuce and spinach&lt;/li&gt;
&lt;li&gt;One row of onions (though I'm pretty sure these won't work)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This evening I'll be planting the other half-row each of spinach and lettuce, so that I can harvest them incrementally. I'll also be planting the beans and squash to join the corn.&lt;/p&gt;

&lt;p&gt;Meanwhile, I'm following the pursuits of similar-minded folks around the country via the &lt;a href=&quot;http://splendidtable.publicradio.org/locavore_nation/&quot; title=&quot;Locavore Nation&quot;&gt;Locavore Nation&lt;/a&gt; blogs. I've also been regularly reading the &lt;a href=&quot;http://www.kitchengardeners.org/&quot; title=&quot;Kitchen Gardeners International&quot;&gt;Kitchen Gardeners International&lt;/a&gt; site for tips, and by the end of the summer we'd like to be able to can our extra produce.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://kbullock.ringworld.org/">
    <author>
      <name>kbullock</name>
    </author>
    <id>tag:kbullock.ringworld.org,2008-06-04:796</id>
    <published>2008-06-04T20:34:00Z</published>
    <updated>2008-06-04T20:37:15Z</updated>
    <category term="haiti"/>
    <category term="hospitality"/>
    <link href="http://kbullock.ringworld.org/2008/6/4/haitian-hospitality" rel="alternate" type="text/html"/>
    <title>Haitian hospitality</title>
<summary type="html">&lt;p&gt;&lt;em&gt;[This is the piece I wrote for our monthly parish newsletter about the trip. There will be more to come about Haiti.]&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In the United States, the only things we hear about Haiti are that they're either starving or rioting. Certainly Haiti is deeply in need of our help, especially as the worsening worldwide food crisis affects the people there most strongly, but the wholeness of Haiti cannot be reduced to such a simple description. From the moment we arrived, we were shown overwhelming hospitality. At the guest house in Leogane, we were greeted by a beautiful and tasty dinner of rice, beans, fish, and vegetables, the work of Fenide Deravil and her helpers at the guest house.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;&lt;em&gt;[This is the piece I wrote for our monthly parish newsletter about the trip. There will be more to come about Haiti.]&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In the United States, the only things we hear about Haiti are that they're either starving or rioting. Certainly Haiti is deeply in need of our help, especially as the worsening worldwide food crisis affects the people there most strongly, but the wholeness of Haiti cannot be reduced to such a simple description. From the moment we arrived, we were shown overwhelming hospitality. At the guest house in Leogane, we were greeted by a beautiful and tasty dinner of rice, beans, fish, and vegetables, the work of Fenide Deravil and her helpers at the guest house.&lt;/p&gt;
&lt;p&gt;After the service on Sunday, we were again shown the utmost hospitality by Joseph Laborde, the lay leader and school administrator at St Philippe et St Jacques, and his wife, who invited us to their home for lunch. We sat on their front porch and chatted about his hopes for his son Jonas, who is currently a teacher at the school but also attending university in Port-au-Prince.&lt;/p&gt;

&lt;p&gt;And finally, Fr. Kerwin Delicat and his family were the most gracious of hosts throughout our stay in Leogane. They translated for us, had us visit them at their home repeatedly, and even took us to the beach at Jacmel one fine afternoon. The culmination of their hospitality, though, was the evening we spent with Kerwin+, his wife Rholcie and daughter Kercie, his brothers Carlo and Roosnel, and his aunt Celecia. Rholcie and Celecia prepared a wonderful meal for us, and Carlo even gave us a little musical entertainment (with vocal help from his brothers).&lt;/p&gt;

&lt;p&gt;This is how we build a true partnership, and I'm looking forward to the opportunity to show Kerwin+ and Rholcie the same hospitality when they come to visit us.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://kbullock.ringworld.org/">
    <author>
      <name>kbullock</name>
    </author>
    <id>tag:kbullock.ringworld.org,2008-04-17:793</id>
    <published>2008-04-17T16:07:00Z</published>
    <updated>2008-04-17T16:23:08Z</updated>
    <category term="haiti"/>
    <category term="biofuel ethanol poverty"/>
    <link href="http://kbullock.ringworld.org/2008/4/17/nou-prale-en-ayiti" rel="alternate" type="text/html"/>
    <title>Nou pral&#233; en Ayiti</title>
<content type="html">
            &lt;p&gt;We heard from our hosts in both Port-au-Prince and Leogane on Tuesday that it's safe again, so we're leaving on Saturday as planned. I've created a &lt;a href=&quot;/haiti&quot;&gt;new section&lt;/a&gt; in case you want to follow just my posts on Haiti. It's likely all I'll be posting from now until we get back.&lt;/p&gt;

&lt;p&gt;Meanwhile:&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;&quot;The grain required to fill a 25-gallon SUV tank with ethanol will feed one person for a year,&quot; [&lt;em&gt;Plan B 3.0: Mobilizing to Save Civilization&lt;/em&gt; author Lester] Brown says. &quot;And what we are seeing now is the emergence of direct competition between the 860 million people in the world who own automobiles and who want to maintain their mobility while the 2 billion poorest people in the world simply want to survive.&quot;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;(via &lt;a href=&quot;http://www.npr.org/templates/story/story.php?storyId=89612926&amp;amp;amp;sc=emaf&quot;&gt;NPR&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Also, the &lt;a href=&quot;http://www.aidg.org/&quot;&gt;AIDG&lt;/a&gt; out of Boston has collected a good set of &lt;a href=&quot;http://www.aidg.org/component/option,com_jd-wp/Itemid,34/p,1043/&quot;&gt;eyewitness accounts&lt;/a&gt; from the protests last week.&lt;/p&gt;
          </content>  </entry>
</feed>
