Mobile Minutes 2009-02-26
From MemberWiki
URL: http://www.openajax.org/member/wiki/Mobile_Minutes_2009-02-26
Contents |
Attendees
- Jon Ferraiolo, IBM
- Andrew Sledd, Ikivo
- Robin Berjon, Ikivo
- Andy Braun, Sony Ericsson
- Nick Allott, OMTP (invited guest)
Original Agenda
- Agenda
- Summary: Discuss latest BONDI specs and work towards official OpenAjax feedback on those specs.
- BONDI information
- OpenAjax wiki pages relevant to BONDI
- http://www.openajax.org/member/wiki/BONDI
- http://www.openajax.org/member/wiki/BONDI_Overview
- http://www.openajax.org/member/wiki/BONDI_Feedback_APIs
- http://www.openajax.org/member/wiki/BONDI_Feedback_Security
- http://www.openajax.org/member/wiki/BONDI_Feedback_Spec_Errors
- http://www.openajax.org/member/wiki/BONDI_Evangelism
- http://www.openajax.org/member/wiki/BONDI_V2_Wishlist
Minutes
Jon: I broadcast emails asking for feedback on BONDI, but no responses. My guess is that providing feedback on BONDI is a major investment in time for Ajax folks and they are all too busy with other things. I have cornered a couple of people and have some feedback, but I need to corner some others.
BONDI Overview
Jon: I need to reorganize things. The overview should go on the TOC page and the historical information needs to be moved elsewhere.
(someone points out that the table is messed up)
(subsequently, we walked through initial feedback posted at http://www.openajax.org/member/wiki/BONDI_Feedback_APIs)
window.bondi object
Jon: Does something have to be loaded for the 'bondi' global object to be there, or will it be assumed to be there always?
Nick: Assumed to be there. But different behavior for widgets and browser pages. For widgets, it is just there. For browser pages, not entirely sure. I'll have to check. You might have to include something to make sure it is there. (Note: Paddy Byers subsequently submitted text for the overview wiki page explaining that the bondi global object will be evangelized to be built into browsers natively, but if it's not native, it would be necessary to include platform-specific loader logic to bring in the bondi global object.)
Jon: Maybe what you need is some useful open source that is outside of the formal BONDI specs that people can use to load the bondi global object across various different platforms.
Adam: Is synchronous loading implicit?
Nick: Yes
Jon: That make not work well in all cases. Suppose something needs to come down from the Web.
Nick: Yes, have to block until it is there. Need to add this to the spec
Jon/Nick: (Agreement that BONDI is missing an overview white paper that explains how everything is held together)
Jon: Without the white paper, it is difficult for people to get up the learning curve so they can provide good feedback
Nick: I will try to have a white paper ready by the end of next week
Jon: On the OpenWeb mailing list, there has been some talk about BONDI at a conceptual level, as a good idea, but lots of skepticism expressed about how OMTP is run by the operators and people saying they are untrustworthy due to history of walled gardens
Nick: We will create a BONDI principles document that explains some of our guiding principles, such as giving the user full control over security
Jon: Regarding the bondi global object, the detailed docs don't show what you have said
Nick: Yes, they are out of date and need to be updated
bondi.load()
Note: since the meeting, Paddy sent text for the wiki overview page that explains that bondi.load() has been renamed to bondi.requestFeature().
Jon: Do you have to call load()?
Nick: On a web page, always. For widgets, no, because the <feature> elements in the W3C Widgets XML file causes the given API to be made available by the widget engine.
Jon: So, no need for an unload(), given this approach
Nick: Yes, let's keep things simple for now
Jon: Does bondi.load() return an object?
Nick: Yes, an object that holds the interfaces
callbacks
Jon: What if a callback invokes an exception?
Nick: Have to double check, but I think we have best practices that says don't throw exceptions
Jon: OpenAjax has some best practices for callbacks at http://www.openajax.org/member/wiki/OpenAjax_Hub_1.1_Specification_Publish_Subscribe_Best_Practices
Robin: Look at what XMLHttpRequest does
Jon: What's the 'this' object when the callback runs?
Nick: I can't guarantee we have consistency
Jon: Probably you want to add a 'scope' parameter that is optional to allow the developer to say what the 'this' object should be. For example,
someBONDIapi(..., successCB, failureCB [,scopeObject]);
Nick: OK
Jon: How is a filesystem object (or any other module) created in a widget context in response to a <feature> element? Does the <feature> element specify the name of the JavaScript global that will hold the APIs?
Nick: I'll have to check that one
Jon: In general, for bondi.load(), you want to pass objects around and not JavaScript global names.
Nick: Yes
filesystem APIs
Nick: We are using the fs apis that Opera has submitted to the W3C. A few wrapper APIs are different. Otherwise, the same as W3C.
Adam: Synchronous APIs with JavaScript? In Java, you would do this in a thread.
Nick: That was an ongoing thread at the W3C
Nick: DCCI has some similar stuff. So does geolocation. Best to fix this at the W3C
Jon: Absolute paths? Seems to me that paths should be relative to a virtual root
Adam: Encoding parameter?
Jon: What if first line is UTF-8 and second line is UTF-16?
Jon: Question about mounting events. Why are they needed?
Nick: Removable media. Let me check on that. I thought some smartcard vendors have said we need something like that
deviceStatus
Jon: Weird callback API. Double nesting. parameter/object/object. Looks like it might be derivate of Java style APIs, where there is a handler function inside of an event listener object. Inconsistent with other APIs. Maybe you should do triage across all of BONDI's callbacks
bondi.load (again)
Jon: The documentation for AddressBook shows the following example:
bondi.load('pim.contact', { id: 'contact', success, failure });
What's going on here? That's incorrect JavaScript. Do you mean:
(a) bondi.load('pim.contact', { id: 'contact', success: successCB, failure: failureCB });
or
(b) bondi.load('pim.contact', { id: 'contact'}, successCB, failureCB );
I guess it's (b)
Nick: Yes, probably.
Next steps
Jon: Phone call after white paper?
Nick: I can get something on Modnay and then you say when to get together. Need feedback at the latest one week before March 23 face-to-face
Jon: I'll clean up wiki pages on OpenAjax site
Nick: I'll get full spec for bondi.load and on property change. Filesystem is a general discussion area.
Nick: Need feedback on security.
Jon: Tried to have a meeting before today, but couldn't pull it off. I'll talk with IBM security people soon and then figure out how best to bring that feedback into this group.
