DevOps
23.4K subscribers
1.15K photos
145 videos
15 files
1.01K links
По всем вопросам- @workakkk

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

https://t.me/Golang_google - Golang программирование

@golangl - golang chat

@GolangJobsit - golang channel jobs

@golang_jobsgo - jobs

РКН: clck.ru/3FmvZA

#VRHSZ
Download Telegram
Забавная игрушка на ночь: GitHub-профиль теперь можно превратить в карточку в стиле FIFA.

GitFut прогоняет аккаунт по метрикам вроде коммитов, звёзд, репозиториев, подписчиков и активности, а потом собирает карточку с рейтингом от 0 до 99.

Идеально, чтобы внезапно узнать, ты GitHub-легенда или бронзовый запасной с одним pet-проектом.

https://gitfut.com/
3🔥2🥱2👍1
Алгоритму почти 70 лет, а он до сих пор живёт в ядре Linux.

В 1957 году Wilkes, Wheeler и Gill описали быстрый способ считать количество установленных битов в числе. Не циклом по одному биту, а через маски и арифметику сразу над группами битов.

Идея простая:

- сначала считаем биты парами
- потом группами по 4
- потом по байтам
- в конце умножение собирает сумму в старший байт

Если в процессоре нет инструкции POPCNT, Linux использует похожий подход в __sw_hweight64.

Красивый пример того, как старый битовый трюк пережил десятилетия и всё ещё работает в современном системном коде.
👍155🔥1
⚡️ Linux может освободить RAM, не уничтожая сам диапазон виртуальной памяти процесса.

Это как раз то, что делает madvise(MADV_DONTNEED) для anonymous mappings.

Сценарий такой:


char *region = mmap(NULL, GB,
PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS,
-1, 0);

// потрогали часть страниц

madvise(region, GB, MADV_DONTNEED);


После madvise виртуальные адреса остаются валидными. Процесс всё ещё «видит» тот же диапазон памяти.

Но физические страницы, которые стояли за этим диапазоном, ядро может забрать обратно. То есть адресное пространство осталось, а реальная RAM освободилась.

При следующем обращении к этому участку процесс получит свежие zero-filled страницы. Старых данных там уже не будет.

Почему это полезно:

* можно держать большой виртуальный регион без постоянного удержания RAM
* аллокаторы могут возвращать неиспользуемые страницы ядру
* long-running процессы меньше раздувают RSS
* память можно переиспользовать без полного munmap и нового mmap

Важная деталь: MADV_DONTNEED не означает «удали адреса». Это скорее сигнал ядру: «эти страницы мне сейчас не нужны, можешь забрать физическую память».

Адреса остаются. Страницы уходят. Следующее чтение приносит нули.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Data-платформа растет, а TCO улетает в космос?

Собрать данные с датчиков — полдела. На практике платформенные инженеры и DevOps тонут в зоопарке инструментов. Развёртывание ИТ-систем без чёткого плана (особенно на собственных серверах) грозит хаосом в обслуживании, трудностями с обновлениями и нарушением требований безопасности.

10 июля в 12:00 подключайтесь к вебинару «Реализация IoT-сценариев на продуктах Deckhouse: быстрый запуск, масштабирование, аналитика».

На примере live demo покажем, как Deckhouse Kubernetes Platform (DKP) объединяет сбор, обработку и визуализацию данных датчиков в единую надёжную систему.

Обсудим:
• как собрать event-driven-архитектуру на Kafka, PostgreSQL и ClickHouse без ручного управления;
• зачем изолировать operational и analytical workloads в enterprise-контуре;
• как выстроить telemetry pipeline с managed-подходом и observability «из коробки» с помощью DKP;
• как работает сквозная аналитика от датчика до отчёта — live demo IoT-сценария на примере готового решения


Зарегистрироваться бесплатно
Большинство “простых” shuffle-алгоритмов дают кривой рандом

Частая ошибка:


for (int i = 0; i < n; i++) {
int j = rand() % n;
swap(a[i], a[j]);
}


На вид всё нормально: каждый элемент случайно меняется местами с другим.

Но проблема в вероятностях.

Для массива из n элементов существует n! перестановок.

Хороший shuffle должен давать каждой перестановке одинаковый шанс.

Наивный вариант делает n шагов, и на каждом шаге выбирает индекс из полного диапазона 0..n-1.

В итоге некоторые перестановки появляются чаще других.

Правильный подход — Fisher-Yates shuffle:


for (int i = n - 1; i > 0; i--) {
int j = random(0, i);
swap(a[i], a[j]);
}


Идея простая:

на каждом шаге мы выбираем элемент только из ещё не зафиксированной части массива.

Сначала выбираем последний элемент из всего массива.
Потом предпоследний — из оставшихся.
Потом следующий — из ещё меньшего диапазона.

Так каждая перестановка получает одинаковую вероятность.

В C++ лучше не писать через rand() % n, потому что там может быть ещё и modulo bias.

Нормальный вариант:


std::mt19937 rng(std::random_device{}());

for (int i = n - 1; i > 0; --i) {
std::uniform_int_distribution<int> dist(0, i);
int j = dist(rng);
std::swap(a[i], a[j]);
}


Shuffle - хороший пример, где код может выглядеть “рандомным”, но математически быть неправильным.
Media is too big
VIEW IN TELEGRAM
AvitoTech устраивает онлайн CTF с призами до 300 000 рублей команду 📍

Что внутри турнира: таски на веб-уязвимости, инфраструктурные мисконфиги, анализ скомпилированного кода, расследование инцидентов, слабости шифров и всё, что требует хакерской смекалки. Если это ваш первый опыт, вписывайтесь в Honey-лигу — туда опытных игроков не пускают.

❗️Регистрация, кстати, уже открыта❗️

Кажется, это знак собрать свою команду и попробовать себя в роли того самого медоеда! Проверьте защиту пчелиного улья и помогите найти все скрытые уязвимости в сотах 🐝
Please open Telegram to view this post
VIEW IN TELEGRAM
Линус Торвальдс мог быть богаче Илона Маска. Но он выбрал другой путь.

В 2005 году его команда внезапно потеряла доступ к инструменту, с помощью которого управляла кодом Linux. Один разработчик сделал реверс-инжиниринг этой системы, и компания, которой она принадлежала, просто отключила проект без предупреждения.

Тысячи разработчиков. Никакого нормального способа совместной работы. Никакого запасного плана.

Торвальдс не стал паниковать. Он сел и написал собственную систему контроля версий с нуля.

За 10 дней.

Он назвал её Git. Уже в первый день Git отслеживал собственный исходный код. Через несколько недель на нём управлялся весь проект Linux. К концу 2005 года официально вышел Git 1.0.

А потом Линус просто отдал его бесплатно. Open source. Без компании. Без патентов. Без монетизации.

Через несколько месяцев он передал проект другим людям и вернулся к Linux, будто ничего особенного не произошло.

Зато другие быстро поняли, что он оставил на столе.

На Git вырос GitHub: 100 млн разработчиков, покупка Microsoft в 2018 году за $7,5 млрд. GitLab вышел на биржу в 2021 году с оценкой почти $12 млрд. Сегодня Git контролирует больше 85% рынка систем контроля версий.

Каждое приложение в вашем телефоне. Каждый сайт, который вы открываете. Почти всё это создаётся с помощью Git.

Торвальдс не заработал на этом $0.

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

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

И он ни разу публично не сказал, что жалеет об этом.
54🔥12👍7
Cuckoo hashing даёт O(1) lookup в худшем случае

Не амортизированно.

Не «в среднем».

А именно worst case.

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

Поэтому поиск тупо проверяет оба места и заканчивается.


return table1[h1(key)] == key
|| table2[h2(key)] == key;


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

Отсюда и название: как кукушка, которая выкидывает чужие яйца из гнезда.

Если начинается цикл, таблицу перестраивают с новыми хеш-функциями.

Алгоритм предложили Rasmus Pagh и Flemming Rodler в 2001 году.

И это не просто академическая штука: Linux kernel использует cuckoo hashing в connection tracking table.

Один из тех случаев, когда простая идея даёт очень сильную гарантию по lookup.
6👍3❤‍🔥1👎1
NASA только что выпустила WASM-runtime для космических аппаратов… написанный на Rust! 🦀🎉

🛰️ SpaceWasm — детерминированный интерпретатор WebAssembly, созданный для бортового программного обеспечения космических аппаратов.

https://github.com/nasa/spacewasm

#rustlang #wasm #space #nasa #opensource
🔥9🤔3👍2🗿21
⚡️ Kali Linux Roadmap: с чего начать в этичном хакинге

Нашёл нормальный roadmap по Kali Linux для тех, кто хочет не просто «поставить Kali и открыть терминал», а постепенно разобраться, как всё это работает.

Внутри маршрут по базовым темам: установка, настройка окружения, работа с терминалом, Linux-команды, сеть, безопасность, инструменты Kali и практика.

Это полезно тем, кто только заходит в кибербезопасность и не понимает, за что браться первым. Kali часто выглядит как набор страшных утилит, но без базы по Linux, сетям и правам доступа эти инструменты быстро превращаются в хаос.

Хороший подход здесь простой: сначала понять систему, потом сеть, потом инструменты, и только после этого переходить к практике в легальных лабораториях и CTF.

Такой roadmap удобно проходить как чек-лист: открыл раздел, разобрал команды, повторил руками, закрепил на тестовом окружении.

Для старта в Kali Linux это намного лучше, чем хаотично смотреть ролики и копировать команды без понимания.

https://github.com/justxor/Kalilinuxroadmap/tree/main
🔥42👍1
Алерт в 2 ночи: латентность API выросла в 10 раз

Сначала кажется, что проблема в приложении. Открываешь дашборды — часть метрик зелёная. Идёшь в логи, потом в трассировки, потом проверяешь инфраструктуру. Контекст собирается вручную, а сервис всё это время продолжает деградировать.

На вебинаре 17 июля покажем, как этот сценарий выглядит в Deckhouse Observability Platform (DOP).

Например: API тормозит, а источник проблемы в поде базы данных, где резко выросло потребление IOPS. DOP помогает увидеть деградацию в разрезе инфраструктуры, понять, какие компоненты затронуты, какие зависимости участвуют в инциденте и какой бизнес-сервис под ударом.

Проведём live-демо: от настройки DOP до сценария «алерт → локализация → первопричина». Расскажем, как платформа заранее подсвечивает признаки деградации и помогает сокращать время простоя. А ещё покажем AI-ассистента, который находит причину инцидента за вас.

17 июля в 12:00| онлайн

👉
Зарегистрироваться бесплатно
😁3🔥21
BullMQ теперь есть нативно для Rust.

Одна из самых популярных Redis-очередей для фоновых задач получила стабильный Rust-релиз:


cargo add bullmq-official


Это Rust-реализация на async/await и Tokio: привычный Result для ошибок, безопасное шаринг-поведение между tasks и API, который ощущается как Rust, а не как порт чужой библиотеки.

В v1.0.0 уже есть почти всё, что нужно для production-очередей:

* delayed и prioritized jobs
* deduplication
* retries и backoff
* rate limits
* stalled-job detection
* dependent job trees через FlowProducer
* cron и interval recurring jobs
* QueueEvents для наблюдения за жизненным циклом задач

Новая версия использует те же Lua-скрипты, что уже годами крутятся в Node.js, Python, PHP и Elixir-реализациях.

Это значит, что Rust-сервис может положить job в очередь, а Node.js worker её обработает. Или наоборот. Без миграции, sidecar’ов и adapter layer.

По первым бенчмаркам Rust уже немного быстрее Node.js на последовательной и bulk-записи задач, а на high-concurrency processing идёт примерно вровень.


https://bullmq.io/news/260712/rust-release

#RustLang #Redis #BullMQ #Tokio
👍41🔥1
Ingress-nginx уходит в прошлое. С марта 2026 поддержка прекратилась. А что вместо него? Предлагаем посмотреть на Gateway API, новый стандарт Kubernetes SIG.

23 июля в 17:00 старший SRE-инженер MWS Cloud Евгений Макеев на практике покажет:

⚫️ чем маршрутизация Gateway API отличается от Ingress
⚫️ как выбрать контроллер
⚫️ как установить Gateway API в Managed Kubernetes
⚫️ как настроить безопасное подключение через TLS-сертификат

Будет полезно для DevOps, платформенным инженерам и разработчикам.

Регистрируйтесь по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
Самый знаменитый комментарий в истории C.

Его оставил разработчик id Software в 1999 году в коде Quake III Arena.

Одна строка с приведением указателя, один битовый сдвиг, одно вычитание - и на выходе получается приближение к 1/√x.

Просто битовые трюки, магическая константа и финальный шаг уточнения методом Ньютона.

А комментарий в коде был максимально честный:

what the f***?
13👍6🔥1👌1
😒 Официальная библиотека промптов для Claude от Anthropic

Разработчики из Anthropic обновили и структурировали масштабный хаб готовых запросов для своей языковой модели. База создана для того, чтобы пользователи могли выжать максимум из Claude при решении прикладных и технических задач, не тратя время на самостоятельный подбор формулировок.

⚡️Внутри собраны сотни шаблонов под самые разные сценарии:
🟦Для безопасности: готовые конструкции для проверки кода на уязвимости и анализа граничных условий работы алгоритмов.

🟦Для разработчиков: шаблоны для глубокого ревью кода, автоматического поиска багов, рефакторинга, написания юнит-тестов и проектирования архитектуры.

🟦Для автоматизации и менеджмента: промпты под стратегическое планирование, парсинг неструктурированных данных, генерацию технической документации и выстраивание логики для ИИ-агентов.


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

❤️‍🩹Сохраняйте в закладки и внедряйте в свои рабочие процессы.

Нейросети отлично автоматизируют рутину и помогают искать уязвимости, но управлять ими может только тот, кто понимает саму базу и суть киберугроз.

Если вы хотите заложить мощный фундамент начните с нашего бесплатного курса (его прошли уже 1108 человек!).

🟦Разберетесь, как работают кибератаки и как грамотно защитить свои данные.

🟦Познакомитесь с направлениями и профессиями в кибербезопасности, чтобы выбрать свой трек.

🟦Получите скидку, если решите продолжить обучение в CyberYozh Academy.


👉 Начните бесплатно прямо сейчас
🦔 CyberYozh
Please open Telegram to view this post
VIEW IN TELEGRAM
1
⚡️ Linux может читать сетевые пакеты почти напрямую

В Linux можно открыть raw socket и увидеть пакеты, которые приходят на сетевую карту.

Без Wireshark.
Без libpcap.
Без лишних инструментов.

Пример из скрина делает простую вещь:

1. создаёт socket уровня AF_PACKET
2. просит у ядра все Ethernet-пакеты через ETH_P_ALL
3. в бесконечном цикле читает их через recvfrom
4. печатает размер каждого пакета

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

“Отдавай мне всё, что видит сетевой интерфейс.”

И Linux отдаёт.

Почему это круто?

Потому что так становится понятно, что Wireshark - это не магия. Он тоже получает низкоуровневый трафик от системы, просто красиво его разбирает и показывает.

Обычно разработчик работает с сетью на высоком уровне:

HTTP → TCP → socket

А raw socket позволяет спуститься ниже:

Ethernet frame → IP packet → TCP/UDP → payload

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

Это один из тех примеров, после которых Linux networking перестаёт быть чёрным ящиком.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку

Окружение решает больше, чем кажется.

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

AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: t.me/DevopsDocker
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_1001_notes
Java: t.me/java_library
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: https://t.me/gamedev
Haskell: t.me/haskell_tg

Собеседования и карьера:

DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview

Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy

Полезное сверху:

ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: @courses
ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy

Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg

Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
1👍1
🗺️ Полный роадмап C++ 2026 — от нуля до профессионала

Это не просто список тем, а пошаговый маршрут превращения новичка в профессионального C++-разработчика. Каждый уровень даёт не только перечень концепций, но и рабочие примеры кода с пояснениями «как правильно» и «как неправильно», чтобы вы сразу видели идиоматичный современный C++, а не устаревшие практики из учебников 2000-х годов.

Роадмап построен по принципу «теория рядом с практикой»: сначала вы изучаете концепцию на коде из соответствующего уровня, а затем углубляете понимание в разделе.

📚 Теория C++, где каждая тема разобрана от базовой интуиции до тонкостей, важных на собеседованиях и в продакшене. Такой подход экономит месяцы: вы не зубрите оторванные факты, а понимаете, почему язык устроен именно так.

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

https://github.com/justxor/cpproadmap2026/tree/main
5👍1🥰1
Forwarded from Machinelearning
✔️ Google хочет «вшить» архитектуру Gemini прямо в кремний

По данным The Information, Google разрабатывает серверный ИИ-чип под неофициальным названием Frozen v2. Часть архитектуры Gemini планируют реализовать непосредственно на аппаратном уровне.

Ожидаемый результат:

- в 6–10 раз выше энергоэффективность по сравнению с последними TPU
- больше обработанных токенов при том же энергопотреблении
- снижение дефицита вычислительных мощностей Google
- возможное развёртывание уже с 2028 года

Цена такой эффективности — потеря гибкости. Если ключевые элементы модели зафиксированы в кремнии, будущие версии Gemini должны сохранять совместимую архитектуру. Крупное изменение модели может потребовать разработки нового чипа.

TPU уже снизили зависимость Google от Nvidia. Frozen v2 способен связать модели и инфраструктуру ещё теснее: Gemini будет проектироваться под конкретный кремний, а кремний — под Gemini.

Проект пока находится на ранней стадии и официально не представлен.

#google #gemini #ai #hardware #tpu

https://www.theinformation.com/articles/google-plans-new-frozen-chip-run-ai-models-efficiently
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🔥1🤔1