Обновить
488.93

Python *

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

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

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

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

 Привет!

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

Читать далее

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

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

Эта заметка является дополнением к статье 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 мин
Количество просмотров2.6K

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

Привет всем!

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

Всем привет!

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

Основан на 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 мин
Количество просмотров3.9K

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

Управление маршрутизацией на роутерах Keenetic при помощи Telegram-бота и правовые нормы доступа к информации

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

После начала Специальной Военной Операции многие западные компании объявили о прекращении своей деятельности в России и Белоруссии и некоторые из них стали блокировать пользователям с российскими и белорусскими IP-адресами доступ на свои ресурсы в сети Интернет. Яркими примерами таких блокировок являются сайты: intel.com, dell.com, chatgpt.com, community.cisco.com, mongodb.com, tenable.com, wiki.zimbra.com, releases.hashicorp.com, registry.terraform.io, vagrantcloud.com, solarwinds.com и множество других.

Такие блокировки мешают IT-специалистам из России и Белоруссии получать доступ к актуальной информации и программному обеспечению необходимому для обучения и работы. Препятствуют получению актуальных релизов программных продуктов и критических обновлений безопасности, что в условиях участившихся хакерских атак стало особенно важным.

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

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

В это статье НЕ БУДЕТ инструкций о том откуда взять работающий VPN и НЕ БУДЕТ инструкций о том как обходить блокировки Роскомнадзора. Обсуждать это в комментариях к статье тоже НЕ НУЖНО.

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

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

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

Если вы не согласны хоть с чем-то из вышеописанного - вам следует немедленно прекратить чтение настоящей статьи.

Я согласен(-на) и хочу продолжить.

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