Telepathy Top 10 Lists

26 Dec 2015

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

  1. Channel → something used to send data to other people
  2. Connection → something used to make channels
  3. Account → something used to make connections (probably)
  4. Tubes → a deprecated and recently removed channel type that was used to tunnel tcp (streams) or dbus over telepathy
  5. Tube → a reference to either DBusTube or StreamTube channels, which are not deprecated
  6. Text Chan → l33t slang for a text channel, that you use to send text messages to other people in the channel
  7. File Transfer Channel → a channel you can offer to maybe send a large data blob to the other person, if they accept it
  8. Gabble → a backend that lets you use telepathy over an XMPP (Jabber) server
  9. Salut → the coolest backend, lets you use telepathy with people on your LAN, and deals with automatically discovering people
  10. 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

  1. Tunneling HTTP over Tubes to send a file (~300 lines), rather than the built in file transfer tubes
  2. Copying and pasting Tubes implementations for about 7 years after their deprecation, then wondering why it all got broken
  3. Using DBus over Tubes to pass json between people, rather than a simple text channel
  4. Using telepathy python (many many years after its abandonment)
  5. Specifically, copying 160 lines of telepathy-python tubes initiation for every activity, and then changing it slightly to make porting hard
  6. 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

  1. Sending files to people on the local network (telepathy salut and file transfer channels)
  2. Chatting with people via jabber (telepathy gabble and text chans)
  3. Collaboration for your Sugar activity ( CollabWrapper)
  4. Collaboration for your traditional application
  5. 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.

Next post
Sugar Onboard Design
A popup based section to introduce users to Sugar
View all posts

© 2015—2024 Sam Parkinson