Alex Gusev @flancer
Я кодирую, потому что я кодирую…
Information
- Rating
- Does not participate
- Location
- Рига, Латвия, Латвия
- Date of birth
- Registered
- Activity
Specialization
Fullstack Developer
Lead
From 3,000 €
JavaScript
HTML
CSS
Node.js
Vue.js
Web development
Progressive Web Apps
PostgreSQL
MySQL
GitHub
Посмотрел внимтаельно — про доход ничего не сказано "В случае коммерческого использования данного ПО" Значит, нужно заменить на "В случае получения дохода при коммерческом использовании данного ПО" — будет меньше ограничений.
Это зависит от базовой лицензии. Предложенные три пункта не накладывают на подобные вещи никаких ограничений.
В BSD-лицензии используется термин "Владельцы авторских прав" (copyright holders). Полагаю, что они эти вопросы должны согласовывать между собой. Если кто-то не хочет передавать никому права на свой код — это его право. В Magento, например, если ты создаешь pull request, то ты передаешь им право собственности на свой код. Этот функционал уже встроен в github.
Если владелец авторских прав на проект хочет развивать свой проект при помощи контрибьюторов, а не только самостоятельно, то он может подсчитать вклад каждого контрибьютора в проект (самое тупое — в строках кода) и разделить доход между ними. Более того, все контрибьюторы и сами могут делить доход от проекта между собой. Было бы, что делить, а вариантов, как поделить, можно придумать очень много. Самые удачные может быть даже встроят в github ;)
Если же владелец авторских прав на проект хочет сам все иметь — он просто отмечает этот момент в своей лицензии. Ну а тут уж личный выбор каждого — отдавать ли права на свой патч автору проекта или не заморачиваться с патчем.
Да, если автор проекта признает всех контрибьюторов своими соавторами с такими же правами на проект, как и у него, то автор патча может влиять на отношения Агентов к проекту.
Смысл идеи в том, что по-умолчанию любой может стать Агентом для всех проектов, если только владелец авторских прав на проект не указал обратного. Если твой соавтор заблокировал какого-то Агента, может у него есть на это какие-то основания? Вы же с ним в какой-то мере оба заинтересованны в получении дохода. Вот и разбирайтесь друг с другом. А может он просто от конкурента пришел? Пролез в код проекта и заблокировал самого выгодного Агента. Так тоже может быть. Я бы в таком случае на его месте вообще всех Агентов заблокировал. Но даже в этом случае положение не станет намного хуже, чем есть сейчас. Сейчас нет монетизации и в описанной мной ситуации не станет. Но зато у гипотетического конкурента, от которого пришел "соавтор", дела пойдут лучше, я полагаю.
Вполне возможно.
Это зависит от лицензии, под которой этот "автор" выпускает свой форк. Как я уже отметил, предложенные три пунта эти вопросы не регулируют. Если вы посмотрите тексты модифицированной при помощи AJFA-инъекции BSD-лицензии выше, то там нигде не сказано, что кто-то не может забирать код от проекта под этой лицензией в свой проект.
Я бы хотел отметить, что AJFA-инъекция никаким образом не ограничивает разработчиков или некоммерческих пользователей. Даже коммерческие пользователи без дохода никаким образом не ограничиваются. Единственное ограничение: в случае получения дохода при использовании программы нужно потратить часть дохода на программу, с помощью которого этот доход получен. Даже не ограничиваются размеры затрат — да хоть один цент. Заплатил цент Агенту — и все, ты полностью выполнил условия AJFA-инъекции.
На английском 3-clause BSD license с добавлением AJFA-пунктов могла бы выглядеть примерно так:
Это не юридически выверенный перевод дополнительных пунктов, но для начала и это сгодится.
Абсолютно верно, коллега. С этим не поспоришь.
Не все — только то, разработчики которого хотят монетизировать свои усилия по разработке своего ПО более эффективным способом, чем донат.
И с этим не поспоришь.
Хм. Сделал поиск в тексте по ключу "прода". Единственный найденный отрывок — "На каких условиях Агент продает его продукт? Да на каких продается — продукт стоит столько, за сколько его можно продать." Ну что ж, на слона можно смотреть с разных сторон, наверное можно увидеть в тексте и "описание модели продаж".
На самом деле автор пытался сформулировать пункты, при помощи которых большая часть лицензий на свободное ПО могла легко превращаться в лицензии на несвободное ПО. Например, лицензия BSD очень просто превращается в лицензию BSD+AJFA:
Copyright © <ГОД>, <ВЛАДЕЛЕЦ>
Разрешается повторное распространение и использование как в виде исходного кода, так и в двоичной форме, с изменениями или без, при соблюдении следующих условий:
ЭТА ПРОГРАММА ПРЕДОСТАВЛЕНА ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИМИ СТОРОНАМИ «КАК ОНА ЕСТЬ» БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. НИ В КОЕМ СЛУЧАЕ НИ ОДИН ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, КОТОРОЕ МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, КАК БЫЛО СКАЗАНО ВЫШЕ, НЕ НЕСЁТ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ ИЛИ ПОСЛЕДОВАВШИЕ УБЫТКИ, ВСЛЕДСТВИЕ ИСПОЛЬЗОВАНИЯ ИЛИ НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ПОТЕРЕЙ ДАННЫХ, ИЛИ ДАННЫМИ, СТАВШИМИ НЕПРАВИЛЬНЫМИ, ИЛИ ПОТЕРЯМИ ПРИНЕСЕННЫМИ ИЗ-ЗА ВАС ИЛИ ТРЕТЬИХ ЛИЦ, ИЛИ ОТКАЗОМ ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ), ДАЖЕ ЕСЛИ ТАКОЙ ВЛАДЕЛЕЦ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ.
С MIT несколько сложнее (Данная лицензия разрешает лицам… безвозмездно использовать Программное Обеспечение без ограничений), но тоже возможно, IMHO (… при соблюдении следующих условий:). С GPL все о-очень сложно — ее разрабатывали профессионалы и явно не с целью монетизации проектов (скорее даже наоборот).
Хотелось бы еще раз отметить, что дополнительные требования по оплате предъявляются только в случае коммерческого использования ПО. Все остальные свободы, включая "свободу 0" (запуск программ в любых целях), данные пункты не ограничивают — они вовсе не запрещают запускать программы с целью заработать. По большому счету единственный запрет, который они вводят — запрет не делиться доходом с создателем инструмента, который этот доход обеспечил. Да, в этом отношении ПО становится несвободным. Но только в этом.
Реальные велосипеды реального мира, если что:

Есть велосипеды со специальными колесами для езды по ступенькам и на них действительно удобно ездить по ступенькам.
Если человеку, который всю жизнь ездит только по ступенькам, предложить велосипед с круглыми колесами, то он возмутится. И будет прав. Потому что по ступенькам неудобно ездить на круглых колесах. И он будет до тех пор отстаивать преимущества квадратных колес, пока не попробует покататься на них по ровной поверхности и сравнить с круглыми.
Полностью согласен с коллегой DexterHD. Если все данные в системе хранятся и обрабатываются в UTC, то остается всего одна проблема — определить желаемую временнУю зону при представлении этих данных конечному пользователю. Другие варианты не обладают универсальностью и хороши лишь в определенных условиях и до тех пор, пока эти условия не изменятся.
Коллега SbWereWolf, впечатлен поисковым SQL'ом в полной мере. Универсальность подразумевает сложность. Вернее даже многоступенчатую связность причин-следствий. "Почему здесь Ж? Вот смотрите: из А следует Б, из Б — В,… а из Ё — Ж!" Принцип "7 плюс-минус 2" описывает кол-во объектов, на которых одновременно может фокусироваться человек. Популярные решения ориентированы на тех, кто "5". А "Ж" — это уже 8. Еще подъемно, но уже не всем. Мне, например, тяжело понять, как работает "общепоисковой SQL", но я восхищен вашей способностью его составить.
ну тогда не все так безнадежно, как мне казалось :)
Коллега maghamed, может у Вас есть идея, как бы злосчастный PR-5145 протолкнуть в ближайший релиз?
Перевел свой проект в production mode — да, класс
\Magento\Sales\Api\Data\OrderStatusHistory\Repository
имплементирующий интерфейс\Magento\Sales\Api\OrderStatusHistoryRepositoryInterface
появился в файле.../var/generation/Magento/Sales/Api/Data/OrderStatusHistory/Repository.php
.Будем надеяться, что положительные изменения в багфиксах станут скорее правилом, а не исключением. Могут ведь иногда и за 2 минуты смержиться:

Alexa Top 1K:
Может все-таки на "не очень маленького продавца"? Очень маленькие в "топ 1000" не попадают.
Миграция клиентов в феврале 2017:
Данные говорят, как минимум, о том, что миграция в Woo несколько проще, чем в Magento, а не о том, что Magento удерживает сегменты. Magento 2 может и "начала ориентироваться на мерчанта с годовым оборотом 20+ млн. $", но ориентируются ли эти мерчанты на Magento 2?
Fixed.
Несколько не ожидал увидеть мой SQL именно в таком, не совсем классическом виде, но мое любопытство удовлетворено в полной мере. Спасибо.
У меня легкий когнитивный диссонанс:
IMHO, несколько в противоречии с
Я не совсем понял, мы привязываемся к Postgres'у или пытаемся быть универсалами? Я, кстати, также ожидал увидеть "parent_id" в "element_tree".
Исходя из моего опыта работы с EAV структурой в Magento я несколько опасаюсь увидеть ваш SQL для постраничной выборки данных с фильтрацией и сортировкой (типовой use case). Но тем интереснее будет взглянуть на в следующей статье. Удачи.
И. Не "а", а "и". Имеет смысл и инструментарий содержать в порядке, и навыки его использования нарабатывать. Вы, дружище, бросаетесь в крайности, пролетая мимо золотой середины.
Получается, что самому языку типизация не нужна, но чтобы IDE могло в типах разбираться все-таки в каком-то виде (аннотации) эти типы указывать нужно.
Вы полностью подверждаете свою собственную характеристику. Причем во всех частях. Похвальная самокритичность.
Полностью согласен, программирование — это craft, а не art. Воспроизводимость, дополняемость, инженерность, если хотите, здесь важнее уникальности или самобытности. Понимание этого приходит со временем и не ко всем.
Объяснитесь, пожалуйста. Если досуг, разумеется.
Весьма категоричное заявление, коллега. Причем в нем не охвачены средние программисты, к коим я и себя отношу и коих по моему мнению — большинство. Мне, например, типизация (если она есть) весьма помогает ориентироваться не только в чужом коде, но и в собственном тоже (разумеется, при поддержке IDE). Не спасает, но и не мешает.