I'm find with an editor or sidekick that can search stack overflow or duckduckgo or google quickly with a hotkey-- maybe keep snippets you can tag and easily reference-- but sending all my code as I type to a web service is something I'm not willing to do and something most companies won't allow.
Sorry.
One of the big things we've worked on over the past few months is giving users fine grained control of which files are indexed by kite:
- Kite only indexes directories that you have explicitly enabled
- You can create a .kiteignore file (same semantics as .gitignore) to exclude specific files / patterns.
Why not? that's a _tiny_ amount of data for a modern computer.
I'd rather have a few gigabytes on my machine than have all the code I write automatically in the cloud.
1) kite is useless (or at least substantially less useful) if you explicitly disable files/directories.
Example: Customer says: This fridge I bought, poisons my good. Company: If you don't put your food into fridge its not poisoned. Yeah, but it also not frozen afterwards, which was the reason for the fridge! And no files/directories/lines/whatever policy does solve that problem. Partially because of 2)
2) Human errors will kill this. Just google for number of problems around security tokens, sshkeys and other thing commited to github by mistake.
The only solution is LOCAL index only.
"* Fine-grained privacy controls modeled after the .gitignore file format means that you can selectively and precisely decide which files and folders Kite indexes."
Any system that relies on people following best practices is doomed in the real world :(
There are things like GitFS, but I imagine those aren't part of an average developer's workflow.
If I'm testing an app and I want to hard code an API key for testing, and I'm using Github, it's not a problem. I have to explicitly commit that file. Now, I have to both remember that Kite uploads everything, and avoid using that workflow at all, and use the .kiteignore thing (which is another random dotfile in my repo, great).
I can 'git add .' and commit my life away, but that requires much more intention and explicitness than clicking enable on a prompt and continuing your standard workflow (ie: a simple 'vi super_seceret_file.py')
I can see where you might want to index all of my code to add to your store of information about how frequently various functions are used, because "more is better" in terms of training data, but there are plenty of open-source projects that could be polled instead. For my own code, why not simply analyze my existing projects on my own machine without sending it elsewhere?
It's pretty laughable that when one clicks through to the security page, the very first thing beyond the heading of "Security. Built in." is "Kite is Cloud Powered." as though that were a feature instead of a liability.
While directory whitelisting and a .kiteignore seem like decent ways to prevent code from leaking, it's only one small bug away from disclosing a company's proprietary secret sauce to unknowns entities.
Seriously, could just send the object type being "autocompleted"along with the other object types in the same file and gotten better results without the privacy backlash.
The other thing is that a proper 12-factor app separates secrets and keys into environment variables that are not committed to Github or your PaaS. They are added after a deployment which this "product" just scoops up. For reference, here's what a AWS key being leaked on Github leads to (https://www.theregister.co.uk/2015/01/06/dev_blunder_shows_g...). Now, imagine that project that is running in production having to be brought offline because this company leaks thousands of AWS keys that were used in development. It's dangerous, sloppy and stupid, three things I generally try not to mix.
Can you not have it just cache locally based on the requirements.txt or the import lines at the top of the file? Then all you know is what I am importing, and I would be fine with that. Anything more, and sorry, can't do it.
Two things come to mind, apologies if they're already addressed:
The sidebar jumping around in the corner of my eye sounds really distracting, I wonder if there's some way to manually tell it to "update" or some other UX trick to ameliorate that, because the concept is great.
I work in the healthcare sector, and I hope you guys do or will have the reams of datasec declarations and certifications needed for this to be usable in such a regulated context.
We've done two things to address the sidebar motion issue:
1) We've improved the sidebar's motion with an updated layout that creates fewer visual changes, and
2) We've been building deeper integration into the editors, with new UX around completions and looking things up.
Check out the new demo video on the homepage—we think you'll like it! : )
Regarding datasec, unfortunately we haven't gotten to that level of security certifications yet, but we hope to get there soon!
Awesome!
When we launched Kite here on hackernews almost a year ago we were blown away by the enthusiasm for our smart copilot vision. Over 65,000 of you signed up for Kite in the first 72 hours, and over the past year we've been working with many of you to deliver that vision. It's taken a momentous effort, but today we're ready to take off the wrapping paper and open up Kite to the world.
Here's what we've been working on:
* Deep editor integrations: to make Kite better for smaller screens and more integrated into the coding workflow. You no longer have to dedicate a sidebar of your screen to Kite; instead, recommendations from Kite replace your editor’s autocompletions and hover results.
* Fine-grained privacy controls modeled after the .gitignore file format means that you can selectively and precisely decide which files and folders Kite indexes.
* Next generation type inference engine that uses both static analysis and statistical inference over Github. Kite beats PyCharm and Jedi by 32% on a typical Django project, offering more completions when you need them.
* Ranked completions which put the most relevant completions at the top of the autocomplete box using techniques traditionally used in web search.
* Kite for Windows. (And Linux in testing!)
Check it out at kite.com.