Search
Write a publication
Pull to refresh
0
Send message

FAQ по лицензированию Drupal

Reading time8 min
Views6.4K
Готов перевод справочного материала по лицензированию Drupal, в котором рассмотрены, в частности, вопросы использования кода Drupal и иного контента с сайта проекта Drupal.org, особенности лицензирования и использования связующих модулей, а также даны некоторые разъяснения условий лицензии GPL и пояснения про товарный знак Drupal.

Эти вопросы и ответы помогут прояснить юридические вопросы применительно к лицензированию проекта Drupal и лицензии GNU General Public License. Благодарим Software Freedom Law Center за их помощь в подготовке данной информации.

Содержание
  1. Какая лицензия у Drupal?
  2. Лицензия распространяется только на PHP или на все?
  3. Кто обладает авторским правом на Drupal?
  4. Я желаю опубликовать мою работу под лицензией GPL версии 3 или только под GPL версии 2. Могу я так сделать и разместить ее на Drupal.org?
  5. Какая лицензия у контента на Drupal.org?
  6. Лицензия GPL требует, чтобы я распространял «исходный код» моих файлов. Что это означает для веб-приложения?
  7. Если я создам модуль или тему, должен ли я применить к ним лицензию GPL?
  8. Если я создам модуль или тему, должен ли я предоставлять его кому угодно?
  9. Могу ли я продавать Drupal, модуль для Drupal или тему для Drupal?
  10. Могу ли я написать «связующий модуль» для взаимодействия между Drupal и другой системой или библиотекой?
  11. Должен ли я предоставлять код своего сайта любому его посетителю?
  12. Будет ли Drupal распространяться на условиях лицензии GPL версии 3?
  13. Я обнаружил модуль или тему в репозитории контрибьютов, который распространяется только на условиях лицензии GPL версии 2 или только на условиях лицензии GPL версии 3. Что я должен делать?
  14. Я обнаружил модуль или тему в репозитории контрибьютов, который распространяется на лицензионных условиях, отличных от GPL (включая LGPL или AGPL). Что я должен делать?
  15. У меня есть вопрос, на который нет ответа здесь. Что я должен делать?
  16. Почему Drupal является зарегистрированным товарным знаком Дриса Бёйтарта? Это означает, что он не бесплатен?



Читать дальше →

Заблуждения программистов о телефонных номерах

Reading time3 min
Views66K
Список составили разработчики Java, C++ и JavaScript библиотеки libphonenumber для парсинга, форматирования и проверки телефонных номеров

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

1. Телефонные номера, действительные сейчас, останутся действительными всегда. Телефонные номера определённого типа (например, мобильные), никогда не сменят тип.

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

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

Немного размышлений и советов по оптимизации кода на С++

Reading time13 min
Views69K


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

Как правило, язык C++ используют там, где требуется высокая скорость работы. Но на C++ без особых усилий можно получить код, работающий медленнее какого-нибудь Python/Ruby. Именно подобным кодом оперируют многочисленные сравнения Any-Lang vs C++.

Вообще, оптимизация бывает трех типов:

  1. Оптимизация уже готового, проверенного и работающего кода.
  2. Изначально написание оптимального кода.
  3. Просто использование оптимальных конструкций.

Специально заниматься оптимизацией готового кода следует только после того, как проект закончен и используется. Как правило, оптимизация потребуется только в небольшой части проекта. Поэтому сначала нужно найти места в коде, которые съедают большую часть процессорного времени. Ведь какой смысл ускорять код, пусть даже на 500%, если он отнимает только 1% машинного времени? И следует помнить, что, как правило, гораздо больший выигрыш в скорости дает оптимизация самих алгоритмов, а не кода. Именно про данный ее вид говорят: «преждевременная оптимизация — зло» (с).

Второй тип оптимизации — это изначальное проектирование кода с учетом требований к производительности. Такое проектирование не является ранней оптимизацией.

Третий тип даже не совсем оптимизация. Скорее это избегание неоптимальных языковых конструкций. Язык C++ довольно сложный, при его использовании частенько нужно знать, как реализован используемый код. Он достаточно низкоуровневый, чтобы программисту пришлось учитывать особенности работы процессоров и операционных систем.
Читать дальше →

Жизнь в сети после смерти: как настроить аккаунты

Reading time2 min
Views31K
Вы умерли.

Этот гипотетический сценарий выдаёт с порога адвокат Меган Ип (Megan Yip) каждому клиенту, который появляется в её офисе в Бэй-Эриа в Сан-Франциско. Она заставляет их думать, что они хотели бы сделать со своим имуществом, прежде чем попросить их составить каталог всего, чем они владеют. Это стандартный процесс при составлении завещания. Сейчас Ип добавила ещё один пункт к тому процессу — клиентам нужно провести инвентаризацию цифрового имущества, чтобы определить будущее их цифрового наследия.

У меня был отличный друг в LiveJournal, с которым я никогда не виделся, но много лет общался в сети. И однажды его не стало. К несчастью, это может случиться с каждым.

Давайте поговорим о том, что будет с нашими страницами после смерти.

image
Читать дальше →

Используй или проиграй: 31 аргумент в пользу Social Media Intelligence

Reading time4 min
Views3.1K
Из Библии: «Нет пророка в своем отечестве». Поэтому на людей сильнее действуют пришлые пророчества (импортные статьи, предсказания болгарской Ванги или китайской философии). Так что по принципу японского айкидо используем чужую силу (веру, привычки, устои) на благо себя и приведем очередной перевод для продвижения полезного. Того, что уже массово используют (и в России тоже) практически все крупные FCMG: слушать людей, слышать, реагировать, влиять и побеждать. Благо добрая половина человечества уже живет в социальных медиа.



В небольшом, но емком материале собрана полезная фактография, которую можно использовать в обсуждениях вашей позиции для движения в нужном направлении.
Читать дальше →

Кризис ожирения сайтов

Reading time30 min
Views123K
Примечание переводчика: визит под кат этого поста означает большие объёмы потреблённого трафика. И это иронично, если учесть поднятую тему. Но всё сразу встаёт на свои места, если помнить, что в оригинале это было выступление в прошлом ноябре в Сиднее длиной почти в час. Чтение поста занимает куда меньше времени. В форме видеозаписи (1280×720) речь занимает два гигабайта. Пост же занимает всего лишь 12 МиБ. Рекомендуется просмотр на широких мониторах.



Перед началом тирады я хотел бы обратить внимание на то, что прекрасные сайты бывают любых форм и размеров. И я здесь не собираюсь кого-то пристыживать за количество использованных бит, объём использованных ресурсов и так далее. Я люблю большие сочные галереи изображений, мне нравятся огромные эксперименты на JavaScript, я смотрю онлайн-видео в высоком разрешении, как и все вы. Я считаю, что подобное замечательно.

Выступление совсем не об этом. Я хотел бы поговорить об этом общественном кризисе здоровья, этом ожирении сайтов. Отличные дизайнеры, которые задумываются о вебе как я или даже больше, почему-то делают страницы, которые становятся больше. Речь пойдёт о текстовых в своей основе сайтах, которые по каким-то непостижимым причинам с каждым годом становятся всё больше и больше.
Читать дальше →

Как самостоятельно проанализировать рынок труда

Reading time5 min
Views29K
На данный момент IT в целом — это одно из самых динамично развивающихся направлений. Каждый день появляется сотня новых библиотек, каждый месяц кто-нибудь придумывает новый язык или платформу — да что там, появляются целые направления. Время бежит и какие-то строки в Вашем резюме устаревают — грубо говоря, они больше не добавляют Вам очков в глазах работодателя. А какие-то навыки наоборот, могли бы существенно поднять Ваш рейтинг.
Как не потеряться в этом море возможностей, выбрать главное и не ошибиться? Очевидно, нужно держать руку на пульсе и отслеживать рынок труда. О том как это можно сделать с помощью собственного велосипеда — под катом.
Конструкция велосипеда

6 секретов Bitbucket

Reading time4 min
Views91K
Один из принципов дизайна в Atlassian — лаконичность. В ходе эволюции UX некоторые непопулярные действия, расчитанные на опытных пользователей, были спрятаны в выпадающих списках или за горячими клавишами. Там они ждут предприимчивого пользователя, который случайно наткнётся на них благодаря случайному нажатию клавиш или клику мышки (ну, или заглянет в руководство). Вот шесть моих любимых трюков Bitbucket Cloud, о которых вы, возможно, никогда не слышали:

Омнибар


Омнибар в Bitbucket — это строка быстрого доступа к действиям, похожая на ⇧⇧ в средах разработки JetBrains или ⌘+P в Sublime Text. Запустить омнибар можно на любой странице, нажав клавишу точки.

По умолчанию, он покажет набор действий, соответствующих текущему контексту:
Omnibar
Читать дальше →

Доллар

Reading time5 min
Views82K


Последние два года вся страна пристально следит за курсом доллара. Новостные выпуски пестрят громкими репортажами о долларе. Все говорят о долларе. А что, если мы на фоне горячего интереса, разберемся с тем, как формируется цена доллара, посмотрим кто и как торгует валютой?! Все результаты, представленные в данной статье, получены на основе официальных торговых данных full orders log (полный журнал заявок), купленные на Московской Бирже. Мы покажем реальные торги изнутри. Параллельно, познакомимся со стандартными методами анализа рынка. Такая аналитика стоит не малых денег и её могут позволить ограниченное число «компаний».

Инструментом для анализа данных будет Java. Анализируемый биржевой инструмент — USDRUB_TOM. Наша задача вытащить любопытные детали из имеющихся данных и попробовать сделать определенные выводы.
Читать дальше →

Как игры помогают учить детей программированию?

Reading time4 min
Views12K
Складывается ощущение, что современные дети просто рождаются с гаджетами. Для них разобраться в технологиях становится делом нескольких минут. Но оказывается их еще есть чем удивить! Программирование позволяет детям открыть совсем другой для них мир — мир технологий.

Читать дальше →

Как устроено сплит-тестирование в Badoo

Reading time18 min
Views26K
Если в Google ввести запрос «a b тестирование», то по теме выпадает довольно много статей, но в них больше теории и ориентированы они на менеджеров, а в качестве инструментов предлагаются готовые клиентские реализации, вроде Google Analytics. Также есть статья про очень простую серверную реализацию (в реалиях авторов, я думаю, этого вполне достаточно).

Сегодня я расскажу о том, как это происходит у нас, в Badoo, при огромном количестве пользователей по всему миру.

У нас был целый «зоопарк» инструментов для сплит-тестирования во главе с A/B фрэймворком, часть из которых разрабатывалась для других целей. Помимо прочих недостатков, все эти инструменты использовали примерно один и тот же способ для разделения пользователей на варианты — это хеширование ID пользователя плюс «соль». Такой подход нас не удовлетворял, и было принято решение разработать новую версию, в которой можно было бы избежать недостатков старых версий.
Читать дальше →

Персонализация IMGUI и редактора Unity. Часть вторая

Reading time11 min
Views7.6K
С момента выхода новой системы Unity UI прошло больше года, поэтому Ричард Файн решил написать о ее предшественнице – IMGUI. В прошлой части материала мы разобрали как создать MyCustomSlider. У нас получился простой функциональный элемент IMGUI, который можно использовать в пользовательских редакторах, PropertyDrawers, EditorWindows и т. д. Но это еще не всё. Во второй части статьи мы поговорим о том, как можно расширить его функционал, например добавить возможность мультиредактирования.


Читать дальше →

Простой расчет контрольной суммы

Reading time12 min
Views232K
При передачи данных по линиям связи, используется контрольная сумма, рассчитанная по некоторому алгоритму. Алгоритм часто сложный, конечно, он обоснован математически, но очень уж неудобен при дефиците ресурсов, например при программировании микроконтроллеров.



Чтобы упростить алгоритм, без потери качества, нужно немного «битовой магии», что интересная тема сама по себе.
Читать дальше →

Как балансируются настольные и разные другие игры – краткий обзор способов

Reading time10 min
Views62K


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

Конечная цель любой балансировки игры – увеличение возврата игроков или времени партии. То есть играбельности механики:
  • Не должно быть однозначной ультимативной стратегии победы, иначе игра потеряет вариативность и интерес.
  • Игрок должен чувствовать, что от его действий и навыков зависит игра. Иначе получится Mass Effect, который, скорее, фильм, нежели RPG.
  • Баланс должен быть «амортизированным», то есть прощать некоторые ошибки – иначе запоздалый на миллисекунду клик в Starcraft по первому рабочему из-за «эффекта бича» вызывал бы проигрыш через 4 часа идеальной партии. Наша настольная формула – 5-7 важных решений за игру, в двух можно ошибиться.
  • У настолок есть ещё социальное условие: игроки не должны выпадать по ходу пьесы – интересно должно быть всем и до конца.

Теперь – методы.
Читать дальше →

Снова про STL

Reading time8 min
Views22K
Эта подборка коротких заметок относительно контейнеров C++ появилась как результат просьбы подготовить для начинающих коллег программистов сжатый обзор STL. Зачем это было нужно, когда по этому предмету есть оригинальная документация и много целых отдельных книг, из которых как минимум 5-6 превосходного качества существуют в переводах и на русский язык?
Но смысл, однако, есть и он вот в чём:

  • Все книги изданы в конце 90-х — начале 2000-х. Более поздние стандарты языка C++ (вплоть до C++11) вводят новые синтаксические конструкции, которые в применении с STL дают кросс-эффект … с очень интересной интерференцией. Это позволяет часто использовать конструкции STL с гораздо большей лёгкостью.
  • Книги обычно описывают предмет слишком детализировано (это хорошо для студентов, но избыточно для программистов, пусть даже уровня джуниоров, которым, после других языков, например, нужно только базовое ознакомление). Оригинальная документация, наоборот, напичкана формальными синтаксическими определениями (это замечательно в качестве справочника под рукой, но избыточно для знакомства). Настоящие заметки, полностью избегая формальных определений, строятся вокруг примеров использования, в большей части понятных программисту даже без каких-либо дополнительных пояснений.
  • Контингент, для которого первоначально готовились тексты, помимо прочего в значительной степени ориентирован на численные математические методы, обработку данных в потоке, на что не рассчитаны существующие публикации. Мне тоже ближе такой уклон, и такой акцент будет заметен в примерах, на которых построено описание.

Из-за требований обязательной однотипности объектов в контейнерах, их можно было бы с уточнением называть регулярными контейнерами, это много проясняет (не делается такое уточнение только потому, что и так всем ясно о чём речь). Речь, конечно, идёт о контейнерах STL, но и традиционный массив C/C++ — это такой же регулярный контейнер, и они будут фигурировать в тексте и примерах. (Структуры, а ещё более обще, классы с полями данных тоже являются контейнерами, но их никак не назовёшь регулярными.)

Хотелось бы надеяться, что эти заметки окажутся полезными кому-то из осваивающих STL, упростят этот процесс понимания. А предложения и замечания, когда они будут по существу, от тех читателей, кто уже профи в C++, позволят улучшить эти тексты на будущее, когда они смогут пригодиться ещё кому-нибудь.
Читать дальше →

Удобное преобразование перечислений (enum) в строковые в С++

Reading time4 min
Views26K
У перечислений есть множество способов применения в разработке. Например, при создании игр они используются для программирования состояний персонажа или возможных направлений движения:

enum State {Idle, Fidget, Walk, Scan, Attack};
enum Direction {North, South, East, West};

Гораздо удобнее, когда во время отладки в консоль выводится сообщение типа “State: Fidget” вместо “State: 1”. Также частенько бывает нужно сериализировать перечисления в JSON, YAML или иной формат, причём в виде строковых значений. Помимо того, что строковые воспринимать легче, чем числа, их применение в формате сериализации повышает устойчивость к изменениям численных значений констант перечислений. В идеале, "Fidget" должен ссылаться на Fidget, даже если объявлена новая константа, а Fidget имеет значение, отличное от 1.

К сожалению, в С++ нет возможности легко конвертировать значения перечислений в строковые и обратно. Поэтому разработчики вынуждены прибегать к разным ухищрениям, которые требуют определённой поддержки: жёстко закодированным преобразованиям или к использованию неприглядного ограничительного синтаксиса, наподобие Х-макросов. Кто-то дополнительно использует средства сборки для автоматического преобразования. Естественно, это только усложняет процесс разработки. Ведь перечисления имеют свой собственный синтаксис и хранятся в собственных входных файлах, что не облегчает работу средств сборки в Makefile или файлах проекта.

Однако средствами С++ можно гораздо проще решить задачу преобразования перечислений в строковые.
Читать дальше →

Как компьютер играет в шахматы?

Reading time14 min
Views100K

Хикару Накамура, недавно бросивший вызов компьютеру

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

Если вам интересно, как же устроены шахматные движки — добро пожаловать под кат.
Читать дальше →

Виртуальная реальность — 10 способов перемещения, не вызывающих дискомфорт

Reading time7 min
Views24K
Вдохновившись интересом аудитории Geektimes к такому популярному и раскручиваемому нынче явлению как виртуальная реальность, решил представить вашему вниманию еще одну статью, в которой рассматриваются характерные особенности создания контента для VR-cистем, ориентированного на геймеров.

***

Глядя на игры для виртуальной реальности и оценивая их, в своих суждениях, как правило, мы отталкиваемся от своего опыта и вкусов в области традиционных компьютерных игр, в которые мы привыкли играть.
У каждого из нас за многие годы уже выработались свои жанровые предпочтения, определенные требования к графике и игровому процессу, и нас сложно чем-то удивить как визуально, так и геймплейно, особенно когда 360° VR-контент демонстрируют в двухмерном виде.

Тем не менее, сейчас я хотел бы поговорить не о глобальных различиях, характеризующих виртуальные игры как отдельную ветвь развития игровой индустрии, а только о способах реализации перемещений действующего лица в пространстве виртуальной реальности (locomotion), как о важной составляющей игрового процесса, имеющей свои особенности.
Речь пойдет о системах перемещений в проектах для систем Oculus Rift, HTC Vive и PlayStation VR.

image
Читать дальше →

Apple не хочет помогать взламывать iPhone. Почему это важно?

Reading time11 min
Views22K
Не самое крупное решение компании Apple явилось толчком для начала нового витка обсуждений вопросов шифрования и приватности. Компания отказалась разблокировать зашифрованный смартфон, фигурировавший в деле о терактах в Сан-Бернандино. Производитель объясняет, что сочувствия террористам он не испытывает. Тем не менее давать спецслужбам бэкдор Apple отказалась.

Подобный случай вызвал дискуссии о том, что важнее: помощь спецслужбам в одном из расследований жестокого убийства людей или обеспечение информационной безопасности. Конфликт назревал давно, ещё с момента появления в iPhone включённого по умолчанию шифрования.

Ход развития событий


Проблемы начались не после начала расследования или публикации открытого письма главы Apple Тима Кука, а после выхода iOS 8 в 2014 году. Именно в восьмой версии шифрование было включено по умолчанию. Тогда спецслужбы не на шутку забеспокоились.

Метод Альфа Бета кампаний в Adwords

Reading time4 min
Views4.5K


Путешествуя по просторам интернета в поисках чего-нибудь нового для Adwords, я наткнулся на занимательный метод организации рекламной кампании. Называется он «Alpha Beta Campaign Structure». Придуман и описан он Дэвидом Раджински, СЕО 3Q Digital. Метод показался мне интересным, хоть и довольно простым. Давайте разберёмся что же он из себя представляет и чем хорош.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity