Pull to refresh

Суд не внял жалобам Skype на жестокость GPL

Reading time 2 min
Views 1.1K
Open source *
Больше года длились судебные разбирательства немецких активистов GPL и компании Skype. В итоге процесс завершился несколько дней назад полной и окончательной победой GPL. Компания Skype отказалась от своих апелляций. Теперь коммерсанты будут обязаны печатать полный текст лицензии GPL и вкладывать его в коробку с каждым Linux-телефоном, а также распространять исходники прошивки тоже вместе с телефоном, и никакие веб-ссылки тут неприемлемы.

Всё началось в феврале прошлого года, когда Харальд Вельт, основатель сайта gpl-violations.org, подал иск на компанию Skype в окружной суд Мюнхена. Спустя несколько месяцев суд огласил вердикт, что лицензия и исходники действительно должны вкладываться в коробку.

Однако компания Skype не примирилась с таким исходом и подала апелляцию в вышестоящий суд, приводя странный аргумент, что GPL «нарушает антимонопольное законодательство Германии». Конечно же, этот смехотворный довод не оказал никакого влияния на вердикт суда, так что результат оказался таким же. Компания Skype действительно обязана выполнять требования лицензии GPL, какими бы странными они ни были. Сам истец Харальд Вельт говорит, что во время разбирательств судья привёл юристу Skype такой пример: если владелец авторских прав на книгу хочет, чтобы его произведение вышло в суперобложке, то это может показаться странным издателю, но он не имеет права публиковать книгу без этой самой суперобложки. Другими словами, код GPL нельзя использовать, если вы не способны выполнить требования лицензии.
Читать дальше →
Total votes 49: ↑46 and ↓3 +43
Comments 53

Совместимость лицензий Creative Commons и LGPL

Reading time 1 min
Views 651
Lumber room
Здравствуйте!
Есть довольно интересная проблемка с лицензией:
Есть продукт в состав которого входит библиотека xAjax, которая распространяется под LGPL, a сам продукт под Creative Commons. Насколько это правомерно?

И еще есть модификация данного продукта, которая распространяется по коммерческой лицензией с той же библиотекой.

Ситуация трудная, но думаю не безвыходная. Что вы думаете, стоит ли искать альтернативу или попробовать купить данную библиотеку? Хотя информации о покупке на их сайте нет.
Total votes 8: ↑6 and ↓2 +4
Comments 13

Тень коммунизма

Reading time 4 min
Views 1.7K
Open source *
Перевод статьи «Why you shouldn't use the Lesser GPL for your next library» с комментариями академика Российской Академии Разработки Программного Обеспечения Олега Андреева.
www.gnu.org/licenses/why-not-lgpl.html

Почему вам не следует использовать Lesser GPL для вашей следующей библиотеки.

У проекта GNU есть две основные лицензии для библиотек. Первая — Lesser GPL, вторая — обычная GPL. Между ними есть существенная разница: LGPL позволяет использовать библиотеку в закрытых программах, а GPL — только в свободных.

Выбор лицензии определяется стратегией и зависит от ситуации. В настоящее время большинство библиотек GNU покрыты лицензией LGPL, что означает, что мы используем одну стратегию, отвергая другую. Поэтому мы призываем выпускать больше библиотек под лицензией GPL.
Читать дальше →
Total votes 31: ↑28 and ↓3 +25
Comments 75

Как отвязаться от GPL?

Reading time 1 min
Views 1.4K
Lumber room
Есть такая хорошая библиотечка: MatrixSSL. Маленькая, шустрая, безопасная… и, главное, со вполне вменяемым API, а не тем кошмаром, который в OpenSSL. Но у неё есть один недостаток: авторы релизнули библиотеку под GPL, а не LGPL, чтобы стимулировать юзеров покупать платную версию.

В связи с этим у меня вопрос к тем, кто разбирается в лицензировании: возможно ли избежать лицензирования приложения, использующего MatrixSSL, под GPL, если использовать следующий трюк. Пишется отдельное приложение, под GPL, которое работает как сетевой сервис: принимает RPC-запросы, отвечает на них… и которое фактически предоставляет через этот свой RPC-интерфейс доступ к API MatrixSSL. А основное приложение, хоть оно и будет использовать этот сетевой сервис, уже будет не под GPL.

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

Update: Судя по комментариям, необходимо уточнить, ещё раз (и, наверное, ещё много-много раз) — я ничего не имею против того, чтобы платить авторам такой классной библиотеки. Но релизить свой софт под GPL из-за неё я не хочу, я предпочитаю Public Domain или, в крайнем случае другие открытые лицензии, но не GPL-вирус!
Total votes 41: ↑26 and ↓15 +11
Comments 93

DB_Pgsql_Type: прозрачное преобразование сложных типов PostgreSQL в PHP и обратно

Reading time 2 min
Views 2.9K
PostgreSQL *
DB_Pgsql_Type — это фреймворк для преобразования сложных типов PostgreSQL 8.3+ в их аналоги на PHP и обратно. С ее помощью вы можете работать с полями сложного типа (к примеру, двумерным массивом композитных типов) так же просто, как с привычными массивами PHP.

Поддерживаются следующие типы данных и любые их вложенные комбинации:
  • Массивы элементов произвольного типа (в том числе многомерные).
  • Композитные типы и ROWTYPE (в частности, сами содержащие композитные поля или поля-массивы).
  • Hstore (в том числе содержащие сложные элементы).
  • Прочие типы: TIMESTAMP (преобразуется в Unix time), DATE, TIME, BOOLEAN и т. д.
Читать дальше →
Total votes 19: ↑14 and ↓5 +9
Comments 12

TeX-like разметка на Javascript

Reading time 2 min
Views 2.3K
JavaScript *
При написании console-like форума был задан вопрос: «какую разметку лучше использовать?». Среди вариантов были стандартный бб-код ([b]bold[/b]), вики-разметка(*bold*), или TeX-like разметка (\b{bold}). После недолгого совещания выбор был остановлен именно на TeX-like. Была написана небольшая библиотека, которая, по моему мнению, достаточно интересна, расширяема и гибка. Желающие посмотреть пример могут перейти по ссылке freecr.ru/TeX
Под хабракатом у меня исходный код под лицензией LGPL, объяснение возможностей, принципов и примеры написания плагинов.
Total votes 22: ↑20 and ↓2 +18
Comments 35

Object-oriented PHP

Reading time 5 min
Views 1.5K
PHP *
Здравствуйте. Хочу презентовать хабрасообществу альфа-версию новой open-source библиотеки на PHP для работы с примитивами(string, integer, float и array) как с объектами.

Под катом — короткое описание, ссылка на гуглокод, описание целей и планов.
Читать дальше →
Total votes 104: ↑70 and ↓34 +36
Comments 122

jQuery.keyboard v0.1.0

Reading time 2 min
Views 5.5K
jQuery *

У меня есть на примете как минимум два проекта, в которых понадобится активное управление с помощью клавиатуры. Поэтому, я сел и написал удобный и красивый плагин для jQuery, который выкладываю во всеобщий доступ под свободной лицензией LGPL.
Читать дальше →
Total votes 141: ↑136 and ↓5 +131
Comments 82

jQuery.keyboard v0.2.0

Reading time 4 min
Views 5.5K
jQuery *

Снова приветствую Хабрасообщество. Недельку назад я выкладывал свою либу jQuery.keyboard. Там было несколько недостатков, нереализованных идей, да и огромное количество предложений и положительных отзывов побудили меня к быстрому написанию новой версии
Читать дальше →
Total votes 85: ↑74 and ↓11 +63
Comments 59

ProgressBar — Javascript Canvas2d

Reading time 4 min
Views 6K
HTML *

Здравствуйте. Последнее время я достаточно часто имею дело с JavaScript-canvas, особенно написание всяких игрушек, которые требовательны к трафику в силу необходимости загрузки множества картинок.
Обычно сначала загружается около 50-100кб сжатого JavaScript, после чего — энное количество картинок(например, 500кб, 2мб, 10мб и т.п.) и только после этого запускается сама игра. Можно, конечно, загружать по ходу, но отсутствие текстур врядли порадует игрока.
Потому я решил, что необходимо сделать какой-то приличный, симпатичный, легко-настраиваемый(чтобы быстро менять от проекта к проекту) прогресс-бар, но, обязательно без использования картинок. Под катом исходники под лицензией LGPL, небольшая инструкция, как это сделать и внизу статьи — ссылка на результат.
Читать дальше →
Total votes 90: ↑85 and ↓5 +80
Comments 31

«LibCanvas» — фреймворк для работы с Javascript Canvas

Reading time 7 min
Views 13K
HTML *
Здравствуй, Хабр! Думаю, люди, которые следят за моим творчеством, заметили, что я очень увлекся рисованием на Canvas в JavaScript. Возможно это немного излишне, но ничего не могу с собой поделать, уж очень нравится эта технология. Так нравится, что я аж буду выступать на конференции с докладом о ней (Пономаренко Павел).

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

Читать дальше →
Total votes 74: ↑68 and ↓6 +62
Comments 52

«LibCanvas» — фреймворк для работы с Javascript Canvas, часть вторая

Reading time 3 min
Views 5.2K
HTML *

Привет, Хабр! Я хочу рассказать тебе о новой библиотеке, которая помогает очень легко и изящно рисовать всякие штучки-дрючки на html5 canvas. Возможно, ты уже слышал о ней, но сейчас она пережила новое рождение. Что-ж, под катом я покажу тебе много интересненьких примеры, расскажу про нюансы работы и дам ссылку на грозу всех секретарш — почти работающий пасьянс «Косынка», созданную с помощью этой LibCanvas.

Читать дальше →
Total votes 48: ↑42 and ↓6 +36
Comments 54

«LibCanvas» — фреймворк для работы с Javascript Canvas, запущен сайт + игра «Asteroids»

Reading time 1 min
Views 6.3K
HTML *
Здравствуйте. Я продолжаю развитие фреймворка для работы с Javascript Canvas, основанного на MooTools и предназначенного для создания анимаций, игр, ui и всего, что вы пожелаете. И сегодня — очень важный момент для этого фреймворка — публичный запуск официального сайта.

Добро пожаловать на

libcanvas.com



К запуску мы с greedykid и Nutochka портировали «Asteroids» — культовую игру восьмидесятых, но с более усовершенствованной графикой, которая работает во всех современных браузерах (да-да, про ie < 9 тут ничего не было). Работа над Астероидами показала мне потенциал этой технологии. Я уверен, что это далеко не предел, у меня есть идеи и даже интересные реализации и потому я продолжу развитие этого фреймворка. Ждите новых интересных приложений.
Читать дальше →
Total votes 79: ↑77 and ↓2 +75
Comments 81

Дворовой бридж — соревнование ИИ (libcanvas)

Reading time 7 min
Views 195K
HTML *

Предлагаю устроить спортивное программирование — написание ИИ на Javascript для игры в дворовой бридж. Предоставляю уже готовую игру на libcanvas и изящный интерфейс для создания AI. Все, что вам надо — браузер, немного азарта и знание JavaScript. Первый этап — вы программируете свой ИИ, играя против него. Второй этап — вы программируете свой ИИ и он играет против лучших из первого этапа. После второго этапа проводим турнир и объявляем итоги. Уверен, что получим много фана и удовольствия. Победителям — слава и почет. Если победят не зарегистрированные на Хабре — готов предоставить инвайты.

Читать дальше →
Total votes 42: ↑38 and ↓4 +34
Comments 21

Webasyst: открытый PHP-фреймворк для создания бизнес-приложений

Reading time 2 min
Views 1.9K
Self Promo
Хочу рассказать о проекте, который мы недавно выпустили.

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



Фреймворк называется Webasyst, написан на PHP/MySQL/Smarty/jQuery, бесплатный, с открытым кодом (лицензия LGPL).

Немного подробнее под катом
Total votes 68: ↑55 and ↓13 +42
Comments 47

Эмулятор терминала Pyte

Reading time 4 min
Views 11K
Selectel corporate blog

Как и было обещано, мы выпускаем под LGPL нашу библиотеку эмуляции эмулятора терминала linux, которую мы используем для показа консолей виртуальных машин в облаке. Называется она, соответственно, pyte (PYthon Terminal Emulator).

По нашим собственным оценкам, покрытие «текстового» функционала console_codes приближается к 100% (от 80 до 90%, как подсказывают пессимисты из числа оппортунистов среди разработчиков).

Не реализованы: коды загрузки шрифтов в знакогенератор VGA-адаптера, управление энергосбережением VESA, звуковая сигнализация (коды управления частотой и длительностью звука), управление палитрой, собственные чарсеты; в общем всё то, что не имеет отношения к тексту.

Зато реализованы все остальные сложные функции, такие, как блокировка регионов экрана для записи, скроллинга, управление режимами переноса строк, правильная обработка атрибутов при различных видов удаления текста и т.д. — всё то, что нужно существующим приложениям, таким как nano, adom (на картинке фрагмент ESC-кодов и получающегося изображения как раз из ADOM'а), vim, emacs, mc, aptitude, dialog, yast2 и т.д. для полноценной отрисовки.

Библиотека написана на питоне и заточена под удобство манипуляций над экраном, абстрагируясь от графического представления изображения, что позволяет её использовать в коде, осуществляющим дальнейшие преобразования (например, передачи экрана в JS или сериализации в БД).

Второй важной особенностью библиотеки является поддержка диффов (разниц) между предыдущим и текущим состоянием экрана. Это необходимо для экономной передачи изображения через каналы ограниченной скорости (читай, интернет) и отрисовки на устройствах ограниченной производительности (читай, javascript).

История создания

Читать дальше →
Total votes 72: ↑72 and ↓0 +72
Comments 35

pyxs — библиотека к xenstore на питоне

Reading time 1 min
Views 2.5K
Selectel corporate blog
Вступление: Ключевым элементом всех тулстеков для Xen является xenstore — сервис, позволяющий иметь «общую БД» для всех доменов на хосте. Давным-давно существует библиотека libxs для доступа к ней из приложений на Си. К ней есть биндинг на питоне (xen.lowlevel.xs), однако, у него есть очень серьёзные проблемы с многопоточной подпиской на события. Нас это не устраивало и для работы нашего сервиса memory on demand была написана библиотека pyxs, которая позволяет иметь очень комфортную работу с xenstore, многопоточные подписки и т.д.

По здравому размышлению было принято решение отдать её людям под LGPL-лицензией.

Примеры использования

Простое чтение и запись:
from pyxs import Client

xs=Client():
xs["/foobar/a"] = "baz"
print xs["/foobar/a"]


Второй важный класс — это Monitor для организации подписки на множественные изменения, ради которого всё писалось:

from pyxs import Monitor

xs=Monitor():
xs.watch("/local/domain/1")
xs.watch("/local/domain/2")
while true:
    print xs.wait()

Нас разбудит каждый раз, когда что-то поменяется в первом ИЛИ втором пути.

Сссылка на гитхабе: github.com/selectel/pyxs
Документация: pyxs.readthedocs.org
Total votes 30: ↑25 and ↓5 +20
Comments 0
1