Описание тега death-billiards
Ответ 1: где я должен разместить код?
В зависимости от того, что ваш университет предлагает вам, вы можете выбрать, чтобы провести его с университета, или, возможно, с открытым исходным кодом на GitHub репозиторий, например, в системе Bitbucket, SourceForge, что или похожие.
Многие из этих услуг имеют опцию "платные" подписки для частных репозиториев, если это требуется.
Ответ 2: что с открытым исходным кодом лицензии я должен выбрать?
Этот вопрос актуален, потому что мы это обсуждаем прямо сейчас в один из наших собственных исследовательских проектов. Я знаю немного о открытым исходным кодом, изучив его в прошлом и обучив несколько курсов на нем.
Хотя есть много лицензий с открытым исходным кодом, они в конечном итоге приходят в две основные группы. Они либо разрешительных открытых лицензий (например, МИТ, БСД, Апачи) или они бесплатные (публичной лицензии GNU версии 2 или версии 3 GPL). Вот краткое подноготная с открытым исходным кодом инициативы
Разрешительный открытых лицензий эти лицензии, как правило, позволяют выпустить свой код и любой желающий может с ними ничего сделать, что они хотят, пока они сохраняют определенную информацию об авторских правах на код. В действительности, это имеет ряд последствий.
Кто-то может занять весь базовый код, создать продукт, и продать его.
Кто-то может взять части кода, положить его в свой проект (коммерческий или нет).
Поскольку лицензия является более разрешающим, вы сами могли бы взять код, закройте его, а затем сохранить в тайне любые будущие релизы, так что вы можете сделать деньги из кода или скрыть его от общественности.
Поскольку лицензия является более разрешающим, вы можете генерировать больше интереса в результате. Человек может взять код из других проектов и использовать его для улучшения ваших. С другой стороны, они могли также сделать улучшения для вашего исходного кода и никогда не делиться ими с тобой.
С другой стороны, в GNU GPL-это лицензия на свободное программное обеспечение, которое запрещает вам делать определенные вещи. В этом смысле, это более строгие, но делает это по ряду идеологических причин.
Если вы выпускаете программное обеспечение под GPL, вы не можете закрыть это. Когда-нибудь. Он будет оставаться в открытом, и если кто-то просит у вас исходный код вы обязаны в соответствии с условиями лицензии, чтобы обеспечить его (если вы разместить его на GitHub или другом публичном репозитории, то вы уже удовлетворил это требование).
Компания может взять код и сделать продукцию и продать ее (это их право), но им придется это сделать при условии, что любой исходный код, который они пишут для проекта также выпущен под лицензией GPL. Из-за этого, много компаний, которые делают много денег написание программного обеспечения не нравится это, потому что им приходится постоянно выпускать код для общественности. С другой стороны, любые интересные вещи, которые они получают положить в общественное под GPL, так что вы можете сложить его обратно в проект и улучшить его. Они не могли взять код, улучшать его, и тогда никогда не поделиться ею.
Если вы случайно использовали GPL кода в ваш проект (скажем, вы взяли несколько строк из ядра Linux или контроля версий Git или любой другой), то вы будете иметь, чтобы выпустить свой код под GPL, а также.
В конце концов, выбор лицензии больше сказывается о том, как вы хотите использовать программу (и, в конечном сообщества это может принести). Если вы планируете коммерческое использование программного обеспечения, (и косвенно позволяют другим делать то же самое), то вы, возможно, захотите, чтобы опереться на БСД. Если вы не хотите, чтобы принять ваш тяжелый труд и прибыль от него, не показывая вам результаты, тогда вы хотите идти под GPL. Если вы не заботитесь в любом случае, тогда вы могли бы просто выбрать один. Я думаю, что BSD-это популярный в академических кругах именно из-за коммерциализации аспект (например кода LLVM набирает много тяги из-за его либеральной лицензией).
Ответ 3: Как сделать его легким для других, чтобы запустить код?
Вы сделать его легким для выполнения кода по инженерии, чтобы это было легко работать и очень подробно с вашими документами.
Упаковка/распределение на самом деле может быть довольно трудно и обычно требует больше усилий, чем большинство людей могли бы подумать. Хороший способ, чтобы сделать программу легко запустить, чтобы проверить его на нескольких машинах. Убедитесь в том, что ты не забываешь, во всех библиотеках, которые вы используете в своем программном проекте, например, и когда это возможно, стараются использовать программные библиотеки, которые являются общими и ухоженные. Использование традиционных языков с простой в управлении репозитории.
При необходимости, используйте монтажников, скрипты установщика, make-файлы (distutils, который использует, использующих automake/autoconf для лучше) и т. д. Даже shell-скрипты лучше, чем ничего. Если вы можете предоставить файлы и/или установщика, который сделает все еще проще. Проблема в том, что это очень много работы!
Сопровождать его документации. В идеале документация будет содержать описание, как его настроить и запустить его, с описаниями необходимых пакетов/библиотек, данные, которые вы могли бы получить, и какие к тип или нажмите на. Как правило, то, что называется README или install будет привлекать внимание. Положите инструкциям на веб-странице также, большинство таких решений также позволит вам иметь веб-страниц.
Надеюсь, что это все помогает. Самая трудная часть процесса-это однозначно Шаг № 3 и большинство людей не получить как далеко, как использовать хорошие методы, как инсталляторов, использующих automake/autoconf, что и так далее, потому что это много работы и развитие зачастую движется быстрее, чем вы можете писать документы. Однако, никто не сортируя на ваш стиль, так что зачастую проще сделать его, чем его убрать и приукрасить его первым.