Programming Jabber

O'Reilly & Associates, Inc., 2002
ISBN: 0-596-00202-5
$39.95 US (hardcover)
I've always been intrigued by the idea of using Jabber as a router for XML messages, which happens to be the topic of D. J. Adam's Programming Jabber.
Things start out well enough. The first example program appears on page 7, and even better, it's in Perl. Unfortunately, the next example program, a script for registering new Jabber users, appears 221 pages later. In between is a detailed description of the Jabber protocol and gobs and gobs of XML. This material is authoritative, but I wonder whether an appendix or two wouldn't have been a better place for much of it. This critique is especially true for the descriptions of the Jabber.xml configuration file in Chapter 4 and Jabber namespaces in Chapter 6. In addition, this material is tough going. The book is written in the style of a reference guide, and it's pretty dry.
Thankfully, the remaining chapters (7-10) are the book's salvation. This material describes programming Jabber and its protocol from a number of perspectives. Not only does Adams provide explanations for writing a series of Jabber clients, but he also shows readers how to extend Jabber with a custom component. There's even a program that interfaces with LEGO MindStorms to determine whether there's coffee in the pot.
The book covers three programming languages, Java, Python and Perl, with Perl receiving the most coverage. With each of the languages, I would have welcomed brief coverage of the libraries Adams relies on in his code. Granted, it's a book about Jabber's protocol, but it would be more complete if it included further information on the various Jabber libraries.
Adams' greatest feat is proving Jabber to be much more than an IM system by concentrating on the infrastructure provided by the technology. The book covers release 1.4.1 of Jabber. The most recent stable release is 1.4.2 (as of December 2002), so the book is highly relevant to the current Jabber. With release two of Jabber now in alpha, a second edition will be needed soon. For now, Programming Jabber is a resource that Jabber programmers won't want to be without.
—Paul Barry
email: paul.barry@itcarlow.ie
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Sponsored by AMD
Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6
Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.
Learn more about catching the bad guy in this free white paper.
Sponsored by DLT Solutions
| Designing Electronics with Linux | May 22, 2013 |
| Dynamic DNS—an Object Lesson in Problem Solving | May 21, 2013 |
| Using Salt Stack and Vagrant for Drupal Development | May 20, 2013 |
| Making Linux and Android Get Along (It's Not as Hard as It Sounds) | May 16, 2013 |
| Drupal Is a Framework: Why Everyone Needs to Understand This | May 15, 2013 |
| Home, My Backup Data Center | May 13, 2013 |
- New Products
- Linux Systems Administrator
- Senior Perl Developer
- Technical Support Rep
- UX Designer
- Web & UI Developer (JavaScript & j Query)
- Designing Electronics with Linux
- Dynamic DNS—an Object Lesson in Problem Solving
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Using Salt Stack and Vagrant for Drupal Development
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi

It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Featured Jobs
| Linux Systems Administrator | Houston and Austin, Texas | Host Gator |
| Senior Perl Developer | Austin, Texas | Host Gator |
| Technical Support Rep | Houston and Austin, Texas | Host Gator |
| UX Designer | Austin, Texas | Host Gator |
| Web & UI Developer (JavaScript & j Query) | Austin, Texas | Host Gator |
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?




20 min 23 sec ago
11 hours 51 sec ago
16 hours 46 min ago
17 hours 4 min ago
18 hours 57 min ago
20 hours 50 min ago
1 day 3 hours ago
1 day 4 hours ago
1 day 5 hours ago
1 day 11 hours ago