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

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Поставьте себе адвего плагиатус десктопный и перехватите от него траффик.
    Он бьет текст на семантические куски и ищет их в разных поисковиках до Nй странице выдачи
    Ответ написан
    2 комментария
  • Технический писатель или аналитик?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    
    Договорились об определенном процессе как например нужно вести работу по Development`у(Работа с тикетами, комитами, бренчами, выпуск release notes итд)
    ...
    Вроде бы на весь функционал, что делаем и ставим Тикеты, и описываем продуктовые требования, тест кейсы, user guide - но опять же, чувствуется что нет единой структуры документации.
    ...
    Вопрос - Кто должен/может решить данную "боль"

    Задачу правильной организации процесса разработки должен решать технический руководитель проекта.

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

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

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Так может с обычного git flow начать? https://habrahabr.ru/post/106912/
    + зацепить какой нибудь teamcity или jenkins для автосборки и выкладки.
    Ответ написан
    Комментировать
  • Как объединить результаты запроса MySQL исключив дубликацию результатов?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Общие советы:

    Во первых, почитайте как работает DISTINCT - он тут совершенно не при чем.

    Во вторых, категорически не рекомендую использовать запрос GROUP BY с указанием в select полей которые не участвуют в группировке / не обработаны агрегирующими функциями. Строго говоря содержимое таких полей может быть достаточно произвольным + на правильно сконфигурированном sql будет ошибка синтаксиса.

    Конкретные советы:
    Либо получать вложенным запросом типа
    select tmp.*, Aincrad\Models\Messages.message
    FROM (
      select author, recipient, max(id) as maxid
      from Aincrad\Models\Messages msg
    ) tmp
    join Aincrad\Models\Messages on Aincrad\Models\Messages.id = tmp.maxid
    что будет весьма медленно, либо создать еще одну таблицу в которой явно хранить именно последнее сообщение диалога.
    Ответ написан
    1 комментарий
  • Как правильно назначать алиасы таблицам и столбцам в mysql?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    dflbrhekbn: ключевое слово AS можно пропускать
    SELECT * FROM `table_name` AS t1
    эквивалентно
    SELECT * FROM `table_name` t1

    Конструкция
    select .. FROM (
    SELECT model, price
    FROM pc
    UNION
    SELECT model, price
    FROM Laptop
    UNION
    SELECT model, price
    FROM Printer
    ) t1
    означает что для данного запроса создается виртуальная таблица в которую помещается результат выполнения "SELECT model, price FROM pc UNION SELECT model, price FROM Laptop UNION SELECT model, price
    FROM Printer" и ей в данном запросе присвоен алиас t1.
    К слову сказать работают виртуальные таблицы дико медленно.
    Ответ написан
    Комментировать
  • Можно ли использовать firebase из PHP для замены MySQL?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Начнем с того, что бесплатной она не является https://firebase.google.com/pricing/
    Большие объемы Вы там хранить разоритесь.

    В официальной документации есть вполне понятный REST API и даже библиотека для php на гитхабе
    https://firebase.google.com/docs/database/rest/start
    https://github.com/ktamas77/firebase-php

    Ну и в целом - сам не щупал, но судя по гайдам и ценам - основное применение это убрать необходимость разработки бекенда к мобильным приложениям, путем прямых запросов в БД.
    Ответ написан
    1 комментарий
  • Как подставить в вывод SQL запроса значения из другой таблицы?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    SELECT
       FROM_UNIXTIME(time) AS formatted_date, 
       user1.username AS user1_username, 
       user2.username AS user2_username
    FROM table1
    LEFT JOIN table2 as user1 on user1.ID = table1.userID1
    LEFT JOIN table2 as user2 on user2.UD = table1.userID2
    Ответ написан
  • Как переставить наибольшую цифру в трехзначном числе с помощью (if)?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Гуглите сортировку пузырьком.
    Если задачу нужно решить без цикла - будет просто 3 if с попарным сравнением элементов и перестановкой если нужно (3 и 2, 2 и 1, 2 и 3)
    Ответ написан
    3 комментария
  • Какие таблицы в бд таких сайтов как Avito, Vk, Baidu, Facebook и т.д?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    В Вашем конкретном случае - ответ нет.
    Начинать нужно всегда с 3НФ, т.е с
    User:
    id
    username
    password_hash
    full_name
    и т.д


    Уже потом по мере роста проекта будете заниматься денормализацией
    Ответ написан
    Комментировать
  • Какова правильная логика обновления клиента игры?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Из личного опыта: imho самое правильное это иметь неразрывную цепочку обновлений с первой версии до текущей, т.е 1>2, 2>3, 3>4 итд.
    Периодически для чистой установки выпускать мажорные версии, - но при этом все равно иметь неразрывную цепочку обновлений.

    Делать патчи вида 1>4, 2>4 итд - по моему опыту архи неправильно, т.к создает огромные риски неявных багов + затраты на сборку таких патчей.

    По факту для пользователя нет проблемы установить много обновлений.

    Будет осуществляться проверка на то, какая из блоков цифр в версии отличается.
    Это Вы какие то мелкие частности обсуждаете.

    Как у них осуществляется проверка наличия даже самого ненужного файла? Удалил файл из каталога, а он берет и докачивает его. Проверяет перед запуском все каталоги на время изменения и сравнивает с серверными?

    Вопрос третий: Насколько эффективно будет сравнивать время изменения каталогов у пользователя и сравнивать с серверными? Ведь если даже в самой глубокой директории был изменен/удален/создан файл, то самый верхний по иерархии каталог будет иметь дату изменения ту, когда был затронут файл. Соответственно, таким образом можно избежать большого количества рекурсивных проверок.
    И, соответственно, обновиться будет проще. Удаляем измененный каталог и закачиваем заново.
    Привязываться к дате изменений - не лучшая идея. Проверка обходит каталоги рекурсивно, сравнивает не только список файлов но и их хеши. Почитайте как работает dropbox/яндекс.диск, да тот же торрент наконец
    Ответ написан
    4 комментария
  • Аудит разработки мобильного приложения?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Imho единственный способ - нанять разработчика и поставить ему задачу изучить данный код.
    Готовьтесь к оценке в 80-160 часов за это.

    PS В 99% случаев сменив подрядчика придется делать заново, это нормально.
    Более того, т.к 70-80% работы это сборка визуальной части, - при каждом крупном редизайне лучше делать целиком заново.
    Ответ написан
    Комментировать
  • CashBack как реализовать сервис?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Занимался системой коллективной лояльности полтора года.

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

    Во первых Вам нужно определиться с правовым статусом этих бонусов - это деньги или не деньги.
    Если деньги - нужно реально открывать счет на клиента в банке или НКО, платить за клиента 13% ндфл, ну и все прелести 161-ФЗ.
    Если не деньги - возникает вопрос обоснования финансовых переводов между юрлицами ну и накрывается идея выплат на карту.
    Решения однозначного нет, каждая система лояльности идет по своему пути но в целом разработка схемы и юридического обоснования это месяцы.

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

    PS
    Судя по вопросу Вы только в начале этого пути.
    Крайне советую до начала проекта:
    а) Проработать юридическую часть.
    b) Найти первых якорных партнеров. Заодно поймете как им удобней с Вами интегрироваться.
    В целом советую по крайней мере на старте идти по пути максимально простой для партнера интеграции.
    Простой с точки зрения бизнеса (!), а не разработчика.
    Ответ написан
    3 комментария
  • Как пишутся системы оплаты для сайта?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Как осуществляется написание платежной системы касательно visa и mastercard или для конкретного банка? что делается в данном случае? (Допустим требуется работа со сбербанком и альфабанком).

    Из личного опыта:
    a. Приезжаете в офис банка у которого есть услуга "интернет эквайринг", показываете своё юрлицо, уставные документы, бенефициаров, обороты от 50 млн в месяц.
    * некоторые работают и с меньшими оборотами, но % будет крайне не выгодным.
    ** без запущенного и работающего проекта идти в банк бессмысленно.
    b. Ждете 2-6 недель пока СБ банка проверит все.
    c. Ждете 2-4 недели пока банк подпишет договор
    d. Получаете реквизиты и документацию API конкретного банка.
    e. Реализуете
    f. Ждете 1-2 недели пока банк проверит что у Вас все согласно их протоколу.
    g. Получаете боевые реквизиты.

    Учтите что:
    1. Если Ваши объемы меньше чем 50млн+ в месяц - с вероятностью 99% Вам будет СИЛЬНО выгоднее работать через посредника. Посмотрите на uniteller.ru , payture.com/ru , payler.com - если Вы будете достаточно убедительны на переговорах, вполне реально сторговать их до 2-2.5% даже на маленьких оборотах (1млн-5млн)

    2. Прямые API банков мягко говоря не современны. Как правило там не будет ни удобного личного кабинета, ни вменяемой службы поддержки - ничего. Зато будут проверки, требования бумажной отчетности и прочие милые сердцу советского бюрократа вещи.

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

    С учетом данных пунктов, по моему мнению прямой договор с банком имеет смысл если у Вас настолько большие обороты - что разница в десятые доли процента окупает весь этот геморрой.
    По факту есть море проектов с большими оборотами (mamba, badoo, etc) кто продолжает работать через агрегатор, минимизируя расходы на юристов, бухгалтеров, техническую поддержку работы шлюза итд итп.
    Ответ написан
    1 комментарий
  • Какой тип таблицы выбрать для 200-400 одновременных подключений?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1. Задача не трудоемкая. Постоянно обрывать подключение и делать заново - не лучшая идея, если есть возможность сделать через постоянное подключение - это даст выигрыш в скорости. Тип таблицы однозначно innodb

    2. Весьма вероятно что задачу можно отлично решить без sql вообще, через какой нибудь redis - будет быстрее на порядки.
    Ответ написан
    3 комментария
  • Есть отличные примеры создание бота telegram на php?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Абсолютно все что нужно для написания Telegram бота находится на странице https://core.telegram.org/bots/api
    У бота абсолютно тривиальный протокол, json в определенном формате шлется POST запросом по HTTPS.
    Соответственно реализация от языка по факту не зависит, можно хоть на bash скриптах сделать.
    Ответ написан
    Комментировать
  • Как убедиться, что пользователь сделал репост в соцсети со страницы сайта?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Если прям очень хочется, то как правильно написал Greg Popov запрашиваем у пользователя права на просмотр его записей (user_posts permission ), смотрим, сверяем.

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

    PS С учетом того что ничего не запрещает пользователю удалить пост в любой момент после публикации - как то технически контролировать это все смысла ровно 0. Придумывайте маркетинговые стимулы реально делать share.
    Ответ написан
    1 комментарий
  • С чего начать разработку стартапа?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Всё imho:

    1) Техническое задание стартапа должно описывать функционал + подробно детализировать неявные моменты.
    Писать по госту на 40+ листов - верный путь в никуда.
    Нанимать на написание ТЗ категорически никого не советую - это должны сделать Вы, как носитель идеи.
    Если за дизайн в проекте отвечаете Вы, в принципе готовый дизайн + frontend сценарии + неявные backend сценарии это вполне нормальное ТЗ.

    * frontend сценарии - набор экранов приложения со стрелочками "что происходит если нажать сюда"

    ** backend сценарии - вся логика которая не очевидна из дизайна.
    Вырожденые примеры:
    "Пользователь при регистрации вводит поля email и пароль, они сохраняются в базу" - не нужный сценарий, это очевидно из дизайна.
    "После регистрации пользователю приходит письмо, вот ссылка на макет" - нужный сценарий

    *** Вообще странно брать инвестиции не имея ТЗ и соответственно оценки разработки.
    По опыту 30k$ это скорее MVP чем полноценный продукт.

    2) hantim.ru , hh.ru , проверенные аутсорсеры итд

    3) Правильный порядок: ТЗ > Дизайн > Проектирование Backend > Разработка Backend > Разработка Mobile.
    * Если горят сроки можно перед разработкой backend за день собрать моки и вести разработку на них.
    ** Если в backend есть вещи не завязанные на дизайн - backend можно начать делать параллельно с дизайном

    4) В общем случае ответ на вопрос - нанять грамотного человека который будет рулить процессом разработки, но Вы тогда не влезете в бюджет. Книжек по менеджменту море, читайте )
    Ответ написан
    1 комментарий
  • Почему в парадоксе мальчика и девочки исходы МД и ДМ не одно и то же?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Потому что какой то ребенок первый, какой то второй.
    Рождение ребенка - это несвязанное событие.
    Подробней на вики
    Ответ написан
    1 комментарий
  • Большое кол-во данных mysql?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Режим телепата:
    1) у Вас просто нет индекса в таблице cities по полю country_id.
    Покажите результат выполнения show create table cities;
    2) если mysql запущен с дефолтными конфигами - ему тупо не хватает памяти.
    Ответ написан
    2 комментария