Обновить
516.88

Python *

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

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

fsspec и вообще зачем оно нам нужно

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

Привет! Сегодня я расскажу вам про fsspec, его киллер фичи и почему он является незаменимым инструментом любого python разработчика.

Читать далее

Auto-Scaling в телеграм-ботах

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

Салют, Хабр!

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

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

Auto-scaling позволит не только поддерживать стабильную работу бота при всплесках активности, но и существенно снизит затраты на поддержание избыточной инфраструктуры в периоды низкой активности.

Читать далее

Метод подбора параметров функции за ограниченное время. Торговый симулятор + улучшение стратегии

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

Уважаемые участники сообщества Хабр, добрый день!

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

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

Итак, начнем.

Читать далее

Фильтр Блума для эффективной синхронизации хеш-графов

Время на прочтение8 мин
Охват и читатели3.8K
В одном из совместных исследований нам с Хайди требовалось решить такую задачу. Допустим, нам требуется синхронизировать между двумя узлами хеш-граф, например, как в репозитории Git. В Git каждый коммит идентифицируется через соответствующий ему хеш, причём, в коммит могут включаться хеши коммитов-предшественников (то есть, конкретный коммит может содержать более одного хеша, если он получен слиянием). Мы хотели получить минимальное множество таких коммитов, которыми должны обменяться два узла, чтобы их графы получились одинаковыми.

Вы могли бы спросить: «а разве эта задача ещё не решена»? Git приходится выполнять такую операцию всякий раз, когда вы направляете ему команду git pull или git push! Да, так и есть, и некоторые случаи довольно просты, но другие гораздо сложнее. Более того, тот алгоритм, что используется в Git, не слишком хорошо документирован – в общем, мы полагали, что у нас может получиться лучше.
Читать дальше →

Мониторинг на Python: как сохранить метрики в мультипроцессном режиме

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

Привет, Хабр! Меня зовут Никита, я backend-разработчик команды клиентских сервисов. В Selectel мы строим и поддерживаем IT-инфраструктуру для компаний, которые развивают свои цифровые продукты. В нашем департаменте около 20 приложений, большая часть из которых работает на Flask и Gunicorn. Чтобы отслеживать их производительность, мы мониторим параметры системы с помощью Prometheus.

С развитием бизнеса нагрузка на приложения возрастает, один из способов масштабировать его под большее количество запросов — запустить Gunicorn-сервер с несколькими worker-процессами в мультипроцессном режиме. Однако при таком подходе клиент Prometheus не выводит нужные нам метрики CPU и RAM. В статье расскажу, как мы решили эту проблему, сохранив метрики и организовав мониторинг в мультипроцессном режиме.
Читать дальше →

Коротко про платежи через ботов в Telegram

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

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

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

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

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

Читать далее

Как оценить эффект от внедрения проекта?

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

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

В статье показано применение таких методов оценки эффекта от внедрения проекта, как AБ-тестирование (классический подход, стратификация, CUPED), альтернативное прогнозирование, синтетический контроль и мэтчинг.

Читать далее

Деплой python-проекта на linux-сервере в изолированном сегменте сети

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

Необходимо выполнить деплой python-проекта со всеми его зависимостями из локального Git на linux-сервере в изолированном сегменте сети.

Основная проблема заключается в том, что на сервере для python-проекта невозможно подтянуть зависимости простой командой «pip install», так как доступа к каталогам пакетов типа PyPI просто нет, также в сети нет никакого прокси - решение этой проблемы и описано в данной статье.

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

Читать далее

Векторные представления — что это такое, и почему в них важно разбираться

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

Векторные представления (эмбеддинги, векторы) — это по‑настоящему приятный инструмент, но в любом рассказе о векторных представлениях эта техника скрыта за ворохом каких‑то страшных словес.

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

Я выступал с лекцией о векторных представлениях на конференции PyBay 2023. Эта статья — улучшенная версия той самой лекции, и она должна быть интересна сама по себе, даже если не смотреть видео.

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

38-минутная видеоверсия

Вот видеоверсия той лекции, которую я прочитал на PyBay.

Читать далее

Сбалансированные данные – успех в ML: Oversampling и Undersampling

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

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

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

Читать далее

За кулисами публикации «24 часа невидимой эпидемии»

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

Сегодня я расскажу о том, как был подготовлен материал об одиночестве, «24 hours in an invisible epidemic», опубликованный на платформе Pudding.

Всё началось с моей одержимости материалами Американского обследования использования времени (American Time Use Survey, ATUS). Каждый год в ходе соответствующего мероприятия проводится опрос десятков тысяч американцев. Им предлагают проследить за одним днём своей жизни. Полученные данные позволяют получить некие общие показатели и, при желании, добраться до каждого респондента и узнать о том, чем занимался именно он.

Читать далее

PyZelda своими руками или как геймдевить без Unreal, Unity и кредитов

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

Хабры и Хаброчки, я хотел бы перед самой статьёй обсудить вопрос целесообразности писать свой движок, вместо готовых решений. Есть куча статей, которые опишут разные движки от более популярных до менее. Я бы хотел затронуть немного другой вопрос: "Как человеку, который изучал программирование много лет заняться геймдевом?". Обычно, есть два пути в геймдев:

Умышленный путь. Это когда человек, который играет в игры рано или поздно решит их создать. Тогда, он выбирает где ему учиться этому и выучивает игровые движки и C-образные языки к ним (чаще всего, C#).

Путь прогеров. Программист увлекается математикой и пишет код. Так или иначе, везде где есть код — есть компьютер. Цифровые развлечения (в том числе и игры) не проходят мимо тех людей, который постоянно пишут код. Так, часть прогеров решает написать свою игру и начать свой путь в геймдев. Об этом пути мы и поговорим.

Так зачем выбирать "сложный" путь? Во-первых, не для всех он сложнее. Лично мне сложнее перейти на C# с использованием Unity, чем написать новый проект на Python. Во-вторых, люди не всегда понимают сам движок. Сейчас я преподаю в институте "Бизнеса и Дизайна". Это один из первых профильных учреждений, занимающихся геймдевом. И вот у студентов я спросил зачем им движок. Каково было моё удивление, что далеко не все понимаю, вообще зачем он нужен. Спойлер, не из-за пресетов.

Всех заинтересовавшихся, приглашаю в мир змеиных игр!

Погрузиться в змееленд

АБ тесты и подводные камни при их автоматизации

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

Задача оценки нововведений в онлайн и мобильных приложениях возникает повсеместно. Один из наиболее надёжных и популярных способов решения этой задачи - двойной слепой рандомизированный эксперимент, также известный как АБ-тест.

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

Читать далее

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

Мамкин программист про ИИ, «программисты скоро будут не нужны» и прочие страшилки

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

Недавно на Хабре вышел перевод статьи под названием: «Классическое программирование на грани вымирания» с постапокалиптической картинкой, где автор буквально пишет, что «Приближается конец эпохи классических компьютерных наук, и большинство из нас словно динозавры в ожидании падения метеорита». Если коротко, данная статья о том, что классические компьютерные науки становятся менее актуальными на фоне развития искусственного интеллекта и современных технологий. Автор рассказывает о своем опыте в области компьютерных наук, полученном в 80-х и 90-х годах, и подчеркивает, что, несмотря на то что классические подходы к программированию и алгоритмам всё еще актуальны, но в будущем (горизонт автор не указывает), скорее всего, ИИ с самообучаемыми системами заменит программистов. В будущем студентам факультетов компьютерных наук не нужно будет изучать традиционные навыки, такие как работа с двоичными деревьями или программирование на С++, обучение таким вещам станет неактуальным, потому что от инженеров будущего будет требоваться обучение и запуск генеративных моделей.

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

Читать далее

Процесс разработки приложения Python по дедупликации файлов с использованием контрольных сумм

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

История начинается с несложной задачи и небольшого Python приложения.

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

С источников файлы не удаляются пока в этом не появится острая необходимость, в первую очередь потому, что это «естественная» резервная копия. Ну и бывает удобно иметь какие‑то фотографии и видео у себя под рукой.

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

Читать далее

Изучаем и парсим биржевую информацию Мосбиржи. Наш первый парсер на Python, разбор кода

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

Как устроен ISS MOEX (информационно-статистический сервер Московской Биржи) и как можно парсить с него биржевые данные. Разбор кода программы. Это первое знакомство с MOEX, дальше будем изучать куда как более актуальный для алготрейдинга продукт мосбиржи - ALGOPACK. Однако перед этим общее знакомство с архитектурой iss moex должно быть. Стратегическая задача - использовать данные для алготрейдинга (работы торгового робота) напрямую с московской биржи.

Читать далее

Как прошло обновление курса «Python-разработчик»: новые сюжеты, Pytest и переработка алгоритмов

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

Привет! Это команда курса «Python-разработчик». Недавно мы провели рефакторинг — большое обновление программы. Для этого мы изучили фидбек студентов, выявили точки роста и актуализировали набор технологий исходя из запросов рынка.

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

Читать далее

LSTM и GRU

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


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

Но не все так радужно, как может показаться на первый взгляд. Основной головной болью при работе с RNN являются проблемы затухания и взрыва градиента. Эти явления возникают в процессе обучения сети, когда веса модели корректируются с помощью обратного распространения ошибки. Затухание градиента происходит, когда веса корректируются настолько слабо, что обучение становится неэффективным. С другой стороны, взрыв градиента происходит, когда эти корректировки слишком велики, что также ведет к нестабильности обучения. Обе эти проблемы могут серьезно затруднить обучение RNN.
Читать дальше →

Как учить Python? Книги, видео, курсы

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

What’s up guys?


Python - это интерпретируемый, высокоуровневый язык программирования, который был создан в конце 1980-х годов Гвидо ван Россумом. Python быстро стал одним из самых популярных языков программирования в мире благодаря своей простоте, и широкому спектру применений. Сейчас Python используется практически везде, от науки и финансов, до веб-разработки и ИИ.

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

 

Читать далее

Как написать проект по автоматизации на Python, Pytest и Playwright и настроить запуск автотестов в CI с нуля

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

Привет, Хабр! Меня зовут Александр Бехтерев, я работаю QA-инженером в Учи.ру. Не так давно перед нами встала задача перехода с библиотеки Selenium на новую и мощную библиотеку Playwright. Этот переход был вызван желанием улучшить процессы тестирования и попробовать что-то новое. 

В этой статье я постараюсь подробно рассмотреть процесс создания проекта на Python, Pytest и Playwright с применением паттерна Page Object, а также оставлю шаблон yml, который позволит запускать автотесты в CI. 

Читать далее

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