Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Под какой лицензией лучше распространять исходный код?

Под какой лицензией лучше распространять исходный код?

Ответ
Поиск в этой теме
Непрочитано 23.03.2020, 08:07
Под какой лицензией лучше распространять исходный код?
nickname2019
 
Регистрация: 18.11.2019
Сообщений: 1,492

Нужно выбрать лицензию для регулирования прав распространения открытого кода с целью:
1. Должно быть указано исходное авторство изначального кода
2. Модифицированный код пользователь может распространять самостоятельно (в т.ч. коммерчески)
3. Часть модифицированного кода (например, связанного с проведением расчетов) должна распространяться открытым кодом.

Не могу разобраться в существующих лицензиях, так как их слишком много, а опыта у меня в этом деле нет.
Какой тип лицензии мне выбрать для своего исходного кода?

Пытаюсь выбрать между:
GPLv3 (GNU General Public License Version 3) - лицензия заставляет пользователя раскрывать исходный код своих производных продуктов, даже если производный продукт поставляется за деньги.
EPL-1.0 (Eclipse Public License Version 1.0) - лицензия обязывает пользователя дать инструкцию по получению исходного кода.

Может быть, есть еще какие-то варианты лицензий?

Последний раз редактировалось nickname2019, 23.03.2020 в 08:53.
Просмотров: 21982
 
Автор темы   Непрочитано 29.03.2020, 18:14
#121
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,492


Цитата:
Сообщение от maratovich Посмотреть сообщение
не надо обобщать, можно же и обидеться.
Извиняюсь, я немного перегнул палку. Для хайпа, так сказать.

Замечания в мой адрес были по делу (и от miko2009 тоже). Спасибо. Я учту.
nickname2019 на форуме  
 
Непрочитано 29.03.2020, 18:20
#122
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™



Я думаю, вам лучше найти в инете что то подобное, и слямзить от туда лицензию.
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума  
 
Автор темы   Непрочитано 29.03.2020, 18:26
#123
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,492


Цитата:
Сообщение от maratovich Посмотреть сообщение

Я думаю, вам лучше найти в инете что то подобное, и слямзить от туда лицензию.
Да. Именно так. Поправить под себя. Никакие стандартные типы лицензий не нужны, так как в РФ любая лицензия работает только в случае письменного заключения договора и наличия факта оплаты. Все, что я (или кто-то) напишет в электронном виде (в виде оферты) - но это можно спокойно наплевать.
nickname2019 на форуме  
 
Непрочитано 29.03.2020, 20:06
#124
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
При черчении обязательно появятся вопросы поворота и масштабирования, пересечений и проекций. А значит, понадобится матричная и векторная алгебра. Нужны будут умножение, обращение и транспонирование матриц.
Я написал пару тысяч чертежных программ на Lisp, в том числе для 3D-моделирования. Никаких матриц там использовать совсем не нужно. Достаточно использовать встроенные функции Автолисп. В том числе с использованием векторов.

Для удобства, особенно в 3D, просто делаю для них свои "обертки" чтобы не писать много раз одинаковый код.

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

Когда "ЭВМ-изация" только начиналась, в организациях вообще не было программистов, а были "математики". Я даже сам три месяца на должности математика был.

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

В точности, как в анекдотах про математиков и инженеров. Вот когда появились инженеры-программисты, то они и решили подобные технические задачи. Причем без систем уравнений и матриц.
ShaggyDoc вне форума  
 
Непрочитано 29.03.2020, 20:49
#125
CalcProg


 
Регистрация: 02.10.2016
Сообщений: 205


1) оферта в основном нужна что бы переложить ответственность с автора программы на пользователя.
2) доказательством авторства в суде будет исходный код программы.
3) взломать программу, как правило труда не составляет. труднее изменить логику работы программы.
4) опытных программистов с проектами доведёнными до логического конца тут предостаточно.
CalcProg вне форума  
 
Непрочитано 29.03.2020, 20:50
#126
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


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

>>Пишу "наверное" потому, что и там можно было бы обойтись более простыми методами.
матрицы и есть наиболее простой и универсальный метод.
zamtmn вне форума  
 
Непрочитано 29.03.2020, 20:51
#127
CalcProg


 
Регистрация: 02.10.2016
Сообщений: 205


5) делать код открытым не всегда полезно.

----- добавлено через ~6 мин. -----
для пользователей этого сайта можно было сделать урезанную тестовую версию с закрытым кодом. разместить программу на яндексдиске, а тут привести ссылку.
CalcProg вне форума  
 
Автор темы   Непрочитано 29.03.2020, 21:32
#128
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,492


Цитата:
Сообщение от CalcProg Посмотреть сообщение
5) делать код открытым не всегда полезно.
Возможно, Вы правы. Может быть, стоит сделать возможность поставки исполняемого кода без исходников, чтобы кто-то мог поставлять на этой основе свой продукт. Но это второй этап. Первый - сделать рабочую версию.

Цитата:
Сообщение от CalcProg Посмотреть сообщение
для пользователей этого сайта можно было сделать урезанную тестовую версию с закрытым кодом. разместить программу на яндексдиске, а тут привести ссылку.
У меня нет рабочей версии, чтобы я мог что-то нормальное выкроить. Чтобы удовлетворить любопытство, могу привести кусок кода:

Код:
[Выделить все]
#If|{Диаметр оправки} 
#Else
  #MsgBox|Параметр [Диаметр оправки] не определен. Определите праметр "[Диаметр оправки]" в окне параметров 
  #Return|False
#EndIf
#If|{Диаметр} 
#Else
  #MsgBox|Параметр [Диаметр] не определен. Определите параметр "[Диаметр]" в окне параметров 
  #Return|False
#EndIf
#[dy1]=({Диаметр}-6)/2
... и т.д.
Ниже определение переменной
#[Переменная]Какое-то значение

Ниже обращение к переменной (получение значения переменной)
{Переменная}

Ниже вычисление выражения и присвоение значения переменной
#[dy1]=({Диаметр}-6)/2

Имя переменной может состоять из нескольких слов, так как заключается в скобки.


#If|{Диаметр} - это означает, что диаметр не ноль, не отрицательное, а положительное число.

Последний раз редактировалось nickname2019, 29.03.2020 в 21:38.
nickname2019 на форуме  
 
Непрочитано 29.03.2020, 22:18
#129
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Эмммм... Если б я писал нечто подобное, я бы делал так:
Код:
[Выделить все]
if (diam>0)
  // do smth
end if
P.S. А отслеживать корректность вводимых параметров надо совсем в другом месте - если не хочется получить lisp + dcl, причем в самом неудобном, неизученном и недокументированном варианте.

----- добавлено через 29 сек. -----
На фига умножать сущности сверх необходимого?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.03.2020, 22:40
#130
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,006


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
#If|{Диаметр оправки}
#Else
#MsgBox|Параметр [Диаметр оправки] не определен. Определите праметр "[Диаметр оправки]" в окне параметров
#Return|False
#EndIf
а где установка фокуса ввода на поле ввода с ошибочным значением? Или диалог ввода к моменту проверки уже закрыт?
Сергей812 вне форума  
 
Непрочитано 29.03.2020, 22:47
#131
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Сергей812, кстати! Иногда пробую прописать формы на C#, в результате половина логики прописывается внутри формы - контроль корректности данных, доступность контролов и т.п. И че-т у меня подозрения, что я делаю неверно.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.03.2020, 23:17
#132
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,492


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Эмммм... Если б я писал нечто подобное, я бы делал так:
Код:
[Выделить все]
if (diam>0)
  // do smth
end if
P.S. А отслеживать корректность вводимых параметров надо совсем в другом месте - если не хочется получить lisp + dcl, причем в самом неудобном, неизученном и недокументированном варианте.
Я не знаю, как в лиспе, а в другом "нормальном" языке это бы выглядело так (с учетом погрешности представления реального числа):

Код:
[Выделить все]
tool=0.00001;//Погрешность
if ((abs(diam)>tool)AND(diam>0))
  // do smth
end if
Что более громоздко и не всегда очевидно для обычного юзера со светлым сознанием.

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
а где установка фокуса ввода на поле ввода с ошибочным значением? Или диалог ввода к моменту проверки уже закрыт?
Этот код выполняется внутри интеллектуального объекта. У объекта нет полей ввода. Параметры где-то внешним образом присвоены, возможно другим объектом, которому принадлежит текущий. Т.е. это внутренний контроль, чтобы не положить автокад некорректной операцией.
Форма ввода тоже есть, но контроль на форме не всегда возможен. Объект может создаваться командным образом другим объектом.

Последний раз редактировалось nickname2019, 29.03.2020 в 23:25.
nickname2019 на форуме  
 
Непрочитано 29.03.2020, 23:24
#133
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


nickname2019, ока, как вариант
Код:
[Выделить все]
double prec = 0.001
if (diam > prec)
{
// do smth
}
Так тебе больше нравится?
Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Этот код выполняется внутри интеллектуального объекта. У объекта нет полей ввода. Параметры где-то внешним образом присвоены. Т.е. это внутренний контроль, чтобы не положить автокад некорректной операцией.
Учитывая, сколько возможных вариантов "контроля" может потребоваться, становится страшно.
Или ты пытаешься аналог СПДС GraphiCS нарисовать? Над которым работает приличная команда разработчиков / тестировщиков / бог знает кого еще? И работа ведется уже много лет? Ну-ну, успехов на дорогах, как говорится.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.03.2020, 23:35
#134
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,492


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
nickname2019, ока, как вариант
Код:
[Выделить все]
double prec = 0.001
if (diam > prec)
{
// do smth
}
Так тебе больше нравится?
Так тоже пойдет. В предыдущем коде, я рассуждал как параноик. Те, кто не давал два раза подряд goto для верности, меня не поймут.

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Учитывая, сколько возможных вариантов "контроля" может потребоваться, становится страшно.
У меня нет цели проконтролировать все. Если юзер задал колонну длиной в километр - сам виноват, я это проверять не буду. Хочет - пусть добавляет в код проверку предельной гибкости для ж.б. колонн и сам этот код юзает.
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Или ты пытаешься аналог СПДС GraphiCS нарисовать? Над которым работает приличная команда разработчиков / тестировщиков / бог знает кого еще? И работа ведется уже много лет? Ну-ну, успехов на дорогах, как говорится.
Я никогда не работал с СПДС GraphiCS. Если закончу свой проект - посмотрю их возможности. Если я сейчас буду подробно знать их подходы - я перестану изобретать и начну повторять. Я надеюсь, что смогу сделать лучше.

Последний раз редактировалось nickname2019, 29.03.2020 в 23:41.
nickname2019 на форуме  
 
Непрочитано 30.03.2020, 00:44
#135
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,006


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Иногда пробую прописать формы на C#, в результате половина логики прописывается внутри формы - контроль корректности данных, доступность контролов и т.п. И че-т у меня подозрения, что я делаю неверно.
Если речь идет о WinForms - то логично, что проверка состояния и содержимого контролов идет внутри самой формы - снаружи нужны лишь значения из формы (при необходимости) и не более того, имхо. Для читаемости можно повторяющийся код вынести в отдельный статический класс в виде опять же статических методов (чтобы можно было вызывать без создания объекта класса) - примером может служить тот класс Math.

Если же рассматривать WPF в контексте паттерна MVVM (Model-View-ViewModel), то там проверка уже может быть вынесена и в модель через двухстороннюю привязку данных. Хотя Майкрософт предлагает и другой вариант. Дело вкуса, в общем)

Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Этот код выполняется внутри интеллектуального объекта. У объекта нет полей ввода. Параметры где-то внешним образом присвоены, возможно другим объектом, которому принадлежит текущий. Т.е. это внутренний контроль, чтобы не положить автокад некорректной операцией.
т.е. скрытые операции про присвоению данных сопровождаются модальными messagebox...
Сергей812 вне форума  
 
Автор темы   Непрочитано 30.03.2020, 07:10
#136
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,492


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
nickname2019, ока, как вариант
Код:
[Выделить все]
double prec = 0.001
if (diam > prec)
{
// do smth
}
Блин. Забыл еще одну проверку. В "нормальном" языке должно было быть так

Код:
[Выделить все]
double prec = 0.001
if(NOT EMPTY(diam)){
  if (diam > prec)
  {
    // do smth
  }
}
Последнее более громоздко и не так наглядно.

Последний раз редактировалось nickname2019, 30.03.2020 в 07:23.
nickname2019 на форуме  
 
Непрочитано 30.03.2020, 07:49
#137
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Offtop: Сергей812, с WPF у меня как-то не сложилось Сказывается VB[A]шное прошлое
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.03.2020, 09:17
#138
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Сообщение от zamtmn Посмотреть сообщение
То что вы не заметили матриц не заслуга лиспа но заслуга автокада - головастые мужики там все очень удобно обернули и спрятали. Вы писали не на лиспе, а на автокаде.
Подход про обработку списков рулил тогда когда на распологаемых мощностях и объемах приходилось экономить каждый бит, сейчас это не на первом месте... Работать лучше не с сжатым и экономичным представлением объекта, а с тем как он представлен внутри программы - т.е. классы, матрицы и прочие чуждые лиспу сущности
Писал я именно на Лиспе, а не "на Автокаде". На Автокаде не пишут, пишут прикладные программы в предоставляемых Автокадом средах разработки. И там нет никакой нужды в вычислениях матриц, хотя, если захочется поизвращаться, то и на Лисп можно матрицы обрабатывать, и функции для этого давно придуманы.

Пользователь (или прикладной программист) использует command (или entxxx, vls-xxx) и понятные ему точки, а уж внутри Автокада для различных операций над объектами (копирование, перемещение, растягивание и прочее) наверное используется матричное вычисление. Но мне о об это и знать не надо.

Но они нужны, например, в CommonLisp, который работает "сам по себе". А Автолисп работает внутри Автокада и его разработчики предоставили "лисперам" необходимые функции.

Ты же разрабатываешь ZCAD с собственным графическим движком, с нуля. Вот тебе наверняка и понадобятся матрицы и векторы. И вряд ли ты их с нуля будешь разрабатывать - в библиотеках для Lazarus и Delphi более 200 pas-файлов, использующих "matrix", но это всё спрятано в низкоуровневых функциях. Мне они ни разу не понадобились, а тебе - могут пригодиться.

Если же вздумаешь сделать и свой "язык" для пользователей, то придется в нем предусмотреть и простые средства для прикладников.
ShaggyDoc вне форума  
 
Непрочитано 30.03.2020, 10:03
#139
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,006


Offtop:
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
с WPF у меня как-то не сложилось Сказывается VB[A]шное прошлое
как раз с точки зрения лисповца WPF должно быть ближе - бесконечный набор вложенных угловых скобочек) И писать WPF проще прямо в редакторе XAML кода руками, вообще не трогая панель компонентов - в VS комфортная среда разработки. Просто сначала надо продумать хотя бы на листочке компоновку диалога в виде сетки (чаще всего), внутри ячеек которой размещены необходимые контролы. А не пытаться сразу аля VB начать "плюхать" контролы из панели компонентов, а потом корректировать их размеры, местоположение - это прекрасно сам сделает сам WPF при вменяемой XAML разметки (где заданы для каждого контрола Grid.Row и Grid.Column для указания размещения, и отступ Margin - чтобы не слипались друг с другом). Ну и про стили сразу почитать и начать применять - это очень способствует уменьшению простыни XAML разметки. Стили можно дополнять по ходу, а вот подключить к контролам желательно сразу - чтобы потом повторно по XAML разметке не лазать. Паттерн MVVM на простых диалогах можно и не использовать: врятли у тебя будет отдельный сотрудник - дизайнер интерфейса, чтобы возникла острая необходимость разделения кода данных и интерфейса
Сергей812 вне форума  
 
Непрочитано 30.03.2020, 10:06
#140
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Сергей812, попробую при возможности поковырять. Offtop: Не поверишь - у меня проблемы начались с попыток подключения пустой (!) WPF в NET-сборку под ACAD Это, наверное, диагноз
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Под какой лицензией лучше распространять исходный код?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Опрос. Какой язык программирования для автокада лучше. proektant-minsk Программирование 17 18.03.2020 19:42
Фундамент на площадке с уклоном. Какой лучше? Юлия Серенко Основания и фундаменты 28 29.09.2014 13:10
Какой вариант шарнирного узла балки лучше с т.з. технологичности изготовления на заводе Metkon Металлические конструкции 4 26.03.2014 13:19
Какой лучше фундамент выбрать для типового павильона? Какой тип фундамента более универсален? ольга сычикова Основания и фундаменты 8 02.02.2011 12:58
Какой бетон лучше принять? WeeLL Железобетонные конструкции 7 03.01.2009 23:14