[TS] Fidelity of Palm conversion


Subject: [TS] Fidelity of Palm conversion
From: Ben Darnell (bgdarnel@unity.ncsu.edu)
Date: Tue Apr 11 2000 - 17:59:52 EDT


The Palm version of ThoughtStream will not be able to handle all the
features of the desktop version, for obvious reasons. What are your
opinions of how issues related to this should be handled in conversion
between the two devices?

For example, suppose the desktop version allows notes marked up with
HTML. How should the Palm version handle these? Ignore them? Show
them to the user as plain text? Strip out the HTML codes? Should they
not even be transfered to the Palm in the first place? Stripping the
HTML codes seems like the most user-friendly option, but it leads to
loss of markup if the text is changed on the Palm, then synced back to
the desktop. I think that in this case it is clear that showing the
raw HTML as text is the best approach, but this causes problems in
synchronization:

TS-Desktop currently uses MIME types to indicate the type of data stored
in an idea (e.g. "text/plain", "text/html"). TS-Palm uses integers from a
list defined at compile-time. There is no number in this list for HTML,
so HTML notes must be identified as the number for plain text. If the
user changes the text on the palm and then syncs, the conduit will see a
HTML note and a modified plaintext note, which it must try to resolve.
The current behavior is to replace the HTML note on the desktop with the
text note from the handheld. Thus, now the user will see the raw HTML
on the desktop, whereas it used to be displayed properly.

There are several ways to make this work correctly (i.e. not change the
type):
* Add an entry to the Palm version's list for HTML - this works in this
case, but a more general solution is preferable
* Change the type field on the Palm to a string, so that the full mime
type can be specified - I like this, although it does use a lot of
space. Maybe a numeric list could be used for popular types, with
a textual field for unknowns.
* Somehow make the conduit smart enough to recognize that the two notes
were once the same - This is hard to do right. The conduit knows that
the Palm doesn't do HTML, so a text note on the Palm could match a text
or HTML note on the desktop. The problem is that the user could have
changed anything from a single character to the entire note, so there is
no way to match them up (perhaps a heuristic could be employed, such as
using an algorithm like that of 'diff' to determine the amount of text
changed, or simply looking for HTML tags). One solution is to add
locally unique IDs to each item in an idea.

Another example:
Suppose Natrificial finally gets around to releasing their Palm version
of TheBrain and people start using it. A user of this program beams
one or more thoughts to you, which ThoughtStream accepts. Suppose
TB-Palm supports some construct which TS-Palm does not, but TS-Desktop
does. Should TS-Palm discard the data it doesn't understand, or should
it retain it for the use of TS-Desktop?

In other words, should we just accept the fact that data will be reduced
to the lowest common denominator of the applications through which it
has passed, or should we try to preserve the data as faithfully as
possible? The lowest-common-denomiator approach does cause
complications for synchronization, but is the space/complexity cost of
preservation worth it?

-Ben

-- 
Ben Darnell              bgdarnel@unity.ncsu.edu
http://thoughtstream.org
Finger bgdarnel@debian.org for PGP/GPG key 1024D/1F06E509

------------------------------------------------------------------------ You can win $1000 at eGroups! Time-limited offer. Enter today at: http://click.egroups.com/1/2863/4/_/6321/_/955490396/ ------------------------------------------------------------------------



This archive was generated by hypermail 2b25 : Wed Aug 30 2000 - 22:01:01 EDT