• Что такое KDE Wallet?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    kde password manager
    предлагает вам сохранить пароль от вифи, чтобы больше не вводить...
    Ответ написан
    6 комментариев
  • Почему не работает System.Text.Encoding? Ошибается на 1 символ?

    twobomb
    @twobomb
    Ну потому-что ваш генератор тупо генерирует рандомные числа от 0 до FFFF, а в UTF16 там есть определенные правила. Почитайте например в вики

    Я не вникал ну вики говорит что там есть диапазон для суррогатных пар тоесть символы которые кодируются двумя 16битными словами, тоесть 4 байтами. Крч как вариант или тупо добавить проверку в генератор чтобы если рандомное число входит в диапазон исключений D80016..DFFF16 то пропускать и генерировать другое. Или замарачиваться с этими парами, ну это будет сложнее.

    Принцип кодирования
    В UTF-16 символы кодируются двухбайтовыми словами с использованием всех возможных диапазонов значений (от 0 до FFFF16). При этом можно кодировать символы Unicode в диапазонах 000016..D7FF16 и E00016..FFFF16. Исключенный отсюда диапазон D80016..DFFF16 используется как раз для кодирования так называемых суррогатных пар — символов, которые кодируются двумя 16-битными словами.

    Символы Unicode до FFFF16 включительно (исключая диапазон для суррогатов) записываются как есть 16-битным словом.

    Символы же в диапазоне 1000016..10FFFF16 (больше 16 бит) кодируются по следующей схеме:

    Из кода символа вычитается 1000016. В результате получится значение от нуля до FFFFF16, которое помещается в разрядную сетку 20 бит.
    Старшие 10 бит (число в диапазоне 000016..03FF16) суммируются с D80016, и результат идёт в ведущее (первое) слово, которое входит в диапазон D80016..DBFF16.
    Младшие 10 бит (тоже число в диапазоне 000016..03FF16) суммируются с DC0016, и результат идёт в последующее (второе) слово, которое входит в диапазон DC0016..DFFF16.
    Ответ написан
    Комментировать
  • Как запустить задачу меньше чем за 1 мс?

    @oleg_ods
    Операционные системы на которых работает C# не поддерживают Real Time взаимодействие.

    Методы Thread.Sleep(10)/Task.Delay(10) означают что задержка будет как минимум(!) 10 мс, но не дают никакой гарантии что задержка будет ровно 10 мс. То есть это значит что 10 мс поток будет бездействовать, а потом встанет в очередь за получением процессорного времени.

    Как написали выше Вам нужно смотреть в сторону RTOS и более низкоуровневых языков программирования. На настольных ОС такие задачи не решаются.
    Ответ написан
    Комментировать
  • Как ограничить копирование данных из сетевых папок, локального ПК, на флешки и внешние ресурсы?

    @TheBigBear
    СтарОдмины мы
    Много лет пользовали Стахановца
    В нем можно запретить запись на внешние носители, отслеживает все копирования-удаления - даже к себе их копирует перед удалением. Можно запретить прикрепление файлов в вэб почте. Отлична развита система отслеживания подозрительных действий, слова "ловушки".
    Правда (не знаю как в новых версиях) в нашей плохо работал "клавиатурный почерк" и распознавание речи
    Два раза ловили инсайдеров конкурентов, раз сотрудницу, сливающую данные в налоговую.
    Раз помог найти украденный ноутбук
    Сколько раз наказывали за безделье на работе - не счесть (соцсети, ютуб)
    4 года назад в компании сменился владелец.
    Приказал убрать стахановца, поменял мелкое руководство, изменил отношения в коллективе.
    Запретил штрафы - если сотрудник сделал текущую на сегодня работу - пусть делает что хочет.
    Мы вспомнили что такое "премия" за хорошую работу.
    Раз собрал сотрудников и сообщил кто конкретно в коллективе на нас "стучит" и предложил вне конфликты разбирать публично
    Вот не поверите, но на работу ходим с удовольствием
    Ответ написан
    1 комментарий
  • Как ограничить копирование данных из сетевых папок, локального ПК, на флешки и внешние ресурсы?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Внимание! Изменился адрес почты!
    Стахановец.

    Правда, насчет "шифровал файлы" - такого там конечно же нет. Вещь крайне обоюдострая - забыл пароль - и все. Да, еще - чисто техническими средствами это не реализовать - только комплекс из технических и административных мер.

    Стахановец - это Система Мониторинга Пользователей и, соответственно, руководство при приеме на работу обязано предупреждать, что таковой ведется. Желательно в письменном виде под роспись. Мониторится все, в том числе ввод с клавиатуры, делаются снимки экранов (помогало неоднократно против людей, которые продвинутые или просто "особо умные").

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

    3r1k
    @3r1k
    the quieter you become, the more you hear
    Может проще сделать виртуалку, раскатать там всё ПО, сделать бэкап и каждый раз восстанавливать, как новую...
    Ответ написан
    8 комментариев
  • Как автоматизировать установку программного обеспечения и настройку windows машины?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Установили Windows, установили драйвера и все нужное ПО - сделали образ диска. Каждые 4 дня - просто восстанавливать ОС из образа.
    Ответ написан
    Комментировать
  • Как найти culauncher.exe?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Не находит
    WHERE /R C:\ culauncher.exe
    Первая ссылка в поиске. Обновления это.
    Я знаю что это обновления.
    Настройте получение обновления на минимальное использование указанного вами канала.
    Ответ написан
    1 комментарий
  • Какие есть решения для брудфорса учетных записей windows в локальной сети?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Задача решается наоборот:
    1. Политикой запрещаем "ненадежные" пароли.
    2. Всем юзерам ставим галку "Принудительно сменить пароль". И заодно вторую галку "Менять пароль раз в 30 (например) дней."

    Объяснение: нет большого смысла в том, чтобы брутфорсить пароли и составлять списки пользователей, потому что ваша реальная цель состоит не в том, чтобы узнать, у кого стоит какой пароль. Ваша цель - избавиться от плохих паролей.
    Ответ написан
    Комментировать
  • Почему delete вызывает ошибку?

    Adamos
    @Adamos
    Главная ошибка - в нашей системе образования,где одни мудаки накропали методичек с использованием массивов и сишных строк в С++, а другие учат по ним третьих, и конца этому не видно.
    Хотя в этом коде достаточно было бы использовать string везде вместо char* - и при этом всем было бы легче: и ТС, и проверяющему, и компилятору... и никаких утечек с UB.
    Ответ написан
    Комментировать
  • Как перевести строку в число в ассемблере?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Сначала напишите алгоритм на каком-нибудь высоком языке программирования, или хотя бы в псевдокоде. Потом аккуратно переведите в ассемблер.

    Надо уметь только делить с остатком и умножать на 10. Как перевести 1234 в строку? Можно взять последнюю цифру - осток от деления на 10. Вот вы получили цифру 4. В строке это будет символ "4", или байт со значением 0x34. Вообще, для получения символа по цифре - надо прибавить 0x30. Это мы взяли остаток, а вот результат деления - 123. Можно продолжить перевод так же и мы получим символы в обратном порядке.

    Итак, пока число не 0, делим нацело на 10. Остаток приписываем в ответ переводя в символ. В конце разворачиваем строку.

    Перевод же из строки в число делается проще - идем циклом по строке, умножаем переменную на 10 и прибавляем тукущую цифру.
    Ответ написан
    Комментировать
  • Как считать данные с COM порта в C++?

    @xibir
    В qt есть класс QSerialPort для работы с портом
    Ответ написан
    Комментировать
  • Почему возникает ошибка?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему возникает ошибка?

    Потому что это не С++ код. Designated initializers есть в C начиная с C99 и в C++ есть начиная с C++20, но в С++ версии полно дополнительных ограничений.
    Ответ написан
    Комментировать
  • Как получить HMODULE импортированой dll без LoadLibraryA() или GetModuleHandleA()?

    Взять адрес ExitProcess и пройтись по страницам влево поискать в начале страниц PE-заголовок, по идее его адрес и должен быть HMODULE, но я не настоящий бинарщик.
    Ответ написан
    2 комментария
  • Что я не так делаю с интерфейсами?

    K0TlK
    @K0TlK
    Буллю людей.
    Что я не так делаю с интерфейсами?

    Всё.
    У тебя у одного интерфейса слишком много ответственностей у него и Warside какой-то есть и дамаг может принимать и умереть может.

    Разделяй этот интерфейс на несколько.

    namespace Health
    {
        public interface IHealth
        {
            void Lose(int amount);
            void Restore(int amount);
        }
        
        public interface IMutable<out T>
        {
            T Current { get; }
        }
        
        public interface IFinal
        {
            event Action Over;
        }
    }


    Получается такой Health:

    using System;
    using UnityEngine;
    
    namespace Health
    {
        public class Health : IHealth, IFinal, IMutable<int>
        {
            public event Action Over;
            private readonly int _max;
            private const int Min = 0;
    
            public Health(int max)
            {
                _max = max;
                Current = _max;
            }
            
            public int Current { get; private set; }
            
            public void Lose(int amount)
            {
                SetCurrent(Current - amount);
            }
    
            public void Restore(int amount)
            {
                SetCurrent(Current + amount);
            }
    
            private void SetCurrent(int amount)
            {
                Current = Mathf.Clamp(amount, Min, _max);
                
                if (Current == Min) Over?.Invoke();
            }
            
        }
    }


    Health не должен быть отдельным компонентом, который будет висеть на условном рыцаре. Рыцарь будет содержать в себе этот Health, но напрямую хп ему изменять никто не будет, поэтому нужен еще один интерфейс IDamageable:
    namespace Health
    {
        public interface IDamageable
        {
            void ApplyDamage(int amount);
        }
    }


    И сам рыцарь:
    using UnityEngine;
    
    namespace Health
    {
        public class Knight : MonoBehaviour, IDamageable
        {
            [SerializeField] private int _maxHealth = 100;
            private Health _health;
    
            private void Awake()
            {
                _health = new Health(_maxHealth);
            }
    
            private void OnEnable()
            {
                _health.Over += Die;
            }
    
            private void OnDisable()
            {
                _health.Over -= Die;
            }
    
            public void ApplyDamage(int amount)
            {
                _health.Lose(amount);
                Debug.Log($"Damaged, hp left - {_health.Current}");
            }
    
            private void Die()
            {
                Debug.Log("Died");
                Destroy(gameObject);
            }
        }
    }


    Теперь, чтобы нанести урон рыцарю, нужно получить компонент IDamageable и вызвать его метод ApplyDamage:
    using UnityEngine;
    
    namespace Health
    {
        public class Enemy : MonoBehaviour
        {
            [SerializeField] private int _damage = 50;
            
            private void OnTriggerEnter2D(Collider2D other)
            {
                if (other.TryGetComponent(out IDamageable damageable))
                {
                    damageable.ApplyDamage(_damage);
                }
            }
        }
    }


    Всё. Используй TryGetComponent и тогда не нужно будет делать миллион проверок является ли что-то null.
    Warside твой должен висеть на рыцаре, а не на хп, поэтому делай отдельный интерфейс под этот Warside.
    Ответ написан
    5 комментариев
  • Где взять дорожную карту c++?

    Adamos
    @Adamos
    Какой именно интернет вы весь перекопали?
    Первая же строчка по запросу в гугле "unreal engine developer roadmap", например - не устраивает?
    Может, вам и не стоит в С++?..
    Ответ написан
    Комментировать
  • Насколько сложно написать приложение с распознаванием шахматных фигур?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Если вы так ставите вопрос, то для вас действительно будет сложно сделать качественно распознающий доску продукт.
    Вообще, полагаю, без очень хорошего опыта в использовании сверточный нейронных сетей и вообще в распознавании образов в эту задачу можно сунуться только из академических интересов. Сделать достаточно хороший продукт будет не просто.
    Тем более, что шахматы у всех могут быть немного разные, условия освещения, ракурсы, подвижность камеры...
    Любое новшество должно решать больше проблем. чем создавать, а чтобы такое приложение было полезным нужно очень сильно заморочиться вычесывая баги и специфические ситуации.

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

    Начал бы я именно с такого MVP, если бы приспичило такое делать.
    С другой стороны, если хочется что-то замутить эдакое, то лучше сделать прикольную доску, которая могла бы переставлять шахматы.
    Реализовать такое можно установив под доску координатный стол с электромагнитом на каретке, как в ЧПУ-фрезере и матрицу датчиков холла -- под каждую клетку по датчику, а в фигуры вклеить обычные магниты.
    Будет продольная каретка, поперечная каретка, электромагнит (или бычный мощный неодимовый, отодвигаемй сервомотором).
    Датчик холла под кажой клеткой даст понять какие клетки заняты. За ходами можно следить по тому, на каких клетках пропадали и появлялись фигуры. Передивгать фигуры можно двигая каретку с магнитом и перетаскивая так фигуры по доске. Придётся заморочиться, чтобы корректно раздвигать фигуры для протягивания коня и для выведения битых фигур с поля. Но выглядеть при должной реализации будет завораживающе волшебно.
    Ответ написан
    1 комментарий
  • Жуткие тормоза от mysql коннектора .net в с# - почему?

    xez
    @xez
    TL Junior Roo
    Тормоза не от коннектора, а от сомнительного sql запроса:
    SELECT * FROM ep53 ORDER BY TimeValue LIMIT {0},{1}

    Офсет работает таким образом: выбирается весь диапазон данных, ограниченный лимитом, а затем первые n строк просто отбрасывается. Т.о. с каждым запросом вы выбираете все больше данных: в первой итерации 5000 строк, во второй 10000 и т.д. (int QUERYSIZE = 5000).
    Вот статья по этому поводу https://use-the-index-luke.com/no-offset, там же рецепты с решениями.
    Ответ написан
    Комментировать
  • Почему при вычитании двух вещественных результат неправильный?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Вас не смущает, что в одном числе точка - а в другом запятая?
    Ответ написан
    Комментировать
  • Почему не грузится система?

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    Ну ясен перец, что винде не нравятся такие махинации.
    Официально задокументированной возможности переноса с одного компа на другой нет. Да последние версии, давольно неприхотливы к железу, но одним присутствием EFI это не ограничивается, может чипсэт не понравиться или красный/синий проц или еще какая лабуда из-за которой оно не стартанет
    Ответ написан
    2 комментария