Задать вопрос
  • Как побороть потерю данных на Mac OS?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Сдох жесткий диск / ссд? Проверяйте смарт и состояние накопителя/накопителей.
    Ответ написан
  • Как сравнивать версии моей программы на c#?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    /// <summary>
    /// Version
    /// </summary>
    public class Version : IComparable<Version>
    {
        /// <summary>
        /// Major version
        /// </summary>
        public readonly int Major = 0;
        /// <summary>
        /// Minor version
        /// </summary>
        public readonly int Minor = 0;
        /// <summary>
        /// Build number
        /// </summary>
        public readonly int Build = 0;
        /// <summary>
        /// Revision
        /// </summary>
        public readonly int Revision = 0;
    
        private readonly int hash;
    
        /// <summary>
        /// Version
        /// </summary>
        /// <param name="version"></param>
        public Version(string version)
        {
            string[] versions = version.Split('.');
    
            if (versions == null)
            {
                throw new Exception("Can't parse version from string: " + version);
            }
    
            if (versions.Length != 4)
            {
                throw new Exception("Can't parse version from string — wrong count of numbers: " + version);
            }
    
            if (int.TryParse(versions[0], out int major))
            {
                Major = major;
            }
            else
            {
                throw new Exception("Can't parse major version from string: " + versions[0]);
            }
    
            if (int.TryParse(versions[1], out int minor))
            {
                Minor = minor;
            }
            else
            {
                throw new Exception("Can't parse minor version from string: " + versions[1]);
            }
    
            if (int.TryParse(versions[2], out int build))
            {
                Build = build;
            }
            else
            {
                throw new Exception("Can't parse build version from string: " + versions[2]);
            }
    
            if (int.TryParse(versions[3], out int revisison))
            {
                Revision = revisison;
            }
            else
            {
                throw new Exception("Can't parse revisison version from string: " + versions[3]);
            }
    
            hash = ToString().GetHashCode();
        }
    
        /// <summary>
        /// Versions compare
        /// </summary>
        /// <param name="other"></param>
        /// <returns></returns>
        public int CompareTo(Version other)
        {
            if (Major > other.Major) { return 1; }
            if (Major < other.Major) { return -1; }
            // Major == other.Major
            if (Minor > other.Minor) { return 1; }
            if (Minor < other.Minor) { return -1; }
            // Minor == other.Minor
            if (Build > other.Build) { return 1; }
            if (Build < other.Build) { return -1; }
            // Build == other.Build
            if (Revision > other.Revision) { return 1; }
            if (Revision < other.Revision) { return -1; }
            // Revision == other.Revision
            return 0;
        }
    
        /// <summary>
        /// Bigger?
        /// </summary>
        /// <param name="left"></param>
        /// <param name="right"></param>
        /// <returns></returns>
        public static bool operator >(Version left, Version right)
        {
            return left.CompareTo(right) == 1;
        }
    
        /// <summary>
        /// Less?
        /// </summary>
        /// <param name="left"></param>
        /// <param name="right"></param>
        /// <returns></returns>
        public static bool operator <(Version left, Version right)
        {
            return left.CompareTo(right) == -1;
        }
    
        /// <summary>
        /// Bigger or equal?
        /// </summary>
        /// <param name="left"></param>
        /// <param name="right"></param>
        /// <returns></returns>
        public static bool operator >=(Version left, Version right)
        {
            return left.CompareTo(right) >= 0;
        }
    
        /// <summary>
        /// Less or equal?
        /// </summary>
        /// <param name="left"></param>
        /// <param name="right"></param>
        /// <returns></returns>
        public static bool operator <=(Version left, Version right)
        {
            return left.CompareTo(right) <= 0;
        }
    
        /// <summary>
        /// Convert version to string
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return string.Format("{0}.{1}.{2}.{3}", Major, Minor, Build, Revision);
        }
    
        /// <summary>
        /// Get hash
        /// </summary>
        /// <returns></returns>
        public override int GetHashCode()
        {
            return hash;
        }
    }
    Ответ написан
    Комментировать
  • Разработка в Windows 10 под Linux с Docker?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    Просто поставьте себе VirtualBox. Делаете один раз базовую настройку нужной версии нужной ОС. Далее делаете нужное количество клонов ОС в один клик для нужных вариантов рабочего окружения. И далее используете нужную ОС. Как виртуалка сломается — делаете новый клон с чистой ОС.
    Ответ написан
    Комментировать
  • Мерцающие белые точки на мониторе, в чем причина может быть?

    VoidVolker
    @VoidVolker Куратор тега Железо
    Dark side eye. А у нас печеньки! А у вас?
    Если новый — сдавайте обратно и берите другой новый. Явно какой-то брак. Если точки регулярные — повторяются через равные промежутки и преимущественно в одних и тех же местах, то возможно плохая пайка видео/видеопамяти.
    Ответ написан
    2 комментария
  • Всегда ли нужно использовать тип int?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    У каждого типа данных есть свои особенности и ограничения. Например, у вас есть список из максимум пяти элементов, например пункты меню, и каждому из них нужен свой номер или идентификатор. Логичным будет выделить под это поле один байт, 0-255 — этого будет вполне достаточно. Или, например счетчик, который может быть только положительным — для него логично будет использовать беззнаковый тип. Опять же — многое зависит от того, что считать этим счетчиком. Пункты меню или записи в БД. Так что для каждой задачи следует выбирать оптимальное решение.
    Ответ написан
    Комментировать
  • Как выполнить выгрузку информации по классу по определённому правилу?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    1. Документируете код согласно принятым стандартам, типа такого:
      /// <summary>
      /// Class description
      /// </summary>
      public class SomeClass { }

    2. В параметрах проекта на вкладке "Сборка" ставите галочку "XML-файл документации — далее файл документации можно скормить любому приложению/скрипту, понимающему xml.
    3. Далее ставите приложение Doxygen
    4. В doxygen создаете проект документации, указываете xml файл документации и все требуемые настройки и сохраняете проект в файл
    5. Теперь документацию по всему коду в удобном формате (HTML, LaTeX, RTF, Man, XML, DocBook) можно получить просто выполнив команду:
      doxygen.exe doxyproject
    Ответ написан
    4 комментария
  • Как разместить нужные компоненты на странице компонента tabControl в MS VisualStudio 2017?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Очень просто: добавляем на форму табконтрол, а в там контрол добавляем кнопку.
    Ответ написан
  • Как сделать по человечески корп сеть?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Работает? Не трогай. Не работает — собираете требования/спецификации/ТЗ к сети и под эти требования делаете сеть.
    Ответ написан
    Комментировать
  • Оцените сборку игрового пк?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Водяное охлаждение Deepcool Captain 360 EX RGB White

    В топку СВО — ноктуа NHD15 будет куда оптимальнее, тише, а главное намного надежнее (6 лет гарантии, а после 6 лет и дальше вполне нормально работают). В то время как типовые СВО нуждаются в регулярных проверках, а ведь еще может быть мелкий брак и может легко где-то проржаветь и потечь. Особенно при сборке ПК на несколько лет, а на эту СВО гарантия всего-то год.

    почему 128 гб мало? я думаю его сделать под систему, а жесткий диск под хранилище. зачем мне больше?

    Потому что винда и софт за несколько лет сожрет SSD на сотку в ноль. А игры на SSD играются намного комфортнее. SSD оптимальный вариант — от 500 Гб, Samsung 970, лучше PRO — надежнее, но можно и EVO версию.

    Жесткий диск 3.5" Toshiba P300 1Tb
    SSD накопитель M.2 128Gb Intel 760p

    Выкидываем оба девайса из конфига (3к + 4к), добавляем еще несколько тысяч от замены ненужной СВО на нормальный кулер и берем вот этот симпатишный Samsung 970 EVO на 500 гигов за примерно 9к. А если добавить еще столько же — можно сразу и на 1ТБ взять. А лучше PRO.
    Материнскую плату тоже можно по-проще взять — в большинстве случаев маркетинговые рюшечки и фенечки не используются.
    Ответ написан
    5 комментариев
  • Как сделать скачивание файлов торент, которые лежат на хосте а не на компьютере?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Скачать торрент файл с хоста и скачать его через торрент клиент.
    Ответ написан
    Комментировать
  • Как можно упровлять пк не подключенному к интерне через второй подкюченый к обычной сети?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    1. Настроить локальную сеть между двумя ПК
    2. На ПК подключенном к интернету расшарить сетевое подключение для другого (или просто вставить USB LTE свисток в другой ПК)
    3. На втором ПК установить VNC сервер / настроить RDP
    4. Пробросить порт со второго ПК на белый IP в сети интернет / роутер
    Ответ написан
    Комментировать
  • Как написать функцию с параметрами от нуля до бесконечности?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Создать бесконечный блок памяти и использовать его в системе/языке программирования для передачи параметров для данной функции.
    Ответ написан
    Комментировать
  • Обновление проца на сервере?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Лучше сразу весь сервер целиком обновляйте — толку будет больше.
    Ответ написан
    2 комментария
  • C# Как отсортировать символы вставкой?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    1. Сопоставляем каждому символу во второй строке число-индекс этого символа;
    2. По каждому символу в первой строке ищем тот же символ во второй строке и сопоставляем текущему символу число индекс второго символа;
    3. Удаляем из второй строки найденный символ — т.е. символы повторяются нужно сопоставить символы один к одному;
    4. Сортируем первую строку по номерам символов — при условии совпадения числа одинаковых символов в строках, результат будет соответствовать второй строке.
    Ответ написан
  • Res.end - в чем суть?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Class: http.ServerResponse
    Added in: v0.1.17
    This object is created internally by an HTTP server — not by the user. It is passed as the second parameter to the 'request' event.

    The response inherits from Stream, and additionally implements the following:

    Stream.end(): https://nodejs.org/api/stream.html#stream_writable...

    Calling the writable.end() method signals that no more data will be written to the Writable. The optional chunk and encoding arguments allow one final additional chunk of data to be written immediately before closing the stream. If provided, the optional callback function is attached as a listener for the 'finish' event.


    https://js-node.ru/site/article?id=41#stream_writa...
    Вызов метода writable.end() сигнализирует о том, что в открытый для записи стрим больше не поступает данных на запись. Опциональные аргументы chunk и encoding позволяют последней дополнительной порции данных быть записанной непосредственно перед закрытием стрима. При предоставлении опциональной функции callback, она добавляется как слушатель события ‘finish’.
    Вызов метода stream.write() после вызова stream.end() приведет к ошибке.


    И в чем сложность в простом чтении документации?
    Ответ написан
    4 комментария
  • Копирование объекта или передача ссылки на него?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Читайте мануал по IEquatable интерфейсу: https://docs.microsoft.com/en-us/dotnet/api/system...
    Данный интерфейс реализует методы сравнения определенного класса. Кроме того, класс так же может реализовывать поддержку сравнения для операторов (равно, не равно, больше/меньше и т.п.).
    Ответ написан
    Комментировать
  • Как программируют телекоммуникационное оборудование?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Вообще-то, это не так работает. Сначала ставится задача типа "Разработать устройство такое-то с такими-то функциями". Далее это все прорабатывается до полноценного ТЗ со всеми подробностями. Далее это ТЗ передается инженерам, которые уже под требования ТЗ подбирают оборудование и ПО. Программисты сразу получают плату разработчика с тем же процессором и на ней уже могут производить отладку ОС и ПО. Инженеры тем временем проектируют плату, электронику, тестируют это все. В большинстве роутеров сегодня работает обычный линукс и на обычном процессоре типа ARM. Большая часть того, что там используется стандартизировано и легко покупается и компонуется в один девайс. ПО там зачастую обычный веб сервер с кучей скриптов для настройки стандартных линуксовых прогамм.
    В более сложных и больших сетевых устройствах, которые работают на магистралях, например, все несколько сложнее — там могут использоваться специальные процессоры и ПЛИС, которые программируются несколько иначе. Так же там может быть вообще полностью своя прошивка или какие-то другие специфические системы.
    Ответ написан
    Комментировать
  • Каким образом с помощью svg можно сверстать фон?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    .div {
        background-image: url(fon.svg);
    }
    Ответ написан
    Комментировать
  • Как обработать 3000 запросов REST API?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Например: https://www.getpostman.com или JS или еще что угодно, что может отправить запрос.
    Ответ написан
    Комментировать
  • Как просмотреть исходящие соединения приложения в windows?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    Комментировать