WebDatabase/WebStorage (was Re: Points of order on this WG)

2009-07-16 Thread Nikunj R. Mehta
I would like to suggest that these specs be renamed to better reflect  
what they are about.


For one, using the term Web in the title draws attention as the one  
(or the primary one). Secondly, it says nothing about the constructs  
offered. For example, WebDatabase suggests that this is *the* spec for  
structured storage, when, in fact, this group has argued in favor of  
multiple approaches, including one on B-tree databases that I have  
proposed.


My suggestion is to rename the WebDatabase spec as the SQLDatabase  
spec. That way any other approach can be called the XXXDatabase spec.


Similarly, with WebStorage, it is not clear what is the meaning of  
Web in the title, especially since we are currently left with just  
key-value storage. Since Web does nothing, except to distract and  
possibly mislead people into thinking that the spec covers all  
possible storage needs, I would suggest that the editor drop the word  
Web from the spec title. I also have a suggestion for the title - Key  
Value Storage. I do realize that this might be moot given that  
WebStorage has already gone through FPWD. Still, it does us no harm to  
at least rectify the situation now rather than going to CR with this  
name.


Nikunj
http://o-micron.blogspot.com



On Jul 15, 2009, at 3:56 AM, Ian Hickson wrote:


On Thu, 25 Jun 2009, Maciej Stachowiak wrote:

On Jun 24, 2009, at 11:35 PM, Ian Hickson wrote:

[...] (if anything, I think we should split Web Storage into two
further specs [...]


[...] I would prefer to see SQL Storage split out of the rest of Web
Storage. We seem to have rough consensus and strong multilateral
implementor interest on LocalStorage and SessionStorage, and they  
should
be allowed to move forward on the standards track quickly. SQL  
Storage

remains contentious, and only Apple and Google have shown strong
implementor interest so far. And it has no technical tie to the other
storage drafts.


Done.

  http://dev.w3.org/html5/webstorage/
  http://dev.w3.org/html5/webdatabase/

I'll probably not ask for Web Database to go to last call in October
(unlike the rest of the specs I'm working on), so that we can add  
the SQL

definition before last call (which I plan to do either Q4 this year or
early next year).

--
Ian Hickson   U+1047E) 
\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _ 
\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'-- 
(,_..'`-.;.'







Re: WebDatabase/WebStorage (was Re: Points of order on this WG)

2009-07-16 Thread Jonas Sicking
For what it's worth I don't think using the word Web in the name
makes the connection that this is *the* *only* specification for
storage for the web. I'll also point out that specs can be renamed at
any point in the future if it turns out that the name is confusing.

I also think the name of the spec is largely irrelevant.

That said, I don't think a name like SQLDatabase is a very good name
since there are lots of SQL database specifications and
implementations. Something like WebSQLDatabase would be better. IMHO.
But like I said, I think it's largely irrelevant.

/ Jonas

On Thu, Jul 16, 2009 at 9:34 AM, Nikunj R. Mehtanikunj.me...@oracle.com wrote:
 I would like to suggest that these specs be renamed to better reflect what
 they are about.

 For one, using the term Web in the title draws attention as the one (or the
 primary one). Secondly, it says nothing about the constructs offered. For
 example, WebDatabase suggests that this is *the* spec for structured
 storage, when, in fact, this group has argued in favor of multiple
 approaches, including one on B-tree databases that I have proposed.

 My suggestion is to rename the WebDatabase spec as the SQLDatabase spec.
 That way any other approach can be called the XXXDatabase spec.

 Similarly, with WebStorage, it is not clear what is the meaning of Web in
 the title, especially since we are currently left with just key-value
 storage. Since Web does nothing, except to distract and possibly mislead
 people into thinking that the spec covers all possible storage needs, I
 would suggest that the editor drop the word Web from the spec title. I also
 have a suggestion for the title - Key Value Storage. I do realize that this
 might be moot given that WebStorage has already gone through FPWD. Still, it
 does us no harm to at least rectify the situation now rather than going to
 CR with this name.

 Nikunj
 http://o-micron.blogspot.com



 On Jul 15, 2009, at 3:56 AM, Ian Hickson wrote:

 On Thu, 25 Jun 2009, Maciej Stachowiak wrote:

 On Jun 24, 2009, at 11:35 PM, Ian Hickson wrote:

 [...] (if anything, I think we should split Web Storage into two
 further specs [...]

 [...] I would prefer to see SQL Storage split out of the rest of Web
 Storage. We seem to have rough consensus and strong multilateral
 implementor interest on LocalStorage and SessionStorage, and they should
 be allowed to move forward on the standards track quickly. SQL Storage
 remains contentious, and only Apple and Google have shown strong
 implementor interest so far. And it has no technical tie to the other
 storage drafts.

 Done.

  http://dev.w3.org/html5/webstorage/
  http://dev.w3.org/html5/webdatabase/

 I'll probably not ask for Web Database to go to last call in October
 (unlike the rest of the specs I'm working on), so that we can add the SQL
 definition before last call (which I plan to do either Q4 this year or
 early next year).

 --
 Ian Hickson               U+1047E                )\._.,--,'``.    fL
 http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
 Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'







Re: WebDatabase/WebStorage (was Re: Points of order on this WG)

2009-07-16 Thread Nikunj R. Mehta

On Jul 16, 2009, at 1:18 PM, Jonas Sicking wrote:


Something like WebSQLDatabase would be better.


It may be irrelevant in the long run, but definitely worth a lot early  
on, IMHO. I like your name suggestion.


Nikunj



Re: Points of order on this WG

2009-07-15 Thread Ian Hickson
On Thu, 25 Jun 2009, Maciej Stachowiak wrote:
 On Jun 24, 2009, at 11:35 PM, Ian Hickson wrote:
  [...] (if anything, I think we should split Web Storage into two 
  further specs [...]
 
 [...] I would prefer to see SQL Storage split out of the rest of Web 
 Storage. We seem to have rough consensus and strong multilateral 
 implementor interest on LocalStorage and SessionStorage, and they should 
 be allowed to move forward on the standards track quickly. SQL Storage 
 remains contentious, and only Apple and Google have shown strong 
 implementor interest so far. And it has no technical tie to the other 
 storage drafts.

Done.

   http://dev.w3.org/html5/webstorage/
   http://dev.w3.org/html5/webdatabase/

I'll probably not ask for Web Database to go to last call in October 
(unlike the rest of the specs I'm working on), so that we can add the SQL 
definition before last call (which I plan to do either Q4 this year or 
early next year).

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'



Re: Points of order on this WG

2009-07-15 Thread Nikunj R. Mehta

The abstract still states:
[[
This specification defines two APIs for persistent data storage in Web  
clients: one for accessing key-value pair data and another for  
accessing structured data.

]]
Nikunj
http://o-micron.blogspot.com



On Jul 15, 2009, at 3:56 AM, Ian Hickson wrote:


On Thu, 25 Jun 2009, Maciej Stachowiak wrote:

On Jun 24, 2009, at 11:35 PM, Ian Hickson wrote:

[...] (if anything, I think we should split Web Storage into two
further specs [...]


[...] I would prefer to see SQL Storage split out of the rest of Web
Storage. We seem to have rough consensus and strong multilateral
implementor interest on LocalStorage and SessionStorage, and they  
should
be allowed to move forward on the standards track quickly. SQL  
Storage

remains contentious, and only Apple and Google have shown strong
implementor interest so far. And it has no technical tie to the other
storage drafts.


Done.

  http://dev.w3.org/html5/webstorage/
  http://dev.w3.org/html5/webdatabase/

I'll probably not ask for Web Database to go to last call in October
(unlike the rest of the specs I'm working on), so that we can add  
the SQL

definition before last call (which I plan to do either Q4 this year or
early next year).

--
Ian Hickson   U+1047E) 
\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _ 
\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'-- 
(,_..'`-.;.'







Re: Berkeley DB license (was Re: Points of order on this WG)

2009-07-07 Thread Chris Anderson
On Fri, Jun 26, 2009 at 5:36 PM, Maciej Stachowiakm...@apple.com wrote:

 On Jun 26, 2009, at 3:46 PM, Nikunj R. Mehta wrote:

 FWIW, I came across two pieces about Oracle's open source licensing of
 Berkeley DB that might help clear the air around the licensing issues.

 First, Oracle's license [1] is word-for-word identical to the erstwhile
 SleepyCat license [2]. Secondly, SleepyCat license qualifies as a free
 software license, and is compatible with the GNU General Public License.
 [3]. Thirdly, the license is OSI approved [4].

 I am not sure if this resolves issues. It would help if you had comments
 on the above so that I can keep that in my context while discussing with our
 legal staff.

 The issue I see with using Berkeley DB for implementation (which I think is
 only a side issue to design of the spec itself) is as follows: Clause 3 of
 the first license (the one with the Oracle copyright notice) appears to have
 stricter source release requirements than LGPL. It's not clear to me what
 exactly the scope of the requirement is, but it doesn't seem to have the
 dynamic linking or relinkable object file exceptions of LGPL. That would be
 a problem for projects like WebKit or Gecko that don't want to impost any
 constraints that go beyond the LGPL in their license terms.


Probably speaking out of turn, but on the larger point that there are
non-BDB implementations that are well suited for the browser
environment. For example, Tokyo Cabinet is a C library for B-tree
databases, licensed under the LGPL.

http://tokyocabinet.sourceforge.net/spex-en.html

TC is far from the only clearly licensed storage-engine with lots of
users. Any of them (including BDB) would make a good foundation for
implementing a CouchDB-like replication system in JavaScript. As a
web-developer I would really get a lot out of serious native B-tree
API. The nice thing is that a B-tree API is so simple it'd be easy for
vendors to use any number of engines and still achieve the same spec.

Chris

 I don't want to start a huge debate over this, I just wanted to clarify the
 issue I see.

 Regards,
 Maciej






-- 
Chris Anderson
http://jchrisa.net
http://couch.io



Re: Points of order on this WG

2009-07-04 Thread Maciej Stachowiak


On Jul 4, 2009, at 4:56 AM, Charles McCathieNevile wrote:

On Sat, 27 Jun 2009 03:06:21 +0200, Maciej Stachowiak  
m...@apple.com wrote:




On Jun 26, 2009, at 10:51 AM, Nikunj R. Mehta wrote:

Secondly, Oracle proposes adding request interception and  
programmable http cache to the WG's charter. Oracle will provide  
resources for editing and reviewing proposals for all three  
deliverables.


We already have a broad charter and quite a few deliverables.  
Before we add more to the charter, I'd like to understand the  
degree of interest in request interception and programmable http  
cache. Is anyone besides Oracle interested in pursuing this  
technology? Are any implementors interested in implementing it?


We are potentially interested - i.e. we want to see how the spec  
comes out first. Given that this is in the scope of existing  
deliverables, and given taht Oracle are providing the resources to  
edit it, I see no reason to simply stand in their way. If there  
turns out not to be interst, then it will have a tough time getting  
to Rec. There are specs people claim to be very interested in, but  
are not prpared to put ay resources into moving forward - so clearly  
general surveys of interest are a poor way of understanding reality.


I think a B-Tree style storage API would clearly be in scope of  
existing deliverables. However, it's not clear to me that Oracles's  
other proposals (programmable http cache, request interception) are.  
As I understand it, those technologies don't really relate to storage,  
or even networking as such, but are meant to serve a role similar to  
HTML5's Application Cache feature. Also, Nikunj's request was to add  
these things to the charter, from which I infered the charter doesn't  
already obviously cover them.


It's hard for me to evaluate Apple's interest in these technologies  
without seeing a concrete proposal for these features, so I definitely  
don't object to a draft. But I don't see justification for changing  
the charter at this time.


Regards,
Maciej




Re: Points of order on this WG

2009-07-04 Thread Charles McCathieNevile
On Sat, 04 Jul 2009 16:03:48 +0200, Maciej Stachowiak m...@apple.com  
wrote:



On Jul 4, 2009, at 4:56 AM, Charles McCathieNevile wrote:


We are potentially interested - i.e. we want to see how the spec  
comes out first. Given that this is in the scope of existing  
deliverables, and given taht Oracle are providing the resources to edit  
it, I see no reason to simply stand in their way.


I think a B-Tree style storage API would clearly be in scope of existing  
deliverables. However, it's not clear to me that Oracles's other  
proposals (programmable http cache, request interception) are. As I  
understand it, those technologies don't really relate to storage, or  
even networking as such, but are meant to serve a role similar to  
HTML5's Application Cache feature. Also, Nikunj's request was to add  
these things to the charter, from which I infered the charter doesn't  
already obviously cover them.


As I noted in my earlier message to Nikunj, as far as we (chairs, staff  
contacts and domain lead) can see the features *do* relate to storage, and  
are in scope of the charter as is.


So it's OK, you don't need to worry about the charter changing.

cheers

Chaals

--
Charles McCathieNevile  Opera Software, Standards Group
je parle français -- hablo español -- jeg lærer norsk
http://my.opera.com/chaals   Try Opera: http://www.opera.com



Re: Points of order on this WG

2009-07-04 Thread Nikunj R. Mehta

On Jul 4, 2009, at 7:43 AM, Charles McCathieNevile wrote:

On Sat, 04 Jul 2009 16:03:48 +0200, Maciej Stachowiak  
m...@apple.com wrote:



On Jul 4, 2009, at 4:56 AM, Charles McCathieNevile wrote:


We are potentially interested - i.e. we want to see how the spec  
comes out first. Given that this is in the scope of existing  
deliverables, and given taht Oracle are providing the resources to  
edit it, I see no reason to simply stand in their way.


I think a B-Tree style storage API would clearly be in scope of  
existing deliverables. However, it's not clear to me that Oracles's  
other proposals (programmable http cache, request interception)  
are. As I understand it, those technologies don't really relate to  
storage, or even networking as such, but are meant to serve a role  
similar to HTML5's Application Cache feature. Also, Nikunj's  
request was to add these things to the charter, from which I  
infered the charter doesn't already obviously cover them.


I disagree that neither relate to storage or networking. Oracle's  
proposals are about offline storage - programmable http cache is  
clearly offline storage and request interception is about offline  
processing and both involve networking. This is why we brought the  
proposal to Web Apps WG. I have explained why programmable http cache  
is different from HTML5 ApplicationCache [1].




As I noted in my earlier message to Nikunj, as far as we (chairs,  
staff contacts and domain lead) can see the features *do* relate to  
storage, and are in scope of the charter as is.


So it's OK, you don't need to worry about the charter changing.


It is good to know that the charter is based on scope rather than  
deliverables because, otherwise, every new proposal (even as an  
alternative approach) would need a charter change. Thanks for  
clarifying this.


On Jul 4, 2009, at 4:56 AM, Charles McCathieNevile wrote:

On Sat, 27 Jun 2009 03:06:21 +0200, Maciej Stachowiak  
m...@apple.com wrote:




On Jun 26, 2009, at 10:51 AM, Nikunj R. Mehta wrote:

Secondly, Oracle proposes adding request interception and  
programmable http cache to the WG's charter. Oracle will provide  
resources for editing and reviewing proposals for all three  
deliverables.


We already have a broad charter and quite a few deliverables.  
Before we add more to the charter, I'd like to understand the  
degree of interest in request interception and programmable http  
cache. Is anyone besides Oracle interested in pursuing this  
technology? Are any implementors interested in implementing it?


We are potentially interested - i.e. we want to see how the spec  
comes out first.


On Jul 4, 2009, at 7:03 AM, Maciej Stachowiak wrote:

It's hard for me to evaluate Apple's interest in these technologies  
without seeing a concrete proposal for these features, so I  
definitely don't object to a draft.



Although Oracle proposal on request interception and programmable http  
cache (doesn't include B-tree) was made public and distributed on this  
ML in April [2], it has not been made in to a formal member  
submission. I would understand if you are waiting for that to happen,  
but you can already see how concrete the proposal is. I appreciate  
your patience for the member submission to happen since that is a long  
winded process.


I have received several public requests for HTTP interception in  
Mozilla Firefox [3]. This may not be a scientific exercise, but serves  
to indicate public interest beyond Oracle. Given that every browser  
has long offered a proprietary way to do request interception, it may  
be appropriate to consider offering a standardized way of doing so.


Nikunj
http://o-micron.blogspot.com

[1] http://lists.w3.org/Archives/Public/public-webapps/2009AprJun/0358.html
[2] http://lists.w3.org/Archives/Public/public-webapps/2009AprJun/0341.html
[3] 
http://o-micron.blogspot.com/2009/02/overriding-default-http-behavior-in.html#comments



Re: Points of order on this WG

2009-06-27 Thread Nikunj R. Mehta
A member submission was already made [1] that describes a concrete  
proposal and several examples. I would appreciate feedback on it.


Nikunj
http://o-micron.blogspot.com

[1] http://lists.w3.org/Archives/Public/public-webapps/2009AprJun/0341.html

On Jun 27, 2009, at 9:02 AM, Robin Berjon wrote:


On Jun 27, 2009, at 03:06 , Maciej Stachowiak wrote:

On Jun 26, 2009, at 10:51 AM, Nikunj R. Mehta wrote:
Secondly, Oracle proposes adding request interception and  
programmable http cache to the WG's charter. Oracle will provide  
resources for editing and reviewing proposals for all three  
deliverables.


We already have a broad charter and quite a few deliverables.  
Before we add more to the charter, I'd like to understand the  
degree of interest in request interception and programmable http  
cache. Is anyone besides Oracle interested in pursuing this  
technology? Are any implementors interested in implementing it?


I'd suggest that a good way of assessing this would be to base  
discussion on a Member Submission featuring concrete examples;  
otherwise asking people if they're interested is unlikely to be very  
conclusive either way.


--
Robin Berjon - http://berjon.com/
   Feel like hiring me? Go to http://robineko.com/










Re: Points of order on this WG

2009-06-27 Thread Nikunj R. Mehta

On Jun 26, 2009, at 6:07 PM, Maciej Stachowiak wrote:



On Jun 26, 2009, at 3:33 PM, Nikunj R. Mehta wrote:

I have a tutorial available to understand how one can use Berkeley  
DB to store data with multiple fields [1]. If you are only  
interested in understanding how to do look up by one or more of  
them, please skip to slide 51.


If this doesn't help, I can write up another explanation for the  
issues that are outstanding.


It sounds like the answer is to make multiple tables with additional  
tables allowing secondary keys to map to the master key. Did I  
understand that correctly? (I'm not sure I got the right idea from  
the pictures).


That is correct. Any field that you want to use for fast lookup will  
need an index. In Berkeley DB an index is a secondary database, i.e.,  
whose values are updated atomically with the values stored in the main  
database. If there are multiple fields for looking up a database  
record, then each of those would have a secondary database.




Can you clarify how a Berkley DB style API would differ from  
LocalStorage in interface or capabilities? What would it be able to  
do that LocalStorage can't?


There are two styles we could use for this API - a lower-level B-tree  
API, or a higher-level object persistence API that is built on top of  
B-tree API. The former would be powerful, but tedious for JavaScript  
developers, if they want to manage lots of different key fields in  
objects. However, here I am focusing solely on the lower-level API.


There are many differences between the two:

1. LocalStorage doesn't allow key searching
2. LocalStorage doesn't allow duplicate values for a key
3. LocalStorage doesn't allow look up by one or more value parts
4. LocalStorage doesn't support transactions

To see details of the difference, let's start with looking up an item,  
by exact key match or by key prefix match:


value = database.get(key)
key_value = database.search(key_prefix)

Here key_value would be of the form:

{ key: some key value, value: some_object_or_null }

Alternately, if I want to retrieve multiple items, I would obtain a  
Cursor:


cursor = database.getCursor()

Once the cursor is available, I can initialize it by placing a  
starting point in the cursor in one of several ways:


key_value = cursor.searchKey(key)
key_value = cursor.searchKeyRange(key_prefix)
key_value = cursor.searchBoth(key, value)
key_value = cursor.searchBothRange(key, value_prefix)

I can step through the cursor with the following set of mechanisms:

key_value = cursor.getPrev()
key_value = cursor.getNext()
key_value = cursor.getFirst()
key_value = cursor.getLast()
key_value = cursor.getCurrent()
key_value = cursor.getNextDup()
key_value = cursor.getNextNoDup()
key_value = cursor.getPrevDup()
key_value = cursor.getPrevNoDup()

A fast count of the records in the database can be obtained via

count = cursor.count

Multiple cursors can be joined to AND multiple search criteria using a  
JoinCursor


cursor = database.join(cursors)

Or I can obtained a sorted cursor as:

cursor = database.join(cursors, true)

Only two operations are allowed on a JoinCursor:

key_value = cursor.getNext()
key = cursor.getNextKey()

Mutation operations can be performed similar to LocalStorage:

status = database.put(key, value)
status = database.delete(key)

Additionally, I can also deal with duplicates as:

status = database.putNoDupData(key, value)
status = database.putNoOverwrite(key, value)

Databases also provide a sequence in order to generate a sequence of  
monotonically increasing values


sequence = database.getSequence()
sequence = database.getSequence(name)

A sequence can generate values by:

value = sequence.get(delta)

A database can be obtained using a DOM mechanism such as:

environment = window.storageEnvironment(name)
database = environment.database(name)

Optionally, one of several supported options may be provided on this  
call. For example:


database = environment.database(name, { read_only: false, sorted_dups:  
true })


A secondary database can also be created from an environment as:

secondary = environment.secondaryDatabase(name, primary, keyCreator)

The keyCreator itself is a JS function of the following kind:

function secKeyCreator(secondary, key, data) {
   return result;
}

More options can also be specified when creating a secondary database:

secondary = environment.secondaryDatabase(name, primary, keyCreator,  
{fk_delete_action: 0, null_value: null})


A transaction may be used in conjunction with certain operations:

value = database.get(key, txn)
sequence = database.getSequence(txn)
value = sequence.get(delta, txn)
status = database.put(key, value, txn)

To obtain a transaction, we start from the environment

txn = environment.beginTransaction() or
txn = environment.beginTransaction(parent)

Once a transaction is complete, two operations are possible:

txn.abort()
txn.commit()

We may have to explore an async call back on this API since the  

Re: Points of order on this WG

2009-06-26 Thread Robin Berjon

On Jun 26, 2009, at 07:49 , Maciej Stachowiak wrote:
It's also not clear to me if a BDB-level API is sufficient for  
developer needs.


That's something that we should nail down early this time around. I  
tend to think that sufficient for developer needs means good enough  
that one can implement something like Persevere / MongoDB / KiokuDB on  
top of it, and several others have made similar comments. I'm unsure  
as to how exactly that translates into requirements without tying us  
to the implementation strategy of a couple products.


--
Robin Berjon - http://berjon.com/
Feel like hiring me? Go to http://robineko.com/








Re: Points of order on this WG

2009-06-26 Thread Anne van Kesteren
On Fri, 26 Jun 2009 01:20:43 +0200, Maciej Stachowiak m...@apple.com  
wrote:
I strongly agree on these points. I would prefer to see SQL Storage  
split out of the rest of Web Storage. We seem to have rough consensus  
and strong multilateral implementor interest on LocalStorage and  
SessionStorage, and they should be allowed to move forward on the  
standards track quickly. SQL Storage remains contentious, and only Apple  
and Google have shown strong implementor interest so far. And it has no  
technical tie to the other storage drafts. I also think Nikunj's  
proposal should be yet a third separate orthogonal draft.


FWIW, Opera is implementing SQL storage too.


--
Anne van Kesteren
http://annevankesteren.nl/



RE: Points of order on this WG

2009-06-26 Thread Marcin Hanclik
+1
Stable specification moving faster in the standards track will definitely bring 
more implementations.

Marcin Hanclik
ACCESS Systems Germany GmbH
Tel: +49-208-8290-6452  |  Fax: +49-208-8290-6465
Mobile: +49-163-8290-646
E-Mail: marcin.hanc...@access-company.com

-Original Message-
From: public-webapps-requ...@w3.org [mailto:public-webapps-requ...@w3.org] On 
Behalf Of Anne van Kesteren
Sent: Friday, June 26, 2009 9:23 AM
To: Maciej Stachowiak; Ian Hickson
Cc: Doug Schepers; Nikunj R. Mehta; public-webapps WG; Charles McCathieNevile; 
Arthur Barstow; Jeff Mischkinsky
Subject: Re: Points of order on this WG

On Fri, 26 Jun 2009 01:20:43 +0200, Maciej Stachowiak m...@apple.com
wrote:
 I strongly agree on these points. I would prefer to see SQL Storage
 split out of the rest of Web Storage. We seem to have rough consensus
 and strong multilateral implementor interest on LocalStorage and
 SessionStorage, and they should be allowed to move forward on the
 standards track quickly. SQL Storage remains contentious, and only Apple
 and Google have shown strong implementor interest so far. And it has no
 technical tie to the other storage drafts. I also think Nikunj's
 proposal should be yet a third separate orthogonal draft.

FWIW, Opera is implementing SQL storage too.


--
Anne van Kesteren
http://annevankesteren.nl/




Access Systems Germany GmbH
Essener Strasse 5  |  D-46047 Oberhausen
HRB 13548 Amtsgericht Duisburg
Geschaeftsfuehrer: Michel Piquemal, Tomonori Watanabe, Yusuke Kanda

www.access-company.com

CONFIDENTIALITY NOTICE
This e-mail and any attachments hereto may contain information that is 
privileged or confidential, and is intended for use only by the
individual or entity to which it is addressed. Any disclosure, copying or 
distribution of the information by anyone else is strictly prohibited.
If you have received this document in error, please notify us promptly by 
responding to this e-mail. Thank you.


Re: Points of order on this WG

2009-06-26 Thread Ian Hickson
On Fri, 26 Jun 2009, Doug Schepers wrote:
 
 The plan of record would be to split out the SQL Storage section into 
 its own spec, with an alternate spec edited by Nikunj, and to publish an 
 updated draft of Web Storage that points to both those other drafts. 
 This way, all parts of the web storage deliverable are put on a level 
 playing field to be judged on their individual merits, and subject to 
 being edited and updated individually.

I've added split the Web Storage spec to my list of things to do and 
will hopefully get to that within the next few weeks. It shouldn't be much 
work.

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'



Re: Points of order on this WG

2009-06-26 Thread Maciej Stachowiak


On Jun 26, 2009, at 12:23 AM, Anne van Kesteren wrote:

On Fri, 26 Jun 2009 01:20:43 +0200, Maciej Stachowiak  
m...@apple.com wrote:
I strongly agree on these points. I would prefer to see SQL Storage  
split out of the rest of Web Storage. We seem to have rough  
consensus and strong multilateral implementor interest on  
LocalStorage and SessionStorage, and they should be allowed to move  
forward on the standards track quickly. SQL Storage remains  
contentious, and only Apple and Google have shown strong  
implementor interest so far. And it has no technical tie to the  
other storage drafts. I also think Nikunj's proposal should be yet  
a third separate orthogonal draft.


FWIW, Opera is implementing SQL storage too.


That's great news! Having multiple independent implementations will, I  
hope, provide more reason to advance the spec.


However, I still think SQL storage should be split from LocalStorage/ 
SessionStorage, since there is no technical reason for them to be tied  
together, and they enjoy different levels of consensus and implementor  
support.


Regards,
Maciej




Re: Points of order on this WG

2009-06-26 Thread Robin Berjon

On Jun 26, 2009, at 10:54 , Maciej Stachowiak wrote:
I don't think the Web Storage draft (I assume by this you mean the  
remaining draft that would define LocalStorage and SessionStorage)  
needs to link to either of the other drafts.


It is customary, when something is split out of a draft, to link to it  
so that people can find it using their old bookmarks. I think that's  
all that Doug meant here — not linking in the normative sense.


I should add that I still think SQL Storage is a good technical  
solution to the problem of structured client-side storage. Web  
developers who are specifically targeting mobile devices, or in  
particular iPhone, have given extremely positive feedback about both  
LocalStorage and SQL Storage, as well as the HTML5 Application  
Cache. On general-purpose Web sites, of course, uptake is limited by  
the lack of other implementations so far. But Web developers seem  
positive about it as a technology, based on feedback from  
presentations. All of this makes me doubt that a fundamentally  
different model for structured storage is needed or would be  
significantly better.


Well, the advantage of SQL is that developers know it, and have been  
wanting something like that on the client for ages (I know I have).  
There are non-negligible issues however in defining it interoperably.  
Also, I think there's a possibility that it's popular with developers  
simply because it's the only option. That's why ideally I'd like to  
give us the leeway to experiment a little around various options  
before committing completely to SQL.


--
Robin Berjon - http://berjon.com/
Feel like hiring me? Go to http://robineko.com/




Re: Points of order on this WG

2009-06-26 Thread Anne van Kesteren
On Fri, 26 Jun 2009 10:43:10 +0200, Maciej Stachowiak m...@apple.com  
wrote:

On Jun 26, 2009, at 12:23 AM, Anne van Kesteren wrote:

FWIW, Opera is implementing SQL storage too.


That's great news! Having multiple independent implementations will, I  
hope, provide more reason to advance the spec.


However, I still think SQL storage should be split from LocalStorage/ 
SessionStorage, since there is no technical reason for them to be tied  
together, and they enjoy different levels of consensus and implementor  
support.


Yeah, that seems fine. That way localStorage/sessionStorage can move ahead  
while Web SQL is properly defined.



--
Anne van Kesteren
http://annevankesteren.nl/



Re: Points of order on this WG

2009-06-26 Thread Anne van Kesteren
On Fri, 26 Jun 2009 10:09:43 +0200, Marcin Hanclik  
marcin.hanc...@access-company.com wrote:

+1
Stable specification moving faster in the standards track will  
definitely bring more implementations.


To be clear, when we decided to implement this feature it was still part  
of the HTML5 specification. Where it is specified did not really have an  
impact on whether we would do it or not. I would also be somewhat hesitant  
to say that separate drafts necessarily move faster.



--
Anne van Kesteren
http://annevankesteren.nl/



RE: Points of order on this WG

2009-06-26 Thread Marcin Hanclik
Where it is specified did not really have an
impact on whether we would do it or not.
Agreed. The place does not matter. Stability does, IMHO.

I would also be somewhat hesitant
to say that separate drafts necessarily move faster.
At least there is a chance.
It seems more feasible to implement a set of interfaces one by one - if they 
are independent - then to do it all at once.

Separation on the spec level may also result in better specs, since the 
interface interdependencies would be avoided for practical reasons.

Thanks,
Marcin

Marcin Hanclik
ACCESS Systems Germany GmbH
Tel: +49-208-8290-6452  |  Fax: +49-208-8290-6465
Mobile: +49-163-8290-646
E-Mail: marcin.hanc...@access-company.com

-Original Message-
From: Anne van Kesteren [mailto:ann...@opera.com]
Sent: Friday, June 26, 2009 11:57 AM
To: Marcin Hanclik; Maciej Stachowiak; Ian Hickson
Cc: Doug Schepers; Nikunj R. Mehta; public-webapps WG; Charles McCathieNevile; 
Arthur Barstow; Jeff Mischkinsky
Subject: Re: Points of order on this WG

On Fri, 26 Jun 2009 10:09:43 +0200, Marcin Hanclik
marcin.hanc...@access-company.com wrote:
 +1
 Stable specification moving faster in the standards track will
 definitely bring more implementations.

To be clear, when we decided to implement this feature it was still part
of the HTML5 specification. Where it is specified did not really have an
impact on whether we would do it or not. I would also be somewhat hesitant
to say that separate drafts necessarily move faster.


--
Anne van Kesteren
http://annevankesteren.nl/



Access Systems Germany GmbH
Essener Strasse 5  |  D-46047 Oberhausen
HRB 13548 Amtsgericht Duisburg
Geschaeftsfuehrer: Michel Piquemal, Tomonori Watanabe, Yusuke Kanda

www.access-company.com

CONFIDENTIALITY NOTICE
This e-mail and any attachments hereto may contain information that is 
privileged or confidential, and is intended for use only by the
individual or entity to which it is addressed. Any disclosure, copying or 
distribution of the information by anyone else is strictly prohibited.
If you have received this document in error, please notify us promptly by 
responding to this e-mail. Thank you.


Re: Points of order on this WG

2009-06-26 Thread Nikunj R. Mehta
Please don't skimp on due diligence before making such strong  
statements. It creates unnecessary friction. More details below.


On Jun 25, 2009, at 10:49 PM, Maciej Stachowiak wrote:


On Jun 25, 2009, at 5:23 PM, Jonas Sicking wrote:


On Thu, Jun 25, 2009 at 12:42 PM, Nikunj R.
Mehtanikunj.me...@oracle.com wrote:

On Jun 24, 2009, at 11:35 PM, Ian Hickson wrote:
I have proposed to Mozilla a solution that provides access to an  
organized
key-value database such as that provided in the (open source)  
Berkeley DB.
In essence, a database is a simple B-tree - it keeps keys sorted  
and permits
duplicate keys. It is able to find a key or a key prefix, which  
enables

efficient searching through a very large number of items. If we are
ambitious (i.e., need more functionality), we can add indexes and  
joins to
this spec. There is unlikely to be an interoperability nightmare,  
such as
that which is the most likely outcome with SQL, it does not  
mandate the use
of any query language, and there is at least 40 years of  
experience with it,
including in highly resource-constrained environments. (There are  
200

million copies of Berkeley DB in deployment [1]).


This is what so far seems like the best solution to me. I.e.  
something

that is more backend-ish than what a SQL API would be.

I'd love to see something that allows you to implement a SQL API on
top of. But that also allows you to implement something like MungoDB
very effectively.


I doubt you can efficiently or correctly implement SQL on top of a  
Berkeley-DB-style API.


If you are worrying, that's great; we can address your worries.

Just take a look at the top two hits for MySQL Berkeley DB. The  
first one talks about MySQL with the BDB storage engine - so yes, you  
can correctly implement SQL on top of Berkeley DB [1]. The second one  
talks about MySQL discontinuing BDB support due to extra-technical  
reasons, so there are no efficiency reasons either [2].




As a side note, it should be noted Berkeley DB itself could not be  
used by WebKit or Gecko to implement the spec, because even though  
it is open source, the license is not compatible with the LGPL. It  
seems unlikely that non-open-source browser engines could use it  
either, unless they are willing to pay Oracle for a commercial  
license. So it's very important for the spec to be clear and  
detailed, because everyone will have to implement it from scratch.


Huh? what? I hope you had read Oracle's BDB license document [3] and  
open source FAQ [4]. IANAL, but I can get answers for your specific  
concerns in the context of open source Berkeley DB. AFAICT, someone  
like Mozilla would not face any trouble with the open source license  
of Berkeley DB. YMMV.




It's also not clear to me if a BDB-level API is sufficient for  
developer needs. As I understand it, it's basically a giant  
dictionary with unstructured keys and values. So it's not providing  
much over LocalStorage, except for prefix matching and the ability  
to hold large amounts of records or records that are individually  
large. There's no way to efficiently query by one of several fields,  
as I understand it.


I trust that you are relatively new to storing data with B-trees. They  
are at the heart of Oracle's indices so efficiency is out of question.  
If you are wondering how can people store complex data items with  
multiple fields and repeating values, look at Berkeley DB Java  
Edition, which supports the EJB 3 persistence model [5]. FYI, there is  
no significant difference between the APIs of BDB Java Edition and the  
original BDB. They also have identical licensing requirements.


[1] http://dev.mysql.com/doc/refman/5.0/en/bdb-storage-engine.html
[2] http://www.linux.com/archive/articles/56835
[3] 
http://www.oracle.com/technology/software/products/berkeley-db/htdocs/oslicense.html
[4] 
http://www.oracle.com/technology/software/products/berkeley-db/htdocs/licensing.html
[5] http://www.oracle.com/technology/products/berkeley-db/je/index.html



Re: Points of order on this WG

2009-06-26 Thread Nikunj R. Mehta

On Jun 25, 2009, at 4:25 PM, Maciej Stachowiak wrote:



On Jun 25, 2009, at 12:42 PM, Nikunj R. Mehta wrote:



I think Nikunj's proposal definitely is worthy of being persued,  
just like
the working group is persuing dozens of other proposals like XHR,  
CORS,
Selectors API, Workers, Server-Sent Events, Web Sockets, etc. I  
don't
believe it really fits into the Web Storage spec (if anything, I  
think we
should split Web Storage into two further specs, not add a third  
wholly
independent feature to it). However, I would definitely support an  
FPWD

publication of Nikunj's proposal, as I have for other proposals.


That is encouraging. I will be glad to edit an FPWD that includes B- 
tree, interception, and programmable cache, if the WG so prefers.




It seems to me that Berkley DB style database storage, and request  
interception / programmable cache are orthogonal ideas and should  
arguably be separate drafts. I would assume request interception and  
programmable cache are usable regardless of what client-side storage  
APIs are available, much as HTML5 Application Cache is independent  
of these APIs. If anything, it seems more closely related to  
AppCache than to any proposed storage solution.




I don't have a preference either way. Request interception and  
programmable cache belong in a single spec. We could put Structured  
storage in a separate spec on its own.



Regards,
Maciej





Re: Points of order on this WG

2009-06-26 Thread Nikunj R. Mehta

On Jun 25, 2009, at 5:23 PM, Jonas Sicking wrote:


On Thu, Jun 25, 2009 at 12:42 PM, Nikunj R.
Mehtanikunj.me...@oracle.com wrote:

On Jun 24, 2009, at 11:35 PM, Ian Hickson wrote:
I have proposed to Mozilla a solution that provides access to an  
organized
key-value database such as that provided in the (open source)  
Berkeley DB.
In essence, a database is a simple B-tree - it keeps keys sorted  
and permits
duplicate keys. It is able to find a key or a key prefix, which  
enables

efficient searching through a very large number of items. If we are
ambitious (i.e., need more functionality), we can add indexes and  
joins to
this spec. There is unlikely to be an interoperability nightmare,  
such as
that which is the most likely outcome with SQL, it does not mandate  
the use
of any query language, and there is at least 40 years of experience  
with it,

including in highly resource-constrained environments. (There are 200
million copies of Berkeley DB in deployment [1]).


This is what so far seems like the best solution to me. I.e. something
that is more backend-ish than what a SQL API would be.

I'd love to see something that allows you to implement a SQL API on
top of. But that also allows you to implement something like MungoDB
very effectively.


You could implement SQL API on top of Berkeley DB as some have in the  
past. I am not super confident that the whole thing can work out with  
JavaScript overhead, but that may be just my perception of JS. This  
may be one of those conclusions that can only be made after a painful  
implementation exercise.




Re: Points of order on this WG

2009-06-26 Thread Nikunj R. Mehta

On Jun 26, 2009, at 12:15 AM, Robin Berjon wrote:


On Jun 26, 2009, at 07:49 , Maciej Stachowiak wrote:
It's also not clear to me if a BDB-level API is sufficient for  
developer needs.


That's something that we should nail down early this time around. I  
tend to think that sufficient for developer needs means good  
enough that one can implement something like Persevere / MongoDB /  
KiokuDB on top of it, and several others have made similar comments.  
I'm unsure as to how exactly that translates into requirements  
without tying us to the implementation strategy of a couple products.


I agree. This is why I am making an attempt to write down requirements  
ahead of time. I would suggest formally publishing and taking comments  
on the requirements, so we can avoid trouble.


Nikunj
http://o-micron.blogspot.com




Re: Points of order on this WG

2009-06-26 Thread Nikunj R. Mehta

On Jun 26, 2009, at 12:56 AM, Doug Schepers wrote:


Hi, Folks-

Maciej Stachowiak wrote (on 6/25/09 7:20 PM):


On Jun 24, 2009, at 11:35 PM, Ian Hickson wrote:

I think Nikunj's proposal definitely is worthy of being persued,  
just

like
the working group is persuing dozens of other proposals like XHR,  
CORS,
Selectors API, Workers, Server-Sent Events, Web Sockets, etc. I  
don't
believe it really fits into the Web Storage spec (if anything, I  
think we
should split Web Storage into two further specs, not add a third  
wholly
independent feature to it). However, I would definitely support an  
FPWD

publication of Nikunj's proposal, as I have for other proposals.


I strongly agree on these points. I would prefer to see SQL Storage
split out of the rest of Web Storage. We seem to have rough consensus
and strong multilateral implementor interest on LocalStorage and
SessionStorage, and they should be allowed to move forward on the
standards track quickly. SQL Storage remains contentious, and only  
Apple
and Google have shown strong implementor interest so far. And it  
has no

technical tie to the other storage drafts. I also think Nikunj's
proposal should be yet a third separate orthogonal draft.


Art, Chaals, Mike, and I discussed this yesterday, and we agreed  
that this seems like the best solution.  Like the Widgets work, a  
deliverable doesn't necessarily have to be in a single spec, so we  
believe there is sufficient justification for this in the charter.


The plan of record would be to split out the SQL Storage section  
into its own spec, with an alternate spec edited by Nikunj, and to  
publish an updated draft of Web Storage that points to both those  
other drafts. This way, all parts of the web storage deliverable are  
put on a level playing field to be judged on their individual  
merits, and subject to being edited and updated individually.


Nikunj, would this suit you?  Does anyone else have any thoughts?


I would be pleased to edit an alternate spec for structured storage.  
After the charter snafu earlier in April, we discussed the need for  
WG's charter to state a desire to standardize structured storage (as  
opposed to limiting to SQL storage). Still it would be good if the  
charter clarifies this.


Secondly, Oracle proposes adding request interception and programmable  
http cache to the WG's charter. Oracle will provide resources for  
editing and reviewing proposals for all three deliverables.


That being said, I am really glad that the WG was able to arrive at a  
swift and positive conclusion on this matter. I want to take a moment  
and appreciate the help of all those who weighed in on Oracle's  
concerns and look forward to working together and constructively to  
remove the concerns.


Best regards,
Nikunj
http://o-micron.blogspot.com



Re: Points of order on this WG

2009-06-26 Thread Nikunj R. Mehta

On Jun 26, 2009, at 10:56 AM, Jeremy Orlow wrote:

On Fri, Jun 26, 2009 at 10:26 AM, Nikunj R. Mehta nikunj.me...@oracle.com 
 wrote:
Please don't skimp on due diligence before making such strong  
statements. It creates unnecessary friction. More details below.


Similarly, I'd ask you to make your points clearer and to read what  
others say more closely.  You didn't address Maciej's points very  
well, and I think they're definitely worth addressing.


I understand your point, even though I don't think I missed anything  
in Maciej's comments, unless you want me to give sentence by sentence  
and word by word clarifications. Still, I can try one more time. If I  
miss this time, it is not intentional, and you can just ask me to  
clarify.




On Jun 25, 2009, at 10:49 PM, Maciej Stachowiak wrote:

On Jun 25, 2009, at 5:23 PM, Jonas Sicking wrote:

On Thu, Jun 25, 2009 at 12:42 PM, Nikunj R.
Mehtanikunj.me...@oracle.com wrote:
On Jun 24, 2009, at 11:35 PM, Ian Hickson wrote:
I have proposed to Mozilla a solution that provides access to an  
organized
key-value database such as that provided in the (open source)  
Berkeley DB.
In essence, a database is a simple B-tree - it keeps keys sorted and  
permits
duplicate keys. It is able to find a key or a key prefix, which  
enables

efficient searching through a very large number of items. If we are
ambitious (i.e., need more functionality), we can add indexes and  
joins to
this spec. There is unlikely to be an interoperability nightmare,  
such as
that which is the most likely outcome with SQL, it does not mandate  
the use
of any query language, and there is at least 40 years of experience  
with it,

including in highly resource-constrained environments. (There are 200
million copies of Berkeley DB in deployment [1]).

This is what so far seems like the best solution to me. I.e. something
that is more backend-ish than what a SQL API would be.

I'd love to see something that allows you to implement a SQL API on
top of. But that also allows you to implement something like MungoDB
very effectively.

I doubt you can efficiently or correctly implement SQL on top of a  
Berkeley-DB-style API.


If you are worrying, that's great; we can address your worries.

Just take a look at the top two hits for MySQL Berkeley DB. The  
first one talks about MySQL with the BDB storage engine - so yes,  
you can correctly implement SQL on top of Berkeley DB [1]. The  
second one talks about MySQL discontinuing BDB support due to extra- 
technical reasons, so there are no efficiency reasons either [2].




As a side note, it should be noted Berkeley DB itself could not be  
used by WebKit or Gecko to implement the spec, because even though  
it is open source, the license is not compatible with the LGPL. It  
seems unlikely that non-open-source browser engines could use it  
either, unless they are willing to pay Oracle for a commercial  
license. So it's very important for the spec to be clear and  
detailed, because everyone will have to implement it from scratch.


Huh? what? I hope you had read Oracle's BDB license document [3] and  
open source FAQ [4].


This is the type of thing I'd expect you to say had those links  
clearly stated GPL, LGPL, etc compatibility.  Am I missing it?  
Because I don't see anything that makes it clear.


Oracle's license is what it is. I don't see why I should commit to  
offering it under GPL or LGPL.




IANAL, but I can get answers for your specific concerns in the  
context of open source Berkeley DB. AFAICT, someone like Mozilla  
would not face any trouble with the open source license of Berkeley  
DB. YMMV.


What do you mean by your mileage may vary?  Are you saying that  
perhaps it is exactly as Maciej said?


If you have a closed source browser then Berkeley DB will require  
commercial licensing. If your product is open source, then Berkeley DB  
is free for you. If you are somewhere in between, then you need to ask  
your lawyers. If you need something from Oracle, then by all means I  
can help you with that.


Before believing Maciej, you might do well to read the links I sent in  
my previous email, or ask your lawyers to review the license. I  
understand that it is more work for you, but Oracle's at least helping  
to the extent it can.







It's also not clear to me if a BDB-level API is sufficient for  
developer needs. As I understand it, it's basically a giant  
dictionary with unstructured keys and values. So it's not providing  
much over LocalStorage, except for prefix matching and the ability  
to hold large amounts of records or records that are individually  
large. There's no way to efficiently query by one of several fields,  
as I understand it.


I trust that you are relatively new to storing data with B-trees.  
They are at the heart of Oracle's indices so efficiency is out of  
question. If you are wondering how can people store complex data  
items with multiple fields and repeating values, look at 

Re: Points of order on this WG

2009-06-26 Thread Jonas Sicking
On Fri, Jun 26, 2009 at 11:16 AM, Nikunj R.
Mehtanikunj.me...@oracle.com wrote:
 As a side note, it should be noted Berkeley DB itself could not be used
 by WebKit or Gecko to implement the spec, because even though it is open
 source, the license is not compatible with the LGPL. It seems unlikely that
 non-open-source browser engines could use it either, unless they are 
 willing
 to pay Oracle for a commercial license. So it's very important for the spec
 to be clear and detailed, because everyone will have to implement it from
 scratch.

 Huh? what? I hope you had read Oracle's BDB license document [3] and open
 source FAQ [4].

 This is the type of thing I'd expect you to say had those links clearly
 stated GPL, LGPL, etc compatibility.  Am I missing it? Because I don't see
 anything that makes it clear.

 Oracle's license is what it is. I don't see why I should commit to offering
 it under GPL or LGPL.

Note that mozilla has since long made a commitment not to ship code
that is not compatible with all of GPL, LGPL *and* MPL. So unless the
BDB license is compatible with all those three we couldn't use BDB.

That is what Maciej was saying, and it seems you are confirming that?

Open sources licenses are complicated.

/ Jonas



Re: Points of order on this WG

2009-06-26 Thread L. David Baron
On Friday 2009-06-26 11:27 -0700, Jonas Sicking wrote:
 Note that mozilla has since long made a commitment not to ship code
 that is not compatible with all of GPL, LGPL *and* MPL. So unless the
 BDB license is compatible with all those three we couldn't use BDB.

I think our (Mozilla's) requirement is actually slightly stronger
than license compatibility, at least as defined by
http://en.wikipedia.org/wiki/License_compatibility .  Rather, I
think we require that the licenses don't impose any restrictions in
addition to those imposed by the MPL, the LGPL, or the GPL.  (In
other words, that the license is less restrictive than *each* of
those licenses.)

For what it's worth, the license document in question, located at
http://www.oracle.com/technology/software/products/berkeley-db/htdocs/oslicense.html
appears to suggest that the files in the source code are covered
under three different licenses (although it's not entirely clear to
me what is meant by the concatenation of three licenses, my initial
guess is that it means different parts are covered under different
licenses).  The second and third given appear to me to be the
three-part BSD license (varying by whether the copyright holder is
the UC Regents or Harvard University).  If my quick glance is
correct and this is identical to the three-part BSD license, then I
suspect the second and third licenses are unlikely to be a problem
for Mozilla; we already include code licensed under the three-part
BSD license (see http://opensource.org/licenses/bsd-license.php ).

The first license, on the other hand, appears to be a modified
version of the BSD license, with the third claused replaced by an
entirely different one.  I don't recognize this clause, and I
suspect it would require legal analysis to determine whether it's
less restrictive than the MPL, LGPL, and GPL.  (Though the part that
says For an executable file, complete source code means the source
code for all modules it contains. seems pretty restrictive to my
untrained eyes.)

-David

-- 
L. David Baron http://dbaron.org/
Mozilla Corporation   http://www.mozilla.com/



Re: Points of order on this WG

2009-06-26 Thread Maciej Stachowiak


On Jun 26, 2009, at 10:26 AM, Nikunj R. Mehta wrote:





As a side note, it should be noted Berkeley DB itself could not be  
used by WebKit or Gecko to implement the spec, because even though  
it is open source, the license is not compatible with the LGPL. It  
seems unlikely that non-open-source browser engines could use it  
either, unless they are willing to pay Oracle for a commercial  
license. So it's very important for the spec to be clear and  
detailed, because everyone will have to implement it from scratch.


Huh? what? I hope you had read Oracle's BDB license document [3] and  
open source FAQ [4]. IANAL, but I can get answers for your specific  
concerns in the context of open source Berkeley DB. AFAICT, someone  
like Mozilla would not face any trouble with the open source license  
of Berkeley DB. YMMV.


I read the license. By my reading, it imposes requirements that go  
beyond WebKit's LGPL license or Gecko's BSD/GPL/LGPL tri-license: http://www.oracle.com/technology/software/products/berkeley-db/htdocs/oslicense.html 
. Specifically clause 3 of the license.







It's also not clear to me if a BDB-level API is sufficient for  
developer needs. As I understand it, it's basically a giant  
dictionary with unstructured keys and values. So it's not providing  
much over LocalStorage, except for prefix matching and the ability  
to hold large amounts of records or records that are individually  
large. There's no way to efficiently query by one of several  
fields, as I understand it.


I trust that you are relatively new to storing data with B-trees.  
They are at the heart of Oracle's indices so efficiency is out of  
question. If you are wondering how can people store complex data  
items with multiple fields and repeating values, look at Berkeley DB  
Java Edition, which supports the EJB 3 persistence model [5]. FYI,  
there is no significant difference between the APIs of BDB Java  
Edition and the original BDB. They also have identical licensing  
requirements.


Your references do not appear to explain on a technical level how one  
stores data with multiple fields in a way that you can query  
efficiently by more than one of them. I would appreciate a brief  
explanation.


Regards,
Maciej

P.S. I would appreciate if you could discuss technical matters without  
mock incredulity or condescension.





Berkeley DB license (was Re: Points of order on this WG)

2009-06-26 Thread Nikunj R. Mehta

Maciej, David, Jeremy, Doug, others,

I understand the interest in using Berkeley DB in browsers provided  
appropriate licensing freedom were available. I am beginning to  
understand your concerns vis-à-vis Berkeley DB's license.


I have asked our legal team to clarify what they mean by the last para  
of the 3rd clause of the first license. As I understand it, it is the  
following text that appears problematic:


For an executable file, complete source code means the source code  
for all modules it contains.



Although it might be ideal, at this time, I cannot commit to having  
Berkeley DB be offered under a third (besides commercial and its  
current open source) license. I can only suggest that we move  
forward one step at a time. I will try my best to get this issue  
clarified in the quickest possible time. I also reaffirm the approach  
that it should not be necessary to use Berkeley DB to implement the  
structured storage API Oracle is proposing.


I hope this helps. Feel free to suggest other licensing terms that  
appear problematic.


Nikunj
http://o-micron.blogspot.com

On Jun 26, 2009, at 12:42 PM, L. David Baron wrote:


On Friday 2009-06-26 11:27 -0700, Jonas Sicking wrote:

Note that mozilla has since long made a commitment not to ship code
that is not compatible with all of GPL, LGPL *and* MPL. So unless the
BDB license is compatible with all those three we couldn't use BDB.


I think our (Mozilla's) requirement is actually slightly stronger
than license compatibility, at least as defined by
http://en.wikipedia.org/wiki/License_compatibility .  Rather, I
think we require that the licenses don't impose any restrictions in
addition to those imposed by the MPL, the LGPL, or the GPL.  (In
other words, that the license is less restrictive than *each* of
those licenses.)

For what it's worth, the license document in question, located at
http://www.oracle.com/technology/software/products/berkeley-db/htdocs/oslicense.html
appears to suggest that the files in the source code are covered
under three different licenses (although it's not entirely clear to
me what is meant by the concatenation of three licenses, my initial
guess is that it means different parts are covered under different
licenses).  The second and third given appear to me to be the
three-part BSD license (varying by whether the copyright holder is
the UC Regents or Harvard University).  If my quick glance is
correct and this is identical to the three-part BSD license, then I
suspect the second and third licenses are unlikely to be a problem
for Mozilla; we already include code licensed under the three-part
BSD license (see http://opensource.org/licenses/bsd-license.php ).

The first license, on the other hand, appears to be a modified
version of the BSD license, with the third claused replaced by an
entirely different one.  I don't recognize this clause, and I
suspect it would require legal analysis to determine whether it's
less restrictive than the MPL, LGPL, and GPL.  (Though the part that
says For an executable file, complete source code means the source
code for all modules it contains. seems pretty restrictive to my
untrained eyes.)

-David

--
L. David Baron http://dbaron.org/
Mozilla Corporation   http://www.mozilla.com/






Re: Points of order on this WG

2009-06-26 Thread Nikunj R. Mehta
I have a tutorial available to understand how one can use Berkeley DB  
to store data with multiple fields [1]. If you are only interested in  
understanding how to do look up by one or more of them, please skip to  
slide 51.


If this doesn't help, I can write up another explanation for the  
issues that are outstanding.


Hope this helps.

Nikunj
http://o-micron.blogspot.com

[1] 
http://www.oracle.com/technology/products/berkeley-db/tutorial-berkeleydb-ds.html

On Jun 26, 2009, at 1:13 PM, Maciej Stachowiak wrote:




It's also not clear to me if a BDB-level API is sufficient for  
developer needs. As I understand it, it's basically a giant  
dictionary with unstructured keys and values. So it's not  
providing much over LocalStorage, except for prefix matching and  
the ability to hold large amounts of records or records that are  
individually large. There's no way to efficiently query by one of  
several fields, as I understand it.


I trust that you are relatively new to storing data with B-trees.  
They are at the heart of Oracle's indices so efficiency is out of  
question. If you are wondering how can people store complex data  
items with multiple fields and repeating values, look at Berkeley  
DB Java Edition, which supports the EJB 3 persistence model [5].  
FYI, there is no significant difference between the APIs of BDB  
Java Edition and the original BDB. They also have identical  
licensing requirements.


Your references do not appear to explain on a technical level how  
one stores data with multiple fields in a way that you can query  
efficiently by more than one of them. I would appreciate a brief  
explanation.





Re: Berkeley DB license (was Re: Points of order on this WG)

2009-06-26 Thread L. David Baron
On Friday 2009-06-26 15:27 -0700, Nikunj R. Mehta wrote:
 I understand the interest in using Berkeley DB in browsers provided  
 appropriate licensing freedom were available. I am beginning to  
 understand your concerns vis-à-vis Berkeley DB's license.

To be clear, I wasn't expressing any interest (or disinterest); I
was just commenting on the licensing issues.  I don't have any
opinion on whether we'd want to use it if there weren't licensing
issues (nor would I be the right person to do so).

(I'm just sending this clarification to avoid anyone being under the
incorrect impression that if the license were changed the software
would promptly be incorporated into browsers.  There's still the
issue of convincing browser makers that doing so is important enough
that they'd be willing to support it.)

-David

-- 
L. David Baron http://dbaron.org/
Mozilla Corporation   http://www.mozilla.com/



Re: Berkeley DB license (was Re: Points of order on this WG)

2009-06-26 Thread Jonas Sicking
On Fri, Jun 26, 2009 at 3:46 PM, Nikunj R. Mehtanikunj.me...@oracle.com wrote:
 FWIW, I came across two pieces about Oracle's open source licensing of
 Berkeley DB that might help clear the air around the licensing issues.

 First, Oracle's license [1] is word-for-word identical to the erstwhile
 SleepyCat license [2]. Secondly, SleepyCat license qualifies as a free
 software license, and is compatible with the GNU General Public License.
 [3]. Thirdly, the license is OSI approved [4].

 I am not sure if this resolves issues. It would help if you had comments on
 the above so that I can keep that in my context while discussing with our
 legal staff.

Unfortunately this does not resolve the issue. OSI approved is
entirely different from compatible with any specific license (GPL,
LGPL, MPL or anything else).

Also, I'm not sure it's entirely fair to simply exclude non
open-source browsers. We want the browser space to be competative,
both for open source browsers and for proprietary browsers. If the API
we come up with is prohibitively complex to implement without either
releasing the browser as open source, or by licensing software from
Oracle or any other party, then I think we haven't designed a good
API.

/ Jonas



Re: Berkeley DB license (was Re: Points of order on this WG)

2009-06-26 Thread Maciej Stachowiak


On Jun 26, 2009, at 3:40 PM, L. David Baron wrote:


On Friday 2009-06-26 15:27 -0700, Nikunj R. Mehta wrote:

I understand the interest in using Berkeley DB in browsers provided
appropriate licensing freedom were available. I am beginning to
understand your concerns vis-à-vis Berkeley DB's license.


To be clear, I wasn't expressing any interest (or disinterest); I
was just commenting on the licensing issues.  I don't have any
opinion on whether we'd want to use it if there weren't licensing
issues (nor would I be the right person to do so).

(I'm just sending this clarification to avoid anyone being under the
incorrect impression that if the license were changed the software
would promptly be incorporated into browsers.  There's still the
issue of convincing browser makers that doing so is important enough
that they'd be willing to support it.)


That's roughly our position for WebKit as well. I did not mean to  
raise the license issue as a showstopper, merely to point out the  
following:


- If we propose an API modeled on Berkeley DB, it likely could not be  
implemented by the popular open source browser engines using Berkeley  
DB itself.


- If we propose an API modeled on Berkeley DB, it likely could not be  
implemented by proprietary browser engines using Berkeley DB itself,  
unless the developers paid licensing fees to oracle.


- Therefore, if we design such an API, we need to be clear and  
detailed enough that it can be implemented interoperably from scratch.


- We also need to be clear that the implementation cost for any  
browser will likely involve implementation from scratch, not just  
plugging in an existing library.


(If Oracle changed the license terms, things would be different, but  
I'm not asking for that and I don't think it's appropriate to ask at  
this early stage.)


Regards,
Maciej


Re: Berkeley DB license (was Re: Points of order on this WG)

2009-06-26 Thread Nikunj R. Mehta

On Jun 26, 2009, at 4:06 PM, Maciej Stachowiak wrote:



On Jun 26, 2009, at 3:40 PM, L. David Baron wrote:


On Friday 2009-06-26 15:27 -0700, Nikunj R. Mehta wrote:

I understand the interest in using Berkeley DB in browsers provided
appropriate licensing freedom were available. I am beginning to
understand your concerns vis-à-vis Berkeley DB's license.


To be clear, I wasn't expressing any interest (or disinterest); I
was just commenting on the licensing issues.  I don't have any
opinion on whether we'd want to use it if there weren't licensing
issues (nor would I be the right person to do so).

(I'm just sending this clarification to avoid anyone being under the
incorrect impression that if the license were changed the software
would promptly be incorporated into browsers.  There's still the
issue of convincing browser makers that doing so is important enough
that they'd be willing to support it.)


That's roughly our position for WebKit as well. I did not mean to  
raise the license issue as a showstopper, merely to point out the  
following:


I agree with Maciej - we have gotten far ahead of ourselves here on  
licensing terms.




- If we propose an API modeled on Berkeley DB, it likely could not  
be implemented by the popular open source browser engines using  
Berkeley DB itself.


I don't buy this but...



- If we propose an API modeled on Berkeley DB, it likely could not  
be implemented by proprietary browser engines using Berkeley DB  
itself, unless the developers paid licensing fees to oracle.


there is no free lunch for commercial browsers, at least not one  
that's catered by Oracle,




- Therefore, if we design such an API, we need to be clear and  
detailed enough that it can be implemented interoperably from scratch.


and, regardless of Berkeley DB, this should be the design goal. We  
have all been burned by SQLite and SQL storage, and I am not going to  
lead another train down the same path. I was quite clear in my very  
first message on this topic that we are talking about a B-tree based  
database and not a W3C stamp of approval for Berkeley DB to be  
embedded in browsers.




- We also need to be clear that the implementation cost for any  
browser will likely involve implementation from scratch, not just  
plugging in an existing library.


This is not correct. You and I can disagree, but really we should let  
our lawyers examine the matter.




(If Oracle changed the license terms, things would be different, but  
I'm not asking for that and I don't think it's appropriate to ask at  
this early stage.)


Regards,
Maciej





Re: Berkeley DB license (was Re: Points of order on this WG)

2009-06-26 Thread Maciej Stachowiak


On Jun 26, 2009, at 3:46 PM, Nikunj R. Mehta wrote:

FWIW, I came across two pieces about Oracle's open source licensing  
of Berkeley DB that might help clear the air around the licensing  
issues.


First, Oracle's license [1] is word-for-word identical to the  
erstwhile SleepyCat license [2]. Secondly, SleepyCat license  
qualifies as a free software license, and is compatible with the  
GNU General Public License. [3]. Thirdly, the license is OSI  
approved [4].


I am not sure if this resolves issues. It would help if you had  
comments on the above so that I can keep that in my context while  
discussing with our legal staff.


The issue I see with using Berkeley DB for implementation (which I  
think is only a side issue to design of the spec itself) is as  
follows: Clause 3 of the first license (the one with the Oracle  
copyright notice) appears to have stricter source release requirements  
than LGPL. It's not clear to me what exactly the scope of the  
requirement is, but it doesn't seem to have the dynamic linking or  
relinkable object file exceptions of LGPL. That would be a problem for  
projects like WebKit or Gecko that don't want to impost any  
constraints that go beyond the LGPL in their license terms.


I don't want to start a huge debate over this, I just wanted to  
clarify the issue I see.


Regards,
Maciej




Re: Points of order on this WG

2009-06-26 Thread Maciej Stachowiak


On Jun 26, 2009, at 10:51 AM, Nikunj R. Mehta wrote:

Secondly, Oracle proposes adding request interception and  
programmable http cache to the WG's charter. Oracle will provide  
resources for editing and reviewing proposals for all three  
deliverables.


We already have a broad charter and quite a few deliverables. Before  
we add more to the charter, I'd like to understand the degree of  
interest in request interception and programmable http cache. Is  
anyone besides Oracle interested in pursuing this technology? Are any  
implementors interested in implementing it?


Regards,
Maciej




Re: Points of order on this WG

2009-06-26 Thread Maciej Stachowiak


On Jun 26, 2009, at 3:33 PM, Nikunj R. Mehta wrote:

I have a tutorial available to understand how one can use Berkeley  
DB to store data with multiple fields [1]. If you are only  
interested in understanding how to do look up by one or more of  
them, please skip to slide 51.


If this doesn't help, I can write up another explanation for the  
issues that are outstanding.


It sounds like the answer is to make multiple tables with additional  
tables allowing secondary keys to map to the master key. Did I  
understand that correctly? (I'm not sure I got the right idea from the  
pictures).


Can you clarify how a Berkley DB style API would differ from  
LocalStorage in interface or capabilities? What would it be able to do  
that LocalStorage can't?


Regards,
Maciej




Re: Points of order on this WG

2009-06-25 Thread Doug Schepers

Hi, Arun-

Arun Ranganathan wrote (on 6/25/09 1:38 AM):



On Jun 23, 2009, at 5:10 PM, Ian Hickson wrote:

The Web Storage specification is someone dead-locked right now due
to the  lack of consensus on whether to use SQL or not.


This topic continues to be discussed in Mozilla newsgroups. Few are
reconciled to SQL usage:

Example:
http://groups.google.com/group/mozilla.community.web-standards/topics

Solutions such as BrowserCouch (which straddles localStorage currently)
offer other options: http://www.toolness.com/wp/?p=580

I'd personally rather see a clear articulation of use cases that we
agree are important for the web than further specification work.


Actually, I think that's an excellent point.  Nikunj, maybe that is the 
next logical step?  Could you take charge of that?


Regards-
-Doug Schepers
W3C Team Contact, SVG and WebApps WGs



Re: Points of order on this WG

2009-06-25 Thread Ian Hickson
On Thu, 25 Jun 2009, Doug Schepers wrote:
 On Jun 23, 2009, at 5:10 PM, Ian Hickson wrote:
  The Web Storage specification is someone dead-locked right now due to the
  lack of consensus on whether to use SQL or not.
 
 I don't buy this argument for an instant, and I'd be very surprised if 
 anyone in the WebApps WG did.  This specification was published as 
 specified because it matched the behavior (more or less) of an 
 implementation (WebKit), and it's disingenuous to pretend that that 
 doesn't set a precedent for the future development of the specification.
 
 Let's be frank: there is good reason to specify and standardize 
 something that exists in a browser, because there is implementation 
 experience, and opportunity for widespread adoption, which is often 
 good; this is especially so with an implementation in a widespread 
 open-source engine like WebKit, because it can be reused.  I don't find 
 fault with that premise.
 
 But just because it's been implemented doesn't mean it's the correct or 
 best (or even a good) solution.  There is less justification for 
 insisting on a single solution when it's only been implemented in one 
 browser engine, and only just recently.  There's little evidence that 
 this will work well for other implementers, nor that this is the 
 solution that works best for content developers.
 
 I cannot take seriously a claim that a spec can't be changed due to a 
 lack of consensus when the claimant has openly and repeatedly 
 indicated a disinterest in consensus. So, the only conclusion I can draw 
 is that the spec is currently in a holding pattern to allow the 
 currently specified solution to gain defacto weight through real-world 
 content, and possibly garner premature implementations before it is even 
 in LC, thus making it all but impossible to change.  As Kyle Weems put 
 it: Deny, Delay, Too Late.

I think there may have been some misunderstanding about what I said above 
(possibly because of my typo; s/someone/somewhat/).

When I say that the Web Storage spec is deadlocked, I mean that as it 
stands, it isn't acceptable, since it doesn't represent what at least one 
major vendor (Mozilla) wants, but that there haven't been any alternative 
proposals that have gained widespread approval either, and so I don't know 
how to move the spec forward. (I've been working with Mozilla off-line to 
try to resolve this, but do not yet have a solution.)

There is no attempt on my part to force anything through de-facto 
implementations; it is in fact the lack of vendors willing to implement 
what is in the spec that is keeping it in a holding pattern. There is no 
claim that Web Storage can't be changed; indeed, I claim that it _must_ be 
changed, it's just that I'm not sure what it should be changed _to_.

In any case, adding a new feature to a spec whose future is uncertain 
isn't a good idea because it means that the new feature's progress is tied 
to the uncertain future of the rest of the spec. Thus, my recommendation 
to Nikunj would be to create a new WG deliverable, not one tied to the 
fate of the SQL Database section.


 Nikunj has asked that his proposal be given equal weight and 
 consideration. While I'm not sure that's possible even now, because of 
 the existing implementation, I personally think it is reasonable to give 
 him a platform to demonstrate the relative merits of his alternate 
 proposal.

I think Nikunj's proposal definitely is worthy of being persued, just like 
the working group is persuing dozens of other proposals like XHR, CORS, 
Selectors API, Workers, Server-Sent Events, Web Sockets, etc. I don't 
believe it really fits into the Web Storage spec (if anything, I think we 
should split Web Storage into two further specs, not add a third wholly 
independent feature to it). However, I would definitely support an FPWD 
publication of Nikunj's proposal, as I have for other proposals.

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'



Re: Points of order on this WG

2009-06-25 Thread Arthur Barstow

Nikunj, All,

Charles will respond separately regarding a way forward but I want to  
respond to the false accusation below.


On Jun 24, 2009, at 8:13 PM, ext Nikunj R. Mehta wrote:


The WG chair went ahead with the publication of the Web Storage draft
overriding serious objections about it's direction and emphasis.


The record actually shows Nikunj saying:

[[
http://lists.w3.org/Archives/Public/public-webapps/2009AprJun/0145.html

Oracle conditionally supports the publishing this draft as FPWD
provided that the abstract is worded appropriately.

...

Here's what Oracle would like to see in the abstract:

This specification defines two APIs for persistent data storage in Web
clients: one for accessing key-value pair data and another for
accessing structured data.
]]

Ian agreed [1] to make the requested change above (it is included in  
the FPWD [2]) and thus addressed the only concern you raised re  
publishing the FPWD.


-Regards, Art Barstow

[1] http://lists.w3.org/Archives/Public/public-webapps/2009AprJun/ 
0149.html

[2] http://www.w3.org/TR/2009/WD-webstorage-20090423/






Re: Points of order on this WG

2009-06-25 Thread Nikunj R. Mehta

I have listed these requirements on my blog - 
http://o-micron.blogspot.com/2009/06/requirements-for-and-components-needed.html

I will put these together in a forma suitable for W3C uses.

Nikunj
http://o-micron.blogspot.com



On Jun 24, 2009, at 11:13 PM, Doug Schepers wrote:


Hi, Arun-

Arun Ranganathan wrote (on 6/25/09 1:38 AM):



On Jun 23, 2009, at 5:10 PM, Ian Hickson wrote:

The Web Storage specification is someone dead-locked right now due
to the  lack of consensus on whether to use SQL or not.


This topic continues to be discussed in Mozilla newsgroups. Few are
reconciled to SQL usage:

Example:
http://groups.google.com/group/mozilla.community.web-standards/topics

Solutions such as BrowserCouch (which straddles localStorage  
currently)

offer other options: http://www.toolness.com/wp/?p=580

I'd personally rather see a clear articulation of use cases that we
agree are important for the web than further specification work.


Actually, I think that's an excellent point.  Nikunj, maybe that is  
the next logical step?  Could you take charge of that?


Regards-
-Doug Schepers
W3C Team Contact, SVG and WebApps WGs






Re: Points of order on this WG

2009-06-25 Thread Nikunj R. Mehta

On Jun 24, 2009, at 7:34 PM, Michael(tm) Smith wrote:


Nikunj R. Mehta nikunj.me...@oracle.com, 2009-06-24 17:13 -0700:

I want to raise two formal points of order about the manner in  
which this WG

has operated, particularly in respect to Web Storage.

1. Charter
2. Process

Firstly, no one seriously responds to proposals about things that are
officially in the WG's charter.


That's not true.

If you believe that's been the case with a specific proposal, then
let's please talk about that specific proposal instead of turning
this into a process discussion.


Please look to the bottom of my original email to see why this became  
a process discussion. If my interpretation is incorrect, please  
explain in the context of the specific details there instead of simply  
saying it is not true.





If there is inadequate interest, then we should get rid of the
responsibility from this WG's charter.


If there's inadequate interest in *a particular proposal* from
other members of the group -- particularly among the vendors who
would be expected to implement it -- then that would be a pretty
good indicator that an investment of the already-constrained
resources of the group into trying harder to move that the
proposal forward might not be an investment that's likely to pay
off for us well as a group (in terms of actually being successful
at getting it implemented in UAs).


1. Oracle provided use cases and requirements [1] around storage in  
Web browsers.

2. Oracle submitted a proposal first in October [2].
3. The WG's charter was changed and deliverables added without an open  
process [3].
4. Oracle revised its proposal in April [4] based on limited feedback  
on public-webapps. Oracle has also implemented this proposal in a  
browser plug-in for Safari and Firefox before submitting this proposal.
5. This WG provided two very brief sets of questions. I responded to  
both sets of questions without any delay, and assumed that the  
questions were answered. Of these one was simply asking me to go to  
HTML5 without attempting to address any of the requirements identified  
in [2] or the technical details of the revised proposal [4].
6. Then I asked for permission to add to the Web Storage draft, and  
was told that my proposal did not belong there, without any explanation.


On the other hand, there were no documented requirements for Web  
Storage (and most likely for other Web* FPWDs) until I asked for it.  
Even then all I get is one requirement at least be as useful as  
SQL [4a].


There has been reluctance to support for the current Web Storage  
draft's SQL mission in popular browsers. It is evident from [5], [6],  
and [7] and still we are consuming this WG's precious time for that  
proposal.


The policy of this group is to interpret silence as assent, isn't it.  
By that token, browser vendor members of this WG have have supported  
Oracle's current proposal because no one has said that implementing  
this spec is not in their and/or the Web's interest.





On the other hand, if Web Storage and related matters are in
this WG's charter based on this WG's agreement, there should be
feedback from its members,


As far as I can see, that's already happening.


Not true in the case of Oracle's proposals.




and at least substantive discussions by its appointed editors.


First off, Ian is not an appointed editor for the Web Storage
draft. He's the editor of that particular draft by virtue of the
fact that he's the one wrote it. But the fact that he wrote it
and contributed it to the group does not magically bless it nor
necessarily give it any position of special entitlement in the
group. If you or any other member wants to contribute a related or
alternative draft and check it into the group's document
repository, you are very much encouraged to do so. We can then
continue with discussion about it -- with a status of Editor's
Draft in the group -- up to the point where we decide if/when we
decide as a group that we want to transition it to a First Public
Working Draft.


Let's see how this process works in practice. W3C is setting up a CVS  
account for me as we speak.


Nikunj
http://o-micron.blogspot.com

[1] http://lists.w3.org/Archives/Public/public-webapps/2008OctDec/0104.html
[2] http://lists.w3.org/Archives/Public/public-webapps/2008OctDec/0130.html
[3] http://lists.w3.org/Archives/Public/public-webapps/2009AprJun/0251.html
[4] http://lists.w3.org/Archives/Public/public-webapps/2009AprJun/0341.html
[4a] http://lists.w3.org/Archives/Public/public-webapps/2009AprJun/0303.html
[5] 
http://groups.google.com/group/mozilla.community.web-standards/msg/d6a92db27bd52bcb
[6] 
http://groups.google.com/group/mozilla.community.web-standards/browse_frm/thread/da7000dcc486c0fb



Re: Points of order on this WG

2009-06-25 Thread Nikunj R. Mehta

On Jun 24, 2009, at 10:24 PM, Doug Schepers wrote:


Hi, Nikunj-

I think Mike was overly blunt, but essentially correct in his  
response, but I'd like to add a specific comment inline...


Nikunj R. Mehta wrote (on 6/24/09 8:13 PM):


On Jun 23, 2009, at 5:10 PM, Ian Hickson wrote:
The Web Storage specification is someone dead-locked right now due  
to the

lack of consensus on whether to use SQL or not.


snip

As Kyle Weems put it: Deny, Delay, Too Late.

snip

I would endorse you, Nikunj, to edit the Web Storage spec to include  
your proposal.  However, I will also say that the burden of proving  
that your solution is better lies on you.  I'm not going to pretend  
this is not an uphill battle.  If you or someone on the Oracle team  
wants to demonstrate an implementation of your proposal, or even  
better, contribute that code to the WebKit or Mozilla codebase, that  
would be a compelling way of demonstrating relative merits...  
cutting-edge authors could experiment with both and provide feedback  
about what aspects of each they prefer.  That would be an effective  
argument in favor of one or the other.


You bet.



I will say that Hixie's proposal (which, if I understand it, comes  
from Apple's implementation) has an advantage, because he has been  
working within W3C and directly with browser vendors for a while; he  
knows how to write specifications in the style that implementers  
prefer, and he also has their respect on technical matters.  You  
would do well to specify your proposal in a manner similar to his,  
with similar detail, and to cultivate credibility and relationships  
with browser vendors if you want to gain preference for your  
proposal.  I'm sorry this is not the most encouraging statement, but  
I believe it is factual, and it is intended as helpful advice.




No worries.



Re: Points of order on this WG

2009-06-25 Thread Nikunj R. Mehta

On Jun 25, 2009, at 9:34 AM, Arthur Barstow wrote:


Nikunj, All,

Charles will respond separately regarding a way forward but I want  
to respond to the false accusation below.


On Jun 24, 2009, at 8:13 PM, ext Nikunj R. Mehta wrote:


The WG chair went ahead with the publication of the Web Storage draft
overriding serious objections about it's direction and emphasis.


The record actually shows Nikunj saying:

[[
http://lists.w3.org/Archives/Public/public-webapps/2009AprJun/ 
0145.html


Oracle conditionally supports the publishing this draft as FPWD
provided that the abstract is worded appropriately.

...

Here's what Oracle would like to see in the abstract:

This specification defines two APIs for persistent data storage in Web
clients: one for accessing key-value pair data and another for
accessing structured data.
]]

Ian agreed [1] to make the requested change above (it is included in  
the FPWD [2]) and thus addressed the only concern you raised re  
publishing the FPWD.


Seeing the way things were, there was no way to stop the publication  
[1]. To mitigate the negative effects of publication, Oracle made its  
assent conditional. In reality, the chairs should have taken in to  
account the prior reluctance to continue with the draft [2] and asked  
the author to seek requirements and provide cautionary text in  
prominent places in the FPWD.


[1] http://lists.w3.org/Archives/Public/public-webapps/2009AprJun/0143.html
[2] http://lists.w3.org/Archives/Public/public-webapps/2009AprJun/0106.html



Re: Points of order on this WG

2009-06-25 Thread Maciej Stachowiak


On Jun 24, 2009, at 11:35 PM, Ian Hickson wrote:



In any case, adding a new feature to a spec whose future is uncertain
isn't a good idea because it means that the new feature's progress  
is tied
to the uncertain future of the rest of the spec. Thus, my  
recommendation

to Nikunj would be to create a new WG deliverable, not one tied to the
fate of the SQL Database section.


[...]

I think Nikunj's proposal definitely is worthy of being persued,  
just like
the working group is persuing dozens of other proposals like XHR,  
CORS,

Selectors API, Workers, Server-Sent Events, Web Sockets, etc. I don't
believe it really fits into the Web Storage spec (if anything, I  
think we
should split Web Storage into two further specs, not add a third  
wholly
independent feature to it). However, I would definitely support an  
FPWD

publication of Nikunj's proposal, as I have for other proposals.


I strongly agree on these points. I would prefer to see SQL Storage  
split out of the rest of Web Storage. We seem to have rough consensus  
and strong multilateral implementor interest on LocalStorage and  
SessionStorage, and they should be allowed to move forward on the  
standards track quickly. SQL Storage remains contentious, and only  
Apple and Google have shown strong implementor interest so far. And it  
has no technical tie to the other storage drafts. I also think  
Nikunj's proposal should be yet a third separate orthogonal draft.


Regards,
Maciej




Re: Points of order on this WG

2009-06-25 Thread Maciej Stachowiak


On Jun 25, 2009, at 12:42 PM, Nikunj R. Mehta wrote:



I think Nikunj's proposal definitely is worthy of being persued,  
just like
the working group is persuing dozens of other proposals like XHR,  
CORS,

Selectors API, Workers, Server-Sent Events, Web Sockets, etc. I don't
believe it really fits into the Web Storage spec (if anything, I  
think we
should split Web Storage into two further specs, not add a third  
wholly
independent feature to it). However, I would definitely support an  
FPWD

publication of Nikunj's proposal, as I have for other proposals.


That is encouraging. I will be glad to edit an FPWD that includes B- 
tree, interception, and programmable cache, if the WG so prefers.




It seems to me that Berkley DB style database storage, and request  
interception / programmable cache are orthogonal ideas and should  
arguably be separate drafts. I would assume request interception and  
programmable cache are usable regardless of what client-side storage  
APIs are available, much as HTML5 Application Cache is independent of  
these APIs. If anything, it seems more closely related to AppCache  
than to any proposed storage solution.


Regards,
Maciej



Re: Points of order on this WG

2009-06-25 Thread Jonas Sicking
On Thu, Jun 25, 2009 at 12:42 PM, Nikunj R.
Mehtanikunj.me...@oracle.com wrote:
 On Jun 24, 2009, at 11:35 PM, Ian Hickson wrote:
 I have proposed to Mozilla a solution that provides access to an organized
 key-value database such as that provided in the (open source) Berkeley DB.
 In essence, a database is a simple B-tree - it keeps keys sorted and permits
 duplicate keys. It is able to find a key or a key prefix, which enables
 efficient searching through a very large number of items. If we are
 ambitious (i.e., need more functionality), we can add indexes and joins to
 this spec. There is unlikely to be an interoperability nightmare, such as
 that which is the most likely outcome with SQL, it does not mandate the use
 of any query language, and there is at least 40 years of experience with it,
 including in highly resource-constrained environments. (There are 200
 million copies of Berkeley DB in deployment [1]).

This is what so far seems like the best solution to me. I.e. something
that is more backend-ish than what a SQL API would be.

I'd love to see something that allows you to implement a SQL API on
top of. But that also allows you to implement something like MungoDB
very effectively.

 I think Nikunj's proposal definitely is worthy of being persued, just like
 the working group is persuing dozens of other proposals like XHR, CORS,
 Selectors API, Workers, Server-Sent Events, Web Sockets, etc. I don't
 believe it really fits into the Web Storage spec (if anything, I think we
 should split Web Storage into two further specs, not add a third wholly
 independent feature to it). However, I would definitely support an FPWD
 publication of Nikunj's proposal, as I have for other proposals.

 That is encouraging. I will be glad to edit an FPWD that includes B-tree,
 interception, and programmable cache, if the WG so prefers.

What I don't understand is, why does interception (I assume you mean
HTTP interception?) and programmable cache, belong in the same spec as
a B-tree?

/ Jonas



Re: Points of order on this WG

2009-06-25 Thread Maciej Stachowiak


On Jun 25, 2009, at 5:23 PM, Jonas Sicking wrote:


On Thu, Jun 25, 2009 at 12:42 PM, Nikunj R.
Mehtanikunj.me...@oracle.com wrote:

On Jun 24, 2009, at 11:35 PM, Ian Hickson wrote:
I have proposed to Mozilla a solution that provides access to an  
organized
key-value database such as that provided in the (open source)  
Berkeley DB.
In essence, a database is a simple B-tree - it keeps keys sorted  
and permits
duplicate keys. It is able to find a key or a key prefix, which  
enables

efficient searching through a very large number of items. If we are
ambitious (i.e., need more functionality), we can add indexes and  
joins to
this spec. There is unlikely to be an interoperability nightmare,  
such as
that which is the most likely outcome with SQL, it does not mandate  
the use
of any query language, and there is at least 40 years of experience  
with it,

including in highly resource-constrained environments. (There are 200
million copies of Berkeley DB in deployment [1]).


This is what so far seems like the best solution to me. I.e. something
that is more backend-ish than what a SQL API would be.

I'd love to see something that allows you to implement a SQL API on
top of. But that also allows you to implement something like MungoDB
very effectively.


I doubt you can efficiently or correctly implement SQL on top of a  
Berkeley-DB-style API.


As a side note, it should be noted Berkeley DB itself could not be  
used by WebKit or Gecko to implement the spec, because even though it  
is open source, the license is not compatible with the LGPL. It seems  
unlikely that non-open-source browser engines could use it either,  
unless they are willing to pay Oracle for a commercial license. So  
it's very important for the spec to be clear and detailed, because  
everyone will have to implement it from scratch.


It's also not clear to me if a BDB-level API is sufficient for  
developer needs. As I understand it, it's basically a giant dictionary  
with unstructured keys and values. So it's not providing much over  
LocalStorage, except for prefix matching and the ability to hold large  
amounts of records or records that are individually large. There's no  
way to efficiently query by one of several fields, as I understand it.


Regards,
Maciej




Re: Points of order on this WG

2009-06-24 Thread Michael(tm) Smith
Nikunj R. Mehta nikunj.me...@oracle.com, 2009-06-24 17:13 -0700:

  I want to raise two formal points of order about the manner in which this WG 
  has operated, particularly in respect to Web Storage.
 
  1. Charter
  2. Process
 
  Firstly, no one seriously responds to proposals about things that are 
  officially in the WG's charter.

That's not true.

If you believe that's been the case with a specific proposal, then
let's please talk about that specific proposal instead of turning
this into a process discussion.

  If there is inadequate interest, then we should get rid of the
  responsibility from this WG's charter.

If there's inadequate interest in *a particular proposal* from
other members of the group -- particularly among the vendors who
would be expected to implement it -- then that would be a pretty
good indicator that an investment of the already-constrained
resources of the group into trying harder to move that the
proposal forward might not be an investment that's likely to pay
off for us well as a group (in terms of actually being successful
at getting it implemented in UAs).

  On the other hand, if Web Storage and related matters are in
  this WG's charter based on this WG's agreement, there should be
  feedback from its members,

As far as I can see, that's already happening.

  and at least substantive discussions by its appointed editors.

First off, Ian is not an appointed editor for the Web Storage
draft. He's the editor of that particular draft by virtue of the
fact that he's the one wrote it. But the fact that he wrote it
and contributed it to the group does not magically bless it nor
necessarily give it any position of special entitlement in the
group. If you or any other member wants to contribute a related or
alternative draft and check it into the group's document
repository, you are very much encouraged to do so. We can then
continue with discussion about it -- with a status of Editor's
Draft in the group -- up to the point where we decide if/when we
decide as a group that we want to transition it to a First Public
Working Draft.

  If the editor is uninterested,

There is no the editor. There are *editors*, and Hixie is *an*
editor of *a* particular draft. Editors do not get appointed by
the chairs. As far as I can recall, we have never in this group
nor in either of its ancestor groups ever appointed someone to be
*the* editor. What has happened instead is that people have
stepped forward with drafts to contribute and expressed commitment
to editing those and managing discussion about them

That is the way things have always worked in this group.

  then I expect the chair to argue whether something seems to
  fall outside the charter's scope and provide reasoning for the
  same.

It's not the necessary for the chair to do that in order for
discussion and editing work on a particular draft to proceed. We
can have a specification in Editor's Draft and do anything we want
with it -- up to the point where it's time to decide as a group if
we want to transition it to FPWD. We can then evaluate whether our
charter permits us to publish it or not. If the existing charter
doesn't, then we can ask to amend the charter.

  If none of the chairs are interested, then we have a bigger
  problem.

What precisely would that bigger problem be? As far as I can see,
at this point, I think the case is that we may have one specific
proposal that you believe has not received adequate attention from
the group. If that's not the case, what other specific proposals
are you aware of that we have had problems with?

But if it is the case that the issue really is with one specific
proposal, I really wish we could discuss that one specific
proposal instead of making a process issue out of this.

  --Mike

-- 
Michael(tm) Smith
http://people.w3.org/mike/



Re: Points of order on this WG

2009-06-24 Thread Doug Schepers

Hi, Nikunj-

I think Mike was overly blunt, but essentially correct in his response, 
but I'd like to add a specific comment inline...


Nikunj R. Mehta wrote (on 6/24/09 8:13 PM):


On Jun 23, 2009, at 5:10 PM, Ian Hickson wrote:

The Web Storage specification is someone dead-locked right now due to the
lack of consensus on whether to use SQL or not.


I don't buy this argument for an instant, and I'd be very surprised if 
anyone in the WebApps WG did.  This specification was published as 
specified because it matched the behavior (more or less) of an 
implementation (WebKit), and it's disingenuous to pretend that that 
doesn't set a precedent for the future development of the specification.


Let's be frank: there is good reason to specify and standardize 
something that exists in a browser, because there is implementation 
experience, and opportunity for widespread adoption, which is often 
good; this is especially so with an implementation in a widespread 
open-source engine like WebKit, because it can be reused.  I don't find 
fault with that premise.


But just because it's been implemented doesn't mean it's the correct or 
best (or even a good) solution.  There is less justification for 
insisting on a single solution when it's only been implemented in one 
browser engine, and only just recently.  There's little evidence that 
this will work well for other implementers, nor that this is the 
solution that works best for content developers.


I cannot take seriously a claim that a spec can't be changed due to a 
lack of consensus when the claimant has openly and repeatedly 
indicated a disinterest in consensus.  So, the only conclusion I can 
draw is that the spec is currently in a holding pattern to allow the 
currently specified solution to gain defacto weight through real-world 
content, and possibly garner premature implementations before it is even 
in LC, thus making it all but impossible to change.  As Kyle Weems put 
it: Deny, Delay, Too Late.


Nikunj has asked that his proposal be given equal weight and 
consideration.  While I'm not sure that's possible even now, because of 
the existing implementation, I personally think it is reasonable to give 
him a platform to demonstrate the relative merits of his alternate proposal.


Like Mike said, Hixie is *an* editor of the Web Storage spec; I think 
it's entirely reasonable for Nikunj to co-edit the spec.  It is neither 
too early, nor too late to present alternate models in the same spec. 
It's only just a FPWD.


That said...



The WG chair went ahead with the publication of the Web Storage draft
overriding serious objections about it's direction and emphasis. While
nominally the chair and editor are following a process in terms of
publication sequence, I see little evidence of a collaborative or group
effort. We are not here in the WG to merely rubber stamp a small group's
opinions as a standard.


Unfortunately, that small group normally consists of the browser 
vendors, and when they decide to implement something, there is value in 
bending with the wind.


I would endorse you, Nikunj, to edit the Web Storage spec to include 
your proposal.  However, I will also say that the burden of proving that 
your solution is better lies on you.  I'm not going to pretend this is 
not an uphill battle.  If you or someone on the Oracle team wants to 
demonstrate an implementation of your proposal, or even better, 
contribute that code to the WebKit or Mozilla codebase, that would be a 
compelling way of demonstrating relative merits... cutting-edge authors 
could experiment with both and provide feedback about what aspects of 
each they prefer.  That would be an effective argument in favor of one 
or the other.


I will say that Hixie's proposal (which, if I understand it, comes from 
Apple's implementation) has an advantage, because he has been working 
within W3C and directly with browser vendors for a while; he knows how 
to write specifications in the style that implementers prefer, and he 
also has their respect on technical matters.  You would do well to 
specify your proposal in a manner similar to his, with similar detail, 
and to cultivate credibility and relationships with browser vendors if 
you want to gain preference for your proposal.  I'm sorry this is not 
the most encouraging statement, but I believe it is factual, and it is 
intended as helpful advice.




My problem, however, is that the WG is operating in an autocratic and an
unaccountable manner.


It's operating in a competitive manner, which is unsurprising 
considering that it is composed largely of rival companies.  Letting 
Apple get the upper hand in that competition through its preemptive 
implementation of web storage is suboptimal, and I would hope that the 
better technical solution would bear out.  But it does not violate 
process as far as I can see.


Mike and I are here to aid the WG and to advise the group on process, 
but we are not here to referee.  We simply 

Re: Points of order on this WG

2009-06-24 Thread Arun Ranganathan

Doug Schepers wrote:

Hi, Nikunj-

I think Mike was overly blunt, but essentially correct in his 
response, but I'd like to add a specific comment inline...


Nikunj R. Mehta wrote (on 6/24/09 8:13 PM):


On Jun 23, 2009, at 5:10 PM, Ian Hickson wrote:
The Web Storage specification is someone dead-locked right now due 
to the

lack of consensus on whether to use SQL or not.


I don't buy this argument for an instant, and I'd be very surprised if 
anyone in the WebApps WG did.  This specification was published as 
specified because it matched the behavior (more or less) of an 
implementation (WebKit), and it's disingenuous to pretend that that 
doesn't set a precedent for the future development of the specification.
This topic continues to be discussed in Mozilla newsgroups.  Few are 
reconciled to SQL usage:


Example: 
http://groups.google.com/group/mozilla.community.web-standards/topics


Solutions such as BrowserCouch (which straddles localStorage currently) 
offer other options: http://www.toolness.com/wp/?p=580


I'd personally rather see a clear articulation of use cases that we 
agree are important for the web than further specification work.


-- A*