Pull to refresh
10
0
Send message

Структурированное логирование в Go с помощью Slog

Reading time22 min
Views5.8K

Более 10 лет разработчики на Go жаловались на отсутствие структурированного логирования в ядре Golang. Участники сообщества Golang даже создали несколько собственных пакетов, таких как Logrus, Zap и Zerolog. В 2023 году, команда разработчиков Google Go наконец-то представила Slog — высокопроизводительный пакет для структурированного ведения логов в стандартной библиотеке Go. Мы перевели гайд о возможностях slog.

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

Go — 100 вопросов/заданий с собеседований

Level of difficultyMedium
Reading time87 min
Views61K

Приветствую тебя, хаброжитель!

В этой статье разберём 100 вопросов, они покрывают львиную долю того, что могут спросить на собеседовании джуниор Go-разработчика с практически любой специализацией. Конечно же, в реальной работе на Go требуются немного другие скиллы, чем умение быстро ответить на любой вопрос. Однако сложилась добрая традиция делать из собеседования викторину с главным призом в виде трудоустройства — к этому нужно быть готовым.

Читать далее
Total votes 51: ↑42 and ↓9+33
Comments14

Загружаем OpenIPC по сети на камеру без удаления заводской прошивки

Level of difficultyMedium
Reading time13 min
Views14K


Многие уже слышали о проекте OpenIPC, который представляет собой альтернативную универсальную прошивку для камер видеонаблюдения. Сегодняшний пост для тех, кто хочет попробовать этот софт, кто дружит с Linux, но далёк от программатора, паяльника, фена и многих подобных вещей, которые, как правило, сопровождают смену прошивки и путь обратно к заводской. Ведь многие боятся, что залив новую прошивку, она не заработает, а дороги к родной уже не будет. И эти опасения вполне оправданы, потому как на большинстве плат производители всеми средствами ограничивают возможности создания бэкапов. С каждой новой версией это становится сделать всё сложнее. Ещё такой вариант загрузки будет удобен администраторам, кому требуется обслуживать огромное количество одинаковых камер, ведь одно изменение в директории обновит сразу все камеры.

Из дополнительных железок нам понадобится мультиметр, USB UART-адаптер на 3.3 вольта и dupont-проводки от макетной платы, чтобы подключиться к камере. Сегодня будем настраивать загрузку OpenIPC на камере с сервера вместо классической загрузки с микросхемы флэш-памяти. Если понравится, можно даже оставить работать камеру таким образом навсегда.

Особенно такой вариант будет удобен тем, кто разрабатывает программы для камеры, и нужно быстрым и удобным способом подкидывать в систему программы, модули ядра, менять ядро и саму корневую файловую систему. А также тем, кто использует камеру как одноплатный компьютер вместо плодово-ягодных плат.
Дальше о том, как заставить загружаться камеры с сервера по сети
Total votes 60: ↑60 and ↓0+60
Comments7

Orange Pi 5 (как настоящий...)

Level of difficultyMedium
Reading time5 min
Views15K

Недавно компания OrangePi обновила линейку одноплатных компьютеров Orange Pi 5/5B/5+, распаяв на платах 32GB LDDR4 RAM. Однако данные платы вполне прилично работают и с меньшим объемом памяти на борту, а наличие SPI Nor Flash и возможность подключения NVMe диска делают эти платы достойными конкурентами среди одноплатных устройств для разаработки.

Нас заинтересовал первый образец серии 5/5B/5+, а именно Orange Pi 5, на предмет того, как на данном устройстве поведет себя EDK II и можно ли его использовать так, как мы привыкли работать с обычными ПК.

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

Пишем gRPC сервис на Go — сервис авторизации

Level of difficultyMedium
Reading time63 min
Views35K

Пишем gRPC сервис на Go — сервис авторизации


В этой статье мы научимся писать полноценный gRPC сервис на Go на примере сервера авторизации с полноценной архитектурой, готовой к продакшену. Мы напишем как серверную часть, так и клиентскую. В качестве клиента мы возьмём мой сервис — URL Shortener, о котором у меня также есть статья и видео-гайд на ютубе. Попутно мы познакомимся с базовыми подходами к работе с авторизацией. И в конце настроим автоматический деплой сервиса с помощью GitHub Actions на удалённый сервер.


Видео-версия этого гайда с более подробными объяснениями

Исходный код проекта: https://github.com/GolangLessons/sso


Итого, наш план:


  • Напишем простой, но полноценный gRPC-сервис
  • Разберемся с базовыми принципами работы авторизации — чтобы не было скучно
  • Настроим автоматический деплой в прод — потому что руками деплоить лень
  • Подружим его с уже готовым сервисом URL Shortener — чтобы был практический смысл
  • Напишем полноценные функциональные тесты

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


Кратко обо мне: меня зовут Николай Тузов, я много лет занимаюсь разработкой на Go, очень люблю этот язык. Также веду свой YouTube-канал.

Читать дальше →
Total votes 70: ↑68 and ↓2+66
Comments44

VisionFive2 (начало работы)

Level of difficultyMedium
Reading time11 min
Views4.7K

Не так давно, а именно в феврале 2023 года, в продажу поступили платы VisionFive2 , имеющие на борту 8GB LPDDR4 памяти, от компании StarFive. По сути VisionFive2 - это первый в мире высокопроизводительный RISC-V одноплатный компьютер (SBC) со встроенным графическим процессором (GPU). И естественно, мы не могли не заинтересоваться этим устройством, которое имеет весьма впечатляющие характеристики.

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

От желания управлять газовым котлом удалённо до полной автоматизации отопления дома

Level of difficultyMedium
Reading time6 min
Views34K

В статье расскажу про свой путь разработки DIY железок для работы с Home Assistant с целью автоматизации отопления в частном доме.

Глава 0: предыстория

Захотелось построить дом. Дом построили, встал вопрос с отоплением и управлением, а так как в доме иногда отсутствовали по несколько месяцев, то переплачивать за газ не очень-то и хотелось. Газа ведь магистрального нет, но «мы скоро проведем». До этого «скоро» закопали газгольдер, а газ там в +-10 раз дороже магистрального. Пытливый ум решил: будем поддерживать в доме температуру 15 градусов, когда там никого нет. Как это сделать? Повесить контроллер/термостат для котла.

Читать далее
Total votes 42: ↑41 and ↓1+40
Comments105

Создаём свое собственное ZigBee устройство на чипах от Espressif ( ESP32-C6/H2)

Level of difficultyMedium
Reading time9 min
Views28K
Первые упоминания про новые чипы от Espressif были еще два года назад. Но тогда про них мало что было известно, и они были не доступны в свободной продаже, и SDK был на самом начальном этапе. И вот наконец их анонсировали, и можно купить, так давайте же сделаем на них что нибудь хорошее.

Я давно хотел себе домой СО2 сенсор, но то денег не хватает, то жаба квакает… А тут мне пришла заказанная плата на базе ESP32-C6 и я решил попробовать собрать сам, благо различных Ардуино модулей был целый ящик. Если Вам интересно что у меня получилось добро пожаловать под кат. (длинная портянка и много картинок)
Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments22

Дружим YOLACT и RockChip: запуск инстанс-сегментации на китайском одноплатнике

Level of difficultyEasy
Reading time7 min
Views3.8K

Приветствую всех читателей Хабра! Сегодня я хочу поделиться своим опытом запуска YOLACT на edge-устройстве RockChip. Несмотря на то, что процесс занял больше времени, чем я ожидал, я решил поделиться с вами своими наработками, чтобы помочь другим разработчикам, которые могут столкнуться с той же задачей. В конце концов я нашёл способ запуска yolact, который позволил достичь высокой производительности и качества модели. Надеюсь, что мой опыт будет полезен для вас и поможет вам избежать ошибок, которые я совершил. Приятного чтения!

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

Вышел Savant 0.2.4: компьютерное зрение на базе глубокого обучения для Nvidia Jetson и dGPU

Level of difficultyEasy
Reading time3 min
Views1.7K

После месяца напряженной работы мы выпустили новую версию Savant (0.2.4), с новыми функциями и примерами использования.

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

Savant построен на базе DeepStream и предоставляет высокоуровневый уровень абстракции для быстрой разработки конвейеров компьютерного зрения на базе Nvidia DeepStream.

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

Интеллектуальная панель Sunton 7″ на базе ESP32S3

Level of difficultyMedium
Reading time7 min
Views7.4K
image
Отображение информации это один из важнейших аспектов автоматизированных систем.

В IoT системах роль терминала чаще всего выполняет смартфон или компьютер. Но иногда и в умном доме удобно иметь автономную операторскую панель

На сайте Makerfabs в разделе OpenHardware появились интеллектуальные дисплеи Sunton 4.3″, 5″ и 7″ на базе ESP32S3. Из них и герой обзора — панель ESP32-8048S070, купленная на Алиэкспресс за 3000 руб. вместе с доставкой.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments14

Кросс-компиляция под RISC-V для самых маленьких

Level of difficultyEasy
Reading time6 min
Views6.4K

Архитектура RISC-V корнями уходит к началу 1980-х годов, группа под руководством Дэвида Паттерсона в стенах университета Беркли разработала архитектуры RISC-I и RISC-II. Долгое время архитектуре приходилось существовать в тени лицензируемых ARM и MIPS ядер. Архитектура RISC-V появилась в 2010 году, и поддерживается Linux Foundation. Отметка в 10 миллиардов произведенных ядер была преодолена за 12 лет. 

Сейчас RISC-V может сыграть большую роль в становлении российской микроэлектроники. Компании CloudBEAR и Syntacore  работают над процессорами собственной микроархитектуры, совместимыми с системой команд RISC-V. Архитектура RISC-V позволяет нашим разработчикам создавать энергоэффективные процессоры сравнимого с мировым уровня и сохранять программную совместимость со всеми программами, созданными для экосистемы RISC-V во всем мире.

В данной статье мы попробуем на примере RISC-V платы MangoPi разобраться, как выполняется кросс-компиляция под RISC-V.

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

Про FPV-квадрокоптеры. Введение

Level of difficultyEasy
Reading time30 min
Views45K

Не так давно случайно от человека, снимавшего на моих глазах видео с квадрокоптера DJI Mavic услышал про FPV, что он, мол, хочет такой себе квадрокоптер купить.

Почему, спрашиваю, у тебя же есть уже аппарат для съемки, чего не хватает? Что, там у FPV камера лучше?

Камера‑то хуже, но вот зато он может очень точно маневрировать очень близко около объектов съемки. Пролететь впритирку к дереву или к скале, залезь в любую дырку, кадры снять подинамичнее, поинтереснее.

Я и до этого заметил во время той видеосъемки, что управлять‑то DJI Mavic несложно. Но вот управлять тонко, точно вовсе не так уж и просто.

Слова того человека о точном маневрировании с квадрокоптером FPV мне понравились и я начать курить ту тему... Очнулся уже будучи владельцем нескольких квадрокоптеров FPV.

Поразило 2 аспекта: как это удивительно дешево (ну для опытного ИТ‑разработчика с соответствующей зарплатой) и как же трудно научиться им управлять (зато когда научишься, то ого‑го).

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

Обучение YOLOv5 на кастомном датасете

Level of difficultyEasy
Reading time4 min
Views9K

YOLO - это современная архитектура нейронных сетей, которая предназначена для распознавания и обнаружения объектов на видео.

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

Conc: новая библиотека для управления конкурентностью в Go

Reading time3 min
Views6.4K

Одной из главных фишек языка Go является удобная работа с конкурентностью. Однако, в больших проектах всё равно возникают такие проблемы как утечка горутин, некорректная обработка паник в горутинах, плохая читаемость кода.

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

Давайте посмотрим, на что она способна.

Читать далее
Total votes 17: ↑14 and ↓3+11
Comments10

Расчет транспортного потока на основе YOLOv5 и DeepSORT на базе Deepstream

Level of difficultyEasy
Reading time7 min
Views6.8K

Хотим сохранить ваше время и нервы с задачей по подсчету трафика на перекрестках.

Ярослав и Никита – наши CV-инженеры, поделились решением, которое всего за 4 шага поможет подойти к релизу с минимальной потерей времени и денег.

Статья будет полезна начинающим CV-инженерам, продуктологам, владельцам IT-продукта, маркетологам и проджект-менеджерам.

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

AIGod — распознавание объектов

Level of difficultyMedium
Reading time3 min
Views3.3K

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

Читать далее
Total votes 13: ↑10 and ↓3+7
Comments2

Удаленный доступ к IP камерам. Часть 3. HEVC и web

Reading time11 min
Views9.3K

HEVC (High Efficiency Video Coding — высокоэффективное кодирование видеоизображений), также известный как H.265, это видеокодек, широко используемый, в том числе, в системах видеонаблюдения. До недавнего времени веб браузеры практически не поддерживали этот формат. Но ситуация изменилась с выходом браузеров Chrome/Chromium версии 106. Это событие показалось мне достойным упоминания на Хабре, и в этой части статьи я расскажу, почему поддержка HEVC важна, о своих попытках подружить IP камеры с браузером и что из этого получилось.

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

Система увлажнения воздуха для дома или квартиры

Reading time5 min
Views37K

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

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

КриптоПро в Linux контейнере для использования КЭП от ФНС

Reading time5 min
Views16K

С Нового Года в России от Индивидуальных Предпринимателей (ИП) и директоров Обществ с Ограниченной Ответственностью (ООО) требуют использовать Квалифицированную Электронную Подпись (КЭП) выданную Федеральной Налоговой Службой (ФНС).

В этой статье речь пойдёт о том, как работать с КЭП от ФНС под Linux без головной боли.

Читать далее
Total votes 31: ↑31 and ↓0+31
Comments78
1
23 ...

Information

Rating
Does not participate
Location
Челябинск, Челябинская обл., Россия
Date of birth
Registered
Activity