DevOps
описание
По всем вопросам- @workakkk @itchannels_telegram - 🔥полезные ит-каналы https://t.me/Golang_google - Golang программирование @golangl - golang chat @GolangJobsit - golang channel jobs @golang_jobsgo - jobs РКН: clck.ru/3FmvZA #VRHSZ
Лучшие посты
за три месяцаЖиза
без подписи
без подписи
🛡 Проверяем компьютер на майнеры, трояны и другой вредоносный софт После новостей о заражённой версии MECCHA CHAMELEON стоит проверить систему, особенно если вы скачивали игры или программы из неофициальных источников. Полезные инструменты: • [Anti-Miner](https://github.com/Daiwv/Anti-Miner) — ищет скрытые майнеры в Windows и помогает удалить связанные процессы и файлы. • [MinerSearch](https://github.com/BlendLog/MinerSearch) — сканер с эвристическим анализом, карантином и обновляемой базой угроз. • [KVRT](https://www.kaspersky.ru/downloads/free-virus-removal-tool) — бесплатный портативный сканер для Windows и Linux. Находит вирусы, трояны, руткиты и шпионское ПО. • [witr](https://github.com/pranshuparmar/witr) — показывает подробную информацию о запущенных процессах и помогает понять, что именно потребляет ресурсы системы. • [MatrixDefender 4.2](https://github.com/belrinn/MatrixDefender-4.2) — Windows-инструмент для поиска RAT-троянов, майнеров и связанных угроз. • [Maltrail](https://github.com/stamparm/maltrail) — система обнаружения подозрительного сетевого трафика по чёрным спискам и эвристическим правилам. Перед запуском малоизвестных утилит проверяйте репозиторий, последние обновления и отзывы. Для надёжности лучше использовать несколько способов проверки, а подозрительные файлы сначала отправлять в карантин. Сохраняйте подборку и проверьте компьютер.
без подписи
🚀 СТУДЕНТ СЛУЧАЙНО ОПРОВЕРГ ГИПОТЕЗУ, В КОТОРУЮ ВЕРИЛИ 40 ЛЕТ С 1985 года считалось: чем ближе хеш-таблица к заполнению, тем неизбежнее замедляются поиск и вставка. В худшем случае требовалось порядка x проверок, где x показывает, насколько таблица близка к 100%. Эндрю Крапивин придумал новую структуру, снизив сложность до O((logx)*2). Более того, среднее время поиска может оставаться константным независимо от заполненности таблицы. Авторы также доказали, что найденная граница оптимальна. Самое невероятное — Крапивин не знал о гипотезе Яо и пришёл к решению, экспериментируя с «крошечными указателями» ещё во время учёбы в Rutgers. Иногда незнание общепринятых ограничений действительно помогает их разрушить.
Кто-то разобрал Claude Code почти до винтика learn-coding-agent - репозиторий для тех, кто хочет понять, как устроены современные coding agents не на уровне промо-страниц, а на уровне архитектуры. Автор собрал разбор Claude Code по публичным источникам: цикл агента, систему инструментов, разрешения, работу с контекстом, сессии, подпроцессы, MCP, удалённые настройки, телеметрию и скрытые флаги. Получился не “гайд по использованию”, а карта внутренней логики CLI-агента: как он принимает решение, когда просит разрешение, как вызывает инструменты, как хранит историю и как расширяется через внешние интеграции. https://github.com/justxor/Claudecourse/
Даже формально верифицированный компилятор может ошибаться В 2011 году исследователи тестировали CompCert случайно сгенерированными C-программами и нашли wrong-code баг в таком выражении: return -1 <= (1 && x); Правильный результат — 1, но CompCert 1.6 для PowerPC возвращал 0. Ошибка оказалась не в доказанно корректном оптимизаторе, а в неверифицированном фронтенде. Формальная верификация защищает только те части системы, для которых действительно построено доказательство.
⚡️ Бинарный поиск, который вы выучили, скорее всего, был неправильным. Джон Бентли опубликовал реализацию бинарного поиска в *Programming Pearls* после того, как доказал её корректность и протестировал. Баг прожил почти 20 лет. Позже Джошуа Блох нашёл точно такую же ошибку в реализации бинарного поиска, которую сам написал для JDK. Исследование 1988 года показало: корректный бинарный поиск был только в 5 из 20 учебников. Ошибка проявляется только на массивах размером 2^30 элементов и больше. Проблема возникает при вычислении середины: mid = (low + high) / 2; На очень больших массивах low + high может вызвать переполнение. Правильнее писать так: mid = low + (high - low) / 2; В C такое переполнение может привести к выходу за границы массива и непредсказуемому поведению. В Java это обычно заканчивается ArrayIndexOutOfBoundsException. Та же ошибка затрагивала mergesort и огромное количество других алгоритмов «разделяй и властвуй».
Иногда один отчет помогает понять рынок лучше, чем десятки новостей. Apple Hills Digital опубликовала исследование российского рынка IaaS, в котором собрала прогнозы до 2030 года, ожидания корпоративных клиентов и сравнение крупнейших облачных провайдеров. Для DevOps здесь особенно интересны не позиции игроков, а сами тенденции. Более 80% компаний уже отмечают влияние AI/ML-нагрузок на потребление вычислительных ресурсов. Свыше половины используют гибридную инфраструктуру, а контроль облачных расходов постепенно становится такой же важной задачей, как отказоустойчивость и безопасность. Еще один любопытный вывод: рынок перестает конкурировать только ценой. Заказчики все чаще выбирают платформы по надежности, технологическим возможностям и тому, насколько они подходят под существующую инфраструктуру. Исследование будет полезно тем, кто следит за развитием облаков и хочет понимать, какие требования к инфраструктуре становятся стандартом для бизнеса.
Это один из самых изобретательных проектов, которые я видел на этой неделе. Передаёт файлы между двумя устройствами, используя только экран и камеру. Использует Fountain Codes (LT Codes). Вместо разделения файла на последовательные фрагменты, каждый QR-код содержит математическую комбинацию (XOR) блоков файла. Разработчик достиг скорости до 129 КБ/с. Всё работает в браузере с WebAssembly, без установки каких-либо приложений. https://github.com/bashalarmistalt/decimen-optical-transfer
🔍Тестовое собеседование с Head of DevOps уже завтра 28 июля(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle DevOps-разработчика. Как это будет: 📂 Александр Хренников, Head of DevOps в KTS с опытом 14+ лет, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Александр будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Александру Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для DevOps-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_devops_bot Реклама. О рекламодателе.
без подписи
без подписи
без подписи
Redis не доверяет обычным строкам C - и вот почему В C строка заканчивается нулевым байтом \0. Из-за этого strlen() каждый раз проходит весь буфер, а хранить произвольные бинарные данные становится неудобно. Поэтому Redis использует собственную структуру SDS — Simple Dynamic Strings. В памяти она выглядит примерно так: [len][alloc][flags][данные...\0] ↑ sds Перед самими данными Redis хранит метаданные: - len — текущую длину; - alloc — размер выделенной памяти; - flags — тип заголовка. Благодаря этому длина строки определяется за O(1), а свободное место известно заранее. При добавлении данных Redis не обязан каждый раз заново вычислять размер и перевыделять память. SDS также остаётся совместимой со многими функциями C: указатель ведёт прямо на буфер, а в конце всё равно находится \0. Но Redis не зависит от этого терминатора — длина хранится отдельно. Поэтому внутри строки могут находиться нулевые байты, изображения, сериализованные объекты и другие бинарные данные. Важный нюанс: структура sdshdr из старых примеров сегодня упрощена. Современный Redis выбирает компактный заголовок sdshdr5, sdshdr8, sdshdr16, sdshdr32 или sdshdr64 в зависимости от размера строки. Небольшой заголовок перед буфером решил сразу три проблемы: быстрое получение длины, безопасную работу с бинарными данными и эффективное расширение строк. Источник: https://redis.io/docs/latest/operate/oss_and_stack/reference/internals/internals-sds/ https://github.com/redis/redis/blob/unstable/src/sds.h
🔍Тестовое собеседование с Head of DevOps уже завтра 4 августа(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle DevOps-разработчика. Как это будет: 📂 Александр Хренников, Head of DevOps в KTS с опытом 14+ лет, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Александр будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Александру Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для DevOps-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_devops_bot Реклама. О рекламодателе.
Задача, которую фон Нейман решил «слишком гениально» Два велосипедиста находятся в 30 милях друг от друга и едут навстречу со скоростью 15 миль в час каждый. Между ними постоянно летает муха со скоростью 30 миль в час, разворачиваясь у каждого велосипедиста. Сколько всего она пролетит до их встречи? На первый взгляд хочется считать бесконечную последовательность всё более коротких перелётов. Но решение проще. Суммарная скорость сближения велосипедистов: 15 + 15 = 30 миль в час Значит, расстояние в 30 миль они преодолеют за один час. Муха летает всё это время со скоростью 30 миль в час: 30 × 1 = 30 миль Ответ: 30 миль. С этой задачей связывают известную историю о математике Джоне фон Неймане. Когда он мгновенно назвал правильный ответ, собеседник заметил: > Большинство пытается складывать бесконечный ряд, хотя достаточно вычислить время встречи. Фон Нейман якобы ответил: > А я именно сложил бесконечный ряд. Хорошее напоминание: гениальный человек не всегда выбирает самый простой путь. Иногда он просто проходит сложный невероятно быстро.
🔥 piqc показывает, сколько денег Kubernetes-кластер теряет на простаивающих GPU Команды часто видят загрузку GPU, но не понимают: - какая модель работает на конкретном ускорителе; - сколько стоит генерация токенов; - где простаивает железо; - почему растёт инфраструктурный счёт. piqc сканирует Kubernetes-кластер и автоматически находит inference-нагрузки на vLLM и Ray Serve. Инструмент связывает между собой модели, GPU, реплики и runtime-метрики, а затем формирует отчёт о расходах и неэффективном использовании ресурсов. Что умеет находить piqc: - простаивающие GPU; - модели на слишком дорогих ускорителях; - полностью свободные GPU-узлы; - фрагментацию ресурсов; - зависшие в очереди поды; - низкую эффективность вычислений; - завышенную стоимость генерации токенов. Для vLLM также собираются: - latency; - скорость prefill и генерации; - загрузка KV-cache; - глубина очереди; - состояние inference-сервиса. Быстрый запуск: pipx install piqc piqc scan --format table Результаты можно получить в форматах table, JSON, YAML или в виде стандартизированного facts bundle. Инструмент также запускается внутри кластера как Kubernetes Job - без постоянных агентов и sidecar-контейнеров. Важная деталь: сейчас проект распространяется по Business Source License 1.1. Переход на Apache 2.0 запланирован на 2028 год. По сути, piqc отвечает на вопрос, который обычный мониторинг часто оставляет без ответа: какая именно модель сжигает GPU-бюджет и почему? GitHub: https://github.com/paralleliq/piqc
5 платформ, где можно бесплатно задеплоить свой проект Необязательно сразу арендовать сервер и настраивать инфраструктуру. Для портфолио, MVP и небольших pet-проектов можно начать с бесплатных тарифов. 1. GitHub Pages - для статических сайтов Подходит для портфолио, документации, лендингов и проектов на HTML, CSS и JavaScript. Загружаете код в репозиторий — GitHub публикует сайт и выдаёт готовый адрес. 🔗 https://pages.github.com 2. Cloudflare Workers - для API и серверной логики Позволяет запускать JavaScript и TypeScript на серверах Cloudflare рядом с пользователем. Бесплатный тариф включает до 100 000 запросов в день. Хороший вариант для API, вебхуков, прокси и небольших backend-сервисов. 🔗 https://workers.cloudflare.com 3. Vercel - для Next.js и современного frontend Подключаете GitHub, делаете push — Vercel автоматически собирает и публикует проект. Для каждой ветки создаётся отдельная preview-ссылка. Бесплатный Hobby-тариф предназначен для личных и некоммерческих проектов. 🔗 https://vercel.com 4. Google Cloud Run - для Docker-контейнеров Загружаете контейнер, а Google самостоятельно запускает и масштабирует приложение. Когда запросов нет, сервис может уменьшить количество экземпляров до нуля. Есть постоянная бесплатная квота, но для подключения обычно требуется настроить биллинг. 🔗 https://cloud.google.com/run 5. AWS Amplify - для full-stack приложений Amplify объединяет хостинг, автоматическую сборку, CI/CD и сервисы AWS. Подходит для React, Next.js, Vue и мобильных приложений. У новых аккаунтов доступ зависит от программы AWS Free Tier и предоставленных кредитов. 🔗 https://aws.amazon.com/amplify/ Важно: «бесплатно» не означает «без ограничений». Проверяйте лимиты, правила коммерческого использования и условия оплаты сверх бесплатной квоты. Но для запуска первого проекта этих платформ более чем достаточно.