News for hackers. Stuff that matters.
Re:Show HN: Kite, copilot for programmers, available for Python by adamsmith on Tuesday March 28, 2017 @12:30PM (#13978033)
Adam from Kite here. Thanks for all the feedback and encouragement around the launch today. We're excited to be opening up Kite for everyone to download today.

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.

Re:Show HN: Kite, copilot for programmers, available for Python by djsumdog on Tuesday March 28, 2017 @12:43PM (#13978168)
Does Kite still send all your code to Kite servers as you type? I remember that being an issue the last time someone talked about Kite on HN.

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.

Re:Show HN: Kite, copilot for programmers, available for Python by srj55 on Tuesday March 28, 2017 @12:55PM (#13978287)
I would love to use this, but I'm not willing to send my code to Kite.com. Sounds great for open source projects!

Sorry.

Re:Show HN: Kite, copilot for programmers, available for Python by johndevor on Tuesday March 28, 2017 @01:33PM (#13978671)
They need to offer a downloadable version of everything. I won't use it for this reason as well.
Re:Show HN: Kite, copilot for programmers, available for Python by alexflint on Tuesday March 28, 2017 @01:28PM (#13978616)
(Copied from above.) Totally legit concern. when we started working on this we realized if we wanted to index tens of thousands of libraries, we wouldn't be able to ship the entire index along with the client. Hence the cloud-based architecture. We've thought a lot about privacy and written up our thoughts here: kite.com/security. The short answer is: we don't index anything on your computer that you don't explicitly ask us to, and our plan is to earn trust the hard (i.e. only) way: transparency, published policies, and a track record of good decision making.

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.

Re:Show HN: Kite, copilot for programmers, available for Python by andy_ppp on Tuesday March 28, 2017 @01:32PM (#13978659)
Would it be possible to allow a # nokite at the end of lines; these would then have any strings scrambled. This allows me to know immediately that things aren't being sent to Kite rather than have to do a few checks before I write something secret.
Re:Show HN: Kite, copilot for programmers, available for Python by sroussey on Tuesday March 28, 2017 @01:54PM (#13978878)
Actually, it should just remove strings if it does not already.
Re:Show HN: Kite, copilot for programmers, available for Python by alexflint on Tuesday March 28, 2017 @02:38PM (#13979350)
Good idea - will look into it.
Re:Show HN: Kite, copilot for programmers, available for Python by mattmanser on Wednesday March 29, 2017 @04:56AM (#13984462)
Oh no, not tens of thousands of indexes! My 5 Mb hard-drive just couldn't handle it.
Re:Show HN: Kite, copilot for programmers, available for Python by srtjstjsj on Wednesday March 29, 2017 @01:17AM (#13983627)
> when we started working on this we realized if we wanted to index tens of thousands of libraries, we wouldn't be able to ship the entire index along with the client.

Why not? that's a _tiny_ amount of data for a modern computer.

Re:Show HN: Kite, copilot for programmers, available for Python by hasenj on Tuesday March 28, 2017 @01:53PM (#13978867)
How many GBs would the database take on a local machine? Wouldn't it be possible to pick and choose what libraries to include in it?

I'd rather have a few gigabytes on my machine than have all the code I write automatically in the cloud.

Re:Show HN: Kite, copilot for programmers, available for Python by rdslw on Thursday April 06, 2017 @03:36PM (#14053872)
I think this answer (which you used in few places here) does not address concerns people raised all over:

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.

Re:Show HN: Kite, copilot for programmers, available for Python by askvictor on Tuesday March 28, 2017 @05:52PM (#13981061)
Why not just use .gitignore as a default (if local indexing is enabled)?
Re:Show HN: Kite, copilot for programmers, available for Python by hundchenkatze on Tuesday March 28, 2017 @01:13PM (#13978458)
I can't speak to whether they still send up all code as it's typed, but I think, for now, they're addressing this concern by offering Kite Enterprise, https://kite.com/enterprise which allows you to run kite on your servers.
Re:Show HN: Kite, copilot for programmers, available for Python by StyloBill on Tuesday March 28, 2017 @12:52PM (#13978262)
I think the answer to your question is :

"* Fine-grained privacy controls modeled after the .gitignore file format means that you can selectively and precisely decide which files and folders Kite indexes."

Re:Show HN: Kite, copilot for programmers, available for Python by Karunamon on Tuesday March 28, 2017 @01:14PM (#13978469)
Unfortunately, that means that a really simple app where a developer hardcoded something like an API key, and didn't put it in a separate file they told Kite to ignore, will get uploaded.

Any system that relies on people following best practices is doomed in the real world :(

Re:Show HN: Kite, copilot for programmers, available for Python by Cyph0n on Tuesday March 28, 2017 @01:23PM (#13978558)
You mean like Git?
Re:Show HN: Kite, copilot for programmers, available for Python by Karunamon on Tuesday March 28, 2017 @01:25PM (#13978573)
Git isn't generally configured to automatically upload your files as you type or as files are saved.

There are things like GitFS, but I imagine those aren't part of an average developer's workflow.

Re:Show HN: Kite, copilot for programmers, available for Python by Cyph0n on Tuesday March 28, 2017 @05:11PM (#13980763)
My point is that an inexperienced Git user can push their secrets to Github for example, just like a Kite user who doesn't specify a .kiteignore.
Re:Show HN: Kite, copilot for programmers, available for Python by Karunamon on Tuesday March 28, 2017 @06:05PM (#13981189)
My point is that it's a lot easier to happen accidentally when the upload happens automatically and without intervention. With git, you directly specify what files you're committing (with the .gitignore as an additional safety net) and when that commit happens. It's all manual.

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).

Re:Show HN: Kite, copilot for programmers, available for Python by Cyph0n on Tuesday March 28, 2017 @06:43PM (#13981517)
Again, I go back to your whole issue with how an inexperienced user of Kite can easily shoot themselves in the foot. The same applies to Git: 'git add .' and push.
Re:Show HN: Kite, copilot for programmers, available for Python by anonymousjunior on Tuesday March 28, 2017 @11:28PM (#13983127)
Yes, you are correct in that an inexperienced Git user can mess up, I won't deny that. My issue here is that Kite requires you to proactively place a .kiteignore, before even whitelisting a directory. It also doesn't alert you that it's about to start indexing the files in the directory tree or that you need to add a .kiteignore to protect sensitive files before you whitelist them. At a minimum they should be respecting the existing .gitignore, and realistically they just be scrubbing all strings before sending any data.

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')

Re:Show HN: Kite, copilot for programmers, available for Python by waisbrot on Tuesday March 28, 2017 @01:58PM (#13978930)
You can run your own git repository (it's really easy). And most of the Git-service providers offer an "enterprise" version where you can self-host.
Re:Show HN: Kite, copilot for programmers, available for Python by Cyph0n on Tuesday March 28, 2017 @05:11PM (#13980758)
What happens when someone inexperienced pushes their SSH private key to Github? Isn't that same as not specifying a .kiteignore file?
Re:Show HN: Kite, copilot for programmers, available for Python by ino on Tuesday March 28, 2017 @06:43PM (#13981516)
To do that, you have to commit and push. With kite, you might not even realize it uploaded something it shouldn't have.
Re:Show HN: Kite, copilot for programmers, available for Python by Cyph0n on Tuesday March 28, 2017 @07:49PM (#13981983)
We're talking about inexperienced users, so it sounds pretty much the same to me. Case in point: go search for API keys on GitHub.
Re:Show HN: Kite, copilot for programmers, available for Python by Twirrim on Tuesday March 28, 2017 @04:58PM (#13980643)
That reads like "enabled by default, denied only on request"
Re:Show HN: Kite, copilot for programmers, available for Python by askvictor on Tuesday March 28, 2017 @05:51PM (#13981051)
Another post somewhere here from a kite Dev said that your code is only indexed of you explicitly allow it.
Re:Show HN: Kite, copilot for programmers, available for Python by hasenj on Tuesday March 28, 2017 @08:11PM (#13982117)
Does installing Kite and clicking "I agree" on a legalese dialog count as explicitly allowing it?
Re:Show HN: Kite, copilot for programmers, available for Python by heroprotagonist on Tuesday March 28, 2017 @07:24PM (#13981819)
This is tempting, particularly when learning new libraries, but it seems like it could be resolved with an offline database at some point instead of a hosted cloud service. This would probably improve performance a bit (in terms of responsiveness, rather than accuracy).

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.

Re:Show HN: Kite, copilot for programmers, available for Python by AtheistOfFail on Tuesday March 28, 2017 @11:51PM (#13983246)
I know this is your baby and all, but how high was your team (high as a kite?) when they thought sending every line of code to your server was a good idea?

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.

Re:Show HN: Kite, copilot for programmers, available for Python by ako on Wednesday March 29, 2017 @01:17AM (#13983625)
Is it really that much worse than having code on a private GitHub repository or pushing Python code to a paas platform like pivotal?
Re:Show HN: Kite, copilot for programmers, available for Python by AtheistOfFail on Wednesday March 29, 2017 @01:40AM (#13983730)
True, but Github and a PaaS platform tell you that your data is leaving your computer. It isn't something that happens in the background from a simple autocomplete application.

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.

Re:Show HN: Kite, copilot for programmers, available for Python by Bedon292 on Tuesday March 28, 2017 @03:41PM (#13979946)
How intertwined is the completion and the indexing? Could I .kiteignore * and then still use the functionality for completion and documentation on public code? Would it just send API calls based on the functions I am calling or something like that? I cannot send my code to you, nor will I be able to convince my company to pay for an enterprise version. I would pay for a personal version that has some sort of controls in place though.

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.

Re:Show HN: Kite, copilot for programmers, available for Python by jcwayne on Tuesday March 28, 2017 @01:40PM (#13978727)
This would be a winner if the indexing were done locally and only usage data regarding public packages were sent to kite.com
Re:Show HN: Kite, copilot for programmers, available for Python by m_fayer on Tuesday March 28, 2017 @01:18PM (#13978501)
This looks truly useful and innovative, well done!

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.

Re:Show HN: Kite, copilot for programmers, available for Python by adamsmith on Tuesday March 28, 2017 @02:40PM (#13979371)
Hi there!

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!

Re:Show HN: Kite, copilot for programmers, available for Python by cdnsteve on Tuesday March 28, 2017 @07:48PM (#13981971)
Very nice editor add-on. Looking forward to the Enterprise info as more becomes available.
Re:Show HN: Kite, copilot for programmers, available for Python by devy on Tuesday March 28, 2017 @05:30PM (#13980899)
How do I kill "com.kite.KiteHelper" from memory? It keeps reviving.
Re:Show HN: Kite, copilot for programmers, available for Python by curiousgal on Tuesday March 28, 2017 @12:51PM (#13978253)
> And Linux in testing!

Awesome!

Re:Show HN: Kite, copilot for programmers, available for Python by mehaveaccount on Tuesday March 28, 2017 @03:14PM (#13979707)
My first time hearing this. I would love to drop some coin if it improves my life, and I think a service like Kite was just waiting for someone to make it happen. I'll test out your demo version today to see if it helps