{
  "attachments": [],
  "comments_archived": true,
  "date": "2005-10-05T20:58:21.000Z",
  "layout": "post",
  "tags": [
    "webdev",
    "rss",
    "syndication",
    "atom",
    "projects",
    "aggregation",
    "feedspool"
  ],
  "title": "FeedSpool is progressing nicely",
  "wordpress_id": 717,
  "wordpress_slug": "feedspool-is-progressing-nicely",
  "wordpress_url": "http://decafbad.com/blog/?p=717",
  "year": "2005",
  "month": "10",
  "day": "05",
  "isDir": true,
  "slug": "feedspool-is-progressing-nicely",
  "type": "entry",
  "postName": "2005-10-05-feedspool-is-progressing-nicely",
  "html": "<p>I'm at it again:  Last night, I got an initial stab at a <a href=\"http://decafbad.com/trac/wiki/FeedSpool/Plugins\">plugin API</a> for <a href=\"http://decafbad.com/trac/wiki/FeedSpool\">FeedSpool</a> working.</p>\n<p>The first thing I built was an <a href=\"http://decafbad.com/trac/browser/trunk/feedspool/plugins/poll_schedule_vary.py\">auto-adjusting feed poll schedule plugin</a> which varies the time between feed polls based on whether there were new entries found in the latest poll.  It's kind of like an AIMD algorithm used in networking—I thank <a href=\"http://decafbad.com/blog/2003/09/29/dynamic-polling-freq-too#comment-1061\">Gnomon</a> for the idea a few years back.</p>\n<p>The next thing I built was a <a href=\"http://decafbad.com/trac/browser/trunk/feedspool/plugins/miniagg/\">quick plugin bundle I call <code>miniagg</code></a>.  If you'd like a preview, I've posted <a href=\"http://decafbad.com/2005/10/miniagg/news-20051005-152956.html\">an HTML snapshot of what <code>miniagg</code> produces</a>.  It's a refinement and reworking of various aggregator UI pieces I've had floating around since <a href=\"http://decafbad.com/trac/wiki/AmphetaOutlines\">AmphetaOutlines</a>, only I think this is the simplest and cleanest I've gotten it yet.  (CSS and unobtrusive JavaScript, hooray!)</p>\n<p>This only seems to work on Firefox and Safari—it's currently broken for MSIE, and I don't care enough to fix it yet.  (Something to do with multiple CSS classes, I believe.)  But, if you're unfortunate enough to be using that browser, here's a screen capture:  </p>\n<p><a href=\"http://www.decafbad.com/blog_attachments/miniagg-1.jpg\" onclick=\"window.open('http://www.decafbad.com/blog_attachments/miniagg-1.jpg','popup','width=984,height=742,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false\"><img src=\"http://www.decafbad.com/blog_attachments/miniagg-1-tm.jpg\" height=\"\" width=\"\" border=\"1\" hspace=\"4\" vspace=\"4\" alt=\"Miniagg-1\"></a></p>\n<div id=\"comments\" class=\"comments archived-comments\"><h3>Archived Comments</h3>\n<ul class=\"comments\">\n<li class=\"comment\" id=\"comment-221085179\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://thecrypto.org\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=55fe39199c1dbe9e342e527d0173c57f&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://thecrypto.org\">Julian Krause</a>\n</div>\n\n\n<p><a href=\"#comment-221085179\" class=\"permalink\"><time datetime=\"2005-10-05T22:12:31\">2005-10-05T22:12:31</time></a></p>\n</div>\n\n\n<div class=\"content\"><p>I've been using a program called <a href=\"http://offog.org/code/rawdog.html\" rel=\"nofollow\">Rawdog</a> for a while as my feed reader. Miniagg looks very similar to it. I've been looking for a replacement as he is not planning to support Atom 1.0 since <a href=\"http://feedparser.org\" rel=\"nofollow\">feedparser</a> has gone unmaintained. The HTML preview looks really good, I'm importing my subscriptions right now ;)</p></div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221085180\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://www.decafbad.com\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://www.decafbad.com\">l.m.orchard</a>\n</div>\n\n\n<p><a href=\"#comment-221085180\" class=\"permalink\"><time datetime=\"2005-10-05T23:25:03\">2005-10-05T23:25:03</time></a></p>\n</div>\n\n\n<div class=\"content\"><p>Alas, this miniagg uses feedparser also.  However, I was thinking of patching / finding someone who'd patched feedparser for Atom 1.0—or replacing it with a new, maybe less liberal parser of my own, since FeedSpool is actually not all that liberal (in that it requires valid XML, anyway).</p></div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221085182\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://plasmasturm.org/\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=e17949267bbfe21a0fadf1bbf00592b4&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://plasmasturm.org/\">Aristotle Pagaltzis</a>\n</div>\n\n\n<p><a href=\"#comment-221085182\" class=\"permalink\"><time datetime=\"2005-10-06T08:48:52\">2005-10-06T08:48:52</time></a></p>\n</div>\n\n\n<div class=\"content\"><p><a href=\"http://fucoder.com/2005/08/feedparser-atom-10-patch/\" rel=\"nofollow\">FeedParser Atom 1.0 support patch</a>.</p></div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221085183\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=9e44fa55e7078bff7c3dab8404913928&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">Dan V.</a>\n</div>\n\n\n<p><a href=\"#comment-221085183\" class=\"permalink\"><time datetime=\"2005-10-26T19:16:09\">2005-10-26T19:16:09</time></a></p>\n</div>\n\n\n<div class=\"content\"><p>The feedparser page says that a prerelease v4.0 can be downloaded that includes support for Atom 1.0 feeds.  Beats writing your own :)</p></div>\n\n\n</li>\n</ul>\n\n\n</div>\n\n\n",
  "body": "I'm at it again:  Last night, I got an initial stab at a [plugin API][api] for [FeedSpool][fs] working.\r\n\r\nThe first thing I built was an [auto-adjusting feed poll schedule plugin][vary] which varies the time between feed polls based on whether there were new entries found in the latest poll.  It's kind of like an AIMD algorithm used in networking—I thank [Gnomon][g] for the idea a few years back.\r\n\r\nThe next thing I built was a [quick plugin bundle I call `miniagg`][mini].  If you'd like a preview, I've posted [an HTML snapshot of what `miniagg` produces][mini_preview].  It's a refinement and reworking of various aggregator UI pieces I've had floating around since [AmphetaOutlines][amph], only I think this is the simplest and cleanest I've gotten it yet.  (CSS and unobtrusive JavaScript, hooray!)\r\n\r\nThis only seems to work on Firefox and Safari—it's currently broken for MSIE, and I don't care enough to fix it yet.  (Something to do with multiple CSS classes, I believe.)  But, if you're unfortunate enough to be using that browser, here's a screen capture:  \r\n\r\n<a href=\"http://www.decafbad.com/blog_attachments/miniagg-1.jpg\" onclick=\"window.open('http://www.decafbad.com/blog_attachments/miniagg-1.jpg','popup','width=984,height=742,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false\"><img src=\"http://www.decafbad.com/blog_attachments/miniagg-1-tm.jpg\" height=\"244\" width=\"324\" border=\"1\" hspace=\"4\" vspace=\"4\" alt=\"Miniagg-1\" /></a>\r\n\r\n[g]: http://decafbad.com/blog/2003/09/29/dynamic-polling-freq-too#comment-1061\r\n[amph]: http://decafbad.com/trac/wiki/AmphetaOutlines\r\n[vary]: http://decafbad.com/trac/browser/trunk/feedspool/plugins/poll_schedule_vary.py\r\n[api]: http://decafbad.com/trac/wiki/FeedSpool/Plugins\r\n[fs]: http://decafbad.com/trac/wiki/FeedSpool\r\n[mini]: http://decafbad.com/trac/browser/trunk/feedspool/plugins/miniagg/\r\n[mini_preview]: http://decafbad.com/2005/10/miniagg/news-20051005-152956.html\n\n<div id=\"comments\" class=\"comments archived-comments\">\n            <h3>Archived Comments</h3>\n            \n        <ul class=\"comments\">\n            \n        <li class=\"comment\" id=\"comment-221085179\">\n            <div class=\"meta\">\n                <div class=\"author\">\n                    <a class=\"avatar image\" rel=\"nofollow\" \n                       href=\"http://thecrypto.org\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=55fe39199c1dbe9e342e527d0173c57f&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\n                    <a class=\"avatar name\" rel=\"nofollow\" \n                       href=\"http://thecrypto.org\">Julian Krause</a>\n                </div>\n                <a href=\"#comment-221085179\" class=\"permalink\"><time datetime=\"2005-10-05T22:12:31\">2005-10-05T22:12:31</time></a>\n            </div>\n            <div class=\"content\"><p>I've been using a program called <a href=\"http://offog.org/code/rawdog.html\" rel=\"nofollow\">Rawdog</a> for a while as my feed reader. Miniagg looks very similar to it. I've been looking for a replacement as he is not planning to support Atom 1.0 since <a href=\"http://feedparser.org\" rel=\"nofollow\">feedparser</a> has gone unmaintained. The HTML preview looks really good, I'm importing my subscriptions right now ;)</p></div>\n            \n        </li>\n    \n        <li class=\"comment\" id=\"comment-221085180\">\n            <div class=\"meta\">\n                <div class=\"author\">\n                    <a class=\"avatar image\" rel=\"nofollow\" \n                       href=\"http://www.decafbad.com\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\n                    <a class=\"avatar name\" rel=\"nofollow\" \n                       href=\"http://www.decafbad.com\">l.m.orchard</a>\n                </div>\n                <a href=\"#comment-221085180\" class=\"permalink\"><time datetime=\"2005-10-05T23:25:03\">2005-10-05T23:25:03</time></a>\n            </div>\n            <div class=\"content\"><p>Alas, this miniagg uses feedparser also.  However, I was thinking of patching / finding someone who'd patched feedparser for Atom 1.0—or replacing it with a new, maybe less liberal parser of my own, since FeedSpool is actually not all that liberal (in that it requires valid XML, anyway).</p></div>\n            \n        </li>\n    \n        <li class=\"comment\" id=\"comment-221085182\">\n            <div class=\"meta\">\n                <div class=\"author\">\n                    <a class=\"avatar image\" rel=\"nofollow\" \n                       href=\"http://plasmasturm.org/\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=e17949267bbfe21a0fadf1bbf00592b4&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\n                    <a class=\"avatar name\" rel=\"nofollow\" \n                       href=\"http://plasmasturm.org/\">Aristotle Pagaltzis</a>\n                </div>\n                <a href=\"#comment-221085182\" class=\"permalink\"><time datetime=\"2005-10-06T08:48:52\">2005-10-06T08:48:52</time></a>\n            </div>\n            <div class=\"content\"><p><a href=\"http://fucoder.com/2005/08/feedparser-atom-10-patch/\" rel=\"nofollow\">FeedParser Atom 1.0 support patch</a>.</p></div>\n            \n        </li>\n    \n        <li class=\"comment\" id=\"comment-221085183\">\n            <div class=\"meta\">\n                <div class=\"author\">\n                    <a class=\"avatar image\" rel=\"nofollow\" \n                       href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=9e44fa55e7078bff7c3dab8404913928&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\n                    <a class=\"avatar name\" rel=\"nofollow\" \n                       href=\"\">Dan V.</a>\n                </div>\n                <a href=\"#comment-221085183\" class=\"permalink\"><time datetime=\"2005-10-26T19:16:09\">2005-10-26T19:16:09</time></a>\n            </div>\n            <div class=\"content\"><p>The feedparser page says that a prerelease v4.0 can be downloaded that includes support for Atom 1.0 feeds.  Beats writing your own :)</p></div>\n            \n        </li>\n    \n        </ul>\n    \n        </div>\n    ",
  "parentPath": "./content/posts/archives/2005/2005-10-05-feedspool-is-progressing-nicely",
  "path": "2005/10/05/feedspool-is-progressing-nicely",
  "thumbnail": "http://www.decafbad.com/blog_attachments/miniagg-1-tm.jpg",
  "needsBuild": true,
  "prevPostPath": "2005/10/05/ancestor-rocks-like-a-creepy-rocking-thing",
  "prevPostTitle": "Ancestor rocks like a (creepy) rocking thing",
  "nextPostPath": "2005/10/05/toolbars-and-java-happy-meals-and-legos",
  "nextPostTitle": "Toolbars and Java, Happy Meals and Lego"
}