Типичный программист
Всё самое интересное по программированию Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site VK: vk.com/tproger Регистрация в перечне РКН: https://tprg.ru/mJwo
Больше📈 Аналитический обзор Telegram-канала Типичный программист
Канал Типичный программист (@tproger) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 77 999 подписчиков, занимая 1 644 место в категории Технологии и приложения и 7 324 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 77 999 подписчиков.
Согласно последним данным от 04 ноября, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -77, а за последние 24 часа — 8, при этом общий охват остаётся высоким.
- Статус верификации: Верифицирован (официально подтверждён Telegram)
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 10.52%. В первые 24 часа после публикации контент обычно набирает 5.93% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 8 206 просмотров. В течение первых суток публикация набирает 4 626 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 30.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как sql, архитектура, api, docker, github.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Всё самое интересное по программированию
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site
VK: vk.com/tproger
Регистрация в перечне РКН: https://tprg.ru/mJw...”
Благодаря высокой частоте обновлений (последние данные получены 05 ноября, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
Загружаем данные
| Дата | Привлечение подписчиков | Упоминания | Каналы | |
| 05 ноября | +7 | |||
| 04 ноября | +18 | |||
| 03 ноября | +18 | |||
| 02 ноября | +28 | |||
| 01 ноября | +4 |
--exit-code.| 2 | Чем заменить Oracle и MS SQL Server? Даже если переезда пока нет в планах, стоит иметь в виду альтернативы.
На Tproger разобрали четыре российские СУБД и сравнили их по понятным параметрам: для каких задач подходят, насколько совместимы с PL/SQL и T-SQL, чем переносить данные, что придётся дорабатывать вручную, есть ли сертификат ФСТЭК и бесплатные версии, сколько стоят.
Одна из них исполняет T-SQL и PL/SQL напрямую, а SSMS и DBeaver видят её как обычный MS SQL Server.
Обзор поможет понять, какой вариант может вам больше подойти. | 3 646 |
| 3 | Указатель нельзя просто записать на диск
При сортировке память заканчивается, и часть данных уезжает на диск. После загрузки блок может оказаться по другому адресу, а указатели внутри всё ещё ведут на старое место.
В разборе внешней сортировки DuckDB 2021 года показано, как это обходят. Строки переменной длины живут в отдельном блоке, string heap. Перед выгрузкой 8-байтовый указатель заменяют смещением внутри блока. Когда данные понадобятся снова, адрес восстанавливают.
Особенно удобно, что смещения строковых значений относительно начала своей строки в heap не меняются при её переносе. Можно переставлять данные во время сортировки, не чиня каждый внутренний адрес заново.
Выгрузка требует места на диске и дополнительных чтений и записей. При этом для сортировки за пределами RAM не нужно совершенно другое представление строк. Выгрузкой блоков в описанной реализации занимается buffer manager. | 4 468 |
| 4 | Redis жив, соединение есть, ответа нет
Выключить Redis в тесте полезно. Но неприятность бывает хитрее: соединение установилось и просто висит. Обработчик ошибки подключения при этом может и не сработать.
Toxiproxy от Shopify ставят между приложением и зависимостью. Это TCP-прокси, условия в котором тест меняет через HTTP API. Можно задержать ответ, ограничить полосу или перестать передавать данные. При timeout = 0 данные не передаются, а соединение остаётся открытым до снятия ограничения.
В Rails-примере проекта unit-тест проверяет, что при недоступном Redis метод tags возвращает пустой массив вместо исключения. Для проверки всей страницы авторы отдельно предлагают интеграционный тест.
Задержка направленная. По умолчанию она действует от сервера к клиенту, для обратного направления нужна отдельная настройка. | 5 315 |
| 5 | Защитный парсер тоже читает опасный файл
Медиафайл ещё не открыли, а защитный парсер уже разбирает его содержимое. Чтобы проверить файл до системной библиотеки, ему самому приходится читать недоверенные данные. После Stagefright в 2015 году WhatsApp добавил в библиотеку wamedia проверку структуры MP4. Исправить уязвимость в самой ОС команда не могла, зато могла отсеять опасный файл до системной библиотеки.
В январском разборе миграции на Rust WhatsApp описывает, как проверяли совместимость: новую реализацию делали параллельно C++, затем кормили обе одинаковыми входами через differential fuzzing и сравнивали поведение. Плюс обычные unit- и интеграционные тесты.
Rust здесь нужен, чтобы снизить риск ошибок памяти в самом защитном парсере. Проверка формата при этом не остановит все файловые атаки. | 5 405 |
| 6 | Карту можно достраивать, вычёркивая невозможное
На анимации из проекта WaveFunctionCollapse часть карты уже нарисована человеком. Генератор достраивает окружение. Участок с надписью Fixed он сохраняет.
В основе — ограничения на соседство. В перекрывающейся модели программа берёт маленькие узоры из образца, обычно 3×3. Затем выбирает область с наименьшей ненулевой энтропией, фиксирует вариант и вычёркивает несовместимые у соседей. Один выбор сужает следующие, и постепенно проступает картинка.
Если для одной области вычеркнуть все варианты, получится противоречие. А локально согласованные тайлы ещё не гарантируют проходимый уровень. Для проходимости нужны отдельные правила.
Название квантовое, но квантового компьютера тут нет.
Видео — исходная демонстрация автора Максима Гумина. | 5 864 |
| 7 | Картинка с котом может положить сервер
В учебном примере из разбора Cloudflare картинку с котом запрашивают 10 раз в секунду. Сервер картинок выдерживает только один запрос в секунду. Пока ответ есть в кеше, нагрузка до сервера не доходит. Через сутки TTL истекает, и все запросы идут к серверу.
Начать обновление на пять минут раньше? Тогда толпа придёт на пять минут раньше. Без объединения запросов это только переносит перегрузку.
Автор разбирает другой ход: каждый запрос локально бросает «кубик» и решает, пора ли идти за свежей картинкой. Ближе к истечению кеша вероятность растёт. Отдельный сервис блокировок не нужен, но и гарантии одного запроса нет: случайность может пропустить несколько или долго не пропускать ни одного. | 6 075 |
| 8 | Лог проще читать, когда важное видно цветом
IP, UUID, время, уровень ошибки и ещё несколько чисел в одной строке. После сотой такой строки взгляд начинает пропускать всё сразу.
tailspin подсвечивает узнаваемые фрагменты, не требуя отдельного описания формата для каждого сервиса. Он идёт по строкам и ищет даты, адреса, URL, числа и уровни сообщений независимо от позиции поля. Можно передать поток через stdin, например kubectl logs -f pod | tspin. Для просмотра файла инструмент использует pager less.
На скриншоте проекта демонстрационные логи, не свежий инцидент. И сам инструмент не превращает текст в структурированные события, не хранит их централизованно и не ищет причину сбоя. Иногда достаточно более скромного улучшения: глазами легче зацепиться за нужную часть строки. | 6 690 |
| 9 | Свободного региона может не оказаться
Перенести нагрузку туда, где сейчас спокойнее, выглядит хорошим аварийным планом. До события, которое весь мир обсуждает одновременно.
В разборе чемпионата мира Meta пишет, что на финале исходящий трафик вырос на 46% примерно за четыре минуты в конце основного времени. Для WhatsApp привычный межрегиональный перенос не помогал: все регионы выходили на пик в один момент. Занять запас у соседа было негде.
Поэтому региональные пики прогнозировали отдельно. Более 100 внутренних сервисов заранее нагрузочно проверили и подобрали им мощности. Это данные и опыт самой команды, но инженерный вопрос отсюда вполне общий: есть ли у вашего резервного ресурса причина стать занятым ровно тогда же, когда у основного? | 6 897 |
| 10 | В ядре Linux закрыли критическую уязвимость CVE-2026-98432 (CVSS 9,8), обновите ядро на серверах и перезагрузитесь. Anthropic рассказала, что эксплойт для неё написал сам Claude: он удалённо получает выполнение команд от root без учётных данных примерно за 53 минуты попыток. Код не публиковали.
Ошибка сидит в обработке TCP-рукопожатия по IPv4 с ядра 4.4 и срабатывает до того, как подключение дойдёт до приложения. Эксплойт бьёт через порты Multipath TCP: в Linux их по умолчанию открывают программы на Go с версии 1.24. Сама ошибка от MPTCP не зависит.
Исправления уже есть у Debian, Amazon Linux, Oracle Linux и частично у SUSE, у Ubuntu и RHEL пока нет. До патча Red Hat советует правило nftables, которое отбрасывает TCP-пакеты с опциями IPv4: оно снижает риск, но полностью не защищает. Ненужный MPTCP можно выключить через sysctl net.mptcp.enabled=0 с перезапуском сервисов. Команды и статус по дистрибутивам собрали на сайте.
@neuro_channel | 7 215 |
| 11 | Весь Git перед глазами
Самое утомительное в маленьком коммите порой не сам коммит, а переключение между status, diff и логом. В lazygit эти состояния видны в соседних панелях терминала: файлы, ветки, история и изменения выбранного объекта.
На видео из проекта весь короткий путь помещается в один экран. Файлы попадают в индекс, рядом появляется diff, затем открывается ввод сообщения коммита. Не нужно держать предыдущий вывод команды в голове, чтобы понять, что именно сейчас подготовлено.
Кроме файлов целиком можно добавлять отдельные строки и фрагменты. Но удобный интерфейс не отменяет смысл операций Git: rebase и cherry-pick остаются теми же действиями со своими последствиями. Выигрыш здесь в видимости состояния, а не в защите от любого неудачного решения. | 7 256 |
| 12 | Запустить программу не всегда значит создать процесс
Успешный execve заменяет текущую программу другой внутри уже существующего процесса. Старый код после такого вызова продолжать работу не будет. Поэтому история «оболочка запустила команду» интереснее, чем просто ещё одна строка в списке процессов.
В иллюстрированной главе CPU Land показан путь от пользовательского кода в ядро: передаются путь, аргументы и окружение, ядро распознаёт формат файла и загружает программу. Картинка помогает не смешать создание процесса с заменой того, что он исполняет.
Материал разбирает Linux на x86-64 и вышел в 2023 году. Хороший повод разобраться в механизме, но не обещание, что детали загрузки и обработки скриптов одинаковы во всех ОС и версиях ядра. | 7 000 |
| 13 | Авария может начаться раньше, чем поднимутся новые инстансы
Одна зона доступности легла. Остальные приняли её нагрузку, и теперь надо срочно добавить серверов. Но что, если API управления инфраструктурой тоже работает с перебоями?
В разборе static stability AWS предлагает заранее убрать эту зависимость из пути восстановления. В примере сервис работает в трёх зонах и держит 50% запаса мощности. Тогда две оставшиеся зоны способны выдержать всю нагрузку без ожидания новых инстансов.
Запас оплачивается и в спокойный день. Переключение трафика и проверки здоровья тоже остаются нужны. Но в момент аварии системе требуется меньше новых успешных действий. Это давний принцип из Builders Library, а не новая функция AWS. И 50% здесь следуют из конкретного примера с тремя зонами, универсальной нормой их считать нельзя. | 7 391 |
| 14 | Код, который можно распечатать на 3D-принтере
Если двигать вершины мышкой не хочется, у CAD есть вариант для любителей параметров и функций. В OpenSCAD модель описывается текстом: соединить объёмы, вычесть отверстие, вытянуть плоский контур.
Меняете радиус или расстояние в скрипте, пересобираете и получаете другой вариант детали. Для семейства похожих креплений такой способ может оказаться понятнее ручного повторения одних и тех же действий. На официальном скриншоте код и результат стоят рядом, связь видна сразу.
Это прежде всего инструмент для инженерных форм. Художественную лепку и анимацию он не заменяет, а пригодность детали к печати всё равно нужно проверять. Сам скриншот исторический, по нему не стоит судить о свежем интерфейсе.
📎 Что умеет OpenSCAD | 7 461 |
| 15 | Что нужно знать для старта в кибербезопасности? Сейчас разберемся
23 ноября Positive Education впервые запускает онлайн-интенсив «Основы практической кибербезопасности». За три месяца участники разберут четыре фундаментальные области ИБ и применят знания в более чем 40 практических кейсах
Интенсив подойдет начинающим специалистам по ИБ, сотрудникам ИТ и тем, кто переходит в новое направление кибербезопасности
Что внутри
• UNIX- и Linux-системы: устройство ОС, процессы, права пользователей и базовая защита
• Сети: настройка окружения, анализ трафика, типовые атаки и защита
• Windows и Active Directory: компоненты ОС, домен, учетные записи и уязвимости конфигурации
• Веб-приложения: архитектура, анализ уязвимостей и безопасная разработка
Как пройдет интенсив
Из 80 академических часов 60 отведены практике. Участники будут настраивать системы и сети, исследовать атаки, работать с Active Directory и искать уязвимости. Пошаговые кейсы помогут разобраться в новых темах, самостоятельные позволят проверить себя
📄 Кстати, Positive Education получил государственную лицензию на образовательную деятельность. Это значит, что все выпускники программ получат не только цельную техническую базу для развития в SOC, AppSec, пентесте и инфраструктурной безопасности, а также документы установленного образца, а при самостоятельной оплате можно оформить налоговый вычет.
Когда
📅 Старт: 23 ноября 2026
⏳ Длительность: 3 месяца
💻 Формат: онлайн
📚 Объем: 80 академических часов
👉 Подробности и регистрация | 5 653 |
| 16 | Дерево проекта без тысячи строк в терминале
Чужой репозиторий, несколько уровней вложенности, нужный файл где-то там. Обычный tree честно печатает всё, а читать это предлагается человеку.
У broot другой подход: часть веток сворачивается в unlisted, и на экране остаётся обзор каталога. Начинаете вводить имя, fuzzy-поиск сужает дерево, но сохраняет вокруг найденного файла контекст. Есть и поиск по содержимому, когда название вообще не вспоминается.
На скриншоте из проекта хорошо видна эта разница: не бесконечная простыня, а карта, по которой можно двигаться. Для перехода в выбранную папку в своей оболочке нужна shell-функция br. Самостоятельный процесс не может просто взять и поменять рабочий каталог родительского shell. | 7 593 |
| 17 | Дефицит ускорителей не отменяет простой
В одном регионе свободен GPU, в другом нужен именно он. Или ускоритель есть, а CPU для подготовки данных уже занят. Поэтому «мощностей не хватает» и «часть железа простаивает» вполне могут быть правдой одновременно.
Meta собирает временно свободные мощности для рекламных рекомендаций в общий пул. Если свободны и CPU, и ускорители, можно оценить больше кандидатов. Если в основном ускорители, часть запросов направляют более сильной модели без сопоставимого роста работы на CPU.
Самая важная часть тут не раздача бонусов, а их быстрый отзыв. Базовую нагрузку защищают отдельно, дополнительную работу сбрасывают за миллисекунды, пока центральные регуляторы ещё догоняют ситуацию. Такая схема требует работы, которую можно безболезненно сократить. Произвольная LLM-задача этому условию не обязана соответствовать. | 7 871 |
| 18 | VK Видео в два раза ускорил запуск роликов. Инженеры разработали собственный пресет для сжатия видео, потому что стандартные плохо подходят под запрос платформы. Что получилось: файлы стали меньше в среднем на 20%, у некоторых роликов почти на треть, а картинка осталась прежней. Плюс другие технические улучшения. В итоге видео стартует вдвое быстрее в вебе, на телефонах и планшетах.
Интереснее всего то, как это раскатывали. Сначала новый пресет применяли только к популярным видео. Теперь же он сам подстраивается под нагрузку: когда сервис свободен, через новый пресет идут все загрузки, а при пиках часть роликов уходит на старые настройки, чтобы публикация не залипала в очереди. | 6 495 |
| 19 | Пробел в имени файла ломает слишком уверенный скрипт
На report.txt всё работало, на annual report.txt внезапно поехало. В shell незакавыченное раскрытие переменной может превратить одно имя в несколько аргументов. А символы шаблона добавят ещё и разворачивание по файлам.
ShellCheck замечает такие ловушки до запуска. Он статически проверяет sh/bash-скрипты, объясняет подозрительные места и показывает диагностику прямо в редакторе или CI. На скриншоте из проекта есть и другие примеры: bash не умеет обычную арифметику с дробями, а правая часть сравнения в [[ ]] без кавычек считается шаблоном.
Удобно, что для первой проверки достаточно shellcheck yourscript. Только зелёный результат не доказывает, что скрипт делает нужное: тест с неудобным именем файла всё ещё очень кстати. | 8 470 |
| 20 | GitHub Issues показывает данные, пока сервер ещё отвечает
На записи переходы между issue выглядят почти мгновенными. Секрет не в том, что запросы вдруг перестали занимать время: часть данных уже лежит в браузере.
Команда GitHub разобрала свою схему с IndexedDB и stale-while-revalidate. Сначала интерфейс показывает локальную версию, затем сверяется с сервером. Предварительное наполнение кеша запускают там, где пригодных данных ещё нет, с ограничениями частоты и защитой от перегрузки.
По замерам команды, после этого около 70% React-навигаций укладывались в 200 мс. Это не время полной загрузки любого GitHub-экрана. И бесплатного чуда нет: локальная версия может устареть, а при первом заходе без кеша ждать всё равно придётся. | 8 091 |
