[PD] Announcing CouchPdb development

Mathieu Bouchard matju at artengine.ca
Sat Sep 3 19:03:23 CEST 2011


On Sat, 27 Aug 2011, Thomas Mayer wrote:

> - How should nested objects and arrays be handled? Should they be
> handled at all?

There's really no standard way to do any kind of nesting in Pd. Several 
externals provide their own way of nesting things but none of them are 
really widespread in use. My proposals in that direction haven't gone 
anywhere (reference counting would have to be supported by all externals, 
with a slightly different Pd API, more or less).

If you are also limited to only floats and symbols for doing this, you 
can't even pass delimiters like "(" and ")" to indicate beginning of 
something or end of something, because they are already possible text 
strings in JSON. It's the same problem as trying to use "begin" and "end" 
as delimiters, just a little bit less common because parens rarely happen 
as single-character text strings.

It really wouldn't be that hard to implement a binbuf atom type, if it 
weren't for the issue of how (when) to deallocate it. I always assumed 
that this sort of thing ought to deallocate itself on its own when it 
stops being referenced, but Pd provides no means to make that ever happen.

a binbuf atom would be something that counts as one atom but can be 
expanded to a complete 'list'. Thus if a list represents an object that 
has 5 key-value pairs, and the 4th one has an object value, then you would 
have an atom-type sequence like :

   SYMBOL FLOAT SYMBOL SYMBOL SYMBOL FLOAT SYMBOL BINBUF SYMBOL SYMBOL

and then when you use a «binbuf $8» or «list $8» messagebox, you still 
would have a single atom, but something like [list frombinbuf] or 
[binbuf2list] would expand it to a list of n elements (input message would 
need to contain a single atom whose type is binbuf).

It doesn't need to be called a binbuf, but that's what it's already called 
in Pd, though it's currently not an atom type, only a thing for long-term 
(non-stack) holding of a list.

> - How to implement attachments (binary files) for data? Or should I 
> forget about this stuff and e.g. store images as base64 encoded strings?

Have a way to write them to disk ?

Lots of things are going to be complicated unless you decide to rely upon 
certain rarely-used externals.

  _______________________________________________________________________
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC


More information about the Pd-list mailing list