<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Use it or lose it</title>
	<atom:link href="http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/</link>
	<description>Resources for librarians who are interested in the application of web design and technologies in libraries</description>
	<pubDate>Fri, 05 Dec 2008 07:08:50 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
		<item>
		<title>By: Joshua Gerrish</title>
		<link>http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-12309</link>
		<dc:creator>Joshua Gerrish</dc:creator>
		<pubDate>Wed, 30 Aug 2006 03:04:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-12309</guid>
		<description>Another vote for O'Reilly, their book &lt;a href="http://www.oreilly.com/catalog/learnxml/" rel="nofollow"&gt;Learning XML&lt;/a&gt; is awesome.  I keep a copy on my desk within easy reach.  It's got a good section on XPath and XSLT.

Another tip: create a simple stylesheet that you can use to test XPath queries on documents.  Some XML editors will even allow you to test arbitrary XPath expressions.

When you've gotten XPath down, and you really want to hurt your head, check out the &lt;a href="http://www.jenitennison.com/xslt/grouping/muenchian.html" rel="nofollow"&gt;Muenchian Method&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p>Another vote for O&#8217;Reilly, their book <a href="http://www.oreilly.com/catalog/learnxml/" rel="nofollow">Learning XML</a> is awesome.  I keep a copy on my desk within easy reach.  It&#8217;s got a good section on XPath and XSLT.</p>
<p>Another tip: create a simple stylesheet that you can use to test XPath queries on documents.  Some XML editors will even allow you to test arbitrary XPath expressions.</p>
<p>When you&#8217;ve gotten XPath down, and you really want to hurt your head, check out the <a href="http://www.jenitennison.com/xslt/grouping/muenchian.html" rel="nofollow">Muenchian Method</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jay Datema</title>
		<link>http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11562</link>
		<dc:creator>Jay Datema</dc:creator>
		<pubDate>Wed, 23 Aug 2006 01:58:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11562</guid>
		<description>Ah, so not just feeds.

The only thing I've seen that parses EAD nicely come in commercial systems like Ex Libris' Digitool.

All the RSS formats (9?) and EAD can be hairy, hairy beasts.

See also:
The Myth of RSS Compatibility
http://diveintomark.org/archives/2004/02/04/incompatible-rss</description>
		<content:encoded><![CDATA[<p>Ah, so not just feeds.</p>
<p>The only thing I&#8217;ve seen that parses EAD nicely come in commercial systems like Ex Libris&#8217; Digitool.</p>
<p>All the RSS formats (9?) and EAD can be hairy, hairy beasts.</p>
<p>See also:<br />
The Myth of RSS Compatibility<br />
<a href="http://diveintomark.org/archives/2004/02/04/incompatible-rss" rel="nofollow">http://diveintomark.org/archives/2004/02/04/incompatible-rss</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dchud</title>
		<link>http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11553</link>
		<dc:creator>dchud</dc:creator>
		<pubDate>Tue, 22 Aug 2006 23:43:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11553</guid>
		<description>Hey Karen - XSLT for handling feed type variants is a black hole you might best avoid.  The python-based "universal feed parser" is generally accepted as the best tool for dealing with all the variants.  Something you could do is set up a cronjob and a simple db of feeds you want to "normalize", and have a script run regularly to scrape all those random feeds into one standard format.  Then you can write one single XSLT handler for the format you prefer - or not even have to use XSLT at all.

Another option, should you want to pull all the disparate feeds into one big feed, is to set up a private "planet" of all your feeds, and then just pull the feed from the planet into your public page.  That would be even less work. :)

I don't know if either of these fits your needs, but maybe something will trigger a thought.  Anythng to avoid dealing with all this in XSLT alone! 

  -dc</description>
		<content:encoded><![CDATA[<p>Hey Karen - XSLT for handling feed type variants is a black hole you might best avoid.  The python-based &#8220;universal feed parser&#8221; is generally accepted as the best tool for dealing with all the variants.  Something you could do is set up a cronjob and a simple db of feeds you want to &#8220;normalize&#8221;, and have a script run regularly to scrape all those random feeds into one standard format.  Then you can write one single XSLT handler for the format you prefer - or not even have to use XSLT at all.</p>
<p>Another option, should you want to pull all the disparate feeds into one big feed, is to set up a private &#8220;planet&#8221; of all your feeds, and then just pull the feed from the planet into your public page.  That would be even less work. :)</p>
<p>I don&#8217;t know if either of these fits your needs, but maybe something will trigger a thought.  Anythng to avoid dealing with all this in XSLT alone! </p>
<p>  -dc</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon Gorman</title>
		<link>http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11551</link>
		<dc:creator>Jon Gorman</dc:creator>
		<pubDate>Tue, 22 Aug 2006 22:46:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11551</guid>
		<description>First, you have a good idea with studing XPath a bit before you do xslt, I had a heck of a time learning the two at once.  

The whole apply/call is also easier if you're used to a language like lisp.  It's easier to remember once you've really grasped the model that xslt uses in the background (at least it was for me).

First read up on the default template rules.  If you forget about the default templates you start thinking of apply-templates as being far more magical then they are.

Then remember that calling apply-templates is essentially saying, lets see what templates can match what we selected.  By default the children of the currently selected element are selected.  If you want to select something else, do so.

The templates match, but you can select certain nodes to apply the whole set of templates. 

Call-templates is much like a function call.  Instead of looking to see what templates match what nodes and executing the most specific match, you just say "execute this".  

These two things combined with modes can make xslt quite powerful for going through xml documents.  

(I've always thought that for mostly flat feeds XSLT is a little overkill, SAX seems better suited).

The naming of some of the attributes is annoying.  (As well as the preceeding/following language in XPath, always forget that)

(Trying to give helpful advice right after work may not be the best idea, hopefully this should clarify it  alittle more.  I've played around with XSLT quite a bit and enjoy it.)</description>
		<content:encoded><![CDATA[<p>First, you have a good idea with studing XPath a bit before you do xslt, I had a heck of a time learning the two at once.  </p>
<p>The whole apply/call is also easier if you&#8217;re used to a language like lisp.  It&#8217;s easier to remember once you&#8217;ve really grasped the model that xslt uses in the background (at least it was for me).</p>
<p>First read up on the default template rules.  If you forget about the default templates you start thinking of apply-templates as being far more magical then they are.</p>
<p>Then remember that calling apply-templates is essentially saying, lets see what templates can match what we selected.  By default the children of the currently selected element are selected.  If you want to select something else, do so.</p>
<p>The templates match, but you can select certain nodes to apply the whole set of templates. </p>
<p>Call-templates is much like a function call.  Instead of looking to see what templates match what nodes and executing the most specific match, you just say &#8220;execute this&#8221;.  </p>
<p>These two things combined with modes can make xslt quite powerful for going through xml documents.  </p>
<p>(I&#8217;ve always thought that for mostly flat feeds XSLT is a little overkill, SAX seems better suited).</p>
<p>The naming of some of the attributes is annoying.  (As well as the preceeding/following language in XPath, always forget that)</p>
<p>(Trying to give helpful advice right after work may not be the best idea, hopefully this should clarify it  alittle more.  I&#8217;ve played around with XSLT quite a bit and enjoy it.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karen</title>
		<link>http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11546</link>
		<dc:creator>Karen</dc:creator>
		<pubDate>Tue, 22 Aug 2006 21:12:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11546</guid>
		<description>The project is larger in scope than just getting feeds on the page. I'm working on an XML module for our content management system that will deal with EADs, feeds, and a couple other types of XML. I'm just stuck on dealing with the feeds right now.</description>
		<content:encoded><![CDATA[<p>The project is larger in scope than just getting feeds on the page. I&#8217;m working on an XML module for our content management system that will deal with EADs, feeds, and a couple other types of XML. I&#8217;m just stuck on dealing with the feeds right now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jay Datema</title>
		<link>http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11543</link>
		<dc:creator>Jay Datema</dc:creator>
		<pubDate>Tue, 22 Aug 2006 20:47:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11543</guid>
		<description>You may well have considered this already, but have you thought of using feed2js to include feeds on your page? Could save some painful XSLT moments.

http://library.cshl.edu/feed/build.php</description>
		<content:encoded><![CDATA[<p>You may well have considered this already, but have you thought of using feed2js to include feeds on your page? Could save some painful XSLT moments.</p>
<p><a href="http://library.cshl.edu/feed/build.php" rel="nofollow">http://library.cshl.edu/feed/build.php</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karen</title>
		<link>http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11527</link>
		<dc:creator>Karen</dc:creator>
		<pubDate>Tue, 22 Aug 2006 18:26:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11527</guid>
		<description>My goal is to have it check to see which type of feed is being processed before I apply any transformation whatsoever. If it can't tell what kind of feed it is, it won't process it and instead send an error message in the background to let my staff know there is a problem. As the specifications for feed change over time, this will hopefully enable us to update our stylesheets.</description>
		<content:encoded><![CDATA[<p>My goal is to have it check to see which type of feed is being processed before I apply any transformation whatsoever. If it can&#8217;t tell what kind of feed it is, it won&#8217;t process it and instead send an error message in the background to let my staff know there is a problem. As the specifications for feed change over time, this will hopefully enable us to update our stylesheets.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy Tennant</title>
		<link>http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11525</link>
		<dc:creator>Roy Tennant</dc:creator>
		<pubDate>Tue, 22 Aug 2006 17:44:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11525</guid>
		<description>I agree that the "push" vs. "pull" issue is key. The result of processing is dramatically different between those two, so picking the right processing model is essential. For example, if you decide to use "push" processing and therefore use , when you encounter a new element for which you have not provided a template, then it simply gets dumped onto the output tree. This means you could start seeing spurious data appearing if your input stream throws you a new element without you being prepared for it. There are of course other issues regarding this decision, but that's certainly one consideration.</description>
		<content:encoded><![CDATA[<p>I agree that the &#8220;push&#8221; vs. &#8220;pull&#8221; issue is key. The result of processing is dramatically different between those two, so picking the right processing model is essential. For example, if you decide to use &#8220;push&#8221; processing and therefore use , when you encounter a new element for which you have not provided a template, then it simply gets dumped onto the output tree. This means you could start seeing spurious data appearing if your input stream throws you a new element without you being prepared for it. There are of course other issues regarding this decision, but that&#8217;s certainly one consideration.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dorothea</title>
		<link>http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11494</link>
		<dc:creator>Dorothea</dc:creator>
		<pubDate>Tue, 22 Aug 2006 12:51:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11494</guid>
		<description>The O'Reilly XSLT Cookbook is your friend. It gets me through a lot of duh moments.

And if it helps, I have the same problems with XSLT that you do! I find that it helps to think of apply-templates as "do whatever else you're going to do" whereas call-template is "do this specific thing". Match versus select is just weird.</description>
		<content:encoded><![CDATA[<p>The O&#8217;Reilly XSLT Cookbook is your friend. It gets me through a lot of duh moments.</p>
<p>And if it helps, I have the same problems with XSLT that you do! I find that it helps to think of apply-templates as &#8220;do whatever else you&#8217;re going to do&#8221; whereas call-template is &#8220;do this specific thing&#8221;. Match versus select is just weird.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John</title>
		<link>http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11454</link>
		<dc:creator>John</dc:creator>
		<pubDate>Tue, 22 Aug 2006 06:06:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.librarywebchic.net/wordpress/2006/08/21/use-it-or-lose-it/#comment-11454</guid>
		<description>"Use it or lose it"... true, but not the whole story. Whenever I hear complaints like this, I am reminded of one of my most memorable math teachers in Berkeley. On the first day of class, he anounced:

"Two months after this semester is over, you will have forgotten 95% of what I will teach you in this class. So, why do I bother to teach you in the first place?"

Basically, his answer was that if we ever had to re-learn anything taught in the class, we would learn much faster the second time around. Something happens in the brain the first time that you learn something, neurological connections are made that are much easier to recall than to forge in the first place. Here is where the brain as a "hard drive" is a misleading metaphor ...

Also, the more techie things that you learn and forget, the easier it is to pick up new and related things because you acquire certain tendencies and habits of thought.

Of course, this doesn't fix your project right now, but it is not as bad as you suppose.

P.S. Very interesting blog. I'll have to pay more attention now that I am working in a library.</description>
		<content:encoded><![CDATA[<p>&#8220;Use it or lose it&#8221;&#8230; true, but not the whole story. Whenever I hear complaints like this, I am reminded of one of my most memorable math teachers in Berkeley. On the first day of class, he anounced:</p>
<p>&#8220;Two months after this semester is over, you will have forgotten 95% of what I will teach you in this class. So, why do I bother to teach you in the first place?&#8221;</p>
<p>Basically, his answer was that if we ever had to re-learn anything taught in the class, we would learn much faster the second time around. Something happens in the brain the first time that you learn something, neurological connections are made that are much easier to recall than to forge in the first place. Here is where the brain as a &#8220;hard drive&#8221; is a misleading metaphor &#8230;</p>
<p>Also, the more techie things that you learn and forget, the easier it is to pick up new and related things because you acquire certain tendencies and habits of thought.</p>
<p>Of course, this doesn&#8217;t fix your project right now, but it is not as bad as you suppose.</p>
<p>P.S. Very interesting blog. I&#8217;ll have to pay more attention now that I am working in a library.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
