• Коммерческий продукт на основе 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 и дают вам такое право, они все-таки надеются на вашу порядочность.

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

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

    @garik_R
    On my way
    В ВУЗе учат взаимодействовать с людьми. Не в том смысле, что прогулять пары, прибухнуть, а наоборот, решить проблемную контрольную, написать курсовую. Развивать навыки, в любой сфере. Часто, именно этим, люди в Вузе и пренебрегают. Это социальная структура, где, по идеи, должны были собраться люди со схожими интересами. К сожалению, у нас это простой способ откосить от армии. Или родители сказали: "Ты должен поступить..." еtc. Кроме того, диплом поможет устроиться на хорошую работу у нас в стране или где-то в другой.

    Зачем учить? Что касается "странных" предметов, которые, казалось бы, никому не нужны - это ошибочная точка зрения. Любая работа сталкивает нас с такими неожиданностями, о которых мы и не думали. Вот тогда и вспоминаешь про какое-то ОБЖ и так далее. Часто негодование на этот счет связано не с большим умом, а наоборот, с большим незнанением и узким взглядом на жизнь. Подобные предметы нужно проглотить, отмучаться и знать где подсмотреть в случае чего. Или просто посмотреть шире. Вы же не станете отрицать, что даже если Вы учитесь на программиста, знать основы экономики необходимо, верно? А потом вы можете устроиться на работу, где будете писать какой-то софт где уже и не помешают и глубокие знания?

    Без математики можно заниматься только формошлепством. Везде так или иначе нужна математика. Где-то простая арифметика, где-то нюансы шифрования.

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

    Учить наизусть? Скажем так - хуже не будет. Да, сейчас всё немного изменилось. Если до ~2000х важно было иметь хорошую память. По книгам сложней искать, но других способов тогда не было. Сейчас нет острой необходимости помнить важную информацию. Сейчас важно знать где найти. Это умение стало более важным сейчас, из-за доступности интернета. Важная информация откладывается у вас в голове, если вы её постоянно используете - этого не избежать. Тут действительно, сейчас важно знать где найти, чем помнить досконально. Но человек, который является ходячей библиотекой оставляет гаааараздо более интересное впечатление, нежели тот, который говорит: "Щас, сек, я точно знаю, это вот здесь было написано". Перед работодателем это совершенно точно. Если вы помните, умеете развивать мысль, а не тупо заучили - то вы оставите более яркое впечатление. Мне кажется, это старомодный подход и со временем действительно можно будет погуглить и это всех будет устраивать. Но сейчас имидж умного, начитаного человека всё еще очень важен. Всё еще интересно поговорить вживую, с телефоном в кармане, нежели общаться отрывками статей, которые только что прочитал.

    В своём мнении Вы правы. Можно быть исключительно дисциплинированным человеком и всё учить по книгам. Прокачать себя в теории достаточно хорошо, да и в практике. Но между книгой и делом всё равно остается пропасть. Так или иначе, жизнь это социальная штука. На работе у вас может быть точно такой же начальник отдела, как и тот преподаватель в ВУЗе. Если вы пойдете в офис работать - там будут живые люди, с которыми нужно уметь взаимодействовать. Да даже если будете фрилансером - нужно говорить с клиентом, договариваться с подрядчиками если не успеваете, или с кем либо советоваться, если чего-то не знаете.

    ВУЗ нужен. Он учит, учит общению с людьми, решению социальных проблем. Учит решать поставленные задачи, порой, которых вы не ожидали. Дает возможность встретить людей, которым интересна таже область, что и Вам. Встретить людей, которые умнее Вас и прокачаться до их уровня. И да, как ни крути он даёт вам бумажечку. Может быть, она Вам и не пригодится, а может, вы в какой-то момент сильно пожалеете, что не получили её. Я бы даже сказал, что ВУЗ - это часть молодости, и не нужно её себя лишать. :-) И добавил бы, что желательно учится не в родном городе. Но это уже лирика :)
    Ответ написан
    4 комментария
  • Во сколько обходится валютный контроль?

    @Stalinko
    PHP'шник и фрилансер до мозга костей
    Если зарабатываем $1000 по новому контракту:

    1. 20% от $500 + 10% от $500 = $150
    2. $30 - wire transfer
    3. ~$15 комиссия банка посредника. . Везде по-разному: в Модульбанке 15 евро, Тиньков банке ноль.
    4. Для тех, кто работает по УСН: 6% от оставшихся денег т.е. 805 * 6% = $48,3
    Я работаю по ПСН, поэтому для меня в этом пункте ноль :)
    5. Комиссия за валютный контроль: 300р ($5) в моём случае.

    Остаётся ~$751,70
    Я бы сюда ещё заложил стоимость обналичивания/обмена этих денег на рубли. Это сильно зависит от банка и тут много вариантов.

    Выводы:
    - выводить реже и большими суммами сразу
    - работать дольше по одному контракту
    - использовать ПСН, если доступен патент по адекватной цене и стабильный доход
    - комбинировать способы обналички/обмена на рубли

    Бонус: не забываем, что есть ещё куча фиксированных платежей: тарифный план банка, патент если работаешь по ПСН, фиксированые платежи для ИП (~31т.р. в 2018г), оформление паспорта сделки для тех, кто работает давно и стабильно.
    Ответ написан
    43 комментария
  • Как устроиться на работу бывшему ИП?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Я просто оставлю это здесь...
    ffwXS-dFleY.jpg
    Ответ написан
    19 комментариев
  • Что значит "опыт верстки под битрикс, вордпресс и т. д."?

    Тут 2 варианта:

    1. Заказывают верстку, подразумевают создание шаблона/темы для CMS. По хитрости, по не знанию, по глупости - не важно. Важно не подписаться пилить это по цене только верстки.

    Верстка - это когда макет превращается в набор html/css/js файлов.

    Да, могут быть вариации. Может быть сразу под движок: Smarty, Twig, Jade, или все шаблоны в Handlebars, или сразу чтобы всё под Angular было. Но это всё частные случаи, требующие более высокой квалификации, или находящиеся уже где-то во front-end разработке.

    2. Просят учесть особенности CMS.

    Маленьких нюансов может быть много.

    Вот Битрикс, например, и его Эрмитаж (тыкнул в блок - тут же его отредактировал если по простому). Где-то лишняя обертка элемента, чтобы в режиме редактирования не разваливалось. Везде - z-index меньше 1000, чтобы Эрмитаж не перекрывало.

    Wordpress вообще генерирует огромное количество своих классов. Взять те же навигационные меню. Использовать их = наплевать на все эти ваши БЭМ и прочее.
    И т.д.

    Если я верстал и без проблем натягивал свои макеты на Wordpress - могу ли сказать что у меня есть опыт верстки под Wordpress?

    Могу.
    Так же как могу сказать что есть опыт верстки под Drupal (не знаю натягивали ли какие-то из моих работ на Drupal, но чё бы нет).

    Правда нет гарантии что человек, который будет натягивать мою верстку, не затупит например с
    .nav
        .nav__list
            .nav__item

    Когда ему движок выдаст меню в виде
    .menu
        ul
            li

    Но я не считаю это своей проблемой.
    Когда понадобилось, оказалось нет ничего сложного 1 раз потратить время и написать свой вывод меню в Wordpress, чтобы можно было любую верстку натянуть. Почему так не может сделать тот кто натягивает? Почему в ТЗ об этом не предупредили?

    Уменьшает ли "опыт верстки под CMS" время верстки?
    Если не были оговорены нюансы (те же меню WP) - то нет.
    Может увеличиться время натягивания верстки на движок, но это уже проблемы заказчика, который не озвучил требования заранее.

    Таким образом, хотя в идеале на движок должно быть возможным натянуть любую верстку, действительно некоторые имеют CMS особенности.
    Об этих особенностях следует договариваться заранее. Должно быть конкретное ТЗ на верстку.
    В остальном как правило речь об "опыте верстки под %CMS%" - просто болтовня.
    Ответ написан
    Комментировать
  • Безопасно ли открывать порт mysql в мир?

    @remzalp
    Программер чего попало на чем попало
    Да, небезопасно, альтернативы
    1. поднять VPN, доступ к мускулю снаружи только по впн, не напрямую (резать в iptables)

    2. (сам использую) пускать разрабов с пробросом портов по ssh. Себе настроил путти (батник):
    putty.exe -ssh user@site.ru -L 3396:localhost:3306
    в итоге на компе любой удобный и привычный софт можно использовать, указывая в качестве сервера БД
    127.0.0.1:3396, со стороны сервера они выглядят как коннекты с localhost
    На сервере завести отдельного юзера с минимальнейшими правами - ему даже входить не обязательно в шелл, только до локального сокета достучаться, плюс настроить авторизацию по сертификату для полного удобства.

    дополнительный бонус - с использованием ключа "-C" будет еще и компрессия данных, что может приятно повлиять на скорость передачи хорошо сжимаемых данных.
    Ответ написан
    2 комментария
  • How to: Установка и доступ к виртуальным машинам в локальной сети?

    @nirvimel
    Правильно заданный вопрос содержит в себе половину ответа.

    Вы же сами указали в тегах Virtualbox, который создан для решения ваших проблем.

    Поддержка удаленных подключений в нем осуществляется по стандартному RDP протоколу.

    Диалог настройки Remote Display в Virtualbox выглядит как-то так:
    49580c214470439b8cb34880e406baf3.png
    Ответ написан
    6 комментариев
  • Какое посоветуете легкое IDE для PHP под Linux?

    copist
    @copist
    Empower people to give
    phpStorm - слишком монструозный и навязчивый, как будто для проектирования самолета;

    Не стесняйся признаться, что ты всегда мечтал сконструировать ракету. Слезть с phpStorm будет сложно, особенно после взлёта твоей ракеты.
    Ответ написан
    Комментировать