Glavin001/atom-beautify

Google Analytics

Glavin001 opened this issue ยท 23 comments

  • Track most popular languages beautified (so we know what to prioritize development on)
  • Track atom-beautify version number
  • Track unsupported grammars
  • Switch to using Segment.io, with write key u3c26xkae8.

@Glavin001 commented on 12 jul. 2014 15:55 CEST:

  • Track most popular languages beautified (so we know what to prioritize development on)

Do you have a priority list that you can post here?

Here's what I see on Google Analytics:

image

These metrics are records of each time beautify is applied. JavaScript and HTML are still the top, and a number of users are beautifying Atom editor when it has not detected a grammar, hence Null Grammar.

My priorities would be to help those languages used the most, however this is not always the case, as some issues are much more drastic bugs and should be fixed first.

Hope this helps!

Great info! ๐Ÿ‘ JavaScript clear winner, HTML used a lot too. Didn't expect PHP to be there.

It might be interesting to log which extensions cause the Null Grammar, so you can have a prioritized todo-list for future languages.

I'm also wondering if those Null Grammer are caused by traversing the tree when Beautify Directory or when manually forcing to beautify a not supported file.

Here is the applicable code for tracking events with analytics: https://github.com/Glavin001/atom-beautify/blob/master/lib/language-options.coffee#L502-L510
Using Segment.io: https://github.com/segmentio/analytics-node

It might be interesting to log which extensions cause the Null Grammar, so you can have a prioritized todo-list for future languages.

Using extensions is a good idea. Maybe a hybrid: <grammar>:<extension> for event, such that it'd be Null Grammar:ext.

@Glavin001 commented on 16 feb. 2015 21:57 CET:

Using extensions is a good idea. Maybe a hybrid: <grammar>:<extension> for event, such that it'd be Null Grammar:ext.

That sounds like a great idea.

Besides that I can't find where the literal Null Grammar is coming from, my CoffeeScript knowledge is too low to make a PR.

Where is the Analytics User ID supposed to come from?

Terrible

Could you make it 'opt-in' feature rather than an 'opt-out'? I'll happily enable it even after that ๐Ÿ˜„

Too bad. I love this package but I'm too worried about privacy. This feature should be clearly mentioned in the README file.

I am open to Pull Requests addressing concerns. However, at the current time I am unable to allocate time to this.

Applicable section of code: https://github.com/Glavin001/atom-beautify/blob/master/src/beautifiers/index.coffee#L212-L229

I would be happy to accept Pull Requests regarding:

  • Improving README with more information
  • Changing how analytics are tracked to ensure the user can said yes first
    • Set analytics option to default to null: https://github.com/Glavin001/atom-beautify/blob/master/src/config.coffee#L12
    • When track is called:
      • check if analytics is null, if so, show user a prompt asking if they are okay with tracking (Yes / No).
        • Prompt message should explain what is currently being tracked (language beautified, errors, performance/timing)
        • Do not track analytics if null (only when true)
        • If Yes, set analytics to true
        • If No, set analytics to false
      • check if analytics = true
        • track analytics
      • check if analytics = false
        • do no track analytics
    • Thus, all users would have to have explicitly confirmed that they do or do not want analytics tracked
      • User will not be tracked until they answer explicitly yes
      • user will see prompt every time they beautify until they select either yes or no (no longer null)

I'm too worried about privacy

I'm not really sure what privacy concerns there are and how useful this data is.
You can see in the source code what exactly is being tracked.
It is useful to me as the maintainer and a developer to understand which languages/beautifiers have the most bugs/errors and which languages may not be supported and therefore should be added to Atom-Beautify.


For anyone concerned with this, I encourage you to make a Pull Request based on my outline above. That is all I can do, and since I do not have the time to do it right now, it is therefore up to you to contribute and resolve your issue. We are part of the open-source community. We can all contribute to improving this package such that we are happy with it. As always, please let me know if you have any questions.

@Glavin001 the issue has to with the fact that Google has data about me which they and not you own. Anything that uses Google analytics faces this issue. Basically you're forcing users to submit data to a third party without them knowing or having consented to.

This is borderline illegal in the EU. Also, in two years time, no data about European citizens can be stored in US servers, which is what's probably happening right now.

Thank you for further explaining the issue. I definitely would like this resolved.
Please feel free to submit a Pull Request and I will review, merge, and publish it ASAP. If you have any questions about the source code, please let me know and I will be happy to help as much as I can. Thank you.

I have added a section to the top of the README: https://github.com/Glavin001/atom-beautify#important-notice-analytics
Please submit a Pull Request if you would like to improve the verbiage.

As said above, unfortunately I am unable to make the necessary changes (at this time) to Atom-Beautify such that there is an interface walking new users through the analytics and receiving confirmation. Google Analytics was put in place a fairly long time ago when there were less users and Atom-Beautify was changing rapidly with the intent to better understand the needs of the users and where improvements should be made (catch errors, improve most used languages support, etc).
I encourage everyone to contribute to the Atom-Beautify code so we can resolve any of these concerns you have. Thank you.

Thank you @Glavin001!! That was really quick and useful. Personally, I think that's all that's needed. User knows what's happening and can easily opt out/in. Very clear

Excellent! I'm glad this works! I actually thought there was already mention of analytics in the README and that maybe it was too far down on the README, however it turns out that must have been a different project because there was not a note except in the options documentation. Thank you for bringing this to my attention. Let me know if there's anything else I can do.

Please subscribe to #1179 for further updates. Atom-Beautify will be using Atom's core.telemetryConsent configuration option soon!