Drupal and OpenSocial, for real

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
mercmobily's picture

Hi,

After completing a working Activity Log module, and what I consider a state of the art FriendList module, I am now about to start phase 3 of my project: making sure that Drupal is able to be an OpenSocial container.

After a bit of research, I found:

Drupal effectively ignoring OpenSocial is a huge problem, that needs fixing.
So, here is what I would like to know:

  • Are there active projects with people actively doing something out there, dedicating time to making Drupal an OpenSocial container?

  • What's the current code state of existing projects? Let me say it again: code

If the answers are what I fear (and I hope not), I will work to solve this problem and turn Drupal into a full OpenSocial container, with both the Javascript and the HTTP APIs.

I will first create the HTTP API so that people can see and test code. People will also see how serious I am about this. I will then look for somebody with Javascript skills to complete the other half of the story.

Any input will be immensely appreciated. If you are interested in helping out... wait. This is not the right post to say so. This is just to see if my fears about the status of OpenSocial & Drupal is as bad as I fear.

Bye,

Merc.

Comments

I am afraid

FactAnalyzer's picture

That answers seems to be as you feared.
For the first question, seems it was only uncontentious effort done for a graduation project.
as for the second, there is no code contributed towards this project.
(hope to be wrong on both answers)
I thought I would reply to manifest my support for the idea :)

Regards,

Ugh...

mercmobily's picture

Hi,

Ugh... OK.
Anybody else?

Merc.

Empty Projects

gateone's picture

Somehow it has become a very undesirable habit recently to start a project but then fail to do ANYTHING with it. The empty project container remains on the Drupal site, CSV is empty, the maintainer don't react to correspondence. This is a good example for such behaviour.

Sometimes this seems to have the quality of "Domain Squatting" even. Get the Project and Project Name at all costs, and see if maybe later I will fill it with live... if I have time, if I want to really... but good that I reserved the project and hence module name.

I think some measures on Drupal.org should really be taken to stop this latest trend as it is NOT efficient at all for Drupal and its system of contributed modules.

I think a good solution would be to automatically delete started projects if the maintainer does not deliver code within a week after opening the project. After all, you do start to think and develop first and then start to publish the results, don't you agree? We have forums and Drupal Groups to initiate early planning of modules or to find co-maintainers / co-programmers. So there is no need for Project/Module Squatting as it happens now...

True

mercmobily's picture

Hi,

Somehow it has become a very undesirable habit recently to start a project but then fail to do ANYTHING with it. The empty project container remains on the Drupal site, CSV is empty, the maintainer don't react to correspondence. This is a good example for such behaviour.

Tell me about it. To be honest, ONE of the two maintainers sent me one email -- and then disappeared.
The problem is huge also because I was actually given the impression, a few months ago, that something was actually happening--and it wasn't.

Sometimes this seems to have the quality of "Domain Squatting" even. Get the Project and Project Name at all costs, and see if maybe later I will fill it with live... if I have time, if I want to really... but good that I reserved the project and hence module name.

I hope you are wrong. I really do.

I think some measures on Drupal.org should really be taken to stop this latest trend as it is NOT efficient at all for Drupal and its system of contributed modules.

I think a good solution would be to automatically delete started projects if the maintainer does not deliver code within a week after opening the project. After all, you do start to think and develop first and then start to publish the results, don't you agree? We have forums and Drupal Groups to initiate early planning of modules or to find co-maintainers / co-programmers. So there is no need for Project/Module Squatting as it happens now...

That's too easy to game, I am afraid. Commit one byte a week, keep the squat, own it in 15 years...

I don't think there's an easy solution, to be honest.

Merc.

The "Domain squatting"

earnie@drupal.org's picture

The "Domain squatting" affect cannot happen in reality even though the appearance is there. See the documentation article"Dealing with abandoned projects" for ways to deal with dead beat maintainers.

.

Michelle's picture

Have you contacted the authors of those projects to find out the status?

Michelle


See my Drupal articles and tutorials or come check out the Coulee Region

I will

mercmobily's picture

Hi,

yes.

Merc,

However...

mercmobily's picture

Hi,

However, judging by the lack of code, I don't think they are moving.

Merc.

Promising

mercmobily's picture

Hi,

WOW it looks like I can rest for once.

http://www.powerhomebiz.com/News/092008/impetus-new-york-expo.htm

I am looking into this. It looks promising

Merc.

Thanks for the links

dipen chaudhary's picture

Thanks for the links mercmobily, Have they open sourced the Zest Platform?
I have worked on shindig briefly and would wanna explore it in drupal sense, Also there has been a lot of "opensocial" buzz in drupal Camp India and Php camp India, So I think people do wanna see the marriage. In recent Drupal Camp India we planned to work on integrating drupal with shindig and enabling drupal as a container and we know who all to approach. If you are interested we can get started on this and I will contact other interested and resourceful people.

P.S: I don't find any links on impetus.com about Zest as such.


Dipen Chaudhary
http://dipenchaudhary.com
http://playdrupal.com


Dipen Chaudhary
Founder, QED42 http://www.qed42.com Drupal development

I don't think so...

mercmobily's picture

Hi,

Thanks for the links mercmobily, Have they open sourced the Zest Platform?

I doubt it. They gave me hope... but no.

I have worked on shindig briefly and would wanna explore it in drupal sense, Also there has been a lot of "opensocial" buzz in drupal Camp India and Php camp India, So I think people do wanna see the marriage.

Well, I am making it happen.
Can you email me using the Drupal contact form?

In recent Drupal Camp India we planned to work on integrating drupal with shindig and enabling drupal as a container and we know who all to approach. If you are interested we can get started on this and I will contact other interested and resourceful people.

That's exactly what I am trying to do! Please let's not duplicate efforts and join forces.
I am not planning anything as such -- I am doing it instead. I hope you want to follow the same philosophy :-D

OK?

P.S: I don't find any links on impetus.com about Zest as such.

I know...

Merc.

Working group to fix the problem

mercmobily's picture

Hi,

I am putting together a team of people to get this issue sorted out within the next 3 weeks. I am trying to involve the author of the modules above, but their response is being slow and not-so-practical (plus, I haven't managed to see any code yet, which is discouraging).

I forecast about 2000 lines of Drupal code (in a new project), and lots of work to get things to actually work.

If you are interested, please let me know!

Bye,

Merc.

I hope Impetus is going to open source Zest

chanezon's picture

I will ask them about this.
If they don't and you do it yourself, do not reinvent the wheel: just use Shindig PHP, connecting it to Drupal is just implementing a few methods in 3 service Interfaces defined in PHP.
See slides at http://wordpress.chanezon.com/?p=107 for details.
Chris Chabot, who developed Shindig PHP, is also a good guy to ask help to.


Google Developer Advocate
OpenSocial
http://wordpress.chanezon.com/

Google Develoepr Advocate
OpenSocial
http://wordpress.chanezon.com/

This is precisely...

mercmobily's picture

Hi,

This is precisely the route I am taking.
It doesn't actually seem to be that hard. I really wonder why the other two projects basically failed.

When I have some code and something to show, I hope in the next couple of weeks, I will start a project called "drupal_shindig" which will work as integration between the two.

Merc.

Status

mercmobily's picture

Hi,

OK, I had 1 email response from the maintainers of the "existing" (note: code free) previous projects. I sent a follow up email, which went unanswered. Disappointing.

I chose to only work with people who respond to email reasonably soon. I consider those code-less projects dead.

I am creating the project shindig_integration which does exactly that. I am talking to a programmer I got from the Shindig mailing list who already has working source code to do this. I will write a plugin architecture for Drupal so that Drupal "connection" modules can interface with it.

Bye,

Merc.

Update!

mercmobily's picture

Hi,

The Zest people finally answered my email.
Apparently, they are going to release it under a free license.

I asked them if they will create a Drupal project, and offered to write a generic interface to interface to any activity or friends module in Drupal.

The person who answered told me that he saw this thread soon -- let's see what happens.

Merc.

Drupal-OpenSocial integration from Impetus

ramsharma2005's picture

Thanks Merc,

We are working on our plans to opensource the Drupal-OpenSocial integration. We will share the project in a day or two.

Regards,
Astha Bhatnagar

Thanks,
Astha Bhatnagar

From my email...

mercmobily's picture

Hi,

I sent you a detailed email with precise questions, and never got a response.

Please let me know.

Merc.

Drupal + OpenSocial - Update

Vineet Tyagi's picture

Merc,

I represent Impetus (the company behind Drupal + Opensocial module), we got your email after several routings (you sent it to a generic id which brought it to sales and then they sent it someone before it reached us) probably not the best way but happens when the organization is large (1000+ people) and geographically distributed :-)

My colleague Astha already indicated we will release the code soon and respond to your other questions as well.

Appreciate your taking the lead here and look forward for your support

-Vineet

vineet

RingSide networks

gsvitak's picture

Hello,

I know that Ringside Networks

http://www.ringsidenetworks.com/

did some work exposing Drupal to both open social and facebook apps. Unfortunely, it appears the project ran out of money and never completed. I have been in contact with the developer who worked on the integration and I am trying to get the source code before the project completely shuts down.

http://bobbickel.blogspot.com/2008/09/ringside-winding-down.html

Too bad because they were so close.....

GS

ramsharma2005's picture

I have already applied for the cvs account. The project with the code will be available, as soon as I get the access.

Thanks,
Astha Bhatnagar

Thanks,
Astha Bhatnagar

Great

mercmobily's picture

Hi,

That's great.
The email communication didn't make it clear what you'd release, and when. You talked about "ongoing discussions".
I look forward to seeing the code. It will basically save me a small mountain of time, if you do release the code and if it is good and well structured.

What concerns me is that you said that your module is based on Buddylist, which is basically no longer supported. I am also not sure where you're getting your activity data from. However, we will see. Hopefully, you code it well and it will be easier for me to patch your code for improvements and generic friend API support and generic activity API support than writing everything from scratch (which I am ready to do right now should this be necessary). This will largely depend on the quality of your code and the way it's structured.

(I am not saying that I will duplicate efforts. The chances of me creating a new project from scratch are low. I will basically take the shortest route to have fantastic code)

Bye,

Merc.

Project contents

ramsharma2005's picture

Yes Merc,That's what we all would want here.. to have the best implementation, with least and no duplicate efforts.
My module uses Shindig, and will provide following features to the site:
1. Ability to add any open social application/widget and render them.
2. Ability to display the application list.
3. The canvas view of the application.
4. The profile view of the application.

I have used Buddylist2 because the time we coded, I couldn't find any other friend modules released for 6.0(perhaps thats one of the reason why we are based Drupal 5.0). Also, lately it seems thr's some work started on BuddyList2 for porting it to 6.0. So yet not sure if Buddylist2 will be no longer supported.
Alternatively, if we have FriendList released, then we can use it and port this shindig integrator module to 6.0. Is there any target release date for friendlist module?
For activities, we have a activity table created for all OpenSocial activities. We were trying to map this with the activity module (http://drupal.org/project/activity), However we are not yet finished with this integration. Again if we have your Activity_log module released, then we can integrate the same with this module, as it will be for 6.0.

I am not a very old player in drupal world, so will look forward your for issues/comments in the code structure . Perhaps that will be a learning curve for me :)

Thanks,
Astha Bhatnagar

Thanks,
Astha Bhatnagar

Alright then

mercmobily's picture

Hi,

See subject.
Since the release of your module as open source was uncertain (with the unanswered email etc.), I had started working on another shindig module.

However, it looks like you already did a lot of the hard work.

I think it's crucial that you have the ability to integrate with any activity module and friends module in Drupal. To do this, I am thinking about creating a "glue module" which basically will act as an interface between those different modules. You won't be able to use the more advanced features of FriendList, but that's fine. So, the idea is that you never, ever worry about which friends or activity module you are using.

As I said, I want to be convinced by your module first (And, may I add, I wish you had released it earlier). And no, this is not standard "Drupal community" behaviour. I am a bit of a bi%ch about this one, and have disagreed with more seasoned Drupalists about this. In general, if I feel that the code needs a rewrite, I will rewrite. Many people disagree with this policy, because it does create duplication.

Right now, just to be clear, your module needs:

  • A Drupal 6 port
  • A level of abstraction between the friends modules and the activity module

Is that right?

Thanks a lot,

Merc.

Not necessarily

bonobo's picture

At the risk of nitpicking:

RE: "In general, if I feel that the code needs a rewrite, I will rewrite." -- there is nothing wrong with refactoring code/rewriting code. When these efforts happen with multiple developers working alongside one another, it's the best possible outcome: multiple developers collaborating on creating the best code possible.

However, creating these types of collaborative relationships requires time, especially at the outset. Impatience can lead to increased duplication. Not waiting to get cvs access to a project, or immediately forking, or immediately duplicating a project under the name of a rewrite, leads to duplication.

Announcing the intention/goals of your rewrite in the issue queue, and submitting patches (even enormous patches) opens lines of communication that work to decrease duplication, and also result in better code.

Does this take more time at the outset? Yes, absolutely. Does taking more time at the outset help minimize duplication? Yes, absolutely. Does the community win when we have good code and reduced duplication?

I think you see where I'm going with this.

Cheers,

Bill


FunnyMonkey
Tools for Teachers

I see where you're going...

mercmobily's picture

Hi,

I see where you're going. However, I have my views and I don't think this is the right time and place to discuss this.
There is obviously a lot I don't agree on a practical level, but we know that. I agree to disagree.

Bye,

Merc.

No worries at all

bonobo's picture

While I don't think there is ever really a bad time to talk about ways of improving collaboration, and I am a strong advocate for making the time to work on collaborating, I also recognize that, at a certain point, work needs to get done, and it's better to actually produce than talk about what might get produced if we could ever stop talking.

But with that said, as a Drupal service provider, we will not steer clients toward modules that lack community support. In our work with clients, we have an obligation to put clients on a sustainable path -- and part of assessing "sustainability" includes examining a module developer's track record of collaboration. Collaboration takes time, especially at the outset when all parties of the collaboration need to assess the different variables involved in the collaboration. But, over time, collaboration saves time, as many hands make light work.

WRT OpenSocial, it's really a non-issue, as OpenSocial has two projects with no code, and what appears to be some code with an as-yet-unpublished project.

Cheers,

Bill


FunnyMonkey
Tools for Teachers

This is a broad issue

mercmobily's picture

Hi,

I wrote something similar about this in my previous post...
In the end, as a Drupal provider you have the freedom to pick the modules you trust the most. That's definitely a wise choice.
With FriendList, I am making sure I talk to other module developers and sending out patches so that their modules can talk to any friend subsystem that might be there in 3, 4 6 years. Plus, I am thinking about a "super API" that encapsulates the functionalities of any relation module in Drupal at a point where most modules can deal with it.

Having said that, there are several points that go against "collaboration":

  • Enjoyment. Some people are just a pain to work with.

  • Module structure. Some modules are just not worth the effort -- not for you, the programmer, anyway. You can't patch something that has foundations you don't agree with. Take the activity module: to me, that's just too complicated. Full stop. The patches wouldn't be accepted by the maintainers, because they would just dismantle the module (and that's assuming that it's possible to write them. For example, for Activity it would be impossible)

  • Speed. I am fast. I wrote 7200 lines of debugged code for FriendList in... I can't remember. I think in about 12 days. When I start, I want to get things finished. Opening an issue, and having a generic response that just doesn't work, is frustrating. When the person on the other end doesn't actually speak English, and it becomes clear to you that they have no idea what you just said, it's frustrating. Immensely frustrating

The list actually goes on and on. In the end, it's about what we want to do with our time. And don't get me wrong: I am for collaboration when it makes sense. Integration is important. Standard interfaces are important too. But collaboration needs some building blocks: needs people at least with similar ideas about how a module should work, its architecture. And communication needs to be possible -- not easy, but possible.

When I pick a module, I choose according to:

  • Its issue queue
  • Its developer's workload in terms of modules (high = bad)
  • Its source code (quality), structure, database sanity (I spot incompetence from 1 million miles) and documentation

To me, that's these are the keys.

My track record of collaboration are probably "debatable".

Some say I should have patched FriendList. Some others say I should have taken over maintainership beforehand and made Friendlist "User Relationships 2.0". What I say, is that FriendList is effectively a rewrite of User Relationships -- something that I felt was much needed.

For Activity_log, I created this experiment which is a simplified module to actually get the job done through glue code. After a few emails where I expressed the Activity developer my feeling about the module's need of huge simplification, well, he disappeared and then he reappeared a week later with the module being active again (?). I will release Activity Log at some point this month, and we'll see where it goes. If anything, it will be good example code for everybody to look at and use.

Other than that, all I can do is make sure that modules out there don't work with specific friends module but ask them to export hooks (I've already worked with two developers about this) and create a layer around those two issues, so that it won't matter if you use Activity_log, Activity, Activity_NEW_WHO_KNOWS, FriendList, User Relationships... You will use the common API, which will take care of asking the right thing to the right module. Well, that's the idea. We'll see.

Merc.

Searching through the issue

jaydub's picture

Searching through the issue queue for the Activity module I see but one
post from merc which was a 'subscribe' post to the Drupal 6 port issue
thread one month ago so it's not like I'm seeing a lot in the way of efforts
to engage the developers and users of Activity via the project pages.

The project maintainer for Activity had to pull back from active development
of the module because of his paid job which I think all of us can understand.
The recent activity in the Activity module was my doing as I also have been
hamstrung for the last couple of months with my day job and was not a reaction
to activity_log but rather finally having some free time again to pick up where
siriktree and I left off.

For all the digs at the design and coding quality of Activity and the many
other modules that seem to fail to meet merc's standards here I will mention
that Activity began as a project of one of Drupal's stars Robert Douglass who
I think we all agree knows a thing or two about developing drupal modules.

Frankly I think this discussion and the ones that already got out of hand over
User Relationships vs FriendList would be easier on everybody if we weren't
going on and on about 'that module's code is terrible, mine is flawless' or
'some people are just a pain to work with' or 'it's not worth my time to try
and work to improve an existing module'. I personally don't mind if so called
duplicate modules are created. Competition usually fosters innovation but
let's keep it to good spirited competition and not this talking down of other
projects.

OK

mercmobily's picture

Searching through the issue queue for the Activity module I see but one post from merc which was a 'subscribe' post to the Drupal 6 port issue thread one month ago so it's not like I'm seeing a lot in the way of efforts to engage the developers and users of Activity via the project pages.

You are missing the private email I exchanged with the module maintainer.

The project maintainer for Activity had to pull back from active development of the module because of his paid job which I think all of us can understand. The recent activity in the Activity module was my doing as I also have been hamstrung for the last couple of months with my day job and was not a reaction to activity_log but rather finally having some free time again to pick up where siriktree and I left off.

Jerad told me that after seeing some of the improvements that his co-maintainer did (I assume you), he got motivated to work on the module again. I get confused.

But, yeah, it was just bad luck here, in terms of lots of improvements coming exactly as Jerad sort of disappeared.

For all the digs at the design and coding quality of Activity and the many other modules that seem to fail to meet merc's standards here I will mention that Activity began as a project of one of Drupal's stars Robert Douglass who I think we all agree knows a thing or two about developing drupal modules.

I don't think that because the project was started by a Drupal star, today it must be good.

Frankly I think this discussion and the ones that already got out of hand over User Relationships vs FriendList would be easier on everybody if we weren't going on and on about 'that module's code is terrible, mine is flawless' or 'some people are just a pain to work with' or 'it's not worth my time to try and work to improve an existing module'.

I can only assume you are referring to me. In the chance you are, I never said "the code is terrible". I might have given my opinion, and if that opinion is not favourable, that's just how it is. I never said "mine is flawless either". And yes, some people are a pain to work with. I said it before, I will say it again -- and this is true in general, not just in the Drupal project. And no, if I don't feel it's worth my time to work on an existing module, then it's not. Again, I will say it when it's the case.

I personally don't mind if so called duplicate modules are created. Competition usually fosters innovation but let's keep it to good spirited competition and not this talking down of other projects.

OK.
I didn't mean to bash other projects badly. However, I can't help but say what I think when I see something I don't like. But, I will be more careful -- I realise it can hurt, and that I might well be wrong in a lot of cases. Unlike many people on Earth, I am happy to realise and admit openly when I am wrong.

Talking about more practical things, I am writing a "general" API which will act as a shell around user_relationships and friendlist (and ANY other friends module that might come along, including buddylist if it ever gets ported). I think it would work. I will send Alex.k the code I wrote once I have something semi-finished. Any other module that wants to enquiry about relations, will just use the generic API.

I think the same can be applied to Activity Log. In fact, even more easily than with Relations API. Jaydub, are you able to work together on this once I put the code out there?

Merc.

But wait a sec...

mercmobily's picture

Hi,

Hang on a sec:

For activities, we have a activity table created for all OpenSocial activities. We were trying to map this with the activity module (http://drupal.org/project/activity), However we are not yet finished with this integration. Again if we have your Activity_log module released, then we can integrate the same with this module, as it will be for 6.0.

I need to ask... where are you getting the activities information exactly at the moment...?

Merc.

When...

mercmobily's picture

Hi,

I don't mean to be a pain. However... I was just wondering if you had a definitee date with you are going to release the code.

Bye,

Merc.

Merc, Am still waiting for

ramsharma2005's picture

Merc,
Am still waiting for my CVS account.Will upload the code as soon as I get an approval.

Thanks,
Astha Bhatnagar

Thanks,
Astha Bhatnagar

Project Released

ramsharma2005's picture

Hi Everyone,

The module to integrate Shindig with Drupal is finally released. The link is http://drupal.org/project/ShindigIntegrator.

Please use the same, and let me know for any issues or questions.

Looking forward for your comments and responses.

Thanks,
Astha Bhatnagar

Thanks,
Astha Bhatnagar

Project URL...?

mercmobily's picture

Hi,

What is the project's URL?

Merc.

Access denied

bkudrle@gmail.com's picture

I try the URL http://drupal.org/project/ShindigIntegrator and get Access denied. Is there something special that needs to be done for access?

Project pulled

mercmobily's picture

Hi,

The project ShindigIntegrator has been pulled.
I am working on the project "Opensocial" -- we already have something working. Expect to see something fully usable in the next few weeks.

Bye,

Merc.

The project is in development phase

ramsharma2005's picture

Hi Everyone,

The project is not closed down. It has been removed, however, because of some issues which came up in our CVS application review. This is what I got from the CVS administrator. After the CVS applications process is complete the code will be available. I am working on those issues and should be able to complete it very soon.
Those issues are basically related to the way Drupal coding works, and not to the functionality!

Will update as soon as we complete.

Thanks,
Astha Bhatnagar

Thanks,
Astha Bhatnagar

ramsharma2005's picture

Hi Everyone,

The development and updates for the module is completed .
We have done code structure changes and security patches, as asked by Drupal.
Please check the link : http://drupal.org/project/ShindigIntegrator

Thanks,
Astha Bhatnagar

Thanks,
Astha Bhatnagar

Where to go from here

bob.hinrichs's picture

Hi, this thread is of great interest to many, thank you for it. It appears as though if one wants to build a site with social networking capabilities that is also 'open social-aware', one would currently use this Shindig integrator plus the User Relationships module. The Friendlist API however looks to have a strong future and its creator/maintainer a passion for helping drupal sites provide excellent opensocial support. Is there an update as to mercmobily's plans?

I know this is not entirely related but are there also any plans to leverage Facebook Connect in either of the major Drupal Social APIs? Seems almost like something that should go along with OpenID.

thanks to everyone for the contributions thus far

Drupal in WordPress LinkedIn application

andriy_gerasika's picture

Hi,
I have successfully integrated my Drupal feed into LinkedIn WordPress application:

http://www.gerixsoft.com/blog/drupal/wordpress-linkedin

Thanks,
Andriy Gerasika

Thanks for the Effort!

mokeefe's picture

I have Just finished a complete SN site for my university, www.antiguosenred.com and the institution is insisting in making user's life easier by integrating user profiles with the ones already created in LinkedIn and/or Facebook. Will this module help me go in that direction?