В этой статье будет формула для расчёта значений регистров подстройки скорости хода часов в STM32 (функция RTC smooth calibration) на основе величины отклонения времени за сутки. Информации по этой теме много, но именно для компенсации нужного количества секунд в день я не нашёл понятных формул, поэтому изучил этот вопрос, поэкспериментировал с реальным микроконтроллером и написал статью.
DevOps, Architect
Глобально оптимальный, восьмой и наиболее быстрый вид интерпретаторов байткода
Совершать невозможное и раздавать пинки здравому смыслу — в этом и состоит жизнь членов Гуррен-Дана! (C) Камина
Эта статья вступает в техническую полемику со статьей 2015 года за авторством Atakua, подходы из которой я и атакую. Atakua исследует 7 видов интерпретаторов байткода, но делает это без уважения - быстрейшей оказывается двоичная трансляция, которая, по сути, уже не интерпретатор байткода, а форма Ahead-Of-Time компилятора. Эта двоичная трансляция транслирует байткод в машинный код, представляющий собой цепочку вызовов скомпилированных сервисных процедур. Тех самых, что в интерпретаторе байткода отвечают за выполнение каждого опкода.
Но Atakua не выжал из интерпретаторов байткода всю скорость которая возможна. Так что эта статья - туториал: как написать интерпретатор байткода, который может обгонять JIT/AOT-компиляцию по скорости. Интересно? Читайте дальше!
Бенчмарк прилагается. Будет немного хардкора и ни одной сгенерированной нейросетью картинки!
KAN: Kolmogorov–Arnold Networks
Предлагаю вашему вниманию полный перевод статьи об алгоритме нейронной сети на основе теоремы Колмогорова Арнольда, опубликованной исследователями из Massachusetts Institute of Technology, California Institute of Technology, Northeastern University и The NSF Institute for Artificial Intelligence and Fundamental Interactions.
В настоящее время в на просторах интернета есть лишь посты на основе данной статьи с интригующими названиями типа «Новый убийца нейросетей? Сеть Колмогорова Арнольда (KANs)» или «Исследователи разработали принципиально новую архитектуру нейросетей, которая работает лучше персептрона» и т. п. Для лучшего понимания это темы обратимся к первоисточнику, опубликованному не так давно — в апреле 2024 года.
Удивительно полезный инструмент: lsof
Метод переноса топологии платы в Altium Designer
Несколько раз возникала необходимость сделать копию печатной платы с хитрым расположением компонентов, контактных площадок и крепежных отверстий. Хочу на примере показать один из способов переноса топологии в проект. Самый простой, но не всегда подходящий – делать замеры и чертеж. Это бывает особенно сложно, если плата имеет непрямоугольный контур, а необходимые для переноса компоненты набросаны, казалось бы, случайным образом, и вся эта «красота» в дюймах.
Корректное завершение работы подов в Kubernetes
Перевели статью и наглядную инфографику управляющего директора Learnk8s Daniele Polencic о корректном завершении работы подов в Kubernetes. В тексте много примеров и иллюстраций, которые помогут начинающим разобраться, как предотвратить разрыв соединений при запуске или остановке пода. В том числе для долгоживущих соединений и задач.
Техническая история Kubernetes: секреты создателя
Однажды Брайан Грант, первый lead architect Kubernetes, написал в Twitter серию тредов о технической истории проекта. Он рассказал о появлении разных фичей в K8s и логике, которая стояла за принятием отдельных решений. В этом году в честь очередного юбилея оркестратора Брайан собрал все твиты в одну статью. Под катом — её перевод, из которого вы узнаете, как появились контроллеры рабочих нагрузок, декларативная модель ресурсов, descheduler и многое другое.
Потребление ресурсов в Prometheus: кто виноват и что делать (обзор и видео доклада)
У Prometheus есть серьёзный недостаток — чрезмерное потребление ресурсов. Проблема может заключаться в недостаточном понимании инструмента и его неверном использовании. А Prometheus требует грамотного управления метриками и лейблами.
В своем докладе технический директор Deckhouse Observability Platform Владимир Гурьянов выяснил, кто виноват в этом и что делать.
Основы линейной регрессии
Цель этой статьи — рассказать о линейной регрессии, а именно собрать и показать формулировки и интерпретации задачи регрессии с точки зрения математического анализа, статистики, линейной алгебры и теории вероятностей. Хотя в учебниках эта тема изложена строго и исчерпывающе, ещё одна научно-популярная статья не помешает.
! Осторожно, трафик! В статье присутствует заметное число изображений для иллюстраций, часть в формате gif.
Обзор операторов PostgreSQL для Kubernetes. Часть 1: наш выбор и опыт
Всё чаще от клиентов поступают такие запросы: «Хотим как Amazon RDS, но дешевле»; «Хотим как RDS, но везде, в любой инфраструктуре». Чтобы реализовать подобное managed-решение на Kubernetes, мы посмотрели на текущее состояние наиболее популярных операторов для PostgreSQL (Stolon, операторы от Crunchy Data и Zalando) и сделали свой выбор.
Эта статья — полученный нами опыт и с теоретической точки зрения (обзор решений), и с практической стороны (что было выбрано и что из этого получилось). Но для начала давайте определимся, какие вообще требования предъявляются к потенциальной замене RDS…
Репликации в PostgreSQL
Сейчас трудно себе представить «боевую» инсталляцию любой серьезной СУБД в виде единственного инстанса. Конечно, некоторые приложения требуют для своей работы использование локальных баз данных, но если мы говорим о сетевом многопользовательском режиме работы, то здесь использование только одной инсталляции это очень плохая идея.
Основной проблемой единственной инсталляции естественно является надежность. В случае падения сервера нам потребуется некоторое, возможно значительное, время на восстановление. Так восстановление террабайтной базы может занять несколько часов.
Да и исправный бэкап есть не всегда, но об этом мы уже говорили в предыдущей статье.
Изучаем Ansible Inventory: основы и примеры использования
Перевели статью об основах Ansible inventory. В ней рассматривается базовая функциональность, управление переменными и комбинирование нескольких источников Inventory и варианты работы с динамическими Inventory.
Статья будет полезна тем, кто изучает Ansible.
ICMP открывашка портов для сервера
Имею парочку VDSок для различных нужд (почта, веб-сервер, хранилка и т.п.) так вот, возникла необходимость скрывать порты (22, 443 и т.п.) от посторонних глаз. Немного подумав, а идея уже не новая, решил написать простенький, так сказать, ICMP knocker, то есть открытие портов по пингу. Но пингу не простому, а с определенным размером пакета. Пример для линукс:
ping -s 999 -c1 mysrv.com
Где -s - размер отправляемого сообщения, -с количество.
Как подключить мультиметр к компьютеру
Периодически возникает задача снимать показания мультиметра через определённые интервалы времени и записывать их в файл. Например график напряжения при разряде или заряде аккумулятора. Вообще для этого есть мультиметры с функцией регистрации данных, но ни один, из имеющихся у меня, не обладает таким функционалом.
В бюджетных мультиметрах ZT102 и ZT301, которые построены на чипе DTM0660, можно реализовать подключение к компьютеру, но для этого придётся редактировать EEPROM и вносить изменения на печатную плату. Это несложно и Kerry Wong описывал как это сделать на примере мультиметра ennoLogic eM860T.
В тоже время у моего настольного мультиметра Agilent U3402A на задней панели уже есть порт RS232, но на нём указано "используется только для калибровки". Аналогичное предупреждение есть и в инструкции пользователя на русском и английских языках.
Памятка по BPMN и BPMN-диаграммам
Я написал эту статью для себя, но подумал, что она будет полезна и начинающим айтишникам, и тем, кому необходимо освежить знания или быстро вспомнить основные вещи, не открывая полное руководство.
Ещё раз подчеркну, статья задумывалась как базовая памятка и помощь для начинающих, а никак не исчерпывающая документация. Многое я опускаю ввиду избыточности или неактульности, по крайней мере в моей работе.
Построение кластера PostgreSQL высокой доступности с использованием Patroni, etcd, HAProxy
Так уж вышло, что на момент постановки задачи я не обладал достаточной степенью опытности, чтобы разработать и запустить это решение в одиночку. И тогда я начал гуглить.
Не знаю, в чем загвоздка, но уже в который раз я сталкиваюсь с тем, что даже если делать все пошагово как в туториале, подготовить такой же enviroment как у автора, то все равно никогда ничего не работает. Понятия не имею, в чем тут дело, но когда я столкнулся с этим в очередной раз, я решил — а напишу-ка я свой туториал, когда все получится. Тот, который точно будет работать.
Создание CLI утилит на Go с библиотекой Cobra
Сегодня мы рассмотрим, как с помощью замечательной библиотеки Cobra превратить обычный Go-код в инструмент CLI. Cobra позволяет создавать интерфейсы командной строки.
Начнем с самого начала — установки и настройки проекта.
Самый быстрый фреймворк на Диком Западе: ускоряем Django-rest-framework вместе с Rust
Всем привет! Меня зовут Роман Кабаев, я инженер в отделе разработки инструментов тестирования компании YADRO. Вместе с коллегами мы разрабатываем собственную тест-менеджмент систему с открытым исходным кодом TestY.
На этапе запуска TestY в качестве фреймворка для разработки мы выбрали Django, так как он позволяет в максимально короткие сроки реализовать MVP. Однако развивать такой продукт — добавлять фичи, наращивать число пользователей и объем хранимых данных в системе — бывает сложно.
Мы действительно быстро запустили MVP, перевезли данные из TestRail с помощью плагинов, и команды тестирования YADRO уже более года пользуются системой. Но есть одно «но»: пользовательские сценарии разных команд сильно отличаются. Так, добавление в систему более полумиллиона тестов привело к просадке скорости работы определенных эндпоинтов, завязанных на древовидных структурах.
Спойлер: камнем преткновения для нас стали CPU-bound задачи с большим количеством данных, о том, как я это выяснил, расскажу ниже. Изучив, как можно ускорить выполнение таких задач в Python, я протестировал несколько решений и нашел оптимальное. Если вы разрабатываете веб-приложение на Django или Python и так же, как я, хотите ускорить работу сервиса, читайте эту статью.
Как управлять Kubernetes с помощью Ansible
Делимся переводом статьи об интеграции Kubernetes и Ansible. Из статьи вы узнаете, как подготовить среду для работы, как развернуть кластер Kubernetes с помощью Ansible, как управлять ресурсами Kubernetes и автоматизировать обновления. Кроме того, вы узнаете, как развернуть плейбук Ansible в Kubernetes на облачном провайдере и использовать Ansible для CI/CD в Kubernetes.
Information
- Rating
- 4,919-th
- Registered
- Activity