Как стать автором
Поиск
Написать публикацию
Обновить
380.43

Python *

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

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

ChatGPT против моего скрипта для очистки системы: кто кого?

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

Привет, Хабр! Какое‑то время назад, в процессе изучения bash‑скриптов, старался углубляться в тему и искал себе больше практики посредством решения любых, даже мельчайших задач. Одной из таких был скрипт, удаляющий временные файлы, старые дампы, папки node_modules от давно забытых проектов. Нашёл его на днях совершенно случайно. Протестил его на виртуалке, скрипт рабочий, но ужасно костыльный и неприятный визуально.

Какая у меня появилась идея? Проверить, сможет ли ChatGPT сделать то же (и насколько качественно), что и я, но грамотнее и «элегантнее». Результат получился весьма поучительным: ИИ отлично справился с архитектурой, но очень пытался угробить систему парой строчек. Далее расскажу, как это было.

Читать далее

Новости

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

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

Попробуйте поискать в Интернете «Паттерны проектирования на Python» — и получите целую простыню туториалов, демонстрирующих, как в точности воспроизвести на Python паттерны проектирования из книги «Банды четырёх». Там же будут диаграммы классов, иерархии фабрик и столько шаблонного кода, что выхлопа хватит, чтобы отопить маленькую деревню. Так вам внушают, будто вы пишете «серьёзный» код. Умно. Профессионал ьно. Готово для корпоративного использования.

Но вот в чём проблема: большинство из этих паттернов решают проблемы, которые в Python просто отсутствуют. Паттерны разрабатывались для таких языков как Java и C++, где для выполнения самых базовых вещей требуется настоящая эквилибристика — нет ни функций первого класса, ни динамической типизации, ни модулей в качестве пространств имён. Разумеется, вам потребуется Фабрика или Синглтон, если без них в вашем языке просто не с чем работать.

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

Читать далее

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

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

Привет, хабражители и коллеги по цифровым джунглям! Сижу тут, владелец скромного, но гордого царства игрушек Akarius, попиваю вечерний чай (ну, ладно, крепкий кофе — отчеты же ждут!). Вспоминаю, как после одного особенно «мощного» прогона Хрумером, я чуть не превратился в того самого озлобленного плюшевого медведя с нашего сайта — глаза квадратные, пальцы в спазме от кликов. Знакомо? Сейчас расскажу не только о том, как автоматизация спасла мой рассудок, но и как она превратила гору цифрового мусора в… золотую жилу для будущих побед! Да‑да, даже из «плохих» отчетов можно извлечь пользу, если знать как.

Читать далее

Как работает GIL и как от него избавиться

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

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

Читать далее

Subinterpreters в Python 3.14: альтернатива multiprocessing с честным мультикором

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

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

В C/C++ давно принято встраивать Python в приложения для скриптовой логики и плагинов. Именно эта экосистема много лет давала повод развивать в CPython идею нескольких изолированных интерпретаторов в одном процессе. Долгое время это было только в C-API: создаёшь новый интерпретатор через Py_NewInterpreter, живёшь с одним общим GIL и кучей глобального состояния. В Python 3.12 появилось ключевое изменение — GIL стал на-интерпретатор (каждый subinterpreter со своим GIL), но доступ был только через C-API. В 3.14 подвезли полноценный высокоуровневый Python-API: модуль concurrent.interpreters и InterpreterPoolExecutor.

Теперь можно писать параллельный код без multiprocessing, но с изоляцией уровня «почти процесс».

Дальше разберёмся, что это такое, когда это уместно вместо multiprocessing.

Читать далее

Токены в нейросетях. Что это и откуда берётся?

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

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

В данной статье мы разберём как нейросеть видит текст, который мы ей отправили, познакомимся очень близко с термином ТОКЕНЫ, и даже сами создадим те самые токены на Python.

Узнать о ТОКЕНАХ

Часть 2: ChameleonLab — не просто утилита, а учебная лаборатория

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

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

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

А для всех, кто хочет опробовать новые функции прямо сейчас, мы собрали свежую версию. Скачать ее можно по ссылке: ChameleonLab 1.3.0.0

Читать далее

Хамелеон в цифровых джунглях: Пишем десктопное приложение для стеганографии на Python и PyQt6

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

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

Сегодня я хочу поделиться историей создания одного из моих проектов — десктопного приложения для стеганографии, которое я назвал "ChameleonLab". Это не просто очередной скрипт для LSB-метода, а полноценный инструмент с графическим интерфейсом, поддержкой разных типов файлов, шифрованием и, что самое интересное, встроенными утилитами для стегоанализа.

Идея заключалась в том, чтобы создать удобную «лабораторию», где можно не только спрятать данные, но и исследовать, насколько незаметно это получилось. Мы пройдем путь от базового алгоритма до интеграции с Matplotlib и анализа аномалий в Office-документах.

Читать далее

Легчайший бот на Python, который переводит ваш голос в текст

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

Всем привет! Недавно вдохновилась всякими ботами в тгшке и решила для будущего портфолио сделать своего первого бота + подумала, что может быть это будет полезно кому-то из вас :-)

В этой статье разберём теоретические основы (базу) для его создания и сам код с понятными комментариями к нему.

Читать далее

Astral выпустила pyx: разбираемся, какие боли он закрывает

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

Привет! На связи  Леша Жиряков, руководитель направления backend-команды витрины онлайн-кинотеатра KION. Сегодня хочу рассказать о горячем пирожке от Astral Software. Если вы следите за экосистемой Python, то наверняка знаете Astral по их хитам вроде ruff и uv. Теперь они выпустили pyx — реестр пакетов для Python, который обещает упростить жизнь разработчикам, особенно в проектах с машинным обучением и большими зависимостями. Давайте разберемся, что это за проект такой, почему стоит обратить на него внимание и как его использовать на практике.

Читать далее

Анализ лиц с домофона: как я победил несовместимости и собрал dlib+CUDA на Ubuntu — готовый скрипт

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

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

Домофонная камера всё записывает, но вручную пересматривать часы видео бессмысленно. Мне стало интересно: можно ли разово прогнать архив записей через алгоритмы компьютерного зрения и посмотреть, как быстро GPU справится с такой задачей.

Это был чисто экспериментальный проект: не «система слежки», а тест производительности и возможностей CUDA в связке с dlib и face_recognition.

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

Проект выложен на GitHub.

CUDA

Semantic Retrieval-Augmented Contrastive Learning (SRA-CL) для sequential рекомендательных систем: обзор

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

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

Меня зовут Никита Горячев, я Research Engineer в WB, последние несколько лет работаю на стыке RecSys, LLM и мультимодальных моделей. Каждый день мы обрабатываем миллиарды событий, а модели, которые мы внедряем, напрямую влияют на CTR, удержание и конверсию, принося немало дополнительной выручки.

До этого я успел поработать в AI-стартапе в Palo Alto, где занимался голосовыми агентами (ASR/TTS), и в МТС, где мы строили AI-экосистему. Ранее в Сбере я занимался созданием единого RecSys SDK для всей экосистемы (от SberMegaMarket до Okko и Zvuk), а ещё раньше — развивал персонализацию и ML в ритейле и нейротехе.

Сегодня я хотел бы поговорить о том, как большие языковые модели могут починить контрастивное обучение в рекомендательных системах. Контрастивные методы давно стали стандартом в NLP и CV, но в последовательных рекомендациях они работают далеко не идеально: данные разрежены, а аугментации часто искажают смысл вместо того, чтобы его сохранять. Авторы свежей статьи с arXiv — “Semantic Retrieval Augmented Contrastive Learning for Sequential Recommendation (SRA-CL)” — предлагают элегантное решение: использовать LLM для генерации семантически осмысленных позитивных пар. Звучит просто, но даёт заметный прирост качества — давайте разберёмся, как именно это работает.

Читать далее

Functools, Itertools, Collections и с чем это всё едят

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

В этой статье я коротко показываю, как три стандартные библиотеки Python — itertools, collections и functools — упрощают повседневные задачи.

В itertools разбираю полезные итераторы и паттерны работы с последовательностями: от count/cycle/repeat до groupby, permutations/product и zip_longest — всё с минимальными примерами.

В collections показываю готовые контейнеры для практики: Counter, deque, defaultdict, OrderedDict и namedtuple — где они уместны и чем удобнее обычных структур.

В functools делюсь инструментами “функционального” стиля и декорирования: lru_cache, cmp_to_key, total_ordering, partial, reduce, update_wrapper и wraps — зачем они нужны и как их быстро применить.

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

Читать далее

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

LLM на прокачку: практический гайд по Alignment

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

Мы в Точка Банке делаем свою LLM. Чтобы она работала хорошо, недостаточно просто обучить её на куче текстов. Для получения осмысленного и предсказуемого поведения модели, нужен Alignment — дообучение с учётом предпочтений и ограничений. В статье расскажу, какие методы применяют в современных моделях, и как мы адаптировали их под себя.

Читать далее

Эксперимент: может ли AI реально помочь с рефакторингом легаси-кода на Python

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

Показываем на практике, как с помощью ChatGPT можно за несколько минут преобразить реально существующие фрагменты легаси-кода на Python.

Читать далее

Spring Boot + Python: от эксперимента до open-source

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

Как исполнять Python внутри Spring Boot?

Я прошёл путь от сырых AOP-костылей до production-ready библиотеки с REST, gRPC и безопасным исполнением скриптов. В статье: опыт, архитектура и базовые примеры использования.

Читать далее

Как подключить проект Django к S3 от Yandex

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

Выбрал сервис Yandex Object Storage (S3) для медиа (фото) и статики. Потратил пару дней, чтобы подключить. Статью от Яндекса не нашел, использовал пару сторонних сайтов и информацию с Chat GPT. И вот решил написать свою статью.

Начнем с Django. По идее в settings.py у вас так...

Читать далее

Ищем порт на коммутаторах D-Link

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

Предисловие.

Есть у нас сеть. Не вдаваясь в подробности, состоит она из нескольких десятков коммутаторов D-Link и Cisco. Последние выполняют роль агрегаторов трафика, а D-Link занимаются доступом. Соответственно много VLAN, много устройств. И очень часто, пользователи меняют свое расположение, а вместе с ними переезжают их компьютеры и МФУ. Всё это дело хоть и подключается к нумерованным розеткам, часто поиск порта на коммутаторе для замены VLAN довольно долог и не удобен. Кроме того, техники, которые занимаются непосредственно подключением оборудования, не имеют доступа на коммутаторы. Им приходится глазами искать кабель в стойке, а потом просить инженеров проверить VLAN. Хотелось как-то упростить процесс.

Я уже давно неспешно изучаю Python в качестве дополнительного образования. В основном для применения в автоматизации на работе и дома. Ну тут вот и сошлось: Python, проблема и статья на Хабре Python3. Автоматизация конфигурации мультивендорного сетевого оборудования / Хабр. Прямо брать код из ее не стал, такой функциональности не требуется. Да и хотелось самому разобраться, опираясь на идею.

Написание кода началось с запроса к GigaChat, заодно было интересно проверить насколько он хорошо пишет скрипты. Не буду утомлять приводя весь цикл нашего общения, остановлюсь кратко: сперва GigaChat выдал скрипт на основе библиотеки paramiko, после уточнения, что нужно для Telnet выдал и эту версию. После нескольких итераций, в том числе с асинхронными функциями, остановился на библиотеке telnetlib. В Python 3.12 есть ее замена telnetlib3, т.к. сама telnetlib вырезана в релизе - устарела. ИИ вполне можно использовать для написания небольших скриптов, как отработка идеи или небольших функций в проектах. Однако стоит проверять код, т.к. в части случаев он получается совсем не рабочий. Ну и заодно - изображение в начале текста тоже сделал GigaChat, я то рисовать не умею.

Читать далее

Telegram Bot API 9.2: прямые сообщения и рекомендуемые посты

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

15 августа 2025 года Telegram выпустил обновление Bot API 9.2. Если прошлые версии (9.0 и 9.1) в основном усиливали возможности ботов в работе с платным контентом, подарками и чек-листами, то 9.2 делает шаг в сторону более тесной интеграции ботов с каналами и их экосистемой.

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

Читать далее

Скриншоты сайта в адаптивную Tailwind верстку

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

Я знаю, что существует 100 500 способов перекинуть картинку в готовую вёрстку.
Но когда у меня дошло до дела, результат оказался так себе.
То ли я криворукий, то ли все эти инструменты ещё далеки от совершенства.
В итоге понял, что мне проще накидать свой собственный велосипед — скрипт на Python (~200 строк).

Решил выложить, может, кому‑то пригодится.

Скрипту можно скормить три скриншота сайта:

1) Десктоп‑версия

2) Планшет

3) Мобильная версия

На выходе получим одну HTML‑адаптивную вёрстку (десктоп, планшет, мобила) с использованием Tailwind CSS.

Читать далее
1
23 ...

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