Каждый, кто работал с Helm чартами, сталкивался с необходимостью валидации values.yaml
. Стандартный подход с использованием JSON Schema работает, но часто становится громоздким и ограниченным. В этой статье я хочу представить Helm CEL — плагин, который позволяет использовать Common Expression Language (CEL) от Google для валидации конфигурации Helm чартов.
Системный администратор
Разбор регулярного выражения, проверяющего простоту чисел
Как-то я исследовал способы наиболее эффективного определения простоты числа и наткнулся на показанный выше код.
Он меня заинтриговал. Хоть это, возможно, и не самый эффективный способ, но определённо один из наименее очевидных, поэтому мне стало любопытно. Каким образом соответствие регулярному выражению .?|(..+?)\1+
должно показать, что число непростое (после его преобразования в унарную систему счисления)?
Если вы заинтересовались, продолжайте чтение, я проанализирую это регулярное выражение и объясню, что же в нём происходит. Объяснение не зависит от языка программирования, однако я приведу версии показанного выше Java
-кода на Python
, JavaScript
и Perl
и объясню, почему они немного различаются.
Я объясню, как регулярное выражение ^.?$|^(..+?)\1+$
способно отфильтровывать все простые числа. Почему это выражение, а не .?|(..+?)\1+
(использованное в примере кода на Java
)? Это связано с тем, как работает String.matches(), о чём я расскажу ниже.
Хотя по этой теме есть несколько постов, я считаю, что они недостаточно глубоки и в них приводится лишь высокоуровневое объяснение, недостаточно хорошо излагающее важные подробности. В своей статье я попытаюсь объяснить подробности, чтобы их мог понять любой. Моя цель — сделать этот код понятным каждому, будь вы гуру регулярных выражений или впервые о них услышали.
Из опыта обучения взрослых. Практические приёмы
В прошлой статье я описал своё субъективное видение на теорию обучения взрослых людей. Сегодня хочу поделиться некоторыми практическими приёмами, которые использую при обучении программированию.
Как перенести UEFI системный диск Enterprise Linux на другое устройство?
Часто бывает, что при автоматизации процессов инженеры чувствуют себя весьма расслабленно — мол, система сделает все сама и как надо. Но, увы, иногда автоматика выбирает немного не то, что выбрал бы сам инженер при ручных действиях. Приходится это исправлять.
В статье рассмотрим способ переноса системного раздела ОС Linux на другое блочное устройство и необходимые изменения в UEFI загрузчике.
Паттерн Наблюдатель в Golang на котиках
Привет, Хабр! Сегодня будем разбирать паттерн Наблюдатель на примере наших любимых пушистиков — котиков. Ведь кто, как не коты, могут быть идеальными субъектами и наблюдателями в нашем коде?
Перебор Соседних Клеток — забавные формулы
Не только в играх вроде "Го" или "Жизнь" - но и в создании фильтров для изображений - часто нужно для клетки или точки (x, y)
перечислить её "соседей". Либо только четырех (по горизонтали и вертикали), либо все восемь (с диагоналями).
Можно не задумываясь написать массивчик с 4-мя или 8-ю парами смещений, вроде[(-1, 0), (0, 1), (1, 0), (0, -1)]
- а можно ли вместо него жахнуть какую-нибудь формулу? Давайте попробуем для утренней разминки ума в понедельник :)
В этой статье будет несколько 2-3 строчных примеров кода - уж извините пожалуйста :) зато она довольно короткая.
Реализация горизонтального кеширования в PHP с Redis Cluster
Привет, Хабр!
Сегодня мы рассмотрим одну из задач высоконагруженных приложений — горизонтального кеширования. Когда система начинает испытывать давление под наплывом пользователей, стандартный кеш не всегда справляется. В таких ситуациях на помощь приходит Redis Cluster. Рассмотрим, как масштабировать кеширование в PHP с помощью Redis Cluster, чтобы распределить нагрузку, повысить отказоустойчивость и не потерять в производительности.
Как настроить обмен сообщениями с помощью брокера сообщений Kafka
Привет, меня зовут Вячеслав Бенедичук, я лид группы разработки в отрасли FMCG и наставник на курсе «Архитектура программного обеспечения» в Яндекс Практикуме.
Сейчас в промышленных IТ-системах часто требуется асинхронное взаимодействие между сервисами, но начинающим разработчикам бывает трудно разобраться с тем, как его организовать.
Есть разные варианты решения данной задачи. В этой статье я расскажу об одном из них — как организовать обмен сообщениями с использованием брокера сообщений Kafka, и дам примеры кода. Статья будет полезна тем, кто хочет быстро разобраться с использованием брокера Kafka и включить его в своё решение.
Про qemu и протокол 802.1p
Выпускаю первую ВМ. По сети не пингуется. Локально с гипервизора — всё ок. Лезу на консоль, запускаю что-то типа "tcpdump -nvvvi any"
(по-умолчанию выставляется promisc-режим) — ping побежал. Выключаю tcpdump — опять глухо. При запуске с ключом "-p" (запретить неразборчивый режим) tcpdump вообще ничего не видит.
XSS + Ошибки конфигурации OAuth = Кража токенов и захват аккаунта
В этой статье я расскажу о том, как мне удалось найти уязвимость для захвата аккаунта (Account Takeover, ATO) через ошибки конфигурации OAuth и украсть токены авторизации.
Удалённый доступ к графике в Linux: от X11 до Docker с GPU
Привет Хабр! С вами снова ServerFlow, и сегодня мы хотим поговорить об удалённом доступе к графическим приложениям на Linux-серверах. Тема эта стала особенно актуальной в последнее время – всё больше задач требует работы с GPU на удалённых машинах. Будь то рендеринг в Blender на мощном сервере, работа с нейросетями или даже облачный гейминг.
Обо всё этом в новой статье ниже.
Икигай — это что такое? Действительно ли он помогает найти смысл жизни или это просто модный хайп из Японии?
Я стал больше зарабатывать, чаще делаю то, чего действительно хочу, у меня хватает времени на себя и на то, что для меня важно и много чего ещё. В целом, жить стало интереснее.
В статье я поделюсь собственным опытом и опишу алгоритм, по которому я всё делал. Хорошая новость в том, что делается это всего один раз, постоянного ведения Икигай не требует. Если работа сделана тщательно, этот инструмент станет неким «светильником», освещающим путь впереди.
Один раз сделанная работа не значит, что вообще ничего и никогда переделывать и дорабатывать не нужно. Периодически всё же стоит заглядывать в то, что получилось, и подгонять под себя. Люди пластичны, мы приобретаем новый опыт, меняем ценности. Это и должно быть отражено в Икигай.
Прежде всего, добавь себе эту статью в закладки, потому что вряд ли у тебя получится сделать всё, что тут описано, сразу. А иметь под рукой короткое понятное руководство — это удобно. Да и поделиться с кем-то, кому такое тоже надо, будет проще.
Кластеры и мир: хроника высокодоступного Pub/Sub в Redis
В статье рассматриваются основные принципы и особенности использования Redis в режиме Pub/Sub для масштабируемых и высоконагруженных приложений. Описаны два подхода к обеспечению высокой доступности — Redis Sentinel и Redis Cluster, их преимущества, ограничения и примеры настройки. Приведены примеры использования Pub/Sub в реальных системах, а также практические конфигурации и код для настройки отказоустойчивого кластера Redis. Статья предназначена для разработчиков, которые ищут решения для создания надежных систем обмена сообщениями с высокой производительностью и отказоустойчивостью.
Приложение на Go шаг за шагом. Часть первая: скелет, НТТР-сервер и конфигурация
Современные курсы стараются максимально охватить спектр технологий, которые используют компании. Ориентироваться в этом океане модных фич всё труднее, особенно это касается новичков, которые только начали знакомство с программированием. В итоге может случиться так, что выпускник курса вроде бы всё знает, а применять не может.
Привет! Я Владислав Попов, автор курса «Go-разработчик с нуля» в Яндекс Практикуме. В серии статей я хочу помочь начинающим разработчикам упорядочить знания и написать приложение на Go с нуля: мы вместе пройдём каждый шаг и создадим API для получения информации о книгах и управления ими.
6 вариантов генерации конфигурационных файлов Shell-скриптами
Как написать свой первый модуль ядра Linux
Linux Kernel — это, пожалуй, один из самых распространённых (и, возможно, до сих пор недооценённых) программных продуктов в мире. Он является основой всех дистрибутивов Linux (что очевидно), но на этом его роль не заканчивается. Ядро также работает на множестве встроенных устройств практически повсюду. У вас есть микроволновка? Скорее всего, она работает на ядре Linux. Посудомоечная машина? Тоже. Если у вас достаточно средств на автомобиль Tesla, вы даже сможете найти несколько багов, исправить их и отправить патч в код Model S или Model X на GitHub. А что насчёт схем, которые не позволяют Международной космической станции сойти с орбиты и врезаться в Землю? Конечно, и там тоже Linux. Ядро легковесное — значит, отлично работает даже в условиях невесомости.
В этой статье напишем свой первый модуль ядра под Linux
Pinniped как способ логина в Kubernetes через Active Directory
Многие пользователи Яндекс облака применяют сервис Managed Service for Kubernetes. При этом учетные записи сотрудников организаций хранятся на контроллерах домена Windows. Удобно и правильно логиниться в Kubernetes учетными записями из Windows-домена, оптимизируя ресурсы DevOps и сисадминов. Но без специального инструмента сделать это нельзя.
Меня зовут Дмитрий Глушков, я системный инженер эксплуатации в Lamoda Tech. Мои поиски удобного решения задачи привели к программе Pinniped. Она поможет использовать учетные записи Windows AD для предоставления и контроля доступа сотрудников в Kubernetes. Разберемся, как ее установить и использовать.
Кодирование с кодеком HEVC простым языком — гайд на FFmpeg. Высокое качество, но низкий вес
Казалось бы, довольно простой вопрос: «Чем сжать видео?». На ум сразу приходят Handbrake, Movavi Converter или ещё что-нибудь пострашнее. Однако когда речь заходит о более гиковском подходе с упором на максимальное качество и экономию места, такие программы сложно назвать инструментами. Равно как и для обратной ситуации, когда картинку нужно сильно сжать и сохранить в целостности большую часть полезной информации. Все эти программы только лишь предоставляют набор наиболее общих конфигов для обычной съёмки и 2D.
В этой статье мы изучим, как при помощи самого большого сборника свободных библиотек FFmpeg научиться кодировать видео самому именно под ваши задачи.
Redmine vs рост бизнеса: как мы решали проблемы масштабирования поддержки в Orion soft
Представьте ситуацию: ваш бизнес растет, количество проектов увеличивается, а система управления ими перестает быть удобной. И допилить ее — не вариант. Как выбрать оптимальное решение на замену, учесть все нюансы, подготовиться и безболезненно перейти на новую систему?
В этой статье я расскажу о нашем опыте внедрения ITSM-решения RockIT Manager как замены open source Redmine. Мы подготовили и перенесли весь накопленный объем данных в новую систему управления, добавили важные функции для работы с внешними заказчиками и повысили удобство использования для внутренней команды. А в конце я докажу вам, что внедрение новой ITSM-системы стоит свеч, несмотря на все трудности.
K8s best practices или что будет если их не соблюдать?
Всем привет! В данной статье хотелось бы рассказать о небольшом исследовании Kubernetes ограничений и рекомендаций, а так же что будет если их нарушить и о том что это может быть в некоторых случаях полезно и даже экономически выгодно. Будет рубрика "Ээээксперименты!", поищем проблемы, попробуем их решить и посмотрим что получиться.
Информация
- В рейтинге
- Не участвует
- Откуда
- Псков, Псковская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность