Dave Johnson on open web technologies, social software and Java
One year ago on this day I wrote that Sun Microsystems is willing to contribute Project SocialSite" to the Apache Software Foundation. My contacts at Sun told me it was OK to make that announcement because a VP approved. One year later, we have established Apache SocialSite (incubating) project, setup user accounts, put up a status page and setup source code control but we still have no code from Sun.
Since March 2009 I've been exchanging emails with my helpful contacts at Sun and trying to help them move forward with the contribution, but because of the ongoing Oracle/Sun merger things have moved incredibly slowly. Finally in late December 2009, my Sun contacts had permission to actually release the code to Apache, but there was a problem.
When Sun said that they were willing to contribute the SocialSite code to Apache, I figured that they would do so using the standard Software Grant agreement that was used for Roller and all other projects entering Apache via the Incubator. Unfortunately, the Sun lawyers did not want to use the standard Software Grant agreement and Apache did and does not want to devise a new legal agreement just to accommodate Sun. That's where we stand today. Sun committed to contributing SocialSite to Apache and now we're waiting for Oracle/Sun to follow through on that commitment.
Meanwhile, others have been making some progress with SocialSite. A major sports brand has launched a SocialSite based network with a million-plus users. A couple of developers have rewritten the build script to use Maven, others have "ported" to JBoss and there is still interest in and a need for what was Sun's Project SocialSite. Neither effort has contributed code back to SocialSite-proper and because of legal concerns are waiting for the main code to appear at Apache.
SocialSite is a small project and it will not survive for much longer with resources spread across multiple sites and a community working separately. So, I'm asking again and publicly: Oracle, please follow through on your commitment and grant the Project SocialSite codebase to Apache.
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.
(Last week, I returned after a week of vacation and a week of conferences in the SF bay area. Instead of posting my trip reports to the limited audience that reads my internal IBM blog, I'm going to post them here so that everybody can benefit from them.)
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.
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.
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 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:
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.
Since January, the future of <a href="https://socialsite.dev.java.net">Project SocialSite</a> has been in the hands of the ~SocialSite community. During that time, I continued working on the project almost because I think it's got great potential and I would really like to see it live on in some form. That's also why I continued to talk to Sun about the project.
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:
The value of Project 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.[Read More]
It was over four years ago when I discovered that Sun was using my software, Roller, to power blogs.sun.com. I was thrilled to go to work for the company back in 2004 and what an awesome cast of characters I've gotten to work with over the years. I really enjoyed the folks I worked with on the blogs.sun.com team, the open source folks and most recently, the Glassfish team -- some of the most talented and nicest folks I've ever worked with. It's been a great four and a half years but all good things must come to an end and today is the day.
I've been swept up in the latest round of Sun layoffs. Sun has decided to disinvest in Project SocialSite and as of today I'm free and available for employment. Though I do feel some urgency due to the bad economy, Sun's layoff package is pretty good and so I have some time to figure out what comes next and no need to make hasty decisions. Whatever I end up doing, I'll be blogging it here.
Oh, and about Apache Roller and Project SocialSite? I'm not ready to give up just yet. I'll be using a little of my time to do some mentoring and to move forward plans for Roller 5.0 this spring. And I see real value in the Project SocialSite "social-enable existing web sites" concept and I'm considering ways to move that forward as well, with or without Sun. I'm still giving my talk Shindig for Blogs & Wikis in March 2009 and, actually, I'm pretty happy I have some time right now to focus on those demos and slides.
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
Roy Fielding: I am getting frustrated by the number of people calling any HTTP-based interface a REST API. Today's example is the SocialSite REST API. That is RPC. It screams RPC. There is so much coupling on display that it should be given an X rating.
Ouch! As the author of the torrid (and pretty rough) Project SocialSite Proposal: Finalize Web Services APIs proposal that Roy calls out to sharply, I'd like to point of that, as I explained in a recent post, Project SocialSite is simply implementing and extending the OpenSocial API. OpenSocial includes both a JSON-RPC API and a REST API. SocialSite implements and extends them both. I never meant to imply that the JSON-RPC API is RESTful (and neither did the authors of the OpenSocial specifications). In fact, I renamed the proposal from "Finalize REST APIs" to "Finalize Web Services APIs" after I realized that OpenSocial would come in both flavors.
The proposal that I wrote outlined a way for Project SocialSite to hook into Apache Shindig (incubating), the Reference Implementation of OpenSocial,implement a couple of Shindig interfaces and thus gain support for both the OpenSocial REST API and the OpenSocial JSON-RPC API. The OpenSocial REST API does claim to be RESTful and I believe it is; it's based on AtomPub but includes some extensions for providing generic XML and JSON representations in addition to Atom format. The Project SocialSite REST API will extend that and will also be RESTful.
If you want to learn more about SocialSite, here's your chance. I'll be doing a SocialSite webinar tomorrow (Thursday, Oct. 9) at 11:15am PT. Here's the summary.
Project SocialSite is taking a new approach to social networking. Instead of replacing your existing web site with a Social Networking system, SocialSite allows you make your existing blogs, wikis, forums and portals social and all backed by the same Social Graph of users. It doesn't matter whether your existing applications are Java, Ruby, PHP or blog/CMS template driven, you can easily add the SocialSite Widgets and and give your users a complete Social Networking experience right in the pages of your existing site. You'll be able to provide Personal Profile and Group Profile pages, a Dashboard for your users to manage their groups and connections and allow your users to install standard OpenSocial Gadgets that operate against their network of friends. Your applications can manage the social graph via the SocialSite web services and via standard OpenSocial Gadget technology.
In this webinar we'll explain the reasoning behind Project SocialSite, the basics of OpenSocial and what SocialSite adds, the SocialSite architecture and its Widgets and Web Services.
You can find the dial-in details on wikis.sun.com.
I'm just gonna steal this straight from Simon's blog 'cause I'm lazy.
Simon Phipps: I got the chance to speak with Dave Johnson last week and catch up on his work building Project SocialSite, a social graph framework exposed as widgets and web services for use by websites wanting to build collaborative communities. Both technically interesting and destined to be an important part of the social media scene, I'll be looking forward to seeing SocialSite in action.
We demonstrated the Project SocialSite widgets in Roller at JavaOne, but we didn't show much other than just the basic widgets. We modified a Roller front-page theme to include a people directory, added a profile page for each user and slapped the widgets on the page. It was pretty rough, as you can see on the right, like our other SocialSite demo vehicles.
This week, I'm working to put together a much better demonstration, something useful enough to deploy to our internal blog site at Sun. Since I have limited time and I really need to get back to working on the SocialSite widgets and web services, I've been thinking about minimum set of features needed to add some value. Here's what I think we need:
Most of the above items should be pretty easy with the SocialSite widgets, but I'm sure I'll run into a snag or two at least. I always do. I'll post again next week and let you know how far I got.
I'm happy to report that I'll be traveling to Copenhagen, Denmark to talk about Roller and Project SocialSite at the Open Source Days 2008 conference on Oct. 3-4 this year. I'm going to tell the story of Roller and lessons learned along the way and then talk about blogging in the age of social networks and how to social-enable Roller with the SocialSite widgets. The session is called titled The once and future Roller.
My teammates and I have started a new blog over at blogs.sun.com to cover Project SocialSite and to break the big news: we're open!
We are very pleased to announce that source code is now available for Project SocialSite (under a CDDL/GPL license) and the project is now operating as an open source project following the Glassfish governance policy. We're working in the open and welcome contributors of all stripes. Read more...
Looks like we made it to the final round of the Enterprise 2.0 LaunchPad competition and so Project SocialSite will be one of the five projects that will "present their ideas in front of an audience of creators, evangelists and adopters of cutting edge technologies who will provide feedback in real-time and decide the winner." Thanks to all who voted for SocialSite.