<?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>Dereferenced.com &#187; Twitter</title>
	<atom:link href="http://www.dereferenced.com/topics/web/twitter/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dereferenced.com</link>
	<description>A preponderance of Perl, an excess of XML, and additional alliterations.</description>
	<lastBuildDate>Tue, 17 Jan 2012 17:18:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Dueling Twitter-Bots</title>
		<link>http://www.dereferenced.com/2009/11/19/dueling-twitter-bots/</link>
		<comments>http://www.dereferenced.com/2009/11/19/dueling-twitter-bots/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 00:19:13 +0000</pubDate>
		<dc:creator>rjray</dc:creator>
				<category><![CDATA[CPAN]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.dereferenced.com/?p=87</guid>
		<description><![CDATA[It looks as though I have some &#8220;competition&#8221; for my CPAN Twitter bot (@cpan_linked). The last few days I&#8217;ve been seeing posts from @cpanlive in my Perl search-column (I use Seesmic Desktop, with a permanent column for searches on &#8220;#perl&#8220;). This seems to be pretty much identical in intent to my bot, with some differences. [...]]]></description>
			<content:encoded><![CDATA[<p>It looks as though I have some &#8220;competition&#8221; for my CPAN Twitter bot (<a href="http://twitter.com/cpan_linked">@cpan_linked</a>). The last few days I&#8217;ve been seeing posts from <a href="http://twitter.com/cpanlive">@cpanlive</a> in my Perl search-column (I use <a href="http://seesmic.com/desktop.html">Seesmic Desktop</a>, with a permanent column for searches on &#8220;<a href="http://twitter.com/#search?q=%23perl">#perl</a>&#8220;). This seems to be pretty much identical in intent to my bot, with some differences. I&#8217;ll cover those and what I think of them:</p>
<h3>No URL-Shortening</h3>
<p>Where I do URL-shortening (currently through TinyURL due to some down-time with Metamark, though I think they&#8217;re back up now), <tt>@cpanlive</tt> doesn&#8217;t. I believe that if the status message were to exceed 140 characters, Twitter would notice this and scan the message for URLs to shorten automatically. In the end, I suppose it&#8217;s a matter of taste&#8211; with @cpanlive you&#8217;ll see the actual URL the majority of the time.</p>
<h3>Content</h3>
<p>I usually provide two links, the second being to the &#8220;Changes&#8221; (Changes, ChangeLog, etc.) file, or the README if I can&#8217;t find a change-log. <tt>@cpanlive</tt> provides just the main link. I also include the author&#8217;s name. This goes back to the use of URL-shortening&#8211; I&#8217;m careful to keep my status under 140 characters, but having pre-shortened the links gives me more room to play with.</p>
<h3>Hash-Tagging</h3>
<p>I don&#8217;t use any hash-tags, currently. <tt>@cpanlive</tt> uses both &#8220;#Perl&#8221; and &#8220;#CPAN&#8221;. On the one hand, I probably wouldn&#8217;t have even known about this if it weren&#8217;t for the tagging, as I wouldn&#8217;t have seen it otherwise. On the other hand, this puts a lot of data from a single bot into the #perl search-stream. Most people know to follow a given bot if they want CPAN stream updates, and would prefer to not have them cluttering up #perl.</p>
<p>That said, I am considering adding #CPAN to the updates that <tt>@cpan_linked</tt> puts out, as well as the re-write that I&#8217;m (slowly) working on. I think that such data is more useful to users searching on #CPAN than those searching on #Perl.</p>
<h3>Speed and Pacing</h3>
<p>When <tt>@cpan_linked</tt> gets a cluster of several CPAN updates at once, it tries to spread them out over the next period between polls of <a href="http://search.cpan.org">search.cpan.org</a>&#8216;s RDF feed. Currently, I poll it every 15 minutes, so if I get 5 new items to post they get posted roughly 3 minutes apart. It looks like <tt>@cpanlive</tt> doesn&#8217;t do anything like this, as the updates seem be in &#8220;clumps&#8221;, which is what I was trying to avoid. Again, a matter of taste. I didn&#8217;t want the bot to suddenly spew 10-20 updates into my Twitter stream, pushing everything else &#8220;below the fold&#8221; as it were. Other followers might not care one way or the other.</p>
<p>Something I&#8217;ve noticed, though, is that <tt>@cpanlive</tt> seems to be about an hour or so behind <tt>@cpan_linked</tt>, on average. I assume that they&#8217;re polling the RDF source hourly, rather than the 15-minute interval I use.</p>
<h3>Conclusion</h3>
<p>Well, there&#8217;s no &#8220;conclusion&#8221; here, really. I mean, it&#8217;s not like I have an exclusive license to relay CPAN releases to Twitter. If such an exclusive right existed, it wouldn&#8217;t be mine in the first place! I do wonder about the reason for doing it over again, though it may just be someone&#8217;s project for learning how to use the Net::Twitter modules. It does push me to get cracking on my re-write, though, as I have other features planned that should make it even more useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dereferenced.com/2009/11/19/dueling-twitter-bots/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Perl Module Monday: Net::Twitter(::Lite)</title>
		<link>http://www.dereferenced.com/2009/09/28/perl-module-monday-nettwitterlite/</link>
		<comments>http://www.dereferenced.com/2009/09/28/perl-module-monday-nettwitterlite/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 05:42:59 +0000</pubDate>
		<dc:creator>rjray</dc:creator>
				<category><![CDATA[CPAN]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[module-monday]]></category>

		<guid isPermaLink="false">http://www.dereferenced.com/?p=62</guid>
		<description><![CDATA[(If I keep covering multiple modules in a post, I&#8217;m going to have to change the title and tag I use&#8230;) I generally try to use these posts to highlight lesser-known modules, and I imagine that the Net::Twitter module is fairly higher-profile than most of my previous choices. But are you familiar with Net::Twitter::Lite, as [...]]]></description>
			<content:encoded><![CDATA[<p>(If I keep covering multiple modules in a post, I&#8217;m going to have to change the title and tag I use&#8230;)</p>
<p>I generally try to use these posts to highlight lesser-known modules, and I imagine that the <a href="http://search.cpan.org/dist/Net-Twitter">Net::Twitter</a> module is fairly higher-profile than most of my previous choices. But are you familiar with <a href="http://search.cpan.org/dist/Net-Twitter-Lite">Net::Twitter::Lite</a>, as well?</p>
<p>It&#8217;s not unusual for CPAN to offer more than one solution to a given problem. The wide range of XML parsers is a testament to this. And when a subject is popular, the odds are even greater that people may choose to &#8220;roll their own&#8221; rather than trying to contribute to an existing effort. Fortunately, the interface to the social messaging service <a href="http://twitter.com">Twitter</a> has been spared this. Maybe it&#8217;s because the source code is <a href="http://github.com/semifor/Net-Twitter">hosted on GitHub</a>, and thus it is easier for people to contribute. Whatever the reason, the only real competition to Net::Twitter for basic Twitter API usage is Net::Twitter::Lite. And it&#8217;s not actually a competitor in the general sense.</p>
<p>Rather than representing a competing implementation, Net::Twitter::Lite came about as an (almost completely) interface-compatible alternative to Net::Twitter after it was refactored to use Moose internally. While it doesn&#8217;t have 100% of the features that Net::Twitter has, both modules strive for 100% coverage of Twitter&#8217;s API. Where N::T::Lite runs without the additional requirement of Moose, N::T gives you finer-grained control over which parts of the API are loaded and made available to connection objects.</p>
<p>I&#8217;ve used both modules, and can attest to the fact that the interface is kept consistent between them. At $DAY_JOB I authored a tool to echo data to a Twitter stream, for which N::T::L was the best choice as it had the fewest dependencies and our needs did not call for the additional functionality of N::T. My Twitter-bot (<a href="http://twitter.com/cpan_linked">cpan_linked</a>) was written with N::T in the pre-Moose days, and has not had a single problem since I seamlessly upgraded N::T to the Moose-based version. As I work on the next generation CPAN-bot, I&#8217;ll be using the OAuth support, as well as possibly the search API. Since it will be a long-running daemon, I&#8217;ll stick with the more-featureful N::T for it. But thanks to the diligence of the modules&#8217; authors, I could just as easily swap between them at will.</p>
<p>If you&#8217;re planning to interface to Twitter from Perl, these two modules should be your starting point. But be sure to look at the <a href="http://search.cpan.org/search?query=twitter&amp;mode=all">other Twitter-oriented modules</a>, just to be sure. There&#8217;s a lot of activity around this API, and Perl developers have kept on top of it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dereferenced.com/2009/09/28/perl-module-monday-nettwitterlite/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

