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

Python *

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

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

Релиз ChameleonLab под Windows и macOS: История о невидимых данных, «зомби»-потоках и секретной игре

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

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

И, конечно же, мы наконец-то готовы представить версии как для macOS, так и для Windows.

Читать далее

ReLLaX: как научить большие языковые модели понимать долгосрочное поведение пользователей

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

Всем привет! Меня зовут Никита Горячев. Сейчас работаю в качестве Senior Machine Learning Engineer в WB Tech - занимаюсь исследованиями в рекомендациях и LLM. До этого работал в МТС и Сбере, где тоже занимался рекомендашками. Написал книгу про LLMOps и RAG (вот ссылка) И также сейчас пишу книгу про вывод Speech AI моделей в прод (опыт работы в калифорнийском стартапе). В рамках своих исследований нашел интересную статью и хочу ей поделиться! 

Читать далее

Оптимизация Django под высокие нагрузки: как мы ускорили ответы сервиса с помощью кэша, SIMD и настройки GC

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

За более чем 10 лет в разработке я не раз сталкивался с проблемой недостаточной производительности сервисов. Особенно это заметно на Python – отличном языке для быстрого старта, с множеством библиотек и фреймворков. Однако, когда проект растёт, его производительности начинает не хватать, и проблемы с задержками превращаются в угрозу стабильности и пользовательскому опыту. В этом руководстве я поделюсь практическими решениями, основанными на реальных кейсах, чтобы помочь вам оптимизировать Django-сервис и значительно сократить время ответа на запросы.

Читать далее

Ушел в IT за меньшей зарплатой

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

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

Читать далее

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

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

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

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

Читать далее

Гибридный квантовый эмулятор с топологическим сжатием: вдохновленный фотонными вычислениями

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

Архитектура эмулятора

Наш эмулятор строится по принципу фотонного вычислителя, описанного vsradkevich: "лазер → модулятор → решетка интерферометров → фотодетекторы → АЦП → CMOS-блок".

Читать далее

Топологическая безопасность ECDSA: Динамические методы анализа и теоретические основы

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

Топологическая безопасность ECDSA: Раскрываем скрытые уязвимости через законы диагональной периодичности

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

Вы узнаете:

Как закон диагональной периодичности T = n / \text{НОД}(d-1, n) помогает обнаруживать subtle уязвимости

Почему числа Бетти (\beta_0 = 1, \beta_1 = 2, \beta_2 = 1) являются ключевыми индикаторами безопасности

Как метод динамических улиток снижает сложность анализа с O(m⁴) до O(m log m)

Как TVI Score заменяет субъективные оценки количественной метрикой риска.

Читать далее

Магия деплоя: автоматическое развертывание Coreness одной командой

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

В этой статье рассматривается решение проблемы деплоя Telegram-бота Coreness, с подробный описанием проблем и решений. Вместо ручного копирования файлов, настройки зависимостей и миграций БД была создана система, которая делает всё автоматически.

Читать далее

Обзор книги «Паттерны разработки на Python TDD, DDD и событийно-ориентированная архитектура»

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

Недавно я прочёл книгу «Паттерны разработки на Python TDD, DDD и событийно-ориентированная архитектура». Основной акцент в ней сделан на том, как именно нужно структурировать программы, чтобы они по мере роста оставались простыми и удобными в поддержке. Это моя любимая тема из области программирования, поэтому, конечно же, книга мне понравилась. Пожалуй, я не возьмусь использовать именно те приёмы, которые авторы рекомендуют в книге — но они обсуждают классные идеи, напомнившие мне о задачах, встречавшихся в моей практике на предыдущих работах. Кроме того, отмечу, что английская версия книги есть в свободном доступе онлайн, так какие вообще вопросы?

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

Читать далее

Скрытая грамматика: почему len() — это полисемия, а хороший код — набор идиом. Как филология объясняет «чистый код»

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

Оживленная дискуссия под моей первой статьей (https://habr.com/ru/articles/940782/) показала: разговор о единстве языка со сферой программирования задевает многих за живое. Тем не менее, cпасибо всем за сотню комментариев, сохранений и невероятно полезного и ценного опыта!

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

Вместе с тем один из наиболее сильных и частых аргументов от скептиков звучал примерно так: «весь код — это чистая, бездушная логика для машины». На мой взгляд, это самое большое заблуждение в этой индустрии. Знали ли вы, что оператор + в вашем коде семантически богаче, чем многие слова в русском языке? Или что конструкция if not my_list — это не просто синтаксис, а настоящая идиома, которая отделяет «носителя языка» от «иностранца»? Задача настоящей работы — исследовать, как в строго детерминированной среде кода возникают сложнейшие семантико-прагматические явления, свойственные живому языку. 

Давайте забудем про имена и заглянем в самое сердце кода — в его грамматику и риторику. Пристегните ремни безопасности :-)

Читать далее

PEP 723 + uv: однофайловые скрипты с зависимостями

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

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

Если вы собираете прототип на C++, то один файл с main.cpp иногда реально компилируется в рабочую утилиту. Библиотеки либо завозятся пакетным менеджером заранее, либо у вас есть header-only зависимость и всё взлетает. В Python долгое время это было болью: любой однофайловый скрипт, который требует requests или rich, уже тянет за собой виртуальные окружения, инструкции в README и локальные фичи.

Есть рабочий стандарт для нормальных однофайловых сценариев с зависимостями — PEP 723: вы объявляете зависимости прямо в комментариях, а раннер ставит всё сам и запускает в изолированной среде. В связке с uv получается неплохой такой способ делиться скриптами, в том числе для пвспомогательных задач. И да, у этой красоты есть нюансы безопасности, о них поговорим отдельно.

Читать далее

Генерация тестовых данных на Python: руководство по библиотеке Faker

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

Привет, Хабр! Думаю, многие сталкивались с необходимостью генерации тысячи пользователей. Вручную - не вариант, слишком долго. В данной статье разберу библиотеку Faker. Это генератор реалистичных тестовых данных, который превращает заполнение базы и создание демо-контента из рутины в дело пары строк кода. В статье продемонстрирую, как генерировать тысячи правдоподобных записей на русском, заполнять БД и создавать собственные типы данных для ваших проектов.

Читать далее

Книга: «Мощный Python: паттерны и стратегии современного программирования»

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

Привет, Хаброжители! Как стать экспертом в создании сложных и мощных приложений на Python, не тратя времени на повторение уже известных основ или перечисление ненужных функций? Аарон Максвелл фокусируется на первопринципах Python, которые действуют подобно катализаторам для всего остального: достаточно получить 5 % знаний в области программирования, чтобы остальные 95 % подтянулись автоматически.

Читать далее

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

Обучаем GigaAM-Emo распознавать ещё больше эмоций

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

Модель распознавания эмоций в речи GigaAM-Emo умеет классифицировать 4 эмоции: angrysadneutralpositive. Для некоторых задач бывает не достаточно классифицировать эмоции на 4 класса и хочется иметь более полный список эмоций. В статье рассмотрим: существующие корпуса данных для распознавания эмоций, ключевые возможности разработанного пайплайна для дообучения GigaAM с использованием библиотек hydra и Pytorch Lightning, результаты экспериментов с различными архитектурами и функциями потерь. Демо можно попробовать тут

Читать далее

Новый релиз публичного детектора голоса Silero VAD v6

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

На Хабре уже было аж 3 статьи про развитие нашего публичного детектора голоса Silero VAD (последняя тут). А вот что стало лучше в этот раз:

Хочу узнать!

Как мы за 5 дней собрали контакт-центр для фитнес-клуба на Chatwoot и подключили к WhatsApp, Telegram и VK

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

В статье рассказываем, как всего за 5 дней собрать современный омниканальный контакт‑центр для фитнес‑клуба на базе open‑source‑платформы Chatwoot и подключить к нему WhatsApp, Telegram и VK с помощью самописных шлюзов на Python (Wasender, Telethon, VK API). Вы узнаете, почему мы отказались от «коробочных» SaaS‑решений, автоматизировали до 84% рутинных сценариев (поздравления, записи, напоминания) и подготовили инфраструктуру под внедрение AI‑ассистентов и аналитики SLA. Приводим архитектурные схемы, технические детали и бизнес‑выгоды — от сокращения ручной работы до сохранения всех коммуникаций с клиентами в едином окне.

Читать далее

Похороны стартапа на Патриарших: как мы завайбкодили сервис и остались без аудитории

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

«Человек всегда велик в намерениях. Но не в их выполнении. В этом и состоит его очарование» — что-то на глубоком из Ремарка «Три товарища»

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

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

Самая интересная часть начинается с главы «Возвращение: новая команда и быстрый релиз», но я искренне рекомендую читать статью с самого начала. Так будет проще уловить весь контекст и понять, почему проект получился именно таким, каким он получился.

Читать далее

Три уровня отслеживания в Яндекс Метрике: Level 2 — офлайн-конверсии

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

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

Сегодня рассмотрим вариант, когда события произошедшие уже офлайн, отправляются обратно в онлайн статистику Яндекс Метрики и обогащают ее. Это позволит делать рекламу и собирать аудитории в Яндекс Директе точнее еще на 30-35%

Читать далее

Универсальный парсинг сайтов на Python: requests vs headless, токены, куки, прокси и ротация IP

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

Вы когда-нибудь радовались идеальному прототипу парсера, который у вас летал на демо-странице, а в проде внезапно начал ловить 403, 429, пустые HTML и «куда-то делись карточки»? Контент отрисовывается на JS, сервер требует токен, после смены IP, старая сессия перестаёт работать.

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

Читать далее

Шаблон на Python для оценки эффективности торговой стратегии на основе исторических данных — альтернатива TradingView

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

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

Сегодня у нас есть Python и такие мощные библиотеки, как Backtrader. Однако голый фреймворк — это лишь половина дела. Чтобы он стал по‑настоящему народным инструментом, ему нужна удобная обвязка: готовая структура проекта, автоматический импорт стратегий, наглядные отчёты, тепловые карты для оптимизации и бесшовное подключение к API брокеров — не только российских, но надо начать с Мосбиржи.

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

Эта статья — не просто описание проекта, а призыв к действию. Я предлагаю объединить усилия и создать открытый стандарт для алготрейдинга на базе open source Backtrader, заточенный под реалии российского рынка.

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

Вкалывают роботы...

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