Article submission: Novice's Introduction to Telepathy



Here's my article for GNOME Journal 17. Paul, I made some more edits since I last sent it to you. It's meant to accompany Danielle's piece on Mission Control 5.

Regarding illustrations: Sorry, I do not have time to track down art to accompany the piece. There's a diagram of Telepathy's architecture, http://mission-control.sourceforge.net/mission-control.png , which could easily go with Danielle's piece. For mine, I'd suggest some combo of the following:
* a screenshot of Empathy on the desktop
* a screenshot from Moblin's specific Empathy implementation (perhaps from http://www.robster.org.uk/blog/2009/11/04/gnome-in-moblin-people-panel/ or a better one if you can find it)
* a slide from http://blog.barisione.org/2009-10/contacts-on-maemo/
* a diagram of Telepathy's architecture

Do you need a short About The Author biography?  It could be

Sumana Harihareswara is a manager at Collabora, Ltd., which works rather a lot on Telepathy. She contributes to the project primarily via documentation, advice on IRC, bug triage, and nagging. Sumana has been using FLOSS for eleven years and evangelizes more than is good for her, including at her blog at http://harihareswara.net .

-Sumana Harihareswara



Telepathy overview
Suggested title: A Novice's Introduction to Telepathy
by Sumana Harihareswara
1450 words or so

It's convenient to have a unified interface to different chat services & protocols: XMPP, MSN, Google Talk, AOL Instant Messenger, Bonjour Chat, blah blah blah. You may not think this is related, but when I want to work with someone on a document and we're at different computers, it would be great to use my regular word processor, instead of having to load up a web browser with Google Docs. And I'd love to get to send cell phone text messages (SMS) in the same app with my other chats. These are all aspects of __real-time communication__, and "the Telepathy real-time communications framework":http://telepathy.freedesktop.org/ is aiming to solve all these problems.
h3. Pervasive real-time communication
The Telepathy project aims to give desktop applications (such as word processors, CAD programs, games, and jukeboxes) a way to painlessly integrate chat, SMS, and VoIP (voice over IP) telephony features. It's a Freedesktop project, and it's enabling new functionality on the desktop and on embedded devices. Telepathy's developers hope programmers will use Telepathy to improve your computer and cell phone and get rid of the annoyances I mentioned above, and create neat applications and services. "Empathy":http://live.gnome.org/Empathy is probably the most prominent Telepathy-based application. GNOME 2.28, Fedora 12, and Ubuntu 9.10 are shipping, or will ship, Empathy as their default chat program, giving developers on all those platforms access to the Telepathy framework.
I'll give a brief overview of Telepathy, Empathy, and what they mean for you.
h3. Moving parts
Here's one way of viewing the Telepathy framework. It has three essential parts: #**a bunch of "Connection Managers":http://telepathy.freedesktop.org/wiki/Components**. Each handles the interaction with a protocol or set of protocols (such as XMPP, Google Talk, AOL Instant Messenger, and MSN). #**Mission Control**, managing accounts and channels. For more details, see Danielle Madeley's article "Telepathy, Empathy and Mission Control 5 in GNOME 2.28" in this issue. #**the specification**, "telling all the parts how to interact via D-Bus":http://telepathy.freedesktop.org/spec/ This design gives Telepathy a lot of flexibility. If a new interesting service comes along, like Facebook chat, we (or you!) can just write a new Connection Manager for it and bam, anything that uses Telepathy can now interact with it. Who knows what other interesting collaboration or communication networks might hook into Telepathy someday? (Sure, it would be nice if everyone just used XMPP. But users use a zillion different networks for voice/video/text chat, and won't be stopping anytime soon. So it's lovely to have an abstraction that provides developers and users with the features they need, so you don't **have** to worry about the underlying communications network.)
h3. D-Bus, Tubes, and wormholes
Another important aspect of Telepathy's architecture that it's built on "D-Bus":http://www.freedesktop.org/wiki/Software/dbus , the infrastructure that lets applications, frameworks, and low-level system components talk to each other. "Telepathy Tubes":http://people.collabora.co.uk/~danni/telepathy-book/chapter.tubes.html takes advantage of this by enabling programs on different computers to talk to each other in terms of D-Bus. Prior to Tubes, the standardized D-Bus API was only useful inside a desktop session, so that one user's desktop applications could talk to each other. As Telepathy developer Dafydd Harries explains: bq. Tubes come in two flavours: one looks like TCP, the other one is D-Bus. What D-Bus tubes do is make it so that programs on different computers can talk D-Bus to each other. So the D-Bus part is working on two levels. First, you use D-Bus to talk to the thing that gives you the tube. And then you use it to talk to the thing on the other end of the tube, once you've set it up....With Tubes, my copy of program X doesn't need to care about the details of how it's going to talk to your copy of program X. So Tubes can act like a wormhole, not just between two different people's computers, but between unassuming regular ol' apps on their desktops. For example, Tubes helped One Laptop Per Child get collaborative activities on the XO. "On Sugar":http://www.collabora.co.uk/services/case-studies/olpc , you and a friend can collaborate on writing a paper together right in your word processor, or play a game against each other -- without having to deal with a slow, limited web app in a web browser. "One Google Summer of Code student used Telepathy to make Sudoku multiplayer.":http://blog.zhangsen.org/search/label/telepathy And in GNOME 2.28, "Empathy makes it easy to share your screen via VNC":http://www.jonobacon.org/2009/10/09/this-is-what-awesome-looks-like/ . Check out "Telepathy developer Guillaume Desmottes's Gran Canaria Desktop Summit talk on how to use Tubes and Telepathy to make GNOME a more collaborative desktop":http://people.collabora.co.uk/~cassidy/talks/2009-07-07-lets-make-gnome-a-collaborative-desktop.pdf .
h3. Ripples in the ocean of mobile
Even regular folks who have never heard of GNOME are getting the benefit of Telepathy with (for example) the new N900 smartphone. "One example is in the addressbook":http://blog.barisione.org/2009-10/contacts-on-maemo/ -- it combines the different ways you can contact a person on the same screen (such as XMPP, SMS, Skype calls, GSM calls, etc), instead of forcing different flows for different ways of contacting people. Moblin, another Linux-based open source OS for mobile, also makes use of Telepathy for contacts integration. Empathy is the default chat client in Moblin, and Telepathy empowers its "people panel integration":http://www.robster.org.uk/blog/2009/11/04/gnome-in-moblin-people-panel/ .
h3. Looking to the Future
The "connection managers":http://telepathy.freedesktop.org/wiki/Components provide support for several protocols, with some managers more stable and featureful than others. I'd especially watch the improvement of telepathy-haze (based on Pidgin's libpurple), "telepathy-butterfly":http://telepathy.freedesktop.org/wiki/Haze%20vs%20Butterfly for MSN, and "telepathy-yafono":http://telepathy.freedesktop.org/wiki/Yafono for SMS and other wireless modem functionality. yafono promises to bring functionality outside of the normal chat and VoIP stuff, so it's fairly exciting. The "Empathy roadmap":http://live.gnome.org/Empathy/Roadmap and Danielle Madeley's article in this issue are useful guides to the developers' plans for the future. "GNOME Zeitgeist":http://live.gnome.org/GnomeZeitgeist , with its "focus on pervasive search and integration":http://gnomejournal.org/article/70/an-introduction-to-gnome-zeitgeist, could be a great framework for sharing ambient information and workflow -- lightweight collaboration with faraway teammates. In development within Zeitgeist is "Teamgeist":http://gitorious.org/teamgeist/pages/Home , which would add to Zeitgeist the ability to share certain data and events with teammates via Telepathy Tubes and Multi-User Chat. Teamgeist is in the early design and implementation stages, but it's clear that Telepathy will give Zeitgeist an easy way to plug into real-time communication functionality. But why should GNOME get all the good stuff? (I know, I know, this is GNOME Journal, but there's no need to get parochial.) "KDE is getting in on the Telepathy action":http://techbase.kde.org/Projects/Telepathy to get a unified messaging and voice/video framework throughout the desktop, and to add collaborative features to KDE applications. The "NEPOMUK folks":http://nepomuk.semanticdesktop.org/xwiki/bin/view/Main1/ seem especially interested in ensuring that KDE's use of Telepathy deals with metadata and metacontacts in a well-designed way.
h3. How to dive in
"Telepathy":http://telepathy.freedesktop.org has a "reference manual":http://people.collabora.co.uk/~danni/telepathy-book/chapter.introduction.html , a "system overview":http://telepathy.freedesktop.org/wiki/System%20Overview , a "mailing list":http://lists.freedesktop.org/mailman/listinfo/telepathy , a "wiki":http://telepathy.freedesktop.org/wiki/ , and of course an IRC channel (#telepathy on Freenode). "Empathy":http://live.gnome.org/Empathy developers and users also use the Telepathy IRC channel and mailing list. The "Zeitgeist":http://live.gnome.org/GnomeZeitgeist team hangs out on #zeitgeist on Freenode. The Telepathy-in-KDE project's "in progress":http://grundleborg.wordpress.com/category/telepathy/ , so if you're interested in Telepathy and want to dip your toe in KDE's waters, "check out the Telepathy Junior Jobs available for novice KDE developers":http://grundleborg.wordpress.com/2009/07/29/telepathy-junior-jobs-your-chance-to-get-involved/ . And of course you're welcome to "join us":http://telepathy.freedesktop.org in testing, documentation, development, packaging, and everything else.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]