25 ms·
Good coders borrow, great coders steal
- 50ckpuppet 6y agoparallels between coders and poets?
- renewiltord 6y agoI think I might have a few hundred copies of: ``` # From https://stackoverflow.com/a/246128 https://stackoverflow.com/a/246128 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" ```
- geggam 6y agoI think shell is the most plagiarized code in existence. So many sysadmins have rudimentary skills and simply copy what works. I have seen some folks with huge repos of code snippets like that
- chubot 6y agoFor sure, and the funny thing is that it can be replaced often by replaced by the simpler and more readable DIR=$(dirname $(readlink -f $0)) However OS X doesn't have readlink, so the longer BASH_SOURCE thing makes sense there. I started using the longer one, and then I gave up on shell scripting on OS X for other reasons, and didn't go back. So yeah there is a lot of random cargo culting. In Oil I hope to provide an even simpler method that's built in (and it also has readlink builtin to support this) https://github.com/oilshell/oil/issues/587 https://github.com/oilshell/oil/issues/587
- renewiltord 6y agoI think I actually eventually solved this by installing `coreutils` on OS X and using `realpath`.
- spease 6y agoMaking a copy of an example someone has publicly posted to help people and modifying that copy to properly integrate it isn’t “stealing”. It was offered freely and the original author isn’t deprived of the benefits of their original work. This article just wants to sound edgy.
- kube-system 6y agoContent on Stack Overflow isn’t technically offered freely. It’s offered under a specific license with specific conditions.
- rch 6y agoIf you're working with more than a couple of people it can be worth running an audit on your code, including the libraries you're using. Even if the libraries themselves have permissive licenses, they may inadvertently include bits of SO code.
- kube-system 6y agoknow of any good tools to help identify those instances?
- rch 6y agoSorry no, only that it was done by a third party prior to a funding round.
- bryanrasmussen 6y agohttps://stackoverflow.com/help/licensing https://stackoverflow.com/help/licensing
- thebean11 6y agoWow..that seems much more restrictive than it should be. They're seriously saying closed source software companies can't use content on Stackoverflow? What if I write a piece of closed source software while consulting SO, is that my own work or a transformed version of the work on SO?
- lostmsu 6y agoThis would be a great title for an article about Rust lifetimes.
- JamesBaxter 6y agoI read this article on vice gaming earlier about giving credit to creators for assets used in development that I thought was interesting... https://www.vice.com/en_us/article/qj4pzd/how-we-assign-credit-in-solo-game-development-waypoint-radio https://www.vice.com/en_us/article/qj4pzd/how-we-assign-cred... For me it just comes down to the license, I’d probably credit an artist for their work if I used it in a game but if the license doesn’t say that then there’s no onus to right? If I like the stuff enough to use it in my project then The creator deserves some recognition, is there a reason not to?
- ChrisMarshallNY 6y agoI often incorporate snippets; some from SO, some from SomeRandomDudesMessyBlog.io I have a rule, though: I never add code, unless I understand it 100%, and I often make tweaks to adjust it to my immediate needs. One of my best thefts was a simple FIFO queue, from this book: https://www.objc.io/books/advanced-swift/ https://www.objc.io/books/advanced-swift/ This is my adaptation: https://github.com/RiftValleySoftware/RVS_Generic_Swift_Toolbox/blob/master/src/Collection%20Tools/RVS_FIFOQueue.swift https://github.com/RiftValleySoftware/RVS_Generic_Swift_Tool... I really had to do almost nothing to improve it. I think I just extended its utility a bit. Of course, these weren't your usual SO "academic sample" dudes.
- omarhaneef 6y agoThis should be a real book! It is important -- vital even -- to know how to find the right code, how to understand and test it, how to modify it. And not just from stack overflow, but also from colleagues and even yourself. If this were real, I would buy it.
- simonw 6y agoSomething I realized working on a large internal codebase at a company: any line of code you write is liable to be copied-and-pasted at some point in the future. And that's good! Consistency is a very valuable quality of large codebases worked on by many engineers. If I want to figure out how to write a unit test for a service call, find an existing example of that pattern and copy that. Resist the temptation to invent a new, very slightly better way of doing that. There's a big corollary to this: if you find yourself doing something for the very first time in that particular codebase, take the time to do it well. Because everyone else will be copying your code for the future lifetime of the project.
- manmal 6y agoI introduced a new way of doing unit tests at a client recently, and, sure enough, my unit tests were basically treated as a template. Everybody added their own spin to it, but the basic structure was the same. I was quite glad that I had suspected this beforehand and accounted for it.
- pavlov 6y agoI work at a FAANG with a monorepo (or nearly so). For anything that’s not blue-sky R&D, stalking around the codebase for working examples and patterns is a big part of the job. I’ve felt that there is a potentially a role missing here: a kind of free-floating code librarian who is not attached to any particular team and could be called upon to perform basic research of existing patterns. Part of this role could be to maintain the kind of newbie-friendly documentation that tends to fall between the gaps of tool/infra/product teams. Maybe the job title could be “software informatician”.
- golergka 6y agoI've never worked on FAANG scale monorepos, but in normal-sizer project, that would be one team leader.
- PopeDotNinja 6y ago> a kind of free-floating code librarian who is not attached to any particular team and could be called upon to perform basic research of existing patterns I'm on board with this idea, as long as I don't have to learn Dewey Decimal Classification.
- rtbathula 6y agoYet one cannot borrow or steal which is not created in the first place. So Great coders are the ones who create or write first.
- deleted 6y ago[deleted]
- bergstromm466 6y agoCopying, let's call it 'stealing' because our Industrial Age money system hasn't changed shape to accomodate the zero-marginal cost of digital transmission and storage of info. https://prezi.com/xmzld_-wayho/new-economy-new-wealth/ https://prezi.com/xmzld_-wayho/new-economy-new-wealth/
- fermienrico 6y agoI like how the west is worried about copying/pasting some code and whether that would lead to some obscure licensing issue in the future where lawyers battle it out for 4 years, costing $3M in attorney fees; while some engineer in Shenzhen going off and copying stuff without any worries and infact openly teaching others in his team to learn how to cook some copy pasta. IMO software licensing and patent litigations, all this nonsense of patenting a concept or workflow or some stupid idea someone had, hampers society tremendously. David Beazley did an amazing and entertaining talk about software licensing litigations and what kind of things happen during this process: https://www.youtube.com/watch?v=RZ4Sn-Y7AP8 https://www.youtube.com/watch?v=RZ4Sn-Y7AP8 When I write any code, I take 2 options: 1) Don't share it publicly or 2) Completely release it as public domain. No need for MIT license or any of that crap. Here, just take the code and go win the world, I don't need any credit. Ask yourself how you've benefited from someone crediting you if at all it comes back to you. The world is a large place and just let it go. I am gonna die in 40 years and whatever I do will be totally irrelevant - if my name appears in COPYRIGHT 2020 MR. FERMI ENRICO. YOU MUST CREDIT ME. in some notice that a lawyer with thick glasses is scanning through after I am dead. What an amazing legacy that I am leaving behind. Furthermore, we need have some respect for people that want to keep code private. Not everyone is interested in open sourcing their work - but somehow that's looked down upon. Why!? It is their work and respect it, there are so many people with pitch fork entitlement. Closed source is OK. They deserve it and hope they can be financially rewarded for the hard work. I see the open-source ecosystem as a double sword edge - we got some cool stuff out of it and everyone shares that base to build off of. But then there is also socialism of code - no one wants to improve it because its not their job, then the open source volunteers are blamed for the quality of their library where these guys are just doing it for fun in their free time - literally no right to get angry at them. Now, everyone is sharing the same shitty unmaintainable library 8 layers deep in their package.json file. The devs are overloaded, issues are piling up on Github and the dude in Shenzhen has already finished the project and his gadget is in prod. We gotta be more agile lol.
- jchw 6y agoHrm... I wouldn’t really glorify what Chinese software companies do. Tencent literally has Github repos that are existing open source projects, iterated on a little bit, with all of the copyright notices and license replaced. (Or, at least one of them is this, anyway. I kind of don’t want to specify which to avoid drama for the specific developer, but if you google names of repos you’ll eventually find one library that, under the exact same name, already existed, with some oddly identical code.)
- neonate 6y agoWhat is this article actually saying? Sometimes programmers copy-paste things, and that's ok except when it isn't, and something something Van Gogh? Is there more to it that I missed?
- kyleee 6y agoThis is probably just stackoverflow's mediocre content strategy, they're trying to get some distance between all of their gaffes (the unilateral re-licensing of content, the monica celio mod debacle, etc.)
- karmakaze 6y agoThere is a really good point that I found where it talks about the difference between "borrowing" (bad) and "stealing" (good). > A borrowed object still belongs to someone else; you copy a style and it still belongs to someone else. To steal, however, is to make that idea your own. Taking credit for someone else’s idea is borrowing; understanding an idea and weaving it into your own work, that’s what he meant by theft. So the point is when you 'lift' some code from somewhere and use it, use it fully, own it, have mastery of it. Only then have you 'stolen' it and become yours.
- imedadel 6y agoIf you're working on a JavaScript project, do you prefer copying from SO or installing a (micro-) package that solves your problem? I seem to prefer the former.
- rxsel 6y agoTo be completely honest, if you're smart, and focused on shipping product you really don't care and will find a way to steal while at the same time obfuscate to the point where no one will notice or care. I get there's a moral dilemma for some, and credit etc. comes into play, but I can assure you the people that are solely focused on getting $#!t shipped really don't care, and by the time they have to they will have either sank or have enough resources to handle it.
- gremlinsinc 6y agoTo add to this, I don't think there's any function really that I haven't had to customize/make my own... I mean add a few params, change or transform the output or even convert js to php or python. I think I can maybe count on 1 hand the times I've literally copied/pasted and left it as is. Usually it's copying some config file for a laravel package or something because there were some changes and I'm combining them on an upgrade or something.
- deleted 6y ago[deleted]
- geoffbp 6y agoThis applies to ops as well. Most problems we look at have been solved before so it's a case of identifying and integrating (aka opinioinating) the solution not necessarily creating something from scratch.