SocialSite's Flexible Relationship model

oneway We want Project SocialSite to have a Flexible Relationship model that a site operator can tweak to suit the unique requirements of the site's community. We've settled on a model based on relationship types and named levels. In this post, I'll review this new model that we have designed. [Read More]

CommunityOne call for papers is open X 2

Next year there will be two CommunityOne events in the US of A; one in New York City on March 18 and the other, coinciding with JavaOne week in June 1 in San Francisco. Here's the call for papers link. The call closes on December 11.

c1

Details of Roller setup at blogs.sun.com

Meena Vyas, Murthy Chintalapati and Allen Gilliland just published an article on BigAdmin that describes the architecture of blogs.sun.com, a Roller, Sun Web Server, Memcached and MySQL based site that averages 4 million hits a day with its two SunFire T2000 servers at 97% idle. You can get the article for free (registration required) here: Sun Blogs: A Sun Java System Web Server 7.0 Reference Deployment

diagram

Worth checking out: reglib vs jQuery

I've been doing a lot of JavaScript work lately for Project SocialSite and, to my surprise, enjoying it greatly. I've also been making use of JQuery, so Greg Reimer's post on reglib vs. JQuery really caught my eye.

Here's the opening blurb from the reglib project site:

CSS is nice because it lets you declare styles without worrying about DOM load, traversal or having to reattach styles as the DOM gets updated over the lifetime of the page. Which raises the question, why isn't the behavior layer similarly declarative?

/* the style sheet */
div.menu li > a { color: blue; }

/* why not a behavior sheet? */
div.menu li > a { click: function(e) { ... }; }

reglib's goal is to get as close to that as possible:

reg.click("div.menu li > a", function(e) { ... });

reglib is so named because it lets you "register" an event handler against a CSS selector. Like CSS, once the above code is "declared", the event handling behavior takes effect globally. This is true regardless of whether the onload event has fired, or whether the DOM has finished loading off the network, or whether arbitrary sections of DOM have been overwritten.

Cool stuff, huh? Check out the DEMO page Greg has put together "rigged like a science experiment" to demonstrate the differences between JQuery and reglib.


Carolina blue

My country and even my state have made me damn proud this week. Congratulations to President-elect Obama and thanks to all the folks who worked so hard for change over the past couple of years.

Map of USA with NC in blue

The X-rated SocialSite API

Roy Fielding: I am getting frustrated by the number of people calling any HTTP-based interface a REST API. Today's example is the SocialSite REST API. That is RPC. It screams RPC. There is so much coupling on display that it should be given an X rating.

Ouch! As the author of the torrid (and pretty rough) Project SocialSite Proposal: Finalize Web Services APIs proposal that Roy calls out to sharply, I'd like to point of that, as I explained in a recent post, Project SocialSite is simply implementing and extending the OpenSocial API. OpenSocial includes both a JSON-RPC API and a REST API. SocialSite implements and extends them both. I never meant to imply that the JSON-RPC API is RESTful (and neither did the authors of the OpenSocial specifications). In fact, I renamed the proposal from "Finalize REST APIs" to "Finalize Web Services APIs" after I realized that OpenSocial would come in both flavors.

The proposal that I wrote outlined a way for Project SocialSite to hook into Apache Shindig (incubating), the Reference Implementation of OpenSocial,implement a couple of Shindig interfaces and thus gain support for both the OpenSocial REST API and the OpenSocial JSON-RPC API. The OpenSocial REST API does claim to be RESTful and I believe it is; it's based on AtomPub but includes some extensions for providing generic XML and JSON representations in addition to Atom format. The Project SocialSite REST API will extend that and will also be RESTful.


SocialSite's OpenSocial extensions part 2: Web Services (cont.)

Today, I'm going to wrap up the summary of the Project SocialSite Web Services that I started in Part 1 of this series. I'll cover the new APIs we've added for managing Gadgets, for Messaging and for Search. These are not quite as solid as the other services I've covered; they're still in-flux and under development. [Read More]

SocialSite's Opensocial extensions, part 1: Web services

I'm on SocialSite blog patrol this week, which means that I need to post interesting stuff at blogs.sun.com/socialsite, or here or both places at once. So here's some blog fodder, a series of posts describing the extensions we are making to OpenSocial. [Read More]

What's up with Roller?

I've been neglecting my Blogging Roller duties, no doubt, but Roller work continues albeit at a slower pace. If you want the official word on Apache Roller status and progress then check the project's reports to the ASF board. I just added links to the most recent three reports to the Roller project blog. Here's a summary of those reports lifted right from the blog:

August 2008 Board Report

The Apache Roller project's latest report to the ASF board is available here: August 2008 Board Report. Highlights include some commentary about community health, OpenID support via the Google Summer of Code and a new project to improve Roller's Media Bloggingout facilities.

May 2008 Board Report

The Apache Roller project's latest board report is available here: May 2008 Board Report. The highlights include the completion of new Externalized User Management and Tag Data API work for Roller 4.1.

February 2008 Board Report

The Apache Roller project reports status on a quarterly basis and the latest report is now available here: February 2008 Board Report. Highlights from the report include the release of Apache Roller 4.0 and work towards a proposal for Roller 4.1.


Copenhagen photos

Below are some of my photos from my trip to the Open Source Days conference conference in Copenhagen. I only had a little time to explore Copenhagen, but I managed to see a lot of the city. I took a number of very long walks and explored most of the downtown and the Christiana area.

As you can see from the photos, the city is beautiful with lots of big squares, pedestrian-only streets, canals and beautiful architecture. The mass transit system is great and you see a lot of folks getting around by pedal power; I wish my city was so bicycle friendly. At the conference and in my travels around the city, I found that the people are very friendly and eager to be helpful. All in all, a very nice experience and I hope it's not too long before I get to visit again.

Kayaks View from Hojbro Hojbro Plads Vor Frelsers Kirke View from Nygade Robert's interior Robert's Radhus View from Baresso The Square Hotel Trian station Nyhaven restaurants Custom House restaurant Haloween at Tivoli Gardens Copenhagen rush hour Open Source Days 2008 - Copenhagen The ScrollBar Open Source Days 2008 - Copenhagen Open Source Days 2008 - Copenhagen Open Source Days 2008 - Copenhagen Open Source Days 2008 - Copenhagen Open Source Days banner OpenID session Christiana playset Street view City Hall Tovoli at night National Museum Army of gold Crown jewels Treasure tour Cafe view Rainy sunday Illium store Illium store View from City Hall Square City Hall detail HC Anderson Bvd

Project SocialSite Webinar, Thursday at 11:15am PT

If you want to learn more about SocialSite, here's your chance. I'll be doing a SocialSite webinar tomorrow (Thursday, Oct. 9) at 11:15am PT. Here's the summary.

Project SocialSite is taking a new approach to social networking. Instead of replacing your existing web site with a Social Networking system, SocialSite allows you make your existing blogs, wikis, forums and portals social and all backed by the same Social Graph of users. It doesn't matter whether your existing applications are Java, Ruby, PHP or blog/CMS template driven, you can easily add the SocialSite Widgets and and give your users a complete Social Networking experience right in the pages of your existing site. You'll be able to provide Personal Profile and Group Profile pages, a Dashboard for your users to manage their groups and connections and allow your users to install standard OpenSocial Gadgets that operate against their network of friends. Your applications can manage the social graph via the SocialSite web services and via standard OpenSocial Gadget technology.

In this webinar we'll explain the reasoning behind Project SocialSite, the basics of OpenSocial and what SocialSite adds, the SocialSite architecture and its Widgets and Web Services.

You can find the dial-in details on wikis.sun.com.


Open Source Days 2008 - Copenhagen

My talk went pretty well yesterday and I'm definitely enjoying both the conference, which is still in progress, and my stay in Copenhagen. I'll post more photos later, but for now here is a shot of the conference setup at ITU Copenhagen.

Open Source Days 2008 - Copenhagen

Project SocialSite (and yours truly) on the LiveMink blog

I'm just gonna steal this straight from Simon's blog 'cause I'm lazy.

Simon Phipps: I got the chance to speak with Dave Johnson last week and catch up on his work building Project SocialSite, a social graph framework exposed as widgets and web services for use by websites wanting to build collaborative communities. Both technically interesting and destined to be an important part of the social media scene, I'll be looking forward to seeing SocialSite in action.

[ MP3 | Ogg ]


re: Shindig/Java internals

If you want more on Shindig/Java internals, then check this out. Rajdeep Dua has written a very detailed article on the topic and he is asking for feedback: Overview of REST Implementation in Shindig - Java Version.


Shindig/Java internals diagram updated

A lot has changed since I did my first and even my second "how does Shindig/Java work" diagram. Believe it or not, there are now two separate web services protocols in OpenSocial and thus in Shindig. How did that happen you wonder, well read on...

[Read More]

Gentle reminder about Roller support

If you need help with Roller, please do not write to me directly. Please write to the Roller user mailing list instead so that everybody has a chance to answer and benefit from the answer to your questions. Of course, there is no guarantee that your questions will be answered on the mailing lists. If you're willing to pay for an assurance of support, then look to Covalent, a company that offers commercial Roller support. Unfortunately, they're still stuck on the old and out-of-date Roller 3.x release.


re: delicious.com Blog Posting tool

Oh and by the way, I have not given up on that Delicious.com Blog Posting tool that I wrote about in August. I've got the feed fetching, entry composing parts done now and I'm currently working on the blog posting code. I hope to have something ready to blog about this week.

Open Source Days and København next week!

Open Source Days 2008 logo

I mentioned this back in August and now it's just one week away. Guess I better wrap up my slides quick.

I'll be speaking at the Open Source Days in Copenhagen, Denmark Oct. 3-4, 2008 and the topics will be Roller and SocialSite. So, if you're coming then don't miss me at 1:30PM on Friday and if you're not, there's still time to register.

My talk is titled Once and Future Roller, which is a silly title and coincidentally the same title that gave the first talk I gave at Sun when I joined in 2004. My new talk is similar to that old 2004 talk in that it comes at something of a turning point for Roller. Then, I had just joined Sun and started to work on Roller full time and now as I'm working full time on SocialSite and doing what I can to move Roller forward and mentor new developers.

As you can see in the abstract, I'm going to tell the story of Roller, at Sun, at Apache and up to today. I'll try to sum up some of the open source lessons learned along the way. I'll explain the current status of the project and ongoing work. And in the 2nd half of the talk I'll talk about the future and what you can expect from Roller, from SocialSite and how the two can work together.


OpenID support in Roller

Thanks to one hard working student and the Google Summer of Code, we now have a patch for OpenID support in Roller and its ready to commit to trunk. Here's a teaser screenshot:

If you want to know more, the proposal for OpenID support is on our wiki and the patch is attached to issue ROL-1733 in our bug tracking system.


delicious.com Blog Posting tool

The delicious.com Blog Posting tool is an "experimental feature creates a daily post of your latest bookmarks to your blog." Lately, folks have been complaining that it is completely broken. Personally, I never could get the thing to work consistently and for the past couple of years I've been using the Feed Poster Blogapp to do my link postings. Now, I'm thinking about fixing Feed Poster up a bit, making it easier to run from the command-line or a cron-job and re-releasing it for those folks who can't get the delicious.com tool to work.

What follows is a synopsis of how I think the tool should work.

delposter - Synopsis

You run the tool by entering something like this 'java -jar delpost.jar [parameters]' on your favorite command-line. The tool will connect with delicious.com, grab all of your bookmarks since the last time the tool was run, create a post that lists all of them and publish that post on your blog (via AtomPub or MetaWeblog API). Here are the parameters you can specify on the command line.

  • username - (required) your delicious.com username
  • blogusername - (required) username for blog API
  • blogpassword - (required) password for blog API
  • blogposturl - (required) blog API endpoint URL
  • blogid - ID of blog (required if you have more than one)
  • blogapitype - either 'metaweblog' or 'atompub'
  • title - format of title, can include ${date}
  • dateformat - date format to be used in title
  • includetags - include only bookmarks with these tags
  • excludetags - exclude bookmarks with these tags
  • since - number of hours back to go looking for posts (ignoring last run time)
  • postdraft - post entry as draft
  • appenddraft - if last post is still in draft mode, then delete it and add its contents to the new post being created.

Is that what you'd like to see in a delicious.com Blog Posting tool?

Of course, a command-line tool is not the most friendly way to do things, so perhaps I should provide an installer that sets up a cronjob or a Windows Schedule Task. Or maybe I'll reserve that as an outer-ring feature.

« Previous page | Main | Next page »