[OpenAjaxMobile] Minutes 2008-07-17

Jon Ferraiolo jferrai at us.ibm.com
Mon Jul 21 09:43:52 PDT 2008



Here are the minutes from last Thursday's phone call:

URL: http://www.openajax.org/member/wiki/Mobile_Minutes_2008-07-17





Attendees
      Paddy Byers, Aplix
      Jon Ferraiolo, IBM
      Adam Peller, IBM
      Andrew Sledd, Ikivo (co-chair)
      Ian Hay, Orange France-Telecom


Minutes

OMTP report from Paddy


Paddy: We are talking about how to respond to W3C Widget Requirements. We
are thin on the ground due to summer holidays. We should have public
working drafts from both the arch/security committee and the interfaces
committee. Mostly mid-level requirements that states the functionality that
we want. There will be some low-level requirements that are moving towards
actual low-level APIs but those are embryonic.


Paddy: I forwarded Jon's proposed APIs to the OMTP list. Not fully
consistent with what we have been working on. In general, the set of
principles are good but I don't agree on all of the details.



General process going forward


Jon: What I am thinking is that we discuss high-level approaches in the
phone call, but work out the details such as the exact APIs in the open
source effort


Andy: Yes



Loader


Paddy: I don't want to monopolize the call with the loader. We talked about
it for most of the call last week


Jon: Andy, Adam, have you looked at Paddy's loader JavaScript?


Andy: Just now


Adam: Looks similar to Dojo, which uses two mechanisms, both dynamic script
and xhr


Paddy: If we go for the loader, then we want the ability for a particular
loader to add its own private implementation components. Works like Browser
Plus. Then have a fallback behavior that is portable. Resolve name and
version into a URI is the standard case.


Paddy: Regarding Jon's question, the name is a URI. Could be opaque like a
URN or an http URI to which you append parameters. But the script could be
more intelligent.


Adam: Sorry, I missed earlier discussion, but can we back up? Why not just
load script manually?


Paddy: We talked about a number of advantages to a standard loader. Among
the advantage, you can tell if a module is already loaded. Also, provides
the ability to pass parameters and satisfy particular requests.


Adam: There are pitfalls. The latency issue of loading script tags
separately. Prevents the ability to put inline JavaScript. You can use
async requests but that has possibility of race conditions. If you use
synchronous XHR, it blocks everything else. It is difficult to know when a
script has been loaded.


Paddy: In our model, things key off of onload. But without a loader, chance
of more roundtrips.


Adam: With loader approach, chance of race conditions.


Paddy: What does loader do in dojo? Hide things from the programmer?


Adam: Yes


Paddy: Individual toolkits can optimize on the proposed approach, such as
dojo offering a more advanced loader. My code is just an illustration of
functionality, not exactly how it would work.


Adam: But I don't think this would slide into dojo


Paddy: But everything could have been loaded beforehand


Adam: Yes, that's how dojo works


Paddy: Need to look how this aligns with existing frameworks


Jon: We need to study this against dojo and other toolkits


Adam: Most toolkits put the burden on the developer


Andy: Given our fast-track approach, which will give developers what they
need?


Adam: We don't want to do something that has performance problems


Jon: Yes, if it isn't optimal in performance, it won't get adopted


Paddy: What we want to avoid is load, then go get more things, which isn't
good. Need to trigger before doc load. Provided you do that, you have
contained any damage. Need to be optimized away.


Adam: May have to promote this approach to a best practice. Dojo has to
wait for onload to avoid race conditions


Andy/Adam/Jon: We have to assume that anything that is problematic on
desktop will be worse on mobile due to increased fragmentation.


Paddy: Not always the case that a script element will be added.


Andy: There is the advantage of parsing parameters.


Adam: Of course it is possible to add parameters to the URI. I love the
benefits but it raises questions. Also, may load a library (DLL) which adds
more timing issues and latency issues.


Andy/Paddy: Network latencies will dominate.


Jon: Let's close discussion and have someone study dojo.


Andy: Adam, can you write up why loader isn't winning favor in desktop
browser world?


Adam: I'm not against a loader, I just want to see how well things will fit
in. Dojo provides quick development but offers various optimizations for
deployment.


Jon: I'll take the action to work with Adam to study dojo and other
libraries



Jon's API proposals


Jon: Just a starting point for discussion. I proposed CRUD-like method
names just arbitrarily to align with something that exists in industry. If
there are other approaches, bring them up. I'm not tied to the CRUD method
names.


Adam: How about getters and setters?


Jon: I have proposed you retrieve the whole property bag. But maybe we
should add getters and setters for particular properties.


Adam: Dojo data has CRUD-like APIs. Maybe a batch approach.


Jon: Do we need a transaction approach with callbacks?


Paddy: Only needed if API itself has a transaction notion.


Paddy: Let's talk about the one-arg proposal. All args as an associative
array. Haven't seen that before. Is that usual? Versus numbered args.


Adam: Sort of leverages the whole JSON movement. I've seen it used for
complex methods and flexibility.


Paddy: Yes, allows extensibility. Interesting approach.


Paddy: A disadvantage is increased garbage for collection. Naive usage
would create garbage.


Andy: Need modularity at the right level so you don't load too much.


PaddY: Some callbacks may not be clear relative to success versus failure.
Seems arbitrary. Also, what is the parameter list for callbacks? Also,
sometimes you want to pass the original object to the callback function.


Jon: My proposal takes the approach used by the OpenAjax Hub which sends
both publisher and subscriber data to the callback.


Paddy: Good to sketch out some examples.


Jon: Yes


Paddy: Back to shadow objects. But sometimes you will pass a real object
with APIs. For example, file object with a but of methods


Jon: Yes, right, by saying always shadow objects, that's too extreme


Andy: A principle, not a requirement


Paddy: API doc should be clear whether pure shadow or pure references


Jon: Yes


Paddy: Better to be consistent


Jon: Will update the spec to reflect comments from this phone call

Next phone call
      No Andy
      Maybe Paddy
      Try for 2 weeks from now. Backup is 3 weeks from now
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://openajax.org/pipermail/mobile/attachments/20080721/a7a44577/attachment.html 


More information about the mobile mailing list