Задать вопрос
  • Хватит ли IDE JetBrains Community для desktop и Spring разработки на Java?

    Это к тебе скорее вопрос, хватит ли тебе коммюнити ;)
    Чисто формально - Community не запрещает разрабатывать приложения на Spring или на десктоп.
    Но в Ultimate много дополнительных удобств для разработки.
    Ответ написан
  • Как блютуз наушники использовать в качестве микрофона?

    Можно реализовать это при помощи voicemeeter или другого похожего софта, который позволяет виртуально перенаправлять звуковые каналы.
    Ответ написан
    Комментировать
  • Сколько запросов в секунду может обрабатывать telegram бот на long_polling?

    Когда стоит задуматься о переходе на webhook?

    В принципе изначально следует задуматься о переходе на вебхук. long polling - это больше про разработку, чем про прод.

    Сколько в секунду - зависит от лимитов самой телеги и того, как часто ты можешь отправлять очередной запрос на получение новых событий.
    Ответ написан
  • Делает ли использование AssetStore разработчика низкосортным?

    Использование готовых ассетов в разумных пределах - это нормально.

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

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

    + Нужно иметь запасной план на случай, если нужно отказаться от готового ассета (например если он не подходит по стилистике к остальной игре, негативно сказывается на производительности, или ещё что)
    Ответ написан
    Комментировать
  • Как исправить ошибку во время сборки Rust build error: failed to run custom build command for `glib-sys v0.8.0`?

    vabka
    @vabka Куратор тега Rust
    Ошибка в целом про то, что скрипт сборки не смог найти у тебя нигде бинарник glib.
    Если вы его установили, но не добавили его путь в переменную PKG_CONFIG_PATH, то стоит попробовать это сделать.

    Вариант раз:
    Может быть, если использовать msys/cygwin/mingw с установленным glib - тогда получится собрать.
    Естественно, тогда придётся установить другой тулчейн через
    rustup toolchain install stable-x86_64-pc-windows-gnu
    rustup default stable-x86_64-pc-windows-gnu


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

    Вариант три:
    Возможно, этот крейт в принципе для винды и не задумывался - тогда остаётся только запуск в WSL2

    PS: Если дадите ссылку на собираемый проект, тогда можно будет подсказать больше.
    Ответ написан
  • Ошибка ввода, как исправить?

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

    Если хочется дополнить свой основной инструментарий, не уходя в какой-то экстрим - TypeScript.

    Хочется чего-то нового - какой-нибудь функциональный язык типа Haskell, F#, ReasonML (если понравится, то тоже можно взять в свой инструментарий, тк для F# есть Fable, а Haskell на фронте существует в виде ReasonML)

    Хочется чего-то совсем новых ощущений - Rust (можно тоже взять в свой инструментарий, тк на нём неплохо можно модули на wasm писать)
    Ответ написан
    Комментировать
  • Что за нотация используется ВК для именования компонентов React?

    Это работа минтфикатора, да.
    В production режиме в реакте ничего не выйдет прочитать
    Ответ написан
    Комментировать
  • Выбрать Rust или C++?

    vabka
    @vabka Куратор тега Rust
    Rust достаточно стабильный и популярный, чтобы начать с ним работать.
    По геймдеву - в принципе все нужные низкоуровневые библиотеки для работы с графикой там уже есть. Да и движки свои понемногу да появляются.
    Пример из тех, что сейчас активно развиваются - bevy, на нём уже можно делать не очень сложные игры, да и просто как образец он тоже интересный: во главе угла стоит модульность и ECS.
    Ответ написан
    Комментировать
  • Как склонять по числу?

    def pluralize(count: int, one: str, two: str, many: str) -> str:
    	significant = count % 100
    	if 4 < significant < 21:
    		return many
    	last = significant % 10
    	if last == 1:
    		return one
    	elif last == 2 or last == 3 or last == 4:
    		return two
    	else:
    		return many
    Ответ написан
    Комментировать
  • Как создать анимацию как здесь https://promexcut.ru/?

    vabka
    @vabka Куратор тега Веб-разработка
    Конкретно тут это реализовано через плоские 2d-картинки, к которым применяется transform.
    Хотя может быть и правда какой-нибудь сторонний софт умеет в такой вид экспортироваться.
    Вот например картинка с машиной:
    car4.png
    Сами изображения были изначально смоделированы в 3d и отрендерены в картинки с тенями и прозрачным фоном.
    Ответ написан
    Комментировать
  • Break не работает. Причины?

    Unity жалуется на комманду break, но я ее вроде поставил правильно. Помогите пожалуйста

    А где цикл?
    Ответ написан
    Комментировать
  • VMware Workstation в чем разница версий? Принцип рапботы?

    62eb2d1876531641231488.png
    До версии 5.5 использовалась программная виртуализация, в рамках которой всё оборудование эмулировалось силами VMware ws - из-за этого виртуальная машина не имела возможности обращаться к реальному оборудованию, например видеокарте, напрямую.

    После 5.5 "слой виртуализации" перешёл в процессор, в Intel-VT/D и AMD-V
    Ответ написан
  • Для чего нужны Map и Set?

    Окей гугл, что такое "структуры данных".

    Нужны они для не очень частых случаев, когда объект (по сути тот же Map со строковым ключом) или массив не удобны, либо слишком неэффективны (тут следует загуглить О-большое).

    Например при помощи Map ты можешь сопоставить одному объекту другой объект, чего ты никак не можешь сделать при помощи обычных объектов.

    А при помощи Set ты можешь получить массив без повторов, и при этом без необходимости при каждой вставке проверять, есть ли такой элемент в массиве, или нет.
    Ответ написан
    Комментировать
  • Как можно подправить код для выполнения задачи?

    При помощи kstr[N] ты обращаешься к N-ному СИМВОЛУ в строке.
    Тебе нужно сопоставить символ с цифрой и реальное число.
    Проще всего это можно сделать, отняв '0'.
    Код получается примерно такой:
    using System;
    int ks = 0;
    for (int i = 0; i < 999999; i++)
    {
        char[] kstr = i.ToString("D6").ToCharArray();
        var leftPartSum = (kstr[0] - '0' + kstr[1] - '0' + kstr[2] - '0');
        var rightPartSum = (kstr[3] - '0' + kstr[4] - '0' + kstr[5] - '0');
        if (leftPartSum == rightPartSum)
        {
            ks++;
            Console.WriteLine($"{i:D6}|{leftPartSum}={rightPartSum}");
        }
    }
    Console.WriteLine($"Total: {ks}");

    Но код можно улучшить:
    Вместо форматирования числа в строку и обращения к символам по индексу - использовать целочисленное деление и взятие остатка.
    PS:
    Вот сравнение по производительности

    Код:
    using BenchmarkDotNet.Running;
    using BenchmarkDotNet.Attributes;
    
    var summary = BenchmarkRunner.Run<DetectLuckyTicket>();
    
    [MemoryDiagnoser]
    public class DetectLuckyTicket
    {
        private readonly int ticketNumber;
        public DetectLuckyTicket()
        {
            ticketNumber = Random.Shared.Next(1, 1000000);
        }
    
        [Benchmark]
        public bool IsLuckyFast()
        {
            var leftPart = ticketNumber / 1000;
            var leftPartSum = (leftPart / 100) + (leftPart / 10 % 10) + (leftPart % 100);
    
            var rightPart = ticketNumber % 1000;
            var rightPartSum = (rightPart / 100) + (rightPart / 10 % 10) + (rightPart % 100);
    
            return leftPartSum == rightPartSum;
        }
    
        [Benchmark]
        public bool IsLuckySlow()
        {
            var kstr = ticketNumber.ToString("D6").ToCharArray();
            var leftPartSum = (kstr[0] - '0' + kstr[1] - '0' + kstr[2] - '0');
            var rightPartSum = (kstr[3] - '0' + kstr[4] - '0' + kstr[5] - '0');
            return leftPartSum == rightPartSum;
        }
    }


    Результат:
    // * Detailed results *
    DetectLuckyTicket.IsLuckyFast: DefaultJob
    Runtime = .NET 7.0.0 (7.0.22.15202), X64 RyuJIT; GC = Concurrent Workstation
    Mean = 6.417 ns, StdErr = 0.039 ns (0.60%), N = 15, StdDev = 0.150 ns
    Min = 6.113 ns, Q1 = 6.318 ns, Median = 6.408 ns, Q3 = 6.505 ns, Max = 6.671 ns
    IQR = 0.188 ns, LowerFence = 6.036 ns, UpperFence = 6.787 ns
    ConfidenceInterval = [6.257 ns; 6.577 ns] (CI 99.9%), Margin = 0.160 ns (2.49% of Mean)
    Skewness = -0.06, Kurtosis = 2.24, MValue = 2
    -------------------- Histogram --------------------
    [6.034 ns ; 6.193 ns) | @
    [6.193 ns ; 6.427 ns) | @@@@@@@@
    [6.427 ns ; 6.606 ns) | @@@@
    [6.606 ns ; 6.751 ns) | @@
    ---------------------------------------------------
    
    DetectLuckyTicket.IsLuckySlow: DefaultJob
    Runtime = .NET 7.0.0 (7.0.22.15202), X64 RyuJIT; GC = Concurrent Workstation
    Mean = 32.280 ns, StdErr = 0.250 ns (0.77%), N = 100, StdDev = 2.496 ns
    Min = 28.418 ns, Q1 = 30.360 ns, Median = 31.542 ns, Q3 = 33.921 ns, Max = 37.623 ns
    IQR = 3.561 ns, LowerFence = 25.018 ns, UpperFence = 39.264 ns
    ConfidenceInterval = [31.434 ns; 33.127 ns] (CI 99.9%), Margin = 0.847 ns (2.62% of Mean)
    Skewness = 0.63, Kurtosis = 2.09, MValue = 2.91
    -------------------- Histogram --------------------
    [28.207 ns ; 29.529 ns) | @@@@@@@
    [29.529 ns ; 30.941 ns) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    [30.941 ns ; 32.596 ns) | @@@@@@@@@@@@@@@@@@@@@@@
    [32.596 ns ; 33.910 ns) | @@@@@@@@@@
    [33.910 ns ; 35.321 ns) | @@@
    [35.321 ns ; 36.733 ns) | @@@@@@@@@@@@@@@@@@@
    [36.733 ns ; 38.329 ns) | @@@
    ---------------------------------------------------
    
    // * Summary *
    
    BenchmarkDotNet=v0.13.1, OS=Windows 10.0.25131
    AMD Ryzen 5 4600H with Radeon Graphics, 1 CPU, 12 logical and 6 physical cores
    .NET SDK=7.0.100-preview.2.22153.17
      [Host]     : .NET 7.0.0 (7.0.22.15202), X64 RyuJIT
      DefaultJob : .NET 7.0.0 (7.0.22.15202), X64 RyuJIT
    |      Method |      Mean |     Error |    StdDev |    Median |  Gen 0 | Allocated |
    |------------ |----------:|----------:|----------:|----------:|-------:|----------:|
    | IsLuckyFast |  6.417 ns | 0.1599 ns | 0.1496 ns |  6.408 ns |      - |         - |
    | IsLuckySlow | 32.280 ns | 0.8467 ns | 2.4964 ns | 31.542 ns | 0.0382 |      80 B |
    
    // * Warnings *
    MultimodalDistribution
      DetectLuckyTicket.IsLuckySlow: Default -> It seems that the distribution can have several modes (mValue = 2.91)
    
    // * Legends *
      Mean      : Arithmetic mean of all measurements
      Error     : Half of 99.9% confidence interval
      StdDev    : Standard deviation of all measurements
      Median    : Value separating the higher half of all measurements (50th percentile)
      Gen 0     : GC Generation 0 collects per 1000 operations
      Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
      1 ns      : 1 Nanosecond (0.000000001 sec)


    UPD: А не работает у вас, скорее всего, из-за того что:
    1. Вы перебираете не все варианты, а только до 999998 включительно.
    2. У вас WriteLine отрабатывает на все числа, а не только на счастливые, тк перепутаны фигурные скобки.
    Ответ написан
    4 комментария
  • Как рассчитать норму количества багов на проект?

    Никак не посчитать, и тем более никак не получится применять (по причине того что выполнение численной метрики со временем будет превращаться в самоцель)
    И тем более не получится это посчитать из бюджета и сроков.

    1. Баги гарантированно будут в любом достаточно сложном продукте.
    2. Если не работает какой-то типичный сценарий (например если нельзя добавить в корзину товар в магазине) - это даже не баг, а просто невыполненная (некачественно выполненная) работа.
    3. В любом достаточно долго работающем продукте, которым пользуется много людей, будет исчезающе малое количество критичных багов.

    Чтобы минимизировать количество багов - пишите понятный код, думайте о том, как код будет работать (что может в теории придти в параметрах и вообще пойти не так), закладывайте время на тестирование.
    Ответ написан
    Комментировать
  • Кто знает сколько времени занимает подтверждение личности на Linkedin?


    И банит ли Linkedin Россиян (в связи с нынешней ситуацией)?

    Вроде не банит. По крайней мере те аккаунты, которые до 24.02 созданы
    Ответ написан
    2 комментария
  • Почему int при делении int на int с остатком?

    Да, это нормально.
    Ответ написан
    Комментировать
  • Как определить что запрос к api пришел с клиента?

    Никак.
    Ответ написан
    Комментировать