Недавно вышла обновленная версия ESPHome 2024.8.0, в которой появилась библиотека LVGL версии 8.4 для создания графических интерфейсов TFT-экранов. У меня был в наличии такой дисплей, и я решил воспользоваться новыми возможностями для создания интерфейса по управлению умным домом. Моя задача заключалась в том, чтобы наполнить недорогой дисплей необходимой функциональностью.
Пользователь
Запросы и лимиты в Kubernetes: разбираемся в деталях
Управление ресурсами в Kubernetes немного напоминает зефирный тест, который иногда выходит из-под контроля. Если тщательно не лимитировать, сколько ресурсов может потреблять контейнер, он пойдёт вразнос, примерно как малыш, способный слопать большую пачку Skittles за один присест.
С другой стороны, если вы постоянно лишаете контейнер минимального объёма ресурсов, который нужен ему для корректной работы, то словно постоянно не подпускаете ваших детей к сладостям. Контейнер будет влачить жалкое существование и работать вполсилы.
Вот почему настолько важно правильно настроить в Kubernetes лимиты и работу с запросами. Понимая, какова роль запросов и лимитов при управлении ресурсами и производительностью в Kubernetes, а также умея настраивать и/или задавать запросы и лимиты, вы гарантируете, что на обработку каждой рабочей нагрузки будет выделено ровно столько ресурсов, сколько нужно — ни больше, ни меньше.
Далее в этой статье подробно рассказано, как в Kubernetes организована работа с запросами и лимитами, как они используются для управления ресурсами. В любой организации чрезвычайно важно управление ресурсами в Kubernetes и роль такого управления. Разберём управление ресурсами в Kubernetes и начнём с самых азов.
Как мы перешли на конфигурацию Microsoft.Extensions.Configuration (IOptions) и стало хорошо
Привет, меня зовут Андрей Рягузов, в 2ГИС я разрабатываю внутренние продукты для актуализации справочных данных на .NET.
Несколько лет назад для работы с настройками мы в команде пользовались самописным методом. Пока приложения были простыми, нас всё устраивало, однако при масштабировании начали вылезать неприятности. Так мы начали искать альтернативу.
Расскажу, почему изначально решились на нестандартный метод, с какими трудностями столкнулись и что решили улучшить, какие варианты рассматривали и какие преимущества получили от «коробочных» инструментов.
Self Hosted для домашнего сервера
Есть отличный термин self hosted, который очень популярен в англоязычном интернете.
Но он плохо переводится, почти как open source - хотя википедия и пытается дать ужасно звучащий термин "самохостинг"...
Как ни странно, на Хабре нет про него обзорных статей, и даже нет соответствующего тега, хоть я и искал.Возможно, плохо искал, и вы кинете в комментарии что-то хорошее.
В общем, self hosted - это когда вы решаете, что какие-то вещи лучше хранить у себя, а не отдавать злым корпорациям - фотографии, почту, умный дом, книги, и так далее.
И собираете под это какой-то сервер, полноценным хозяином которого являетесь только вы.
Эту статью я пишу во многом для нескольких друзей, которые решили приобщиться к этому тренду, и здесь будет обзор моего личного self hosted - про всякие разные штуки, которые показались полезны лично мне, и плотно заняли своё место на моём домашнем сервере.
На хабре много опытных пользователей, так что если вам что-то кажется очевидным - смело листайте дальше. Здесь есть много классных подробных статей, которые идут в глубину, а в этой статье я хотел дать общее представление, куда вообще можно копать и что делать.
Аппаратный DIY аудиомикшер
Меня это задолбало - управлять громкостью, если источников звука больше одного, особенно больно, когда это надо сделать быстро, за пару секунд. Если играете в динамичные игры с дискордом, да ещё и музыку фоном включаете, думаю вы прекрасно знаете эти неудобства. И вот, в один прекрасный день я наткнулся на deej...
Корпоративное хранилище секретов StarVault — первая в России полноценная альтернатива HashiCorp Vault
Vault — самое популярное в мире корпоративное хранилище секретов. С 2023 года его практически невозможно использовать в российских компаниях с сохранением лицензионной чистоты из-за новых политик лицензирования его разработчика, британской компании Hashicorp.
Мы сами применяем Vault в собственных продуктах, и в 2023 году нам пришлось решать эту проблему для себя и всех, кого это касается в России. На основе материнского решения от Hashicorp мы сделали публичный продукт, аналог Vault, позволяющий компаниям соблюдать лицензионную чистоту, с поддержкой от отечественного вендора, безопасный с точки зрения размещения кодовой базы в РФ и контроля безопасности компонентов. В общем, встречайте полноценную альтернативу Hashicorp Vault, StarVault от Orion soft.
Делаем макросы в Rust
Привет, Хабр!
Rust имеет два основных типа макросов: декларативные и процедурные. Каждый из этих типов служит различным целям и предоставляет различные возможности манипуляции с кодом.
Декларативные макросы работают, сопоставляя заданные шаблоны с фактическим кодом и заменяя его на другой код во время компиляции. Что-то типо хорошей системы поиска и замены, но для исходного кода. Декларативные макросы подходят для задач, когда нужно избежать дублирования кода или когда нужно предоставить удобный синтаксис для повторяющихся задач.
А вот процедурные макросы уже имеют больше возможностей, они позволяют манипулировать абстрактным синтаксическим деревом кода, т.е можно анализировать, модифицировать и генерировать код на лету. Процедурные макросы могут быть разделены на три категории: атрибутивные макросы, макросы производных и функциональные макросы.
В этой статье мы как раз и рассмотрим то, как их пишут на Rust.
Начнем с декларативных!
Как работает etcd с Kubernetes и без него
Если вы когда-либо взаимодействовали с кластером Kubernetes, скорее всего, он был основан на etcd. etcd лежит в основе работы Kubernetes, но несмотря на это, напрямую взаимодействовать с ним приходится не каждый день.
Этот перевод статьи от learnk8s познакомит вас с принципами работы etcd, чтобы вы могли глубже понять внутреннюю работу Kubernetes и получить дополнительные инструменты для устранения неполадок в вашем кластере. Мы установим и сломаем кластер etcd с тремя нодами и узнаем, почему Kubernetes использует etcd в качестве базы данных.
ref vs shallowRef
Рассмотрим отличие ref от shallowRef, и попробуем ответить на вопрос - когда же нужно использовать первое, а когда второе? За разъяснением обратимся к исходному коду vue3
Как из Proxxon (дремеля) сделать сверлилку для плат
Привет, Хабр! Тема небольших сверлильных приспособ на основе дрелей и бор-машинок разных форм и размеров, казалось бы, жёвана-пережёвана. Есть и фирменные решения (стойки для дрелей), и любительские конструкции. Однако кое-что пооптимизировать и придумать новые решения всегда можно.
У меня была неплохая бор-машинка Proxxon и мне захотелось сделать из неё сверлильный станок для плат. Я уже имел опыт работы с дремелем на фирменной стойке и собирал другой станочек с более-менее классической компоновкой, и мне в этих вариантах не нравились люфты, при наличии которых твердосплавные свёрла быстро заканчиваются. Кроме того, у меня были временные трудности с доступом в мастерскую и максимум работ было желательно сделать на 3д-принтере. Ну и, конечно же, трата каких-либо денег в этой сомнительной затее была признана излишней.
Ввиду поставленных ограничений использовать рельсовые направляющие было бы перебором, а скользящие на осях не дали бы минимально приличной жёсткости. Есть, однако, нюанс, который позволял задачу упростить: рабочий ход сверлилки всего 1-2см, хотя предварительное перемещение для настройки на задачу могло быть больше. Все эти обстоятельства привели меня к такому решению:
Как вообще этот ваш CI CD настроить
Привет, Хабр!
Хочется рассказать о нашем опыте внедрения CI/CD в компанию. О том, как в целом работать с ним и как это работает у нас.
Статья нацелена на новичков конкретно в этой сфере и хотят чуть детальнее стандартной документации настроить деплой, может внедрить у себя, чуть адаптировать. Примеры достаточно гибкие и подходят для большинства задач в начинающих IT компаниях
Приятного прочтения, всем peace!
DIY: Ваше собственное облако на базе Kubernetes (часть 1)
Мы очень любим Kubernetes и мечтаем чтобы все современные технологии поскорее начали использовать его замечательные паттерны.
А вы когда-нибудь задумывались о том чтобы построить своё собственное облако? Могу поспорить что да. Но можно ли это сделать используя лишь современные технологии и подходы, не покидая уютной экосистемы Kubernetes? Нам по опыту разработки Cozystack пришлось с ним как следует разобраться.
Да, вы могли бы возразить что Kubernetes для этого не предназначен и почему бы не использовать OpenStack для Bare Metal-серверов а внутри него запускать Kubernetes как положено. Но поступив так, вы просто переложите ответственность с ваших рук на руки OpenStack администраторов. Что добавит как-минимум ещё одну сложную и неповоротливую систему в вашу экосистему.
Зачем так всё усложнять? - ведь на данный момент Kubernetes уже имеет всё необходимое для запуска Kubernetes кластеров.
Бесплатные векторные карты на своём хостинге
Векторные карты Protomaps на базе OSM
Каждый веб-разработчик знает о OpenStreetMap (OSM), свободной альтернативе Google Maps. Несмотря на всеобщую известность OSM, у некоторых всё-таки возникают вопросы: как сделать веб-карту с открытыми данными OSM, как самостоятельно публиковать карты?
На эту тему есть популярные руководства, в том числе по работе с базами PostGIS и запуску тайлсерверов для реализации бесшовных карт OSM. Но есть принципиально иной подход — векторные карты Protomaps, которые обеспечивают более высокое разрешение, настройку внешнего вида и наложение произвольных меток. Они изначально предполагают максимальную простоту в создании своих карт. А главное, что разместить тайлы можно на своём хостинге или в облаке.
Переход с Vue-CLI и Webpack на Vite: ускоряем разработку Vue 3
Одним из новых инструментов в арсенале Vue 3 является Vite - быстрый и легковесный бандлер, который значительно упрощает процесс разработки и ускоряет сборку проекта. В этой статье мы рассмотрим, как перейти от стандартного подхода с использованием Vue-CLI и Webpack к более продвинутому и эффективному методу работы с помощью Vite.
О кастомных HTML-тегах по-человечески и как их использовать
Расскажу вам о том, как использовать чудо-юдо под названием «Кастомные HTML‑теги» понятно, но подробно.
Смарт-избушка на курьих ножках без электросетей
Как любому продвинутому дачнику, покоя не давала мне идея видеонаблюдения. Но осложнялась идея тем, что на моём винограднике электромагистралей не предвидится в ближайшем обозримом будущем. Всё это хозяйство находится в поле поодаль от цивилизации. Ну и, конечно, чем сложнее и дороже система видеонаблюдения, тем больше привлекательность для злоумышленников по сравнению с сараем, где кроме лопат и грабель ничего не найти. Всё это должно быть недорогим, иметь невзрачный вид и, чтобы не привлекать внимание, подчёркивать свою минимальную ценность.
Поэтому был выработан план:
анжуманя,бегит,- сборка солнечной панели из кремниевых ячеек с Али,
- узел питания для распределения электроэнергии между панелью, аккумулятором и нагрузкой,
- камеры видеонаблюдения,
- видеорегистрация.
OpenConnect: недетектируемый VPN, который вам понравится
Я уже написал здесь много статей на тему прокси-протоколов и прокси-клиентов, которые очень сложно детектировать и заблокировать, и которые используют пользователи в Китае, Иране, Ираке, Туркменистане, и теперь вот в России (мы здесь в отличной компании, правда?). Но довольно часто мне в комментариях писали, мол, это все отлично, но мне нужен именно VPN для целей именно VPN - доступа в частные локальные сети, либо для соединения клиентов между собой, и желательно так, чтобы его не заблокировали обезьяны с гранатой. Поэтому сегодня мы поговорим именно о VPN.
Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...
Как стоит и как не стоит использовать HttpClient в .NET
Всем привет! Меня зовут Андрей Федотов, я бэкенд-разработчик в одной из команд платформы интернета вещей ZIIoT Oil&Gas. В этой статье я рассказываю, что нужно знать и как работать с HttpClient в .NET, чтобы не получить трудноподдерживаемый и сложный код и не нарваться на глобальный рефакторинг.
Vue state management: Pinia stores или composables с глобальными рефами?
На Reddit прошла интересная дискуссия с 25К+ просмотрами по вопросу предпочтений разработчиков при необходимости управлять глобальным состоянием во Vue 3. Ниже её итоги.
Как построить локальный self-managed Kubernetes-кластер
Возможно, у вас была мысль запустить собственную услугу Infrastructure as a Service (IaaS) либо разместить свои проекты на Kubernetes, но не платить за managed-услуги, или ваш проект — это и есть self-managed Kubernetes. У full-stack-разработчика и предпринимателя Нейта Бакареффа эти желания сошлись воедино.
Он решил научиться развертывать собственный кластер на виртуальных выделенных серверах, о чем и рассказал в своем блоге. Эта статья является переводом его материала.
Информация
- В рейтинге
- 3 079-й
- Зарегистрирован
- Активность