JSON, YAML, TOML, HCL - за последние годы человечество успело изобрести десяток языков для конфигурации.Каждый обещал быть "простым", "удобным" и "читаемым человеком".Но по факту - все они страдают от одних и тех же проблем: шумный синтаксис, хрупкие отступы, бесконечные кавычки и отсутствие элементарных возможностей вроде модульности и слияния конфигов.Пора перестать с этим мириться и сделать конфигурации наконец человеческими.🛑 Перестаньтеутомлять глаза, пытаясь разобр…
Мы стабилизировали QUIC на реальных RU↔EU трассах: jitter <1 мс PoP↔PoP, P50 ~20–21 мс RU↔EU (end-to-end). Помогли BBRv3 с динамическим pacing, HTTP/3 Datagrams/MASQUE (RFC 9297/9298/9484) и экспериментальный FEC. На профиле 5% потерь при включенном FEC видим ~+10% goodput (recovery валидируем group-aligned тестом). Ниже - методика, цифры и репликация. Замеры - для наших RU↔EU путей (октябрь 2025), на других трассах цифры могут отличаться. Все тесты проводились на реальных Edge PoP узлах Clo…
ПрелюдияВажность хорошей структуризации проекта могут недооценивать только совсем уж начинающие программисты. Сопровождение и развитие проекта с непродуманной структурой кода со временем превращается в сущий ад. Тут выплывают и проблемы со связанностью модулей и проблемы с плохой читабельностью и экспонтециально растущая трудоемкость развития проекта. Но всякая структура должна подчиняться некой логической концепции. И тут появляется великое поле для холиваров.Всех проблем, вызванных изначально…
Привет, Хабр! Знаете это чувство, когда оборудование есть, мониторинг есть, а их совместная работа — нет? Именно так мы ощутили себя, когда столкнулись с IBM Storwize в экосистеме Zabbix. «Из коробки» поддержка отсутствует, а костыли в виде скриптов и UserParameters работают так, что хочется плакать: медленно: каждый раз запускается отдельная программа/команда — это тратит время и ресурсы.сложно отлаживать: если что‑то сломалось, трудно понять, где именно проблема — в скрипте, в настройках …
На моих трансляциях лайв-кодинга постоянно всплывает этот вопрос. Проговаривал много раз, но если записать ответ, то дальше можно просто выдавать ссылку. Кодить начал в 1995-ом на Delphi для автоматизации каталога компьютерных комплектующих. Я был успешным менеджером оптовых и дилерских продаж в системном интеграторе, но занимался любимым делом всё свободное время. Накопил два чемодана книжек по программированию. И повторял, что вместо выписывания счетов-фактур, я стану разработчиком. Первые ве…
Эта статья собрана «по существу»: что нужно знать о типовой системе Go, как правильно и безопасно работать с интерфейсами и чем чреваты распространённые ошибки.СодержаниеКраткая характеристика типовой системы GoПримитивные и составные типыСтатическая типизация и проверка в компилятореИнтерфейсы: концепция и механика (под капотом)Method sets и pointer vs value receiversСовместимость типов и compile-time проверкиИнтерфейс interface{} (empty interface) и reflectType assertion и type switchВажные п…
Вот давайте начистоту. Открываешь ты такой таск, видишь кусок кода, написанный полгода назад, и твоя первая мысль - "Господи, какой идиот это писал?". Потом git blame показывает твое имя. Классика. Этот момент, когда ты встречаешься со своим техническим долгом лицом к лицу.В сети полно статей, где техдолг раскладывают по квадрантам, рисуют красивые графики и сыплют терминами, от которых хочется заснуть. Это все академическая чушь, которая почти всегда бесполезна в реальной разработке, к…
Конкурентность — это ядро языка Go. Горутины, каналы и связанные примитивы — это инструменты, с которыми Go делает параллелизм простым и выразительным. В этой статье я объясню концепции, покажу ключевые конструкции, разберу типичные ошибки/подводные камни, дам практические паттерны и инструменты для отладки и профилирования. В конце — краткий практический план действий.СодержаниеЧто такое горутина и как она работаетКаналы: буферизированные и небуферизированныеselect и управление множественными …
Странно писать про форк open-source проекта для ушедшего в историю Docker Swarm. Но после Millau остался ещё один гештальт - периодические задачи. Посмотрел на Ofelia и Swarm-cronjob, их звезды, обновления, количество заброшенных репортов. Попытался связаться с автором - тишина. Так что с чистой совестью взял код и добавил недостающее. Получилась Cirona - job scheduling с телеметрией и дашбордами.Почему не cronНаивная наихудшая реализации расписания в Docker - это использовать cron контейнера. …