🚀 Less Slow — как писать не просто работающий, а быстрый код
Разработчик Ash Vardanyan создал серию проектов, где показывает, как выжать максимум производительности из популярных языков: C++, Rust и Python.
🔧 В серии:
🧠 less_slow.cpp — C++ без тормозов: ассемблер, кеши, SIMD, аллокации, парсинг JSON и трюки с памятью
👉 github.com/ashvardanian/less_slow.cpp
🦀 less_slow.rs — продвинутый Rust: сравнение async/sync, SIMD, кеш-френдли структуры, быстрые сериализации
👉 github.com/ashvardanian/less_slow.rs
🐍 less_slow.py — Python на максималках: pandas vs polars, Cython, PyO3, Numba, Parquet, zero-copy
👉 github.com/ashvardanian/less_slow.py
📚 Все проекты сопровождаются примерами, микробенчмарками и понятными объяснениями.
💡 Если ты хочешь не просто кодить, а понимать, как устроена производительность — это must-read.
@DevOPSitsec
Разработчик Ash Vardanyan создал серию проектов, где показывает, как выжать максимум производительности из популярных языков: C++, Rust и Python.
🔧 В серии:
🧠 less_slow.cpp — C++ без тормозов: ассемблер, кеши, SIMD, аллокации, парсинг JSON и трюки с памятью
👉 github.com/ashvardanian/less_slow.cpp
🦀 less_slow.rs — продвинутый Rust: сравнение async/sync, SIMD, кеш-френдли структуры, быстрые сериализации
👉 github.com/ashvardanian/less_slow.rs
🐍 less_slow.py — Python на максималках: pandas vs polars, Cython, PyO3, Numba, Parquet, zero-copy
👉 github.com/ashvardanian/less_slow.py
📚 Все проекты сопровождаются примерами, микробенчмарками и понятными объяснениями.
💡 Если ты хочешь не просто кодить, а понимать, как устроена производительность — это must-read.
@DevOPSitsec
• На разработку этого гайда было потрачено два года : множество тестов тысячи перезапусков, сотни пересобранных кластеров — все это в одном гайде.
Чистый Kubernetes вручную — никакого kubeadm и прочих упрощений.
- Удобные алиасы, функции и обёртки для командной строки
- Десятки скриптов, проверенных в реальных боевых условиях
- Важные нюансы, о которых не рассказывают в стандартных туториалах
#Kubernetes #devops #clusters
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎮 Noun Town
Изучайте 14 языков (включая японский, арабский и русский) через геймплей: исследуете локации, находите «коробки» со словами, произносите их вслух — и возвращаете цвет городу. Основана на научных методиках запоминания.
🛋️ Influent
Расслабляющая игра для изучения более 20 языков через предметы в квартире. Узнаёте названия вещей, их формы и цвета, а в мини-игре на скорость тренируете словарный запас через визуальное погружение.
🏙️ Lingotopia
Иммерсивная сюжетная игра: попадаете в чужой город, постепенно расшифровываете речь жителей и учите язык «на языке контекста». Никаких скучных тестов — только исследования, диалоги и подсказки в окружении.
🕶️ Mondly VR:
Полное погружение в виртуальной реальности: общаетесь голосом в ситуациях из реальной жизни (кафе, вокзал, отель) с распознаванием речи. Отлично прокачивает навыки говорения и убирает страх диалога. Требуется VR‑шлем.
Сохраняйте подборку и прокачивайте языки в игровом формате! 🚀
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🐳 ctop — этот инструмент предлагает наглядный мониторинг контейнеров прямо в терминале.
Ctop выводит метрики CPU, памяти и сети в реальном времени, подсвечивая проблемные контейнеры — например, те, что съели всю оперативку.
Интересно, что можно не только смотреть статистику, но и управлять контейнерами: останавливать, перезапускать или заходить внутрь через exec — всё через интуитивное TUI.
Под капотом — поддержка Docker и runC, а в планах добавление Kubernetes.
Установка занимает одну команду (есть варианты для Linux, macOS и даже Windows через scoop). Для тех, кто не хочет ничего ставить, есть Docker-образ — запускается за секунды.
🔗 GitHub
@DevopsDocker
Ctop выводит метрики CPU, памяти и сети в реальном времени, подсвечивая проблемные контейнеры — например, те, что съели всю оперативку.
Интересно, что можно не только смотреть статистику, но и управлять контейнерами: останавливать, перезапускать или заходить внутрь через exec — всё через интуитивное TUI.
Под капотом — поддержка Docker и runC, а в планах добавление Kubernetes.
Установка занимает одну команду (есть варианты для Linux, macOS и даже Windows через scoop). Для тех, кто не хочет ничего ставить, есть Docker-образ — запускается за секунды.
🔗 GitHub
@DevopsDocker
🎮 Agones — Kubernetes для игровых серверов. Инструмент решает проблему масштабирования тысячи инстансов для многопользовательских игр , превращая Kubernetes в специализированную платформу для управления игровыми серверами.
Проект предлагает не просто деплой через YAML-манифесты, а полноценный жизненный цикл: от health-check до автоматического масштабирования флота серверов под нагрузку. Интеграция с Kubernetes API позволяет matchmaker-системам напрямую запрашивать новые игровые сессии — без кастомных решений.
🤖 GitHub
@devopsitsec
Проект предлагает не просто деплой через YAML-манифесты, а полноценный жизненный цикл: от health-check до автоматического масштабирования флота серверов под нагрузку. Интеграция с Kubernetes API позволяет matchmaker-системам напрямую запрашивать новые игровые сессии — без кастомных решений.
🤖 GitHub
@devopsitsec
⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
Python: www.tg-me.com/pythonl
Linux: www.tg-me.com/linuxacademiya
Собеседования DS: www.tg-me.com/machinelearning_interview
Нерйросети www.tg-me.com/ai_machinelearning_big_data
C++ www.tg-me.com/cpluspluc
Docker: www.tg-me.com/DevopsDocker
Хакинг: www.tg-me.com/linuxkalii
Devops: www.tg-me.com/DevOps/com.DevOPSitsec
Data Science: www.tg-me.com/data_analysis_ml
Javascript: www.tg-me.com/javascriptv
C#: www.tg-me.com/csharp_ci
Java: www.tg-me.com/javatg
Базы данных: www.tg-me.com/sqlhub
Python собеседования: www.tg-me.com/python_job_interview
Мобильная разработка: www.tg-me.com/mobdevelop
Golang: www.tg-me.com/Golang_google
React: www.tg-me.com/react_tg
Rust: www.tg-me.com/rust_code
ИИ: www.tg-me.com/vistehno
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Frontend: www.tg-me.com/front
Big Data: www.tg-me.com/bigdatai
МАТЕМАТИКА: www.tg-me.com/data_math
Kubernets: www.tg-me.com/kubernetc
Разработка игр: https://www.tg-me.com/gamedev
Haskell: www.tg-me.com/haskell_tg
Физика: www.tg-me.com/fizmat
💼 Папка с вакансиями: www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://www.tg-me.com/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
🧠ИИ: www.tg-me.com/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy
Python: www.tg-me.com/pythonl
Linux: www.tg-me.com/linuxacademiya
Собеседования DS: www.tg-me.com/machinelearning_interview
Нерйросети www.tg-me.com/ai_machinelearning_big_data
C++ www.tg-me.com/cpluspluc
Docker: www.tg-me.com/DevopsDocker
Хакинг: www.tg-me.com/linuxkalii
Devops: www.tg-me.com/DevOps/com.DevOPSitsec
Data Science: www.tg-me.com/data_analysis_ml
Javascript: www.tg-me.com/javascriptv
C#: www.tg-me.com/csharp_ci
Java: www.tg-me.com/javatg
Базы данных: www.tg-me.com/sqlhub
Python собеседования: www.tg-me.com/python_job_interview
Мобильная разработка: www.tg-me.com/mobdevelop
Golang: www.tg-me.com/Golang_google
React: www.tg-me.com/react_tg
Rust: www.tg-me.com/rust_code
ИИ: www.tg-me.com/vistehno
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Frontend: www.tg-me.com/front
Big Data: www.tg-me.com/bigdatai
МАТЕМАТИКА: www.tg-me.com/data_math
Kubernets: www.tg-me.com/kubernetc
Разработка игр: https://www.tg-me.com/gamedev
Haskell: www.tg-me.com/haskell_tg
Физика: www.tg-me.com/fizmat
💼 Папка с вакансиями: www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://www.tg-me.com/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
🧠ИИ: www.tg-me.com/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy
🚨 Задача: «Исчезающий файл Docker-контейнера»
У вас есть Docker-контейнер, который запускается с помощью следующей команды:
Приложение внутри контейнера ежедневно генерирует важный лог-файл:
В течение дня файл корректно пишется и виден в директории на хосте:
Но ежедневно ровно в 3:00 ночи файл внезапно исчезает из папки на хосте, хотя приложение продолжает работать без ошибок и даже продолжает писать логи. После перезапуска контейнера утром, файл снова появляется и снова становится видимым на хосте.
🎯 Задача для специалиста:
Выяснить причину исчезновения файла ровно в 3:00 ночи.
Объяснить, почему приложение продолжает успешно писать лог, хотя на хосте он не виден.
Предложить решение, которое предотвращает исчезновение файла.
🔍 Подсказки и ограничения (подвохи):
На хосте нет видимых cron-задач и systemd-таймеров, удаляющих файл.
Контейнер запускается без рестартов и остается активным круглосуточно.
Внутри контейнера тоже нет cron-задач.
Docker-контейнеры не пересоздаются автоматически.
Подсказка: хостовая папка /opt/app/logs монтируется на сетевой диск (NFS), и у неё есть внешнее резервное копирование с моментальными снимками (snapshots), которые делаются каждую ночь в 3:00.
🔧 Команды и подходы для расследования:
Шаг 1: Проверить состояние контейнера
Шаг 2: Проверить, есть ли файл внутри контейнера
Шаг 3: Проверить монтирование томов и слои файловой системы
Шаг 4: Исследовать NFS-папку и поведение в момент создания snapshot
Шаг 5: Проверить inode-файл внутри контейнера и на хосте
🎲 Ответ :
Файл исчезает, потому что каждую ночь в 3:00 NFS-сервер создает snapshot папки /opt/app/logs, который включает операцию очистки или пересоздания директории.
В результате на хосте директория монтирования получает новый inode, и предыдущий файл перестаёт быть доступен через старый inode, хотя внутри контейнера файл с прежним inode остаётся открыт приложением и продолжает записываться, пока не закрыт.
То есть файл есть (открыт процессом приложения в контейнере), но на хосте его inode больше не соответствует новому inode директории, и файл становится «невидимым».
✅ Решение проблемы:
Приложению необходимо после каждой операции snapshot заново открывать файлы логов, либо перезапускать контейнер после snapshot.
Либо использовать локальное монтирование (local volume) вместо NFS с snapshot, либо настроить snapshot так, чтобы он не менял inode директории.
@DevopsDocker
У вас есть Docker-контейнер, который запускается с помощью следующей команды:
docker run -d --name tricky_container -v /opt/app/logs:/app/logs my-app-image
Приложение внутри контейнера ежедневно генерирует важный лог-файл:
/app/logs/important.log
В течение дня файл корректно пишется и виден в директории на хосте:
/opt/app/logs/important.log
Но ежедневно ровно в 3:00 ночи файл внезапно исчезает из папки на хосте, хотя приложение продолжает работать без ошибок и даже продолжает писать логи. После перезапуска контейнера утром, файл снова появляется и снова становится видимым на хосте.
🎯 Задача для специалиста:
Выяснить причину исчезновения файла ровно в 3:00 ночи.
Объяснить, почему приложение продолжает успешно писать лог, хотя на хосте он не виден.
Предложить решение, которое предотвращает исчезновение файла.
🔍 Подсказки и ограничения (подвохи):
На хосте нет видимых cron-задач и systemd-таймеров, удаляющих файл.
Контейнер запускается без рестартов и остается активным круглосуточно.
Внутри контейнера тоже нет cron-задач.
Docker-контейнеры не пересоздаются автоматически.
Подсказка: хостовая папка /opt/app/logs монтируется на сетевой диск (NFS), и у неё есть внешнее резервное копирование с моментальными снимками (snapshots), которые делаются каждую ночь в 3:00.
🔧 Команды и подходы для расследования:
Шаг 1: Проверить состояние контейнера
docker ps
docker inspect tricky_container
docker logs tricky_container
Шаг 2: Проверить, есть ли файл внутри контейнера
docker exec -it tricky_container ls -l /app/logs/
docker exec -it tricky_container tail /app/logs/important.log
Шаг 3: Проверить монтирование томов и слои файловой системы
docker inspect tricky_container --format '{{json .Mounts}}' | jq
Шаг 4: Исследовать NFS-папку и поведение в момент создания snapshot
df -hT /opt/app/logs
mount | grep nfs
Шаг 5: Проверить inode-файл внутри контейнера и на хосте
docker exec tricky_container ls -li /app/logs/important.log
ls -li /opt/app/logs/important.log
🎲 Ответ :
В результате на хосте директория монтирования получает новый inode, и предыдущий файл перестаёт быть доступен через старый inode, хотя внутри контейнера файл с прежним inode остаётся открыт приложением и продолжает записываться, пока не закрыт.
То есть файл есть (открыт процессом приложения в контейнере), но на хосте его inode больше не соответствует новому inode директории, и файл становится «невидимым».
✅ Решение проблемы:
Приложению необходимо после каждой операции snapshot заново открывать файлы логов, либо перезапускать контейнер после snapshot.
Либо использовать локальное монтирование (local volume) вместо NFS с snapshot, либо настроить snapshot так, чтобы он не менял inode директории.
@DevopsDocker
▪️ 1. Всегда проверяй
journalctl
вместо dmesg
для современных систем-
dmesg
покажет только сообщения ядра с момента загрузки.- А
journalctl -k -b -1
покажет логи ядра предыдущего ребута, что критично при расследовании падений.---
▪️ 2. Используй
ss
вместо netstat
-
netstat
устарел и медленнее.-
ss -tunap
даст быстрее и подробнее информацию о соединениях и сокетах.---
▪️ 3. Всегда включай `bash`-историю с таймстемпами
Добавь в
.bashrc
:
export HISTTIMEFORMAT="%F %T "
- Теперь команда
history
покажет не только команды, но и время их выполнения — незаменимо при расследованиях.---
▪️ 4. Следи за зомби-процессами правильно
- Команда:
ps -eo pid,ppid,state,cmd | grep ' Z '
- Поможет быстро находить процессы в состоянии "zombie", которые могут накапливаться и вызывать утечки ресурсов.
---
▪️ 5. Используй
nice
и ionice
для тяжёлых задач- Чтобы не положить систему нагрузкой от
tar
, rsync
или других утилит:
nice -n 19 ionice -c2 -n7 tar -czf backup.tar.gz /big/data
- Это заставит процесс работать с минимальным приоритетом по CPU и диску.
@DevopsDocker
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Zev 🔍
Это помощник для работы с терминалом на естественном языке.
Он помогает быстро находить нужные команды и сохранять их в избранное, а его простой и понятный интерфейс делает освоение терминала доступным даже для новичков.
📌 Github
@DevopsDocker
Это помощник для работы с терминалом на естественном языке.
Он помогает быстро находить нужные команды и сохранять их в избранное, а его простой и понятный интерфейс делает освоение терминала доступным даже для новичков.
pip install zev
📌 Github
@DevopsDocker
Forwarded from Machinelearning
This media is not supported in your browser
VIEW IN TELEGRAM
Представьте, что учите язык не по учебникам, а через ситуации, в которых оказываетесь каждый день. Именно эту идею воплотила команда Google в проекте Little Language Lessons— трех экспериментах на базе Gemini API, которые делают обучение живым и контекстным.
Первый эксперимент, Tiny Lesson, решает проблему «как сказать это сейчас?». Вы описываете ситуацию — например, «потерял паспорт» — и получаете словарь и фразы в формате JSON. Всё благодаря промптам, где Gemini генерирует структурированные данные: массив терминов с транскрипцией и переводом, а также советы по грамматике.
Например, если целевой язык — японский, модель сама определит, нужна ли транскрипция ромадзи, и подготовит материал за 2 API-запроса. Это не просто список слов, а готовый микрокурс под конкретный сценарий.
Второй, Slang Hang, убирает «учебникоговорение». Тут Gemini выступает как сценарист: создаёт диалоги на целевом языке с культурными нюансами и сленгом. Все генерируется одним запросом — от контекста сцены до реплик с пояснениями. Пример: диалог продавца и туриста может включать неформальные выражения, которые не найдешь в стандартных учебниках.
Правда, иногда модель ошибается или придумывает выражения, так что без проверки носителем не обойтись. Но сам подход — дать пользователю «уши» в реальных разговорах выглядит перспективно, особенно с интеграцией Cloud Translation для мгновенного перевода.
Третий, визуальный эксперимент — Word Cam. Наводите камеру на объект, и Gemini не только определяет его (bounding box), но и предлагает слова вроде «подоконник» или «жалюзи». Детекция работает через Gemini Vision, а дополнительные дескрипторы (цвет, материал, примеры употребления) подтягиваются отдельным запросом. Для изучения бытовой лексики почти идеально, хотя точность сильно зависит от качества снимка.
Во всех экспериментах задействован Text-to-Speech — озвучка слов и фраз. Но есть нюанс: для редких языков голоса зачастую звучат неестественно или не совпадают с диалектом. Например, выберете мексиканский испанский, а синтезатор выдаст акцент из Мадрида. Разработчики честно признают: это ограничение текущих API, и над ним еще работать.
Little Language Lessons — начало переосмысления процесса обучения языкам. Проекту пока не хватает тонкой настройки под лингвистическую специфику (идиомы или региональные диалекты), но основа уже заложена.
@ai_machinelearning_big_data
#AI #ML #LLM #Gemini
Please open Telegram to view this post
VIEW IN TELEGRAM