Как стать автором
Обновить
237.52

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Python и чистая архитектура…

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 1.2K

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

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

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Комментарии 0

Новости

У меня зазвонил Репка-фон. Делаем телефон на базе Repka Pi 3 с применением модуля SIM868

Уровень сложности Простой
Время на прочтение 15 мин
Количество просмотров 2.9K

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

Просто поражают возможности одноплатных компьютеров в формфакторе Raspberry за счёт применения с использованием их 40 pin разъёма, поддерживающего все наиболее популярные промышленные интерфейсы. Становится интересным пробовать решать разные задачи такого типа со ставшими доступными уже год назад Российскими одноплатниками Repka Pi, разработанными на основе китайской элементной базы, но разработанные и производимые уже в России и имеющие хорошую поддержку, что сильно меняет и расширяет возможности применения и получения ответов на возникающие вопросы, так как работы с такими задачами часто сопряжена с возникающими техническими вопросами.

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

Это четвертая статья серии, посвященной модулю GSM/GPRS/GNSS Bluetooth HAT. В этой статье рассмотрим как добавить в ваше IoT-устройство или другое оборудование функции мобильного телефона. Ранее мы рассматривали как принимать и отправлять сообщения и многое другое и вот настало время для реализации функционала полноценной телефонной голосовой связи.

Настало время превратить модуль GSM/GPRS/GNSS Bluetooth HAT, созданный на базе SIM868, в самый настоящий телефон, способный звонить и принимать звонки. Мы расскажем о том, как это можно делать из программы, составленной на языке Python, а также опишем соответствующие AT-команды. Вы проверите их в работе с помощью терминала minicom.

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

Читать далее
Всего голосов 27: ↑27 и ↓0 +27
Комментарии 2

Подручный для бизнеса

Время на прочтение 10 мин
Количество просмотров 1.6K

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

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 1

Делаем addon для Blender

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 2.1K

Люблю Blender. Он мощный, а в последних версиях красивый! А ещё он бесплатный. И даже становится удобнее. Но, если посмотреть на то, сколько вопросов в интернете про то, как сделать что-то вполне тривиальное, начинаешь понимать что до реального удобства там ещё далеко. С последними версиями эти вопросы становятся менее актуальными, потому что часть этих проблем уже кто-то решил за вас, написав аддон, который и только ждет что бы его активировали!

А что делать, если руками никак, а нужного функционала нет? Написать свой аддон!

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 4

Истории

CI/CD в каждый дом: сборочный цех базовых docker-образов

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 8.6K

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

Последнее время DevOps и CI/CD де-факто стали повсеместным стандартом независимо от размера команды, в интернетах хватает статей, почему это важно, в чём собственно идея, полезных практик и других материалов. Я же решил подойти с несколько другой стороны и максимально доступным языком на практических примерах рассмотреть отдельные задачи и их решения в рамках концепции.

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

Кому, собственно, это может пригодиться? Я бы сказал, что почти кому угодно, кто хочет организовать ту компоненту CI/CD, которая отвечает за построение и релизный цикл базовых образов внутри инфраструктуры вашей компании или даже персональных проектов (зародился он именно в процессе приведения в порядок моих пет-проектов).

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

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 12

Векторизация изображений. Как создать алгоритм поиска похожих изображений на Python

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 6.5K

Многочисленные исследования ученых доказывают, что около 90% информации человек воспринимает через зрение. Изображения являются одним из самых богатых источников информации, которую можно использовать для разнообразных задач, включая классификацию, детекцию объектов, ранжирование изображений, поиск по изображениям и генерацию текстовых описаний. 

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

В мире есть много вещей, которые интуитивно понятны и очевидны для нас. Например, если перед нами два похожих цветка, мы можем определить их принадлежность одному виду, даже не зная названий этих растений. Этот навык позволяет нам распознавать объекты и определять их в группы. Разумеется, подобные алгоритмы уже давно существуют в современных поисковиках Google, Яндекс и прочих. Но что, если вы проектируете обособленную систему с собственной базой изображений одной или нескольких конкретных тематик и вам необходим функционал поиска похожих изображений?

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

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 2

Исследуем Скрытые Сокровища: Малоизвестные Библиотеки Python для Аналитики Данных

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 5.4K

Введение: Привет, Хабр! Сегодня мы исследуем мир менее известных, но чрезвычайно полезных библиотек Python, которые могут значительно обогатить ваш аналитический инструментарий.

🚀 Подписывайтесь на мой телеграмм-канал DataTechCommunity для получения ежедневных обновлений о Python и аналитике данных!

Содержание:

Рассматриваем 5 малоизвестных, но полезных библиотек для аналитиков данных. Они помогут вам в машинном обучении, обработке больших данных и визуализации.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 2

Уникальные стили визуализации данных в Python: от Cyberpunk до элегантности

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 7.9K

Необычные стили для визуализации данных на Python: от киберпанка до эстетики. В статье рассмотрены 5 малоизвестных стилей для визуализации данных и создания дашбордов.

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 3

Простое внедрение аннотаций статистической значимости

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 1.1K

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

Сегодня с вами участница профессионального сообщества NTA Яруллина Ляйсян.

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

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

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

Узнать больше
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 5

Аутентификация, авторизация пользователей и единый вход (SSO) с использованием Django

Уровень сложности Простой
Время на прочтение 24 мин
Количество просмотров 3.8K

В этой статье исследую технологию SSO. Начинаю с разбора концепций аутентификации и авторизации. Рассматриваю как они работаю в контексте Django.

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

В итоге делаю реализацию SSO с Django, объединять Django и Keycloak.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 5

Типичные задачи аналитика данных. Часть 1. Упала метрика

Уровень сложности Средний
Время на прочтение 15 мин
Количество просмотров 6.2K

В прошлой статье мы рассматривали неочевидные проблемы АБ тестирования и как можно с ними справляться [ссылка]. Но часто бывает так, что при внедрении новой функциональности АБ тестирование провести нельзя. Например, это типично для маркетинговых кампаний нацеленных на массовую аудиторию. В данной ситуации существует вероятность того, что пользователи контрольной группы, которым недоступна рекламируемая функциональность, начнут массово перерегистрироваться. Также возможен сценарий, при котором возникнет значительное количество негативных отзывов из-за воспринимаемой дискриминации. Но задача оценки таких нововведений одна из наиболее частых, которые приходится решать аналитикам. Если метрики только улучшаются, то это обычно легко объяснить хорошей работой, а если метрика ухудшилась, то сразу появляется задача на аналитика. В этой заметке мы рассмотрим первую часть задачи - а действительно ли метрика упала и если да, то имеет ли смысл разбираться дальше?

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 0

Как приручить нейросеть и создать новогоднего Telegram-бота, который умеет «предсказывать» будущее

Время на прочтение 10 мин
Количество просмотров 2.7K

Мне нравится создавать Telegram-ботов и экспериментировать с нейросетями, поэтому часто объединяю их в своих в своих проектах. Коллеги заметили мое хобби и предложили разработать новогоднего гида Selectel, который будет генерировать персональные предсказания и советы на 2024 год для наших читателей.

Во время реализации спецпроекта я впервые столкнулся с ограничениями по маркетинговой части проекта. Как заставить ChatGPT придумывать разнообразные, но только положительные предсказания? Как не выйти за лимиты текстовой модели и Telegram? В этой статье делюсь ответами на вопросы и реакцией пользователей на проект.
Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 3

Почему в ботах телеги желательно использовать Webhook вместо Polling

Время на прочтение 5 мин
Количество просмотров 7.2K

Привет, коллеги!

Сегодня у нас на повестке дня выбор между двумя гигантами: Polling и Webhook. И если вы когда-либо задавались вопросом, почему именно Webhook является go-to решением для большинства проектов, то это статья для вас.

Помните, как в начале 2010-х все разрабы активно юзали Polling? Это был золотой стандарт для многих мессенджер-ботов. Но технологии не стоят на месте. Webhook занял своё законное мест, предлагая свои решения.

Читать далее
Всего голосов 16: ↑10 и ↓6 +4
Комментарии 29

Ближайшие события

Разметка трёхмерных моделей миокарда

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 928

Здравствуйте, мы студенческая команда APIzza. Мы хотим поделиться с вами нашим опытом по разметке трёхмерных моделей из набора данных MedShapeNet, который был опубликован в 2023 году.

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

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 2

Как добыть свечи по всем акциям Мосбиржи

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 2K

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

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Комментарии 0

Статистика на примерах с Python #1

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 7.1K
Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 6

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

Время на прочтение 7 мин
Количество просмотров 5.3K
Шпаргалка для ответа на любой вопрос о проектировании систем машинного обучения на вашем следующем собеседовании.

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

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

image
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 0

Forecasting Mini-Course Sales или же Прогнозирование продаж мини-курсов по нашему на Kaggle

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 862

Привет читатель,эта стать является переводом решений соревнования Forecasting Mini‑Course Sales на Kaggle и дополнениями от автора данной статьи.

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

Приятного прочтения.

погрузись в пучину алгоритмических мыслей
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 0

Аннотирование args и kwargs в Python

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 6.1K

Когда я пытаюсь обойтись без *args и **kwargs в сигнатурах функций, это не всегда можно сделать, не вредя удобству использования API. Особенно — когда надо писать функции, которые обращаются к вспомогательным функциям с одинаковыми сигнатурами.

Типизация *args и **kwargs всегда меня расстраивала, так как их нельзя было заблаговременно снабдить точными аннотациями. Например, если и позиционные, и именованные аргументы функции могут содержать лишь значения одинаковых типов, можно было поступить так:

def foo(*args: int, **kwargs: bool) -> None:
    ...

Применение такой конструкции указывает на то, что args — это кортеж, все элементы которого являются целыми числами, а kwargs — это словарь, ключи которого являются строками, а значения имеют логический тип.

Но нельзя было адекватно аннотировать *args и **kwargs в ситуации, когда значения, которые можно передавать в качестве позиционных и именованных аргументов, могут, в разных обстоятельствах, относиться к различным типам. В таких случаях приходилось прибегать к Any, что противоречило цели типизации аргументов функции.

Читать далее
Всего голосов 20: ↑19 и ↓1 +18
Комментарии 2

Обнаружение движущихся объектов с помощью OpenCV с использованием обнаружения контуров и вычитания фона

Время на прочтение 12 мин
Количество просмотров 7.6K

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

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 8

Вклад авторов

Работа

Python разработчик
112 вакансий
Data Scientist
77 вакансий