Blogging Roller
Dave Johnson on social software, open source and Java
Dave Johnson on social software, open source and Java
Here's another thing I've been involved with at IBM: the Enterprise OpenSocial white paper which was published just before Christmas 2009.
The paper is a group effort, written by folks from Alfresco, Atlassian, Cisco, Cubetree, Google, IBM, SAP and SocialText. It explains why OpenSocial is relevant and "ready for both Internet scale web communities and enterprise applications." It also lays out some specific areas for improvement in OpenSocial that will make the technology an even better fit in the enterprise. Here's the opening paragraph to get you started:
Enterprises are collections of people, and thus inherently social. Employees of any organization benefit from social connections, group affiliations and relationships both within their own business and between other businesses. As a result, social networking capabilities have become increasingly popular in business-to-consumer, business-to-business, and internal enterprise collaboration applications. New technologies and standards such as Web 2.0 and OpenSocial [1] are helping software providers better model relationships between people, allowing end-users to benefit from such relationships in day-to-day business processes within their own enterprise, and across business networks.
Read the rest of the Enterprise OpenSocial white paper at OpenSocial.org.
Tags: opensocial
It's been over a month since the Enterprise 2.0 OpenSocial panel and since we were never able to get a group blog post together, I've decided to publish a short summary of what I said about IBM on the panel. I'm paraphrasing myself from memory so this is not exactly what I said but it should be pretty close:
IBM has been successfully innovating in the area of browser-based components, also known as widgets or gadgets, and social APIs for years now. If you haven't seen the IBM Mashup Center you should visit the IBM booth and take a look at the demo. It allows you to create Web 2.0 style mashup applications by dragging-and-dropping widgets into place and wiring them together. You've probably heard of Lotus Connections. Connections is IBM's social software suite and it includes blogs, wikis, forums, social bookmarking and more. Each one of those components features a comprehensive AtomPub-based REST API.
We're working with the OpenSocial community to ensure that the specification meets the needs of our customers and is able to interoperate with our existing iWidget technology (and I think I mentioned the OpenAjax Hub here too). You can see most of the improvements that we're interested in the slides, so I won't go into detail now, but I will mention a couple of things for example: we would like to see better inter-gadget communication, specification modularity (coming in OpenSocial 1.0) and a stable and predictable specification change process.
I work for Rational, the part of IBM that creates tools for software development and delivery, something that is also social and collaborative in nature. We're enthusiastic about OpenSocial and we hope to enable use of OpenSocial Gadgets in Jazz-based product dashboards sometime in 2010. We may also support some of the OpenSocial Social APIs, but we are still learning and experimenting. Jazz products are developed in an open and transparent way so you can track our progress via our wiki and work-items at Jazz.net.
I won't try to paraphrase what the other panelists said, I'll let them do that, and I'll leave out my SocialSite pitch for now as most of my readers have already heard it. I'll put together an update on SocialSite during the next month and I think I'll have some good news to report.
Tags: jazz opensocial socialsite
Here's my report from ApacheCon US, focusing on the projects I'm involved with: Roller, Shindig and SocialSite.
In my session, I covered the new features in 5.0, Roller history and sort of a Roller state of the union. I explained that nobody is working full-time on Roller these days, it's an all volunteer effort with about three people active and if folks want us to keep on making official Apache releases then those very same folks had better step-up and get involved so we can knight some new PMC members. I also did a demo of the new features in Roller 5.0 including OpenID and the file upload and management improvements.
After my Roller talk and in the same room, I attended Paul Lindner's talk on Apache Shindig. Paul has worked on OpenSocial implementations at Hi5 and LinkedIn and he's also a committer on the Apache Shindig project.
I'm familiar with Shindig so this was mostly review for me. I liked Paul's assessment of Shindig quality, saying that they have good processes in place, use code reviews and have good test coverage. Paul acknowledged problems with Shindig's developer friendly-ness and said that the community is working to fix them. I've heard similar complaints from multiple source and seen myself that it's not as easy as it should be to understand the codebase, figure out how to plug-into it and understand which parts are really required for OpenSocial and which are just sample code.
Paul also talked about the Open Stack concept, a set of open standards that enable social networking interoperation including OpenSocial, OAuth, OpenID and portable contacts. He said that Shindig is the best way to implement the stack and keep up with the evolving standards. He had a nice quote about "Shindig is to OpenSocial as Apache HTTPD is to HTTP"
On Thursday night, I attended Social Widgets / Gadgets meetup which brought together members of the Apache Shindig, Apache SocialSite and Apache Wookie Communities.
There were about 25 people there including folks from Google, Atlassian, Yahoo, Ning, LinkedIn, Hippo (CMS/portals ISV) and, I'm guessing, a bunch of SF bay area startups. The meetup started around 8PM and lasted over two hours.
I presented a lightning talk on Apache SocialSite using a couple of slides from the JavaOne talk and including a quick status report. Status is this: still waiting on Sun to come through on code grant, Globant is having some success with SocialSite in production and work is almost complete in converting the build over to Maven. I also did a quick talk about the Enterprise 2.0 OpenSocial panel, which occurred the day before.
Next, Jas Nagra did a very entertaining and informative mini-presentation on Caja, complete with XMen 2 references. Caja is a way to run Javascript code (e.g. gadgets) loaded from different locations, each in its own secure sandbox where it can't interfere with others and can't do evil -- but without relying on iframes. Shindig uses Caja, but it's optional and off by default.
After that Paul Linder did a quick talk on the Open Stack idea and revised his Shindig quote to "Shindig is to the Open Stack as Apache HTTPD is to HTTP." Then we broke up and folks stuck around to talk about APIs, projects, possibilities and everything else for quite some time.
That's all I've got for now. I hope to document some of my experiences on the "Enterprise OpenSocial" panel at Enterprise 2.0 later, possibly in a blog post on the OpenSocial blog.
On Monday Nov. 2, I attended Social Web Camp at Sun's Santa Clara campus. There were about 40 people in attendance. The event was organized by Sun's Henry Story, an expert in semantic web technologies and inventor of the FOAF+SSL approach to implementing Social Networking features (relationship based privacy). Unfortunately, Henry was not able to attend the conference because he was detained by US immigration.
During the camp, I lead a session on OpenSocial using my "What's up with OpenSocial" slides from BarCampRDU. Surprisingly, very few people were familiar with OpenSocial, so this was an introductory level discussion.
I participated in a session on enterprise social networking and shared a little about we do with micro-blogging inside IBM, mentioning BlueTwit and the new features in Lotus Connections. A couple of folks from Boeing were present and described the home-grown social networking and micro-blogging system.
John Panzer of Google pitched his new Salmon protocol, a distributed commenting system that allows comments made on items in downstream systems (e.g. aggregators, social networks, FriendFeed, etc.) to find their way back upstream to the source item. The protocol is based, in part, on AtomPub. Comments are signed and posted back upstream. Seems like this could be useful in both Lotus Connections river of news feature, Jazz-based products and Roller; so I'll going to track this one closely. It might be fun to try to implement Salmon for Roller.
I missed a little of the conference because I had lunch with some of my former co-worker from Sun and I left a little early to return my vacation rental car and make my way to Oakland for ApacheCon US 2009. More about that later...
Tags: foaf atompub salmon sun opensocial apacheroller
Tags: googlewave lotusconnections chrome eclipse opensocial blogging
The early-bird special ends on August 14, so you'd better get moving.
Sign up for ApacheCon US by 14 August and save up to $500!
This year's ApacheCon US promises to deliver our most extensive program to date, and largest anticipated gathering of the global Apache community to celebrate the ASF's milestone 10th Anniversary. The San Francisco Bay Area is where the very first ASF official user conference was held, and we hope that you will join us in celebrating the ASF's success!
Apache members, code contributors, users, developers, system administrators, business managers, service providers, and vendors will convene 2-6 November in Oakland, California, for a week of training, presentations, sharing and hacking. ApacheCon US 2009 features new content tracks, MeetUps, and GetTogethers, as well as a number of events open to the public free of charge, such as the Hackathon and 2-day BarCampApache, in appreciation of their support over the past decade.
Be sure to register by 14 August to save up to $500! To sign up, visit http://www.us.apachecon.com
I'll be there and speaking on the topic of What's New in Roller 5.0. I also plan to attend the Social and Widgets Meetup with folks from Shindig, SocialSite and Wookie. I hope to see you there.
Tags: oslc opensocial
I took a break from blogging during my first couple of weeks at IBM. My blog broke and it took me a while to find the time and motivation to fix it, but now it's time to return. I think. I have been doing some internal blogging at IBM, but so far it's been mostly boring stuff: status reports and the like.
What I want to talk about today is Project SocialSite. Since my last post, where I mentioned that Sun is willing to contribute SocialSite to Apache, I did some work to move things along. I wrote an Apache Incubator proposal, started a discussion and this week calling for a vote on the proposal. Here are the relevant links:
Discussion and vote thread on the Incubator General mailing list
Subscripton info for the Incubator mailing lists
If you want to support the project, and especially if you're on the Incubator's Project Management Committee, now's the time to do so.
Tags: opensocial apache socialsite
Today, I'm very happy to announce that Sun Microsystems
is willing to contribute Project SocialSite to the Apache Software Foundation
. It's not clear whether SocialSite should be contributed into Shindig or as a new incubator project, but either way I think this is the best thing for the project and will give it the best possible chances for building a thriving community. I've started some discussions about this on Apache-private mailing lists and I'll let you know what happens next.
This post brings to an end my series of posts about Shindig for blogs and wikis. Here are links to the earlier posts:
Tags: apache sun socialsite shindig opensocial
post I explained at a high level "how I got a Roller Gadget working, one that uses OAuth to call Roller and enables Roller to use OAuth to call back to the social network." I ended with some unanswered questions. In those post I'll answer those questions with source code, screenshots and more.
[Read More]
Tags: roller opensocial oauth socialsite
is that it allows you to add social networking features, including the ability to run OpenSocial
gadgets, to existing web sites and have those sites all using the same "social graph" of data about people and relationships. To demonstrate this, I've deployed SocialSite to my site, http://rollerweblogger.org
, and finally implemented those things I described in my August 2008 Social Roller
post.My site includes a blog and a wiki, Roller
and JSPWiki
, so it's a pretty good candidate for demonstrating how SocialSite. It's not perfect because it's got only a very small number of users, less than a dozen and because it's private; you have to login to see the social features. It'll have to do.
In this post, I'll explain the steps you have to take to add SocialSite to a multi-application web site and I'll illustrate the steps with examples and screenshots from my work on this site.
Tags: jspwiki socialsite roller opensocial
I'm going to be following up my OAuth everywhere! post, with several more OAuth related posts this week. So, just in case you are wondering "why is Dave going off on this cockamamie OAuth tangent?", I'll take some time now to explain a little about OAuth to help you understand.
OAuth is a emerging protocol that one web site can use to access your data on another website without asking you to reveal your username and password. For example, when the sinister BuddyNet9000(TM) Social Network site wants to access your GMail account so it can spam your "friends" on your behalf, you can use OAuth to give it access without telling it your username and password. Why risk your GMail security when all you want to do is spam some people? There are less snarky examples, but that one makes the point well, I think.
There's a good end-user oriented introduction on OAuth.net titled Beginner’s Guide to OAuth: Protocol Workflow. OAuth is not that widely deployed yet, and is not perfect, but it is emerging and going the IETF standards route.
I'm interested in OAuth because it's part of the OpenSocial spec, used to authorize access to the OpenSocial REST API and to enable OpenSocial Gadgets to call out to OAuth protected resources. Also, because it's used to protect AtomPub-based services, including the Google Data APIs. I needed to learn about it for my Roller and SocialSite work and if you're going to be doing much OpenSocial work, you'll need to learn about it too.
Tags: atompub oauth opensocial
I'm off to ApacheCon EU 2009
tomorrow in Amsterdam to speak on the topic of Shindig for Blogs and Wikis
. I'm really looking forward to catching up with my Apache friends and colleagues. That's the conference venue in the photo on the right, the Mövenpick hotel (in the background behind the music hall).
I'm staying a couple of extra days, so I hope to have time for bicycling around the city as I've done in the past (see also: Flickr photo sets for 2007 and 2008). Unfortunately, the weather forecast stinks. There's a 60% chance of rain every day that I'm in town. Oh well; guess I'll have plenty of time for blogging.
Speaking of blogging.This week, I'll be posting some blog entries to highlight the work that I've done in preparation for my talk. Here's what I plan to cover:
If you plan to attend my talk, at 4:30PM on Friday March 27, then you should follow along. Pay special attention to the SocialSite on rollerweblogger.org and OAuth everywhere (continued) posts, which will include detailed background info. I'm looking forward to seeing you there.
Tags: opensocial apachecon oauth roller jspwiki
talk, which is now just a couple of weeks away, I'm going to talk about Shindig for Blogs and Wikis
. I promised to show social features and OpenSocial Gadgets running inside Apache Roller and Apache JSPWiki (incubating). This post explains, at a very high level, how I got a Roller Gadget working, one that uses OAuth to call Roller and enables Roller to use OAuth to call back to the social network. It assumes you have a basic understanding of OpenSocial
and OAuth
.[Read More]
Tags: openoauth rest apacheroller opensocial
I started a new blog on this site to explore what's possible with Google Friend Connect (GFC). It's called the G Friend Connect blog. I've added the GFC Members Gadget and I replaced Roller's built-in comment macro with the GFC Wall Gadget. In theory, if you have a Google, Yahoo or Open ID account, you should be able to login via a gadget, make friends with other site members and leave comments. If you have a minute or two, try it out. Join the site and leave a comment. That will give me (and you) a better idea of how things work.
So far I'm not particularly impressed with the Wall Gadget as a comments replacement. Here is an example. It doesn't support rich-text editing, no HTML is allowed, the comment area is too small and there's no preview button. Maybe that's why it's called a Wall Gadget rather than a Comments Gadget. Or maybe I'm just not doing it right.
Tags: google opensocial
The day before the layoff axe fell at Sun, I blogged about my upcoming Shindig for Blogs and Wikis talk at ApacheCon EU in March. Since then, I've been working almost non-stop on finding a new gig and have had little time to work on my presentation. That's not good, because I have fairly ambitious plans for this talk. I'll explain.
I want to be able to show how to add social features including OpenSocial support to a blog server and a wiki server by using plain old Shindig and then Project SocialSite. I'm targeting Roller and JSPWiki because they're the blog and wiki source code bases that I know best right now and they're both Apache efforts, but the same techniques should work with other systems like Wordpress or Drupal. If I have time I might be able to demo those too (but I wouldn't count on it).
I'm not sure how far I can go with plain old Shindig because, like most blog and wiki servers, neither Roller nor JSPWiki has detailed profile data, social relationships or activities. I should be able to get Google Gadgets working via Shindig, but OpenSocial Gadgets will take a lot more thought and effort.
I'm much more confident in the Project SocialSite approach. SocialSite provides for storage of detailed profile information, groups, activities and app data as well as the necessary UI. I'm confident enough that I'm going to deploy it on this site. So, stay tuned. I hope to have something to show by the end of next week.
Oh, and by the way. Today is the last day to register for ApacheCon EU with the early-bird discount. So sign-up already!
Tags: jspwiki opensocial roller
I'm always happy to see Google talking about Project SocialSite in their OpenSocial presentations and pitches. We need all the help we can get with getting the word out.
Now, Rajdeep Dua of Google Developer Relations has put together a 25 page presentation on Project SocialSite Architecture with data model diagrams, UML and lots of detail. Good stuff. I posted some comments and corrections to the Shindig-dev mailing list
Tags: opensocial socialsite
Tags: socialsite opensocial
If you want more on Shindig/Java internals, then check this out. Rajdeep Dua has written a very detailed article on the topic and he is asking for feedback: Overview of REST Implementation in Shindig - Java Version.
Tags: opensocial shindig
A lot has changed since I did my first and even my second "how does Shindig/Java work" diagram. Believe it or not, there are now two separate web services protocols in OpenSocial and thus in Shindig. How did that happen you wonder, well read on...
[Read More]Tags: shindig atompub opensocial rest