Обновить
559.97

Python *

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

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

Как и почему перешли с Python на Go в основном сервисе рекомендаций Авито

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

Привет! Меня зовут Василий Копытов, я руковожу группой разработки рекомендаций в Авито. Мы занимается системами, которые предоставляют пользователю персонализированные объявления на сайте и в приложениях. На примере нашего основного сервиса покажу, когда стоит переходить с Python на Go, а когда нужно оставить всё как есть. В конце дам несколько советов по оптимизации сервисов на Python.

Читать далее

Можно, но лучше не стоит: разбираемся в связях между объектами, функциями, генераторами и сопрограммами

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

Давайте проведём исследование некоторых взаимосвязей функций, объектов, генераторов и корутин в Python.

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

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

Читать далее

Мифы и легенды современного Python

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

Мы в Evrone часто сталкиваемся с легендой, что для задачи, которая встает перед программистами, есть какой-то волшебный, лучший инструмент. К примеру, если вы хотите сделать что-нибудь бэкендовое, вам обязательно нужен PHP. А если вы хотите создать крутой современный фронтенд, то без JavaScript вам делать нечего. Если же вы такой хипстер, что хотите быстро делать фулстек фичи, то вам просто необходим Ruby. И, наконец, если у вас ML, artificial intelligence, big data или просто вам на бэкенде нужен какой-то клей, чтобы работать с данными, то вам жизненно необходим Python.

Осторожно, очень длинный текст!

Читать далее

Там сложно, ты не разберешься

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

В своей первой статье на Хабре я описывал опыт реверсинга и модификации проекта, доставшегося по наследству. Конечно, в отношении проекта на Python "реверсинг" - это гипербола, однако с чем-то ранее неизвестным столкнуться все же получилось. Если вкратце - вместо классических исходников использовались модули, загружаемые из .pyc, а не классических .py файлов. Философия "защитников" базируется на принципе "Там сложно, никто не разберется".

Ход событий же показал, что во-первых не так уж и сложно (передача параметров в хранимую процедуру PgSQL, и получение результата, возврат его пользователю - далеко не шедевр обфускации, скорее тут будет более применим принцип "Там несложно, любой разберется, но не захочет"), а во-вторых - кто-нибудь да поймет и найдет способ изменить поведение в нужном ключе. 

Читать далее

Облака атомных колебаний

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

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

Читать далее

Логирование в Python: руководство разработчика

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

Сталкивались ли вы с трудностями при отладке Python-кода? Если это так — то изучение того, как наладить логирование (журналирование, logging) в Python, способно помочь вам упростить задачи, решаемые при отладке.

Если вы — новичок, то вы, наверняка, привыкли пользоваться командой print(), выводя с её помощью определённые значения в ходе работы программы, проверяя, работает ли код так, как от него ожидается. Использование print() вполне может оправдать себя при отладке маленьких Python-программ. Но, когда вы перейдёте к более крупным и сложным проектам, вам понадобится постоянный журнал, содержащий больше информации о поведении вашего кода, помогающий вам планомерно отлаживать и отслеживать ошибки.

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

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

Читать далее

Аутентификация в Django при помощи Metamask

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

Сегодня мы напишем простой сниппет для аутентификации пользователей на сайте при помощи кошелька Metamask. Замечу, что данное решение максимально изолировано от фреймворка. Вы сможете легко адаптировать его не только к Django, но и к Flask, Sanic, Starlette, Aiohttp и т.п.

Читать далее

Анализ различий подачи новостей в Telegram-каналах

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

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

Дисклеймер 1: многое из этого отчёта может показаться политизированным. Но здесь я не делаю никаких выводов про то, кто прав, а кто виноват; кто грязный пропагандист, а кто носитель священной истины.

Дисклеймер 2: это не руководство по визуализации данных средствами Plotly и PyVis. В самой статье я не привожу никакого кода и не объясняю, почему он устроен именно так. При этом Colab с кодом открыт, и примеры оттуда вполне можно использовать.

Google Colab: ссылка на ноутбук

Хочу знать подробности!

Визуализация данных с помощью фреймворка Dash (часть 3)

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

Привет, Хабр! Я расскажу о трех опциональных, но довольно полезных инструментах фреймворка dash, которые сделают ваш dashbord показательным и интерактивным.

Читать далее

Как мы писали курс для Python-разработчиков с опытом и зачем сделали упор на асинхронное программирование

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

Два года назад Практикум запустил первые курсы для разработчиков с опытом. Один из этих курсов — «Мидл Python-разработчик». За это время его успешно закончили 140 студентов. Но мир разработки не стоит на месте, и это повод постоянно добавлять что-то новое в учебную программу.

О том, как создавался курс «Мидл Python-разработчик», что с ним происходит сейчас и что войдёт в программу нового дополнительного модуля, рассказала его команда.

Читать далее

Использование Python в SQL Server Machine Learning Services

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

В продолжение статей Приключения при настройке сервисов машинного обучения в MS SQL Server 2019 и Используем R lang в SQL Server разбираемся как работать с Python в сервисам машинного обучения. С Python ситуация несколько лучше, чем с R, так как достаточно много предустановленных библиотек и версия Python не так сильно отстает от актуальной, как в случае с R.

Для работы с Python крайне важно писать код без отступов, что достаточно нетривиально, так как код вы пишите в SQL строке.

Для разбора примеров используется созданная в статье про R база данных с датасетом из соревнования Kaggle Титаник.

Читать далее

Jira, Jirа! Повернись к лесу задом, ко мне передом

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

*Избушка, Olga Kolopetko. https://illustrators.ru/illustrations/1474142)*
Избушка, Olga Kolopetko. https://illustrators.ru/illustrations/1474142


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


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


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


Все предыдущие публикации.

Читать дальше →

Blender, захват движения, нейронные сети

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

Blender отличный 3d редактор, открытый документированный код, убирает ограничения в реализации творческих фантазий. Большая "фанатская база" сгенерировала решения под разные задачи, ускоряя творческий процесс. Периодически получаю практический опыта в Blender, главное в саморазвитие, ставить цель c желаемым результатом, повторение действий из уроков не самый лучший способ получения знаний для меня. Выбираю цель, с учетом собственного интереса, предварительно проверяю на отсутствие готового решения, что бы не лишить себя этапов развития. Моим критериям соответствует - анимация персонажа, с использованием нейронных сетей. Существуют статьи, видео, рабочие коммерческие решения, но нет готового подходящего мне, только части головоломки которые нужно собрать.

читать всю статью

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

Как анализировать данные из облачных сервисов для автоматизации бизнеса

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

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

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

Читать далее

Крах на финишной прямой, или как написать нетестируемый код

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

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

Читать далее

Все, что вам нужно знать об Airflow DAGs, ч.3.1 — Создание шаблонов

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

Все об использовании шаблонов в Airflow с примерами кода. Продолжение серии публикаций astronomer.io

Читать далее

12 мобильных офлайн-игр, чтобы научить ребенка программировать

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

Привет, Хабр!  Учить детей программировать с помощью мобильных игр – это уже классика. Собрала для вас подборку 12 игр и каждую протестировала. Есть варианты для дошкольников и школьников. Приложения работают в офлайн-режиме, поэтому можно отключить интернет и спокойно оставить малыша с телефоном. Он ничего случайно не купит и не зайдет, куда не нужно. И заниматься можно в любом месте, даже на даче с плохой связью! 

Читать далее

Подбираем скины в Counter-Strike: Global Offensive в цвет сумочки

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

Многопользовательская Counter-Strike: Global Offensive наполнена различными раскрасками для оружия разной степени редкости и привлекательности. Некоторые игроки гонятся за уникальными скинами, а другие выбирают на основе субъективного вкуса. Помимо официальной торговой площадки Steam, скины можно купить на сторонних ресурсах, доверие к которым невелико. Но в обоих случаях нет фильтра по цвету.

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

Как мы переходили с pip на Poetry

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

Всем привет! Я Станислав Бушуев, Software Engineer в Semrush. В этой статье я расскажу о том, как мы столкнулись с проблемой периодического обновления Python-зависимостей, тестировали решение с полной их фиксацией, ошибались, и в итоге перешли на Poetry.

Читать далее

Пишем Telegram бот текущей погоды по IP адресу на Python aiogram

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

Штош. В этой статье я расскажу вам, как создать Telegram бота, который получает текущую погоду по IP адресу. Мы будем использовать язык Python и асинхронную библиотеку для взаимодействия с Telegram Bot API - aiogram.

Читать далее

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