🌦 Linecast - погода, карты, радар, приливы, Солнце и Луна прямо в терминале
Open-source CLI превращает публичные данные в шесть интерактивных приложений:
-
-
-
-
-
-
Работает на macOS, Linux и Windows. Написан на Python, почти без зависимостей, не требует аккаунта или API-ключей и подстраивает цвета под тему терминала.
Можно даже запустить без установки:
GitHub:
https://github.com/ashuttl/linecast
Open-source CLI превращает публичные данные в шесть интерактивных приложений:
-
linecast weather — погода, почасовой прогноз, AQI и предупреждения-
linecast sunshine — восход, закат и длина дня-
linecast moon — фазы Луны, восход/заход и календарь-
linecast tides — график приливов и отливов-
linecast radar — анимированный радар и спутниковые данные-
linecast maps — карты, рельеф, поиск мест и маршрутыРаботает на macOS, Linux и Windows. Написан на Python, почти без зависимостей, не требует аккаунта или API-ключей и подстраивает цвета под тему терминала.
Можно даже запустить без установки:
uvx linecast weatherGitHub:
https://github.com/ashuttl/linecast
❤2👍1
Что реально стоит за требованиями в вакансиях DevOps-инженера
Открываешь вакансию - а там список из десяти технологий и фраза «опыт от 3 лет». Непонятно, что из этого критично, а что просто скопировали из соседней вакансии.
🔹В этом ролике - нарезка с вебинара, где Senior ИТ-рекрутер Аниса Рогатова и практикующий DevOps-инженер Евгений Федосеев разбирают реальные вакансии по косточкам: что на самом деле стоит за каждым требованием и на что смотрят при отборе.
🔹Полезно, если сейчас откликаешься на вакансии и не уверен, дотягиваешь ли до требований - или просто хочешь понимать, как рекрутер и инженер читают резюме по-разному.
Смотреть полную запись вебинара 👉СМОТРЕТЬ
Открываешь вакансию - а там список из десяти технологий и фраза «опыт от 3 лет». Непонятно, что из этого критично, а что просто скопировали из соседней вакансии.
🔹В этом ролике - нарезка с вебинара, где Senior ИТ-рекрутер Аниса Рогатова и практикующий DevOps-инженер Евгений Федосеев разбирают реальные вакансии по косточкам: что на самом деле стоит за каждым требованием и на что смотрят при отборе.
🔹Полезно, если сейчас откликаешься на вакансии и не уверен, дотягиваешь ли до требований - или просто хочешь понимать, как рекрутер и инженер читают резюме по-разному.
Смотреть полную запись вебинара 👉СМОТРЕТЬ
👎3👍2
Forwarded from Machinelearning
Теперь в десктопных клиентах ChatGPT за тот объем кредитов пользователи получают в 2,4 раза больше времени голосовой связи, а биллинг голосового потока и затраченных на задачу вычислительных ресурсов разделен.
Изменения касаются только десктопной среды и не затрагивают стандартный голосовой режим ChatGPT, где действуют другие лимиты и правила тарификации.
@ai_machinelearning_big_data
#news #ai #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
🥴2❤1👍1
Linux хранит состояния отслеживаемых соединений в таблице conntrack. Она используется в том числе при NAT для Kubernetes Services. Если таблица переполняется, новые соединения могут терять пакеты.
Симптомы: периодические тайм-ауты, сбои DNS и ошибки API при нормальных показателях приложений.
Как проверить на проблемном узле:
# Текущее число записей и лимит
sysctl net.netfilter.nf_conntrack_count
sysctl net.netfilter.nf_conntrack_max
# Сообщения ядра
sudo journalctl -k | grep -i conntrack
Характерная запись:
nf_conntrack: table full, dropping packet
Что делать:
• Увеличить лимит с учётом доступной памяти. Универсального значения для всех узлов нет.
• Проверить настройки
conntrack.maxPerCore и conntrack.min в kube-proxy: он может управлять лимитом. Одного изменения через sysctl недостаточно для устойчивой настройки.• Сократить создание новых соединений: использовать пулы, HTTP keep-alive, проверить лавину повторных запросов.
• Пересматривать тайм-ауты по состояниям соединений после диагностики. Слишком короткие значения могут нарушить работу долгоживущих подключений.
Следите за заполнением таблицы на каждом узле. Свободные ресурсы соседних нод не спасают таблицу перегруженной.
https://kubernetes.io/docs/reference/config-api/kube-proxy-config.v1alpha1/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
🐳 Docker-образ с 3,17 ГБ до 354 МБ - почти в 9 раз меньше
Такая оптимизация обычно достигается не одной магией, а несколькими простыми приёмами:
- multi-stage build
-
- удаление build-зависимостей после сборки
- очистка
-
- установка только production-зависимостей
- объединение команд
Пример:
Что это даёт:
- быстрее pull/push
- быстрее CI/CD
- меньше места в registry
- быстрее запуск новых pod
- меньше потенциальная attack surface
Перед оптимизацией полезно посмотреть, что реально раздувает образ:
и отдельно проверить слои через
Большой Docker image почти всегда стоит сначала разобрать по слоям — часто там лежат гигабайты build-tools, cache и файлов, которые в runtime вообще не нужны.
Такая оптимизация обычно достигается не одной магией, а несколькими простыми приёмами:
- multi-stage build
-
python:slim / distroless вместо тяжёлого base image- удаление build-зависимостей после сборки
- очистка
apt / pip cache-
.dockerignore для лишних файлов- установка только production-зависимостей
- объединение команд
RUN, чтобы не тащить мусор в слоиПример:
3.17 GB → 354 MBЧто это даёт:
- быстрее pull/push
- быстрее CI/CD
- меньше места в registry
- быстрее запуск новых pod
- меньше потенциальная attack surface
Перед оптимизацией полезно посмотреть, что реально раздувает образ:
docker history <image>и отдельно проверить слои через
dive.Большой Docker image почти всегда стоит сначала разобрать по слоям — часто там лежат гигабайты build-tools, cache и файлов, которые в runtime вообще не нужны.
🔥12❤6👍3💯2🥴1
Есть серьезный разговор…
об ИТ-инфраструктуре и требованиях к ней в современных условиях
Как активное внедрение ИИ изменило подход к выбору железа, с чего начать при выборе приватного облака и как создать отказоустойчивое решение под свои задачи. Обо всем этом и не только — на бесплатной конференции Selectel ТехноДень 8 октября.
Топ-менеджеры, ИТ-директора и инженеры топовых технологических компаний соберутся на одной площадке и обсудят ИТ-тренды, инфраструктуру, ИИ, данные и информационную безопасность. Вас ждут 20 экспертных докладов, 20 интерактивных стендов, живое общение и живая запись подкаста Вселенная Плюс на главной сцене конференции.
Присоединяйтесь к Selectel ТехноДень, чтобы лично задать вопросы экспертам рынка и обменяться опытом. Количество мест ограничено, регистрируйтесь уже сейчас →
Реклама. АО "Селектел". erid:2W5zFGsAMi1
об ИТ-инфраструктуре и требованиях к ней в современных условиях
Как активное внедрение ИИ изменило подход к выбору железа, с чего начать при выборе приватного облака и как создать отказоустойчивое решение под свои задачи. Обо всем этом и не только — на бесплатной конференции Selectel ТехноДень 8 октября.
Топ-менеджеры, ИТ-директора и инженеры топовых технологических компаний соберутся на одной площадке и обсудят ИТ-тренды, инфраструктуру, ИИ, данные и информационную безопасность. Вас ждут 20 экспертных докладов, 20 интерактивных стендов, живое общение и живая запись подкаста Вселенная Плюс на главной сцене конференции.
Присоединяйтесь к Selectel ТехноДень, чтобы лично задать вопросы экспертам рынка и обменяться опытом. Количество мест ограничено, регистрируйтесь уже сейчас →
Реклама. АО "Селектел". erid:2W5zFGsAMi1
Kubernetes NodeLocal DNSCache: ускоряем DNS-запросы 🚀
Без NodeLocal DNSCache DNS-запрос от Pod проходит через:
В нагруженных кластерах это увеличивает задержки и создаёт дополнительную нагрузку на таблицу
NodeLocal DNSCache запускает локальный DNS-кеш на каждой ноде как
Если запись уже есть в кеше, Pod получает ответ прямо с текущей ноды. При промахе запрос передаётся в CoreDNS.
Преимущества
- быстрее обрабатываются повторные DNS-запросы;
- снижается нагрузка на CoreDNS;
- уменьшается межнодовый DNS-трафик;
- обходятся
- сокращается количество UDP-записей в
- доступны DNS-метрики отдельно для каждой ноды.
NodeLocal DNSCache стабилен с Kubernetes 1.18, но обычно его нужно включать отдельно и развернуть
🔗 Официальная документация Kubernetes: https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/
Без NodeLocal DNSCache DNS-запрос от Pod проходит через:
Service IP → kube-proxy → DNAT → conntrack → CoreDNSВ нагруженных кластерах это увеличивает задержки и создаёт дополнительную нагрузку на таблицу
conntrack.NodeLocal DNSCache запускает локальный DNS-кеш на каждой ноде как
DaemonSet:Pod → локальный DNS-кеш → CoreDNSЕсли запись уже есть в кеше, Pod получает ответ прямо с текущей ноды. При промахе запрос передаётся в CoreDNS.
Преимущества
- быстрее обрабатываются повторные DNS-запросы;
- снижается нагрузка на CoreDNS;
- уменьшается межнодовый DNS-трафик;
- обходятся
kube-proxy и DNAT;- сокращается количество UDP-записей в
conntrack;- доступны DNS-метрики отдельно для каждой ноды.
NodeLocal DNSCache стабилен с Kubernetes 1.18, но обычно его нужно включать отдельно и развернуть
node-local-dns как DaemonSet.🔗 Официальная документация Kubernetes: https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Прокачай терминал Linux: 7 утилит, которые экономят время
Описание: Что установить на Linux для удобной разработки? Быстрый поиск по коду, переходы между проектами, наглядный Git и сохранение рабочих сессий - 7 полезных инструментов с примерами.
#Linux #Терминал #Программирование #DevOps #НастройкаLinux
Описание: Что установить на Linux для удобной разработки? Быстрый поиск по коду, переходы между проектами, наглядный Git и сохранение рабочих сессий - 7 полезных инструментов с примерами.
#Linux #Терминал #Программирование #DevOps #НастройкаLinux
😁3❤2🌚1
Gateway API vs Ingress Controller в Kubernetes
Главное различие в архитектуре управления трафиком.
Ingress задаёт правила маршрутизации, а Ingress Controller обычно одновременно:
- следит за конфигурацией;
- обновляет правила;
- сам проксирует трафик.
С Gateway API логика похожа: вы описываете
Например, в NGINX Gateway Fabric control plane и data plane разделены:
- Control plane: контроллер читает Gateway API-ресурсы и формирует конфигурацию.
- Data plane: отдельный NGINX pod принимает и маршрутизирует трафик.
- Между ними конфигурация передаётся через gRPC.
В итоге Gateway API даёт более гибкую и расширяемую модель маршрутизации, особенно для сложной инфраструктуры и нескольких команд.
Коротко: Ingress проще и привычнее. Gateway API предлагает более современную архитектуру с чётким разделением управления и обработки трафика.
Главное различие в архитектуре управления трафиком.
Ingress задаёт правила маршрутизации, а Ingress Controller обычно одновременно:
- следит за конфигурацией;
- обновляет правила;
- сам проксирует трафик.
С Gateway API логика похожа: вы описываете
Gateway, HTTPRoute, GRPCRoute, а контроллер превращает их в рабочую конфигурацию.Например, в NGINX Gateway Fabric control plane и data plane разделены:
- Control plane: контроллер читает Gateway API-ресурсы и формирует конфигурацию.
- Data plane: отдельный NGINX pod принимает и маршрутизирует трафик.
- Между ними конфигурация передаётся через gRPC.
В итоге Gateway API даёт более гибкую и расширяемую модель маршрутизации, особенно для сложной инфраструктуры и нескольких команд.
Коротко: Ingress проще и привычнее. Gateway API предлагает более современную архитектуру с чётким разделением управления и обработки трафика.
❤6👍2
🤖 ИИ-агенты теперь могут самостоятельно работать с задачами в GitLab
Обычно разработчик общается с ИИ в отдельном чате, а потом переносит результат в рабочий процесс. В SourceCraft появился другой сценарий: агент получает задачу прямо в обсуждении GitLab и работает под собственной учетной записью.
Например, ему можно поручить написание кода или проверку безопасности. Готовый результат агент возвращает на ревью. А если по ходу работы не хватает данных или требуется согласование, он сам обращается к команде.
При этом взаимодействовать с агентами можно не только через GitLab, но и из VS Code, командной строки, мессенджеров или веб-интерфейса. Компании также смогут подключать собственных агентов, в том числе созданных в Yandex AI Studio.
Получается, что ИИ участвует не только в написании кода, но и в самом процессе разработки: от получения задачи и уточнения деталей до передачи результата на проверку.
Обычно разработчик общается с ИИ в отдельном чате, а потом переносит результат в рабочий процесс. В SourceCraft появился другой сценарий: агент получает задачу прямо в обсуждении GitLab и работает под собственной учетной записью.
Например, ему можно поручить написание кода или проверку безопасности. Готовый результат агент возвращает на ревью. А если по ходу работы не хватает данных или требуется согласование, он сам обращается к команде.
При этом взаимодействовать с агентами можно не только через GitLab, но и из VS Code, командной строки, мессенджеров или веб-интерфейса. Компании также смогут подключать собственных агентов, в том числе созданных в Yandex AI Studio.
Получается, что ИИ участвует не только в написании кода, но и в самом процессе разработки: от получения задачи и уточнения деталей до передачи результата на проверку.
🔥4❤2🥰1🤯1
⚡️ В Kubernetes соединения случайно обрываются под нагрузкой? Проверьте conntrack.
Если таблица отслеживания соединений на ноде заполнена, это может проявляться таймаутами, сбоями DNS и ошибками запросов. Сначала сравните число записей с лимитом:
В кластере, который создаётся через kubeadm, лимит можно задать в отдельном документе
Документация Kubernetes - https://kubernetes.io/docs/reference/config-api/kube-proxy-config.v1alpha1/
Если таблица отслеживания соединений на ноде заполнена, это может проявляться таймаутами, сбоями DNS и ошибками запросов. Сначала сравните число записей с лимитом:
sysctl net.netfilter.nf_conntrack_count
sysctl net.netfilter.nf_conntrack_max
В кластере, который создаётся через kubeadm, лимит можно задать в отдельном документе
KubeProxyConfiguration внутри конфигурационного YAML:
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
conntrack:
maxPerCore: 65536
min: 131072
maxPerCore задаёт лимит на ядро, min — нижнюю границу для ноды. Примерные значения нужно подбирать под число ядер и нагрузку: увеличение лимита помогает только после проверки, что проблема действительно в переполнении таблицы. Конфигурация kube-proxy, переданная в kubeadm init, применяется ко всем его экземплярам в кластере.Документация Kubernetes - https://kubernetes.io/docs/reference/config-api/kube-proxy-config.v1alpha1/
👍6😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Снёс коммиты? Как вернуть код после git reset -hard
Одна команда - и три коммита исчезли из истории ветки. Субару уже готов начинать заново, но Эмилия знает способ вернуться.
Показываем, как восстановить коммиты после git reset --hard: найти нужный хеш через git reflog, проверить изменения и создать спасательную ветку.
Способ работает, пока объекты коммитов сохранились. Незакоммиченные правки reflog не восстанавливает.
#Git #Программирование #ReZero #GitReflog
Одна команда - и три коммита исчезли из истории ветки. Субару уже готов начинать заново, но Эмилия знает способ вернуться.
Показываем, как восстановить коммиты после git reset --hard: найти нужный хеш через git reflog, проверить изменения и создать спасательную ветку.
Способ работает, пока объекты коммитов сохранились. Незакоммиченные правки reflog не восстанавливает.
#Git #Программирование #ReZero #GitReflog
🥴8🤣2