<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>The Deacon Project</title>
	
	<link>http://deacon.daverea.com</link>
	<description>Droid+Beacon - Open-Source Push Notifications for Android &amp; Java</description>
	<lastBuildDate>Mon, 02 Jan 2012 15:35:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/deacon" /><feedburner:info uri="deacon" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>New Deacon Test Server – Live!</title>
		<link>http://feedproxy.google.com/~r/deacon/~3/7OvmbFR03VU/</link>
		<comments>http://deacon.daverea.com/2012/01/new-deacon-test-server-live/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 15:35:34 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://deacon.daverea.com/?p=445</guid>
		<description><![CDATA[Happy 2012, everyone! A few months ago, the generous folks at Attendit.se donated a virtual server for Deacon testing. As of today, that server is live, running the standard set of Meteor test channels for Deacon clients. The server address is: test.deaconproject.org (83.140.103.26) The available channels are: 2sec 10sec 1min 10min Now that Deacon has an [...]]]></description>
			<content:encoded><![CDATA[<p>Happy 2012, everyone! A few months ago, the generous folks at Attendit.se donated a virtual server for Deacon testing. As of today, that server is live, running the standard set of Meteor test channels for Deacon clients.</p>
<p>The server address is: <strong>test.deaconproject.org</strong> (83.140.103.26)</p>
<p>The available channels are:</p>
<ul>
<li>2sec</li>
<li>10sec</li>
<li>1min</li>
<li>10min</li>
</ul>
<div>Now that Deacon has an "official" test server that's much more reliable than the one I provided personally (aging hardware on an unreliable residential network) I will be taking the "home.daverea.com" Meteor server offline. Please use test.deaconproject.org for all testing from now on!</div>
]]></content:encoded>
			<wfw:commentRss>http://deacon.daverea.com/2012/01/new-deacon-test-server-live/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://deacon.daverea.com/2012/01/new-deacon-test-server-live/</feedburner:origLink></item>
		<item>
		<title>Deacon Version 1.0.0, Release Candidate 01</title>
		<link>http://feedproxy.google.com/~r/deacon/~3/wYeQ-ARoJ-0/</link>
		<comments>http://deacon.daverea.com/2011/11/deacon-version-1-0-0-release-candidate-01/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 23:33:22 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://deacon.daverea.com/?p=439</guid>
		<description><![CDATA[With traffic on recent bug-fixes quiet, new contributions received, and all else otherwise stable, I'm getting ready to bump Deacon to version 1.0.0. I've pushed a new tag to the Deacon repository on GitHub, and made quite a few updates to the codebase to better-accommodate anticipated downstream changes. I've decided to do this version bump [...]]]></description>
			<content:encoded><![CDATA[<p>With traffic on recent bug-fixes quiet, new contributions received, and all else otherwise stable, I'm getting ready to bump Deacon to version 1.0.0. I've pushed a new tag to the <a href="https://github.com/davidrea/Deacon">Deacon repository on GitHub</a>, and made quite a few updates to the codebase to better-accommodate anticipated downstream changes. I've decided to do this version bump because Deacon's development pace lately has been slow; my time to work on it is limited, and development is largely being driven by bug reports and contributed features. So I'm going to let features drive the minor release numbers, and bug reports drive the incremental numbers.</p>
<p>New in this release:</p>
<ul>
<li>Deacon is refactored to use a generic PushReceiver class to handle all top-level controls and configurations (i.e. start, stop, timeouts, etc.). This is sub-classed by server- or transport-specific client implementations for particular push mechanisms.</li>
<li>All Meteor-specific client code has been pulled out into MeteorPushReceiver.</li>
<li>The Android-specific "Deacon" class has become "AndroidPushSupervisor", which is instantiated by a hosting Android application in parallel with its chosen PushReceiver. The application registers the PushReceiver with the AndroidPushSupervisor, which will then call stop() and start() methods based on received BroadcastIntents containing network connectivity information.</li>
<li>The methods in the DeaconObserver interface and DeaconObservable class have been updated, and some of the high-specificity methods have been deprecated. Those deprecated methods will still work (and, in the case of DeaconObserver, still be required in application code) but will be removed before the final 1.0.0 release.</li>
<li>Important! Deacon no longer handles Android inter-thread communication using Handler and Message. This was a Demo-oriented hack to get around Android's requirement that UI object accesses only take place from the associated Activity's thread. This inter-thread communication is really the responsibility of the service that hosts Deacon (and instantiates whatever PushReceiver is required).</li>
</ul>
<div>This is only a release candidate; there is still more work to do before a full 1.0.0 release; this will be tagged with _rc02, _rc03, etc., incorporating at least the following to-dos:</div>
<div>
<ul>
<li>Incorporate Cyrille Colin's SSL- and authentication-capable Meteor client as a subclass of MeteorPushReceiver.</li>
<li>Refactor the unit test to decouple access to the PushReceiver and MeteorPushReceiver classes, and test them separately.</li>
<li>Remove extraneous System.out.println() and Log.d() calls, and other general code clean-up.</li>
</ul>
<div>Many thanks to everyone who has contributed - whether code, bug reports, debug effort or resources - to the Deacon Project!</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://deacon.daverea.com/2011/11/deacon-version-1-0-0-release-candidate-01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://deacon.daverea.com/2011/11/deacon-version-1-0-0-release-candidate-01/</feedburner:origLink></item>
		<item>
		<title>It’s Moving Time</title>
		<link>http://feedproxy.google.com/~r/deacon/~3/vbXjk4P97w0/</link>
		<comments>http://deacon.daverea.com/2011/11/its-moving-time/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 01:17:33 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://deacon.daverea.com/?p=435</guid>
		<description><![CDATA[Back in June, I announced some new supporters for the Deacon Project - The generous folks at Attendit.se, a telecom and IT solutions provider located in Stockholm, offered their support for the Deacon project. One specific offer they made? A virtual server in their cluster. As of yesterday, that server is online and available - [...]]]></description>
			<content:encoded><![CDATA[<p>Back in June, I announced some new supporters for the Deacon Project - The generous folks at Attendit.se, a telecom and IT solutions provider located in Stockholm, offered their support for the Deacon project. One specific offer they made? A virtual server in their cluster. As of yesterday, that server is online and available - and in short order I'll be provisioning it with Meteor software and our test channel scripts. Considering our current test server is an aging Dell Poweredge sitting on my rather-unreliable residential Internet connection, powered by my occasionally-problematic power utility, moving to this server will offer a big improvement in reliability and consistency. Once we're settled in, I'm also looking forward to working with the Attendit folks to perform some load and scalability testing.</p>
<p>But wait! There's more! Not only is the Deacon Project's server moving, but the library itself has made a move - into the Android Market! Android developer <a href="http://znagpush.eskan.fr/index.html">Cyrille Colin</a> has released - as a companion to an article he wrote for a French open-source magazine - the app <a href="https://market.android.com/details?id=fr.eskan.znagpush">ZnagPush</a>. This application uses a modified version of Deacon - which Cyrille plans to contribute back to the project - to deliver notifications and updates from Nagios server monitoring software to Android devices. Cyrille's updates included improvements to the reliability of message delivery, as well as the use of a SSL connection to the Meteor server for enhanced security. If you want an early look at some of Cyrille's code, you can find it on his <a href="https://github.com/eskan/Deacon">GitHub fork</a> of Deacon's <a href="https://github.com/davidrea/Deacon">repository</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://deacon.daverea.com/2011/11/its-moving-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://deacon.daverea.com/2011/11/its-moving-time/</feedburner:origLink></item>
		<item>
		<title>Deacon Mailing List: Nuked</title>
		<link>http://feedproxy.google.com/~r/deacon/~3/JJ8G8mnDtDg/</link>
		<comments>http://deacon.daverea.com/2011/10/deacon-mailing-list-nuked/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 16:51:26 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://deacon.daverea.com/?p=428</guid>
		<description><![CDATA[Bad news to report, folks: Apparently, the hosting provider where the Deacon project's blog and mailing list are served experienced a triple-disk failure on their RAID-6 array. Beginning about September 28th, the Deacon Mailing List archives and membership data were lost. As you can see, the blog is just fine... I am working on finding [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://deacon.daverea.com/wp-content/uploads/2011/10/Brokenlaptop.gif"><img class="aligncenter size-full wp-image-429" title="Brokenlaptop" src="http://deacon.daverea.com/wp-content/uploads/2011/10/Brokenlaptop.gif" alt="" width="218" height="226" /></a>Bad news to report, folks: Apparently, the hosting provider where the Deacon project's blog and mailing list are served experienced a triple-disk failure on their RAID-6 array. Beginning about September 28th, the Deacon Mailing List archives and membership data were lost. As you can see, the blog is just fine...</p>
<p>I am working on finding an alternate provider for the Deacon mailing list; for now, the blog will stay on its current host, but I would like to explore options for porting it to <a href="http://pages.github.com/">GitHub Pages</a>...</p>
<p><strong>Update 2011-10-12:</strong> I've pulled the Deacon mailing list down from host's mailman server. The redirect for existing links will be broken for a while - I'll post an update here if/when I set up a new mailing list. Since it saw very little use, either for Q&amp;A or planning discussions, I'm debating whether to set up something new at all. In the absence of any sort of discussion group feature from GitHub, I'm leaning toward Google Groups. If you have a strong desire to see the Deacon mailing list resurrected (or any opinion on the matter) feel free to sound off in the comments...</p>
]]></content:encoded>
			<wfw:commentRss>http://deacon.daverea.com/2011/10/deacon-mailing-list-nuked/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://deacon.daverea.com/2011/10/deacon-mailing-list-nuked/</feedburner:origLink></item>
		<item>
		<title>Updating: Deacon and how we build it</title>
		<link>http://feedproxy.google.com/~r/deacon/~3/sUnRQcuz3nY/</link>
		<comments>http://deacon.daverea.com/2011/09/updating-deacon-and-how-we-build-it/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 01:29:59 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://deacon.daverea.com/?p=412</guid>
		<description><![CDATA[Thanks to the testing efforts of GitHub user Bonna and our contributors at Attendit, we've uncovered a somewhat nefarious bug between Deacon and Android that leaves a parent app hanging if Deacon's connection "goes dark" without an explicit disconnect event. While this isn't the sort of event you see with emulators and comfy lab environments, it [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://deacon.daverea.com/wp-content/uploads/2011/09/bug.png"><img class="aligncenter size-thumbnail wp-image-417" title="bug" src="http://deacon.daverea.com/wp-content/uploads/2011/09/bug-150x150.png" alt="" width="150" height="150" /></a>Thanks to the testing efforts of GitHub user <a href="https://github.com/Bonna">Bonna</a> and our contributors at <a href="http://attendit.se/">Attendit</a>, we've uncovered a somewhat nefarious bug between Deacon and Android that leaves a parent app hanging if Deacon's connection "goes dark" without an explicit disconnect event. While this isn't the sort of event you see with emulators and comfy lab environments, it does happen out in the real world of fluctuating coverage and unpredictable 3G/4G/WiFi transitions. Thanks to some debug output from Bonna's gingerbread device, we think we've got it resolved - a fix is currently being tested in the <a href="https://github.com/davidrea/Deacon/commits/feature-pingcheck">feature-pingcheck branch</a>, and will be merged into <em>master</em> if it resolves the issue.</p>
<p style="text-align: center;"><a href="http://deacon.daverea.com/wp-content/uploads/2011/09/gitflow.png"><img class="aligncenter size-thumbnail wp-image-413" style="border: 2px solid gray;" title="gitflow" src="http://deacon.daverea.com/wp-content/uploads/2011/09/gitflow-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Speaking of branches, there's something else I've been working on. Ever since reading through <a href="http://nvie.com/">Vincent Driessen</a>'s nothing-short-of-<em>stellar</em> <a href="http://nvie.com/posts/a-successful-git-branching-model/">Git branching-model workflow write-up</a>, I've been looking forward to using it on Deacon. After spending some time with biz-partner <a href="https://twitter.com/#!/patlaplante">Pat</a> sand-boxing around with Vincent's <a href="https://github.com/nvie/gitflow">equally-awesome git-flow extensions</a> and Justin Hileman's <a href="https://github.com/bobthecow/git-flow-completion">git-flow autocompletion</a>, we're hooked. I'm already using git-flow with Deacon on my local development box, and when we're ready to merge in the bug fix I described earlier, I'll push the new branch structure to the github repository. This also means that the default branch on github will change to <em>develop</em>, and that <em>master</em> will only hold release snapshots that are used to build the .jar files found in the <a href="https://github.com/davidrea/Deacon/downloads">downloads section</a>.</p>
<p>If you're using Git for version control or SCM, I definitely recommend you check out git-flow. Git is extremely flexible, and imposes very little structure on branching and merging - which is part of what makes it so powerful. But with no tool-imposed discipline, a repository with several contributors can quickly become a rat's nest of branch clutter and inconsistent tags. git-flow imposes a minimal amount of discipline that can really clean up a project's repository, and fits nicely and unobtrusively into just about any software development process. Now...if only we could improve people's <a href="http://whatthecommit.com/">commit messages</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://deacon.daverea.com/2011/09/updating-deacon-and-how-we-build-it/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://deacon.daverea.com/2011/09/updating-deacon-and-how-we-build-it/</feedburner:origLink></item>
		<item>
		<title>Onward! Deacon Project gains new contributors, presses toward 1.0</title>
		<link>http://feedproxy.google.com/~r/deacon/~3/IjYeNMFMwR0/</link>
		<comments>http://deacon.daverea.com/2011/06/onward-deacon-project-gains-new-contributors-presses-toward-1-0/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 03:04:51 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://deacon.daverea.com/?p=396</guid>
		<description><![CDATA[A little over two months ago, I announced that the Deacon Project would be "back burnered" due to waning community interest and a general shortage of free time and spare cash on my part. I added a caveat, however: If anyone shows some interest in helping the project grow and mature, they have an open [...]]]></description>
			<content:encoded><![CDATA[<p>A little over two months ago, I <a href="http://deacon.daverea.com/2011/04/the-deacon-project-1-year-later/">announced</a> that the Deacon Project would be "back burnered" due to waning community interest and a general shortage of free time and spare cash on my part. I added a caveat, however: If anyone shows some interest in helping the project grow and mature, they have an open invitation to participate.</p>
<p>In the last two weeks, two new contributors have expressed an interest in seeing Deacon live "beyond beta"...</p>
<p><a href="http://deacon.daverea.com/wp-content/uploads/2011/06/attendit.png"><img class="size-medium wp-image-397 alignnone" title="attendit" src="http://deacon.daverea.com/wp-content/uploads/2011/06/attendit-300x48.png" alt="Attendit SE logo" width="300" height="48" /></a></p>
<p>The first new contributor is a Swedish company, <a href="http://www.attendit.se/">Attendit</a>, providers of telephony and IT support services based in Stockholm. Leading the charge there is Ola Samuelsen, an open source software enthusiast with experience in software development and telecommunications. Along with Ola, devs at Attendit will start off by paying some much-needed attention (see what I did there?) to the Deacon issues list, fixing some longstanding issues that I've been too busy to definitively resolve on my own.</p>
<p>From there? We have a number of other ideas in the works too, with the goals of improving Deacon's robustness and extensibility, as well as fostering more community involvement...</p>
<p><a href="http://deacon.daverea.com/wp-content/uploads/2011/06/AppliedLogix-Logo.white_.gif"><img class="alignnone size-full wp-image-400" title="AppliedLogix LLC" src="http://deacon.daverea.com/wp-content/uploads/2011/06/AppliedLogix-Logo.white_.gif" alt="Expert Digital Product Engineering" width="251" height="91" /></a></p>
<p>Around the same time I heard from Ola, the topic of push notifications surfaced in a discussion with my partners at our engineering consulting firm, <a href="http://www.appliedlogix.com/">AppliedLogix</a>. We specialize in developing embedded systems, and there are certainly many ways that the embedded world can benefit from mobile push capabilities. We're still exploring ideas, but we see several ways our firm might be involved in the Deacon Project, as well as other complimentary push-centric developments.</p>
<p>These days, push capabilities have gone beyond being a power-user feature for mobile software - in many application genres, they're simply expected. Now, emerging uses for push data delivery have the mobile industry buzzing, with new ideas surfacing all the time. An environment like this has a large solution space - and there's plenty of room for options of all sorts. I'm looking forward to seeing Deacon become a serious contender among those options, and thanks to the help of my colleagues at AppliedLogix, and new friends at Attendit, we have a solid shot at making that happen.</p>
]]></content:encoded>
			<wfw:commentRss>http://deacon.daverea.com/2011/06/onward-deacon-project-gains-new-contributors-presses-toward-1-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://deacon.daverea.com/2011/06/onward-deacon-project-gains-new-contributors-presses-toward-1-0/</feedburner:origLink></item>
		<item>
		<title>The Deacon Project: 1 Year Later</title>
		<link>http://feedproxy.google.com/~r/deacon/~3/IgPZzVB_3nc/</link>
		<comments>http://deacon.daverea.com/2011/04/the-deacon-project-1-year-later/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 12:15:24 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://deacon.daverea.com/?p=388</guid>
		<description><![CDATA[One year ago, I was working through my masters degree in software engineering. Google had not yet introduced Android 2.2 "Froyo" or cloud-to-device messaging (C2DM), and I had only purchased my first Android device (a Motorola Droid) a few months prior. Not only had Google not announced the "Gingerbread" or "Honeycomb" variants of Android - [...]]]></description>
			<content:encoded><![CDATA[<p>One year ago, I was working through my masters degree in software engineering. Google had not yet introduced Android 2.2 "Froyo" or cloud-to-device messaging (C2DM), and I had only purchased my first Android device (a Motorola Droid) a few months prior. Not only had Google not announced the "Gingerbread" or "Honeycomb" variants of Android - people had barely started guessing which confections would mascot these coming releases! It was amidst this zeitgeist that the Deacon Project sparked to life, late in the evening on April 16th, 2010, born of my desire to see equity in push capabilities between Android devices and their sundry fruit-themed competition.</p>
<p>Before the Deacon team reached our Alpha release, Google introduced C2DM with the arrival of Froyo. The team opted to press on, to offer developers an independent push alternative where they could control the entire pipeline and support older devices. At a proof of concept level, I believe the team achieved that goal. We got the attention of many app developers, peaking at nearly 2000 web page views per month. At one point, we were even offered a sponsorship; it would later fall through, but not without injecting a healthy dose of enthusiasm.</p>
<p>Unfortunately, we're learning that the cost of maintaining an open source project isn't zero. Domain names and hosting aren't free, coding and testing and responding to e-mails consume precious time, and motivating participation isn't easy. Thus far, our Pledgie button has gone unused, and adoption hasn't been strong enough to give the project much self-sustaining momentum. There have been many projects that flourish with the efforts of just a handful of curators (<a href="http://www.cybercom.net/~dcoffin/dcraw/">dcraw</a>, <a href="http://www.sentex.net/~mwandel/jhead/">jhead</a> and <a href="http://www.thekelleys.org.uk/dnsmasq/doc.html">dnsmasq</a> come to mind), but strong uptake and personal usefulness are often requisite motivators for ongoing development. Frankly speaking, that simply hasn't happened here - and as a result, it's been difficult to attract contributions in the form of code or testing, and correspondingly difficult to achieve a self-sustaining critical mass.</p>
<p>I still believe that The Deacon Project could take off. It offers a value proposition - complete infrastructure control and support for all Android devices - that's beneficial for many mobile-app business models. For now, though, I will be scaling back my efforts to test and polish the Deacon library to free up time for some other projects. Of course, I'll be happy to continue answering questions via the mailing list, making minor improvements in the codebase, and watching the issue trackers. I'd also be thrilled (honored, even!) to receive code contributions in the form of <a href="http://help.github.com/pull-requests/">pull requests</a> and <a href="http://www.kernel.org/pub/software/scm/git/docs/git-format-patch.html">patches</a> - and interested parties can certainly inquire about direct commit access. If you or your company really wants to see Deacon grow and mature, please contact me - with the right interest, conditions and support, there is always the potential to go further.</p>
]]></content:encoded>
			<wfw:commentRss>http://deacon.daverea.com/2011/04/the-deacon-project-1-year-later/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://deacon.daverea.com/2011/04/the-deacon-project-1-year-later/</feedburner:origLink></item>
		<item>
		<title>Quick Update: Capacity Testing</title>
		<link>http://feedproxy.google.com/~r/deacon/~3/zd-01cWqVGM/</link>
		<comments>http://deacon.daverea.com/2011/02/quick-update-capacity-testing/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 05:13:45 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://deacon.daverea.com/?p=385</guid>
		<description><![CDATA[Another late-night coding session, another learning experience... It seems that the Linux per-process open file descriptor limit that had me a bit concerned has a bark that's worse than its bite: dave@server:~$ ps aux &#124; grep meteord meteor 10613 76.2 6.6 11156 8356 pts/1 R Feb23 13:11 meteord daemon ddr4179 11732 0.0 0.6 3004 768 [...]]]></description>
			<content:encoded><![CDATA[<p>Another late-night coding session, another learning experience... It seems that the Linux per-process open file descriptor limit that had me a bit concerned has a bark that's worse than its bite:</p>
<blockquote><p><code>dave@server:~$ ps aux | grep meteord<br />
meteor   10613 76.2  6.6  11156  8356 pts/1    R    Feb23  13:11 meteord daemon<br />
ddr4179  11732  0.0  0.6   3004   768 pts/2    R+   00:00   0:00 grep meteord<br />
dave@server:~$ ulimit -n<br />
<strong>1024</strong><br />
dave@server:~$ sudo lsof -p 10613 | wc -l<br />
<strong>1884</strong></code></p></blockquote>
<p>As it turns out, some limits in the meteord.conf file were preventing persistent connections from many of the Deacon instances in my previous test, and so only a limited number were able to hold a connection at any given time. I've fixed that now, and the tests seem to be running a bit more smoothly. More results as I get them...</p>
]]></content:encoded>
			<wfw:commentRss>http://deacon.daverea.com/2011/02/quick-update-capacity-testing/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://deacon.daverea.com/2011/02/quick-update-capacity-testing/</feedburner:origLink></item>
		<item>
		<title>Testing: Epilogue to Chapter 1</title>
		<link>http://feedproxy.google.com/~r/deacon/~3/8HUHrwWSs5k/</link>
		<comments>http://deacon.daverea.com/2011/02/testing-epilogue-to-chapter-1/#comments</comments>
		<pubDate>Mon, 21 Feb 2011 13:23:27 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://deacon.daverea.com/?p=380</guid>
		<description><![CDATA[Outside the delightful task of cleaning and organizing our basement, this weekend offered some prime coding time - and I spent it chewing through a new and improved Deacon+Meteor test suite. Unfortunately, the results have been more cause for confusion than celebration. The new suite uses a pair of dedicated machines - one server, one [...]]]></description>
			<content:encoded><![CDATA[<p>Outside the delightful task of cleaning and organizing our basement, this weekend offered some prime coding time - and I spent it chewing through a new and improved Deacon+Meteor test suite.</p>
<p><a href="http://deacon.daverea.com/wp-content/uploads/2011/02/IMG_8494.jpg"><img class="aligncenter size-medium wp-image-383" title="IMG_8494" src="http://deacon.daverea.com/wp-content/uploads/2011/02/IMG_8494-300x225.jpg" alt="" width="300" height="225" /></a>Unfortunately, the results have been more cause for confusion than celebration. The new suite uses a pair of dedicated machines - one server, one client - on an isolated network with PTP-synchronized clocks and a socket-based side channel for control. It successfully addresses the error introduced by including push send time in the round-trip duration, but exposes many more weaknesses in my previous tests.</p>
<p>While I didn't seem to encounter this limit before, I'm now having great difficulty getting either the client or server machines past 1,024 connections - an upper-bound imposed by Linux's per-process file descriptor limit. This limit is configurable, but still seems to be leading me on a merry chase. I also discovered that the previous test didn't account for Deacon instances that weren't actually <em>connected</em> to the server - so I've added some extra accessors and state tracking to Deacon to prevent the test from advancing before all the clients are ready.</p>
<p>I'm still making progress - so stay tuned and hopefully I'll have some better news to share soon. In the mean time, suggestions are always welcome via the comments or <a href="http://deaconproject.org/mailing-list">mailing list</a>...</p>
]]></content:encoded>
			<wfw:commentRss>http://deacon.daverea.com/2011/02/testing-epilogue-to-chapter-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://deacon.daverea.com/2011/02/testing-epilogue-to-chapter-1/</feedburner:origLink></item>
		<item>
		<title>Burn-in testing Meteor with Deacon</title>
		<link>http://feedproxy.google.com/~r/deacon/~3/_m0oOup1gk0/</link>
		<comments>http://deacon.daverea.com/2011/01/burn-in-testing-meteor-with-deacon/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 12:59:01 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Information]]></category>

		<guid isPermaLink="false">http://deacon.daverea.com/?p=355</guid>
		<description><![CDATA[On a few occasions in blog comments and on the Deacon Project mailing list, interested folks have asked just how many Deacon clients a Meteor server can handle. The discussions have mostly revolved around theoretical limits imposed by Meteor's codebase, or the Linux OS under which it runs. Rather than perpetuating the discussion on hearsay [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://deacon.daverea.com/wp-content/uploads/2011/01/Leitz_117298_frei.jpg"><img class="size-full wp-image-357 alignleft" title="Leitz Microscope" src="http://deacon.daverea.com/wp-content/uploads/2011/01/Leitz_117298_frei.jpg" alt="" width="118" height="240" /></a>On a few occasions in blog comments and on the <a href="http://www.deaconproject.org/mailing-list">Deacon Project mailing list</a>, interested folks have asked just how many Deacon clients a Meteor server can handle. The discussions have mostly revolved around theoretical limits imposed by Meteor's codebase, or the Linux OS under which it runs. Rather than perpetuating the discussion on hearsay and conjecture, I decided to write up a little Meteor test suite and commit it as part of Deacon to enable some objective experimentation.</p>
<p>My test, which is located in the source tree's <a href="https://github.com/davidrea/Deacon/tree/master/src/org/deacon/test">org.deacon.test</a> package, performs some simplistic load testing of the Meteor server using a whole bunch of DeaconService instances. It runs in pure Java, so it can be run from your PC rather than an Android device. Along with some delays to prevent race conditions, the first test - aptly named the <em>Simultaneous Subscribers Test</em> - successively generates tens of thousands of Deacon instances, connects them all to the same channel on a single Meteor server, and measures the worst-case push notification turnaround times by sending pushes containing the system time in milliseconds as the payload. When the pushes are received, the payload times are compared with the system's new current time to provide a latency measurement. The <em>Simultaneous Subscribers Test</em> runs until the push latency reaches a pre-defined maximum (default: 1 second), or a maximum number of subscribers are created (default: 1 million).</p>
<p>I'm working on a second test to prod Meteor for its maximum <em>achievable channel count</em>. As subscribers are successively added on the client side, each will join a new channel. Test push messages - again containing CurrenTimeMillis() payload data - will be sent to each channel, and latency measured until a maximum latency or channel count is reached.</p>
<p>As far as the architecture required to support widely-adopted mobile applications goes, these tests are very simplistic. In my case, they measure latency over a LAN (which is good, as it reduces the influence of intermediary bottlenecks on the results) but all pushes terminate at a single machine (which is bad, as they must be crammed through a single network interface and CPU). A distributed test, however, would require far more effort, infrastructure and coordination - so the tests in this little suite offer a good first-order look at Meteor's capabilities when used as a mobile push server. Another caveat to these test results is the way latency is measured: while using the System's CurrentTimeMillis() value as a payload is clever, it inherently lumps together the latency of push <em>client delivery</em> with that of connecting to the channel controller and delivering the push in the first place. I believe this is responsible for many of the outliers in the chart below.</p>
<p>So how'd it do on my runs? Squeaking along on my 1.8GHz Celeron-powered server (an aging but trusty Dell Poweredge 600SC with 512MB of RAM), I was able to connect 32,768 simultaneous Meteor subscriptions with a maximum latency of about 0.7 seconds, which is where I had configured the test to stop. The file descriptor limit on this machine (/proc/sys/fs/file-max) is 65,536 with only 800-or-so open descriptors at idle, so I imagine I had a lot more headroom remaining. Last night, I added a charting library and re-ran the test, this time setting the stop value around 25,000 (I wanted it to complete before I woke up this morning). The results: 25,000 instances saw a maximum latency under half-a-second, with a typical latency between 40 and 100ms:</p>
<div id="attachment_369" class="wp-caption aligncenter" style="width: 528px"><a href="http://deacon.daverea.com/wp-content/uploads/2011/01/Screenshot-Simultaneous-Subscriber-Test-Results.png"><img class="size-full wp-image-369" title="Screenshot-Simultaneous Subscriber Test Results-Small" src="http://deacon.daverea.com/wp-content/uploads/2011/01/Screenshot-Simultaneous-Subscriber-Test-Results-Small.png" alt="" width="518" height="370" /></a><p class="wp-caption-text">Simultaneous Subscribers Test Result - Click for much more detailed version</p></div>
<p>This chart shows the worst-case latency observed at each subscriber count. As you can see, the results are distributed largely bimodally between around 40ms and 100ms values, with higher outliers. The linearity of this chart seems to indicate that extrapolation to far more client instances would be entirely feasible.</p>
<p>My next step is to complete the <em>channel count test</em> as well as revamp the stop conditions for this test so that it can be run over longer periods and accumulate a much larger quantity of clients. Further, I'll downsample the chart data and add error bars, so that is conveys more meaningful data with fewer raw datapoints. Stay tuned!</p>
<p>[Image credit: <a href="http://commons.wikimedia.org/wiki/File:Leitz_117298_frei.jpg">Wikimedia Commons</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://deacon.daverea.com/2011/01/burn-in-testing-meteor-with-deacon/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://deacon.daverea.com/2011/01/burn-in-testing-meteor-with-deacon/</feedburner:origLink></item>
		<item>
		<title>9 Million Reasons</title>
		<link>http://feedproxy.google.com/~r/deacon/~3/GuJzTvIA5Vo/</link>
		<comments>http://deacon.daverea.com/2011/01/9-million-reasons/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 17:14:26 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://deacon.daverea.com/?p=362</guid>
		<description><![CDATA[Apparently it's been a good year for Sony: their Xperia line of Android phones has certainly been a contributing factor to a 39-million-Euro profit-before-taxes for 2010. As part of their recently-released 2010 financial report, they prominently announce the sale of over nine million Xperia devices last year. Thus far, not a single one of those [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://deacon.daverea.com/wp-content/uploads/2011/01/Sony_Ericsson_Xperia_X2.jpg"><img class="aligncenter size-medium wp-image-363" title="Sony_Ericsson_Xperia_X2" src="http://deacon.daverea.com/wp-content/uploads/2011/01/Sony_Ericsson_Xperia_X2-300x87.jpg" alt="" width="300" height="87" /></a>Apparently it's been a good year for Sony: their <em>Xperia</em> line of Android phones has certainly been a contributing factor to a 39-million-Euro profit-before-taxes for 2010. As part of their recently-released <a href="http://www.sony.net/SonyInfo/IR/library/semc/pdf/q410.pdf">2010 financial report</a>, they prominently announce the sale of over <strong>nine million</strong> <em>Xperia</em> devices last year. Thus far, not a single one of those 9 million phones (rooted-and-rom'd devices excepted, of course) runs any version of Android newer than 2.1. And if you read my previous post, you know what that means: no C2DM push notifications.</p>
<p>Those <em>Xperia</em> devices represent 9 million reasons for developers to carefully consider how they implement push in their applications. That isn't to say "use Deacon, we're better!" (because admittedly, by several metrics, we're not!) but rather to suggest that a silver-bullet strategy for push notifications leaves a huge potential market unserved. While certain apps could provide "push-disabled" versions for pre-2.2 devices, developers then risk offering disparate user experiences that result in polarized opinions of their product. Rather than falling back to polling or disabling push altogether, if a developer plans to maintain a source tree for pre-2.2 devices anyway, why not use Deacon as a fall-back push provider? Given that the same application server that feeds Google's C2DM backend could be easily adapted to act as a Meteor event controller in the case that a client connects from a pre-2.2 handset.</p>
<p>[Xperia image: <a href="http://commons.wikimedia.org/wiki/File:Sony_Ericsson_Xperia_X2.jpg">Wikimedia Commons</a> / Espen Irwing Swang]</p>
]]></content:encoded>
			<wfw:commentRss>http://deacon.daverea.com/2011/01/9-million-reasons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://deacon.daverea.com/2011/01/9-million-reasons/</feedburner:origLink></item>
		<item>
		<title>Push Apps for All? Or just Some?</title>
		<link>http://feedproxy.google.com/~r/deacon/~3/LbFxyYZwEJc/</link>
		<comments>http://deacon.daverea.com/2011/01/push-apps-or-all-or-just-some/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 00:59:46 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://deacon.daverea.com/?p=347</guid>
		<description><![CDATA[This past May, when Google unveiled version 2.2 of Android - codenamed Froyo - the Deacon team wrung out some commentary on the addition of built-in push capability. The gist? We think it's great that there are a few different ways to do push on Android, and we think Deacon will continue to be a good [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://deacon.daverea.com/wp-content/uploads/2011/01/handcuffs1.jpg"><img class="aligncenter size-medium wp-image-350" title="handcuffs" src="http://deacon.daverea.com/wp-content/uploads/2011/01/handcuffs1-300x125.jpg" alt="" width="300" height="125" /></a></p>
<p>This past May, when Google unveiled version 2.2 of Android - codenamed Froyo - the Deacon team <a href="http://deacon.daverea.com/2010/05/froyo-deacon/">wrung out some commentary</a> on the addition of built-in push capability. The gist? We think it's great that there are a few different ways to do push on Android, and we think Deacon will continue to be a good choice for many developers.</p>
<p>One point we made in our Froyo discussion was that many Android devices won't ever be able to use Google's C2DM push solution. A quick look at the <a href="http://developer.android.com/resources/dashboard/platform-versions.html">latest adoption numbers</a> from Google is evidence of that - nearly half of the <em>millions</em> of Android phones in use worldwide are running pre-2.2 operating systems. Deacon is a great way to push-enable apps on older devices - but what about devices that <em>ought to have 2.2?</em></p>
<p>I'm referring, of course, to Samsung and T-Mobile's shenanigans of late. Yesterday, Androidspy <a href="http://androidspin.com/2011/01/12/breaking-t-mobile-internals-confirm-samsung-is-holding-the-android-world-hostage/">broke a rumor</a> from "a reliable source" that accused the two companies of withholding an otherwise-ready Froyo update for the wildly-popular Vibrant handset, in hopes of bolstering sales of the forthcoming Vibrant 4G+ model. Today, AndroidGuys followed up with some <a href="http://www.androidguys.com/2011/01/13/android-community-means-apparently/">commentary</a> which opines that such tactics - if true - are "downright wrong." Speaking only for myself, I couldn't agree more. Because not only does holding back the Vibrant's Froyo update negatively impact users, it also artificially constrains the user base of developers who push-enable their apps with C2DM.</p>
<p>There are <a href="http://www.androidguys.com/2010/12/22/galaxy-phones-sell-93-million-worldwide/">well over 9 million</a> Galaxy-S-based phones in users' hands worldwide. A sizable portion of these are doubtless the Vibrant flavor - and run Android's push-incapable "Eclair" variant. While Samsung has (indirectly, and in my opinion unconvincingly) <a href="http://www.cnet.com/8301-19736_1-20028478-251.html">denied the rumors</a>, they've certainly given us another facet of the mobile application ecosystem to consider: <em>should app developers <strong>hedge</strong> their technology choices?</em></p>
<p>In this case, integrating Deacon as a push platform not only enables compatibility with older devices that <strong>can't</strong> run Android 2.2, but also insulates app developers against manufacturers or carriers who <strong>won't</strong> keep their otherwise-capable handsets up to date. The distinction is between technical and political limitations - and Deacon can help with both.</p>
<p>I'll be the first to forgive Samsung and T-Mobile if they come clean and make the Vibrant's Froyo situation right - but we should still learn from the free lesson that this rumor offers up. Likewise, I'm a big fan of C2DM. I enjoy C2DM apps on my own handset, and every push option on Android has its optimal use cases - that's the beauty of a platform that offers <em>choice</em>. To that end, I'm also readying a post comparing Deacon and C2DM, and providing a rundown of the situations where each excels. Stay tuned...</p>
]]></content:encoded>
			<wfw:commentRss>http://deacon.daverea.com/2011/01/push-apps-or-all-or-just-some/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://deacon.daverea.com/2011/01/push-apps-or-all-or-just-some/</feedburner:origLink></item>
		<item>
		<title>Deacon Demo App: Prettied up and Ready to Rock</title>
		<link>http://feedproxy.google.com/~r/deacon/~3/ptPprda1Zcs/</link>
		<comments>http://deacon.daverea.com/2011/01/deacon-demo-app-prettied-up-and-ready-to-rock/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 05:46:52 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://deacon.daverea.com/?p=341</guid>
		<description><![CDATA[For quite a while (read: since October) I've been meaning to spend some time improving the Deacon demonstration application. What we had before was OK - it connected to the Deacon test server, showed some messages coming in, and generally indicated that something was happening behind the curtain. But I wanted to add more configurability, [...]]]></description>
			<content:encoded><![CDATA[<p>For quite a while (read: since October) I've been meaning to spend some time improving the Deacon demonstration application. What we had before was OK - it connected to the Deacon test server, showed some messages coming in, and generally indicated that something was happening behind the curtain. But I wanted to add more configurability, and more visibility into Deacon's state. Most importantly, I wanted to switch to running Deacon in a service, rather than within the app's user interface activity.</p>
<p><a href="http://deacon.daverea.com/wp-content/uploads/2011/01/Deacon-Demo-1.0-screenshot.png"><img class="aligncenter size-medium wp-image-342" title="Deacon-Demo-1.0-screenshot" src="http://deacon.daverea.com/wp-content/uploads/2011/01/Deacon-Demo-1.0-screenshot-180x300.png" alt="Screenshot of Deacon Demonstration app version 1.0" width="180" height="300" /></a></p>
<p>With the 1.0 release of the Deacon Demo app, you can choose the channel to subscribe to on the Deacon project's test server, as well as stop and re-start the Deacon instance. Icons and text indicate whether the Deacon instance itself is running, as well as whether the device has a network connection. If you navigate away from the Deacon Demo app's UI, the corresponding service will create a notification if any push messages are received that contain a <strong>prime number payload</strong> - clicking the notification in the pull-down list will bring you back to the Deacon Demo activity.</p>
<p>You can download this app directly from GitHub using the QR Code below. Make sure you have the "Unknown sources" checkbox ticked in your device's Application Settings!</p>
<p><a href="http://deacon.daverea.com/wp-content/uploads/2011/01/Deacon-Demo-1.0-QR1.png"><img class="aligncenter size-full wp-image-344" title="Deacon-Demo-1.0-QR" src="http://deacon.daverea.com/wp-content/uploads/2011/01/Deacon-Demo-1.0-QR1.png" alt="Scannable QR Code to allow direct downloading of the Deacon Demo App from GitHub" width="150" height="150" /></a></p>
<p>Please log any problems you encounter, or feature requests, at the <a title="Deacon Demo Application Issue Tracker" href="https://github.com/davidrea/Deacon-Demo/issues">Deacon-Demo issue tracker</a>. For a look at the source code or more project details, check out the <a title="Deacon Demo Project on GitHub" href="https://github.com/davidrea/Deacon-Demo">Deacon Demo GitHub project page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://deacon.daverea.com/2011/01/deacon-demo-app-prettied-up-and-ready-to-rock/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://deacon.daverea.com/2011/01/deacon-demo-app-prettied-up-and-ready-to-rock/</feedburner:origLink></item>
		<item>
		<title>Testing Deacon on Devices</title>
		<link>http://feedproxy.google.com/~r/deacon/~3/FSgWWHKFhng/</link>
		<comments>http://deacon.daverea.com/2010/12/testing-deacon-on-devices/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 02:06:50 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Information]]></category>

		<guid isPermaLink="false">http://deacon.daverea.com/?p=333</guid>
		<description><![CDATA[Around this time of the year, it's not uncommon (in many Western nations, at least) to hear songs about a certain saint of Christmas who's "making a list, and checking it twice". The Deacon Project has kicked off a list of its own, but rather than keeping track of kids' shenanigans, this one tracks how well [...]]]></description>
			<content:encoded><![CDATA[<p>Around this time of the year, it's not uncommon (in many Western nations, at least) to hear songs about a certain <a href="http://en.wikipedia.org/wiki/Santa_claus">saint of Christmas</a> who's "<a href="http://en.wikipedia.org/wiki/Santa_Claus_Is_Coming_to_Town">making a list, and checking it twice</a>". The Deacon Project has kicked off a list of its own, but rather than keeping track of kids' shenanigans, this one tracks how well various Android devices play with the Deacon push notifications library. Without further ado...</p>
<p><strong><a href="https://github.com/davidrea/Deacon/wiki/Device-testing">The Deacon Device Testing List</a></strong></p>
<p>The goal of the Device Testing List is to catalog the results of developers testing Deacon on their devices. There are a lot of Android devices on the market, in different form factors, with different software versions and manufacturer/carrier customizations. Deacon is designed to avoid dependence on any one device's capabilities or OS version - a strong ally in the fight against <a href="http://android-developers.blogspot.com/2010/05/on-android-compatibility.html">fragmentation</a>. Nonetheless, the Deacon team can't possibly test the library in all the different hardware/software environments where it might be used. Such testing can reveal bugs and help improve Deacon - so I'm hopeful that those who are running Deacon-powered apps on the spectrum of Android devices will log their results on the Device Testing List.</p>
<p>Keep an eye on the list as we develop the format and add devices. So far, only the devices that I have personally tested appear - but I hope that the Deacon community changes that quickly!</p>
<p><em>Note: As far as I can tell, you just need a GitHub account to edit the Deacon Wiki, which hosts the Device Testing List. If anyone has trouble making edits, please let me know by comments or e-mail!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://deacon.daverea.com/2010/12/testing-deacon-on-devices/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://deacon.daverea.com/2010/12/testing-deacon-on-devices/</feedburner:origLink></item>
		<item>
		<title>Deacon Beta Released!</title>
		<link>http://feedproxy.google.com/~r/deacon/~3/uuigNFpmKYI/</link>
		<comments>http://deacon.daverea.com/2010/12/deacon-beta-released/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 05:17:18 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://deacon.daverea.com/?p=326</guid>
		<description><![CDATA[The Deacon team is proud to annouce the release of the Beta version of the Deacon push notifications library for Android! If the Deacon Project blog's hit stats are any indication, weekends on the web are pretty quiet when it comes to Android Push Notifications. But this weekend has been a busy one around Deacon [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://deacon.daverea.com/wp-content/uploads/2010/12/Betamax_Tape_v2.jpg"><img class="aligncenter size-medium wp-image-327" title="Betamax Tape" src="http://deacon.daverea.com/wp-content/uploads/2010/12/Betamax_Tape_v2-300x196.jpg" alt="" width="300" height="196" /></a></p>
<p style="text-align: center;"><em><strong>The Deacon team is proud to annouce the release of the Beta version of the Deacon push notifications library for Android!</strong></em></p>
<p>If the Deacon Project blog's hit stats are any indication, weekends on the web are pretty quiet when it comes to Android Push Notifications. But this weekend has been a busy one around Deacon HQ... After plenty of third-party testing over the last month, as well as some code updates and experimentation, this weekend marks the entry of the Deacon push library for Android and Java to "Beta" status.</p>
<p>In addition to all the functionality included in Deacon's Alpha Release, Beta includes updated design information, the beginnings of an automated test suite, and several bug fixes. Contrary to previous indications on this blog, the Beta release does <em>not</em> include compatibility with Google's C2DM framework. While this was an exciting potential feature, the Deacon developers received precisely zero interest in it from the developer community. Unless robust demand for C2DM compatibility appears in the comments section, or on the <a href="http://www.deaconproject.org/mailing-list/">Deacon Project mailing list</a>, further development in this area will not be pursued.</p>
<p>In the run-up to this Beta release, several developers contacted me to express an interest in Deacon. Were it not for their enthusiasm, and their constructive feedback on Deacon's operation, I would likely have shelved the project entirely. Special thanks to Lee J. (<a href="http://twitter.com/#!/britishturbo">@britishturbo</a>, developer of <a href="http://www.tweetissimo.com/">Tweetissimo</a>) and <a href="http://kasperholtze.com/">Kasper Holtze</a> for their encouragement and interest.</p>
<p>At this point in Deacon's evolution, the library should be sufficiently robust to permit development of push-based Android and Java applications with a reasonable expectation of performance and stability. While Deacon has not (to my knowledge) been tested in large-scale deployments or production environments, the real-world tests to which it has been subjected indicate that it is robust to changing network conditions, consumes network bandwidth efficiently, and minimally impacts handset battery life. It is my hope that this Beta release will encourage more developers to actively test Deacon in their push-based Android applications, and that they will report on their experiences on Deacon's <a href="http://www.deaconproject.org/mailing-list/">mailing list</a> and <a href="https://github.com/davidrea/Deacon/issues">bug tracker</a>.</p>
<p>Following this Beta release, I plan to move to a largely <strong>reactive</strong> and <strong>contribution-based</strong> model for Deacon development. I will gladly follow up on reported issues, respond to mailing list inquiries and make any code changes needed. Further, I will welcome submitted patches and pull-requests in order to incorporate code changes from the community. However, barring changes resulting from my own Android app development activities, I do not plan to aggressively add features or enhancements. Deacon, like most Open-Source projects, belongs to its community, and community involvement will be the key driver in its ongoing evolution. In short: <em>Ask and ye shall receive. Code and ye may contribute. But sit thee not silent.</em></p>
<p>[Image: <a href="http://commons.wikimedia.org/wiki/File:Betamax_Tape_v2.jpg">Wikimedia Commons</a> (public domain)]</p>
]]></content:encoded>
			<wfw:commentRss>http://deacon.daverea.com/2010/12/deacon-beta-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://deacon.daverea.com/2010/12/deacon-beta-released/</feedburner:origLink></item>
	</channel>
</rss>

