MT Action Streams => PHP

13 views
Skip to first unread message

Singpolyma

unread,
Mar 8, 2008, 4:06:24 PM3/8/08
to DiSo Project
I've knocked up a basic implementation of action streams based on the
MT YAML file and a PHP YAML parser.

<http://groups.google.com/group/diso-project/web/actionstream.tar.bz2>

I supports the XPATH and ATOM stuff, but not CSS selectors, etc, since
I don't know of a PHP library for that. All this code does is take an
array (hard-coded just now) of service => username pairs, and extract
the data. Then it iterpolates it using the HTML template from the
YAML. Small piece of code suddenly has lots of services it can handle!

Steve Ivy

unread,
Mar 8, 2008, 4:46:18 PM3/8/08
to diso-p...@googlegroups.com, drec...@sixapart.com
Wow, Stephen, this is great! I wish I had half your time for this
stuff. :-) Good work. Is this a WP plugin yet?

--
Steve Ivy
http://redmonk.net // http://diso-project.org
This email is: [ ] bloggable [x] ask first [ ] private

Stephen Paul Weber

unread,
Mar 8, 2008, 6:19:33 PM3/8/08
to diso-p...@googlegroups.com
Not yet -- right now it doesn't even cache the data -- WP integration
is the next step

--
- Stephen Paul Weber (Singpolyma)

Web: http://singpolyma.net/
Twitter: http://twitter.com/singpolyma
IM: singp...@gmail.com

Singpolyma

unread,
Mar 9, 2008, 7:14:13 PM3/9/08
to DiSo Project
And now for the WP plugin!

<http://singpolyma.net/diso-actionstream.tar.bz2>

See it in action at <http://singpolyma.net/#actionstream>

Big thanks to MT guys for most of the YAML (added last.fm stream,
edited flickr and youtube to display thumbnails) and all of the CSS/
icons and inspiration!

I hereby dual-license this plugin MIT and BSD (or compatible).

And, fancy de-duping!

Any scrapers that use HTML will not work. These seem to be for more
obscure sites.
Digg seems to block the wp_remote_fopen user agent. Blah.

To install, just untar in plugins/
Go to Users > Action Stream

If you have a url(s) (from standard or diso-profile enhanced profile)
that match a supported service, they are added automagically. You can
add more.

A preview of you actionstream is shown right on the page.

To add elsewhere the template tag is actionstream_render(); (you
can pass an optional userid or user name, and number of items to
display, default 10)

Enjoy!

On Mar 8, 7:19 pm, "Stephen Paul Weber" <singpol...@gmail.com> wrote:
> Not yet -- right now it doesn't even cache the data -- WP integration
> is the next step
>
>
>
> On Sat, Mar 8, 2008 at 4:46 PM, Steve Ivy <steve...@gmail.com> wrote:
>
> > Wow, Stephen, this is great! I wish I had half your time for this
> > stuff. :-) Good work. Is this a WP plugin yet?
>
> > On Sat, Mar 8, 2008 at 2:06 PM, Singpolyma <singpol...@gmail.com> wrote:
>
> > > I've knocked up a basic implementation of action streams based on the
> > > MT YAML file and a PHP YAML parser.
>
> > > <http://groups.google.com/group/diso-project/web/actionstream.tar.bz2>
>
> > > I supports the XPATH and ATOM stuff, but not CSS selectors, etc, since
> > > I don't know of a PHP library for that. All this code does is take an
> > > array (hard-coded just now) of service => username pairs, and extract
> > > the data. Then it iterpolates it using the HTML template from the
> > > YAML. Small piece of code suddenly has lots of services it can handle!
>
> > --
> > Steve Ivy
> > http://redmonk.net//http://diso-project.org
> > This email is: [ ] bloggable [x] ask first [ ] private
>
> --
> - Stephen Paul Weber (Singpolyma)
>
> Web:http://singpolyma.net/
> Twitter:http://twitter.com/singpolyma
> IM: singpol...@gmail.com

Chris Messina

unread,
Mar 9, 2008, 10:40:04 PM3/9/08
to diso-p...@googlegroups.com
Sweet! Can't wait to try it!

Sent from a typo-prone iPhone.

Pras Sarkar

unread,
Mar 9, 2008, 11:38:24 PM3/9/08
to DiSo Project
This is great Stephen! Works like a charm; I have it up and running on
http://headphono.us

I'd like to help out. You mentioned something about de-duping? Are you
already working on that?

Thanks,

Pras.

Singpolyma

unread,
Mar 10, 2008, 10:36:21 AM3/10/08
to DiSo Project
Thoughts on more de-duping. Right now it just de-dupes /inside/ a
service... but if someone adds their tumblr or something and has
twitter in tumblr, etc, you don't want the same update displaying
twice.

Can we safely just do something like:

$done = array();

foreach($items as $item)
if(in_array($item, $done)) continue;

? or do the other services often change it a fair bit? Should that
be handled by cleanup inline (ie, facebook adds 'is twittering' - but
twitter adds 'username: ' and that gets detected and removed, so the
other could be as well...)

I think either way, detected dupes should be handled as current
"dupes" are - output the node anyway, but hide it (for scrapers, they
see the whole lifestream with all nodes)

On Mar 9, 10:38 pm, Pras Sarkar <pras.sar...@gmail.com> wrote:
> This is great Stephen! Works like a charm; I have it up and running onhttp://headphono.us

Steve Ivy

unread,
Mar 10, 2008, 12:16:16 PM3/10/08
to DiSo Project
I think de-duping will have to be more involved - prolly need to start
with the guid (in ATOM and some variants of RSS) as a basis, then
getting more esoteric from there.

Steve Ivy

unread,
Mar 10, 2008, 12:25:36 PM3/10/08
to DiSo Project
Stephen,

What about editing that list of URLs? Where should one go to do that?

Also:
* http://redmonk.net/archives/2008/03/10/action-streaming/
* http://flickr.com/photos/redmonk/2324628580/

On Mar 9, 4:14 pm, Singpolyma <singpol...@gmail.com> wrote:

Pras Sarkar

unread,
Mar 10, 2008, 12:53:31 PM3/10/08
to DiSo Project
I agree with Steve. It probably needs to start with some basic level
of guid matching (where available), but in a lot of cases where guid
is not available, or simply not preserved/changed, the deduping code
needs some form of similarity matching. Using some basic distance
calculation algos, deduping can be fairly accurate as the time-to-scan
is short (most aggregators will have sourced and syndicated the
content within hours of the original service).

-Pras

Pras Sarkar

unread,
Mar 10, 2008, 1:02:27 PM3/10/08
to DiSo Project
Thanks for the link back Steve. Appreciate it.

Whenever you get a chance, could you correct my last name on your link
to headphono.us to "Sarkar"?

Thanks a bunch,

Pras.


On Mar 10, 9:25 am, Steve Ivy <steve...@gmail.com> wrote:
> Stephen,
>
> What about editing that list of URLs? Where should one go to do that?
>
> Also:
> *http://redmonk.net/archives/2008/03/10/action-streaming/
> *http://flickr.com/photos/redmonk/2324628580/

Stephen Paul Weber

unread,
Mar 10, 2008, 1:12:30 PM3/10/08
to diso-p...@googlegroups.com
GUID done and done. the YAML has a field to specify 'identifier'
(usually url, id on atom, guid on rss2, depends on the service) - this
is hashed (sha1) and used as the database key. So if you bookmark the
same thing in delicious and magnolia (for example) they wouldn't both
show up.

Twitter settings just now use the atom ID - which is not likely to be
the same as any id on tumblr or similar. That's where my pattern
matching thought came in. Thoughts?

Pras has confirmed the polling bug. Fixed on my version, should be
posted this evening.

A note about the YAML - if no URL is given in the action_streams
section, the URL from the profile_services section is used and we
autodetect RSS/ATOM with <link>s. My implementation supports rss2:
similar to the atom: from the original (which I also support).

"What about editing that list of URLs? Where should one go to do that?" - Steve

Which list? You mean to remove a service, what do you do? Right now
there is no way to do that (lazy me) - to change your username on a
service just 'add' it again and it will overwrite.

List of available services? config.yaml

Or something else?

IM: singp...@gmail.com

Don Park

unread,
Mar 10, 2008, 1:41:16 PM3/10/08
to DiSo Project


On Mar 10, 10:12 am, "Stephen Paul Weber" <singpol...@gmail.com>
wrote:
> section, the URL from the profile_services section is used and we
> autodetect RSS/ATOM with <link>s.  My implementation supports rss2:
> similar to the atom: from the original (which I also support).
>
> "What about editing that list of URLs? Where should one go to do that?" - Steve
>
> Which list?  You mean to remove a service, what do you do?  Right now
> there is no way to do that (lazy me) - to change your username on a
> service just 'add' it again and it will overwrite.

What about using the XHTML Friends Network 'me' attribute to detect
the list of activitystream feeds? Give the plugin a single URL, and
that url can be spidered for 'me' links which describe my other
services. For instance if you use friendfeed, the services listed on
your home page have the 'me' attribute. Changes to the list of
services wouldn't be as immediate as managing a list in the plugin
since the plugin would have to check the given URL occasionally for
changes.

I've been playing with this idea and making graphs at:
http://donpark.org:3301/?url=http://donpark.org
(its not accepting new URLs as the spider was going crazy but there is
enough data already to get the idea)
The graphs are inline SVG and Im using FF3b3, other browsers may have
trouble.

Don

Stephen Paul Weber

unread,
Mar 10, 2008, 1:50:07 PM3/10/08
to diso-p...@googlegroups.com
I currently support the diso-profile plugin and any services listed
there. I could auto-spider the current user's profile url with sgapi
-- not sure about the user experience of getting them to enter a URL
to their profile when they are (presumably) on their own site. If
people want it, it wouldn't be hard to do though :)

--

Steve Ivy

unread,
Mar 10, 2008, 4:01:02 PM3/10/08
to DiSo Project
I've been thinking about the profile and action streams plugins...
Both make use of "me" links and have different ways of storing them.
Why don't we change them both to use a new category of blogroll Link -
"My Sites" - all marked as "me" (or just filter on "me" links from the
blogroll, though i like the idea of making it explicit. Then the user
either uses the default link editor, or we hook into the links from a
new editor...

Thoughts?

On Mar 10, 10:50 am, "Stephen Paul Weber" <singpol...@gmail.com>
wrote:
> IM: singpol...@gmail.com

Stephen Paul Weber

unread,
Mar 10, 2008, 4:30:35 PM3/10/08
to diso-p...@googlegroups.com
The profile plugin (permissions) acutally supports this. The issue is
that we need this data for more than one user. For actionstreams we
could arguably limit it to just one user, but I haven't done that yet.
for profiles we need rel=me data for /contacts/, not really for the
blog owner at all, so we definitely need the data for more than one
user.

Although caching this data is not a bad idea. At all. (Depending on
WP-caching is not smart, even if sgapi requests are lightning-fast).

IM: singp...@gmail.com

Steve Ivy

unread,
Mar 10, 2008, 5:33:29 PM3/10/08
to DiSo Project
Hm, i wonder if there's a mod that provides non-admin-user ownership
of Links?
> IM: singpol...@gmail.com

Stephen Paul Weber

unread,
Mar 11, 2008, 12:13:31 AM3/11/08
to diso-p...@googlegroups.com
Tumblr support added (thanx Pras!) - polling bug fixed. I've uploaded
0.11 to the same URL as before. I should post about this on my blog,
since so many others seem to be... heh

cesar dubo

unread,
Mar 11, 2008, 11:02:22 AM3/11/08
to DiSo Project
I get this error when entering to the actionstream under the users
menu:


Warning: Invalid argument supplied for foreach() in /home/.filofax/
newdisco/dubo.cl/wp-content/plugins/diso-actionstream/actionstream.php
on line 283
> IM: singpol...@gmail.com

Stephen Paul Weber

unread,
Mar 11, 2008, 11:05:08 AM3/11/08
to diso-p...@googlegroups.com
Ah, my plugin assumes there is content to preview :) Add a source and
that will go away. I should add a sanity check there :) thx!

IM: singp...@gmail.com

cesar dubo

unread,
Mar 11, 2008, 11:07:19 AM3/11/08
to DiSo Project
i tried adding 3 sources through the wp panel, but no luck with
that... should i edit some file manually?

On Mar 11, 12:05 pm, "Stephen Paul Weber" <singpol...@gmail.com>
wrote:
> IM: singpol...@gmail.com

cesar dubo

unread,
Mar 11, 2008, 11:18:51 AM3/11/08
to DiSo Project
besides, the mysql actionstream table remains empty... here's a
screenshot if it helps:

http://img353.imageshack.us/img353/2863/ssfu1.jpg

Stephen Paul Weber

unread,
Mar 11, 2008, 11:25:38 AM3/11/08
to diso-p...@googlegroups.com
It looks like your data is not being pulled in at all... what host are
you on? Version of wordpress? Do you get any other odd behaviour /
errors?

IM: singp...@gmail.com

cesar dubo

unread,
Mar 11, 2008, 11:29:08 AM3/11/08
to DiSo Project
Host: Dreamhost
Wordpress version: 2.3.3

I also tried deactivating all the plugins, and the same behaviour
remains.

Thank you Stephen!



On Mar 11, 12:25 pm, "Stephen Paul Weber" <singpol...@gmail.com>
wrote:
> Twitter: ...
>
> read more »

Steve Ivy

unread,
Mar 11, 2008, 12:01:42 PM3/11/08
to DiSo Project
Stephen (and all),

I think this is ready to go into the repo. What do you think? Would
you mind checking it in to /wordpress/wp-diso-actionstreams/trunk/ ?
You should have commit access.

While you're in there, perhaps we could move diso-profile to wp-diso-
profile? I'd like to keep to the naming scheme wp-<plugin> in the case
of general technologies (oauth, openid) and wp-diso-<plugin> for more
social-specific code (actions streams, profiles, contacts, etc).

Finally, if we are going to agree on a BSD or MIT license, let's
finally decide, and make sure that each component has the right
license file and source headers in place. I'm excited about where we
are right now!! Additionally, I have a partially done Movable Type
blogroll plugin I'm going to donate in the next week or so (assuming I
can get it to a usable level).

--Steve

What does the group think?
> IM: singpol...@gmail.com

Stephen Paul Weber

unread,
Mar 11, 2008, 12:06:08 PM3/11/08
to diso-p...@googlegroups.com
The reason I didn't name it wp-diso-profile was that it is in a
/wordpress directory already. But that's easy to change. I'll get
(wp-)diso-actionstream in there today sometime.

Actionstream I dual MIT/BSD'ed for now - but you're right. Let's
decide already.

I am ready to put the correct stuff in place to license all of my
contributions to the DiSo code repository on Google Code under either
an MIT, BSD, or compatible license, or to multi-license the code.

IM: singp...@gmail.com

Stephen Paul Weber

unread,
Mar 11, 2008, 12:27:37 PM3/11/08
to diso-p...@googlegroups.com
Some debugging with cesar off-list has shown that the issue is with
wp_remote_fopen not following location headers. del.icio.us has moved
their feeds and my parser is choking on the blank return of the
redirect. Will update YAML and code accordingly.

IM: singp...@gmail.com

Stephen Paul Weber

unread,
Mar 11, 2008, 12:32:03 PM3/11/08
to diso-p...@googlegroups.com
Update that should fix these issues up at
<http://singpolyma.net/diso-actionstream.tar.bz2>

Steve Ivy

unread,
Mar 11, 2008, 1:48:07 PM3/11/08
to DiSo Project


On Mar 11, 9:06 am, "Stephen Paul Weber" <singpol...@gmail.com> wrote:
> The reason I didn't name it wp-diso-profile was that it is in a
> /wordpress directory already.

Yeah, but that's not always going to be the case once we're packaging
these for individual download. Once it's on your HD you're going to
want that un-compressed folder to be recognizable. (IMHO)

> Actionstream I dual MIT/BSD'ed for now - but you're right. Let's
> decide already.
>
> I am ready to put the correct stuff in place to license all of my
> contributions to the DiSo code repository on Google Code under either
> an MIT, BSD, or compatible license, or to multi-license the code.

What's the difference again between MIT and BSD? Any lawyer-ish types
hanging out here?
> IM: singpol...@gmail.com

Chris Messina

unread,
Mar 11, 2008, 2:02:40 PM3/11/08
to diso-p...@googlegroups.com
+1 to Steve Ivy's naming convention (wp-diso-* and wp-* for
diso-specific and general plugins respectively).

Re: license, here's the MIT license:

Copyright (c) <year> <copyright holders>

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.


here's BSD:

Copyright (c) <year>, <copyright holder>
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the <organization> nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Personally I'm leaning towards MIT. It seems simpler and more to the point.

One question: how do we deal with copyright? In most projects, the
copyright is assigned to a master author/person/company. Since there
is no "legal" DiSo entity, it seems that we should figure out this
question. I'll ask my fellow open source foundation friends what they
think.

Chris

--
Chris Messina
Citizen-Participant &
Open Source Advocate-at-Large
Work: http://citizenagency.com
Blog: http://factoryjoe.com/blog
Cell: 412.225.1051
IM: factoryjoe
This email is: [ ] bloggable [X] ask first [ ] private

Stephen Paul Weber

unread,
Mar 11, 2008, 2:05:36 PM3/11/08
to diso-p...@googlegroups.com
After reading wikipedia, also leaning towards MIT.

As for copyright - is that a big deal if we're under MIT? If I go
evil anyone can still use my MIT-licensed code, yes?

IM: singp...@gmail.com

Steve Ivy

unread,
Mar 11, 2008, 2:20:04 PM3/11/08
to DiSo Project
Ok, pending Chris' investigations, +1 for MIT. Let's get a copy of the
license into each component directory.

Also, curious to see what Singpolyma "Going Evil" looks like. LOL! I
think the copyright issue is more so that others annot *claim* the
code as theirs, even though they are free to use and redistribute it.
Chris?

On Mar 11, 11:05 am, "Stephen Paul Weber" <singpol...@gmail.com>
wrote:
> After reading wikipedia, also leaning towards MIT.
>
> As for copyright - is that a big deal if we're under MIT? If I go
> evil anyone can still use my MIT-licensed code, yes?
>
> ...
>
> read more »

Chris Messina

unread,
Mar 11, 2008, 2:53:49 PM3/11/08
to diso-p...@googlegroups.com
Part of the issue of copyright assignment is to prepare for the
potential future success of this project (not counting any eggs yet,
just leveraging my experience from other OSS projects). If we end up
incorporating into some kind of foundation to manage IP or to hold
trademarks and things of that nature (ugh, I still hate the
"necessity" those things represent -- long live rationality!), having
the copyrights all "owned" by a single entity makes it easier to make
changes all at once, rather than having to go back and get sign off
from every contributor.

Because of the open nature of this project, and the potential for
"drive by coding", it will be increasingly difficult to manage and
maintain a current list of contact information for prior contributors
should we need to make a licensing (or other) change which requires
each contributor's sign off. Without that sign off, we'll likely need
to either rewrite the code or strip it from our repository.

Getting copyright assignment now prevents that from happening. This is
also a reason to restrict write-access to the repository.

Regardless of the license of the code we use (which only really
governs reuse of the code), the issue of copyright affects us
internally in what we're able to do and how much flexibility we have
to make the best decisions for the health and continued wellfare of
the project.

Chris

--

Stephen Paul Weber

unread,
Mar 11, 2008, 2:57:32 PM3/11/08
to diso-p...@googlegroups.com
I suppose. Gotta hate all this crap! I know rather large amounts of
nothing in this area, so I'm open to whatever makes sense :)

--

Stephen Paul Weber

unread,
Mar 11, 2008, 11:05:14 PM3/11/08
to DiSo Project
I have put it in SVN and renamed it wp-diso-actionstream. I have also
addid sgapi import. More at my blog
<http://singpolyma.net/2008/03/on-actionstreams-and-blogging-your-own-work/>.

On Sat, Mar 8, 2008 at 5:06 PM, Singpolyma <singp...@gmail.com> wrote:
>
> I've knocked up a basic implementation of action streams based on the
> MT YAML file and a PHP YAML parser.
>
> <http://groups.google.com/group/diso-project/web/actionstream.tar.bz2>
>
> I supports the XPATH and ATOM stuff, but not CSS selectors, etc, since
> I don't know of a PHP library for that. All this code does is take an
> array (hard-coded just now) of service => username pairs, and extract
> the data. Then it iterpolates it using the HTML template from the
> YAML. Small piece of code suddenly has lots of services it can handle!
> >
>

--

Stephen Paul Weber

unread,
Mar 11, 2008, 11:12:18 PM3/11/08
to DiSo Project
Question - I want to have an RSS output from this plugin too -- should
items in it be "de-duped" per service like the display, or contain all
items? Or both?

> > > On Sat, Mar 8, 2008 at 2:06 PM, Singpolyma <singpol...@gmail.com> wrote:
> >
> > > > I've knocked up a basic implementation of action streams based on the
> > > > MT YAML file and a PHP YAML parser.
> >
> > > > <http://groups.google.com/group/diso-project/web/actionstream.tar.bz2>
> >
> > > > I supports the XPATH and ATOM stuff, but not CSS selectors, etc, since
> > > > I don't know of a PHP library for that. All this code does is take an
> > > > array (hard-coded just now) of service => username pairs, and extract
> > > > the data. Then it iterpolates it using the HTML template from the
> > > > YAML. Small piece of code suddenly has lots of services it can handle!
> >
> > > --

> > > Steve Ivy
> > > http://redmonk.net//http://diso-project.org
> > > This email is: [ ] bloggable [x] ask first [ ] private
> >

> > --
>
> > - Stephen Paul Weber (Singpolyma)
> >
> > Web:http://singpolyma.net/
> > Twitter:http://twitter.com/singpolyma

> > IM: singpol...@gmail.com

Chris Messina

unread,
Mar 12, 2008, 12:34:33 AM3/12/08
to diso-p...@googlegroups.com
Good question.

The architecture of this plugin should support the ability to cleave
off portions according to different OAuth tokens, so the default
should be the public, de-duped view (IMO) but you should reserve the
ability to pass ALL data (dupes as well) if certain tokens call for
it.

In terms of the OAuth flow, I think you should take a look at what
SocialThing! is doing with applying per-feed permissions:

http://flickr.com/photos/factoryjoe/2324255831/
http://flickr.com/photos/factoryjoe/2323968325/

This is pretty critical I think.

As well, if someone comes to my blog and logs in with a certain OpenID
(or account on a remote service like Facebook) and we 1) recognize
them from the blogroll or 2) through a remote friends API (i.e.
Facebook getFriends();) then we can show them data in the action
stream that no one else can see. In terms of the feed that we generate
for them, we can either do security through obscurity (possibly
necessary especially if we're talking about subscribing remotely to a
unique feed for a specific "remote friend" and we can't count on
remote feed readers to support OAuth) or we could do it all via OAuth
(the more secure way, assigning unique tokens with unique attributes
that can be later changed per remote identifier).

What's interesting about SocialThing is that they're doing two things:
1) making it possible to show off private data on remote services to
friends of other networks and 2) using remote domains/services (i.e.
Flickr) as "groupings" of friends. That is, when they say "show to
friends on any service", the omission is that you could say "show this
to friends only on Service X". That's huge. Why? Because if we start
setting up distributed groups on individual domains (for example,
"baracksgotaposseindesmoines.com") you could later on provide token
access to all users originating from that group-site. So, rather than
having all these groups hosted in aggregate on sites like Flickr, you
could break out the group functionality as "grouping" functionality.
And like I've said before, rather than going through the account
creation hassle on a site just to join a group, you merely signin with
your OpenID, like you do on any blog, and give them a token to insert
stuff into your personal action stream, just like you provide access
when you become a Fan of a page on Facebook.

Maybe I'm rambling, but it's clear in my head.

To answer your question: the default public feed, IMO, should be
de-duped and perfect to subscribe to. K? ;)

Excellent work, BTW!

Chris

--

Stephen Paul Weber

unread,
Mar 12, 2008, 12:39:18 AM3/12/08
to diso-p...@googlegroups.com
1) Make RSS the same as HTML after CSS
2) Support permissions like diso-profile
3) Generally be awesome

Got it ;)

Chris Messina

unread,
Mar 12, 2008, 12:42:59 AM3/12/08
to diso-p...@googlegroups.com
And if the HTML isn't already, make sure you're using the foundations
of hAtom for formatting the web view of the action stream! ;)

Chris

On Tue, Mar 11, 2008 at 11:39 PM, Stephen Paul Weber

Pras Sarkar

unread,
Mar 12, 2008, 3:06:03 AM3/12/08
to DiSo Project
Stephen and Chris,

I have an updated GoogleReader YAML and also some progress on de-
duping across networks. I'm not sure whether to check in this code
directly (not even sure if I have permission) or to send it to you
guys.

Let me know,

Pras.


On Mar 11, 9:42 pm, "Chris Messina" <chris.mess...@gmail.com> wrote:
> And if the HTML isn't already, make sure you're using the foundations
> of hAtom for formatting the web view of the action stream! ;)
>
> Chris
>
> On Tue, Mar 11, 2008 at 11:39 PM, Stephen Paul Weber
>
>
>
> <singpol...@gmail.com> wrote:
>
> > 1) Make RSS the same as HTML after CSS
> > 2) Support permissions like diso-profile
> > 3) Generally be awesome
>
> > Got it ;)
>
> > > > IM: singpol...@gmail.com
>
> > > --
>
> > > Chris Messina
> > > Citizen-Participant &
> > > Open Source Advocate-at-Large
> > > Work:http://citizenagency.com
> > > Blog:http://factoryjoe.com/blog
> > > Cell: 412.225.1051
> > > IM: factoryjoe
> > > This email is: [ ] bloggable [X] ask first [ ] private
>
> > --
>
> > - Stephen Paul Weber (Singpolyma)
>
> > Web:http://singpolyma.net/
> > Twitter:http://twitter.com/singpolyma
> > IM: singpol...@gmail.com

Chris Messina

unread,
Mar 12, 2008, 3:19:42 AM3/12/08
to diso-p...@googlegroups.com
Probably send your patch directly to Stephen for now and we'll work
out access soon... thanks! ;)

Chris

Steve Ivy

unread,
Mar 12, 2008, 8:20:22 AM3/12/08
to diso-p...@googlegroups.com
Pras - send it to Stephen to review and include.

--
Steve Ivy
http://redmonk.net // http://diso-project.org

Reply all
Reply to author
Forward
0 new messages