Entry tags:
Banyan Speak (Permitting cross-posting of threads) - GSOC
As someone who came to DW from the LJ community (and who's still more active over there than over here), one of the biggest barriers I find to participation is that while DW provides very good cross-posting, there's no way to cross-post comment threads. So in order to avoid discussions fragmenting across the two services it's currently necessary to tell people from one service to go to the other to comment. While this isn't always a barrier to participation (with OpenID implemented), it does provide an extra step, and the "friction" involved in that interaction seems to decrease the amount of participation.
Since my primary use of either service is focused around social interaction, the lost comments from people just not feeling up to logging into another site (even if they don't have to register an account or anything) mean lost chances for interaction, and that's a shame.
Which brings me to my project.
Basically I propose to construct a framework for synchronizing comment threads across multiple instances of DW (with the hope of making the code changes light/modular enough to let them be applied back to the LJ codebase with little or no modification). I've got a working implementation of this in WordPress at the moment, but there would need to be some changes for it to work for DW.
Initially I'll be using Disqus for synchronization (using their account system to handle the 'canonical' central version of a thread, and then synchronizing to and from that for all accounts/posts/services that need it).
What I'm aiming for is something that's almost UI-invisible. There will be a couple of user-facing changes.
The rest of the code changes will be on the back-end.
In the long-run, there may be some structural changes as well. I'm a bit uncomfortable using a third-party system such as Disqus to handle synchronization. They're a good bunch of guys, but they're outside the control of anyone working on a DW deployment. I'd like to begin looking at alternative systems such as building a synchronization API into the DW codebase directly, or implementing something like the Salmon Protocol.
To sum things up: the project I want to work on adds to the existing cross-posting systems by allowing the cross-posting of threads as well as posts. This means that no matter where a reader is seeing a post, they see the same conversation attached to it.
Since my primary use of either service is focused around social interaction, the lost comments from people just not feeling up to logging into another site (even if they don't have to register an account or anything) mean lost chances for interaction, and that's a shame.
Which brings me to my project.
Basically I propose to construct a framework for synchronizing comment threads across multiple instances of DW (with the hope of making the code changes light/modular enough to let them be applied back to the LJ codebase with little or no modification). I've got a working implementation of this in WordPress at the moment, but there would need to be some changes for it to work for DW.
Initially I'll be using Disqus for synchronization (using their account system to handle the 'canonical' central version of a thread, and then synchronizing to and from that for all accounts/posts/services that need it).
What I'm aiming for is something that's almost UI-invisible. There will be a couple of user-facing changes.
- In account settings there will be a section for users to enable the system and save their Disqus credentials. This will be a simple username and password update which will save a token. (Sort of like OAuth, but not exactly. It's a Disqus-specific credential system, but the users don't have to deal with it.)
- When writing a new post the user will be given a new option in the meta box (probably in-column with the "comments"/"comment screening" drop-downs) which allows them to either create a new thread for the post (the default) or pick an existing thread (from a previous post that they've made. Existing threads can be from any service that the user has connected to Disqus, so it allows bridging across multiple journals, and potentially multiple instances of DW (or in the future, possibly LJ).
The rest of the code changes will be on the back-end.
- There will need to be a comparison between the way DW stores comments in the database and the way Disqus does. Since they're both threaded systems they should be relatively similar, so I anticipate little needed in the way of modification here. Possibly an extra column or two in the DW system.
- Helper functions to make calls to the Disqus API will be needed.
- A function which automatically synchronizes comments/threads between the two services whenever comments are viewed on DW, and one that posts them to both services whenever new comments are posted.
In the long-run, there may be some structural changes as well. I'm a bit uncomfortable using a third-party system such as Disqus to handle synchronization. They're a good bunch of guys, but they're outside the control of anyone working on a DW deployment. I'd like to begin looking at alternative systems such as building a synchronization API into the DW codebase directly, or implementing something like the Salmon Protocol.
To sum things up: the project I want to work on adds to the existing cross-posting systems by allowing the cross-posting of threads as well as posts. This means that no matter where a reader is seeing a post, they see the same conversation attached to it.

no subject
And I see that you comment elsewhere saying this, but there is less than zero chance of getting LJ to accept this. Why remove accessibility/functionality from DW for something that won't even have the desired end result?
no subject
In order. I'm curious as to whether your concerns with Disqus are offset at all by it never being user-facing? At the moment I'm looking at it as a convenient and relatively robust back-end. Because the accessibility stuff is a big problem. That doesn't really solve all the concerns with using them, but I want something that does what DW doesn't (currently) do is handle synchronization of threads, which is something that Disqus handles explicitly.
As for the second question, there's always the faint glimmer of hope, but that's not the main reason. The main reason is that there end up being a number of useful (I think, anyway) uses purely within a single DW instance. For instance, if you cross-post something to multiple communities, you can share threads between all of them. This isn't, of course, always desirable behavior, but sometimes it would be. Additionally, it will allow for this sort of connection across potential future instances of DW (the software).
I don't know if that's a good response, but that's what's in my head, at least.