• PHP websocket насколько сильно он уступает node.js по производительности?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    Open Swoole – мощный супер-быстрый асинхронный PHP.
    WebSocket'ы, корутины, высокая нагрузка.

    Пример WebSocket сервера:
    <?php
    
    use OpenSwoole\WebSocket\Server;
    use OpenSwoole\Http\Request;
    use OpenSwoole\WebSocket\Frame;
    
    $server = new Server("0.0.0.0", 9502);
    
    $server->on("Start", function(Server $server)
    {
        echo "OpenSwoole WebSocket Server is started at http://127.0.0.1:9502\n";
    });
    
    $server->on('Open', function(Server $server, OpenSwoole\Http\Request $request)
    {
        echo "connection open: {$request->fd}\n";
    
        $server->tick(1000, function() use ($server, $request)
        {
            $server->push($request->fd, json_encode(["hello", time()]));
        });
    });
    
    $server->on('Message', function(Server $server, Frame $frame)
    {
        echo "received message: {$frame->data}\n";
        $server->push($frame->fd, json_encode(["hello", time()]));
    });
    
    $server->on('Close', function(Server $server, int $fd)
    {
        echo "connection close: {$fd}\n";
    });
    
    $server->on('Disconnect', function(Server $server, int $fd)
    {
        echo "connection disconnect: {$fd}\n";
    });
    
    $server->start();
    Ответ написан
    Комментировать
  • Лучше выбрать Symfony или Laravel для новичка и виртуального хостинга?

    sergiks
    @sergiks Куратор тега Веб-разработка
    ♬♬
    Цель: изучить оба фреймворка и уметь с ними работать.

    Сделать проект на то и на сём.

    Начать проще с Laravel, он чуть доступнее, проще, в красивой яркой упаковке. В то же время он построен на компонентах Illuminate, которые зачастую под капотом используют компоненты Symfony. Например, см. зависимости консольного компонента Laravel.

    Другой проект попробуйте сделать на Symfony. Увидите, как много общего, похожего с уже знакомым Laravel.

    Как часто здесь бывает, ответ на вопрос, на самом деле:
    «хватит уже задавать никчёмные вопросы, берись и делай».
    Ответ написан
    Комментировать
  • Как сделать сертификаты для поддоменов?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Let`s Encrypt сто лет как выдаёт wildcard-сертификаты.
    Ответ написан
    Комментировать
  • Как создать язык программирования?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Как создать свой язык программирования?

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

    Без другого языка программирования! Полностью с нуля.

    В самом низу находится машинный код. Выглядит примерно вот так:
    08 04 83 fa 08 04 83 fb 08 04 83 fd 08 04 84 00
    У каждого процессора есть свой набор инструкций, которые кодируются машинным кодом. Открываем справочник и пишем нужный код для нужной ОС/железа. Ничего сложного, правда же? =)

    Ведь как-то создали первый ЯП.

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

    Так что в вашем случае вам надо пройти весь этот путь самостоятельно. Примерно так:
    1. На машинном коде реализовать минимальный ассемблер
    2. Используя свой минимальный ассемблер реализовать простейший компилятор этого ассемблера
    3. Расширить компилятор ассемблера до стандартного набора инструкций
    4. На ассемблере реализовать транслятор и компилятор ЯП высокого уровня
    5. Реализовать необходимый набор инструкций для написания компилятора этого же ЯП
    6. Написать этот самый компилятор своего ЯП на нём же и далее уже скомпилировать первую самостоятельную версию своего ЯП без использования других ЯП
    Ответ написан
    3 комментария
  • На чем дешево и долго хранить десятки Тб информации сейчас?

    @alexalexes
    Я думаю, 10 дисков с технологией записи CMR и без гелиевого наполнения по 8 Тбайт, запертые в сейфе в негорючем помещении с постоянным микроклиматом, будут куда дешевле и проще в эксплуатации, и пролежат 15 лет. Чем возиться с ленточным накопителем и лентами.
    Ответ написан
    Комментировать
  • Как реализовать ТОП просмотров за день, неделю и месяц?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    В свободное от нагрузки время аггрегировать данные за прошлые периоды.
    Прошел день, за прошлый день посчитал, добавил в отдельную таблицу сумму одной строкой и прошлый день весь можно грохнуть.
    Ответ написан
    Комментировать
  • Как называется устройство для объединение нескольких модемов в одну сеть?

    Sanes
    @Sanes
    Ethernet bonding
    Ответ написан
    Комментировать
  • Как встроить антивирусный движок в python?

    @rPman
    Полагаю в мире есть только один открытый антивирусный движок с условно свободными базами и обновлениями - clamav, вот его и интегрируй, либо через библиотеку libclamav либо вызывай утилиту командной строки

    p.s. альтернатива (лучше но не бесплатно, там сразу десятки антивирусов) - использовать облачные решения от virustotal, у них есть api который позволяет по хешам файлов быстро выдавать ответ (ну и заливать неизвестные)
    Ответ написан
    Комментировать
  • Как правильно построить взаимодействие своей "внутренней" базы товаров с движком интернет-магазина?

    @quad69
    Думается, что должно быть так: товары хранятся не в таблицах, а в единой БД. Когда владелец бизнеса что-то там меняет, эти изменения автоматически распространяются в каталоги интернет-магазинов.
    Как такое делают?


    А в чём сложность? Ставите тот же Mysql, складываете в него товары, потом подключаетесь, берёте данные и выводите.
    Ответ написан
  • Как удалить лишний js и css код с сайта?

    webinar
    @webinar Куратор тега Веб-разработка
    Учим yii: https://youtu.be/-WRMlGHLgRg
    кто такой лишний js и cs?

    грузится он медленно именно из за этого

    нет. Грузится он медленно из за того что у вас сервер очень медленно работает. Он отдает картинки рамером в 10кб по 10с
    63fe5e942e469914534220.png
    Ответ написан
    3 комментария
  • Как реализовано поле редактирования в ВК?

    victormayorov
    @victormayorov
    Frontend разработчик
    у vk храниться это в localStorage. И ничего глупого нет, чтобы хранить это в localStorage для того, чтобы временно сохранить то, что ввел пользователь.
    63fe221761064673634414.png
    Ответ написан
    1 комментарий
  • Как правильно создать приложение Messenger?

    @strelok011
    Судя по постановке вопроса - в голове полная каша из обрывков знаний, уж простите :)
    Рекомендую посмотреть вот этот видеоурок, хоть он и не про мессенжер, а про интернет магазин.
    В видео показаны этапы проектирования продукта, планирование базы данных, реализация, создание эндпойнтов, разработка фронт-приложения.
    Если вдумчиво смотреть и сразу применять, разбираться почему и зачем, и как это можно будет расширить и изменить под себя, вы точно сможете сделать что-то свое.
    Если не хватит базы знаний - копайте статьи в интернете по тому инструменту или области, которая для вас темный лес.
    Вот тут в "двух словах" рассказано как сделать проект.
    Ответ написан
    Комментировать
  • Как стилизировать строку в поисковой выдаче?

    Kiriniy
    @Kiriniy
    Графический и веб-дизайнер
    Короткий ответ — никак. Всё что вы можете, это максимально описать элементы сайта через schemas и семантику, а поисковики уже сами решат в каком виде давать вас в выдаче.
    Ответ написан
    Комментировать
  • Какой есть аналог teamviewer/anydesk с клиентом под Win и Linux, бесплатный?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Есть множество аналогов, но они работают куда хуже чем AnyDesk. Вот, я делал тестирование маем прошлого года, может сейчас чего лучше стало:

    Проетстировано:

    Remote Management System (RMS) - https://rmansys.ru (российское ПО, номер в реестре Минсвязи - 456)
    AeroAdmin - https://www.aeroadmin.com
    imPcRemote - https://remote-control-desktop.com
    LiteManager - https://litemanager.ru (российское ПО, номер в реестре Минсвязи - 1961)
    AnyDesk - https://anydesk.com

    Рассматривалось только ПО, имеющее версии как под Windows, так и под Linux, и обеспечивающее возможность соединения с клиентами:

    находящимися за NAT
    обладающими нулевыми знаниями в ИТ
    не требующие установки

    Проверялся только режим Linux (клиент) ↔ Windows (хост), то есть имитировалась ситуация, когда сотрудник, имеющий при себе ноутбук с Windows, находится на выезде и к нему должен подключиться с Linux сотрудник, находящийся в офисе.

    Общим недостатком всех программ под Linux является наличие где-то просто большого, а где-то реально ОГРОМНОГО списка зависимостей. Эту проблему решает только установка из пакета или сборочного файла, для Gentoo есть только net-misc/anydesk.

    Кроме того, у всех протестированных программ не работает передача индикации смены раскладки клавиатуры с клиента на хост. То есть при нажатии Ctrl-Shift (Alt-Shift) фактически раскладка переключается, но отображения этого не происходит. Передача отображения смены раскладки с хоста на клиента происходит нормально.

    RMS

    Распространяется в виде файла агента rms-agent.exe и файла для Linux rms-viewer. Бета-версия, поэтому в консоль постоянно выводит отладочный лог. Бесплатная лицензия требует паузы в несколько минут между переподключениями. Отвратительная скорость, особенно при подключении по 3G. Настройки по умолчанию сбивают с толку - ты не видишь ни локального, ни удаленного курсора. Иногда клиент безо всяких причин аварийно завершает работу по SIGSEGV. При завершении сессии с одной стороны вторая сторона почему-то об этом уведомления не получает и продолжает считать, что она подключена.

    AeroAdmin

    Распространяется в виде файла AeroAdmin.exe и по утверждениям разработчиков, работоспособен в Wine. Проверка эти утверждения не подтвердила, в wine 7.8 aeroadmin.exe аварийно завершается сразу же после запуска.

    Info: [16:34:06 / aeroadmin.cpp 1106] mode: 0
    20220520 16:34:06 [376 / service.cpp:597] !hService
    20220520 16:34:06 [376 / service.cpp:529] Installing service: "Z:\tmp\AeroAdmin.exe" s -sid 1
    012c:fixme:service:svcctl_ChangeServiceConfig2W SERVICE_CONFIG_FAILURE_ACTIONS not implemented: period 60 msg (null) cmd (null)
    0198:fixme:process:WTSGetActiveConsoleSessionId stub
    019c:fixme:ver:GetCurrentPackageId (017DFF00 00000000): stub
    Info: [16:301ac:fixme:wtsapi:WTSEnumerateSessionsW Stub 00000000 0x00000000 0x00000001 020DECB0 020DECA8
    01ac:fixme:wtsapi:WTSEnumerateSessionsW Stub 00000000 0x00000000 0x00000001 020DEADC 020DEAE0
    4:06 / aeroadmin.cpp 900] run_as_admiwine: Unhandled page fault on read access to FFFFFFFF at address 005B5DD6 (thread 0198), starting debugger...

    imPcRemote

    Распространяется в виде ZIP-архива impc_admin.zip для Linux и файла impcremoteinstant_user.exe для Windows. Ужасное некачественное изображение, страшная топорная оболочка, все напоминает VNC-клиенты образца начала 2000-х годов (впрочем, вполне возможно, так оно и есть). Скорость соединения приемлема, но изображение просто ужасно. Никаких других возможностей типа обмена файлами нет. Зато у него одного передается индикация смены раскладки клавиатуры.

    LiteManager

    Распространяется в виде файла для Linux LiteManager и файла для Windows ROMServer.exe. Автоматически подхватывает настройки прокси из системы и ,если они включены, пытается их использовать, отключить их невозможно, они постоянно включаются заново. Программа может быть была бы и неплохой, но в отличие от всех других, она не только не отображает переключение раскладки клавиатуры, но и реально их не переключает. То есть раскладку клавиатуры можно реально переключить только на хосте. Разрыв соединения с хостом не отображается - хост продолжает считать себя подключенным

    AnyDesk

    Распространяется в виде архива anydesk-N.N.-amd64.tar.gz для Linux и файла AnyDesk.exe для Windows. Обладает достаточно быстрой скоростью отображения изменений (по крайней мере, наибольшей среди всех протестированных программ). Единственный клиент, в котором настройка подтверждения удаленного соединения на хосте включена по умолчанию. Также единственный клиент, в котором кроме собственно бинарника, в поставку входит файл .desktop (для размещения на рабочем столе графической оболочки Linux), а также файлы запуска сервиса для Linux под init и systemd и значки в формате PNG.

    Выводы

    LiteManager и AeroAdmin использовать просто нельзя - в силу наличия у них серьезных ошибок, препятствующих их нормальной работе.
    Remote Mamagement System использовать пока нельзя - в силу нестабильности работы модуля клиента - в процессе тестирования он аварийно завершался у меня два раза, систему я не уловил, но аварийное завершение клиента в процессе реальной отладки на шахте например может принести множество неприятностей.

    imPcRemote использовать пока можно - там где нет требований к передаче изображения, потому что качество там явно 8 бит, не больше. Разрабатывается небольшой канадской компанией.
    AnyDesk использовать пока можно - за исключением того, что он не передает отображение значка раскладки клавиатуры, у него нет каких-то явно выраженных недостатков, но в силу того, что это достаточно крупная немецкая компания, всегда следует иметь в виду, что она может поступить как TeamViewer.
    Ответ написан
    6 комментариев
  • Стоит ли переписывать старый проект на .NET6 (на голом энтузиазме)?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Нет, оно того не стоит. Любая работа должна быть оплачена. Ибо сейчас напишешь за свой счет, а потом начальника скажет "о, отлично, молодец, можем теперь сэкономить на программистах и поддержке, у меня как раз знакомый ищет, ща его поставлю, а ты можешь быть свободен, заодно выпишу себе премию, во какой я молодец". Этот код решает задачи бизнеса. Если бизнес готов тратить на его поддержку и сопровождение деньги - то это проблемы этого бизнеса. Почему это наемный работник должен решать проблемы бизнеса за свой счет? Правильно сделать так: оформить все в виде какого-то документа с конкретными аргументами, цифрами, графиками и т.п. и выдать его начальству. Типа сейчас поддержка проекта стоит столько-то, приносит такие-то проблемы, переписать будет стоить столько-то, сопровождение нового будет столько-то, оно решает такие-то проблемы. И выдаете данный документ начальству. Можно даже в бумажном виде в нескольких экземплярах. А далее пусть у начальства голова болит.
    Ответ написан
    3 комментария
  • Как научиться делать безшовные фоны?

    Stalker_RED
    @Stalker_RED
    Берешь квадратик, рисуешь посередине кирпичи, траву, или что ты там хочешь.
    Разрезаешь его пополам, по вертикали, например.
    Меняешь половики местами, видишь шов.
    Подрисовываешь так, чтобы шва небыло.
    Разрезаешь теперь по горизонтали, снова меняешь местами, убираешь шов.
    Ответ написан
    Комментировать
  • За сколько можно прокачаться не очень хорошему системному администратору до DevOps инженера?

    vldmrmlkv
    @vldmrmlkv
    experienced internet user
    На секунду показалось, что как будто это я писал года 3 назад. Был похожий стек и те же вопросы, пока окончательно не выгорел. За год до этого полностью перешёл на Linux. Потом прошел курсы и поменял работу.

    По теме. Тупой тот, кто не хочет и не может учиться. Рутина без развития демотивирует, работа и профессия должны нравиться. Вы уже начали, значит вопрос решается и это хорошо. Возможно потеряли пару лет - стабильность затягвает, у меня так и было, но теперь вы знаете что делать дальше. Нужно составить план и делать. Попробуйте канбан доски в trello - мне очень зашло. Будет некая игрофикация процесса обучения, приятно когда закрыл ещё одну "таску" и видно объем проделанной работы. Ну или можно купить какой нибудь крутой курс слёрма, но лучше с начала самому - всё основное есть в свободном доступе. Ссылки в конце.

    Начать я бы рекомендовал с linux как основная ОС, а на работе внедрять IaC и мониторинг - ansible, terraform, docker, docker-compose, gitlab, AWX, Portainer, Prometheus, ViktoriaMetrics, Graylog, Loki. Те же агенты zabbix можно раскатывать ansibl'ом, автоматизировать это все в gitlab ci. Провижинить вм terraform'ом. В zabbix api можно много чего автоматизировать. Например, автоматическое добавление новых хостов. Поднять всё, что можно в docker, разобраться с docker-compose. Кубер можно локально посмотреть minikube, поднимается за 10 минут. Для кубера поставьте Lens - не тру конечно, но в нём наглядно видна структура сущностей кубера.

    Пару ссылок по теме:
    https://infinite.education/skillset/linux_administrator
    https://www.youtube.com/@KirillSemaev
    https://github.com/milanm/DevOps-Roadmap
    https://www.youtube.com/@ADV-IT/playlists
    https://github.com/bregman-arie/devops-exercises
    https://landscape.cncf.io/?grouping=category&zoom=60
    https://kubernetes.io/ru/docs/tutorials/kubernetes...
    Ответ написан
    Комментировать
  • За сколько можно прокачаться не очень хорошему системному администратору до DevOps инженера?

    @Drno
    Реально. Уходи в линукс
    Ответ написан
    Комментировать
  • Как можно реализовать при запросе местоположения в телеграм боте исключить у пользователя выбирать вручную любую точку на карте?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Приделать датчик движения, моторчик и линейку металлическую. Как руку протянет к карте - линейкой по рукам!
    Ответ написан
    1 комментарий
  • Где взять анти-паджинатор?

    Adamos
    @Adamos
    63e0cb8e21caf540241572.png
    Не кислая "куча" получится...
    Ответ написан
    2 комментария