Pull to refresh
9
0
Антон Вдовиченко @avdx

Программист

Send message

Как полностью отключить Защитник (Defender) Windows 11

Level of difficultyMedium
Reading time4 min
Views11K

За последний месяц я описал два интересных издания Windows 11 – Enterprise G в статье Windows 11 Enterprise G – Что за издание для правительства Китая и зачем оно вам? / Хабр (habr.com), и IoT Enterprise LTSC в статье Windows 11 24H2 IoT Enterprise LTSC – что за зверь, и чем он хорош? / Хабр (habr.com). В комментариях и сообщениях в личку все чаще слышу, что хорош EnterpriseG своей легкостью, в первую очередь выпиленным Защитником и телеметрией, но увы, не имеет локализации. А IoT LTSC тоже хорош и переведен, и быть ему тем на что можно наконец переходить тем, кто еще живет на Windows 7, если бы не Defender.

Способов удалять телеметрию есть много, я обычно просто штатно отключаю при установке то, что дают выключить и не парюсь, в сети есть проекты вычищающие глубокие хвосты.

С Защитником тоже опробовано много способов борьбы. Защитник с каждой версией становится все более устойчивым к попыткам себя отключить.

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

По итогам тестирования мной также признаны неработоспособными способы отключения Защитника через ProductPolicy и редактирование MUM файла, описывающего компоненты входящие в издание ОС, так как так или иначе, при перезагрузке или обновлении Защитник возвращается в строй. Встроенные групповые политики (и локальные политики через gpedit.msc) позволяли его отключить в Windows 10, но в Windows 11 встроено значительно больше функций защиты, их нужно отключать более грубо вручную.

Как полностью удалить Защитника?
Total votes 25: ↑20 and ↓5+20
Comments67

Умножение Монтгомери

Level of difficultyHard
Reading time11 min
Views15K

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

Один из вариантов эффективного решения — умножать по модулю, вообще при этом не используя операции деления, с помощью алгоритма Монтгомери.

Про него я и хотел бы поговорить.

Читать далее
Total votes 32: ↑32 and ↓0+43
Comments7

Ускорение JPEG-кодирования с использованием нескольких потоков

Reading time7 min
Views5K
Стандарт JPEG появился в 1992 году. С тех пор JPEG-изображения оказались неразрывно связаны с цифровой фотографией, они используются практически в каждом приложении, которое работает с изображениями фотографического качества. Причина того, что стандарт JPEG был так быстро принят всем миром, того, что он стал практически универсальным способом хранения изображений, заключается в том, что в нём одновременно используется несколько подходов к сжатию изображений. Один из этих подходов основан на понимании ограничений системы зрительного восприятия информации человеком, и того, какую информацию, наиболее важную, нужно сохранить, а от какой, менее важной, можно избавиться.


Читать дальше →
Total votes 22: ↑21 and ↓1+34
Comments18

Преобразование Уолша-Адамара

Level of difficultyHard
Reading time11 min
Views13K

На сайте hackerrank.com есть отличная задача. По заданному массиву short[] A; найти максимальное количество его подмассивов, xor элементов которых будет одинаковым. Сам этот xor тоже нужно найти.

Максимальная длина массива равна 105, так что квадратичный алгоритм не укладывается в лимит по времени исполнения. Я в своё время с этой задачей не справился и сдался, решив подсмотреть авторское решение. И в этот момент я понял почему не справился — автор предлагал решать задачу через дискретное преобразование Фурье.

Читать далее
Total votes 64: ↑64 and ↓0+64
Comments5

Объявление и инициализация переменных в C++

Level of difficultyMedium
Reading time41 min
Views20K


Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это шестая статья из серии, список предыдущих статей приведен в конце в разделе 7. Серия ориентирована на программистов, имеющих определенный опыт работы на C++. Данная статья посвящена объявлению и инициализации переменных.


Переменные являются основой любого языка программирования. В языках со статической типизацией, к которым относится C++, все переменные должны быть объявлены, их тип определяется на стадии компиляции и не может меняться в процессе работы программы. Тип переменных указывается при объявлении явно или выводится компилятором на основе типа инициализирующего выражения.


Во многих языках программирования объявление переменных относится к довольно простым темам, но вот в C++ это не совсем так. Конечно, простые варианты обычно не вызывают затруднений, но вот более сложные случаи могут озадачить даже достаточно опытных программистов. Попробуем разобраться во всех тонкостях объявления переменных. Также рассмотрим тему инициализации, так как чаще всего переменные инициализируются вместе с объявлением.

Читать дальше →
Total votes 27: ↑26 and ↓1+31
Comments48

Как правильно дифференцировать дискретные функции (Часть 2. Все-таки, МКЭ?)

Level of difficultyMedium
Reading time10 min
Views7.8K

Публикация является продолжением обсуждения алгоритмов вычисления первой производной дискретной функции (функции, заданной массивом {аргумент: значение}, или массивом узловых значений). В части первой обсуждались функции из библиотеки NumPy, и был предложен альтернативный алгоритм, повышающий точность расчетов на границах области определения функции. В настоящей публикации предложены 2 алгоритма на основе метода конечных элементов (МКЭ, Finite Elements Method), один из которых показал на тестовых функциях лучшие результаты в сравнении с альтернативами.

Читать далее
Total votes 17: ↑17 and ↓0+17
Comments44

Монотонная кубическая интерполяция

Level of difficultyMedium
Reading time8 min
Views4K

Привет, Хабр!

В данной статье разобран алгоритм монотонной кубической интерполяции, предложенный Фритчем и Карлосоном в работе [1].

На рисунке красным обозначен результат обычной кубической интерполяции Эрмита, а синим - монотонной, кругами - опорные точки траектории.

Примеры кода написаны на C++, исходники всей библиотеки лежат здесь. Также написана копия библиотеки на Java, исходники лежат здесь.

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments11

Задача коммивояжера (TSP) точное решение — метод целочисленного линейного программирования (Integer programming)

Reading time20 min
Views23K

Дочитав эту статью до конца, вы сможете решать точно задачу коммивояжёра на сотню элементов за считанные секунды!

Заинтригованы? Тогда, добро пожаловать под кат.

Читать далее
Total votes 124: ↑124 and ↓0+124
Comments40

Поверхность по сети кривых

Reading time11 min
Views2.6K

Продолжаем серию постов о сложной математике, которую невозможно описать простыми словами. В этот раз мы поговорим о функционале поверхностного моделирования в геометрическом ядре C3D Modeler – поверхности по сети кривых.

Заранее предупреждаем. Дальше вам встретится множество геометрических терминов и формул. А кто говорил, что будет легко?!

О различных аспектах построения поверхности по сети кривых, а также полезных для ее практической реализации тонкостей, рассказывает Павел Егоров, математик-программист в C3D Labs.

Поверхность по сети кривых является ценным инструментом в инженерном проектировании геометрических объектов со сложными обводами. Она образуется двумя семействами кривых, которые, взаимно пересекаясь, образуют сетку фрагментов, имеющую матричную структуру. Помимо точного прохождения через ее образующие кривые поверхность по сети кривых также позволяет задавать для них значения производных, что оказывается очень полезным для обеспечения различных типов граничных условий. На рисунке 1 показана поверхность, построенная по двум кривым в каждом направлении и использующая данное свойство для обеспечения касательного сопряжения с другой поверхностью.

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments3

Игровой программный рендеринг в 2022-м году

Reading time28 min
Views26K


Программный рендеринг был широко распространён в играх на ПК до повсеместного распространения т. н. 3d-ускорителей (видеокарт). Каждая игра содержала свой собственный код рендеринга, каждая игра имела свои уникальные особенности в нём. Но с распространением видеокарт программный рендеринг в играх умер.


Я раньше задавался вопросом, а что было бы, если бы программный рендеринг был бы до сих пор распространён? В конечном итоге, я решил реализовать свой программный рендеринг, нацеленный на современные процессоры, чтобы это узнать.

Читать дальше →
Total votes 196: ↑196 and ↓0+196
Comments57

Как оценить реальную производительность своего кода

Reading time9 min
Views14K

Код, который мы пишем, и который будет исполнен процессором, — две разные вещи. На уровне ассемблера существует миллион вариантов, в каком виде интерпретировать и запустить высокоуровневые команды. Более того, современные компиляторы сильно оптимизируют код, а результат этой оптимизации похож на магию.
Читать дальше →
Total votes 52: ↑49 and ↓3+62
Comments3

Введение в триангуляцию

Reading time4 min
Views17K

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

Читать далее
Total votes 10: ↑9 and ↓1+12
Comments3

Физика вращения 3д тел

Reading time11 min
Views11K

Когда я раньше задумывался о вращении в 3д, мне было неуютно. Оно казалось сложным. Вспомнить, например, эффект Джанибекова с прецессией свободно вращающейся гайки. Настало время разобраться!

В статье Вас ждут математика, физика, а заодно численное моделирование и визуализация в libgdx.

Можно провести аналогии между массой тела в поступательном движении и моментом инерции. Разница только в том, что масса выражается одним-единственным числом, а момент инерции - матрицей 3х3. В большинстве примеров ограничиваются вращением в 2д, где существует только одна возможная ось вращения, либо симметричными телами типа мяча, когда момен инерции по всем осям одинаковый. Вместо этого я рассмотрю наиболее общий случай.

Читать далее
Total votes 45: ↑45 and ↓0+45
Comments19

Как можно установить «опасный» российский сертификат в Windows

Reading time3 min
Views42K

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

Читать далее
Total votes 47: ↑41 and ↓6+45
Comments76

Операционная система FreeBSD на ноутбуке Lenovo

Reading time117 min
Views44K

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

Моя статья посвященная настройке САПР КОМПАС-3D под FreeBSD получила ряд одобрительных комментариев, поэтому мне захотелось продолжить тему «FreeBSD на десктопе». К тому же, есть добрые предпосылки — недавно я приобрел новый современный ноутбук Lenovo Ideapad 3 Gaming взамен окончательно рассыпавшегося на несколько частей Asus VX7, а с ним и массу приятного и затейливого опыта установки и настройки ОС FreeBSD для работы на новом «железе». В этой статье я не будут касаться установки и настройки специализированного ПО и прочих САПР, будет рассмотрен только системный вопрос: установка операционной системы, драйверов, патчей, библиотек, настройка и борьба с железом. Будет много выдержек из системного руководства (мануала - man) — уж сильно я к нему пристрастился за последние 130 лет.

Ссылка на статью в формате PDF для "офф-лайн" прочтения

Продолжить читать журнал
Total votes 90: ↑90 and ↓0+90
Comments92

Нужен бесплатный SSL-сертификат? Легко

Reading time3 min
Views155K

Если вам нужен SSL-сертификат, но вы не являетесь специалистом в веб-технологиях, то эта заметка для вас. Описан простой способ выпуска базового SSL-сертификата Let’s Encrypt в ручном режиме, на локальном компьютере с Windows, с помощью приложения Certbot. Этот способ позволяет получить файлы SSL-сертификата в папку на своём локальном компьютере, после чего можно установить сертификат на свой хостинг.

Потребность в SSL-сертификатах возникла у меня в связи с тем, что срок старых истёк, а создать новые оказалось невозможным из-за возникших ограничений на доменные зоны RU и РФ. Если у вас такая же проблема или вам просто надоело искать веб-сервис для выпуска SSL-сертификатов, то эта заметка вам поможет.

Поскольку я пока не знаю наилучшего пути, то ниже просто опишу ту последовательность действий, которую сам выполнил и которая позволила мне создать SSL-сертификаты для десяти своих доменов (в том числе в зонах RU и РФ), а значит и вам этот способ может помочь.

Читать далее
Total votes 39: ↑23 and ↓16+13
Comments89

Полковнику никто не пишет. Отправка писем по SMTP после изменения политики Google. С примером на Python

Reading time2 min
Views21K

Недавно Google изменил политику по отношению к доступу к аккаунту из неизвестных источников. Давно приходили предупреждения, но я до последнего надеялся, что обойдется и не коснется меня. Наивный.

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

Читать далее
Total votes 19: ↑18 and ↓1+20
Comments14

RustDesk — self-hosted аналог TeamViewer

Reading time2 min
Views92K

Представляю вашему вниманию ваш будущий маленький Teamviewer. Полностью открытый, с клиентами на все платформы. Заявлено небольшое потребление серверных ресурсов. Из коробки умеет ходить через наты, как любой уважающий себя AnyDesk. Поскольку ваш сервер, скорее всего ближе к вам географически, то и картинка будет передаваться быстрее, да и зашифрован трафик будет вами же.

Читать далее
Total votes 66: ↑65 and ↓1+86
Comments41

Нормали и обратное транспонирование, часть 3: внешняя алгебра над сопряжённым пространством

Reading time12 min
Views3.3K

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

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

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments7

Объяснение фильтра Калмана в картинках

Reading time9 min
Views43K
image

Я обязан рассказать вам о фильтре Калмана, потому что он выполняет просто потрясающую задачу.

Как ни удивительно, о нём, похоже, знают немногие разработчики ПО и учёные, и это печалит меня, потому что это очень обобщённый и мощный инструмент для объединения информации в условиях присутствия неопределённости. Иногда его способность извлечения точной информации кажется почти магической, а если вы думаете, что я слишком много болтаю, то взгляните на это видео, в котором я показываю, как фильтр Калмана определяет ориентацию свободно плавающего тела, посмотрев на его вектор скорости. Потрясающе!
Читать дальше →
Total votes 116: ↑116 and ↓0+116
Comments31
1

Information

Rating
Does not participate
Registered
Activity