Задать вопрос
  • Открывается сам по себе Chrome с уже запущенной страницей с рекламой или телеграмм каналом, что делать?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    1. Бэкап важных данных
    2. Полный сброс телефона

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

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    В общем случае - да, нужен. В целом же многое зависит от конструкции корпуса, направления воздушных потоков и организации внутреннего пространства. На вдув вентиляторов должно быть больше, чем на выдув или они должны работать на более высоких оборотах, чем на выдув. Это нужно для создания избыточного давления внутри корпуса - чтобы воздух, попадающий внутрь корпуса проходил сначала через фильтры и не было подсоса пыльного воздуха снаружи через щели. Чем меньше препятствий воздуху, чем ровнее и больше потоки - тем лучше охлаждение.
    Ответ написан
  • Материнская плата сгорела?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, скорее всего согрела - нужна глубокая диагностика железа. А это прямой путь в СЦ.
    Ответ написан
    4 комментария
  • Как одновременно использовать npm_module на macOS и windows?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    В общем случае - никак. Нельзя использовать идентичные бинарные и платформенно-зависмые модули на разных платформах. Во время установки ставится версия модуля для текущей платформы. Версии для других платформ не устанавливаются. Некоторые бинарные модули даже собираются на месте с использованием доступных компиляторов. Так же есть модули, которые используют системные API вызовы и тоже устанавливаются версии в соответствии с системой и платформой. Конечно, многие модули написаны на чистом JS и не зависят от платформы - вот такие модули можно устанавливать на одной платформе и переносить на другую. Но, у них могут быть зависимости, которые зависят от платформы. Поэтому у вас только один путь - виртуализация.
    1. Установить VirtualBox или UtmApp
    2. Установить х86-64 винду в виде виртуальной машины
    3. Устанавливать модули внутри винды и результат переносить на целевую машину (есть вероятность, что что-то будет не работать из-за симлинков или устанавливаемых системных зависимостей - тут только по ситуации вручную всё ставить и настраивать)
    Ответ написан
    1 комментарий
  • Перестала работать подсветка логотипа GIGABYTE?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Попробуйте переустановить утилиту и откатить драйверы, если они обновились. Если не заработает - вам прямая дорога в магазин и сдавать её по гарантии.
    Ответ написан
    Комментировать
  • Почему функции по смещению свойств объектов работают только с объектами, у которых свойства состоят из букв?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Потому что в стандарте JS порядок свойств в объекте не гарантирован. Т.е., там может быть абсолютно любой порядок. Так что ваша функция бессмысленна. Если вам нужна сортировка - используйте массивы.
    Ответ написан
    4 комментария
  • Как узнать ClientSize окна в wpf приложения?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Если вам именно самого окна в нормальных координатах, то можно использовать WinApi:
    https://github.com/VoidVolker/LockScreen/blob/mast...
    public static class Native
    {
        [DllImport("user32.dll")]
        private static extern bool GetWindowRect(IntPtr hwnd, ref RECT rectangle);
    
        [DllImport("user32.dll")]
        private static extern bool GetClientRect(IntPtr hwnd, ref RECT rectangle);
    
        public RECT GetWindowPos(IntPtr hwnd)
        {
            var r = new RECT();
            GetWindowRect(hwnd, ref r);
            return r;
        }
    
        public RECT GetClientPos(IntPtr hwnd)
        {
            var r = new RECT();
            GetClientRect(hwnd, ref r);
            return r;
        }
    
        [Serializable]
        [StructLayout(LayoutKind.Sequential)]
        public struct RECT(int left, int top, int right, int bottom)
        {
            public int Left = left;
            public int Top = top;
            public int Right = right;
            public int Bottom = bottom;
            public readonly int Width => Right - Left;
            public readonly int Height => Bottom - Top;
        }
    }

    Значения RenderSize и ActualWidth/ActualHeight будут после вычисления положения самого элемента. Скорее всего вы слишком рано пытаетесь получить к ним доступ. Запустите ваше приложение и в отладчике посмотрите в дереве окон значения.
    Плюс учтите, что в WPF свои пиксели, которые надо конвертировать в нормальные и обратно с учётом DPI текущего монитора, на котором располагается окно (на SO есть готовый код). И из-за этого WPF окно невозможно 100% точно позиционировать в нужных координатах и нужного размера в многомониторной конфигурации.

    Пример работы с визуалом элемента при его инициализации:
    public class MyControl : Control
    {
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            // Размеры и позиция элемента вычислены и он готов к работе
        }
    }

    https://github.com/VoidVolker/LockScreen/blob/mast... - пример из реального проекта.
    Т.е., наследуете свой элемент от базового класса или любого другого элемента и вклиниваетесь в событие применения шаблона элемента. В разметке XAML добавляете ссылку на класс и спокойно используете свой элемент как обычно.
    Ответ написан
    Комментировать
  • Как запрос POST при отправке формы на e-mail превращается в GET и что сделать, чтобы этого не было?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    action="mailto:any@adress.net"
    https://htmlbook.ru/html/form/action
    В данном случае никаких запросов не создаётся, а происходит по факту редирект на урл вида:
    mailto:any@adress.net?subject=...&body=cleint-name...cleint-phone-number...

    А дальше уже этот урл обрабатывается на уровне операционной системы. Для отправки же именно запроса следует использовать ссылку.
    Ответ написан
  • Какие принципы нужно соблюдать при разработке фреймворков по типу Bootstrap/Tabler, UIKit и прочих?

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

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, вполне комфортно. И даже с 43" плоским монитором вполне комфортно, а к небольшому искажению картинки на краях привыкаешь быстро и никаких проблем не возникает. Естественно большой стол и комфортная посадка на достаточном расстоянии от монитора обязаны быть. Для 43" - около метра. А вот для мониторов больше 43" надо либо ещё дальше сидеть и вешать монитор на стену и кронштейн, а стол отодвигать от стены - либо брать изогнутый. Изогнутых мониторов 43" - крайне мало, а большего размера - ещё меньше. Например 55" Samsung Odyssey Ark G97NC - но там матрица VA (так-то матрица неплоха, да и самсунг - но всё равно IPS/OLDE будет лучше). В общем, рекомендую брать большой экран, минимум 32" - это очень удобно. Особенно для разработчика. И кино смотреть тоже очень комфортно именно на большом экране.

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

    В целом же при работе с текстом важно разрешение экрана и частота развёртки. 4к и 120герц - крайне желательны. Размер - от 32". Смысла в мониторе меньшего размера не вижу. Рекомендую сходить в шоурум (например) или любой магазин и посмотреть своими глазами, а так же почитать статьи и обзоры. Матрица - IPS или OLED/QD-OLED. Вот тут хороший разбор всех технологий по мониторам: https://habr.com/ru/articles/687782/
    Ответ написан
    2 комментария
  • Почему скачет пинг?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Вот поэтому:
    Сижу через WIFI

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

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Например Zabbix, Munin, Grafana + Prometheus.
    Ответ написан
    2 комментария
  • Что произойдет с кабелем usb 3.0 если в нем будет оборвана жила? Он опустится до 2.0 или в принципе откажется работать?

    VoidVolker
    @VoidVolker Куратор тега Железо
    Dark side eye. А у нас печеньки! А у вас?
    Зависит от того, какая именно жила - там их целый пучок. Если раньше диск определялся как 3.0, а теперь как 2.0 - то да, такое вполне возможно. Замените кабель и проверьте результат.
    Ответ написан
    Комментировать
  • Есть проблемка с symlinks... Как деплоить с минимальным downtime?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    1. Деплой в каталог по номеру выполняемой задачи
    2. Выполнить скрипты подготовки деплоя приложения
    3. Удалить симлинк на текущую версию проекта
    4. Создать новый симлинк на свежую версию
    5. Выполнить скрипты завершения деплоя приложения

    А если запустить два-три инстанса приложения - то можно их обновлять по очереди и без полной остановки проекта. Само собой если в коде проекта допускается работа в несколько инстансов.
    Ну и если что-то пойдёт не так - можно быстро откатить версию.
    Ответ написан
  • Как два монитора подключить к одному пк и переключать их на второй пк?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Есть, называется KVM свитч - их полно всяких разных. Если надо 4к - вот тут уже выбор небольшой и надо смотреть обзоры и статьи по конкретным моделям.
    Ответ написан
    Комментировать
  • Существует ли USB клавиатура-NumPad игнорирующая состояние NumLock?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Программное решение для винды:
    1. Скачиваете KeyTweak / RemapKeyboard (или любой аналог для переназначения клавиш)
    2. Переназначаете цифры на нампаде на обычные цифры
    3. Перезагружаете ПК
    Ответ написан
    4 комментария
  • Как подключить два или более монитора к macbook m1?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Только через специальную док-станцию с дополнительным видеоконтроллёром, т.к. Air и Pro M1 поддерживают только один внешний монитор. В характеристиках этот момент, кстати, указан. Или ещё можно подключить iPad вторым монитором.
    UPD. Модели док-станций: Dell d6000 (спасибо SirVantuz)
    Ответ написан
  • Можно ли получить значение свойства, прототип которого помечен в интерфейсе атрибутом?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    using System.Reflection;
    
    namespace ConsoleAppTest
    {
        public static class Program
        {
            private static void Main(string[] args)
            {
                Test obj = new() { Prop1 = "Prop1 Value" };
                // Получаем тип объекта
                Type objType = typeof(Test);
                // Получаем список интерфейсов
                Type[] interfaces = objType.GetInterfaces();
                foreach (Type iface in interfaces)
                {
                    // Получаем список свойств интерфейса
                    PropertyInfo[] ifaceProperties = iface.GetProperties();
                    foreach (PropertyInfo prop in ifaceProperties)
                    {
                        // Ищем нужный аттрибут в свойстве
                        Attribute? attribute = prop.GetCustomAttribute<TestAttribute>();
                        if (attribute != null)
                        {
                            // Получаем значение свойства
                            object? propValue = prop.GetValue(obj); // -> Prop1 Value
                        }
                    }
                }
            }
        }
        
        [AttributeUsage(AttributeTargets.Property)]
        public sealed class TestAttribute : Attribute
        { }
    
        internal sealed class Test : ITest
        {
            public string Prop1 { get; set; } = string.Empty;
        }
    
        internal interface ITest
        {
            [Test]
            public string Prop1 { get; set; }
        }
    }
    Ответ написан
  • Можно как то улучшить сигнал мобильного интернета где работают глушилки?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Если кратко и упрощённо: разве что можно попробовать более дорой девайс с более чувствительным приёмником, более мощным передатчиком и более узконаправленной антенной, а так же более качественными усилителем и фильтрами помех. Топ - усилитель непосредственно в антенне, а из него уже идёт ethernet кабель в дом в роутер. Сделать что-то ещё вряд ли получится просто потому что мощность гражданских радиоустройств ограничена законодательно. А у военных устройств - нет. Так что глушиться будет всё равно: более дорогой девайс может лучше поймает сигнал, а может нет. Ну и более чувствительный приёмник точно так же и помехи поймает лучше.
    Ответ написан
    4 комментария
  • Как учить понять школьную геометрию?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Старые советские учебники вам вам в помощь. Есть учебники, где всё достаточно просто расписано и объяснено - ищите в гугле по отзывам. Года - пятидесятые, примерно. Может есть и более свежие адекватные издания.
    Ответ написан
    Комментировать