Обновить
Козлов Василий Иосифович@saintbyteread⁠-⁠only

Пользователь

Отправить сообщение

Как устроен современный веб-синтезатор

Время на прочтение13 мин
Охват и читатели5.8K

За годы развития браузеры обзавелись множеством API и функциональных возможностей, благодаря которым превратились в невероятно мощные платформы приложений. Яркий пример — это современный веб-синтезатор, подробностями об устройстве которого делимся к старту курса по Fullstack-разработке на Python.

Читать далее

Захват видео с сетевых камер, часть 1

Время на прочтение8 мин
Охват и читатели107K
Сетевые видеокамеры постепенно вытесняют аналоговые, хоть и стоят они сейчас гораздо дороже. Сетевые обладают рядом очевидных приемуществ:
  • нет необходимости в отдельном регистраторе или плате захвата;
  • помехоустойчивость;
  • простая интеграция в существующую сеть;
  • нет ограничения по расстоянию;
  • наличие камер высокого разрешения;
  • просмотр камеры прямо с самой камеры по http;
  • наличие всевозможных настроек;
  • и др.

Нас интересует способ получения изображений с таких камер, для этого надо знать а как вообще они их передают? На наше счастье камеры используют существующие стандарты, а не то, что взбредёт в голову китайскому разработчику. Подавляющее большинство камер используют один или несколько способов передачи видео, это в основном Motion JPEG по HTTP, Motion JPEG по RTSP или H264 по RTSP. Также многие камеры могут передавать звук, но он нас не интересует сейчас.

В этой статье я рассмотрю эти способы передачи изображений с сетевых камер, а также приведу пример захвата таких изображений всё на том же Python'е.
Читать дальше →

IT-фирмы в отчаянии из-за нехватки сотрудников. Бонусы выходят на новый уровень

Время на прочтение4 мин
Охват и читатели75K


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

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

Такого в Китае не купишь

Время на прочтение6 мин
Охват и читатели14K

 Хомяки приветствуют вас друзья!

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

Читать далее

Присматриваемся к одноплатникам на RISC-V, обзор модуля Sipeed Lichee RV на процессоре Allwinner D1

Время на прочтение20 мин
Охват и читатели34K
Sipeed Lichee RV

Одноплатные компьютеры на RISC-V процессоре сравнительно новое веяние. Поднебесная активно работает над снижением зависимости от западных информационных систем и технологий, именно поэтому новая открытая архитектура RISC-V одна из ключевых ставок Китая. Для продвижения в массы китайский чипмейкер Allwinner на базе ядра Alibaba/T-Head Xuantie C906 RISC-V разработал процессор Allwinner D1 и упрощенную модификацию Allwinner D1s. На сегодня разработано несколько одноплатников на RISC-V процессоре, и в первенство по массовости вырвалась компания Sipeed с модульным компьютером Система-на-Модуле Lichee RV с 512 Мб ОЗУ всего за $16.90, работающим на Linux. Разработчик может спроектировать несущую плату для данного модуля, добавив необходимые периферийные устройства и разъемы. В результате получится решение максимально подготовленное для себя. Данный модуль предназначен для создания интеллектуальных информационных систем, терминалов, роботов, и т.д. В первой части рассмотрим архитектуру процессора, возможности модуля, дистрибутивы, программное обеспечение. Во второй части детально рассмотрим порты и интерфейсы для программирования, напишем программы на Python и C#.
Читать дальше →

Запись звука JS c микрофона или голосовые комментарии

Время на прочтение4 мин
Охват и читатели38K

Запись звука JS c микрофона или голосовые комментарии


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

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

Постановка задачи


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

Многопоточный Python на примерах: как правильно хранить настройки приложения

Время на прочтение14 мин
Охват и читатели39K

Если опустить первое и самое главное предубеждение относительно питонячьей многопоточности у большинства программистов — что её не существует из-за GIL, — то остается другое, и, наверное, вполне достоверное: что многопоточность — это сложно, и нам этого, пожалуйста, не надо. И знаете что? Так оно и есть. Многопоточность — это сложно, особенно когда выбираешься за пределы стандартных руководств и попадаешь со своей многопоточной поделкой в реальный мир. И, возможно, вам не нужно. Ни здесь, ни далее я не буду обсуждать целесообразность написания многопоточного кода на Python и сразу перейду к тому, как это делать.

Так как же?

Пишем веб сервис на Python с помощью FastAPI

Время на прочтение17 мин
Охват и читатели145K
image

Знаю, знаю, наверное вы сейчас думаете «что, опять?!».

Да, на Хабре уже неоднократно писали о фреймворке FastAPI. Но я предлагаю рассмотреть этот инструмент немного подробнее и написать API своего собственного мини Хабра без кармы и рейтингов, зато с блэкджеком и с тестами, аутентификацией, миграциями и асинхронной работой с БД.
Читать дальше →

Raspberry Pi и модем SIM7600E 4G HAT

Время на прочтение3 мин
Охват и читатели50K
Добрый день всем. В этой статье я хотел бы рассказать о своем опыте использования 3G-модема SIM7600X, который можно подключать к Raspberry Pi. Статья может оказаться полезной тем из вас, кому необходимо использовать Raspberry автономно, в условиях отсутствия WIFI-сети.

Параметры системы


Raspberry Pi 3B+
OS: Raspbian GNU/Linux 10 (buster)
Модем SIM7600E 4G HAT, версия прошивки LE11B08SIM7600M22

image

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

Всё как у больших. Автозагрузка приложений в оконных менеджерах linux

Время на прочтение9 мин
Охват и читатели27K
Вывод systemd-analyze dot --user ‘i3.service’ | dot -Tpng | imv -


Вывод systemd-analyze dot --user ‘i3.service’ | dot -Tpng | imv -

Как-то раз, листая сообщения в профильном systemd чате, в телеграм, я наткнулся на следующий кусок man systemd.special


xdg-desktop-autostart.target
   The XDG specification defines a way to autostart applications using XDG desktop files.
systemd ships systemd-xdg-autostart-generator(8) for the XDG desktop files in autostart
directories. Desktop Environments can opt-in to use this service by adding a Wants=dependency
on xdg-desktop-autostart.target.

О как интересно, подумалось мне. Можно реализовать функционал полноценныхDesktop Environments, по автоматическому запуску приложений, при старте. А у меня как раз i3wm, который таковым не является и которому такой функционал не помешал бы. Надо это дело исследовать. Тогда я ещё не знал во что ввязался. Как оказалось, не всё так просто.


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

Одноплатники, появившиеся в продаже относительно недавно, на которые стоит обратить внимание

Время на прочтение3 мин
Охват и читатели28K

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

Разбираемся с параллельными и конкурентными вычислениями в Python

Время на прочтение21 мин
Охват и читатели77K

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

Прим. Wunder Fund: для задач, где не критичны экстремально низкие задержки — при сохранении и обработке биржевых данных, мы используем Питон, и естественно применяем описанные в статье подходы. Статья будет полезна начинающим разработчикам.

Мы увидим, что когда один человек одновременно делает несколько дел — это похоже на конкурентность, а когда несколько человек, работая бок о бок, заняты каждый собственным делом — это напоминает параллелизм. Эти ситуации мы разберём на простом и понятном примере закусочных, в которые люди заходят в обеденный перерыв. Такие заведения стремятся обслуживать клиентов как можно быстрее и эффективнее. Потом я покажу реализацию механизмов этих закусочных на Python, а в итоге мы сравним разные возможности одновременного «приготовления нескольких блюд», которые даёт нам этот язык, и разберёмся с тем, в каких ситуациях их применение наиболее оправдано.

А именно, я раскрою здесь следующие вопросы:

▪ Отличия конкурентности от параллелизма.
▪ Различные варианты организации конкурентного выполнения кода (многопоточность, модуль asyncio, модуль multiprocessing, облачные функции) и их сравнение.
▪ Сильные и слабые стороны каждого подхода к организации конкурентного выполнения кода.
▪ Выбор конкретного варианта организации конкурентного выполнения кода с использованием специальной блок-схемы.

Читать далее

SDR трансивер Peaberry V2

Время на прочтение5 мин
Охват и читатели15K

Данная статья завершает серию публикаций про бюджетные одноплатные радиостанции SDR (Software Defined Radio). Речь пойдёт о трансивере Peaberry SDR V2, разработанном американским радиолюбителем David Turnbull (AE9RB).

Набор для сборки трансивера Peaberry SDR V2 продавался за $149 без стоимости доставки.

Конструкция Peaberry SDR V2 основана на схемных решениях радиостанции SoftRock Ensemble RXTX американского радиолюбителя Tony Parks (KB9YIG), рассмотренных в предыдущей публикации цикла. Основным отличием Peaberry SDR V2 от SoftRock Ensemble RXTX является наличие «на борту» составного устройства USB, включающего в себя звуковое устройство и COM-порт.

В публикации мы также разберём усовершенствования, которые AE9RB внёс в схемы квадратурного детектора (QSD) и квадратурного возбудителя (QSE), и кратко пройдёмся по реализации оригинальной схемы управления радиостанцией Peaberry SDR V2.
Читать дальше →

Теория мертвой Сети. Возможно ли, что весь интернет — это ИИ?

Время на прочтение4 мин
Охват и читатели35K


На Хабре еще нет, хотя весь интернет обсуждает. А у нас здесь как раз самый профильный ресурс по теме, и у пользователей (если они, конечно, существуют) может быть свое мнение.


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


Разрозненную информацию собрало издание The Atlantic.

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

Быстрый, мощный интерфейс на Python

Время на прочтение15 мин
Охват и читатели172K

Dear PyGui принципиально отличается от других фреймворков GUI Python. Рендеринг на GPU, более 70 виджетов, встроенная поддержка асинхронности — это лишь некоторые возможности Dear PyGui. Руководством по работе с этим пакетом делимся к старту курса по разработке на Python.

Читать далее

Самогонный аппарат — полный автомат. Часть 3. Заключительная

Время на прочтение15 мин
Охват и читатели36K
Прошло +100500 лет с момента первой и второй публикаций. Настала пора поставить точку в этом многолетнем вопросе.

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


КДПВ. Точь-в-точь — мой аппарат
Поехали? Нет! Погнали!

Введение в Traefik 2.0

Время на прочтение13 мин
Охват и читатели229K

Traefik — это обратный прокси-сервер с открытым исходным кодом, обеспечивающий простую работу с микросервисами и/или просто контейнерами с вашими приложениями.


Обратный прокси-сервер (reverse proxy, реверс-прокси) служит для ретрансляции запросов из внешней сети к каким-либо серверам/сервисам внутренней сети (например веб-сервера, БД или файловые хранилища) и позволяет:


  • обеспечить сокрытие структуры внутренней сети и подробностей о находящейся в ней сервисах;
  • осуществлять балансировку нагрузки (load balancing) между экземплярами одного и того же сервиса или серверами с одинаковыми задачами;
  • обеспечить зашифрованное (HTTPS) соединение между клиентом и любым сервисом, в таком случае SSL сессия создается между клиентом и прокси, а между прокси и сервисом во внутренней сети устанавливается незашифрованное HTTP соединение, если сервис поддерживает HTTPS то можно организовать зашифрованное соединение и во внутренней сети;
  • организовать контроль доступа к сервисам (аутентификацию клиента), а также установить файрвол (брандмауэр).

В статье будет описываться использование Traefik в Docker в качестве реверс-прокси для других контейнеров Docker, а также не контейнеризированных сервисов.


image

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

Android in-app purchases, часть 2: инициализация и обработка покупок

Время на прочтение12 мин
Охват и читатели8.4K

Это вторая статья из серии, посвящённой подключению внутренних покупок в приложениях Google Play. В этой статье разберём пример пейволла и реализацию механизма покупки.

Познакомьтесь с остальными статьями из цикла:

1. Android in-app purchases, часть 1: конфигурация и добавление в проект.

2. Android in-app purchases, часть 2: инициализация и обработка покупок.

3. Android in-app purchases, часть 3: получение активных покупок и смена подписки.

4. Android in-app purchases, часть 4: коды ошибок от Billing Library и как не облажаться с тестированием.

5. Android in-app purchases, часть 5: серверная валидация покупок.

Читать далее

Ускоряем код на Питоне с помощью расширений на Cи

Время на прочтение7 мин
Охват и читатели15K

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

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

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

Читать далее

Тюнер для автонастройки магнитной петлевой антенны

Время на прочтение13 мин
Охват и читатели9.6K

Представленный в этой инструкции тюнер магнитной петли не полагается на данные о положении; контроллер не имеет представления о переменном конденсаторе или о положении двигателя, при сканировании и нахождении резонансной точки он настраивает антенну с помощью программируемого источника частоты. Среди его функций вы обнаружите контроль нагрузки на конденсатор, компенсацию люфта двигателя, сохранение предустановок, а также найдёте приложения для обновления параметров контроллера и приложение, которое упрощает обновления прошивки через USB. К старту курса о разработке на C++ делимся переводом статьи о тюнере от его автора.

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Екатеринбург, Свердловская обл., Россия
Дата рождения
Зарегистрирован
Активность