Задать вопрос
  • Как выполнить файл из консоли laravel?

    kawabanga
    @kawabanga
    Чекпоинты на ум приходят сразу (проверяйте на локальном сервере тоже) -

    1) проверить, что команда console отрабатывается из папки лары
    2) проверить, что команда console отрабатывается с абсолютными путями на проде
    3) если не отрабатывается - сбросьте кэши, как минимум, и разбирайтесь почему
    4) проверьте версию PHP и самое смешное, проверьте shortags. Я уже лет 10 как отказался от shorTags.
    Ответ написан
    Комментировать
  • Можно ли в Macos разделить диск как в Windows?

    kawabanga
    @kawabanga
    или не очень дорогих

    Мое имя Джек Воробей. Думайте.

    WinCP (два окна с SSH, FTP)

    Я подружился с этим приложением. Даже переезд на новый мак дался легко. Но есть еще одно, не помню как называется, мой друг devops использует его.
    https://github.com/electerm/electerm

    Как быть на macos?

    Ни разу не столкнулся с подобной проблемой за 14 лет работы на разных маках.
    Самое главное - храните данные и купите подписку на 2тб для файлов важных.

    p.s. - аналог TC я бы тоже хотел, но типа filezilla на маке есть, но не подружился в итоге.

    p.s. Из удобного , советую поставить -
    magnet, удобное приложение для работы с окнами. можно сразу два проводника раскидать по половинам экрана.
    Ответ написан
    2 комментария
  • Можно ли видео на сайте без сохранение на диск показывать в меньшем разрешении?

    kawabanga
    @kawabanga
    На хостинге есть видео. Размер видео 100 Мб.

    Установите ffmpeg и просто базовым запросом перекодируйте в тот же размер что у вас есть. Удивитесь сокращению размера раза в два.

    Видео запускается через тег video

    Используйте библиотеки, типа videojs. они действительно имеют больше возможностей.

    На смартфонах такое разрешение не нужно.

    Настройки пользователя или конфиги пользователя в вашей системе.

    К примеру, на десктопах показываем исходник = 1080, на планшетах = 720, на смартфонах = 560.

    Изначально нужно закодировать. ffmpeg перегоняет очень быстро файлы в разные форматы на m1 макбуках (4x от изначального 1080 файла), думаю современные процессоры умеют так же.
    В любом случае придется хранить все 3 версии, но тут нюанс -
    576 - может весить 5-10мб
    1080 - 20-30 мб
    720 - около 15.

    В итоге все 3 версии готовые - меньше вашего изначального файла. Продумайте им названия и внедрите в систему.
    Ответ написан
    Комментировать
  • Существует ли бесплатная Корп. почта?

    kawabanga
    @kawabanga
    Ответ написан
    Комментировать
  • Как вывести крайние диалоги пользователей?

    kawabanga
    @kawabanga
    В общем ключе вот так -
    SELECT * FROM
    (SELECT max(id) as maxId, from_id 
    GROUP BY from_id
    WHERE from_id in (1,2,3)
    ORDER BY maxId desc
    ) as t1
    INNER JOIN messages m on t1.maxId = m.id


    ЧатГПТ Laravel далее код сгенерировал, выглядит корректно. Заметьте, что первую часть запроса в любом случае выполнять через Query Builder, но можно вывести ее в получение конкретных id последних сообщений. И дальше двумя, можно отдельными запросами уже через модель - получить данные по сообщениям и пользователям. Они будут работать по первичным ключам и срабатывать моментально.
    А можно просто добавить жадную загрузку по связи Users на втором запросе, что в целом облегчит вам задачу и не нужно будет связывать далее сообщение и его автора.
    // Подзапрос для получения maxId и from_id
    $subQuery = (new Query())
        ->select(['maxId' => 'MAX(id)', 'from_id'])
        ->from('messages')
        ->where(['from_id' => [1, 2, 3]])
        ->groupBy('from_id')
        ->orderBy(['maxId' => SORT_DESC]);
    
    // Основной запрос с INNER JOIN
    $query = (new Query())
        ->select('*')
        ->from(['t1' => $subQuery])
        ->innerJoin('messages m', 't1.maxId = m.id');
    
    // Выполнение запроса
    $results = $query->all();
    Ответ написан
    Комментировать
  • Как грамотно деплоить тг бота? Как сделать так, что даже когда он на доработке, он не молчал а присылал отбивку а ля "сервисное обслуживание"?

    kawabanga
    @kawabanga
    На полугодовом опыте, тезисы:
    1) Иметь тест бота, если вы положили что-то, чтобы не фиксировалось на проде.
    2) Иметь лог сообщений, так как 403 ошибка попадается стабильно. Ее нужно обрабатывать. В крайнем случае - ваша рассылка должна заново отправляться.
    3) Проверять досконально кнопки, я к примеру как лох отправил 100+ кнопок клиенту, что сломало его клиент.
    4) Обрабатывать ошибки. Еще раз говорю. и это важно.
    5) он не молчал а присылал отбивку а ля "сервисное обслуживание" -- обрабатывать ошибки отличные от 403.
    У вас есть точки -
    webhook от бота (про nginx выше написали)
    ваша обработка (если php то try catch)
    сообщение клиенту (try catch)
    Ответ написан
    Комментировать
  • Как закрыть страницу благодарности от прямых заходов?

    kawabanga
    @kawabanga
    1) Получать с сервера ссылку, а не подставляя ее в js.
    2) Записывать куда то определенный hash на открытие страницы
    https://мойсайт.ru/страница-благодарности.php?hash=123 и потом гасить его, чтобы человек не мог повторно открыть страницу.

    Возможно просто рендер страницы благодарности вместо формы отрисовать после события успешной отправки формы.
    Ответ написан
    2 комментария
  • Как узнать, какой день недели был 100 дней назад?

    kawabanga
    @kawabanga
    // Создаем объект DateTime с текущей датой
    $date = new DateTime();
    
    // Вычитаем 100 дней
    $date->modify('-100 days');
    
    // Выводим результат в нужном формате
    echo  $date->format('N'); // 1 (понедельник) до 7 (воскресенье)


    Ну а дальше подставляете свой массив.
    Ответ написан
    8 комментариев
  • Какой тайм-трекер выбрать для фрилансера?

    kawabanga
    @kawabanga
    Apploye - 5 баксов вроде за аккаунт, и чуть больше если надо фиксировать активность (и скриншоты, аля upwork)
    Trackingtime - для личного контроля времени.

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

    Руководитель поставил задачу подобрать тайм-трекер

    Уточните у руководителя, какую цель он преследует? Если вы в найме, то кол-во часов никак не влияет.
    И я даже больше скажу, условные 4 часа фрилансера -> часто больше, чем полноценный рабочий день сотрудника.
    Ответ написан
  • Почему col-xl-10 не работает при указании col-md-8?

    kawabanga
    @kawabanga
    col-8 col-sm-6 col-md-8 col-lg-8 col-lx-10

    наоборот классы сделайте.
    Ответ написан
    2 комментария
  • Разграничение файлов пользователей в s3 хранилищах?

    kawabanga
    @kawabanga
    Я начал использовать s3 не очень давно и у меня возник такой вопрос.

    Проверьте трафик ваш. S3 может оказаться дорогим решением.

    1/2) И подходит, и нет. Если кратко, у вас должно быть
    ?fileId=123 -> потом проверка доступа на этот файл -> потом отдача файла через ваш сервер ( не через прямую ссылку s3).

    А так, любое решение хранения файлов, и отдача через прокси.
    Ответ написан
    Комментировать
  • Почему изменилось расположение букв на клавиатуре MacBook?

    kawabanga
    @kawabanga
    Было обновление в каком то году, и латинские буквы справа сверху. Я когда купил макбук про м1 - удивился сначала.
    Ответ написан
  • Хочу купить готовый сайт, как его проверить?

    kawabanga
    @kawabanga
    а в чем проблема?

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

    Актив как программный продукт - проверяется так же.
    Ответ написан
  • Появляется ошибка, не понимаю как её исправить Setting unknown property: yii\bootstrap5\ActiveForm::model?

    kawabanga
    @kawabanga
    ActiveForm::begin(['id' => 'form-booking', 'model' => $bookingForm]);

    Модель вызываете в ActiveForm. Удалите model тут.
    Ответ написан
    2 комментария
  • У меня php скрипт не обрабатывает до конца данные когда его веб-хук со стороннего ресурса повторно запускает, что сделать чтобы обрабатывал?

    kawabanga
    @kawabanga
    Если ваши данные обработать нужно на уровне базы данных, то покрывать транзакцией.
    Если просто нужно заблокировать новое поступление вебхука - в быстрое хранилище (кэш), ставите метку, что работа по задаче ведется, и завершаете процесс.
    Ответ написан
    Комментировать
  • Не удается установить Outline на VPS?

    kawabanga
    @kawabanga
    1) Удалить CentOS 7 и поставить что-то современное, даже убунту.
    2) установить openssl
    Ответ написан
    Комментировать
  • Не определяет модель, выдает unknown property. Как исправить?

    kawabanga
    @kawabanga
    Если есть поле БД, то проверять:
    1) Закэширована ли база данных, смотреть в конфиге.
    'db' => [
                'class' => 'yii\db\Connection',
                'dsn' => 'mysql:host=localhost;dbname=mydatabase',
                'username' => 'root',
                'password' => '',
                'enableSchemaCache' => true,
    
                // Duration of schema cache.
                'schemaCacheDuration' => 3600,
    
                // Name of the cache component used to store schema information
                'schemaCache' => 'cache',
            ],


    2) Проверять, если ли поле в БД. Если нет, то смотреть по коду - почему?

    Если свойство не должно быть в БД, то смотреть, если ли свойство в вашем класе(по тексту - нет), есть ли на нем magic метод (у вас нет), или есть ли свойство в трейте ( у вас нет.
    Ответ написан
  • MacBook как bluetooth ресивер?

    kawabanga
    @kawabanga
    Крайне ненадежные вещи вы обсуждаете.

    Конкретно в вашем случае -
    а) Можно систему BT передачи аудио. Сомнительно, но допустим. Если вы бы попробовали 5.1 (качественный ресивер, колонки и саб), то вы бы даже не стали смотреть в эту сторону.
    б) воспроизводить видео с ноута и раздавать по 4К HDMI на телек и управлять звуком.
    в) Подключить телек к хорошему ресиверу (можно даже старому) и отдавать звук на ваши колонки по оптическому проводу. Я на алике чуть больше тысячи потратил за провод. Там провод - практически нитка, 25 метров, которую можно спрятать как угодно по стенам. https://aliexpress.ru/item/32812428697.html?spm=a2... вот нашел,
    Тут есть схемы следующие:
    Исходник - ноут, отдает по HDMI на телевизор контент + 5.1 звук. Телевизор в свою очередь отправляет по оптике 5.1 звук на ресивер и отдает в колонки и саб.
    Источник - телевизор отдает звук по оптике на ресивер.

    И да, вы можете подключить устройство как BT микрофон к маку, если это поддерживается вашим телевизором.
    Ответ написан
  • Ошибка миграции laravel?

    kawabanga
    @kawabanga
    Так вам пишут, что таблица users есть. В этом и ошибка.

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

    kawabanga
    @kawabanga
    $arr = explode(',', $str);
    foreach ($arr as $value) {
        $new_arr[] = trim($value);
    }


    Зачем использовать регулярки, если они не нужны в задаче.
    А если нужны по заданию, то
    Ответ написан
    3 комментария