looking at the thread you mentioned, I noticed that your code only has several lines, how could someone create a package with so few lines of code?
K-means is not really a complex algorithm to implement. You donāt need 1000 lines of code to do that?
That was the issue. Common courtesy requires prior notice to even know the original intent. What if there was already a plan to package it later (there wasnāt)?
Most communities operate in that way to even avoid duplication of ideas and/or projects.
They was no foul play intended on both sides.
While taking you serious I I too have some sympathy for the easily identified person, who first helped to get your code up to speed, and then packaged it for your and our convenience, whos fault is mostly a bit suboptimal communication about plans. That person is now having the community holding public court over their ābehaviourā and with some of our ābig shotsā chiming in, all while not following audiatur et altera pars. Maybe we can call it a day by now.
Thereās no bad blood between anyone. Still collaborating with said person (without any grudges) on the code. This post wasnāt meant to be some attack on anyone. If anything, it was meant to know how the community handles collaborative work.
Ah, that is good then. Should we then wrap it up?
It was wrapped up even before this question was raised.
This thread is still quite useful for anyone dealing in open collaboration. Still, most problematic things in this community get solved somehow which is quite refreshing
FWIW,
- I donāt know who that person is (yes, I am too lazy to find it out, and I donāt care to play detective),
- as I indicated above, I would love to listen to that personās point of view,
- but canāt do this until they actually chime in.
Well, aforementioned person is me, and I would like to explain my side of things. There was some good progress in corresponding thread, but communication through pieces of code and gist became rather problematic. So I put it all together, set up some testing and benchmarking environment and approached topic starter with proposal to continue work in this repo (it wasnāt registered of course, just a bucket for code). I saw it only as a better way to work on the problem and there were no evil intentions on my side, neither I wanted to claim ownership of the code. In hindsight I can see that it was inappropriate and offending, so when I received negative reaction I apologized and removed this repository. In my defense I can say that I was caught in the process and thought more about the problem itself and less about legal/property issues.
This is all just misunderstanding and miscommunication, and I feel rather sad that it turns out like this. I hope no damage has been done to anyone.
Thank you for clarifying this, I really appreciate it.
I hope that the resulting code is not lost and will eventually be made available in a nice package (existing or new), with documentation, unit tests, shiny bells & whistlesā¦
There was no need to even apologise once we reconciled all our intentions. Super grateful for you to have taken your time and resources on the initial code. I will be poking you for more tips in the future. I hope you donāt let this miscommunication discourage your much needed help with other newbies.
Also anyone reading this looking for a K-Means implementation, there is an excellent one in the aptly named Clustering.jl
Agree - and I apologize for what might seem like kicking a leaf pile. But I didnāt want to move on because it seemed like, to the extent there was agreement on community norms, it was siding with being proprietary about the code from an open discussion.
Thanks for chiming in. Given the original description of the issue, this is exactly what it seemed like to me, and personally, I think this sort of behavior should be encouraged.
Then you could still package it later? Or you could ask for the person to transfer ownership of the repo to you (based on all the evidence, Iām guessing @Skoffer would have been happy to do this). Being upset about this seems like letting the perfect be the enemy of the really really good.
I do apologize for being antagonistic here*
. My generous read of this post is that you felt like someone was taking credit for your work, and itās understandable that you would be upset about that. To the extent weāre using this thread to establish community norms, I think we can all agree that people should not take credit for other peopleās work.
But I also think that, given the evidence you initially presented (and I think confirmed by @Skofferās post), thereās very little chance that this is what was happening. I will echo others that I really appreciate that youāre clearly not holding any kind of grudge. this community!
@Skoffer would be the best person for the PR since he came up with the optimizations. From all the benchmarking results, this implementation is faster and more memory efficient than the current implementation in Clustering.jl.
Itās worth making a PR @Skoffer .
*
Itās quite possible my vituperation is coming from a totally unrelated situation at work where a number of people are being jerks about taking credit for things they didnāt do, denying credit to others etc. My apologies if thatās bleeding into my responses here.
Iām a little disturbed reading this. Putting myself in @Skofferās shoes, I donāt think I would have thought twice about doing what they did: wrapping up a snippet of code that implements an existing, well known algorithm that they collaborated on improving into a package.
Legality aside, Iām not even sure I think one would be in the right to demand the package be taken down or to have ownership transferred (Iād gladly do so in such a situation, but I have a hard time seeing why one should be compelled to do it).
Iād like to suggest we avoid having this turn into a tempest in a teapot. There was no ill intent, and to the contrary this incident emerged from people trying to be helpful. At most itās a question of what messages were sent when, i.e., subtle nuances of communication, and doing any better involves the kind of optimization that we surely can all apply to our own interactions with others. All the participants have been very adult about this (thanks @PyDataBlog and @Skoffer), and the rest of us should not turn into gawking bystanders.
Iām not even sure I think one would be in the right to demand the package be taken down or to have ownership transferred
I agree there was no reason to put repo down. I guess @Skoffer did solid work with good test coverage. I have a lot of @Skofferās code in my repos on my github and he never did any problems about that.
It might be a good point in time to close this thread? It seems everything has been said, everyone was civil, so a good point to move on?
It seems everything has been said, everyone was civil, so a good point to move on?
Yes, except that good piece of code is lost and Iād like to see it available. There should be @PyDataBlog included in copyright notice and everyone should be happy.
Yes, except that good piece of code is lost and Iād like to see it available. There should be @PyDataBlog included in copyright notice and everyone should be happy.
The repo will be back. Itās not lost.