<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://nedbatchelder.com/rssfull2html.xslt" media="screen" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/">
	<channel rdf:about="http://nedbatchelder.com//blog">
		<title>Ned Batchelder's blog</title>
		<link>http://nedbatchelder.com/blog</link>
		<description>Ned Batchelder's personal blog.</description>
		<dc:language>en-US</dc:language>
		<image rdf:resource="http://nedbatchelder.com/pix/rss-banner.gif"/>
		<items>
			<rdf:Seq>
				<rdf:li resource="http://nedbatchelder.com/blog/201205/coveragepy_v352.html"/><rdf:li resource="http://nedbatchelder.com/blog/201204/coveragepy_v352b1.html"/><rdf:li resource="http://nedbatchelder.com/blog/201204/two_problems.html"/><rdf:li resource="http://nedbatchelder.com/blog/201204/python_iteration_presentation.html"/><rdf:li resource="http://nedbatchelder.com/blog/201204/unicode_tidbits.html"/><rdf:li resource="http://nedbatchelder.com/blog/201203/what_files_should_coverage_measure.html"/><rdf:li resource="http://nedbatchelder.com/blog/201203/breaking_out_of_two_loops_at_once.html"/><rdf:li resource="http://nedbatchelder.com/blog/201203/happy_belated_pi_day.html"/><rdf:li resource="http://nedbatchelder.com/blog/201203/pragmatic_unicode.html"/><rdf:li resource="http://nedbatchelder.com/blog/201203/ten_years.html"/>
			</rdf:Seq>
		</items>
	</channel>
	<image rdf:about="http://nedbatchelder.com/pix/rss-banner.gif">
		<title>Ned Batchelder's blog</title>
		<link>http://nedbatchelder.com/blog</link>
		<url>http://nedbatchelder.com/pix/rss-banner.gif</url>
	</image>
	
	<item rdf:about="http://nedbatchelder.com/blog/201205/coveragepy_v352.html">
		<title>Coverage.py v3.5.2</title>
		<link>http://nedbatchelder.com/blog/201205/coveragepy_v352.html</link>
		
		<dc:date>2012-05-04T09:36:00-04:00</dc:date>
		<dc:creator>Ned Batchelder</dc:creator>
		<description><![CDATA[<p>Since posting v3.5.2 beta 1 last Sunday, no one has said anything about it, so it must be perfect.
        The exact same code is now <a class="offsite" href="http://pypi.python.org/pypi/coverage/3.5.2">Coverage.py v3.5.2</a>.
        This release of the foremost code coverage tool for Python includes a number of small fixes.
        The full details, including links to the tickets that were closed, are in the 
        <a href="http://nedbatchelder.com/code/coverage/changes.html">coverage.py change history</a>.</p><p>May all your lines and branches be covered!</p>
]]></description>
	</item>
	
	<item rdf:about="http://nedbatchelder.com/blog/201204/coveragepy_v352b1.html">
		<title>Coverage.py v3.5.2b1</title>
		<link>http://nedbatchelder.com/blog/201204/coveragepy_v352b1.html</link>
		
		<dc:date>2012-04-29T16:50:00-04:00</dc:date>
		<dc:creator>Ned Batchelder</dc:creator>
		<description><![CDATA[<p>I just posted <a class="offsite" href="http://pypi.python.org/pypi/coverage/3.5.2b1">Coverage.py v3.5.2 beta 1</a>.
        This release of the foremost code coverage tool for Python includes a number of small fixes:</p><ul>
        <li>The HTML report has been slightly tweaked.</li>
        <li>You can now provide custom CSS for the HTML report if you'd like to tweak it further.</li>
        <li>Source files with encodings declared at the top are properly handled in the HTML report in Python 2.
            They had always been handled properly in Python 3.</li>
        <li>Better error handling when a supposed Python file can't be parsed.</li>
        <li>Better handling of exit status for the coverage command.</li>
        <li>Better installation in PyPy.</li>
    </ul><p>The full details, including links to the tickets that were closed, are in the 
        <a href="http://nedbatchelder.com/code/coverage/beta/changes.html">coverage.py beta change history</a>.</p><p>Please give this a try, and let me know of any problems.  Given the nature of the
        changes, I should be upgrading it to "released" within the week.</p>
]]></description>
	</item>
	
	<item rdf:about="http://nedbatchelder.com/blog/201204/two_problems.html">
		<title>Two problems</title>
		<link>http://nedbatchelder.com/blog/201204/two_problems.html</link>
		
		<dc:date>2012-04-26T07:41:59-04:00</dc:date>
		<dc:creator>Ned Batchelder</dc:creator>
		<description><![CDATA[<p>Once upon a time, Jamie Zawinski said,</p><blockquote><div><p>Some people, when confronted with a problem, think, "I know, I'll use regular expressions."  
        Now they have two problems.</p></div></blockquote><p>BTW: Jeffrey Friedl <a class="offsite" href="http://regex.info/blog/2006-09-15/247">dug into the history</a> and
    found that someone said it about awk before jwz said it about regular expressions!</p><p>I seem to have developed a fascination for new variants of this joke, especially where the concept being 
    referenced is important to the structure of the joke.
    For example, <a href="https://twitter.com/#!/nedbat/status/86148862733074432">last June I said</a>,</p><blockquote><div><p>Some people, when faced with a problem, think, "I know, I'll use binary." Now they have 10 problems.</p></div></blockquote><p>The other day <a href="https://twitter.com/#!/nedbat/status/194452404794691584">I contributed</a>,</p><blockquote><div><p>Some people, when confronted with a problem, think, "I know, I'll use threads," and then two they hav erpoblesms.</p></div></blockquote><p>It seems that Eiríkr Åsheim <a href="https://twitter.com/#!/d6/statuses/160439872828620800">earlier</a> had a similar one,</p><blockquote><div><p>Some people, when confronted with a problem, think "I know, I'll use multithreading". Nothhw tpe yawrve o oblems.</p></div></blockquote><p>Making fun of Java is easy. <a href="https://twitter.com/#!/Lonnen/status/165544721874292736">Chris Lonnen said</a>,</p><blockquote><div><p>Some people see a problem and think "I know, I'll use Java!" Now they have a ProblemFactory.</p></div></blockquote><p>Floating point can be surprising.  <a href="https://twitter.com/#!/tomscott/status/174143430170120192">Tom Scott</a> quipped,</p><blockquote><div><p>Some programmers, when confronted with a problem, think "I know, I'll use floating point arithmetic." Now they have 1.999999999997 problems.</p></div></blockquote><p>Finally, this is not a technical joke, but is too true to leave out.  <a href="https://twitter.com/#!/holdenweb/statuses/195308761936707585">Tom Dale said (and then deleted?)</a>,</p><blockquote><div><p>Some people, wanting an escape from their full-time job, think "I know, I'll contribute to open source." Now they have two full-time jobs.</p></div></blockquote><p>Brendan Berg has a <a class="offsite" href="http://sodiumdreams.com/post/19639754254/more-problems">list of others</a> if you want more...</p>
]]></description>
	</item>
	
	<item rdf:about="http://nedbatchelder.com/blog/201204/python_iteration_presentation.html">
		<title>Python iteration presentation</title>
		<link>http://nedbatchelder.com/blog/201204/python_iteration_presentation.html</link>
		
		<dc:date>2012-04-25T09:28:09-04:00</dc:date>
		<dc:creator>Ned Batchelder</dc:creator>
		<description><![CDATA[<p>Last night I did a half-hour <a href="http://nedbatchelder.com/text/iter.html">presentation about Python Iteration</a>,
        starting with the basics, and touching on generators and why they are wonderful.
        This was part of a night of <a class="offsite" href="http://meetup.bostonpython.com/events/51176162/">Foundational Topics</a> 
        at <a class="offsite" href="http://bostonpython.com">Boston Python</a>.</p><p>I'm not sure I got the level of the material right, I think there were people there who wanted to learn
        more, but this went too fast, or over their heads.  It's hard because there's no way to make it right
        for everyone.</p>
]]></description>
	</item>
	
	<item rdf:about="http://nedbatchelder.com/blog/201204/unicode_tidbits.html">
		<title>Unicode tidbits</title>
		<link>http://nedbatchelder.com/blog/201204/unicode_tidbits.html</link>
		
		<dc:date>2012-04-17T08:31:22-04:00</dc:date>
		<dc:creator>Ned Batchelder</dc:creator>
		<description><![CDATA[<p>Since writing <a href="http://nedbatchelder.com/text/unipain.html">Pragmatic Unicode, or, How do I stop the pain?</a>,
    I've collected a handful of Unicode-related stuff:</p><ul>

    <li>Unicode 6.1 came out last year, Andrew West's <a class="offsite" href="http://babelstone.blogspot.com/2011/06/whats-new-in-unicode-61.html">summary
            of the latest additions</a> is a view from the trenches.  The
        commenters on his blog are asking about the status of their favorite
        exotic script, for example.</li>

    <li>A PDF showing <a class="offsite" href="http://std.dkuug.dk/jtc1/sc2/wg2/docs/n4244.pdf">what is
            proposed to be added in Unicode 6.2</a>.  It's very clear that
        semantic distinctions are not important for new characters! Also, we
        finally get U+1F5D1, TRASH CAN!  </li>
    
    <li>Michael Kaplan has a series of blog posts, <a class="offsite" href="http://blogs.msdn.com/b/michkap/archive/tags/every+character+has+a+story/">Every
            character has a story</a>, exploring some of the back-stories of
        characters in Unicode. His <a class="offsite" href="http://blogs.msdn.com/b/michkap/archive/2012/02/17/10269019.aspx">musings
            on the three monkeys</a> are especially erudite.</li>

    <li>Matt Mayer has some interesting stories about <a class="offsite" href="http://www.reigndesign.com/blog/love-hotels-and-unicode/">Love
            Hotels and Unicode</a>.  I especially like the reasoning behind the
        "regional indicator symbols" <a class="offsite" href="http://www.fileformat.info/info/unicode/char/1f1e6/index.htm">A</a>-<a class="offsite" href="http://www.fileformat.info/info/unicode/char/1f1ff/index.htm">Z</a>,
        to avoid having to put flags in Unicode.
    </li>

    <li>On the lighter side, the <a href="https://plus.google.com/109925364564856140495/posts">Fake Unicode Consortium</a>
        presents more creative names for Unicode characters.  Currently, you can't see the characters because of a Google+
        redesign, but maybe soon... ☹</li>

    <li>Finally, in 1889, when telegraph messages were paid for by the word,
        "Unicode" was the name for a dictionary of commonly-sent phrases mapped
        to obscure words so that instead of sending, "Jones dines with us this
        evening and remains the night - Smith," you could send, "Jones Coctivus
        Smith."  It's of course no use to us now, but interesting to see how 
        communications technology was accommodated.  Also a bit shocking to see
        how maternity has changed: <a class="offsite" href="http://archive.org/stream/unicodeuniversa00unkngoog#page/n23/mode/2up">flip
            to page 11</a> to the section labelled "Births" to see the kinds of
        messages people needed to commonly send.</li>

</ul>
]]></description>
	</item>
	
	<item rdf:about="http://nedbatchelder.com/blog/201203/what_files_should_coverage_measure.html">
		<title>What files should coverage measure?</title>
		<link>http://nedbatchelder.com/blog/201203/what_files_should_coverage_measure.html</link>
		
		<dc:date>2012-03-28T08:51:00-04:00</dc:date>
		<dc:creator>Ned Batchelder</dc:creator>
		<description><![CDATA[<p>Maybe this is crazy, but I'm looking for advice.</p><p>Conceptually, <a href="http://nedbatchelder.com/code/coverage">coverage.py</a> is pretty simple.
        First, using the <a class="offsite" href="http://docs.python.org/library/sys.html#sys.settrace">sys.settrace</a>
        facility in Python, record every line that is executed.  Then, after
        the program is done, report on those lines, and especially on lines
        that could have been executed but were not.</p><p>Of course, the reality is more difficult.  During execution, to record
        the line, we have to find the file name, which we get from the stack
        frame.  Later, we look for that file by name to create the report.
        Sometimes, the file isn't a Python file!</p><p>One reason this can happen is if the file was actually created by a
        tool, and the tool provides the original source file as the reported
        name.  For example, <a class="offsite" href="http://jinja.pocoo.org/">Jinja</a>
        compiles .html files to Python code, and when the code is running, it
        claims to be "mytemplate.html".  When coverage.py tries to report on
        the file, it can't parse it as Python, and things go wrong.</p><p>Originally, this error would be reported to the user.  There's a -i 
        switch that shuts off all errors like this, but it seemed dumb for
        coverage.py to get confused by something like this.  So I changed it
        to not trace files named "*.html".</p><p>Of course, the world is more varied than that, so I got a 
        <a href="https://bitbucket.org/ned/coveragepy/issue/82/tokenerror-when-generating-html-report">report</a>
        of someone with Jinja2 files named "*.jinja2" which now trip the error.
        So I need a more general solution.</p><p>I figure there are a couple of possibilities:</p><ol>

        <li>Don't measure files at all if they have an extension that isn't
            ".py".  This will let us measure extension-less files, and .py
            files, and will ignore all the rest, on the theory that any other
            extension implies that we won't be able to parse it later anyway.
        </li>

        <li>Measure all files, but during reporting, if a file can't be parsed,
            ignore the error if it has an extenstion that isn't "*.py".</li>

        <li>(Shudder) Make a configuration option about what extensions to
            measure, or which to ignore.</li>

        <li>Some people want "ignore errors" to be the default, but if a file
            is missing for some reason, it's important to know, because it will
            throw off the reporting, and that shouldn't happen silently.</li>

    </ol><p>Do people ever name their Python source files something other than
        "*.py"?  Are there weird ecosystems like this that I'll only hear about
        if I make one of these changes?</p>
]]></description>
	</item>
	
	<item rdf:about="http://nedbatchelder.com/blog/201203/breaking_out_of_two_loops_at_once.html">
		<title>Breaking out of two loops at once</title>
		<link>http://nedbatchelder.com/blog/201203/breaking_out_of_two_loops_at_once.html</link>
		
		<dc:date>2012-03-25T10:51:39-04:00</dc:date>
		<dc:creator>Ned Batchelder</dc:creator>
		<description><![CDATA[<p>This is a question that crops up often:</p><blockquote><div><p>I have two nested loops, and inside, how can I break out of both loops at once?</p></div></blockquote><p>Python doesn't offer a way to break out of two (or more) loops at once, so the naive approach looks like this:</p><blockquote class="code"><tt><span class="n">done</span>&#xA0;<span class="o">=</span>&#xA0;<span class="bp">False</span>
<br><span class="k">for</span>&#xA0;<span class="n">x</span>&#xA0;<span class="ow">in</span>&#xA0;<span class="nb">range</span><span class="p">(</span><span class="mi">10</span><span class="p">):</span>
<br>&#xA0;&#xA0;&#xA0;&#xA0;<span class="k">for</span>&#xA0;<span class="n">y</span>&#xA0;<span class="ow">in</span>&#xA0;<span class="nb">range</span><span class="p">(</span><span class="mi">20</span><span class="p">):</span>
<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<span class="k">if</span>&#xA0;<span class="n">some_condition</span><span class="p">(</span><span class="n">x</span><span class="p">,</span>&#xA0;<span class="n">y</span><span class="p">):</span>
<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<span class="n">done</span>&#xA0;<span class="o">=</span>&#xA0;<span class="bp">True</span>
<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<span class="k">break</span>
<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<span class="n">do_something</span><span class="p">(</span><span class="n">x</span><span class="p">,</span>&#xA0;<span class="n">y</span><span class="p">)</span>
<br>&#xA0;&#xA0;&#xA0;&#xA0;<span class="k">if</span>&#xA0;<span class="n">done</span><span class="p">:</span>
<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<span class="k">break</span>
<br></tt></blockquote><p>This works, but seems unfortunate.  A lot of noise here concerns the breaking out of the loop,
    rather than the work itself.</p><p>The sophisticated approach is to get rid of, or at least hide away, the
    double loop.  Looked at another way, this code is really iterating over one
    sequence of things, a sequence of pairs.  Using Python generators, we can
    neatly encapsulate the pair-ness, and get back to one loop:</p><blockquote class="code"><tt><span class="k">def</span>&#xA0;<span class="nf">pairs_range</span><span class="p">(</span><span class="n">limit1</span><span class="p">,</span>&#xA0;<span class="n">limit2</span><span class="p">):</span>
<br>&#xA0;&#xA0;&#xA0;&#xA0;<span class="sd">&quot;&quot;&quot;Produce&#xA0;all&#xA0;pairs&#xA0;in&#xA0;(0..`limit1`-1,&#xA0;0..`limit2`-1)&quot;&quot;&quot;</span>
<br>&#xA0;&#xA0;&#xA0;&#xA0;<span class="k">for</span>&#xA0;<span class="n">i1</span>&#xA0;<span class="ow">in</span>&#xA0;<span class="nb">range</span><span class="p">(</span><span class="n">limit1</span><span class="p">):</span>
<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<span class="k">for</span>&#xA0;<span class="n">i2</span>&#xA0;<span class="ow">in</span>&#xA0;<span class="nb">range</span><span class="p">(</span><span class="n">limit2</span><span class="p">):</span>
<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<span class="k">yield</span>&#xA0;<span class="n">i1</span><span class="p">,</span>&#xA0;<span class="n">i2</span>
<br>
<br><span class="k">for</span>&#xA0;<span class="n">x</span><span class="p">,</span>&#xA0;<span class="n">y</span>&#xA0;<span class="ow">in</span>&#xA0;<span class="n">pairs_range</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span>&#xA0;<span class="mi">20</span><span class="p">):</span>
<br>&#xA0;&#xA0;&#xA0;&#xA0;<span class="k">if</span>&#xA0;<span class="n">some_condition</span><span class="p">(</span><span class="n">x</span><span class="p">,</span>&#xA0;<span class="n">y</span><span class="p">):</span>
<br>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<span class="k">break</span>
<br>&#xA0;&#xA0;&#xA0;&#xA0;<span class="n">do_something</span><span class="p">(</span><span class="n">x</span><span class="p">,</span>&#xA0;<span class="n">y</span><span class="p">)</span>
<br></tt></blockquote><p>Now our code is nicely focused on the work at hand, and the mechanics of the
    double loop needed to produce a sequence of pairs is encapsulated in
    pairs_range.</p><p>Naturally, pairs_range could become more complex, more interesting ranges,
    not just pairs but triples, etc.  Adapt to your own needs.</p><p>As with any language, you can approach Python as if it were C/Java/Javascript
    with different syntax, and many people do at first, relying on concepts
    they already know. Once you scratch the surface, Python provides rich
    features that take you off that track.  Iteration is one of the first
    places you can find your Python wings.</p>
]]></description>
	</item>
	
	<item rdf:about="http://nedbatchelder.com/blog/201203/happy_belated_pi_day.html">
		<title>Happy belated pi day</title>
		<link>http://nedbatchelder.com/blog/201203/happy_belated_pi_day.html</link>
		
		<dc:date>2012-03-16T20:36:41-04:00</dc:date>
		<dc:creator>Ned Batchelder</dc:creator>
		<description><![CDATA[<p>Pi day (two days ago) passed without notice here, but then Eric Johnson 
        posted a comment on <a href="http://nedbatchelder.com/blog/201103/two_pi_day_puzzles_from_pycon.html">last year's pi day post</a>:</p><blockquote>
        <p>Ancient Egyptians may have thought Pi was 256/81:
            <a class="offsite" href="http://en.wikipedia.org/wiki/Approximations_of_%CF%80#Early_history">Approximations of π</a>.</p>

        <p>256/81 is about 3.16049382716049382716, which is approx 0.6% above the value of Pi.  
            22/7 is approx 0.04% less than Pi, so the ancient Egyptians weren't particularly accurate, 
            but the numerator and denominator they choose are interesting for another reason.</p>

        <p>256/81 can be expressed as 2^8 / 3^4, which can be expressed as 2^2^3/3^2^2, which of course is a palindrome.</p>

        <p>Posted on A.E. Pi day, 2012 (A.E. = Ancient Egyptian)</p>
    </blockquote><p>I had never heard any of this before, and was delighted.</p><p>Poking around on the Wikipedia page about approximating pi,
        I found this <a class="offsite" href="http://en.wikipedia.org/wiki/Approximations_of_%CF%80#Early_history#Pi_and_a_fractal">interesting tidbit</a>:
        there are points in the Mandelbrot set whose iteration escape counts provide arbitrarily accurate estimates to pi!
        Will the wonders never cease?</p><p>Happy belated Pi Day!</p>
]]></description>
	</item>
	
	<item rdf:about="http://nedbatchelder.com/blog/201203/pragmatic_unicode.html">
		<title>Pragmatic unicode</title>
		<link>http://nedbatchelder.com/blog/201203/pragmatic_unicode.html</link>
		
		<dc:date>2012-03-15T22:37:38-04:00</dc:date>
		<dc:creator>Ned Batchelder</dc:creator>
		<description><![CDATA[<p>Last week was PyCon 2012, I had a blast as always.  I gave a talk entitled,
        <a href="http://nedbatchelder.com/text/unipain.html">Pragmatic Unicode, or, How Do I Stop the Pain?</a>
    </p><p>I chose the topic because I thought it would appeal to many Python developers,
        and because I knew all about it.  Turns out I didn't!  But it was great learning
        more details as I went.  And then I filled in a few more tidbits by chatting with
        Martin v. Löwis at PyCon.</p><p>Part of the fun of this talk was finding the Unicode characters to decorate it with,
        and then building the credits slide at the end on the plane.  It's all built with
        Cog to avoid cut-and-paste nightmares.  Look at the HTML source of the actual
        presentation if you're interested in the Cog twistiness.</p><p>Of course, Unicode is a much bigger topic than this, but 25 minutes is what it is.
        <a href="http://nedbatchelder.com/text/unipain.html">Enjoy</a>, the video, slides, and full text are there.</p>
]]></description>
	</item>
	
	<item rdf:about="http://nedbatchelder.com/blog/201203/ten_years.html">
		<title>Ten years</title>
		<link>http://nedbatchelder.com/blog/201203/ten_years.html</link>
		
		<dc:date>2012-03-07T07:21:10-05:00</dc:date>
		<dc:creator>Ned Batchelder</dc:creator>
		<description><![CDATA[<p>This blog started ten years ago today, with a post about <a href="http://nedbatchelder.com/blog/200203/my_first_job_ever.html">My first job ever</a>.
        It's strange to think about those ten years.  At the time, it seemed late to be starting a blog, but now
        having a blog going back ten years makes it seem like one of the ancients.</p><p>I wrote far more frequently then than I do now, partly because of the novelty of it, partly because of
        time pressures, and partly because <a class="offsite" href="http://twitter.com/nedbat">Twitter</a> gets the shorter tossed-off ideas now.
        But I still value having a place to express myself when the universe moves me to.</p><p>If you haven't been a long-time reader, the most unusual post here was about 
        <a href="http://nedbatchelder.com/blog/200607/sue_and_neds_excellent_adventure_part_1.html">dinner at the White House</a>, though by far the
        most popular post was the <a href="http://nedbatchelder.com/blog/200805/css_homer_animated.html">animated CSS Homer</a>.  Of course
        I find much else in the <a href="http://nedbatchelder.com/blog/archiveall.html">archives</a> that I would like to point out to you, but won't.</p><p>When I started this ten years ago, I didn't know what would come of it.  As a side project, there were no requirements
        on it, and I could take it wherever I felt like taking it.  It's still that way: I don't know what topics will find 
        their way here in the next year or ten, and I'm interested to find out.</p>
]]></description>
	</item>
	
</rdf:RDF>

