Обновить
566.36

Python *

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

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

Как студенты СПО роботов на ROS пилили

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

Привет, Хабр! Меня зовут Алексей и этой зимой на меня напало желание наконец написать статью о том, как я и моя команда СПОшников участвовали в Eurobot Open 2022 и 2023.

Это моя первая статья здесь.

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

Костяк команды состоял из 5 человек: Я (программист), Дима (главный механик), Павел (электрика), Александр (механик), Михаба (человек на все руки).

Статья от нашего механика Димы

Eurobot это некогда международное соревнование по робототехнике, которое имеет две категории: Junior и Open. В обеих категориях основные правила схожи: 1-2 робота от команды выполняют различные игровые задания, вытаясь набрать как можно больше очков за 100 секунд. Делают это они вместе с роботами команды соперников, при этом активно мешать другой команде можно, но столкновения и откровенная агрессия запрещена. Этот формат, как и размер поля слабо менялись из года в год, начиная аж 1998 года, когда проходил первый Eurobot еще только во Франции.

Некогда международное - потому что начиная с 2020/21 года принимать участников-призеров с всероссийского этапа на международный организаторы отказались. Но это не остановило русскую сторону организаторов от проведения региональных и всероссийского этапов (что они все еще успешно делают https://vk.com/eurobotrussia). Не такой уж и Open.

Читать далее

Поднимаем потоковый сервис Kafka на Python

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

Всем привет, меня зовут Евгений Мунин. Я Senior ML Engineer в Ad Tech в платформе ставок для рекламы. В этой статье мы познакомимся с Apache Kafka. Мы напишем демо пример Kafka Consumer'а на Python и запустим его в облачном сервисе Confluent Cloud.

Читать далее

Пишем бота «второго мнения» от нейросетей GPT 4o, Gemini 1,5 flash и Claude 3.5 Sonnet

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

Иногда возникают вопросы, в которых нейросети помогают подумать в правильном направлении, или дают «инсайты». Но спрашивать у каждой сетки одно и то же отдельно может быть долго и неудобно. Сегодня мы напишем бота, который умеет работать сразу с несколькими нейросетями (в дальнейшем вы можете добавить больше моделей, чем будет предоставлено в статье) и получать от них ответы в едином интерфейсе.

Читать далее

Немножко о реализации set в Python

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

Хотя, казалось бы, сет должен печатать каждый раз вразнобой, ибо является неупорядоченной коллекцией. Но, на самом деле, set никому ничего не должен :-) Я порылась в нескольких статьях и документации и на своем уровне (червяка) вот что поняла.

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

Хэш-таблица представляет собой два столбца из не менее 8 строк:

Читать далее

Начальная анимация

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

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

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

Хочу продемонстрировать простенький подход минимального болванчика.

Читать далее

Boxplot, он же ящик с усами

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

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

В этой статье мы подробно разберем, что такое boxplot и почему его называют “ящиком с усами”.

Читать далее

Алгоритмы из теории графов: решаем сложную задачу из курса Яндекс Практикума

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

Привет! Меня зовут Евгений, и сегодня я представляю курс «Алгоритмы и структуры данных» Яндекс Практикума. В этой статье хочу вам рассказать про задачу, которая долгое время была проблемой для многих наших студентов. В том числе расскажу про несколько вариантов решения и о том, как их можно доработать.

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

Читать далее

Телеграм-бот с подключением к базе данных MS SQL в контейнере docker

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

Предназначено для тех, кто задумывается о цифровизации предприятий. Телеграм-бот - это отличный способ сделать интерфейс между базой данных и сотрудником, у которого нет в данный момент доступа в корпоративную сеть (к своему компьютеру). Безусловно, мобильное приложение решает этот вопрос лучше, но затраты на создание/поддержание мобильного приложения несопоставимы с затратами на простого ТГ-бота (или даже средней сложности), то же относится и ко времени разработки/внедрения. Надеюсь, данная статья будет полезной для энтузиастов широкого внедрения ТГ-ботов как технологии цифровизации промышленных (и не только) предприятий.

Читать далее

Использование PyGame для визуализации сигналов звукового диапазона с частотой дискретизации 44100 Гц в реальном времени

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

PyGame — это популярная библиотека для разработки 2D игр на Python. В данной статье рассмотрено необычное применение PyGame – это быстрый вывод графиков, например, потоков данных с частотой дискретизации 44100 Гц со звуковой карты, что может быть применимо для визуализации звуковых сигналов.

Читать далее

Python как дзен: Пелевин и разработка

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

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

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

Читать далее

Как оптимизировать производительность API при высокой нагрузке

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

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

Читать далее

Мне 34, я был в 67 странах, и у меня есть для вас лайфхак (часть 2)

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

Два месяца назад я написал Телеграм-бот, который помогает мне выхватывать дешёвые авиабилеты (и нет, это не рекламная интеграция). Я прикрутил Python-интеграцию к Telegram по протоколу для клиентов, чтобы читать сообщения из любых публичных групп, к backend-части на Spring — она позволяет через бота подписываться на эти группы и настраивать, какие сообщения выхватывать для вас.

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

Я реанимировал бот, добавил несколько киллер-фичей и готов поделиться с вами всеми наработками. В статье найдёте код, ссылки на бот и примеры, как другие пользователи ищут через бот скидки на айфоны и много чего ещё.

Читать далее

Как увеличить скорость python-скриптов: C-расширения и Python/C API

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

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

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

В этой статье я хочу рассказать о том, как интегрировать C-расширения с использованием библиотеки Python.h. Я также расскажу как создать свою python-библиотеку с C-расширениями. Также мы исследуем, как устроен Python — например, вспомним, что все является объектами. Я буду использовать poetry как менеджер рабочего окружения.

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

Не буду тянуть, начнем!

Читать далее

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

Python 2D графика. Визуализация данных в реальном времени. Matplotlib, PyQTGraph, pyOpenGL, VisPy, Bokeh и др. FPS 200?

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

Тестирование на скорость рисования 2D графиков и измерение fps популярных графических пакетов (Mayavi 3D, PyVista, Matplotlib, PyQTGraph, Plotly, PyGame, Arcade, pyOpenGL, VisPy, Bokeh) Возможно ли на слабом железе получить FPS=50? А FPS=1000? Да, но есть нюансы: VSync=Off

Для 8 графических пакетов в статье приведены 8 максимально коротких и простых специфичных для каждого пакета кода на python, отображающий на экране с максимально возможным FPS для данного пакета график sin()+noise.

Читать далее

Пойдём в нейросети вместе со мной

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

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

Но как насчёт нейросети на jave реализованной без использования матриц? Просто нейроны. Просто связанные между собой.

И что если я скажу тебе, что скорость работы этих двух подходов примерно сравнима между собой?

Читать далее

Пишем симуляцию по мотивам игры Life

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

В этой статье я расскажу о процессе создания симуляции экосистемы под названием «NewLife», которая моделирует взаимодействие между травой, мирными клетками и хищниками. Мы разберем, как был написан код, какие проблемы возникали в процессе разработки и как они были решены.

Читать далее

Стохастическая волатильность: как её моделируют? На примере опционов на эфир

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

Волатильность является одним из важнейших параметров в оценке опционов, управлении рисками и построении торговых стратегий. Классическая модель Блэка-Шоулза-Мертона, предполагающая постоянную волатильность, не способна отразить динамику рынка, где наблюдаются эффекты «улыбки волатильности» и кластеризации. Для более точного описания рыночных процессов разработаны модели стохастической волатильности, среди которых наиболее известными являются модель Хестона и модель SABR. Эти подходы учитывают случайный характер изменений волатильности и позволяют более адекватно оценивать деривативы.

Читать далее

Подключить педали экспрессии к компьютеру за полчаса

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

Эта статья — сжатый туториал на тему подключения педалей экспрессии к компьютеру. От читателя не требуется специальных навыков в области электроники, но умение паять желательно. На минималистичное повторение подключения при наличии всех узлов и материалов действительно достаточно полчаса (автор проверил с секундомером и уложился в 10 минут). С другой стороны, верхнего предела нет: потенциал по обработке сигнала с педалей (кривые, лимиты) при этом ограничивается разве что фантазией, средствами языка Python и быстродействием контроллера.

Читать далее

Многопользовательский рой агентов для Ollama

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

🐝 Многопользовательский рой агентов для Ollama

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

Читать далее

У SAMURAI есть цель — zero-shot решение задачи Visual Object Tracking(VOT)

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

Визуальный трекинг объектов без обучения – сложная задача, особенно в динамических сценах. Новый метод SAMURAI расширяет возможности SAM-2, интегрируя механизмы моделирования движения и улучшая архитектуру памяти.

SAMURAI использует фильтр Калмана для моделирования движения и стабилизации предсказаний, что позволяет значительно повысить точность трекинга в сложных условиях. Метод превосходит существующие zero-shot методы и демонстрирует конкурентоспособные результаты по сравнению с обучаемыми моделями.

Подробнее об архитектуре SAMURAI

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