• Как запитать радиоприёмник от повербанка?

    @VT100
    Embedded hardware & software.
    Можно. 5 В с выхода банка соответствуют разряду элементов питания приёмника до 1,25 В на каждый. А работоспособность должна сохраняться до 4 В. Вероятнее всего - да, чёрный минус и красный плюс.
    Но не нужно, может "забиться" шумом от банка. Лучше - от батареек.
    Ответ написан
    Комментировать
  • Как исправить ошибку Cannot set properties of null (setting 'className')?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Для начала:
    var textel = document.getElementById(id)
    if (!textel) return console.error("HTML id not found:", id);

    А дальше методом исключения пробуй и щупай в консоли.
    Ответ написан
    Комментировать
  • В чем проблема: Fatal error: Uncaught Error: Call to undefined function mysqli_connect() PHP8?

    Ukrainskiy
    @Ukrainskiy
    Посмотрите вывод phpinfo(), вероятно модуль все-таки не установлен.
    Ответ написан
    5 комментариев
  • Кто подскажет менеджер задач?

    @pfg21
    ex-турист
    process explorer by mark russinovich ??
    Ответ написан
    Комментировать
  • Почему селектор в jquery работает имеено так?

    Lynn
    @Lynn
    nginx, js, css
    Потому что .get(0) вернёт DOM-ноду, а не jQuery-объект. https://api.jquery.com/get/
    Используйте, например, .eq(0) https://api.jquery.com/eq/
    Ответ написан
    Комментировать
  • Как сделать глобальный сервер для esp8266?

    2ord
    @2ord
    продвинутый чайник
    Нужно начать с того, что каждое устройство должно иметь свой сетевой адрес (IPv4, IPv6) и тогда оно может быть доступно в пределах некоторой подсети. Обычно веб-сайты доступны по имени домена.
    В зависимости от целей можно использовать доступ по HTTP (REST API на PHP, например), MQTT и прочим.
    Ответ написан
    Комментировать
  • Как повторно отправить curl при неудаче?

    vabka
    @vabka
    Токсичный шарпист
    Попробуй вместо curl использовать Guzzle - проще будет. (можно даже автоматически ретраи настроить https://github.com/caseyamcl/guzzle_retry_middleware)
    А вообще просто в цикле проверяй статус и отправляй повторно (ну или рекурсией, как ты написал)
    Ответ написан
    Комментировать
  • Не работает цикл?

    Так наоборот же - цикл отлично работает, да так отлично что никогда сам не завершается.

    В вашем коде нет ничего, что способствовало бы окончанию цикла.
    for
    Ответ написан
    Комментировать
  • Почему код не работает?

    @Rubix
    Люблю кодить, разрабатываю проекты в разных сферах
    У = (стрелочных) => { функций.нет(this) }
    Используй обычные анонимные function
    $('#content').click(function () {
        $(this).hide();
    })
    Ответ написан
    Комментировать
  • Какая разница между генераторами и массивами?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ну собственно именно то, что написано.
    "Генератор позволяет" не значит "генератор гарантированно сэкономит память, ужав миллион строк в одну". Это значит, что если есть возможность не создавать массив в памяти перед тем как перебирать его значения, то можно написать функцию-генератор, результат которой будет выглядеть как массив, но при этом будет выдавать по одному значению. Это возможно в таких случаях, как генерация значений на лету или чтение данных из внешнего источника.

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

    То есть надо чётко понимать, что "экономит память" генератор только по сравнению с созданием полноценного массива.

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

    @alexalexes
    https://www.php.net/manual/ru/language.generators....
    foreach (xrange(1, 9, 2) as $number) {
        echo "$number ";
    }

    Если рассказать простым языком магии, то при таком вызове внутри foreach, функция xrange определяет, что ее результат не собираются записывать в отдельную переменную, а собираются перебирать по элементам.
    Поэтому, когда выполнение интерпретатора php доходит до команды as, функция xrange выполняется до первого попавшегося yield внутри этой функции и возвращает это значение. При этом, контекст функции запоминается, а также внутренний цикл:
    for ($i = $start; $i <= $limit; $i += $step) {
                yield $i;
    }

    засыпает до того момента, пока во внешнем foreach выполнение не пройдет команду as еще раз, тогда произойдет размораживание yield и извлечение следующего значения, чтобы использовать его только как один элемент $number.
    За счет того, что as меняет режим работы вызова функции xrange, получается не извлекать все подряд.
    Ответ написан
    Комментировать
  • На каком я сейчас уровне?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    1. Не умеешь пользоваться гитом, тк загрузил файлы через Upload
    2. Код невозможно проверить, тк ты закинул только cs файлы, но не приложил не менее важный csproj - не разбираешься, как собирается проект.
    3. Про свич кейс тебе уже сказали в комменте.
    Про остальное мало что можно сказать - код самый обычный, на три с минусом, не очень хороший, но и не слишком ужасный.
    С архитектурой плохо, тк детали реализации смешаны с бизнес-правилами.
    По алгоритмам нельзя оценить, тк никаких сложных алгоритмов в твоём проекте нет.

    Уровень, имхо: стажёр/младший разработчик(обязательно под менторством и наблюдением более опытного)
    Ответ написан
    5 комментариев
  • Не работает $_SERVER['HTTP_X_REAL_IP']; $_SERVER['HTTP_X_REAL_IP']; $_SERVER['REMOTE_ADDR'];?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Всем горемыкам посвящается: https://habr.com/ru/post/158417/

    Поскольку там очень много непонятных букв, я напишу здесь короче.
    Добавляя в проверку IP адреса всякую требуху типа X-РИЛИ-АЙПИ-МАМОМ-КЛЯНУС! вы как раз и открываете доступ любому атакующему, начиная с уровня неленивого пионера.

    Проверять надо всегда только REMOTE_ADDR

    Если сайт стоит стоит за проксей, то надо настучать в репу админу этой прокси, чтобы она проксировала и IP адрес тоже, это не так сложно.
    Ответ написан
    8 комментариев
  • Что лучше: map, Object или Array для хранения данных?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    {
     1:  'Вася',
     2:  'Петя',
     3:  'Маша',
    }
    Ответ написан
    Комментировать
  • Как получить значение "balance" из базы данных одного пользователя БЕЗ ЦИКЛА?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $link = mysqli_connect($host, $user, $pass, $db_name);
    $link->set_charset("utf8mb4");
    
    $sql = "SELECT * FROM users WHERE id=?";
    $stmt = $conn->prepare($sql); 
    $stmt->bind_param("s", $_SESSION['user']);
    $stmt->execute();
    $result = $stmt->get_result(); 
    $user = $result->fetch_assoc(); 
    $balance = $user['balance']


    Только класть не логин а id юзера, и не в куки ,а в сессию
    Ответ написан
    Комментировать
  • Как поменять количество пунктов при увеличении громкости с клавиатуры?

    DamianLewis
    @DamianLewis
    Скачиваете и устанавливаете(есть Portable) такую замечательную программу как Volume2.
    Дальше:
    1. Настраиваете горячие клавиши для увеличения/уменьшения громкости, красивый экранный индикатор по желанию.
    2. В настройках ставите "Скорость изменения громкости" на 100 шагов
    Скрин
    61ace3ae7f6df545729662.png

    Теперь звук будет увеличивается только на 1 пункт при каждом увеличении/уменьшении.
    Я ставлю 25 шагов. Мне так удобно.

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

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

    freeExec
    @freeExec
    Участник OpenStreetMap
    Не проверяется, разве в ваших книжках и видео не объясняется. И почему всё что рекомендуется обязательно должно быть про производительность.
    Ответ написан
    1 комментарий
  • Как запустить 5000 потоков параллельно с GET запросами?

    Vamp
    @Vamp
    Распараллелить выполнение в самом воркере с помощью ReactPHP или лучше GuzzleAsync. В таком случае не придется держать 5000 воркеров именно

    Вариант с GuzzleAsync - самый лучший. Под капотом он использует возможности curl_multi_exec, которые позволяют асинхронно отправлять несколько запросов, не плодя при этом лишние процессы. Не уверен конечно, что осилит 5000 параллельных запросов, но даже если и не сможет, то можно разделить 5000 между несколькими воркерами.

    2. "Правильно ли" это вообще делать с помощью PHP или это все таки задача уже других языков которые умеют в параллельное выполнение, корутины? Go, NodeJs?

    У вас нагрузка в основном IO bound, так что не имет значения какой язык выбрать. Главное чтобы он поддерживал IO multiplexing (который поддерживается в PHP через вышеупомянутый curl_multi_exec).

    3. Может уже есть готовые решения в виде библиотек на PHP? Искал, но не нашел

    Guzzle
    Ответ написан
    3 комментария
  • Стоит ли json'ить все и всегда при получении/отправки запроса?

    @Kirill-Gorelov
    С ума с IT
    Нет, не обязательно.
    Зависит от контекста задачи. Я думаю, что и тебе в этом скрытого смысла нету. Делай как удобно.
    Ответ написан
    Комментировать