Just thinking at the conceptual level.  How about filtering irrelevant method calls and signals? How about a RESTful interface (<a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">http://en.wikipedia.org/wiki/Representational_State_Transfer</a>)?<br>

<br>I don&#39;t know. Just thinking...<br><br>Thanks for contributing!   --Fred<br><br><div class="gmail_quote">On Wed, Mar 25, 2009 at 5:21 PM, Benjamin M. Schwartz <span dir="ltr">&lt;<a href="mailto:bmschwar@fas.harvard.edu">bmschwar@fas.harvard.edu</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA1<br>
<br>
For the moment, I assume you are speaking of our current network<br>
collaboration technologies.<br>
<div class="im"><br>
Walter Bender wrote:<br>
&gt; Interesting idea. I don&#39;t see why this couldn&#39;t work; I am not sure of<br>
&gt; the security implications, but I don&#39;t see why collaboration always<br>
&gt; has to be between two identical activities.<br>
<br>
</div>Collaboration always has to be between two identical activities.  The only<br>
exception is if the two activities, though not identical, speak a unified,<br>
coherent network protocol.  In order for this to work, Activities would<br>
have to specify their network protocol in complete detail, with each<br>
change in the protocol generating a new version identifier.<br>
<br>
It is not enough to specify the generic connection parameters, as done by<br>
Telepathy; this only gets us far enough to fail.  The protocol in question<br>
must specify the names, types, and meanings, of all remote procedures that<br>
can be called from either side.  This is approximately the level of<br>
specification required in something like an IETF RFC... and it would be<br>
needed for every activity.  The versions would then need some sort of<br>
identifier, so that the two participants can, when initializing a<br>
connection, negotiate a mutually intelligible protocol (if one exists).<br>
<br>
Achieving this level of precision specification is difficult even for<br>
experienced full-time software engineers.  It is often performed by<br>
specification specialists, who are experts in this field.<br>
<br>
Moreover, distinct activities are _different_.  It should be obvious<br>
enough that no matter how we twist the network protocols, Video Chat and<br>
Write are never going to collaborate directly with each other.  Their<br>
internal data structures are grossly incompatible, because their codebases<br>
are unrelated, because their purposes are entirely distinct.<br>
<br>
Now, the above is fairly obvious, so I suspect you are talking about<br>
something else.  Perhaps you envision some way of taking the functionality<br>
from one Activity and embedding it in another as a kind of widget, or<br>
perhaps you&#39;re thinking of some other way of smushing activities together<br>
like objects with well-defined interfaces.  If so, you may like to observe<br>
the history of the Component Object Model [1], the Cross Platform<br>
Component Object Model [2], or maybe even the GNU Network Object Model<br>
Environment [3].<br>
<br>
I think such &quot;collaborative widgets&quot; are very powerful; I&#39;ve even written<br>
one or two for Groupthink... but now I&#39;m off into speculation, since I<br>
don&#39;t really know what you&#39;re thinking about.<br>
<br>
- --Ben<br>
<br>
[1] <a href="http://en.wikipedia.org/wiki/Component_Object_Model" target="_blank">http://en.wikipedia.org/wiki/Component_Object_Model</a><br>
[2] <a href="http://en.wikipedia.org/wiki/Xpcom" target="_blank">http://en.wikipedia.org/wiki/Xpcom</a><br>
[3] <a href="http://en.wikipedia.org/wiki/GNOME#Name" target="_blank">http://en.wikipedia.org/wiki/GNOME#Name</a><br>
-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v2.0.9 (GNU/Linux)<br>
<br>
iEYEARECAAYFAknKoGsACgkQUJT6e6HFtqREVQCaA7m8daZOFBh2PB4/pfTRoHeX<br>
En4AnR6BBOZOCA8SfSu3GbA3TarQAX4a<br>
=YpnV<br>
-----END PGP SIGNATURE-----<br>
</blockquote></div><br>