<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>0xDECAFBAD - Tag: feedmagick2</title>
    <link href="http://decafbad.com/blog/atom.xml" rel="self"/>
    <link href="http://decafbad.com/blog"/>
    <updated>2011-11-16T16:29:50+00:00</updated>
    <id></id>
    <author>
        <name></name>
        <email>l.m.orchard@pobox.com</email>
    </author>
    

    <entry>
        <title>OPML reading lists in FeedMagick2</title>
        <link href="http://decafbad.com/blog/2007/10/17/opml-reading-lists-in-feedmagick2"/>
        <updated>2007-10-17T07:22:47+00:00</updated>
        <id>http://decafbad.com/blog/2007/10/17/opml-reading-lists-in-feedmagick2</id>
        <content type="html">&lt;p&gt;For anyone who's interested:  I've been hacking a little bit on &lt;a href=&quot;http://decafbad.com/trac/wiki/FeedMagick&quot;&gt;FeedMagick2&lt;/a&gt; again, with the latest addition being an OPML reading list feed blender.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://nick.typepad.com/blog/2005/10/reading_lists_f.html&quot;&gt;What's an OPML reading list?&lt;/a&gt;  Basically, it's the same as as OPML export of a feed reader's subscription list - only rather than doing a one-time import into another program, the OPML is itself treated as a live feed.  A feed reader that supports OPML reading lists will continually check the list for updates and sync RSS/Atom feed subscriptions with its contents, maybe in a special sub-folder.&lt;/p&gt;

&lt;p&gt;Here's a quick demo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://decafbad.com/2007/04/FeedMagick2/?pipeline=readinglist&amp;amp;url=http%3A%2F%2Fdecafbad.com%2F2007%2F04%2FFeedMagick2%2Fdocs%2Fmaster.opml&amp;amp;format=rss&amp;amp;run=Run+Pipeline&quot;&gt;An RSS feed blended from many of the sites I use daily&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://decafbad.com/2007/04/FeedMagick2/docs/master.opml&quot;&gt;The OPML reading list used as input for the above blend&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The itch I mean to eventually scratch is to replace the front page of decafbad.com with a live updating aggregation of the stuff I create and capture daily on the web.  It'll be basically a self-assembling &lt;a href=&quot;http://en.wikipedia.org/wiki/Tumblelog&quot;&gt;tumblelog&lt;/a&gt; pulled from many different services across the web.  It'll also replace the footer of accumulated crud I've got on this very blog - which I thought was a good idea at one point, but now consider &lt;a href=&quot;http://decafbad.com/twiki/bin/view/Main/NeatLikeDigitalWatches&quot;&gt;NeatLikeDigitalWatches&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With that in mind, the next thing I plan to develop is an &lt;a href=&quot;http://microformats.org/wiki/hatom&quot;&gt;hAtom&lt;/a&gt; module or XSL transform.  This will turn the blended feed into an XHTML page.  Maybe someday, &lt;a href=&quot;http://hatomic.org&quot;&gt;hAtomic&lt;/a&gt; will launch, and I'll have a nice pretty style for the page too.  Some time after that, I might work up a module that stows away dated historical archives of the feed and pages.  I have &lt;a href=&quot;http://decafbad.com/svn/trunk/FeedMagick2/TODO&quot;&gt;further plans and ideas&lt;/a&gt;, but I'm trying to focus on the itchy spots first so that I might actually get something done in this round of serial enthusiasm.&lt;/p&gt;
</content>
    </entry>
    
    

    <entry>
        <title>Say hello to FeedMagick2</title>
        <link href="http://decafbad.com/blog/2007/04/30/say-hello-to-feedmagick2"/>
        <updated>2007-04-30T03:06:32+00:00</updated>
        <id>http://decafbad.com/blog/2007/04/30/say-hello-to-feedmagick2</id>
        <content type="html">&lt;p&gt;Yeah, things have been basically silent around here thanks to post-work brain fryage and a general lack of things to say.  Really, everyone else around the blogosphere seems to be covering things satisfactorily.  However, I have been idly working on a new project over the past few weeks, namely a total rewrite and redesign of &lt;a href=&quot;http://decafbad.com/blog/?s=feedmagick&quot;&gt;my format-ignorant feed filtering and munging kit dubbed FeedMagick&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can find &lt;a href=&quot;http://decafbad.com/2007/04/FeedMagick2/&quot;&gt;a demo installation of FeedMagick2 here&lt;/a&gt; and find it &lt;a href=&quot;http://decafbad.com/svn/trunk/FeedMagick2/&quot;&gt;ready for checkout from SVN over here&lt;/a&gt;.  It's basically just a step away from being a proof of concept, but I'm hoping to get around to fleshing out docs and battening down the hatches with tests.  In any case, if my serial enthusiasm holds out, this thing could eventually subsume everything else I've done with feeds.&lt;/p&gt;

&lt;p&gt;For now, peek at some of these highlights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;a href=&quot;http://decafbad.com/2007/04/FeedMagick2/inspect/masterfeed&quot;&gt;Master Personal Feed&lt;/a&gt; - One big feed blended from 10 other personal metadata feeds pulled from various Web-2.0-ish sites.&lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;http://decafbad.com/2007/04/FeedMagick2/inspect/magpiejson&quot;&gt;Feed to JSON via Magpie&lt;/a&gt; - Get feed data parsed by way of &lt;a href=&quot;http://magpierss.sourceforge.net/&quot;&gt;Magpie&lt;/a&gt; into JSON data structures&lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;http://decafbad.com/2007/04/FeedMagick2/inspect/flickrfavorites&quot;&gt;Flickr Favorites Feed&lt;/a&gt; - Feed of photos marked as favorites by a Flickr user, pulled via the API&lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;http://decafbad.com/2007/04/FeedMagick2/inspect/jbox&quot;&gt;jbox.com scraper&lt;/a&gt; - Pipeline composed of &lt;a href=&quot;http://tidy.sourceforge.net/&quot;&gt;HTML Tidy&lt;/a&gt; and XSL to scrape &lt;a href=&quot;http://jbox.com/&quot;&gt;jbox.com&lt;/a&gt; to build an RSS feed of new items for sale.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Beyond practical examples, there are some things under the hood that seem keen to me.  Apropos of my &lt;a href=&quot;http://decafbad.com/blog/2007/02/15/thoughts-on-pipes-on-the-web-part-ii&quot;&gt;pipes-via-web ramblings&lt;/a&gt; back in February, I'm trying out a few different approaches to pipelining feed content through processor modules.  My original FeedMagick relied on feeding URLs to URLs as parameters.  That, unfortunately, can be mighty cumbersome and inefficient.  So, FeedMagick2 explores a few more approaches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt; The first and obvious approach is to chain them together in a single script.  So, I've got objects instances that pass content from one to the next.  The thing is, the pipe works in reverse:  The driver script asks the last module in the pipe for content, which then asks the one before it for content, and so on.  At any point along the way, modules can cache the output of previous modules, and refrain from calling up the chain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt; The second way to chain pipelines together is just like the first FeedMagick:  Some pipelines start with fetching a URL.  That can be an original feed, or a URL leading to the output of an antecedent pipeline.  And, oh yeah, most pipelines are run via parameterized URLs, so there's that bit of handy recursion.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt; The third way to chain pipelines together is with HTTP POST:  A pipeline can accept feed data via the request body of an HTTP POST, thus allowing antecedent pipelines (or even cURL scripts) to &lt;em&gt;push&lt;/em&gt; data into the pipeline rather than getting &lt;em&gt;pulled&lt;/em&gt; via URL.  This is kind of like my &lt;a href=&quot;http://decafbad.com/blog/?s=xmlrpc+pipe&quot;&gt;years-old jiggery pokery&lt;/a&gt; with &lt;a href=&quot;http://www.decafbad.com/twiki/bin/view/Main/XmlRpcFilteringPipe&quot;&gt;pipelines via XML-RPC&lt;/a&gt;, only much &lt;em&gt;much&lt;/em&gt; simpler.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I'm also poking around at making all of the above available at the command line via PHP-CLI, and I'm having gratuitous fun exploring PEAR to roll my own stripped-down web framework.  I still hate PHP, but I'm at least finding ways to entertain myself while I'm holding my nose.  Of course, I find weird things entertaining.&lt;/p&gt;

&lt;p&gt;And, as a side note, the only reason I'm using PHP is because I'd like to play around with the idea of the de facto WordPress installation requirements standard.  That is:  If you can run WordPress, you can run this.  In reality, I don't think I'm there, but I'm hoping to get close.  For one, I'm refusing to play with anything older than PHP 5.&lt;/p&gt;

&lt;p&gt;Anyway, play with it, tell me what you think and give me a reason to keep hacking at it.  :)&lt;/p&gt;

&lt;div id=&quot;comments&quot; class=&quot;comments archived-comments&quot;&gt;
            &lt;h3&gt;Archived Comments&lt;/h3&gt;
            
        &lt;ul class=&quot;comments&quot;&gt;
            
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082761&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://jamesv.org&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=c82c72ca4f9eab33a80a7bd839c1ae0b&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://jamesv.org&quot;&gt;jamesv&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082761&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2007-04-30T11:39:15&quot;&gt;2007-04-30T11:39:15&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Aw man, now I've got to port all the code you wrote while you were here over to this new hotness ;) I really like (and appreciate) the single script approach.&lt;/p&gt;

&lt;p&gt;Is caching at a module level done automatically, or is that something I need to flag in my original call? Some installs of the original code base are now aggregating large sections of a pool of around 400 feeds, and eeking out even minor performances gains would be just lovely.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082762&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=b309c5a1952afc3d7d81ee90908309af&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;&quot;&gt;dRAUPP&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082762&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2007-04-30T13:40:16&quot;&gt;2007-04-30T13:40:16&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;hawt.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082763&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082763&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2007-04-30T14:43:54&quot;&gt;2007-04-30T14:43:54&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;@jamesv: Take a look at the source to this big-ish pipeline, all the way at the end:&lt;/p&gt;

&lt;p&gt;http://decafbad.com/2007/04/FeedMagick2/pipelines/masterfeed&lt;/p&gt;

&lt;p&gt;You can basically slap a Cacher module at the tail-end or even middle of a long string of modules, and it'll cache the results of everything before it.  I've got a cache lifetime set in the conf/config.php, and you can also set the lifetime in the Cacher parameters.  There can multiple Cacher's per pipeline too.&lt;/p&gt;

&lt;p&gt;This thing might not quite yet be even as stable / in working order as the original FeedMagick, but it might be worth poking at for you.  :)&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082766&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://laughingmeme.org&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=01457d1a0f0e533062cd0d1033fb4d7a&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://laughingmeme.org&quot;&gt;kellan&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082766&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2007-04-30T16:02:31&quot;&gt;2007-04-30T16:02:31&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;blockquote&gt;For one, I’m refusing to play with anything older than PHP 5.&lt;/blockquote&gt;

&lt;p&gt;That must be nice.  &lt;/p&gt;

&lt;p&gt;And curse you, this looks interesting, now I've got to find time to look at it.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082767&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.jm3.net/&quot;&gt;&lt;img src=&quot;http://disqus.com/api/users/avatars/jm3.jpg&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.jm3.net/&quot;&gt;John Manoogian III (jm3)&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082767&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2007-04-30T17:53:08&quot;&gt;2007-04-30T17:53:08&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;addendum to README:&lt;/p&gt;

Installation

&lt;p&gt;cp conf/config.php-dist conf/config.php
  chmod a+w logs
- RewriteBase /~lorchard/FeedMagick2
+ RewriteBase /FeedMagick2&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082768&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://www.decafbad.com&quot;&gt;l.m.orchard&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082768&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2007-04-30T17:58:49&quot;&gt;2007-04-30T17:58:49&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;@jm3: Ah!  Good catch.  I really need to eventually installer-ify that kind of stuff.&lt;/p&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;li class=&quot;comment&quot; id=&quot;comment-221082769&quot;&gt;
            &lt;div class=&quot;meta&quot;&gt;
                &lt;div class=&quot;author&quot;&gt;
                    &lt;a class=&quot;avatar image&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://xiled.rss-central.net/blog&quot;&gt;&lt;img src=&quot;http://www.gravatar.com/avatar.php?gravatar_id=750dbcc9cc192bfad37a3daa4edf139e&amp;amp;size=32&amp;amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png&quot;/&gt;&lt;/a&gt;
                    &lt;a class=&quot;avatar name&quot; rel=&quot;nofollow&quot; 
                       href=&quot;http://xiled.rss-central.net/blog&quot;&gt;megalar&lt;/a&gt;
                &lt;/div&gt;
                &lt;a href=&quot;#comment-221082769&quot; class=&quot;permalink&quot;&gt;&lt;time datetime=&quot;2007-08-05T12:25:34&quot;&gt;2007-08-05T12:25:34&lt;/time&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;content&quot;&gt;&lt;p&gt;Yesterday my host upgraded to php5 so I ran over to your svn dump and installed feedmagick2.
After editing the $baseurl and rewritebase i tested it and it worked like a charm, so I took a nap.
Upon waking I was gonna go play with it and see what hacks I could get going with it but something
 was fubar.
Warning: fopen(/home/megalar/www/html/feedmagick/logs/feedmagick2-debug-20070805.log) [function.fopen]: failed to open stream: Permission denied in /usr/share/php/Log/file.php on line 216
are the errors I get as you can see @ &lt;a href=&quot;http://xiled.rss-central.net/feedmagick/&quot; rel=&quot;nofollow&quot;&gt;my site&lt;/a&gt;.
If it hadn't worked to begin with I would think module problems on my server. To my knowledge, and my host's knowledge, nothing has changed since the upgrade so I'm wondering if it is some sort of bug or a server problem that waited a few hours to reveal itself. The latter doesn't really make much sense to me
but I can't rule it out since I'm not r00t on the box and am not 100% certain my host didn't bork something while I slept. &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;              anyhoo, your thoughts?
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
            
        &lt;/li&gt;
    
        &lt;/ul&gt;
    
        &lt;/div&gt;



</content>
    </entry>
    
    
</feed>

