Задать вопрос
  • Back-end + front-end в одном проекте на webpack?

    Две раздельные папки в одном репозитории.
    Не стоит собирать их одним вебпаком
    Ответ написан
    Комментировать
  • Насколько надежен менеджер паролей LastPass?

    Точно помню, что была однажды громкая утечка, связанная с этим сервисом, так что свои пароли лучше не сохраняй в него, если не готов такому)

    Если устанавливаешь на рабочий комп, а не на свой личный, то компания ССЗБ
    Ответ написан
  • Зачем нужно это поле в Jira?

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

    1. Сначала убедись, что для твоей задачи действительно нужен именно поток, а не какая-то более высокоуровневая абстракция, например Task
    2. Если всё-таки поток, то есть два варианта:
    1. Через обратный вызов. В конце своей работы, в потоке нужно вызвать какой-то метод, который будет обрабатывать результат.
    using System.Threading;
    
    var data = new int[1]; // Какие-то данные
    
    var thread = new Thread(() => {
      var result = data.Length; // Какие-то ужасно сложные вычисления
      HandleResult(result); // Это можно передать как параметр-делегат, но тут мы будем конкретный метод использовать
    });
    thread.Start(); // Стартуем
    // Какие-то дела
    thread.Join(); // Всё равно надо по-хорошему дождаться окончания работы потока
    void HandleResult(int value) {
      Console.WriteLine(value);
    }

    2. Через Join и какую-то общую переменную или поле.
    using System.Threading;
    
    var data = new int[1]; // Какие-то данные
    var result = 0; // Какой-то результат (инициализируем значением по-умолчанию)
    var thread = new Thread(() => {
      result = data.Length; // Какие-то ужасно сложные вычисления
    });
    thread.Start(); // Стартуем
    // Какая-то работа
    thread.Join(); // Дожидаемся окончания работы потока
    Console.WriteLine(result); // Используем результат работы
    Ответ написан
    Комментировать
  • Binance может блокировать счета пользователей находящихся в стране с военными действиями?

    Если напрямую какая-нибудь условная Америка не скажет "мы запрещаем работать компаниям, которые работают на территории X, тк у нас санкции против них", то Binance врядли станет по собственной воле прекращать работу в каком-то регионе.

    Не уверен, но по такому принципу Binance вполне может не работать на территории Северной кореи, Ирана, и в Крыму (ну и ещё в нескольких странах)
    Ответ написан
    Комментировать
  • Почему у одной компании бывает так много разных команд разработки одного и того же направления?

    Всё просто - у Acme вполне может быть много разных продуктов, разработкой которых занимаются разные команды.
    Это нормально. Деление же идёт по продукту, а не по направлению (фронт/бэк).

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

    Почему сотрудничают с кучей разных аутсорсинговых компаний - фиг его знает.
    Если "Acme" - это очень большая международная компания, то разные подразделения следует воспринимать как независимые компании со своим собственным менеджментом и своим финансированием.
    Ответ написан
    Комментировать
  • Можно ли как-то более удобно реализовать вызов метода по умолчанию в интерфейсах?

    без кастов

    Нет, такой синтаксис придуман специально, чтобы избежать проблем от множественного наследования.
    Обойти не получится - только спрятять.
    Например в случае this можно провернуть что-то такое:
    private IEvent<Handler, Argument> thisEvent => this;
    // ...
    thisEvent.Create(argument);
    Ответ написан
    Комментировать
  • Как в IDE от Jet Brains создать ярлык на рабочую область или проект?

    Можно добавить в избранное проект в JB Toolbox
    Ответ написан
    Комментировать
  • Почему vs code не подчеркивает ошибки?

    1. У тебя должен стоять C# плагин
    2. У тебя должен стоять .net SDK на компе
    3. У тебя должен быть не голый файл, а проект (рядом должен быть csproj)
    Вот тут подробнее:
    https://qna.habr.com/q/947675#answer_1889815

    PS: Для голых файлов есть .csx
    Ответ написан
    2 комментария
  • Как с помощью return вернуть две переменные?

    Есть несколько вариантов:
    1. Возвращать массив
    2. Объявить свою структуру или класс, в которой будет два нужных значения в виде полей или свойств
    3. Возвращать кортеж
    Ответ написан
    Комментировать
  • Появилась иконка "руки вверх" на смартфоне, что это?

    Скорее всего, это режим для людей с ограниченными возможностями.
    Отключаться должно в настройках, в соответствующем разделе
    Ответ написан
    Комментировать
  • Какую лицензию лучше выбрать - MIT или LGPL2.1?

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

    Перенести саму переменную ты можешь только ctrl+X -> ctrl+V. А вот так можно передать данные, которые хранятся в ней:

    Вариант раз: обратиться напрямую к данным о монетах через поле/свойство экземпляра класса.
    Примерно так:
    public class Player {
      public Coins coins; // Как-то нужно присвоить ему значение, иначе будет NRE
      public void SomeMethod() {
        var total = coins.coinsAmount; // Вот мы и обратились
      }
    }

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

    И раз уж задаёшь в теге "C#" вопрос, то используй нормальную терминологию:
    Не скрипты, а классы.
    Не переменная, а поле.
    Ответ написан
    Комментировать
  • Как конвертировать object[] к Class[] где Class пользовательский класс?

    Как решить такой трабл явно не приводя массив к нужному типу ?

    Эмм, а как должно это работать? У тебя массив обжектов, а ты ждёшь массив из Class-ов.
    Тебе нужна функция которая будет преобразовывать каждый элемент по отдельности, ибо в этом массиве не обязательно будет лежать Class.
    Может проще сразу массив нужного типа создать?

    Вообще вариантов несколько:
    1. Через Select и некую функцию, которая преобразует объект в твой тип.
    var classes = objects.Select(ConvertObjectToClass).ToArray();

    2. Через метод Cast - тогда просто произойдёт даункаст каждого элемента.
    var classes = objects.Cast<Class>().ToArray();
    3. Через Unsafe, но только если ты заранее знаешь, что внутри этого массива только Class-ы, а не какие-то другие типы, которые с ним не совместимы. Иначе получишь мусор вместо данных. Со структурами, конечно, работать не будет.
    var classes = System.Runtime.CompilerServices.Unsafe.As<Class[]>(objects);

    Вот что кстати будет

    using System.Runtime.CompilerServices;
    var objects = new object[] { new A { x = 1 }, new B { y = 2, z = 3 } };
    var something = Unsafe.As<A[]>(objects);
    Console.WriteLine(something[0].x); // 1
    Console.WriteLine(something[1].x); // 2
    var something2 = Unsafe.As<B[]>(objects);
    Console.WriteLine($"{something2[0].y} {something2[0].z}"); // 1 0
    Console.WriteLine($"{something2[1].y} {something2[1].z}"); // 2 3
    class A
    {
        public int x;
    }
    class B
    {
        public int y;
        public int z;
    }

    А вот если добавить ещё поле - всё совсем поломается.
    Ответ написан
    8 комментариев
  • Как конвертировать биткоин в сатоши?

    ПРАВИЛЬНО

    Умножить на миллион (или сколько там их должно быть?)
    Если попробовать конвертировать 0.00015 btc в сатоши - получаем 14999, хотя должны получить 15000

    Для этого есть числа, которые хранят десятичные дроби / числа с произвольной точностью.

    Гугл говорит, что в php для этого есть bcmath: https://www.php.net/manual/en/intro.bc.php
    Есть ещё сторонние библиотеки, которые делают аналогичное, но чуть удобнее: https://php-decimal.io/#introduction
    Можно вообще накостылять и использовать только целые числа с множителями, и строить на них свои вычисления.
    Ответ написан
    Комментировать
  • Есть ли документация или стандарт о математике?

    1. Различные справочники и энциклопедии. Там даны определения для общепринятых функций.
    У любой функции есть вполне чёткое определение, из которого можно понять, где её можно использовать, а где нельзя.
    2. Всякие исследования - в научных журналах.
    3. Учебники
    Ответ написан
    Комментировать
  • Чем Blazor лучше vanillaJS с Ajax?

    Преимущество только в том, что код пишешь на C# с использованием привычных инструментов и библиотек, а не на js или ts.

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

    По хорошему, тут следует использовать новый тип, а не существующий GridItemProps.
    Объяви ещё 1 GridItem у которого будет нужный набор свойств
    Ответ написан
    Комментировать
  • Как определить размер пикселя матрицы у видеокамеры?

    1/8" - это матрица размером 1,8 × 1,35мм (википедия говорит)
    Это 2.43 мм^2

    0.8 Мп - это 800000 пикселей

    Получается, 1 пиксель занимает около 3мкм^2
    Ответ написан
    Комментировать
  • Дорого ли обходиться использовавние lock, зачем делать Singleton with double check locking?

    зачем делать Singleton with double check locking

    Синглтон имеет смысл делать только тогда, когда (все три):
    1. Не факт, что за время работы приложения, понадобится экземпляр этого класса (иначе разруливаем через обычный static)
    2. Создавать его очень дорого, и его экземпляр требует много ресурсов (памяти, или может каких-то неуправляемых), по тому его нужно ещё и переиспользовать везде. (иначе зачем в принципе синглтон?)
    3. Нет возможности разрулить это на уровне Dependency Injection (иначе разруливаем через DI)

    Double check-lock необходим, чтобы гарантировать, что экземпляр синглтона будет создан только 1.
    Считается, что создавать экземпляр синглтона дороже, чем 1 лок.
    А проверка перед локом нужна затем, чтобы не блокировать лишний раз.
    сказали что lock это одна из самых дешевых оперций по синхронизации.

    Да, это так. Если гораздо более дорогие операции.

    get
                {
                      lock (Loker)
                      {
                            // only one check and everything is fine :)
                          if (_instance == null)
                          {
                              _instance = new Singleton1();
                          }
                    }
    
                    return _instance;
                }

    А зачем тебе Lock, если ты не собираешься изменять переменную?
    Сначала проверяешь на null, чтобы проверить, придётся ли тебе её менять.
    Потом поднимаешь lock и проверяешь снова, чтобы гарантировать, что ты один обращаешься.
    Для чтения lock не нужен.
    Проверка на null - гораздо дешевле, чем lock, по тому перед поднятием блокировки есть смысл проверить на null
    Ответ написан