🕵️ Проверь, сколько ты стоишь для злоумышленника
Твоя почта, пароли и история заказов где-то уже продаются оптом. Вопрос только в том, понимаешь ли ты, как это работает и как с этим быть.
CyberYozh собрал ответ в бесплатный мини-курс прямо в Telegram. Без сайтов и регистраций: открыл приложение в мессенджере и проходишь в своём темпе.
➡️ Запустить курс в Telegram
Четыре коротких модуля:
Внутри ещё можно бесплатно записаться на личный разбор карьерного трека в ИБ.
Твоя почта, пароли и история заказов где-то уже продаются оптом. Вопрос только в том, понимаешь ли ты, как это работает и как с этим быть.
CyberYozh собрал ответ в бесплатный мини-курс прямо в Telegram. Без сайтов и регистраций: открыл приложение в мессенджере и проходишь в своём темпе.
➡️ Запустить курс в Telegram
Четыре коротких модуля:
🟦 за какими данными на самом деле охотятся;
🟦 как собирается цепочка "угроза → уязвимость → атака" на реальных примерах;
🟦 базовый алгоритм, чтобы защитить себя и свои системы;
🟦 какие профессии есть в ИБ, кто чем занимается и сколько платят.
Внутри ещё можно бесплатно записаться на личный разбор карьерного трека в ИБ.
C#-ловушка
Всего несколько строк. Никаких потоков,
Что выведет этот код?
Варианты ответа:
А)
Б)
В) Ошибка компиляции
Г)
Какой вариант выбираете?
Всего несколько строк. Никаких потоков,
async/await или хитрых библиотек.Что выведет этот код?
var h = new Holder();
h.Counter.Inc();
Console.WriteLine(h.Counter.Value);
struct Counter
{
public int Value;
public void Inc() => Value++;
}
class Holder
{
public Counter Counter { get; set; }
}
Варианты ответа:
А)
0 Б)
1 В) Ошибка компиляции
Г)
NullReferenceExceptionКакой вариант выбираете?
ИИ за сутки подготовил 90 оптимизаций ASP.NET Core всего за $230
Дэвид Фаулер из Microsoft провёл эксперимент: запустил AI-агентов на базе Claude Opus 5.5, чтобы найти узкие места в ASP.NET Core и предложить исправления.
За один день агенты подготовили около 90 Pull Request с оптимизациями производительности.
Что удалось улучшить:
- Kestrel - уменьшить аллокации при обработке HTTP-запросов.
- Middleware - оптимизировать кеширование, сжатие и обработку запросов.
- Blazor - сократить накладные расходы при рендеринге.
- SignalR - ускорить обработку протоколов и сообщений.
- Identity - снизить расходы памяти при аутентификации.
Использовалась новая поддержка облачных агентов GitHub, представленная на GitHub Universe.
Стоимость эксперимента - около $230 за токены.
Причём агенты не ограничились генерацией кода: каждый PR сопровождается сравнительными бенчмарками BenchmarkDotNet.
На момент публикации изменения ещё проходили ревью и не были объединены с основной веткой. Реальный прирост производительности предстоит подтвердить.
90 потенциальных оптимизаций за день и $230. Интересно, сколько времени на такой объём исследований потребовалось бы команде разработчиков.
https://github.com/dotnet/aspnetcore/issues/70219
Дэвид Фаулер из Microsoft провёл эксперимент: запустил AI-агентов на базе Claude Opus 5.5, чтобы найти узкие места в ASP.NET Core и предложить исправления.
За один день агенты подготовили около 90 Pull Request с оптимизациями производительности.
Что удалось улучшить:
- Kestrel - уменьшить аллокации при обработке HTTP-запросов.
- Middleware - оптимизировать кеширование, сжатие и обработку запросов.
- Blazor - сократить накладные расходы при рендеринге.
- SignalR - ускорить обработку протоколов и сообщений.
- Identity - снизить расходы памяти при аутентификации.
Использовалась новая поддержка облачных агентов GitHub, представленная на GitHub Universe.
Стоимость эксперимента - около $230 за токены.
Причём агенты не ограничились генерацией кода: каждый PR сопровождается сравнительными бенчмарками BenchmarkDotNet.
На момент публикации изменения ещё проходили ревью и не были объединены с основной веткой. Реальный прирост производительности предстоит подтвердить.
90 потенциальных оптимизаций за день и $230. Интересно, сколько времени на такой объём исследований потребовалось бы команде разработчиков.
https://github.com/dotnet/aspnetcore/issues/70219
Campfire перенесли с Rails на C# и получили до 33× больше запросов в секунду.
По данным автора, версия совместима с исходной базой, файлами и cookies. В общем бенчмарке она лидирует в трёх сценариях, опережая реализации на Rust и C.
Ускорение обеспечила связка ИИ-агентов и профилировщика: найти узкое место, внести одно изменение, проверить результат.
Помогли изменения кеширования и работы с SQLite, повторное использование криптографических контекстов и сокращение логирования.
Основную прибавку дали архитектурные решения. На других маршрутах быстрее оказались C, Rust и Go.
Разбор в 11 частях: learninglinqpad.com/blog/2026/10/20/campfire-csharp-port-debrief/
Код, бенчмарки и результаты: github.com/ryanrodemoyer/once-campfire-csharp
По данным автора, версия совместима с исходной базой, файлами и cookies. В общем бенчмарке она лидирует в трёх сценариях, опережая реализации на Rust и C.
Ускорение обеспечила связка ИИ-агентов и профилировщика: найти узкое место, внести одно изменение, проверить результат.
Помогли изменения кеширования и работы с SQLite, повторное использование криптографических контекстов и сокращение логирования.
Основную прибавку дали архитектурные решения. На других маршрутах быстрее оказались C, Rust и Go.
Разбор в 11 частях: learninglinqpad.com/blog/2026/10/20/campfire-csharp-port-debrief/
Код, бенчмарки и результаты: github.com/ryanrodemoyer/once-campfire-csharp
Как Джон Кармак заставил DOOM работать без вычисления синусов и косинусов
В оригинальном DOOM 1993 года углы хранились в виде 32-битных целых чисел (`angle_t`), а полный оборот соответствовал \(2^{32}\) значениям.
Вместо постоянных вычислений тригонометрических функций движок использовал заранее подготовленные таблицы.
Например, чтобы получить синус угла, достаточно было обратиться к массиву:
Здесь происходит обычный битовый сдвиг и чтение элемента массива. Никаких вызовов
Для вычисления углов между точками использовалась другая таблица:
В реальном коде
Почему это было важно? В 1993 году процессоры не могли позволить себе тысячи дорогих тригонометрических вычислений на каждом кадре. Целочисленная арифметика и lookup-таблицы помогали поддерживать высокую скорость рендеринга.
По сути, Кармак обменял немного памяти на вычислительную производительность.
Сегодня подобный подход всё ещё встречается в embedded-разработке, DSP, игровых движках и других системах, где важна предсказуемая скорость вычислений.
В оригинальном DOOM 1993 года углы хранились в виде 32-битных целых чисел (`angle_t`), а полный оборот соответствовал \(2^{32}\) значениям.
Вместо постоянных вычислений тригонометрических функций движок использовал заранее подготовленные таблицы.
Например, чтобы получить синус угла, достаточно было обратиться к массиву:
typedef unsigned angle_t;
fixed_t sine =
finesine[angle >> ANGLETOFINESHIFT];
Здесь происходит обычный битовый сдвиг и чтение элемента массива. Никаких вызовов
sin() во время выполнения.Для вычисления углов между точками использовалась другая таблица:
return tantoangle[
SlopeDiv(y2 - y1, x2 - x1)
];
В реальном коде
R_PointToAngle2 также учитывает квадранты, чтобы правильно обрабатывать направления.Почему это было важно? В 1993 году процессоры не могли позволить себе тысячи дорогих тригонометрических вычислений на каждом кадре. Целочисленная арифметика и lookup-таблицы помогали поддерживать высокую скорость рендеринга.
По сути, Кармак обменял немного памяти на вычислительную производительность.
Сегодня подобный подход всё ещё встречается в embedded-разработке, DSP, игровых движках и других системах, где важна предсказуемая скорость вычислений.
10 Open Source инструментов для создания игр с помощью ИИ
Отдельный полезный проект для разработчиков, работающих с инфраструктурой: GoKubeDownscaler. Позволяет автоматически масштабировать Kubernetes-приложения в нерабочее время и сокращать расходы на серверы.
https://github.com/caas-team/GoKubeDownscaler
А для разработки самих игр пригодятся следующие инструменты:
1. Godot - движок для создания 2D- и 3D-игр.
https://github.com/godotengine/godot
2. Stable Baselines3 - обучение игровых агентов с подкреплением.
https://github.com/DLR-RM/stable-baselines3
3. Unity ML-Agents - обучение поведения NPC.
https://github.com/Unity-Technologies/ml-agents
4. ComfyUI - генерация текстур, концепт-артов и изображений.
https://github.com/comfyanonymous/ComfyUI
5. TripoSR - создание 3D-моделей по изображениям.
https://github.com/VAST-AI-Research/TripoSR
6. OpenVoice - генерация голосов персонажей.
https://github.com/myshell-ai/OpenVoice
7. Whisper - распознавание речи для голосовых диалогов.
https://github.com/openai/whisper
8. RVC - преобразование голоса для озвучивания NPC.
https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI
9. Blender - моделирование, анимация и подготовка 3D-ресурсов.
https://github.com/blender/blender
10. Ren'Py - разработка визуальных новелл на Python.
https://github.com/renpy/renpy
Этого набора достаточно, чтобы собрать прототип игры с собственными персонажами, графикой, озвучкой и обучаемыми NPC. Дальнейшая интеграция и доработка всё равно потребуют навыков разработки.
Отдельный полезный проект для разработчиков, работающих с инфраструктурой: GoKubeDownscaler. Позволяет автоматически масштабировать Kubernetes-приложения в нерабочее время и сокращать расходы на серверы.
https://github.com/caas-team/GoKubeDownscaler
А для разработки самих игр пригодятся следующие инструменты:
1. Godot - движок для создания 2D- и 3D-игр.
https://github.com/godotengine/godot
2. Stable Baselines3 - обучение игровых агентов с подкреплением.
https://github.com/DLR-RM/stable-baselines3
3. Unity ML-Agents - обучение поведения NPC.
https://github.com/Unity-Technologies/ml-agents
4. ComfyUI - генерация текстур, концепт-артов и изображений.
https://github.com/comfyanonymous/ComfyUI
5. TripoSR - создание 3D-моделей по изображениям.
https://github.com/VAST-AI-Research/TripoSR
6. OpenVoice - генерация голосов персонажей.
https://github.com/myshell-ai/OpenVoice
7. Whisper - распознавание речи для голосовых диалогов.
https://github.com/openai/whisper
8. RVC - преобразование голоса для озвучивания NPC.
https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI
9. Blender - моделирование, анимация и подготовка 3D-ресурсов.
https://github.com/blender/blender
10. Ren'Py - разработка визуальных новелл на Python.
https://github.com/renpy/renpy
Этого набора достаточно, чтобы собрать прототип игры с собственными персонажами, графикой, озвучкой и обучаемыми NPC. Дальнейшая интеграция и доработка всё равно потребуют навыков разработки.
.NET 11: нативный async, union types и Zstandard
Microsoft обновила обзор .NET 11 до RC2. Финальный релиз ожидается в ноябре 2026 года.
Одно из крупных изменений - Runtime Async. Среда выполнения получает встроенную поддержку асинхронности: меньше накладных расходов, компактнее сгенерированный код и понятнее стеки вызовов. Для проектов под
В C# 15 появились union types, закрытые иерархии, extension-индексаторы и именованные
В стандартные библиотеки добавили Zstandard,
NativeAOT ускоряет вызовы через интерфейсы. JIT лучше убирает проверки границ массивов, лишние ветвления и виртуальные вызовы.
Из повседневного:
Перед обновлением стоит проверить серверы: в .NET 11 повышены минимальные требования к наборам инструкций процессора.
https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-11/overview
Microsoft обновила обзор .NET 11 до RC2. Финальный релиз ожидается в ноябре 2026 года.
Одно из крупных изменений - Runtime Async. Среда выполнения получает встроенную поддержку асинхронности: меньше накладных расходов, компактнее сгенерированный код и понятнее стеки вызовов. Для проектов под
net11.0 больше не требуется включать EnablePreviewFeatures.В C# 15 появились union types, закрытые иерархии, extension-индексаторы и именованные
break и continue. А System.Text.Json получил поддержку объединений C# и F#, а также вывод JSON Lines.В стандартные библиотеки добавили Zstandard,
FullJoin в LINQ и типы Decimal32, Decimal64, Decimal128 по стандарту IEEE 754. Новые потоки позволяют оборачивать данные в памяти без копирования.NativeAOT ускоряет вызовы через интерфейсы. JIT лучше убирает проверки границ массивов, лишние ветвления и виртуальные вызовы.
Из повседневного:
dotnet run -e для переменных окружения, #:include для приложений из нескольких файлов и новые возможности dotnet test.Перед обновлением стоит проверить серверы: в .NET 11 повышены минимальные требования к наборам инструкций процессора.
https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-11/overview
Labcoat - веб-интерфейс для .NET-тестов с интеграцией в Aspire.
Эрик Либен сделал инструмент, который находит тестовые проекты, собирает их и позволяет запускать тесты и разбирать результаты прямо в браузере.
Что умеет:
- Перезапускать упавшие тесты и запускать проверки, затронутые изменениями кода.
- Показывать покрытие, историю прогонов и нестабильные тесты.
- Отображать различия в snapshot-тестах.
- Связывать интеграционный тест с трассировками и логами сервисов в Aspire — чтобы быстрее найти причину сбоя.
Работает отдельно или как ресурс в AppHost. Поддерживает MSTest, NUnit, xUnit v3 и TUnit при использовании Microsoft.Testing.Platform 2.
Для запуска нужен .NET 10 SDK, для интеграции - Aspire 13.4.5+. Лицензия MIT.
https://eriklieben.com/posts/labcoat-test-ui-for-dotnet/
Эрик Либен сделал инструмент, который находит тестовые проекты, собирает их и позволяет запускать тесты и разбирать результаты прямо в браузере.
Что умеет:
- Перезапускать упавшие тесты и запускать проверки, затронутые изменениями кода.
- Показывать покрытие, историю прогонов и нестабильные тесты.
- Отображать различия в snapshot-тестах.
- Связывать интеграционный тест с трассировками и логами сервисов в Aspire — чтобы быстрее найти причину сбоя.
Работает отдельно или как ресурс в AppHost. Поддерживает MSTest, NUnit, xUnit v3 и TUnit при использовании Microsoft.Testing.Platform 2.
Для запуска нужен .NET 10 SDK, для интеграции - Aspire 13.4.5+. Лицензия MIT.
https://eriklieben.com/posts/labcoat-test-ui-for-dotnet/
🔴 Открытое собеседование на Middle C# | 10 ноября, 19:00 мск
Senior C# разработчик проведёт техническое интервью в прямом эфире. Посмотришь, как всё устроено изнутри, какие задания предлагают кандидатам и насколько ты готов к такому формату.
Как всё будет проходить:
📂 Интервьюер: Александр Моргунов, Senior C# разработчик с опытом 7+ лет в европейских высоконагруженных сервисах. В роли кандидата - разработчик-доброволец.
📂 Никакого сценария: Александр задаст вопросы и предложит задачи, которые использует на технических интервью. Кандидат заранее их не знает.
📂 В конце Александр пообщается со зрителями и ответит на их вопросы
Участие бесплатное!
Эфир проходит в рамках менторской программы ШОРТКАТ для разработчиков, которые хотят сменить работу, вырасти в грейде и зарплате или прокачать технические навыки
Переходи в бота, чтобы получить ссылку на эфир → @shortcut_csharp_bot
Реклама.
О рекламодателе.
Senior C# разработчик проведёт техническое интервью в прямом эфире. Посмотришь, как всё устроено изнутри, какие задания предлагают кандидатам и насколько ты готов к такому формату.
Как всё будет проходить:
📂 Интервьюер: Александр Моргунов, Senior C# разработчик с опытом 7+ лет в европейских высоконагруженных сервисах. В роли кандидата - разработчик-доброволец.
📂 Никакого сценария: Александр задаст вопросы и предложит задачи, которые использует на технических интервью. Кандидат заранее их не знает.
📂 В конце Александр пообщается со зрителями и ответит на их вопросы
Участие бесплатное!
Эфир проходит в рамках менторской программы ШОРТКАТ для разработчиков, которые хотят сменить работу, вырасти в грейде и зарплате или прокачать технические навыки
Переходи в бота, чтобы получить ссылку на эфир → @shortcut_csharp_bot
Реклама.
О рекламодателе.
В Unix 1979 года команда `file` определяла английский текст по частоте букв.
В исходниках Unix V7 есть функция
- Гласные:
- Частые буквы:
- Редкие буквы:
Финальная проверка выглядела так:
То есть гласных должно быть достаточно относительно числа символов без пробелов, а частые буквы должны встречаться минимум в десять раз чаще редких.
Были и дополнительные фильтры: слишком короткие фрагменты не проверялись, учитывались пунктуация и символы, характерные для кода.
Это эвристика, а не полноценное распознавание языка. Но для практической задачи - отличить похожий на английскую прозу текст от других данных – хватало нескольких счётчиков и простых условий.
https://www.tuhs.org/cgi-bin/utree.pl?file=V7%2Fusr%2Fsrc%2Fcmd%2Ffile.c
В исходниках Unix V7 есть функция
english(). Она считала три группы символов:- Гласные:
a, e, i, o, u.- Частые буквы:
e, t, a, i, o, n.- Редкие буквы:
v, j, k, q, x, z.Финальная проверка выглядела так:
return (
vow * 5 >= n - ct[' '] &&
freq >= 10 * rare
);
То есть гласных должно быть достаточно относительно числа символов без пробелов, а частые буквы должны встречаться минимум в десять раз чаще редких.
Были и дополнительные фильтры: слишком короткие фрагменты не проверялись, учитывались пунктуация и символы, характерные для кода.
Это эвристика, а не полноценное распознавание языка. Но для практической задачи - отличить похожий на английскую прозу текст от других данных – хватало нескольких счётчиков и простых условий.
https://www.tuhs.org/cgi-bin/utree.pl?file=V7%2Fusr%2Fsrc%2Fcmd%2Ffile.c
⌨️ C# и векторный поиск
Приглашаем на открытый урок.
🗓 18 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «C#-разработчик. Продвинутый уровень».
На открытом уроке разберём работу с векторными хранилищами и посмотрим, какие возможности для этого предоставляет .NET.
В практической части реализуем семантический поиск и соберём минимальное RAG-приложение на C#.
На вебинаре рассмотрим:
✔️ работу с векторными хранилищами в .NET;
✔️ основные абстракции .NET для векторного поиска;
✔️ реализацию семантического поиска;
✔️ создание минимального RAG-приложения.
🔗 Ссылка на регистрацию: https://otus.pw/GZ7b/?erid=2W5zFH21qhc
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Приглашаем на открытый урок.
🗓 18 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «C#-разработчик. Продвинутый уровень».
На открытом уроке разберём работу с векторными хранилищами и посмотрим, какие возможности для этого предоставляет .NET.
В практической части реализуем семантический поиск и соберём минимальное RAG-приложение на C#.
На вебинаре рассмотрим:
✔️ работу с векторными хранилищами в .NET;
✔️ основные абстракции .NET для векторного поиска;
✔️ реализацию семантического поиска;
✔️ создание минимального RAG-приложения.
🔗 Ссылка на регистрацию: https://otus.pw/GZ7b/?erid=2W5zFH21qhc
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
# .NET 11 вышел: C# 15, Union Types и новые возможности для ИИ-агентов
Microsoft выпустила .NET 11. Обновление затрагивает C#, ASP.NET Core, EF Core, MAUI, производительность runtime и инструменты разработки.
Главные изменения:
C# 15
- Union Types: объединение нескольких типов в один с проверкой всех вариантов компилятором.
- Closed Hierarchies: ограничение наследования для более строгой проверки типов.
- Collection Expression Arguments.
- Extension Indexers и именованные
Пример Union Types:
Производительность и SDK
- Native AOT CLI Host для ускорения запуска команд.
- Постоянно работающий MSBuild Server.
- Сотни оптимизаций JIT и runtime.
- Улучшения Native AOT и аппаратных инструкций.
ASP.NET Core и Blazor
- Асинхронная валидация.
- OpenAPI 3.2 по умолчанию.
- Улучшения SignalR и Blazor.
- Новые экспериментальные компоненты для создания агентных интерфейсов.
ИИ и агенты
- Шаблон MCP Server:
- Microsoft.Extensions.AI для интеграции моделей.
- Microsoft Agent Framework для агентов и рабочих процессов.
- Интеграция агентных интерфейсов с Blazor через AG-UI.
Другие изменения
- EF Core 11: улучшения LINQ, SQL и поддержка векторных индексов SQL Server.
- .NET MAUI переходит на CoreCLR в качестве стандартного runtime.
- Встроенная поддержка Zstandard.
- Новые API для работы с JSON, процессами и памятью без лишнего копирования.
.NET 11 относится к ветке STS и получает два года поддержки. .NET 10 остаётся вариантом LTS.
Релиз: https://devblogs.microsoft.com/dotnet/announcing-dotnet-11/
Документация: https://learn.microsoft.com/dotnet/core/whats-new/dotnet-11/
Microsoft выпустила .NET 11. Обновление затрагивает C#, ASP.NET Core, EF Core, MAUI, производительность runtime и инструменты разработки.
Главные изменения:
C# 15
- Union Types: объединение нескольких типов в один с проверкой всех вариантов компилятором.
- Closed Hierarchies: ограничение наследования для более строгой проверки типов.
- Collection Expression Arguments.
- Extension Indexers и именованные
break / continue.Пример Union Types:
public union Result(Product, ProductNotFound);
var result = new Product(42, "Keyboard");
string message = result switch
{
Product p => p.Name,
ProductNotFound e => $"Not found: {e.Id}"
};
Производительность и SDK
- Native AOT CLI Host для ускорения запуска команд.
- Постоянно работающий MSBuild Server.
- Сотни оптимизаций JIT и runtime.
- Улучшения Native AOT и аппаратных инструкций.
ASP.NET Core и Blazor
- Асинхронная валидация.
- OpenAPI 3.2 по умолчанию.
- Улучшения SignalR и Blazor.
- Новые экспериментальные компоненты для создания агентных интерфейсов.
ИИ и агенты
- Шаблон MCP Server:
dotnet new mcpserver.- Microsoft.Extensions.AI для интеграции моделей.
- Microsoft Agent Framework для агентов и рабочих процессов.
- Интеграция агентных интерфейсов с Blazor через AG-UI.
Другие изменения
- EF Core 11: улучшения LINQ, SQL и поддержка векторных индексов SQL Server.
- .NET MAUI переходит на CoreCLR в качестве стандартного runtime.
- Встроенная поддержка Zstandard.
- Новые API для работы с JSON, процессами и памятью без лишнего копирования.
.NET 11 относится к ветке STS и получает два года поддержки. .NET 10 остаётся вариантом LTS.
Релиз: https://devblogs.microsoft.com/dotnet/announcing-dotnet-11/
Документация: https://learn.microsoft.com/dotnet/core/whats-new/dotnet-11/