DevOps
23.4K subscribers
1.17K photos
148 videos
15 files
1.03K links
По всем вопросам- @workakkk

@itchannels_telegram - 🔥полезные ит-каналы

https://xn--r1a.website/Golang_google - Golang программирование

@golangl - golang chat

@GolangJobsit - golang channel jobs

@golang_jobsgo - jobs

РКН: clck.ru/3FmvZA

#VRHSZ
Download Telegram
🛡 Проверяем компьютер на майнеры, трояны и другой вредоносный софт

После новостей о заражённой версии 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) — система обнаружения подозрительного сетевого трафика по чёрным спискам и эвристическим правилам.

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

Сохраняйте подборку и проверьте компьютер.
🔥53🥰1
Жиза
😁32🔥4🙈21🤔1
Иногда один отчет помогает понять рынок лучше, чем десятки новостей. Apple Hills Digital опубликовала исследование российского рынка IaaS, в котором собрала прогнозы до 2030 года, ожидания корпоративных клиентов и сравнение крупнейших облачных провайдеров.

Для DevOps здесь особенно интересны не позиции игроков, а сами тенденции. Более 80% компаний уже отмечают влияние AI/ML-нагрузок на потребление вычислительных ресурсов. Свыше половины используют гибридную инфраструктуру, а контроль облачных расходов постепенно становится такой же важной задачей, как отказоустойчивость и безопасность.

Еще один любопытный вывод: рынок перестает конкурировать только ценой. Заказчики все чаще выбирают платформы по надежности, технологическим возможностям и тому, насколько они подходят под существующую инфраструктуру.

Исследование будет полезно тем, кто следит за развитием облаков и хочет понимать, какие требования к инфраструктуре становятся стандартом для бизнеса.
2
Даже формально верифицированный компилятор может ошибаться

В 2011 году исследователи тестировали CompCert случайно сгенерированными C-программами и нашли wrong-code баг в таком выражении:

return -1 <= (1 && x);

Правильный результат — 1, но CompCert 1.6 для PowerPC возвращал 0.

Ошибка оказалась не в доказанно корректном оптимизаторе, а в неверифицированном фронтенде.

Формальная верификация защищает только те части системы, для которых действительно построено доказательство.
3👍2👏2🔥1
Forwarded from React JS
Это один из самых изобретательных проектов, которые я видел на этой неделе.

Передаёт файлы между двумя устройствами, используя только экран и камеру. Использует Fountain Codes (LT Codes).

Вместо разделения файла на последовательные фрагменты, каждый QR-код содержит математическую комбинацию (XOR) блоков файла.

Разработчик достиг скорости до 129 КБ/с. Всё работает в браузере с WebAssembly, без установки каких-либо приложений.

https://github.com/bashalarmistalt/decimen-optical-transfer
🔥144👍2
🚀 СТУДЕНТ СЛУЧАЙНО ОПРОВЕРГ ГИПОТЕЗУ, В КОТОРУЮ ВЕРИЛИ 40 ЛЕТ

С 1985 года считалось: чем ближе хеш-таблица к заполнению, тем неизбежнее замедляются поиск и вставка. В худшем случае требовалось порядка x проверок, где x показывает, насколько таблица близка к 100%.

Эндрю Крапивин придумал новую структуру, снизив сложность до O((logx)*2).

Более того, среднее время поиска может оставаться константным независимо от заполненности таблицы. Авторы также доказали, что найденная граница оптимальна.

Самое невероятное — Крапивин не знал о гипотезе Яо и пришёл к решению, экспериментируя с «крошечными указателями» ещё во время учёбы в Rutgers.

Иногда незнание общепринятых ограничений действительно помогает их разрушить.
23🔥16👍7
🔍Тестовое собеседование с Head of DevOps уже завтра

4 августа(уже завтра!) в 19:00 по мск
приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle DevOps-разработчика.

Как это будет:
📂 Александр Хренников, Head of DevOps в KTS с опытом 14+ лет, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Александр будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Александру

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для DevOps-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_devops_bot

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
3
⚡️ Бинарный поиск, который вы выучили, скорее всего, был неправильным.

Джон Бентли опубликовал реализацию бинарного поиска в *Programming Pearls* после того, как доказал её корректность и протестировал.

Баг прожил почти 20 лет.

Позже Джошуа Блох нашёл точно такую же ошибку в реализации бинарного поиска, которую сам написал для JDK.

Исследование 1988 года показало: корректный бинарный поиск был только в 5 из 20 учебников.

Ошибка проявляется только на массивах размером 2^30 элементов и больше.

Проблема возникает при вычислении середины:


mid = (low + high) / 2;


На очень больших массивах low + high может вызвать переполнение.

Правильнее писать так:


mid = low + (high - low) / 2;


В C такое переполнение может привести к выходу за границы массива и непредсказуемому поведению. В Java это обычно заканчивается ArrayIndexOutOfBoundsException.

Та же ошибка затрагивала mergesort и огромное количество других алгоритмов «разделяй и властвуй».
Please open Telegram to view this post
VIEW IN TELEGRAM
9🤓5👍3🔥1
Сколько незаконченных Git-репозиториев лежит у вас на диске?

drydock показывает их все в одном терминальном интерфейсе:

- где остались незакоммиченные изменения;
- какие коммиты ещё не отправлены;
- где забыты stash, конфликт или незавершённый rebase;
- какие проекты изменились после последнего тега и готовы к новому релизу.

Инструмент проверяет не только текущую ветку, поэтому забытая работа в локальной feature-ветке тоже попадёт в список.


brew install yetidevworks/drydock/drydock

# или
cargo install drydock


После установки достаточно запустить:


drydock


Есть фильтры, fuzzy-поиск, JSON-вывод, открытие проекта в редакторе и массовый fetch. Состояние репозиториев обновляется автоматически через файловый watcher.

drydock написан на Rust с использованием Ratatui и работает на macOS и Linux.

Полезная утилита для разработчиков, у которых папка Projects давно превратилась в кладбище почти законченных идей.

GitHub:
https://github.com/yetidevworks/drydock
6👍3🔥3🤔1
Rust, который наконец становится понятным 🦀

Давно хочешь выучить Rust, но ownership, borrowing и lifetimes выглядят как отдельный вид боли?

Этот курс проведёт тебя с самого начала до уровня, где ты уже пишешь реальные системные и сетевые программы.

Ты разберёшь:
Ownership → Borrowing → ошибки → коллекции → Generics → Traits → модули → тесты → сетевой код

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

🔥 Rust с нуля
🔥 5–6 часов в неделю
🔥 Практика после каждого урока
🔥 Подойдёт после Python, JavaScript, Java и других языков
🔥 Можно начать сразу

В конце у тебя будет понимание Rust, с которым уже можно писать быстрые backend-сервисы, сетевые приложения и системные утилиты, а не смотреть на borrow checker как на врага.

Пора добавить Rust в свой стек. Начинай курс и пиши первый код уже сегодня: https://stepik.org/a/294885/
2👍2🔥2🐳2🍌1
🔥 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
👍21
Лето, ИТ-Пикник и музыка известных артистов уже через несколько дней!

8 августа в Коломенском пройдет ИТ-Пикник.

В программе — выступления проекта LAB Антона Беляева, IOWA, Cream Soda, Pompeya, мартина и Совы.

А днем — научпоп-лекции, дискуссии об ИИ и больших языковых моделях, мастер-классы и интерактивы. Полезные знакомства и развлечения тоже будут.

Зарегистрироваться и узнать подробности можно на сайте мероприятия.

В билет входит +1 — можно позвать близких и друзей.

До встречи в месте притяжения ИТ.
6🗿1
Задача, которую фон Нейман решил «слишком гениально»

Два велосипедиста находятся в 30 милях друг от друга и едут навстречу со скоростью 15 миль в час каждый.

Между ними постоянно летает муха со скоростью 30 миль в час, разворачиваясь у каждого велосипедиста. Сколько всего она пролетит до их встречи?

На первый взгляд хочется считать бесконечную последовательность всё более коротких перелётов.

Но решение проще.

Суммарная скорость сближения велосипедистов:


15 + 15 = 30 миль в час


Значит, расстояние в 30 миль они преодолеют за один час.

Муха летает всё это время со скоростью 30 миль в час:


30 × 1 = 30 миль


Ответ: 30 миль.

С этой задачей связывают известную историю о математике Джоне фон Неймане.

Когда он мгновенно назвал правильный ответ, собеседник заметил:

> Большинство пытается складывать бесконечный ряд, хотя достаточно вычислить время встречи.

Фон Нейман якобы ответил:

> А я именно сложил бесконечный ряд.

Хорошее напоминание: гениальный человек не всегда выбирает самый простой путь. Иногда он просто проходит сложный невероятно быстро.
🔥102😱2
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
👍5
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/

Важно: «бесплатно» не означает «без ограничений». Проверяйте лимиты, правила коммерческого использования и условия оплаты сверх бесплатной квоты.

Но для запуска первого проекта этих платформ более чем достаточно.
6🔥2❤‍🔥1👎1
Forwarded from DevOps Docker
🐳 Docker выпустила Sandboxes - изолированные среды специально для AI coding agents.

Идея простая: дать агентам вроде Claude Code, Codex, Gemini CLI, Copilot CLI, OpenCode и Kiro больше свободы, но не давать им свободно ломать хост-систему.

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

- устанавливать пакеты;
- менять конфиги;
- запускать сервисы;
- поднимать собственные Docker-контейнеры;
- выполнять долгие задачи без постоянного подтверждения действий.

При этом Docker позволяет отдельно контролировать filesystem, network и credentials, а сам sandbox после работы можно просто удалить.

Это инфраструктурный слой для эпохи автономных coding agents: агенту дают почти полный контроль внутри песочницы, но хост остаётся изолированным.

https://www.docker.com/products/docker-sandboxes/

#Docker #AI #AIAgents #DevOps #Programming
👍14🔥5👏2
⚡️ Генератор случайных чисел всего из трёх XOR и сдвигов

В 2003 году Джордж Марсалья представил xorshift - один из самых простых и быстрых генераторов псевдослучайных чисел.

Классический xorshift32:


uint32_t xorshift32(void)
{
state ^= state << 13;
state ^= state >> 17;
state ^= state << 5;
return state;
}


Фактически весь алгоритм:


shift → XOR
shift → XOR
shift → XOR


При ненулевом начальном state период может достигать:


2³² - 1


Никаких умножений, делений или тяжёлой математики, поэтому подобные RNG отлично подходят для игр, симуляций и procedural generation, где важна скорость.

Но есть нюанс: xorshift нельзя использовать для криптографии. Его внутреннее состояние можно предсказать, поэтому для ключей, паролей и токенов нужны криптографически стойкие генераторы.

Иногда действительно полезный алгоритм помещается буквально в три строки.

#Programming #Algorithms #C #Random
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
Участвуй в МТС True Tech Champ 2026 — всероссийском чемпионате по программированию с двумя треками и призовым фондом 10 250 000 рублей.

Трек 1: Алгоритмический [индивидуальный зачет, 2 750 000 ₽, шесть призовых мест]

Решай задачи по алгоритмам и структурам данных, которые помогут прокачать навыки для технических собеседований и работы в ведущих ИТ-командах. Лучшие участники пройдут в финал, где в режиме реального времени будут соревноваться в правильности решений и скорости мышления.

Трек 2: Программирование роботов [командный формат, 7 500 000 ₽, три призовых места]

Напиши алгоритмы для робособаки и робота-манипулятора и проведи их через три этапа соревнований. Сначала — через цифровой симулятор, где нужно пройти трассу и выполнить задания по передаче предметов. Затем — подключись к реальному полигону через удалённый доступ и выполни задания на физических роботах дистанционно. А в очном финале лучшим командам предстоит управлять роботами на площадке, дорабатывать алгоритмы под новые условия и бороться за победу на глазах у зрителей. Рекомендуемые стеки: Go, Java, Python, C#, C++, JS.

Регистрируйся до 13 сентября и стань частью масштабного чемпионата.
🚀 Kubernetes-инфраструктура уровня production: как EKS сам масштабируется под нагрузкой?

Многие умеют поднять Kubernetes-кластер.

Но настоящий вызов начинается, когда приходит реальный трафик.

В Amazon EKS + Kubernetes можно построить систему, которая сама реагирует на рост нагрузки:

🔥 Horizontal Pod Autoscaler (HPA)
- автоматически увеличивает количество Pod'ов;
- масштабирует приложение по CPU/Memory/метрикам;
- например: 3 → 6 → 10 реплик при всплеске запросов.

CloudFront CDN
- отдаёт видео и статические файлы через edge-точки AWS;
- снижает нагрузку на backend;
- ускоряет доставку контента пользователям по всему миру.

🧪 k6 Load Testing
- создаём искусственный трафик;
- наблюдаем, как Kubernetes запускает новые Pod'ы;
- проверяем поведение системы под нагрузкой.

Главный инсайт:

HPA масштабирует Pod'ы, но не создаёт новые серверы.

Если Node'ы закончились — новые Pod'ы останутся в состоянии Pending.

Поэтому production-архитектура обычно включает:

HPA для масштабирования приложений
Cluster Autoscaler / Karpenter для добавления Node'ов
CDN для разгрузки backend
мониторинг метрик в реальном времени

Именно так строятся отказоустойчивые cloud-native системы.

Amazon EKS + HPA + CDN — отличный пример того, как Kubernetes превращает ручное управление инфраструктурой в автоматическую систему.

Источник:
https://medium.com/@csjcode/amazon-eks-k8s-media-cluster-part-4-pod-auto-scaling-hpa-and-cdn-f1d9a060e20a
🤣32👍1