Обновить
583.42

Python *

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

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

CPython — сборка мусора изнутри, ч.1

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

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

Если вам интересно, давайте попробуем разобраться вместе.

Читать далее

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

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

 Привет!

У бизнеса на практике часто встречается задача построить полноценную аналитику, используя данных из excel, csv файлов. Разнообразие подходов к заполнению и образованию таких файлов может быть разное:

Читать далее

Android. Starting Kivy App and Service on bootup. API 35

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

Эта заметка является дополнением к статье Android. Starting Kivy App and Service on bootup, в которой запускал сервисом kivy приложение на API 22 Android 5. Теперь будем запускать на последних версиях Android. C API 26 Android 8 и по текущий API 35 Android 15 который есть у меня, постигли изменения, которые необходимо внести для автостарта сервиса. Проверял работу на API 22...35, телефоны: Highscreen power five, Nokia 8, Xiaomi Redmi Note 14.

Читать далее

FastSIO: Как я попытался войти в open source, и надеюсь что у меня получится это сделать

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

FastSIO. Как я впервые сделал что-то для Open Source, и как я к этому пришел.

И что из себя представляет новая Fast<> библиотека

Читать далее

Иконки прямо в коде: как мы избавились от assets, портируя приложение на Linux и macOS

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

Привет, Хабр! Мы в ChameleonLab разрабатываем тулкит для стеганографии, который уже работает на Windows и macOS. Сейчас мы портируем его на Linux, и, как это часто бывает, именно на этом этапе классические проблемы с ресурсами (иконками, картинками) проявили себя во всей красе.

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

Читать далее

Личный топ методов Pandas

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

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

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

Читать далее

Как работает машина Enigma M3 (для флота)

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

Привет всем!

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

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

Читать далее

Невидимые чернила в цифровом мире: технология сокрытия данных в DOCX/XLSX

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

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

Стеганография — искусство сокрытия информации — чаще всего ассоциируется с изображениями и аудиофайлами. Но что если нам нужно спрятать данные не в медиафайле, а в обычном офисном документе, например, в .docx или .xlsx?

На первый взгляд, задача кажется сложной. Документы имеют строгую структуру, и любое неосторожное изменение может повредить файл. Однако современные форматы Office, основанные на Open XML, предоставляют удивительно элегантные и надежные способы для встраивания сторонних данных.

Читать далее

CLI-инструмент для фундаментального анализа акций с поддержкой LLM

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

Всем привет!

Я сделал CLI-инструмент для быстрой "фундаменталки" по акциям с добавочной аналитикой из 10-K через LLM. Он тянет данные из Yahoo Finance, дочитывает 10-K (edgartools + LLM), корректирует EV по fair-value, только страховщиков оценивает по "флоуту", делает SOTP по операционным сегментам и на базе квартилей выдаёт сигналы "КУПИ/ПРОДАЙ/НЕОПРЕДЕЛЁННО" - по метрикам, по группе и общий. Использует метрики: Forward P/E, P/FCF, EV/EBITDA.

Пример запуска:

Читать далее

Линейная регрессия в факторных моделях

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

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

Когда мы говорим «факторная модель», многие вспоминают Python-ноутбуки. Но если отмотать плёнку, бóльшая часть индустриальных движков для риска и ценообразования десятилетиями писалась на C++ поверх BLAS/LAPACK. Там же удобно делать устойчивые разложения: QR с переупорядочиванием столбцов, SVD, регуляризацию. Библиотеки вроде Eigen дали нормальный интерфейс к этим штукам, и регрессия перестала быть болью «Ax = b» руками. QR с перестановками колонок вообще стандарт для переобусловленных задач.

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

Читать далее

Десктопный агент на базе Gemma 3 1b

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

Приветствую, товарищи разработчики. В этой статье я бы хотел поднять небольшой эксперимент, на который я потратил 2 недели ленивого анализа и разработки. Как понятно из названия, речь пойдет о десктопном агенте на базе open‑source языковой модели от Google — Gemma 3 на 1 миллиард параметров. Сразу уточню, что это моя первая статья на Хабре, поэтому если возникнет критика по поводу оформления или подачи — прошу расписать в комментариях.

С чего началось

А началось все со статьи на форуме Reddit, где парень, используя Ollama, Gemma 3 1b и n-ное количество API, создал себе настольного браузерного агента, который бы мог переводить текст, присылать погоду, а так же серфить просторы Интернета с помощью API Serp.dev. (прилагаю ссылку на статью).

Сама идея мне очень понравилась, потому как большая часть решений в области настольных агентов/помощников предполагала использование API популярных моделей, что сразу же делало человека зависимым от Интернет соединения и оплаты токенов. Но что мне не давало покоя именно в этом решении, так это использование API для веб-поиска, перевода и информации о погоде, что так же делало вас зависимым от провайдеров, для определенных функций.

Читать далее

ChameleonLab: Как мы портировали стеганографический инструмент на macOS. Грабли, решения и планы на Android

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

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

В наших прошлой и позапрошлой статьях мы рассказывали о создании нашего инструмента для стеганографии и стеганоанализа ChameleonLab. Мы получили массу ценных отзывов, и один из самых частых запросов был: «А когда версия для macOS?». Что ж, по вашим многочисленным просьбам, мы сделали это — ChameleonLab теперь доступен для macOS!

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

Читать далее

Коротко про виды авторизации

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

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

Коротко, без воды, с примерами, схемами и домашним заданием. Что может быть лучше для самостоятельного изучения темы?

Быстро срыть тему с авторизацией

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

Позиционный трейдинг + ML: от нуля до торговой стратегии за год

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

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

Читать далее

Топологический анализ безопасности ECDSA

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

Новый подход к анализу безопасности алгоритма цифровой подписи на эллиптических кривых (ECDSA) через призму алгебраической топологии.

Читать далее

Как pytest работает под капотом

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

Основан на pluggy. Основная единица pytest - pytest плагин. Написан достаточно интересно. Ключевое слово - “ключевое слово”. Основное взаимодействие в pytest происходит через хуки. Хук это некий этап к которому можно получить доступ к той или иной логики работы. Следуя из названия это некоторые крючки за который можно цепляться вставляя свои заплатки. Начинаются с pytest.

Фикстуры (Fixture) в  pytest это некий аналог мока/сетап tear down в unittests.  Это некие кусочки кода результаты которых могут быть пере использованы. Сами фикстуры реализованы как плагин. 

Как уже говорилось в эта система плагинов полагается на Pluggy. В Pluggy програамма полагается на PluginManager который управляет сохранения спецификаций хуков регистрацией плагинов и вызовом их. Плагины могут регистрировать сами себя в PluginManager.

Когда хук стартуют они вызывают свои имплементации по умолчанию как LIFO очередь - самый поздний элемент вызывается раньше всего. Для изменения этого порядка вызова можно применять trylast or tryfirst свойства в их имплементациях(пример). По умолчанию возвращается результат от всех имплементаций с исключением случая с как  firstresult свойством. В случае свойства firstresult программа возвращает результат первого не None результата. 

Другое интересное свойство имплементации плагина это hookwrapper.  С помощью этого свойства имплементации будут вести себя как обертки над другими хуками с помощью yield.

Вдохнули?

Хуки вызываются 3 способами:

Читать далее

Градиентный бустинг для новичков

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

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

Сначала мы рассмотрим на простейшем примере принцип его работы, а потом посмотрим, как реализовать его с помощью Python.

Читать далее

Парсим и управляем постами VK: Разбор Python-скрипта для работы с API ВКонтакте

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

В этой статье разберем создание Python-скрипта для работы со стеной VK. Научимся автоматизировать сбор постов и рассмотрим осторожное удаление контента через API. Началось все с того, что я решил почистить свою стенку в ВК. Жизнь, знаете ли, непредсказуемая нынче :) Но, в целом, мне видится, что код может быть полезен как для общего развития, так и в качестве основы для бэкапа данных, модерации контента или анализа своей активности в соцсети.

Читать далее

Pet-проект, которой далеко зашел, но так и не дошел до цели

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

Pet-проект которой далеко зашел, но так и не дошел до цели!

Ретроспектива моей первой попытки создать полезный и востребованный пользователям продукт, ошибки, которые мы допустили, и сделанные выводы.

Читать далее

ChameleonLab: Под капотом. Часть 3 — Визуализатор криптографии: От пароля до шифротекста

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

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

Именно для этого и был создан Визуализатор криптографии — интерактивная образовательная площадка внутри ChameleonLab, которая пошагово демонстрирует весь конвейер современного симметричного шифрования. Давайте разберёмся, зачем это нужно и как это реализовано.

Читать далее

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