• Как на web сервере организовать сложные вычисления?

    flr
    @flr
    Скорости PHP7 для этих вычислений не хватает? Если уверены, что нет, то основные подходы:

    1. Вызов исполняемого файла (как уже упомянуто).

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

    2. Написание расширения для PHP, добавляющего метод или класс.

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

    3. Микросервис (демон), который будет принимать запросы через очередь задач или напрямую.

    Как по мне — это некий компромисс. С одной стороны нет расходов на запуск нового процесса на каждый запрос. С другой — нет завязки на синтаксис PHP расширения. Такой демон можно писать не на С, а на чем-то более дружелюбном, например, Go.
    Ответ написан
    Комментировать
  • Как узнать что человек разработчик?

    flr
    @flr
    Не обращайте внимания на саркастичные ответы.

    Вот, что надо делать:

    1. Собираете какое-то время всю информацию о посетителях (операционная система, браузер, плагины, куки, просмотренные страницы, клики, движения курсором, скроллы и т.п.)
    2. Периодически показываете всплывающее окно, в котором просите ответить на вопрос — разработчик ли пользователь.
    3. Накапливаете данные для обучения модели
    4. Обучаете модель
    5. Используете обученную модель, чтобы самостоятельно распознавать разработчика в пользователе.
    6. PROFIT
    Ответ написан
    1 комментарий
  • Как лучше монетизировать сайт?

    flr
    @flr
    Показывайте текстовую рекламу пользователям с adblock и обычные баннеры тем, кто без него. =)
    Ответ написан
    2 комментария
  • Обновился Chrome, испортилось настроение. Что можно сделать со стандартными иконками?

    flr
    @flr
    chrome://flags/#top-chrome-md

    Там пункт про Material design. Поставьте обычный.

    Сам недавно чуть не ослеп.
    Ответ написан
    2 комментария
  • Где в Москве можно получить практические навыки технической организации работы отдела разработки (приоритет на PHP)?

    flr
    @flr
    Где получить практические навыки ...?

    Как ни странно, только на практике.
    Любой опыт, которым с вами поделятся, будет в любом случае субъективным и специфичным. Надо понимать как раз принципиальные (читай теоретические) подходы. От них будут исходить уже "практические" решения в зависимости от ситуации. Процесс разработки в каждом случае может отличаться. Он обязан быть гибким, подстраиваться под изменения, решать появляющиеся проблемы и т.п.

    День открытых дверей вряд ли чем-то поможет. Вы же не посмотреть на сидящих за компьютерами людей хотите?

    В целом, могу поделиться нашим опытом (в каком-нибудь скайпе). Мы для себя по всем пунктам вопросы давно закрыли. В последнее время подумывал о том, чтобы написать статью по всем этим и подобным вопросам.
    Ответ написан
    Комментировать
  • По какому запросу пришёл пользователь в реальном времени?

    flr
    @flr
    С недавних пор referrer не содержит поискового запроса, как у Google, так и у Яндекса (за редким исключением).
    Подробности: https://toster.ru/answer?answer_id=800294#answers_...

    Так что определить не получится. Уточните проблему, возможно у нее есть другое решение.
    Ответ написан
    3 комментария
  • Отправляется PID вместе с пакетом или нет?

    flr
    @flr
    Во-первых, вы не указали, о каком протоколе идёт речь. Хотя это в данном контексте вряд ли важно.
    Во-вторых, не понятно какие стандарты вы шерстили. Если пойти по простому пути и открыть Википедию, то там можно увидеть составы пакетов, например, TCP и UDP (так как протокол из контекста не ясен, берем их).
    TCP: https://ru.wikipedia.org/wiki/TCP#.D0.97.D0.B0.D0....
    UDP: https://ru.wikipedia.org/wiki/UDP#.D0.A1.D1.82.D1....

    Разумеется для обмена данными с внешними источниками PID не используется (если мы говорим про какие-то классические схемы). Во-первых, операционная система знает какой процесс слушает какой порт. То есть если известен порт, то PID не нужен. Во-вторых, один и тот же процесс может слушать разные порты. То есть PID для внешнего источника не является уникальным идентификатором, а порт является.

    Итого:
    В классических транспортных протоколах — нет, не отправляется. Это просто бесполезная информация для сетевого взаимодействия.
    Ответ написан
  • Существует ли система аналитики, которая может получить запросы по переходам из ПС минуя установку счетчиков этих самых ПС?

    flr
    @flr
    И Яндекс, и Google некоторое время назад скрыли поисковые запросы в referrer при переходах пользователей с поиска на сайты. По крайней мере для большей части трафика. На данный момент Яндекс не шифрует только поисковый трафик с мобильных устройств. Но скорее всего это ненадолго.

    Отвечая на вопрос: таких систем аналитики не существует. Чтобы получить информацию о поисковых запросах, надо ставить счетчики поисковых систем.
    Ответ написан
    Комментировать
  • Как объединить два внешних звонка через sip?

    flr
    @flr
    Чтобы люди разговаривали друг с другом, нужен SIP сервер, через который будет идти обмен данных. Телефоны не связываются друг с другом напрямую. SIP — это не p2p протокол. Asterisk и FreeSWITCH могут выступать в роли таких серверов. Упомянутая вами библиотека (судя по описанию в Википедии) — это просто SIP клиент. Для клиента опять же нужен сервер.

    Если у вас нет желания или возможности разбираться с упомянутыми выше АТС, то скорее всего вам подойдёт решение на базе API какой-либо готовой облачной платформы. Вот пример, как это можно реализовать: https://habrahabr.ru/post/226057/
    Ответ написан
    1 комментарий
  • Как правильно выстроить процесс разработки?

    flr
    @flr
    Какие инструменты могут понадобится для реализации такой системы?

    Вопрос скорее всего не совсем уместен. Вам могут перечислить инструменты, которые нужны для постройки дома, однако дом вам построить это не поможет. Но, чтобы не быть голословным, вам понадобятся:
    1. Git server (Bitbucket, Gitlab, etc). Если работаете один или проект очень простой, то достаточно будет gitolite.
    2. CI server (Bamboo, Jenkins, etc).
    3. Любой язык программирования для написания pre-receive/post-receive хуков и задач для CI.

    Правильно ли я представляю себе этот процесс?

    Вне зависимости от того, будете ли вы работать один или в команде, с моей точки зрения процесс выглядит усложненным и надуманным. Я бы начал с простого процесса и усложнял бы его только по мере появления каких-то проблем. Если вы начнете со сложного, то вы сразу создадите себе проблемы. И будете создавать новые, решая старые.
    Как я вижу простой процесс:
    1. Возьмите одну ветку, которая будет стабильна, например, master.
    2. Для каждой фичи создавайте отдельную ветку из стабильной. Например, ivan-news-block или ivan-search-bug-fix. Правила нейминга придумать можно любые.
    3. Тестируйте код на своей виртуалке. Обычный vagrant + virtualbox. Если у вас добавляется второй разработчик, то он просто берет Vagrantfile и у него на машине появляется виртуалка с готовым окружением для работы. Зачем вам общий dev сервер?
    4. Процессом деплоя управляет или CI сервер, или ansible/puppet, или самописные скрипты.
    5. Когда ветка готова к релизу, то запускайте процесс деплоя на тестовый стенд, где вы можете показать это заказчику или кому-то еще. Там же CI может прогонять тесты.
    6. Когда фича аппрувнута заказчиком или ПО задачи, то запускайте процесс деплоя на бой.

    Как это реализовать?

    Вопрос явно требует уточнения. Сейчас ваш вопрос звучит так: "Как нарисовать сову?".
    Но что-то могу порекомендовать:
    Начать надо с построения процесса с проделыванием всех действий вручную. Далее постепенно каждую ручную операцию переводить на автоматику. Не стоит сразу пытаться сделать какой-то идеальный механизм.
    Ответ написан
    Комментировать