Sent from a typo-prone iPhone.
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?
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).
Actionstream I dual MIT/BSD'ed for now - but you're right. Let's
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.
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
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.
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
Open Source Advocate-at-Large
This email is: [ ] bloggable [X] ask first [ ] private
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?
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
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.
> 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!
> > > 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
> > IM: singpol...@gmail.com
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
In terms of the OAuth flow, I think you should take a look at what
SocialThing! is doing with applying per-feed permissions:
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!
Got it ;)
On Tue, Mar 11, 2008 at 11:39 PM, Stephen Paul Weber