• Как поменять количество пунктов при увеличении громкости с клавиатуры?

    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
    Нет, не обязательно.
    Зависит от контекста задачи. Я думаю, что и тебе в этом скрытого смысла нету. Делай как удобно.
    Ответ написан
    Комментировать
  • Как сделать почасовой аккаунт?

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

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Комментировать
  • Ошибка в транзакций mysql. как решить?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Для передачи из одной записи в другую никакие транзакции нафиг не нужны.

    UPDATE tablename
    SET balance = balance + CASE WHEN userid = @sender
                                 THEN -@amount
                                 ELSE @amount
                                 END
    WHERE userid IN (@sender, @receiver);
    Ответ написан
    1 комментарий
  • Как создать массив чисел, которые увеличиваются с каждой итерацией?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const arithmeticProgression = ({ length, a1 = 0, d = 1 }) =>
      Array.from(
        { length },
        (n, i) => a1 + i * d
      );
    
    
    const arr = arithmeticProgression({
      length: 10,
      a1: 6,
      d: 3,
    });

    или

    function* arithmeticProgression(a1, d, length) {
      for (let i = 0; i < length; i++) {
        yield a1 + i * d;
      }
    }
    
    
    for (const n of arithmeticProgression(100, 10, 5)) {
      console.log(n);
    }
    
    console.log(Array.from(arithmeticProgression(10, -7, 10)));
    Ответ написан
    Комментировать
  • PARTITION для готовой базы данных?

    sarapinit
    @sarapinit
    Точу водой камень
    Хочу сделать парционирование по дате, но мне постоянно выдает ошибки по типу
    A PRIMARY KEY must include all columns in the table's partitioning function


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

    @Vitsliputsli
    Многие фронтендеры относятся к беку, как к некой обертке для работы с базой данной. Когда такие становится лидом команды и начинают диктовать свои требования беку, начинается ад, проект даже с простым беком превращается в нечто монструозное, разваливающиеся на ходу. Но, так как снаружи бек не виден, руководство считает, что дело в отдельных тупых бек-разработчиках, которые артачатся, не хотят работать и увольняются.
    Судя по вашим фразам, вы скорее всего один из них. Так как уверены, что приложение - это то, что на фронте, что api - это хрень, которая завязана на отображении информации на фронте, что разработчики бека не нужны при разработке архитектуры и вообще пофиг, что они там делают, главное чтобы давали то, что хочет фронт.
    Но, раз вопрос задан, значит сомнения вас посещают. Поэтому: приложение это не только фронт, а зачастую фронт это не самая сложная его часть. Бек - это не обертка над базой данных, и если вы поменяете значение в базе, это не значит, что к примеру, в потоковом вещании сменится кодек (вот, кому-то может и смешно, а мне в такой ситуации ни фига не было весело). С помощью API получают данные, поэтому не важно, что там у вас напроектировали дизайнеры, или как эти данные выводит фронт, API должен быть универсальным и не зависить от того как вы отображаете данные, поэтому, к примеру, бек может вам дать для получения данных несколько универсальных запросов, а не один специальный. В общем, все гораздо сложнее, и ваш вопрос как состыковать фронт и бек перерастает в вопрос как формировать архитектуру проекта, и как управлять командой.
    Ответ написан
    17 комментариев
  • Блекджек на js?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    1. Массивы индексируются с 0 а не с 1
    randomInteger(1,6)


    2. Проверка на проигрыш логически должна быть раньше чем запрос новой карты

    3. Рекурсия имеет ограниченную вложенность, хотя если исправить ошибку №2, то Вы в нее не упретесь, но тем не менее не зачем использовать рекурсию там, где легко можно обойтись циклом:
    const cards = [6, 7, 8, 9, 10, 11];
    
    function randomArrayElement(array) {
      return array[Math.floor(Math.random() * array.length)];
    }
    
    function blackjack() {
      let sum = 0;
      while (sum < 22) {
        sum += randomArrayElement(cards);
        alert(`Ваше число на данный момент ${sum}`);
        if (!confirm('Возьмете еще?')) {
          alert(`Вы спасовали ваше число ${sum}`);
          return;
        }
      }
      alert(`Вы проиграли ваше число ${sum}`);
    }
    
    blackjack();
    Ответ написан
    Комментировать
  • Где ошибка в решении задачи?

    @galaxy
    Вы только в одну сторону проверяете: что число i равно сумме делителей j. У дружественных чисел это свойство взаимно.
    Ответ написан
    3 комментария
  • Очень быстро лить в БД 1 млн. строк в секунду и настолько же быстро читать их. Как лучше осуществить?

    ushliy
    @ushliy
    nix-админ
    ИМХО, про Clickhouse незаслуженно забыли, если нужно хранить и какую-то аналитику использовать. А ведь он реально не тормозит, скорость сравнима с простым сбросом сырых логов на диск. Горячие данные на SSD или вовсе в памяти, во временных таблицах можно держать. Главное, батчами вставлять данные, но мелкие вставки ни одна база по моему не любит. Если для гарантированной доставки кафка или кролик будет юзаться - они нативно поддерживаются, но следует учитывать, что дополнительный слой == дополнительные просадки по времени.

    если нужно хранить условно за час, то и вовсе стоит смотреть на Aerospike, да и вообще, если этот же час нужно держать в близком доступе, он будет полезен. его незаслуженно мало упоминают в русскоязычном сообществе, а по факту он на голову превосходит всякие редисы, даже бесплатная версия. А также он умеет в постоянное хранение, комбинированное и даже с диском, как с блочным устройством напрямую работать, без ФС

    Инфлюкс - он и вовсе про другое, это временные ряды, метрики. Как и Prometheus и Victoriametrics

    P.S.: не ради срача и троллинга, но все же староверов, которые в файловой системе хранить все предлагают, мне хочется спросить: Господа хорошие, а вы свои проекты наверно до сих пор храните в виде Новая_Папка, Новая_Папка1, Новая_Папка2 и т.д.? Нужно все таки смотреть на алгоритмы записи, работы с железом и прочее, они меняются и развиваются. Ваш, да и мой тоже 2007 не вернуть
    Ответ написан
    Комментировать
  • Как найти сумму значений в массиве объектов?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    arr.reduce((acc, c) => acc + c.price, 0) // 8709
    Ответ написан
    1 комментарий
  • Обернуть в div vanilla?

    0xD34F
    @0xD34F Куратор тега JavaScript
    document.querySelectorAll('li.www').forEach(n => {
      const wrapper = document.createElement('div');
      wrapper.classList.add('red');
      wrapper.append(...n.childNodes);
      n.append(wrapper);
    });
    Ответ написан
    Комментировать
  • Как выборочно десериализовать JSON?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Не вижу никакого смысла парсить частично, но если так сильно хочется:
    JsonDocument
    Utf8JsonReader
    А вот так ими пользоваться:
    https://docs.microsoft.com/en-us/dotnet/standard/s...
    На dynamic даже не смотри, его поддержку из System.Text.Json вырезали
    Ответ написан
    1 комментарий
  • Как исправить ошибки?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    почему slick не является функцией?

    Потому что ('.products__slider') - это просто строка, а у строки нет метода .slick
    Ответ написан
    Комментировать
  • Метод Array.sort() - что такое a и b?

    vabka
    @vabka
    Токсичный шарпист
    По тому что это коллбэк для сравнения пар элементов.
    Не нужно завязываться на порядок их появления.
    Нужно вернуть:
    • -1 если a<b
    • +1 если a>b
    • 0 если a==b
    Ответ написан
    Комментировать
  • Как вызвать цепочку ключей в объекте, как функции с возвратом результата в предыдущий ключ?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const Format = (function createFormat(tags) {
      return new Proxy(
        (...content) => tags.reduceRight((acc, n) => `<${n}>${acc}</${n}>`, content.join('')),
        { get: (target, key) => createFormat([ ...tags, key ]) }
      );
    })([]);
    Ответ написан
    Комментировать