SLIDE 1 How we built a decentralized blogging engine with XMPP
J´ erˆ
FOSDEM
Saturday 30th January 2016
SLIDE 2
Plan
XMPP PubSub PEP Microblogging solutions! Conclusion
SLIDE 3
XMPP
XMPP
◮ standard (RFCs 6120, 6121, 6122) ◮ decentralized/federated ◮ libre (free as in freedom) ◮ extensible
SLIDE 4
XMPP
◮ jid (Jabber ID): goffi@jabber.fr/S`
aT
◮ XSF (XMPP Standards Foundation) ◮ XEP (XMPP Extension Protocol)
SLIDE 5
XMPP
XMPP
SLIDE 6
XMPP
XMPP is
SLIDE 7
XMPP
XMPP is NOT
SLIDE 8
XMPP
XMPP is NOT ONLY
SLIDE 9
XMPP
XMPP is NOT ONLY about
SLIDE 10
XMPP
XMPP is NOT ONLY about instant
SLIDE 11
XMPP
XMPP is NOT ONLY about instant messaging
SLIDE 12
XMPP
XMPP is NOT ONLY about instant messaging !
SLIDE 13
XMPP
XMPP is NOT ONLY about instant messaging ! !
SLIDE 14
XMPP
XMPP is NOT ONLY about instant messaging ! ! !
SLIDE 15
Plan
XMPP PubSub PEP Microblogging solutions! Conclusion
SLIDE 16 But why?
◮ decentralized
◮ comments ◮ spam
◮ standard (JID, content, URIs)
◮ changing software ◮ import/transfer ◮ URIs
xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
◮ cool XMPP features ◮ push notifications ◮ mention ◮ private blogs ◮ . . .
◮ a huge playing ground, open to the world
SLIDE 17
PubSub
◮ XEP-0060 ◮ Pubish/Subscribe ◮ long XEP ◮ powerful, huge potential
SLIDE 18
Plan
XMPP PubSub PEP Microblogging solutions! Conclusion
SLIDE 19
vocabulary
◮ service ◮ node ◮ item
SLIDE 20
Plan
XMPP PubSub PEP Microblogging solutions! Conclusion
SLIDE 21
affiliations
◮ owner ◮ publisher ◮ member ◮ none ◮ outcast
SLIDE 22
Plan
XMPP PubSub PEP Microblogging solutions! Conclusion
SLIDE 23
access model
◮ open ◮ presence ◮ whitelist ◮ roster
SLIDE 24
Plan
XMPP PubSub PEP Microblogging solutions! Conclusion
SLIDE 25
but also
◮ collections ◮ notifications filtering ◮ automatic nodes creations ◮ temporary subscriptions ◮ metadata ◮ etc
SLIDE 26
PEP
◮ XEP-0163 ◮ simplified PubSub ◮ easier to implements ◮ events (mood, activity, music)
SLIDE 27
PEP
◮ 1 account (jid) = 1 service ◮ 1 publisher per node (owner = publisher) ◮ presence access by default ◮ notifications filtered on expressed interest ◮ smart defaults
SLIDE 28
Microblogging
◮ XEP-0277 ◮ PEP ◮ Atom
SLIDE 29
Microblogging
◮ publishing/answering ◮ comments ◮ tags ◮ etc
SLIDE 30
Plan
XMPP PubSub PEP Microblogging solutions! Conclusion
SLIDE 31
problems
◮ implementations not complete/not existant/issues ◮ development cycle ◮ special features ◮ RSM (XEP-0059) and MAM (XEP-0313)
SLIDE 32
Plan
XMPP PubSub PEP Microblogging solutions! Conclusion
SLIDE 33
Libervia/Salut ` a Toi special case
◮ fine permissions ◮ new access model (publiser-roster)
SLIDE 34
solutions!
◮ not being dependant of the server anymore ◮ quick development cycle ◮ lot of freedom ◮ generic
SLIDE 35
Plan
XMPP PubSub PEP Microblogging solutions! Conclusion
SLIDE 36
Namespace Delegation
◮ XEP-0355 ◮ external implementation ◮ admin & client modes
SLIDE 37
Plan
XMPP PubSub PEP Microblogging solutions! Conclusion
SLIDE 38
Priviliged Entity
◮ XEP-0356 ◮ roster ◮ message ◮ presence
SLIDE 39
SLIDE 40
SLIDE 41
Conclusion
XMPP rocks!
SLIDE 42
◮ https://libervia.org/blog/salut-a-toi ◮ https://xmpp.org ◮ https://xmpp.org/xmpp-protocols/xmpp-extensions/ ◮ http://salut-a-toi.org ◮ http://www.goffi.org ◮ goffi@jabber.fr