Задать вопрос
  • Автоматизация гостиницы — реальность или фантазия?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Собрать можно в двух случаях.

    1) Одна компания сама разрабатывает все системы по отдельности и решила их объединить в один продукт.

    2) Есть сторонние решения по каждому отдельному пункту с доступным API. Тогда надо будет реализовать только управляющий центр с оператором, который принимает данные, обрабатывает, принимает решения, отдает команды.

    Оба варианта можно совместить.

    Условно получается надо разработать:

    - Коннекторы для вхаимодействия по API с внешними системами
    - Управляющая программа
    - Окно оператора
    - Софт для персонала (куда будут поступать инструкции что надо сделать - добавить шоколадки в киоск, убраться в номере Х и прочее)
    - Софт для клиентов (отдельное приложение / телеграм бот)

    Для себя хотите или на продажу?
    Ответ написан
  • Как в composer в autoload добавить свою директорию?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Добавляете их в секцию autoload. Пример ниже. Ссылка на документацию выше :)

    "autoload": {
            "psr-4": {
                "App\\": "app/",
                "Database\\Factories\\": "database/factories/",
                "Database\\Seeders\\": "database/seeders/"
            }
        },
    Ответ написан
    Комментировать
  • Почему botFather не принимает ссылку на mini app?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Нужен ssl-сертификат. Если на этом хостинге нет возможности его подключения, то лучше взять платный. Лучше всего с возможностью бесплатного подключения сертификатов от Let`s Encrypt. Для телеграма можно и самоподписанный использовать, но там надо все руками настраивать.
    Ответ написан
    4 комментария
  • Как увеличивать счетчик в условиях конкуренции?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Да, лучше использовать конструкцию

    insert into foo (entity_id, count)
    values (8, 1)
    on duplicate key update count = count + 1;
    Ответ написан
    3 комментария
  • Почему не работает preg_replace?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Если тебе надо оставить то что между [quotemsg][/quotemsg] то preg_replace работает корректно.

    А зачем делать return из if?

    $text = preg_replace("~\[quotemsg data-username=\"(.*?)\"\](.*?)\[/quotemsg\]~", '$2', $text);


    https://www.php.net/manual/ru/function.preg-replace.php
    Ответ написан
  • Как правильно ответить на вопрос, знаешь ли ты PSR?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Вообще правильно ответить встречным вопросом, про какой именно PSR идет речь. Или вы хотите определение/расшифровку?

    Тебе же пока стоит отвечать, что нет, не знаешь. Но если, ...

    - Прочитаешь обзорную статью, что такое PSR (легко ищется в яндексе)
    - Внимательно изучишь каждый из этих (там же можно найти)
    - Думаешь как это можно применить на практике. Потом идешь настраиваешь в своей IDE форматирование кода по одному из стандартов :)

    то смело сможешь отвечать: "- Да, знаю. Было такое."
    Ответ написан
  • Какая утилита подобна wget, но умеет делать upload дерева файлов по https?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Используй curl с получением дерева файлов через find

    find MYDIR -type f -exec curl ***
    Ответ написан
    Комментировать
  • Как импортировать данные из .docx файла в JavaScript логику?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Вручную перенести все, будет быстрее чем писать скрипт.
    Ответ написан
    Комментировать
  • Как быстро загружать файлы на сервер?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Скорее всего каждый файл аплоадится в своем отдельном процессе XMLHttpRequest
    Ответ написан
    Комментировать
  • Как не ожидать выполнения функции?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Запускать через очереди https://laravel.com/docs/10.x/queues
    Ответ написан
    Комментировать
  • Как правильно преобразовать данные?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Что бы получить нужные значения надо не только округлять, но еще и на 100 умножать. Для округления подойдет round https://www.php.net/manual/ru/function.round.php Вторым параметром можно указать сколько знаков после запятой нужно.

    round(0.0001483391797037 * 100, 3); // 0.015 
    round(-0.0000692628742717 * 100, 3); //-0.007
    Ответ написан
    Комментировать
  • Как можно ускорить выполнение SQL запроса?

    yesbro
    @yesbro
    Думаю, помогаю думать
    План запроса, пожалуйста :)

    Результат запроса полностью помешается в память? peak_memory_used (из EXPLAIN filesort_summary) больше чем sort_buffer_size из настроек базы?

    Запрос похоже никак не оптимизировать. Вот обсуждение подобной проблемы https://stackoverflow.com/questions/75306623/order...

    Надо или тюнить mysql или думать над каким-то кешированием/промежуточными расчетами (хотя пока не вижу что тут можно кешировать).
    Ответ написан
  • Почему не работает метод setVisibility с параметром public для Laravel и AWS S3?

    yesbro
    @yesbro
    Думаю, помогаю думать
    А в настройках самого бакета ты разрешил делать файлы публичными? Насколько я помню там по умолчанию все запрещено. https://websetnet.net/ru/how-to-manage-public-acce...
    Ответ написан
    2 комментария
  • Как правильно развернуть локальный репозиторий для работы с имеющимся сайтом?

    yesbro
    @yesbro
    Думаю, помогаю думать
    1) Создаешь пустой приватный репозиторий на github/bitbacket/gitlab

    2) В том месте где сайт
    - инициализируешь локальный для сервера репозиторий git init
    - создаешь файл .gitignore и указываешь в нем те файлы и папки, которые не должны попасть в репозиторий
    - добавляешь файлы в репозиторий git add . && git commit -m 'Form server'
    - генерируешь публичный и приватный ssh ключ https://docs.github.com/en/authentication/connecti... и добавляешь публичную часть в настройки своего аккаунта на github/bitbacket/gitlab
    - связываешь локальный серверный репозиторий с основным удаленным на github/bitbacket/gitlab выполнение команды git remote origin ***где вместо звездочек урл (для доступа по ssh) твоего репозитория, обычно он есть на главной странице твоего репозитория
    - пушишь свои изменения git push -u origin master:master

    3) На своем рабочем компьютере

    - генерируешь публичный и приватный ssh ключ на своем компьютере https://docs.github.com/en/authentication/connecti... и добавляешь публичную часть в настройки своего аккаунта на github/bitbacket/gitlab и добавляешь публичную часть в настройки своего аккаунта на github/bitbacket/gitlab (это уже второй ключ)
    - создаешь локально папку где у тебя будет лежать код твоего сайта
    - клонируешь туда сайт из удаленного репозиторий git clone *** ./ где вместо звездочек урл (для доступа по ssh) твоего репозитория
    - коммит и пуш далее стандартным ообразом
    Ответ написан
    Комментировать
  • Как получать данные для Telegram WebApp authentication?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Правильно ли я понял схему?

    1) На самом сайте регистрации и входа нет.
    2) Что бы попасть на сайт нужно зайти на бота в телеграм и нажать там какую-то кнопку. После этого открывается сайт где ты уже аутентифицирован.

    Есть серверные реализации телеграм-клиента, которыми ты можешь управлять из своего кода. Там ты сможешь от имени пользователя взаимодействовать с ботом и получить нужную тебе ссылку со всеми параметрами, а потом использовать ее как надо.

    Посмотри вот тут https://habr.com/ru/articles/433268/ - это отправная точка для поиска нужного тебе решения.
    Ответ написан
    1 комментарий
  • Каким образом человек может попасть на хакнутый им сервер?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Могли оставить какой-нибудь скрипт, который по запросу из сети выполнить любой заранее заложенный или загруженный в процессе код. Могли майнер оставить. Могли какой-то сервис развернуть. Могли в крон положить скрипт который через Х дней даст доступ по ключу или добавит пользователя. А могли ничего не сделать. Вариантов слишком много :) Проще переустановить. Логи могли и подчистить.
    Ответ написан
    9 комментариев
  • Есть ли метод кеширования iframe стороннего сайта?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Получать данные для ифрейма через отдельный пхп-скрипт, который будет их кешировать. Обновлять кеш с какой-то переодичностью (например запускать через крон). Данные для вывода на сайт брать из кеша.

    Так что направление мысли верно. Как-то закешировать их можно, а точнее, как угодно. Хоть весь ответ, хоть распрарсить и только необходимые данные. Для кеша тоже можно использовать что будет удобнее: базу данных, редис, мемкеш, файлы.
    Ответ написан
  • Где браузер хранит сведения о пользователе?

    yesbro
    @yesbro
    Думаю, помогаю думать
    1) В cookies или localStorage.

    2) Можно, но не всегда.
    Ответ написан
    5 комментариев
  • Не ставится background-image через селектор в теге selection, за то в теге div с тем же селектором все работает прекрасно. В чем ошибка и почему так?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Может быть вместо тега selection должен быть тег section?
    Ответ написан
    Комментировать
  • Что тут задача фронтенда, а что бэкэнда?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Да. Минимальная задача верстальщика сверстать этот блок. Более опытный (и если есть такая необходимость) может еще сделать js-слайдер.

    Теоретически функционал Недавно просмотренные можно реализовать полностью на фронтенде (список просмотренных: названия, цена, картинка хранит в локалстордже), но тогда этого разработчика я не стал бы называться простым верстальщиком. Это уже фронтенд-разработчик/программист/инженер. Да и есть у этого ограничения. Например если цена на товар поменялась, то в браузере клиента будет старая. Или если товар снят с продажи, то он все равно его увидит. Ну и надо понимать, что это совершенно разный объем работ.

    В классическом случае этот функционал + интеграцию верстки в шаблон делает бекенд-разработчик.
    Ответ написан
    3 комментария