Pull to refresh
0
0
Send message

Как быстро написать API на FastAPI с валидацией и базой данных

Reading time 11 min
Views 17K

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

В этой статье мы разработаем простой API с помощью самого популярного стека и FastAPI. Рассмотрим важные концепции в работе с этим фреймворком, набросаем базовую структуру проекта и развернем приложение на облачном сервере. Подробности под катом!
Читать дальше →
Total votes 53: ↑48 and ↓5 +43
Comments 39

Эй конвертер, не шипи! Строптивые преобразователи платы для E-Ink экранов (Ч2)

Level of difficulty Medium
Reading time 12 min
Views 4.2K

Приветствую вас, друзья!
Продолжаем разработку системы питания универсальной платы для E-Ink экранов. В этой части займёмся запуском и отладкой прототипа, «почувствуем вкус» ферритовых бусин, взорвём полсхемы. Поработаем с обратной связью: узнаем простой способ испытания устойчивости и измерения параметров, рычаги влияния при встроенной компенсации и разные хитрости. Проверим правильность расчётов программы Power Stage Designer с помощью экспериментов. Постабилизируем обратную связь и попробуем укротить уже эти конвертеры!
Читать дальше →
Total votes 47: ↑47 and ↓0 +47
Comments 12

Что нового в IMSProg?

Level of difficulty Easy
Reading time 2 min
Views 2.6K

Пару месяцев назад я писал историю создания программатора микросхем CH341a для Linux систем. Благодаря вашим отзывам и комментариям программа изменилась, надеюсь в лучшую сторону.

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

Python Multiprocessing. Обмен данными между процессами. Передача объектов пользовательских классов

Level of difficulty Hard
Reading time 15 min
Views 12K

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

Модуль Multiprocessing позволяет использовать так называемый истинный параллелизм, то есть создавать процессы, которые выполняются полностью независимо друг от друга.

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

О том, как с этим обходиться, я и расскажу в этой статье.

Читать далее
Total votes 25: ↑22 and ↓3 +19
Comments 19

Как сделать кастомную раскладку клавиатуры в Linux

Level of difficulty Easy
Reading time 4 min
Views 2.5K

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

При этом с сербской кириллической раскладкой проблем не было, т.к. есть русская раскладка, у которой через правый Alt включаются дополнительные сербские буквы.

В какой-то момент я подумал, что можно сделать свою раскладку, взяв за основу английскую и добавив сербские символы через правый Alt. Например, RightAlt + s = š, RightAlt + d = đ и т.д.

Я ожидал что есть какой-то GUI в котором можно потыкать кнопки и получить нужную раскладку. Но такого я не нашел. Все делается через редактирование файлов. Плюс я не нашел понятного туториала. Что-то конечно я смог найти, но в некоторых местах приходилось догадываться и действовать методом тыка.

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

Machine Learning инженер: что/где/как изучать, чтобы въехать

Reading time 12 min
Views 25K

Привет, хаброчеловек!

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

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

Power over Ethernet

Level of difficulty Medium
Reading time 7 min
Views 10K

Power over Ethernet , или PoE , технология, которая позволяет передавать электроэнергию вместе с данными по кабелю Ethernet. Это позволяет с помощью одного кабеля обеспечить как соединение для передачи данных, так и передать достаточное количество электроэнергии для питания сетевых устройств.

Читать далее
Total votes 26: ↑24 and ↓2 +22
Comments 16

Галопом по Европам: Легитимные процессы Windows на пальцах

Level of difficulty Easy
Reading time 12 min
Views 19K

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

Читать далее
Total votes 64: ↑62 and ↓2 +60
Comments 36

Разработка HID-драйвера: шаг за шагом

Level of difficulty Medium
Reading time 8 min
Views 3.3K


Предлагаем погрузиться в мир Human Interface Device (HID) в контексте операционной системы реального времени «Нейтрино». В статье мы расскажем про архитектуру HID и коснемся практических аспектов создания драйверов для устройств ввода.


Кроме того, затронем вопросы системной разработки и изучения драйверного API для встраиваемых систем реального времени. Расскажем, почему создание драйверов для взаимодействия с HID-устройствами является достаточно важным, но, при этом, достаточно простым процессом.

Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 3

Как переназначить кнопку dictation на macOS (без стороннего софта)

Level of difficulty Easy
Reading time 3 min
Views 1.4K

Год назад я купил Mac с функциональными клавишами и столкнулся с кнопкой dictation, которая вызывает стандартную программу для диктовки текста. Перед покупкой я предположил что это кнопка с значком микрофона должна включать и выключать микрофон, каково же было мое разочарование, когда вместо функционала включения и выключения микрофона я получил запуск dictation. Меня не особо устраивал сторонний софт (например: Kabaneri elements), хотелось что-то нативное и небольшое

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

Сам себе мобильный интернет. Запускаем базовую станцию стандарта 4G LTE

Level of difficulty Hard
Reading time 13 min
Views 79K
Приветствую всех!

Я уже не раз рассказывал про то, как в домашних условиях поднять сотовые сети разных стандартов. Но всё же все они были уже весьма древними. Самое время замахнуться на кое-что поинтереснее — LTE.



Итак, в сегодняшней статье поговорим о том, что детально в нашем сообществе не описывал практически никто — о том, как запустить базовую станцию самого нового из поддерживаемых большинством телефонов этой страны стандартов. Поговорим об особенностях её работы и о трудностях, с которыми, возможно, придётся столкнуться при запуске. Традиционно будет много интересного.
Читать дальше →
Total votes 370: ↑369 and ↓1 +368
Comments 156

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

Level of difficulty Medium
Reading time 13 min
Views 13K


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

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

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

Лазерный станок «уже не из Ютуба V1». Часть 1

Reading time 11 min
Views 3.9K

(Начало – здесь.)

– Привет! Как у тебя дела? У меня задачек будет скоро по проектированию. Будет время поделать?
– Привет. Все хорошо. Давай попроектируем.

– Мне детали надо запроектировать для станка CO2 лазера большого. Из металла под резку-гибку. Я сейчас собираю из деталек от одного умельца. Есть мысли как упростить+усилить конструкцию. Рама у меня сейчас из профиля 3060. Портал 6060. Надо будет их скидать тебе в проекте. Металл детали будет на них проектировать. Позже нафотаю накидаю, что есть.
– Окей. Пока мало понятно что надо).

Под катом – опыт погружения в новое. Непознанное, загадочное, интересное. Проектирование деталей для постройки CO2-лазера с ЧПУ. Уровень первый – своими мозгами, чужими руками.

Как изгибалась сталь
Total votes 21: ↑21 and ↓0 +21
Comments 2

Память как у пингвина: Работа памяти в Linux

Level of difficulty Easy
Reading time 20 min
Views 36K

Что такое память и какие они бывают в Linux? Как с ней взаимодействовать? Каковы её особенности?

Как реализована память в ядре Linux? Как с ней работать?

Что такое кластеры, откуда в ядре Linux грязные и чистые страницы - читайте в этой статье!

Читать далее
Total votes 101: ↑97 and ↓4 +93
Comments 56

Профилирование асинхронного Python

Level of difficulty Easy
Reading time 3 min
Views 6.6K

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

Для асинхронного python-кода существует конечное количество специфических "узких мест", которые лучше перечислить заранее.

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

OpenConnect: недетектируемый VPN, который вам понравится

Level of difficulty Medium
Reading time 15 min
Views 212K

Я уже написал здесь много статей на тему прокси-протоколов и прокси-клиентов, которые очень сложно детектировать и заблокировать, и которые используют пользователи в Китае, Иране, Ираке, Туркменистане, и теперь вот в России (мы здесь в отличной компании, правда?). Но довольно часто мне в комментариях писали, мол, это все отлично, но мне нужен именно VPN для целей именно VPN - доступа в частные локальные сети, либо для соединения клиентов между собой, и желательно так, чтобы его не заблокировали обезьяны с гранатой. Поэтому сегодня мы поговорим именно о VPN.

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее
Total votes 325: ↑324 and ↓1 +323
Comments 340

Из фото в 3D, ч.2: калибровка камеры

Level of difficulty Hard
Reading time 13 min
Views 6K

Фото до (слева) и после (справа) калибровки камеры

В первой части статьи мы немного поупражнялись на яблоках, чтобы понять, как 3D-объекты проецируются на 2D-плоскость фотографии. Заодно мы описали математическую модель камеры и ее параметры.

Знаешь параметры — живешь в Сочи можешь восстановить 3D-сцену или ее характеристики: высоту здания, расстояние до пешехода, загруженность самосвала. Словом, сплошная польза для целого ряда отраслей. 

А вот как именно определить эти заветные параметры, так и осталось за кадром. К тому же мы рассматривали простейшую модель pinhole, но в реальной жизни все сложнее. У большинства камер есть линзы, которые искажают изображения (вспомните эффект fisheye). Все эти «рыбьи глаза»‎ и другие отклонения нужно как-то корректировать.

О том, как восстанавливать параметры камеры (калибровать ее) и нивелировать искажения (дисторсию), читайте в этой публикации.

Также из нее вы узнаете:

как выглядит математическая модель калибровки и дисторсии;

как собрать датасет для калибровки;

какие есть методы калибровки;

детали одного из этих методов.

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

Разработка алгоритмов обработки данных в реальном времени на Python

Level of difficulty Easy
Reading time 14 min
Views 7K


Привет, Хабр!

Разработчикам все чаще приходится создавать эффективные алгоритмы обработки и анализа данных по мере их поступления и без задержек. В этой статье мы рассмотрим ключевые аспекты разработки на Python начиная с выбора инструментов и заканчивая оптимизацией производительности и обеспечением безопасности системы. Погрузимся глубже в тему, предоставив вам множество примеров кода и практических рекомендаций для успешной разработки.
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 0

Асинхронный python без головной боли (часть 3)

Level of difficulty Easy
Reading time 10 min
Views 13K

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

И снова здравствуйте
Total votes 14: ↑14 and ↓0 +14
Comments 5

Новая жизнь старого GPS-приёмника

Level of difficulty Medium
Reading time 18 min
Views 23K

В этой статье я расскажу о том, как я использовал старый GPS-приемник в качестве приёмника для захвата "сырых" данных GPS. Также я постараюсь рассказать о базовых принципах приема и декодирования данных GPS.

Читать далее
Total votes 83: ↑82 and ↓1 +81
Comments 87

Information

Rating
Does not participate
Registered
Activity