<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Matt Brubeck: Planet Matt</title>
	<link>http://limpet.net/mbrubeck/planet/</link>
	<language>en</language>
	<description>Matt Brubeck: Planet Matt - http://limpet.net/mbrubeck/planet/</description>

<item>
	<title>Bookmarks: The School Issue - Preschool - Can the Right Kinds of Play Teach Self-Control? - NYTimes.com</title>
	<guid isPermaLink="true">http://www.nytimes.com/2009/09/27/magazine/27tools-t.html?pagewanted=all</guid>
	<link>http://www.nytimes.com/2009/09/27/magazine/27tools-t.html?pagewanted=all</link>
	<description>&quot;If you want to succeed in school and in life, they say, you first need to do what Abigail and Jocelyn and Henry have done every school day for the past two years: spend hour after hour dressing up in firefighter hats and wedding gowns, cooking make-believe hamburgers and pouring nonexistent tea.&quot;  Profile of a school using the Tools of the Mind method.</description>
	<pubDate>Sat, 06 Mar 2010 16:22:22 +0000</pubDate>
</item>
<item>
	<title>Asides: How did I miss @dkpan's 24-hour Haruki Murakami reading last summer, one block from my office? http://occidentalpark.wordpress.com/events/</title>
	<guid isPermaLink="true">http://twitter.com/mbrubeck/statuses/9904900522</guid>
	<link>http://twitter.com/mbrubeck/statuses/9904900522</link>
	<description>How did I miss @dkpan's 24-hour Haruki Murakami reading last summer, one block from my office? http://occidentalpark.wordpress.com/events/</description>
	<pubDate>Wed, 03 Mar 2010 02:41:07 +0000</pubDate>
</item>
<item>
	<title>Asides: Found the banknotes' owner, @dkpan. Due to his name's shortness, it was unabridged on the library's hold slip. We got in touch on Facebook.</title>
	<guid isPermaLink="true">http://twitter.com/mbrubeck/statuses/9904504670</guid>
	<link>http://twitter.com/mbrubeck/statuses/9904504670</link>
	<description>Found the banknotes' owner, @dkpan. Due to his name's shortness, it was unabridged on the library's hold slip. We got in touch on Facebook.</description>
	<pubDate>Wed, 03 Mar 2010 02:32:39 +0000</pubDate>
</item>
<item>
	<title>Asides: Tonight I found one Soviet- and one Iranian banknote in my library book (&quot;Girl with Curious Hair&quot;).</title>
	<guid isPermaLink="true">http://twitter.com/mbrubeck/statuses/9903659539</guid>
	<link>http://twitter.com/mbrubeck/statuses/9903659539</link>
	<description>Tonight I found one Soviet- and one Iranian banknote in my library book (&quot;Girl with Curious Hair&quot;).</description>
	<pubDate>Wed, 03 Mar 2010 02:13:14 +0000</pubDate>
</item>
<item>
	<title>Asides: @mhewner Ringdroid was written Audacity author Dominic Mazzoni, who first introduced me to Josh Haberman (and thus indirectly to you)!</title>
	<guid isPermaLink="true">http://twitter.com/mbrubeck/statuses/9887122283</guid>
	<link>http://twitter.com/mbrubeck/statuses/9887122283</link>
	<description>@mhewner Ringdroid was written Audacity author Dominic Mazzoni, who first introduced me to Josh Haberman (and thus indirectly to you)!</description>
	<pubDate>Tue, 02 Mar 2010 19:12:05 +0000</pubDate>
</item>
<item>
	<title>Bookmarks: Correct way to handle mobile browsers</title>
	<guid isPermaLink="true">http://ericholscher.com/blog/2009/nov/9/correct-way-handle-mobile-browsers/</guid>
	<link>http://ericholscher.com/blog/2009/nov/9/correct-way-handle-mobile-browsers/</link>
	<description>Redirect mobile users to the mobile site automatically, or require them to choose explicitly?  Pro and con.</description>
	<pubDate>Mon, 01 Mar 2010 19:27:30 +0000</pubDate>
</item>
<item>
	<title>Weblog: The network is the human being</title>
	<guid isPermaLink="false">http://limpet.net/mbrubeck//2010/03/01/network-mind</guid>
	<link>http://limpet.net/mbrubeck/2010/03/01/network-mind.html</link>
	<description>&lt;p&gt;Nathanael Boehm wrote a nice essay last month called &lt;a href=&quot;http://loungesessions.wordpress.com/2010/02/22/the-future-of-employment/&quot;&gt;The Future of
Employment?&lt;/a&gt;, about a disconnect between workers' and employers' views of
social networks.  (This post is based partly on the ensuing Hacker News
&lt;a href=&quot;http://news.ycombinator.com/item?id=1141843&quot;&gt;thread&lt;/a&gt;.)  Boehm wrote:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;When I need help with a challenge at work or need to run some ideas past
people I don’t turn to my co-workers, I look to my network of colleagues
beyond the walls of my workplace. Whilst my co-workers might be competent at
their job they can’t hope to compete with the hundreds of people I have
access to through my social networks.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;The late Sun Microsystems taught us that &lt;a href=&quot;http://blogs.sun.com/jonathan/entry/the_network_is_the_computer&quot;&gt;the network is the computer&lt;/a&gt;.
It's true: we still use non-networked computers for specialized tasks, but
nobody wants one on their desk – it's just so useless compared to one that
talks to the entire world.  Boehm could have titled his essay &lt;em&gt;The Network is
the Employee&lt;/em&gt;.  There are still tasks that people do in isolation, but the
ability to contact a network of peers and experts makes the difference in my
job, and many others.&lt;/p&gt;

&lt;h2&gt;Alone together&lt;/h2&gt;

&lt;p&gt;The lone computer programmer in a small business has thousands of
colleagues on &lt;a href=&quot;http://stackoverflow.com/&quot;&gt;Stack Overflow&lt;/a&gt;, &lt;a href=&quot;http://www.reddit.com/&quot;&gt;Reddit&lt;/a&gt;, and so on.  It's a
messy way to find answers, but it's sure better than the days when your only choice
was to call tech support – or smack the box with your fist, whichever
seemed more useful. I can't begin to list all the problems I've solved and
things I've learned by Googling for others with experience, and
getting help from a different expert for every problem.&lt;/p&gt;

&lt;p&gt;Decades before the web, computer geeks had virtual communities on mailing
lists, Usenet, and IRC.  Now every job in the world has its corresponding forum.  Even
the night clerk at the gas station has &lt;a href=&quot;http://notalwaysright.com/&quot;&gt;Not Always Right&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Teaching has long been a solitary profession.  Despite working in a
crowded classroom, teachers are isolated; they rarely have colleagues
observing or participating directly in their work.  This has such an impact
that teachers are sometimes trained in meditation or reflection techniques, to
make up for the lack of external feedback.  So I'm curious what happens when
teachers start to work together remotely the way programmers do.&lt;/p&gt;

&lt;h2&gt;You will be assimilated&lt;/h2&gt;

&lt;p&gt;Boehm's essay also reminded me of a vague sci-fi idea I've been kicking
around: the first group minds will evolve from the intersection of &lt;a href=&quot;https://www.mturk.com/mturk/welcome&quot;&gt;Mechanical
Turk&lt;/a&gt;, virtual assistants, social networking, and augmented reality.&lt;/p&gt;

&lt;p&gt;Starting around the 1990s, it was possible to instantly &quot;know&quot; any fact that
was published online.  Since then, we've increased the amount of content
online, our tools for searching it, and ways of connecting to the network.
Today we have instant access to almost any published knowledge, anywhere.&lt;/p&gt;

&lt;p&gt;There are more people on the net too, and more ways to find
and talk to them. Most of us can contact dozens of friends at any given
moment, plus friends-of-friends, co-workers, fellow members of communites like
&lt;a href=&quot;http://news.ycombinator.com/&quot;&gt;Hacker News&lt;/a&gt; or &lt;a href=&quot;http://ask.metafilter.com/&quot;&gt;MetaFilter&lt;/a&gt;, and also complete strangers.  Along with raw facts,
we have access to vast amounts of human judgement, experience, and skill.&lt;/p&gt;

&lt;p&gt;One product of this is the &quot;virtual assistant,&quot; who provides a service that was
once exclusive to high-powered executives. Now personal assistants can
work remotely (often overseas), spread costs by serving many masters, and
leverage the internet superpowers listed above. Their services are mostly
targeted at small business owners and the &lt;a href=&quot;http://www.fourhourworkweek.com/&quot;&gt;Tim Ferriss&lt;/a&gt; crowd, but I'm sure
someone soon will market virtual assistance to all sorts of
other creative workers, teachers, even stay-at-home parents.&lt;/p&gt;

&lt;p&gt;So, how long before I can touch a button to let a remote assistant
see what I'm seeing in real-time and help me make transportation plans,
translate foreign signs and speech, look up emails related to whatever I'm
doing or thinking, or even advise me on what to say? Some of these queries
will go to my circle of friends, others to the general public, and some to a
personal assistant who is paid well to keep up with my specific needs.  And
that assistant of course will subcontract portions of each job
to computer programs, legions of cheap anonymous Turkers, or his or her own
network of helpers.  At that point, I'm augmenting my own perception,
memory, and judgement with a whole network of brains that I carry around, ready
to engage with any situation I meet.&lt;/p&gt;

&lt;p&gt;If nothing else, I hope someone writes a good sci-fi thriller story in which a
rogue virtual assistant manipulates the actions of unsuspecting clients,
leading them to some unseen end.&lt;/p&gt;</description>
	<pubDate>Mon, 01 Mar 2010 08:00:00 +0000</pubDate>
</item>
<item>
	<title>Bookmarks: New Moon Girls Online - New Moon Magazine</title>
	<guid isPermaLink="true">http://www.newmoon.com/</guid>
	<link>http://www.newmoon.com/</link>
	<description>&quot;Our bi-monthly magazine is 100% advertising-free, highest-quality content for girls age 8 and up! You won't find diet advice or popularity contests here.&quot;  The copy I saw in the library had some good science and engineering articles, among other things.</description>
	<pubDate>Sun, 28 Feb 2010 04:51:28 +0000</pubDate>
</item>
<item>
	<title>Bookmarks: Hg Init: a Mercurial tutorial by Joel Spolsky</title>
	<guid isPermaLink="true">http://hginit.com/</guid>
	<link>http://hginit.com/</link>
	<description>&quot;In this user-friendly, six-part tutorial, Joel Spolsky teaches you the key concepts.&quot;</description>
	<pubDate>Wed, 24 Feb 2010 18:59:40 +0000</pubDate>
</item>
<item>
	<title>Bookmarks: Vimium - Google Chrome extension</title>
	<guid isPermaLink="true">https://chrome.google.com/extensions/detail/dbepggeogbaibhgnhhndojpepiihcmeb</guid>
	<link>https://chrome.google.com/extensions/detail/dbepggeogbaibhgnhhndojpepiihcmeb</link>
	<description>&quot;Vimium provides keyboard shortcuts for navigation and control in the spirit of Vim.&quot;</description>
	<pubDate>Wed, 17 Feb 2010 23:35:13 +0000</pubDate>
</item>
<item>
	<title>Bookmarks: creationix's Do</title>
	<guid isPermaLink="true">http://github.com/creationix/do</guid>
	<link>http://github.com/creationix/do</link>
	<description>A JavaScript concurrency library (similar to Oni or Arrowlets) for Node.js.</description>
	<pubDate>Wed, 17 Feb 2010 20:25:38 +0000</pubDate>
</item>
<item>
	<title>Bookmarks: GF - Grammatical Framework</title>
	<guid isPermaLink="true">http://www.grammaticalframework.org/</guid>
	<link>http://www.grammaticalframework.org/</link>
	<description>A functional programming language for parsing and transforming both programming languages and natural (human) languages.</description>
	<pubDate>Sat, 13 Feb 2010 00:25:05 +0000</pubDate>
</item>
<item>
	<title>Asides: Google Buzz now asks you to choose and preview your privacy settings before your first post is published: http://bit.ly/bngqpP</title>
	<guid isPermaLink="true">http://twitter.com/mbrubeck/statuses/9015602687</guid>
	<link>http://twitter.com/mbrubeck/statuses/9015602687</link>
	<description>Google Buzz now asks you to choose and preview your privacy settings before your first post is published: http://bit.ly/bngqpP</description>
	<pubDate>Fri, 12 Feb 2010 16:32:25 +0000</pubDate>
</item>
<item>
	<title>Asides: Bought plane tickets to go to Baltimore/DC next month.  I hope it's thawed out by then.</title>
	<guid isPermaLink="true">http://twitter.com/mbrubeck/statuses/8972943745</guid>
	<link>http://twitter.com/mbrubeck/statuses/8972943745</link>
	<description>Bought plane tickets to go to Baltimore/DC next month.  I hope it's thawed out by then.</description>
	<pubDate>Thu, 11 Feb 2010 18:53:51 +0000</pubDate>
</item>
<item>
	<title>About me: Google profile</title>
	<guid isPermaLink="false">http://claimid.com/cf8ea7441345baf3d3a23dcffccce49540951a42</guid>
	<link>http://www.google.com/profiles/mbrubeck</link>
	<description>Follow me on Google Buzz, Chat, Reader, etc.</description>
	<pubDate>Wed, 10 Feb 2010 19:05:08 +0000</pubDate>
</item>
<item>
	<title>Bookmarks: Worse Is Better</title>
	<guid isPermaLink="true">http://dreamsongs.com/WorseIsBetter.html</guid>
	<link>http://dreamsongs.com/WorseIsBetter.html</link>
	<description>Richard Gabriel recounts the history of the classic papers by himself and &quot;Nickieben Bourbaki.&quot;</description>
	<pubDate>Tue, 09 Feb 2010 16:41:19 +0000</pubDate>
</item>
<item>
	<title>Bookmarks: Prezi - The zooming presentation editor</title>
	<guid isPermaLink="true">http://prezi.com/</guid>
	<link>http://prezi.com/</link>
	<description>Instead of &quot;slideshows,&quot; uses a single canvas with slick zooming and panning.</description>
	<pubDate>Fri, 22 Jan 2010 16:28:13 +0000</pubDate>
</item>
<item>
	<title>Asides: @bernard_ben Got an Android phone? I like SeattleBusBot (by co-worker @joulespersecond), Google Sky Map, Google Voice, and Toddler Lock.</title>
	<guid isPermaLink="true">http://twitter.com/mbrubeck/statuses/7948517132</guid>
	<link>http://twitter.com/mbrubeck/statuses/7948517132</link>
	<description>@bernard_ben Got an Android phone? I like SeattleBusBot (by co-worker @joulespersecond), Google Sky Map, Google Voice, and Toddler Lock.</description>
	<pubDate>Tue, 19 Jan 2010 15:16:07 +0000</pubDate>
</item>
<item>
	<title>Bookmarks: Khan Academy</title>
	<guid isPermaLink="true">http://www.khanacademy.org/</guid>
	<link>http://www.khanacademy.org/</link>
	<description>Short educational videos &quot;covering everything from basic arithmetic and algebra to differential equations, physics, chemistry, biology and finance.&quot;</description>
	<pubDate>Sun, 17 Jan 2010 17:22:15 +0000</pubDate>
</item>
<item>
	<title>Asides: Atomic Robo is a must-read for anyone who likes Girl Genius or Penny Arcade (I'm looking at you, @bernard_ben): http://doiop.com/atomic</title>
	<guid isPermaLink="true">http://twitter.com/mbrubeck/statuses/7851603613</guid>
	<link>http://twitter.com/mbrubeck/statuses/7851603613</link>
	<description>Atomic Robo is a must-read for anyone who likes Girl Genius or Penny Arcade (I'm looking at you, @bernard_ben): http://doiop.com/atomic</description>
	<pubDate>Sun, 17 Jan 2010 04:04:25 +0000</pubDate>
</item>
<item>
	<title>Bookmarks: Pausing JavaScript with async.js - Elijah Grey</title>
	<guid isPermaLink="true">http://eligrey.com/blog/post/pausing-javascript-with-async-js</guid>
	<link>http://eligrey.com/blog/post/pausing-javascript-with-async-js</link>
	<description>&quot;async.js is a library that aims to make it so you don’t have to mess with callbacks when making applications in JavaScript 1.7 or higher by using the yield statement to pause function execution.&quot;</description>
	<pubDate>Wed, 13 Jan 2010 22:27:23 +0000</pubDate>
</item>
<item>
	<title>Weblog: Finding domain names with Node.js</title>
	<guid isPermaLink="false">http://limpet.net/mbrubeck//2010/01/13/si-unit-domains-node-js</guid>
	<link>http://limpet.net/mbrubeck/2010/01/13/si-unit-domains-node-js.html</link>
	<description>&lt;p&gt;I'm working on some ideas for finance or news software that deliberately
updates &lt;em&gt;infrequently&lt;/em&gt;, so it doesn't reward me for reloading it
constantly.  I came up with the name &quot;microhertz&quot; to describe the idea.  (1
microhertz ≈ once every eleven and a half days.)&lt;/p&gt;

&lt;p&gt;As usual when I think of a project name, I did some DNS searches.
Unfortunately &quot;microhertz.com&quot; is not available (but &quot;microhertz.org&quot; is).
Then I went off on a tangent and got curious about which other SI units are
available as domain names.&lt;/p&gt;

&lt;p&gt;This was the perfect opportunity to try &lt;a href=&quot;http://nodejs.org/&quot;&gt;node.js&lt;/a&gt; so I could use its
asynchronous DNS library to run dozens of lookups in parallel.  I grabbed a
list of &lt;a href=&quot;http://physics.nist.gov/cuu/Units/&quot;&gt;units and prefixes&lt;/a&gt; from NIST and wrote the following script:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;var dns = require(&quot;dns&quot;), sys = require('sys');

var prefixes = [&quot;yotta&quot;, &quot;zetta&quot;, &quot;exa&quot;, &quot;peta&quot;, &quot;tera&quot;, &quot;giga&quot;, &quot;mega&quot;,
  &quot;kilo&quot;, &quot;hecto&quot;, &quot;deka&quot;, &quot;deci&quot;, &quot;centi&quot;, &quot;milli&quot;, &quot;micro&quot;, &quot;nano&quot;,
  &quot;pico&quot;, &quot;femto&quot;, &quot;atto&quot;, &quot;zepto&quot;, &quot;yocto&quot;];

var units = [&quot;meter&quot;, &quot;gram&quot;, &quot;second&quot;, &quot;ampere&quot;, &quot;kelvin&quot;, &quot;mole&quot;,
  &quot;candela&quot;, &quot;radian&quot;, &quot;steradian&quot;, &quot;hertz&quot;, &quot;newton&quot;, &quot;pascal&quot;, &quot;joule&quot;,
  &quot;watt&quot;, &quot;colomb&quot;, &quot;volt&quot;, &quot;farad&quot;, &quot;ohm&quot;, &quot;siemens&quot;, &quot;weber&quot;, &quot;henry&quot;,
  &quot;lumen&quot;, &quot;lux&quot;, &quot;becquerel&quot;, &quot;gray&quot;, &quot;sievert&quot;, &quot;katal&quot;];

for (var i=0; i&amp;lt;prefixes.length; i++) {
  for (var j=0; j&amp;lt;units.length; j++) {
    checkAvailable(prefixes[i] + units[j] + &quot;.com&quot;, sys.puts);
  }
}

function checkAvailable(name, callback) {
  dns.resolve4(name).addErrback(function(e) {
    if (e.errno == dns.NXDOMAIN) callback(name);
  })
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Out of 540 possible .com names, I found 376 that are available (and 10 more
that produced temporary DNS errors, which I haven't investigated).  Here are a
few interesting ones, with some commentary:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;exasecond.com  – &lt;i&gt;32 billion years&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;petasecond.com  – &lt;i&gt;32 million years&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;petawatt.com  – &lt;i&gt;can be produced for femtoseconds by powerful lasers&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;terapascal.com&lt;/li&gt;
&lt;li&gt;gigakelvin.com  – &lt;i&gt;possible temperature of picosecond flashes in sonoluminescence&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;giganewton.com  – &lt;i&gt;225 million pounds force&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;gigafarad.com&lt;/li&gt;
&lt;li&gt;kilosecond.com  – &lt;i&gt;16 minutes 40 seconds&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;kilokelvin.com  – &lt;i&gt;1340 degrees Fahrenheit&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;centiohm.com&lt;/li&gt;
&lt;li&gt;millifarad.com&lt;/li&gt;
&lt;li&gt;microkelvin.com&lt;/li&gt;
&lt;li&gt;picohertz.com  – &lt;i&gt;once every 31,689 years&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;picojoule.com&lt;/li&gt;
&lt;li&gt;femtogram.com  – &lt;i&gt;mass of a single virus&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;yoctogram.com  – &lt;i&gt;a hydrogen atom weighs 1.66 yoctograms&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;zeptomole.com  – &lt;i&gt;602 molecules&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;To get the complete list, just copy the script above to a file, and run it
like this: &lt;code&gt;node listnames.js&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Along the way I discovered that the API documentation for Node's &lt;code&gt;dns&lt;/code&gt; module
was out-of-date.  This is &lt;a href=&quot;http://github.com/mbrubeck/node/commit/bd4f56c8239aca12b6f7c2016bda51507ba7aec7&quot;&gt;fixed&lt;/a&gt; in my GitHub fork, and I've sent a pull
request to the author Ryan Dahl.&lt;/p&gt;</description>
	<pubDate>Wed, 13 Jan 2010 08:00:00 +0000</pubDate>
</item>
<item>
	<title>Weblog: Weekend hack: Outline grep</title>
	<guid isPermaLink="false">http://limpet.net/mbrubeck//2010/01/12/outline-grep</guid>
	<link>http://limpet.net/mbrubeck/2010/01/12/outline-grep.html</link>
	<description>&lt;p&gt;I keep almost all of my notes and to-do lists in plain text files, so I can
edit and search them with Vim, grep, and other standard Unix tools.  I often
indent lines in these files to create a simple outline structure, and use the
&lt;code&gt;autoindent&lt;/code&gt; and &lt;code&gt;foldmethod=indent&lt;/code&gt; options to make Vim into a simple
outliner.&lt;/p&gt;

&lt;p&gt;To get useful output when searching through these outline-structured files, I
wrote a simple grep replacement.  Given a text file with a Python-style
indentation structure, &lt;code&gt;ogrep&lt;/code&gt; searches the file for a regular expression.  It
prints matching lines, with their &quot;parent&quot; lines as context.  For example, if
input.txt looks like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;2009-01-01
  New Year's Day!
    No work today.
    Visit with family.
2009-01-02
  Grocery store and library.
2009-01-03
  Stay home.
2009-01-04
  Back to work.
    Remember to set an alarm.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;then &lt;code&gt;ogrep work input.txt&lt;/code&gt; will produce the following output:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;2009-01-01
  New Year's Day!
    No work today.
2009-01-04
  Back to work.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You can download ogrep from the &lt;a href=&quot;http://github.com/mbrubeck/outline-grep&quot;&gt;outline-grep repository&lt;/a&gt; on GitHub, or
just read the &lt;a href=&quot;http://github.com/mbrubeck/outline-grep/blob/master/OutlineGrep.lhs&quot;&gt;literate Haskell file&lt;/a&gt;.  The code is almost trivial (40
lines of code, plus imports and comments); I'm publishing it just in case
anyone else has a use for it, and because some of my friends were curious
about how I'm using Haskell.  I've now written a few &quot;real-world&quot; Haskell
programs (&lt;a href=&quot;http://limpet.net/mbrubeck/2009/10/30/compleat.html&quot;&gt;compleat&lt;/a&gt; was the first).  I'm finding Haskell very well suited
to such programs, though this particular one would be equally easy in a
language like Perl, Python, or Ruby.&lt;/p&gt;

&lt;p&gt;This is a one-off tool to fill a gap in my workflow; there are no
configuration options or useful error messages.  It would be fairly easy to
extend it, though.  For example, an option to include children (as well as
parents) of matching lines might be handy.  I recently realized that ogrep
often works for searching through source code too, which may generate some
more unexpected use cases.&lt;/p&gt;</description>
	<pubDate>Tue, 12 Jan 2010 08:00:00 +0000</pubDate>
</item>

</channel>
</rss>
