Re: [Banshee-List] anonymous usage data



El 12/02/10 00:21, Gabriel Burt escribió:
> Hey all,
> 
> I've long wanted to instrument Banshee so we could get feedback on how
> users use the app.  Assuming that it is opt-in and anonymous, what do
> people think?
> 
> Here are some things that would be useful to capture:
> * Which extensions are enabled
> * How long/frequently Banshee is run
> * Track counts for libraries, podcasts, radio, etc
> * Total play count / skip count
> * How many tracks are rated
> * What file types
> * What DAP models the user uses
> * Version of Banshee, Mono, GStreamer, Gtk+
> * What distro/OS
> 
> It could be useful to hook into the Gtk+ layer to find out how exactly
> people use the app - what GtkActions they invoke (and ideally how -
> main menu, context menu, keybinding).  Obviously there are thousands
> of things that could be tracked by such an approach.
> 
> I'd want to work on this in a very transparent way, disclosing very
> clearly what is being tracked, so that people can make an informed
> decision about opting in.  Thoughts?

This is great Gabriel.

One suggestion: disable, or mark the uploaded stats with a
meta-attribute, like DEV|USER or DEBUG|RELEASE, or simply disable this
capability in DEBUG mode, because we developers use Banshee a lot in
much different way than users (for example, for our tests, we may repeat
a specific feature a lot), which could be misleading for the results.

And one more idea: collect asserts a-la Mozilla Talkback tool. For
instance, we normally don't want the application to crash when an
expectation from a developer wasn't met in some part of the code,
because it's bad user experience. However, if we don't crash, the user
won't report the bug straight away. But there's the best of both worlds:
using an automatic talkback tool, not only for crashes, but with asserts
that do not cause a crash (this new aspect wouldn't be covered by the
current capabilities of the MozillaTalkback tool AFAIK).

I've covered some thoughts on this bug:
https://bugzilla.gnome.org/show_bug.cgi?id=609907

One example of this are the comments I wrote in the first patch of this bug:
https://bugzilla.gnome.org/show_bug.cgi?id=609315

For example, take this line from the patch above:
//Assert.IsTrue (source.TrackModel.SelectedItems.Count > 0)
We could convert it to:
if (Assert.IsTrue (source.TrackModel.SelectedItems.Count > 0)) return;

In a first version, the Assert class could just send feedback to
banshee-project's server metrics and return true when there is a
problem. In the future, it could communicate to bug-buddy in a wider way
(as a general Gnome practice) to send feedback, as explained in the
first bug mentioned above.

To put an example of where we could use this in *current* banshee code:
places where we throw an error of type "feature X is not implemented yet
for Y class". For instance, look for all the virtual methods that can be
found in DatabaseSource.cs, Source.cs, etc. having this. Certainly, if
the running app reaches this code, it's a bug that should be fixed. Some
of these calls end up calling Log.ErrorFormat(), so we could call the
BansheeMetricsAssert from there.

Thoughts? Is this desirable so as I can work on it or helping?

Thanks,

	Andrés

-- 





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