Высоконагруженный reverse-proxy на YARP

Привет, Хабр!
Сегодня поговорим о том, как на практике построить высоконагруженный обратный прокси-сервер на основе YARP, отличной библиотеки от Microsoft для .NET.
.NET Software Engineer

Привет, Хабр!
Сегодня поговорим о том, как на практике построить высоконагруженный обратный прокси-сервер на основе YARP, отличной библиотеки от Microsoft для .NET.

Плата разработки программно-определяемого радио (SDR) PLUTOSDR NANO (далее именуемая SDR) является производной от ADALM-PLUTO, выпускаемой Analog Devices. Оба устройства используют комплексное проектное решение на основе радиочастотного трансивера AD9363 и ПЛИС ZYNQ7010, представляя собой мощные устройства программно-определяемого радио, которые могут предоставить пользователям широкий частотный диапазон и мощные вычислительные возможности. Ниже приведено краткое руководство по быстрому тестированию после распаковки, включающее этапы: проверка при распаковке, подключение устройства, тестирование основных функций и тестирование функций связи.

Удобство облачных сервисов лишает нас контроля над цифровой жизнью. Все файлы лежат у одного Большого брата (корпорация) под наблюдением другого Большого брата (государство). Если провайдер лишит аккаунта — человек потеряет всё. Что ж, ради ежедневного комфорта многие готовы мириться с таким риском.
Однако комфорт вызывает привыкание. Поэтому даже при выходе из-под колпака Большого брата на собственный безопасный сервер хочется такого же уровня удобства, как у облачных сервисов. Как минимум:
• доступ к файлам с любого устройства;
• автоматическая синхронизация файлов и резервное копирование;
• расшаривание файлов;
• совместная работа с документами.
Сегодня такое «локальное облако» можно поднять на собственном сервере или VPS в качестве альтернативы корпоративным экосистемам типа Apple, Google и «Яндекс».

2025 год щедро раздаёт нейросети всем желающим. Кажется, уже невозможно открыть браузер, чтобы на тебя не посмотрела очередной умник, обещающий сгенерировать гениальный текст, как у Толстого, но быстрее.
Одни модели сочиняют музыку, другие красят фотографии, третьи уверяют, что понимают людей лучше психологов. Но за громкими именами вроде ChatGPT, Midjourney и Runway скрывается подлесок маленьких, но интересных проектов.
Мы собрали десятку инструментов, на которые стоит обратить внимание.
Приятного чтения!

Когда у вас нет помощи квалифицированного учителя, поддержки умных советчиков на форумах или обратной связи от образованных носителей языка (о нюансах использования ChatGPT, Grok, Gemini будет отдельная статья), вам приходится осваивать методы самоисправления (СИВИАЯ33).

Краткое содержание: Текст для сайта можно полностью поручить нейросети, и никто этого не заметит. Ключ в правильном подходе: анализ конкурентов, подбор LSI-запросов, структурированный промпт и финальная доработка. На практике такие тексты ранжируются ничуть не хуже, чем написанные человеком. А мой текст про новогодний маникюр 2025 стабильно висел в топе Гугла весь декабрь.

В 2025 году интернет-цензура в России, Китае и Иране достигла беспрецедентного уровня. Традиционные VPN-протоколы вроде OpenVPN и даже WireGuard обнаруживаются и блокируются системами Deep Packet Inspection (DPI) за считанные секунды. На сцену выходит VLESS — легковесный протокол, который становится последним работающим решением для обхода современной цензуры.
Эта статья объясняет, как работает VLESS на техническом уровне, почему он так эффективен в обходе обнаружения, и делится реальным опытом создания VPN-сервиса во враждебной среде России.
Документ для тех, кто совсем не знает, что такое Vless, Xray и прочие штуки, связанные с «ВПН», но кому это нужно для планирования организации доступа через данные инструменты. Или если кому-то просто интересен принцип работы «на пальцах».
В некоторых местах используются упрощения, из-за которых могло бы быть сломано не мало копий на профильных форумах, но для человека, который не знает и не очень горит желанием знать технические детали, они все равно роли не играют.
В данной статье представлена исключительно архитектура работы, как настроить сервер ищите в других статьях или гугле.
В TypeScript аннотация типа или указание типа осуществляется с помощью оператора
двоеточия : , после которого следует идентификатор типа. TypeScript является
статически типизированным языком, поэтому после того как идентификатор будет
связан с типом, изменить тип будет невозможно.

Привет! Сегодня вам расскажу, как я полностью отказался от Google Photos и настроил своё собственное хранилище фотографий на базе Immich с кучей функций, не уступающих тем, что есть у популярных представителей данных сервисов.
Это не обзор ради обзора, а мой реальный кейс. У меня дома стоит свой собственный домашний сервер, который я собрал не так давно, куда я уже перенес все свои фотографии и видео.

По крайней мере так сказал блогер Demimurych у меня в комментариях:
Дальше была беседа в комментариях, из который я вынес два хороших замечания:
Тему замыканий в языках программирования стоит рассказывать с проблемы функционального аргумента.
Реализация этой проблемы наиболее и единственно полно описана в ECMAScript спецификации.
Я потратил время и покажу, что нашёл!

Пишу на материале английского, потому что мне так удобнее, а людям — понятнее.
В изучении языка есть стандартные этапы отчаяния:
- «Мне поможет только погружение в языковую среду»;
- «Что-то идёт не так, нужен какой-то особый подход» [после малорезультативного «погружения»].
На самом деле это один и тот же этап: в какой-то момент застрявшая в голове рекламная демагогия неизбежно начинает конфликтовать с реальностью.
9 из 10 жалуются: я плохо воспринимаю речь на слух… что делать… У рекламщиков ответ уже готов: «Улучшить восприятие на слух? — Приходите! Поможем!» Заканчивается всё очередным разочарованием и ещё более глубокой убеждённостью в «уникальности» своего случая. В общем, давайте разберёмся, из чего состоит аудирование.
Во-первых, не надо слишком буквально понимать знакомых, которые, якобы, хорошо разбирают речь носителей на слух. Если ты не рос в Англии, у тебя ВСЕГДА будут проблемы с восприятием речи британца. Помните, как вы хорошо понимали носителя, пока он говорит с вами, но мгновенно переставали его понимать, когда он начинал говорить с другим носителем. Как так?
Реальные живые носители произносят не совсем те слова, которые мы читаем в субтитрах. Ни в одном словаре нет слова forya (ударение на первый слог), хотя оно и распространённое (в субтитрах пишут for you). Не менее распространено слово whaddaya (в субтитрах будет what do you). То же самое в скоростной русской речи: вместо «он говорит» в реальной жизни мы обычно используем слово «онгрьт» с невнятными «н» и «т». Очсомневаюсь, что оно есть в словаре. Носитель расшифровывает «онгрьт» через 3 канала одновременно:

Занимаясь проектированием систем ПО, идите самым простым путём из возможных.
Причём эту рекомендацию можно применять на удивление широко. Я искренне верю, что так можно делать всегда. Эта техника подходит для исправления багов, обслуживания имеющихся систем и проектирования новых.
Многие инженеры, продумывая дизайн системы, представляют себе некий её «идеал»: что-то стройное, практически бесконечно масштабируемое, удобно распространяемое и так далее. Я же считаю, что это абсолютно ошибочный подход к проектированию ПО. Напротив, нужно вложить всё это время в глубокий анализ имеющейся системы, а затем реализовать простейшее рабочее решение.

В мире микросервисов десятки, а то и сотни сервисов живут своей жизнью. Каждый со своим адресом, своими правилами, своей аутентификацией. Для внешнего клиента это выглядит как город без улиц и указателей. API Gateway — это попытка навести порядок. Он становится единым фасадом, центральным КПП для всего вашего бэкенда.
Но эта простота обманчива. Внедрение шлюза порождает свой собственный набор сложных архитектурных проблем. Решить их неправильно — значит построить себе очень дорогую и хрупкую тюрьму.

Одна из самых ностальгических около-компьютерно-музыкально-чиптюновых тем — музыка из «кряков» и «кейгенов». Думаю, все мы знаем, как она звучит, а многие даже качали и слушали коллекцию в поисках той самой запомнившейся мелодии из дней нашей юности, проведённых в бесконечном рубилове в какую-нибудь любимую компьютерную игрушку.
Но откуда она взялась, сама эта музыка? Почему она именно такая и звучит именно так? Как вообще возникла традиция её использовать? Уверен, кто-то где-то уже рассказывал, ибо это база, но повторение — мать учения, а также бальзам для ностальгии. Обмажемся же им поскорее!

Тип any в TypeScript по своей сути является злом и небезопасной особенностью встроенной по умолчанию в систему типов языка. Данный тип дает возможность разработчику записать такое значение, которое может быть чем угодно, использоваться где угодно и как угодно вместо любого другого типа данных.
Использование any небезопасно, поскольку таким образом вы отключаете многие проверки во время компиляции вашего кода в JavaScript, что по итогу ограничивает способность TypeScript помогать вам, отказываясь тем самым от преимуществ строгой типизации.
Линтеры — это не только важнейший инструмент для поддержания качества кода на высоком уровне, но и важный помощник в борьбе с any. Пакет typescript-eslint содержит несколько таких правил, которые помогают предотвратить небезопасные практики еще до начала компиляции, связанные с типом any. Эти правила обнаруживают как прямые использования any, так и целые паттерны кода, которые незаметно его допускают. В этой публикации мы разберемся с тем, что конкретного делают эти правила, а также рассмотрим несколько полезных способов предотвратить проникновение any в наш код.

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

Каждый день одно и то же. Открываешь клиент базы данных, чтобы что-то проверить, посчитать или найти. И снова пишешь почти тот же SELECT, что и вчера, с тем же WHERE и JOIN. Знакомо?
SQL в большинстве случаях не требует сложные 100-строчные запросы с вложенными подзапросами на три уровня глубины. Чаще всего нам нужны простые, отточенные и, главное, эффективные конструкции.
В этой статье я собрал 7 таких запросов-«рабочих лошадок». Это не какой-то там справочник, а готовая шпаргалка для реальных задач.

Американцы обожают играть на деньги и смотреть красочное шоу. Это самое примитивное и оттого ошибочное объяснение популярности программы The Price Is Right. Если вы никогда не видели эту передачу дневного американского телевидения, представьте себе многолетнюю светскую церемонию потребления, где зрителей зовут на сцену и награждают за умение ориентироваться в ценниках. Зритель из зала слышит заветную фразу «Come on down!», выбегает к подиуму и соревнуется в угадывании стоимости бытовых товаров.
Впервые формат появился в 50-х годах прошлого века, а в 1972 году The Price Is Right подобновили и начали транслировать днём по будням на канале CBS. Но идёт передача не в прайм-тайм, а в 10:00 или 11:00 утра. Несмотря на её странное время показа, знакома она всем американцам. Смотрят её не только пенсионеры и домохозяйки, её хотя бы раз видели затемпературившие дети, которые вместо школы остались дома.
Реальный секрет долгожительства программы — смешение доброжелательности ведущих, простоты правил с бытовой темой и разнообразные мини-игры. Одна из таких — Plinko, которая выглядит как детская забава. Участник получает плоские жетоны и, стоя наверху большой вертикальной доски со штырьками, сбрасывает их в прорези сверху. Жетон, ударяясь о штырьки, хаотически меняет траекторию и внизу попадает в одну из девяти ячеек с разными суммами.

В этом выпуске построение современного BLE-сервиса и повышение производительности за счет лучшего сокращения ресурсов, Swift на Android и эволюция презентационных паттернов, MAX без оболочки, эмоциональное решение проблем, трудные уроки инди-хакинга и многое другое. Заходите!