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

    @programmer403
    php -f /{path}/console.php

    console.php не для того чтобы его напрямую запускать с php. А для регистрации консольных команд:
    Artisan::command('inspire2'
    которые потом вы запускаете командой
    php artisan inspire2

    Дальше уже смотрите в сторону Schedule
    Ответ написан
    Комментировать
  • Почему PHP выполняет математические операции неправильно?

    Коротко - потому что IEEE 754

    Выполняет он математические операции правильно, но некоторые числа компьютер просто не способен представить со 100% точностью, тк для них нужно было бы бесконечное количество памяти.

    Точно также, как мы не можем записать все цифры числа 1/3 в десятичной системе, точно также и компьютер иногда не может записать все цифры в двоичной.

    Если ты работаешь с деньгами, то тогда используй то, что делают все банки - представляй суммы денег не как дробные числа, а как целые. Например место 1.5 рублей записывай как 150 копеек. Запятую добавишь при выводе человеку.
    btw тут в комментах пишут, что для денег тоже есть паттерн по-лучше конкретно для php.

    Если при делении у тебя получилось дробное количество копеек - округляй так, как велит закон.

    Если ты делаешь какие-то математические вычисления - возможно тебе нужны рациональные числа.
    Не знаю, что обычно для этого в пхп используют, но нагуглил https://github.com/webgriffe/rational
    https://github.com/markrogoyski/math-php

    Но в случае с целыми числами ты всё равно можешь упереться в ограничение на максимальное число, а в случае с рациональными числами ты получишь очень сильную просадку в производительности.

    Если тебе критически важна скорость, а точность - не так важна, то оставайся на IEEE754 и просто округляй то N значимых цифр (обычно больше 5 цифр мало кому нужно)
    Ответ написан
    13 комментариев
  • Как сделать простой фильтр с фасетом?

    no_one_safe
    @no_one_safe
    Можно делать 2 запроса в эластик - базовая агрегация без фильтра (все возможные значения) и второй запрос с примененным фильтром.
    1. Получили 2 набора свойств - полный набор и ограниченный по фильтру.
    2. Отрисовали фильтр на фронте согласно полному набору свойств.
    3. Для свойств, которые не выбраны в фильтре (и только для них) "задизейблили" те значения, для которых агрегация с фильтром выдала 0 штук.

    Таким образом у вас и фильтр "не скачет" - т.е пользователь явно видит, что такое значение в принципе есть, но не подходит по фильтру. При этом можно выбрать в текущем выбранном свойстве другие значения.
    Ответ написан
    1 комментарий
  • Можно ли как то внедрить Laravel постепенно, например установить как основной каркас и в него уже встроить CMS?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    разработчики все время советуют перейти на новые технологии а если точнее на Laravel и с MySQL на PostgreSQL чтоб сайт не только стал современным но и работал шустрее.
    Переход с самописа на лару - хороший шаг, переход на постгрес нужен только если нужны конкретные задачи, решаемые постгресом лучше чем мускулем. Например, если у вас есть большой массив json данных, хранимых в соответствующих полях и требующий каких-либо выборок на основании этих полей, то есть по сути - если у вас база хранит ненормализованные сортируемые данные. В остальном выгода от перехода с мускуля на постгрес будет не видна без микроскопа.

    Если база нормально спроектирована, то модели лары могут практически налету подхватить таблички, останется только написать зависимости в моделях, пошаманить контроллеры и перевести хтмл в блэйды. Задача не смотрится как "работы на год", однако сложно сказать за сколько справятся ваши прогеры, тут сильно зависит от исходных данных, типа насколько правильно спроектирована бд, что есть сложного в функционале такого, что долго переносить в ооп/мкв, насколько хорошо разбираются ваши спецы в том что было написано в легаси проекте, насколько они хорошо знают лару...

    Обычно заявы по типу "мускуль гуано, надо менять на постгрес" без конкретных аргументов признак поклонников карго культа, а не профи. Так что я бы послушал аргументы для начала, а то потом окажется что там индексы только первичные на таблицах, про explain никто никогда не слышал, а выборки идут по тысяче в циклах, но виновата, конечно же, тормознутая бд.
    Ответ написан
    3 комментария
  • Подключение класса внутри класса: Правильно ли я делаю?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В целом, подключение классов через include/require уже устарело. Как правило, используется автозагрузка классов по стандарту PSR4, самостоятельная (spl_autoload_register) или через composer.
    Но если оставаться в легаси, то я бы вынес все подключения зависимостей через require_once в начало файлов.
    Ответ написан
    8 комментариев
  • Устанавливать ли в php таймзону пользователя?

    @alexalexes
    Проблем с временными зонами вообще не будет, если их представление выдавить максимально ближе к модели представления данных на интерфейсе пользователя.
    Нужно конвертировать в строку только непосредственно перед отрисовкой дату и время из UTC, и обратно загонять время в UTC, если забираете пользовательский ввод.
    Весь бек должен работать в одной временной зоне, а от пользователя знать, что он в такой-то временной зоне, только в контексте сессионной переменной, если это необходимо.
    Ответ написан
    Комментировать
  • Не переходит по ссылке, что делать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А если подумать?
    Что должен выдать document.querySelector('https://vk.com/krosrs')?
    Правильно, ошибку. Что и выдаёт.
    что делать?
    Для начала определиться, а что именно вы хотите получить этим кодом и зачем делать ссылку, а потом запрещать переход по ней.
    Ответ написан
    Комментировать
  • Переносы строк в сгенерированном html, как добавить?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как это можно пофиксить в Next js (App router) (14.1.0)

    Можно выбросить этого сеошника в окно, вообще рабочая тема и не только с nextjs.
    Ответ написан
    Комментировать
  • Переносы строк в сгенерированном html, как добавить?

    @Everything_is_bad
    Сеошник написал полную чушь, погугли известные проекты и потыкай в них его.
    Ответ написан
    Комментировать
  • Как освободить место на диске облачного сервера Ubuntu 24.04 LTS 64-bit?

    @pfg21
    ex-турист
    Обычно хлам складывают в /var. К примеру почистить /var/log от старых файлов

    На будущее поставить ncdu
    Запускать sudo ncdu -x /

    /dev/sda1 это виртуальный файл, представляющий себя раздел на носителе, содержащий файловую структуру корня системы (прописано в Mounted on)

    п.с. а Линукс необходимо изучать....
    Ответ написан
    Комментировать
  • Как эффективно перекодировать видео?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Первому файлу нужно сжать 402240 точек на кадр, 20 fps, получаем в секунду 8 млн точек. Видим сжатие 817 kb/sec
    Второму файлу нужно сжать 921600 точек на кадр, 60 fps, получаем в секунду 55.3 млн точек. Видим 2526 kb/sec

    Сравниваем 55.3 / 8 и 2526 / 817 = 6.9125 и 3.0917992656058751529987760097919

    То есть разница в "качестве сжатия" всего в 2 с хвостиком раза.
    В данном случае еще следует обратить внимание, что видео с маленьким разрешением часто скрадывает мелкие движения, их вообще на нем не видно, и соответственно оно упрощается. Либо вообще можно проверить что за видео - фильмы в среднем сжимаются гораздо хуже, чем какие-нить презентации с кучей статического контента.

    По поводу размера файлов, еще обращу внимание что 128 и 104 kb/s для звука - значимо влияет на размер файла. Звук вообще может занимать четверть а то и треть, ибо сжимается хуже, чем видео.

    Ну собственно и все. Тут оба видео сжаты одним и тем же кодеком, и сложно предположить, что можно как-то заметно качественнее пережать, дефолтные настройки в современных кодеках обычно fits many, и какие-то кастомные настройки обычно влияют не столько на размер, сколько на адаптацию сжатия к контенту видео.

    получить более высокий фпс из кадров которых не существует?? Ну не знаю, можно просто продублировать кадры. Можно в ffmpeg попросить создать промежуточные кадры, но оно может заметно исказить оригинал, и для художественного кино это может оказаться нежелательным эффектом.

    В общем тут нет некачественного сжатия. Надо сравнивать контент (наличие статических частей экрана, количество цветовой гаммы и так далее).
    Ответ написан
    1 комментарий
  • Как организовать автодеплой на сервер в закрытом контуре?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Ставите на целевой сервер gitlab-runner и далее настраиваете деплой стандартным способом через gitlab ci/cd. Триггеры деплоя - стандартные PR в master ветку только мэйнтэйнером или администратором проекта/группы. Все остальные разработчики работают по стандартному github-flow режиму ну или какой у вас там рабочий процесс принят. В идеале, конечно, следует делать деплой через SSH, как вариант - прокинуть сервер гитлаба в закрытый контур через любой шифрованный тунель, а внутри контура настроить прямой доступ к нему по DNS.
    Раз стоит цель настроить деплой без SSH в закрытый контур, то значит разрешение на такой деплой уже есть. А если нет - ну, что ж, это уже ответственность ТС и что делать в этом случае это уже совсем другой вопрос.
    Ответ написан
    Комментировать
  • Как принимать деньги от физиков и передавать их другим людям онлайн без юрлица или ИП?

    vabka
    @vabka Куратор тега Веб-разработка
    1. Юридическое лицо обязательно придется завести

    2. Налоговая в любом случае увидит тут признаки дохода и ты будешь обязан взимать НДФЛ с исполнителей, как налоговый агент.
    Вот и требование отчитываться в налоговую.
    Вот тебе, получается, нужно узнавать полные данные и ИНН исполнителей.
    Вот и закон о персональных данных кокетливо машет рукой, а РКН ждёт от тебя стопку бумаг о том, как ты с этими ПД работаешь и как защищаешь. Очень возможно, что придётся ещё потратиться, чтобы всем требованиям соответствовать.

    3. А ещё тут очень легко можно попасть на отмывание денег. Возможно, для того что ты хочешь сделать, нужно ещё получать лицензию. Стоит проконсультироваться с юристом по поводу того, какой у тебя ОКВЭД тут будет.

    4. Учитывая это - я хз как ты собираешься не получать с этого прибыль. Ибо только на то чтобы запустить такой сервис и чтобы он работал придется немало денег вложить и регулярно тратить.

    Без юридического лица можно попробовать крипту, но тут тоже есть нюансы, начиная опять же с комиссий(говорят есть варианты с небольшой комиссией) и волатильности (по идее есть стейблкоины, но и они умеют обваливаться), заканчивая серым статусом, зато всего остального получится избежать.
    Ответ написан
    14 комментариев
  • Какой использовать стек для написания онлайн сервиса управления производством?

    Adamos
    @Adamos
    Человек, задающий такой вопрос, вряд ли сможет написать не то что такую систему, но даже сколько-нибудь вменяемое ТЗ по ней.
    Самописные системы - это сильно отдельная песня от прочих программ. Их разработка практически никогда не заканчивается, просто увеличивается доля поддержки уже существующего кода. Если вы не готовы держать хотя бы одного программиста, который будет в этом вариться, или если у вас высок шанс, что после попадания такого программиста под автобус вам впору будет броситься под него же - лучше и не начинать писать что-то свое.
    Вариант заказать какой-нибудь студии, чтобы она вам написала с нуля, отличается только тем, что под автобус может попасть вся студия.
    Если вы сами не горите энтузиазмом сделать и поддерживать решение под себя - то рассматривайте только готовые решения. Такие, на которых в случае проблем можно написать объявление на полстранички на фрилансе - и найдутся спецы именно по тому, что вы перечислили.

    (а если бы вы горели энтузиазмом - вы бы, скорее всего, не задавали на Тостере такие вопросы...)
    Ответ написан
    Комментировать
  • Полная разница sudo su, sudo -i, sudo -s?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    man sudo
    Ответ написан
    Комментировать
  • Как правильно работать с гит, если у тебя 2 фронтендера?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Git — это система контроля версий, которая помогает работать над проектами параллельно, не мешая друг другу. А то, что вы называете «залить на гит», скорее всего, значит «отправить изменения на GitHub» (или другую платформу). Эти понятия важно различать.

    Ваш подход с очередностью неудобен и неэффективен. Никто не должен ждать, пока другой закончит свою работу. Git позволяет работать параллельно, разделяя задачи на ветки. А если возникают конфликты, они легко решаются в процессе слияния.

    Что касается описаний изменений. Ваш друг прав: нужно объяснять, что сделано, но вручную перечислять каждую строку не требуется. Git сам показывает разницу между версиями, а платформы вроде GitHub делают это наглядно.

    Вам стоит пройти курс по основам Git, чтобы понять, как он работает, зачем нужны ветки и как решать конфликты. Тогда таких споров не будет, и работа пойдёт быстрее.
    Ответ написан
    Комментировать
  • C:\Users\Привет>pip list при запуске почему возникает ошибка?

    @maksam07
    А для чего вы указываете C:\\Users\\Привет> !?
    Ответ написан
    5 комментариев
  • Почему фото с телефона столько весят?

    Воспользуйтесь exiftool, поможет разобраться, в чём причина
    Ответ написан
    1 комментарий
  • Как выбрать максимальное значение во вложенных массивах?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    $array = [
                [
                    "label" => "Bad",
                    "number" => 0.99999895728755
                ],
                [
                    "label" => "Good",
                    "number" => 4.2713489950201E-8
                ]
            ];
    
    $max = array_reduce($array, fn($a, $i) => $i['number'] > $a['number'] ? $i : $a, $array[0]);
    
    var_dump($max);
    Ответ написан
    Комментировать
  • Как работает авторизация по пин-коду?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Вы точно не путаете двухфакторку с пин защитой ?

    Сперва стоит понять нужно ли что-то подобное для вашего сайта.
    Если клиенты вашего сайта вынуждены работать с ним с пк, к которому может подойти посторонний человек.
    Например, вы написали CRM для сотрудников торгового зала в магазине.
    Но даже в таком случае вместо пина можно, по таймауту неактивности (отсутвия запросов к серверу).
    Через JS вывести заглушку. А при попытке F5 (рефреша страницы).
    показывать кастомизированную форму логина (Типа Вы такой-то такойтович) введите свой пароль. или войдите под другим логином.

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

    Кука ставится например на несколько дней. Каждый запрос к бакенду обновляет поле lastAccessTime в таблице сессий. Тогда если прошло больше (условно 15 минут), то бакенд вместо запрошенной страницы отдает форму ввода пин кода. Совпал - обновляем поле. Нет - считаем попытки. Исчерпал удаляем эту сессию - редириктим на обычный логин.
    Ответ написан
    Комментировать