Кто-то сделал DOOM, который запускается через
curl и рендерится в терминале ANSI-символами. Никаких зависимостей, никакого GUI — только браузер терминала и HTTP.Как запустить:
curl -sL http://localhost:3000 | bash
Есть и второй вариант: без
bash, чистым curl. Но тут придётся вручную переключить терминал в raw mode, иначе curl не увидит нажатие клавиши до Enter:stty -echo -icanon min 1 time 0 && curl -sN -X POST -T - localhost:3000/play
После игры терминал нужно починить командой
reset.Сессии без активности удаляются через 60 секунд. Игра стартует сразу с E1M1 на сложности «Hurt me plenty», без меню.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
🌐 Открываем localhost в интернет
MekongTunnel это SSH-туннель сервер, написанный на Go. Он поднимает публичный HTTPS-URL для вашего локального приложения через SSH проброс удалённого порта.
Как запустить:
Для Linux amd64 меняете linux-amd64 на darwin-arm64 . Windows: скачиваете .exe и добавляете в PATH.
Запуск туннеля:
В терминале появится публичный URL вида
Или через чистый SSH без CLI:
Сервер имеет встроенную защиту от злоупотреблений. На один IP можно открыть не больше 3 туннелей, запросы ограничены 10 в секунду с бёрстом до 20. Если клиент переподключается слишком часто, IP блокируется на 15 минут.
Чтобы не попасть в блок, держите соединение живым:
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженера
MekongTunnel это SSH-туннель сервер, написанный на Go. Он поднимает публичный HTTPS-URL для вашего локального приложения через SSH проброс удалённого порта.
Как запустить:
sudo curl -L https://github.com/MuyleangIng/MekongTunnel/releases/download/v1.1.0/mekong-linux-amd64 \
-o /usr/local/bin/mekong
sudo chmod +x /usr/local/bin/mekong
Для Linux amd64 меняете linux-amd64 на darwin-arm64 . Windows: скачиваете .exe и добавляете в PATH.
Запуск туннеля:
mekong 3000
В терминале появится публичный URL вида
https://happy-tiger-a1b2c3d4.mekongtunnel.dev, QR-код для телефона и URL уже скопирован в буфер.Или через чистый SSH без CLI:
ssh -t -R 80:localhost:8080 mekongtunnel.dev
Сервер имеет встроенную защиту от злоупотреблений. На один IP можно открыть не больше 3 туннелей, запросы ограничены 10 в секунду с бёрстом до 20. Если клиент переподключается слишком часто, IP блокируется на 15 минут.
Чтобы не попасть в блок, держите соединение живым:
ssh -t -R 80:localhost:8080 \
-o ServerAliveInterval=60 \
-o ServerAliveCountMax=3 \
yourdomain.com
📍 Навигация: Вакансии • Задачи • Собесы
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🔄 Deepin 25.1.0
Китайский дистрибутив Deepin выпустил новую версию, подглядываем что нового.
Самое заметное по части производительности: переход ядра с 6.12 на 6.18. Туда вошёл планировщик BORE из CachyOS, который изначально делался для игр и плавного десктопа под нагрузкой.
Из неожиданного: Claw Mode. Это режим управления всей системой голосом или текстом на естественном языке. Говоришь «открой терминал и переименуй все файлы в папке Downloads по дате» — система выполняет.
ИИ-ассистент для текстов тоже переработан: теперь он сначала строит план, показывает его пользователю, тот может поправить, и только потом идёт генерация.
➡️ Источник
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрии
Китайский дистрибутив Deepin выпустил новую версию, подглядываем что нового.
Самое заметное по части производительности: переход ядра с 6.12 на 6.18. Туда вошёл планировщик BORE из CachyOS, который изначально делался для игр и плавного десктопа под нагрузкой.
Из неожиданного: Claw Mode. Это режим управления всей системой голосом или текстом на естественном языке. Говоришь «открой терминал и переименуй все файлы в папке Downloads по дате» — система выполняет.
ИИ-ассистент для текстов тоже переработан: теперь он сначала строит план, показывает его пользователю, тот может поправить, и только потом идёт генерация.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
EXPOSE и -p оба про порты, но работают по-разному. Один объявляет намерение, другой реально открывает доступ.EXPOSE это документация, не настройка
EXPOSE в Dockerfile говорит только одно: "контейнер слушает этот порт". Это подсказка для разработчика и для Docker, но не более. Трафик снаружи всё равно не пройдёт:FROM node:18
EXPOSE 3000
CMD ["node", "index.js"]
После
docker build и docker run без дополнительных флагов порт 3000 недоступен с хоста. EXPOSE ничего не открывает.PUBLISH это реальное пробрасывание порта
Флаг
-p при запуске контейнера связывает порт хоста с портом контейнера. Вот это уже работает:# хост:контейнер
docker run -p 8080:3000 myapp
Теперь запрос на
localhost:8080 попадает в контейнер на порт 3000. Без -p — не попадает, даже если EXPOSE 3000 прописан.Варианты использования
-p:# конкретный порт хоста
docker run -p 8080:3000 myapp
# случайный свободный порт хоста
docker run -p 3000 myapp
# только на localhost хоста, не наружу
docker run -p 127.0.0.1:8080:3000 myapp
# все порты из EXPOSE на случайные порты хоста
docker run -P myapp
Последний вариант с
-P это единственный случай, когда EXPOSE влияет на поведение. Docker смотрит, какие порты объявлены через EXPOSE, и пробрасывает их все на случайные порты хоста.В Docker Compose
Та же логика, другой синтаксис.
expose — только между контейнерами внутри сети. ports — наружу на хост:services:
app:
image: myapp
expose:
- "3000" # видно другим сервисам в сети, не хосту
ports:
- "8080:3000" # видно хосту
Важный момент: контейнеры в одной Compose-сети и так видят друг друга по всем портам без
expose и без ports. Директива expose в Compose нужна только для явной документации намерений.EXPOSE — документация для людей и инструментов. На реальный трафик не влияет. -p / ports — реальное пробрасывание, без него порт снаружи недоступен.📍 Навигация: Вакансии • Задачи • Собесы
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
🧑💻 Храним секреты без менеджеров паролей: реальные примеры
Если у вас нет Vault или AWS Secrets Manager, это не значит, что секреты можно кидать в
Docker Secrets
Docker Swarm умеет хранить секреты отдельно от контейнера. Файл не попадает в образ, не светится в
Создаём секрет:
Используем в
Внутри контейнера секрет доступен как файл
Если Swarm не нужен и работаете в обычном Compose, секрет можно передать через файл на хосте:
Файл
GitHub Actions: repository secrets
Секреты хранятся на стороне GitHub, в код не попадают. Добавляем через Settings → Secrets and variables → Actions.
Пример воркфлоу, который использует токен для деплоя:
Что здесь важно:
Для разных окружений используйте энвы:
VPS без managed-сервисов: systemd и переменные окружения
Если приложение запускается через systemd, секреты можно передать через
Создаём файл с секретами на VPS:
Содержимое файла:
Ограничиваем доступ:
В юнит-файле systemd подключаем файл:
Приложение получает переменные окружения как обычно. Файл с секретами читает только root, в репозиторий он не попадает никогда.
Дополнительный слой: git-crypt
Если секреты всё-таки нужно хранить в репозитории (например, конфиги для команды), можно шифровать их прямо в git.
После этого
Ни один из этих способов не заменяет полноценный менеджер секретов, но каждый из них закрывает конкретную дыру лучше, чем голый
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженера
Если у вас нет Vault или AWS Secrets Manager, это не значит, что секреты можно кидать в
.env и надеяться на лучшее. Есть несколько рабочих способов защититься без сторонних платных инструментов.Docker Secrets
Docker Swarm умеет хранить секреты отдельно от контейнера. Файл не попадает в образ, не светится в
docker inspect, не передаётся через переменные окружения.Создаём секрет:
echo "my_super_password" | docker secret create db_password -
Используем в
docker-compose.yml:version: "3.8"
services:
app:
image: myapp:latest
secrets:
- db_password
environment:
DB_PASSWORD_FILE: /run/secrets/db_password
secrets:
db_password:
external: true
Внутри контейнера секрет доступен как файл
/run/secrets/db_password. В коде читаем так:with open("/run/secrets/db_password") as f:
password = f.read().strip()Если Swarm не нужен и работаете в обычном Compose, секрет можно передать через файл на хосте:
secrets:
db_password:
file: ./secrets/db_password.txt
Файл
./secrets/db_password.txt добавляем в .gitignore. В репозиторий он не попадает, но и на машине лежит в читаемом виде.GitHub Actions: repository secrets
Секреты хранятся на стороне GitHub, в код не попадают. Добавляем через Settings → Secrets and variables → Actions.
Пример воркфлоу, который использует токен для деплоя:
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy to VPS
env:
SSH_KEY: ${{ secrets.VPS_SSH_KEY }}
VPS_HOST: ${{ secrets.VPS_HOST }}
run: |
echo "$SSH_KEY" > /tmp/deploy_key
chmod 600 /tmp/deploy_key
ssh -i /tmp/deploy_key -o StrictHostKeyChecking=no user@$VPS_HOST "cd /app && git pull && systemctl restart app"
Что здесь важно:
${{ secrets.VPS_SSH_KEY }} нигде не выводится в логи — GitHub автоматически маскирует значения. Если случайно напишете echo ${{ secrets.VPS_SSH_KEY }}, в логах увидите ***.Для разных окружений используйте энвы:
jobs:
deploy:
environment: production # у этого environment свой набор секретов
runs-on: ubuntu-latest
VPS без managed-сервисов: systemd и переменные окружения
Если приложение запускается через systemd, секреты можно передать через
EnvironmentFile. Файл лежит на сервере с ограниченными правами доступа.Создаём файл с секретами на VPS:
sudo mkdir -p /etc/myapp
sudo nano /etc/myapp/secrets.env
Содержимое файла:
DB_PASSWORD=my_super_password
API_TOKEN=abc123xyz
Ограничиваем доступ:
sudo chmod 600 /etc/myapp/secrets.env
sudo chown root:root /etc/myapp/secrets.env
В юнит-файле systemd подключаем файл:
[Unit]
Description=My App
[Service]
User=appuser
EnvironmentFile=/etc/myapp/secrets.env
ExecStart=/usr/bin/myapp
Restart=always
[Install]
WantedBy=multi-user.target
Приложение получает переменные окружения как обычно. Файл с секретами читает только root, в репозиторий он не попадает никогда.
Дополнительный слой: git-crypt
Если секреты всё-таки нужно хранить в репозитории (например, конфиги для команды), можно шифровать их прямо в git.
git-crypt шифрует выбранные файлы с помощью GPG-ключа. Все видят зашифрованный blob, расшифровать может только тот, у кого есть ключ.# Инициализация
git-crypt init
# Добавляем пользователя по GPG-ключу
git-crypt add-gpg-user USER_ID
# Указываем какие файлы шифровать (.gitattributes)
echo "secrets.env filter=git-crypt diff=git-crypt" >> .gitattributes
После этого
secrets.env в репозитории выглядит как бинарный мусор. На машине с ключом обычный текст.Ни один из этих способов не заменяет полноценный менеджер секретов, но каждый из них закрывает конкретную дыру лучше, чем голый
.env.📍 Навигация: Вакансии • Задачи • Собесы
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
🖇 Kubernetes v1.36: что будет нового
Команда Kubernetes опубликовала предварительный обзор v1.36. Релиз выходит 22 апреля 2026 года. Список фич ещё может измениться, но основное уже зафиксировано.
Что уходит
gitRepo volume plugin удалён окончательно. Плагин был помечен как устаревший ещё в v1.11, но технически работал до последнего. Если у вас есть workloads с gitRepo, нужно мигрировать на init containers или git-sync.
Поле
Ingress NGINX выведен из строя 24 марта 2026 года. Новых релизов, патчей безопасности и багфиксов больше не будет.
Что стабилизируется
SELinux-лейблинг для томов. Вместо рекурсивного перелейблинга файлов теперь применяется монтирование с опцией
Внешнее подписание токенов ServiceAccount. Kube-apiserver делегирует подписание токенов внешним системам: облачным KMS или аппаратным HSM.
Dynamic Resource Allocation получает новые возможности
Пометки устройств и допуски для DRA переходят в бету и включаются по умолчанию. DRA-драйверы могут помечать устройства как недоступные для планировщика — тогда они не используются, пока нагрузка явно не запросит такое устройство.
Разделяемые устройства в DRA: одна физическая карта теперь может делиться на несколько логических единиц для разных нагрузок. GPU больше не нужно отдавать целиком одному поду.
➡️ Репозиторий
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрии
Команда Kubernetes опубликовала предварительный обзор v1.36. Релиз выходит 22 апреля 2026 года. Список фич ещё может измениться, но основное уже зафиксировано.
Что уходит
gitRepo volume plugin удалён окончательно. Плагин был помечен как устаревший ещё в v1.11, но технически работал до последнего. Если у вас есть workloads с gitRepo, нужно мигрировать на init containers или git-sync.
Поле
spec.externalIPs в Service помечается как устаревшее. Оно позволяло проводить man-in-the-middle атаки на трафик кластера. Альтернативы: LoadBalancer, NodePort или Gateway API.Ingress NGINX выведен из строя 24 марта 2026 года. Новых релизов, патчей безопасности и багфиксов больше не будет.
Что стабилизируется
SELinux-лейблинг для томов. Вместо рекурсивного перелейблинга файлов теперь применяется монтирование с опцией
-o context=XYZ. Метка применяется ко всему тому сразу при монтировании. Внешнее подписание токенов ServiceAccount. Kube-apiserver делегирует подписание токенов внешним системам: облачным KMS или аппаратным HSM.
Dynamic Resource Allocation получает новые возможности
Пометки устройств и допуски для DRA переходят в бету и включаются по умолчанию. DRA-драйверы могут помечать устройства как недоступные для планировщика — тогда они не используются, пока нагрузка явно не запросит такое устройство.
Разделяемые устройства в DRA: одна физическая карта теперь может делиться на несколько логических единиц для разных нагрузок. GPU больше не нужно отдавать целиком одному поду.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2
Junior DevOps engineer — от 90 000 ₽, удалёнка
DevOps Engineer — до 300 000 ₽, офис в Санкт-Петербурге
Middle DevOps Engineer — до 6 000 $, удалёнка
#вакансия_недели
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 PowerShell 7.6 вышел с опозданием
Релиз PowerShell 7.6 запланировали намного раньше, а вышел он в марте 2026 года. Команда опубликовала разбор того, что пошло не так.
Суть проблем сводится к нескольким факторам. В октябре 2025 года в систему сборки внесли изменения, из-за которых сломался Alpine-пакет. Библиотека
Следом в ноябре добавились новые требования по комплаенсу: пришлось менять инструменты упаковки пакетов для не-Windows-платформ. Это сдвинуло выход исправлений с октября на декабрь.
В декабре вышел preview.6, но из-за заморозки изменений на праздники и ограниченной доступности ключевых людей не удалось опубликовать пакеты в PMC и NuGet.
В январе 2026-го всплыла ещё одна проблема: библиотека libpsl-native на RHEL 8 требовала сборки под glibc 2.28, а не 2.33, которую использовали для RHEL 9 и выше.
Команда честно признала системные сбои в процессе. Не было чёткого владельца релиза, не хватало структурированного отслеживания состояния, а замедление цикла preview-версий означало, что проблемы обнаруживались поздно, когда их исправление обходилось дороже.
Что теперь меняется: команда назначила явного ответственного за каждый релиз, настроила внутренний трекинг блокеров, восстанавливает регулярный график preview и упрощает систему сборки пакетов.
➡️ Блог разработчиков
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#разбор_полётов
Релиз PowerShell 7.6 запланировали намного раньше, а вышел он в марте 2026 года. Команда опубликовала разбор того, что пошло не так.
Суть проблем сводится к нескольким факторам. В октябре 2025 года в систему сборки внесли изменения, из-за которых сломался Alpine-пакет. Библиотека
Microsoft.PowerShell.Native собиралась новым инструментом, несовместимым с Alpine. Следом в ноябре добавились новые требования по комплаенсу: пришлось менять инструменты упаковки пакетов для не-Windows-платформ. Это сдвинуло выход исправлений с октября на декабрь.
В декабре вышел preview.6, но из-за заморозки изменений на праздники и ограниченной доступности ключевых людей не удалось опубликовать пакеты в PMC и NuGet.
В январе 2026-го всплыла ещё одна проблема: библиотека libpsl-native на RHEL 8 требовала сборки под glibc 2.28, а не 2.33, которую использовали для RHEL 9 и выше.
Команда честно признала системные сбои в процессе. Не было чёткого владельца релиза, не хватало структурированного отслеживания состояния, а замедление цикла preview-версий означало, что проблемы обнаруживались поздно, когда их исправление обходилось дороже.
Что теперь меняется: команда назначила явного ответственного за каждый релиз, настроила внутренний трекинг блокеров, восстанавливает регулярный график preview и упрощает систему сборки пакетов.
📍 Навигация: Вакансии • Задачи • Собесы
#разбор_полётов
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы часто работаете в терминале, вы знаете это чувство: нужная команда была, но куда делась. Прокручивать весь history неудобно. Вот два простых bash-алиаса, которые решают эту проблему.
Последние N команд:
h() {
history | tail -n "$1"
}Вызываете
h 20 и получаете последние 20 команд.Поиск по истории:
hg() {
history | grep "$1"
}Когда помните только часть команды,
hg docker или hg ssh быстро находит всё, что вы когда-либо запускали с этим словом.Положите обе функции в
~/.bashrc или ~/.zshrc и перезагрузите конфиг:source ~/.bashrc
📍 Навигация: Вакансии • Задачи • Собесы
#root_prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
У большинства команд нет никакой видимости того, что их CI-runner'ы делают в сети. Это серьёзная слепая зона.
Step Security выпустили GitHub Action, который логирует или блокирует исходящие соединения прямо во время билда.
Добавляется одним шагом в начало каждой джобы:
jobs:
build:
runs-on: ubuntu-latest
steps:
# Добавьте этот шаг ПЕРВЫМ в каждом job
- uses: step-security/harden-runner@v2
with:
egress-policy: audit # 'audit' только логирует, 'block' блокирует
allowed-endpoints: > # белый список разрешённых эндпоинтов
registry.npmjs.org:443
github.com:443
objects.githubusercontent.com:443
- uses: actions/checkout@v4
- run: npm ci
# Любое соединение с sfrclak.com теперь попадёт в логи безопасности
Два режима работы
В режиме
audit Harden-Runner пишет в лог все исходящие соединения, ничего не блокируя. Это безопасный старт: билды не ломаются, но вы видите реальный сетевой профиль своего пайплайна.Когда понимаете, какие соединения для вас нормальные, переключаетесь на
block с белым списком. Любое неожиданное исходящее соединение сразу роняет билд.Начните с
audit, посмотрите на трафик неделю, потом переходите на block. Большинство легитимных билдов ходят в три-пять известных эндпоинтов, и белый список для них составляется за пять минут.📍 Навигация: Вакансии • Задачи • Собесы
#арсенал_инженера
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
🛠 Логирование с временными метками в bash-скриптах
Когда скрипт падает на проде в три ночи, первый вопрос: что именно произошло и в какой момент. Без логов остаётся только гадать.
Три функции вместо голого echo:
Три уровня:
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#root_prompt
Когда скрипт падает на проде в три ночи, первый вопрос: что именно произошло и в какой момент. Без логов остаётся только гадать.
Три функции вместо голого echo:
#!/bin/bash
set -euo pipefail
LOG_FILE="/var/log/myscript.log"
log() { echo "[INFO] $(date '+%H:%M:%S') $1" | tee -a "$LOG_FILE"; }
warn() { echo "[WARN] $(date '+%H:%M:%S') $1" | tee -a "$LOG_FILE"; }
error(){ echo "[ERROR] $(date '+%H:%M:%S') $1" | tee -a "$LOG_FILE"; exit 1; }
log "Script started"
warn "Config file missing, using defaults"
error "Database connection failed" # здесь скрипт остановится
Три уровня:
log для обычных событий, warn для подозрительного, error для критического с немедленным выходом.tee -a пишет одновременно в терминал и в файл. Флаг -a означает append, то есть каждый запуск дописывает в конец, а не перезаписывает лог с нуля.📍 Навигация: Вакансии • Задачи • Собесы
#root_prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
ConfigMap обновлён. Что происходит дальше в работающем поде?
piVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
LOG_LEVEL: "info"
DB_POOL_SIZE: "10"
Вы меняете
LOG_LEVEL на debug. Применяете через kubectl apply. Под работает, не перезапускался.Приложение
видит info или debug?📍 Навигация: Вакансии • Задачи • Собесы
#задача_со_звёздочкой
Please open Telegram to view this post
VIEW IN TELEGRAM
🤖 Ваш ИИ-агент съедает бюджет на токены и падает при сбоях API?
Пора переходить на новый уровень. Открыли продажи курса по AgentOps — управлению ИИ-агентами в рабочих процессах.
Рынок требует инженеров, которые умеют:
• Контролировать метрики и качество ответов;
• Эффективно работать с RAG-архитектурой;
• Строить системы, готовые к реальным нагрузкам.
Обучение займет 6-12 недель под руководством практиков с опытом в AI и Data Science в крупных IT-компаниях, таких как Яндекс, Сбер, МТС, Huawei, Raft и др.
🎁 Можно подождать, пока про AgentOps начнут говорить все. Или зайти сейчас — НА 30% ДЕШЕВЛЕ!
🔥 Забрать скидку и изучить программу.
Пора переходить на новый уровень. Открыли продажи курса по AgentOps — управлению ИИ-агентами в рабочих процессах.
Рынок требует инженеров, которые умеют:
• Контролировать метрики и качество ответов;
• Эффективно работать с RAG-архитектурой;
• Строить системы, готовые к реальным нагрузкам.
Обучение займет 6-12 недель под руководством практиков с опытом в AI и Data Science в крупных IT-компаниях, таких как Яндекс, Сбер, МТС, Huawei, Raft и др.
🎁 Можно подождать, пока про AgentOps начнут говорить все. Или зайти сейчас — НА 30% ДЕШЕВЛЕ!
Работа с AI начинается с систем.
Системы — с AgentOps.
🔥 Забрать скидку и изучить программу.
😁1
🔄 Вышел Trisquel 12.0
Trisquel — это Linux дистрибутив без проприетарных компонентов, основанный на Ubuntu. Новый релиз получил несколько значимых обновлений.
Вышел Trisquel 12.0 с кодовым именем Ecne.
APT обновился до версии 3.0 с поддержкой формата репозиториев deb822. Обновление затронуло все пути установки: текстовый инсталлятор, графический Ubiquity, Synaptic и другие инструменты управления пакетами.
Trisquel Mini на базе LXDE получил заметные улучшения. Ubuntu официально отказалась от LXDE во всех своих релизах, так что Trisquel теперь фактически один из основных проектов, который его поддерживает.
Начата предварительная работа по поддержке архитектуры RISC-V.
➡️ Источник
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#пульс_индустрии
Trisquel — это Linux дистрибутив без проприетарных компонентов, основанный на Ubuntu. Новый релиз получил несколько значимых обновлений.
Вышел Trisquel 12.0 с кодовым именем Ecne.
APT обновился до версии 3.0 с поддержкой формата репозиториев deb822. Обновление затронуло все пути установки: текстовый инсталлятор, графический Ubiquity, Synaptic и другие инструменты управления пакетами.
Trisquel Mini на базе LXDE получил заметные улучшения. Ubuntu официально отказалась от LXDE во всех своих релизах, так что Trisquel теперь фактически один из основных проектов, который его поддерживает.
Начата предварительная работа по поддержке архитектуры RISC-V.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
🦾 Надоело чинить «упавших» ИИ-агентов после каждого микросбоя внешних сервисов?
Анонсируем старт продаж большого курса по AgentOps. Мы собрали опыт десятков разработчиков и сделали программу, которая учит выводить ИИ в стабильный прод.
🗓 Ждем вас 28 апреля в 19:00 МСК на эфире: «Как эффективно управлять контекстным окном LLM в мультиагентных системах и не сливать бюджет на токены».
👉 Кто вещает и в чем польза?
Спикер Кирилл Кухарев (Senior AI Engineer в Raft, спикер AI Conf и Highload++). Он реализовал более 50 коммерческих проектов в GenAI и на вебинаре покажет, как взять под контроль работу нескольких агентов, чтобы они не перекидывали друг другу лишний контекст и не сжигали ваши деньги.
В прямом эфире разберем:
• Как формируется контекст в LLM при маршрутизации между агентами;
• Куда утекают лишние токены и возникает перерасход;
• Практические методы: как сжимать историю, грамотно делить задачи, лимитировать передачу контекста и собирать промпты прямо в процессе запроса пользователя.
🔥 Два способа получить максимум:
1. Приходите на вебинар 28 апреля. Дарим участникам промокод на 5.000 ₽ (работает 3 дня после эфира - это шанс забрать курс по самому низу рынка).
2. Выбирайте Инженерный трек. В подарок к нему идет полный доступ к записям и автопроверкам завершенного курса «Разработка ИИ-агентов».
👉 Занять место на вебинаре и стать профи в AgentOps
Анонсируем старт продаж большого курса по AgentOps. Мы собрали опыт десятков разработчиков и сделали программу, которая учит выводить ИИ в стабильный прод.
🗓 Ждем вас 28 апреля в 19:00 МСК на эфире: «Как эффективно управлять контекстным окном LLM в мультиагентных системах и не сливать бюджет на токены».
Спикер Кирилл Кухарев (Senior AI Engineer в Raft, спикер AI Conf и Highload++). Он реализовал более 50 коммерческих проектов в GenAI и на вебинаре покажет, как взять под контроль работу нескольких агентов, чтобы они не перекидывали друг другу лишний контекст и не сжигали ваши деньги.
В прямом эфире разберем:
• Как формируется контекст в LLM при маршрутизации между агентами;
• Куда утекают лишние токены и возникает перерасход;
• Практические методы: как сжимать историю, грамотно делить задачи, лимитировать передачу контекста и собирать промпты прямо в процессе запроса пользователя.
🔥 Два способа получить максимум:
1. Приходите на вебинар 28 апреля. Дарим участникам промокод на 5.000 ₽ (работает 3 дня после эфира - это шанс забрать курс по самому низу рынка).
2. Выбирайте Инженерный трек. В подарок к нему идет полный доступ к записям и автопроверкам завершенного курса «Разработка ИИ-агентов».
👉 Занять место на вебинаре и стать профи в AgentOps
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1
Разработчики проводят в терминале много времени. Часть этого времени уходит на мелкие, повторяющиеся действия: создать папку, зайти в неё, найти файл где-то в дереве проекта. Несколько простых функций в
.bashrc или .zshrc убирают эти паузы.Создать папку и сразу зайти в неё:
mkcd() {
mkdir -p "$1" && cd "$1"
}Флаг
-p создаёт все промежуточные директории, если их нет. Работает с вложенными путями без дополнительных усилий.Подняться на несколько уровней вверх:
up() {
local d=""
for ((i=1;i<=$1;i++)); do
d+="../"
done
cd "$d"
}Если вы глубоко внутри проекта,
up 3 заменяет cd ../../... Не нужно считать точки и слэши вручную. Просто передаём число уровней.Найти файл по имени:
ff() {
find . -type f -iname "*$1*"
}Обёртка над
find с поиском без учёта регистра. Удобно, когда помним часть имени файла, но не знаем точный путь. В больших репозиториях работает быстрее, чем ручная навигация.Найти директорию по имени:
fd() {
find . -type d -iname "*$1*"
}То же самое, но ищет только директории. Заменяет несколько попыток
cd с угадыванием пути.Как подключить
Добавьте функции в конец файла
~/.bashrc или ~/.zshrc, затем выполните:source ~/.bashrc
После этого функции доступны в любом новом терминале.
Четыре небольших дополнения, и часть рутины исчезает. Это не революция, просто меньше лишних нажатий за день.
📍 Навигация: Вакансии • Задачи • Собесы
#root_prompt
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🤔3👍1🎉1
Вышел X.Org Server 21.1.22 и xwayland 24.1.10. Основное в этом релизе это патчи безопасности. Их пять, и часть из них закрывает баги, которые живут в коде с 2001 года.
Уязвимости опасны прежде всего там, где X-сервер запущен с правами root, или там, где пользователю доступна переадресация X11 через SSH.
Что закрыли:
CVE-2026-34001 — use-after-free в функции miSyncTriggerFence(). Баг появился в xorg-server 1.9.0 в 2010 году.
CVE-2026-33999 — integer underflow в XkbSetCompatMap(), позволяет читать или писать за пределы буфера при определённых параметрах клавиатурного расширения. Присутствует с X11R6.6, то есть с 2001 года.
CVE-2026-34000 — чтение за пределами буфера в XkbAddGeomKeyAlias из-за некорректной проверки длины входных данных. Появилось в xorg-server 21.1.4 и xwayland 22.1.3 в 2022 году.
CVE-2026-34002 — чтение за пределами буфера в CheckModifierMap(), причина — неверная проверка длины модификаторов при нестандартном числе поддерживаемых устройств. Тоже с 2001 года.
CVE-2026-34003 — некорректная логика в CheckKeyTypes() в XKB, ведёт к чтению за пределами буфера из-за неверной проверки размера массива элементов. С 2001 года.
Обновление стоит поставить тем, кто использует X-сервер с повышенными привилегиями или разрешает пользователям X11-forwarding по SSH.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM
📰 Середина апреля позади
А завтра снова работать..
— DOOM снова в терминале
— Deepin 25.1.0
— Устроиться на работу
— Под капотом у Kubernetes v1.36
— PowerShell 7.6
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#дайджест_недели
А завтра снова работать..
— DOOM снова в терминале
— Deepin 25.1.0
— Устроиться на работу
— Под капотом у Kubernetes v1.36
— PowerShell 7.6
📍 Навигация: Вакансии • Задачи • Собесы
#дайджест_недели
Please open Telegram to view this post
VIEW IN TELEGRAM
🏃♀️ Уже завтра стартует курс по разработке AI-агентов.
Про AI-агентов часто думают, что это просто модная обертка над джпт для пет-проектов. Кажется, прикрутил API к скрипту и типа готово. А вот и нет! Когда дело доходит до прода, начинаются настоящие проблемы.
Эту инженерную часть мы и будем разбирать на курсе. Будем учиться интегрировать внешние API, работать с RAG, LangGraph, CrewAI и деплоить всё это так, чтобы работало как часы.
Стартуем завтра. Для участия и доступа к программе переходите по ссылке.
Про AI-агентов часто думают, что это просто модная обертка над джпт для пет-проектов. Кажется, прикрутил API к скрипту и типа готово. А вот и нет! Когда дело доходит до прода, начинаются настоящие проблемы.
Зачем глубоко копать мультиагентные системы, если можно обойтись старым добрым кодом? Как контролировать расходы на токены, чтобы новая фича не разорила бизнес? Как заставить агента работать стабильно и предсказуемо, а не галлюцинировать?
Эту инженерную часть мы и будем разбирать на курсе. Будем учиться интегрировать внешние API, работать с RAG, LangGraph, CrewAI и деплоить всё это так, чтобы работало как часы.
Стартуем завтра. Для участия и доступа к программе переходите по ссылке.
В ветку Linux 7.1 принят патч, который убирает из ядра поддержку архитектуры i486. Из Kconfig исчезнут опции
CONFIG_M486, CONFIG_M486SX и CONFIG_MELAN, а из Makefile уберут флаг компиляции -march=i486.Сами процессоры i486 перестали производить ещё в начале 2000-х. Поддержка их в ядре держалась только благодаря инерции, но технически она давно стала проблемой. i486 не умеет выполнять инструкции для атомарного обмена 8 байт и не имеет счётчика тактов процессора, нужного планировщику.
📍 Навигация: Вакансии • Задачи • Собесы
#пульс_индустрии
Please open Telegram to view this post
VIEW IN TELEGRAM