47 comments

[ 4.1 ms ] story [ 93.7 ms ] thread
Copilot was not the first GPT-3 editor out there. Now that the editor thinks for us, free software is more important now than ever before. A transparent pipeline from thought to paper.

I would like some assistance.

How useful do you think has it been, for your own personal use cases?
I agree, the thought of hoards of developers sending their code to Microsoft (or AWS via CodeGuru) to train their proprietary semantic model is disturbing, because of the potential network effects. They suck right now and have a lot of problems, and I hope they either stay that way, or that something open like this supersedes them.
Hold up. Is everyone talking about this thing as if they're going to use it on proprietary code?

I only ever pictured using it on open source stuff if it turned up decent

If folks are looking at this thing like "that's going right on my work PC" I would highly recommend reviewing your IT usage policy first. Yikes.

I was thinking the opposite, for the audience you're describing.

"Can't get into trouble if it's never published publicly"...which is wrong, obviously.

(comment deleted)
How do you expect to ensure a "transparent pipeline" when GPT-3 itself is not fully transparent?
Unlike GPT-3, GPT-j from EleutherAI is a free dataset: https://6b.eleuther.ai/. This is supported according to the README.

Edit: it may not be supported right now, but it is mentioned in the Goals section.

Side note but what is going on with this projects commits?
Looks like they are auto-generated on every save.
What a terrifying way to work!
For single author projects it's reasonable.
Why? I also use commit and push as my save with nonsense commit messages. I can't trust that my computer is still booting up tomorrow.
Interesting to see someone doing this, it often comes up that we should actually have more levels of version control granularity than merges and commits. Just need an application of AI to generate good commit messages here :)
That could be interesting but the right structure (off the top of my head) would be a hierarchical layer - not this flat monstrosity!
I use the "undo" functionality in my editor. In emacs it's a complete tree of changes so you can't really lose anything.
True, but that's no guarantee you'll ever be able to actually find it.
It's something but it's ephemeral and not shareable. You can't reconstruct how a piece of code got written weeks later, to eg recover some debug helpers you deleted without committing because you thought you were done with debugging it.

But thanks for the tip about Emacs undo tree, didn't know about that. With some add-ons you can apparently eg find undoable changes for only some region of a buffer, etc.

You can also setup undo-tree to show a diff for every change.
> With some add-ons you can apparently eg find undoable changes for only some region of a buffer, etc.

This is built into Emacs (no add-ons needed). Calling undo with a region selected undoes changes only in that region.

I actually disagree with this because I think you should try to have the project even vaguely work at each commit, so "git bisect" will work. But maybe each commit could be a log of keystrokes instead of a text diff.
Had a co-worker once whose commits in Perforce (where it's called "Submit") made us joke that he had probably bound Ctrl-S to "Submit". Apparently it wasn't as unlikely as we thought .
.. i wish you hadn't made me look. That is painful.
PyCharm has local history that tracks non commit diffs and it has saved my day many times
A prompt for touching up those commit messages would be awesome!
This should probably have its title edited to include the prefix Show HN, since it's posted by the main author. But, neat!
Should this say “GPT” instead of “GPL” in the title? I find it pretty confusing right now.
Got me confused, too. It's GPL-licensed and uses GPT.
I thought it was a model only trained on GPL code, which would be interesting but I guess would cost a few million to make.
The author had a rather colorful post to /r/emacs that has been edited significantly since, but some of the color remains in the comments: https://www.reddit.com/r/emacs/comments/oapa2l/help_building...
Some of the comments almost seem like the author is using GPT for lots of things.
And seems to be praising GPT/Copilot as being amazing, the future, etc? Though with so many deleted comments i'm still quite confused.

Regardless the author and I disagree strongly about the actual usefulness of Copilot. I do think ML could be a huge boon for many human applications, like coding, but it's far far from it. Furthermore Copilot's specific implementation seems to leave much to be desired[1].

To me ML is an infant right now and we're metaphorically and literally expecting that infant to drive a car. ML is in a weird, weird place.

[1]: https://twitter.com/mitsuhiko/status/1410886329924194309

If he is wrong and such tools are of small import then it isn't highly important that Emacs has such functionality. If he is correct and such functionality is essential then all of existing Emacs becomes merely a freemium teaser for Emacs 2021 Professional Edition with AI where they will provide only a fraction of the total value but collect most of the money from the ecosystem.

Worse its not even a license forever, nor even for a period of time. It's priced by the word.

https://beta.openai.com/pricing

It's not a "Copilot for Emacs" though? It's a layer on top of language models APIs made for Emacs.

So, if you use GPT-3, it will not be finetuned further on code like Copilot, only pretrained on data that did contain some code, and also the GPL portion only concerns that API-calling layer, not what the model was trained on, or what it can output (which is what the GPL related mess about Copilot is about).

Is there a tool where I can type garbage and it walks linearly through a git history of creating a new project, compiling, cloning, committing, etc. until my new copy is a replica of the original?

E.g., I set it to vue.js codebase. Then for each key I press it will:

1. create a new file if we're at the beginning 2. for each key pressed, output a character for that file 3. once the file has been "typed", close that one and open the next file and repeat. 4. once the whole enchilada has been "typed", then each key press will spell out "git commit..." on the command line then enter 5. once committed, each key pressed will spell out "git push..." then enter 6. etc. until I've typed the whole history of vue.js!

Maybe a "turbo mode" so I can set N characters for each character I type...

That instantly made me think of this: https://hackertyper.net/
Ooh, almost there!

You know, there could be a kind of "bloat battle" game from this.

* player one tries to keep smashing the keyboard to "write" code and "commit" new features until the program can read email

* player two smashes keys to add low-effort issues to the tracker, post FUD to the mailing list to slow down the process, and add subtly wrong features for review on merge requests

Like hungry hippos except it translates directly to real world experience

I'm trying to get it going in a docker container asap.. I was slaving away on that today
Bonus-- if you pull it off I think it technically qualifies as a quine. :)
More wasted hours on this nonsense I see.