Обновить
797.06

Python *

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

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

Большой бенчмарк: ROCm vs Vulkan в LM Studio 0.4 и добавление параллельных запросов

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

27 января вышла LM Studio версии 0.4.0 и это обновление принесло долгожданную функцию параллельной обработки запросов через continuous batching. Это критически важное обновление для production-использования локальных LLM, которое обещает значительное увеличение пропускной способности. Теперь можно не просто "крутить модельку для себя", а разворачивать реальные multi-user сервисы.

Но как это работает на практике? Я провел комплексное исследование на своем домашнем ПК, сравнив производительность ROCm и Vulkan, а также влияние количества потоков на пропускную способность (TPS).

Спойлер: Разница между ROCm и Vulkan оказалась шокирующей — до 2 раз в пользу ROCm, а правильная настройка потоков дает +50% бесплатной производительности.

Читать далее

Новости

Аннотации в Python: модуль typing

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

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

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

Сегодня я для себя открыл: Project Loom

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

"Loom" означает "ткацкий станок" - так назывался проект по добавлению асинхронности в джаву. Тяжёлые системные потоки заменили легковесными виртуальными потоками. Потоки и нити в английском называются одинаково - thread - отсюда название.

Проект успешно внедрили пару лет назад, и я, к сожалению, это полностью пропустил. Основная причина, конечно - что я в принципе не ожидал от джавы никаких прорывов (и оказался на 100% неправ!) Ну и, как бэкенд-разработчик на питоне, я не очень-то слежу за развитием JVM-языков.

Но исправляюсь: Project Loom - это блестящая идея. Учитывая, что его внедрили совместимым образом, и почти не было ломающих изменений. Я считаю, это оптимальная реализация асинхронности для высокоуровневого серверного языка.

Уже почти все использующие JVM языки переехали на новую версию JVM, и, таким образом, на проект Loom: деваться им некуда. Так что, есть надежда, что это изменение откроет новую главу для некоторых из них. Есть также предположение, как оно может повлиять на скриптовые языки, такие как питон. Гипотеза только.

Также, вы узнаете, почему Гвидо ван Россум не ошибся, когда добавлял async/await в питон, а Мацумото - создатель Ruby - тоже угадал, когда, наоборот, отказался от async/await.

Читать далее

Наглядная математика с Python и Minecraft

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

Введение

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

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

Статистика выбора технических направлений

Согласно статистическим данным выбора детьми кружков для дополнительного занятия, мы видим, что стабильно из года в года всего 5 - 9 % процентов детей от общего числа, «выбирают» так называемые «научно-технические» кружки. К ним относят математические и физические кружки, робототехнику, программирование, радиотехнику, биологические и медицинские кружки. Но даже выбрав направление нет гарантий, что ребёнок закончит предназначенный для него курс. Почти 60% детей, которые пришли на кружки покидают их, не справившись со сложностью подаваемого материала.

         Согласно социологическим опросам (2023 - 2025 годов) видно, что преобладают люди от 35 лет и старше, которые переучиваются или хотят пойти учиться по техническим направлениям, чтобы сменить профессию. Получается, что только с возрастом человек осознаёт значимость «научно-технических» направлений. Но обучать взрослого человека не тоже самое, что обучать ребёнка 9-12 лет.

Причины низкой популярности

         У каждого поколения должен быть свой подход в обучении. Почему же так непопулярно «научно-техническое» направление среди детей?

Читать далее

contextvars: почему thread-local сломался в asyncio и как это починили

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

В мире потоков всё было просто: threading.local() даёт каждому потоку свои данные. Request ID, текущий пользователь, database connection — положил в thread-local, достал когда нужно. FastAPI, Flask, Django — все так делали.

Потом пришёл asyncio, и эта модель сломалась. В одном потоке выполняются тысячи корутин, и thread-local у них общий. Положил request ID в одной корутине — прочитал чужой в другой. contextvars, появившийся в Python 3.7, решает эту проблему, но механика его работы не очевидна.

Разберём, почему thread-local не работает в async, как устроены contextvars, и какие паттерны использовать.

Читать далее

Скрытая деградация продакшена: когда система работает, но уже больна

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

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

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

Читать далее

Как AI убъет вашу базу: безопасность вайбкодинга в 2026

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

Не прошло и дня, как я писал про«AI‑диспетчера» — генерируешь, проверяешь, мержишь. Выглядит замечательно. Но ни слова про секурити. А между тем, произошло достаточно инцидентов, чтобы понять: модель рабочая, но только если ты действительно проверяешь, а не делаешь вид.

А если не проверяешь? Replit удаляет базу данных, Claude Code становится инструментом киберпреступников, а твой стартап оказывается взломан за 16 минут.

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

Читать далее

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

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

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

Читать далее

Kawai-Focus 2.2: Python-бинарник в Tauri — проблемы и альтернативы

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

В данной статье я расскажу, с какими проблемами, связанными с бинарником, столкнулось моё решение при запуске на Arch Linux у моих знакомых, и почему у меня оно работает нормально на Debian 12 и 13. Также я разберу преимущества и недостатки текущей реализации, покажу возможные пути решения и альтернативы, а лучшее решение применю на практике.

Я снова попрошу Сергея и Ивана запустить моё приложение на Arch Linux, чтобы проверить его работу.

Заваривайте чай, доставайте вкусняшки — пора «удобрять почву для выращивания помидоров»! 🍅

Читать далее

Дескрипторы Python: механизм, на котором держится половина крутости языка

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

Дескрипторы — одна из тех фич Python, о которых многие слышали, но мало кто использует напрямую. При этом они лежат в основе @property, @classmethod, @staticmethod, слотов и даже обычного доступа к методам.

Разберём, что такое дескрипторы, как их писать и когда они реально полезны.

Понять механизм

Как я ML-ку делал

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

Введение: Проблема ручного контроля

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

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

Я написал детальный промпт для курсора и вайбкодинг помог создать первую версию системы. А потом я итеративно улучшал ее на основе реальных данных.

Читать далее

Чистим аудиокниги от шума нейросетями

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

Фоновая музыка, гул, шипение — классические фильтры с этим не справляются. Нейросети справляются, но падают на длинных файлах. Решение: чанкование + сохранение прогресса. Делюсь инструментом.

Читать далее

Как я сделал свой АИС-Налог и для чего он нужен

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

Эта статья — описывает проект, по созданию универсальной системы для бизнеса «АIS NP», которая решает проблемы сопровождения налоговых проверок и налогового контроля в целом.

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

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

Читать далее

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

Книга: «Анализ данных с помощью GenAI и Python»

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

Привет, Хаброжители! Эта книга — практическое руководство для тех, кто превращает данные в решения. Шаг за шагом вы разберетесь, как современные методы искусственного интеллекта помогают не просто интерпретировать массивы информации, но и находить скрытые закономерности, позволяют прогнозировать будущее и создавать конкурентные преимущества для бизнеса. Вы получите системное понимание инструментов анализа, узнаете о лучших практиках применения машинного обучения и научитесь интегрировать ChatGPT в ежедневные рабочие процессы.

Читать далее

Улучшаем Backend-разработку в Cline на примерах

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

Привет, Хаббррр! Сейчас я расскажу, как использую агенты, чтобы упростить себе backend-разработку и не тратить на рефакторинг больше, чем на написание кода.

Какие задачи идеально подходят для оптимизации с помощью ИИ, а какие не стоит отдавать агенту.

Читать далее

CI/CD для карьеры: как я написал бота, который проходит HR-фильтры вместо меня

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

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

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

Но когда дело доходит до поиска работы, мы превращаемся в биороботов.

Заходим на hh. Вбиваем фильтры. Читаем описание (которое на 90% копипаста). Пишем сопроводительное (которое никто не читает). Жмем кнопку. Повторить 100 раз.

Меня хватило на два дня. Потом я понял, что трачу часы на работу, которую должен делать скрипт.

Попытка №1: Тупой парсер (Python + Requests)

Сначала я решил задачу в лоб. Написал воркер, который:

Читать далее

Как один индекс на created_at сократил время ответа API с 12 секунд до 40 мс

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

«Страница заказов грузится вечность», — такой тикет прилетел в понедельник утром. На проде 800 тысяч записей, а типичный запрос с фильтрацией и сортировкой заставлял менеджеров ждать по 12 секунд. В этой статье разберем, почему стандартный индекс по одному полю не сработал, как EXPLAIN ANALYZE помог найти «бутылочное горлышко» и почему порядок полей в составном индексе имеет решающее значение

Читать далее

Работа с несбалансированными данными: SMOTE мёртв, что работает

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

Бывали у вас датасеты, где класс «1» встречается в 100 раз реже класса «0»? У меня — постоянно. Модель радуется высокой точности, а на деле совершенно промахивается по редкому классу. Давайте обсудим, почему старый добрый SMOTE уже не торт, и что помогает в таких случаях.

Ра��обраться глубже

Антикейс — в нестандартном понимании! Клоакинг зло — а со злом надо бороться

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

Вокруг только и разговор про успешные кейсы обхода каких либо ограничений. Обошли тут, обошли там. А что насчет - антикейса? Нет, не кейс с негативным окрасом, как не получилось, а кейс с позитивным уклоном, о том, как обернуть оружие серой зоны, против них самих?

Читать далее

Мемоизация в Python: как заставить код помнить

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

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

Решение — Мемоизация.

Это техника, при которой функция запоминает результат своих вычислений. Если вы вызываете её снова с теми же аргументами, она не считает, а просто достает готовый ответ из памяти (словаря).

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

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