Vincent Massol said:
Very nice Niels!
I think it would be great to have a similar interface for XWiki Watch
one day.
Thanks!
I agree that there is potential overlap between what I'm doing and
Xwikiwatch.
I'm certainly grateful for all the capabilities provided by
http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-core/src/main/…...
Like the feed plugin, it would be great if Xwikiwatch were more
"componentizable" ... and that it didn't require extra AJAX support on the
server side... What would be nice is a collection of little "panel-doclets"
that you can lay out and connect up w/ HTML and javascript. Seems like a
judicious use of iframe-able xwiki "sub documents" (generated by
xpage=plain) into interactive sub-panels which take care of the AJAXy stuff
w/o the extra complexity...
One of the issues w/ Xwikiwatch is the local caching of feed items. This may
be good for a closed intranet, but for internet-wide use as an aggregator,
it raises issues of copyright violation -- storing whole copies of feeds or
feed-entries.
I haven't tried Xwikiwatch with podcast feeds: hopefully, it would end up
*not* retrieving the media enclosure (e.g. mp3, mp4, flv, qt, etc) and just
the description with a link to the enclosure(s).
In order to not violate copyrights w/ xwiki watch, it would be great to have
the existing behavior, except that the the feed item is downloaded from the
original site when the user browses the "watch" page. On Xwikiwatch's end,
it computes the DOM structure of the feed-entry; instead of storing the
potentially copyrighted feed media (or HTML from a scraped web-site), it
stores the digital signature of the DOM subtree for each node...
When the user browses this "transclusion document" (
http://en.wikipedia.org/wiki/Transclusion ), they are browsing the "live"
site; the annotations from the "aggregator" site correctly overlay/highlight
the original document. The two separate documents would attempt to
automatically stay "in synch" by matching DOM structures & associated
digital signatures. The Xwiki overlay annotation document tracks the
original source document as it changes over time. The user is also presented
with markups indicating new changes since the document was last discussed.
Similarly, the same treatment for overlay annotation can be done for
streaming media w/o violating copyrights.
Niels
http://nielsmayer.com
PS: over at project simile, one of the feedbacks I got was "how come you
didn't use Exhibit" to allow selection of categories from the 60+ podcast
feeds you try to present. This is good feedback, as exhibit does offer a
powerful and pretty interface that is remarkably flexible. It would be easy
to dynamically generate JSON data from the Xwiki database to drive Exhibit.
For example, note the JSON data below that creates the presentations below
-- exhibit is doing all the work, which is codified in the "special
language" of the Exhibit JSON file:
http://simile-widgets.org/exhibit/examples/presidents/presidents.js
-->
http://simile-widgets.org/exhibit/examples/presidents/presidents.html
http://simile-widgets.org/exhibit/examples/flags/data.json
-->
http://simile-widgets.org/exhibit/examples/flags/flags.html
http://simile-widgets.org/exhibit/examples/cereals/cereal-characters.js
-->
http://simile-widgets.org/exhibit/examples/cereals/cereal-characters.html
http://simile-widgets.org/exhibit/examples/billionaires/billionaires.js
-->
http://simile-widgets.org/exhibit/examples/billionaires/billionaires.html
(scraping various .gov sites using
http://simile.mit.edu/crowbar)
-->
http://simile-widgets.org/exhibit/examples/senate/senate.html
http://simile-widgets.org/exhibit/examples/nobelists/nobelists.js
-->
http://simile-widgets.org/exhibit/examples/nobelists/nobelists.html
http://simile-widgets.org/exhibit/examples/factbook/countries.js
http://simile-widgets.org/exhibit/examples/factbook/government.js
http://simile-widgets.org/exhibit/examples/factbook/people.js
-->
http://simile-widgets.org/exhibit/examples/factbook/factbook-people.html
http://simile-widgets.org/exhibit/examples/CSAIL-PIs/people.js
-->
http://simile-widgets.org/exhibit/examples/CSAIL-PIs/CSAIL-PIs.html
http://simile-widgets.org/exhibit/examples/cities/cities.js
-->
http://simile-widgets.org/exhibit/examples/cities/cities.html