Обновить
547.05

Python *

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

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

Прости нас, Джон Коннор, или Как мы научили нейросеть точечно распознавать звуки выстрелов

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

Привет, Хабр! Меня зовут Антон Рябых, работаю в Doubletapp и в этой статье расскажу про технические детали применения машинного обучения в проекте HitFactor. 

Что такое hit factor? На соревнованиях по практической стрельбе спортсмены быстро перемещаются, меняют магазин и стреляют по разным, в том числе и подвижным мишеням. Hit factor — это результат соревнования, то есть количество набранных очков, деленное на время прохождения. 

Нам рассказали об этом чемпионы мира по практической стрельбе Алена Карелина и Роман Халитов, которым нужно было мобильное приложение для помощи в тренировках. Двигаться экономнее, стрелять быстрее — анализ записи тренировки поможет понять, как сократить время на прохождение упражнения и повысить эффективность.

В проекте требовалось очень точно определять время начала выстрела и время стартового сигнала. Каких-то готовых решений на момент разработки продукта (2019 год) не было. В статье расскажу:

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

Читать далее

Как избежать проблем при запуске MVP

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

Всем привет! Меня зовут Алексей Половинкин, и я отвечаю за Python в AGIMA. За последние 2 года мне повезло запускать сразу 2 крупных MVP‑проекта: классифайд автомобилей для Казахстана и проект в сфере телемедицины. За это время у меня и моей команды накопилось много опыта по запуску подобных проектов, и им хотелось бы поделиться. В этой статье рассказываю, как не допускать ошибок на этапе MVP и какие практики полезно внедрять сразу.

Читать далее

Парсинг данных через api vk и google sheets api на python

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

Появилась потребность собирать статистику постов из группы в контакте и затем проанализировать реакции подписчиков на конкретные посты. Если переформулировать на выходе стоит задача с заданной периодичностью снимать показания статистики постов в вк и сохранять их.

Я не профессиональный программист и не претендую, поэтому решил сделать все довольно просто.

Читать далее

Тайны мозга. Анализируем данные MRI с помощью FreeSurfer и Python

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

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

Читать далее

Книга «Внутри CPYTHON: гид по интерпретатору Python»

Время на прочтение12 мин
Охват и читатели21K
image Привет, Хаброжители!

CPython, самая популярная реализация Python, абстрагируется от сложностей ОС и предоставляет платформу для создания масштабируемых и высокопроизводительных приложений. Каждому python-разработчику на какой-то стадии необходимо будет узнать, как работает CPython. Это позволит в полной мере использовать его мощь и оптимизировать приложения. Вы разберетесь с основными концепциями внутреннего устройства CPython и научитесь: читать исходный код интерпретатора CPython и свободно ориентироваться в нем; вносить изменения в синтаксис Python и компилировать их в вашу собственную версию CPython; понимать внутреннюю реализацию таких структур, как списки, словари и генераторы; управлять памятью CPython; масштабировать код Python за счет параллелизма и конкурентного выполнения; дополнять базовые типы новой функциональностью; выполнять наборы тестов; профилировать и проводить бенчмарк Python-кода и исполнительной среды; отлаживать код C и Python на профессиональном уровне; изменять или обновлять компоненты библиотеки CPython, чтобы они могли использоваться в будущих версиях.
Читать дальше →

Эргономичный мониторинг на практике

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

Всем привет! Меня зовут Алексей Леонтьев, я старший разработчик и системный архитектор в компании KTS.

Мониторинг проекта — это комплексная задача. В неё входит не только передача метрик, но и сбор логов, трейсов, health-чеки, правила для алертов и система их доставки до ответственных разработчиков.

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

Читать далее

Особенности автоматического дифференцирования в PyTorch. Часть 2

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

Привет! На связи команда «БАРС Груп», и мы продолжаем разговор о фреймворке PyTorch. Это фреймворк ML для Python с открытым исходным кодом, широко применяемый для решения прикладных задач, связанных с нейросетями. Как правило, фреймворки машинного обучения часто заточены либо на удобство использования, либо на скорость. PyTorch же отличается тем, что сочетает в себе оба преимущества. Он поддерживает код как модель, упрощает отладку и согласуется с другими популярными библиотеками научных вычислений, оставаясь при этом эффективным и поддерживая аппаратные ускорители, такие как графические процессоры. При этом каждый аспект PyTorch — это обычная программа Python, находящаяся под полным контролем пользователя.

Это вторая часть статьи‑перевода от команды разработчиков PyTorch (Адама Пашке, Сэма Гросса и их единомышленников).

Читать далее, узнать более

SimpleUI — фреймворк для быстрого создания бизнес приложений на Android

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

Добрый день! Меня зовут Дмитрий Воронцов. Несколько лет назад, я сделал небольшую локальную разработку под нужды своих 1С проектов (ERP, MES, WMS) — андроид клиент для ТСД и планшетов, который по сути являлся тонким клиентом для 1С и работал через HTTP сервис. Он был написан на Java и Android SDK и причина его создания была такая — нужен был легковесный и высокроизводительный клиент для работы с оборудованием и с возможностью быстрой разработки бизнес логики. Довольно простой бизнес‑логики, укладывающейся в рамки того, что обычно делается на ТСД. Он был достаточно примитивен и умел отрисовывать экраны на мобильном устройстве, а логика выполнялась на стороне 1С в рамках HTTP‑запроса. Постепенно он обрастал функционалом, добавились возможности для offline работы, добавился Python, CV‑функционал и многое другое. Им стали пользоваться кроме меня и моих коллег другие комманды разработчиков. И вот сегодня, в феврале 2023 я хочу подвести определенные и рассказать о том, во что превратился этот проект сейчас и что из себя представляет фреймфорк на текущий момент.

Сейчас SimpleUI для Android — это бесплатный full‑app фреймворк для упрощенного создания широкого спектра бизнес‑приложений (клиентских приложений для ERP,WMS и других корпоративных систем, а также самостоятельных приложений). За счет особой архитектуры и принципов проектирования значительно сокращается время разработки, распространение и администрирование, поддержка.

Читать далее

Градиентный спуск, который мы заслужили

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

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

Разве такое возможно?

Не пытайтесь измерить использование памяти в Pandas

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

Представьте: у вас есть файл с данными, которые вы хотите обработать в Pandas. Хочется быть уверенным, что память не закончится. Как оценить использование памяти с учетом размера файла?


Все эти оценки могут как занижать, так и завышать использование памяти. На самом деле оценивать использование памяти просто не стоит. А если конкретнее, в этой статье я:


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

Перевод предобученной модели Keras на матричные вычисления

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

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

Эта статья о том, как я переписал обученную в Keras сеть на работу с матричными операциями в Numpy. Заодно это помогло мне "заглянуть под капот" нейронной сети.

Читать далее

Основы PyCharm

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

Сегодня я расскажу новичкам про полезные и удобные функции PyCharm. Эта статья предназначена для тех, кто только знакомится с PyCharm и написал свои первые программы. Затронем основной функционал пайчарма, который поможет упростить и ускорить вашу работу и узнаем, как запускать сервер и тесты Django в один клик. А ещё, я поделюсь подборкой полезных плагинов и горячих клавиш.

Читать далее

Chaos Engineering, применение на практике

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

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

Читать далее

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

C/C++ из Python (Kivy, ctypes) на iOS

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

Ранее я писал статьи C/C++ из Python (ctypes), C/C++ из Python (Kivy, ctypes) на Android. В них описывается процесс запуска на Linux и Android. Теперь поговорим как тоже самое сделать на iOS. В этой статье речь пойдет о сборке, необходимых инструментах, механизмах отладки и установки.

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

Диалог между JS и Python если бы они были людьми

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

Не так давно мне в голову пришла идея воспользоваться моделью text-davinci-003 от OpenAI чтобы сгенерировать диалог между двумя языками программирования так, если бы они были реальными людьми. Я выбрал Javascript и Python.

Для этого я подготовил следующую инструкцию...

Читать далее

Справится ли ChatGPT с внесением изменения в код?

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

В предыдущей статье я рассказывал как провести рефакторинг кода GildedRose с целью снижения Time2Market.

В результате из кода с цикломатической сложностью 19 получился код с цикломатической сложностью 5, при этом сам код изменился до неузнаваемости.

Мне стало любопытно сможет ли ChatGPT описать что делает этот код и реализовать в нем новое требование.

Что из этого вышло — узнайте в тексте статьи.

Покажите что получилось

Алгоритмы быстрого умножения чисел: от столбика до Шенхаге-Штрассена

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

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

И уж конечно, никогда при написании a * b мы не задумываемся о том, как реализовано умножение чисел a и b в нашем языке. Какие вообще есть алгоритмы умножения? Это какая-то нетривиальная задача?

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

Скорее к формулам!

Как без денег и знаний в AI повторил Copilot'а

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

Создаём своего Copilot'а без знаний в AI и денег.

Читать далее

Про микросервисы на примерах

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

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

И так, эта статья не для разработчиков и опытных архитекторов, а для аналитиков, которые хотят понять, а что же такое микросервисы на самом деле. Пример здесь максимально простой и не претендует на хороший стиль написания кода, чтобы его запустить не нужно обладать вообще никаким ИТ‑бэкграундом и не нужно настраивать никакие IDE.

Приступим?

Бот для телеграмма, использующий Яндекс.Диск (Python)

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

Всем привет!

О том как я делал бота, который файлы с Яндекс.Диска показывает, для лично-производственных целей.

Читать далее

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