Things to think about

Hello, everyone.

Two issues:

a.  I think all the results (regardless of which backend they came from)
should be sorted by relevance and displayed with the highest relevant
items at the top of the list.  (This means we'd need to disaggregate the
results -- no longer keeping them grouped back backend.)

b.  I think we need to find a widget that is capable of dynamically
sorting the results as they are generated by Dashboard.  (I propose that
we look at various listview widgets over the html widgets.)

Dashboard (like all programs) has limited screen real estate.  To be
most effective, the results Dashboard provides the user should be sorted
by relevance -- with the most relevant results at the top of the
window.  To accomplish this, I think we need to disaggregate the backend
results and globally sort them be relevance.

Dashboard is currently using the gtkhtml-sharp widget to display
results.  Lately, there has been talk of replacing this widget with an
embedded Mozilla renderer (so we could use CSS).  However, I do not
think that these html widgets will be adequate to accomplish the goals

Presently, Dashboard displays the results in the order it receives them
from the backends.  Subsequently, slower backends will have their
results displayed further down the list even though their results may be
more relevant.  The HTML widgets (such as gtkhtml-sharp and Mozilla) do
not allow dynamic insertions of results.

For example:  Let's say that Dashboard receives a cluepacket and sends
it to all the backends.  Dashboard has a few options for outputting this

1.  Dashboard can display the backend results in a first-in, first-out
basis.  (This is what it currently does.)

2.  Dashboard can wait until all the backends have returned their
results, sort all the results by relevance, then display them.  (This
would be better; we'd have the relevant items at the top of the list,
but we'd also have to show the user a blank list of results or the
previous results [i.e., don't update the display at all] until Dashboard
heard back from all the backends.)

3.  As each backend returns its results, Dashboard can sort them by
relevance (including all the other results it has received so far) and
render the list (i.e., feed the html to the html widget).  When it
receives more results from another backend, Dashboard would have to
resort all the results (including the ones already sent), regenerate new
html and send that to the html widget.  This would continue until all
the backends had reported back to Dashboard.  This option is probably
the best overall, but would possibly cause the html widget to have to
re-render the results list quite frequently and the re-rendering may be
distracting to the user.  (We'll have to test this more.)

If we replaced the html widget with a listview widget that can sort
items itself as it receives them, then this may not cause so much of a
distraction to the user.  Dashboard would simply follow the third option
above and assign each result a relevance metric.  The listview widget
could sort the items as they are added, based on the relevance metric.

Any comments, questions, flames?  :)


Kevin Godby  <godbyk yahoo com>

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]