Pull to refresh
4
0
Андрей Васильев @vap1977

Спец по распределенным встраиваемым системам

Send message

K8s кластер в Oracle Cloud для Always Free аккаунтов

Reading time6 min
Views10K

На хабре уже не раз писали про бесплатные вычислительные ресурсы (ARM, 4 CPU, 24ГБ), которые можно развернуть в Oracle Cloud. После регистрации вы получаете $300 и 30 дней триального аккаунта, когда для развёртывания доступны все виды ресурсов. Когда эти 30 дней заканчиваются, аккаунт получает статус Always Free, и количество доступных ресурсов значительно урезается. Чтобы снова получить доступ к ним ко всем, можно сделать upgrade своего аккаунта до Pay-as-You-Go. Это односторонняя операция, переход обратно на Always Free невозможен, и после такого перехода нужно аккуратно следить и и контролировать траты. Тем не менее, Pay-as-You-Go аккаунты также могут бесплатно использовать Always Free ресурсы.

Oracle Cloud предоставляет возможность managed развёртывания K8s кластера (в документации он называется OKE – Oracle Container Engine for Kubernetes), однако он недоступен для Always Free аккаунтов.

Чтобы обойти это ограничение, используем подход полностью ручного выделения облачных ресурсов (сети, виртуальных машин) и установки необходимых компонентов. На выходе получим кластер с четырьмя узлами (один control-plane и три worker'а) с установленным K8s'ом, балансировщиком нагрузки, публичным IP адресом и (бонусом) бесплатным доменом. Воспроизводимые Terraform скрипты (и readme по их использованию) опубликованы на github'е.

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments10

Как мы отказались от JPEG, JSON, TCP и ускорили ВКонтакте в два раза

Reading time24 min
Views169K

На протяжении всей жизни мне приходится экономить вычислительные и сетевые ресурсы: сначала были компьютеры с 300 кГц (кило — не гига!) и 32 Кбайт RAM, интернет по dial-up. Потом я решал олимпиадные задачки. Теперь имею дело с терабайтами трафика и 50 млрд событий в сутки. И хотя современные телефоны в 1 000 раз мощнее любого оборудования двадцатилетней давности, я до сих пор оптимизирую. Думал даже, что это со мной что-то не так. Но потом понял, что все постоянно что-нибудь оптимизируют. 

Эта статья в меньшей степени о том, почему нужно бороться за производительность, и в большей о том, на что сейчас стоит заменить устаревший стек из JPEG, JSON, gzip и TCP — и как это сделать. 

Спойлер: у нас есть решение и мы его не только показываем — ссылки на open source в конце статьи.

Читать далее
Total votes 336: ↑324 and ↓12+411
Comments300

Ethercat для начинающих

Reading time12 min
Views48K

Некоторое время назад у нас появился объект, где в техническом задании стояло требование: «Протокол Ethercat». В процессе поиска информации я полез на хабр и с удивлением обнаружил, что там разбора этого протокола нет. Да и вообще информация о нем довольно фрагментирована (забегая вперед — я просто не там искал). Проект мы сделали, а эта статья — для «более молодого меня», попытка сэкономить время кому-нибудь еще, кто собирается использовать или просто интересуется этим протоколом.


Единственный нюанс — я опишу довольно низкий уровень работы протокола (Data Layer в терминологии EtherCAT). Потому что именно он нам понадобился и им мы ограничились. Неописанными (пока?) останутся Application Layer протоколы типа CanOPEN-over-EtherCAT (CoE).


Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments32

Осуществление разных способов связи между модулями esp32

Reading time9 min
Views31K

Микроконтроллер esp32 примечателен многим, однако его наиболее известной характеристикой (которая, кстати, вполне себе «перевернула» рынок в своё время) является встроенная возможность осуществления связи по bluetooth и wi-fi. Эти способы коммуникации позволяют микроконтроллеру осуществлять как скоростную связь с устройствами, так и энергосберегающую. Именно об этих способах мы и поговорим в этой статье.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments18

Настраиваем свой почтовый сервер в docker-compose

Reading time7 min
Views49K


Недавно мне потребовалось собрать свой почтовый сервер. В принципе, дело-то простое. Берёшь и ставишь сервер. Postfix, dovecot, letsencrypt, roundcube, spamassasin, clamav. Всё это — уже известные дела. Колея проторена. Иди и делай.

Но мне нужно было наплодить этих серверов. И я подумал, а почему бы не настроить всё на контейнерах? Такое можно сделать. Для этого надо скачать все вышеописанные контейнеры и написать .env файл века с более чем сотней разных параметров. Ну и, конечно же, сконфигурировать nginx. Там всё просто. С полдесятка хостов, и система заработает.

Я тяжело вздохнул и решил, что наверняка есть решение попроще. И оно нашлось. Mailu. Всё просто и из коробки, но всё-таки и в нём есть свои подводные мины.

Под катом — подробности того, как установить Mailu без боли и проблем, а также описание компонентов и рассказ о том, что и как можно менять и использовать.
Читать дальше →
Total votes 18: ↑17 and ↓1+24
Comments23

Ещё одна статья про кватернионы и углы Эйлера

Reading time4 min
Views34K
По работе у меня возникла необходимость переводить координаты объекта из углов Эйлера в кватернионы и обратно.

В ходе разбирательства пришлось прочитать несколько статей на Хабре, посвященных кватернионам и углам Эйлера, Википедию и просто методички и статьи разных ВУЗов. Для удобства приведу ссылки на статьи, с Хабра:

Каверзные кватернионы
Заметки о вращении вектора кватернионом
Кватернионы для чайников
Кручу-верчу, запутать хочу. Углы Эйлера и Gimbal lock

Формулы для пересчёта углов Эйлера в кватеринионы и обратно найти можно, но
если бы всё было так просто...
Total votes 25: ↑20 and ↓5+15
Comments30

Запускаем мелкосерийное производство электроники. Личный опыт

Reading time6 min
Views45K

В любой компании, занимающейся разработкой электроники в России регулярно поднимаются два вопроса, которые приводят к жарким холиварам: как паять прототипы и где запускать серийное производство. Ответ на каждый вопрос, по сути, сводится к выбору между аутсорсом либо производству собственными силами. В статье описывается личный опыт обустройства лаборатории для прототипирования единичных экземпляров и мелкосерийного производства электроники собственной разработки. Возможно, кому то он окажется полезен при обустройстве собственного свечного заводика.

Чтобы статья получилась максимально практичной в ней будут приводиться ссылки на поставщиков оборудования, которое используется нами. Не сочтите за рекламу.

Читать далее
Total votes 80: ↑79 and ↓1+106
Comments72

STM32, CMSIS, CAN, Часть 1 — передача

Reading time11 min
Views40K

Привет, сегодня мы будем настраивать отправку данных с помощью CAN (Controller Area Network). В интернете много информации о том, как настроить CAN использую HAL библиотеку, а в случае использования CMSIS информация обрывочна, по этой причине решил рассказать о своем опыте работы.

Принцип работы CAN-сети в этой статье разбирать не будем т.к. на просторах интернета существует большой объем материла (особенно мне нравится как написано тут) на эту тему, но по ходу повествования будем останавливаться на некоторых нюансах.

Ставим себе задачу: заставить контроллер периодически отправлять кадры в CAN-сеть с скоростью передачи 250 кБит/с, со стандартной длиной идентификатора (11 бит) с полем данных размеров 8 байт.

Читать далее
Total votes 16: ↑13 and ↓3+15
Comments26

Храним настройки правильно или реестр параметров для встраиваемых систем

Reading time26 min
Views8.7K

Привет, Хабр! В нашей практике разработчиков электронных устройств и встраиваемых систем мы часто сталкиваемся с необходимостью хранить параметры устройства. Это могут быть, например, такие параметры как яркость дисплея, язык, рабочая частота радиоканала или IP адрес – да что угодно. Единого общепринятого подхода для решения этой задачи нет, и я предлагаю обсудить ниже наиболее очевидные варианты, их достоинства и недостатки, а также предложить реализацию, к которой я пришел в результате работы над несколькими проектами. Поехали!

Читать далее
Total votes 13: ↑12 and ↓1+15
Comments13

Си должен умереть

Reading time21 min
Views111K

Язык Си - один из наиболее влиятельных языков программирования за всю историю. Он стал незаменимым инструментом разработки операционных систем, сместив с этого пьедестала языки ассемблера. Изучение Си обязательно для любого уважающего себя программиста. Этот язык любим за свою внешнюю простоту и ненавидим за беспощадность к ошибкам. Благодаря нему у нас есть ядро Linux и тысячи уязвимостей в нём же в придачу.

Попробуем понять, что же такое этот противоречивый язык Си - благословение или проклятие?

Читать далее
Total votes 185: ↑147 and ↓38+156
Comments643

Управление светодиодными индикаторами с помощью регистров сдвига с токовым выходом

Reading time19 min
Views27K

Речь в этой статье пойдет о цифровых или цифробуквенных дисплеях для индикации различных показаний, которые часто так и называют индикаторами. Здесь мы остановимся только на одной их разновидности — светодиодных (LED) семисегментнтных индикаторах. На мой взгляд, одна из самых древних разновидностей дисплеев незаслуженно отставлена на периферию разработок, хотя по многим параметрам (контрасту, читаемости, минимальной неиспользуемой площади окна, надежности и долговечности, наконец) LED-семисегментники дают фору любым другим разновидностям, включая ближайших конкурентов в виде OLED.

Читать далее
Total votes 25: ↑24 and ↓1+34
Comments37

Обзор отечественных микросхем, соответствующих 719 ПП РФ. Часть 2

Reading time21 min
Views39K

В 2020 году я опубликовал статью про отечественные микросхемы, соответствующие 719 ПП РФ. Напомню, что это одна из мер правительства по поддержки отечественных производителей на регулируемых государством рынках. Например, при закупках в интересах государственных органов России приоритет отдается товарам из реестра продукции выпущенной в России. Что бы продукция попала в данных реестр, она должна соответствовать требованиям, описанным в 719 и 878 ПП РФ. И одним из требований к электронной техники является применение отечественных микросхем из этого же реестра, требования к которым так же описаны в данном постановлении.

В начале 2020 в реестре было всего 22 микросхемы. К концу 21 года в реестре находится уже более 70 записей. Попробуем их рассмотреть поподробней, какие новые микросхемы появились за последний год.

Читать далее
Total votes 25: ↑24 and ↓1+32
Comments85

Nginx + Node.js: делаем идентификацию и аутентификацию

Reading time4 min
Views11K

Авторизация в системах одна из ключевых частей. Можно использовать какие то мощные решения, Firebase например, или что то из множества хороших библиотек. Если хочется уменьшить количество зависимостей или для самообразования - то можно написать свое.

Данное решение с использованием Nginx и Node.js приложения. Все описанное является очень частным случаем используемого подхода, в том смысле что есть некоторые условия в которых требовалось создать решение, и данный вариант реализации хорошо подходит только в в этих условиях. 

Читать далее
Total votes 5: ↑3 and ↓2+4
Comments14

Продажная многопоточность

Reading time26 min
Views17K

Данный цикл статей рассматривает сложнейший мир многопоточного программирования через достаточно щекотливую тему, читатель должен быть готов к тому, что некоторые образы и примеры могут негативно повлиять на его психологическое состояние, некоторые — вызвать отвращение. Следует учитывать, что все описанные ситуации являются вымышленными и совпадения с реальностью случайны. 

Повествование будет разбито на две части, от простого к сложному. 

В первой части будут рассмотрены базовые понятия, стандартные подходы и проблемы. Будут приведены примеры использования нескольких, довольно известных примитивов синхронизации.

Во второй части, мы углубимся в более сложные концепты и так же, на простых и понятных примерах, разберем нетривиальные концепции, которые существуют в современных языках программирования.

Читать первую часть
Total votes 29: ↑22 and ↓7+18
Comments15

На моей визитке работает Linux

Reading time6 min
Views110K
Перевод статьи из блога инженера Джорджа Хиллиарда


Кликабельно

Я инженер встроенных систем. В свободное время я часто ищу то, что можно будет использовать в проектировании будущих систем, или что-то из разряда моих интересов.

Одна из таких областей – дешёвые компьютеры, способные поддерживать Linux, и чем дешевле, тем лучше. Поэтому я зарылся в глубокую кроличью нору малоизвестных процессоров.

Я подумал: «Эти процессоры настолько дешёвые, что их практически можно раздавать даром». И через некоторое время ко мне пришла идея сделать голую карточку для Linux в форм-факторе визитной карточки.
Читать дальше →
Total votes 167: ↑162 and ↓5+210
Comments116

Пилотажный ДПЛА. Как правильно сделать бочку

Reading time14 min
Views12K
Что общего у истребителя с тарой для хранения жидкости и машиной Голдберга? Казалось бы только то, что самолет и бочка могут оказаться частями бесполезного, но завораживающего механизма, ан нет. Фигура пилотажа бочка объединяет все эти вещи и не только.



Выполнение бочки никак не помогает гражданскому самолету довезти своих пассажиров до места назначения или истребителю в бою, но требует, при правильном выполнении, задействовать все органы управления самолетом: элероны, руль высоты и руль направления.

В данной публикации изложено описание процесса поворота самолета на 360 градусов вокруг продольной оси без снижения с точки зрения такой науки, как динамика полета, и приведено описание того, как можно заставить ваш самолет сделать бочку правильно.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments40

Vite.js и Vue.js

Reading time7 min
Views45K

Я нашёл только 3 статьи по Vite.js на Хабр, там были некие обзоры функционала и описание фишек данного инструмента.

Хорошо, тогда вопрос, что же это за инструмент такой и в чем преимущества использовать его при разработке? Если мы зайдем на официальный сайт - то здесь выделяется 6 основных фишек:

Читать далее
Total votes 7: ↑4 and ↓3+2
Comments5

Правила умного дома

Reading time7 min
Views38K

Очень часто в статьях про домашнюю автоматизацию на Хабре выкладывают всю техническую подноготную: на каких технологиях сделано, какие программные продукты применены. Но очень мало статей, которые показывают конкретные примеры правил автоматизации. И сегодня я хочу это исправить. 

Причина, почему таких статей мало в общем-то понятна: правила фактически раскрывают всю частную жизнь владельца и его семьи. Посмотрим удастся ли соблюсти конфиденциальность в этой статье.

А ещё в этой статье не будет сложных правил - все они достаточно простые, но в то же время закрывающие практически все сферы автоматизации. Специально для этой статьи сделаны лакшери фоточки этой однокомнатной квартиры 46 квадратных метров.

Автоматизация на Home Assistant
Total votes 18: ↑13 and ↓5+12
Comments151

Websocket API на nodejs по новому

Reading time5 min
Views20K

О чем эта статья?

1. uWebsockets.js - высокопроизводительная реализация http/websocket сервера для nodejs

2. AsyncAPI - спецификация для асинхронного API, с помощью которой можно создать описание Websocket API

3. Простой пример websocket API с использованием библиотеки wsapix:
- создадим websocket сервер, используя uWebsockets.js
- настроим валидацию получаемых и отправляемых сообщений
- добавим генерацию документации из кода

Читать далее
Total votes 11: ↑9 and ↓2+7
Comments9

Коррекция духовности интернет-трафика

Reading time3 min
Views68K
За десятки тысяч лет существования, человечество сформировало великое множество религиозных, философских и мировоззренческих учений. Однако с бурным развитем естественных наук в последнюю сотню лет, в обществе появилась и укрепилась тенденция все наблюдаемые явления пытаться описать в материалистических терминах, не принимая во внимание духовную сторону вопроса.

В мире IT не принято относиться всерьез к нематериальному, но всем известна шутка про сисадминов, настраивающих сервер при помощи нло или шаманского бубна. И очень многим, кто имел дело с достаточно большими и сложными системами, встречалась ситуация, когда некие явления невозможно объяснить в терминах физических процессов.

дальше - интереснее..
Total votes 143: ↑118 and ↓25+93
Comments43

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity