<?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"
	>

<channel>
	<title>Paul Findlay</title>
	<atom:link href="http://findlay.net.nz/paul/feed/" rel="self" type="application/rss+xml" />
	<link>http://findlay.net.nz/paul</link>
	<description>Paul Findlay and his online content</description>
	<pubDate>Mon, 26 May 2008 04:17:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>Fingers crossed</title>
		<link>http://findlay.net.nz/paul/2007/10/03/fingers-crossed</link>
		<comments>http://findlay.net.nz/paul/2007/10/03/fingers-crossed#comments</comments>
		<pubDate>Wed, 03 Oct 2007 03:08:14 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
		
		<category><![CDATA[my life]]></category>

		<guid isPermaLink="false">http://findlay.net.nz/paul/2007/10/03/fingers-crossed</guid>
		<description><![CDATA[	I may be able to graduate this year. Of course, that entails finding something else to do.


 ]]></description>
			<content:encoded><![CDATA[	<p>I may be able to graduate this year. Of course, that entails finding something else to do.</p>


 ]]></content:encoded>
			<wfw:commentRss>http://findlay.net.nz/paul/2007/10/03/fingers-crossed/feed</wfw:commentRss>
		</item>
		<item>
		<title>JSON: State Machine</title>
		<link>http://findlay.net.nz/paul/2007/07/25/json-state-machine</link>
		<comments>http://findlay.net.nz/paul/2007/07/25/json-state-machine#comments</comments>
		<pubDate>Wed, 25 Jul 2007 10:20:14 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
		
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://findlay.net.nz/paul/2007/07/25/json-state-machine</guid>
		<description><![CDATA[	Well I had fun making this  (4 deterministic finite state machines that are joined together as a pushdown automaton to parse JSON). It has something like 75 73 74 states. I&#8217;m sure I could cut that number down if I made it less deterministic, but I can&#8217;t be bothered.

	Just got to find some use [...]]]></description>
			<content:encoded><![CDATA[	<p>Well I had fun making <a href="http://findlay.net.nz/paul/wp-content/uploads/2007/07/json.pdf" title="JSON: State Machine">this</a>  (4 <a href="http://en.wikipedia.org/wiki/Deterministic_finite_state_machine">deterministic finite state machines</a> that are joined together as a <a href="http://en.wikipedia.org/wiki/Pushdown_automaton">pushdown automaton</a> to parse <a href="http://en.wikipedia.org/wiki/JSON">JSON</a>). It has something like <del datetime="2007-07-26T05:50:28+00:00">75</del> <del datetime="2007-07-31T12:19:18+00:00">73</del> 74 states. I&#8217;m sure I could cut that number down if I made it less deterministic, but I can&#8217;t be bothered.</p>

	<p>Just got to find some use for it..</p>

	<p>If you can&#8217;t understand what I am on about, I&#8217;m sorry for you <img src='http://findlay.net.nz/paul/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>


 ]]></content:encoded>
			<wfw:commentRss>http://findlay.net.nz/paul/2007/07/25/json-state-machine/feed</wfw:commentRss>
		</item>
		<item>
		<title>XML: Impossible to be original</title>
		<link>http://findlay.net.nz/paul/2007/07/20/xml-impossible-to-be-original</link>
		<comments>http://findlay.net.nz/paul/2007/07/20/xml-impossible-to-be-original#comments</comments>
		<pubDate>Thu, 19 Jul 2007 21:11:11 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
		
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://findlay.net.nz/paul/2007/07/20/xml-impossible-to-be-original</guid>
		<description><![CDATA[	I write a comment, then follow a couple of links to find that what I have imagined in my comment is already in production (and probably better): Simple XML Compiler.

	I will have to one up it somehow.. the dream inside my head for several months has been a trie like system where you add a [...]]]></description>
			<content:encoded><![CDATA[	<p>I write a comment, then follow a couple of links to find that what I have imagined in my comment is already in production (and probably better): <a href="http://sxc.codehaus.org/">Simple XML Compiler</a>.</p>

	<p>I will have to one up it somehow.. the dream inside my head for several months has been a trie like system where you add a whole bunch of XPath&#8217;s to it (preferably doable on the fly) and by dint of acting like a trie, the common beginnings of the XPaths are bundled up so as to save space/states and to result in longest-prefix matching.. anyways the combination of these XPath expressions get applied like a giant state-machine/trie to the incoming <a href="http://findlay.net.nz/paul/2007/07/04/xml-parser">XML events</a> in something approximating log(n) time, so large numbers of XML streams can be handled efficiently.. probably sounds like <a href="http://sxc.codehaus.org/Drools">Drools</a> (trigger rules which are based on XPath expressions) even though I had never heard of it.</p>

	<p>How am I supposed to get an interesting job unless I study, but how am I supposed to study when I keep trying to flesh out my interesting ideas.. but then how can I consider my ideas interesting when they are already taken <img src='http://findlay.net.nz/paul/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>


 ]]></content:encoded>
			<wfw:commentRss>http://findlay.net.nz/paul/2007/07/20/xml-impossible-to-be-original/feed</wfw:commentRss>
		</item>
		<item>
		<title>XML: Parser</title>
		<link>http://findlay.net.nz/paul/2007/07/04/xml-parser</link>
		<comments>http://findlay.net.nz/paul/2007/07/04/xml-parser#comments</comments>
		<pubDate>Wed, 04 Jul 2007 03:47:10 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
		
		<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://findlay.net.nz/paul/2007/07/04/xml-parser</guid>
		<description><![CDATA[	Creating an XML parser that works like StaX out of a FSM that can process partial chunks of the document as it asynchronously arrives is kinda hard. Especially when you are trying to do it without any heap activity..


 ]]></description>
			<content:encoded><![CDATA[	<p>Creating an XML parser that works like StaX out of a FSM that can process partial chunks of the document as it asynchronously arrives is kinda hard. Especially when you are trying to do it without any heap activity..</p>


 ]]></content:encoded>
			<wfw:commentRss>http://findlay.net.nz/paul/2007/07/04/xml-parser/feed</wfw:commentRss>
		</item>
		<item>
		<title>Bob Parsons on how to go broke</title>
		<link>http://findlay.net.nz/paul/2006/12/03/bob-parsons-on-how-to-go-broke</link>
		<comments>http://findlay.net.nz/paul/2006/12/03/bob-parsons-on-how-to-go-broke#comments</comments>
		<pubDate>Sun, 03 Dec 2006 11:21:01 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
		
		<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://findlay.net.nz/paul/2006/12/03/bob-parsons-on-how-to-go-broke</guid>
		<description><![CDATA[	Don&#8217;t let crowded markets frighten you.
I&#8217;ve heard people say that I love this idea, but this particular business is already crowded. In response to that I say there is always room in any industry or business for someone who truly makes a difference. And I can tell you that someone who loves what they are [...]]]></description>
			<content:encoded><![CDATA[	<p><strong>Don&#8217;t let crowded markets frighten you.</strong><br />
I&#8217;ve heard people say that I love this idea, but this particular business is already crowded. In response to that I say there is always room in any industry or business for someone who truly makes a difference. And I can tell you that someone who loves what they are doing often makes a wonderful difference. People who make a difference tend to stand out from the crowd and they are the ones who survive shakeouts.</p>

	<p><strong>When you love something</strong><br />
My father used to tell me <q>When you love something, it tells you all its secrets</q>. There is so much truth to this statement. It&#8217;s the accumulation and use of all those big and little secrets that separate the great companies from all the also-rans. People who are in it just for the money never learn any of the secrets.</p>


 ]]></content:encoded>
			<wfw:commentRss>http://findlay.net.nz/paul/2006/12/03/bob-parsons-on-how-to-go-broke/feed</wfw:commentRss>
		</item>
		<item>
		<title>XML: People</title>
		<link>http://findlay.net.nz/paul/2006/06/26/xml-people</link>
		<comments>http://findlay.net.nz/paul/2006/06/26/xml-people#comments</comments>
		<pubDate>Mon, 26 Jun 2006 02:26:47 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
		
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://findlay.net.nz/paul/2006/06/26/xml-people</guid>
		<description><![CDATA[	Continuing with the theme&#8230;

	There is the bitterly smart Fredrik Lundh and his excellent ElementTree (which will be in Python 2.5) &#8220;it makes XML documents look like a bunch of nested lists&#8221;. I find the iterparse function interesting. (Of course someone as made a similar python interface but with all libxml2&#8217;s functionality and compliance).

	Another figure is [...]]]></description>
			<content:encoded><![CDATA[	<p>Continuing with the theme&#8230;</p>

	<p>There is the bitterly smart <a href="http://effbot.org/">Fredrik Lundh</a> and his excellent <a href="http://effbot.org/zone/element-index.htm">ElementTree</a> (which will be in Python 2.5) <a href="http://article.gmane.org/gmane.comp.python.tutor/24986">&#8220;it makes XML documents look like a bunch of nested lists&#8221;</a>. I find the <a href="http://effbot.org/zone/element-iterparse.htm">iterparse function</a> interesting. (Of course someone as made <a href="http://codespeak.net/lxml/">a similar python interface</a> but with all <a href="http://www.xmlsoft.org/">libxml2</a>&#8217;s <a href="http://faassen.n--tree.net/blog/view/weblog/2006/02/24/0">functionality</a> and compliance).</p>

	<p>Another figure is the fatherly <a href="http://uche.ogbuji.net/">Uche Ogbuji</a> who is heavily involved with the <a href="http://4suite.org">4suite™</a> &#8220;platform for XML and RDF processing&#8221; which is built on by the <a href="http://uche.ogbuji.net/tech/4suite/amara/">Amara XML toolkit</a>. Very pythonic yet very concerned about the XML-Specs it would seem.</p>

	<p>I should mention the bearded <a href="http://www.tbray.org/ongoing/misc/Tim">Tim Bray</a>. He <a href="http://en.wikipedia.org/wiki/Tim_Bray#Early_life">gives me hope</a>, but not only that &#8211; he contributed to the XML standard (and the excellent <a href="http://en.wikipedia.org/wiki/Atom_%28standard%29">Atom standard</a>) and has &#8216;recently&#8217; written a nice C library for generating XML called <a href="http://www.tbray.org/ongoing/When/200x/2004/02/20/GenxStatus">Genx</a>. It seems Genx is pretty much feature complete, which is cool (because that means handling UTF-8 and namespaces &#8216;well&#8217;).</p>


 ]]></content:encoded>
			<wfw:commentRss>http://findlay.net.nz/paul/2006/06/26/xml-people/feed</wfw:commentRss>
		</item>
		<item>
		<title>XML: Digestion</title>
		<link>http://findlay.net.nz/paul/2006/06/23/xml-digestion</link>
		<comments>http://findlay.net.nz/paul/2006/06/23/xml-digestion#comments</comments>
		<pubDate>Thu, 22 Jun 2006 14:00:55 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
		
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://findlay.net.nz/paul/2006/06/23/xml-digestion</guid>
		<description><![CDATA[	Well, so I said:

	
		a custom XML parser (that maps onto application specific data structures) would be cool.
	
 &#8211; it seems the Jakarta Commons project has a Digester Component which does this programmatically. One of the Scribus developers made something similar for C++


 ]]></description>
			<content:encoded><![CDATA[	<p>Well, so I said:</p>

	<blockquote>
		<p>a custom XML parser (that maps onto application specific data structures) would be cool.</p>
	</blockquote>
 &#8211; it seems the Jakarta Commons project has a <a href="http://jakarta.apache.org/commons/digester/">Digester Component</a> which does this programmatically. One of the <a href="http://www.scribus.net/" title="Open Source Desktop Publishing">Scribus</a> developers made <a href="http://rants.scribus.net/2006/06/06/do-you-enjoy-parsing-xml/">something similar for C++</a>


 ]]></content:encoded>
			<wfw:commentRss>http://findlay.net.nz/paul/2006/06/23/xml-digestion/feed</wfw:commentRss>
		</item>
		<item>
		<title>XML: See also</title>
		<link>http://findlay.net.nz/paul/2006/06/17/xml-see-also</link>
		<comments>http://findlay.net.nz/paul/2006/06/17/xml-see-also#comments</comments>
		<pubDate>Sat, 17 Jun 2006 04:22:00 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
		
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://findlay.net.nz/paul/2006/06/17/xml-see-also</guid>
		<description><![CDATA[	David Mertz&#8217;s XML Programming Paradigms

	Also by the same author, The Xom Java Xml Api (which he calls a &#8220;A rigorously correct tree-oriented XML model&#8221;).

	TagSoup, a SAX-compliant parser, for all that &#8216;wild&#8217; HTML written in Java. Similarly BeautifulSoup written in Python.

	From CUJ: Generating a custom XML parser (that maps onto application specific data structures) would be [...]]]></description>
			<content:encoded><![CDATA[	<p>David Mertz&#8217;s <a href="http://gnosis.cx/publish/tech_index_ids.html">XML Programming Paradigms</a></p>

	<p>Also by the same author, <a href="http://gnosis.cx/publish/programming/xml_matters_32.html">The Xom Java Xml Api</a> (which he calls a &#8220;A rigorously correct tree-oriented XML model&#8221;).</p>

	<p><a href="http://mercury.ccil.org/~cowan/XML/tagsoup/">TagSoup</a>, a SAX-compliant parser, for all that &#8216;wild&#8217; HTML written in Java. <ins datetime="2006-06-26T02:30:01+00:00">Similarly</ins> <a href="http://www.crummy.com/software/BeautifulSoup/">BeautifulSoup</a> written in Python.</p>

	<p><ins datetime="2006-06-18T05:32:01+00:00">From CUJ</ins>: <a href="http://www.xmlbooster.com/">Generating a custom XML parser</a> (that maps onto application specific data structures) would be cool.</p>


 ]]></content:encoded>
			<wfw:commentRss>http://findlay.net.nz/paul/2006/06/17/xml-see-also/feed</wfw:commentRss>
		</item>
		<item>
		<title>XML Apis</title>
		<link>http://findlay.net.nz/paul/2006/06/15/xml-apis</link>
		<comments>http://findlay.net.nz/paul/2006/06/15/xml-apis#comments</comments>
		<pubDate>Thu, 15 Jun 2006 07:48:46 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
		
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://findlay.net.nz/paul/2006/06/15/xml-apis</guid>
		<description><![CDATA[	(For future reference)

	StAX

	
		JSR 173: Streaming API for XML
		XML.com article on StAX
		(Another) Blog post by Elliotte Rusty Harold
		StAX and XML related blog
		Woodstox is a StAX-compliant (JSR-173) Java implentation
		Don&#8217;t forget the convenience layer for the above
	

	(Ok, so StAX is the reverse of SAX which makes it more like the normal parser/tokeniser behaviour, but SQLite goes the other [...]]]></description>
			<content:encoded><![CDATA[	<p>(For future reference)</p>

	<h4>StAX</h4>

	<ul>
		<li><a href="http://jcp.org/en/jsr/detail?id=173">JSR 173: Streaming API for XML</a></li>
		<li><a href="http://www.xml.com/lpt/a/2003/09/17/stax.html">XML.com article on StAX</a></li>
		<li><a href="http://cafe.elharo.com/java/stax/">(Another) Blog post by Elliotte Rusty Harold</a></li>
		<li><a href="http://www.cowtowncoder.com/blog/blog.html">StAX and XML related blog</a></li>
		<li><a href="http://woodstox.codehaus.org/">Woodstox is a StAX-compliant (JSR-173) Java implentation</a></li>
		<li><a href="http://woodstox.codehaus.org/StaxMate">Don&#8217;t forget the convenience layer for the above</a></li>
	</ul>

	<p>(Ok, so StAX is the reverse of SAX which makes it more like the normal parser/tokeniser behaviour, but SQLite goes the other way (like SAX) because the author is convinced it is better, and I&#8217;ve yet to experience any of these situations.)</p>

	<h4>A Conversation with Elliotte Rusty Harold</h4>

	<p>(About the experiences that led to <a href="http://www.xom.nu/">nu.xom</a>)</p>

	<ol>
		<li><a href="http://www.artima.com/intv/xmlapisP.html">What&#8217;s Wrong with XML APIs</a></li>
		<li><a href="http://www.artima.com/intv/domP.html">The Good, the Bad, and the DOM</a></li>
		<li><a href="http://www.artima.com/intv/jdomP.html">A Design Review of JDOM</a> (He worked on JDOM)</li>
		<li><a href="http://www.artima.com/intv/learnP.html">Lessons Learned from JDOM</a></li>
		<li><a href="http://www.artima.com/intv/xomdesignP.html">Design Principles and XOM</a> (Also see the <a href="http://www.xom.nu/designprinciples.xhtml">XOM Design Principles</a>)</li>
		<li><a href="http://www.artima.com/intv/airbagsP.html">Air Bags and Other Design Principles</a></li>
		<li><a href="http://www.artima.com/intv/desbyuseP.html">Designing by Dictatorship, Examples, and Tests</a></li>
		<li><a href="http://www.artima.com/intv/readxmlP.html">The Human Side of XML</a></li>
		<li><a href="http://www.artima.com/intv/schemaP.html">Organic Schemas and Outlier Data</a></li>
	</ol>

	<p><a href="http://www.linux-mag.com/index.php?option=com_content&#38;task=view&#38;id=1294&#38;Itemid=2050">Rogers Cadenhead on XOM</a> in Linux Magazine.</p>

	<h4>XML Pull parsing</h4>

	<p><a href="http://www.xml.com/lpt/a/2002/05/22/parsing.html">Pull Parsing in C# and Java</a></p>

	<h5><a href="http://www.xmlpull.org/">XMLPULL</a></h5>

	<ul>
		<li><a href="http://www.xml.com/lpt/a/2002/08/14/xmlpull.html" title="by Elliotte Rusty Harold">The XMLPULL API</a></li>
		<li><a href="http://www.bearcave.com/software/java/xml/xmlpull.html">Processing XML with the XML Pull Parser</a></li>
		<li><a href="http://www.bearcave.com/software/java/xml/treebuilder.html">Building an in-memory tree with the Xml Pull Parser</a></li>
	</ul>

	<p>(Even though &#8220;The API does not model XML correctly&#8221; &#8211; it preceded StAX.)</p>


 ]]></content:encoded>
			<wfw:commentRss>http://findlay.net.nz/paul/2006/06/15/xml-apis/feed</wfw:commentRss>
		</item>
		<item>
		<title>Hilarious</title>
		<link>http://findlay.net.nz/paul/2006/06/08/hilarious</link>
		<comments>http://findlay.net.nz/paul/2006/06/08/hilarious#comments</comments>
		<pubDate>Wed, 07 Jun 2006 15:09:46 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
		
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://findlay.net.nz/paul/2006/06/08/hilarious</guid>
		<description><![CDATA[// Preconditions: variable i in memory
// Post conditions: variable i incremented by one
// Method:
//1: fetch i from memory into register
//2: increase register value by 1
//3: write value of register into memory
i++;

	From Fred Emmott.

	Updated: This is interesting for two other reason, now I have the prefix operator (++i;) fixed in my head, and there is actually [...]]]></description>
			<content:encoded><![CDATA[<pre><code>// Preconditions: variable i in memory
// Post conditions: variable i incremented by one
// Method:
//1: fetch i from memory into register
//2: increase register value by 1
//3: write value of register into memory
i++;</code></pre>

	<p><a href="http://www.fredemmott.co.uk/blog_63">From Fred Emmott</a>.</p>

	<p><ins datetime="2006-06-11T14:30:50+00:00">Updated:</ins> This is interesting for two other reason, now I have the prefix operator (<code>++i;</code>) fixed in my head, and there is actually a need for such documentation: <a href="http://msdn2.microsoft.com/en-us/dd78zt0c.aspx">Interlocked.Increment Method</a> (.NET&#8217;s System.Threading namespace).</p>


 ]]></content:encoded>
			<wfw:commentRss>http://findlay.net.nz/paul/2006/06/08/hilarious/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
