Задать вопрос
  • Как отправить сообщение в вебсокет распределенной системы?

    @xfg
    Необходимо так или иначе реализовать механизм pub/sub. Например через redis. Все сервера подписываются на redis канал. Кто-то из серверов публикует сообщение в redis-канал. Все сервера получают сообщение и дальше рассылают своим вебсокет-клиентам.

    Подобную реализацию для библиотеки socket.io можно посмотреть здесь/
    Ответ написан
    Комментировать
  • Сложно ли создавать 3D игры, какие знания нужны для создания 3D игр?

    @xfg
    Знание линейной алгебры. Это первый курс технического вуза. Если каждую точку (представленную вектором) 3D модели умножить на одну и ту же матрицу, то все точки переместятся в другое местоположение относительно центра, но с пропорциональным сохранением расстояния между друг другом. Соответственно были вычислены матрицы преобразования, которые дают эффект перемещения, масштабирования и поворота точки в пространстве. Можно почитать о матрицах преобразований и самому порешать примеры, чтобы удостовериться, что они действительно дают нужный эффект. Далее это умножают на матрицу перспективы, таким образом создавая эффект отображения изображения в перспективе. Делают это на языке программирования GLSL. Пишут вершинный шейдер, который на вход принимает текущее положение каждой вершины, а также матрицы модели и перспективы, перемножая это всё в нужном порядке на выходе получается новое местоположение вершины. Далее результат передается в фрагментный шейдер, где каждый пиксель между этими вершинами раскрашивается в нужный цвет. Свет, тени и прочее, так же считают в фрагментном шейдере. Получившееся изображение выводится на экран.

    Можете посмотреть видео по теме https://www.youtube.com/watch?v=HLbxyPwdlgI&list=P...
    Ответ написан
    Комментировать
  • Самый простой способ реализовать real time MySQL (без firebase!) базу данных для маленького приложения?

    @xfg
    Базу данных можно выбрать любую. Она не играет роли в realtime приложениях. Позвольте вам немного объяснить. Для передачи данных между клиентом и сервером в браузере существует всего два протокола. HTTP и Websocket. Firebase не магия и также использует их. Если браузером не поддерживается Websocket, то firebase откатывается на HTTP. Используя общераспространенный подход к разработке на PHP у вас не получится использовать websocket протокол поскольку типичные PHP приложения не живут дольше 1 запроса. Соответственно да, в таком варианте остается только ajax. Но точно также работает и firebase если в браузере нет поддержки websocket, так работает facebook, telegram и много всего остального. Они используют long-polling. Клиент отправляет запрос к скрипту на сервер, скрипт в цикле опрашивает хранилище mysql или более продвинутый вариант mysql+redis (чтобы не грузить запросами mysql) и пока данных не будет, цикл так и продолжит крутиться, для клиента это просто выглядит как повисший запрос к серверу. Как только данные появляются, они отправляются на клиент, соединение разрывается, а клиент сразу же отправляет новый запрос.

    Есть развитие этой идеи. Называется HTTP Streaming. Отличие от long-polling в том, что после отправки данных клиенту соединение не разрывается, а сервер продолжает отправлять последующие данные по этому же соединению. Соединение разрывается по таймауту. Минус в том, что прокси-сервера могут кешировать небольшие пакеты данных и данные нужно раздувать например пробелами, чтобы пакет данных достигал минимального размера и был способен пробить кеш прокси-сервера. Плюс в том, что если у вас данные для клиента появляются скажем с переодичностью раз в секунду, то не будет происходить постоянного открытия-закрытия соединения как при long-polling.

    Есть вариант, когда можно реализовать небольшую прослойку на socket.io. Ваше PHP приложение пишет данные для клиента например в redis. Приложение на socket.io подписывается на redis. Когда PHP что-то отправляет в redis, то socket.io мгновенно об этом узнает и рассылает это событие по websocket протоколу всем подключенным клиентам. Минусы. Раздуваете стек. Нет консистентности данных между записью в основное хранилище (mysql/postgre/mongo/etc) и redis. Соответственно может возникнуть ситуация, когда данные записали, но в redis событие не ушло. Поменяете местами, будет наоборот, событие есть, данных в базе нет.

    Вариантов в целом очень много. Всё это называется Comet. Вам проще всего реализовать long-polling.

    А реал-тайм база, которая умела пушить данные клиенту по tcp протоколу (но не в браузер) была и называлась она rethinkdb.com. Ныне не развивается. IP в России заблокирован. На сайт можно сходить по VPN.
    Ответ написан
    3 комментария
  • В чем суть облачных сервисов?

    @EraserKhv
    Системный администратор
    Проще объясню.
    Предположим, гипотетическая ситуация, которой обычно объясняют зачем тебе Облако. - Есть у тебя интернет-магазин плюшевых мишек. Развернул ты сайт у себя на компьютере , который стоит в офисе в кладовке, и все хорошо, посещение сайта 1000 пользователей в день, продаешь ты свои 5 мишек в день, никаких проблем.
    Но тут надвигается 8 марта, и посещаемость сайта увеличивается до 5000 в час и твой компьютер не вывозит ни по процессору, ни по диску, ни по оперативной памяти, ни по пропускной способности интернет канала, службы обрабатывающие HTTP запросы все время отваливаются, интернет-канал забит, жесткий диск молотит, но все происходит все очень медленно, а ты на этом компе еще Z отчет кассовый делаешь в конце дня, а в соседнем цехе усиленно пекли печеньки с предсказаниями в глазури, автомат в ВРУ не выдержал, и отключился вместе со всем зданием и твоим компом. ПО итогу ты к 8му марта продаешь всего 3 медведя, да и еще кассовый отчет для налоговой не сгененрировал. После подобного факапа, ты себе говоришь: "ну на следующий праздник я так не облажаюсь". Выделяешь в офисе помещение под серверную, ставишь серверную стойку, покупаешь 4 сервера полноценных и распараллеливаешь инет запросы, новая система хранения данных, источник бесперебойного питания, 2 кондиционера и интернет канал расширяешь. Итогом к 8му марта следующего года, эта конфигурация выдерживает возросшую нагрузку и ты продаешь 45 медведей к 8му марта, профит ? А вот и нет, вся эта конфигурация нужна тебе в преддверии 8го марта, а остальные, предположим 360 дней, тебе бы хватало однго старого компьютера. А серверная потребляет только электричества на 500 руб в день, а интернет канал, и обслуживание серверов итого дороже!

    Так вот в облаке можно арендовать эти мощности на несколько дней, пока идет самый сенокос, а остальные дни довольствоваться слабенким виртуальным сервером за 300 руб в день.
    Ответ написан
    2 комментария
  • Бесплатный API для поиска грузовых маршрутов?

    NeiroNx
    @NeiroNx
    Программист
    Есть OSRM - абсолюитно бесплатный маршрутизатор - там есть профиль для грузовиков.

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

    @anatoliy_vas15 Автор вопроса
    Я нашел, если кому-то понадобится, то вот
    https://page-transitions.com/
    Ответ написан
    Комментировать
  • Потенциал верстальщика?

    @Andy_Francev
    Frontend Developer
    Нет, не востребован. Профессия умирает. Рынок сужается.
    Бумажная пресса почти никому не нужна, газеты и журналы массово закрываются.
    Остаётся этикетка-упаковка. Большая часть подобных вакансий – это ~40к и место работы в типографии, по соседству с печатными машинами (с их пылью, грохотом).
    Вашему отцу я бы посоветовал постепенно начать переквалифицироваться.
    Сам работал в полиграфии с 1994 года по 2017. Последнее место работы – верстальщик. Я освоил новую специальность – фронтенд (слишком поздно, увы).
    Ответ написан
    1 комментарий
  • Можно ли просто подключить vuejs как jquery?

    DevMan
    @DevMan
    хоть и не очень понятно зачем, но можно и без проблем.
    Ответ написан
    3 комментария
  • Можно ли просто подключить vuejs как jquery?

    @igorhak
    Сам по себе
    Можно и это в принципе описано в документации к Vue на русском, но это абсолютно разные фреймворки. Vue работает с виртуальным DOM , который строит внутри заданного элемента, затем можно манипулировать ими, JQuery с реальным DOM, манипулируя этими элементами.
    Ответ написан
    Комментировать
  • Что лучше Phpstorm vs VS code?

    profesor08
    @profesor08
    Единственно преимущество PHPStorm, это его intelliscence. Все. Для VSCode тоже есть, но, но.. надо настраивать и привыкать. PHP это не TypeScript с его прекрасной поддержкой в VSCode.
    Ответ написан
  • Как работаете с формами в Ларавел?

    Razgelday
    @Razgelday
    В целом, с развитием Laravel, весь фронтент рекомендуется выводить из Blade на Vue.js - а там уже на JS создавать любые формы и отправлять данные форм на сервер через API.

    Вот простой урок на Laracasts (англ) - https://laracasts.com/series/learn-vue-2-step-by-s...
    Ответ написан
    3 комментария
  • Почему долго выполняется простой запрос?

    @vitaly_il1
    DevOps Consulting
    1.
    запрос выполняется 22мс:
    -  Я бы проверил более реалистичный сценарий - сколько времени занимает выполнение ХХ запросов - например, с помощью https://dev.mysql.com/doc/refman/8.0/en/mysqlslap.html
    2. Сколько индексов в этой таблице?
    3.
    CentOS, AMD 8 ядер (не помню модель), оперативы 64 гига, диски SSD
    - какой innodb_buffer_pool_size?
    4. давайте проверим время выполнения с "insert" вместо update
    Ответ написан
    6 комментариев
  • Как превратить Android в дистрибутив Linux?

    @palchik
    Немного странные ответы.. Эмулятор терминала не добавляет никаких возможностей linux в Android. Именно для этой конкретной цели создан пакет busybox. После установки и получения root, действительно можно ставить терминал и работать с Android как с обычным linux. Будет работать apt-get и существенная часть доступных в нем linux программ. Но нужно понимать, что Android это очень сильно переписанный linux, поэтому не всё будет работать. Но для повседневных задач busybox за глаза хватит с головой
    Ответ написан
    Комментировать
  • Каким скриптом можно реализовать обучение пользователей?

    deepblack
    @deepblack
    Для vue.js
    https://github.com/pulsardev/vue-tour
    https://pulsardev.github.io/vue-tour/

    Vue Tour is a lightweight, simple and customizable guided tour plugin for use with Vue.js. It provides a quick and easy way to guide your users through your application. -
    Ответ написан
    1 комментарий