-
Content Publishing Protocol
- body
-
Since APP (understand here) is mainlined in WordPress, it makes sense to use it in DiSo efforts. I doubt that my OAuth plugin will work here, but it's worth testing. It may mean using headers, but with comment and discovery support we should be able to build a distributed commenting system, at least for Wordpress.
I've thought about other APIs that would be useful for DiSo. For example, adding friends or groups. APP does not fit this, but the general concepts do. Perhaps APP can be abstracted into more of a CPP.
GET on main endpoint to list items (ATOM can always be the main wrapper here).
POST to main endpoint to create new items.
PUT to node to edit.
DELETE to node to delete.
Authentication unspecified (HTTP Basic or OAuth work well).
If the content of your POST and PUT requests is ATOM, you have AtomPub. The same basics can easily work with other content. (The other content types could be encapsulated in ATOM entry bodies on the GET list, or XOXO).
For example, a POST body of XFN+hCard could add a friend. A PUT body of hCard could edit a profile (ie, to add groups).
I would also like to suggest that POST on a node could be used to add comments (create new content on a content node).
-
Pempeth - Send Messages
- body
-
Pempeth is the result of my work based on my previous private messaging TEP. The protocol draft has matured and there are now implementations! (see the page). Most notable is a Wordpress plugin, active on this site.
The development of that plugin also sparked an XRDS plugin, which I have also released (despite its somewhat cryptic interface).
Those looking at the main page may also have noticed changes. Yes, that's a mini-feed based on my online activity. Yes, it's a plugin. The interface, however, only allows for adding sources (not editing or removing) and is somewhat cryptic, so I have not released it yet.
You can also now log into my blog with your Facebook account (see link in header)! This uses the API, so I don't got your Facebook password or anything like that. Also an as-yet-unreleased plugin.
Fun days! I'm going to be working at AideRSS as a co-op in the coming months, should be fun and more freeing than school!
-
REST Personal Message TEP
- body
-
I have updated this draft and released some code.
Regular readers of my blog know that I am obsessed with one thing: decentralisation. I hate having all my eggs in one basket. IMHO, if anyone has the ultimate power, then it's not true Web 2.0. In my recent thinking this has extended to my view of social networks such as Facebook and MySpace.
One of the much-used features of these is personal messages. This can be public (ala Facebook wall) or private (ala Facebook message). I here intend to provide a TEP, which I will implement, suggesting a way to do this in a decentralised and RESTful manner.
Detecting the endpoint
I love XRDS! This format comes to us from the OpenID world but really provides a standard way to associate RESTful endpoints with a URL [example].
I think it makes most sense to have one type URL for this TEP and declare a namespace for extending XRDS to (optionally) tag endpoints with a 'sub-type'. This could look like the following:
<?xml version="1.0" encoding="UTF-8"?><xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)" xmlns:dsn="http://singpolyma.net/dsn/xmlns"> <XRD> <Service priority="50"> <Type>http://singpolyma.net/dsn/pmt</Type> <URI>http://example.com/msg</URI> <dsn:msgtype>private</dsn:msgtype> </Service> </XRD> </xrds:XRDS>
(I will create these pages in a bit.) I would propose the following dsn:msgtype for now: private (only to you) and public (like Facebook wall). As this is a TEP, nothing is remotely final. I'm not sure I like msgtype as the tag name, for one thing.
Sending Data to the Endpoint
This part is easy. To support maximum compatibility with existing systems, either GET or POST data is to be accepted. All fields passed must be processed. The simplest system will simply take all data passed via both GET and POST and put the field name as a header and the value under/beside it in the message body. No data may be ignored (unless there is a particular value, such as a session ID, specific to your server which you want removed). The following is a list of fields which make sense to use in a special way. If you are going to do something special for one of these values you should use the name given here, but really any data can have anything done with it as long as it is included somewhere in the message.
subject, from (contact of sending user), cc, url (of sending user), name (of sending user), body
XHTML is allowed. Special data (such as calendar events) should be marked up with microformats where possible.
A way to contact the user back SHOULD be supplied. If either from or url is a URL, XRDS discovery can be performed on it in order to detect an endpoint for this TEP to use in replying.
I am going to write some code to implement this both for WordPress and independently soon. I may also create a simple service targeted at adding this capability to a blogger blog (or other locked-hosting website).
-
The State of Distributed Social Networking
- body
-
Also known as Portable Social Networking, this is the concept of decentralising the social networking functionality of sites like Facebook so that one does not have to use every service to connect with everyone (previously covered here).
Videntity is a wonderful service for this movement, and one that I have been using as the hub of much of my efforts. Explode seems promising, but they're down for upgrade.
So let's talk about my list from last time:
- hCards and Pingerati : For Blogger I have a wizard. Pingerati pings still manual. For WordPress there is a widget. Pings still manual. For even more professional information (such as my resume) there is an hResume WordPress Plugin. For other websites/services there is always the hCard Creator. Of course, Videntity.org supports hCard by default.
- XFN Friends lists : For Blogger I have a wizard. This wizard will actually work on any web page or on any service where you can post (X)HTML (including MySpace or Xanga!) For WordPress there is a nice plugin, although a widget version would be a bonus. Videntity supports this by default.
As far as finding/adding friends goes I have a bookmarklet for Videntity that allows one to add hCards, Facebook results, or Wink.com people results as friends/contacts. Bookmarklets for other services would not be hard. For Blogger we would need an actual blogroll-producing service beyond just a wizard to make this work.
- Public/private profiles : Again, Videntity has this built right in (as long as you have the URL that the contact uses for OpenID on the friend list, it does not follow rel=me). I am working on a solution for WordPress. Would people be interested in a solution for Blogger/other websites?
- Messaging : not sure where I stand on this. Lots of nice contact options, and creating a 'wall'-like interface on WordPress would be easy. The question is : what is the goal of this? If it is just the address book features then a way to integrate social networking contact lists with email clients / Gmail might be better. If it is being able to communicate without revealing your email address a protocol/system for that might be easy enough.
My brother (and avid Facebooker) says that it is about visibility. The benefit of Facebook messaging, for him, is the unified notifications area that he KNOWS his friends all check. He KNOWS that they will see his message. He is not sure they check their email.
I still promote the idea of supporting rel=tag on hCards. We need a better hCard search engine, one that takes Pingerati pings, crawls regularly (some of my pings from months ago were never indexed by the Technorati Kitchen hCard search), outputs results as hCards (to facilitate things like my bookmarklet), and recognizes rel=tag.
Perhaps a tagspace could do a rev=tag for members. If an hCard URL has rel=tag to a page that has rev=tag to it that would give credibility to the category.
Notifications (think Facebook mini-feed) need to fit into this idea somehow. Events are hCalendar. Notes/posts/shares are hAtom/xFolk. Status is something I've blogged about recently too. Services like Twitter are heading in the right direction.
-
WebOS Again
- body
-
I wrote once before about the existing WebOS systems. I planned to follow that post up, but time did not allow. Now I will follow it up twofold.
Using
I have come to use WebOS in a broader sense than I once did, which seems to be the 'catching' way to use it these days. That is, defining WebOS to include things such as Netvibes and BoxtheWeb, Omnidrive and Box.net, Zoho and Google Docs. I have been asked by some how I find WebOS useful at all, or if it is just an interesting experiment. I will attempt here to answer that.Online storage is amazing. Work at home, save online, work at school, save online, etc. It is far more convenient than carrying flash media everywhere I go. I have used YouOS, Google Docs, and Gmail for this, but the result is basically the same.
Online office is similarly useful. I can work on and access the same document across computers at my house, or on campus, without any real hassle. Open, edit, save. Collaboration features just make it that much more fun! SVN for documents

AJD (ala BoxtheWeb or Netvibes) is something I really love. I use BoxtheWeb, being the project originator, but there are many out there. I have many feeds, but I still like to be able to glance at them all at once. See what my contacts are reading these days, access my del.icio.us, and search, all from one page. There's something to be said for that convenience.Last but not least (and I've likely forgotten others) : YubNub. I couldn't live without it. The amount of time saved being able to type 'g singpolyma', 'tet microformats', 'hwdial singpolyma.net' is amazing. And the development stuff is fun.
As for full-scale webtop integrations. I haven't been using the full-fledged features yet. There's something there though… just not ready yet (or maybe I'm too geeky to see it past the GUI
).Standards
I mentioned in my last post the need for standards. If I could run Netvibes widgets on my BoxtheWeb page while integrating my YouOS storage, that would be very most awesome. The companies themselves seem to be organising, but it's private and they're not taking input. So, as always, the community needs to get their foot in the door before the industry runs on its course and we have many too many products and it takes years to create standards.Drawing inspiration from the Microformats process, research into existing practices/standards should be present before suggesting something new. To aid the community in organising such research and development, I have created a wiki and a discussion group.
Perhaps not all of us are geeky enough to do the research and formal stuff for the wiki, but anyone who uses any of the products listed above, listed on the wiki, or related products, as well as those interested in Simile and related projects can contribute to the discussion on the discussion group. Anything from observations about how things work, suggestions as to how things should/could work, or even pointing out projects that may have been missed is welcome. Feedback from users as well as geeks is necessary to make this project work.







Post a Comment