Pull to refresh
20
0
Сергей Поповичев @Vanger

DevOps

Send message

Обзор отечественных компьютерных модулей формата SMARC

Reading time10 min
Views9.9K

В статье кратко описан стандарт встраиваемых компьютерных модулей SMARC. Приведен краткий обзор отечественных производителей и модулей выполненных в данном стандартен.

Компьютерные модули, называемые также компьютерами на модуле (Computer-on-Module) или системами на модуле (System-on-Module), представляют собой компактный вычислитель, содержащий центральный процессор, память, контроллеры периферии и вторичные источники питания. Все периферийные интерфейсы выведены на разъемы в соответствии с той или иной общепринятой спецификацией.

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

Описание преимуществ и наиболее популярных среди разработчиков и пользователей встраиваемых систем стандартов компьютерных модулей: ETX, QSeven, SMARC, СOM Express и COM-HPC представлено в статье «Компьютерные модули. Описание преимуществ применения и обзор популярных стандартов».

Далее будет приведено описание одного из самых молодых стандартов: SMARC и краткое описание отечественных разработчиков и модулей в данном стандарте.

Читать далее

Дебажим Golang с помощью Delve

Level of difficultyEasy
Reading time10 min
Views14K

В этой статье мы рассмотрим, как дебажить программы, написанные на Golang, с помощью Delve. Delve — это сторонний отладчик для Go, скачать на github по ссылке https://github.com/go-delve/delve. Это хорошая альтернатива отладчику GDB golang (https://golang.org/doc/gdb), так как Delve куда больше возможностей для работы.

Читать далее

Протоколы в Python

Level of difficultyEasy
Reading time8 min
Views30K

В Python 3.8. появилась новая примечательная возможность — протоколы (protocols). Протоколы — это альтернатива абстрактным базовым классам (abstract base classes, ABC). Они позволяют пользоваться структурной подтипизацией (structural subtyping), то есть — осуществлять проверку совместимости классов исключительно на основе анализа их атрибутов и методов. В этом материале мы поговорим о протоколах в Python и разберём практические примеры работы с ними.

Читать далее

Kafka UI краткий гайд

Level of difficultyEasy
Reading time4 min
Views62K

Буквально недавно я начал создавать свой аналог сервиса Discord, используя веб-сокеты и передавая сообщения через очередь. В один из моментов мне понадобилось проверить, корректно ли проходят сообщения в этой очереди. Тогда я осознал, как неудобно каждый раз заходить в docker контейнер и вручную вводить команду для просмотра всех сообщений в топиках. После дня анализа и советов от моего коллеги, опытного DevOps-инженера Паши, я пришел к выводу, что kafka-ui от команды provectus — это наилучший и наиболее удобный инструмент для визуализации данных в Kafka.

Читать далее

Правильная поддержка Apple Silicon: как избежать проблем при апгрейде с Intel (x86_64) на Apple (arm64)

Level of difficultyMedium
Reading time6 min
Views4.4K

Инженеры Apple придумали прекрасные по быстродействию и производительности процессоры Apple Silicon (M1, M1 Max и так далее) на архитектуре arm64. Но за полученное быстродействие разработчикам пришлось платить своим временем.  

Рассказываем, к каким проблемам мог привести апгрейд рабочего мака и что нужно учитывать с изобретением процессоров Apple Silicon.

Статья вдохновлена ограничениями в недавно вышедшем Xcode 14.3: запуск из-под Rosetta в нём стал deprecated.

Читать далее

Как не отказаться от тестирования фича-веток при переходе на микросервисы

Reading time15 min
Views3.6K

В современном мире приложение — это огромная связка микросервисов. Функционально её протестировать сложнее, чем монолит. Кто-то решает это единым staging’ом и чатиком синхронизации: «займу auth на полчасика». Другой уходит с головой в shift-left или тестирует в canary. Разберём, как катнуть веточку сервиса и получить свой личный staging.

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

Читать далее

Python Дайджест: как ускорить Django проект до (почти) максимума

Reading time7 min
Views7.5K

Завершение цикла статей про техническое оживление Python Дайджест. В первых трех частях рассказано как был совершен переход с Python 3.4 на Python 3.11 и Django 4, отформатирована вся кодовая база с pre-commit, настроена автоматизация задач на основе Github Actions. В заключительной части расскажу как получить "быстрый" сайт.


Читать дальше →

Пишем простой ML веб-сервис на FastAPI

Level of difficultyEasy
Reading time9 min
Views21K

Данный туториал пошагово разбирает процесс создания веб-приложения для определения тональности текста на основе NLP-модели.

Мы будем использовать модель из библиотеки Hugging Face Hub, но описанный подход подойдет для любой задачи машинного обучения.

План:

1. Загрузка и подготовка модели машинного обучения для использования в веб-сервисе.

2. Создание веб-сервиса с помощью FastAPI.

3. Изучение пользовательского интерфейса FastAPI для удобного ручного тестирования и демонстрации работы приложения.

4. Написание автоматических тестов с помощью библиотеки pytest.

5. Запуск приложения в Docker-контейнере.

Код доступен на GitHub.

Читать далее

Team-lead & руководство командой: б(ы)ть или не быть?

Level of difficultyEasy
Reading time13 min
Views8.6K

«О чем это я?» или вместо предисловия.

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

В тексте, как бы сам не любил этого, используются профессиональные жаргонизмы, которые являются прямой фонетической калькой с англоязычных слов. Сделано это умышленно и намеренно, чтобы сократить количество «букаф» и обеспечить передачу смысла максимально коротким путем (как водка – сразу в мозг!).

Чего в статье нет: «золотых правил идеального тим-лида», детально-пошаговых инструкций по разрешению конфликтов и прочей нравоучительной нудятины.

Читать далее

DevOps спит, консоль работает. Как сократить путь от разработки до внедрения приложения

Level of difficultyMedium
Reading time6 min
Views2.8K

Хорошо быть умелым разработчиком и самому закрывать все задачи по запуску микросервисных приложений. Но как быть, если команда разработчиков тратит все время на управление микросервисными приложениями, настройку систем безопасности, аутентификации, мониторинга, логирования? Можно писать код и самостоятельно запускать каждый компонент, а можно нажать несколько кнопок и развернуть микросервис. Именно для этого мы создали консоль в платформе контейнеризации dBrain.cloud. В этой статье хотим подробнее рассказать, зачем и кому она будет полезна.

Что такое консоль dBrain

Особенности асинхронности в Python

Level of difficultyMedium
Reading time8 min
Views19K

Привет, Хабр! Меня зовут Николай Нагорный, я работаю в Росбанке над платформой Advisors’ Axiom. В этом посте я подробно расскажу о важной фиче, которая появилась в Python 3.5 — асинхронности. Затрону основные концепции и инструменты, приведу примеры кода. Пост будет полезен новичкам для понимания основ асинхронности и, может, даже опытным разработчикам в поиске новых идей и подходов.

Читать далее

Оптимизируем изображения в HTML

Level of difficultyEasy
Reading time8 min
Views20K

Вместе со Стивом Сьюэллом, CEO Builder.io, разбираемся, почему с точки зрения оптимизации производительности изображения лучше загружать через HTML, а не через CSS. 

Читать далее

Как установить и настроить LXD на Ubuntu

Reading time9 min
Views9.5K

LXD позволяет создавать контейнеры и управлять ими. В статье разберём, как настроить LXD и использовать его для запуска Nginx в контейнере. А также рассмотрим, как перенаправить трафик из Интернета в контейнер, чтобы сделать пробную веб-страницу доступной.

Данный материал не претендует на самое современное правильное решение для продакшена, а больше формирует понимание работы контейнеров, существующих альтернатив Docker.

Читать далее

Мониторинг SSL-сертификатов и доменов с помощью Zabbix

Reading time16 min
Views19K

Если вы отвечаете за работоспособность сайтов, то эта статья поможет вам и вашим клиентам своевременно продлить срок регистрации доменов и вовремя обновить SSL-сертификаты. 

Как и предыдущих статьях нашей серии про Zabbix, мы сначала рассмотрим ручные методы контроля, а затем перейдем к описанию шаблона и скриптов контроля для Zabbix.

Читать далее

5 полезных библиотек Python (с примерами)

Level of difficultyEasy
Reading time6 min
Views32K

Python остается топ 1 среди языков программирования по версии многих журналов и сайтов. Популярность языка и его большое сообщество привело к тому, что сейчас для Python существует огромное число библиотек. К сожалению, большая часть этих библиотек была создана энтузиастами и больше не поддерживается. Давайте посмотрим на 5 хороших развивающихся библиотек, которые могут помочь при решении практических задач.

Ознакомиться

Подключение жидкокристаллического дисплея LCD1602 (HD44780) к микроконтроллеру ATmega8 в 8-битном режиме

Level of difficultyMedium
Reading time7 min
Views15K

LCD-дисплеи (Liquid Crystal Displays) используют для отображения состояния или параметров в различных приборах.

Жидкокристаллический дисплей LCD1602 представляет собой 16-выводное устройство, имеющее 8 выводов для передачи данных (D0-D7) и 3 вывода управления (RS, RW, EN). Остальные 5 выводов предназначены для питания и подсветки ЖК-дисплея. Цифры «1602» указывают на формат выводимой (отображаемой) информации: 16x02 символов (рисунок 1).

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

LCD-дисплей 16x2 можно использовать в 4-битном или 8-битном режиме в зависимости от технических требований. Чтобы использовать его, нам необходимо отправить определенные команды на LCD-дисплей в командном режиме, и как только ЖК-дисплей будет настроен в соответствии с нашими требованиями, мы сможем отправить необходимые данные в режиме передачи данных.

Для получения дополнительной информации о LCD-дисплее 16x02 и о том, как его использовать, необходимо обратиться к datasheet.

Читать далее

Документирование кодовой базы. Зачем и как?

Reading time10 min
Views39K

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

Читать далее

Хорошая документация: критерии, методика разработки и личный опыт техписателя

Level of difficultyEasy
Reading time9 min
Views6.1K

Всем привет! Меня зовут Антон, я 9 лет занимаюсь документацией для программистов и год работаю техническим писателем в IT-департаменте Банка РНКБ. За это время у меня сложилось своё видение «хорошей» документации и методики её разработки, и я решил поделиться им с вами.

Планирую рассказать всё в двух статьях. Сегодня поговорим о документации для IT-департамента — той, которую распространяют в электронном виде, размещают на отдельном сайте и которой пользуются программисты, тестировщики, аналитики и руководители отделов. Помимо своего опыта, покажу примеры, статьи и исследования на тему ведения документации, которые помогли мне — и могут пригодиться вам.

Читать далее

Information

Rating
Does not participate
Location
Калужская обл., Россия
Date of birth
Registered
Activity