Обновить
0
@mrselfdestruct99read⁠-⁠only

Пользователь

Отправить сообщение

Немного извращений из мира прокси и VPN

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели55K

XTLS-Reality, XHTTP, Naiveproxy и всякие там AnyTLS - это не интересно. Давайте копнем чуть глубже и посмотрим, где прячется настоящее безумие. Особенно учитывая, что мы живем во времена, когда даже самые, казалось бы, безумные вещи, могут оказаться весьма полезными чтобы не сойти с ума.

Читать далее

Давай разрушим эти стены, их здесь быть не должно…

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели16K

Три года назад я написал статью “Интернет-цензура и обход блокировок: не время расслабляться”. Перечитывая ее сейчас, спустя три года, не могу избавиться от двоякого чувства: с одной стороны я почти во всем оказался прав касательно того, как будут развиваться события, усиливаться блокировки, и регулироваться законодательство. С другой стороны, кое в чем я тогда серьезно ошибся.

А именно: слишком уж я надеялся на то, что доблестные фильтраторы интернета будут заботиться об уменьшении побочных эффектов и так называемого collateral damage, и поэтому будут вынуждены изобретать более сложные технологии детектирования, продолжая увлекательную игру в кошки-мышки. Реальность же оказалась гораздо прозаичнее: зачем думать, когда в руке кувалда? В результате чего имеем следующее: часть детектирования откровенно тупая (например, блок нескольких параллельных подключений к одному IP, что решается использованием gRPC-транспорта для VLESS или XHTTP-транспорта с правильными настройками мультиплексирования), а часть - еще тупее, а именно, никакого детектирования, а тупо бан популярных хостеров и облачных провайдеров целыми подсетями /16 и даже /8 - в результате чего или нельзя подключиться по TLS вообще, или можно, но соединение фризится после передачи примерно 16 килобайт данных, или же блок срабатывает на целую подсеть после случайного обращения к какому-нибудь “плохому” IP-адресу. За анализ огромное спасибо товарищу @0ka и его статьям “РКН создали белый список для 72 AS, но пострадали 391 AS (>225 млн IP адресов)”  и “РКН создали список подозрительных айпи адресов (динамическая блокировка 47 AS)”.

Читать далее

Шпаргалка по настройке VPS на Debian/Ubuntu (2025)

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели33K

Наконец-то я её доделал! Шпаргалка по настройке свежего Ubuntu/Debian VPS, которую начинал писать, когда ещё сам был новичком.

Вы только что купили сервер, а что дальше? Каждый раз я гуглил и пошагово делал одно и то же, тратил на это много времени, пока не собрал всё в одном месте. Теперь за 15–20 минут вы можете превратить «голый» VPS в безопасную и удобную машину.

Этот базовый минимум с чёткими командами и объяснениями. Никакого Ansible и сложностей — чистая ручная настройка. Подойдёт всем, кто только осваивает Linux, и каждый раз не знает, с чего начать.

Читать далее

Claude Code — полный гайд и обучение для новичков с нуля

Уровень сложностиПростой
Время на прочтение40 мин
Охват и читатели94K

В этой статье ты получишь полный гайд по Claude Code.. В одной этой статье вся информация, которая тебе нужна.

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

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

Все что было запущено на Claude по состоянию на 23 марта 2026 года, здесь будет охвачено: как настроить каждую функцию, в каких сценариях её использовать и какие лучшие практики реально работают. Понимание этих различий, это именно то, что отделяет «вау, прикольно» от «реально перестроил рабочий процесс».

Читать далее

Как настроить AI-агента под проект: контекст, rules, skills, MCP — конспект двух вебинаров

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели11K

Цепочка короткая: сначала был просто автокомплит, потом появились чаты, в которые надо было руками копировать код туда-обратно (и человек выступал прокси между моделью и проектом — «много ручной работы, контекст рвётся»). Потом пришли агенты, которые живут прямо в проекте, читают и правят файлы, запускают команды. Сверху — агентские системы, которые координируют нескольких агентов и решают проблему перегрузки одного контекста.

Где живёт агент: три класса инструментов

Читать далее

Соседняя очередь всегда движется быстрее

Время на прочтение13 мин
Охват и читатели29K

Вы не используете очередь? Вы просто не умеете её готовить. Но прежде чем этому научиться, нужно разобраться, что это вообще такое и где это применяется. Потому что большинству достаточно 10 000 запросов в секунду, а это дает любой брокер. Но если вам нужно больше, придется погрузиться в очереди достаточно глубоко.

Расскажу, что такое очереди, зачем они нужны и как работают. На примере нескольких сценариев объясню, как устроены очереди и какие есть решения. Какие у очередей самые распространенные проблемы и как их избежать. В чем отличия брокеров, их плюсы и минусы, и как все это использовать в своих целях.

Читать далее

Как одна OC может запускать приложения из разных миров

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели16K

Когда мы разрабатываем настольную операционную систему, очень легко попасть в архитектурную ловушку: начать строить систему вокруг одного типа приложений. Исторически так и происходило: Windows запускала Windows‑приложения, macOS запускала macOS‑приложения и Linux — Linux‑приложения. Но пользователь живет не в этом мире. Ему неважно, на каком языке написана программа, под какую платформу она создавалась и какая у нее экосистема. Он хочет, чтобы нужные приложения запускались у него быстро и максимально удобно.

Привет, Хабр! Меня зовут Илья Клементьев, я старший инженер‑программист в отделe разработки сервисов настольной ОС в YADRO. Современные ОС постепенно двигаются в сторону универсальных хостов — то есть систем, которые способны запускать приложения из разных программных экосистем. В статье я расскажу, как можно запускать Android‑ и Windows‑приложения внутри Linux, какие технологии для этого используются и как устроена многоуровневая архитектура системы с виртуальной машиной и контейнерами.

Читать далее

Quality Gates в разработке: делаем качество частью процесса

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели8.9K

В разработке качество часто ломается не только на самих багах — но и в тех местах, где работа переходит от одного этапа к другому без ясных условий. Задача уже поехала дальше, хотя acceptance criteria ещё сырые. Формально её можно тестировать, но по факту сначала нужно собирать контекст. Пайплайн зелёный, при этом важная проверка вообще осталась за его пределами.

Такие ситуации обычно показывают не частную ошибку, а устройство процесса в целом. Когда важные условия нигде не закреплены, команда расплачивается за это уточнениями, возвратами и лишней синхронизацией. И напротив — если критерии перехода определены заранее, работать проще. Поэтому Quality Gates для нас в Островке — не только способ ничего не упустить, но и понятный маркер того, насколько процесс разработки вообще выстроен и управляем. 

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

Под катом — практический разбор того, что вообще можно считать Quality Gate, где такие механизмы реально работают и как подбирать их под задачи команды.

Читать далее

Как мы строим OLTP-ядро: от API-контрактов до eBPF-проб

Уровень сложностиСложный
Время на прочтение17 мин
Охват и читатели9.3K

В статье показываем контракты будущей OLTP-СУБД: как разделены слои ядра, зачем нужен per-tablespace page size, почему конфигурация уходит в adaptive tuning и как мы встраиваем USDT/eBPF-наблюдаемость прямо в бинарник.

Читать далее

DevGlossary: инженерный словарь терминов программирования в Markdown

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели11K

Иногда я натыкаюсь на термин, который в целом понимаю, но в такие моменты хочется не просто «узнать перевод», а именно сверить часы: правильно ли я его интерпретирую, не упускаю ли важный нюанс, не смешиваю ли его с соседними понятиями.

Это особенно заметно в тех темах, где термины похожи по звучанию, но расходятся по смыслу. Например, где проходит граница между composition и aggregation, чем concurrency отличается от parallelism, как на практике воспринимать idempotency, optimistic locking или bounded context.

В какой-то момент я понял, что мне не хватает не очередной заметки в закладках и не разрозненных ссылок на статьи, а собственного, нормально структурированного словаря. Так появился DevGlossary — инженерный словарь терминов программирования в формате Markdown.

Читать далее

Стили интеграции: от файлов до событий — как выбрать правильно

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели7.3K

Выбирать стиль интеграции приложений — всё равно что выбирать фундамент для дома. Ошибёшься — и переделывать придётся, когда стены уже стоят.

В этой статье я разбираю четыре основных стиля интеграции: передача файлов, общая база данных, удалённый вызов процедур (RPC) и асинхронный обмен сообщениями (Messaging). Без воды, на реальных примерах — включая историю провала TSB Bank, который стоил сотен миллионов фунтов.

Вы узнаете:

▪️ почему общая база данных — это антипаттерн для микросервисов;
▪️ как асинхронность спасает прод, когда падают соседние сервисы;
▪️ какие best practice используют команды, чтобы не получить распределённый монолит.

Если вы архитектор, тимлид или разработчик, который хочет строить надёжные системы — добро пожаловать под кат.

Читать далее

Как ТСПУ ловит VLESS в 2026 и почему XHTTP — следующий шаг

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели237K

Разбор методов детекции, которые работают прямо сейчас. JA3/JA4-отпечатки, поведенческий анализ и архитектура XHTTP, которая закрывает именно эти дыры

Если твой VLESS+Reality сервер лёг в последние месяцы — ты не один. В сообществах фиксируют волны блокировок, которые раньше не достигали хорошо настроенных Reality-серверов. Что конкретно изменилось, как это устроено на уровне алгоритмов — и почему XHTTP сейчас выглядит как правильный следующий шаг.

Читать далее

Модель Акторов и C++: что, зачем и как?

Время на прочтение20 мин
Охват и читатели45K

Данная статья является доработанной текстовой версией одноименного доклада с конференции C++ CoreHard Autumn 2016, которая проходила в Минске в октябре прошлого года. Желание сделать эту статью возникло под впечатлением о том, что в мире C++ разработчики как бы делятся на два больших и не пересекающихся лагеря. В первом лагере находятся матерые спецы, которые все видели, все знают и все умеют, за плечами у которых десятки собственноручно написанных реализаций Модели Акторов, внутрях у которых хитрые, конечно же самостоятельно сделанные, lock-free очереди и state-of-the-art механизмы обслуживания сообщений. Такие проффи сами часами могут рассказывать про тонкости многопоточного программирования (только почему-то редко это делают). Во втором лагере — зеленые новички, которых волею судьбы занесло в мир C++, которые пока слабо представляют себе различия между unique_ptr и shared_ptr, про шаблоны только слышали, а в области многопоточности имеют поверхностное впечатление только о std::thread, std::mutex и, может быть, std::condition_variable. Для людей из первого лагеря я вряд ли что-нибудь интересное расскажу, а вот разработчикам из второго лагеря попробую вкратце рассказать о том, что Модель Акторов в C++ — это нормально. И что есть ряд готовых инструментов, на примере которых можно увидеть, что же это такое.

Читать дальше →

Итоги «заблокированного» 2025 года

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели144K

Привет! Это команда AmneziaVPN, и нам есть о чём вспомнить вместе с вами в уходящем 2025 году. Он стал временем непрерывной борьбы VPN-сервисов с цензорами, что привело к технической эволюции с обеих сторон.

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

Читать далее

Пишем свой кодек для JSON с фиксированной схемой: опыт разработчика и сравнение производительности

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели8.4K

Привет, Хабр! Я Никита Пешаков, ведущий инженер-программист в компании YADRO. Шесть лет работаю в телеком-направлении, а прямо сейчас разрабатываю ядро опорной сети 5G. Хочу поделиться, как в нашем продукте мы кодируем и декодируем JSON, и сравнить бенчмарки нашего кодека с библиотекой Glaze.

Читать далее

Многопоточность в современном C++: Lock-Free программирование, Memory Ordering и Atomics

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели12K

Многопоточное программирование в C++ традиционно ассоциируется с мьютексами, condition variables и потенциальными проблемами вроде deadlocks и race conditions. Однако современные стандарты C++ (начиная с C++11 и далее) предоставляют инструменты для написания высокопроизводительного многопоточного кода без классических блокировок. В этой статье рассмотрим продвинутые техники: lock-free программирование, атомарные операции и различные модели упорядочивания памяти.

Читать далее

Поговорим об оптимизирующих компиляторах. Сказ первый: SSA-форма

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели24K

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

Коротко обо мне. Меня зовут Макс, и так получилось, что я вот уже 10 лет, почти с самого начала своей карьеры, занимаюсь оптимизирующими компиляторами. Я начинал в Intel, потом перешёл в Azul Systems, год провёл в Cadence и вернулся обратно, всё это время занимаясь компиляторными оптимизациями для Java, C++ и нейросетевых моделей. На момент написания статьи у меня чуть за 900 патчей в LLVM, большинство из них посвящено цикловым оптимизациям.

За это время я провёл десятки собеседований на позиции как интернов, так и инженеров сеньорного уровня, и довольно часто люди, приходя на эти собеседования, многих вещей не знают или знают поверхностно. И я подумал: а мог бы я написать такой цикл статей, чтобы человек, прочитав их, узнал бы всю ту базу, которая, на мой собственный взгляд, необходимо начинающему компиляторному инженеру? Очень бы хотелось, чтобы новичку в этой области можно бы было дать один (относительно небольшой по объёму) набор текстов, чтобы он получил оттуда всё необходимое для старта. Это не перевод, текст оригинальный, поэтому в нём могут быть ошибки и неточности, которые я буду рад исправить, если вы мне их укажете.

Итак, поехали.

Погрузиться

BPF CPU Scheduler: не нравится стандартный планировщик в Linux? Напиши свой

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели12K

Всем привет! В статье расскажу про относительно новую возможность написания собственных CPU планировщиков для Linux с помощью BPF. Разберёмся, для чего это нужно, как работает, а также посмотрим на примеры уже написанных планировщиков.

Читать далее

Как устроена память внутри микропроцессора и при чем тут компиляторы

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели47K

Помните, как в школе, решая примеры «в столбик», мы бормотали себе под нос: «один пишем, два в уме»? У процессора при вычислениях возникает похожая ситуация — где-то нужно хранить промежуточные результаты. В современных микропроцессорах работает множество различных блоков, обрабатывающих числа, — их называют исполнительными устройствами. Чтобы все они могли временно «складывать» свои «два в уме», требуется достаточно большой объем быстрой вспомогательной памяти.

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

Читать далее

Девиртуализация в C++, компиляторах и вашей программе

Уровень сложностиСложный
Время на прочтение16 мин
Охват и читатели22K

Привет, Хабр! Меня зовут Илья Андреев, я старший программист в компании Syntacore. Вы, наверно, слышали, что виртуальные функции в C++ пользуются дурной славой — а может, и сами придерживаетесь о них не самого лучшего мнения. В этой статье, подготовленной совместно с Константином Владимировым, я в некоторой степени выступлю адвокатом виртуализации.

Мы начнем с вводной части о статическом и динамическом полиморфизме, рассмотрим факторы, влияющие на девиртуализацию, и ее примеры разной сложности — в том числе те, что мы используем в реальной разработке. А напоследок познакомим вас со спекулятивной девиртуализацией и дадим рекомендации, как подходить к виртуальным функциям в разработке на C++.

Читать далее
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Системный программист
Средний
Linux
C
C++
Многопоточность
Системное программирование
Linux kernel
Разработка драйверов
Assembler
Embedded linux