Используя replace
:
let a = '64656661756c74';
let r = a.replace(/([0-9a-f]{2})/g, (m, a) => String.fromCharCode(parseInt(a, 16)))
console.log(r)
Oldschool подход:
let a = '64656661756c74', r = '';
for (let i = 0; i < a.length; i+=2)
r += String.fromCharCode(parseInt(a.substring(i, i+2), 16))
console.log(r)
Это определенно не этично. Когда я выбираю GPL вместо скажем BSD, мое намерение ясно - если Вы извлекаете выгоду из моего кода, затем НЕОБХОДИМО способствовать назад. И очень ясно, как я ожидаю, что Вы будете способствовать назад - путем обеспечения полного доступа к ПОЛНОЙ СИСТЕМЕ, которая использует мой код. В ядре GPL намерение состоит в том, что кто-то еще должен смочь сделать модификации к такой системе и создать другие вещи из него.
С шагами 3.1/3.2 существуют социологические проблемы. Кого спросит пользователь, когда его система прекратит работать? Особенно, когда проблема с плагином GPL, сменный автор GPL будет поддерживать такого пользователя? Сменный разработчик GPL развлечет неэтичного разработчика приложения с закрытым исходным кодом?
Учитывая вышеупомянутое, никто не будет делать попытку Вашего вопроса 4, 5 и 6 в достаточно большом масштабе, который будет замечен. Кроме того, если Вы пишете коммерческое применение, из которого Вы делаете партию денег, затем можно обычно лицензировать это код GPL от владельца авторских прав для использования в проекте за некоторую цену.
Для ответа на вопрос 3, если Вы - единственный автор кода GPL, затем у Вас есть полное авторское право к тому коду. Можно сделать то, что Вы хотите с ним, включая использование его в non-GPL проекте даже при выпуске его под GPL для других для использования.
Это не технический вопрос, это - легальный вопрос. Спросите адвоката, разрешенного практиковать в Вашей области.
Если программа динамично связывает плагины, и они делают вызовы функции друг другу и обмениваются данными структуры, мы полагаем, что они формируют единственную программу, которую нужно рассматривать как расширение и основной программы и плагинов. Для использования GPL-покрытых плагинов основная программа должна быть выпущена под GPL или GPL-совместимой лицензией бесплатного программного обеспечения, и что условия GPL должны сопровождаться, когда основная программа распределяется для использования с этими плагинами.
“Соответствующий Источник” для работы в форме объектного кода означает, что весь исходный код должен был генерировать, установить, и (для исполняемой работы) выполняет объектный код и изменить работу, включая сценарии для управления теми операциями. Однако это не включает Системные библиотеки работы, или универсальные инструменты или общедоступные бесплатные программы, которые используются неизмененные в выполнении тех операций, но которые не являются частью работы. Например, Соответствующий Источник включает интерфейсные файлы определения, связанные с исходными файлами для работы и исходным кодом для общих библиотек и динамично связанных подпрограмм, которых работа специально предназначена для требования, такой как близкой передачей данных или потоком управления между теми подпрограммами и другими частями работы.
Если суд найдет, что каждый специально предназначен для требования другого, то можно ожидать проблему. Природа Ложной Программы и Ложного Плагина могла бы играть роль также, относительно того, являются ли они "реальными" программами или марионетками. Консультируйтесь с адвокатом.
Я думаю, что Вы можете делать это, если Вы на самом деле не связываете программы. Сделайте, чтобы они были отдельными процессами и связались по сокету или именованному каналу или подобный.
Но действительно, я соглашаюсь с первым плакатом. Если Вы планируете использовать код GPL в non-GPL проекте, существует несколько хороших вариантов:
Я задал очень похожий вопрос здесь, но от начальной точки, что я выгляжу делающим исходный открытый исходный код продукта от запуска, который все еще оставляет меня способностью продать его позже.
Я не говорю, что GPL является правильным - существуют некоторые области, с которыми я действительно не соглашаюсь (и некоторые, которых я действительно не понимаю!), но по крайней мере это - шаг в правильном направлении.
Я думаю, что это действительно сводится к одному вопросу:-
Если ответ да, то примите его и идите дальше. Если ответ не (как в моем случае), то согласие до сих пор состоит в том, что я не должен волноваться о GPL.