Prototyping Fedora widgets framework
Ralph Bean
rbean at redhat.com
Mon Mar 16 14:18:02 UTC 2015
On Sun, Mar 15, 2015 at 03:49:29PM +0530, Ratnadeep Debnath wrote:
> Hi all,
>
> As discussed over IRC, I am working on prototyping a framework to
> power generic widgets for Fedora. This framework will allow writing
> widgets for Fedora in Python, mostly.
In general, I think this is a cool idea. We expose *lots* of raw
information via datagrepper.. but it's just a pile of data. Providing
someway for people to query for more structured, preprocessed
information could be neat.
> Basic components
> ==============
> Dispatcher
> ----------------
> Dispatcher is part of a daemon process which keeps on listening to
> fedmsg messages and invoking widgets to save data as needed. Widgets
> can be tied to the dispatcher using signals, observer patterns, etc.
>
> Widget
> ----------
> I define a widget implementation as a standalone entity which knows:
> 1. How to handle raw fedmsg data, format it and save it for enabling
> faster query
I really like part (1). We could pre-process all kinds of data. Keep
statistics and make them all available via API.
> 2. Render data from saved data.
I'm not sure how I feel about part (2). It seems to me like it will
introduce a higher overhead to future changes to the service and more
of the same for people trying to use it.
What if:
- Someone wants to style their widget differently?
- Combine the data from two widgets into some other widget?
- Use only part of the data typically associated with one widget.
To do any of those, would they need to submit a patch to our
server-side code, and then have it be reviewed, released and deployed
before they can make use of it?
How do you feel instead about splitting it up into two pieces:
server-side data denormalization and client side visualization (via a
python lib or maybe better, a js lib?). That way people can query for
the grouped/collated data and then present it however they like. Just
a thought.
> API
> ------
> Provide REST interface to fetch data from a widget for a particular
> entity, say, badges info for a user for UserBadgesWidget.
>
> I have started working on a prototype based on the Observer design
> pattern here[1].
>
> Please provide your feedback on the same. I am also thinking to work
> on a prototype based on signals, to see which prototype allows us to
> expose friendly interfaces for writing widgets.
>
> [1]: https://github.com/rtnpro/fedwidgets/blob/master/fedwidgets/prototypes/observer_pattern.py
Looks like a good start :)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://lists.fedoraproject.org/pipermail/infrastructure/attachments/20150316/de8afa28/attachment.sig>
More information about the infrastructure
mailing list