• В какой структуре лучше хранить массивы синонимов номенклатур?

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

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

    "запустить через браузер" - это вопрос наличия обработчика mailto://
    А описанное уметь должны все клиенты. Посмотри в сторону Evolution и Thunderbird и возьми что больше нравится.
    Ответ написан
    Комментировать
  • Как тестировать в авторежиме визуальные дефекты?

    Это называется скриншотные тесты. Собственно также в селениуме делаете прогон, а в ключевых точках делаете скриншоты.
    Потом сравниваете с эталоном / предыдущим прогоном.
    Готовые инструменты для этого уже есть
    Ответ написан
    Комментировать
  • Нормально ли использовать var вместо явной типизации в C#?

    1. Да, это нормально. Сильно легче код писать таким образом. (а иногда и читать, тк меньше слов дублируется. Например совершенно никакой ценности не несёт User user = userRepository.GetUserById(...) или многослойный женерик)

    2.

    Я ужасно ненавижу такой подход, потому что ты не можешь сразу определить тип, который возвращается.

    А ты давай нормальные названия методам, чтобы возвращаемое значение было очевидным, набирайся опыта, ищи закономерности.

    Ты же не задаёшься вопросом, какой тип возвращает какой-нибудь GetUser, ToString, TryParse, FirstOrDefault?

    Если тебе сложно понять смысл кода без типов - значит кто-то плохие имена дал переменным.


    Данный код достаточно сложно разобрать человеку, который не писал это всё с нуля, а был присоединён через 4-5 лет ведения проекта.

    Очень смелое заявление, которое мало чем подкреплено.


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

    1. var далеко не только для анонимных типов полезен, хотя с анонимными типами без var работать было бы очень сложно.

    2. Тренд говорит об обратном - автоматический вывод типов сейчас есть практически во всех статически-типизированных языках в том или ином виде.

    Ну и помни ещё, что ты же не в блокноте код пишешь - у тебя есть всякие inlay hints, которые могут рядом с именем переменной показать её тип, а наведя мышку на слово - ты узнаёшь о нём все (имя переменной, сигнатуру метода, документацию, итд)
    Ответ написан
    7 комментариев
  • Как поправить код, чтобы улучшить расхождения времени его выполнения?

    vabka
    @vabka Куратор тега Rust
    Не скажу ничего про алгоритм и корректность замеров, но время t01 и t02 ты точно измеряешь неправильно

    subsec_nanos
    Returns the fractional part of this Duration, in nanoseconds.

    This method does not return the length of the duration when represented by nanoseconds. The returned number always represents a fractional portion of a second (i.e., it is less than one billion).
    https://doc.rust-lang.org/std/time/struct.Duration...

    У структуры Duration есть операторы для сравнения, так что тебе не обязательно знать конкретное число, пока ты не выводишь его в консоль

    let mut t01 = Duration::MIN;
    let mut t02 = Duration::MAX;
    if duration> t01 {
          t01 = duration; // здесь
       }
       if duration< t02 {
          t02 = duration; // и здесь
       }


    UPD:


    Комп 6 ядер 12 потоков ничем не нагружен. Если не накосячил с кодом, а так
    захватывается периодически ресурс потоков компа, то как такое решить
    и получать расхождение в пределах 20%?

    1. Такой разброс, как у тебя показан - это норма. Нужно смотреть не на минимум/максимум, а на распределение (в комментах скинул график - там тоже минимум и максимум сильно различаются, но прогонов с таким временем мало)
    2. Я не увидел в вопросе описания того, как происходит запуск. Хотябы в --release компилировал?
    3. У тебя данные вполне статичные, так что компилятор при желании мог очень много наоптимизировать, что даст тебе некорректные результаты, но на распределение это влиять не должно.
    Ответ написан
    5 комментариев
  • Для чего нужна отмена задач, кроме таймаутов и каналов?

    В дополнение к предыдущему - случай с graceful shutdown, когда у тебя есть какой-то долгий процесс и в случае его завершения в середине нужно какие-то особые телодвижения совершить (сохранить результат куда нибудь в файлы, дождаться закрытия соединения итд.
    Ответ написан
    Комментировать
  • Как преобразовать из char массива в string массив в си шарп?

    Вообще это очень похоже на https://ru.wikipedia.org/wiki/Проблема_XY

    Так что очень рекомендую посмотреть, из-за чего вообще возникает

    мне это надо так как в цикле, char переводится в цифры(кодировку)


    Впрочем вот решение

    Уверен, что не хочешь исправить первопричину?

    Точно уверен?

    Точно-точно уверен?

    Точно пре-точно?

    Может всё-таки прочитаешь про https://ru.wikipedia.org/wiki/Проблема_XY?
    Если точно прочитал

    Просто в цикле вызывай char.ToString()
    Полный код

    var stringsArray = Console.ReadLine().Select(x=>x.ToString()).ToArray();








    PS: увы, при открытии внешнего спойлера - открываются все вложенные
    Ответ написан
    Комментировать
  • Есть ли реальная разница между антенами для 2,4Ггц диапазона и 5Ггц?

    Антенны там внутри разные, но в природе существуют и двухдиапазонные антенны
    Ответ написан
    Комментировать
  • Почему asp net потребляет много оперативной памяти на сервере?

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

    https://learn.microsoft.com/en-us/dotnet/core/diag...
    https://learn.microsoft.com/en-us/dotnet/core/diag...
    Ответ написан
    Комментировать
  • Остаток от деления в Python -1%5?

    По определению деления. Школа 3 класс.
    Когда мы делим - мы отвечаем на вопрос "сколько раз от делимого нужно отнять делитель, чтобы получился 0". Остаток - это то что лишнее остаётся, что уже отнять мы не можем, не уйдя в минус.
    Остаток всегда больше нуля.
    При делении отрицательного числа на целое - мы наоборот прибавляем делитель к делимому, пока мы не получим 0 или положительное число.

    Более формально это выглядит так:

    Для любых целых чисел a и b, причём b != 0, найдётся единственная пара целых чисел q и r, таких что a = q * b + r, где 0 <= r < |b|.

    a - делимое
    b - делитель
    q - частное (целое)
    r - остаток

    Вот и получается
    1 = 0 * 5 + 1
    -1 = -1 * 5 + 4

    UPD: в python это не совсем так. На самом деле в Python действительно релизован mod, как говорит Rsa97, но у этой операции нет чёткого определения, по тому в разных языках оно реализовано по разному:
    https://en.wikipedia.org/wiki/Modulo
    q = floor(a/b)
    r = a - b*q

    В первом случае: q=0, r=1
    Во втором: q=-1,r=4
    (в принципе то же самое)
    Интересное начинается, если делитель отрицательный:
    Если взять a=1, b=-5, то тогда r=-1, q=-4
    А вот при обычном делении с остатком: r=0, q=1
    Ответ написан
    Комментировать
  • Низкая скорость скачивания торрентов при гигабитном интернете?


    В среднем на популярных раздачах с большим количеством сидов скорость около 75-80 мегабайт иногда видел 90 мегабайт.

    1. Именно что "до". Гарантировать какую-то определённую скорость провайдер физически не может.
    2. Скорость хорошая, чего не так?
    3. Провайдер считает общий канал, а торрент кроме полезных данных передаёт ещё много служебной информации. Смотри на использование сети в винде / на своём роутере - вероятно там уже близко к гигабиту.
    Опять же упор может быть даже не в общую сеть, а в твою локальную или даже в твой компьютер.
    Ответ написан
    Комментировать
  • Какие есть Portable-версии программы для записи видео с экрана?

    Размер файла будет от кодека и битрейта зависеть.
    Obs вроде есть портативный
    Ответ написан
    Комментировать
  • Как войти в GitHub?

    вот и иллюстрация того, почему второй фактор в виде смс - это очень плохо.
    Используй recovery code, если ты заранее их сохранил.
    Если нет - попробуй самую нижнюю ссылку (которая "Try 2FA account recovery")
    Если и то не поможет - пиши в поддержку.

    Please contact support if you continue to have
    problems.

    Белым по красному же написано
    Ответ написан
    1 комментарий
  • Стоит ли изучать MongoDB в 2024?

    1. Не пользуйся облаком, что тут сказать?
    + Никто не запрещает данные приложения за границей хранить. ПД вполне можно отделить от них.

    2. БД выбирается отталкиваясь от задачи и отказываться от изучения какого-то продукта только из-за того что одним из облачных провайдеров стало не удобно пользоваться - крайне странно.
    + Докер решает только задачу по контейнеризации/изоляции/повторяемости окружения.
    Ответ написан
  • Динамическая компиляция в net 8.0?

    Посмотри в сторону Microsoft.CodeAnalysis.CSharp.Scripting, но экзешник с помощью неё ты не сделаешь вроде бы

    https://weblog.west-wind.com/posts/2022/Jun/07/Run...
    Ответ написан
  • Можно ли дублировать статьи блога?

    Ориентируйся на политики конкретного сервиса. Некоторые сервисы вполне могут запрещать репостинг
    Ответ написан
  • Почему после включения PS4 загорается красным, и консоль отключается?

    Сломалась. Возможно где-то ошибся при сборке (не подключил шлейф или повредил) или разборке или статикой ударил.
    Ответ написан
    Комментировать
  • Что будет если владелец сайта умрет?

    Можно при помощи завещания передать договоры с хостерами и регистраторами - тогда наследник сможет придти к регистратору и получить доступ.

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

    Ну или можно просто вместе с завещанием передать логины / пароли.
    Ответ написан
    Комментировать
  • Как проверить "потянет" ли материнская плата совместимые процессор и видеокарту?

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

    Мощные видеокарты питание получают напрямую из БП, так что тут МП не влияет (но нужно смотреть на версию pcie и количество линий).

    Так что под мощный процессор нужно подбирать соответствующую плату (тут лучше смотреть на обзоры)
    Ответ написан
    Комментировать