Все потоки
Поиск
Написать публикацию
Обновить
419.92

Python *

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

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

NoDPI4Android. Решаем проблему «деградации» YouTube теперь и на Android

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

Салют, Хабр! На связи снова я, Aragorn, со своим проектом по терроризированию Роскомпозора. В прошлый раз я рассказывал о NoDPI - утилите для "раздеградирования" YouTube и установил личный рекорд - 400 звезд на GitHub и блокировка статьи РКН через три дня после публикации.

Многие мои знакомые и люди в комментариях просили сделать версию под Android и Android TV. Я не очень дружу с Джавой и с Джавой под андроид в особенности, и поэтому такая перспектива меня не очень прельщала, но у меня был опыт написания android-приложений на python и kivy, который я и решил применить. После нескольких дней (и ночей) напряженного труда и танцев с бубном, мне наконец удалось создать NoDPI for Android, который практически не имеет аналогов. Именно о нем я и хочу сегодня рассказать. Надеюсь, статья будет вам полезна и интересна. Поехали!

Читать далее

Как я проектирую и разрабатываю реальные расширения для Python на Rust

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

Вы, вероятно, уже видели немало статей с заголовками вроде «Python, Rust — производительность, бла-бла-бла…». Печально, но почти все эти статьи демонстрируют лишь самые простые примеры уровня «hello world». В отличие от них, в этой статье я хочу поделиться тем, как я проектирую крупные расширения для реальных проектов и почему принимаю при этом те или иные решения.
Читать дальше →

Как в Django реализовать заполнение профиля пользователя через Google

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

Эта статья продолжает пост, в котором был рассмотрен один из алгоритмов аутентификации пользователя через платформу Google. Сейчас мы дополним ее механизмом заполнения профиля пользователя данными из Google-аккаунта. Хотелось бы подчеркнуть, что в обеих статьях рассматривается только один из алгоритмов. Он, на мой взгляд, наиболее понятен для начинающих разработчиков, хотя существуют и другие способы. О них можно узнать из документации Django.

Проведя аутентификацию через Google, мы получили только стандартные данные - идентификатор и имя пользователя. Но можно получить и другие, в частности, email, возраст, информацию о себе и т.д.

Реализуем в проекте собственный сервис (pipeline) и добавим в пакет приложения authapp соответствующий модуль (pipeline.py):

Читать далее

Электронный курвиметр

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

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

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

Читать далее

weakref.finalize: «почти IDisposable» для Python-объектов

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

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

Я не знаю, как у вас, а у меня перед глазами все еще маячат толстенные исходники WinForms-эра на C#, где любой порядочный объект, умеющий держать ручку к файлу или сокету, строго реализует IDisposable. Закрыл — молодец, забыл — получи warning от IDE и пару нехороших утечек в production.

В Python, увы-ях, аналогичный контракт традиционно строили на del и контекст-менеджерах. Первый: если объект в циклическом мусоре, финализатор может не вызваться вообще; к тому же при выключении интерпретатора порядок разрушения объектов хаотичен. Второй (with ... as) шикарен, но требует явного вызова, а значит — дисциплины.

С выходом PEP 442 и появлением weakref.finalize мы получили «почти IDisposable» — финализатор, которому не страшны циклы, и который честно отработает даже на shutdown, если правильно обращаться.

Читать далее

Python asyncio, блокировка цикла событий

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

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

Читать далее

Jaeger v2

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

Появилась у меня задача по мониторингу и оценке производительности проекта на микросервисной архитектуре. Для решения был выбран Jaeger. Он давно на рынке, активно развивается (не так давно вышла версия 2, в которой упростилось развертывание и появилась интеграция OpenTelemetry). На мой взгляд, Jaeger – отличное решение для трейсинга, но документация ощущается как не до конца собранный пазл: важные вещи разбросаны, а для понимания приходится обращаться к исходному коду или искать примеры в GitHub-репозиториях.

Цель данной статьи показать на практике, как внедрить Jaeger в продукт на микросервисах.

Ссылку на код всего, о чем пойдет речь дальше, можно найти в конце статьи.

Читать далее

SOAP, WSDL и немножко Python создаём веб-сервис шаг за шагом

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

Практика — лучший способ глубокого понимания теории. Рассмотрим на примере, как работают веб-сервисы с протоколом SOAP, для чего нужен WSDL и как он связан с XML-документом в теле POST-запроса.

Читать далее

Structured Output как полноценная замена Function Calling

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

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

Читать далее

Небольшая библиотека утилит на Rust для Python (FastPy-RS, Alpha)

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

Всем привет! Я пришёл из экосистемы Rust и недавно начал работать в Python. Я люблю Rust за безопасность и скорость, но влюбился в Python за простоту и быструю разработку. Это вдохновило меня создать что-то полезное для сообщества Python: FastPy-RS — библиотеку часто используемых функций, которую можно вызывать из Python, а реализация внутри написана на Rust. Цель — обеспечить высокую производительность и надёжность. Хотя многие Python-библиотеки используют C для ускорения, такой подход может нести риски безопасности.

Читать далее

Часть 2: Vision Transformer (ViT) — Когда трансформеры научились видеть

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

Представьте, что лингвист внезапно стал экспертом по живописи. Именно это произошло в 2020 году, когда архитектура для обработки текста — трансформеры — научилась "видеть" изображения. Vision Transformer (ViT) доказал: для понимания картинок не обязательны свёртки! Разберем "на пальцах" как она устроена и как изображения превращаются в предсказания.

Читать далее

Собственный контент-фильтр на базе LLM: от эксперимента до стабильной системы

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

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

Читать далее

Портирование фреймворка ROOT на архитектуру e2k

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

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

Собственная архитектура e2k с очень длинной машинной командой VLIW не позволяет отечественным процессорам Эльбрус без портирования нативно запускать программное обеспечение, в том числе и ROOT.

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

О портировании и тестах ROOT читайте далее

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

Что делает enumerate() и почему это лучше, чем range(len(...))

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

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

Сегодня коротко, но по существу разберёмся, зачем вообще нужен enumerate() в Python и почему он почти всегда лучше, чем старый добрый range(len(...)).

Читать далее

Как ChatGPT удалил в нашем чате 555 спам-сообщений с точностью 98,38%

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

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

Сначала я написала простого бота на aiogram, который фильтровал сообщения по ключевым словам. Но этого оказалось недостаточно...

Код на Python, скрины и цифры

AutoCraft Bot — Telegram-автоматизация Windows без монитора, глазами незрячего разработчика

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

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

Меня зовут Андрей. Я техник и системный админ. И хоть я незрячий, продолжаю разрабатывать инструменты для автоматизации, системного мониторинга и просто удобной жизни за компьютером. Этот пост — о моём первом публичном проекте, который я решил выложить на GitHub и рассказать о нём на Хабре.

Проект называется AutoCraft Bot. Это гибрид: Telegram-бот и десктопное приложение на Python. Он управляет компьютером, запускает плагины, делает скриншоты, работает с голосом, поддерживает REPL и Telegram API — и всё это в виде одного .exe

Читать далее

Как не-программист спас дедлайн и защитил тайны компании: История Веры и GPT для проверки договоров

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

Привет, Хабр! Меня зовут Александр, я лидер команды DevSup (это как DevOps, только с функцией поддержки больших клиентов которым Saas не подходит) в IT-компании ПравоТех.
 Мы создаем решения (например, case.one для ведения дел и doc.one для документооборота), чтобы юристы, менеджеры и все кто рядом с юриспруденцией могли работать быстрее, умнее и спокойнее. Наша миссия – «Помогаем людям получать удовольствие от работы».
Сейчас у нас активно внедряются ИИ-инструменты. Создаются боты для консультаций и опросов, часто обращаемся к большим моделям чтобы «обстучать» какую-то идею.
В этой статье поделюсь историей о том, как эффективно и безопасно использовать ИИ, превратив рутину в решенную задачу. 
 
Итак, представьте: вам в руки попадает договор поставки ПО. Не просто договор, а целая книжечка на 50-70 страниц А4. Нужно срочно – за 2-3 дня! – проанализировать его вдоль и поперек: проверить сроки, штрафы, бонусы, риски для вашей компании. Знакомая ситуация для менеджеров, юристов, закупщиков?

Дилемма: Выкроить время и вычитать всё дотошно, рискуя не успеть? Или пробежаться по диагонали, надеясь, что глаз «зацепит» опасную формулировку? Соблазн велик: закинуть текст в публичный ИИ-чат (типа ChatGPT или DeepSeek) и спросить: «Эй, ИИ, моя компания ООО «Рога и копыта» – найди всё, что нам невыгодно!»

Цена такого «упрощения» может быть огромной. Давайте разберемся, почему это крайне опасно:

1.  Конфиденциальность — прощай! Условия договора (а они почти всегда секретны!) отправляются владельцу ИИ-сервиса. Нарушение пункта о неразглашении – гарантировано.

Читать далее

Что такое NER, зачем он нужен и когда не поможет

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

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

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

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

Читать далее

«Скайнет» наоборот: как вырастить и обучить ИИ с помощью Дарвин-Гёдель машины для улучшения человеческой демографии

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

Разрабатываем и растим «цифрового губера» - консультанта по вопросам государственного политического управления, демографии и миграции. Решаем задачу оптимизации экономики и миграционной политики для устойчивого демографического роста в 89 регионах с помощью   взаимодействующих друг с другом и обменивающихся опытом ИИ-агентов, на основе мутаций, скрещивания и эволюции.   Мультиагентное обучение,  Multi-Agent Deep Deterministic Policy Gradient и Darwin Gödel Machine.

Читать далее

Компьютерное зрение для начинающих

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

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

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

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

Читать далее

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