Telepathy is a cool framework for real time communications on GNU/Linux (and possibly other platforms). It is massively flexible and a bit confusing at first. I was introduced to it when hacking on Sugar's collaboration framework (just one of Telepathy's use causes). Although I found it very confusing, you will start to love it after a while.
Top 10 Telepathy Words
Channel → something used to send data to other people
Connection → something used to make channels
Account → something used to make connections (probably)
Tubes → a deprecated and recently removed channel type that was used to tunnel tcp (streams) or dbus over telepathy
Tube → a reference to either DBusTube or StreamTube channels, which are not deprecated
Text Chan → l33t slang for a text channel, that you use to send text messages to other people in the channel
File Transfer Channel → a channel you can offer to maybe send a large data blob to the other person, if they accept it
Gabble → a backend that lets you use telepathy over an XMPP (Jabber) server
Salut → the coolest backend, lets you use telepathy with people on your LAN, and deals with automatically discovering people
Avahai → an implementation of mDNS (also branded as Bonjour), which is used by Salut to find people on the network
Top 10 Horrible Telepathy Uses
From actual Sugar activities
Tunneling HTTP over Tubes to send a file (~300 lines), rather than the built in file transfer tubes
Copying and pasting Tubes implementations for about 7 years after their deprecation, then wondering why it all got broken
Using DBus over Tubes to pass json between people, rather than a simple text channel
Using telepathy python (many many years after its abandonment)
Specifically, copying 160 lines of telepathy-python tubes initiation for every activity, and then changing it slightly to make porting hard
Making the assumption that there will only be every 1 client running at the same time, and calculating the service name with that idea (unfixed)
Ok, that is only 6. Maybe it isn't that bad.
Top 5 Telepathy Use Cases
Sending files to people on the local network (telepathy salut and file transfer channels)
Chatting with people via jabber (telepathy gabble and text chans)
Collaboration for your Sugar activity ( CollabWrapper)
Collaboration for your traditional application
Video calling
Top 2 Telepathy Developer Resources
For a great introduction to telepathy, there is the Telepathy Developers Manual. This is an amazing resource that explains all of telepathy in a way that non-telepathy people understand. There is also always the Telepathy DBus Spec, which is very useful for telepathy-python as it is basically a collection of DBus objects.
Wow, that was a bad rant-ticle. Basically it was me ranting about weird telepathy usage in Sugar activites. Oh well, it is hopefully more fulfilling that the BuzzFeed list-icals that this post takes inspiration from
I hope you enjoyed this article. Contact me if you have any thoughts or questions.