Обновить
775.73

Python *

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

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

Реализация алгоритмической теории игр на Python с Nashpy

Время на прочтение4 мин
Охват и читатели14K
Теория игр — это метод изучения стратегических ситуаций, когда результаты зависят не только от ваших действий, но и от того, что предпримут другие.

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

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



Под катом короткий рассказ про то, как можно задействовать теорию игр на Python при помощи библиотеки Nashpy.

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

Python Gateway в InterSystems IRIS

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

Эта статья посвящена Python Gateway — комьюнити-проекту с открытым исходным кодом для платформы данных InterSystems IRIS. Этот проект позволяет оркестрировать любые алгоритмы машинного обучения, созданные на языке Python (основная среда для многих Data Scientists), использовать многочисленные готовые библиотеки для быстрого создания адаптивных, роботизированных аналитических AI/ML-решений на платформе InterSystems IRIS. В этой статье я покажу как InterSystems IRIS может оркестровать процессы на языке Python, эффективно осуществлять двустороннюю передачу данных и создавать интеллектуальные бизнес-процессы.

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

Обучение и оценка модели с Keras

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


Это руководство охватывает обучение, оценку и прогнозирование (выводы) моделей в TensorFlow 2.0 в двух общих ситуациях:

  • При использовании встроенных API для обучения и валидации (таких как model.fit(), model.evaluate(), model.predict()). Этому посвящен раздел «Использование встроенных циклов обучения и оценки»
  • При написании кастомных циклов с нуля с использованием eager execution и объекта GradientTape. Эти вопросы рассматриваются в разделе «Написание собственных циклов обучения и оценки с нуля».

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

Создание полноценного Viberbot на Django 2 и Viber REST API. Часть первая — Webhook

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

Установка Webhook для работы bot на viber и отправка первого POST запроса к backend мессенджера


Опираясь на свой опыт разработки под Viber и множество неоднозначных мнений, публикую цикл статей по созданию и запуску viberbot. Для понимая полной картины в целом, будем работать с чистым REST API VIBER, без каких либо оберток.

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

Параллельно увидим все недостатки и преимущества botviber и поймем: чему в России легче быть — botviber VS bottelegram, главные отличия бот разработки этих платформ.

image

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

Статья больше расcчитана на новичков, кто не успел разобраться с REST API Viber.

В течение месяца по 1-2 tutorial в неделю кто захочет, тот научиться создавать боты на мессенджере Viber, c личной админ-панель, инструментами рассылки bulk-messages, без каких либо конструкторов и платформ. Также создадим minilanding-page (как у телеграм-ботов) для поиска и продвижения вашего бота.

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

Не хватает бота — тогда начнем

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

Автодополнение кода и проверка типов для boto3

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

image


Картинка предоcтавлена автором boto3-type-annotations, Allie Fitter


Сейчас мало кто пишет большие проекты на Python без аннотации типов. Это и просто, и позволяет отловить кучу ошибок еще на этапе написания кода, да и работает очень шустро. Но стоит добавить в зависимости boto3, и mypy начинает пестрить сообщениями о том, что аннотаций типов для boto3 не существует в природе.


Не страшно, существует же официальный генератор аннотаций для boto3 botostubs. Только он официально не выпускался, не обновляется и с mypy не работает.


Есть и замечательный boto3-type-annotations, но тоже немного заброшен, и поддержки mypy всё еще нет.


Как же проверять типы для boto3, а бонусом получить автодополнение кода?

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

Python для тестировщика: как маленькие скрипты c pandas помогают в тестировании больших наборов данных

Время на прочтение13 мин
Охват и читатели22K
Я работаю тестировщиком на проекте, суть которого состоит в сборе и хранении различных данных и формировании на их основе разных отчетов и файлов-выгрузок. При формировании таких отчетов учитывается большое количество условий для отбора данных и поэтому при тестировании приходится много работать с SQL-запросами в БД. Но для проверки правильности отбора данных и поиска лишних/пропавших данных этого зачастую не хваетает, поэтому пришлось искать дополнительные инструменты для этого.

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

Уникальный WSGI веб сервер c использованием ESP8266. Часть 1

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

Всем привет!

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

Основная аудитория — начинающие разработчики, знакомые с Python но желающие познать дзен работы http протокола.

Готовы? Пошли под кат.
Читать дальше →

~SMAK~ – программируемые контроллеры для умной усадьбы с использованием библиотеки asyncio на MicroPython

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


Преамбула


Применение интернета вещей в сельской местности гораздо шире, чем домашняя автоматизация, хотя это, конечно, вопрос терминологии – что под этим понимать. Тем не менее я задумал концепцию Умной Усадьбы как проект разумной автоматизации процессов, происходящих на объектах, расположенных на территории своей усадьбы, причем, подчас на приличном расстоянии от места, где нахожусь в тот или иной момент, но при этом хочется, как минимум, быть в достаточной степени уверенным в том, что происходит на этих объектах не выйдет за границы дозволенного, что я могу, при необходимости, оперативно получить представление о ситуации на усадьбе в целом и на каждом контролируемом объекте в частности, а так же, при необходимости, вмешаться в происходящие процессы не несясь, сломя голову, к тому объекту, который вызвал мою озабоченность, потому что я в этот момент занят чем-то важным, или просто – банально холодно и лень выходить из дома.
Читать дальше →

Переписываем генератор паролей

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

Password Policy


Пароли вне политики


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

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

Web-приложения на Flask: как бороться с циклическими импортами

Время на прочтение4 мин
Охват и читатели9.2K
Flask – один из самых популярных фреймворков Python, но некоторые ошибки при его использовании могут привести к определенным затруднениям. В этой статье мы расскажем о том, как не допустить возникновения циклических импортов в проекте.

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

Alpine собирает Docker билды под Python в 50 раз медленней, а образы в 2 раза тяжелей

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


Alpine Linux — часто рекомендованный как базовый образ для Docker`а. Вам говорят, что использование Alpine сделает ваши билды меньше, а процесс сборки быстрей.

Но если вы используете Alpine Linux для Python приложений, то он:

  • Делает ваши билды намного медленней
  • Делает ваши образы больше
  • Тратит ваше время
  • И в итоге может стать причиной ошибок в рантайме
Читать дальше →

Пишем сервис одноразовых записок на Python

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

КДПВ


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


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


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

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

Библиотеки для декодирования видео. Сравнение на Python и Rust

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

Многие задаются вопросом — насколько медленный Python в операциях декодирования? Правда ли, что компилируемые языки дают прирост скорости во всем, чего касаются? Что быстрее: OpenCV или ничего? Ответы на эти и другие бесполезные вопросы под катом вы прочитать не сможете. Там обычное скучное исследование производительности в конкретной задаче.
Все заинтересовавшиеся, добро пожаловать!

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

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

Когда код становится legacy и как с ним жить

Время на прочтение17 мин
Охват и читатели20K
Много лет назад, я пришел в один legacy-проект, который разрабатывал Владимир Филонов (pyhoster). Так я и познакомился с одним из организаторов MoscowPython, любителем копаться во внутренностях библиотек, а потом рассказывать об этом. Иронично, что теперь он собирается рассказывать, как выжить, если вам достался legacy. Это еще раз доказывает, что legacy порождают даже те, кто потом учит, как с этим жить. Мне очень хочется расспросить Владимира о том, что такое legacy, как им поменьше зарастать, как бороться, когда уже по уши в legacy, а когда всё бросать и писать заново (спойлер: никогда).

Но сперва посмотрите ролик, чтобы прочувствовать всю боль погружения в legacy…

Как я 1000 дней пользовался OpenHAB, а затем перешел на Home Assistant

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

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



В статье расскажу об опыте управления OpenHAB 1.х и 2.х и Home Assistant, а также приведу свои конфигурации.

OpenHAB vs Home Assistant

Как я преподавал, а потом методичку по Python писал

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

Весь прошлый год я отработал преподавателем в одном из провинциальных учебных центров (далее — УЦ), специализирующихся на обучении программированию. Я не буду называть этот учебный центр, так же вообще попытаюсь обойтись без названий фирм, фамилий авторов и т.д.
Читать дальше →

В зоне доступа. Находим расстояние от точки до области и сокращаем запросы обратного геокодинга

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


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

Простое руководство по дистилляции BERT

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

Если вы интересуетесь машинным обучением, то наверняка слышали про BERT и трансформеры.


BERT — это языковая модель от Google, показавшая state-of-the-art результаты с большим отрывом на целом ряде задач. BERT, и вообще трансформеры, стали совершенно новым шагом развития алгоритмов обработки естественного языка (NLP). Статью о них и «турнирную таблицу» по разным бенчмаркам можно найти на сайте Papers With Code.


С BERT есть одна проблема: её проблематично использовать в промышленных системах. BERT-base содержит 110М параметров, BERT-large — 340М. Из-за такого большого числа параметров эту модель сложно загружать на устройства с ограниченными ресурсами, например мобильные телефоны. К тому же, большое время инференса делает эту модель непригодной там, где скорость ответа критична. Поэтому поиск путей ускорения BERT является очень горячей темой.


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


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

Экспорт Google Forms + загрузка Google Script через REST API (Python)

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


У нас было две гугл-формы, 75 вопросов в каждой, 5 бизнес-пользователей, которые активно правили эти формы, а еще гугл-скрипт, экспортирующий форму в JSON. Не то что бы его было сложно каждый раз запускать руками, но раз начал автоматизировать свою работу, то иди в этом увлечении до конца.

В официальной документации сам черт ногу сломит, поэтому под катом мы подробно рассмотрим удаленную загрузку и запуск Google Apps Script через REST API, используя Python.
Читать дальше →

Книга «Изучаем Python: программирование игр, визуализация данных, веб-приложения. 3-е изд.»

Время на прочтение9 мин
Охват и читатели18K
image Привет, Хаброжители! Мы выпустили третью версию #1 Best Seller in Python Programming Amazon — популярного в мире руководства по языку Python.

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

Во второй части вы примените новые знания на практике и создадите три проекта: аркадную игру в стиле Space Invaders, визуализацию данных с удобными библиотеками Python и простое веб-приложение, которое можно быстро развернуть онлайн. Работая с книгой, вы научитесь: ∙ Использовать мощные библиотеки и инструменты Python: Pygame, Matplotlib, Plotly и Django ∙ Создавать 2D-игры разной сложности, которыми можно управлять с клавиатуры и мыши ∙ Создавать интерактивную визуализацию данных ∙ Разрабатывать, настраивать и развертывать веб-приложения ∙ Разбираться с багами и ошибками

Новое издание было тщательно переработано и отражает последние достижения в практиках программирования на Python. Первая часть книги была дополнена новой информацией о f-строках, константах и управлении данными. Во второй части был обновлен код проектов. Структура проектов и код стали более чистыми и понятными, теперь они используют всю мощь популярных библиотек и инструментов, таких как Plotly и Django.

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