Live data from Hacker News

Show HN: Kite, copilot for programmers, available for Python

kite.com

181–190 of 257 posts

Re: Show HN: Kite, copilot for programmers, available for Python

#181
post #170

Earlier quoted context omitted.

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.

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.

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

#182

Earlier quoted context omitted.

It works like this: aCollection. list of all the method on given collection pops up. If it's short, just skim it and choose something which appropriate. If it's long: aCollection.l check if there's something similar to length/len, use it, otherwise: aCollection.l c check if there's something similar to count then use it, if not: aCollection.l s check if there's something similar to size and use it. Finally, if all th…

This only works for languages that provide dot-like syntax. E.g. in Python (which is a little bit inconsistent in this regard) the equivalent would be "len()" and I am not sure how it should work there, as there is no context to infer the function/method. I get your point though and there are cases where completion might be useful, but for me the context-switch to a search engine is just not that much of a hassle, bu…

Jedi (I use it with Emacs and auto-complete) does a fairly good job for Python. While the `len` being a function screws things up a little, there are many places where you can still use autocompletion the way I described, specifically:

    import module
    module.
and:

    def meth(self, ...):
        self.
and even:

    foo = Foo()
    foo.
It doesn't work for all possible cases, but as you said, you can always consult Google. It's just that I prefer not to leave my editor if I don't really have to.

OTOH, I work with a lot (10+) of different languages and find even the dumb, basic autocompletion (which only offers to autocomplete words already present in the file) helpful. As other commenters noted, writing aLongAndDescriptiveFunctionNameToCall from memory every time may be inconvenient for two reasons: a) was it aLongAndDescriptive... or aDescriptiveAndLong...? and b) writing this much text takes time, and the more letters you have to type the more probable a typo gets.

Anyway, I think you should give a try to a few different auto-completion plugins/systems and see for yourself. You should probably spend a little time to configure such a plugin so that it doesn't get in your way when it fails (ie. has no good completion to offer), but once you make it so the auto-complete may become really helpful to you. Or it may not, but I think it's worth checking out.

Re: Show HN: Kite, copilot for programmers, available for Python

#183

Earlier quoted context omitted.

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 p…

At first blush, the "we wouldn't be able to ship the entire index along with the client" makes perfect sense. However, I have found that I can store the entirety of the raw Python 2.7 documentation to disk in under 15 MB. It's mostly text, so it compresses absurdly well (2mb, gzipped). And if it was just an index of all the functions with little to no markup, it would be even smaller (this doesn't even account for th…

To support your point, Eclipse has zero problem providing auto-completion with JavaDoc information using nothing but local class files. [0] It will also use source or JavaDoc archives to provide full documentation, if they are available.

[0] I know this, because it's a complete pain to use class files which have been stripped of debug data. Suddenly autocompletes look like "someFunction(String arg0, Thing arg1)" with no other supporting information.

EDIT: Just took a look, the indexes for a few workspaces I have are all under 50MB.

Re: Show HN: Kite, copilot for programmers, available for Python

#186
post #137

I just tried Kite on my Mac, and I was really not pleased with it. Uploading all of your code to the cloud is questionable at best when the code you're working on isn't necessarily your own. Having Kite running in the background without a way to disable or uninstall it feels like nothing short of malware. The lack of documentation for how to uninstall Kite from your machine or how to remove your data from their cloud…

The developers of Kite also replaced the functionality of a popular python autocomplete Atom extension from using jedi to Kite without properly warning the users: https://github.com/autocomplete-python/autocomplete-python/i...

The CEO's response in that thread is very clear that they added an additional option to use Kite, and did not make Kite the default or replace the default.

Re: Show HN: Kite, copilot for programmers, available for Python

#187
post #169

Earlier quoted context omitted.

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.

What happens when someone inexperienced pushes their SSH private key to Github? Isn't that same as not specifying a .kiteignore file?

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

#188
post #170

Earlier quoted context omitted.

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.

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 t…

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

#189
post #32

How do I uninstall Kite on OSX? It seems you guys keep a Kite Helper and Kite Engine process up that's impossible to quit out of and prevents me from deleting the app.

Sorry about this - it's embarrassing. We've been snowed under getting Kite ready for launch and didn't want to touch the update mechanism right before launch. We _will_ get this fixed ASAP. In the mean time, check out http://help.kite.com/article/6-how-do-i-uninstall-kite

I disagree with your decision on what feature set was necessary to be launch ready. Not to put too fine a point on it but I think it's worth saying out loud that software that users can't quit out of is not ready for launch, especially if your docs clearly state that quitting the app is required for uninstallation.

Re: Show HN: Kite, copilot for programmers, available for Python

#190

Why are you encrypting my password (as opposed to hashing it)[0]? [0]: http://i.imgur.com/59VOotU.png

Oops! That message is a remnant of the distant past and does not correspond in any way to what is actually happening under the hood.

In that case, what exactly is happening under the hood?
Post reply on HN