IM

Les Orchard: XMPP for self-hosted Twitter-esque nodes

Twitter Bird

Les' comment was too good to languish in the comments. Content management systems and blogs are now clearly at the "easy to self host level". How long will it take to be able to easily do the same thing with a Jabber server?

In the light of ongoing PHP wrangling, PHP is also likely not the best language to be writing that server in.

What I think would be a hot "Twitter killer" (successor?) would be something self-hosted like WordPress or Drupal. I've been idly thinking about this since I first saw the site, so my ears perk up when I see discussion like this :)

I think XMPP would be excellent for communication for node-to-node and user-to-node. The user-to-user case works for a private IM back channel, but even there it might help to have a web-based Jabber client and maybe a custom XMPP server with an archival plugin tapping in.

Another thing I've been wondering is what limitations XMPP might introduce in deployment cost in a cheap PHP hosting world where WordPress, etal thrive? How hard is it to run your own XMPP server, or is it really necessary? (I'm spoiled because I've either always had root on my own dedicated / virtual server, or shared a server that had a Jabber server running.)

Along with XMPP, though, I think a few other federation options might be handy. Optionally CC'ing to an account on Twitter / Jaiku / iStalker / etc itself via the API to keep looped into an existing community - dirty, but handy. Also, polling RSS / Atom / JSON feeds to "pull" updates for a friend subscribed on the self-hosted node who's not in the XMPP loop.

In any case, I think XMPP is an excellent foundation for a network of self-hosted Twitter-esque nodes. I'm just wondering what else needs to be layered on and how.

 Now go over and subscribe to the rest of Les' stuff -- you probably know him as decafbad.

Announcing Pretzel, a Python-based Jabber server on Twisted

I have the great pleasure to announce Pretzel -- a Jabber server written in Python on the Twisted framework.

The two main authors are Ralph Meijer, well known as a long time member of the Jabber community, and Andy Smith, hacker extraordinaire.

For now, Andy checked in some experimental code hosted on Google's new code repository. Check it out at http://code.google.com/p/pretzel/. We're looking for other people to join in -- one of the reasons we started the project was because it seemed there were a lot of people looking for the same thing. It is available under the MIT license to make it potentially usable by the broadest number of people, as well as being under the same license as Twisted.

Please join us on the pretzel-dev list and we'll get the discussion going. 

What's on the roadmap? Well, this is a very early release -- more of a proof of concept. We hope to enable the quick and easy implementation of various JEPs, making it fun and simple to add all sorts of powerful features to the server and clients, truly showing how Jabber can go way beyond "just" instant messaging.

Officially a member of the Jabber Software Foundation

I'm now officially a member of the Jabber Software Foundation, according to the member meeting minutes.

For one of my first acts, I'll be at EuroOSCON's Dot Org Day (some info posted on the DrupalCon website -- if you are an open source project with presence in Europe, please attend!) helping RalphM and stpeter man the booth there.

That was one of the reasons I wanted to be "official" -- I've already unofficially been promoting/evangelizing Jabber, but now I can say that I'm a member of the JSF.

I hope to get more involved as a member, working on everything from web presence, conference attendance, and general promotion of Jabber-the-community and XMPP-the-protocol.

Help keep our instant messaging and real time protocols open, free, and standards based -- Jabber is for people :P 

Jabber geeking: merge JEP-0080 and JEP-0112?

I'm in Stuttgart meeting with some clients. Lots of Drupal + Jabber integration talk, and luckily ralphm is here to bring along lots of Jabber expertise.

We've been talking a lot about geolocation notification over Jabber -- so users can indicate their location over Jabber. There are few (if any?) clients that support this today, so we'll probably support some short hand for testing purposes -- being able to type in geoloc:[lat],[lon].

So, I was looking at JEP-0080 (geoloc) and JEP-0112 (physloc). 112 is a plain text representation of physical location, and JEP 80 is the latitude / longitude. JEP 80 also has a plain text "description" field. So...why not collapse the two? physloc could replace the current JEP 80 "description" entry...every single entry is optional, so the text field in physloc can handle the current usage of the description field. It just seems wasteful to maintain two separate JEPs for what is essentially the same information.

As well, if a service already knows the physical location, it can send it along with the geoloc -- you can't derive the physical location from the geolocation, so in the current case, you would have to send two messages.

Skype benefits and drawbacks

Some quick notes for an upcoming interview.

Benefits

  • free voice calls between Skype users
  • easy multi-person conferencing (up to 50, depending on bandwidth)
  • multi-platform -- works on Windows, Mac, and Linux
  • first IM client for many users who use voice feature first
  • easy file sharing
  • can have "real" phone numbers in many locations
  • can also use video (various solutions, Windows only for now)
  • Skype on your phone -- Microsoft PocketPC has a Skype client, EQO is new and works on Symbian Series 60 and other Java capable phones (client currently requires Windows on desktop)

Disclaimer: EQO is a local Vancouver company that I've met with, and my company Bryght powers their online community forums. They're also the only mobile app other than ShoZu that made my jaw drop (well, until I found out about the desktop client requirement...boo!).

Drawbacks

  • have to have Skype to communicate (or pay for SkypeOut)
  • built on a closed network, closed protocols (as opposed to open standards like SIP or JINGLE)
  • computers on open networks might be used as a SuperNode, consuming lots of bandwidth
  • Skype (now bought by Ebay) is the only provider of the service

Other forward looking options include click-to-buy or click-to-access solutions -- use your Skype ID and the client to pay for online goods and services, including restricted access to online content -- enter your Skype ID into a web form, get messaged with a special code, complete a transaction, receive an access code -- voila! instant online access. Note: this is of course possible with any IM service or even SMS, and Jabber is doing this today. In many ways, Skype is JAIS -- Just Another Identity Store -- that happens to have VoIP/IM/etc. built on top of it as an application.

2006 will be the year of XMPP

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).

Jabber's JINGLE comes out of the closet in time for the holidays

Sorry, couldn't resist the Christmas themed title. What am I talking about? Well, the JINGLE press release* came out yesterday, announcing the official Jabber Extensions Protocols (JEPs) for doing multimedia over Jabber, or XMPP as the IETF approved protocol is officially known.

Here's the part where we learn that this is in reality a way for everyone to plug into Google Talk:

The Jingle technology represents an open version of the protocols used in the popular Google Talk application released in August 2005, and Google is supporting the standardization and evolution of these protocols through the JSF's community standards process.

The two JEPs cover signalling and the specific format for audio sessions. There is running code for interoperability with Asterisk's IAX protocol, and SIP and H.323 is in the works.

I've long turned up my nose at the primarily telco driven (with the notable exception of Microsoft) SIMPLE spec, an attempt to add presence and text messaging to SIP. Now XMPP has turned the tables, and gone after SIP. Well, actually, I don't believe that SIP will go away -- it has emerged as the core way to ship VoIP around networks -- but I think we can close the lid on SIMPLE.

Parceltongue

Do you speak snake? A Jabber server written on the Python Twisted framework.

This is a new project of mine/Bryght's. I've long been an advocate for the Jabber/XMPP protocol. Now, I'm hoping to give something back plus form a community around a new jabber server daemon. For now, just redirects to a wiki where we'll organize and add some more details. Feel free to add "like to have" or other ideas of what you want to see out of a new Python-based jabberd.

Update: we changed the name to Pretzel. There is currently a placeholder project up at Google Code Hosting: Pretzel Server 

Google Talks Jabber

Google Talk is Google's unnannounced (until tomorrow?) Jabber-based instant messaging system. We'll know more tomorrow, but it's fun that Niall figured out how to connect early (via Om, looks like it's offline).

What are some good Jabber clients on Windows? I can't think of any, so I suspect Google will launch a killer Jabber client of their own. This time, us folks on Macs won't be left in the cold, though -- Apple's iChat already natively supports Jabber. Looking forward to see what else Google has up its sleeve for the real release tomorrow.

walkah -- now would be a good time to commit that jabber module for Drupal.

It's up. Check the compatability chart of other IM clients -- it does included voice only in the Windows version that Google offers for download. So...the big thing about Skype is that it is completely cross platform. Does Google once again not love Mac users? Will Apple roll an upgrade that makes iChat work with this?

(via Photo Matt: Google Talk)

Gizmo SIP client hopes to break Skype silo

Phoneboy is where I first saw mention of Gizmo:

Hey look, it's Michael Robertson's attempt at cloning Skype: Project Gizmo. Since it basically is using the existing SIPphone infrastructure to pull it off, it's definitely SIP, it's definitely got connectivity with other SIP networks, and they've got inbound and outbound PSTN connectivity.
PhoneBoy's Blog: Project Gizmo?

It's essentially a slick client for SIPphone, which I mentioned briefly trying in this post about Skype. I'm going to download it and try it out, but I initially don't think it has the clout to take out the Skype juggernaut. Am I going to get more than a handful of people to try this out when Skype works today? I agree with Doc Searls, it is a locked silo, which I'm not happy about...but it's here today, it works, and it far surpasses the "just works" test.

What does Gizmo need to do to win my loyalty? Use Jabber for your instant messaging, and run gateways that let me connect to all the other systems with your one client. Solve my too many IM clients problem! (which is actually an identity / buddylist problem in part)

(Actually, yes, I would like to see SIP support in Adium! Where do I send my money?)

Later: OK, gets stuck at "Starting agent..." then "Failed to register with server, an unknown error occurred.", although I did get username "borismann". And yes, there are some "neat" features, like recording of calls, integration of maps and users, and even picking your own "on hold music". Somebody call me when it works.

Syndicate content