This shows you the differences between two versions of the page.

Link to this comparison view

content:tech:rhizome_hidden_field [27/05/2013 14:47] (current)
Andrew Bettison created
Line 1: Line 1:
 +====== Rhizome "hidden" field ======
 +Every now and then a user or developer suggests adding a "hidden" field to the [[Rhizome manifest]], so that certain kinds of files can be omitted (by default) from the Rhizome "Find" screen of [[Serval Mesh]].  Some of the suggested "hidden" files to date have been:
 +  * [[Serval Maps]] Point-Of-Interest and associated image files (which are currently hidden by a [[https://github.com/servalproject/batphone/issues/5|temporary kludge]])
 +  * software upgrade APK files used by [[Auto upgrade]]
 +  * files with names starting with dot ''.''
 +  * diagnostic bundles generated by [[Field diagnosis]]
 +A "hidden" field is **BAD DESIGN** and **SHOULD NOT BE IMPLEMENTED**, for the following reasons:
 +  - It blindly perpetuates a design made decades ago under very different circumstances, namely the convention of hiding files whose names begin with dot ''.'' in the [[https://en.wikipedia.org/wiki/Unix|Unix time sharing operating system]].  The parameters of today's problem are very different, eg, there are no ''.'' and ''..'' meta-files to deal with, folders and directories are much more widespread and well supported by applications these days, the user population is much larger and on average less technically competent and less well behaved.
 +  - It is a one-size-fits-all solution, which ignores the very important design consideration of, "Which files are interesting to whom?"
 +  - It complicates the Rhizome UI for file sharing by adding an extra feature that users must deal with, both at the point of sharing a file (another checkbox in the UI), and at the point of receiving (another option to show/hide "hidden" files);
 +  - [[Rhizome content type]] will largely solve the problem of distributing files between applications without cluttering the generic "File sharing" application;
 +  - [[Rhizome Groups]] will largely solve the problem of too many users sharing a single file name space;
 +  - It is merely a temporary band-aid for the grave scalability problems caused by a single file name space, and implementing it will only delay work on the real solution, namely [[Rhizome Groups]]
 +  - Once a [[Rhizome manifest]] field has been implemented, it imposes a backward compatibility burden on the software, and since the benefits of the "hidden" field are only temporary, this burden is not justified.