<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/>
    <cloud domain="rpc.rsscloud.org" port="5337" path="/rsscloud/pleaseNotify" registerProcedure="" protocol="http-post" />
    <title>Parss Project</title>
    <link>http://weblogs.at/parss/</link>
    <description>Building a high-perfoming RSS aggregator</description>
    <language>en</language>
    <pubDate>Fri, 03 Sep 2010 03:57:43 GMT</pubDate>
    <dc:date>2010-09-03T03:57:43Z</dc:date>
    <dc:language>en</dc:language>
    <item>
      <title>Redirects cont'd</title>
      <link>http://weblogs.at/parss/stories/4605/</link>
      <description>OK, here's the deal: from now on Parss server will only update a feed's URL if there's a HTTP &lt;a href="http://p3k.org/viewcvs/parss/trunk/server/Feed/Feed.js?rev=399&amp;amp;r1=290&amp;amp;r2=399"&gt;301 response code&lt;/a&gt;.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Thus, a feed owner needs to deliberately setup a permanent redirect, it's not enough to do temporary one (which happens most of the time).&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Let's see how far we get with this solution (which is not very elegant, i admit).&amp;#10;&amp;#10;</description>
      <pubDate>Sun, 25 Jun 2006 17:57:26 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/4605/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2006-06-25T17:57:26Z</dc:date>
    </item>
    <item>
      <title>For redirect's sake...</title>
      <link>http://weblogs.at/parss/stories/4436/</link>
      <description>This automatic URL update thing is still a pain in the neck; obviously, taking over the new address from an HTTP redirection leads to unexpected and unwanted results.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Right now, there is a bunch of URLs in the parss.info database that come from a (pretty rigid) redirection policy at some blog hosters when they signalled maintenance time by diversing the requests to a single static HTML file.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Unfortunately, parss recorded the URL of that file as the new feed URL of all the hoster's weblog feeds.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Of course, this needs some fixing. If I only got the time...&amp;#10;&amp;#10;</description>
      <pubDate>Tue, 18 Apr 2006 17:31:07 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/4436/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2006-04-18T17:31:07Z</dc:date>
    </item>
    <item>
      <title>Recent activities</title>
      <link>http://weblogs.at/parss/stories/3954/</link>
      <description>I have added to parss server both, RSS feed autodetection as well as a HTTP redirect follower. Strange enough, it was kind of tricky but hopefully I found a reasonable solution.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Nevertheless, currently there are some troubles caused by the modified Xml-Rpc handling in helma. Hopefully, these issues will be fixed, soon...&amp;#10;&amp;#10;</description>
      <pubDate>Sat, 05 Nov 2005 18:41:58 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/3954/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2005-11-05T18:41:58Z</dc:date>
    </item>
    <item>
      <title>Short installation guide</title>
      <link>http://weblogs.at/parss/stories/2306/</link>
      <description>&lt;br /&gt;&lt;strong&gt;1. Setting up Helma&lt;/strong&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;You need a working Helma installation of version 1.4 or higher (latest snapshot necessary). Stop Helma if it is running before you continue.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Be sure you have the XML-RPC port set and enabled in the Helma start script (ie. hop.sh or hop.bat, resp.):&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;tt&gt;XMLRPC_PORT=8081&lt;/tt&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Add the following lines to apps.properties:&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;tt&gt;parss&lt;br /&gt;&amp;#10;parss.repository.0 = /path/to/parss/server/&lt;/tt&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Eventually, you need to enter an additional line for the mountpoint.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;tt&gt;parss.mountpoint = /helma/parss&lt;/tt&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;It's also possible that you need to set the smtp property to your mail server in server.properties.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;tt&gt;smtp = mail.server.dom&lt;/tt&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;strong&gt;2. Configuring Parss&lt;/strong&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;em&gt;Note:&lt;/em&gt; If you do not intend to run your own Parss server you can skip this step.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Extract the file parss.zip into the Helma apps directory.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Move the file AntvilleLib-1.4.zip into the Parss installation directory. (&lt;em&gt;Note:&lt;/em&gt; you don't need to unzip this file.)&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;In app.properties set baseURI to the correct URL of your Parss installation.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;tt&gt;baseURI = /helma/parss&lt;/tt&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Also set appropriate values for admin and email. The other options should be ok.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;tt&gt;admin = Your Name&lt;br /&gt;&amp;#10;email = you@server.dom&lt;/tt&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Add the necessary MySQL database and tables using the SQL-Dump in the &lt;tt&gt;database&lt;/tt&gt; directory. (Note: this can be done by stating a command like &lt;tt&gt; mysql -u root -p &amp;lt; db_support/parss_mysql.sql&lt;/tt&gt;.)&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;strong&gt;3. Adding ParssClient to Antville&lt;/strong&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;You need a working Antville installation of version 1.0 or higher.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Move the ParssClient-2.0.zip file into the Antville code directory. (&lt;em&gt;Note:&lt;/em&gt; You don't need to unzip these files.)&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Add the following line to Antville's app.properties:&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;tt&gt;parss.server = &lt;a href="http://localhost:8081" title="http://localhost:8081"&gt;localhost:8081&lt;/a&gt;&lt;/tt&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Eventually, replace the URL above by the correct URL for XML-RPC access of your Helma installation or the public Parss server you want to use, resp.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;em&gt;Note:&lt;/em&gt; If you did not set-up your own Parss server as described in the previous step you should enter the URL for XML-RPC access of one of the public .&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Add the additional Antville database tables using the appropriate dump file as downloaded before.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;For MySQL databases this can be done by stating a command like &lt;tt&gt;mysql -u root -p &amp;lt; parssclient_mysql.sql&lt;/tt&gt;.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;If you are using AntClick with the embedded McKoi database you need to open the query tool and copy&amp;amp;paste as well as commit the contents of the dump file manually:&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;tt&gt;cd /path/to/antclick&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;java -cp lib/ext/mckoidb.jar com.mckoi.tools.JDBCQueryTool -url jdbc:mckoi:local://./db.conf -u admin -p entwil&lt;/tt&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;strong&gt;4. Running Parss for the first time&lt;/strong &gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Start up Helma and point your browser to the appropriate Parss URL according to your settings in app.properties. (&lt;em&gt;Note:&lt;/em&gt; by default this would be &lt;a href="http://localhost:8080/parss." title="http://localhost:8080/parss."&gt;localhost:8080&lt;/a&gt;)&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;If you see the e-mail input field for requesting a Parss appkey everything went well so far.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Enter your e-mail address and hit the submit button. After that you should receive a message containing the appkey.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Confirm the appkey using the link in the message and add the appkey to Antville's app.properties:&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;tt&gt;parss.access = 1234567890abcdef...&lt;/tt&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Then restart Helma.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;strong&gt;5. Running Parss for the second time&lt;/strong&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Point your browser to the appropriate Antville URL (Note: by default this would be &lt;a href="http://localhost:8080/antville." title="http://localhost:8080/antville."&gt;localhost:8080&lt;/a&gt;) Create a new weblog and then add the path "feeds" to the new weblog's URL. (E.g. /antville/newblog/feeds.)&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;If you see the "manage feeds" link, you're done.&amp;#10;&amp;#10;</description>
      <pubDate>Tue, 17 Jun 2003 10:01:54 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/2306/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2003-06-17T10:01:54Z</dc:date>
    </item>
    <item>
      <title>To-do List</title>
      <link>http://weblogs.at/parss/stories/3486/</link>
      <description>&lt;ul&gt;&amp;#10;&lt;li&gt;[DONE] Catch 302 redirects and update a feed's url accordingly.&lt;/li&gt;&amp;#10;&lt;li&gt;[DONE] Switch from AntvilleLib's http library to helma.Http&lt;/li&gt;&amp;#10;&lt;li&gt;Toggle between clipped and full text in client?&lt;/li&gt;&amp;#10;&lt;li&gt;Provide im- and export options. (OPML?)&lt;/li&gt;&amp;#10;&lt;li&gt;Add link to XML source of a feed in client.&lt;/li&gt;&amp;#10;&lt;li&gt;Do not throw exception for too many XML-RPC update requests in the allowed time frame.&lt;/li&gt;&amp;#10;&lt;li&gt;[DONE] Catch exceptions when updating feeds&lt;/li&gt;&amp;#10;&lt;li&gt;[DONE] Fix bug caused by URLs like &lt;a href="http://sofa.antville.org" title="http://sofa.antville.org"&gt;sofa.antville.org&lt;/a&gt;&lt;/li&gt;&amp;#10;&lt;li&gt;[DONE] Detect HTTP timeout errors (&lt;a href="http://weblogs.at/parss/stories/2377/"&gt;as described&lt;/a&gt;)&lt;/li&gt;&amp;#10;&lt;li&gt;[WONTFIX] Check for &lt;a href="http://weblogs.at/parss/stories/2338/"&gt;future dates&lt;/a&gt; &lt;em&gt;to be fixed in parss client&lt;/em&gt;&lt;/li&gt;&amp;#10;&lt;li&gt;[DONE] Verify already &lt;a href="http://weblogs.at/parss/stories/2311/"&gt;known bugs&lt;/a&gt;&lt;/li&gt;&amp;#10;&lt;li&gt;[DONE] Update documentation&lt;/li&gt;&amp;#10;&lt;/ul&gt;&amp;#10;&amp;#10;</description>
      <pubDate>Sat, 19 Mar 2005 17:32:06 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/3486/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2005-03-19T17:32:06Z</dc:date>
    </item>
    <item>
      <title>Switched from AntvilleLib's to HelmaLib's HTTP library</title>
      <link>http://weblogs.at/parss/stories/3764/</link>
      <description>Because the &lt;a href="http://adele.helma.org/source/viewcvs.cgi/helmaLib/Global/helma.Http.js"&gt;helma.Http library&lt;/a&gt; allows setting the socket and request timeout values I decided to stop using &lt;a href="http://adele.helma.org/source/viewcvs.cgi/antvilleLib/Global/Http.js"&gt;AntvilleLib's http library&lt;/a&gt; and hopefully boost the scheduled retrieval of remote feed data. So far it's looking very promising.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;A minor change in app.properties is necessary if you are connecting via a proxy: replace all &lt;code&gt;proxy.dot&lt;/code&gt; settings with one single line containing your proxy host and port:&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;code&gt;proxy = proxy.host.dom:3128&lt;/code&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;(to disable the proxy simply comment it out, no need for setting &lt;code&gt;proxy.enabled = false&lt;/code&gt;, anymore.)&amp;#10;&amp;#10;</description>
      <pubDate>Wed, 03 Aug 2005 20:38:46 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/3764/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2005-08-03T20:38:46Z</dc:date>
    </item>
    <item>
      <title>Clock out of sync</title>
      <link>http://weblogs.at/parss/stories/3632/</link>
      <description>Oy, my own parss server was out of sync with atomic time due to changed servers and inappropriate firewall rules... That caused quite some inaccurate updates e.g. at Antville.org. &lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;I reconfigured the firewall settings and hope that the updates come in more reliably from now on. Fingers crossed!&amp;#10;&amp;#10;</description>
      <pubDate>Sat, 11 Jun 2005 12:11:51 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/3632/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2005-06-11T12:11:51Z</dc:date>
    </item>
    <item>
      <title>Recent Changes</title>
      <link>http://weblogs.at/parss/stories/3517/</link>
      <description>The revamping of the Parss server is completed (well, there will be always some changes but hopefully only in detail): I've added the most important information to use the service, a short API documentation and certainly a link to this weblog.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Furthermore, thanks to the very nice support of &lt;a href="http://life.winter.cd/"&gt;the nighthawk&lt;/a&gt; I was able to remove a redundant HTTP HEAD request, a relic from the pre-Rome version.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;The future date issue was almost fixed in the client when we observed that it's not very nice to have less than 10 items on a page just because a few have a future (and actually wrong) date. Thus, I enabled the server to not return such items until they are "in time".&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;The downside of this is certainly that the client is missing items which are actually online and published. Because I've learnt my lessons pretty well ("never fix other people's bugs") I guess we'll have to live with that until somebody is correcting the dates in such a feed.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;(Which reminds me again of the question whether &lt;a href="http://wiki.java.net/bin/view/Javawsxml/RomeFeatureRequests"&gt;RSS is becoming the new HTML&lt;/a&gt; and strict parsers and validators are really &lt;a href="http://diveintomark.org/projects/feed_parser/"&gt;an adequate approach&lt;/a&gt;.)&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;What's still missing are up-to-date README and INSTALL files and then, fingers crossed, I think I will release Parss 2.0.&amp;#10;&amp;#10;</description>
      <pubDate>Thu, 07 Apr 2005 19:33:00 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/3517/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2005-04-07T19:33:00Z</dc:date>
    </item>
    <item>
      <title>Revamping the Layout</title>
      <link>http://weblogs.at/parss/stories/3501/</link>
      <description>&lt;a href="http://weblogs.at/static/antville/parss/images/screenshit.gif"&gt;&lt;img height="75" width="100" src="http://weblogs.at/static/antville/parss/images/screenshit_small.gif" border="0" /&gt;&lt;/a&gt;&amp;#10;&amp;#10;</description>
      <pubDate>Thu, 31 Mar 2005 18:46:04 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/3501/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2005-03-31T18:46:04Z</dc:date>
    </item>
    <item>
      <title>Known Bugs</title>
      <link>http://weblogs.at/parss/stories/2311/</link>
      <description>&lt;ul&gt;&lt;li&gt;[DONE] Parss is missing an elaborate interface...&lt;/li&gt;&amp;#10;&lt;li&gt;[DONE] Parss &lt;em&gt;sometimes&lt;/em&gt; gets totally confused if a client requests a feed via an ID that's not stored in the Parss database.&lt;/li&gt;&amp;#10;&lt;li&gt;[DONE] Parss cannot handle some feeds. While &lt;em&gt;most of the time&lt;/em&gt; this is by purpose (e.g. feeds w/o item URLs), some simply cause fatal errors I yet have to track down (e.g. the &lt;a href="http://theregister.co.uk/feeds/latest.rdf"&gt;Register feed&lt;/a&gt;).&lt;br /&gt;&amp;#10;&lt;em&gt;Register's feed can be handled now.&lt;/em&gt;&lt;/li&gt;&amp;#10;&lt;li&gt;[DONE] Parss client does not strip some mark-up (e.g. &lt;a href="http://doc.weblogs.com/xml/rss.xml "&gt;Doc Searl's (outdated) Feed&lt;/a&gt;).&lt;/li&gt;&amp;#10;&lt;li&gt;[DONE] Parss cannot handle HTTP redirects? (e.g. &lt;a href="http://www.crn.com/weblogs/stevegillmor/rss.xml"&gt;Steve Gillmor's feed&lt;/a&gt;). &lt;em&gt;However, the Gillmor feed got some other problems.&lt;/em&gt;&lt;/li&gt;&amp;#10;&lt;li&gt;[DONE] Parss gets knocked off his feet if a feed cannot be fetched due to network problems (currently the case with &lt;a href="http://www.hyperorg.com/blogger/index.rdf"&gt;David Weinberger's feed&lt;/a&gt;) &amp;#150; a  is just around the corner.&lt;/li&gt;&amp;#10;&lt;li&gt;[WONTFIX] Items with dates lying in the future should not be displayed before . &lt;em&gt;To be fixed in parss client.&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&amp;#10;&amp;#10;</description>
      <pubDate>Wed, 18 Jun 2003 10:28:11 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/2311/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2003-06-18T10:28:11Z</dc:date>
    </item>
    <item>
      <title>Status Quo</title>
      <link>http://weblogs.at/parss/stories/3488/</link>
      <description>Parss is in development state again. Yay!&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;I switched over from self-knitted XML-parsing to &lt;a href="https://rome.dev.java.net/"&gt;Rome&lt;/a&gt;.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Rome is a wonderful effort to unify the different RSS and syndication formats out in &lt;em&gt;Teh Internet&lt;/em&gt; to one simple structure.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Since Rome is written in Java it is perfect for using it with Helma and her applications.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;So far both, Parss server and Antville client are up and running again. However, there are some things to be done before the next release. And as usual time is scarce.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;I am glad and thankful about my current supporter Gerrit who does a lot of testing and keeps me informed of the flaws. I hope he will keep on encouraging me to bring out the best of Parss &amp;#150; and bring it out, soon...&amp;#10;&amp;#10;</description>
      <pubDate>Sat, 19 Mar 2005 18:01:36 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/3488/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2005-03-19T18:01:36Z</dc:date>
    </item>
    <item>
      <title>FAQ</title>
      <link>http://weblogs.at/parss/stories/2315/</link>
      <description>&lt;br /&gt;&lt;strong&gt;What exactly is Parss?&lt;/strong &gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Parss is the result of the effort to create a high-performing RSS reader and aggregator for &lt;a href="http://project.antville.org"&gt;Antville&lt;/a&gt;.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;The general idea behind Parss is to solve the problem of countless individual (desktop) RSS viewers randomly and redundantly transferring almost exactly the same set of RSS feeds across the network.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Parss acts like a semi-central server (certainly, there is no such thing like central web services) that takes care about retrieving updated feeds and provides these as preprocessed data.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Furthermore, Parss offers a generic interface to use its capabilities in other applications. Integration is achieved by a simple .&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Another feature of Parss to reduce the transfer rates of RSS feeds is implemented by a ping function just like the one known from &lt;a href="http://weblogs.com"&gt;weblogs.com&lt;/a&gt;. If Parss receives a ping by a website it adds the site's feed URL to its request queue and retrieves and processes the updated feed.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;If this ping will be applied by weblog software (like Antville) the randomness and fuzziness of Parss's update checks will be dramatically decreased.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;strong&gt;Which feeds can Parss process?&lt;/strong&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Parss is able to process any RSS feed that also can be processed by &lt;a href="https://rome.dev.java.net/"&gt;Rome&lt;/a&gt;. Ie. currently versions 0.92 up to 2.0, including RDF 1.0 and Atom 0.3.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;It does not process feeds which are corrupt or not conforming to the specs. Furthermore, feeds w/o item URLs are ignored, too.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;strong&gt;How does Parss work?&lt;/strong&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Currently, there are three different ways of Parss checking a feed for an update:&amp;#10;&lt;ol&gt;&amp;#10;&lt;li&gt;By getting ping'ed from the feed's site / maintainter (most desirable)&lt;/li&gt;&amp;#10;&lt;li&gt;Periodically, by retrieving the HTTP header and evaluating the eTag (acceptable)&lt;/li&gt;&amp;#10;&lt;li&gt;Periodically, by retrieving the whole feed (deprecated)&lt;/li&gt;&amp;#10;&lt;/ol&gt;&amp;#10;&amp;#10;&lt;strong&gt;How does interaction with Parss work?&lt;/strong&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;The overall principle of Parss working as RSS server could be outlined like this (ie. the way the ParssClient for Antville currently works):&amp;#10;&lt;ol&gt;&amp;#10;&lt;li&gt;The client requests Parss to add a feed by its URL. If the feed is already in the Parss database its ID will be returned, immediately. If not, the feed will be retrieved, processed and added. After that, the whole data of the added feed will be returned.&lt;/li&gt;&amp;#10;&lt;li&gt;IDs and data of the feeds have to be cached locally by the client (database or memory).&lt;/li&gt;&amp;#10;&lt;li&gt;Periodically, the client requests a list of feeds that have been updated since the last request for this very list. Parss returns the list containing the feed's IDs only.&lt;/li&gt;&amp;#10;&lt;li&gt;The client removes or reloads any feed data from cache having an ID that is contained in the list.&lt;/li&gt;&amp;#10;&lt;li&gt;If the feed is requested again, it all starts from the beginning.&lt;/li&gt;&amp;#10;&lt;/ol&gt;&amp;#10;&amp;#10;Subscriptions are handled a bit differently. Here, the feed IDs are stored persistently in the client's local database.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;If a subscribed feed is requested the client first tries to retrieve the corresponding data from the local cache or database. Only if the feed was already purged from cache the client requests it from Parss by its ID again.&amp;#10;&amp;#10;</description>
      <pubDate>Thu, 19 Jun 2003 11:25:19 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/2315/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2003-06-19T11:25:19Z</dc:date>
    </item>
    <item>
      <title>Download</title>
      <link>http://weblogs.at/parss/stories/2305/</link>
      <description>Currently, there is nothing to download which will work with the up-to-date version of Helma object publisher.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;However, development is in process and I hope a fresh Parss package will be available in Spring 2005. But don't take my word for it. &lt;!-- You can use the following packages / files to try out / take a look at Parss:&amp;#10;&amp;#10;(Please be sure to acknowledge the individual software licenses of the packages.)&amp;#10;&lt;ul&gt;&amp;#10;&lt;li&gt;&lt;a href="http://weblogs.at/parss/files/parssclient_rhino/" title="Zip module to enable Parss functionality in Antville using Helma 1.3 or greater"&gt;parssclient_rhino&lt;/a&gt; &amp;#10;&lt;span class="small"&gt;&amp;#10;   (application/x-zip-compressed, 21 KB)&amp;#10;&lt;/span&gt;&amp;#10;&lt;/li&gt;&amp;#10;&lt;li&gt;&lt;a href="http://weblogs.at/parss/files/antvillelib_rhino/" title="A handy script library for Helma applications (version 1.3)"&gt;antvillelib_rhino&lt;/a&gt; &amp;#10;&lt;span class="small"&gt;&amp;#10;   (application/x-zip-compressed, 14 KB)&amp;#10;&lt;/span&gt;&amp;#10;&lt;/li&gt;&amp;#10;&lt;li&gt;&lt;a href="http://cvs.p3k.org/viewcvs.cgi/*checkout*/parssclient/db_support/parssclient_mysql.sql?rev=1.2"&gt;ParssClient MySQL dump&lt;/a&gt; or &lt;br /&gt;&amp;#10;&lt;a href="http://cvs.p3k.org/viewcvs.cgi/*checkout*/parssclient/db_support/parssclient_mckoi.sql?rev=1.2"&gt;ParssClient McKoi dump&lt;/a&gt;&lt;/li&gt;&amp;#10;&lt;li&gt;&lt;a href="http://weblogs.at/parss/files/parss/" title="A high-performing RSS reader and aggregator for Helma Object Publisher"&gt;parss&lt;/a&gt; &amp;#10;&lt;span class="small"&gt;&amp;#10;   (application/zip, 26 KB)&amp;#10;&lt;/span&gt;&amp;#10;&lt;/li&gt;&amp;#10;&lt;/ul&gt;&amp;#10;&lt;em&gt;Note:&lt;/em&gt; If you don't want to run a Parss server yourself, you can omit downloading the last file and use one of the public  instead.&amp;#10;&amp;#10;While Parss server still needs Helma 1.2 to work properly, ParssClient only works as Antville module in combination with Helma 1.3 or later. This means you don't need to extract the zip file but instead move it as is into the Antville application directory.&amp;#10;&amp;#10;Furthermore, both, Parss and ParssClient, need the Antville Script Library. Here too, the zip file does not need to be extracted but simply copied into the application directories of Parss and Antville.&amp;#10;&amp;#10;For further information please refer to the .--&gt;&amp;#10;&amp;#10;</description>
      <pubDate>Tue, 17 Jun 2003 09:20:33 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/2305/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2003-06-17T09:20:33Z</dc:date>
    </item>
    <item>
      <title>CVS</title>
      <link>http://weblogs.at/parss/stories/2320/</link>
      <description>The &lt;a href="http://cvs.p3k.org"&gt;CVS repository&lt;/a&gt; is configured for anonymous read-only check-out via SSH.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Therefor, you need the &lt;a href="http://weblogs.at/parss/files/cvs.p3k.org/" title="A simple shell script with access key for anonymous CVS access."&gt;cvs.p3k.org&lt;/a&gt; &amp;#10;&lt;span class="small"&gt;&amp;#10;   (application/octet-stream, 1 KB)&amp;#10;&lt;/span&gt;&amp;#10; file on your machine. Allow its execution and set the CVS_RSH variable to its location:&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;tt&gt;chmod 700 cvs.p3k.org&lt;br /&gt;&amp;#10;export CVS_RSH=/path/to/cvs.p3k.org&lt;/tt&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;If you are familiar with CVS you can retrieve the latest code by using a command like&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;tt&gt;cvs -d :ext:anoncvs@cvs.p3k.org:/home/cvs co parssclient&lt;/tt&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;i&gt;Note:&lt;/i&gt; The Antville Script Library is located at the &lt;a href="http://adele.helma.org/source/cvsweb.cgi/antvilleLib/"&gt;Helma CVS Repository&lt;/a&gt;.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;If CVS is just another TLA for you I recommend to take a look at the  section.&amp;#10;&amp;#10;</description>
      <pubDate>Thu, 19 Jun 2003 22:24:45 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/2320/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2003-06-19T22:24:45Z</dc:date>
    </item>
    <item>
      <title>Re-enabled anonymous acccess to CVS</title>
      <link>http://weblogs.at/parss/stories/3485/</link>
      <description>Since the development process of parss has gained some momentum again (phew, after &lt;em&gt;years&lt;/em&gt;!) I finally found a solution to provide anonymous CVS access without the ever unsecure pserver.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Just download the &lt;a href="http://weblogs.at/parss/files/cvs.p3k.org/" title="A simple shell script with access key for anonymous CVS access."&gt;cvs.p3k.org&lt;/a&gt; &amp;#10;&lt;span class="small"&gt;&amp;#10;   (application/octet-stream, 1 KB)&amp;#10;&lt;/span&gt;&amp;#10; file and put it wherever you want on the machine you are supposed to checkout the parss CVS files to.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Give it execute permissions if you're working under UNIX, e.g. using &lt;tt&gt;chmod 700 cvs.p3k.org&lt;/tt&gt;.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Then assign it to the variable CVS_RSH (either by stating &lt;tt&gt;export CVS_RSH=/root/cvs.p3k.org&lt;/tt&gt; it or by setting it in the corresponding preferences) and then use the following command to get through:&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;tt&gt;cvs -d :ext:anoncvs@cvs.p3k.org:/home/cvs co parss&lt;/tt&gt;&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;This should checkout the parss server files to your local sandbox. I tried it and it works but let me know if you experience difficulties.&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;Kudos go out to Joey Hess for providing &lt;a href="http://www.neuron.yale.edu/neuron/sshcvs.html"&gt;the original idea and script&lt;/a&gt;.&amp;#10;&amp;#10;</description>
      <pubDate>Sat, 19 Mar 2005 14:25:08 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/3485/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2005-03-19T14:25:08Z</dc:date>
    </item>
    <item>
      <title>ParssClient for Helma 1.3</title>
      <link>http://weblogs.at/parss/stories/2561/</link>
      <description>I just checked in a (hopefully) working version of the Antville ParssClient running with Helma 1.3 (Rhino).&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;&lt;i&gt;Update:&lt;/i&gt; The &lt;a href="http://weblogs.at/parss/stories/2305/"&gt;download section&lt;/a&gt; is up-to-date again with the latest packages of ParssClient and AntvilleLib.&amp;#10;&amp;#10;</description>
      <pubDate>Sun, 12 Oct 2003 22:06:23 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/2561/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2003-10-12T22:06:23Z</dc:date>
    </item>
    <item>
      <title>Possible solution for network time-outs</title>
      <link>http://weblogs.at/parss/stories/2377/</link>
      <description>Network time-outs cannot be caught because the exception occurs in the transaction layer. (ie. the scheduler throws the exception but the next time the very same URL will probably cause the very same network problem again.)&lt;br /&gt;&amp;#10;&lt;br /&gt;&amp;#10;However, if a global variable (e.g. app.data.processing) is set to the ID of the feed that is currently being requested and reset to null not before the URL could be retrieved this variable can be checked against null at the beginning of the next schedule. If it contains a value the current feed as stored in app.data.feedcnt must be increased by 1 (just as the feed's error counter, btw.) and the problem at least should be circumvented.&amp;#10;&amp;#10;</description>
      <pubDate>Tue, 15 Jul 2003 09:32:55 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/2377/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2003-07-15T09:32:55Z</dc:date>
    </item>
    <item>
      <title>Idea how to solve "future date" problem</title>
      <link>http://weblogs.at/parss/stories/2338/</link>
      <description>Simple and elegant: if the date is in the future the item won't be displayed until it is in the past.&amp;#10;&amp;#10;</description>
      <pubDate>Thu, 26 Jun 2003 13:51:01 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/2338/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2003-06-26T13:51:01Z</dc:date>
    </item>
    <item>
      <title>Parss XML-RPC interface</title>
      <link>http://weblogs.at/parss/stories/2314/</link>
      <description>The following functions are available via XML-RPC:&amp;#10;&lt;ul&gt;&amp;#10;&lt;li&gt;ping (URL)&lt;/li&gt;&amp;#10;&lt;li&gt;getFeedID (URL)&lt;/li&gt;&amp;#10;&lt;li&gt;getFeed (appkey, ID)&lt;/li&gt;&amp;#10;&lt;li&gt;getUpdateList (appkey, datetime)&lt;/li&gt;&amp;#10;&lt;li&gt;addFeed (appkey, URL)&lt;/li&gt;&amp;#10;&lt;li&gt;rateFeed (appkey, id, vote)&lt;/li&gt;&amp;#10;&lt;/ul&gt;&amp;#10;Documentation is yet to come. In the meantime the &lt;a href="http://cvs.p3k.org"&gt;CVS repository&lt;/a&gt; might give some more information about the methods.&amp;#10;&amp;#10;</description>
      <pubDate>Thu, 19 Jun 2003 11:04:42 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/2314/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2003-06-19T11:04:42Z</dc:date>
    </item>
    <item>
      <title>Parss servers</title>
      <link>http://weblogs.at/parss/stories/2313/</link>
      <description>&lt;!--&amp;#10;Currently, there is only one known Parss server running at&amp;#10;&lt;ul&gt;&amp;#10;&lt;li&gt;&lt;a title="" href="http://adele.helma.org/parss/"&gt;http://adele.helma.org/parss/&lt;/a&gt;&amp;#10;(XML-RPC port 5056)&lt;/li&gt;&amp;#10;&lt;/ul&gt; &amp;#10;--&gt;Feel free to drop a comment if you should be running your own Parss server and want to let the people know the URL and XML-RPC port.&amp;#10;&amp;#10;</description>
      <pubDate>Thu, 19 Jun 2003 10:49:35 GMT</pubDate>
      <guid>http://weblogs.at/parss/stories/2313/</guid>
      <dc:creator>p3k</dc:creator>
      <dc:date>2003-06-19T10:49:35Z</dc:date>
    </item>
  </channel>
</rss>

