Обновить
792.78

Python *

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

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

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

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

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

Используя GIL (Global Interpreter Lock — Глобальная блокировка интерпретатора) и особенности реализации Threading.Lock.release можно создать более быстрый вариант.

Давайте попробуем разобраться

Учимся делать игры без pygame: Введение в графический интерфейс на Python

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

Привет, Хабр! Сегодня мы научимся делать графический интерфейс на python, используя Tkinter. Эта статья очень короткая, так как мы только начинаем.

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

Читать далее

Давайте-ка наваяем PumpKeen Game. Как Commander Keen, только про Pumpkin (тыкву). Хэллоуин же

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

Лучший способ отпугнуть монстров на Хэллоуин — это не только свечку в тыкве зажечь, но и страшную игру написать.

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

– Python

– Модуль p5py (p5.js, но только для Пайтона)

Online-IDE в браузере

Читать далее

Зачем нужны эмбеддинги?

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

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

Читать далее

Файловая система без фокусов: как hard links и XOR сэкономят ваши гигабайты

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

Для начала нужно понять главное - файлов не существует.
А потом на примере простых манипуляций разобрать что такое hard links, чем может быть полезен непонятный XOR и как это всё уживается в системах копирования и снимков

Читать далее

Краткий свод концепций Tensor Flow

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

TensorFlow — один из самых мощных и популярных фреймворков для машинного обучения, разработанный компанией Google Brain в 2015 году. 

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

Поэтому мы подготовили гайд с основными концептами этого незаменимого для ML-инженера фреймворка.

Читать далее

Необычные вкусы покупателей: что такое товарные пары и как их исследовать

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

Привет, Хабр! На связи команда продуктовой аналитики.

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

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

Читать далее

Как работать с Amazon SP-API: инструкция для начинающих

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

Этот текст я написал для людей, которые как и я, ещё 3 месяца назад про Python только слышали. Для тех, кто неплохо знает английский, но иногда хочет простого русского «ща сделаем». Для тех, кто решил написать свой первый запрос для API Amazon и не понимает, почему ничего не работает.

Писать скрипт для Amazon SP‑API — это как пытаться собрать мебель из IKEA без инструкции: сначала ты рад, что купил новинку, а потом мучаешься, пытаясь понять, как это вообще работает. Вернее, в данном случае инструкции есть, но по словам самой же поддержки Amazon она «не полностью отражает возможности сервиса».

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

Небольшое отступление. Возможно, название некоторых переменных, функций или чего бы то ни было ещё, покажутся вам странными. Прошу отнестись с пониманием — я умею писать на C#, но опыта с Python у меня мало и он на уровне «посмотрел два четырехчасовых ролика на Youtube». Я уверен, что можно что‑то оптимизировать, использовать библиотеки и так далее. Но мы рассматриваем первые шаги, которые лично мне было крайне сложно сделать, потому что желание помогать у поддержки Amazon отсутствует, как и внятная инструкция на русском языке (а часто и на английском тоже). Все обсуждают отдельные ошибки, а не работу скриптов в целом.

Читать далее

ИИ в логистике: отслеживаем транспортные средства на производственной территории с помощью нейросети

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

Весной на Хабре я рассказывал о том, как для дипломного проекта создавал приложение для отслеживания объектов спортивного мероприятия. Из моего пет-проекта вырос полноценный реальный проект. Знания и навыки в области нейронных сетей, трекинговых библиотек и компьютерного зрения, которые я приобрел, были использованы для разработки системы отслеживания транспортных средств на производственных территориях. Эта система основана на применении сверточной нейронной сети — технологии, позволяющей компьютерам «видеть» и интерпретировать визуальную информацию.

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

Читать далее

Python в ispmanager: добавляем сайты с фреймворком Django, работаем с API и утилитами прямо в панели

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

Ispmanager поддерживает Python — так удобнее управлять сайтами, веб-серверами и средой прямо в панели. Расскажем, как без проблем добавить в панель сайт на Python — c Django или без него, настроить работу по API или работать через утилиту mgrctl.

Читать далее

Уделите внимание токенизаторам — и вот почему

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

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

В большинстве современных приложений с ИИ в той или иной форме внедрена технология RAG (генерация с дополненной выборкой). Сейчас она у всех на слуху — о ней даже написали страницу в Википедии! Не знаю, ведёт ли кто-нибудь статистику, как быстро термин обычно дозревает до собственной статьи в Википедии, но термин RAG определённо должен быть где-то в топе этого рейтинга.

Меня довольно заинтриговало, что большинство успешных ИИ-приложений – это, в сущности, инструменты для умного семантического поиска. Поиск Google (в своём роде) раскрепостился, и это наталкивает меня на мысли, вдруг они только сейчас дали волю своим мощностям LLM, которые уже давно стояли за поисковым движком. Но я отвлёкся.

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

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

Читать далее

Распознавание ж/д пикетных столбиков по фотографиям с беспилотника на основе PyTorch и YOLOv5

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

Тенденция применения беспилотных летательных аппаратов (БПЛА) продолжает развиваться и процветать. Оснащение беспилотников камерами и навигационным оборудованием геодезического класса точности позволяет получать ортофотопланы с сантиметровой точностью. Расширить возможности БПЛА можно применив нейронные сети, способные распознавать объекты на фотографиях. В статье рассмотрен процесс подготовки фотографий с БПЛА, разметки объектов для обучения нейронной сети, ее обучения и получения результата в виде выявления объекта на новом фото на реальном участке железнодорожного перегона, определяемые объекты — пикетные столбики. Исходный код обработки данных и обучения модели выгружен на GitHub.

Читать далее

Погружение в мир Python: Решение проблем с библиотекой ConfigParser

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

Здравствуйте! В этой статье я хочу поделиться своим опытом работы с библиотекой ConfigParser в Python, особенно в контексте устаревших операционных систем, таких как Windows XP и Windows 7. Несмотря на то что я не являюсь профессиональным программистом, моё хобби и стремление разобраться в нюансах программирования привели меня к интересным выводам.

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

Читать далее

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

Как сократить время ответа в 2 раза, добавив одну строку кода

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

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

В этой статье мы поделимся:

1. Описанием, как мы использовали инструменты Jaeger и Grafana для выявления узких мест в производительности, что привело к выявлению критических проблем со сборщиком мусора;

2. Анализом влияния различных настроек сборщика мусора на время ответа, что позволило сократить его вдвое для 99% запросов;

3. Когда и почему стоит рассматривать изменение стандартных настроек сборщика мусора (на примере нашего случая).

Читать далее

Приложение на Go шаг за шагом. Часть первая: скелет, НТТР-сервер и конфигурация

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

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

Привет! Я Владислав Попов, автор курса «Go-разработчик с нуля» в Яндекс Практикуме. В серии статей я хочу помочь начинающим разработчикам упорядочить знания и написать приложение на Go с нуля: мы вместе пройдём каждый шаг и создадим API для получения информации о книгах и управления ими. 

Читать далее

Хотите, покажу вам магию живого кода на p5py?

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

Хотите, покажу вам магию живого кода на p5py?

Вдохновившись статьёй, посвящённой написанию клеточного автомата на Godot и экспорту проекта в HTML, хочу показать вам, как использовать для этих целей модерновый онлайн-движок p5py. Код живой не только потому, что мы про игру «Жизнь», но и благодаря способу его разработки и запуска. Всё очень живо!

Чёрный плащ

TL;DR: финальный проект вот здесь. Только кликните, и он появится.

Читать далее

FlexiPrompt: Удобное создание динамических промптов в Python

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

Эта статья будет полезна Python-разработчикам, работающим с языковыми моделями (LLM).

Недавно у меня возникла потребность в формировании промптов внутри python кода. Не хотелось брать тяжеловесные решения. Результатом работы стала небольшая библиотека.

Читать далее

ParallelBeautifulSoup (BS4-hack)

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

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

Документацию доделаю потом. Внизу есть пример скрипта.

Читать далее

Игра 2048 в вашем Telegram-боте: как создать MiniApp с помощью FastAPI и Aiogram за несколько шагов

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

Превращаем известную игру 2048 в увлекательный Telegram-бот! Расскажу, как за несколько шагов создать MiniApp с помощью FastAPI и Aiogram, интегрировать API и настроить базы данных. Пошаговое руководство для тех, кто хочет освоить разработку на новом уровне.

Читать далее

Как научить голосовой помощник Алиса рассказывать отзывы выпускников Яндекс Практикума

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

Меня зовут Екатерина Александрова, я интернет‑маркетолог, выпускница курса «Интернет‑маркетолог» и «SMM‑продвижение в Телеграмм», и Станислав Козырев — ведущий инженер‑программист, дата‑аналитик и саентист ЦУНБ им. Некрасова, выпускник курса «Специалист по Data Science».

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

Читать далее