Задать вопрос
  • Как в C# в динамике задать у обощенного класса тип поля хранимого значения?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Именно так нельзя. Но можно вот так, если очень надо: Есть ли способ преобразовать объект к типу?
    В вашем же случае, если тип аргумента неизвестен, следует хранить аргумент в типе object и отдельно его тип. Либо реализовать поддержку типов всех возможных аргументов. А если еще подумать, то можно заменить большую часть вот этого кода обычным словарём.
    Ответ написан
  • Есть ли способ преобразовать объект к типу?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
  • Ошибки в программе на .Net?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Можно дизассемблировать, провести дебаг и пересобрать. Если приложение обфусцировано - то это займет больше времени и будет сложнее. Судя по логу - там ошибка в параметрах конструктора при создании изображения. Предполагаю, что ошибка у вас воспроизводится при каких-то определённых параметрах задаваемых в приложении.
    Код конструктора, в котором происходит ошибка (примерно, ибо там может быть код другой версии, а искать сейчас конкретную версию нет особого смысла):
            /// 
            ///  
            ///    
            ///       Initializes a new instance of the Bitmap class with the specified 
            ///       size and format.
            ///    
            /// 
            public Bitmap(int width, int height, PixelFormat format) { 
                IntPtr bitmap = IntPtr.Zero;
     
                int status = SafeNativeMethods.Gdip.GdipCreateBitmapFromScan0(width, height, 0, (int) format, NativeMethods.NullHandleRef, out bitmap); 
    
                if (status != SafeNativeMethods.Gdip.Ok) 
                    throw SafeNativeMethods.Gdip.StatusException(status);
    
                SetNativeImage(bitmap);
            } 
    
            ///  
            ///  
            ///    Initializes a new instance of the
            ///  
            /// class with the specified size.
            /// 
            public Bitmap(int width, int height) : this(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb) {
            }

    www.dotnetframework.org/default.aspx/DotNET/DotNET...
    Ответ написан
    6 комментариев
  • Можно ли сменить операционку постамата?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Зависит от того, какая там начинка внутри. Если там своя плата с каким-нибудь армом и своей сборкой линукса, то скорее всего будет вам стоить очень дорого просто только чтобы разобраться что там накручено внутри и как можно туда что-то своё залить, если вообще это будет возможно. Если там контроллёр еще проще и у него прошивка написана на чём-то типа Си - то дешевле всю начинку новую заказать. А вот если там внутри что-то типовое на вроде малинки/апельсинки - то тут относительно просто можно запилить свою прошивку и залить туда. Вот тут можно прочитать про опыт разработки постаматов: https://habr.com/ru/articles/825732/
    А вот тут пара слов про разработку киосков с моей колокольни: https://qna.habr.com/answer?answer_id=2482812#answ...
    Ответ написан
    Комментировать
  • Вендинг: как создать ПО для собственного аппарата?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Есть разные варианты реализации - зависит от требований к аппарату и финансовых возможностей. Самый простой вариант: обычный х86 ПК на mini-ITX плате с виндой или линуксом внутри. Дополнительные девайсы подключаются по USB/Ethernet и работают через стандартные драйверы. Вариант чуть более сложный - на базе малинки/апельсинки с линуксом. Экран - любой встравиваемый с тачем и HDMI. Возможные проблемы - надо подбирать дополнительные девайсы, которые хорошо и адекватно работают под линуксом и для которых есть драйверы. Для удалённого управления используется стандартный сотовый модем. Управление - SSH + VNC для просмотра и контроля изображения. Девайс туннелируется в отдельную приватную сетку. ПО обычно в виде стандартной HTML страницы, отображаемой в браузере. Если приложение может работать без интернета - то через локальный веб-сервер. Либо хромиум/фаерфокс в киоск режиме либо NWJS со всем уже встроенным. Самый замороченный вариант - планшет на андроиде в качестве основы экрана/монитора/тача, там может не всякий девайс получиться заставить работать. Дополнительных портов тоже не очень. Я делал ПО для всех этих трёх вариантов. Везде использовал NWJS. В т.ч. на планшете - он был с виндой и х86 вроде даже (ну вот так захотелось клиенту). А для малинки делал даже готовую сборку дистрибутива линукса и упаковку в готовый образ со всеми настройками и ПО - его только залить на флешку, подключить и девайс готов к работе.
    Еще один важный момент, который следует учитывать - условия и место работы киоска. В пыльном месте - воздушные фильтры в корпус с минимальным количество отверстий и везде пассивное охлаждение. На улице - требуется промышленное исполнение оборудование, иначе слишком дорого будет ездить ремонтировать его из постоянных сбоев и поломок. В какой-нибудь деревне или промышленном районе - встроенный ИБП, несколько модемов или мультисим для связи. И т.д. и т.п.
    Ответ написан
    6 комментариев
  • Какая канбан-доска имеет функционал выгрузки архива списком?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Ответ написан
    Комментировать
  • Почему массив с undefined не работает с методом map?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    В первой же ссылке в гугле: https://stackoverflow.com/questions/60346825/why-d...
    With map, it is possible to say: "As you step through the array, if you encounter an index that has no property, leave that property similarly unset in the output array." For all existing properties, output indices will still correspond to their input indices, and the missing properties are skipped in both the input and output.

    Array.prototype.map
    Repeat, while k < len
    
            Let Pk be ! ToString(k).
            Let kPresent be ? HasProperty(O, Pk).
            If kPresent is true, then
                Let kValue be ? Get(O, Pk).
                Let mappedValue be ? Call(callbackfn, T, « kValue, k, O »).
                Perform ? CreateDataPropertyOrThrow(A, Pk, mappedValue).
            Increase k by 1.

    Т.е. map() пропускает пустые, не инициализированные значения в массиве. Так что просто используйте метод fill().
    Ответ написан
  • Почему громко работают кулеры?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    • У вентиляторов износились подшипники
    • У вентиляторов отсутствуют подшипники
    • Плохая аэродинамика самих вентиляторов
    • Плохая организации внутреннего пространства корпуса для движения воздуха
    • Износ термопасты и как следствие перегрев чипов и повышение оборотов вентиляторов биосом
    • Забивание воздушных фильтров пылью и как следствие ухудшение теплообмена и перегрев с увеличением оборотом вентиляторов биосом

    Решается заменой кулеров, термопасты, организацией внутреннего пространства, чисткой фильтров. Если хотите тишины - берите кулеры Noctua, например.
    Ответ написан
    1 комментарий
  • Как злоумышленник проникает на сервер?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Как можно отследить и понять где уязвимость?

    Провести аудит безопасности сервера:
    • Какие приложения установлены
    • Какие запущены и что из них может быть стороннее
    • Проверить настройки SSH
    • Проверить настройки и логи фаерволла
    • Проверить настройки и логи Fail2Ban
    • Проверить логи - системные, mysql, SSH и прочие
    • Проверить сетевую активность и/или добавить логгирование сетевой активности всех приложений
    Ответ написан
    Комментировать
  • Что мне еще нужно изучить для бэкенд (фактически роадмап)?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    https://roadmap.sh/backend - и далее по всем пунктам.

    Я имел ввиду, что вообще еще используют в бэке.

    Используют вообще всё. Для разных задач - разные инструменты.
    Ответ написан
    1 комментарий
  • ЛЮБОЙ Linux не видит ssd при установке на ноутбук acer asipre 3 (a315-22-4147). Что делать?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Ищем в гугле мануал по установке линукса на конкретно этот ноут - если найден, то следуем этому мануалу. Если ман не найден, то пробуем следующий вариант:
    1. Диспетчер устройств -> Дисковый контроллёр -> Свойства устройства -> Сведения -> ID оборудования -> PCI/VEN_****&DEV_****&SUBSYS_*
    2. Ищем драйверы для linux по этому ID
    3. Скачиваем на флешку
    4. Загружаем с флешки линукс в live, устанавливаем драйвер и смотрим определился ли контроллёр
    5. Если определился - то либо добавляем драйвер в дистрибутив либо подсовываем его во время установки или гуглите как это сделать - ни разу не приходилось пользоваться данным вариантом
    6. Устанавливаем линукс
    Ответ написан
  • Как сделать URL - сначала регион а потом домен?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Прошу подсказки как сделать ссылку rossiya_1/example.com

    Именно так - никак. Ибо в данном случае rossiya_1/ - домен верхнего уровня, а дальше - ссылка на страницу на этом домене. А все домены верхнего уровня управляются IANA, вот тут смотрите весь список. Рекомендую почитать про DNS - что это такое и как оно работает.
    Предположу, что тут имеется ввиду вариант с поддоменом типа rossiya_1.example.com. В этом случае, вам следует сделать следующее:
    1. Установить Ngnix
    2. Добавить настройки вашего сайта в настройки Ngnix
    3. Дополнительно настроить все нужные вам поддомены
    Ответ написан
    5 комментариев
  • Возможна ли апроксимация физических систем в HDL?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, вот в первых же ссылка в гугле есть статьи и описание реализации:

    Для старта вполне пойдет любой недорогой набор для начинающих. Мануалов и статей в сети полно. На Форт-форуме есть раздел FPGA, а так же опытнейшие FPGA разработчики - вполне можете спросить совета там. Там же много тем и даже есть обучающие материалы по FPGA. Учтите, что вам потребуется топовый ПК с максимальным объёмом памяти и быстрыми SSD - и чем мощнее ПЛИС, тем более серьёзная машина вам потребуется. Время моделирования вполне может идти многие часы и сутки. А для чего-то более-менее серьезного потребуется еще и разное дополнительное оборудование по типу осциллографа и прочего. Ибо моделирование моделированием, а на практике всякое случается и приходится дебажить на самой железке.
    Если есть финансы, то лучше пройти платное обучение у специалистов. Начальный курс FPGA разработки стоит от $5-10к. Вот тут смотрите: https://plis2.ru/training.html
    Ответ написан
  • Нормально ли это часто менять языки?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    ЯП — это всего лишь инструмент. Какой нравится — такой и используйте. Хотите попробовать какой-то новый — пробуйте. Ничего такого в этом нет. А уж ужасного — тем более, так что бред эти все статьи.
    Ответ написан
    Комментировать
  • Сохранить Json файл в котором присутствует base64 отправленый без urlencode?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Пробелы вполне поддерживаются стандартом JSON - их не нужно никак экранировать и что либо делать с ними.
    Ответ написан
    2 комментария
  • Почему клик средней клавишей мыши по карточке товара на сайте Ozon в Firefox перемещает фокус на открываемую вкладку?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Настройки -> Вкладки -> Переключаться на открываемую ссылку, изображение или медиа
    Ответ написан
  • Как создать таблицу?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Использовать стандартный тег таблицы, который и предназначен для создания таблиц: https://htmlbook.ru/html/TABLE
    Ответ написан
    Комментировать
  • Как переустановить Windows 10 на ноутбуке?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    1. Делаете бэкап важных данных и документов с вашего ноутбука
    2. Качаете GParted live
    3. Качаете rufus
    4. Записываете GParted на флешку с помощью rufus (там всё просто, если что манов в сети полно)
    5. На вторую флешку так же записываете винду с помощью rufus
    6. Если флешка одна - можно использовать Ventoy (установить вентой на флешку, туда же закинуть оба образа загрузочных)
    7. Проверяете, что флешка с виндой загружается (т.е. появляется экран установщика с кнопкой "далее")
    8. Загружаетесь с GParted live
    9. Удаляете загрузочный раздел, а так же раздел с виндой, а если есть ещё какие ненужные разделы в начале диска - их тоже (можно так же удалить разделы для восстановления, если они есть - некоторые производители их делают, ни разу не пригодились и обычно там винда с мусором сразу, так что в целом они бесполезны и только место занимают), именно удаляете, а не форматируете, так же можно очистить диск полностью (отдельная кнопка там вроде есть), новых разделов не надо создавать
    10. Применяете изменения
    11. Загружаете винду
    12. Устанавливаете винду, выбрав целью пустое место на диске
    Ответ написан
    Комментировать
  • Как отследить что грузит виртуалку?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Настроить мониториг нагрузки и логирование. Заббикс, мунин, графана с прометеем и прочие варианты.
    Ответ написан
    3 комментария
  • [Python + pywin32] Как эмулировать движения курсора, клики кнопками мыши и нажатия клавиш клавиатуры в игре WoT?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Игры для работы с пользовательским вводом очень часто работают через графические API DirectX/OpenGL/Vulkan и прочее, при этом данные от системных вызовов типа оконного цикла, SendInput и прочее не используются. Сюрприз! В этом случае остаётся только три варианта:
    • Разбираться с этими API и выяснять как ему подсунуть нужные данные (не копал в эту сторону - так что без понятия возможно ли это или только ломать) (DirectInput, устаревшее)
    • Установить свой драйвер пользовательского ввода в ring0 (ядро ОС)
    • Использовать внешнее устройство, которое эмулирует физически клавиатуру и мышь и управляется через USB драйвером или прошивкой

    А вот эмуляция пользовательского ввода в нескольких окнах возможна только с помощью виртуализации. Ибо все современные ОС поддерживают только одну клавиатуру и мышку для одного пользователя (всякие специфические утилиты/случаи не рассматриваем). SendMessage/PostMessage работает только с приложениями, которые получают пользовательский ввод через оконный цикл.
    Ответ написан
    5 комментариев