As Ralph Meijer puts it, I am still delinquent in publishing the notes I took after BarCamp Amsterdam:
I suppose the plan for World Domination™ will remain a secret until Boris Mann publishes the result of the notes he took at BarCamp Amsterdam. The event was totally awesome. Thanks all!
I'm *still* carrying the notes around with me -- I had the great good fortune to spend a lot of time with Ralph and Edwinn and suck all the Jabber aka XMPP knowledge I could out of them that I could. I've been following the growth of Jabber/XMPP for years, and here are some of the concepts and happenings which I think are going to blow it wide open in 2006:
- A major Internet entity commits to natively using the XMPP protocol for a new IM network: Google did this with the release of GoogleTalk; their recent deal with IM makes me think that Google - AOL - Apple iChat interoperability could happen in 2006. At any point, Google could also turn on gateway services to MSN and Yahoo as well.
- Consumer multi-network IM gets funding: Meebo got WAAAAY too much money. It's a simple, simple service, and there is no unique technology or IP. BUT...why are so many people using it? Because being able to talk to all your friends, no matter which network, is the killer app. And while the Mac has one of the best multi-network clients ever in Adium, on Windows it's just a pain. Oh, and web apps that you can get to from anywhere -- especially for a communication app like IM -- are infinitely better than desktop installs.
- XMPP isn't just about IM anymore: there have always been really cool examples floating around in the Jabber community (e.g. Google Maps + Jabber, including a *very* cool way to login by having the server message you a login phrase), but the really big news is JINGLE, including the immediate release of an audio transport, with Asterisk integration almost immediately and video probably not far behind.
- Increasing open source activity: eJabberd is one of the best XMPP servers period. For Java-heads, there is Jive Software's Wildfire, now available under a dual license. Jive Software also released a Flash Jabber API called XIFF, meaning you could build your own version of GTalkr (disclaimer: I know Wes and Dudley, the masterminds behind GTalkr...it's not that easy, and right this minute they're installing killer features to blow your mind :P). Now all we need to make Jabber really accessible for developers is a great server written in one of the "P" languages -- PHP, Python, or Perl. Since the Python Twisted networking stack has Jabber support in the Twisted Words component, and Python makes for great daemon-izable apps, it's probably the best choice.
- The push for realtime: this goes hand in hand with the last point. The super secret part of XMPP is that it's not about IM at all...it's a generalized XML message passing protocol optimized for real-time. Every ounce of effort to get faster polling of RSS is wasted...it's an asynchronous poll model -- XMPP is the step beyond. I suggested that Plazes throw away it's proprietary protocol and use XMPP directly, preferably using the User Geolocation JEP that has already been defined for exactly such uses. Anything else you want to pass around in real time that can be represented in XML? Like real-time ATOM? Yep, the possibilities are endless.
What are my next steps with XMPP? Well, I'm getting very interested in what a combination of a Jabber server plus identity store might be able to do. Parceltongue is a placeholder for potentially writing such a server in Python (why another server? well, part of that is in the secret notes...let's just say that Jabberd 1.x and Jabber 2.x are both needed if you want to run a complete set of services, plus the aforementioned desire for a "P" language to run a Jabber server with).
I'm going to be attending FOSDEM 2006 in Brussels, and I hope to talk with and about Jabber while I'm there, focusing mainly on community aspects (see Ralph's "Call for Presence"). Ralph, maybe you and I could do a "Jabber World Domination" presentation oriented towards non-Jabber users? It seems to me that much of the community feeling is focused around individual applications (which is fine...it's hard to get verklempt about a protocol...hmmm...unless maybe it's RSS :P) and there needs to be some work done on interoperability and lots of great stuff actually getting out there and getting the recognition it deserves.
Comments
Real time social browsing
Talking about applications of XMPP, you might want to check http://www.sameplace.cc .
It's a Jabber client integrated in Firefox that also lets you enter a web page as if it were a chat room and meet the other visitors, live.
I released it yesterday and it's still a developer preview, but there's enough of it to see what it's about.
Atom-over-XMPP
I agree that XMPP makes a great transport for news feeds. Unfortunately the Atom-over-XMPP draft that's been published relies on Jabber Pub/Sub. While I think Jabber Pub/Sub is great in concept, it's also very complex and (AFAIK) not yet implemented by any real-world server. I'm afraid that's acting as a big stumbling-block; maybe what's needed is a simpler, cruder but easier-to-implement protocol first.
(I'm aware that there is an implementation of Jabber Pub/Sub, whose name I can't recall right now, but as I understand it, it's an experimental server that's not ready for real-world use.)
While I think Jabber Pub/Sub
While I think Jabber Pub/Sub is great in concept, [snip] and (AFAIK) not yet implemented by any real-world server.
ejabberd contains a module that nearly implements everything from the Publish-Subscribe spec.
Agreed
I think you're thinking of RalphM's aggregator/server (for which I can't remember the name or find a link for ATM -- Ralph, add this please), and yes, I agree it's not quite ready for primetime.
I don't *think* that pub/sub is terribly difficult to implement...the problem being 1) running a Jabber server is non-trivial and 2) there isn't a Jabber server that's easily extensible to add such features (hence my desire to create Parceltongue, a Jabber server written in Python). Actually, for #2, eJabberd continues to be a great server and apparently there is some sort of Python-Erlang bridge....but it's still Erlang.
I also just found out about Zesty News, a desktop-based Python reader, that would likely make a good pub/sub client.
Lastly...any ideas on a simpler protocol? stpeter and the rest of the JSF crew are pretty open to new concepts...
and 2) there isn't a Jabber
and 2) there isn't a Jabber server that's easily extensible to add such features (hence my desire to create Parceltongue, a Jabber server written in Python). Actually, for #2, eJabberd continues to be a great server and apparently there is some sort of Python-Erlang bridge....but it's still Erlang.
Well, it seems at least that ejabberd is easy extensible enough to be the only (open-source) Jabber server with a module for Publish-Subscribe :-)
About Erlang, you can read in an interview with Alexey Shchepin why he has chosen to write ejabberd in Erlang:
I found it the most suitable language for implementing a Jabber server. Its support for concurrency and clustering is great. On the other hand, Erlang is pretty slow on many string operations, but they can be implemented on C, so this drawback can be avoided.
Not dissing ejabberd or Erlang
I've said this before -- ejabberd is a great piece of software. At this point, it's arguably the leading open source Jabber server I also have nothing against Erlang. The *only* issue is that there are very few people that know Erlang, which makes it difficult to work on. Other than the ejabberd team itself, there is no one that I know that I could hire to work in Erlang.
If you want to spend money
If you want to spend money via a company:
http://www.erlang.se/consulting/index.shtml
If you prefer to contact an individual, you can try to catch a coder of another open-source project written in Erlang. For example:
* http://trapexit.org/links.html
* http://www.wings3d.com/
Great example
Fact of the matter is, there are approximately 10,000 places I could go to get Python coders. You've listed three for Erlang. That is the problem.
Don't knock it
That may not as big a problem as you'd think.
I've been involved in commercial Erlang programming for 10 years. We've never really had a recruiting problem. In fact, more people have asked us if they could work with us than we've been able to hire. For anyone with practise using a language like ML, Haskell, Scheme, etc., Erlang is easy to learn. After all, you don't need 10,000 programmers. You will most likely need one or two good ones. In my experience, really good programmers in mainstream languages are expensive and hard to come by. Erlang programmers, OTOH, have even been known to move in order to be able to actually make money doing what they love.
Now, you're in Vancouver. YMMV, but I wouldn't bet money that you couldn't find good Erlang programmers there too. (:
Regards,
Ulf Wiger
Ericsson AB
XMPP extension
Do not forget that one of the magic of XMPP is that you can develop extension in every language you want using the XMPP protocol.
I have seen several ejabberd extension that are written in C as Jabber component.
--
Mickaël Rémond
people are using Meebo to get around IM blocking at work
nicht wahr?
Not only
I don't think that fully explains it. And any corporate IT port blocker worth their salt will have an even easier time of blocking *.meebo.com.
I really think it's because it's an accessible-anywhere client (e.g. work, home, library, Internet cafe, etc.) as well as being multi-network. Be interesting to see stats on how many people are using multiple network logins on Meebo.
Also, the recent info from the latest Pew Internet and American Life Project -- that email is for older people -- seems to indicate that we're only going to see an increasing trend.