It. Is. Finished.
No, Deacon's Beta release is not finished.
But grad school is. As of 8:30 tonight, my wife and I clicked the mouse button together on my final submission of my final class of my final quarter of a master's in software engineering.
After completing 64 credits in a year, I must say, it's quite a relief! And now we'll return you to your regularly scheduled programming...
Deacon/C2DM Compatibility
After reading a bit today about Google's implementation of their new "Chrome to Phone" system, I had an idea that I think will finally give the Deacon beta release sufficient functional differentiation to earn its name.
The Cloud-to-Device Messaging feature in Android 2.2, referred to as C2DM for short, is what makes Chrome to Phone work. Your Chrome web browser contacts a Google AppEngine server, fires off a message, which is then routed through C2DM to your handset. In reading more about how C2DM interacts with developers' apps, I learned that it uses an Android's Intent objects to let an app know that a new push message has been received.
This got me thinking - how could an app developer put together an app that could work both on C2DM-enabled phones (Android 2.2 and beyond) as well as use Deacon to support pre-2.2 devices, or tablets that don't have Google's C2DM framework installed (it's only available on "with Google" devices). If a Deacon-powered service could fire an Intent that matched the format of Google's C2DM intents (reminiscent of a suggestion on the Deacon mailing list), then a developer would only need to write one set of receiving-end code. While deploying separate versions of the app (containing the appropriate service; C2DM- or Deacon-powered) would still be necessary, the code that consumes push notifications could be identical.
So, if you check out the Deacon Project Roadmap, you'll noticed that I added C2DM-compatible intent generation as a Beta release feature (and made a few other updates). Now, I'm very much looking forwarding to having time to work on it! Six days of grad school left...
Quick Update: Beta and Beyond
The tough thing thing about unsponsored open-source projects is often that - by necessity - they're left to be completed in one's spare time. For me, Deacon began as a something akin to a personal "20% project" - the analogy being that available time not dedicated to work or school could be spent working on Deacon. But in the final weeks of the final term of graduate school, the volume of such time starts to feel like negative 20%!
Clearly, the last few weeks haven't afforded much time to work on Deacon's beta release, nor will the next few - between work, final exams, preparation of my "mini-thesis" and the celebrations that friends and family have planned. Of course, this period isn't without its downtime - which often finds me making plans or cooking up ideas for Deacon. At this point, I'm planning to push hard toward the Beta in August, after life calms down a bit. This push will include working on a Deacon-powered app - mostly as a means of trying out the library myself - as well as several other enhancements and features.
Once Deacon reaches Beta status, the ball will be in the community's court. Motivation for open-source developers is often derived from adoption, and Deacon is no exception to this rule. Testing, feedback, participation and - ultimately - adoption by developers will drive the level of development that's put into Deacon: basically, "ask and ye shall receive"! Blog comments, bug submissions, feed subscriptions, link-backs and other such digital expressions of interest are the currency of the open-source world - and they're what will keep the Deacon Project going.
Push Opportunity: The Tour de France
A huge opportunity for mobile push technology is in professional sports - there are few other topics where real-time updates mean so much to so many. After I bought my first Android phone last November, I searched for apps that could provide real-time coverage of the Winter Olympics: there weren't any. The few apps in the Android Market that promised coverage of the Games were disappointing. They either used battery- and bandwidth-hogging polling techniques (we're looking at you, SportsTap!), or just encapsulated browser-based data with no notifications. Not long after, Deacon got its start during the run-up to the NHL playoffs. March Madness came and went, as did the Boston Marathon, the Kentucky Derby and the Preakness, and (in a few days) the 2010 World Cup.
Tomorrow, the 2010 Tour de France will kick off in Rotterdam - and the Android Market remains disappointingly devoid of apps that can push real-time updates to eager fans. While the Tour does offer an official iPhone app, they're missing out on a substantial customer group - one that represents possibly the fastest-growing smartphone platform with a 160,000 handset-a-day activation rate. Third-party app developers are missing a significant opportunity too - with no "official" app in contention, independent developers' chances of offering the must-have app for following the Tour are much greater.
This is a call to Android developers that goes beyond Deacon: The Android ecosystem needs push apps! So far, the vast majority of Android handsets don't run Froyo - and while Cloud-to-Device Messaging from Google isn't a long way off, the opportunity to deliver push-based apps now using Deacon, Xtify, Urban Airship or whatever framework you choose is ripe for the picking!
(Image: Wikimedia Commons, public domain)
A coder’s birthday present…
I hope you'll excuse me, but I'm going to get personal for a moment...
After spending a great morning talking about Android, lamenting car problems and happily discussing life in general with Spencer, and after enjoying a great birthday lunch with my colleagues (at which they sang, and the diner lady offered up a free slice of Godiva cheesecake), I got home and found a new email: Deacon has its first issue.
I imagine most folks would see "[GitHub] New Issue" in their inbox and groan, then perhaps click into the message with trepidation or dread - but I count this issue among the nicest birthday gifts I've received this year. Why? Because I'm pretty new at this whole "software engineering" thing, and the fact that someone out there is taking an active interest in what my friends and I have created is really, really encouraging. Maybe that's just me being a touch narcissistic, but it feels good to know that another engineer is interested enough in our project to try it out.
Though I'm not [yet] a parent, I imagine this is a bit akin to seeing your kid spit up for the first time. Sure, it's gross and it smells funny, but damned if you're not just a bit proud that it's your kid that made that mess!
(Image: Wikimedia Commons, public domain)
Project addition: Mailing list
It seems like just about every open source project has a code repo (our repo, on GitHub), a project wiki (our wiki), a bug tracker (our issues) and a mailing list. As of this morning, the Deacon Project has added this last piece of the puzzle. While many open-source projects go with separate mailing lists for users and developers (and sometimes a low-traffic "announce" list), we're going with just one list while we get started. You can reach our mailing list from the Links section in the sidebar, or by surfing over to this address:
http://deaconproject.org/mailing-list/
If you're interested in contributing to Deacon, keeping tabs on what we're up to or receiving updates when we release new versions, please sign up for the deacon-talk list!
