<?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>Coyote Tracks &#187; Hummingbird</title>
	<atom:link href="http://kagan.mactane.org/blog/tag/hummingbird/feed/" rel="self" type="application/rss+xml" />
	<link>http://kagan.mactane.org/blog</link>
	<description>The prints of an Internet-enabled coyote.</description>
	<lastBuildDate>Tue, 31 Jan 2012 03:26:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Hummingbird Version 0.67 Released</title>
		<link>http://kagan.mactane.org/blog/2011/01/16/hummingbird-version-0-67-released/</link>
		<comments>http://kagan.mactane.org/blog/2011/01/16/hummingbird-version-0-67-released/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 21:13:00 +0000</pubDate>
		<dc:creator>Kai MacTane</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Hummingbird]]></category>
		<category><![CDATA[my projects]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://kai.mactane.org/blog/?p=275</guid>
		<description><![CDATA[I&#8217;ve released a new version of Hummingbird. This is a bug-fix release, resolving some issues in automatic hyperlinking and in recognition of multiple hashtags in a single tweet. (Yes, this is why I did a couple of tweets hashtagged &#8220;#testing&#8221; a couple of days ago.) Downloads are available from the Hummingbird project page, or using [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve released a new version of Hummingbird. This is a bug-fix release, resolving some issues in automatic hyperlinking and in recognition of multiple hashtags in a single tweet. (Yes, this is why I did a couple of tweets hashtagged &#8220;#testing&#8221; a couple of days ago.)</p>
<p>Downloads are available from <a href="/software/hummingbird/">the Hummingbird project page</a>, or using these links:</p>
<p><a href="/software/libraries/download/hummingbird-0.67.tar.gz">hummingbird-0.67.tar.gz</a><br />
<a href="/software/libraries/download/hummingbird-0.67.zip">hummingbird-0.67.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kagan.mactane.org/blog/2011/01/16/hummingbird-version-0-67-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hummingbird Version 0.66 Released</title>
		<link>http://kagan.mactane.org/blog/2010/11/28/hummingbird-version-0-66-released/</link>
		<comments>http://kagan.mactane.org/blog/2010/11/28/hummingbird-version-0-66-released/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 23:02:28 +0000</pubDate>
		<dc:creator>Kai MacTane</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Hummingbird]]></category>
		<category><![CDATA[my projects]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://kai.mactane.org/blog/?p=262</guid>
		<description><![CDATA[This is largely a bug-fix release. Tom Clift, of PaperCut print management software, kindly informed me of a few installation issues that my own tests didn&#8217;t find. The profusion of configuration options in PHP can make testing everything on a single server quite difficult. This would be a good time for me to mention that [...]]]></description>
			<content:encoded><![CDATA[<p>This is largely a bug-fix release. Tom Clift, of <a href="http://www.papercut.com/">PaperCut</a> print management software, kindly informed me of a few installation issues that my own tests didn&#8217;t find. The profusion of configuration options in PHP can make testing everything on a single server <em>quite</em> difficult.</p>
<p>This would be a good time for me to mention that I have the utmost respect for QA people. They deal with all sorts of minutiae that I am really glad not to have to handle, and I&#8217;m really glad they&#8217;re around. That said, I am <em>not</em> a QA person&#8230; and so I occasionally miss the sorts of stuff they&#8217;d catch.</p>
<ol>
<li>It turns out Hummingbird depends on <a href="http://www.php.net/manual/en/features.commandline.introduction.php">the CLI version</a> of PHP, and the CGI version will not suffice. This requirement is now listed in the appropriate section of <a href="http://kai.mactane.org/software/hummingbird/">the Hummingbird page</a>.</li>
<li>Not all PHP installations have output buffering turned on by default. The latest version of Hummingbird takes account for this.</li>
<li>Various problems that can occur with the data cache file are also now reported more gracefully.</li>
</ol>
<p>Again, my thanks to Tom Clift for some very useful patches!</p>
<p>You can get the latest version of Hummingbird from <a href="http://kai.mactane.org/software/hummingbird/">the Hummingbird page on my site</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://kagan.mactane.org/blog/2010/11/28/hummingbird-version-0-66-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing Hummingbird Version 0.65</title>
		<link>http://kagan.mactane.org/blog/2010/09/19/announcing-hummingbird-version-0-65/</link>
		<comments>http://kagan.mactane.org/blog/2010/09/19/announcing-hummingbird-version-0-65/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 23:03:59 +0000</pubDate>
		<dc:creator>Kai MacTane</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[Hummingbird]]></category>
		<category><![CDATA[my projects]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://kai.mactane.org/blog/?p=244</guid>
		<description><![CDATA[I see that I never bothered announcing the v0.61 release. That was a minor bug-fix, resolving an issue where Hummingbird would fail if the XML cache file was empty. The latest release is one that allows multiple versions of Hummingbird to run on the same machine without conflict, as long as they&#8217;re using different Twitter [...]]]></description>
			<content:encoded><![CDATA[<p>I see that I never bothered announcing the v0.61 release. That was a minor bug-fix, resolving an issue where Hummingbird would fail if the XML cache file was empty.</p>
<p>The latest release is one that allows multiple versions of Hummingbird to run on the same machine without conflict, as long as they&#8217;re using different Twitter usernames.</p>
<p>In addition, I&#8217;ve changed the destination of auto-hashtag links. Since the hashtags.org service is often a bit flaky, or simply returns useless null results, I&#8217;ve switched to using Twitter&#8217;s own internal search service.</p>
<p>Downloads are available from <a href="/software/hummingbird/">the Hummingbird project page</a>, or using these links:</p>
<p><a href="/software/libraries/download/hummingbird-0.65.tar.gz">hummingbird-0.65.tar.gz</a><br />
<a href="/software/libraries/download/hummingbird-0.65.zip">hummingbird-0.65.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kagan.mactane.org/blog/2010/09/19/announcing-hummingbird-version-0-65/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hummingbird Updated to Version 0.60</title>
		<link>http://kagan.mactane.org/blog/2009/08/20/hummingbird-updated-to-version-0-60/</link>
		<comments>http://kagan.mactane.org/blog/2009/08/20/hummingbird-updated-to-version-0-60/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 02:49:27 +0000</pubDate>
		<dc:creator>Kai MacTane</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[Hummingbird]]></category>
		<category><![CDATA[my projects]]></category>
		<category><![CDATA[oops]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[should have known better]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://kai.mactane.org/blog/?p=109</guid>
		<description><![CDATA[I&#8217;ve always questioned the wisdom of building a startup company based around someone else&#8217;s platform, like Facebook games or Gmail inbox add-ons. You&#8217;re totally at the mercy of the other company. (Many people have found out how silly it was to go up against Microsoft or Apple in just the same way.) And yet, here [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always questioned the wisdom of building a startup company based around someone else&#8217;s platform, like Facebook games or Gmail inbox add-ons. You&#8217;re totally at the mercy of the other company. (Many people have found out how silly it was to go up against Microsoft or Apple in just the same way.)</p>
<p>And yet, here I am with <a href="/software/hummingbird/">Hummingbird</a>, which is totally dependent on Twitter&#8217;s bandwidth. (In my own defense, I can only point out that: a) I wrote it because I needed the functionality; and b) I&#8217;m not building a money-making company around Hummingbird. I&#8217;m just giving it away.)</p>
<p>In the past couple of weeks, I&#8217;ve noticed that Twitter can sometimes take an astonishingly long time to provide an update. Hummingbird works by requesting URLs like <a href="http://twitter.com/statuses/user_timeline/kmactane.xml?count=25">http://twitter.com/statuses/user_timeline/kmactane.xml?count=25</a>, and (up until now) it worked on the assumption that Twitter couldn&#8217;t possibly take longer than 10 or 15 seconds to respond to such a request.</p>
<p>That turns out not to be the case.</p>
<p>In fact, my recent tests have shown that Twitter can sometimes take <em>over 5 full minutes</em> to finish responding to such a request. This is a problem, because the default installation of Hummingbird tries to update its cached data once every 5 minutes. And since I assumed the request would be fulfilled in, at most, 10% of that time, I didn&#8217;t bother building in any concurrency checking.</p>
<p>I&#8217;ve just completely reorganized most of Hummingbird&#8217;s architecture. The interface that a blog owner sees (in the sense of the configuration variables in <code>hummingbird.php</code>, and the calling syntax for blog pages and cron jobs) is still the same. However, all of the code for retrieving data from Twitter has been spun off into a new <code>hummingbird-cache.php</code> file, which can be launched into the background by the rest of Hummingbird, so that it can patiently take as long as it needs to in order to update the blog&#8217;s tweets cache.</p>
<h3>The Major Change This Causes</h3>
<p>In Hummingbird&#8217;s previous incarnations, it would freshen an out-of-date cache before displaying it. The assumption was that every once in a while, someone might have to wait a few more seconds before seeing your blog page. However, everyone would always see an up-to-date record of your tweets. (Where &#8220;up-to-date&#8221; means &#8220;no more than 5 minutes old, absolute tops&#8221;. If you tweet so relentlessly that that&#8217;s a problem, you probably don&#8217;t have enough time to keep up your blog&#8230;)</p>
<p>Now that we know that Twitter can take over 5 minutes to give you the data needed to freshen your tweets cache, that design is not acceptable. Instead, Hummingbird is now committed to showing the contents of your tweets cache as quickly as possible, and <em>only then</em> does it fork the cache-update process into the background.</p>
<p>This means that, <em>if you&#8217;re not using cron</em> or some other automatic job-scheduling facility to run Hummingbird every 5 minutes, visitors who arrive at your blog after a period of inactivity will see an out-of-date, stale listing of your tweets. </p>
<p>If you have a cron job set to keep Hummingbird fresh, you&#8217;ll be fine. (A page view will also trigger an update, so if you get so much traffic that there&#8217;s never a 5-minute period during which your page doesn&#8217;t get hit, you&#8217;ll also be fine.)</p>
]]></content:encoded>
			<wfw:commentRss>http://kagan.mactane.org/blog/2009/08/20/hummingbird-updated-to-version-0-60/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

