<?xml version="1.0" encoding='utf-8'?>
<!-- 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
-->
<?xml-stylesheet type="text/xsl" href="https://rollerweblogger.org/roller-ui/styles/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom">
    <title type="html">Blogging Roller</title>
    <subtitle type="html">Dave Johnson on open web technologies, social software and software development</subtitle>
    <id>https://rollerweblogger.org/roller/feed/entries/atom</id>
        <link rel="self" type="application/atom+xml" href="https://rollerweblogger.org/roller/feed/entries/atom?tags=socialsite" />
    <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/" />
    <updated>2026-05-18T08:23:39+00:00</updated>
    <generator uri="http://roller.apache.org" version="6.1.5">Apache Roller</generator>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/oracles_social_site_promise</id>
        <title type="html">Oracle: please follow through on Project SocialSite</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/oracles_social_site_promise"/>
        <published>2010-03-27T09:10:46+00:00</published>
        <updated>2010-04-27T03:17:44+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="apache" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensource" scheme="http://roller.apache.org/ns/tags/" />
        <category term="oracle" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <category term="sun" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;One year ago on this day I wrote that Sun Microsystems &lt;a href=&quot;http://rollerweblogger.org/roller/entry/the_future_of_project_socialsite&quot;&gt;is willing to contribute Project SocialSite&lt;/a&gt;&amp;quot; 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 &lt;a href=&quot;http://markmail.org/message/4vbv64oy2havjhku&quot;&gt;established&lt;/a&gt; Apache SocialSite (incubating) project, setup user accounts, put up a &lt;a href=&quot;http://incubator.apache.org/projects/socialsite.html&quot;&gt;status page&lt;/a&gt; and setup source code control but we still have no code from Sun.&lt;/p&gt;

&lt;p&gt;Since March 2009 I&amp;#39;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. 

&lt;p&gt;When Sun said that they were willing to contribute the SocialSite code to Apache, I figured that they would do so using the standard &lt;a href=&quot;http://www.apache.org/licenses/software-grant.txt&quot;&gt;Software Grant&lt;/a&gt; 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&amp;#39;s where we stand today. Sun committed to contributing SocialSite to Apache and now we&amp;#39;re waiting for Oracle/Sun to follow through on that commitment.&lt;/p&gt;

&lt;p&gt;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 &amp;quot;ported&amp;quot; to JBoss and there is still interest in and a need for what was Sun&amp;#39;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.&lt;/p&gt;

&lt;p style=&quot;align:center;&quot;&gt;
&lt;img src=&quot;http://rollerweblogger.org/roller/resource/sfish1.png&quot; alt=&quot;fish1&quot;&gt;
&lt;img src=&quot;http://rollerweblogger.org/roller/resource/sfish2.png&quot; alt=&quot;fish2&quot;&gt;
&lt;img src=&quot;http://rollerweblogger.org/roller/resource/sfish3.png&quot; alt=&quot;fish3&quot;&gt;
&lt;/p&gt;

&lt;p&gt;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&amp;#39;m asking again and publicly: &lt;b&gt;Oracle, please follow through on your commitment and grant the Project SocialSite codebase to Apache&lt;/b&gt;.&lt;/p&gt;
&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/ibm_enterprise_opensocial</id>
        <title type="html">IBM at last month&amp;#39;s Enterprise 2.0 OpenSocial panel</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/ibm_enterprise_opensocial"/>
        <published>2009-12-14T13:32:02+00:00</published>
        <updated>2009-12-14T21:34:05+00:00</updated> 
        <category term="IBM" label="IBM" />
        <category term="jazz" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensocial" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;It&amp;#39;s been over a month since the &lt;a href=&quot;http://www.e2conf.com/sanfrancisco/conference/foundations-of-enterprise-2.0.php&quot;&gt;Enterprise 2.0 OpenSocial panel&lt;/a&gt; and since we were never able to get a group blog post together, I&amp;#39;ve decided to publish a short summary of what I said about IBM on the panel. I&amp;#39;m paraphrasing myself from memory so this is not exactly what I said but it should be pretty close:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;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&amp;#39;t seen the &lt;a href=&quot;http://www.ibm.com/software/info/mashup-center/&quot;&gt;IBM Mashup Center&lt;/a&gt; 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&amp;#39;ve probably heard of &lt;a href=&quot;http://www-01.ibm.com/software/lotus/products/connections/&quot;&gt;Lotus Connections&lt;/a&gt;. Connections is IBM&amp;#39;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.&lt;/p&gt;

&lt;p&gt;We&amp;#39;re working with the &lt;a href=&quot;http://opensocial.org&quot;&gt;OpenSocial community&lt;/a&gt; to ensure that the specification meets the needs of our customers and is able to interoperate with our existing &lt;a href=&quot;http://www.lotus.com/ldd/mashupswiki.nsf/dx/widget-programming-guide&quot;&gt;iWidget&lt;/a&gt; technology (and I think I mentioned the OpenAjax Hub here too). You can see most of the improvements that we&amp;#39;re interested in the slides, so I won&amp;#39;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.&lt;/p&gt;

&lt;p&gt;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&amp;#39;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 &lt;a href=&quot;http://jazz.net&quot;&gt;Jazz.net&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I won&amp;#39;t try to paraphrase what the other panelists said, I&amp;#39;ll let them do that, and I&amp;#39;ll leave out my SocialSite pitch for now as most of my readers have already heard it. I&amp;#39;ll put together an update on SocialSite during the next month and I think I&amp;#39;ll have some good news to report.&lt;/p&gt;
</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/apachecon_trip_report</id>
        <title type="html">Trip report: ApacheCon US 2009</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/apachecon_trip_report"/>
        <published>2009-11-15T10:59:18+00:00</published>
        <updated>2010-04-27T03:34:07+00:00</updated> 
        <category term="IBM" label="IBM" />
        <category term="apacheroller" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensocial" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <category term="widgets" scheme="http://roller.apache.org/ns/tags/" />
        <category term="wookie" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;&lt;i&gt;(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&amp;#39;m going to post them here so that everybody can benefit from them.)&lt;/i&gt;
&lt;/p&gt;&lt;p&gt;&lt;table border=&quot;0&quot; class=&quot;imageplugin&quot;&gt;
&lt;tr&gt;&lt;td style=&quot;&quot;&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/mediaresource/bed8afd6-e1e8-4112-9c5d-70eaa0529646&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s my report from ApacheCon US, focusing on the projects I&amp;#39;m involved with: Roller, Shindig and SocialSite.
&lt;/p&gt;
&lt;p&gt;
&lt;h3 id=&quot;section-dummyPage-RollerSession&quot;&gt;Roller session#&lt;/h3&gt;
&lt;p&gt;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&amp;#39;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.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;What&amp;#39;s new in Apache Roller 5.0, Dave Johnson &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://www.us.apachecon.com/c/acus2009/sessions/280&quot;&gt;http://www.us.apachecon.com/c/acus2009/sessions/280&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Announcement: Roller 5.0 beta 1 available &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://markmail.org/message/rwk6pj4voxbyuaj3&quot;&gt;http://markmail.org/message/rwk6pj4voxbyuaj3&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;h3 id=&quot;section-dummyPage-ShindigSession&quot;&gt;Shindig session#&lt;/h3&gt;
&lt;p&gt;After my Roller talk and in the same room, I attended Paul Lindner&amp;#39;s talk on Apache Shindig. Paul has worked on OpenSocial implementations at Hi5 and LinkedIn and he&amp;#39;s also a committer on the Apache Shindig project.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Empowering the Social Web with Apache Shindig, Paul Linder &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://www.us.apachecon.com/c/acus2009/sessions/281&quot;&gt;http://www.us.apachecon.com/c/acus2009/sessions/281&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I&amp;#39;m familiar with Shindig so this was mostly review for me. I liked Paul&amp;#39;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&amp;#39;s developer friendly-ness and said that the community is working to fix them. I&amp;#39;ve heard similar complaints from multiple source and seen myself that it&amp;#39;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.
&lt;/p&gt;
&lt;p&gt;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 &amp;quot;Shindig is to OpenSocial as Apache HTTPD is to HTTP&amp;quot;
&lt;/p&gt;
&lt;p&gt;
&lt;h3 id=&quot;section-dummyPage-SocialWidgetsGadgetsMeetup&quot;&gt;Social Widgets / Gadgets meetup#&lt;/h3&gt;
&lt;p&gt;On Thursday night, I attended Social Widgets / Gadgets meetup which brought together members of the Apache Shindig, Apache SocialSite and Apache Wookie Communities.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Apache Shinding: OpenSocial Reference Implementation &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://incubator.apache.org/shindig&quot;&gt;http://incubator.apache.org/shindig&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Apache SocialSite: Headless Social Networking server plus Gadgets &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;https://socialsite.dev.java.net/&quot;&gt;https://socialsite.dev.java.net/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Apache Wookie: W3C Widgets, OpenSocial and Wave Gadgets server &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://incubator.apache.org/wookie&quot;&gt;http://incubator.apache.org/wookie&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There were about 25 people there including folks from Google, Atlassian, Yahoo, Ning, LinkedIn, Hippo (CMS/portals ISV) and, I&amp;#39;m guessing, a bunch of SF bay area startups. The meetup started around 8PM and lasted over two hours. 
&lt;/p&gt;
&lt;p&gt;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.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;SocialSite Mavenized &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://code.google.com/p/socialsite-mavenized&quot;&gt;http://code.google.com/p/socialsite-mavenized&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;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&amp;#39;t interfere with others and can&amp;#39;t do evil -- but without relying on iframes. Shindig uses Caja, but it&amp;#39;s optional and off by default.
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Google Caja - A source-to-source translator for securing Javascript-based web content &lt;br&gt; &lt;a class=&quot;external&quot; href=&quot;http://code.google.com/p/google-caja/&quot;&gt;http://code.google.com/p/google-caja/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;After that Paul Linder did a quick talk on the Open Stack idea and revised his Shindig quote to &amp;quot;Shindig is to the Open Stack as Apache HTTPD is to HTTP.&amp;quot; Then we broke up and folks stuck around to talk about APIs, projects, possibilities and everything else for quite some time.
&lt;/p&gt;
&lt;p&gt;That&amp;#39;s all I&amp;#39;ve got for now. I hope to document some of my experiences on the &amp;quot;Enterprise OpenSocial&amp;quot; panel at Enterprise 2.0 later, possibly in a blog post on the OpenSocial blog.
&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/apacheconus_2009_registration_open</id>
        <title type="html">ApacheConUS 2009 registration open, sign up now!</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/apacheconus_2009_registration_open"/>
        <published>2009-08-11T20:09:21+00:00</published>
        <updated>2009-08-12T03:48:12+00:00</updated> 
        <category term="Open Source" label="Open Source" />
        <category term="apachecon" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensocial" scheme="http://roller.apache.org/ns/tags/" />
        <category term="shindig" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <category term="wookie" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;a href=&quot;http://www.us.apachecon.com&quot;&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/resource/10th_Anniversary_logo_final_w_URL.gif&quot; align=&quot;right&quot; alt=&quot;Apache 10th anniversary logo&quot; style=&quot;padding:1em;&quot;&gt;&lt;/a&gt;

&lt;p&gt;The early-bird special ends on August 14, so you&amp;#39;d better get moving.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Sign up for &lt;a href=&quot;http://www.us.apachecon.com&quot;&gt;ApacheCon US&lt;/a&gt; by 14 August and save up to $500!&lt;/p&gt;

&lt;p&gt;This year&amp;#39;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&amp;#39;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&amp;#39;s success!&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Be sure to register by 14 August to save up to $500! To sign up, visit &lt;a href=&quot;http://www.us.apachecon.com&quot;&gt;http://www.us.apachecon.com&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I&amp;#39;ll be there and speaking on the topic of &lt;a href=&quot;http://www.us.apachecon.com/c/acus2009/sessions/280&quot;&gt;What&amp;#39;s New in Roller 5.0&lt;/a&gt;. I also plan to attend the &lt;a href=&quot;http://wiki.apache.org/apachecon/SocialAndWidgetsMeetup&quot;&gt;Social and Widgets Meetup with folks from Shindig, SocialSite and Wookie. I hope to see you there.&lt;/a&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/socialsite_apache</id>
        <title type="html">SocialSite@Apache</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/socialsite_apache"/>
        <published>2009-04-23T23:00:49+00:00</published>
        <updated>2009-04-24T06:03:37+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="apache" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensocial" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;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&amp;#39;s time to return. I think. I have been doing some internal blogging at IBM, but so far it&amp;#39;s been mostly boring stuff: status reports and the like.&lt;/p&gt;

&lt;p&gt;What I want to talk about today is Project SocialSite. Since my &lt;a href=&quot;http://rollerweblogger.org/roller/entry/the_future_of_project_socialsite&quot;&gt;last post&lt;/a&gt;, 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:&lt;/p&gt;

&lt;p style=&quot;margin-left:1em;&quot;&gt;&lt;a href=&quot;http://wiki.apache.org/incubator/SocialSiteProposal&quot;&gt;Proposal: Apache SocialSite&lt;/a&gt;&lt;/p&gt;

&lt;p style=&quot;margin-left:1em;&quot;&gt;&lt;a href=&quot;http://markmail.org/message/7m6mk34pxgyrqhsg&quot;&gt;Discussion and vote thread on the Incubator General mailing list&lt;/a&gt;&lt;/p&gt;

&lt;p style=&quot;margin-left:1em;&quot;&gt;&lt;a href=&quot;http://incubator.apache.org/guides/lists.html&quot;&gt;Subscripton info for the Incubator mailing lists&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to support the project, and especially if you&amp;#39;re on the Incubator&amp;#39;s Project Management Committee, now&amp;#39;s the time to do so.&lt;/p&gt;

</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/the_future_of_project_socialsite</id>
        <title type="html">The future of Project SocialSite: Apache?</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/the_future_of_project_socialsite"/>
        <published>2009-03-27T13:17:27+00:00</published>
        <updated>2010-03-27T15:56:36+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="apache" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensocial" scheme="http://roller.apache.org/ns/tags/" />
        <category term="shindig" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <category term="sun" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;Since January, the future of &lt;a href=&quot;&quot; href=&quot;https://socialsite.dev.java.net&quot;&gt;https://socialsite.dev.java.net&lt;/a&gt;&amp;quot;&amp;gt;Project SocialSite has been in the hands of the SocialSite community. During that time, I continued working on the project almost because I think it&amp;#39;s got great potential and I would &lt;i&gt;really&lt;/i&gt; like to see it live on in some form. That&amp;#39;s also why I continued to talk to Sun about the project.&lt;br&gt; &lt;br&gt;
&lt;/p&gt;&lt;p&gt;Today, I&amp;#39;m very happy to announce that &lt;a class=&quot;external&quot; href=&quot;http://sun.com&quot;&gt;Sun Microsystems&lt;/a&gt; is willing to contribute Project SocialSite to the &lt;a class=&quot;external&quot; href=&quot;http://apache.org&quot;&gt;Apache Software Foundation&lt;/a&gt;. It&amp;#39;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&amp;#39;ve started some discussions about this on Apache-private mailing lists and I&amp;#39;ll let you know what happens next.
&lt;/p&gt;
&lt;p&gt;This post brings to an end my series of posts about Shindig for blogs and wikis. Here are links to the earlier posts:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/talking_shindig_at_apacheconeu&quot;&gt;Upcoming: Shindig for Blogs and Wikis, ApacheCon EU&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/preparing_for_shindig_talk&quot;&gt;Preparing for my Shindig talk next month&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/oauth_everywhere&quot;&gt;OAuth everywhere!&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/sidebar_what_is_oauth&quot;&gt;What is OAuth and why whould you care&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/oauth_for_roller&quot;&gt;OAuth for AtomPub in Roller&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/oauth_for_rome_propono&quot;&gt;OAuth for ROME Propono&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/socialsite_on_rollerwebloggerorg&quot;&gt;SocialSite on rollerweblogger.org&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/oauth_everywhere_continued&quot;&gt;OAuth everywhere (continued)&lt;/a&gt;
 
&lt;/li&gt;&lt;/ul&gt;By the way, I delivered my Shindig talk just a couple of minutes ago. It was well-attended and I think it went pretty well. You can find the slides online at the ApacheCon EU 2009 site here: &lt;a href=&quot;&quot; href=&quot;http://www.eu.apachecon.com/c/aceu2009/sessions/184&quot;&gt;http://www.eu.apachecon.com/c/aceu2009/sessions/184&lt;/a&gt;&amp;quot;&amp;gt;Shindig for Blogs and Wikis. Now back to your regularly scheduled programming...
&lt;p&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/oauth_everywhere_continued</id>
        <title type="html">OAuth everywhere (continued)</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/oauth_everywhere_continued"/>
        <published>2009-03-26T02:00:00+00:00</published>
        <updated>2014-11-28T20:50:03+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="oauth" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensocial" scheme="http://roller.apache.org/ns/tags/" />
        <category term="roller" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">In my earlier &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/oauth_everywhere&quot;&gt;OAuth everywhere&lt;/a&gt; post I explained at a high level &amp;quot;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.&amp;quot; I ended with some unanswered questions. In those post I&amp;#39;ll answer those questions with source code, screenshots and more.
</summary>
        <content type="html">&lt;p&gt;In my earlier &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/oauth_everywhere&quot;&gt;OAuth everywhere&lt;/a&gt; post I explained at a high level &amp;quot;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.&amp;quot; I ended with some unanswered questions:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;How do I add my gadget to SocialSite so users can install and use it?
&lt;/li&gt;&lt;li&gt;How does SocialSite get the Consumer Key and Secret needed for calling Roller?
&lt;/li&gt;&lt;li&gt;How does Roller get the Consumer Key and Secret needed for calling SocialSite?
&lt;/li&gt;&lt;li&gt;How does the user authorize Roller&amp;#39;s access to his Profile information in SocialSite?
&lt;/li&gt;&lt;li&gt;When is OAuth support coming to the Roller trunk and can you use it for AtomPub?
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;i&gt;(that last question was answered in &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/oauth_for_roller&quot;&gt;OAuth for AtomPub in Roller&lt;/a&gt; earlier this week)&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;Now that I&amp;#39;ve wrapped up my work on &lt;a class=&quot;external&quot; href=&quot;http://oauth.net&quot;&gt;OAuth&lt;/a&gt; in &lt;a class=&quot;external&quot; href=&quot;http://socialsite.dev.java.net&quot;&gt;SocialSite&lt;/a&gt; and OAuth in &lt;a class=&quot;external&quot; href=&quot;http://roller.apache.org&quot;&gt;Roller&lt;/a&gt;, I&amp;#39;m prepared to answer those questions. I&amp;#39;ll do it by reviewing how I developed my Social Roller gadget and set it up to work on &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org&quot;&gt;http://rollerweblogger.org&lt;/a&gt;, my Roller and SocialSite powered site. 
&lt;/p&gt;
&lt;p&gt;Along the way, I&amp;#39;ll provide links to source code and screen-shots. I&amp;#39;ll be referring to the diagram from first post, so I&amp;#39;ll reproduce it here for the sake of convenience:
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/oauth-roller-socialsite.jpg&quot; alt=&quot;http://rollerweblogger.org/roller/resource/oauth-roller-socialsite.jpg&quot;&gt;
&lt;/p&gt;
&lt;p&gt;&lt;i&gt;NOTE: this post is based on the current code in the &lt;a class=&quot;external&quot; href=&quot;https://socialsite.dev.java.net/source/browse/socialsite&quot;&gt;Project SocialSite SVN trunk&lt;/a&gt;. The things described below WILL NOT work with the SocialSite M3 release.&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-Step1DevelopAnOpenSocialApplication&quot;&gt;Step 1 - Develop an OpenSocial Application#&lt;/h4&gt;
&lt;p&gt;My first step was to develop an OpenSocial application for Roller. This application is made up of the three parts listed below. These are the parts show in light-blue in the diagram above.
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;b&gt;An OpenSocial Gadget for Roller&lt;/b&gt; that a user can install into his SocialSite profile. An OpenSocial Gadget is defined by Gadget Specification, an XML file with the metadata, HTML, CSS and JavaScript that render the gadget&amp;#39;s user interface. I developed my gadget as a Roller page template and you can view it&amp;#39;s source code here: &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/project/page/viewsource?pageName=gadget.xml&quot;&gt;gadget.xml&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;b&gt;A gadget setup page&lt;/b&gt;, a new JSP page in Roller that is called by the gadget to enable and disable Activity posting. This JSP page is protected by OAuth and returns data in JSON format to the gadget. View the source code here &lt;a class=&quot;external&quot; href=&quot;http://code.google.com/p/opensosuite/source/browse/trunk/components/apache_roller/copyover/setupgadget.jsp&quot;&gt;setupgadget.jsp&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;b&gt;A Roller Task&lt;/b&gt; that runs periodically, checks to see if any gadget users have created new blog posts and if they have, posts a Activity to SocialSite for each, by calling the OAuth-protected OpenSocial REST API provided by SocialSite. View the source code here &lt;a class=&quot;external&quot; href=&quot;http://code.google.com/p/opensosuite/source/browse/trunk/components/apache_roller/src/org/rollerweblogger/SocialRollerTask.java&quot;&gt;SocialRollerTask.java&lt;/a&gt;
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-Step2RegisterGadgetWithSocialSite&quot;&gt;Step 2 - Register gadget with SocialSite#&lt;/h4&gt;
&lt;p&gt;&lt;i&gt;This section answers the question &amp;quot;How do I add my gadget to SocialSite so users can install and use it?&amp;quot;&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;My next step was to register my application. Remember that SocialSite is intended to add social features to existing web sites and has very little user interface of its own, it&amp;#39;s mostly made up of gadgets. So, the way you register a new application on a SocialSite-enabled site is to sign-up as a user of that site, go to your profile page, install the SocialSite Developer Gadget and then use that gadget to register your new application. 
&lt;/p&gt;
&lt;p&gt;You can see a screenshot of the SocialSite Developer Gadget below. In the simplest case, you just enter the URL of your Gadget Specification, but I needed to take a couple of extra steps because my gadget needs to call an OAuth protected resource in Roller.
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/socialroller-register.png&quot; alt=&quot;http://rollerweblogger.org/roller/resource/socialroller-register.png&quot;&gt;
&lt;/p&gt;
&lt;p&gt;&lt;i&gt;This next paragraph answers the question &amp;quot;How does SocialSite get the Consumer Key and Secret needed for calling Roller?&amp;quot;&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;I need my gadget to call back to the Roller setupgadget.jsp page (that&amp;#39;s part &lt;b&gt;#4&lt;/b&gt; in the diagram above) to enable/disable activity posting. Because that page is protected by OAuth, I had to go into Roller and get Roller&amp;#39;s site-wide OAuth key and secret (see also: &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/oauth_for_roller&quot;&gt;OAuth for Roller&lt;/a&gt;) and then enter those it the Developer Gadget. SocialSite stores them and will use them to take care of the OAuth authentication process on each gadget call to Roller (in part &lt;b&gt;#2&lt;/b&gt; above).
&lt;/p&gt;
&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-Step3ApproveGadgetRegistration&quot;&gt;Step 3 - Approve gadget registration#&lt;/h4&gt;
&lt;p&gt;Since I&amp;#39;m the administrator of my site, I approved my own gadget registration. I did this by logging into my site&amp;#39;s SocialSite admin console, went to the Gadget Management tab, saw my new gadget registration request and approved it. Here&amp;#39;s a screenshot of the Gadget Registration approval page:
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/socialroller-approval.png&quot; alt=&quot;http://rollerweblogger.org/roller/resource/socialroller-approval.png&quot;&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-Step4AddOAuthConsumerKeyAndSecretToRoller&quot;&gt;Step 4 - Add OAuth consumer key and secret to Roller#&lt;/h4&gt;
&lt;p&gt;&lt;i&gt;This next paragraph answers the question &amp;quot;How does Roller get the Consumer Key and Secret needed for calling SocialSite?&amp;quot;&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;After your gadget is approved for use on a SocialSite enabled site, you&amp;#39;ll find the consumer key and secret that Roller needs to call the OpenSocial REST API (that&amp;#39;s step &lt;b&gt;#6&lt;/b&gt; above) in the SocialSite Developer Gadget. Here&amp;#39;s what you see in the Developer Gadget once you gadget is approved.
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/socialroller-approved.png&quot; alt=&quot;http://rollerweblogger.org/roller/resource/socialroller-approved.png&quot;&gt;
&lt;/p&gt;
&lt;p&gt;My OpenSocial Roller application needs to know about those keys, so I put them in its configuration. For simplicity&amp;#39;s sake, I&amp;#39;m not going to go into the details of this step.
&lt;/p&gt;
&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-Step5InstallTheSocialRollerGadget&quot;&gt;Step 5 - install the Social Roller gadget#&lt;/h4&gt;
&lt;p&gt;Finally, the OpenSocial Roller application is ready for use. To install it, I went to my profile page, clicked the Gadget Directory button, browsed through the gadgets until I found it and then clicked the install button. Here&amp;#39;s a screenshot of the SocialSite Gadget Directory, which you can access from the SocialSite Profile Gadget:
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/socialroller-gadgetdir.png&quot; alt=&quot;http://rollerweblogger.org/roller/resource/socialroller-gadgetdir.png&quot;&gt;
&lt;/p&gt;
&lt;p&gt;The Social Roller Gadget is the last item in the list, the &amp;quot;Simple Roller Gadget.&amp;quot;
&lt;/p&gt;
&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-Step6AuthorizeAndEnableTheSocialRollerGadget&quot;&gt;Step 6 - authorize and enable the Social Roller gadget#&lt;/h4&gt;
&lt;p&gt;After I installed the gadget, it appeared in my Profile page as you can see in the screenshot below.  It&amp;#39;s installed and ready to run, but it&amp;#39;s not yet authorized to access my Roller account so it tells me &amp;quot;Before you can use this gadget, you must authorize it to access your Roller account.&amp;quot;
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/socialroller-unauthorized.png&quot; alt=&quot;http://rollerweblogger.org/roller/resource/socialroller-unauthorized.png&quot;&gt;
&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Finally, I can answer the question &amp;quot;How does the user authorize Roller&amp;#39;s access to his Profile information in SocialSite?&amp;quot;&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;I want the gadget to access my Roller account so I clicked on the authorize link and saw this page popup, directly from Roller, which asks me to take the final step to authorize access.
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/socialroller-authorization.png&quot; alt=&quot;http://rollerweblogger.org/roller/resource/socialroller-authorization.png&quot;&gt;
&lt;/p&gt;
&lt;p&gt;After I clicked the authorize button, page disappeared and the Social Roller gadget redisplayed itself as you can see in the screenshot below. The gadget is now ready to access my Roller account and is asking me to enable activity posting:
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/socialroller-disabled.png&quot; alt=&quot;http://rollerweblogger.org/roller/resource/socialroller-disabled.png&quot;&gt;
&lt;/p&gt;
&lt;p&gt;I clicked the enable posting button and saw this:
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/socialroller-enabled.png&quot; alt=&quot;http://rollerweblogger.org/roller/resource/socialroller-enabled.png&quot;&gt;
&lt;/p&gt;
&lt;p&gt;And now, whenever I post a new blog entry, an activity is added to my profile. Here&amp;#39;s proof in the form of a screenshot:
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/socialroller-activities.png&quot; alt=&quot;http://rollerweblogger.org/roller/resource/socialroller-activities.png&quot;&gt;
&lt;/p&gt;
&lt;h4 id=&quot;section-dummyPage-Conclusion&quot;&gt;Conclusion#&lt;/h4&gt;
&lt;p&gt;I&amp;#39;ve done the work to enable OAuth in SocialSite and Roller, so now it&amp;#39;s possible to develop OpenSocial gadgets for Roller that will work with SocialSite and other OpenSocial containers. The Roller side of this work is now available in Apache Roller (in the SVN trunk), but the future of the SocialSite is still uncertain. 
&lt;/p&gt;
&lt;p&gt;I think SocialSite still has great potential. That&amp;#39;s why I&amp;#39;m spending so much time promoting it and moving it forward, but I can&amp;#39;t do it all myself. I&amp;#39;m joining IBM next week and as far as I know, SocialSite will NOT be part of my job. I&amp;#39;ll wrap up this series of posts tomorrow with a post discussing the future of Project SocialSite.
&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/socialsite_on_rollerwebloggerorg</id>
        <title type="html">Socialsite on rollerweblogger.org</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/socialsite_on_rollerwebloggerorg"/>
        <published>2009-03-25T23:59:59+00:00</published>
        <updated>2014-11-28T20:52:52+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="jspwiki" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensocial" scheme="http://roller.apache.org/ns/tags/" />
        <category term="roller" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;The value of &lt;a class=&quot;external&quot; href=&quot;http://socialsite.dev.java.net&quot;&gt;Project SocialSite&lt;/a&gt; is that it allows you to add social networking features, including the ability to run &lt;a class=&quot;external&quot; href=&quot;http://opensocial.org&quot;&gt;OpenSocial&lt;/a&gt; gadgets, to existing web sites and have those sites all using the same &amp;quot;social graph&amp;quot; of data about people and relationships. To demonstrate this, I&amp;#39;ve deployed SocialSite to my site, &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org&quot;&gt;http://rollerweblogger.org&lt;/a&gt;, and finally implemented those things I described in my August 2008 &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/social_roller&quot;&gt;Social Roller&lt;/a&gt; post.&lt;br&gt; &lt;br&gt;
&lt;/p&gt;&lt;p&gt;My site includes a blog and a wiki, &lt;a class=&quot;external&quot; href=&quot;http://roller.apache.org&quot;&gt;Roller&lt;/a&gt; and &lt;a class=&quot;external&quot; href=&quot;http://jspwiki.org&quot;&gt;JSPWiki&lt;/a&gt;, so it&amp;#39;s a pretty good candidate for demonstrating how SocialSite. It&amp;#39;s not perfect because it&amp;#39;s got only a very small number of users, less than a dozen and because it&amp;#39;s private; you have to login to see the social features. It&amp;#39;ll have to do.
 
In this post, I&amp;#39;ll explain the steps you have to take to add SocialSite to a multi-application web site and I&amp;#39;ll illustrate the steps with examples and screenshots from my work on this site.&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;The value of &lt;a class=&quot;external&quot; href=&quot;http://socialsite.dev.java.net&quot;&gt;Project SocialSite&lt;/a&gt; is that it allows you to add social networking features, including the ability to run &lt;a class=&quot;external&quot; href=&quot;http://opensocial.org&quot;&gt;OpenSocial&lt;/a&gt; gadgets, to existing web sites and have those sites all using the same &amp;quot;social graph&amp;quot; of data about people and relationships. To demonstrate this, I&amp;#39;ve deployed SocialSite to my site, &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org&quot;&gt;http://rollerweblogger.org&lt;/a&gt;, and finally implemented those things I described in my August 2008 &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/roller/entry/social_roller&quot;&gt;Social Roller&lt;/a&gt; post (except for protected entries).&lt;br&gt; &lt;br&gt;
&lt;/p&gt;&lt;p&gt;My site includes a blog and a wiki, &lt;a class=&quot;external&quot; href=&quot;http://roller.apache.org&quot;&gt;Roller&lt;/a&gt; and &lt;a class=&quot;external&quot; href=&quot;http://jspwiki.org&quot;&gt;JSPWiki&lt;/a&gt;, so it&amp;#39;s a pretty good candidate for demonstrating how SocialSite can work with multiple existing webapps. It&amp;#39;s not perfect because it&amp;#39;s got a very small number of users, less than a dozen, and because it&amp;#39;s private; you have to login to see the social features, but it&amp;#39;ll have to do.
 
In this post, I&amp;#39;ll explain the steps you have to take to add SocialSite to a multi-application web site and I&amp;#39;ll illustrate the steps with examples, links to source code and screenshots from my work on this site.
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/threefish.png&quot; alt=&quot;http://rollerweblogger.org/roller/resource/threefish.png&quot;&gt;
&lt;/p&gt;
&lt;p&gt;&lt;i&gt;NOTE: this post is based on the current code in the &lt;a class=&quot;external&quot; href=&quot;https://socialsite.dev.java.net/source/browse/socialsite&quot;&gt;Project SocialSite SVN trunk&lt;/a&gt;. The things described below may or may not work with the SocialSite M3 release.&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-Step1SetupAnAuthenticationDelegatePageInYourSite&quot;&gt;Step 1 - Setup an Authentication Delegate page in your site#&lt;/h4&gt;
&lt;p&gt;SocialSite doesn&amp;#39;t do any user management, it leaves that to the sites that it enables. In my case, I&amp;#39;ve got Roller and JSPWiki setup to authenticate against the same database table of usernames and passwords, and I&amp;#39;ve got Tomcat&amp;#39;s simple SSO setup so that logins work across both webapps. I want SocialSite to depend on Roller to verify that users are logged. SocialSite&amp;#39;s Authentication Delegation mechanism makes this possible. 
&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s how SocialSite Authentication works. You add a delegate page, a dynamic page (JSP, PHP, etc.) to the webapp that is to do the authentication, configure SocialSite to trust that webapp and then at runtime, SocialSite will call that delegate page to verify user logins. In my case, I want Roller to do the authentication so I added a delegate page to Roller called &lt;a class=&quot;external&quot; href=&quot;http://code.google.com/p/opensosuite/source/browse/trunk/components/apache_roller/copyover/socialsite_context.jsp&quot;&gt;socialsite_context.jsp&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;When a SocialSite gadget running inside of Roller needs to call back to the OpenSocial API provided by SocialSite it will pass Roller&amp;#39;s login cookie with the call, an assertion about who the logged-in user is and the URL of Roller&amp;#39;s authentication delegate page (socialsite_context.jsp). SocialSite will then call that delegate, pass the cookie and verify that assertion. SocialSite expects the delegate to return some JSON data like this:
&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Example: JSON data from socialsite_context.jsp&lt;/i&gt;
&lt;/p&gt;
&lt;pre&gt;

  {
    &amp;#39;timeout&amp;#39;: 30,
    &amp;#39;assertions&amp;#39;: {
      &amp;#39;containerId&amp;#39;: &amp;#39;rollerweblogger.org&amp;#39;,
        &amp;#39;viewer&amp;#39;: davej,
        &amp;#39;owner&amp;#39;: davej,
      }
    }
  }

&lt;/pre&gt;
&lt;p&gt;In the above example, Roller is confirming the assertion that the user is &amp;#39;davej&amp;#39; and the owner of the page containing the gadget is also &amp;#39;davej&amp;#39;. Knowing this, SocialSite can decide what data the caller is allowed to access.
&lt;/p&gt;
&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-Step2ConfigureSocialSiteToTrustYourAuthenticationDelegatePage&quot;&gt;Step 2 - configure SocialSite to trust your Authentication Delegate page#&lt;/h4&gt;
&lt;p&gt;SocialSite won&amp;#39;t trust just any authentication delegate page. Once you have created your page, you must configure SocialSite to trust it. You do this by editing a SocialSite configuration file in WEB-INF/classes/socialsite_context.xml. Here&amp;#39;s an example that sets up a trust relationship with Roller&amp;#39;s socialsite_context.jsp page:
&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Example: socialsite_context.xml in SocialSite&lt;/i&gt;
&lt;/p&gt;
&lt;pre&gt;

  &amp;lt;rules&amp;gt;
    &amp;lt;rule&amp;gt;
      &amp;lt;sources&amp;gt;
        &amp;lt;indirect&amp;gt;*&amp;lt;/indirect&amp;gt;
      &amp;lt;/sources&amp;gt;
      &amp;lt;assertions&amp;gt;
        &amp;lt;reject&amp;gt;*&amp;lt;/reject&amp;gt;
      &amp;lt;/assertions&amp;gt;
    &amp;lt;/rule&amp;gt;

    &amp;lt;rule&amp;gt;
      &amp;lt;sources&amp;gt;
        &amp;lt;direct&amp;gt;http://rollerwebogger.org/socialsite_context.jsp&amp;lt;/direct&amp;gt;
        &amp;lt;direct&amp;gt;*&amp;lt;/direct&amp;gt;
      &amp;lt;/sources&amp;gt;
      &amp;lt;assertions&amp;gt;
        &amp;lt;accept&amp;gt;*&amp;lt;/accept&amp;gt;
      &amp;lt;/assertions&amp;gt;
    &amp;lt;/rule&amp;gt;
  &amp;lt;/rules&amp;gt;

&lt;/pre&gt;
&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-Step3AddSocialSiteContextDeclarationsToTargetPages&quot;&gt;Step 3 - Add SocialSite Context declarations to target pages#&lt;/h4&gt;
&lt;p&gt;Once the Authentication Delegate page is in place, you&amp;#39;re just about ready to start adding gadgets to the pages of your web applications. Each page that includes gadgets will need to include a couple of SocialSite scripts and information about the SocialSite context, i.e. the URL of the authentication delegate. Here&amp;#39;s an example of the the JavaScript that I include include in Roller pages that use SocialSite gadgets:
&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Example: SocialSite context declaration for a Roller page template&lt;/i&gt;
&lt;/p&gt;
&lt;pre&gt;

  #set($viewer = $utils.getAuthenticatedUser().getUserName())
  #set($userName = $model.getRequestParameter(&amp;quot;user&amp;quot;))
  #if ($userName)
    #set($owner = $userName)
  #else
    #set($owner = $viewer)
  #end
  #set($contextURL = &amp;quot;${url.absoluteSite}/socialsite_context.jsp&amp;quot;)
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot; 
    src=&amp;quot;${url.absoluteSite}/social/js/consumer.jsp&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
    socialsite.setContext({
      &amp;#39;delegate&amp;#39;: {
        &amp;#39;method&amp;#39;: &amp;#39;GET&amp;#39;,
        &amp;#39;url&amp;#39;: &amp;#39;$contextURL?owner=$owner&amp;amp;amp;viewer=$viewer&amp;#39;,
        &amp;#39;headers&amp;#39;: {
          &amp;#39;cookie&amp;#39;: document.cookie
        }
      }
    });
  &amp;lt;/script&amp;gt;

&lt;/pre&gt;
&lt;p&gt;The above code pulls in some JavaScript from SocialSite and sets up the context necessary for gadgets to call back to SocialSite. It uses Roller&amp;#39;s $utils.getAuthenticatedUser() to determine the logged-in user and a request parameter &amp;#39;user&amp;#39; to determine who owns the page.
&lt;/p&gt;
&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-Step4DecideWhereToPutKeySocialNetworkingPages&quot;&gt;Step 4 - decide where to put key social networking pages#&lt;/h4&gt;
&lt;p&gt;Finally, you&amp;#39;re ready to add gadgets to the pages of your site. First, you&amp;#39;ll want to do some planning. You&amp;#39;ll want to decide where to place some key pages. The SocialSite widgets are designed to support a &lt;i&gt;dashboard&lt;/i&gt; page, which allows users to browse people, make friends and receive messages. They also support both personal and group &lt;i&gt;profile&lt;/i&gt; pages.
&lt;/p&gt;
&lt;p&gt;For rollerweblogger.org, I decided to use one Roller page template &amp;#39;people&amp;#39; to act as both the Dashboard and Profile page. If you access the page with a URL that specifies a user, then you&amp;#39;ll see the profile page of that user. If you access the page with without specifying a user, then you&amp;#39;ll see your dashboard page. Here&amp;#39;s what I put in the socialsite.properties file to set all this up:
&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Example: SocialSite URL properties from socialsite.properties&lt;/i&gt;
&lt;/p&gt;
&lt;pre&gt;

  # People page shows your Dashboard
  socialsite.dashboard.url=\
    http://rollerweblogger.org/project/page/people

  # People page with user parameter shows profile of specified user
  socialsite.profile.url=\
    http://rollerweblogger.org/project/page/people?user=${userid}

  # Group profile page will be hosted in JSPWiki
  socialsite.group.url=\
    http://rollerweblogger.org/wiki/Wiki.psh?page=${groupid}

&lt;/pre&gt;
&lt;p&gt;NOTE that in the above configuration, I&amp;#39;m using my wiki to host group profile pages; more about that later. 
&lt;/p&gt;
&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-Step5AddOpenSocalGadgets&quot;&gt;Step 5 - add OpenSocal Gadgets#&lt;/h4&gt;
&lt;p&gt;Once you&amp;#39;ve decided how to set things up, you&amp;#39;re ready to start adding gadgets. Assuming that you&amp;#39;ve added the SocialSite context declarations in your pages, you can add a gagdet with a single line of JavaScript. For example, to add the SocialSite &lt;b&gt;Owner Activities&lt;/b&gt; Gadget you&amp;#39;d add this code:
&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Example: add gadget code from a Roller page template&lt;/i&gt;
&lt;/p&gt;
&lt;pre&gt;

  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
    socialsite.addGadget({&amp;#39;spec&amp;#39;:&amp;#39;local_gadgets/owner_activities.xml&amp;#39;, 
      &amp;#39;removable&amp;#39;:false, &amp;#39;height&amp;#39;:75, &amp;#39;includeChrome&amp;#39;:true});
  &amp;lt;/script&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;

&lt;/pre&gt;
&lt;p&gt;NOTE that you can add any OpenSocial gadget by specifying its URL in the spec argument of the socialsite.addGadget() call. 
&lt;/p&gt;
&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-Screenshots&quot;&gt;Screenshots#&lt;/h4&gt;
&lt;p&gt;It&amp;#39;s screenshot time. I&amp;#39;ve included small thumbnail images belo, which you can click for a closer view. If you&amp;#39;re on my site, photos will display in a light-box. First up, is the new People page that you will see if you are logged into rollerweblogger.org. It uses the SocialSite Profile, Face, Status, Friends and Activities gadgets.
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/socialroller-profile.png&quot; alt=&quot;http://rollerweblogger.org/roller/resource/socialroller-profile.png&quot;&gt;
&lt;/p&gt;
&lt;p&gt;Next up, the dashboard page. It uses just one gadget, the SocialSite Dashboard, which provides a bunch of different features and was introduced in the &lt;a class=&quot;external&quot; href=&quot;http://blogs.sun.com/socialsite/entry/a_little_more_about_socialsite&quot;&gt;SocialSite M2&lt;/a&gt; release. In one tab you can see the most recent activities of your friends or any of your groups:
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/socialroller-dashboard1.png&quot; alt=&quot;http://rollerweblogger.org/roller/resource/socialroller-dashboard1.png&quot;&gt;
&lt;/p&gt;
&lt;p&gt;In the second tab of the Dashboard Gadget, you can search and filter the people in the social network. You can filter by friends or by your groups. You can also create new relationships and accept or ignore relationship requests from this view.
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/socialroller-dashboard2.png&quot; alt=&quot;http://rollerweblogger.org/roller/resource/socialroller-dashboard2.png&quot;&gt;
&lt;/p&gt;
&lt;p&gt;In the last tab of the Dashboard Gadget, you can view and manage incoming messages and friendships requests:
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/socialroller-dashboard3.png&quot; alt=&quot;http://rollerweblogger.org/roller/resource/socialroller-dashboard3.png&quot;&gt;
&lt;/p&gt;
&lt;p&gt;Want to see the source code? You can see the page template code for my People page in the Roller page templates &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/project/page/viewsource?pageName=peopleSidebar&quot;&gt;people&lt;/a&gt;, which contains the SocialSite context declaration, and &lt;a class=&quot;external&quot; href=&quot;http://rollerweblogger.org/project/page/viewsource?pageName=people&quot;&gt;people&lt;/a&gt;, which contains the main body of the page. 
&lt;/p&gt;
&lt;p&gt;Finally, let&amp;#39;s take a look at an example group profile page, which is located in my wiki. 
&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;inline&quot; src=&quot;http://rollerweblogger.org/roller/resource/socialroller-wiki.png&quot; alt=&quot;http://rollerweblogger.org/roller/resource/socialroller-wiki.png&quot;&gt;
&lt;/p&gt;
&lt;p&gt;Hmm... I never explained how I got SocialSite gadgets working in JSPWiki. Better fix that now.
&lt;/p&gt;
&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-ANoteAboutSocialSiteInJSPWiki&quot;&gt;A note about SocialSite in JSPWiki#&lt;/h4&gt;
&lt;p&gt;To get SocialSite gadgets working in JSPWiki, I had to to a little extra work. In my instance of JSPWiki, I don&amp;#39;t allow HTML so I couldn&amp;#39;t just drop in the JavaScript code necessary to declare the SocialSite context and make the socialsite.addGadget() calls. What I had to do was to create a couple of JSPWiki plugins, one for the SocialSite context and one for the add-gadget call. Here the raw wiki text of the Atomic Group page pictured above:
&lt;/p&gt;
&lt;pre&gt;

  !!!SocialSite Group: Atomic

  [{SocialSiteGroupContext group=&amp;#39;atomic&amp;#39; 
    consumerUri=&amp;#39;http://rollerweblogger.org/social/js/consumer.jsp&amp;#39; 
    authUri=&amp;#39;http://rollerweblogger.org/socialsite_context.jsp&amp;#39;}]

  Demonstrates the SocialSite Group gadgets, running in JSPWiki.

  !!Group Profile Gadget

  Below is the Group Profile for group __Atomic__. You can use the buttons at 
  the bottom to edit the group&amp;#39;s profile properties, to send a message to 
  the group and to add OpenSocial gadgets to this page.

  [{SocialSiteAddGadget spec=&amp;#39;/local_gadgets/group_profile.xml&amp;#39; removable=&amp;#39;true&amp;#39;}]

  !!Installed Gadgets

  This is where the group&amp;#39;s OpenSocial gadgets will appear.
  [{SocialSiteAddGadget collection=&amp;#39;GROUP&amp;#39;}]

&lt;/pre&gt;
&lt;p&gt;And here are links to the source code for the two plugins: &lt;a class=&quot;external&quot; href=&quot;http://code.google.com/p/opensosuite/source/browse/trunk/components/apache_jspwiki/src/org/rollerweblogger/plugins/SocialSiteGroupContext.java&quot;&gt;SocialSiteContext.java&lt;/a&gt; and &lt;a class=&quot;external&quot; href=&quot;http://code.google.com/p/opensosuite/source/browse/trunk/components/apache_jspwiki/src/org/rollerweblogger/plugins/SocialSiteAddGadget.java&quot;&gt;SocialSiteAddGadget.java&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;h4 id=&quot;section-dummyPage-Conclusion&quot;&gt;Conclusion#&lt;/h4&gt;
&lt;p&gt;That should give you a pretty good idea of what you can do with SocialSite. Don&amp;#39;t be dissappointed if the gadgets don&amp;#39;t look like exactly what you want. The important thing is that &lt;b&gt;SocialSite gives you a centralized social graph service and the infrastructure needed to add social networking features to your sites via OpenSocial gadgets&lt;/b&gt;. If you don&amp;#39;t like the gadgets that come with SocialSite, you easily write your own using the standard OpenSocial APIs and the SocialSite extensions to those APIs.
&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/leaving_sun</id>
        <title type="html">Leaving Sun...</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/leaving_sun"/>
        <published>2009-01-22T17:23:11+00:00</published>
        <updated>2009-01-23T01:37:17+00:00</updated> 
        <category term="Sun" label="Sun" />
        <category term="roller" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <category term="sun" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;a href=&quot;http://www.flickr.com/photos/snoopdave/259291256/&quot; title=&quot;Silver Lake sunset by snoopdave, on Flickr&quot;&gt;&lt;img align=&quot;right&quot; src=&quot;http://farm1.static.flickr.com/99/259291256_1a770a4422_m.jpg&quot; hspace=&quot;5px&quot; vspace=&quot;5px&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;Silver Lake sunset&quot;&gt;&lt;/a&gt;

&lt;p&gt;It was over four years ago when I &lt;a href=&quot;http://rollerweblogger.org/roller/entry/blogs_sun_com&quot;&gt;discovered&lt;/a&gt; that Sun was using my software, Roller, to power &lt;a href=&quot;http://blogs.sun.com&quot;&gt;blogs.sun.com&lt;/a&gt;. I was &lt;a href=&quot;http://rollerweblogger.org/roller/entry/full_time_roller&quot;&gt;thrilled&lt;/a&gt; to go to work for the company back in 2004 and what an awesome cast of characters I&amp;#39;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&amp;#39;ve ever worked with. It&amp;#39;s been a great four and a half years but all good things must come to an end and today is the day.&lt;/p&gt;

&lt;p&gt;I&amp;#39;ve been swept up in the latest round of Sun layoffs. Sun has decided to disinvest in Project SocialSite and as of today &lt;b&gt;I&amp;#39;m free and available for employment&lt;/b&gt;. Though I do feel some urgency due to the bad economy, Sun&amp;#39;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&amp;#39;ll be blogging it here.&lt;/p&gt;

&lt;p&gt;Oh, and about &lt;a href=&quot;http://roller.apache.org/&quot;&gt;Apache Roller&lt;/a&gt; and &lt;a href=&quot;http://socialsite.dev.java.net&quot;&gt;Project SocialSite&lt;/a&gt;? I&amp;#39;m not ready to give up just yet. I&amp;#39;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 &amp;quot;social-enable existing web sites&amp;quot; concept and I&amp;#39;m considering ways to move that forward as well, with or without Sun. I&amp;#39;m still giving my talk &lt;a href=&quot;http://rollerweblogger.org/roller/entry/talking_shindig_at_apacheconeu&quot;&gt;Shindig for Blogs &amp;amp; Wikis&lt;/a&gt; in March 2009 and, actually, I&amp;#39;m pretty happy I have some time right now to focus on those demos and slides.&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/google_on_socialsite</id>
        <title type="html">Google&amp;#39;s Rajdeep Dua on Project SocialSite</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/google_on_socialsite"/>
        <published>2009-01-20T16:58:51+00:00</published>
        <updated>2009-01-21T00:58:51+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="opensocial" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;I&amp;#39;m always happy to see Google talking about &lt;a href=&quot;http://socialsite.dev.java.net&quot;&gt;Project SocialSite&lt;/a&gt; in their OpenSocial presentations and pitches. We need all the help we can get with getting the word out.&lt;/p&gt;

&lt;p&gt;Now, Rajdeep Dua of Google Developer Relations has put together a 25 page presentation on &lt;a href=&quot;http://sites.google.com/site/opensocialarticles/social-site-architecture&quot;&gt;Project SocialSite Architecture&lt;/a&gt; with data model diagrams, UML and lots of detail. Good stuff. I posted some &lt;a href=&quot;http://markmail.org/message/liroxvhsfglofgtt&quot;&gt;comments and corrections&lt;/a&gt; to the Shindig-dev mailing list&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/socialsites_flexible_relationship_model</id>
        <title type="html">SocialSite&amp;#39;s Flexible Relationship model</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/socialsites_flexible_relationship_model"/>
        <published>2008-11-19T10:47:21+00:00</published>
        <updated>2009-01-06T07:05:16+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsoftware" scheme="http://roller.apache.org/ns/tags/" />
        <category term="sun" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&amp;lt;img src=&amp;quot;http://rollerweblogger.org/roller/resource/oneswayrel.png&amp;quot; 
    title=&amp;quot;oneway rel cartoon&amp;quot; align=&amp;quot;right&amp;quot; alt=&amp;quot;oneway&amp;quot; /&amp;gt;
We want &lt;a href=&quot;http://socialsite.dev.java.net&quot;&gt;Project SocialSite&lt;/a&gt; to have a Flexible Relationship model that a site operator can tweak to suit the unique requirements of the site&amp;#39;s community. We&amp;#39;ve settled on a model based on relationship types and named levels. In this post, I&amp;#39;ll review this new model that we have designed.&amp;nbsp;</summary>
        <content type="html">&lt;div style=&quot;float:right;text-align:center;font-size:6pt;margin:0.3em;&quot;&gt;
&lt;img src=&quot;http://farm2.static.flickr.com/1113/763130671_3f9eb37e61_m.jpg&quot; title=&quot;Facebook Friend Wheel&quot; alt=&quot;Friend Wheel&quot;&gt;&lt;br&gt;Image by &lt;a href=&quot;http://flickr.com/photos/flawedartist/763130671/in/photostream/&quot;&gt;flawedartist&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;We&amp;#39;re designing &lt;a href=&quot;http://socialsite.dev.java.net&quot;&gt;Project SocialSite&lt;/a&gt; to support the needs of any site that wishes to add Social Networking features and support &lt;a href=&quot;http://code.google.com/opensocial&quot;&gt;OpenSocial&lt;/a&gt;. That means we have to be flexible.

&lt;p&gt;We can&amp;#39;t hard-code the names of different types of relationships because some sites might want to call friends &amp;quot;buddies&amp;quot; and some might call them &amp;quot;connections.&amp;quot; Some sites might want multiple levels of relationships, with some relationships being considered stronger than others, like on Flickr where you have contacts, friends and family. Some sites might want to allow one-way relationships, as Twitter does with &amp;quot;followers,&amp;quot; but some sites might want to require that relationships be two-way, as Facebook does.&lt;/p&gt;

&lt;p&gt;We want SocialSite to have a Flexible Relationship model that a site operator can tweak to suit the unique requirements of her site&amp;#39;s community. We&amp;#39;ve settled on a model based on relationship types and named levels. In this post, I&amp;#39;ll review this new model that we have designed in hopes of getting some feedback, push-back and other good things that might help us refine our model.&lt;/p&gt;


&lt;h3&gt;I) Relationship Types&lt;/h3&gt;

&lt;p&gt;SocialSite is designed to support the types of personal relationship shown below. This doesn&amp;#39;t include group relationships, which are handled separately.&lt;/p&gt;

&lt;ul&gt;
&amp;lt;img src=&amp;quot;http://rollerweblogger.org/roller/resource/oneswayrel.png&amp;quot; 
    title=&amp;quot;oneway rel cartoon&amp;quot; align=&amp;quot;right&amp;quot; /&amp;gt;
&lt;li&gt;&lt;b&gt;One-way relationship&lt;/b&gt;: A relationship from one person to another person that is not reciprocated. For example, Fred has a relationship with Bob, but Bob has no relationship with Fred. Another example: a follower relationship as you see in Twitter.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Two-way relationship&lt;/b&gt;: A relationship from one person to another that is reciprocated. For example, Fred has a relationship with Bob and Bob also has one with Fred. Another example is Facebook, which requires friendship relationships to be two-way.&lt;li&gt;

&lt;li&gt;&lt;b&gt;Mutual relationship&lt;/b&gt;: Fred and Bob have a two-way relationship and have agreed on a &amp;quot;how we know each other&amp;quot; message. This is more meaningful than a two-way relationship, because the two parties have agreed on some shared item of information about the relationship like &amp;quot;we met at band camp.&amp;quot;&lt;/li&gt;
&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;


&lt;h3&gt;II) Relationship Levels&lt;/h3&gt;

&lt;p&gt;SocialSite can be configured to support multiple relationship levels like Flickr&amp;#39;s contacts, friends and family levels. Users can use these levels when sharing information, e.g. share a photo only with relationships of family-level or higher. I&amp;#39;ll explain how the configuration works, but first let&amp;#39;s define what we mean by relationship level.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Relationship Level&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;A Relationship Level is a named integer index that is assigned by one person to indicates the strength of a relationship with another person. People only know the levels that that they have assigned to relationships, so one person in a relationship won&amp;#39;t feel slighted if the other party thinks less of the relationship than they do. For example, Fred might consider Bob to be a level 2 &amp;quot;Close Friend&amp;quot; but Bob considers Fred only a level 1 &amp;quot;Acquaintance&amp;quot; relationship. Fred won&amp;#39;t learn about this (unless Bob tells him).&lt;/p&gt;

&lt;p&gt;You can configure the relationships levels and names supported by SocialSite via the property &amp;#39;socialsite.relationship.levels&amp;#39;. You simply provide a comma separatied list of the I18N keys of the relationship level names, in order from no-relationship to the strongest level. Here is the default setting, which establishes three relationship levels 0=none, 1=contact and 2=friend:&lt;/p&gt;
&lt;pre&gt;
  socialsite.relationship.levels=\
  relationshipLevel.none,\
  relationshipLevel.contact,\
  relationshipLevel.friend
&lt;/pre&gt;

&lt;a href=&quot;http://code.google.com/opensocial&quot;&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/resource/opensocial_140_140.jpg&quot; alt=&quot;OpenSocial&quot; align=&quot;right&quot;&gt;&lt;/a&gt;

&lt;p&gt;&lt;a href=&quot;http://code.google.com/opensocial&quot;&gt;OpenSocial&lt;/a&gt; doesn&amp;#39;t define differently named relationship levels like we do, so we need to do some mapping. OpenSocial has one type and one level of relationship called &amp;quot;friend.&amp;quot; So, to map SocialSite relationships to OpenSocial, we have introduced the notion of a friendship level.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Friendship level&lt;/b&gt;&lt;p&gt;

&lt;p&gt;Friendship level is an integer configuration property which indicates the relationship level that is considered to be &lt;i&gt;the&lt;/i&gt; friendship relationship across a SocialSite system. Relationships at or above this level are considered to be friends when returning data via OpenSocial APIs. Also, when you add a relationship at friendship-level or above, the other party will be notified and given the opportunity to add you as a friend too. You can configure the friendship level via the property below:&lt;/p&gt;
&lt;pre&gt;
  socialsite.relationship.friendshiplevel=2
&lt;/pre&gt;

&lt;p&gt;It&amp;#39;s good to have the flexibility to support both one and two-way relationships, but we can&amp;#39;t assume that all sites will want both. Some social network services, like Facebook, require that friendship-level relationships be two-way, i.e. both parties must agree that they are friends. To make such a setup possible with SocialSite, we&amp;#39;ve introduced the configuration property below:&lt;/p&gt;
&lt;pre&gt;
  socialsite.relationship.twoway.requiredForFriendship=true
&lt;/pre&gt;

&lt;p&gt;If that property is true, then any relationship that is considered a friendship (relationship level &amp;gt;= friendship level) must be a two-way relationship. So, when you add a relationship at friend-level or above, the other party must reciprocate or the relationship will not be created.&lt;/p&gt;


&lt;h3&gt;III) Example SocialSite configurations&lt;/h3&gt;

&lt;p&gt;To better explain how SocialSite Flexible Relationships work, here are some example configurations that configure SocialSite to behave like well-known social network services.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://flickr.com&quot;&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/resource/flickr.png&quot; title=&quot;flickr logo&quot;&gt;&lt;/a&gt;
&lt;b&gt;-like configuration&lt;/b&gt;. Flickr supports relationship levels of Contact, Friend and Family. It&amp;#39;s possible for you to consider somebody to be Family, while they only consider you only to be a Contact. Any level relationship is considered to be a friendship relationship, for the purposes of OpenSocial.&lt;/p&gt;
&lt;pre&gt;
  socialsite.relationship.levels=\
     relationshipLevel.none,\
     relationshipLevel.contact,\
     relationshipLevel.friend,\
     relationshipLevel.family
  socialsite.relationship.friendshiplevel=1
  socialsite.relationship.twowayRequiredForFriendship=false
&lt;/pre&gt;


&lt;p&gt;&lt;a href=&quot;http://twitter.com&quot;&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/resource/twitter.png&quot; title=&quot;twitter logo&quot;&gt;&lt;/a&gt;
&lt;b&gt;-like configuration&lt;/b&gt;. Twitter supports one relationship level and that is follower. Its possible for you to follow somebody that does not follow you.&lt;/p&gt;
&lt;pre&gt;
  socialsite.relationship.levels=\
     relationshipLevel.none,\
     relationshipLevel.follower
  socialsite.relationship.friendshiplevel=1
  socialsite.relationship.twowayRequiredForFriendship=false
&lt;/pre&gt;


&lt;p&gt;&lt;a href=&quot;http://facebook.com&quot;&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/resource/facebook.png&quot; title=&quot;facebook logo&quot;&gt;&lt;/a&gt;
&lt;b&gt;-like configuration&lt;/b&gt;: Facebook supports one relationship level and that is friend. Friendships are required to be two-way, so we have this:&lt;/p&gt;
&lt;pre&gt;
  socialsite.relationship.levels=\
     relationshipLevel.none,\
     relationshipLevel.friend
  socialsite.relationship.friendshiplevel=1
  socialsite.relationship.twowayRequiredForFriendship=true
&lt;/pre&gt;


&lt;p&gt;&lt;b&gt;The default SocialSite configuration&lt;/b&gt;. We&amp;#39;re considering the below settings for our default configuration. This would allow you to have contacts, with which you can share information but who are not considered friends and would not show up in your friends list or be returned as friends via the OpenSocial APIs.&lt;/p&gt;
&lt;pre&gt;
  socialsite.relationship.levels=\
     relationshipLevel.none,\
     relationshipLevel.contact,\
     relationshipLevel.friend
  socialsite.relationship.friendshiplevel=2
  socialsite.relationship.twowayRequiredForFriendship=true
&lt;/pre&gt;

&lt;h3&gt;IV) Wrapping up...&lt;/h3&gt;

&lt;p&gt;That just about covers it, so I&amp;#39;m going to wrap up now. Most of the above is now implemented in SocialSite, but none of this stuff is carved in stone. So your feedback is more than welcome, either here or on the &lt;a href=&quot;https://socialsite.dev.java.net/servlets/ProjectMailingListList&quot;&gt;SocialSite development or user&lt;/a&gt; mailing lists.&lt;/p&gt;
&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/the_x_rated_socialsite_api</id>
        <title type="html">The X-rated SocialSite API</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/the_x_rated_socialsite_api"/>
        <published>2008-10-20T10:48:38+00:00</published>
        <updated>2014-04-11T01:07:52+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="rest" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;blockquote&gt;
&lt;a href=&quot;http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven&quot;&gt;Roy Fielding&lt;/a&gt;: I am getting frustrated by the number of people calling any HTTP-based interface a REST API. Today&amp;#39;s example is the &lt;a href=&quot;http://wikis.glassfish.org/socialsite/Wiki.jsp?page=FinalizeRESTAPI&quot;&gt;SocialSite REST API&lt;/a&gt;. That is RPC. It screams RPC. There is so much coupling on display that it should be given an X rating.
&lt;/blockquote&gt;

&lt;p&gt;Ouch! As the author of the torrid (and pretty rough) &lt;a href=&quot;http://wikis.glassfish.org/socialsite/Wiki.jsp?page=FinalizeRESTAPI&quot;&gt;Project SocialSite Proposal: Finalize Web Services APIs&lt;/a&gt; proposal that Roy calls out to sharply, I&amp;#39;d like to point of that, as I explained in a &lt;a href=&quot;http://rollerweblogger.org/roller/entry/socialsite_opensocial_extensions&quot;&gt;recent post&lt;/a&gt;, &lt;a href=&quot;http://socialsite.dev.java.net&quot;&gt;Project SocialSite&lt;/a&gt; is simply implementing and extending the OpenSocial API. OpenSocial includes both a &lt;a href=&quot;http://www.opensocial.org/Technical-Resources/opensocial-spec-v081/rpc-protocol&quot;&gt;JSON-RPC API&lt;/a&gt; and a &lt;a href=&quot;http://www.opensocial.org/Technical-Resources/opensocial-spec-v081/restful-protocol&quot;&gt;REST API&lt;/a&gt;. 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 &amp;quot;Finalize REST APIs&amp;quot; to &amp;quot;Finalize Web Services APIs&amp;quot; after I realized that OpenSocial would come in both flavors.&lt;/p&gt;

&lt;p&gt;The proposal that I wrote outlined a way for Project SocialSite to hook into &lt;a href=&quot;http://incubator.apache.org/shindig/&quot;&gt;Apache Shindig (incubating)&lt;/a&gt;, 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&amp;#39;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.&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/socialsite_opensocial_extensions</id>
        <title type="html">SocialSite&amp;#39;s Opensocial extensions, part 1: Web services</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/socialsite_opensocial_extensions"/>
        <published>2008-10-15T17:45:54+00:00</published>
        <updated>2008-10-16T00:53:32+00:00</updated> 
        <category term="General" label="General" />
        <category term="opensocial" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">I&amp;#39;m on SocialSite blog patrol this week, which means that I need to post interesting stuff at &lt;a href=&quot;http://blogs.sun.com/socialsite&quot;&gt;blogs.sun.com/socialsite&lt;/a&gt;, or here or both places at once. So here&amp;#39;s some blog fodder, a series of posts describing the extensions we are making to OpenSocial.&amp;nbsp;</summary>
        <content type="html">&amp;lt;img title=&amp;quot;OpenSocial logo&amp;quot; align=&amp;quot;right&amp;quot;
src=&amp;quot;http://rollerweblogger.org/roller/resource/opensocial_140_140.jpg&amp;quot; /&amp;gt;

&lt;p&gt;I&amp;#39;m on SocialSite blog patrol this week, which means that I need to post interesting stuff at &lt;a href=&quot;http://blogs.sun.com/socialsite&quot;&gt;blogs.sun.com/socialsite&lt;/a&gt;, or here or both places at once. &lt;/p&gt;

&lt;p&gt;So here&amp;#39;s some blog fodder, a series of posts describing the extensions we are making to OpenSocial for &lt;a href=&quot;http://socialsite.dev.java.net&quot;&gt;Project SocialSite&lt;/a&gt;. I&amp;#39;ll start by describing the web services, then the JavaScript API and finally I&amp;#39;ll provide an example or two.&lt;/p&gt;

&lt;h3&gt;Background&lt;/h3&gt;

&lt;p&gt;As I may have mentioned before, the idea behind SocialSite is to add Social Networking features to existing web sites and applications. Any site or sites should be able to use our Widgets and Web Services to all the standard Social Networking features. To meet our Widget requirements we have to extend OpenSocial to support full read/write access to Social Graph data with support for &amp;quot;friending&amp;quot; with configurable relationship levels, profile editing, group invites, group management, application management and other things.&lt;/p&gt;

&lt;h3&gt;A word about implementation&lt;/h3&gt;

&lt;p&gt;On the server-side, our extensions are implemented as &lt;a href=&quot;http://incubator.apache.org/shindig/&quot;&gt;Shinding&lt;/a&gt;/Java &lt;code&gt;DataRequestHandlers&lt;/code&gt;, which makes them available as both a REST API and a JSON-RPC interface. This means that they&amp;#39;re available in a form very similar to that of the standard &lt;a href=&quot;http://www.opensocial.org/Technical-Resources/opensocial-spec-v081/restful-protocol&quot;&gt;OpenSocial REST API&lt;/a&gt; and in a form very similar to the standard &lt;a href=&quot;http://www.opensocial.org/Technical-Resources/opensocial-spec-v081/rpc-protocol&quot;&gt;OpenSocial JSON-RPC API&lt;/a&gt;.

&lt;p&gt;To give you an overview of the SocialSite extensions, I&amp;#39;ll review the REST form of our APIs including all of the URIs we support and the HTTP verbs we support for each.&lt;/p&gt;  


td.uri { width:40%; font-family: Courier; font-size: 10px; }
td.data {width:5%; font-family: Courier; font-size: 10px; }
td.verbs {width:55%;}
td.uri, td.verbs, td.data { border-bottom: grey dotted 1px; vertical-align: text-top}
td.routetitle {background: #efefef; color: black; padding: 3px;}
table.apiref {width:100%; font-size:13px; margin-bottom: 0.5em;}




&lt;h3&gt;People and friending&lt;/h3&gt;

&lt;p&gt;The standard OpenSocial APIs don&amp;#39;t support &amp;quot;friending&amp;quot; -- the process of requesting and negotiating some form of social relationship with another user. So, we&amp;#39;ve added some new URIs to the &lt;code&gt;/people&lt;/code&gt; route in OpenSocial because support . These URIs return and accept standard OpenSocial Person objects, for example to request a relationship with somebody, you POST a representation of that person to your @friends collection.&lt;/p&gt;

&lt;table class=&quot;apiref&quot;&gt;
&lt;tr&gt;&lt;td class=&quot;routetitle&quot; colspan=&quot;3&quot;&gt;People&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
    &lt;td class=&quot;uri&quot;&gt;/people/{userId}/@friends&lt;/td&gt;
    &lt;td class=&quot;data&quot;&gt;Person&lt;/td&gt;
    &lt;td class=&quot;verbs&quot;&gt;POST - Person to request or accept relationship&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
    &lt;td class=&quot;uri&quot;&gt;/people/{userId}/@requests&lt;/td&gt;
    &lt;td class=&quot;data&quot;&gt;Person&lt;/td&gt;
    &lt;td class=&quot;verbs&quot;&gt;GET - List of Persons requesting relationship&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
    &lt;td class=&quot;uri&quot;&gt;/people/{userId}/@requests/{personId}&lt;/td&gt;
    &lt;td class=&quot;data&quot;&gt;n/a&lt;/td&gt;
    &lt;td class=&quot;verbs&quot;&gt;DELETE - ignore a Person requesting relationship&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
    &lt;td class=&quot;uri&quot;&gt;/people/{userId}/@friends/{personId}&lt;/td&gt;
    &lt;td class=&quot;data&quot;&gt;n/a&lt;/td&gt;
    &lt;td class=&quot;verbs&quot;&gt;DELETE - remove relationship with Person&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;



&lt;h3&gt;Profile editing and metadata&lt;/h3&gt;

&lt;p&gt;The standard OpenSocial APIs don&amp;#39;t support creating and updating profile data. So, we&amp;#39;ve added new &lt;code&gt;/profile&lt;/code&gt; and &lt;code&gt;/profiledef&lt;/code&gt; routes to enable metadata driven profile property editing. You can create, retrieve and update profile properties for each user. You can also get metadata that defines all profile properties, their types and accepted values.&lt;/p&gt;

&lt;table class=&quot;apiref&quot;&gt;
&lt;tr&gt;&lt;td class=&quot;routetitle&quot; colspan=&quot;3&quot;&gt;Profiles&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
    &lt;td class=&quot;uri&quot;&gt;/profiles/{userId}&lt;/td&gt;
    &lt;td class=&quot;data&quot;&gt;Profile&lt;/td&gt;
    &lt;td class=&quot;verbs&quot;&gt;
        GET - SocialSite profile data properties for one user&lt;br&gt;
        PUT - Update profile data for one  user
    &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
    &lt;td class=&quot;uri&quot;&gt;/profiles&lt;/td&gt;
    &lt;td class=&quot;data&quot;&gt;Profile&lt;/td&gt;
    &lt;td class=&quot;verbs&quot;&gt;POST - add a new profile via SocialSite profile data properties&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
    &lt;td class=&quot;uri&quot;&gt;/profiledef&lt;/td&gt;
    &lt;td class=&quot;data&quot;&gt;ProfileDefinition&lt;/td&gt;
    &lt;td class=&quot;verbs&quot;&gt;GET - SocialSite profile property metadata in JSON format&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;



&lt;h3&gt;Profile Privacy Settings&lt;/h3&gt;

&lt;p&gt;The standard OpenSocial APIs don&amp;#39;t give you any control over who can see which parts of your profile or activities. So, in the standard SocialSite setup, we have grouped the standard OpenSocial properties into seven sections: identification, contact, extended contact, personal, more personal, experience and education. For each of these sections you can choose a visibility level; here they are from most restrictive to least: private, friends only, visible to some your groups, visible to all of your groups and public.&lt;/p&gt;

&lt;table class=&quot;apiref&quot;&gt;
&lt;tr&gt;&lt;td class=&quot;routetitle&quot; colspan=&quot;3&quot;&gt;Privacy settings&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
    &lt;td class=&quot;uri&quot;&gt;/sectionprivs/{userId}&lt;/td&gt;
    &lt;td class=&quot;data&quot;&gt;List of SectionPrivacy&lt;/td&gt;
    &lt;td class=&quot;verbs&quot;&gt;GET - section privacy settings for user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
    &lt;td class=&quot;uri&quot;&gt;/sectionprivs/{userId}/{sectionName}&lt;/td&gt;
    &lt;td class=&quot;data&quot;&gt;SectionPrivacy&lt;/td&gt;
    &lt;td class=&quot;verbs&quot;&gt;    
        GET - section privacy setting for one profile section&lt;br&gt;
        PUT - update section privacy setting for one profile section
    &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;




&lt;h3&gt;Group creation, management and invitations&lt;/h3&gt;

&lt;p&gt;The standard OpenSocial APIs don&amp;#39;t support any group creation, management or invitation capabilities. So, we added those too. Like SocialSite Profiles, Groups have properties which are defined by a metadata definition file. Here are the URIs and HTTP verbs for each:&lt;/p&gt;

&lt;table class=&quot;apiref&quot;&gt;
&lt;tr&gt;&lt;td class=&quot;routetitle&quot; colspan=&quot;3&quot;&gt;Groups&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
    &lt;td class=&quot;uri&quot;&gt;/groups/@public&lt;/td&gt;
    &lt;td class=&quot;data&quot;&gt;Group&lt;/td&gt;
    &lt;td class=&quot;verbs&quot;&gt;
        GET - all public groups&lt;br&gt;
        POST - create a new public group&lt;br&gt;
    &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
    &lt;td class=&quot;uri&quot;&gt;/groups/@public/{groupId}&lt;/td&gt;
    &lt;td class=&quot;data&quot;&gt;Group&lt;/td&gt;
    &lt;td class=&quot;verbs&quot;&gt;
        GET - group specified by group ID&lt;br&gt;
    &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
    &lt;td class=&quot;uri&quot;&gt;/groups/@public/@current&lt;/td&gt;
    &lt;td class=&quot;data&quot;&gt;Group&lt;/td&gt;
    &lt;td class=&quot;verbs&quot;&gt;
        GET - owning group specified by context (security token)&lt;br&gt;
    &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
    &lt;td class=&quot;uri&quot;&gt;/groups/{userId}&lt;/td&gt;
    &lt;td class=&quot;data&quot;&gt;Group&lt;/td&gt;
    &lt;td class=&quot;verbs&quot;&gt;
        GET - all of user&amp;#39;s groups&lt;br&gt;
    &lt;/td&gt;
&lt;/tr&gt; 
&lt;tr&gt;
    &lt;td class=&quot;uri&quot;&gt;/groups/{userId}/@friends&lt;/td&gt;
    &lt;td class=&quot;data&quot;&gt;Group&lt;/td&gt;
    &lt;td class=&quot;verbs&quot;&gt;
        GET - all of user&amp;#39;s friend&amp;#39;s groups&lt;br&gt;
    &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
    &lt;td class=&quot;uri&quot;&gt; /groupdef&lt;/td&gt;
    &lt;td class=&quot;data&quot;&gt;GroupDefinition&lt;/td&gt;
    &lt;td class=&quot;verbs&quot;&gt;GET - SocialSite group property metadata in JSON format&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;Looks like that&amp;#39;s all I have time for today. Dinner time is here &lt;img src=&quot;https://rollerweblogger.org/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot;&gt; I&amp;#39;ll cover the rest of the Web Services in part 2, later this week.&lt;/p&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/project_socialsite_webinar_thursday_at</id>
        <title type="html">Project SocialSite Webinar, Thursday at 11:15am PT</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/project_socialsite_webinar_thursday_at"/>
        <published>2008-10-08T08:56:43+00:00</published>
        <updated>2008-10-08T15:56:43+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="socialnetworking" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;If you want to learn more about SocialSite, here&amp;#39;s your chance. I&amp;#39;ll be doing a SocialSite webinar tomorrow (Thursday, Oct. 9) at 11:15am PT. Here&amp;#39;s the summary.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;http://socialsite.dev.java.net&quot;&gt;Project SocialSite&lt;/a&gt; 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&amp;#39;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&amp;#39;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.&lt;/p&gt;

&lt;p&gt;In this webinar we&amp;#39;ll explain the reasoning behind Project SocialSite, the basics of OpenSocial and what SocialSite adds, the SocialSite architecture and its Widgets and Web Services.&lt;/p&gt; 
&lt;/blockquote&gt;

&lt;p&gt;You can find the &lt;a href=&quot;http://wikis.sun.com/display/TheAquarium/SocialSiteAndOpenSocial&quot;&gt;dial-in details&lt;/a&gt; on wikis.sun.com.&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/project_socialsite_and_yours_truly</id>
        <title type="html">Project SocialSite (and yours truly) on the LiveMink blog</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/project_socialsite_and_yours_truly"/>
        <published>2008-10-02T16:11:59+00:00</published>
        <updated>2008-10-02T23:23:25+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="podcast" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialnetworking" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;I&amp;#39;m just gonna steal this straight from Simon&amp;#39;s blog &amp;#39;cause I&amp;#39;m lazy.&lt;/p&gt;

&lt;blockquote&gt;&lt;a href=&quot;http://blogs.sun.com/webmink/entry/livemink_dave_johnson_and_project&quot;&gt;Simon Phipps&lt;/a&gt;: I got the chance to speak with Dave Johnson last week and catch up on his work building &lt;a target=&quot;_blank&quot; href=&quot;https://socialsite.dev.java.net/&quot;&gt;Project SocialSite&lt;/a&gt;, 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 &lt;a target=&quot;_blank&quot; href=&quot;http://www.readwriteweb.com/archives/cartoon_cluetrain.php&quot;&gt;social media scene&lt;/a&gt;, I&amp;#39;ll be looking forward to seeing SocialSite in action.
&lt;p&gt;&lt;small&gt;[ &lt;a target=&quot;_blank&quot; href=&quot;http://mediacast.sun.com/users/sunmink/media/SocialSiteJohnson.mp3&quot;&gt;MP3&lt;/a&gt; | &lt;a target=&quot;_blank&quot; href=&quot;http://mediacast.sun.com/users/sunmink/media/SocialSiteJohnson.ogg&quot;&gt;Ogg&lt;/a&gt; ]&lt;/small&gt;&lt;/p&gt;&lt;/blockquote&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/social_roller</id>
        <title type="html">Social Roller</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/social_roller"/>
        <published>2008-08-25T19:51:31+00:00</published>
        <updated>2008-08-26T06:42:27+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="apacheroller" scheme="http://roller.apache.org/ns/tags/" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&amp;lt;img src=&amp;quot;http://rollerweblogger.org/roller/resource/socialroller-ss.jpg&amp;quot; 
title=&amp;quot;SocialSite - Roller demo screenshot from JavaOne 2008&amp;quot; align=&amp;quot;right&amp;quot; 
vspace=&amp;quot;15px&amp;quot; hspace=&amp;quot;15px&amp;quot; /&amp;gt;

&lt;p&gt;We demonstrated the &lt;a href=&quot;http://socialsite.dev.java.net&quot;&gt;Project SocialSite&lt;/a&gt; widgets in &lt;a href=&quot;http://roller.apache.org&quot;&gt;Roller&lt;/a&gt; at JavaOne, but we didn&amp;#39;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.&lt;/p&gt;

&lt;p&gt;This week, I&amp;#39;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&amp;#39;ve been thinking about minimum set of features needed to add some value. Here&amp;#39;s what I think we need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Landing page&lt;/b&gt;: shows activities of your friends and groups, your inbox of social requests and place for you to update your status. This could be added to Roller&amp;#39;s Main Menu page or to pages of the Front Page blog, which is my preferred option.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Personal profile page&lt;/b&gt;: shows your mugshot and the subset of your profile information that the viewer is allowed to see. Shows your activities and the OpenSocial gadgets you have installed. This could be done in the pages of each user&amp;#39;s blog, which would give folks complete control of profile layout via page templates. Or I could be done in the pages of the Front Page blog.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Activity per entry or comment&lt;/b&gt;: whenever you publish a weblog post, or comment on one, an entry will be added to your activity feed so that your friends can see what you&amp;#39;re doing. This will be implemented as a feature of a Roller-specific OpenSocial Gadget.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Protected entries&lt;/b&gt;: ability to publish blog entries that are visible only to your friends via the Roller Gadget.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of the above items should be pretty easy with the SocialSite widgets, but I&amp;#39;m sure I&amp;#39;ll run into a snag or two at least. I always do. I&amp;#39;ll post again next week and let you know how far I got.&lt;/p&gt;
</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/roller_at_open_source_days</id>
        <title type="html">Roller and SocialSite at Open Source Days 2008</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/roller_at_open_source_days"/>
        <published>2008-08-18T18:36:38+00:00</published>
        <updated>2008-08-19T01:36:38+00:00</updated> 
        <category term="Roller" label="Roller" />
        <category term="conferences" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensource" scheme="http://roller.apache.org/ns/tags/" />
        <category term="roller" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;img src=&quot;http://rollerweblogger.org/roller/resource/OSD-Logo2008_155.png&quot; alt=&quot;Open Source Days 2008 logo&quot; align=&quot;right&quot;&gt;

&lt;p&gt;I&amp;#39;m happy to report that I&amp;#39;ll be traveling to Copenhagen, Denmark to talk about &lt;a href=&quot;http://roller.apache.org&quot;&gt;Roller&lt;/a&gt; and &lt;a href=&quot;http://socialsite.dev.java.net&quot;&gt;Project SocialSite&lt;/a&gt; at the &lt;a href=&quot;http://www.opensourcedays.org/2008/&quot;&gt;Open Source Days 2008&lt;/a&gt; conference on Oct. 3-4 this year. I&amp;#39;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 &lt;a href=&quot;http://www.opensourcedays.org/2008/agenda/sessions/DaveJohnson.shtml&quot;&gt;The once and future Roller&lt;/a&gt;.&lt;/p&gt;


</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/re_how_the_shindig_rest</id>
        <title type="html">re: How the Shindig REST API works</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/re_how_the_shindig_rest"/>
        <published>2008-08-11T17:02:15+00:00</published>
        <updated>2008-08-12T00:02:15+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="atompub" scheme="http://roller.apache.org/ns/tags/" />
        <category term="json" scheme="http://roller.apache.org/ns/tags/" />
        <category term="rest" scheme="http://roller.apache.org/ns/tags/" />
        <category term="shindig" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;Here&amp;#39;s a diagram I worked up over the weekend to explain Shindig REST API internals to my team mates. See the &lt;a href=&quot;http://blogs.sun.com/socialsite/entry/how_the_shindig_rest_api&quot;&gt;Project SocialSite blog&lt;/a&gt; for the full story.&lt;/p&gt;

&amp;lt;img src=&amp;quot;http://blogs.sun.com/socialsite/resource/how-shindig-works-200808.png&amp;quot; 
alt=&amp;quot;diagram of key classes and interfaces of Apache Shinding REST API&amp;quot; /&amp;gt;
</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/project_socialsite_opens_up</id>
        <title type="html">Project SocialSite opens up!</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/project_socialsite_opens_up"/>
        <published>2008-08-08T15:36:08+00:00</published>
        <updated>2008-08-08T22:43:29+00:00</updated> 
        <category term="Sun" label="Sun" />
        <category term="opensocial" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensource" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;My teammates and I have started a &lt;a href=&quot;http://blogs.sun.com/socialsite&quot;&gt;new blog&lt;/a&gt; over at blogs.sun.com to cover Project SocialSite and to break the big news: we&amp;#39;re open!&lt;/p&gt;

&lt;blockquote&gt;
We are very pleased to announce that &lt;b&gt;source code is now available&lt;/b&gt; for &lt;a href=&quot;https://socialsite.dev.java.net/&quot;&gt;Project SocialSite&lt;/a&gt;
(under a CDDL/GPL license) and the project is now operating as an open
source project following the Glassfish governance policy. We&amp;#39;re working
in the open and welcome contributors of all stripes.
&lt;a href=&quot;http://blogs.sun.com/socialsite/entry/project_socialsite_opens_up&quot;&gt;Read more...&lt;/a&gt;
&lt;/blockquote&gt;
</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/project_socialsite_enterprise_2_0</id>
        <title type="html">Project SocialSite @ Enterprise 2.0</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/project_socialsite_enterprise_2_0"/>
        <published>2008-05-30T13:09:07+00:00</published>
        <updated>2008-05-30T20:09:07+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="socialnetworking" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&amp;lt;a title=&amp;quot;Arun&amp;#39;s 10-minute SocialSite screencast&amp;quot; 
   href=&amp;quot;http://mediacast.sun.com/users/ArunGupta/media/socialsite.flv/details&amp;quot;&amp;gt;
&lt;img src=&quot;http://blogs.sun.com/arungupta/resource/images/screencast-25.png&quot; alt=&quot;Image from screencast&quot; align=&quot;right&quot; vspace=&quot;5px&quot;&gt;


&lt;p&gt;Looks like we made it to the final round of the &lt;a href=&quot;http://launchpad.enterprise2conf.com&quot;&gt;Enterprise 2.0 LaunchPad competition&lt;/a&gt; and so &lt;a href=&quot;http://socialsite.dev.java.net/&quot;&gt;Project SocialSite&lt;/a&gt; will be one of the five projects that will &amp;quot;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.&amp;quot; Thanks to all who voted for SocialSite.&lt;/p&gt;

&lt;p&gt;And in other news, &lt;a href=&quot;http://blogs.sun.com/arungupta/entry/screencast_25_project_socialsite_enabling&quot;&gt;Arun Gupta&lt;/a&gt; has put together a very nice ten minute &lt;a href=&quot;http://mediacast.sun.com/users/ArunGupta/media/socialsite.flv/details&quot;&gt;screencast&lt;/a&gt; that shows Project SocialSite in action.&lt;/p&gt;

</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/opensocial_summit_next_week</id>
        <title type="html">OpenSocial summit next week</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/opensocial_summit_next_week"/>
        <published>2008-05-08T19:19:43+00:00</published>
        <updated>2008-05-09T02:19:44+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="google" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensocial" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;There will be a &lt;a href=&quot;http://opensocialapis.blogspot.com/2008/05/opensocial-summit-may-14th-at.html&quot;&gt;OpenSocial Summit: May 14th, at the Googleplex&lt;/a&gt; covering the new v0.8 spec changes and all sorts of other interesting things. Wish I could make it, but I&amp;#39;ll be happily back home in the old north state. Hopefully, somebody from the SocialSite team will be able to attend.&lt;/p&gt;
</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/socialsite_on_the_launchpad</id>
        <title type="html">SocialSite on the LaunchPad</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/socialsite_on_the_launchpad"/>
        <published>2008-05-06T21:36:47+00:00</published>
        <updated>2008-05-07T04:36:47+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="socialnetworking" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;One more thing to mention before I hit the JavaOne opening reception: &lt;a href=&quot;http://blogs.sun.com/bobby/&quot;&gt;Bobby Bissett&lt;/a&gt; 
submitted a short and to-the-point &amp;lt;a href=
&amp;quot;http://launchpad.enterprise2conf.com/node/18&amp;quot;&amp;gt;video on Project SocialSite to the Enterprise 2.0 LaunchPad. Please check it out and help us vote it up &lt;img src=&quot;https://rollerweblogger.org/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot;&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/getting_the_word_out</id>
        <title type="html">Getting the word out</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/getting_the_word_out"/>
        <published>2008-05-06T21:36:31+00:00</published>
        <updated>2008-05-07T05:28:44+00:00</updated> 
        <category term="Social Software" label="Social Software" />
        <category term="socialnetworking" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;Jamey Wood and I presented our Introduction to Project SocialSite yesterday. We had a much larger crowd than I expected, given the number of concurrent talks -- I&amp;#39;m guessing there were close to 300 people in the room. I hope to be able to post a link to the slides at some point in the near future because right now we&amp;#39;ve got almost no information on &lt;a href=&quot;http://socialsite.dev.java.net&quot;&gt;Project SocialSite&lt;/a&gt; on the web. Now that we&amp;#39;ve got permission to talk about the project, I&amp;#39;m going to try to change that.&lt;/p&gt;

&lt;p&gt;I spent most of the day in the Sun booth answering questions about SocialSite and demonstrating our widgets and web services in Roller and MediaWiki and talking through some key slides in our deck. At this point, we only have a handful of our widgets implemented and they&amp;#39;re pretty bare bones, but folks seemed to &amp;quot;get it&amp;quot; and liked the idea of adding social networking features to existing web applications.&lt;/p&gt;

&lt;p&gt;If you&amp;#39;re at JavaOne, then please stop by the Sun both and say hi. Look for us under the banner Social Networking for Glassfish. And if you want the full scoop then check out our Birds of a Feather (BOF) session:&lt;/p&gt;

&lt;b&gt;BOF-5857: 
Turn your website into an OpenSocial container with Project SocialSite&lt;br&gt;
6:30 PM on Thursday&lt;br&gt;
Esplanade 307/310&lt;br&gt;
&lt;/b&gt;

&lt;p&gt;Jamey and I will be ready with slides and demos and answers to (almost) all of your questions and you&amp;#39;ll have plenty of time to make it to the After Dark shindig.&lt;/p&gt;
</content>
    </entry>
    <entry>
        <id>https://rollerweblogger.org/roller/entry/project_socialsite</id>
        <title type="html">Introducing Project SocialSite</title>
        <author><name>Dave Johnson</name></author>
        <link rel="alternate" type="text/html" href="https://rollerweblogger.org/roller/entry/project_socialsite"/>
        <published>2008-05-04T09:54:18+00:00</published>
        <updated>2008-05-24T17:15:20+00:00</updated> 
        <category term="General" label="General" />
        <category term="socialsite" scheme="http://roller.apache.org/ns/tags/" />
        <category term="socialsoftware" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;&lt;table border=&quot;0&quot; class=&quot;imageplugin&quot; style=&quot;float:right;&quot;&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;http://developers.sun.com/events/communityone/&quot;&gt;&lt;img src=&quot;http://rollerweblogger.org/roller/resource/C1_170x93_SpeakerB.gif&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/p&gt;&lt;p&gt;As promised, here&amp;#39;s some more information about the talk I and my co-speaker Jamey Wood are giving tomorrow at CommunityOne (2:35 PM in Moscone Hall E 135).
&lt;/p&gt;
&lt;p&gt;Below is the official title and blurb. 
&lt;/p&gt;
&lt;div style=&quot;margin-left:1em;font-size:90%;&quot;&gt;
&lt;i&gt;Turn your Web Application into an OpenSocial container (&lt;a class=&quot;external&quot; href=&quot;http://tinyurl.com/6e95ex&quot;&gt;link&lt;/a&gt;)
&lt;/i&gt;&lt;p&gt;&lt;i&gt;Wouldn&amp;#39;t it be nice if developers around the world could add new features to your web site for you? The OpenSocial API makes it possible. This session demonstrates how you can make your existing web site capable of hosting OpenSocial applications. To illustrate the process, it shows an example application and how it benefits from becoming an OpenSocial container. Attendees should be familiar with HTML, JavaScriptâ&#132;¢ technology, and XML.&lt;/i&gt;
&lt;/p&gt;&lt;/div&gt;

&lt;p&gt;Perhaps a better title would have been, &amp;quot;&lt;b&gt;make your webapps social with Project SocialSite&lt;/b&gt;&amp;quot; but we didn&amp;#39;t have permission to talk about our project until very recently. Now, we&amp;#39;re ready to talk about the Project SocialSite widgets and web services and how you can use them to add Social Networking features to your existing Java, PHP and Ruby webapps. We&amp;#39;re not ready to talk about product plans, features or schedules but we are ready to demonstrate our work in Netbeans, MediaWiki, Portal, Roller and possibly some other apps as the JavaOne week progresses.
&lt;/p&gt;
&lt;p&gt;Here are the slides: &lt;a class=&quot;external&quot; href=&quot;http://mediacast.sun.com/users/SnoopDaveJ/media/socialsite-j1-2008.pdf&quot;&gt;socialsite-j1-2008.pdf&lt;/a&gt; (1MB PDF file)
&lt;/p&gt;
&lt;p&gt;And here&amp;#39;s an outline of the talk:
&lt;/p&gt;
&lt;div style=&quot;margin-left:1em;font-size:90%;&quot;&gt;
&lt;ul&gt;&lt;li&gt;Goals
&lt;ul&gt;&lt;li&gt;Understand the importance of Social Networking features in Web applications.
&lt;/li&gt;&lt;li&gt;Learn about  the new OpenSocial standard for plugging into Social Networks.
&lt;/li&gt;&lt;li&gt;See how Project SocialSite&amp;#39;s Web Services and Widgets make it easy to make your Web Applications social.
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Agenda
&lt;ul&gt;&lt;li&gt;Social Software / Web history lesson
&lt;/li&gt;&lt;li&gt;Introducing OpenSocial
&lt;/li&gt;&lt;li&gt;Apache Shindig: the OpenSocial RI
&lt;/li&gt;&lt;li&gt;Options for making your sites social
&lt;/li&gt;&lt;li&gt;Introducing Project SocialSite
&lt;/li&gt;&lt;li&gt;Conclusion and Q&amp;A
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Web history lesson
&lt;ul&gt;&lt;li&gt;The static Web
&lt;/li&gt;&lt;li&gt;Blogs, wikis and feeds
&lt;/li&gt;&lt;li&gt;The social Web
&lt;/li&gt;&lt;li&gt;Facebook changes the game
&lt;/li&gt;&lt;li&gt;OpenSocial arrives
&lt;/li&gt;&lt;li&gt;Social Network as platform
&lt;/li&gt;&lt;li&gt;Social networking goes to work
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;What is OpenSocial?
&lt;ul&gt;&lt;li&gt;OpenSocial architecture example
&lt;/li&gt;&lt;li&gt;The OpenSocial JavaScript API
&lt;/li&gt;&lt;li&gt;The OpenSocial REST API
&lt;/li&gt;&lt;li&gt;Status of OpenSocial
&lt;/li&gt;&lt;li&gt;OpenSocial not the Silver Bullet
&lt;/li&gt;&lt;li&gt;OpenSocial vs. Data Portability
&lt;/li&gt;&lt;li&gt;OpenSocial vs. Web as Social Network
&lt;/li&gt;&lt;li&gt;Is OpenSocial really â&#128;&#156;openâ&#128;&#157;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Apache Shindig (incubating): the OpenSocial RI
&lt;ul&gt;&lt;li&gt;What is Shindig
&lt;/li&gt;&lt;li&gt;Apache Shindig features
&lt;/li&gt;&lt;li&gt;What&amp;#39;s missing from Apache Shindig?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;How do you make your sites social?
&lt;ul&gt;&lt;li&gt;Plugin to an existing Social Network?
&lt;/li&gt;&lt;li&gt;Use a hosted or â&#128;&#156;white-labelâ&#128;&#157; solution?
&lt;/li&gt;&lt;li&gt;Use Apache Shindig?
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Introducing Project SocialSite
&lt;ul&gt;&lt;li&gt;Project SocialSite features
&lt;/li&gt;&lt;li&gt;SocialSite Architecture
&lt;/li&gt;&lt;li&gt;Project SocialSite widgets
&lt;/li&gt;&lt;li&gt;Project SocialSite&amp;#39;s value adds?   
&lt;/li&gt;&lt;li&gt;DEMO: Using the SocialSite widgets
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Summary
&lt;ul&gt;&lt;li&gt;For more information: upcoming sessions
&lt;/li&gt;&lt;li&gt;For More Information: helpful links
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;That&amp;#39;s all folks... Q&amp;A
&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
&lt;p&gt;Look for Project SocialSite in the CommunityOne demo area and at the Sun booth in the JavaOne pavillion all week.
&lt;/p&gt;</content>
    </entry>
</feed>

