Обновить
512K+

Python *

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

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

Делаем addon для Blender

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Узнать больше

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

погрузись в пучину алгоритмических мыслей

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

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

Делаем PageObject правильно. Удешевляем тестирование и снижаем порог вхождения

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели23K

Привет, меня зовут Коля, занимаюсь тестированием 7 лет, автоматизацией — 6 лет. Так уж сложилось, что не особо люблю WebUI-тесты, но почему-то именно они у меня получаются лучше всего.

В один день мне позвонил мой друг Рома и сказал: «Коля, помнишь ты у нас автотесты делал с селениумом? Помоги мне сделать так же красиво».

Отправив Роме ссылку на свой гитхаб и устроив пару созвонов с объяснениями, что и как работает, я добился от него заветного «Я понял». 

Спустя два дня Рома позвонил снова: «Коля, я всё понял, а вот ребята в моей команде — нет. Помоги мне объяснить им».

Внутри я расскажу от том, как:

• ускорить написание тестов;

• снизить затраты на их поддержку;

• прокачаться в написании фреймворков;

• сэкономить деньги компании;

• сохранить нервы сотрудников.

Читать далее

Авторизация в CLI приложении с помощью OAuth

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

Как выглядит процесс авторизации через OAuth в Command-line interface приложении? В стандартном сценарии провайдер перенаправляет обратно на сайт или в мобильное приложение (в случае с OAuth 2), а как перенаправлять в программу в терминале?

В статье будет рассмотрен процесс OAuth авторизации в CLI приложении на примере HeadHunter.

Читать далее

Компилятор за выходные: синтаксические деревья

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

Вам когда-нибудь приходилось задаваться вопросом, как работает компилятор, но так руки и не дошли разобраться? Тогда этот текст для вас. Мне тоже не доводилось заглядывать под капот, но тут так случилось, что мне нужно прочитать курс лекций о компиляторах местным третьекурсникам. Кто встречался с некомпетентными преподавателями? Здравствуйте, это я :)

Итак, чтобы самому разобраться в теме, я собираюсь написать транслятор с эзотерического языка программирования wend (сокращение от week-end), который я только что сам придумал, в обычный ассемблер. Задача уложиться в несколько сотен строк питоновского кода. Основной репозиторий живёт на гитхабе (не забудьте заглянуть в мой профиль и посмотреть другие tiny* репозитории).

Читать далее

Undocumented endpoint или попытки борьбы с имитацией активности «пользователя»?

Уровень сложностиСредний
Время на прочтение1 мин
Охват и читатели4K

По заявлению ВКонтакте, у метода wall.repost нет возможности отложить репост и появление данной функции в будущем не планируется. Но этот функционал реализован при использовании социальной сети непосредственно оператором.

Несправедливо!

keep digging

Как мы решали вопрос многоязычности в боте

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели10K

Русский или English? Что для бота хорошо, то разработчику работа :)

Введение

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

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

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

Читать далее