Есть ли способ опубликовать мой код на Code Review Stack Exchange и не беспокоиться о плагиате?

Я делаю свою магистерскую диссертацию по компьютерной инженерии, и мне необходимо запрограммировать инструмент на C ++ в рамках моего исследования. Меня очень впечатлила помощь, предлагаемая на веб-сайте Code Review, и я рассматриваю возможность публикации большого куска моего кода для предложений и улучшений. Однако я также обеспокоен тем, что кто-то может использовать идею, содержащуюся в моем опубликованном коде, с помощью плагиата. Это, в свою очередь, может повлиять на доверие к моей работе.

Я считаю, что одно из решений — опубликовать минимальный, проверяемый и полный пример кода, для которого я хочу получить предложения. Тем не менее, мне интересно узнать, можно ли опубликовать мой код как есть и не беспокоиться о том, что его скопируют.

Что именно вас беспокоит — что, по вашему мнению, произойдет и как, по вашему мнению, это повлияет на вас, если кто-то скопирует ваш фрагмент кода без указания авторства (и что с ним сделает?)?
Идея моего исследования будет очевидна в моем коде. Кто-то (который может работать в той же области, что и я) может использовать мою идею в своей работе. Боюсь, это уменьшит новизну моей работы.
Код-ревью — это место, куда можно обратиться, если вы хотите отправить конкретный фрагмент кода, который вас беспокоит. MCVE противоречит цели проверки кода, как это определено в проверке кода. Вы заглядывали в их справочный центр ? Пример кода явно не соответствует теме этого сайта.
В принципе, получение помощи от онлайн-сообщества ничем не отличается от получения помощи любым другим способом при работе над магистерской диссертацией или любым другим заданием, которое должно быть исключительно вашей работой. Итак, я бы также отослал вас к полезным ответам на аналогичный вопрос (хотя вас интересует другой аспект проблемы): academia.stackexchange.com/questions/84299/…
Убедитесь, что вы размещаете сообщения в Code Review с зарегистрированной учетной записью, а не как гость. В случае, если вас обвинят в плагиате опубликованного кода, вы захотите иметь возможность доказать (например, войдя в систему), что вы сами разместили код.
Можем ли мы предположить, что вы знаете, что user contributions licensed under cc by-sa 3.0 with attribution required. rev 2017.10.31.27598(см. нижний колонтитул сайта) - люди могут и будут использовать ваш код для любых целей, которые они хотят, но они должны указать кредиты.
Повлияет ли результат проверки кода на результат вашей статьи, или вы просто хотите сделать код лучше перед его публикацией? Если последнее, рассмотрите возможность публикации предварительной версии вашей статьи в ArXiv или аналогичном, а затем выполните проверку кода.
На самом деле, вам повезет, если вы вообще привлечете внимание к обзору кода. Код исследовательского уровня, как правило, слишком сложен для того, чтобы случайные участники из Интернета могли помочь вам ради развлечения. Обычно приходилось читать статью только для того, чтобы получить базовые знания, необходимые для понимания кода. Если вы не готовы полностью раскрыться, я сомневаюсь, что кто-то будет тратить время. Я только что назначил награду +400 за этот вопрос — посмотрим, поможет ли это вам.
@Mindwin, чего они не сделают.
ИМХО, большая часть кода, размещенного на CR.se, является мусором. Кто-то должен быть в самом отчаянии, чтобы искать вашу пшеницу среди всей этой плевелы.
@greenb Если академическая часть диссертации не имеет ничего общего с фактической структурой и дизайном кода, а просто «мы используем этот код для получения следующих результатов», это не должно быть проблемой, хотя это, безусловно, хорошая идея. поговорить с вашим советником об этом в любом случае.
@casey Я знаю, что CC - плохая лицензия для кода. Но это то, что мы используем.
@casey также, Массачусетский технологический институт плох для авторского лева. Можно похоронить атрибуцию несколькими способами в коде и никогда больше не увидеть дневной свет.
В моем случае почти каждый из моих вопросов StackOverflow, заданных в период с августа 2014 по август 2016 года, был предназначен для моей магистерской диссертации или одного из моих курсов. Меня никто не скупил, и я никогда не переживал по этому поводу.
Я не знаю правил магистерских диссертаций, но возможно ли, чтобы у вас был коллега или консультант для проверки кода? Если вы беспокоитесь о том, чтобы опубликовать его части, это защитит его от всеобщего достояния, но при этом вы получите некоторую обратную связь.
Пожалуйста, также убедитесь, что вы правильно указали авторство людей, которые вам помогают.

Ответы (10)

В обзорах кода вам как бы нужно знать, какова цель программы, иначе люди, просматривающие ваш код, по сути, просто «человеческие линтеры». Поэтому в зависимости от типа обратной связи, которую вы хотите получить, вам, возможно, придется немного объяснить, что делает ваш код.

Таким образом, основная проблема будет заключаться в том, что вы объясняете свою идею, и кто-то другой может ее использовать. Ну, это интернет, если сделать его общедоступным, то невозможно узнать, что люди собираются с ним делать. Вы действительно можете запросить простую проверку кода (синтаксис, имена, очевидные ошибки), но без контекста они не смогут проверить, делает ли ваш код то, что вы думаете (полезная часть обзора кода).

Если ваша степень не связана исключительно с разработкой программного обеспечения, им может быть все равно, написан ли ваш инструмент «оптимальным образом». Лучше всего оставить его в автономном режиме или попросить друзей, которым вы доверяете, просмотреть ваш код (например, через частные гитхаб-списки).

Еще одним решением было бы прочитать некоторые материалы, касающиеся качества кода. Code Complete2 — хорошее начало. Кроме этого, проверьте код C++ на github из более крупных проектов (например, Unreal Engine). Если вы считаете полезным писать хороший код, это поможет вам больше в долгосрочной перспективе ;-)

Все ответы и комментарии весьма полезны. Я выбрал ваш ответ, потому что он предложил способы изучения хороших методов кодирования на C++.
Пожалуйста, убедитесь, что в вашем ответе очевидно, что неправильный код явно не соответствует теме CR. Вы не идете туда, чтобы исправить ошибки. (Если в вашем коде есть ошибка, это не имеет большого значения, но «очевидные ошибки» кажутся взаимоисключающими с «тонкой ошибкой, которую вы не заметили после некоторого тестирования»)

В дополнение ко всем хорошим ответам, которые вы получили до сих пор, я должен также указать, что в целом страх людей перед неэтичным скупом сильно преувеличен. Я полагаю, что на самом деле не существует сообщества людей, прочесывающих Интернет в поисках исследований на уровне магистерской диссертации, которые они могут найти, а затем, со значительным недостатком времени для оригинального автора, скопировать. Я говорю «со значительным недостатком времени», потому что даже если кто-то найдет вашу работу, им все равно придется перепроектировать многое из того, что у вас уже есть и что вы знаете, чтобы получить доступную для публикации диссертацию или статью только из вашего кода. Если вы не планируете оставить свою работу на полгода, маловероятно, что подражатель опубликует ее быстрее, чем вы, первоначальный автор.

Да, быть обманутым — это отстой, но обычно этого не происходит из-за того, что кто-то украл ваш код или даже вашу идею. Поиск происходит потому, что во всем мире есть несколько независимых групп, работающих практически над любой основной исследовательской темой, и обычно существует только конечное количество способов решения любой конкретной проблемы, учитывая текущее состояние литературы. Обязательно возникнут ситуации, когда две команды работают с одинаковыми подходами к схожим проблемам.

Размещение кода в Интернете чем-то похоже на размещение препринта¹. Все могут это увидеть, использовать и вдохновиться, и это нормально, если они ссылаются на вас как на источник этого, но, конечно, кто-то также может прийти и заявить, что у него была такая же идея независимо, и поспешить с публикацией раньше вас. (что было бы плагиатом, если бы они этого не сделали). Даже если произойдет последнее, вы все равно можете сослаться на свой пост/публикацию с отметкой времени, чтобы установить приоритет и получить хотя бы кусок пирога.

Однако есть одно существенное отличие: в областях, где серверы препринтов, такие как Arxiv, установлены должным образом, плагиаторы могут не заслуживать особого доверия, когда они утверждают, что не знали о вашей предыдущей публикации. С другой стороны, не обращать внимания на что-то, опубликованное в Code Review, всегда правдоподобно, если только плагиатор не оставил следов, взаимодействующих с вашим сообщением.

Некоторые другие факторы, которые следует учитывать:

  • Какая часть вашего результата содержится в вашем коде? По крайней мере, для моей работы любой фрагмент кода, разумно вписывающийся в вопрос Code Review, в лучшем случае дает вам намек на более широкую картину. Если то же самое относится и к вам, крайне маловероятно, что кто-то увидит ваш код, признает его актуальность и перестроит остальную часть вашей работы вокруг него.

  • Насколько легко перестроить свою работу из кода? Например, если вы потратите значительное время на выяснение значения какого-либо параметра (и не укажете его в своем примере или не измените его), кому-то другому придется повторять все, что ведет к вашему параметру. Также учтите, что если для перестройки вашей работы требуется значительный творческий потенциал, исследовательские навыки и предметные знания, кто-то, кто может это сделать, может также провести оригинальное исследование с меньшими усилиями и риском.

  • Насколько узка ваша область? Если только небольшое сообщество может оценить и правдоподобно воспроизвести вашу работу, оно также нуждается в том, чтобы кто-то из этого сообщества распознал вашу работу и воспользовался ею из вашего кода.

  • Насколько актуален ваш результат? Учитывая, что речь идет о магистерской диссертации, вряд ли она будет очень большой. Конечно, это не невозможно, но вы можете судить о себе по отзывам, которые вы должны были получить от своего руководителя. Чем менее привлекателен ваш результат, тем меньше вероятность того, что кто-то приложит усилия и рискует его плагиатом. Опять же, у большинства исследователей, вероятно, есть более важные дела, например, проведение собственных исследований.

¹ См. также мой вопрос о плагиате препринтов.

В тот момент, когда вы публикуете что-то в Интернете, вы должны быть готовы жить с последствиями того, что люди убегают с этим. Обзор кода ничем не отличается в этом отношении.

Да, в академических кругах есть правила против плагиата. Да, у Stack Exchange есть Политика защиты авторских прав ( здесь, пункт 15 ). Но всегда найдутся люди, нарушающие правила, так что ничто из этого не гарантирует, что люди не поддержат вашу идею.

Повлияет ли это на новизну вашей идеи или нет, я полагаю, это зависит от того, кто быстрее опубликует свою статью. Пока ваше опубликовано раньше, чем у каких-либо мошенников-плагиаторов, я не вижу проблемы.

Имхо, это подходит только для контента StackExchange. В правом нижнем углу вы можете найти «вклады пользователей под лицензией cc by-sa 3.0 с указанием авторства. Версия 2017.11.1.27612».
@FabianBlechschmidt Вот о чем вопрос, не так ли?
Я думаю, что у нас есть неправильное понимание контента SE как «контента и материалов, которые создает компания SE» ... вклады пользователей являются CC, и поэтому это даже не плагиат, но всем разрешено использовать его, если они заявляют с лицензией :-)
А, я понимаю, что вы имеете в виду. Да, этот параграф касается только контента в сети SE, нарушающего другие авторские права, а не наоборот. Эта часть покрывается cc by-sa, как вы сказали.

Учтите, что вам потребуется время, чтобы переделать вашу работу, даже если кто-то действительно выступит с вашей идеей (если только вы не публикуете исходный код полного приложения). Я бы посоветовал подождать, пока вы не будете близки к отправке или не отправите статью - в этот момент у любого подражателя не будет шансов догнать вас.

Проблема, которая, я думаю, еще не упоминалась, — это программные системы обнаружения плагиата. Как правило, это довольно грубые инструменты, и они нередко помечают более ранние черновики собственной работы студента, если они размещены в Интернете где-то, где они знают, что нужно искать.

Если ваша работа будет передана через такое программное обеспечение, вам должны были сообщить об этом, и вы должны внимательно прочитать применимые к вам политики. Большинство учреждений проведут проверку вручную после того, как программное обеспечение пометит вашу работу как скопированную, и если эта проверка будет выполнена правильно, у вас будет возможность указать, что онлайн-работа принадлежит вам. Но вам все равно может понадобиться доказать это, особенно если вы публикуете сообщения под псевдонимом.

Если вам нужен аналитический центр в отдельной комнате, где обсуждение и получение знаний закрыты для членов, и все они принимают конфиденциальное соглашение, это не место.

Я не знаю, существует ли такой сайт, но он может быть очень интересным в качестве исследовательской грид-платформы.

В любом случае, если кто-то исправит ошибку в вашем коде или внесет какие-либо минимальные улучшения, вы должны признать, что вы не являетесь исключительным владельцем работы благодаря соавторам.

Прежде всего : требует ли ваш университет, чтобы вы лицензировали программу для своих магистров под собственностью университета или какой-то конкретной лицензией?

Если нет (то есть вы являетесь владельцем своей работы), почему бы не опубликовать ее на Github под желаемой лицензией по вашему выбору. #

Таким образом, вы можете доказать достоверность/первое авторство программы на первый взгляд и впоследствии добиваться улучшений/вкладов от сообщества.

Если программа окажется весьма полезной и наберет значительный оборот, то это может оказаться ярким значком в вашем резюме.

# Так как вы делаете магистров, я предполагаю, что рано или поздно вы совершите набег на промышленность, и чтобы ваша программа набрала обороты в отрасли (читай: блестящее резюме), она должна иметь разрешительную лицензию, поэтому, если вы хотите простой выбор лицензии вместо самостоятельного исследования (или, что гораздо лучше, консультации с юристом ), вы можете выбирать между LGPL, Apache и zLib.

Проще говоря, нет никакого способа помешать кому-либо получить ваш код и использовать его любым способом, в том числе выдавая его за свой собственный. Лицензии и юридический язык важны только для людей, которые заботятся о лицензиях и юридическом языке. Вы можете поместить все уведомления об авторских правах и условия лицензии в свой код, который вы хотите, и это ничего не сделает, чтобы помешать кому-либо скопировать ваш код и использовать его, если он общедоступен. Вы должны были бы

  1. Обнаружите, что кто-то использовал ваш код,
  2. Подать иск в суд, чтобы запретить этому лицу использовать ваш код,
  3. Подождите, пока ваше дело, наконец, не получит место в, возможно, очень переполненном суде,
  4. Преобладать в вашем судебном иске,
  5. Попросите суд издать судебный запрет, предписывающий стороне, которая использовала ваш код, прекратить использование вашего кода, и
  6. Если сторона не перестанет использовать ваш код, повторите шаги с 1 по 5 снова, и снова, и снова, пока суд, наконец, не разозлится на то, что их приказы игнорируются (суду наплевать на ваш код - однако они будут очень обеспокоены, если их приказы будут проигнорированы), что они, наконец, сделают что-то вроде того, чтобы бросить сторону, на которую возложена обязанность, в тюрьму за неуважение к суду или что-то в этом роде.

Если вы решите пойти по этому пути, убедитесь, что у вас есть большая куча денег, чтобы заплатить своим адвокатам.

Альтернативой является хранение вашего кода в тайне, работа с ним как можно лучше и не позволяйте никому его видеть до тех пор, пока ваша диссертация не будет опубликована, после чего вы все равно не сможете запретить людям его использовать.

Удачи.

Если вы беспокоитесь о достоверности, то публикация вашего кода в Интернете на форуме, таком как Stack Exchange, может быть использована для подтверждения права собственности. Существует полная история редактирования, включая временные метки. Таким образом, он может быть проверен третьей стороной, защищен от подделки, имеет независимую и прозрачную цепочку хранения и общедоступен. Это надежное доказательство владения с отметкой времени.

Кроме того, вы владеете авторскими правами на свой код в момент его написания.

Таким образом, сообщение в Интернете может помочь доказать, что оно принадлежит вам, если когда-либо возникнет спор.