Pull to refresh
1
0
Данильченко Артем @serjeant

backend-разработчик

Send message

Сквозь тернии к звездам: делаем устройство для наведения лазерной указки на любой небесный объект

Reading time5 min
Views19K
Привет, Хабр!

Решил показать свою небольшую самоделку, которая работает примерно так:



Если КДПВ сделала свое дело — тогда добро пожаловать под кат :)

Небольшой спойлер
Я старался писать так, чтобы было максимально понятно всем
Читать дальше →
Total votes 36: ↑33 and ↓3+45
Comments76

Python, Go или… готовим сырой видеопоток с полсотни камер

Level of difficultyMedium
Reading time8 min
Views11K

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

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

Читать далее
Total votes 20: ↑19 and ↓1+20
Comments22

От астролябии до MIMO: как необходимость определять местоположение привела к развитию систем спутниковой и сотовой связи

Reading time15 min
Views3.5K

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

Все это было бы невозможно без эволюции технологий, систем спутниковой и сотовой связи, а также методов, которые вычисляют местоположение мобильных объектов. О них и поговорим под катом. Я Надежда Никулина, ведущий системный аналитик в телеком-команде YADRO. Давно работаю в сфере телекоммуникаций, участвовала в развитии сетей 2G и 3G в России, обеспечивала разработку узлов связи. В статье расскажу, как развивались методы определения позиционирования объектов и почему будущее за гибридными методами и технологиями 5G. 

Узнать больше
Total votes 18: ↑17 and ↓1+20
Comments8

Запускаем Matlab внутри Docker-контейнера с поддержкой GUI в ОС GNU/Linux

Level of difficultyMedium
Reading time51 min
Views5.3K

Возникла задача запускать графические приложения в полностью изолированной среде: как от Интернета, так и от файловой системы «хозяйской» ОС. В моём случае это был Matlab. Пишут, что в последних версиях он стал шибко «умным»: сам без спроса постоянно лезет в сеть и чем-то там постоянно обменивается со своими серверами. Однако использовать для поставленной задачи виртуальную гостевую машину / аппаратную виртуализацию (наподобие VirtualBox) — это, ИМХО, «too much». Docker подошел бы гораздо лучше, т.к. он использует то же ядро ОС и не требует эмуляции / виртуализации ввода-вывода, что существенно экономит ресурсы. Однако Docker «из коробки» не предназначен для запуска GUI-приложений. Что ж, попробуем это исправить и запустить таки Matlab внутри Docker-контейнера с полной поддержкой «иксов» и GUI.

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

Clickhouse, Grafana и 3000 графиков. Как построить систему быстрых дашбордов

Reading time17 min
Views31K

Меня зовут Валя Борисов, и я — аналитик в команде Ozon. Задача нашей команды — создавать инструменты для мониторинга и анализа скорости. 

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

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

Читать далее
Total votes 41: ↑41 and ↓0+41
Comments25

Технологии прошлого и настоящего: как я сделал Nixie Clock с самодельным драйвером на ESP8266

Level of difficultyEasy
Reading time23 min
Views11K

Радиолампы, словно артефакты из прошлого, олицетворяют нечто большее, чем просто технологию. Они несут в себе определенную магию, отражающую уникальное сочетание технического мастерства и эстетики. Не удивительно, что часы на неоновых индикаторах занимают довольно уникальную нишу в мире дизайна и интерьера. Они представляют собой не просто инструмент для отображения времени, но и элемент декора, который может значительно изменить атмосферу помещения. Этой статье я расскажу о своем опыте создания Nixie Clock на базе драйвера собственной разработки.
Читать дальше →
Total votes 52: ↑52 and ↓0+52
Comments68

8 сервисов для доставки товаров в Россию в 2024 году. Разбираю риски

Level of difficultyEasy
Reading time7 min
Views13K

Сейчас сервисов, которые привозят товары в Россию – как грибов после дождя. Среди них много мошенников. Я сам дважды натыкался.

За полтора года я поработал с 12 мейлфорвардерами – сервисами по доставке товаров из стран Европы, США, Турции и ОАЭ. Более менее приличные описал ниже. Также в статье рассказываю о рисках и нюансах работы с описанными сервисами.

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

Tarantool: как избавиться от «зоопарка технологий» с помощью потоков событий

Reading time14 min
Views5.2K


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

Меня зовут Иван Банников, я ведущий разработчик VK Tech. В этом материале я расскажу об основных предпосылках разрастания используемого стека, а также на примере IoT-платформы, которую мы поддерживали, поделюсь опытом избавления от «зоопарка технологий» в области обработки сообщений.
Читать дальше →
Total votes 37: ↑36 and ↓1+45
Comments0

Пособие по программированию модулей ядра Linux. Ч.7

Reading time25 min
Views11K

Заключительная часть последней версии руководства по созданию модулей ядра от 02 июля 2022 года. Здесь мы рассмотрим обработку прерываний, криптографию, стандартизацию интерфейсов с помощью модели устройства, а также разберём принцип работы драйвера виртуального устройства ввода и возможность внесения в модуль некоторой оптимизации. В завершение же я укажу на пару неявных, но важных нюансов, а также дам рекомендации по дальнейшему погружению в тему программирования ядра.
Читать дальше →
Total votes 27: ↑26 and ↓1+40
Comments0

Космический сервер уже на орбите: как принять с него сигнал

Level of difficultyEasy
Reading time7 min
Views29K

27 июня с космодрома Восточный был запущен космический аппарат «Метеор-М» № 2-3 и 42 попутных спутника. Среди них и СтратоСат-ТК-1, который отвёз наш космический сервер на орбиту. 11 июля в 9:40 пико-спутник RUVDS был выведен из пускового контейнера и отправился в своё самостоятельное путешествие по орбите.

Сейчас расскажем, как же следить за нашим спутником и получать с него данные. К сожалению, в одной статье на Хабре не уместить всех нюансов работы с радиолюбительскими спутниками, поэтому мы разделим инструкцию на две части. Первая — если вы совсем не понимаете, о чём идёт речь и у вас нет никакого опыта работы с радио. И вторая — подразумевающая какой-то опыт или желание его приобрести. И мы очень надеемся, что более опытные радиолюбители будут делиться опытом с новичками и помогать нам с возможными вопросами.
Читать дальше →
Total votes 63: ↑60 and ↓3+76
Comments57

K3s как альтернатива K8s

Level of difficultyEasy
Reading time7 min
Views7.5K

K3s - проект, созданный Rancher Labs, который представляет собой легковесную и простую в установке версию Kubernetes. K3s предлагает решение для разработчиков, которые хотят использовать Kubernetes в своих проектах, но не хотят сталкиваться со сложностью установки и управления полной версией Kubernetes.

Читать далее
Total votes 16: ↑12 and ↓4+10
Comments3

VirtualBox: виртуальная локальная сеть, маршрутизация в Linux

Level of difficultyMedium
Reading time4 min
Views27K

Создание виртуальной локальной сети с использованием VirtualBox и Linux. Настройка VirtualBox, типов подключения, виртуальных машин и операционной системы Linux в рамках создания локальной сети.

Читать далее
Total votes 13: ↑7 and ↓6+5
Comments32

Слушаем и декодируем в реальном времени радиосигнал точного времени из интернета

Level of difficultyMedium
Reading time20 min
Views20K
image

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

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

  • в интернете (NTP);
  • в сетях мобильной связи (NITZ);
  • в системах спутниковой навигации GPS, ГЛОНАСС, BeiDou-3, Galileo.

Хотя в этих случаях используются более современные технологии, передача сигналов точного времени по радио продолжает существовать и выполнять свои функции. Промышленностью выпускаются различные устройства, принимающие эти сигналы, например, часы Casion Wave Ceptor. Изучив основы передачи точного времени по радио, вы узнаете много интересного, а также закрепите свои знания в различных областях.
Читать дальше →
Total votes 53: ↑52 and ↓1+69
Comments40

Kafka за 20 минут. Ментальная модель и как с ней работать

Level of difficultyMedium
Reading time19 min
Views96K

Привет! Меня зовут Глеб Гончаров, и я руковожу подгруппой ИТ-инфраструктуры в СберМаркете. В работе мы широко используем Kafka как шину данных для микросервисов и не раз убедились на практике, что к инструменту важно подобрать правильный подход. Об этом сегодня и поговорим в двух частях — сначала обсудим основы, а в конце статьи будет ссылка на практические задания.

Читать далее
Total votes 41: ↑41 and ↓0+41
Comments15

Курс лекций «Основы цифровой обработки сигналов»

Reading time12 min
Views187K
Всем привет!

Часто ко мне обращаются люди с вопросами по задачам из области цифровой обработки сигналов (ЦОС). Я подробно рассказываю нюансы, подсказываю нужные источники информации. Но всем слушателям, как показало время, не хватает практических задач и примеров в процессе познания этой области. В связи с этим я решил написать краткий интерактивный курс по цифровой обработке сигналов и выложить его в открытый доступ.

Большая часть обучающего материала для наглядного и интерактивного представления реализована с использованием Jupyter Notebook. Предполагается, что читатель имеет базовые знания из области высшей математики, а также немного владеет языком программирования Python.


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

Механизмы выделения памяти в Go

Reading time11 min
Views39K
Когда я впервые попытался понять то, как работают средства выделения памяти в Go, то, с чем я хотел разобраться, показалось мне таинственным чёрным ящиком. Как и в случае с любыми другими технологиями, самое важное здесь скрывается за множеством слоёв абстракций, сквозь которые нужно пробраться для того, чтобы что-то понять.



Автор материала, перевод которого мы публикуем, решил добраться до сути средств выделения памяти в Go и рассказать об этом.
Читать дальше →
Total votes 42: ↑36 and ↓6+30
Comments2

Средние highload паттерны на Go

Reading time20 min
Views12K

Привет, Хабр! Меня зовут Агаджанян Давид и ранее я опубликовал статью «простые highload паттерны на Go», в которой были рассмотрены простые подходы увеличения пропускной способности отдельно взятого экземпляра приложения без хардкора. Мне импонируют простые подходы, так как over engineering подходы требуются в исключительных проектах, и то чаще всего только в отдельно взятых подсистемах, в остальном можно воспользоваться давно известными лучшими практиками.

Читать далее
Total votes 19: ↑16 and ↓3+16
Comments4

K8S для начинающих. Часть вторая

Reading time7 min
Views30K

В прошлой статье мы говорили о создании подов. В этой статье поговорим о том, что такое сервис, типы сервисов, метки и селекторы, а также создадим свой сервис.

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments2

Языковая механика escape analysis

Reading time9 min
Views19K

Прелюдия


Это вторая из четырех статей в серии, которая даст представление о механике и дизайне указателей, стеков, куч, escape analysis и семантики значения/указателя в Go. Этот пост посвящен кучам и escape analysis.

Оглавление цикла статей:

  1. Language Mechanics On Stacks And Pointers (перевод)
  2. Language Mechanics On Escape Analysis
  3. Language Mechanics On Memory Profiling (перевод)
  4. Design Philosophy On Data And Semantics

Вступление


В первом посте из этой серии я рассказал основы механики указателя на примере, в котором значение распределяется по стеку между горутинами. Я не показывал вам, что происходит, когда вы разделяете значение в стеке. Чтобы понять это, вам нужно узнать о другой области памяти, где могут находиться значения: о «куче». С этим знанием вы можете начать изучать «escape analysis».
Читать дальше →
Total votes 4: ↑3 and ↓1+5
Comments1

Разбираемся с пакетом Context в Golang

Reading time11 min
Views127K

image


Пакет context в Go полезен при взаимодействиях с API и медленными процессами, особенно в production-grade системах, которые занимаются веб-запросами. С его помощью можно уведомить горутины о необходимости завершить свою работу.


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


(Прим. пер.: Контекст используется во многих пакетах, например, в работе с Docker).

Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments5
1
23 ...

Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Date of birth
Registered
Activity

Specialization

Specialist
Lead
Golang
C++
Qt
C
System Programming
Linux Kernel