Нахождение коэффициентов линейной зависимости методом наименьших квадратов

Найдем алгоритм и напишем функцию для нахождение коэффициентов линейной зависимости. Без использования библиотек. И без матриц.

Найдем алгоритм и напишем функцию для нахождение коэффициентов линейной зависимости. Без использования библиотек. И без матриц.

Я давно озадачивался вопросом: как избавить себя от трудозатрат на внедрение систем централизованного управления сертификатами и при этом дополнить существующий транспорт TCP/IP шифрованием? Представьте: весь маршрут анализируется враждебной средой, где каждый может просматривать содержимое трафика, и для каждой единицы нужны методы сокрытия. Хотелось получить прозрачный, автоматический TLS, но без возни с сертификатами, ALPN и модификацией приложений.
В итоге получилось решение в виде модуля ядра Linux — надстройки прямо над протоколом TCP. Он цепляется за netfilter-хуки LOCAL_OUT и PRE_ROUTING и прозрачно шифрует вообще все TCP-сокеты на хосте. Если модуль установлен на клиенте и сервере, весь трафик между ними автоматически идёт в криптованном виде. Это даёт колоссальный выигрыш по времени внедрения, когда нужно быстро скрыть содержимое соединений от систем анализа и демаскирования.

makc — кроссплатформенная Go-библиотека для управления мышью и клавиатурой. Без cgo, без обёрток. Внутри статьи: как я переписал её с C на чистый Go и какие подводные камни нашёл на Win32, CoreGraphics и evdev/Wayland.

Если вы работаете на Windows с веб-стеком, скорее всего, ваш терминал - это Git Bash. А если вы используете WebStorm как основную IDE, то наверняка ловили себя на мысли: «Почему я не могу просто написать webstorm . в терминале, как это делают коллеги на macOS и Linux?».
В этой статье разберём, как настроить чистый и быстрый запуск WebStorm из Git Bash.
Привет. Я программист (со скидкой на самоучку), который в 2021 году решил, что открыть две шаурмичные — хорошая идея. Спойлер: идея была так себе. Но из этого вышла полезная CRM, которой сейчас пользуются 15+ заведений. Расскажу, как я её писал, на чём сломался и почему мой код до сих пор не идеален.
Если вам нужна только техническая часть — листайте к разделу «Архитектура». Если интересна драма с бумажками и комиссиями — читайте по порядку.

Вы можете писать гениальные мысли в блоге, но читатели все равно не заинтересуются, если внешний каркас поста перегружает мозг.
На днях у клиента заметила одну фишку — рубленое на абзацы каждое второе предложение. Я искренне люблю уникальность и аутентичный формат, но психология в этом примере работает против него.
Каждый абзац — новая жизнь. Каждый абзац — пауза, в которой клиент переключает сознание на получение новых данных. Если в новом абзаце продолжается старая мысль — это считывается как рваное повествование.
Наш мозг эволюционно ленив. Когда он обрабатывает информацию, подобная структура создает препятствия, забирающие энергию на переключение внимания между блоками.
К тому же он автоматически группирует объекты, расположенные близко друг к другу, а дальние, соответственно, разделяет. Вот и получается, что абзацы воспринимаются как отдельные части, путая непрерывную мысль автора.
Если при этом не делаются акценты (жирный шрифт, подчеркивание и др.) — текст превращается в однотонный хаос, где маркеры расставлены за счет расфокусировки внимания.
Как это выглядит на практике:
Давайте сравним два варианта подачи одного и того же текста и отследим собственную реакцию при прочтении.

Продолжаем разбирать микромеханику Арифмометра Натурального. В этой части мы проведем проведем физико-математический анализ переноса разряда с точки зрения математической формулы и физического носителя.

Apple формально открыла iOS для альтернативных сторов и сторонних платежей в Европе, но сделала это так, что без калькулятора и юриста разбираться уже больно. В ЕС появилась целая матрица режимов дистрибуции и монетизации, а в США по‑прежнему нельзя поднять свой стор, но можно честно поставить кнопку «оплатите на сайте» без отдельной комиссии за сам факт ссылки.
Ниже — разбор, когда всё началось, какие есть варианты дистрибуции и монетизации в ЕС, что поменялось с 1 января 2026 года и что именно разрешили (и не разрешили) в США.
⚡ Начнем с того, что асинхронность — это конкурентное выполнение задач (мультизадачность, как если бы человек готовил обед и переключался на прочтение книги в перерывах), а синхронность — это последовательное выполнение задач (человек сначала приготовил обед, а потом уже читал книгу). Эти понятия часто путают. Теперь к делу!
🤔 Казалось бы, пусть бэкенд берёт все задачи и делает их асинхронно (то есть переключается между процессами создавая иллюзию параллельности). Но тогда при большой нагрузке бэкенду либо поступит тяжелый по вычислениям процесс и бэкенд замрет для всех, так как не сможет отвлечься от процесса, либо будет переключаться между всеми процессами, и в итоге каждый из них будет выполняться крайне долго, что тоже положит бэкенд.
🧩 Здесь мы подключаем Celery и Redis. Теперь если бэкенду попадается сложный процесс, он не нагружает себя, а создает в Redis задачу (в данном случае мы Redis используем как брокера задач, но у него есть больше возможностей). Теперь бэкенд ставит задачу, отправленную Redis, в состояние ожидания. Celery видит невыполненную задачу в Redis, добавляет в свою очередь новую задачу, последовательно выполняя задачи из очереди и возвращая результат. После выполнения Celery отмечает в Redis задачу выполненной, а в бэкенде запрос снимается с режима ожидания и получает ответ. Теперь быстрые запросы сразу получают ответ, а сложные задачи через Redis и Celery решаются последовательно, и даже если будут тормозить мы сможем подключить больше модулей Celery.

На Android есть привычная модель работы с VPN: приложение поднимает VpnService, создаёт виртуальный интерфейс, получает системную VPN-иконку и начинает пропускать через себя весь трафик устройства или выбранные приложения.
Для большинства пользователей этого достаточно. Но если хочется более гибкой схемы — например, чтобы одно приложение шло через один инструмент, второе через другой, третье напрямую, а четвёртое через отдельный proxy pipeline, — стандартная VPN-модель быстро начинает мешать.
ZDT-D — это Android root-модуль для маршрутизации трафика, DPI-инструментов, локальных proxy/tun-пайплайнов, DNS-контроля и управления сетевыми правилами по приложениям.
Это не попытка сделать “ещё один VPN-клиент”. Скорее, это попытка превратить Android-устройство в небольшой настраиваемый сетевой узел, где разные приложения могут ходить через разные маршруты.

Пытался авторизоваться в Codex Desktop App несколько часов. Codex не пропускал дальше авторизации через Google, падая на этапе получения токена, и я нигде не мог найти решение проблемы.

Всем привет! 8 мая 2026 года вышло крупное обновление Telegram Bot API 10.0, которое принесло долгожданную фичу — возможность прямого взаимодействия ботов друг с другом (Bot-to-Bot communication). Официальную документацию можно почитать здесь.
Но есть нюанс. Telegram перенес расширенные настройки ботов в новый веб-интерфейс (Mini App) внутри @BotFather. Если вы привыкли к старому текстовому меню, найти заветный тумблер включения bot2bot сходу может быть неочевидно.
Ниже — короткий гайд о том, как активировать эту функцию и быстро проверить её статус.

Я 10 лет писал энтерпрайз-код, пользовался open source и всё собирался “когда-нибудь” начать контрибьютить. В итоге сделал первый PR — и понял, что страшнее всего было не писать код, а нажать кнопку Create pull request.
Сегодня мы разберем тему локальных нейросетей и того, как можно избавиться от зависимости облачных сервисов.
Люди, использующие облачные сервисы по типу ChatGPT, Claude и др., могут иметь риски потери конфиденциальности. Так еще платя за это приличные суммы.
На сегодняшней день мощностей домашнего ПК или современного ноутбука достаточно, чтобы запустить локальную систему прямо на диске, без использования интернета.

Привет всем!
Решил поделиться небольшим проектом, который изначально собирал под себя. Последнее время я много сижу в Claude Code. Со временем поймал себя на мысли, что мне не хватает наглядности. Вся история взаимодействия, контекст сессий и куча потраченного времени просто растворяются в консоли после закрытия терминала.
Вместо очередного дашборда со скучными графиками я решил превратить историю работы в своеобразный визуальный таймлайн, который наглядно показывает твой прогресс. Так получился Bonsai — локальный визуализатор для Claude Code.

Когда нам прилетел баг «у пользователя не оформляется заказ», я открыл три вкладки: Datadog для трейсов, CloudWatch для логов и отдельный Grafana для метрик. Провёл двадцать минут, пытаясь склеить в голове события из разных систем по timestamp. Потом ещё десять — убеждая себя, что это нормально.
Это не нормально.
Проблема не в инструментах — каждый из них хорош. Проблема в том, что три источника данных не знают друг о друге. Трейс не знает, какой лог к нему относится. Лог не знает, в каком трейсе он возник. Метрики вообще живут своей жизнью.
OpenTelemetry решает именно это: единый стандарт для всех трёх сигналов — traces, metrics, logs — с автоматической корреляцией между ними. И самое важное: вы не привязаны ни к одному вендору. Сегодня Grafana, завтра Jaeger, послезавтра что угодно — код приложения не меняется.
В этой статье я покажу, как поднять полноценный observability-стек с нуля за один рабочий день. С реальным кодом, docker-compose, и результатом, которым можно пользоваться в production.

TL;DR: взял идеи из открытого DPI-инструментария (zapret, GoodbyeDPI, byedpi), выкинул C, переписал на Rust как один кросс-платформенный workspace под Windows + Linux + macOS, и в процессе обнаружил, что мой собственный «дефолтный» профиль не пробивает мой собственный провайдер. Пришлось писать sweep-харнес который перебирает 89 комбинаций (decoy × fooling × repeats × strategy) и тыкается curl-ом в discord.com и youtube.com. Один-единственный конфиг сработал. И это был не тот, который я закладывал по памяти из мануалов.
Предыстория
В январе у меня был UnblockPro — гибрид GoodbyeDPI и собственного шаперона, под Windows. Работало. Потом я портировал его на macOS — отдельный проект, отдельный код, отдельный набор багов. Когда захотел Linux, понял, что повторять третий раз пайплайн «парс TLS — modify — emit» это уже самонаказание.
Решил собрать всё заново. Один Rust-workspace, четыре крейта

Настоящей статьёй я начинаю цикл публикаций, посвящённых разбору Пользовательского Соглашения LiveLib.
В основу этого разбора положены т.н. юридические коллизии Пользовательского Соглашения LiveLib (далее – ПС) с федеральным законодательством. Чтобы было понятно всем читателям объясняю, с точки зрения права юридические коллизии – это расхождение или противоречие между различными нормами права, регулирующими одни и те же отношения. То есть, это столкновение норм права, которые предлагают различные решения для одной ситуации. В нашем случае – это столкновение норм ПС и федерального законодательства. Обращаю Ваше внимание на важный нюанс. Подобные юридические коллизии разрешаются на основе иерархии права. Это значит, что если противоречат акты разной силы, то применяется акт с высшей юридической силой. В нашем случае – это Гражданский Кодекс Российской Федерации (далее – ГК РФ) и иные акты федерального законодательства, а не ПС.
Что это означает? Что те пункты ПС, который противоречат ГК РФ или иным актам федерального законодательства, в частности Закону Российской Федерации «О защите прав потребителей» (далее - Закону) признаются ничтожными, то есть не имеющими юридической силы. Поэтому, если в ПС написано, что ресурс имеет право на то, что противоречит федеральному законодательству, то в силу вступают нормы ГК РФ или иного акта федерального законодательства.
И начинаем мы этот разбор с пункта 2.10 ПС в котором указаны права Администратора.
2.10. Пользователь соглашается с тем, что Администратор имеет право удалить учетную запись Пользователя или приостановить доступ Пользователя к услугам Сервиса в случае, если (в том числе, но не ограничиваясь):

Мой первый опыт в вайбкоде или универсальный инструмент для помощи в тестировании?
Давайте честно: каждый QA-инженер немного ленив в хорошем смысле слова. Нам не хочется тратить по 20 минут на рутину, которую можно автоматизировать. Мы постоянно ищем инструменты: один для Pairwise, второй для проверки MD5, третий для генерации данных.
В какой-то момент я понял, что мне нужно единое «окно», где будет всё. Так появился QA Helper Pro. Это мой первый серьезный опыт в разработке на Python. Весь проект написан на «вайбкоде» — когда ты просто хочешь, чтобы идея работала здесь и сейчас, а интерфейс был приятным и функциональным, я не говорю, что это идеальный инструмент, который правильно структурирован и реализован, но он работает и реально помогает в моей работе.

В этом посте разберем практический сценарий анализа защищенности в Active Directory. Также посмотрим на техники горизонтального перемещения и инструменты пентестеров.