- From: Sullivan, Bryan <BS3131@att.com>
- Date: Wed, 9 Apr 2008 14:11:50 -0700
- To: "Adam Connors" <adamconnors@google.com>, "MWI BPWG Public" <public-bpwg@w3.org>
- Message-ID: <8080D5B5C113E940BA8A461A91BFFFCD09B3F08A@BD01MSXMB015.US.Cingular.Net>
Adam, Thanks for the input. Here are some responses to your comments. The changes will appear in the 0409 editor draft. Re "5.1.2 Retain manually entered information.": 24 hours is not quite arbitrary, but I updated the BP to make the duration recommendation more general. The 24 hours came from significant experience with the ways users with mobile web services. User "sessions" with a service need to be reasonably immune from the repeated necessity to re-enter personalizing information. Holding this info for a day (*at least*) ensures that within one typical "session" they won't have to reenter it. A week may be better (but longer times begin to be problematic due to resource impacts/constraints on both server and device), but it depends upon the nature of user interaction with the service (the typical "session profile"), so recommending a reasonable/typical minimum was the intent of the BP. Re "5.1.3 Suggest changing "simplify" -> "minimize"": Simplicty captures the essence better, unless you mean "minimize user effort" rather than "minimize the use of". "Minimize" has typically been used to mean the latter in the BP's e.g. BP1. I don't think we want to recommend impersonal services, rather provide useful guidelines on keeping personalization simple for users. I updated the BP to clarify we mean "minimize the effort required to manually personalize the service." Re "5.3.2 Inform user about device memory impact": In terms of "installation", we are talking in part about web applications here that can run outside the browser sandbox (e.g. using a web runtime). These do have impact upon device memory for installation. Re data memory, web applications that manage persistent data can consume considerable device memory, depending upon their nature. It's important that this BP guide developers toward this disclosure, unless BPWG wants to focus only on the browser, which would be a considerable retreat in my opinion on the value of BP2 (we could then call it "BP1.5"), and not serving the developer community with guidance for the real scope of mobile web applications. I clarified the BP as related to "Users should be informed of impacts to device memory for installable web applications." Re "5.3.4 Provide disclosures that are timely.": similar to the previous one, this is needed based upon the current scope of BP2 "The BP2 focus includes further recommendations for addressing delivery context issues and for use of Web technologies more advanced than covered in BP1, which apply both to browsers and non-browser web runtime environments." Re "5.5.1 Use transfer compression for content.": BP2 is not just about AJAX, so if AJAX (XMLHTTPRequest) doesn't support compression that is regrettable (any IMO does not bode well for Mobile AJAX until is is corrected...), but there are many other web technologies that do since they only depend upon normal HTTP client/server functions, which typically do include GZIP/deflate as a HTTP stack service. Further, we have added a reminder to "Note that transfer compression may not be supported for all network request techniques", which is intended to address the AJAX limitations (once they are confirmed, if real). Re "- "Balance use of compression with potential cost" Statements like this don't add any value in my opinion. The purpose of a BP document surely is to weigh up / investigate such issues and attempt to come to a conclusion.": There are some aspects that are not so simple, yet are important for developers to consider. For some of these it will not be possible to create a simple "do this" statement, but are we then just to ignore them? Developers need to know when they need to make the call on whether to act upon a BP or not, based upon the nature of their application. Re "* Battery use of AJAX crops up a number of times...I feel that these are dangerous statements without substantiation ": there is only one case related (somewhat) to AJAX, and this relates to scripting in general and DOM manipulation in particular. Again, BP2 is about much more than AJAX. Many of the warnings against battery impacts are related to basic autonomous behavior or advanced web technology use (e.g. DOM). At least in terms of autonomous network requests but also in terms of autonomous screen updates, there is clear evidence that such automatic functions can impact the battery "idle time" (the typical measure of how often a user has to charge the battery, not counting talk time). Most Operators have enough experience to tell you that these are real concerns, and are driving the recommendations on *careful* use (*not* avoidance) of automatic behaviors and advanced technologies. Re "5.5.2 ": I changed the first sentence to "Applications that automatically issue network requests should provide value for those requests." This may seem obvious, but it is likely that some/many developers, having the luxury of wired web bearers as their connection to the client, will not consider carefully enough the cost/benefit of such traffic in the mobile context. Having a direct statement such as this will either be obvious to those who understand it, or will cause the others to wonder why and thus learn about the need to consider cost/benefit and the methods to optimize it. Re "5.5.3": Push technologies are not out of scope as they are a currently widely supported and deployed method for optimizing client/server interaction for notification-significant services. Web applications can run as midlets, even full web browsers, and MIDP Push is a key method supported for them. The point is not the execution environment (why consider only "native OS" applications in scope? If applications are based upon web technologies in at least some major aspects as the data they consume and the way they interact with servers, is it irrelevant what their runtime environment is). OMA Push in particular is a mobile web technology that underlies or enhances many of the widely successful service enablers that OMA has specified, including mobile browsing. Re "5.5.4 Minimize application size.": text improvements are welcome. Re "5.5.5 Minimize DOM manipulation.": text improvements are welcome. This was provided as input. Re "5.5.6 Minimize external script files.": input on a better wording for the note is welcome ("Note that caching can also diminish the overhead for transfer of external script files, however as script files are collected into single packages, the efficiency of caching may diminish. So you should seek an optimum balance between script aggregation and cache efficiency.") Re "5.7.2 Retain focus on updates.": I did not submit this but I understand the sentiment, and I do think it occurs in dynamically updating applications. Certainly desktop web applications steal focus all the time and this drives me crazy. I can imagine how this would affect mobile web use. Best regards, Bryan Sullivan | AT&T ________________________________ From: public-bpwg-request@w3.org [mailto:public-bpwg-request@w3.org] On Behalf Of Adam Connors Sent: Tuesday, April 01, 2008 6:03 AM To: MWI BPWG Public Subject: BP2 Comments. Hello, I have some comments on the BP2 doc. I hope this is useful. Apologies for not looking at this previously, the usual tale of hard deadlines and travelling... :) Adam. Comments on BP2 doc: 5.1.2 Retain manually entered information. - I like the sentiment. - "24-hr period at least" sounds a bit arbitrary. 5.1.3 Suggest changing "simplify" -> "minimize" to make recommendation a little more concrete. I like the "require only variable information comment." 5.3.2 Inform user about device memory impact. - I agree with earlier comments that this is out of scope. HTML5 is about the closest technology to this but I can't imagine a case where it makes sense for a web-page to inform memory impact. - The language is very application specific. You don't "install" web-applications. Even if using HTML5 storage there isn't an explicit "install" stage so these statements are anachronistic. - I disagree that this is good practice for web-applications. The user-experience would be poor. I need to see a concrete example of the intention here for this to be convincing. - Suggest dropping this BP. 5.3.4 Provide disclosures that are timely. - Language is too application specific. If in most cases we are talking about "web-applications" references to "application selection, install, first runtime" sound strange and anachronistic. If we are referring to specific non-browser technologies I think we need to call this out explicitly since anybody reading this document on the assumption we are referring mostly to browser-based applications won't know what to make of a recommendation worded in these terms. - Suggest dropping. 5.5.1 Use tranfer compression for content. - The summary beneath 5.5 "web applications that autonomously interact..." implies we are talking about transfer compression for AJAX requests. Sure, compression in general is a good thing, but I'd hesitate to make a BP around compressing AJAX unless we have a good view on how this is done... Can someone provide confirmation that this either "just works" or how it is done? I'm not convinced this works out the box and if we have to do something like implement gzip in javascript by hand to do it then I don't think it makes sense as a recommendation. - "Balance use of compression with potential cost" Statements like this don't add any value in my opinion. The purpose of a BP document surely is to weigh up / investigate such issues and attempt to come to a conclusion. * Battery use of AJAX crops up a number of times I feel that these are dangerous statements without substantiation. Sure, "be aware of battery use of ajax and don't use it unnecessarily" is perfectly reasonable, but the way these statements are worded is much stronger. Do we have a reference or experiment or example to help us understand the true significance of this consideration. 5.5.2 "Applications should not create network traffic..." -- cut this sentence it adds nothing. Start with "For application that automatically issue network request... etc" 5.5.3 Refers to MIDP Push Registry which is specifically out of scope. Isn't OMA push also out of scope for "web applications". I don't know of any push techniques that do work for web-applications. A hanging-get is the nearest thing, but has problems of its own. 5.5.4 Minimize application size. - "overuse of nested css classes" --> I think I contributed this one. The language I used is confusing now I re-read it... I will offer a better wording. - "the cost of css optimization needs to be balanced against impacts of maintainability" -- I don't agree that well-written / optimized css needs to be any less maintainable so I don't see much value in this point. Maybe I need more explaination of what is meant by "optimize css at the point of delivery", I'm not sure what this means. - There are a great many other ways to minimize application size beyond this. The heading is far broader than the content for this section. 5.5.5 Minimize DOM manipulation. - The points in the "how to do it" section contradict the premise of the recommendation (!) We need to rework this one. - What's the reference for this statement? There are a number of advantages to building the page on the client based on a JSON data-model -- it's a technique we use a lot -- so I am concerned that a strong recommendation like this should have a solid evidence-based motivation. - To my mind identifying a BP for how to build and manipulate dynamic pages based on a javascript data-model is the place where we can offer most value here. But this recommendation as it currently stands is quite misleading and contradictory to BPs we use in day-to-day development... - We need to understand this much more deeply. - I am happy to take an action to try to put something together on this, but please send me the reference that prompted the "battery-life" concern because I don't have a good understanding of the significance of this factor at the moment. 5.5.6 Minimize external script files. - I like the sentiment. I don't understand "however if script files are collected into single packages the efficiency of caching may diminish." I understand this to mean that we believe there is advantage to partitioning scripts so that new releases of the application don't require reloads of all the script... In practice I think this would be highly unlikely to have a dominant effect. I suggest that we drop this last statement unless I am misunderstanding it. 5.7.1 Use scripting for user interface - This is a place-holder? What else would you use? Maybe we should flesh this out to explain that user-experience can be greatly improved by using script to update dynamic parts of the page and so avoid full-page reloads. 5.7.2 Retain focus on updates. - Feels to me that we are specifically recommending against a particularly pathological behaviour... This isn't the sort of thing that anyone in their right mind would do so I don't think we need to specifically ward against it. - Suggest dropping this recommendation, but don't feel strongly.
Received on Wednesday, 9 April 2008 21:13:22 UTC