-
-
Notifications
You must be signed in to change notification settings - Fork 127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: Adding Kite to list of resources. #183
Conversation
Added a miscellaneous resource called "Kite"
An article brought up in #meta details a long history of controversy between this company and the open source community. See https://qz.com/1043614/this-startup-learned-the-hard-way-that-you-do-not-piss-off-open-source-programmers/. This includes acquisitions of popular open source plugins for Atom and Sublime Text in order to inject them with Kite integrations nobody wanted, and collecting anonymous data from users without their knowledge. That said, this appears to all be part of some advertising campaign gone horribly wrong, rather than wrongdoing on the part of the app itself, which may be a useful tool. As was also brought up in #meta, the privacy policy leaves a lot of questions unanswered and can at best be described as "potentially shady". It reserves the right to collect your entire source code and use it for a number of things, including "marketing purposes". All of this taken into account, I'm rejecting this PR. |
I wanted to add this just because. After some digging I found that they don't save the data to a cloud and let's users see what files have been uploaded and gives them the possibility to delete the files. Even tho of their shady past I personally believe that people and companies should be given a second chance, especially when the application seems to be really useful for all kinds of python users. I will in addition of this, email their feedback address and tell them to be more clearer on their privacy policies. |
"Thanks for taking the time to write in! We really appreciate the information and will be updating our privacy policy in the coming days. To address your immediate personal concerns, you can rest assured that we no longer sync your code for any reason. If you were using the cloud version of Kite previously, you can visit your account settings to delete your code. Best, This is the response I got by emailing the company addressing the issues that was brought up in the discord discussion. |
This does seem really useful. Further discussion? |
I'm not a fan of this at all for the reasons @heavysaturn listed above. I'm also not quite sure what editor plugins have to do with resources. If we were to include editor integrations for Python in the resources, I'd much rather see something open-source-first like jedi. |
I also agree with @heavysaturn and @jchristgit. There are way too many plugins, so adding one will start a cascade of people wanting to add more that they use for their own personal setups, but a developers environment is highly individual and will not apply to large numbers of people who have their own preferred editors, environments and tastes. With that just alone, I would agree with the closing of this ticket. I also respect the extent you've gone to contact them and verify if they sync code, it doesn't retract the fact they |
I just figured I'd weigh in on this one since I was the person to suggest this be added to the resources in the first place.
Jedi looks neat, but its reference implementation is a Vim plugin and the documentation states that there are IDE plugins available while exclusively linking to plugins for text editors, and an IDE that I don't think any of us have ever heard of. It also doesn't really compare to Kite at all, from what I can see. |
Thanks @gdude2002 for the clarifications. It's appreciated, as I got a heavy impression from the description in the PR diff (seeing as there's zero detail in the initial PR message itself) for this resource that the tool is heavily reliant on editor integrations, making it primarily a plugin tool.
Since gdude's explanation of the tool seems a lot better, it would be good if the resource description could be rewritten to better reflect it, and to ensure the plugins are an optional extra that provides the extra feature of In the support response given to @landizz, it's indicated there may be a privacy policy update coming in the short term that may address the issue of them forcing users to agree to read, share and use any of the user's code. If the privacy policy issue is addressed, and the description is edited to better describe the tool, then I'd say I have no further issues with the addition. A small recommendation for the future, please ensure the initial PR message contains as much detail as reasonable regarding the additions or changes you're implementing, along with your thoughts and justifications for it. In this case, the tool wasn't well represented, and there was no detail at all present. |
I forgot to mention this before, but the tool does require an account. I'm not sure why. |
Marketing maybe 🤔 |
First time I made a contribution, pull request and many other things so I am sorry for not making it clear enough. The description is copy and pasted from their own website because I thought they would best be able to describe their own tool, rather then a outsider (me) making up a description of the tool which would most likely be somewhat inaccurate in the description of it's functionality and technique. @scragly In hindsight I should have let @gdude2002 make the PR as he is more qualified in many ways. I was however encouraged to do the PR and I appreciate that, but it would most likely have been presented in a way that would have had a better chance of acceptance. But on the other hand, you need to experience things to get better so thank you @gdude2002 and @heavysaturn for the encouragement. I appreciate all your thoughts on the matter and I sincerely hope the Kite team will update their policy to be more clear. I put heavy emphasis in the email on the fact that they have a great opportunity here to get free publicity if done correctly, so there really isn't any reason for them to not do it. Unless they truly are shady in some way. |
Nah, it's good you decided to do it yourself. You've had a chance to get acquainted with the system, and you've been given feedback to consider for the future. Don't let some corrections get you hesitant to contribute when you feel something is worth contributing. I hope to see the ticket updated with the good news sometime about the policy updates and at that time we can collectively decide on a better description for the tool if it's deemed appropriate to add as a resource to the site. Regarding the wording coming from their website, it's pretty common that marketing blurbs don't fit perfectly in objectively describing their tool, because they have something to gain by adding assumptions or focusing on certain features. No major issue, just means a little extra thought for us all when we need to decide on what suits best. |
Kite sent me an email last night. Heres the link from the email: https://www.kite.com/blog/launching-line-of-code-completions-going-cloudless-and-17-million-in-funding/ |
That sounds promising. Can someone actually use the tool for a while and then we can consider adding it to our resources when someone has first-hand experience with it (and don't hate it) rather than just "hey that looks cool" ? |
@@ -409,6 +409,18 @@ | |||
"url": "https://www.issuehaven.com/" | |||
} | |||
] | |||
}, | |||
"Kite": { | |||
"description": "Kite's powerful editor integrations allow you to work uninterrupted on the same screen. Need to see examples and documentation? All the information from Kite's Python documentation is available right in the editor copilot — no web browser needed.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This description will not do, if we decide we want to merge this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have come up with a new description, please give some feedback on it.
"A plugin tool for several popular editors that also runs alongside the editor as a application. The plugin provides extensive code completion and the application will give you detailed documentation on-the-fly based on what parts of your code you have selected, whether that be standard library modules or non-standard library modules."
Edit: Made it more clear that Kite consist of a plugin and a application.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought the plugin was just an addition to it? There's plenty of other editor plugins which do this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is a plugin, but it is also a application that runs alongside the editor to provide the documentation. I should improve the description to make that clearer.
The following are important points as of the moment then:
Due to the lack of Linux support, I'm personally unable to test it out, otherwise I would happily do so. |
I have used it since the day I found it (11 days ago), I am not a consistent or a daily coder (I code in small bursts when I get the motivation for it). From my experience with it, it provides quite good documentation (main part why I use it). I've noticed sometimes that it's not that quick or even responsive when I click certain parts of my code and the application alongside is getting the documentation. I have fixed this issue by a simple restart of both the editor and kite application when it happens. This usually happens after having both the editor and Kite application running for several days and when I put my computer in Sleep mode. When it comes to the content of the documentation it seems good. From what I can tell it only pulls up documentation and reacts to functions, when I select syntax like "for, not, else, if" it will not give any information but when I select "print(), re.compile() etc..) it will give me documentation. When it comes to functions contained in modules or the module itself like "re.compile()" or "re" it will give me a list of functions within that module and makes that list into links which I can press to get more information about that specific function. It works on some, but not on all non-standard modules. In my current project I use 2 modules outside of standard lib, those modules are "Tika" and "openpyxl". The application can give me documentation on "openpyxl" but not on "Tika", I'm guessing this is because "Tika" is not as well known or used compared to "openpyxl". Oh yes, it also reacts to and provides documentation on exceptions. I will attach 2 screenshots giving examples on the documentation from the exception "OSError" and the module "openpyxl". |
As of now, there hasn't been enough comment or support from staff to really push this through. For now, while we're working on doing a Feature Freeze, we're going to go ahead and close this. It can be readdressed after the freeze is over. |
Just an additional note for this particular topic. Now that Kite supports Linux, I figured I could take a more in-depth dive. First and foremost, you no longer need an account. The copilot still prompts you to login the first time you install it, but there's a "continue without email" button, and it'll work just fine without it. Once of the nicer PyCharm features: Also, you can still disable metrics. I thought that, being on Linux, I could easily analyse the traffic this thing generates. I thought wrong, as it turns out. I was able to capture a few things with mitmproxy, but even setting up an entire VM and shoving the whole thing down mitmproxy via SOCKS didn't really get me that far. I was able to glean a few things, though:
This was where I got stuck. I was able to run the When running the Kite copilot via These were all POSTS containing a single JSON object: So clearly what's going on here is that - at least for metrics - the Kite copilot is sending the metrics to the local Unfortunately, that's about as far as I could get - I attempted to unblock Segment on my network, but I couldn't get the change to stick. I'm not convinced Kite is doing much shady work here. Looking at the type of help it gives you in your editor, it appears to show common usages for whatever methods you're working with. It does raise a question, though.. Obviously, it's getting these common usages from somewhere. Considering it includes a string constant here, I would not recommend using it without disabling the usage metrics. Thankfully, there is an easy toggle for that in the copilot settings - enabling that is a must, at least until we have more information on what's collected. While the features are legitimately useful, and are even a big improvement on the way PyCharm handles these things, caution is advised. If anyone has any other bright ideas on how I could do more network analysis, please let me know! |
After another discussion at a meeting, Kite has been voted against being added to the resources page. Aside from all the previously mentioned concerns regarding the company's controversial history, it's something that's just not really, in and of itself, a resource for learning, instead being more suitably described as a tool. We don't want to open up entries for tools at this time aside from the existing curated list of editors, lest we bombarded by more tools requests in the future. In the near future, we'll be likely revisiting the resources page to clean up any other things that may possibly fall under the same category of being primarily a tool in order to keep the page as simple and pure to its purpose as possible. |
Hi guys, just chiming in here to provide some perspective from a Kite employee... First, we totally respect your decision to not include Kite in the resources page and sincerely appreciate the effort that was taken to perform the necessary due diligence. We're going to keep improving the product regardless, so that it provides value to members of this community should they choose to use it on their own accord. Second, I'm personally very impressed with the work @gdude2002 put in to figure out what Kite's doing under the hood! I understand how there can be concerns around data and privacy, so I want to both:
This is going to be somewhat of a long comment, so I'll try to organize it as clearly as possible. Where do function usages come from?To address this concern:
Internally we call usages like these popular patterns. For functions in publicly available packages such as So in the screenshot posted above, Kite is saying that based on publicly available code in GitHub, Unfortunately, if an open source developer doesn't adhere to best practices and stores a secret in a public file on GitHub, Kite may expose the secret depending on the popularity/ranking of the pattern the secret is used in. We're aware that this is an issue, and are working on a change to this feature to make it more user friendly and also to prevent the display of secrets. The methodology to find popular patterns is exactly the same for local functions defined in your codebase. It may not be clear, but we don't transmit your function patterns over the network, and all the analysis done on your code happens on your own system. What data does Kite collect from your system?Our privacy policy contains a pretty comprehensive description of what we collect, but there are a couple of points worth reiterating.
Finally, for those curious about what the
This call tells It's important to note that the I hope this helps shed some light on what Kite is doing with respect to sensitive data. Please feel free to email feedback@kite.com if you'd like more info on the internals of Kite. I could write an encyclopedia on it, but I'm not sure how many people would be interested in reading it. 😅 |
Hey @its-dhung, thanks for responding - appreciate the explanation, it covers a lot of stuff I wasn't able to dig up on my own. I get quite a lot of use out of Kite personally, and it's definitely interesting to see Kite team members leaving comments like this! I did have a couple questions, if you don't mind me asking:
|
As you noticed, Kite works exactly the same whether or not you have an account. If you do create an account, the benefit for us is that we can reach out to you via email to get feedback. We're constantly talking to our users to learn how to improve.
We have a pretty small engineering team, so we have to be careful with how we allocate our resources. This won't be possible in the near future, given our constraints. I can however try to answer all your questions to best of my ability. I know this isn't quite the same as allowing you to peek under the hood, so we appreciate any level of trust you put in us.
This is a great question. We're currently mulling over ideas on how to improve the documentation experience. If you want to talk more about this, please drop us a line at feedback@kite.com. We take user feedback very seriously and a lot of times it guides how we change the product.
The current thinking is that the consumer "single player" version of Kite will always be free to use. While I can't share concrete details yet, our plan is to monetize Kite by having a version that's useful in a team setting, thereby having engineering teams at companies pay for Kite. So the end goal is to have a B2B business model. One thing I can definitively say is that the consumer product will not be monetized by ads, or by us selling your data to 3rd parties.
The open source issue is a debated topic within Kite. Suffice to say, there are differing opinions about if/when we should do this. Again, given our limited resources, this is not something we'll be undertaking in the near future. As far as requesting features, as mentioned previously, we're always willing to listen. Just give us a shout! |
Added a miscellaneous resource called "Kite"