<?xml version="1.0"?>
<rdf:RDF
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:foaf="http://xmlns.com/foaf/0.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns="http://purl.org/rss/1.0/"
>
<channel rdf:about="http://www.cherrypy.org/">
	<title>Planet CherryPy</title>
	<link>http://www.cherrypy.org/</link>
	<description>Planet CherryPy - http://www.cherrypy.org/</description>

	<items>
		<rdf:Seq>
			<rdf:li rdf:resource="http://www.aminus.org/blogs/xmlsrv/1029@http://www.aminus.org/blogs/" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/2009/09/02/4th-anniversary-michipug-meeting-tomorrow/" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/?p=2607" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/2009/08/14/one-python-based-version-control-system-to-rule-them-all/" />
			<rdf:li rdf:resource="http://chimezie.posterous.com/magic-sets-dlp-and-other-stran" />
			<rdf:li rdf:resource="http://chimezie.posterous.com/ngozichukwunyere-isabella-cele" />
			<rdf:li rdf:resource="http://lists.w3.org/Archives/Public/www-tag/2009Jul/0043.html" />
			<rdf:li rdf:resource="http://www-03.ibm.com/press/us/en/pressrelease/27874.wss" />
			<rdf:li rdf:resource="http://www.boston.com/bigpicture/2009/06/recent_scenes_from_the_iss.html" />
			<rdf:li rdf:resource="http://pylonsbook.com/en/1.0/authentication-and-authorization.html" />
			<rdf:li rdf:resource="http://www.thenervousbreakdown.com/uogbuji/2009/06/tongue-of-warcraft-part-one/" />
			<rdf:li rdf:resource="http://uche.posterous.com/proust-ooky-cable-guys-and-everything-in-betw" />
			<rdf:li rdf:resource="http://www.zhongwen.com/" />
			<rdf:li rdf:resource="http://code.activestate.com/recipes/576795/" />
			<rdf:li rdf:resource="http://rhizomik.net/~roberto/thesis/html/KnowledgeRepresentation.html" />
			<rdf:li rdf:resource="http://www.thenervousbreakdown.com/uogbuji/2009/07/tongue-of-warcraft-part-two%e2%80%94politics-of-language/" />
			<rdf:li rdf:resource="http://uche.posterous.com/the-tongue-my-take-0" />
			<rdf:li rdf:resource="http://detexify.kirelabs.org/classify.html" />
			<rdf:li rdf:resource="http://www.aminus.org/blogs/xmlsrv/1025@http://www.aminus.org/blogs/" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/2009/07/02/michipug-july-meeting-tonight-python-in-vfx-impressive-31/" />
			<rdf:li rdf:resource="http://uche.posterous.com/diamonds-are-so-over" />
			<rdf:li rdf:resource="http://uche.posterous.com/the-tongue" />
			<rdf:li rdf:resource="http://www.springerlink.com/content/l9xlh5aw8tcv" />
			<rdf:li rdf:resource="http://broadcast.oreilly.com/2009/04/data-chef-spss-tripe-consomme.html" />
			<rdf:li rdf:resource="http://www.thenervousbreakdown.com/uogbuji/2009/04/only-one-poem-for-the-implosion-of-capital/" />
			<rdf:li rdf:resource="http://www.nltk.org/" />
			<rdf:li rdf:resource="http://seat.massey.ac.nz/personal/s.r.marsland/MLBook.html" />
			<rdf:li rdf:resource="http://broadcast.oreilly.com/2009/04/character-length-restrictions.html" />
			<rdf:li rdf:resource="http://www.twine.com/item/1264gvb3t-1rh/semantic-web-takes-root-at-the-ia-summit-meaningful-data" />
			<rdf:li rdf:resource="http://chimezie.posterous.com/on-model-theory" />
			<rdf:li rdf:resource="http://chimezie.posterous.com/using-owl-and-default-negation-to-reason-abou" />
			<rdf:li rdf:resource="http://chimezie.posterous.com/rdf-owl-tool-developers-should-respect-xmlbas" />
			<rdf:li rdf:resource="http://chimezie.posterous.com/this-is-how-i-feel-everytime-i" />
			<rdf:li rdf:resource="http://www.twine.com/item/1244skz3d-19x/the-thinking-man-s-rapper-black-thought-interviewed-by-tour-the-daily-beast" />
			<rdf:li rdf:resource="http://www.twine.com/item/123qcxtgz-1mc/rbma-radio-fireside-chat-the-roots" />
			<rdf:li rdf:resource="http://www.twine.com/item/120nxzm28-v3/new-world-tap-water-poster-boy-flickr" />
			<rdf:li rdf:resource="http://www.twine.com/item/120hwyd03-1bt/your-website-is-your-api-quick-wins-for-government-data-jeni-tennison" />
			<rdf:li rdf:resource="http://www.twine.com/item/1203yl9cq-2r/cobe-obeah-know-thyself-okayplayer-audio" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/2009/06/02/michipug-using-python-to-run-reports-in-hadoop-clusters/" />
			<rdf:li rdf:resource="http://www.aminus.org/blogs/xmlsrv/1022@http://www.aminus.org/blogs/" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/?p=2578" />
			<rdf:li rdf:resource="http://www.aminus.org/blogs/xmlsrv/1020@http://www.aminus.org/blogs/" />
			<rdf:li rdf:resource="http://www.thenervousbreakdown.com/uogbuji/2009/03/slender-mitochondrial-strand/" />
			<rdf:li rdf:resource="http://pewsocialtrends.org/maps/migration/" />
			<rdf:li rdf:resource="http://code.activestate.com/recipes/576685/" />
			<rdf:li rdf:resource="http://broadcast.oreilly.com/2009/02/a-restful-wrapper-for-moinmoin.html" />
			<rdf:li rdf:resource="http://www.catonmat.net/blog/unix-utilities-pipe-viewer/" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/?p=2569" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/2009/03/13/paver-10b1-released/" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/2009/03/06/paver-10a3-released/" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/2009/03/04/michipug-meeting-tomorrow-march-5th/" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/2009/03/02/embarrassment-driven-development/" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/2009/02/26/paver-10a2-released/" />
			<rdf:li rdf:resource="http://blog.dowski.com/?p=273" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/?p=2545" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/2009/02/17/creating-a-web-framework-with-wsgi-video/" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/2009/02/14/bespin-code-in-the-cloud/" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/2009/02/02/michipug-meeting-thursday-wsgi-web-frameworks/" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/2009/01/29/paver-10a1-recalled/" />
			<rdf:li rdf:resource="http://www.blueskyonmars.com/2009/01/28/paver-10a1-is-out/" />
		</rdf:Seq>
	</items>
</channel>

<item rdf:about="http://www.aminus.org/blogs/xmlsrv/1029@http://www.aminus.org/blogs/">
	<title>Robert Brewer: Zen of CherryPy video</title>
	<link>http://www.aminus.org/blogs/index.php/2010/03/11/zen-of-cherrypy-video?blog=2</link>
	<content:encoded>&lt;p&gt;My PyCon 2010 talk video is up. Enjoy: &lt;a href=&quot;http://pycon.blip.tv/file/3332744&quot;&gt;The Zen of CherryPy&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.aminus.org/blogs/index.php/2010/03/11/zen-of-cherrypy-video?blog=2&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2010-03-12T02:29:40+00:00</dc:date>
	<dc:creator>fumanchu</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/2009/09/02/4th-anniversary-michipug-meeting-tomorrow/">
	<title>Kevin Dangoor: 4th anniversary MichiPUG meeting tomorrow!</title>
	<link>http://www.blueskyonmars.com/2009/09/02/4th-anniversary-michipug-meeting-tomorrow/</link>
	<content:encoded>&lt;p&gt;I kicked off the &lt;a href=&quot;http://groups.google.com/group/michipug/web/index-2&quot;&gt;Michigan Python Users Group&lt;/a&gt; (MichiPUG) in September 2005, so this month&amp;#8217;s meeting marks 4 years since the group began!&lt;/p&gt;
&lt;p&gt;This month&amp;#8217;s meeting is going to be one of our &amp;#8220;topic free&amp;#8221; meetings. Despite the lack of a topic, we never have trouble finding Python things to discuss. If you&amp;#8217;re going to be around Ann Arbor Thursday evening and have a burning Python question, do stop in!&lt;/p&gt;
&lt;p&gt;The meeting will be at 7pm at &lt;a href=&quot;http://srtsolutions.com/&quot;&gt;SRT Solutions&lt;/a&gt; in &lt;a href=&quot;http://groups.google.com/group/michipug/web/SRT%20Solutions&quot;&gt;downtown Ann Arbor&lt;/a&gt;. Parking is free and easy next to City Hall a couple blocks north (on Ann St.).&lt;/p&gt;
&lt;p&gt;This month, I am stepping aside as the de facto leader of the group. While I am still a Python fan and heavy user, my interests have branched out enough that I plan to devote my rather limited &amp;#8220;user group time&amp;#8221; elsewhere. Stay tuned for more on that soon. &lt;a href=&quot;http://compoundthinking.com/&quot;&gt;Mark Ramm&lt;/a&gt; will be taking over my duties as &amp;#8220;the guy who sends the monthly &amp;#8216;what&amp;#8217;s our topic?&amp;#8217; email message&amp;#8221;.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m almost certainly going to be arriving late to tomorrow&amp;#8217;s meeting, but I do hope to catch up with folks for drinks afterwards at the very least! See you there!&lt;/p&gt;
&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img class=&quot;zemanta-pixie-img&quot; alt=&quot;&quot; src=&quot;http://img.zemanta.com/pixy.gif?x-id=6e4bb18c-ae57-8db7-aa7b-b5e0485e0634&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-09-02T17:38:32+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/?p=2607">
	<title>Kevin Dangoor: Python packaging/install: what I want</title>
	<link>http://www.blueskyonmars.com/2009/08/28/python-packaginginstall-what-i-want/</link>
	<content:encoded>&lt;p&gt;Python packaging and deployment can be annoying. It&amp;#8217;s been nearly 4 years since I released the first TurboGears release as an early adopter of setuptools/easy_install. Since then, there&amp;#8217;s been the release of &lt;a href=&quot;http://pypi.python.org/pypi/virtualenv&quot;&gt;virtualenv&lt;/a&gt;, &lt;a href=&quot;http://pip.openplans.org&quot;&gt;pip&lt;/a&gt; and &lt;a href=&quot;http://pypi.python.org/pypi/zc.buildout&quot;&gt;zc.buildout&lt;/a&gt;. Somehow, it still seems like more trouble than it should be to get development and production environments set up.&lt;/p&gt;
&lt;p&gt;On Bespin, I&amp;#8217;ve been using a combination of virtualenv and pip (scripted with &lt;a href=&quot;http://www.blueskyonmars.com/projects/paver/&quot;&gt;Paver&lt;/a&gt;) in development and production environments. But, I&amp;#8217;ve found &lt;a href=&quot;http://groups.google.com/group/python-virtualenv/browse_thread/thread/82911e7fc9901045&quot;&gt;pip &amp;#8211;freeze to be nearly unusable&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;My Ideal World&lt;/h2&gt;
&lt;p&gt;After monkeying with this stuff a fair bit over the past few years, I have an idea of what I&amp;#8217;d really like to have but I don&amp;#8217;t think anyone&amp;#8217;s working on it. I&amp;#8217;d love to hear contrasting opinions or learn about projects that I&amp;#8217;m not aware of.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multiple version installation into global site-packages, as easy_install currently works (put the active package in the .pth file)&lt;/li&gt;
&lt;li&gt;The better error reporting of pip (pip doesn&amp;#8217;t meet my first desire, though, because it installs as single-version-externally-managed)&lt;/li&gt;
&lt;li&gt;A tool to manage the installed packages (uninstall, select a different version)&lt;/li&gt;
&lt;li&gt;In addition to a global site-packages, it would be nice to be able to specify a different site-dir for machines where I don&amp;#8217;t have or don&amp;#8217;t want to use root access&lt;/li&gt;
&lt;li&gt;virtualenv that behaves like &amp;#8211;no-site-packages but knows where site-packages (or the other site-dir) is&lt;/li&gt;
&lt;li&gt;That tool that manages installed packages can selectively install specific versions of packages into the virtualenv by adding pointers in the .pth file that point to the site-packages directory&lt;/li&gt;
&lt;li&gt;You can also install only into the virtualenv if you wish.&lt;/li&gt;
&lt;li&gt;Install packages in that manner from a list of requirements (as with pip&amp;#8217;s requirements file)&lt;/li&gt;
&lt;li&gt;A way to freeze the currently set installed into the virtualenv as a new requirements file&lt;/li&gt;
&lt;li&gt;An optional cache of all of the original sdists of the installed packages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;pip is close to being usable, except freeze doesn&amp;#8217;t work. zc.buildout is close to being usable, too. I think there&amp;#8217;s a &lt;a href=&quot;http://pypi.python.org/pypi/buildout.dumppickedversions/0.4&quot;&gt;&amp;#8220;freeze&amp;#8221; like plugin&lt;/a&gt; for it, but I don&amp;#8217;t know how well it works. I don&amp;#8217;t like zc.buildout quite as much as virtualenv, and I see that people even use virtualenv+zc.buildout to eliminate site-packages from leaking in. I also find that it leaves tons of old packages around in every buildout, again with no way to manage them.&lt;/p&gt;
&lt;p&gt;What I&amp;#8217;ve found using both zc.buildout and pip is that they are &lt;em&gt;slow and annoying&lt;/em&gt;, because they&amp;#8217;re constantly reinstalling things that I already have. The main reason for having a shared site-packages as I suggest above is not to save on disk space, but to save on &lt;em&gt;time&lt;/em&gt;. In development, I want to be able to update to the latest versions of packages quickly, installing/building only the ones that have changed. How fast something runs changes how you use it, and I know that the scripts that I have for updating development and production environments reflect that.&lt;/p&gt;
&lt;p&gt;So,I think the main thing that I&amp;#8217;m looking for is a new tool to manage the packages that I have installed globally and within virtualenvs. Are there tools out there that are heading down this path at all?&lt;/p&gt;
&lt;p&gt;Also, I understand the starting point that &lt;a href=&quot;http://tarekziade.wordpress.com/&quot;&gt;Tarek&lt;/a&gt; is taking with &lt;a href=&quot;http://pypi.python.org/pypi/distribute/0.6&quot;&gt;Distribute&lt;/a&gt; (splitting it up into logical pieces), but is there any roadmap for where it&amp;#8217;s going to go functionally from there? Or is the intention purely that tools like the one I&amp;#8217;m angling for will be written against the newly refactored libraries? I do know about the uninstall PEP, and that&amp;#8217;s pleasing.&lt;/p&gt;</content:encoded>
	<dc:date>2009-08-28T18:48:51+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/2009/08/14/one-python-based-version-control-system-to-rule-them-all/">
	<title>Kevin Dangoor: One Python-based version control system to rule them all!</title>
	<link>http://www.blueskyonmars.com/2009/08/14/one-python-based-version-control-system-to-rule-them-all/</link>
	<content:encoded>&lt;p&gt;We&amp;#8217;ve just &lt;a href=&quot;http://labs.mozilla.com/2009/08/bespin-0-4-stop-collaborate-and-code/&quot;&gt;released Bespin 0.4&lt;/a&gt;, the major new feature of which is the first bit of the &lt;a href=&quot;http://directwebremoting.org/blog/joe/2009/08/13/collaboration_in_bespin.html&quot;&gt;collaboration&lt;/a&gt; feature. Bespin 0.4 includes a ton of other changes, including one that I&amp;#8217;m going to focus on here: Subversion support, which &lt;a href=&quot;http://gphemsley.wordpress.com/2009/08/10/svn-support-in-bespin/&quot;&gt;Gordon P. Hemsley kicked off for us&lt;/a&gt; a few weeks back.&lt;/p&gt;
&lt;p&gt;Bespin&amp;#8217;s initial version control support showed up in 0.2 with support for Mercurial. Knowing that we wanted to support multiple version control systems (VCS), I took an unorthodox approach from the beginning. Rather than providing the &amp;#8220;hg&amp;#8221; commands that people know and love, I created a separate set of &amp;#8220;vcs&amp;#8221; commands. Ultimately, we want to make it easy to grab a random open source project of the net and start hacking on it. Using the &amp;#8220;vcs&amp;#8221; commands, for the most common version control operations you won&amp;#8217;t even have to think about which VCS is used by a given project.&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://www.blueskyonmars.com/images/2009/08/vcs-with-svn.jpg&quot; /&gt;&lt;/div&gt;
&lt;p&gt;I can run &amp;#8220;vcs clone&amp;#8221; (&amp;#8220;vcs checkout&amp;#8221; also works) to check out &lt;a href=&quot;http://labs.mozilla.com/projects/bespin/&quot;&gt;Bespin&lt;/a&gt; (in a Mercurial &lt;a href=&quot;http://hg.mozilla.org/labs/bespin/&quot;&gt;repository&lt;/a&gt;), &lt;a href=&quot;http://www.blueskyonmars.com/projects/paver/&quot;&gt;Paver&lt;/a&gt; (in a Subversion &lt;a href=&quot;http://paver.googlecode.com/svn/trunk/&quot;&gt;repo&lt;/a&gt;) and hopefully soon &lt;a href=&quot;http://narwhaljs.org/&quot;&gt;Narwhal&lt;/a&gt; (in a Git &lt;a href=&quot;http://github.com/tlrobinson/narwhal/tree/master&quot;&gt;repo&lt;/a&gt;). Also new in Bespin 0.4:  Bespin&amp;#8217;s command line has been tricked out to be able to have fancier interactions with commands, so you can enter all of the extra information that Bespin needs for checking out a repository right in the output area.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;ve used Subversion and one of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Distributed_revision_control&quot;&gt;Distributed VCSes&lt;/a&gt;, you&amp;#8217;ll know that they have a different model. The DVCSes do almost everything in a local repository copy and only talk to a remote server for push/pull. That&amp;#8217;s actually true of Subversion as well, with one notable exception: commit. For Subversion, the &amp;#8220;vcs commit&amp;#8221; command will simply save your commit message for later. When you run &amp;#8220;vcs push&amp;#8221;, that is when an actual &amp;#8220;svn commit&amp;#8221; operation is run.&lt;/p&gt;
&lt;p&gt;What&amp;#8217;s neat about the &amp;#8220;vcs&amp;#8221; commands is that they operate the same from VCS to VCS. svn doesn&amp;#8217;t have a feature to &amp;#8220;add all files that are unknown&amp;#8221;, whereas Mercurial does. &amp;#8220;vcs add -a&amp;#8221; operates the same on both systems.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re interested, you can also use these commands on the command line by installing the &lt;a href=&quot;http://pypi.python.org/pypi/uvc/0.3&quot;&gt;Über Version Controller (uvc)&lt;/a&gt; Python package. After doing so, you can head into a random Subversion or Mercurial working copy and type &amp;#8220;uvc status&amp;#8221; to see what&amp;#8217;s different. I will note that the command line tool has been, um, lightly tested since uvc is mostly used as a library for Bespin at this point.&lt;/p&gt;
&lt;p&gt;One final note: Bespin will soon also support native &amp;#8220;svn&amp;#8221; and &amp;#8220;hg&amp;#8221; commands so that you can stick to commands and options you&amp;#8217;re familiar with or for performing more complex operations that don&amp;#8217;t have equivalent &amp;#8220;vcs&amp;#8221; commands.&lt;/p&gt;
&lt;p&gt;You can learn more about version control in Bespin from &lt;a href=&quot;https://wiki.mozilla.org/Labs/Bespin/UserGuide#Version_Control&quot;&gt;this section of the User Guide&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img class=&quot;zemanta-pixie-img&quot; alt=&quot;&quot; src=&quot;http://img.zemanta.com/pixy.gif?x-id=0efb5136-be4e-8131-859c-5df0461f61fb&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-08-15T02:35:31+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://chimezie.posterous.com/magic-sets-dlp-and-other-stran">
	<title>Uche and Chimezie Ogbuji: Magic sets, DLP, and other strange ways to implement semantic web expert systems</title>
	<link>http://chimezie.posterous.com/magic-sets-dlp-and-other-stran</link>
	<content:encoded>&lt;p&gt;
	&lt;/p&gt;
        &lt;p&gt;I just &lt;a href=&quot;http://groups.google.com/group/fuxi-discussion/browse_thread/thread/c37355ca6780a1b5&quot;&gt;finished&lt;/a&gt; some changes to python-dlp including a modification to &lt;br /&gt;FuXi that includes an implementation of the Magic Set Transformation &lt;br /&gt;(MST) &lt;a href=&quot;http://code.google.com/p/python-dlp/source/browse/trunk/fuxi/test/testOWL.py?spec=svn249&amp;amp;r=249#156&quot;&gt;method&lt;/a&gt; for RIF-like horn clauses. The most useful, immediate &lt;br /&gt;value this has for me is to be able to (essentially) implement a DLP &lt;br /&gt;(description logic programming) &lt;a href=&quot;http://www.w3.org/TR/rdf-sparql-query/#sparqlBGPExtend&quot;&gt;entailment regime&lt;/a&gt; for a SPARQL query &lt;br /&gt;service. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Consider the test case for the SymmetricProperty OWL &lt;a href=&quot;http://www.w3.org/TR/owl-test/byFunction#function-SymmetricProperty&quot;&gt;test&lt;/a&gt;. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;The base facts are: &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;  first:Ghent first:path first:Antwerp . &lt;br /&gt;  first:path a owl:SymmetricProperty &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;The goal we are trying to prove is: &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;  first:Antwerp first:path first:Ghent &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;I.e., a user wants to query an RDF dataset that includes an RDF graph &lt;br /&gt;with the above statements and is expected to implement an entailment &lt;br /&gt;regime for OWL-DL RDF such that the following query gives a positive &lt;br /&gt;answer: &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;  ASK { first:Antwerp first:path first:Ghent } &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;The general pD* rule that would normally apply in helping answer this query is: &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;  {?P a owl:SymmetricProperty. ?S ?P ?O} =&amp;gt; {?O ?P ?S}. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Re-written in a familiar (prolog-like) RIF-BLD syntax: &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;  Forall ?P ?O ?S ( ?P(?O ?S) :- And( owl:SymmetricProperty(?P) ?P(?S ?O) ) ) &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;In order to maintain consistency, a rule-based engine that used this &lt;br /&gt;clause to implement the definition of a symmetric property would need &lt;br /&gt;to fire it for *every* triple in the fact base (in order to properly &lt;br /&gt;calculate the &lt;a href=&quot;http://en.wikipedia.org/wiki/Herbrand_base&quot;&gt;herbrand base&lt;/a&gt;) because of the 2nd triple pattern in the &lt;br /&gt;body / antecedent / left-hand-side of the rule: ?S ?P ?O &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;However, the DLP approach that converted tree-based OWL axioms into &lt;br /&gt;colloquial horn clauses would allow us to use (instead) a &lt;br /&gt;domain-specific rule: &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;  Forall ?Y ?X ( first:path(?Y ?X) :- first:path(?X ?Y) )] &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;This rule is domain-specific in the sense that it only applies to &lt;br /&gt;instances of the first:path predicate rather than for every predicate. &lt;br /&gt; As a result of this transformation, the procedural evaluation of the &lt;br /&gt;rule for symmetry has been reduced from the worst case to only the &lt;br /&gt;fraction of the RDF dataset concerning first:path statements. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;So, a knowledge base that could exhaustively evaluate rules in a &lt;br /&gt;top-down fashion (via 'forward chaining') prior to bringing up the &lt;br /&gt;SPARQL service could answer that question against the (smaller) &lt;br /&gt;entailed RDF graph. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;However, with the MST implementation, if the query was known a priori &lt;br /&gt;the ruleset can be modified into a version that further restricts the &lt;br /&gt;amount of redundant work done during the inference process. For &lt;br /&gt;example, even if the SPARQL service is known to never have to answer &lt;br /&gt;that query, the colloquial rule above would still be needed by a niave &lt;br /&gt;implemenation and would apply to every statement that used the &lt;br /&gt;first:path predicate. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;
        &lt;/p&gt;
        &lt;p&gt;
          &lt;a href=&quot;http://posterous.com/getfile/files.posterous.com/chimezie/2oZRgckh4M8VCDDR6eSQWzfD2hwsCv20mo6LHnQ7A9tvEqjoKQBd0QJkdH6v/OWL-SymmetricProperty-conclusi.jpeg&quot;&gt;
            &lt;img height=&quot;433&quot; src=&quot;http://posterous.com/getfile/files.posterous.com/chimezie/b1jGOlOEYBvUeqFLROTQVgXDLWBZeWdDVsKq9svQwYFOdwqV6SKdMkkqOO3y/OWL-SymmetricProperty-conclusi.jpeg.scaled.500.jpg&quot; width=&quot;500&quot; /&gt;
          &lt;/a&gt;
        &lt;/p&gt;
&lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;The diagram above is a Graph-viz rendering of a Proof Markup Language &lt;br /&gt;(PML) proof tree generated by taking the colloquial rule, modifying it &lt;br /&gt;using the MST algorithm, evaluating the base facts against the &lt;br /&gt;ruleset, and adding an RDF statement that 'triggers' the &lt;br /&gt;backward-chaining process.  Fuxi &lt;a href=&quot;http://code.google.com/p/python-dlp/source/browse/trunk/fuxi/lib/Rete/Proof.py?spec=svn253&amp;amp;r=253#141&quot;&gt;includes&lt;/a&gt; a nice set of utilities for generating proof tree vizualizations.&lt;p&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Essentially, performing a top-down (or &lt;br /&gt;forward chaining) evaluation of the rules and the facts simulates a &lt;br /&gt;backward-chained proof. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Below are the 3 rules that replace the original domain-specific rule: &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;  :path_magic(?LOC1 ? LOC2) :- And( :path_magic(?X ? LOC2) &lt;br /&gt;:path_bf(?X ? LOC1) :path_magic(?X) ) &lt;br /&gt;  :path_magic(?X) :- :path_magic(?X ?LOC) &lt;br /&gt;  :path(?X ?LOC1) :- And( :path_magic(?X ? LOC1) :path_magic(?X) &lt;br /&gt;:path(?X ?LOC2) :path_magic(? LOC2 ? LOC1) :path(?LOC2 ?LOC1) ) &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;And finally, the trigger for the proof is the following RDF statement: &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;  first:Antwerp first:path_magic first:Ghent &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;The first two rules, pass through information about the sub-goals of &lt;br /&gt;the query and essentially block the final rule from taking effect &lt;br /&gt;until the trigger is added to the fact graph. It is clear to see that &lt;br /&gt;the 3rd rule, will no longer apply to every RDF statement with a &lt;br /&gt;first:path predicate, but rather only statements of that kind where &lt;br /&gt;the subject and / or object terms are part of a query. So, for a &lt;br /&gt;SPARQL service where we do not expect to answer queries that rely on &lt;br /&gt;supporting symmetric properties in the first:path predicate, no &lt;br /&gt;calculations will be performed and no unnecessary RDF statements will &lt;br /&gt;be entailed. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;I hope to write a bit more about some of the benefits of a Python &lt;br /&gt;toolkit for building Semantic Web expert systems. I touched a bit on &lt;br /&gt;these in my InfixOWL write-up and presentation, but haven't really put &lt;br /&gt;the whole picture together. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;-- Chimezie&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
	
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
          &lt;a href=&quot;http://chimezie.posterous.com/magic-sets-dlp-and-other-stran&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://chimezie.posterous.com/magic-sets-dlp-and-other-stran#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content:encoded>
	<dc:date>2009-07-20T20:00:07+00:00</dc:date>
</item>
<item rdf:about="http://chimezie.posterous.com/ngozichukwunyere-isabella-cele">
	<title>Uche and Chimezie Ogbuji: Ngozi Isabella (Chioma) Ogbuji</title>
	<link>http://chimezie.posterous.com/ngozichukwunyere-isabella-cele</link>
	<content:encoded>&lt;p&gt;
	&lt;/p&gt;
        &lt;p&gt;Initial 'portrait' shot of the new baby!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
        &lt;p&gt;
          &lt;a href=&quot;http://posterous.com/getfile/files.posterous.com/chimezie/SR7bJBcQGOKk097DDiD2f10BYVIAac5iVOKXbKvrd9AAw0e9AUjXt0jP69A4/ngozi-portrait.jpg.scaled.1000.jpg&quot;&gt;
            &lt;img height=&quot;500&quot; src=&quot;http://posterous.com/getfile/files.posterous.com/chimezie/2RGOhiBApu4p7HJQqu4fS1W6VJDkJ4jsnVVxgOYq49biaIrCQe4zqV1KTNnr/ngozi-portrait.jpg.scaled.500.jpg&quot; width=&quot;375&quot; /&gt;
          &lt;/a&gt;
        &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Ngozi(chukwu.nyere) means the blessing that God (or heaven/celestial, by my interpretation) gave.  My name (Chimezie) is an Igbo invokation for &quot;(May) God resolve&quot;.  My interpretation substitutes the 'abstract' notion of the celestial for the word God.  My name was an invokation by my father to resolve things and after everything that has transpired, Ngozi is the gift or blessing that may bring about this resolution.  My dad prefers to call her Chioma.  It means 'good god.'  Again, substituting the idea of the celetrial (as a stark contrast to phenomena of the 'terrestrial' ) for the Islamic/Judeo-Christian notion of God/god, you have the idea of a benevolent circumstance or fate.  &lt;/p&gt;
&lt;p&gt;
          &lt;a href=&quot;http://kwenu.com&quot;&gt;Kwenu.com&lt;/a&gt; has a nice volume of decent translations of Igbo &lt;a href=&quot;http://kwenu.com/afamefune/afamefune.htm&quot;&gt;names&lt;/a&gt;.  In fact, it also has a nice overview of the concept of &quot;Chi&quot; in Igbo mythology.  Ironically, this concept as a strong correlation with my understanding of how the celestial interacts with the terrestrial, the rule of natural law, and how it relates to myself and humans in general.  The chinese word &lt;a title=&quot;Qi&quot; href=&quot;http://en.wikipedia.org/wiki/Qi&quot;&gt;&quot;Chi&quot;&lt;/a&gt; has similar connotation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
            &lt;span&gt;the life-process or “flow” of energy that sustains living beings are found in many belief systems, especially in &lt;a title=&quot;Asia&quot; href=&quot;http://en.wikipedia.org/wiki/Asia&quot;&gt;Asia&lt;/a&gt;.&lt;/span&gt;
          &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Igbo mythology and ancient Indo-Chinese spiritual philosophy have much in common, so I guess in the end it is not so odd that I have come to find myself practicing Indo-Chinese spiritual philosophy as a way to understand the crazy world that I live in.  Their themes appeal to me in the same long-lasting way that the meanings invoked by the names of my children appeal to me.&lt;/p&gt;
&lt;p&gt;I have a flickr &lt;a title=&quot;Ngozi Flickr Album&quot; href=&quot;http://www.flickr.com/photos/39486537@N00/sets/72157611149457824/&quot;&gt;album set&lt;/a&gt; of our (Roschella and I) favorite pictures of her&lt;/p&gt;
	
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
          &lt;a href=&quot;http://chimezie.posterous.com/ngozichukwunyere-isabella-cele&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://chimezie.posterous.com/ngozichukwunyere-isabella-cele#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content:encoded>
	<dc:date>2009-07-20T20:00:07+00:00</dc:date>
</item>
<item rdf:about="http://lists.w3.org/Archives/Public/www-tag/2009Jul/0043.html">
	<title>Uche and Chimezie Ogbuji: Using URIs to denote non information artifacts was - Re: Review of new HTTPbis text for 303 See Other from Jonathan Rees on 2009-07-07 (www-tag@w3.org from July 2009)</title>
	<link>http://lists.w3.org/Archives/Public/www-tag/2009Jul/0043.html</link>
	<content:encoded>&lt;p&gt;Okay I finally get the idea of using de-referencable identifiers for non-information artifact 'entities'&lt;/p&gt;
    &lt;span&gt;
        &lt;a title=&quot;add this bookmark to your collection at http://delicious.com&quot; rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Flists.w3.org%2FArchives%2FPublic%2Fwww-tag%2F2009Jul%2F0043.html&amp;amp;title=Using%20URIs%20to%20denote%20non%20information%20artifacts%20was%20-%20Re%3A%20Review%20of%20new%20HTTPbis%20text%20for%20303%20See%20Other%20from%20Jonathan%20Rees%20on%202009-07-07%20%28www-tag%40w3.org%20from%20July%202009%29&amp;amp;copyuser=chimezie&amp;amp;copytags=http+tag+www+web&amp;amp;jump=yes&amp;amp;partner=delrss&amp;amp;src=feed_google&quot;&gt;
            &lt;img height=&quot;10&quot; border=&quot;0&quot; src=&quot;http://l.yimg.com/hr/img/delicious.small.gif&quot; width=&quot;10&quot; alt=&quot;http://delicious.com&quot; /&gt; Bookmark this on Delicious&lt;/a&gt;
        - Saved by &lt;a title=&quot;visit chimezie's bookmarks at Delicious&quot; href=&quot;http://delicious.com/chimezie&quot;&gt;chimezie&lt;/a&gt;
                    to
                                                &lt;a title=&quot;view chimezie's bookmarks tagged http&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/http&quot;&gt;http&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged tag&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/tag&quot;&gt;tag&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged www&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/www&quot;&gt;www&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged web&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/web&quot;&gt;web&lt;/a&gt;
                            			- &lt;a title=&quot;view more details on this bookmark at Delicious&quot; rel=&quot;self&quot; href=&quot;http://delicious.com/url/6a64e408654a87384ca266fc2bd8a4dd&quot;&gt;More about this bookmark&lt;/a&gt;
            &lt;/span&gt;</content:encoded>
	<dc:date>2009-07-20T19:00:05+00:00</dc:date>
</item>
<item rdf:about="http://www-03.ibm.com/press/us/en/pressrelease/27874.wss">
	<title>Uche and Chimezie Ogbuji: IBM Press room - 2009-06-30 IBM Research and European Union Provide Software Developers with Performance Gains and Faster Time-To-Market - United States</title>
	<link>http://www-03.ibm.com/press/us/en/pressrelease/27874.wss</link>
	<content:encoded>&lt;p&gt;&quot;..the world's first open source machine learning compiler. The compiler intelligently optimizes applications, translating directly into shorter software development times and bigger performance gains.&quot;&lt;/p&gt;
    &lt;span&gt;
        &lt;a title=&quot;add this bookmark to your collection at http://delicious.com&quot; rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fwww-03.ibm.com%2Fpress%2Fus%2Fen%2Fpressrelease%2F27874.wss&amp;amp;title=IBM%20Press%20room%20-%202009-06-30%20IBM%20Research%20and%20European%20Union%20Provide%20Software%20Developers%20with%20Performance%20Gains%20and%20Faster%20Time-To-Market%20-%20United%20States&amp;amp;copyuser=chimezie&amp;amp;copytags=compiler+programming+learning+machine-learning&amp;amp;jump=yes&amp;amp;partner=delrss&amp;amp;src=feed_google&quot;&gt;
            &lt;img height=&quot;10&quot; border=&quot;0&quot; src=&quot;http://l.yimg.com/hr/img/delicious.small.gif&quot; width=&quot;10&quot; alt=&quot;http://delicious.com&quot; /&gt; Bookmark this on Delicious&lt;/a&gt;
        - Saved by &lt;a title=&quot;visit chimezie's bookmarks at Delicious&quot; href=&quot;http://delicious.com/chimezie&quot;&gt;chimezie&lt;/a&gt;
                    to
                                                &lt;a title=&quot;view chimezie's bookmarks tagged compiler&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/compiler&quot;&gt;compiler&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged programming&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/programming&quot;&gt;programming&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged learning&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/learning&quot;&gt;learning&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged machine-learning&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/machine-learning&quot;&gt;machine-learning&lt;/a&gt;
                            			- &lt;a title=&quot;view more details on this bookmark at Delicious&quot; rel=&quot;self&quot; href=&quot;http://delicious.com/url/ca24b8262ae5735f82b3522d0a24456e&quot;&gt;More about this bookmark&lt;/a&gt;
            &lt;/span&gt;</content:encoded>
	<dc:date>2009-07-20T19:00:05+00:00</dc:date>
</item>
<item rdf:about="http://www.boston.com/bigpicture/2009/06/recent_scenes_from_the_iss.html">
	<title>Uche and Chimezie Ogbuji: Recent scenes from the ISS - The Big Picture - Boston.com</title>
	<link>http://www.boston.com/bigpicture/2009/06/recent_scenes_from_the_iss.html</link>
	<content:encoded>&lt;p&gt;&quot;..Collected here are a handful of photographs of Sarychev Peak Volcano, and more, taken by astronauts aboard the ISS over the past few months.&quot;&lt;/p&gt;
    &lt;span&gt;
        &lt;a title=&quot;add this bookmark to your collection at http://delicious.com&quot; rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fwww.boston.com%2Fbigpicture%2F2009%2F06%2Frecent_scenes_from_the_iss.html&amp;amp;title=Recent%20scenes%20from%20the%20ISS%20-%20The%20Big%20Picture%20-%20Boston.com&amp;amp;copyuser=chimezie&amp;amp;copytags=photo+science+earth+geography&amp;amp;jump=yes&amp;amp;partner=delrss&amp;amp;src=feed_google&quot;&gt;
            &lt;img height=&quot;10&quot; border=&quot;0&quot; src=&quot;http://l.yimg.com/hr/img/delicious.small.gif&quot; width=&quot;10&quot; alt=&quot;http://delicious.com&quot; /&gt; Bookmark this on Delicious&lt;/a&gt;
        - Saved by &lt;a title=&quot;visit chimezie's bookmarks at Delicious&quot; href=&quot;http://delicious.com/chimezie&quot;&gt;chimezie&lt;/a&gt;
                    to
                                                &lt;a title=&quot;view chimezie's bookmarks tagged photo&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/photo&quot;&gt;photo&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged science&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/science&quot;&gt;science&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged earth&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/earth&quot;&gt;earth&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged geography&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/geography&quot;&gt;geography&lt;/a&gt;
                            			- &lt;a title=&quot;view more details on this bookmark at Delicious&quot; rel=&quot;self&quot; href=&quot;http://delicious.com/url/2815038389c21bea0ac3d0e9a327838a&quot;&gt;More about this bookmark&lt;/a&gt;
            &lt;/span&gt;</content:encoded>
	<dc:date>2009-07-20T19:00:05+00:00</dc:date>
</item>
<item rdf:about="http://pylonsbook.com/en/1.0/authentication-and-authorization.html">
	<title>Uche and Chimezie Ogbuji: Chapter 18: Authentication and Authorization — Pylons Book v1.0 documentation</title>
	<link>http://pylonsbook.com/en/1.0/authentication-and-authorization.html</link>
	<content:encoded>&lt;p&gt;AuthKit documentation&lt;/p&gt;
    &lt;span&gt;
        &lt;a title=&quot;add this bookmark to your collection at http://delicious.com&quot; rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fpylonsbook.com%2Fen%2F1.0%2Fauthentication-and-authorization.html&amp;amp;title=Chapter%2018%3A%20Authentication%20and%20Authorization%20%E2%80%94%20Pylons%20Book%20v1.0%20documentation&amp;amp;copyuser=chimezie&amp;amp;copytags=python+web+authentication+security+api&amp;amp;jump=yes&amp;amp;partner=delrss&amp;amp;src=feed_google&quot;&gt;
            &lt;img height=&quot;10&quot; border=&quot;0&quot; src=&quot;http://l.yimg.com/hr/img/delicious.small.gif&quot; width=&quot;10&quot; alt=&quot;http://delicious.com&quot; /&gt; Bookmark this on Delicious&lt;/a&gt;
        - Saved by &lt;a title=&quot;visit chimezie's bookmarks at Delicious&quot; href=&quot;http://delicious.com/chimezie&quot;&gt;chimezie&lt;/a&gt;
                    to
                                                &lt;a title=&quot;view chimezie's bookmarks tagged python&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/python&quot;&gt;python&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged web&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/web&quot;&gt;web&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged authentication&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/authentication&quot;&gt;authentication&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged security&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/security&quot;&gt;security&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged api&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/api&quot;&gt;api&lt;/a&gt;
                            			- &lt;a title=&quot;view more details on this bookmark at Delicious&quot; rel=&quot;self&quot; href=&quot;http://delicious.com/url/621a217265e053355927b6141541435a&quot;&gt;More about this bookmark&lt;/a&gt;
            &lt;/span&gt;</content:encoded>
	<dc:date>2009-07-20T19:00:05+00:00</dc:date>
</item>
<item rdf:about="http://www.thenervousbreakdown.com/uogbuji/2009/06/tongue-of-warcraft-part-one/">
	<title>Uche and Chimezie Ogbuji: Tongue of Warcraft, Part One—Taboo Words</title>
	<link>http://www.thenervousbreakdown.com/uogbuji/2009/06/tongue-of-warcraft-part-one/</link>
	<content:encoded>BOULDER, CO-
I’ve studied martial arts most of my life, but I don’t enjoy watching fistfights. Sure, I sometimes watch MMA bouts, mostly as an exercise in making sense of techniques I learned in my Jujutsu days. But I am a salacious voyeur of one class of fights, one that weighs more in murderous intent than [...]</content:encoded>
	<dc:date>2009-07-20T19:00:05+00:00</dc:date>
</item>
<item rdf:about="http://uche.posterous.com/proust-ooky-cable-guys-and-everything-in-betw">
	<title>Uche and Chimezie Ogbuji: Proust, ooky cable guys, and everything in between</title>
	<link>http://uche.posterous.com/proust-ooky-cable-guys-and-everything-in-betw</link>
	<content:encoded>&lt;p&gt;
	&lt;/p&gt;
        &lt;div&gt;






&lt;div&gt;via &lt;a href=&quot;http://www.youtube.com/watch?v=c2ZJT9GUWVw&amp;amp;eurl=http%3A%2F%2Fwww%2Ethenervousbreakdown%2Ecom%2F&amp;amp;feature=player_embedded&quot;&gt;youtube.com&lt;/a&gt;
          &lt;/div&gt;
&lt;p&gt;Hilarious story, &quot;The Cable Guy Took a Dump in My Bathroom, Or, Why I Hate My Parents.&quot; by a friend and fellow writer on &lt;a href=&quot;http://thenervousbreakdown.com&quot;&gt;thenervousbreakdown.com&lt;/a&gt;.  Kimberly is also an amateur filmmaker, and if you like her story, check out her film, &lt;a href=&quot;http://www.whywewax.com/&quot;&gt;&quot;Why we wax&quot;&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
	
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
          &lt;a href=&quot;http://uche.posterous.com/proust-ooky-cable-guys-and-everything-in-betw&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://uche.posterous.com/proust-ooky-cable-guys-and-everything-in-betw#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content:encoded>
	<dc:date>2009-07-20T19:00:05+00:00</dc:date>
</item>
<item rdf:about="http://www.zhongwen.com/">
	<title>Uche and Chimezie Ogbuji: Learn Chinese Characters</title>
	<link>http://www.zhongwen.com/</link>
	<content:encoded>&lt;p&gt;Chinese characters and text&lt;/p&gt;
    &lt;span&gt;
        &lt;a title=&quot;add this bookmark to your collection at http://delicious.com&quot; rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fwww.zhongwen.com%2F&amp;amp;title=Learn%20Chinese%20Characters&amp;amp;copyuser=chimezie&amp;amp;copytags=language+linguistics+chinese+writing+culture+typography&amp;amp;jump=yes&amp;amp;partner=delrss&amp;amp;src=feed_google&quot;&gt;
            &lt;img height=&quot;10&quot; border=&quot;0&quot; src=&quot;http://l.yimg.com/hr/img/delicious.small.gif&quot; width=&quot;10&quot; alt=&quot;http://delicious.com&quot; /&gt; Bookmark this on Delicious&lt;/a&gt;
        - Saved by &lt;a title=&quot;visit chimezie's bookmarks at Delicious&quot; href=&quot;http://delicious.com/chimezie&quot;&gt;chimezie&lt;/a&gt;
                    to
                                                &lt;a title=&quot;view chimezie's bookmarks tagged language&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/language&quot;&gt;language&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged linguistics&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/linguistics&quot;&gt;linguistics&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged chinese&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/chinese&quot;&gt;chinese&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged writing&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/writing&quot;&gt;writing&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged culture&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/culture&quot;&gt;culture&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged typography&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/typography&quot;&gt;typography&lt;/a&gt;
                            			- &lt;a title=&quot;view more details on this bookmark at Delicious&quot; rel=&quot;self&quot; href=&quot;http://delicious.com/url/2a9147ee2f29f415c42e5f014140c19c&quot;&gt;More about this bookmark&lt;/a&gt;
            &lt;/span&gt;</content:encoded>
	<dc:date>2009-07-20T19:00:05+00:00</dc:date>
</item>
<item rdf:about="http://code.activestate.com/recipes/576795/">
	<title>Uche and Chimezie Ogbuji: Recipe 576795: Partitioning a sequence</title>
	<link>http://code.activestate.com/recipes/576795/</link>
	<content:encoded>&lt;p&gt;Distinct partitions of a sequence.&lt;/p&gt;
    &lt;span&gt;
        &lt;a title=&quot;add this bookmark to your collection at http://delicious.com&quot; rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fcode.activestate.com%2Frecipes%2F576795%2F&amp;amp;title=Recipe%20576795%3A%20Partitioning%20a%20sequence&amp;amp;copyuser=chimezie&amp;amp;copytags=recipe+python+code+datastructures&amp;amp;jump=yes&amp;amp;partner=delrss&amp;amp;src=feed_google&quot;&gt;
            &lt;img height=&quot;10&quot; border=&quot;0&quot; src=&quot;http://l.yimg.com/hr/img/delicious.small.gif&quot; width=&quot;10&quot; alt=&quot;http://delicious.com&quot; /&gt; Bookmark this on Delicious&lt;/a&gt;
        - Saved by &lt;a title=&quot;visit chimezie's bookmarks at Delicious&quot; href=&quot;http://delicious.com/chimezie&quot;&gt;chimezie&lt;/a&gt;
                    to
                                                &lt;a title=&quot;view chimezie's bookmarks tagged recipe&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/recipe&quot;&gt;recipe&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged python&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/python&quot;&gt;python&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged code&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/code&quot;&gt;code&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged datastructures&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/datastructures&quot;&gt;datastructures&lt;/a&gt;
                            			- &lt;a title=&quot;view more details on this bookmark at Delicious&quot; rel=&quot;self&quot; href=&quot;http://delicious.com/url/f0132edd66dcf7f07cb851080f290197&quot;&gt;More about this bookmark&lt;/a&gt;
            &lt;/span&gt;</content:encoded>
	<dc:date>2009-07-20T19:00:05+00:00</dc:date>
</item>
<item rdf:about="http://rhizomik.net/~roberto/thesis/html/KnowledgeRepresentation.html">
	<title>Uche and Chimezie Ogbuji: Knowledge Representation</title>
	<link>http://rhizomik.net/~roberto/thesis/html/KnowledgeRepresentation.html</link>
	<content:encoded>&lt;p&gt;&quot;[...] Knowledge Representation [...] Its mission is to make knowledge as explicit as possible. This is necessary because knowledge is stored in implicit form, i.e. tacit knowledge non-observable from the outside, inside minds and spread around in community social habits. &quot;&lt;/p&gt;
    &lt;span&gt;
        &lt;a title=&quot;add this bookmark to your collection at http://delicious.com&quot; rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Frhizomik.net%2F%7Eroberto%2Fthesis%2Fhtml%2FKnowledgeRepresentation.html&amp;amp;title=Knowledge%20Representation&amp;amp;copyuser=chimezie&amp;amp;copytags=knowledge-representation+knowledge+logic+reference&amp;amp;jump=yes&amp;amp;partner=delrss&amp;amp;src=feed_google&quot;&gt;
            &lt;img height=&quot;10&quot; border=&quot;0&quot; src=&quot;http://l.yimg.com/hr/img/delicious.small.gif&quot; width=&quot;10&quot; alt=&quot;http://delicious.com&quot; /&gt; Bookmark this on Delicious&lt;/a&gt;
        - Saved by &lt;a title=&quot;visit chimezie's bookmarks at Delicious&quot; href=&quot;http://delicious.com/chimezie&quot;&gt;chimezie&lt;/a&gt;
                    to
                                                &lt;a title=&quot;view chimezie's bookmarks tagged knowledge-representation&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/knowledge-representation&quot;&gt;knowledge-representation&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged knowledge&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/knowledge&quot;&gt;knowledge&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged logic&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/logic&quot;&gt;logic&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged reference&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/reference&quot;&gt;reference&lt;/a&gt;
                            			- &lt;a title=&quot;view more details on this bookmark at Delicious&quot; rel=&quot;self&quot; href=&quot;http://delicious.com/url/7b1dba3b9c7c8ff0d7d587d31d0ff9cc&quot;&gt;More about this bookmark&lt;/a&gt;
            &lt;/span&gt;</content:encoded>
	<dc:date>2009-07-20T02:52:39+00:00</dc:date>
</item>
<item rdf:about="http://www.thenervousbreakdown.com/uogbuji/2009/07/tongue-of-warcraft-part-two%e2%80%94politics-of-language/">
	<title>Uche and Chimezie Ogbuji: Tongue of Warcraft, Part Two—Politics of Language</title>
	<link>http://www.thenervousbreakdown.com/uogbuji/2009/07/tongue-of-warcraft-part-two%e2%80%94politics-of-language/</link>
	<content:encoded>BOULDER, CO-
It’s common among the literati to carry around a bunch of grammar gurus, like¹ Erykah Badu’s Bag Lady. Usually you’ll find some mix of H. G. Fowler, E. B. White and Quiller-Couch, and perhaps some volume-by-committee such as The Chicago Manual of Style or Hart’s Rules.  I personally used to follow Fowler.  I would [...]</content:encoded>
	<dc:date>2009-07-19T02:21:06+00:00</dc:date>
</item>
<item rdf:about="http://uche.posterous.com/the-tongue-my-take-0">
	<title>Uche and Chimezie Ogbuji: The Tongue (my take)</title>
	<link>http://uche.posterous.com/the-tongue-my-take-0</link>
	<content:encoded>&lt;p&gt;
	&lt;/p&gt;
        &lt;p&gt;I &lt;a href=&quot;http://uche.posterous.com/the-tongue&quot;&gt;wrote a little while back&lt;/a&gt; about how I found Karl Shapiro's &quot;The Tongue&quot; a rather flaccid piece (I reproduced it in &lt;a href=&quot;http://uche.posterous.com/the-tongue&quot;&gt;that posting&lt;/a&gt;). It immediately set me to thinking how I might write about cunnilingus in that approximate style. It fell upon me to give it a go today. With Shapiro's anapests in my head I couldn't help the occasional echo, but for the most part I kept it to iamb and trochee, which feel to me a better fit for the luxury of the act. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;
          &lt;strong&gt;The Tongue &lt;/strong&gt;
          &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;As the head dropping on chocolate of tape— &lt;br /&gt;Magnetic terrain of rhythm and rut— &lt;br /&gt;Pinch roller fingers knead eager approach &lt;br /&gt;Swelling to music is progress to what. &lt;br /&gt;
          &lt;br /&gt;My tongue to the who in the arc of your voice, &lt;br /&gt;To the hand caressing and guiding my ear, &lt;br /&gt;Loops left wet behind my ascent &lt;br /&gt;Anticipate pearly syrup of where. &lt;br /&gt;
          &lt;br /&gt;Song and its ceasure, vox humana, &lt;br /&gt;Thigh, tongue, hand in tumescent blend &lt;br /&gt;As the mouth creeps upon the open petals &lt;br /&gt;Nectar and fragrance annihilate when. &lt;br /&gt;
          &lt;br /&gt;—Uche &lt;br /&gt;18 July 2009 &lt;br /&gt;Superior&lt;/p&gt;
	
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
          &lt;a href=&quot;http://uche.posterous.com/the-tongue-my-take-0&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://uche.posterous.com/the-tongue-my-take-0#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content:encoded>
	<dc:date>2009-07-18T17:30:00+00:00</dc:date>
</item>
<item rdf:about="http://detexify.kirelabs.org/classify.html">
	<title>Uche and Chimezie Ogbuji: Detexify LaTeX handwritten symbol recognition</title>
	<link>http://detexify.kirelabs.org/classify.html</link>
	<content:encoded>&lt;p&gt;&quot;Anyone who works with LaTeX knows how time-consuming it can be to find a symbol in symbols-a4.pdf that you just can't memorize. Detexify is an attempt to simplify this search.&quot;&lt;/p&gt;
    &lt;span&gt;
        &lt;a title=&quot;add this bookmark to your collection at http://delicious.com&quot; rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fdetexify.kirelabs.org%2Fclassify.html&amp;amp;title=Detexify%20LaTeX%20handwritten%20symbol%20recognition&amp;amp;copyuser=chimezie&amp;amp;copytags=mathematics+tex+latex+math+symbol+tools+drawing+tool&amp;amp;jump=yes&amp;amp;partner=delrss&amp;amp;src=feed_google&quot;&gt;
            &lt;img height=&quot;10&quot; border=&quot;0&quot; src=&quot;http://l.yimg.com/hr/img/delicious.small.gif&quot; width=&quot;10&quot; alt=&quot;http://delicious.com&quot; /&gt; Bookmark this on Delicious&lt;/a&gt;
        - Saved by &lt;a title=&quot;visit chimezie's bookmarks at Delicious&quot; href=&quot;http://delicious.com/chimezie&quot;&gt;chimezie&lt;/a&gt;
                    to
                                                &lt;a title=&quot;view chimezie's bookmarks tagged mathematics&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/mathematics&quot;&gt;mathematics&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged tex&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/tex&quot;&gt;tex&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged latex&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/latex&quot;&gt;latex&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged math&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/math&quot;&gt;math&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged symbol&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/symbol&quot;&gt;symbol&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged tools&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/tools&quot;&gt;tools&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged drawing&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/drawing&quot;&gt;drawing&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged tool&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/tool&quot;&gt;tool&lt;/a&gt;
                            			- &lt;a title=&quot;view more details on this bookmark at Delicious&quot; rel=&quot;self&quot; href=&quot;http://delicious.com/url/d2df45daa276565fb2f9becd783c1757&quot;&gt;More about this bookmark&lt;/a&gt;
            &lt;/span&gt;</content:encoded>
	<dc:date>2009-07-17T21:43:46+00:00</dc:date>
</item>
<item rdf:about="http://www.aminus.org/blogs/xmlsrv/1025@http://www.aminus.org/blogs/">
	<title>Robert Brewer: The Ronacher Manifesto</title>
	<link>http://www.aminus.org/blogs/index.php/2009/07/14/the-ronacher-manifesto?blog=2</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://lucumr.pocoo.org/2009/7/14/free-vs-free&quot;&gt;http://lucumr.pocoo.org/2009/7/14/free-vs-free&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I heartily agree with the bold bits at least:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;So dear users: Use my stuff, have fun with it. And letting me know that you're doing is the best reward I can think of. And if you can contribute patches, that's even better.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.aminus.org/blogs/index.php/2009/07/14/the-ronacher-manifesto?blog=2&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-07-15T01:10:47+00:00</dc:date>
	<dc:creator>fumanchu</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/2009/07/02/michipug-july-meeting-tonight-python-in-vfx-impressive-31/">
	<title>Kevin Dangoor: MichiPUG July meeting tonight! Python in vfx, Impressive, 3.1</title>
	<link>http://www.blueskyonmars.com/2009/07/02/michipug-july-meeting-tonight-python-in-vfx-impressive-31/</link>
	<content:encoded>&lt;p&gt;The next &lt;a href=&quot;http://groups.google.com/group/michipug/web/index-2&quot;&gt;MichiPUG&lt;/a&gt; meeting will be on Thursday, July 2nd at 7PM. Ryan Burns will talk about the Impressive presentation software (which was used at Tuesday&amp;#8217;s Ignite Ann Arbor) and Terry Howald will talk about Python&amp;#8217;s use in scripting visual effects.We may also talk about the Python 3.1 release. &lt;/p&gt;
&lt;p&gt;The meeting will be in downtown Ann Arbor at the &lt;a href=&quot;http://groups.google.com/group/michipug/web/SRT%20Solutions&quot;&gt;SRT Solutions&lt;/a&gt; office.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2009-07-02T15:11:40+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://uche.posterous.com/diamonds-are-so-over">
	<title>Uche and Chimezie Ogbuji: Diamonds are so over</title>
	<link>http://uche.posterous.com/diamonds-are-so-over</link>
	<content:encoded>&lt;p&gt;
	&lt;/p&gt;
        &lt;p&gt;I was listening to my beloved Asa today (Up Nigerian soul!) &quot;Fire on the Mountain&quot;, an incredible monument of a song:&lt;/p&gt;
&lt;p&gt;
          
        &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
          &lt;em&gt;So you say you have a lover and you love her like no other &lt;br /&gt;So you buy her a diamond that someone has died on &lt;br /&gt;Don't you think there's something wrong with this?&lt;/em&gt;
        &lt;/p&gt;
&lt;p&gt; &lt;br /&gt;&lt;/p&gt; &lt;br /&gt;Diamonds are contemptible bits of mediocre mineral that serve testimony to the gullibility and pliability of the public. I can't wait for the advent of perfect, carats-for-pennies diamonds from the laboratory, and it won't be long (would probably have been by now if not for the invidiousness of the diamond cartels). Soon, I hope, we can finally ditch the foetid illusion that diamonds have any value.&lt;/p&gt;
&lt;p&gt;
          &lt;br /&gt;
          &lt;em&gt;Hey Mr. soldier man, tomorrow is the day you go to war &lt;br /&gt;Boy you are fighting for another man's cause and you don't even know him &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Ooooh! &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;What did they say to make you so blind to your conscience and reason? &lt;br /&gt;Could it be love for your country or for the gun you use in killing?&lt;/em&gt;
        &lt;/p&gt;
&lt;p&gt; &lt;br /&gt;&lt;/p&gt; &lt;br /&gt;Or for the diamonds that corrupt your country and purchase those very guns? &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;You've heard it before, but Asa tells it with a fierce trueness. It's time to stop giving money to the diamond cartels. You might as well spend two months' salary funding coca and poppy production.&lt;/p&gt;
	
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
          &lt;a href=&quot;http://uche.posterous.com/diamonds-are-so-over&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://uche.posterous.com/diamonds-are-so-over#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://uche.posterous.com/the-tongue">
	<title>Uche and Chimezie Ogbuji: The Tongue</title>
	<link>http://uche.posterous.com/the-tongue</link>
	<content:encoded>&lt;p&gt;
	&lt;/p&gt;
        &lt;p&gt;In my poetical wandering over the weekend I ran across Karl Shapiro's &quot;The Tongue&quot;. He starts by getting the conceit all wrong, and even though it bears the execution of a fine craft piece, the result comes off a bit of a mess.&lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;
          &lt;code&gt; 
As a slug on the flat of the sun-heated clay, 
With the spit of its track left behind it like glass, 
Imperceptibly voyages, licking its way 
In the sinuous slime of itself to the grass, 
 
So my tongue on the white-heated wall of your thigh 
Licks its belly across, and the path of my slime 
Lies in ribbons of passion, the wet and the dry 
Overlapping to mount to the leaf of its climb. 
 
And the mouth and the mouth and the tongue and the tongue 
And the fishes that feed in the joy of our oil 
And the slug of our wetness finds green food among 
The hair-forests of longing where serpents uncoil. 
&lt;/code&gt; &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;You can see how the cleverness dampens the sense, something I often struggle with myself. This is a large part of the reason why Shapiro, despite his technical skill, has never been as celebrated as he should be. He tries to use a sprinkling of words (&quot;passion&quot;, &quot;longing&quot;) to mend the detachment of the conceit of the slug, which could never hope to transport the idea of a tongue inching towards cunnilingus. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;The piece pretty much cries out for a rival metaphysical poet's response.  And it should serve as a lesson to me.&lt;/p&gt;
	
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
          &lt;a href=&quot;http://uche.posterous.com/the-tongue&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://uche.posterous.com/the-tongue#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://www.springerlink.com/content/l9xlh5aw8tcv">
	<title>Uche and Chimezie Ogbuji: Automatic Generation of Computer Animation: Using AI for Movie Animation</title>
	<link>http://www.springerlink.com/content/l9xlh5aw8tcv</link>
	<content:encoded>&lt;p&gt;Turning a story in text form into an animated movie is a long and complicated procedure. [...] many parts of this process could be automated by using artificial intelligence techniques [...] So we decided to explore the possibility of a generation process of computer animation from a childrens story in natural language text form to the final animated movie.&lt;/p&gt;
    &lt;span&gt;
        &lt;a title=&quot;add this bookmark to your collection at http://delicious.com&quot; rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fwww.springerlink.com%2Fcontent%2Fl9xlh5aw8tcv&amp;amp;title=Automatic%20Generation%20of%20Computer%20Animation%3A%20Using%20AI%20for%20Movie%20Animation&amp;amp;copyuser=chimezie&amp;amp;copytags=ai+theory+logic+literature+semantic&amp;amp;jump=yes&amp;amp;partner=delrss&amp;amp;src=feed_google&quot;&gt;
            &lt;img height=&quot;10&quot; border=&quot;0&quot; src=&quot;http://l.yimg.com/hr/img/delicious.small.gif&quot; width=&quot;10&quot; alt=&quot;http://delicious.com&quot; /&gt; Bookmark this on Delicious&lt;/a&gt;
        - Saved by &lt;a title=&quot;visit chimezie's bookmarks at Delicious&quot; href=&quot;http://delicious.com/chimezie&quot;&gt;chimezie&lt;/a&gt;
                    to
                                                &lt;a title=&quot;view chimezie's bookmarks tagged ai&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/ai&quot;&gt;ai&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged theory&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/theory&quot;&gt;theory&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged logic&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/logic&quot;&gt;logic&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged literature&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/literature&quot;&gt;literature&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged semantic&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/semantic&quot;&gt;semantic&lt;/a&gt;
                            			- &lt;a title=&quot;view more details on this bookmark at Delicious&quot; rel=&quot;self&quot; href=&quot;http://delicious.com/url/3d02f8f3610d1d72c462a25ea8414bad&quot;&gt;More about this bookmark&lt;/a&gt;
            &lt;/span&gt;</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://broadcast.oreilly.com/2009/04/data-chef-spss-tripe-consomme.html">
	<title>Uche and Chimezie Ogbuji: Data chef: SPSS Tripe Consommé</title>
	<link>http://broadcast.oreilly.com/2009/04/data-chef-spss-tripe-consomme.html</link>
	<content:encoded>The data chef discusses translation of data from SPSS format, for those who don't have a licensed copy at hand.</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://www.thenervousbreakdown.com/uogbuji/2009/04/only-one-poem-for-the-implosion-of-capital/">
	<title>Uche and Chimezie Ogbuji: Only one poem for the implosion of Capital</title>
	<link>http://www.thenervousbreakdown.com/uogbuji/2009/04/only-one-poem-for-the-implosion-of-capital/</link>
	<content:encoded>BOULDER, CO-
I’ve often heard it said that “there is no such thing as a communist Igbo”, a reference to our intense mercantile culture.  Somewhat like stereotype of Lebanese, we’ve tended to structure our very existence around what we can sell, and in this 419 age, what we can con out of others.  Ok, [...]</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://www.nltk.org/">
	<title>Uche and Chimezie Ogbuji: NLTK Home ‎(Natural Language Toolkit)‎</title>
	<link>http://www.nltk.org/</link>
	<content:encoded>&lt;p&gt;Open source Python modules, linguistic data and documentation for research and development in natural language processing, supporting dozens of NLP tasks&lt;/p&gt;
    &lt;span&gt;
        &lt;a title=&quot;add this bookmark to your collection at http://delicious.com&quot; rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fwww.nltk.org%2F&amp;amp;title=NLTK%20Home%20%E2%80%8E%28Natural%20Language%20Toolkit%29%E2%80%8E&amp;amp;copyuser=chimezie&amp;amp;copytags=python+nlp+code+programming+linguistics&amp;amp;jump=yes&amp;amp;partner=delrss&amp;amp;src=feed_google&quot;&gt;
            &lt;img height=&quot;10&quot; border=&quot;0&quot; src=&quot;http://l.yimg.com/hr/img/delicious.small.gif&quot; width=&quot;10&quot; alt=&quot;http://delicious.com&quot; /&gt; Bookmark this on Delicious&lt;/a&gt;
        - Saved by &lt;a title=&quot;visit chimezie's bookmarks at Delicious&quot; href=&quot;http://delicious.com/chimezie&quot;&gt;chimezie&lt;/a&gt;
                    to
                                                &lt;a title=&quot;view chimezie's bookmarks tagged python&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/python&quot;&gt;python&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged nlp&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/nlp&quot;&gt;nlp&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged code&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/code&quot;&gt;code&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged programming&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/programming&quot;&gt;programming&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged linguistics&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/linguistics&quot;&gt;linguistics&lt;/a&gt;
                            			- &lt;a title=&quot;view more details on this bookmark at Delicious&quot; rel=&quot;self&quot; href=&quot;http://delicious.com/url/5e3c2cb2a54f33848eb15a668193c648&quot;&gt;More about this bookmark&lt;/a&gt;
            &lt;/span&gt;</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://seat.massey.ac.nz/personal/s.r.marsland/MLBook.html">
	<title>Uche and Chimezie Ogbuji: Stephen Marsland</title>
	<link>http://seat.massey.ac.nz/personal/s.r.marsland/MLBook.html</link>
	<content:encoded>&lt;p&gt;&quot;I've written a textbook entitled 'Machine Learning: An Algorithmic Perspective'. [...]  There are lots of Python code examples in the book, and the code is available here.&quot;  Yummy&lt;/p&gt;
    &lt;span&gt;
        &lt;a title=&quot;add this bookmark to your collection at http://delicious.com&quot; rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fseat.massey.ac.nz%2Fpersonal%2Fs.r.marsland%2FMLBook.html&amp;amp;title=Stephen%20Marsland&amp;amp;copyuser=chimezie&amp;amp;copytags=code+python+machine-learning+programming&amp;amp;jump=yes&amp;amp;partner=delrss&amp;amp;src=feed_google&quot;&gt;
            &lt;img height=&quot;10&quot; border=&quot;0&quot; src=&quot;http://l.yimg.com/hr/img/delicious.small.gif&quot; width=&quot;10&quot; alt=&quot;http://delicious.com&quot; /&gt; Bookmark this on Delicious&lt;/a&gt;
        - Saved by &lt;a title=&quot;visit chimezie's bookmarks at Delicious&quot; href=&quot;http://delicious.com/chimezie&quot;&gt;chimezie&lt;/a&gt;
                    to
                                                &lt;a title=&quot;view chimezie's bookmarks tagged code&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/code&quot;&gt;code&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged python&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/python&quot;&gt;python&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged machine-learning&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/machine-learning&quot;&gt;machine-learning&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged programming&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/programming&quot;&gt;programming&lt;/a&gt;
                            			- &lt;a title=&quot;view more details on this bookmark at Delicious&quot; rel=&quot;self&quot; href=&quot;http://delicious.com/url/626a8fea59eacaff9878ba891867b2dc&quot;&gt;More about this bookmark&lt;/a&gt;
            &lt;/span&gt;</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://broadcast.oreilly.com/2009/04/character-length-restrictions.html">
	<title>Uche and Chimezie Ogbuji: Character-length restrictions, RPC, and choosing FriendFeed over Twitter</title>
	<link>http://broadcast.oreilly.com/2009/04/character-length-restrictions.html</link>
	<content:encoded>Database field-length silliness has haunted me throughout my career as an data/information architect, and</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://www.twine.com/item/1264gvb3t-1rh/semantic-web-takes-root-at-the-ia-summit-meaningful-data">
	<title>Uche and Chimezie Ogbuji: Semantic Web takes root at the IA Summit « Meaningful Data</title>
	<link>http://www.twine.com/item/1264gvb3t-1rh/semantic-web-takes-root-at-the-ia-summit-meaningful-data</link>
	<content:encoded>&lt;div&gt;
    &lt;table&gt;
        &lt;tbody&gt;
              &lt;tr&gt;
            &lt;td valign=&quot;top&quot; width=&quot;130&quot;&gt;
                
                
            &lt;/td&gt;
            &lt;td valign=&quot;top&quot; height=&quot;100&quot;&gt;
                &lt;h2&gt;
                    &lt;a href=&quot;http://www.twine.com/item/1264gvb3t-1rh/semantic-web-takes-root-at-the-ia-summit-meaningful-data&quot;&gt;Semantic Web takes root at the IA Summit « Meaningful Data&lt;/a&gt;
                &lt;/h2&gt;
                
                Bookmark added by &lt;a href=&quot;http://www.twine.com/user/uche&quot;&gt;Uche Ogbuji&lt;/a&gt; at 09:44 PM CDT

                &lt;div&gt;&quot;At the recent IA Summit, I was surprised and delighted to see how many talks there were about the&lt;/div&gt;
                &lt;/td&gt;
              &lt;/tr&gt;
            &lt;/tbody&gt;
          &lt;/table&gt;
        &lt;/div&gt;</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://chimezie.posterous.com/on-model-theory">
	<title>Uche and Chimezie Ogbuji: On Model Theory</title>
	<link>http://chimezie.posterous.com/on-model-theory</link>
	<content:encoded>&lt;p&gt;
	So, I've started a part-time Ph.D program at the EECS department of &lt;br /&gt;Case Western University. I'm hoping to write a thesis on higher &lt;br /&gt;education information science as patient advocacy. I've taken a &lt;br /&gt;course on Machine Learning, database systems, and now on model theory. &lt;br /&gt; Luckily Case has a class on model theory in the philosophy &lt;br /&gt;department. But it also counts as credit from the graduate &lt;br /&gt;mathematics department. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;The class on model theory is about Kurt Godel's (I know I'm &lt;br /&gt;misspelling it) theory on the incompleteness theory of peano's &lt;br /&gt;arithmetic ( an axiomatization of number theory ). The book for the &lt;br /&gt;class, It is supposed to be written by mathematical geniuses, our &lt;br /&gt;professor proclaims. The book is &quot;..&quot; &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Models are states of absolute (binary) logical certainty: things that &lt;br /&gt;are or things that aren't. Statements in this language are 'sound' &lt;br /&gt;(they follow from our understanding of logic). The consist of &lt;br /&gt;domains: sets of 'things' denoted by terms in a written language (a &lt;br /&gt;first-order language). The model also consists of 'interpretations' &lt;br /&gt;of phrases (or formulas) in this language, some of which are 'closed' &lt;br /&gt;(i.e., all variables refer to constants interpreted through this &lt;br /&gt;model) or open. The axiomatic nature of basic science presumes &lt;br /&gt;logical certainty in its canon. The language consists of constants &lt;br /&gt;that can be interpreted 'against' the domain of a model, sets of &lt;br /&gt;constants composed form constants interpreted against the domain of &lt;br /&gt;the model, functions that map sets of members of the domain to members &lt;br /&gt;of the domain, 'relations' over the domains, and a determination of &lt;br /&gt;'equality' over members of the domain. Model theory is the basis of &lt;br /&gt;first-order theory, logic-based knowledge representation, numeric &lt;br /&gt;theory, etc.. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Godel's theory says that any axiomatic system that is as expressive as &lt;br /&gt;some computable representation of number theory is not complete (i.e., &lt;br /&gt;there is at least one question you can formulate in the language for &lt;br /&gt;which you cannot say with certainty that it is so or it isn't so). &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Models 'entail' sets of formulas when they entail all the members of &lt;br /&gt;the set. Models satisfy sentences and 'terms' in languages. Some &lt;br /&gt;formulas can be said to be valid in every model (i.e., they are &lt;br /&gt;satisfied by every model of a language) or they specifically are &lt;br /&gt;entailed by a particular model. Axiomatic machinations (finite state &lt;br /&gt;automata, etc..) are systems about languages and a set of axioms that &lt;br /&gt;can be used to 'derive' expressions in the language via a finite set &lt;br /&gt;of valid theories, specifically given sentences in a theory, or &lt;br /&gt;sentences that follow from modus ponens (common sense if / then &lt;br /&gt;conditionals) and sentences in a theory (a scientific theory). &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;As our prof puts it, all of logic programming (and database theory) is &lt;br /&gt;spawned by this known limitation to model theory and first-order &lt;br /&gt;logic. They are restricted forms of it that are complete (unlike &lt;br /&gt;number theoretic languages), and sound and thus 'decidable' by a &lt;br /&gt;finite state automaton or turing machine. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Systems that describe their 'formal semantics' - the meaning of &lt;br /&gt;statements made in their languages often describe them using model &lt;br /&gt;theory (all of semantic web theory does this: RDF, RDFS, OWL-DL, &lt;br /&gt;etc..). More on this later
	
&lt;/p&gt;

&lt;p&gt;
          &lt;a href=&quot;http://chimezie.posterous.com/on-model-theory&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://chimezie.posterous.com/on-model-theory#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://chimezie.posterous.com/using-owl-and-default-negation-to-reason-abou">
	<title>Uche and Chimezie Ogbuji: Using OWL and Default Negation to Reason about Patient Records</title>
	<link>http://chimezie.posterous.com/using-owl-and-default-negation-to-reason-abou</link>
	<content:encoded>&lt;p&gt;
	&lt;/p&gt;
        &lt;p&gt;We've been using &lt;b&gt;SPARQL&lt;/b&gt;, &lt;b&gt;OWL&lt;/b&gt;, and &lt;b&gt;N3&lt;/b&gt; lately to prototype the reporting &lt;br /&gt;of common research variables to the Society of Thoracic Surgeon's &lt;br /&gt;(STS) &lt;a href=&quot;http://www.sts.org/sections/stsnationaldatabase/&quot;&gt;National Database&lt;/a&gt;. The reports are being run against our large &lt;br /&gt;RDF dataset of abstracted electronic patient records from the &lt;br /&gt;Cleveland Clinic's Electronic Health Record system. Our dataset &lt;br /&gt;consists of about 200,000 patients each represented as statements in &lt;br /&gt;named RDF graphs. The STS variables we are responsible for deriving &lt;br /&gt;are represented using a combination of OWL-DL and Notation 3. The &lt;br /&gt;constraints that do not benefit from the restricted, tree-like nature of description logic are captured using secondary plain Horn clauses &lt;br /&gt;(or rules) represented in Notation 3. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;We use an &lt;a href=&quot;http://code.google.com/p/python-dlp/&quot;&gt;open source logic reasoning system&lt;/a&gt; for the semantic web that &lt;br /&gt;converts the constraints and a SPARQL query for an RDF dataset &lt;br /&gt;governed by these OWL-DL constraints into provably optimal sets of &lt;br /&gt;rules used to calculate an entailed RDF graph (the specifics of this &lt;br /&gt;method is a subject of a paper I'm working on for the RuleML 2009 &lt;br /&gt;conference). Such an entailed RDF graph can then be targeted with &lt;br /&gt;SPARQL queries to answer for the STS variables. A recent challenge &lt;br /&gt;has been to try to capture the semantics of negation in order to &lt;br /&gt;implement 'exclusion criteria'. This is typically of the form of a &lt;br /&gt;class of procedures that do not involve combinations of one or more &lt;br /&gt;kinds of other procedures. A recent update to FuXi includes the &lt;br /&gt;ability to convert OWL-DL expressions that use owl:complementOf into &lt;br /&gt;general, stratified, logic programs that can be evaluated using SPARQL &lt;br /&gt;in order to implement the semantics of stable model negation (which is &lt;br /&gt;quite different from the way owl:complementOf is meant to be &lt;br /&gt;interpreted: according to the negation of first-order logic). &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;In particular, statements of classical (first-order) negation are &lt;br /&gt;making assertions about the lack of existence of models that satisfy &lt;br /&gt;the positive form of such a statement in a theory. I prefer this &lt;br /&gt;explanation to the way the term 'open world' assumption is often &lt;br /&gt;used to describe this interpretation of negated terms in a &lt;br /&gt;description logic language. Database theory, ofcourse, does not interpret negated terms &lt;br /&gt;in this way, but instead (intuitively) understands statements of negated terms to be &lt;br /&gt;'true' if the (ground) positive form is not in the set of known facts (the &lt;br /&gt;database). &lt;/p&gt;
        &lt;p&gt;Our use of negation, and the nature of knowledge &lt;br /&gt;recorded in a computer-based patient record system seems (so far) to &lt;br /&gt;lend itself more to the database interpretation where there is an &lt;br /&gt;understanding that a curated medical information system would have its &lt;br /&gt;data entered under the governance of policies that would allow &lt;br /&gt;medically useful inferences to be made from the absence of certain &lt;br /&gt;facts about patient care. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;In particular, if a fact is known to not be true about a patient or &lt;br /&gt;some activity involving a patient, it is not recorded. This common &lt;br /&gt;understanding can be used to make inferences about whether facts in a &lt;br /&gt;patient record satisfy an exclusion criteria. Below is an example of &lt;br /&gt;this: &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Consider the following OWL descriptions of a class of operations: &lt;br /&gt; &lt;/p&gt;
        &lt;blockquote&gt;
          &lt;p&gt;
            &lt;span&gt;SubClassOf&lt;/span&gt;( &lt;br /&gt; &lt;span&gt;IntersectionOf&lt;/span&gt;( &lt;br /&gt;  Operation &lt;br /&gt;  PostOpInHOspitalEvent &lt;br /&gt;  &lt;span&gt;ObjectAllValuesFrom&lt;/span&gt;( &lt;br /&gt;   involves &lt;br /&gt;   &lt;span&gt;ComplementOf&lt;/span&gt;( &lt;span&gt;UnionOf&lt;/span&gt;( CardiacProcedure ThoracicControlBleeding ) ) ) &lt;br /&gt; ) &lt;br /&gt; sts:ReopForOtherNonCardiac ) &lt;/p&gt;
        &lt;/blockquote&gt;
        &lt;p&gt;The syntax above is the &lt;b&gt;OWL2&lt;/b&gt; functional-style syntax. We can &lt;br /&gt;paraphrase the general class inclusion (GCI) axiom above as saying: &lt;br /&gt;&quot;.. &lt;i&gt;all operations that followed another operation and do &lt;span&gt;not&lt;/span&gt; involve any &lt;br /&gt;cardiac procedures or thoracic control bleeding procedures.&lt;/i&gt;&quot; &lt;br /&gt;&quot; &lt;br /&gt;The original documentation for this variable in the STS adult cardiac &lt;br /&gt;database manual says:  &lt;br /&gt;
        &lt;/p&gt;
        &lt;blockquote&gt;
          &lt;p&gt;Indicate whether the patient returned to the operating room for &lt;br /&gt;other non-cardiac reasons&lt;/p&gt;
        &lt;/blockquote&gt;
        &lt;p&gt;Now, if we assume that all operations of interest and the involved &lt;br /&gt;procedures are explicitly recorded in our patient RDF dataset. This &lt;br /&gt;general class inclusion axioms can be reduced into a set of rules that use negated &lt;br /&gt;'literals' (as they are called); understood to capture the semantics of &lt;br /&gt;default negation (or the 'closed world assumption').  It is worth noting that this is exemplary of a class of expressions that description logic, tableaux-based reasoning algorithms often have problems with.&lt;/p&gt;
        &lt;p&gt;Conjunctive query answering for stratified datalog is a well-studied class of &lt;br /&gt;problems in database theory. It is through the insight of this canon of theory that FuXi is now able to reduce &lt;br /&gt;OWL-DL expressions that use owl:complementOf into sets of rules (or &lt;br /&gt;logic programs) that can be efficiently processed in order to &lt;br /&gt;implement SPARQL entailment regimes for &lt;a href=&quot;http://www.w3.org/TR/rif-rdf-owl/#def-rif-rdf-combination&quot;&gt;combinations&lt;/a&gt; of OWL and &lt;br /&gt;rule-based representations for the semantic web such as &lt;br /&gt;Notation 3 or RIF core. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;The current FuXi implementation converts the GCI into the following &lt;br /&gt;two RIF rules: &lt;br /&gt;
        &lt;/p&gt;
        &lt;blockquote&gt;
          &lt;p&gt;
            &lt;br /&gt;
            &lt;b&gt;Forall&lt;/b&gt; ?X ?QrjeKHuq961 ( &lt;br /&gt;?X # sts:ReopForOtherNonCardiac &lt;/p&gt;
          &lt;p&gt;  :- &lt;b&gt;And&lt;/b&gt;(&lt;/p&gt;
          &lt;p&gt;    ?X # PostOpInHospitalEvent&lt;br /&gt;    ?X # Operation, &lt;br /&gt;    &lt;b&gt;  Naf&lt;/b&gt; ?X[involves -&amp;gt; ?QrjeKHuq961] ) )&lt;/p&gt;
        &lt;/blockquote&gt;
        &lt;blockquote&gt;
          &lt;p&gt;
            &lt;br /&gt;
            &lt;b&gt;Forall&lt;/b&gt; ?X ?QrjeKHuq961 ( &lt;br /&gt;?X # sts:ReopForOtherNonCardiac &lt;br /&gt;  :- &lt;b&gt;And&lt;/b&gt;(&lt;/p&gt;
          &lt;p&gt;    ?X # PostOpInHospitalEvent ,&lt;br /&gt;    ?X #   Operation, &lt;br /&gt;      ?X[involves -&amp;gt; ?QrjeKHuq961], &lt;br /&gt;    &lt;b&gt;  Naf&lt;/b&gt; ?QrjeKHuq961 # CardiacProcedure, &lt;br /&gt;    &lt;b&gt;  Naf&lt;/b&gt; ?QrjeKHuq961 # ThoracicControlBleeding ) )&lt;br /&gt;
          &lt;/p&gt;
        &lt;/blockquote&gt;
        &lt;p&gt;
          &lt;br /&gt; Note, &lt;b&gt;Naf&lt;/b&gt; is in the (current) 30 July 2008 version of the &quot;&lt;i&gt;RIF &lt;br /&gt;Framework for Logic Dialects&lt;/i&gt;&quot;  &lt;br /&gt;
        &lt;/p&gt;
        &lt;p&gt;The first rule describes members of the clas of ReopForOtherNonCardiac as those post-operative operations (i.e., operations that follow another operation in the same patient hospital visit or episode) that do &lt;i&gt;not&lt;/i&gt; involve other procedures.&lt;/p&gt;
        &lt;p&gt;The second rule applies to those post-operative operations that do involve other procedures where these other operations are not either cardiac procedures or thoracic control bleeding procedures.&lt;br /&gt;
        &lt;/p&gt;
        &lt;p&gt;These RIF rules can be exchanged with other RIF-compliant rule-based &lt;br /&gt;systems that implement any of the well-accepted semantics for negated &lt;br /&gt;formulas in horn clause logic (stable models, well-founded models, &lt;br /&gt;stratified models, etc.). A recent modification to FuXi makes &lt;br /&gt;use of a programmatic SPARQL interface for Python that a colleague of &lt;br /&gt;mind has been working on called &lt;a href=&quot;http://bitbucket.org/exogen/telescope/wiki/Home&quot;&gt;telescope&lt;/a&gt;. It works with &lt;br /&gt;rdflib (same as FuXi) and is used as a control layer that converts &lt;br /&gt;negated RIF rules into a series of SPARQL queries involving &lt;br /&gt;OPTIONAL/FILTER/!BOUND that are used to calculate &quot;stratified models&quot; &lt;br /&gt;(i.e., the finite set of facts that can be inferred from the set of &lt;br /&gt;rules that include negated literals). &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Renzo Angles et al. (&lt;a href=&quot;http://www.dcc.uchile.cl/TR/2008/TR_DCC-2008-005.pdf&quot;&gt;2008)&lt;/a&gt; and Polleres, A. (&lt;a href=&quot;http://www2007.org/papers/paper435.pdf&quot;&gt;2007&lt;/a&gt;) have since &lt;br /&gt;demonstrated that the expressive power of SPARQL coincides with that &lt;br /&gt;of datalog with negation, so it comes as no suprise that certain &lt;br /&gt;datalog clauses (or rules) can be converted into SPARQL queries using &lt;br /&gt;so-called copy-patterns and the introduction of a MINUS operator. For &lt;br /&gt;the details of how this operator works and how its semantics are &lt;br /&gt;equivalent with that of datalog, the reader is urged to read any of &lt;br /&gt;the above mentioned papers. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;telescope is used to programatically convert MINUS operators into a &lt;br /&gt;SPARQL queries that answer for RIF rules with the corresponding &lt;br /&gt;negated frame formulas below: &lt;br /&gt; &lt;/p&gt;
        &lt;blockquote&gt;
          &lt;p&gt;SELECT ?X &lt;br /&gt;WHERE { &lt;br /&gt; ?X a PostOpInHospitalEvent . &lt;br /&gt; ?X a Operation &lt;br /&gt; #The post-operative operation does not invlolve any procedures &lt;br /&gt; OPTIONAL { ?X involves ?QrjeKHuq961 } &lt;br /&gt; FILTER (!bound(?QrjeKHuq961)) &lt;br /&gt;}&lt;/p&gt;
        &lt;/blockquote&gt;
        &lt;blockquote&gt;
          &lt;p&gt;
            &lt;br /&gt;SELECT ?X &lt;br /&gt;WHERE { &lt;br /&gt; ?X a PostOpInHospitalEvent . &lt;br /&gt; ?X a Operation . &lt;br /&gt; ?X involves ?QrjeKHuq961 &lt;br /&gt; #In the case where the post-operative operation involves a procedure &lt;br /&gt;it is *not* either a &lt;br /&gt; # cardiac procedure or a thoracic control bleeding &lt;br /&gt; OPTIONAL { &lt;br /&gt;  ?QrjeKHuq961 a CardiacProcedure . &lt;br /&gt;  ?QrjeKHuq961 a ThoracicControlBleeding . &lt;br /&gt;  ?QrjeKHuq16542 a CardiacProcedure . &lt;br /&gt;  ?QrjeKHuq16542 a ThoracicControlBleeding &lt;br /&gt;  FILTER (?QrjeKHuq961 = ?QrjeKHuq16542) &lt;br /&gt; } &lt;br /&gt; FILTER (!bound(?QrjeKHuq16542)) &lt;br /&gt;}&lt;/p&gt;
        &lt;/blockquote&gt;
        &lt;p&gt;
          &lt;br /&gt;I'll be adding a wiki shortly (on the python-dlp google code wiki) &lt;br /&gt;describing the explicit APIs that can be used for this purpose, but I &lt;br /&gt;wanted to give the feature some context in the recent work I've been &lt;br /&gt;doing on applications of semantic web for medical informatics &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;-- Chimezie&lt;/p&gt;
	
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
          &lt;a href=&quot;http://chimezie.posterous.com/using-owl-and-default-negation-to-reason-abou&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://chimezie.posterous.com/using-owl-and-default-negation-to-reason-abou#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://chimezie.posterous.com/rdf-owl-tool-developers-should-respect-xmlbas">
	<title>Uche and Chimezie Ogbuji: RDF / OWL Tool Developers Should Respect xml:base!</title>
	<link>http://chimezie.posterous.com/rdf-owl-tool-developers-should-respect-xmlbas</link>
	<content:encoded>&lt;p&gt;
	&lt;/p&gt;
        &lt;p&gt;Okay. I think it needs to be said that RDF / OWL tool-makers do not &lt;br /&gt;do a good job of respecting the mechanics of xml:base . It seems &lt;br /&gt;almost a given that most of them mangle the URI base resolution &lt;br /&gt;conventions they find in existing RDF/OWL files, overwriting them with &lt;br /&gt;their own. Often, this happens in a very destructive way that can be &lt;br /&gt;even more annoying for a person who has much experience using XML and &lt;br /&gt;thus has a better appreciation (perhaps) of the value of a base URI of &lt;br /&gt;an OWL document for more than just owl:Ontology/@rdf:about. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;This is the typical scenario: I create an OWL document like so: &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;span&gt;&amp;lt;rdf:RDF&amp;gt;&lt;br /&gt; &amp;lt;owl:Ontology rdf:about=&quot;&quot;&amp;gt;&lt;br /&gt;   &amp;lt;owl:imports rdf:resource=&quot;.. relative path ..&quot;/&amp;gt;&lt;br /&gt;&gt; &amp;lt;owl:Ontology&amp;gt;&lt;br /&gt; &amp;lt;/owl:Ontology&amp;gt;&lt;br /&gt; &amp;lt;owl:Class rdf:about=&quot;&lt;a href=&quot;http://tag:info@example.com/#Stuff&quot;&gt;tag:info@example.com#Stuff&lt;/a&gt;&quot;/&amp;gt;&lt;br /&gt;&quot;/&amp;gt;&lt;br /&gt;&amp;lt;/rdf:RDF&amp;gt;&lt;/span&gt;
          &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;First, let me describe the intent here. I think it is perfectly &lt;br /&gt;reasonable to modularize large ontologies into fragments (if you will) &lt;br /&gt;that are bundled together and linked via relative imports. Since they &lt;br /&gt;are bundled together, I often like to use the power of URI resolution &lt;br /&gt;to make relative references to imported OWL documents (as you can see &lt;br /&gt;above) in a way that is completely independent from where the bundle &lt;br /&gt;is being deployed (file system or on the web). &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;The downside of not using xml:base explicitly is that the URIs of my &lt;br /&gt;classes need to be fully qualified, but as far as I'm concerned this &lt;br /&gt;is outweighed by the advantage of knowing that I can deploy my bundled &lt;br /&gt;import network on a website or on a filesystem and have any &lt;br /&gt;self-respecting tool know how to resolve the relative URIs. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;One of the more involved technical points during the development of &lt;br /&gt;GRDDL was regarding the use of empty URI references in GRDDL results. &lt;br /&gt;The primary importance of empty, relative URI references (in RDF serializations) is the &lt;br /&gt;ability to refer to the containing document without necessarily having &lt;br /&gt;the URI on hand. It was this particular dialogue that made me better &lt;br /&gt;appreciate the power and simplicity of the URI base resolution process &lt;br /&gt;that sits at the bottom of many of the important W3C specifications. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;From RFC 3986 (the process of determining the Base URI to use when &lt;br /&gt;resolving relative URIs): &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;* The base URI is embedded in the document's content. &lt;br /&gt;* The base URI is that of the encapsulating entity (message, document, or none). &lt;br /&gt;* The base URI is the URI used to retrieve the entity. &lt;br /&gt;* The base URI is defined by the context of the application. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Getting back to my example above (this was supposed to be a short &lt;br /&gt;rant). Too often what happens is that when I load an OWL document &lt;br /&gt;such as the oneabove into an OWL editor and save it (even after not &lt;br /&gt;making any changes), it results in: &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;span&gt;&amp;lt;rdf:RDF xml:base=&quot;&lt;a href=&quot;http://tag:info@example.com/&quot;&gt;tag:info@example.com#&lt;/a&gt;&quot;&amp;gt;&lt;br /&gt;&quot;&amp;gt;&lt;br /&gt; &amp;lt;owl:Ontology rdf:about=&quot;&quot;&amp;gt;&lt;br /&gt;   &amp;lt;owl:imports rdf:resource=&quot;file:///path/to/OWL/document&quot;/&amp;gt;&lt;br /&gt;&gt; &amp;lt;owl:Ontology&amp;gt;&lt;br /&gt; &amp;lt;/owl:Ontology&amp;gt;&lt;br /&gt; &amp;lt;owl:Class rdf:ID=&quot;Stuff&quot;/&amp;gt;&lt;br /&gt;&amp;lt;/rdf:RDF&amp;gt;&lt;/span&gt;
          &lt;br /&gt;  &lt;br /&gt;&amp;lt;insert appropriate expletive&amp;gt; &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Now, it's not so much the 'forced' use of rdf:ID that bothers me as &lt;br /&gt;the fact that the relative paths used for the imports are now replaced &lt;br /&gt;with absolute URIs. This sabotages the advantage I once had of being &lt;br /&gt;able to rely on the URI resolution chain to be sufficient for clients &lt;br /&gt;that need to resolve my relative URIs. Essentially, the OWL tool has &lt;br /&gt;monopolized the opportunity to resolve relative URI references. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Now, in fairness, it seems much of the motivation of doing this is to &lt;br /&gt;associate an explicit base URI with the ontology itself and often &lt;br /&gt;ontology tools will complain if they are unable to determine an &lt;br /&gt;absolute URI to use for this purpose. I think a better mechanism for &lt;br /&gt;doing this would be explicit attributes or elements rather than &lt;br /&gt;bastardization of the ability to give an explicit URI base in content. &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;It seems to me that if the author wanted to associate an explicit URI &lt;br /&gt;with the ontology he or she would use one in the place of an empty, &lt;br /&gt;relative URI reference. In fact, I would go as far as saying that it &lt;br /&gt;is bad practice to forcibly insert an @xml:base in a document that &lt;br /&gt;doesn't have one *and* uses empty, relative reference! &lt;br /&gt;&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;So, for any developers of RDF / OWL tools, please take care in trying &lt;br /&gt;not to enforce a base resolution scheme despite the document author &lt;br /&gt;providing one of their own for reasons that are orthogonal to &lt;br /&gt;associating a URI to an ontology (and more important as far I'm &lt;br /&gt;concerned): deployability.&lt;/p&gt;
	
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
          &lt;a href=&quot;http://chimezie.posterous.com/rdf-owl-tool-developers-should-respect-xmlbas&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://chimezie.posterous.com/rdf-owl-tool-developers-should-respect-xmlbas#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://chimezie.posterous.com/this-is-how-i-feel-everytime-i">
	<title>Uche and Chimezie Ogbuji: This is how I feel everytime I see a double parked car</title>
	<link>http://chimezie.posterous.com/this-is-how-i-feel-everytime-i</link>
	<content:encoded>&lt;p&gt;
	&lt;br /&gt;
          &lt;br /&gt;  &lt;/p&gt;
        &lt;div&gt; &lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;
          &lt;h2&gt;
            &lt;div&gt;
              &lt;a href=&quot;http://xkcd.com/562/&quot;&gt;Parking&lt;/a&gt;
            &lt;/div&gt;
          &lt;/h2&gt; &lt;div&gt;via &lt;a href=&quot;http://xkcd.com/&quot;&gt;xkcd.com&lt;/a&gt; on 3/29/09&lt;/div&gt;
          &lt;br /&gt; &lt;img title=&quot;Police reported three dozen cheerful bystanders, yet no one claims to have seen who did it.&quot; src=&quot;http://imgs.xkcd.com/comics/parking.png&quot; alt=&quot;Police reported three dozen cheerful bystanders, yet no one claims to have seen who did it.&quot; /&gt;
        &lt;/div&gt;
	
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;
          &lt;a href=&quot;http://chimezie.posterous.com/this-is-how-i-feel-everytime-i&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://chimezie.posterous.com/this-is-how-i-feel-everytime-i#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://www.twine.com/item/1244skz3d-19x/the-thinking-man-s-rapper-black-thought-interviewed-by-tour-the-daily-beast">
	<title>Uche and Chimezie Ogbuji: "The Thinking Man’s Rapper", Black Thought interviewed by Touré [The Daily Beast]</title>
	<link>http://www.twine.com/item/1244skz3d-19x/the-thinking-man-s-rapper-black-thought-interviewed-by-tour-the-daily-beast</link>
	<content:encoded>&lt;div&gt;
    &lt;table&gt;
        &lt;tbody&gt;
              &lt;tr&gt;
            &lt;td valign=&quot;top&quot; width=&quot;130&quot;&gt;
                
                
            &lt;/td&gt;
            &lt;td valign=&quot;top&quot; height=&quot;100&quot;&gt;
                &lt;h2&gt;
                    &lt;a href=&quot;http://www.twine.com/item/1244skz3d-19x/the-thinking-man-s-rapper-black-thought-interviewed-by-tour-the-daily-beast&quot;&gt;&quot;The Thinking Man’s Rapper&quot;, Black Thought interviewed by Touré [The Daily Beast]&lt;/a&gt;
                &lt;/h2&gt;
                
                Bookmark added by &lt;a href=&quot;http://www.twine.com/user/uche&quot;&gt;Uche Ogbuji&lt;/a&gt; at 11:51 AM CDT

                &lt;div&gt;
                    &lt;b&gt;The Thinking Man’s Rapper&lt;/b&gt; &lt;b&gt;In a rare interview, Touré talks with Black Thought—front man for The Roots and the new house MC of Late Night with Jimmy
Fallon
&lt;/b&gt; &lt;b&gt;—&lt;/b&gt;
                  &lt;/div&gt;
                &lt;/td&gt;
              &lt;/tr&gt;
            &lt;/tbody&gt;
          &lt;/table&gt;
        &lt;/div&gt;</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://www.twine.com/item/123qcxtgz-1mc/rbma-radio-fireside-chat-the-roots">
	<title>Uche and Chimezie Ogbuji: RBMA Radio: Fireside Chat - The Roots</title>
	<link>http://www.twine.com/item/123qcxtgz-1mc/rbma-radio-fireside-chat-the-roots</link>
	<content:encoded>&lt;div&gt;
    &lt;table&gt;
        &lt;tbody&gt;
              &lt;tr&gt;
            &lt;td valign=&quot;top&quot; width=&quot;130&quot;&gt;
                
                
            &lt;/td&gt;
            &lt;td valign=&quot;top&quot; height=&quot;100&quot;&gt;
                &lt;h2&gt;
                    &lt;a href=&quot;http://www.twine.com/item/123qcxtgz-1mc/rbma-radio-fireside-chat-the-roots&quot;&gt;RBMA Radio: Fireside Chat - The Roots&lt;/a&gt;
                &lt;/h2&gt;
                
                Bookmark added by &lt;a href=&quot;http://www.twine.com/user/uche&quot;&gt;Uche Ogbuji&lt;/a&gt; at 08:09 AM CDT

                &lt;div&gt;Long interview with Roots, interspersing their music, giving an overview of their history and work.&lt;/div&gt;

            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
          &lt;/table&gt;
&lt;/div&gt;</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://www.twine.com/item/120nxzm28-v3/new-world-tap-water-poster-boy-flickr">
	<title>Uche and Chimezie Ogbuji: New World (tap) Water [Poster Boy @ Flickr]</title>
	<link>http://www.twine.com/item/120nxzm28-v3/new-world-tap-water-poster-boy-flickr</link>
	<content:encoded>&lt;div&gt;
    &lt;table&gt;
        &lt;tbody&gt;
              &lt;tr&gt;
            &lt;td valign=&quot;top&quot; height=&quot;100&quot; width=&quot;130&quot;&gt;
                
                        &lt;a href=&quot;http://www.flickr.com/photos/26296445@N05/2900694907/&quot;&gt;
                    &lt;img border=&quot;0&quot; alt=&quot;New World (tap) Water [Poster Boy @ Flickr]&quot; src=&quot;http://farm4.static.flickr.com/3015/2900694907_3b65185fc7.jpg&quot; width=&quot;130&quot; /&gt;
                  &lt;/a&gt;
            &lt;/td&gt;
            &lt;td valign=&quot;top&quot;&gt;
                &lt;h2&gt;
                    &lt;a href=&quot;http://www.twine.com/item/120nxzm28-v3/new-world-tap-water-poster-boy-flickr&quot;&gt;New World (tap) Water [Poster Boy @ Flickr]&lt;/a&gt;
                &lt;/h2&gt;

                Image added by &lt;a href=&quot;http://www.twine.com/user/uche&quot;&gt;Uche Ogbuji&lt;/a&gt; at 01:21 PM CST

                &lt;div&gt;Neat homage by the brilliant and infamous &quot;Poster Boy&quot; to one of the great songs of Hip-Hop.&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
          &lt;/table&gt;
&lt;/div&gt;</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://www.twine.com/item/120hwyd03-1bt/your-website-is-your-api-quick-wins-for-government-data-jeni-tennison">
	<title>Uche and Chimezie Ogbuji: Your Website is Your API: Quick Wins for Government Data [Jeni Tennison]</title>
	<link>http://www.twine.com/item/120hwyd03-1bt/your-website-is-your-api-quick-wins-for-government-data-jeni-tennison</link>
	<content:encoded>&lt;div&gt;
    &lt;table&gt;
        &lt;tbody&gt;
              &lt;tr&gt;
            &lt;td height=&quot;100&quot; valign=&quot;top&quot; width=&quot;130&quot;&gt;
                  &lt;img src=&quot;http://static.twine.com/i/email/no-image.gif&quot; alt=&quot;Your Website is Your API: Quick Wins for Government Data [Jeni Tennison]&quot; /&gt;
                &lt;/td&gt;
            &lt;td valign=&quot;top&quot;&gt;
                &lt;h2&gt;
                    &lt;a href=&quot;http://www.twine.com/item/120hwyd03-1bt/your-website-is-your-api-quick-wins-for-government-data-jeni-tennison&quot;&gt;Your Website is Your API: Quick Wins for Government Data [Jeni Tennison]&lt;/a&gt;
                &lt;/h2&gt;

                Comment added by &lt;a href=&quot;http://www.twine.com/user/uche&quot;&gt;Uche Ogbuji&lt;/a&gt; at 12:33 PM CST

                &lt;div&gt;Great distillation of common sense.&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
          &lt;/table&gt;
&lt;/div&gt;</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://www.twine.com/item/1203yl9cq-2r/cobe-obeah-know-thyself-okayplayer-audio">
	<title>Uche and Chimezie Ogbuji: Cobe Obeah "Know Thyself" [okayplayer - Audio]</title>
	<link>http://www.twine.com/item/1203yl9cq-2r/cobe-obeah-know-thyself-okayplayer-audio</link>
	<content:encoded>&lt;div&gt;
    &lt;table&gt;
        &lt;tbody&gt;
              &lt;tr&gt;
            &lt;td height=&quot;100&quot; valign=&quot;top&quot; width=&quot;130&quot;&gt;
                  &lt;img src=&quot;http://static.twine.com/i/email/no-image.gif&quot; alt=&quot;Cobe Obeah &quot; /&gt;
                &lt;/td&gt;
            &lt;td valign=&quot;top&quot;&gt;
                &lt;h2&gt;
                    &lt;a href=&quot;http://www.twine.com/item/1203yl9cq-2r/cobe-obeah-know-thyself-okayplayer-audio&quot;&gt;Cobe Obeah &quot;Know Thyself&quot; [okayplayer - Audio]&lt;/a&gt;
                &lt;/h2&gt;

                Comment added by &lt;a href=&quot;http://www.twine.com/user/uche&quot;&gt;Uche Ogbuji&lt;/a&gt; at 11:45 PM CST

                &lt;div&gt;Cobe Obeah comes with some of the illest lyrics I've heard in a minute (and I keep my ears out there). Minimalist production,
but sometimes that's a good thing when someone is&lt;/div&gt;
                &lt;/td&gt;
              &lt;/tr&gt;
            &lt;/tbody&gt;
          &lt;/table&gt;
        &lt;/div&gt;</content:encoded>
	<dc:date>2009-06-08T01:00:29+00:00</dc:date>
</item>
<item rdf:about="http://www.blueskyonmars.com/2009/06/02/michipug-using-python-to-run-reports-in-hadoop-clusters/">
	<title>Kevin Dangoor: MichiPUG: using Python to run reports in Hadoop clusters</title>
	<link>http://www.blueskyonmars.com/2009/06/02/michipug-using-python-to-run-reports-in-hadoop-clusters/</link>
	<content:encoded>&lt;p&gt;Zattoo&amp;#8217;s Marshall Weir will be talking at this week&amp;#8217;s MichiPUG (Thursday evening at 7PM at SRT Solutions in downtown Ann Arbor). In his own words:&lt;br /&gt;
&lt;blockquote&gt;I&amp;#8217;ve been working on a python module for running reports in Hadoop. Its sort of a wrapper around the pig data processing language and some smarts for running reports on a hadoop cluster and pushing and pulling data to it. It&amp;#8217;s designed primarily to make it easier and more efficient to run complex sets of interdependent reports &amp;#8211; I&amp;#8217;ve been using it to do business reporting on our customer behavior at Zattoo.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This should be very interesting for folks like me who have never seen Hadoop in action!&lt;/p&gt;</content:encoded>
	<dc:date>2009-06-02T20:01:58+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://www.aminus.org/blogs/xmlsrv/1022@http://www.aminus.org/blogs/">
	<title>Robert Brewer: Best of PyCon 2009</title>
	<link>http://www.aminus.org/blogs/index.php/2009/05/05/best-of-pycon-2009?blog=2</link>
	<content:encoded>&lt;p&gt;Toshio Kuratomi's &lt;a href=&quot;http://blip.tv/file/2072580&quot;&gt;How to Build Applications Linux Distributions will Package&lt;/a&gt;. As a web framework dev, this was priceless.&lt;/p&gt;
&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.aminus.org/blogs/index.php/2009/05/05/best-of-pycon-2009?blog=2&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-05-05T15:00:00+00:00</dc:date>
	<dc:creator>fumanchu</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/?p=2578">
	<title>Kevin Dangoor: MichiPUG May meeting: non-relational DBs</title>
	<link>http://www.blueskyonmars.com/2009/05/05/michipug-may-meeting-non-relational-dbs/</link>
	<content:encoded>&lt;p&gt;The next MichiPUG meeting will be on Thursday, May 7th at 7PM. The topic for this week is newfangled non-relational databases (with demos of Couch DB, Mongo DB, Tokyo Cabinet, Persevere, and Redis promised)&lt;/p&gt;
&lt;p&gt;via &lt;a href=&quot;http://groups.google.com/group/michipug/web/index-2&quot;&gt;Welcome &amp;#8211; Michigan Python Users Group | Google Groups&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As usual, the meeting will be at the SRT Solutions &lt;a href=&quot;http://groups.google.com/group/michipug/web/SRT%20Solutions&quot;&gt;office in downtown Ann Arbor&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2009-05-05T11:23:41+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://www.aminus.org/blogs/xmlsrv/1020@http://www.aminus.org/blogs/">
	<title>Robert Brewer: PyCon Presentations</title>
	<link>http://www.aminus.org/blogs/index.php/2009/04/07/pycon-presentations?blog=2</link>
	<content:encoded>&lt;p&gt;For PyCon 2009, I'm giving two talks! One on extending CherryPy and one on the innards of Dejavu/GeniuSQL. I think I've finally reduced my talks to the required time slots (I could easily have made 4-hour talks for each &lt;img src=&quot;http://www.aminus.org/blogs/rsc/smilies/icon_wink.gif&quot; alt=&quot;&amp;#59;&amp;#41;&quot; class=&quot;middle&quot; /&gt; and posted my presentations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.aminus.org/rbre/pubs/pycon/2009/cpintro/cpintro.html&quot;&gt;http://www.aminus.org/rbre/pubs/pycon/2009/cpintro/cpintro.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.aminus.org/rbre/pubs/pycon/2009/djvlinq/djvlinq.html&quot;&gt;http://www.aminus.org/rbre/pubs/pycon/2009/djvlinq/djvlinq.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use the arrow keys or mouse-click to proceed through them. The images don't load as fast over the network as they will when I present, so be patient if you preview them yourself. Also, try to use 1024 x 768 fullscreen--they're laid out specifically for that resolution.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Update&lt;/em&gt;: video is now available thanks to the great people who put on PyCon:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CherryPy: &lt;a href=&quot;http://blip.tv/file/1957163/&quot;&gt;http://blip.tv/file/1957163/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Dejavu: &lt;a href=&quot;http://blip.tv/file/1949237/&quot;&gt;http://blip.tv/file/1949237/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://www.aminus.org/blogs/index.php/2009/04/07/pycon-presentations?blog=2&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-03-27T00:03:31+00:00</dc:date>
	<dc:creator>fumanchu</dc:creator>
</item>
<item rdf:about="http://www.thenervousbreakdown.com/uogbuji/2009/03/slender-mitochondrial-strand/">
	<title>Uche and Chimezie Ogbuji: Slender Mitochondrial Strand</title>
	<link>http://www.thenervousbreakdown.com/uogbuji/2009/03/slender-mitochondrial-strand/</link>
	<content:encoded>BOULDER, CO-
Mitochondrial DNA is a profound, primeval truth.  As far back as all the creatures we can see with our naked eye, ourselves included, it’s meant that the blueprints for the energy of our lives are passed only through the lines of mothers.  Poetry is all about such profound truths.  Sometimes those truths possess lives [...]</content:encoded>
	<dc:date>2009-03-25T16:00:33+00:00</dc:date>
</item>
<item rdf:about="http://pewsocialtrends.org/maps/migration/">
	<title>Uche and Chimezie Ogbuji: Maps: Migration Flows in the United States</title>
	<link>http://pewsocialtrends.org/maps/migration/</link>
	<content:encoded>&lt;span&gt;
        &lt;a title=&quot;add this bookmark to your collection at http://delicious.com&quot; rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fpewsocialtrends.org%2Fmaps%2Fmigration%2F&amp;amp;title=Maps%3A%20Migration%20Flows%20in%20the%20United%20States&amp;amp;copyuser=chimezie&amp;amp;copytags=visualization+demographics+population+map&amp;amp;jump=yes&amp;amp;partner=delrss&amp;amp;src=feed_google&quot;&gt;
            &lt;img height=&quot;10&quot; border=&quot;0&quot; src=&quot;http://l.yimg.com/hr/img/delicious.small.gif&quot; width=&quot;10&quot; alt=&quot;http://delicious.com&quot; /&gt; Bookmark this on Delicious&lt;/a&gt;
        - Saved by &lt;a title=&quot;visit chimezie's bookmarks at Delicious&quot; href=&quot;http://delicious.com/chimezie&quot;&gt;chimezie&lt;/a&gt;
                    to
                                                &lt;a title=&quot;view chimezie's bookmarks tagged visualization&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/visualization&quot;&gt;visualization&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged demographics&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/demographics&quot;&gt;demographics&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged population&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/population&quot;&gt;population&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged map&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/map&quot;&gt;map&lt;/a&gt;
                            			- &lt;a title=&quot;view more details on this bookmark at Delicious&quot; rel=&quot;self&quot; href=&quot;http://delicious.com/url/bf59c4ae1f6464f941bcdecf7c9cf8b2&quot;&gt;More about this bookmark&lt;/a&gt;
            &lt;/span&gt;</content:encoded>
	<dc:date>2009-03-25T16:00:33+00:00</dc:date>
</item>
<item rdf:about="http://code.activestate.com/recipes/576685/">
	<title>Uche and Chimezie Ogbuji: Total ordering class decorator « ActiveState Code</title>
	<link>http://code.activestate.com/recipes/576685/</link>
	<content:encoded>&lt;p&gt;Given a class defining one or more ordering methods, this decorator supplies the rest. This simplifies and speeds-up the approach taken in recipe 576529.&lt;/p&gt;
    &lt;span&gt;
        &lt;a title=&quot;add this bookmark to your collection at http://delicious.com&quot; rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fcode.activestate.com%2Frecipes%2F576685%2F&amp;amp;title=Total%20ordering%20class%20decorator%20%C2%AB%20ActiveState%20Code&amp;amp;copyuser=chimezie&amp;amp;copytags=recipe+python+code+comparison&amp;amp;jump=yes&amp;amp;partner=delrss&amp;amp;src=feed_google&quot;&gt;
            &lt;img height=&quot;10&quot; border=&quot;0&quot; src=&quot;http://l.yimg.com/hr/img/delicious.small.gif&quot; width=&quot;10&quot; alt=&quot;http://delicious.com&quot; /&gt; Bookmark this on Delicious&lt;/a&gt;
        - Saved by &lt;a title=&quot;visit chimezie's bookmarks at Delicious&quot; href=&quot;http://delicious.com/chimezie&quot;&gt;chimezie&lt;/a&gt;
                    to
                                                &lt;a title=&quot;view chimezie's bookmarks tagged recipe&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/recipe&quot;&gt;recipe&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged python&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/python&quot;&gt;python&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged code&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/code&quot;&gt;code&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged comparison&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/comparison&quot;&gt;comparison&lt;/a&gt;
                            			- &lt;a title=&quot;view more details on this bookmark at Delicious&quot; rel=&quot;self&quot; href=&quot;http://delicious.com/url/09fcdda58d93cf62d7f83a863b3d0bd1&quot;&gt;More about this bookmark&lt;/a&gt;
            &lt;/span&gt;</content:encoded>
	<dc:date>2009-03-25T16:00:33+00:00</dc:date>
</item>
<item rdf:about="http://broadcast.oreilly.com/2009/02/a-restful-wrapper-for-moinmoin.html">
	<title>Uche and Chimezie Ogbuji: A RESTful wrapper for MoinMoin</title>
	<link>http://broadcast.oreilly.com/2009/02/a-restful-wrapper-for-moinmoin.html</link>
	<content:encoded>I've always loved the MoinMoin wiki, and lately I've been using it for more and more, at work and at home.  I've pined for a REST wrapper for a while, and I finally bit the bullet and wrote one, as part of the open-source Akara project, which among other things provides RESTful access to the</content:encoded>
	<dc:date>2009-03-25T16:00:33+00:00</dc:date>
</item>
<item rdf:about="http://www.catonmat.net/blog/unix-utilities-pipe-viewer/">
	<title>Uche and Chimezie Ogbuji: A Unix Utility You Should Know About: Pipe Viewer</title>
	<link>http://www.catonmat.net/blog/unix-utilities-pipe-viewer/</link>
	<content:encoded>&lt;p&gt;&quot;Pipe viewer is a terminal-based tool for monitoring the progress of data through a pipeline. It can be inserted into any normal pipeline between two processes to give a visual indication of how quickly data is passing through, how long it has taken, how near to completion it is, and an estimate of how long it will be until completion.&quot;&lt;/p&gt;
    &lt;span&gt;
        &lt;a title=&quot;add this bookmark to your collection at http://delicious.com&quot; rel=&quot;nofollow&quot; href=&quot;http://delicious.com/post?url=http%3A%2F%2Fwww.catonmat.net%2Fblog%2Funix-utilities-pipe-viewer%2F&amp;amp;title=A%20Unix%20Utility%20You%20Should%20Know%20About%3A%20Pipe%20Viewer&amp;amp;copyuser=chimezie&amp;amp;copytags=article+tool+unix+console&amp;amp;jump=yes&amp;amp;partner=delrss&amp;amp;src=feed_google&quot;&gt;
            &lt;img height=&quot;10&quot; border=&quot;0&quot; src=&quot;http://l.yimg.com/hr/img/delicious.small.gif&quot; width=&quot;10&quot; alt=&quot;http://delicious.com&quot; /&gt; Bookmark this on Delicious&lt;/a&gt;
        - Saved by &lt;a title=&quot;visit chimezie's bookmarks at Delicious&quot; href=&quot;http://delicious.com/chimezie&quot;&gt;chimezie&lt;/a&gt;
                    to
                                                &lt;a title=&quot;view chimezie's bookmarks tagged article&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/article&quot;&gt;article&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged tool&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/tool&quot;&gt;tool&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged unix&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/unix&quot;&gt;unix&lt;/a&gt;
                                                &lt;a title=&quot;view chimezie's bookmarks tagged console&quot; rel=&quot;tag&quot; href=&quot;http://delicious.com/chimezie/console&quot;&gt;console&lt;/a&gt;
                            			- &lt;a title=&quot;view more details on this bookmark at Delicious&quot; rel=&quot;self&quot; href=&quot;http://delicious.com/url/6e81b3b8b4fca09080728a4da6a4f43d&quot;&gt;More about this bookmark&lt;/a&gt;
            &lt;/span&gt;</content:encoded>
	<dc:date>2009-03-25T16:00:33+00:00</dc:date>
</item>
<item rdf:about="http://www.blueskyonmars.com/?p=2569">
	<title>Kevin Dangoor: Paver 1.0 released!</title>
	<link>http://www.blueskyonmars.com/2009/03/23/paver-10-released/</link>
	<content:encoded>&lt;p&gt;At long last, I&amp;#8217;ve released &lt;a href=&quot;http://www.blueskyonmars.com/projects/paver/&quot;&gt;Paver&lt;/a&gt; 1.0. Here&amp;#8217;s the announcement that I sent to python-announce:&lt;/p&gt;
&lt;p&gt;After months of use in production and about two months of public testing for 1.0, Paver 1.0 has been released. The changes between Paver 0.8.1, the most recent stable release, and 1.0 are quite significant. Paver 1.0 is easier, cleaner, less magical and just better all around. The backwards compatibility breaks should be easy enough to work around, are described in DeprecationWarnings and were introduced in 1.0a1 back in January.&lt;/p&gt;
&lt;p&gt;Paver&amp;#8217;s home page: http://www.blueskyonmars.com/projects/paver/&lt;/p&gt;
&lt;h3&gt;What is Paver?&lt;/h3&gt;
&lt;p&gt;Paver is a Python-based software project scripting tool along the lines of Make or Rake. It is not designed to handle the dependency tracking requirements of, for example, a C program. It *is* designed to help out with all of your other repetitive tasks (run documentation&lt;br /&gt;
generators, moving files about, downloading things), all with the convenience of Python&amp;#8217;s syntax and massive library of code.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re developing applications in Python, you get even more&amp;#8230; Most public Python projects use distutils or setuptools to create source tarballs for distribution. (Private projects can take advantage of this, too!) Have you ever wanted to generate the docs before building the source distribution? With Paver, you can, trivially. Here&amp;#8217;s a complete pavement.py::&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;python&quot;&gt;    &lt;span&gt;from&lt;/span&gt; paver.&lt;span&gt;easy&lt;/span&gt; &lt;span&gt;import&lt;/span&gt; &lt;span&gt;*&lt;/span&gt;
    &lt;span&gt;from&lt;/span&gt; paver.&lt;span&gt;setuputils&lt;/span&gt; &lt;span&gt;import&lt;/span&gt; setup
&amp;nbsp;
    setup&lt;span&gt;&amp;#40;&lt;/span&gt;
        name=&lt;span&gt;&amp;quot;MyCoolProject&amp;quot;&lt;/span&gt;,
        packages=&lt;span&gt;&amp;#91;&lt;/span&gt;&lt;span&gt;'mycool'&lt;/span&gt;&lt;span&gt;&amp;#93;&lt;/span&gt;,
        version=&lt;span&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt;,
        url=&lt;span&gt;&amp;quot;http://www.blueskyonmars.com/&amp;quot;&lt;/span&gt;,
        author=&lt;span&gt;&amp;quot;Kevin Dangoor&amp;quot;&lt;/span&gt;,
        author_email=&lt;span&gt;&amp;quot;dangoor@gmail.com&amp;quot;&lt;/span&gt;
    &lt;span&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    @task
    @needs&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#91;&lt;/span&gt;&lt;span&gt;'html'&lt;/span&gt;, &lt;span&gt;&amp;quot;distutils.command.sdist&amp;quot;&lt;/span&gt;&lt;span&gt;&amp;#93;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
    &lt;span&gt;def&lt;/span&gt; sdist&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;:
        &lt;span&gt;&amp;quot;&amp;quot;&amp;quot;Generate docs and source distribution.&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span&gt;pass&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;With that pavement file, you can just run &amp;#8220;paver sdist&amp;#8220;, and your docs will be rebuilt automatically before creating the source distribution. It&amp;#8217;s also easy to move the generated docs into some other directory (and, of course, you can tell Paver where your docs are stored, if they&amp;#8217;re not in the default location.)&lt;/p&gt;
&lt;h3&gt;Installation&lt;/h3&gt;
&lt;p&gt;The easiest way to get Paver is if you have setuptools_ installed.&lt;/p&gt;
&lt;pre&gt;easy_install Paver&lt;/pre&gt;
&lt;p&gt;Without setuptools, it&amp;#8217;s still pretty easy. Download the Paver .tgz file from &lt;a href=&quot;http://pypi.python.org/pypi/Paver/&quot;&gt;Paver&amp;#8217;s Cheeseshop page&lt;/a&gt;, untar it and run:&lt;/p&gt;
&lt;pre&gt;python setup.py install&lt;/pre&gt;
&lt;h3&gt;Help and Development&lt;/h3&gt;
&lt;p&gt;You can get help from the &lt;a href=&quot;http://groups.google.com/group/paver&quot;&gt;mailing list&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;d like to help out with Paver, you can check the code out from Googlecode:&lt;/p&gt;
&lt;pre&gt;svn checkout http://paver.googlecode.com/svn/trunk/ paver-read-only&lt;/pre&gt;
&lt;p&gt;You can also take a look at &lt;a href=&quot;http://code.google.com/p/paver/&quot;&gt;Paver&amp;#8217;s project page on Googlecode&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2009-03-23T13:10:23+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/2009/03/13/paver-10b1-released/">
	<title>Kevin Dangoor: Paver 1.0b1 released</title>
	<link>http://www.blueskyonmars.com/2009/03/13/paver-10b1-released/</link>
	<content:encoded>&lt;p&gt;I&amp;#8217;ve just released Paver 1.0b1. This new release adds a fun little feature. A typical setup.py script looks like this:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;python&quot;&gt;&lt;span&gt;from&lt;/span&gt; &lt;span&gt;distutils&lt;/span&gt;.&lt;span&gt;core&lt;/span&gt; &lt;span&gt;import&lt;/span&gt; setup
&amp;nbsp;
setup&lt;span&gt;&amp;#40;&lt;/span&gt;name=&lt;span&gt;&amp;quot;Foo&amp;quot;&lt;/span&gt;, ...&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;With the new version of Paver, you can now rename setup.py to pavement.py (or run &lt;code&gt;paver -f setup.py&lt;/code&gt;) and then do:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;python&quot;&gt;&lt;span&gt;from&lt;/span&gt; paver.&lt;span&gt;setuputils&lt;/span&gt; &lt;span&gt;import&lt;/span&gt; setup
&amp;nbsp;
setup&lt;span&gt;&amp;#40;&lt;/span&gt;name=&lt;span&gt;&amp;quot;Foo&amp;quot;&lt;/span&gt;, ...&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;That gets you going quite quickly, doesn&amp;#8217;t it? Of course, you&amp;#8217;d likely want to add &lt;code&gt;from paver.easy import *&lt;/code&gt; and to start making tasks that take advantage of Paver.&lt;/p&gt;
&lt;p&gt;1.0b1 includes some other bug fixes, brings back the call_task function (particularly useful for distutils tasks), and makes the help output more consistent.&lt;/p&gt;
&lt;p&gt;There&amp;#8217;s one more bug on my list to fix (the distutils output is not showing up), and then I need to rework the docs for Paver 1.0.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; It occurred to me a bit later that my example above doesn&amp;#8217;t work, because you need to call install_distutils_tasks to get Paver to pick up all of the distutils/setuptools commands. However, this will be fixed in rc1.&lt;/p&gt;</content:encoded>
	<dc:date>2009-03-13T13:15:47+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/2009/03/06/paver-10a3-released/">
	<title>Kevin Dangoor: Paver 1.0a3 released</title>
	<link>http://www.blueskyonmars.com/2009/03/06/paver-10a3-released/</link>
	<content:encoded>&lt;p&gt;I have just released &lt;a href=&quot;http://www.blueskyonmars.com/projects/paver/&quot;&gt;Paver&lt;/a&gt; 1.0a3. This has some good refinements on the way to 1.0 final and a couple of nice, new features (the &amp;#8220;auto&amp;#8221; task and the &amp;#8220;pushd&amp;#8221; context manager):
&lt;ul&gt;
&lt;li&gt;
&lt;p class=&quot;first&quot;&gt;Added automatic running of “auto” task. If there’s a task with the name “auto”, it is run automatically. Using this mechanism, you can write code that sets up the options any way you wish, and without using globals at all (because the auto task can be given options as a parameter).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;first&quot;&gt;When generating egg_info running “paver”, the full path to the Paver script was getting included in egg-info/SOURCES.txt. This causes installation problems on Windows, at the very least. Paver will now instead place the pavement that is being run in there. This likely has the beneficial side effect of not requiring a MANIFEST.in file just to include the pavement.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;first&quot;&gt;the options help provided via the cmdopts decorator now appears&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;first&quot;&gt;pavements can now refer to __file__ to get their own filename. You can also just declare pavement_file as an argument to your task function, if you wish.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;first&quot;&gt;call_pavement now switches directories to the location of the pavement and then switches back when returning&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;first&quot;&gt;if you try to run a function as a task, you’ll now get a more appropriate and descriptive BuildFailure, rather than an AttributeError&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;first&quot;&gt;paver can now again run tasks even when there is no pavement present. any task accessible via paver.easy (which now also includes misctasks) will work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class=&quot;first&quot;&gt;added the pushd context manager (Python 2.5+). This will switch into another directory on the way in and then change back to the old directory on the way out. Suggested by Steve Howe, with the additional suggestion from Juergen Hermann to return the old directory:&lt;/p&gt;
&lt;div class=&quot;highlight-python&quot;&gt;
&lt;div class=&quot;highlight&quot;&gt;
&lt;pre&gt;&amp;lt;span class=&quot;k&quot;&amp;gt;with&amp;lt;/span&amp;gt; &amp;lt;span class=&quot;n&quot;&amp;gt;pushd&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;p&quot;&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;s&quot;&amp;gt;'newdirectory'&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;p&quot;&amp;gt;)&amp;lt;/span&amp;gt; &amp;lt;span class=&quot;k&quot;&amp;gt;as&amp;lt;/span&amp;gt; &amp;lt;span class=&quot;n&quot;&amp;gt;olddirectory&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;p&quot;&amp;gt;:&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;    &amp;lt;span class=&quot;o&quot;&amp;gt;...&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;n&quot;&amp;gt;do&amp;lt;/span&amp;gt; &amp;lt;span class=&quot;n&quot;&amp;gt;something&amp;lt;/span&amp;gt;&amp;lt;span class=&quot;o&quot;&amp;gt;...&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img class=&quot;zemanta-pixie-img&quot; src=&quot;http://img.zemanta.com/pixy.gif?x-id=12d55277-c5e6-4625-8065-ad2bd49c9d26&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-03-06T16:14:26+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/2009/03/04/michipug-meeting-tomorrow-march-5th/">
	<title>Kevin Dangoor: MichiPUG meeting tomorrow, March 5th</title>
	<link>http://www.blueskyonmars.com/2009/03/04/michipug-meeting-tomorrow-march-5th/</link>
	<content:encoded>&lt;p&gt;The monthly &lt;a href=&quot;http://groups.google.com/group/michipug/web/index-2&quot;&gt;Michigan Python Users Group&lt;/a&gt; (MichiPUG) meeting is coming up tomorrow! This month, we&amp;#8217;re going to do something a little different: sprinting on a project to help out a new coworking space that is being set up in downtown Ann Arbor (see below for the full description from Bob Kuehne).&lt;/p&gt;
&lt;p&gt;As usual, the meeting starts at 7PM at &lt;a href=&quot;http://groups.google.com/group/michipug/web/SRT%20Solutions&quot;&gt;SRT Solutions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/michipug/browse_thread/thread/6394cacc6e885713&quot;&gt;proposal for 03/02/09 &amp;#8211; Michigan Python Users Group | Google Groups&lt;/a&gt;&lt;br /&gt;
&lt;blockquote&gt;background:&lt;/p&gt;
&lt;p&gt;* a guy named mike kessler is opening a co-working space on main  &lt;br /&gt;street, tween washington and huron, in the&lt;br /&gt;   old arcadian too space, right next door to (south) vinology. the  &lt;br /&gt;space is designed as a place where people&lt;br /&gt;   can pop in for a day, hang out, work with other people, get a  &lt;br /&gt;permanent desk, host trainings, etc. it&amp;#8217;s&lt;br /&gt;   going to be pretty cool.&lt;/p&gt;
&lt;p&gt;* as part of that, he needed some sort of door lock/authentication  &lt;br /&gt;system. i volunteered to put one&lt;br /&gt;   together, and it&amp;#8217;s coming along fine, from the hardware and  &lt;br /&gt;software side. it&amp;#8217;s basically a bag of&lt;br /&gt;   scripts (python, natch), and some csv files for manager users,  &lt;br /&gt;logging, whatever. oh, and a door latch&lt;br /&gt;   that gets controlled by the above.&lt;/p&gt;
&lt;p&gt;* but from a ui perspective, i know better things could be done, and  &lt;br /&gt;this is where you come in.&lt;/p&gt;
&lt;p&gt;pug topic/sprint:&lt;/p&gt;
&lt;p&gt;* if people are up for it, i&amp;#8217;d like to do three things:&lt;br /&gt;* 30m : setup tasks, review / design schema&lt;br /&gt;* 60m : split into groups and build an interactive site to do a few  &lt;br /&gt;tasks&lt;br /&gt;* 30m : each group discuss results, demonstrate (10-15m@) &lt;/p&gt;&lt;/blockquote&gt;
&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img class=&quot;zemanta-pixie-img&quot; src=&quot;http://img.zemanta.com/pixy.gif?x-id=898ba881-9b89-4b2a-9716-b229dd7cdda1&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-03-04T12:44:07+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/2009/03/02/embarrassment-driven-development/">
	<title>Kevin Dangoor: Embarrassment Driven Development</title>
	<link>http://www.blueskyonmars.com/2009/03/02/embarrassment-driven-development/</link>
	<content:encoded>&lt;p&gt;Googling &amp;#8220;embarrassment driven development&amp;#8221; (EDD) does not return as many hits as it should. I think it&amp;#8217;s a very powerful development technique. I first heard the expression from the Plone guys at PyCon 2006, and Google did turn up this match:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://lists.jarn.com/pipermail/archipelagosprint/2006-July/000384.html&quot;&gt;[ArchipelagoSprint] Time to get cracking on Plone 3.0!&lt;/a&gt;&lt;br /&gt;
&lt;blockquote&gt;Wrt. timelines, I was hoping that we could try to have a &amp;#8220;Tech preview&amp;#8221; release before the Plone Conference 2006 in Seattle (October 25-27) &amp;#8211; I&amp;#8217;m going to be on-stage there talking about the exciting new features of Plone 3.0 &amp;#8211; and I&amp;#8217;d like to not be booed off stage. Yes, this is embarrassment-driven development &amp;#8211; as usual. &lt;img src=&quot;http://www.blueskyonmars.com/wp-includes/images/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;wp-smiley&quot; /&gt;  &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;That&amp;#8217;s Alexander Limi illustrating the prime motivator for EDD.&lt;/p&gt;
&lt;p&gt;The idea behind EDD is simple: &lt;b&gt;if you have to demo something in front of an audience, and that something sucks, you will move hell or high water to make sure you don&amp;#8217;t look like an idiot&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Every product has rough edges and warts, but no one wants a demo to be all warty and to have to say &amp;#8220;yeah, I know you shouldn&amp;#8217;t have to click to the left of the button, but we just haven&amp;#8217;t gotten to that yet&amp;#8221;. EDD ensures that, at least for the parts you have to get up and show, the rough edges will be smoothed &lt;em&gt;in time for the show&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m going to be practicing EDD leading up to &lt;a href=&quot;http://jsconf2009.com/&quot;&gt;JSConf&lt;/a&gt;. I want to be able to show some useful, non-trivial bits of &lt;a href=&quot;http://groups.google.com/group/serverjs&quot;&gt;ServerJS&lt;/a&gt; work by then.&lt;/p&gt;
&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img class=&quot;zemanta-pixie-img&quot; src=&quot;http://img.zemanta.com/pixy.gif?x-id=4ecd36b9-9dd0-44f5-b30a-dc884e2dc9e5&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-03-02T14:03:09+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/2009/02/26/paver-10a2-released/">
	<title>Kevin Dangoor: Paver 1.0a2 released!</title>
	<link>http://www.blueskyonmars.com/2009/02/26/paver-10a2-released/</link>
	<content:encoded>&lt;p&gt;I&amp;#8217;m happy to announce that Paver 1.0a2 has been released! And, unlike Paver 1.0a1, it installs (thanks to &lt;a href=&quot;http://xdissent.com/blog/2009/feb/24/fixing-paver/&quot;&gt;Greg Thornton&lt;/a&gt; for the patch for that!). I&amp;#8217;ve been quite busy with other projects over the past month, so I appreciate the help of Marc Sibson and Greg Thornton in making 1.0a2 a nice improvement over 1.0a1.&lt;/p&gt;
&lt;p&gt;Paver 1.0 is still for the slightly adventurous, because it has not yet seen testing by many people. Paver is not complex code (and Paver 1.0 is, I think, less complex than Paver 0.8 was), so it&amp;#8217;s not hard to dig in if you have a problem.&lt;/p&gt;
&lt;p&gt;Assuming nothing major comes up, I expect Paver 1.0 final to be out by PyCon.&lt;/p&gt;
&lt;p&gt;Speaking of PyCon, I won&amp;#8217;t be attending PyCon this year as I have a lot of other things on my plate at work this time around. &lt;a href=&quot;http://compoundthinking.com/blog/&quot;&gt;Mark Ramm&lt;/a&gt; will be doing the Paver talk in my stead, just as he did at PyOhio last year.&lt;/p&gt;
&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img class=&quot;zemanta-pixie-img&quot; src=&quot;http://img.zemanta.com/pixy.gif?x-id=180c25cc-fa47-4a3c-8532-e3e9dec693ec&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-02-26T15:23:34+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://blog.dowski.com/?p=273">
	<title>Christian Wyglendowski: Caching HTTP Responses with CherryPy</title>
	<link>http://blog.dowski.com/2009/02/25/caching-http-responses-with-cherrypy/</link>
	<content:encoded>&lt;p&gt;The most basic case is very simple.&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;python&quot;&gt;&lt;span&gt;import&lt;/span&gt; &lt;span&gt;time&lt;/span&gt;
&lt;span&gt;import&lt;/span&gt; cherrypy
&amp;nbsp;
&lt;span&gt;class&lt;/span&gt; WebSvc&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;object&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;:
    @cherrypy.&lt;span&gt;tools&lt;/span&gt;.&lt;span&gt;caching&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;delay=&lt;span&gt;300&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
    @cherrypy.&lt;span&gt;expose&lt;/span&gt;
    &lt;span&gt;def&lt;/span&gt; quadruple&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;self&lt;/span&gt;, number&lt;span&gt;&amp;#41;&lt;/span&gt;:
        &lt;span&gt;time&lt;/span&gt;.&lt;span&gt;sleep&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;# make the real call somewhat costly&lt;/span&gt;
        &lt;span&gt;return&lt;/span&gt; &lt;span&gt;str&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;number&lt;span&gt;&amp;#41;&lt;/span&gt; * &lt;span&gt;4&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
cherrypy.&lt;span&gt;quickstart&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;WebSvc&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;That uses an in-memory cache and defaults to items expiring from the cache in 300 seconds (5 minutes).  If you want to tweak that setting or others you can &lt;a href=&quot;http://www.cherrypy.org/wiki/Caching&quot;&gt;configure the caching tool&lt;/a&gt; to your liking.&lt;/p&gt;
&lt;p&gt;cw&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This is in response to &lt;a href=&quot;http://slightlynew.blogspot.com/2009/02/full-web-service-with-http-caching-in-7.html&quot;&gt;a post that asks if setting up caching in other web frameworks is as easy as in &lt;strike&gt;Rails&lt;/strike&gt; Ruby with Sinatra&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2009-02-25T14:53:00+00:00</dc:date>
	<dc:creator>christian</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/?p=2545">
	<title>Kevin Dangoor: Introduction to the Bespin Python backend</title>
	<link>http://www.blueskyonmars.com/2009/02/24/introduction-to-the-bespin-python-backend/</link>
	<content:encoded>&lt;p&gt;It&amp;#8217;s been less than two weeks since &lt;a href=&quot;http://labs.mozilla.com/projects/bespin/&quot;&gt;Bespin&lt;/a&gt; was introduced, and there&amp;#8217;s already been an impressive amount of activity around the open source project. There are at least 3 entirely new Bespin servers that I&amp;#8217;m aware of.&lt;/p&gt;
&lt;p&gt;The current Bespin server that we at Mozilla are maintaining is written in Python and appears in the backend/python directory in the Bespin source. To help people get up to speed with the code, I have created a screencast to help people get started with the Python backend and give them an idea of how the code is set up.&lt;/p&gt;
&lt;p&gt;I look forward to hearing your feedback!&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;http://vimeo.com/3355648&quot;&gt;Bespin Python Backend Overview&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/user1314339&quot;&gt;Kevin Dangoor&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2009-02-25T01:44:57+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/2009/02/17/creating-a-web-framework-with-wsgi-video/">
	<title>Kevin Dangoor: Creating a web framework with WSGI video</title>
	<link>http://www.blueskyonmars.com/2009/02/17/creating-a-web-framework-with-wsgi-video/</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://www.vimeo.com/3258566&quot;&gt;Creating a web framework with WSGI on Vimeo&lt;/a&gt;&lt;br /&gt;
&lt;blockquote&gt;The Michigan Python Users Group (MichiPUG) meeting topic from February 2009, presented by Kevin Dangoor. This screencast video shows us using WSGI components to build up a web framework piece-by-piece.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;By the way, for people who are interested in working on the &lt;a href=&quot;http://labs.mozilla.com/projects/bespin/&quot;&gt;Bespin&lt;/a&gt; server, this is the kind of &amp;#8220;web framework&amp;#8221; that the server is built upon.&lt;/p&gt;
&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img class=&quot;zemanta-pixie-img&quot; src=&quot;http://img.zemanta.com/pixy.gif?x-id=986f85a9-2510-4149-aade-ce9a5598de27&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-02-18T02:54:14+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/2009/02/14/bespin-code-in-the-cloud/">
	<title>Kevin Dangoor: Bespin: code in the cloud</title>
	<link>http://www.blueskyonmars.com/2009/02/14/bespin-code-in-the-cloud/</link>
	<content:encoded>&lt;p&gt;Despite working for an &lt;a href=&quot;http://www.mozilla.com/&quot;&gt;open source company&lt;/a&gt;, I have been pretty quiet here about what I&amp;#8217;ve been doing in the Mozilla Labs web developer tools group. No more. We&amp;#8217;ve gone public!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://labs.mozilla.com/2009/02/introducing-bespin/&quot;&gt;Mozilla Labs » Blog Archive » Introducing Bespin&lt;/a&gt;&lt;br /&gt;
&lt;blockquote&gt;Bespin proposes an open extensible web-based framework for code editing that aims to increase developer productivity, enable compelling user experiences, and promote the use of open standards.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I started working on Bespin as soon as I joined Mozilla, hitting the ground running with a new Python server. &lt;a href=&quot;http://www.ajaxian.com&quot;&gt;Ben and Dion&lt;/a&gt; had already done a lot of work and experimentation on Bespin prior to joining Mozilla in December, so I must confess that I am still fairly ignorant about the Canvas-based magic that they&amp;#8217;re doing in the UI. But, Bespin has an architecture that lends itself well to selective ignorance: the server provides a &lt;a href=&quot;https://wiki.mozilla.org/BespinServerAPI&quot;&gt;RESTful API&lt;/a&gt;, and the client is responsible for all of the presentation. For their part, Ben and Dion have been able to be blissfully ignorant about the inner workings of the Python server.&lt;/p&gt;
&lt;p&gt;Of course, I&amp;#8217;m not a JavaScript noob and have done some work in the client, but my focus has been the server. Now that we&amp;#8217;re out in the open, you can definitely expect that we&amp;#8217;ll be talking more about how things work and how you can bend Bespin to your will. Bespin is honest to goodness &lt;a href=&quot;http://hg.mozilla.org/labs/bespin/&quot;&gt;open source&lt;/a&gt; (&lt;a href=&quot;http://www.mozilla.org/MPL/&quot;&gt;MPL&lt;/a&gt;-licensed), so it becomes an open and collaborative effort starting right away.&lt;/p&gt;
&lt;p&gt;The initial reaction has been fantastic. There are tons of people hanging out in #bespin on irc.mozilla.org, and the &lt;a href=&quot;http://groups.google.com/group/bespin/&quot;&gt;mailing list&lt;/a&gt; has grown to a couple hundred members already. Thanks to everyone for jumping in with your thoughts and patches!&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s some of the coverage:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://ajaxian.com/archives/bespin-a-new-mozilla-labs-experimental-extensible-code-editor-using-canvas&quot;&gt;Dion&amp;#8217;s post at Ajaxian&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ajaxian.com/wp-content/uploads/editorofourdreams.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;From &lt;a href=&quot;http://almaer.com/blog/launching-bespin-feeling-light-as-a-cloud&quot;&gt;Dion&amp;#8217;s personal blog&lt;/a&gt;:&lt;br /&gt;
&lt;blockquote&gt;Foolish chaps and companies have come to me in the past thinking that open source will be a silver bullet for “getting other people to do our work.” Those that have been involved in open source know that it isn’t the case. It is often more work. But, it is worth it.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;From &lt;a href=&quot;http://arstechnica.com/open-source/news/2009/02/ide-in-the-cloud-mozilla-labs-browser-based-ide-prototype.ars&quot;&gt;Ars Technica&lt;/a&gt;:&lt;br /&gt;
&lt;blockquote&gt;The project is still at an early stage of development and there is clearly a lot of work to be done before it will be able to deliver the same practical value as existing desktop editors. Despite the limitations, it shows an enormous amount of promise and has the potential to eventually deliver a user experience that rivals even the best text editors.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;From &lt;a href=&quot;http://opensourcereleasefeed.com/interview/show/five-questions-with-dion-almaer-co-creator-of-mozilla-bespin&quot;&gt;Five Questions with Dion Almaer&lt;/a&gt;:&lt;br /&gt;
&lt;blockquote&gt;Now the browsers are moving fast again   and building a first class platform for us to develop, the Open Web Platform. Instead of getting bogged down thinking about   what IE 6 gives you, take some time to think about what you could build with the latest technology. I realise that you have to   be pragmatic and get things working with your audience, but browsers are changing, and so are expectations.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;From &lt;a href=&quot;http://www.computerworlduk.com/community/blogs/index.cfm?entryid=1858&amp;amp;blogid=14&quot;&gt;What Mozilla&amp;#8217;s Bespin Bespeaks&lt;/a&gt; (ComputerworldUK):&lt;br /&gt;
&lt;blockquote&gt;You can see that Bespin is ticking all the Mozilla boxes, but what&amp;#8217;s also striking is that this is a Web-based project: Mozilla is entering the cloud. It&amp;#8217;s a further shift to viewing the Web as a platform for doing, well, just about anything. Clearly, against that background, open standards are even more important. And not only for the code: another issue that Mozilla will need to start addressing publicly is that of open data. As more stuff moves into the cloud, it become imperative to establish minimum standards for access to the data that is held there. I look forward to hearing Mozilla&amp;#8217;s views on the subject. &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;While I certainly don&amp;#8217;t speak for Mozilla, I would be &lt;i&gt;extremely surprised&lt;/i&gt; if there&amp;#8217;s anyone at Mozilla that believes that users should have anything less than full access and ability to take their data with them. There can be technical issues involved in providing the data, but the data should be available in some reasonable form. Bespin, for its part, makes it easy to export a project in a tarball or zipfile.&lt;/p&gt;
&lt;p&gt;I was surprised to see &lt;a href=&quot;http://lifehacker.com/5152999/mozilla-bespin-is-a-killer-web+based-text-editor&quot;&gt;Bespin covered even on Lifehacker&lt;/a&gt;:&lt;br /&gt;
&lt;blockquote&gt;Primarily, Bespin is a text editor—the kind you&amp;#8217;d use for editing code or managing &lt;a href=&quot;http://lifehacker.com/software/text/geek-to-live-list-your-life-in-txt-166299.php&quot;&gt;text-based todos&lt;/a&gt;. Using Bespin, developers could collaborate on projects through a unified interface (that still supports plugins!) no matter where they are—so long as they&amp;#8217;ve got a browser.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;http://news.cnet.com/8301-17939_109-10163516-2.html&quot;&gt;cnet has the story,&lt;/a&gt; too:&lt;br /&gt;
&lt;blockquote&gt;For example, what about integration with open-source software repositories? If it&amp;#8217;s flexible enough, Bespin could essentially act as a source code viewer that repositories such as SourceForge or Google Code could employ. &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;A &lt;a href=&quot;http://www.readwriteweb.com/archives/bespin_html_editor_cloud.php&quot;&gt;nice writeup on the ReadWriteWeb&lt;/a&gt; as well:&lt;br /&gt;
&lt;blockquote&gt;It&amp;#8217;s clear that a great deal of thought and attention went into this early version - and it&amp;#8217;s a safe bet that it will only get more impressive as time goes on.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;RWW last month surprised me with &lt;a href=&quot;http://www.readwriteweb.com/jobwire/2009/01/mozilla-developer-tools-lab-hi.php&quot;&gt;their coverage of me joining Mozilla&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m having a great time at Mozilla so far, and it&amp;#8217;s great to be out in the open working with so many people now on Bespin and &lt;a href=&quot;http://groups.google.com/group/serverjs&quot;&gt;ServerJS&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img class=&quot;zemanta-pixie-img&quot; src=&quot;http://img.zemanta.com/pixy.gif?x-id=da16a7ba-73bb-4ac9-83a3-f954ff3f2b0c&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2009-02-15T01:30:19+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/2009/02/02/michipug-meeting-thursday-wsgi-web-frameworks/">
	<title>Kevin Dangoor: MichiPUG meeting Thursday: WSGI web frameworks</title>
	<link>http://www.blueskyonmars.com/2009/02/02/michipug-meeting-thursday-wsgi-web-frameworks/</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/michipug/web/index-2&quot;&gt;Reminder of Thursday&amp;#8217;s MichiPUG meeting:&lt;/a&gt;&lt;br /&gt;
&lt;blockquote&gt;The next MichiPUG meeting will be on Thursday, February 5th at 7PM. Kevin Dangoor will lead a discussion/demo on building your own custom web frameworks with WSGI. As usual, the meeting will be at the SRT Solutions office in Ann Arbor..&lt;/p&gt;&lt;/blockquote&gt;</content:encoded>
	<dc:date>2009-02-02T13:08:31+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/2009/01/29/paver-10a1-recalled/">
	<title>Kevin Dangoor: Paver 1.0a1 recalled</title>
	<link>http://www.blueskyonmars.com/2009/01/29/paver-10a1-recalled/</link>
	<content:encoded>&lt;p&gt;It turns out that both pip and easy_install have trouble with the Paver 1.0a1 package. I&amp;#8217;m going to look into that, but in the meantime I have removed the Paver 1.0a1 tarball from the cheeseshop so that people don&amp;#8217;t accidentally get it. Sorry about that!&lt;/p&gt;
&lt;p&gt;As a side note, it is unfortunate that easy_install and pip both will pick up alpha and beta releases in preference to release versions. I would think that a nicer default would be to prefer the current release version unless there&amp;#8217;s a flag saying &amp;#8220;give me the test release&amp;#8221;.&lt;/p&gt;</content:encoded>
	<dc:date>2009-01-29T15:03:35+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>
<item rdf:about="http://www.blueskyonmars.com/2009/01/28/paver-10a1-is-out/">
	<title>Kevin Dangoor: Paver 1.0a1 is out</title>
	<link>http://www.blueskyonmars.com/2009/01/28/paver-10a1-is-out/</link>
	<content:encoded>&lt;p&gt;I have just pushed &lt;a href=&quot;http://www.blueskyonmars.com/projects/paver/&quot;&gt;Paver&lt;/a&gt; 1.0a1 up to the &lt;a href=&quot;http://pypi.python.org/pypi/Paver/1.0a1&quot;&gt;Python Cheeseshop&lt;/a&gt;. This is very much an alpha release, so beware. That said, I&amp;#8217;m successfully using it in my own projects and have been for some time.&lt;/p&gt;
&lt;p&gt;I have significantly changed the way Paver works, and I think the new structure is simpler and more flexible because it is no longer tied to distutils. In fact, Paver&amp;#8217;s task running capability is in paver/tasks.py and that module could conceivably be used standalone. And, the namespace of tasks is not muddied with a bunch of distutils tasks if you&amp;#8217;re making a pavement for some other purpose.&lt;/p&gt;
&lt;p&gt;But, the distutils/setuptools integration still exists and is easy to turn on.&lt;/p&gt;
&lt;p&gt;Paver 1.0a1 has a handful of useful new features, including the ability to run separate sub-pavements (in the same process, no less).&lt;/p&gt;
&lt;p&gt;The docs on the Paver site are still for 0.8, and I will leave it that way for now. When you install Paver, you can run &amp;#8220;paver paverdocs&amp;#8221; to see the docs for the version of Paver you are running.&lt;/p&gt;
&lt;p&gt;Please report any bugs you find either to the &lt;a href=&quot;http://groups.google.com/group/paver&quot;&gt;googlegroup&lt;/a&gt; or directly to the &lt;a href=&quot;http://code.google.com/p/paver/&quot;&gt;tracker at googlecode&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks to Marc Sibson, Bryan Forbes, Juergen Hermann and others who have contributed to this release.&lt;/p&gt;</content:encoded>
	<dc:date>2009-01-28T20:59:57+00:00</dc:date>
	<dc:creator>Kevin Dangoor</dc:creator>
</item>

</rdf:RDF>
