• Коммерческий продукт на основе TDLib (Telegram). Как быть?

    @Z-r
    IANAL, TINLA.

    > Подскажите пожалуйста — могу ли я создать мобильное приложение на основе TDLib и продавать?

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

    Для начала просто посмотрим, не написано ли чего в документации — и окажется, что написано, а именно — в README.md есть такие строки:

    «TDLib is licensed under the terms of the Boost Software License. See LICENSE_1_0.txt for more information».

    Во-первых, решительно ничего не мешает нам прочитать этот LICENSE_1_0.txt:

    Boost Software License - Version 1.0 - August 17th, 2003

    Permission is hereby granted, free of charge, to any person or organization
    obtaining a copy of the software and accompanying documentation covered by
    this license (the "Software") to use, reproduce, display, distribute,
    execute, and transmit the Software, and to prepare derivative works of the
    Software, and to permit third-parties to whom the Software is furnished to
    do so, all subject to the following:

    The copyright notices in the Software and this entire statement, including
    the above license grant, this restriction and the following disclaimer,
    must be included in all copies of the Software, in whole or in part, and
    all derivative works of the Software, unless such copies or derivative
    works are solely in the form of machine-executable object code generated by
    a source language processor.

    <здесь отказ от гарантий — Z.>


    — и убедиться, что он написана довольно поверхностно, и в частности прямого ответа на ваш вопрос о продажах она, строго говоря, не дает.

    Поэтому обратимся к каноническому справочнику «Различные лицензии и комментарии к ним» под редакцией Лаборатории лицензирования ФСПО, и найдем, что эта лицензия охарактеризована там [0] так:

    Лицензия программ Boost (Boost Software License) (#boost)

    Это безвольная неограничительная лицензия свободных программ без авторского лева, совместимая с GNU GPL.


    Итак, некая программа на условиях одной лицензии «Буста» должна быть свободна, что по определению [1] значило бы, что на ее основе можно писать мобильные или любые другие приложения и продавать их.

    [0] https://www.gnu.org/licenses/license-list.ru.html#boost
    [1] https://www.gnu.org/philosophy/free-sw.ru.html

    Теперь стоит убедиться, что интересующая вас программа действительно распространяется на условиях лицензии «Буста». Заберем ее исходники [2], и прогоним по ним licensecheck(1p).

    Полный вывод я позволю себе не приводить, но суть такова:

    На большей части файлов действительно недвусмысленно обозначена BSL 1.0:

    ...
    ./td/mtproto/AuthData.cpp: BSL (v1.0)
    ./td/mtproto/AuthData.h: BSL (v1.0)
    ./td/mtproto/AuthKey.h: BSL (v1.0)
    ./td/mtproto/CryptoStorer.h: BSL (v1.0)
    ./td/mtproto/Handshake.cpp: BSL (v1.0)
    ...


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

    ...
    ./td/generate/scheme/mtproto_api.tl: *No copyright* UNKNOWN
    ./td/generate/scheme/mtproto_api.tlo: UNKNOWN
    ./td/generate/scheme/secret_api.tl: *No copyright* UNKNOWN
    ./td/generate/scheme/secret_api.tlo: UNKNOWN
    ./td/generate/scheme/td_api.tl: *No copyright* UNKNOWN
    ./td/generate/scheme/td_api.tlo: *No copyright* UNKNOWN
    ./td/generate/scheme/telegram_api.tl: *No copyright* UNKNOWN
    ./td/generate/scheme/telegram_api.tlo: UNKNOWN
    ./td/generate/scheme/update-tlo.sh: *No copyright* UNKNOWN
    ./tdutils/td/utils/config.h.in: *No copyright* UNKNOWN
    ...


    Два ненужных вам образца:

    ...
    ./example/go/main.go: *No copyright* UNKNOWN
    ./example/ruby/example.rb: *No copyright* UNKNOWN
    ...


    Ну и наконец в каталоге ./sqlite лежит какой-то местный вариант SQLite’а, который здесь почему-то на условиях трехпунктной лицензии BSD, выданной неким ZETETIC’ом, хотя оригинал распространяется как т. н. «общественное достояние» и отнюдь не ZETETIC’ом.

    (С справочником сверяйтесь сами [3], если хотите. :-)

    [2] https://github.com/tdlib/td
    [3] https://www.gnu.org/licenses/license-list.ru.html#...

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

    > Или же я могу использовать данную библиотеку только для
    > "открытых" проектов?

    Что бы вы не имели в виду, под странным словечком «открытый», все требования лицензии «Буста» и трехпунктной лицензии BSD сводятся по существу к тому, что вам следует так или иначе воспроизводить имена хозяев работы, и текст этих лицензий.

    Если же вы спрашиваете, не должно ли ваше приложение быть свободным, чтобы вы могли включить в него TDLib, то нет, не должно быть. Об этом вам говорят слова «безвольная неограничительная» и «без авторского лева» из списка «Различных лицензий».

    Что ни в коем случае не следует понимать, как совет делать свою программу несвободной. Я смею предполагать, что хотя авторы TDLib и дают вам такое право, они все-таки надеются на вашу порядочность.

    > Или же дела обстоят совсем иначе чем я могу представить?

    Да, мне показалось, что вы разделяете заблуждение о том, что свободные якобы нельзя продавать. Хотя, разумеется, свободные программы продавать можно и полезно (на то они и свободные ;-).
    Ответ написан
    Комментировать
  • Как перевезти системный блок в самолёте?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Я летаю туда-назад со своим системником ежегодно (не люблю ноуты, предпочитаю своего зверя). Жесткие диски вынимаются и перевозятся в ручной клади. Остальное пакуется в обычную коробку от системника и аккуратно проклеивается скотчем по всем швам, на регистрации на нее вешают красные наклеечки "Fragile" - погрузка-выгрузка на борт происходит в ручном режиме, никаких транспортных лент. Иногда, если кроме компа еще есть много багажа, возможно придется доплатить за суммарный перевес. Монитор - зависит от размеров. До 23" можно в ручную кладь брать, возражать вряд ли кто-то станет. Ну а 27" точно придется сдавать в багаж, схема такая же как с системником.
    Ответ написан
  • Как перевести Фарады в Ампер*часы?

    @throughtheether
    human after all
    В первой версии допустил неточность.
    Пусть у вас емкость конденсатора X [фарад], напряжение Y [вольт]. Тогда заряд на нем Q=XY [кулон] = XY[ампер*секунда] = XY [ампер * час/3600]=XY/3600 [ампер*час].
    Ответ написан
    5 комментариев
  • Как наказать недобросовестного владельца сайта, зарабатывающего на чужом труде?

    timursun
    @timursun
    Creative project/product manager
    Прочитав предыдущие советы, попробую разложить логически.

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

    Писать в webmoney имеет смысл только если цель — «усложнить жизнь» ногдяя. Но он потратит столько же времени, сколько и Вы, чтоб просто отключить вебмани или переключиться на другой кошелек.
    Ответ написан
    2 комментария
  • Внешний SSD vs HDD?

    @AndrewFoma
    Windows XP, USB 2.0
    — зачем ssd? только для того чтоб можно было уронить?
    Ответ написан
    4 комментария
  • Что вас останавливает в процессе создания ИИ?

    Biga
    @Biga
    На каком языке ставить задачу ИИ? На формальном или человеческом?
    Если на формальном, то этот язык будет почти языком программирования, и вы очень быстро перестанете называть это искусственным интеллектом.
    Если на человеческом, то, на секундочку, ИИ не человек. Он не поймёт всех тех смыслов, которые вы вложите в сообщение на естественном языке. Эту тему сейчас пытаются победить люди, занимающиеся онтологиями (не знаю, как это правильно называется), может у них что и выйдет.
    В общем, суть такова, что мы сами не знаем, что нам надо. А когда знаем, тогда ИИ нам уже не нужен.
    Ответ написан
    9 комментариев
  • Что вас останавливает в процессе создания ИИ?

    lesobrod
    @lesobrod
    Честно скажу, опыта в создании ИИ нет. А вот интеллектом и сознанием человека интересуюсь давно.
    (С материалистической точки зрения, конечно).
    Большое впечатление произвели два подхода:
    1. Роджер Пенроуз пытается доказать (см. например, «Тени разума»), что наше сознание невычислимо
    и не моделируемо
    . Особенно в части математического мышления.
    2. Джулио Тонони выдвинул гипотезу «Интегральной информации», согласно которой сознанием могут обладать любые ( в т.ч. и неживые) системы, способные генерировать информацию сверх- и дополнительно к той, которую генерируют её отдельные части.

    Мне кажется, всякому, кто решится углубится в ИИ, стоит ознакомиться с этими материалами.
    Ответ написан
    4 комментария
  • Нужно видео с 100~200 FPS?

    Ища ответ для соседнего вопроса про видео 1440p наткнулся на рутрекере на раздачу с видео 120 fps (5K), 300 fps (2K):
    rutracker.org/forum/viewtopic.php?t=4372655
    Ответ написан
    3 комментария
  • Как в linux узнать какой именно процесс попал в swap

    lirvux
    @lirvux
    в top:
    жмем f — появляется настройка колонок для вывода
    жмем p — включаем колонку со свопом.

    в htop:
    жмем f2, идем в columns, два раза в право, выбираем nswap и жмем f5
    Ответ написан
    3 комментария
  • Есть ли смысл в соли из хеша пароля?

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

    Если уж хочется чего-то «хитро-изварщенного», то можно хранить в базе что-то такое:

    substr(md5(md5 (<динамическая соль> . $password) . <статическая соль>), 0, 16);

    где динамическая соль будет вычисляться так, например:

    substr($login, 0, 3) . ($password, 1, 5) . $login[4] .$password[0] . <статическая соль>
    Ответ написан
    Комментировать
  • Уголовная ответственность за размещение либо распространение JS LOIC?

    @msuhanov
    В статье 273 УК РФ даны признаки вредоносной компьютерной программы – программа должна совершать определенные действия с компьютерной информацией (модификация, копирование, блокирование, уничтожение), притом заведомо и несанкционированно. Заведомо – в силу свойств самой программы, не в результате ошибки (бага); несанкционированно – без разрешения и вопреки воле лица, уполномоченного разрешать или запрещать те или иные действия с информацией (в соответствии с действующим законодательством таким лицом является обладатель информации, т. е., в большинстве случаев, пользователь компьютера). Таким образом, если программа начинает DDoS-атаку без разрешения пользователя (на чьем компьютере эта программа работает), то она вредоносная, т. к. заведомо предназначена для несанкционированного блокирования компьютерной информации. Если с разрешением, то не вредоносная. Такое разрешение может быть получено путем ввода в программу определенных данных (нажатием на кнопку в интерфейсе, вводом ключа командной строки и т. п.; любая интерактивность действий программы с информацией исключает ее вредоносность, кроме случаев, когда вредоносная функциональность замаскирована под другую и пользователь, нажимая на какую-то кнопку, получает не тот результат, который ожидал).

    JS LIOC, согласно описанию (сам не использовал :-)), требует получения команды на DDoS-атаку от пользователя (путем нажатия на соответствующую кнопку), поэтому не является вредоносной компьютерной программой. Однако размещение этой программы на своем сервере может образовать другой состав преступления, но тут уже надо разбираться в мотивах и целях, в каждом конкретном случае.

    Дополнительное чтение ;-)
    Ответ написан
    2 комментария
  • Хабр только у меня поломался? Отдаёт 404

    d43
    @d43
    У меня так уже месяцами, в одном из пяти случаев не зайти на главную.
    Ответ написан
    Комментировать
  • Попадает ли Intercepter-NG под УК РФ ?

    @msuhanov
    Программа не может попадать под тот или иной закон, под закон попадают лишь действия, которые человек совершает с этой программой или с помощью этой программы.

    Использование Intercepter-NG в незаконных целях может образовать состав преступления, предусмотренный ст. 272 УК РФ или ст. 274 УК РФ, однако ответственность за соответствующие действия несет конечный пользователь, но не разработчик программы (если он, конечно, не состоит в преступном сговоре с пользователем). В зависимости от обстоятельств могут появиться и другие статьи УК РФ (нарушение тайны переписки, вымогательство и т. д.), но ответственности, опять же, разработчик не несет, ведь он не виноват, что его программу используют в незаконных целях.

    С другой стороны, я думаю, что Вас больше интересует ст. 273 УК РФ («Создание, использование и распространение вредоносных компьютерных программ»). Ведь она предполагает ответственность автора вредоносной программы именно за ее создание, вне зависимости от действий конечных пользователей с этой программой. Касательно этой статьи могу сказать следующее: Ваша программа совершает те или иные действия в интерактивном режиме, то есть явно требует получения санкции пользователя на уничтожение, блокирование, модификацию, копирование компьютерной информации, т. е. такой важный признак вредоносной программы как несанкционированность совершаемых действий с информацией (см. текст ст. 273 УК РФ) отсутствует. Однако в действующей редакции статьи имеется фраза о нейтрализации средств защиты компьютерной информации и эта фраза не согласована по падежу со словом «несанкционированного», т. е. при буквальном трактовании закона возникает противоречие – не ясно, должна ли нейтрализация СЗИ быть несанкционированной для признания программы вредоносной или нет. И в настоящее время какой-либо общепризнанной позиции по материалам судебной практики в этом вопросе нет. Ваша программа нейтрализует средства защиты информации (MitM), эта нейтрализация санкционируется пользователем, однако вопрос об отнесении программы к категории вредоносных на основании именно факта наличия такой функциональности не может быть решен однозначно.

    Дополнительно рекомендую ознакомиться с этой статьей: consumer.nm.ru/kgbspy.htm
    Ответ написан
    2 комментария
  • Телефон убивает SD-карты?

    Alukardd
    @Alukardd
    Был немного похожий косяк. Проблему решил форматированием карты прямо из меню телефона. Все попытки отформатировать карту в Ubuntu 10.04, Win XP, 7 закончились тем что карта в телефоне либо вовсе не читалась, либо при начале записи файлов висла.
    Ответ написан
    Комментировать
  • Какой дистрибутив Linux выбрать?

    Зависит от привычки. Кому-то удобны дистрибутивы на базе Debian. (Debian, Linux Mint Debian, Ubuntu)/
    Кому-то на базе RedHat( Fedora, CentOS...)
    Кто-то любит «собрать под себя» и берет Gentoo… Можно еще Calculate…
    То есть перечислять можно очень долго. Можно попробовать ставить в виртуальной машине тот или иной дистрибутив и смотреть… В общем, все индивидуально…
    Ответ написан
    3 комментария
  • Как обновить ядро linux сразу после установки, не перегружая систему?

    @Eddy_Em
    Загрузиться без иксов. Установить все, что надо, обновиться. И ОК.
    В арче, кстати, ядро 3.4.4.
    Ответ написан
    4 комментария
  • Подходит ли процессор от ноутбука к стационарным материнкам?

    LeoCcoder
    @LeoCcoder
    Есть парочка жирных ноутов, в которых стоят топовые десктопные процессоры, они подходят. Но в общем случае, процессоры от ноутов не подходят для десктопкных материнок, ибо сокет другой.
    Ответ написан
    Комментировать
  • Как найти файл по его типу, если расширение изменено?

    bolk
    @bolk
    Вы по-моему, просто издеваетесь тут надо всеми. В первых двух ответах вам уже дали решение.

    Вот решение:
    find /target/directory -type f -exec file '{}' \; | grep -i archive
    


    Вот нужные вам утилиты:
    gnuwin32.sourceforge.net/packages/file.htm
    gnuwin32.sourceforge.net/packages/findutils.htm
    Ответ написан
    2 комментария
  • Как найти файл по его типу, если расширение изменено?

    pentarh
    @pentarh
    Unix-way

    find /target/directory -type f -exec file '{}' \; | grep -i archive:

    Пример вывода:
    ./.minecraft/bin/minecraft.jar: Zip archive data, at least v2.0 to extract
    ./w2.zip: Zip archive data, at least v2.0 to extract
    ./.dropbox-dist/setuptools-0.6c11-py2.5.egg: Zip archive data, at least v2.0 to extract
    ./1.tar: POSIX tar archive (GNU)
    Ответ написан
    3 комментария