Should we start collecting software usage data?

There are many things to do, I would recommend to start with setting up a similar system as used for getting Slicer download statistics:

3 Likes

Thanks for your guidance. I’ll be working on it.

“Should we start collecting user data?”

My answer is a big NO !

And I have this on offline machine, if it wont work offline its garbage. If it collects data and I have to agree to that - its garbage.

Have a nice day.

Great, thanks for the feedback! We discuss this topic very openly for complete transparency and to make sure that everyone’s point of view is taken into account.

As you can see from the detailed discussion above, we absolutely don’t want to change Slicer to some online-only service. That would not make sense and you do not need to worry about that.

The main motivation for collecting feedback from users automatically is that most extension developers don’t get any financial compensation for their work; and their enthusiasm is only kept alive by seeing that people use their extensions. Of course everyone is busy, so people do not take the time to give feedback, which often causes developers to lose interest and give up maintaining and improving their extensions. The idea is that we could collect information about how many people use an extension and make it available to its developer, without requiring any efforts from the user. Of course users can opt out, or we could make reporting disabled by default (but then users would need to take an effort to enable reporting if they want to keep their beloved modules alive).

If you have any specific concerns or have ideas on how to do this well then let us know.

Thanks for replay, my answer was a bit ‘shizo’ but backed by many years and many similar examples from past. Just keep an eye on this ‘future’ and how it is used. It can be beneficial or dangerous for end user and even for project.

I cant demand and I dont demand anything (because I didnt contributed yet to project), I was only opinion. Thanks for reading and taking this biased opinion into account.

Thanks for great software (I dont use it commercially, I use it 100% as hobbyst) :slight_smile:

1 Like

Hi @Bob5 thanks for the feedback:

Can you help describe in specifics the types of dangers that you are most concerned about? That will help guide the progress on this topic. Thanks!

Like … Spying on users? How could it be bad? I have no idea.

For projects like audacity (audio editor) - it had to drop the idea of telemetry but still have a bad PR to this day. But it was big project with lots of people using it, and after announcing telemetry to improve this program - it headed stright to /dev/null. So they have no choice and revert the idea of telemetry.

So, why its bad and why people dont like it?
-the way the data is sent is not transparent, its different than making a text file, that user can read and sending it via email attachment or similar mean.
-data collection dont really improve the software, like really, some of them are getting worse, and use more resources to just collect the data.
-(CubeIDE - for ARM microcontrollers).
-its slippery slope to collect more and more so called ‘telemetry’ data
-if you want to improve software - first improve bug/issue reporting, is it easy to ‘normal’ user, how its managed, what is the outcome?

Just a couple fast thoughts, thanks :slight_smile:

“Spying” sounds bad. But would you call data collection spying if it is all done with the explicit consent and full understanding of the user?

From legal point of view - NO !

From practical point of view - YES of course !

Nobody really reads that stuff, and this fact can be used against user. Its user fault - but still can be used against user (that can assume that nobody will abuse him).

  1. Does program provide a clear and easy way to view all data that will be sent (not only data type but FULL data) before sending?
  2. can user say yes/no before each data send? Decide when, what and how this data will be sent?
  3. can user easily without consequences (that program still works 100% as before), at any time disable / enable telemetry?

These specifics are very useful. We can very easily implement telemetry so that we can answer Yes to all these 3 questions.

Is there any information that you would be comfortable with sharing and any specific data that you would not want to share? (number of times Slicer is started, specific modules or features used; CPU, GPU, RAM, operating system, screen size information, …)

I think its OK, anything above that can be considered “fingerprinting” like kernel compilation, more specyfic hardware details etc. and even more - like accesing files and usage of fule etc. is in my opinion not apropriate. Thank You :slight_smile:

Do you find the hardware details that Steam collects to be acceptable?
https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam

I started working on that here: https://github.com/BerDom-Ing/Telemetry

2 Likes

Following up this morning weekly hangout, sources of the website that will be used to visualize the 3D Slicer application and extensions usage statistics will be organized in the following GitHub repository.

2 Likes

A pull request has been submitted that proposes to add qSlicerCoreApplication::logUsageEvent(QString component, QString event) method, which can be called by modules in Slicer core and extensions to indicate that certain software feature is used. The application itself does not process the event, just emits a usageEventLogged(QString, QString) signal, which can be connected to slots in external modules.

This API can be used for example for implementing an extension that collects usage data and computes usage statistics of various features. If no extensions are installed that processes software usage data then calling qSlicerCoreApplication::logUsageEvent has no effect.

Any questions and suggestions are welcome, preferably at the pull request, so that we have all the discussions related to this proposed change at one place.

2 Likes

I’m working on a repo where I’m developing a website to visualize the usage statistics of the 3D Slicer application and its extensions. So far, I’ve managed to create a bar chart that displays modules and functions. When you click on a bar in the modules chart, it filters the functions chart to show only the functions from the selected module.

I would appreciate a review of the charts and would love to hear any ideas on how to improve them.

Here is the repo: GitHub - BerDom-Ing/slicer-usage-stats: Source code of the site allowing to visualize Slicer application and extensions usage statistics.

It looks like this:

Thanks in advance for your feedback!

I recognize that many of you have had reservations about the use of counters in the Lung CT Analyzer extension. In response, I have removed all counters from the extension. Additionally, due to the mechanism being buggy, all related data have been deleted.

Let’s collaborate to develop a more intelligent solution for this issue.

Wishing everyone a wonderful, counter-free weekend!

1 Like

We are slowly making progress with this. We now have an API in Slicer Preview Release that extensions can use to log usage events:

The plan is that if the user installs the Telemetry extension and gives permission then the usage events can be recorded and aggregated on a server.

2 Likes

NOTE: I think on first iterations of the Telemetry extension we should auto-exclude (or even forbid) telemetry from european citizens because General Data Protection Regulation (GDPR) is very strict. We can always support european users later.

We don’t need to exclude European countries, as long as we don’t store any information that can identify individuals (such as email, IP address, hash created from fingerprinting the hardware components, etc.). Since many people would prefer not to be individually identified anyway, it is probably the best to just not store such information, only anonymous, aggregate data.

1 Like