The Stack Overflow podcast is back! Listen to an interview with our new CEO.

Hot answers tagged

239

The fact that to a seasoned programmer the work is easy doesn't have anything to do with it. As you describe it, this is work that's required for the publication. Without it, you don't have a paper. With it, you do. Therefore the programmer contributed significantly (critically) to the paper, and therefore the programmer should be an author. The fact that ...


236

One of the reasons Science has been so successful is that scientists treat knowledge and tools as public goods. We don't hoard knowledge, but rather we write papers, share techniques, offer suggestions, etc. There are certainly cases in which sharing isn't beneficial, but these seem not to apply here. So of course you should share your computer program! You ...


121

Absolutely yes! There is no reason to stop a project from evolving just because you've published about it. What would be good to do, however, is to identify the version current at the time of publication with a release version or other similar sort of tag. You can point to the specific tag in the publication and also have the repository tag point to the ...


107

For me it seems that the reasons are two: the belief that code is only a tool, a particular implementation being secondary to the idea or algorithm, the historical residue (it was unpractical to print a lot of pages; especially as no-one could copy-paste it). Additionally: many scientist seems to be afraid to show their code in public, as they are aware ...


105

In addition to all the good answers you received so far, I should also point out that in general people's fear of being unethically scooped is vastly exaggerated. I would imagine that there really isn't a community of people scouring the Web for master's thesis level research that they can find and then, with considerable time disadvantage to the original ...


104

If the main idea in the paper has been invalidated by the correction in the code, you would do well to try to retract the paper yourself. This is just a point of professional ethics. It also protects you in a way from future claims if people don't examine everything thoroughly. The journal may not be able to actually retract the paper, but might be able to ...


101

If the authors have provided a link to their code as a reference, then it is appropriate to offer commentary, particularly if the article is based on the code. However, I would recommend making the critique constructive: offer concrete suggestions for how to improve it rather than just saying it’s “messy” or “sloppy” and needs to be “cleaned up.”


98

In fact something great happened: Your research did have impact in the real world and seems to be useful - not everyone can say that! When it comes to legal issues, things are usually complicated and will involve copyright issues (of yours and of the journal / publisher) as well as authorship issues. Those vary between countries and it will be difficult to ...


89

Ideally in this situation you would make your program publicly available. Giving others access to this code does not prevent you from using it, and will help you build reputation within your field. Not only that, but by making it publicly available rather than to just your advisor there is no risk of them claiming your work as their own - which I would ...


75

You are not required to get permission to implement an idea you have read about in a paper, or to make it open source. The paper is protected by copyright, but this only protects the text and images in the paper (the expression of the idea), not the idea itself. The copyright on the paper does not prevent you from creating your own realization of the idea ...


75

Now that I have found the problem what is the protocol for highlighting this, is emailing the author necessary? It isn't necessary, but it is the right thing to do, if you don't, you're responsible for causing others set backs that will waste them a considerable amount of time.


72

If you wrote the code as part of your work as a PhD candidate, and were at all considered an employee of the institution as a PhD candidate, then the institution may well own intellectual property rights to the code you write ("work for hire" rules). This of course depends on the laws of the country where your institution resides. If you wrote code that is ...


71

As someone who works in scientific computing, I agree with what others say, and would likely take it a step further. To put it hyperbolicly: Refusing reasonable requests to code used in a published article is ethical misconduct. If you relied on the output of a program to produce your scientific result, then that program is part of the "materials" of your ...


67

I think the key to understanding research code for industrial software engineers is to accept that you are typically not building a product. You do not have customers as such. You are building software to prove a point. As such, the majority of code that you write as a researcher is more akin to the throw-away prototypes and mockups that you (in industry) ...


62

Censor out the repo's name, and provide code to the referees as an auxiliary file.


53

An important point of etiquette that has been skipped in the other answers: Treat it as a suspected bug, and do not assume "I'm right, you're wrong" while presenting your fix. No matter how confident you are on the matter, there is always room for having misinterpreted or overlooked something important. Consider the case of finding an 'error' in code of: ...


50

This seems to be a clear case of plagiarism, and potentially a copyright violation. The BSD license contains a line "Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer". If that was included in your Original code, then it seems that this was breached by the article authors. But even ...


49

I believe you are asking the wrong question. You are asking: Can one demand to see code used to generate an article? To which I would answer: Assuming you're in a country with free speech, you can "demand" the code. Just make sure you do not threaten the author or otherwise break the law with your "demand". However, you are unlikely to be successful in ...


44

The code is within the scope of the review, and it is appropriate to review this and offer constructive suggestions in relation to its deficiencies. Now, bear in mind that the onus is on the author to satisfy reviewers of their argument, and if the argument depends on computer code that is so messy as to be unreadable, it is not incumbent on you to fix this ...


43

The PI asked me to put the algorithm on Github. Accordingly, I created a repository on my personal account and later added the PI as a collaborator. I am a Github novice user but my understanding is that this would be sufficient to push/pull the repository and generally make modifications to it. It is. The problem is that a personal account is, well, ...


42

Seasoned's programmer's rate would probably be $100-$1000 per day. This, assuming that your estimation is correct (dangerous assumption) means you are asking for a volunteer to provide you with $500-$5000 of free labor(assuming that the work takes 5 days). I also find it strange that you mention time for a seasoned's programmer, but want to hire an ...


41

Most instructors will refuse to check your homework for you before you turn it in. You get it graded once and only once. There are no do-overs where you get to turn it in the first time, they point out your mistakes, then you get to turn it in again after you've corrected it. If you're confused, you can ask clarifying questions about what the homework ...


41

Here's how I would view it: I got to do all the fun work of research and discovery. Somebody else voluntarily did the not-fun work of wrapping this work up in a nice software package. They're even volunteering to maintain it, and they're properly giving me all the credit for inventing what they've implemented! So people can use what I created and I can ...


37

I think you are being generous and, given what you say, should be able to step away from the project with a clear conscience. If he needs the software he should be willing to find a way to pay for support, maybe not you, I think, but some support person. I would see him if possible or send an email giving much of the information you've given here. The ...


35

Answer to 1: Where should I host my code? Depending on what your University offers you, you could choose to host it with the University, or perhaps with an open-source repository such as Github, Bitbucket, SourceForge, or similar. Many of these services have a "paid" subscription option for private repositories if those are required. Answer to 2: What ...


35

Posting code on the Internet is somewhat like posting a preprint¹. Everybody can see it, use it, and be inspired by it, and that’s fine if they reference you as the source of this, but of course somebody can also come along and claim that they had the same idea independently and rush a publication before you (which would constitute plagiarism if they hadn’t)....


35

Would it be ethically wrong to recruit an undergrad for a few days volunteer work without pay "Ethically wrong"? Some answers say it isn't (though I disagree) But that is the wrong question to ask However, I feel [that] to get some backing on the theory, I need... computer data. You've worked on a problem for two years. You're going to trust "a ...


34

I am a researcher and self-taught developer. I have done substantial projects which were primarily software based. Although my work is far from the most "hardcore" stuff that's out there in terms of complexity and scale, the projects were big enough that naive mistakes (eg. not using version control or poorly documenting code) were very painful. I ended up ...


34

A lot of people have mentioned making your code available, and I entirely second that. But to get more specific, put it on GitHub. Public repositories are free, it keeps a version history of your work so that even you can't mess it up in a terminal way, and others can branch your code off in another direction and develop it, all while keeping the proper ...


34

Will there be any positive gain thanks to the publishing of the code to me? Publishing the code is necessary to make the calculation reproducible and the results verifiable. If I were the referee of your paper I would likely insist that you publish the code. So the “positive gain” would be that your paper will not be rejected outright. It will also help ...


Only top voted, non community-wiki answers of a minimum length are eligible