<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Unfolded Mind &#187; klortho</title>
	<atom:link href="http://blawg.unfoldedmind.com/category/klortho/feed/" rel="self" type="application/rss+xml" />
	<link>http://blawg.unfoldedmind.com</link>
	<description>&#34;Six Impossible Things Before Breakfast&#34;</description>
	<lastBuildDate>Fri, 30 Jul 2010 16:55:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>klortho: fundamentally unsound</title>
		<link>http://blawg.unfoldedmind.com/2009/03/26/klortho-fundamentally-unsound/</link>
		<comments>http://blawg.unfoldedmind.com/2009/03/26/klortho-fundamentally-unsound/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 21:14:11 +0000</pubDate>
		<dc:creator>ericg</dc:creator>
				<category><![CDATA[klortho]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blawg.unfoldedmind.com/?p=63</guid>
		<description><![CDATA[My bright idea, the one where I do a HEAD request, and then decide how to handle it?
Not gonna work. Things just get too confusing in the case of a POST.
I&#8217;ll have to do some major re-thinking, and revert some things back the way they were before.
Nobody said this would be easy, now, did they?
]]></description>
			<content:encoded><![CDATA[<p>My bright idea, the one where I do a HEAD request, and then decide how to handle it?</p>
<p>Not gonna work. Things just get too confusing in the case of a POST.</p>
<p>I&#8217;ll have to do some major re-thinking, and revert some things back the way they were before.</p>
<p>Nobody said this would be easy, now, did they?</p>
]]></content:encoded>
			<wfw:commentRss>http://blawg.unfoldedmind.com/2009/03/26/klortho-fundamentally-unsound/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>klortho: Much Accomplished, Much Remaining</title>
		<link>http://blawg.unfoldedmind.com/2009/03/12/klortho-much-accomplished-much-remaining/</link>
		<comments>http://blawg.unfoldedmind.com/2009/03/12/klortho-much-accomplished-much-remaining/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 18:38:49 +0000</pubDate>
		<dc:creator>ericg</dc:creator>
				<category><![CDATA[klortho]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blawg.unfoldedmind.com/?p=55</guid>
		<description><![CDATA[Okay, the latest: I&#8217;ve fixed the incomplete headers problem, and found a solution to proxying non-XML resources: not to do it at all!
Here&#8217;s the way klortho now behaves. It parses the request URL, does a HEAD request on it with the original HTTP headers from the user&#8217;s browser, and then takes 1 of 3 actions. [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, the latest: I&#8217;ve fixed the incomplete headers problem, and found a solution to proxying non-XML resources: not to do it at all!</p>
<p>Here&#8217;s the way klortho now behaves. It parses the request URL, does a HEAD request on it with the original HTTP headers from the user&#8217;s browser, and then takes 1 of 3 actions. If the returned status code is anything other than &#8220;200 OK&#8221;, it returns the headers it receives. If it gets a &#8220;200 OK&#8221;, but the &#8220;Content-Type&#8221; is anything other than &#8220;application/xml&#8221; or &#8220;text/xml&#8221;, it sends a &#8220;301 Moved Permanently&#8221; status, with a &#8220;Location&#8221; header pointing the user&#8217;s browser to the URL parsed from the &#8220;PATH_INFO&#8221;. This tells the user&#8217;s browser that klortho is not interested in brokering this request, and to kindly just get the resource directly from now on, thankyouverymuch. Only if it has a &#8220;200 OK&#8221;, and the right XML content type does it go ahead and retrieve the body of the response, and process and return it.</p>
<p>Still unfinished: </p>
<ol>
<li>POST requests. This is a biggie. If the checks succeed, klortho will have to pass in the POSTed data it receives. libCurl has a good tutorial on this. It&#8217;s should be straightforward.</li>
<li>Some response headers may need to be adjusted on the way out, the ones that relate to proxying.</li>
<li>Authentication will need to be transparently passed through</li>
</ol>
<p>Keep checking back, I&#8217;ll keep you updated. If you feel like contributing, let me know.</p>
<p>The Links:</p>
<ul>
<li>
<a href="http://www.limulus.biz/bandname/dispatch.fcgi/Show">The &#8220;Show&#8221; script, without klortho</a>
</li>
<li>
<a href="http://www.limulus.biz/klortho/bandname/dispatch.fcgi/Show">The &#8220;Show&#8221; script, with klortho</a>
</li>
<li>
<a href="http://www.limulus.biz/bandname/dispatch.fcgi/Rate">The &#8220;Rate&#8221; script, without klortho</a>
</li>
<li>
<a href="http://www.limulus.biz/klortho/bandname/dispatch.fcgi/Rate">The &#8220;Rate&#8221; script, with klortho</a>
</li>
<li><a href="http://www.unfoldedmind.com/darcsweb/darcsweb.cgi?r=klortho;a=tree;f=/src">klortho source</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blawg.unfoldedmind.com/2009/03/12/klortho-much-accomplished-much-remaining/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More progress, more setbacks on klortho</title>
		<link>http://blawg.unfoldedmind.com/2009/03/06/more-progress-more-setbacks-on-klortho/</link>
		<comments>http://blawg.unfoldedmind.com/2009/03/06/more-progress-more-setbacks-on-klortho/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 16:01:46 +0000</pubDate>
		<dc:creator>ericg</dc:creator>
				<category><![CDATA[klortho]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blawg.unfoldedmind.com/?p=52</guid>
		<description><![CDATA[I have a version of klortho that&#8217;s able to parse its PATH_INFO, grab the XML that&#8217;s located there, and apply the transformation that&#8217;s in the processing instruction, if such exists. That&#8217;s cool.
I&#8217;ve been using this to work with my python band name generator, and I can get random band names to show, and that&#8217;s really [...]]]></description>
			<content:encoded><![CDATA[<p>I have a version of klortho that&#8217;s able to parse its PATH_INFO, grab the XML that&#8217;s located there, and apply the transformation that&#8217;s in the processing instruction, if such exists. That&#8217;s cool.</p>
<p>I&#8217;ve been using this to work with my python band name generator, and I can get random band names to show, and that&#8217;s really great, because I can use the needs I discover while working on this band name program to decide which as yet unimplemented parts of klortho I&#8217;ll need to implement, which brings us to my roadblock.</p>
<p>I&#8217;m writing the python script (called &#8220;Rate&#8221;) that will take in POSTed parameters to update the ratings for all the words in the previously displayed band name, and then redirect back to &#8220;Show&#8221;. klortho needs to do two things that it can&#8217;t do yet in order for this to work: it needs to understand POSTed data, and pass it to the sub-request, and it needs to recognize redirect status codes from the sub-request, and pass them back out, along with the appropriate headers. </p>
<p>I started small and modest. &#8220;Rate&#8221; just issues a redirect to &#8220;Show&#8221;. If you call the script directly, it works. Nothing I try in klortho will pass that redirect out. I run into a brick wall of of &#8220;500 Server Error&#8221;. The server error log reliably reports that FasctCGI is complaing that I&#8217;m sending incomplete headers. Is it a Dreamhost server config issue? What&#8217;s going on? What do I try next to learn more about what&#8217;s really happening?</p>
<p>I see two roads, and I may follow them both at the same time. I can create a little dummy FastCGI in c, that does nothing but issue hard-coded redirects. I&#8217;d leave out all the other things that klortho is doing, and tweak away at the stripped down version until I get it right, then put what I&#8217;ve come up with back into klortho. The other idea I&#8217;ve had is to write another version of klortho from scratch, and concentrate on acting as a fully transparent proxy, which will pass all the appropriate headers in and out, handle authentication and POST data and file uploads and any status code the sub-request might throw at it, and then add the XSLT transformations back into it. </p>
<ul>
<li>
<a href="http://www.limulus.biz/bandname/dispatch.fcgi/Show">The &#8220;Show&#8221; script, without klortho</a>
</li>
<li>
<a href="http://www.limulus.biz/klortho/bandname/dispatch.fcgi/Show">The &#8220;Show&#8221; script, with klortho</a>
</li>
<li>
<a href="http://www.limulus.biz/bandname/dispatch.fcgi/Rate">The &#8220;Rate&#8221; script, without klortho</a>
</li>
<li>
<a href="http://www.limulus.biz/klortho/bandname/dispatch.fcgi/Rate">The &#8220;Rate&#8221; script, with klortho</a>
</li>
<li><a href="http://www.unfoldedmind.com/darcsweb/darcsweb.cgi?r=klortho;a=tree;f=/src">klortho source</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blawg.unfoldedmind.com/2009/03/06/more-progress-more-setbacks-on-klortho/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Been Sick</title>
		<link>http://blawg.unfoldedmind.com/2009/02/17/been-sick/</link>
		<comments>http://blawg.unfoldedmind.com/2009/02/17/been-sick/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 18:33:51 +0000</pubDate>
		<dc:creator>ericg</dc:creator>
				<category><![CDATA[health]]></category>
		<category><![CDATA[klortho]]></category>
		<category><![CDATA[meta-blog]]></category>

		<guid isPermaLink="false">http://blawg.unfoldedmind.com/?p=49</guid>
		<description><![CDATA[Was sick all last week. Didn&#8217;t feel like posting, didn&#8217;t feel like doing much on my programming projects.
I did fiddle with klortho a little, got rid of the segfault, but still haven&#8217;t been able to get it to actually serve up a page on Dreamhost. Environment variables/dynamic linking maybe? that&#8217;s my next avanue of investigation.
]]></description>
			<content:encoded><![CDATA[<p>Was sick all last week. Didn&#8217;t feel like posting, didn&#8217;t feel like doing much on my programming projects.<br />
I did fiddle with klortho a little, got rid of the segfault, but still haven&#8217;t been able to get it to actually serve up a page on Dreamhost. Environment variables/dynamic linking maybe? that&#8217;s my next avanue of investigation.</p>
]]></content:encoded>
			<wfw:commentRss>http://blawg.unfoldedmind.com/2009/02/17/been-sick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dangerous</title>
		<link>http://blawg.unfoldedmind.com/2009/02/07/dangerous/</link>
		<comments>http://blawg.unfoldedmind.com/2009/02/07/dangerous/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 22:14:53 +0000</pubDate>
		<dc:creator>ericg</dc:creator>
				<category><![CDATA[klortho]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://blawg.unfoldedmind.com/?p=43</guid>
		<description><![CDATA[
I don&#8217;t get it. How can a language as dangerous and fussy as C have  been used to create so much cool stuff? Linux, BSD, Apache, perl&#8230; you get the idea. I got spoiled by perl, python, lisp and other langauges where what you type generally does what you mean. C is like you&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p><rant><br />
I don&#8217;t get it. How can a language as dangerous and fussy as C have  been used to create so much cool stuff? Linux, BSD, Apache, perl&#8230; you get the idea. I got spoiled by perl, python, lisp and other langauges where what you type generally does what you mean. C is like you&#8217;re stupid friend, who does what you say, literally, whether it makes any sense at all or not.<br />
</rant></p>
]]></content:encoded>
			<wfw:commentRss>http://blawg.unfoldedmind.com/2009/02/07/dangerous/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Band Name Generator</title>
		<link>http://blawg.unfoldedmind.com/2009/01/23/band-name-generator/</link>
		<comments>http://blawg.unfoldedmind.com/2009/01/23/band-name-generator/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 06:32:14 +0000</pubDate>
		<dc:creator>ericg</dc:creator>
				<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[klortho]]></category>
		<category><![CDATA[Sematic Web Meta-blog]]></category>

		<guid isPermaLink="false">http://blawg.unfoldedmind.com/?p=37</guid>
		<description><![CDATA[I used to have a cool little program I wrote on the web, called the band name generator. I&#8217;d gone through a couple different versions, adding features, and had a lot of fun writing it. Then I lost interest, changed internet service providers, and let it just go away.
It&#8217;s coming back. Woo Hoo. I&#8217;ve found [...]]]></description>
			<content:encoded><![CDATA[<p>I used to have a cool little program I wrote on the web, called the band name generator. I&#8217;d gone through a couple different versions, adding features, and had a lot of fun writing it. Then I lost interest, changed internet service providers, and let it just go away.</p>
<p>It&#8217;s coming back. Woo Hoo. I&#8217;ve found it&#8217;s been a really great way to get myself motivated to learn new ways of doing things. I can take a concept that I&#8217;ve thought about in deep detail, and  re-imagine it in terms of the latest ideas that happen in web programming.</p>
<p>The next set of &#8220;buzzwords du jour&#8221; will be &#8220;RDF&#8221;,  &#8220;SPARQL&#8221;, and &#8220;ontology&#8221;. That will mean BUPKUS to  most of you, but I&#8217;m excited.</p>
]]></content:encoded>
			<wfw:commentRss>http://blawg.unfoldedmind.com/2009/01/23/band-name-generator/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Progress on Klortho!</title>
		<link>http://blawg.unfoldedmind.com/2009/01/15/progress-on-klortho/</link>
		<comments>http://blawg.unfoldedmind.com/2009/01/15/progress-on-klortho/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 17:36:20 +0000</pubDate>
		<dc:creator>ericg</dc:creator>
				<category><![CDATA[coolness]]></category>
		<category><![CDATA[klortho]]></category>

		<guid isPermaLink="false">http://blawg.unfoldedmind.com/2009/01/15/progress-on-klortho/</guid>
		<description><![CDATA[Klortho
I got a small C program working, that acts as a FastCGI, fetches XML with libcurl, extracts the xml-stylesheet PI from the result and applies the transformation using libxml and libxslt, then returns HTML to the browser. Yay!
Still TBD:

extract all headers, and pass them through libcurl
handle POST, HEAD and PUT
handle HTTP authentication
pass response headers through [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Klortho" href="http://www.unfoldedmind.com/klortho.klortho">Klortho</a><br />
I got a small C program working, that acts as a FastCGI, fetches XML with libcurl, extracts the xml-stylesheet PI from the result and applies the transformation using libxml and libxslt, then returns HTML to the browser. Yay!</p>
<p>Still TBD:</p>
<ul>
<li>extract all headers, and pass them through libcurl</li>
<li>handle POST, HEAD and PUT</li>
<li>handle HTTP authentication</li>
<li>pass response headers through transparently</li>
<li>proxy non-XML requests, and XML without a stylesheet PI</li>
<li>clean up the C</li>
<li>fix the autoconf/automake stuff</li>
<li>test portability</li>
</ul>
<p>Still, I&#8217;m pleased, and inspired to actually do more work on this.<br />
Anyone want to help?</p>
]]></content:encoded>
			<wfw:commentRss>http://blawg.unfoldedmind.com/2009/01/15/progress-on-klortho/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emerging from the vapor</title>
		<link>http://blawg.unfoldedmind.com/2007/07/09/emerging-from-the-vapor/</link>
		<comments>http://blawg.unfoldedmind.com/2007/07/09/emerging-from-the-vapor/#comments</comments>
		<pubDate>Mon, 09 Jul 2007 22:01:01 +0000</pubDate>
		<dc:creator>ericg</dc:creator>
				<category><![CDATA[klortho]]></category>

		<guid isPermaLink="false">http://blawg.unfoldedmind.com/2007/07/09/emerging-from-the-vapor/</guid>
		<description><![CDATA[Klortho as been a work-in-progress in my mind since 2004 or so, but nothing beyond the creation of a sourceforge project has really happened with it. Well, I finally got around to making something happen: I made a small perl fastcgi script for doing automatic XSLT transforms, and added some .htaccess/mod_rewrite plumbing to my www.unfoldedmind.com [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Klortho</strong> as been a work-in-progress in my mind since 2004 or so, but nothing beyond the creation of a <a target="_blank" href="http://sourceforge.net/projects/klortho">sourceforge project</a> has really happened with it. Well, I finally got around to making something happen: I made a small perl fastcgi script for doing automatic XSLT transforms, and added some .htaccess/mod_rewrite plumbing to my <a target="_blank" title="www.unfoldedmind.com" href="http://www.unfoldedmind.com">www.unfoldedmind.com</a> account. (It&#8217;s on a shared host where I can&#8217;t use mod_transform the way I wanted to). after that, I was able to whip up a rudimentary main template, and add a couple xml pages, with their own stylesheets.</p>
<p>There is not much to see on the surface at present, and there may not be for a while, but I&#8217;m pleased to have enough of a scaffold in place to start working on the harder parts.</p>
<p>These harder parts include:</p>
<ul>
<li>Getting the fastcgi to pass GET, POST and COOKIE data to the underlying request</li>
<li>Building data models with Berkely DB/XML</li>
<li>Getting Haskell and Lisp to talk to the C++ API for BDB/XML</li>
<li>Learning enough Haskell and Lisp to make working this way fun, and not frustrating</li>
</ul>
<p>Anyone want to help?</p>
]]></content:encoded>
			<wfw:commentRss>http://blawg.unfoldedmind.com/2007/07/09/emerging-from-the-vapor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.836 seconds -->
