If you want to create social applications either for the enterprise or for public social networks, Jonathan LeBlanc's book will tell you how to do it based on standards and open source tools.
Just ignore the 800-pound gorilla in the room because, for the most part, he is not going to tell you how to build applications for Facebook. On the other hand, if you want to create software to offer in the Jive Apps Market, or maybe just make a proprietary intranet app run in an enterprise social container, he has a lot to teach you.
In Programming Social Applications, published in August by O'Reilly, LeBlanc dispenses with the decision to focus on open standards and open source software with a few paragraphs in chapter one, noting that it was essentially the only way he could address techniques that would work across a range of social platforms rather than a single proprietary platform. It might also have something to do with his role as a contributor to the OpenSocial standards group.
LeBlanc was until recently an evangelist for the Yahoo Developer Network, where part of his job was drumming up interest for integration with products like the Yahoo Pulse social network. He was also the company's technical liaison to the OpenSocial Foundation. LeBlanc recently moved to an evangelist role at X.commerce, an organization eBay created to support software development and integration for all its products, including PayPal and Magento.
Although Facebook has not embraced OpenSocial, other websites such as Yahoo and Google (the original creator of the specification) have done so, as have several overseas social networks and enterprise vendors including Jive, IBM, Socialtext, and Atlassian.
"That doesn't mean OpenSocial is the only thing out there, but focusing on it gives a really good view into understanding social containers," LeBlanc said in an interview. By "container," he means a website or server that lets you embed your application within it. A social container is one that lets you do so within a social context, where the embedded application can request data from the user's profile and social network. An OpenSocial container may not function exactly like Facebook or other proprietary containers, but conceptually they are trying to accomplish the same things, he said.
The availability of an open source implementation, Apache Shindig, means you can set up your own OpenSocial container for testing, or even use it as the basis for your own social networking site. The current release supports OpenSocial 0.9. A Shindig 3.0 beta that supports the recently released OpenSocial 2.0 specification is in the works, but not yet available for download except through the source code repository for the core developers. LeBlanc said he built the examples in the book around OpenSocial 0.9, recognizing that it will take time for social networks to make the switch to the new release.
The book also covers OAuth 1.0a and 2.0, as well as OpenID, and hybrid implementations of OAuth and OpenID. And although he has a tendency to use the word "proprietary" when talking about Facebook, he does acknowledge its embrace of OAuth 2.0 and the Open Graph Protocol.
"Any developer can scrape the exact same data from [a] page," LeBlanc said. "I really like what Facebook has done for metadata--the Open Graph Protocol is bringing the semantic Web back."
Ultimately, the hardest part about social software development is not the protocols but the application design, LeBlanc said. "The hardest part is adjusting to the social mindset." Game developers like Zynga have developed some of the most powerful social applications because they don't merely embed their applications in a social container like Facebook, they make full use of the social context. As you play a game like Mafia Wars, you accumulate power by bringing friends into the game, and you get recognition by posting your accomplishments to your social network.
Business application developers need to figure out how to do something similar, building social connections into the way information is shared, projects are managed, tasks are assigned, and achievement is recognized. "The tools are utilized the exact same way, just in a different context," he said.
Automation and orchestration technologies can make IT more efficient and better able to serve the business by streamlining common tasks and speeding service delivery. In this report, we outline the potential snags and share strategies and best practices to ensure successful implementation. Download our report here. (Free registration required.)