<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Laughing Meme &#187; cvs</title>
	<atom:link href="http://laughingmeme.org/tag/cvs/feed/" rel="self" type="application/rss+xml" />
	<link>http://laughingmeme.org</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 29 Jan 2012 21:54:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Status Update: XML::RSS, Magpie, cvs2rss, wp-agg, etc</title>
		<link>http://laughingmeme.org/2005/05/28/status-update-xmlrss-magpie-cvs2rss-wp-agg-etc/</link>
		<comments>http://laughingmeme.org/2005/05/28/status-update-xmlrss-magpie-cvs2rss-wp-agg-etc/#comments</comments>
		<pubDate>Sat, 28 May 2005 14:45:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[cvs]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=1087</guid>
		<description><![CDATA[Dan from GeekUprising is now the official maintainer of XML::RSS. I imagine his first major change will be to incorporate the patch he sent me last Fall splitting the RSS creation logic from the RSS parsing logic (while still being transparent to people who don&#8217;t want that kind of thing). Congratulations, and welcome. cvs2rss has [...]]]></description>
			<content:encoded><![CDATA[<p>Dan from <a href="http://geekuprising.com/">GeekUprising</a> is now the official maintainer of <a href="http://search.cpan.org/dist/XML-RSS">XML::RSS</a>.  I imagine his first major change will be to incorporate the patch he sent me last Fall splitting the RSS creation logic from the RSS parsing logic (while still being transparent to people who don&#8217;t want that kind of thing).  Congratulations, and welcome.</p>

<p><a href="http://laughingmeme.org/cvs2rss/">cvs2rss</a> has been missing since the last server move, but well placed nudge from <a href="http://ultimate.com">Phil</a> got me to dig up the archives today, so <a href="http://laughingmeme.org/cvs2rss/">voila</a>, as they.</p>

<p>My aggregator for <a href="http://wordpress.org">WordPress</a>, affectionately known as <a href="http://laughingmeme.org/archives/002203.html">wp-agg</a> is officially superseded by <a href="http://projects.radgeek.com/feedwordpress/">FeedWordPress</a>.  Charles has done a great job growing the idea to something useful to someone other then me, and polished it off by actively maintaining it.  Nice work.  I&#8217;ll be switching the <a href="http://magpie.laughingmeme.org/blog/">Magpie blog</a> as soon as I get a chance.  </p>

<p><a href="http://sourceforge.net/project/stats/?group_id=55691&amp;ugn=magpierss">Sourceforge stats</a> after a 6 month hiatus (or was it 18 months?  now I&#8217;m forgetting), are finally back, now with <a href="http://sourceforge.net/project/stats/?group_id=55691&amp;ugn=magpierss">largely useless graphs</a>.  I had a hunch that usage had continued to grow and it has, with 5,000 page views a day, and 6,000 downloads a month. Wow.  Really need to revive the website to handle the enlarged community.  Need a good domain name first.</p>

<p>You know, now that I&#8217;m a contractor again, if someone wanted to hire me for 20-25 hours of work I&#8217;ve got a list of features that I&#8217;d love to have time to roll out as <a href="http://magpierss.sourceforge.net/">MagpieRSS</a> version 0.8.</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2005/05/28/status-update-xmlrss-magpie-cvs2rss-wp-agg-etc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion, blargh</title>
		<link>http://laughingmeme.org/2004/08/09/subversion-blargh/</link>
		<comments>http://laughingmeme.org/2004/08/09/subversion-blargh/#comments</comments>
		<pubDate>Mon, 09 Aug 2004 20:46:31 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[cvs]]></category>
		<category><![CDATA[fbi]]></category>
		<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=880</guid>
		<description><![CDATA[Having spent the morning playing with Subversion, I&#8217;m going to take the name at face value and assume it&#8217;s really a very subtle plot to kill open source productivity, and will hence forth be referring to it as &#8220;cointelpro&#8221; instead. update: I confess I was wrong, anything you say, now please just put away the [...]]]></description>
			<content:encoded><![CDATA[<p>Having spent the morning playing with <a href="http://subversion.tigris.org/">Subversion</a>, I&#8217;m going to take the name at face value and assume it&#8217;s really a very subtle plot to kill open source productivity, and will hence forth be referring to it as <a href="http://subversion.tigris.org/">&#8220;cointelpro&#8221;</a> instead.</p>

<p><b>update:</b> I confess I was wrong, anything you say, now please just put away the hot irons.  Having been told by all my nearest and dearest exactly how wrong I am, I confess, there were really 4 fingers, my memories to the contrary were faulty.  I&#8217;ll swear off tech blogging (burying it certain fathoms beneath the earth no less), and go back to posting pictures of fluffy kittens, and unsubstaniated Oregonian rumors.</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2004/08/09/subversion-blargh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CVS2RSS/Formatter/ViewCVS.pm &#8211; diff &#8211; 1.2</title>
		<link>http://laughingmeme.org/2004/07/18/cvs2rssformatterviewcvspm-diff-12/</link>
		<comments>http://laughingmeme.org/2004/07/18/cvs2rssformatterviewcvspm-diff-12/#comments</comments>
		<pubDate>Mon, 19 Jul 2004 00:43:20 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=2397</guid>
		<description><![CDATA[append date to directory level links to ensure that all checkins have a unique uri]]></description>
			<content:encoded><![CDATA[<p>append date to directory level links to ensure that all checkins have a unique uri</p>
<p><a href='http://dev.protest.net/cgi-bin/viewcvs.cgi/cvs2rss/lib/CVS2RSS/Formatter/ViewCVS.pm?r1=1.1&r2=1.2'>http://dev.protest.net/cgi-bin/viewcvs.cgi/cvs2rss/lib/CVS2RSS/Formatter/ViewCVS.pm?r1=1.1&r2=1.2</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2004/07/18/cvs2rssformatterviewcvspm-diff-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress RSS Aggregator</title>
		<link>http://laughingmeme.org/2004/07/18/wordpress-rss-aggregator/</link>
		<comments>http://laughingmeme.org/2004/07/18/wordpress-rss-aggregator/#comments</comments>
		<pubDate>Sun, 18 Jul 2004 23:26:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[cvs]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[magpie]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[syndication]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=861</guid>
		<description><![CDATA[I&#8217;ve been playing with the idea of a devblog for a while, a place which collates the various feeds associated with a project into a simple location for easy viewing, and commenting it. Fisheye, and CIA are full blown attempts at solving this very problem for large open source projects. This morning, unable to get [...]]]></description>
			<content:encoded><![CDATA[<p>
I&#8217;ve been playing with the idea of a devblog for a while, a place which collates the various feeds associated with a project into a simple location   for easy viewing, and commenting it.  <a href="http://www.cenqua.com/fisheye/">Fisheye</a>, and <a href="http://cia.navi.cx/stats/project/debian-nonprofit">CIA</a> are full blown attempts at solving this very problem for large open source projects.  This morning, unable to get back to sleep, seemed simpler and faster to write something new, then finish reading the install instructions.
</p>

<p><p>
I present my quick and dirty <a href="http://laughingmeme.org/code/wp-rss-aggregate.php.txt">RSS-to-Wordpress aggregator</a>.  There are a number of tools that allow you to display an RSS feed on your <a href="http://wordpress.org">WordPress</a> blog, and several that allow you to import an RSS into your blog, but I didn&#8217;t find any that worked as aggregators, periodically polling a feed, and creating new posts from the items found within.  So that is what I built.
</p>
<p>
<h3>Some features:</h3>
 <ul> 
 <li>dc:date becomes the post<em>date, dc:creator (or dc:contributor) becomes the post</em>author, title maps to title, description to post_content, dc:subject to category.</li></p>

<p><li>a postmeta variable is used to track which RSS items have been seen before, and only insert them once.</li></p>

<p><li>you can assign 1 or more categories to be automatically attached to each post per feed. (e.g. a &#8216;CVS Commits&#8217; category)</li></p>

<p><li>new authors, and new categories are auto-vivified if they don&#8217;t exist.</li>
 </ul>
</p>
<p>
<h3>Limitations:</h3>
<ul>
  <li>I wrote this to parse our internal <a href="http://laughingmeme.org/cvs2rss/">cvs2rss</a> feeds, and our <a href="http://laughingmeme.org/work/archives/001772.html">Twiki feed</a>.  Those both produce RSS 1.0 feeds that conform to my particular RSS aesthetics.  As such the script doesn&#8217;t try to hard to support other versions of RSS.</li></p>

<p><li>Links are treated as perma-links, and unique identifiers.</li></p>

<p><li>Ignores content:encoded</li></p>

<p><li>Only handles inserts, not updates</li></p>

<p><li>I wrote this with <a href="http://wordpress.org/nightly/">nightly build</a> 2004-7-14, your milage may vary.</li>
</ul></p>

<p>None of these would be hard to fix, but this was good enough for my needs this morning, in the short period of time I wanted to spend on it.
</p>
<p>
<h3>Todo</h3>
Some other features that would be nice to:
  <ul>
<li> Store config in the database and add WP UI for managing aggregated feeds (should be doable with option groups?)</li>
  <li> Support adding categories by name instead of id. (and auto-vivify categories)</li>
</ul>
Uses <a href="http://magpierss.sf.net">Magpie</a> (surprise!), so you get to leverage support for fetching private RSS feeds. (which I&#8217;d recommend for serving up internal RSS feeds)  Expanding on the devlog theme, you might want to include the RSS from your project management tool, and bug tracker. (we aren&#8217;t currently using RSS enable tools for this, but if, for example, you were using <a href="http://www.taskspro.com/">TasksProp</a> or <a href="http://www.basecamphq.com/">Basecamp</a>, those would be good feed to include.)
</p>
<p>
<h3>A Few Observations on WordPress</h3>
<ul>
  <li>Doesn&#8217;t support PHP5 yet.  I&#8217;m not sure how pervasive the problem is, but it uses a modified version of <a title="ick, requires email address to download" href="http://www.jvmultimedia.com/home/articles.php?articleId=2">ezSQL</a> for its DB abstraction layer, which isn&#8217;t PHP5 compatible.  Too bad they aren&#8217;t building on top of PEAR DB.</li></p>

<p><li>Excellent for whipping up an attractive, feature rich blog. </li></p>

<p><li>Faster then expected, really zippy in fact, at least without load.</li></p>

<p><li>Code is kind of a mess (or at least old school PHP).  Very little OO, SQL, and HTML is scattered around, core use of global variables.</li></p>

<p><li>I&#8217;m not a fan of the &#8220;PHP is already a template argument&#8221;, but I understand why some people are.</li></p>

<p><li>Doesn&#8217;t feel as polished as MT, but is certainly more hackable.  Reminds me of the <a href="http://kwiki.org">Kwiki</a> &#8220;every installation is a snowflake&#8221; goal.  Interesting to see if this creates a surge of creativity, or just balkanization.</li></p>

<p><li>Option groups, and the postmeta table make it incredibly simple to add new features.</li></p>

<p><li>PHP5+SQLite support, and a one-click install could make WP the Kwiki of blogging tools.</li></p>

<p></ul>
</p>
<p>
<b>update [2004/10/28]</b>:  In Boston, but on Seattle time, fill in some extra details.  This quick hack is growing faqs, and might need to sprout a page of its own pretty soon.  In the mean time there is a <a href="http://laughingmeme.org/code/wp-rss-aggregate.php.txt">new version</a> which uses a simple config file, and has expanded <a href="http://del.icio.us">del.icio.us</a> support.
</p>
<p>
<h3>FAQ</h3>
<ol>
<li>How do I print the link of the original RSS item? 
<pre><code>
&lt;?php echo get<em>post</em>meta($id, 'wp<em>agg</em>rss_id', true) ?&gt;
</code></pre>
<li>Dates aren&#8217;t working, all my posts are from 1969.  Currently wp-rss-agg only supports dates in dc:date field, however there is a feature in magpie-cvs that should make it simple to provide Atom and RSS 2.0 date compatibility as well.</li> 
</ol>
</p>
<p>
<b>update</b>:  <a href="http://projects.radgeek.com/feedwordpress/">FeedWordPress</a> is an actively developed and maintained version of this script.  Charles has taken it beyond my simple proof of concept, and it is almost certainly what you&#8217;re looking for.
</p></p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2004/07/18/wordpress-rss-aggregator/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>activitymail , final word in mail based CVS notifiers?</title>
		<link>http://laughingmeme.org/2003/10/29/activitymail-final-word-in-mail-based-cvs-notifiers/</link>
		<comments>http://laughingmeme.org/2003/10/29/activitymail-final-word-in-mail-based-cvs-notifiers/#comments</comments>
		<pubDate>Wed, 29 Oct 2003 08:35:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[cvs2rss]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=1808</guid>
		<description><![CDATA[some ideas to snag for cvs2rss]]></description>
			<content:encoded><![CDATA[<p>some ideas to snag for cvs2rss</p>
<p><a href='http://search.cpan.org/~dwheeler/activitymail/'>http://search.cpan.org/~dwheeler/activitymail/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2003/10/29/activitymail-final-word-in-mail-based-cvs-notifiers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cvs2rss 0.2</title>
		<link>http://laughingmeme.org/2003/02/26/cvs2rss-02/</link>
		<comments>http://laughingmeme.org/2003/02/26/cvs2rss-02/#comments</comments>
		<pubDate>Wed, 26 Feb 2003 14:18:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[cvs2rss]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=340</guid>
		<description><![CDATA[I released cvs2rss v0.2 (the &#8220;Fading Dawn&#8221; release) yesterday. Its only a minor tweak of cvs2rss 0.1 which has been happily working for me for a month now. (and needed surprisingly little fixing given that it came into this world under a cloud) Ben announced it, but I figured I should probably put something on [...]]]></description>
			<content:encoded><![CDATA[<p>
I released <a href="http://laughingmeme.org/code/cvs2rss/">cvs2rss v0.2</a> (the &#8220;Fading Dawn&#8221; release) yesterday.  Its only a minor tweak of cvs2rss 0.1 which has been happily working for me for a month now. (and needed surprisingly little fixing given that it came into this world <a href="http://laughingmeme.org/archives/000296.html#000296">under a cloud</a>)  <a href="http://www.benhammersley.com/archives/004170.html#004170">Ben announced it</a>, but I figured I should probably put something on my own site about it <img src='http://laughingmeme.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> 
</p>

<p><p>
Some future directions
<ul>
<li>Handle interactive CVS prompt better</li>
<li>Make the project self hosting</li>
<li>Make the config file more powerful</li>
<li>Incorporate all the lovely user feedback I get (hint)
</ul>
</p>
<p>
Some <a href="http://dev.protest.net/~kellan/cvs-rss/">example feeds</a> I currently track.
</p></p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2003/02/26/cvs2rss-02/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Annoucing cvs2rss.pl</title>
		<link>http://laughingmeme.org/2003/01/25/annoucing-cvs2rsspl/</link>
		<comments>http://laughingmeme.org/2003/01/25/annoucing-cvs2rsspl/#comments</comments>
		<pubDate>Sat, 25 Jan 2003 21:36:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[cvs]]></category>
		<category><![CDATA[cvs2rss]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://lm.quxx.info/?p=289</guid>
		<description><![CDATA[When I consulted the omens this morning they said don&#8217;t get out bed. So I wrote cvs2rss.pl instead. I think its pretty cool, but then I&#8217;m not really trust worthy at the moment as I started halluncinating about an hour ago from lack of food and coffee.(thats the real problem with leaving college, no longer [...]]]></description>
			<content:encoded><![CDATA[<p>
When I 
<a href="http://laughingmeme.org/archives/000294.html#000294">consulted the omens</a> this morning they said don&#8217;t get out bed.  So I wrote
<a href="/cvs2rss/">cvs2rss.pl</a> instead.  I think its pretty cool, but then I&#8217;m not really trust worthy at the moment as I started halluncinating about
an hour ago from lack of food and coffee.(thats the real problem with leaving college, no longer having a mini fridge you can reach from bed)
</p>

<p><p>
<h3>CVS -> RSS</h3>
cvs2rss.pl is a Perl script (and a couple of modules) that can mine an RSS feed
out of a local cvs checkout. (though mostly it asks 
<a href="http://www.red-bean.com/cvs2cl">cvs2cl.pl</a> to do the heavy
lifting)
</p>
<p>
Its kind of a hack, but its a cool hack, and I put sometime into thinking about
what should values should be in fields like &#8216;title&#8217; and &#8216;link&#8217;, and it works
pretty well.
</p>
<p>
<h3>CVS &amp; the Web</h3>
Currently cvs2rss.pl depends on you to have a copy of <a
href="http://viewcvs.sf.net">ViewCVS</a>(aka, the CVS browser on Sourceforge)
running somewhere public for it to link to, but is designed to be extended for
use with other web repository browsers.
</p>
<p>
An example <a href="/cvs2rss/xml_rss.rdf">CVS RSS feed for XML::RSS</a>.
</p>
<p>
<h3>On a side note</h3>
Hmmm, starting to feel like the all-RSS, all-the-time channel around here (count &#8216;em, 
<a href="/archives/cat_rss.html">6 RSS entries</a> in 5 days).  I wonder if its too late to run away to 
<a href="http://www.portoalegre2003.org/publique/index02I.htm">Brazil</a>? 
</p></p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2003/01/25/annoucing-cvs2rsspl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

