• Почему не сетится значение из БД в структуру в поле uint?

    @calculator212
    Гугл с ошибкой не помог :(

    sql: Scan error on column index 1, name "i_size": converting driver. Value type int64 ("-10") to a uint8: invalid syntax
    Можно попробовать еще прочитать ошибку или засунуть ее в гугл переводчик.
    Проблема тут не с sqlx, а с тем, что ты хочешь запихнуть в поле uint отрицательное значение, на что база тебе выдает ошибку(так и должно быть). Если нужны отрицательные значения в базе то используй просто int
    Ответ написан
    Комментировать
  • Ошибка Pinia, в чем проблема?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    useStore() как и любой хук(useX) надо использовать внутри setup секции компонента.

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

    В го автоматическое управление памятью, поэтому утечек памяти в классическом смысле быть не может (если не использовать пакет unsafe). Но могут быть утечки горутин (когда вы запускаете горутины, но они не завершаются, а блокируются на каком-то io или мьютексе/канале/...)

    Такое легко ищется с помощью pprof. Добавьте в свою программу веб-интерфейс pprof-а

    Для этого запустите любой http-сервер из стандартной библиотеки и добавьте импорт import _ "net/http/pprof"

    Например так:
    import (
      "net/http"
      _ "net/http/pprof"
    )
    
    ...
    
    func main() {
      ...
      http.ListenAndServe("localhost:8080", nil)
    }


    После этого при запуске программы у вас должен открываться веб-интерфейс pprof-а по адресу 127.0.0.1:8080/debug/pprof

    Дождитесь, когда накопятся утечки и откройте страницу 127.0.0.1:8080/debug/pprof/goroutine?debug=1

    На ней будет список всех работающих горутин и их количество. Найдите группу с самым большим количеством, она и утекает. По стеку посмотрите, где горутина блокируется, тогда поймете, почему они накапливаются.
    Ответ написан
    3 комментария
  • Какой симулятор электрических схем выбрать?

    @fbi_suck
    Эникей
    Простенький с красивой визуализацией, но не особо удобный и функциональный Every Circuit
    Ответ написан
    4 комментария
  • Сервис для входа на сайт через смс код?

    @Kostik_1993
    Web Developer
    Firebase. Есть сервис аутентификации по СМС коду. 10 тысяч входов без тарификации в месяц. Прикрутить опытному разработчику не сложно. Одно но, почему-то рандомно не прилетают смс на некоторые номера
    Ответ написан
    2 комментария
  • Как написать программу, которая будет считать количество поворотов энкодера от мыши на ардуино?

    vabka
    @vabka
    Токсичный шарпист
    https://alexgyver.ru/encoder/
    Но тебе нужно выяснить, как именно твой энкодер подключается.
    "энкодер от мыши" может подключаться по разному, в зависимости от модели мыши. Как именно - ты можешь узнать опытным путём или загуглив даташит по маркировке энкодера, если эта маркировка есть.

    Если хочешь велосипедить - посмотри как обрабатываются прерывания.
    https://habr.com/ru/post/340448/
    Ответ написан
    Комментировать
  • Выучил синтаксис языка. как использовать его на практике?

    Захотеть сделать что-нибудь конкретное и начать делать это.
    Ответ написан
    Комментировать
  • В чем смысл использовать замыкания, вместо обычной передачи по параметру?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А теперь попробуйте здесь передать $ref в параметрах:
    function sortByDistance(array &$arr, int $ref): void
    {
        usort(
            $arr,
            function (int $a, int $b) use ($ref): int {
                return abs($a - $ref) - abs($b - $ref);
            }
        );
    }
    Ответ написан
    2 комментария
  • Как вывести текст в консоль браузера через PHP?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    function consoleLogFromPhp() {
      fetch("scripts/consoleLogText.php")
        .then(response => response.text())
        .then(response => console.log(response));
    }


    <?php
    echo 'Hello World';
    Ответ написан
    Комментировать
  • Почему в Yii2-виджетах нельзя вызывать обычные PHP-функции(включая preg_replace_all)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В PHP нет стандартной функции preg_replace_all.
    Четвёртый параметр preg_replace указывает, сколько замен произвести. По умолчанию в нём -1, то есть заменить всу вхождения.
    Ответ написан
    1 комментарий
  • Как сохранять данные игры?

    Создаешь структура/класс с атрибутом Serializable, где у тебя будут храниться нужные данные, экземпляр объекта переводишь в json к примеру через JsonUtility.ToJson и сохраняешь куда надо, через PlayerPrefs или в фаил, при выгрузке используешь JsonUtility.FromJson
    Ответ написан
    1 комментарий
  • Как прокинуть WSL2 наружу?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    В Hyper-V Manager - Virtual Switch Manager для virtual switch WSL - поставьте External - тогда WSL должна будет получить внешний ip адрес от того-же DHCP сервера, что и сетевая карта в Windows.
    Если в WSL стоит получение адреса не через DHCP, то
    sudo ip addr flush dev eth0
    sudo dhclient eth0
    Если нужно руками настроить, то
    sudo ip addr add 192.168.0.116/24 dev eth0

    Для тех, кто ленится даже гуглить - есть даже готовый софт https://github.com/CzBiX/WSLHostPatcher
    Ответ написан
    1 комментарий
  • Работа с деньгами в php, лишние копейка в ту или иную сторону при округлении?

    Adamos
    @Adamos
    Я вам страшное скажу: в операциях с деньгами не всегда важна математическая точность.
    Но очень важно, чтобы результат был в точности такой, как в бухгалтерии.
    А там далеко не всегда царит формальная математика, особенно когда числа, которые потом сводятся к одному результату, по-разному налогооблагаются.
    Задача программиста здесь - не в том, чтобы компьютер считал правильно, а чтобы результат сошелся до копейки с 1С-кой, например.
    Ответ написан
    Комментировать
  • Приведение даты к формату - на бэкенде или фронтэнде?

    Kozack
    @Kozack Куратор тега Vue.js
    Thinking about a11y
    С бэка отправляется дата по UTC.
    На фронте форматируется и выводится уже в локальном часовом поясе.
    Для форматирования не нужны сторонние библиотеки (Зависит от браузеров которые вам нужно поддерживать)
    https://developer.mozilla.org/ru/docs/Web/JavaScri...
    Ответ написан
    Комментировать
  • Как быть, если нужно работать с cms на фреймворке, который я не знаю?

    @Kostik_1993
    Web Developer
    Увольняйтесь! Нет работы - нет проблем.
    Ответ написан
    Комментировать
  • Как сделать сервис в WSL2 доступным в локальной сети?

    @Aelliari
    По-моему у wsl2 не всё так просто с доступом к локальной сети, попробуй настроить переадресацию внешнего порта на локальный порт машины. Что то вроде этого
    netsh interface portproxy add v4tov4 listenport=<локальный порт на котором ожидается соединение> listenaddress=<локальный адрес на котором ожидается соединение, или 0.0.0.0 для всех адресов> connectport=<порт назначения, на котором болтается твой сервер> connectaddress=<адрес назначения, на котором болтается твой сервер>

    Учти что адрес назначения не должен быть 127.0.0.1, через ip a должно быть видно какой адрес был присвоен wsl
    Ещё вариант попробовать режим моста между сетевым адаптером и виртуальным коммутатором wsl2, если сеть через wifi - никогда так не делай ибо будет боль и страдание, но если ethernet то почему бы и нет
    Ответ написан
    1 комментарий
  • Как безопасно отправлять пользовательский текст в базу POST запросом?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Перед тем как что-то куда-то добавлять надо сначала разобраться что ты делаешь.
    В частности понять что браузер, веб-сервер, и база данных - это разные вещи, и для каждой нужна своя обработка данных.

    В-первых, POST запросом ничего добавить в базу нельзя.
    База вообще ничего не знает про пост запросы. POST запросом можно отправить текст только в РНР.
    А РНР уже будет добавлять в БД.

    Про HTML база данных тоже ничего не знает. Поэтому "htmlspecialchars" к базе данных не имеет никакого отношения. И делать это для добавления в БД не нужно. Это функцию надо применять при выводе данных в браузер, а не при сохранении в базу данных.

    Вот теперь, когда мы разобрались что у нас где, можно наконец ответить на твой вопрос

    Для безопасного добавления данных в БД из РНР, надо отправлять их отдельно от самого запроса. Это непреложное правило, которое надо соблюдать всегда.
    И не важно - пользовательский у тебя текст, или какой-то другой, POST у тебя запрос, или вообще никакого запроса не было - все эти вещи к работе с БД из РНР не имеют никакого отношения. Важно только то, что данные всегда отправляются в БД отдельно от запроса.
    Для этого надо
    • Заменить все переменные в запросе на специальные маркеры, которые называются плейсхолдеры или параметры, а по сути - просто знаки вопроса
    • Подготовить запрос к исполнению с помощью функции prepare(). Эта функция принимает строку запроса и возвращает экземпляр специального класса stmt, с которым в дальнейшем и производятся все манипуляции
    • Привязать переменные к запросу.
    • Выполнить подготовленный ранее запрос с помощью с помощью execute()

    В mysqli это будет так
    $sql = "INSERT INTO  table (name, text, message, date, rating) VALUES (?,?,?,?)";
    $stmt = $link->prepare($sql);
    $stmt->bind_param("sssss", $name, $text, $message, $date);
    $stmt->execute();

    bind_param() принимает в качестве параметров все переменные, которые должны попасть в запрос, в том же самом порядке, в котором стоят плейсхолдеры в запросе. Но кроме того, сначала в этой функции должны быть указаны типы для всех переменных, в виде строки, где тип переменной обозначается одной буквой. То есть букв в этой строке должно быть ровно столько, сколько дальше будет переменных. К счастью, можно особо не париться с типами и для всех переменных указывать тип "s".

    Но по-хорошему для работы с БД в РНР лучше использовать PDO, Тем более что там колупаться с bind_param не нужно, а можно сразу отправить все данные в execute
    $sql = "INSERT INTO  table (name, text, message, date, rating) VALUES (?,?,?,?)";
    $stmt = $link->prepare($sql);
    $stmt->execute([$name, $text, $message, $date]);

    А дураков, которые сами не знают, как текст в базу сохранить, слушать не надо.
    Ответ написан
    Комментировать
  • Нормально ли сделал тестовое задание на PHP (числа Фибоначчи)?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Я свои пять копеек вставлю не с точки зрения алгоритма, а с точки зрения чистокододрочера:

    Это что вообще за дичь? Вы на джуниор битрикс фронтендера устраиваетесь? Вы вообще про ООП слышали? Или что, если для тестового, то можно и по процедурить? Зачем тут вообще html? Это было задание? Ваш код нарушает все принципы современной разработки. Я бы кандидату с таким кодом даже не перезвонил.
    Зачем тут комментарии? Вы думаете человек, который будет ревьюить код не поймет что он делает? Или вы обезьяне этот код показываете так что нужно объяснить такую строку
    // Инициализируем массив с первыми тремя числами Фибоначчи
    $fibonacciNumbers = array(0, 1, 1);

    И вы что в нулевых остались? Почему массив создается уродливым array(), а не []?

    Ну и да, алгоритм очень плохой. Можно написать короче и симпатичнее.

    Моя оценка кода для джуниор php разработчика - 3/10.
    Ответ написан
    4 комментария
  • Как сделать инструкцию сайта?

    freislot
    @freislot
    Frontend-разработчик
    reactour думаю что вам нужно что-то подобное

    эта штука гуглится так "название фремворка + tour или guide"
    Ответ написан
    2 комментария