http://codereview.appspot.com/32044/diff/1/2#oldcode61
Line 61: Inline tag to show a person's name, linked if the a profile URL
an may have additional container bling (i.e. more information on hover)
need some grammar fixes in this line.
http://codereview.appspot.com/32044/diff/1/2
File draft/OpenSocial-Markup-Language-Tags.xml (right):
http://codereview.appspot.com/32044/diff/1/2#newcode83
Line 83: <t>@person {string|Object} The person object or DataContext key
referring to a
Think this should always be a Person object.
Supporting a DataContext key just saves you the ${} braces.
http://codereview.appspot.com/32044/diff/1/2#newcode89
Line 89: Welcome, <script type="text/os-template"
xmlns:os="http://ns.opensocial.org/2008/markup"><os:Name
person="${Viewer}"/></script>
would probably put the script around the whole thing (don't want people
thinking we're *totally* crazy with that script element)
http://codereview.appspot.com/32044/diff/1/2#newcode101
Line 101: <t>@group {string|Object} An array of person objects or
DataContext key referring to an array
ditto
http://codereview.appspot.com/32044/diff/1/2#newcode109
Line 109: <t>@onselect {string|function} Client side script function to
invoke when a person
what can the script do? what arguments does it take? When is it called
for multiple selection? We might punt this out of the spec and make it
a container extension, or we can try fully specifying it.
http://codereview.appspot.com/32044/diff/1/2#newcode218
Line 218: <t>Then use ${Data} in your template.</t>
need <os:Html code="${Data}"/> if the request includes any markup.
http://codereview.appspot.com/32044/diff/1/2
File draft/OpenSocial-Markup-Language-Tags.xml (right):
http://codereview.appspot.com/32044/diff/1/2#newcode83
Line 83: <t>@person {string|Object} The person object or DataContext key
referring to a
On 2009/03/27 00:26:17, awiner wrote:
Think this should always be a Person object.
Supporting a DataContext key just saves you the ${} braces.
Agree with Adam on this.
http://codereview.appspot.com/32044/diff/1/2#newcode109
Line 109: <t>@onselect {string|function} Client side script function to
invoke when a person
On 2009/03/27 00:26:17, awiner wrote:
what can the script do? what arguments does it take? When is itcalled for
multiple selection? We might punt this out of the spec and make it acontainer
extension, or we can try fully specifying it.
Think the callback should be either:
1. callback(idsOfPeople) or
2. callback(listOfPeopleObjects)
#1 probably makes sense given server side rendering - you don't want to
have to keep the people around. But #2 would make it easier to do
something with the selected people without looking them up.
http://codereview.appspot.com/32044/diff/1/2#newcode218
Line 218: <t>Then use ${Data} in your template.</t>
On 2009/03/27 00:26:17, awiner wrote:
need <os:Html code="${Data}"/> if the request includes any markup.
There was a long discussion which ended in having <os:Get>, and I only
want to reverse the decision and remove the tag if we have agreement
from all folks who wanted the the functionality (MySpace/Yahoo folks -
please review this)
<os:Get> supports repeated and conditional download of data, so we lose
some functionality in the other constructs.
Think it's OK for the client side implementation and/or Shindig
server-side implementation to be naive and slow (deferred load via JS) -
if developers like the feature we can then improve performance.
Have we got an updated version of these edits?
Sorry to chime in late on os:Get. I agree with Evan that os:Get is not quite just a duplicate of os:httpRequest and os:hml. We should keep the os:Get for the simplicity and additional functionalities.
-Charlie
Looking into your detailed objections, here are my takes:
- os:Get within a loop is necessarily slow, and cannot be analyzed a
priori to determine how many HTTP requests a gadget will produce.
I think we are aware that the added functionality is at the cost of performance. The developer has to make the decision whether in its application this feature worth the trade off. On the other hand, there are spaces to optimize later on the implementation to increase the parallel behaviors.
- os:Get cannot be prefetched at the same time as Data Pipelining, and
therefore hurts latency.
Again, this actually solved the dependency issue that data pipeline is not solving. I don't think you can solve the dependency without serializing dependent http requests.
- os:Get (as defined) lacks all of the knobs that os:HttpRequest does
(signing, caching, oauth, etc.)
This is the first version of it, I believe Evan want to be conservative at this point.
- os:Get can be implemented as an extension by containers to prove
that it is specifically useful; to the best of my knowledge, there is
not yet even a prototype in use by developers.
I am actually open to reduce the step. As long as Shindig has a prototype implementation to let both containers and developers test the benefit and drawback of this tag, we are ok.
-Charlie
Looking into your detailed objections, here are my takes:
I think we are aware that the added functionality is at the cost of performance. The developer has to make the decision whether in its application this feature worth the trade off. On the other hand, there are spaces to optimize later on the implementation to increase the parallel behaviors.
- os:Get within a loop is necessarily slow, and cannot be analyzed a
priori to determine how many HTTP requests a gadget will produce.
- os:Get cannot be prefetched at the same time as Data Pipelining, andAgain, this actually solved the dependency issue that data pipeline is not solving. I don't think you can solve the dependency without serializing dependent http requests.
therefore hurts latency.
This is the first version of it, I believe Evan want to be conservative at this point.
- os:Get (as defined) lacks all of the knobs that os:HttpRequest does
(signing, caching, oauth, etc.)
- os:Get can be implemented as an extension by containers to proveI am actually open to reduce the step. As long as Shindig has a prototype implementation to let both containers and developers test the benefit and drawback of this tag, we are ok.
that it is specifically useful; to the best of my knowledge, there is
not yet even a prototype in use by developers.
+1 for optional.
+1 as optional.
(Just came back to office today.)
From: opensocial-an...@googlegroups.com [mailto:opensocial-an...@googlegroups.com] On Behalf Of Evan Gilbert
Sent: Wednesday, April 01, 2009
1:18 PM
To:
opensocial-an...@googlegroups.com