Обновить
814.7

Python *

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

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

Как написать смарт-контракт на Python в сети Ontology. Часть 1: Blockchain & Block API

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

Это первая часть из серии обучающих статей о создании смарт-контрактов на Python в блокчейн сети Ontology при помощи инструмента разработки смарт-контрактов SmartX.

В этой статье мы начнём знакомство с API смарт-контракта Ontology. API смарт-контракта Ontology разделен на 7 модулей:

  1. Blockchain & Block API,
  2. Storage API,
  3. Runtime API,
  4. Native API,
  5. Upgrade API,
  6. Execution Engine API и
  7. Static & Dynamic Call API.

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

Давайте приступим!

Для начала создайте новый контракт в SmartX, а затем следуйте инструкциям ниже.
Читать дальше →

Типы для HTTP-API, написанных на Python: опыт Instagram

Время на прочтение9 мин
Охват и читатели9.1K
Сегодня мы публикуем второй материал из цикла, посвящённого использованию Python в Instagram. В прошлый раз речь шла проверке типов серверного кода Instagram. Сервер представляет собой монолит, написанный на Python. Он состоит из нескольких миллионов строк кода и имеет несколько тысяч конечных точек Django.



Эта статья посвящена тому, как в Instagram используют типы для документирования HTTP-API и для обеспечения соблюдения контрактов при работе с ними.
Читать дальше →

LEGO MINDSTORMS Education EV3 + MicroPython: программируем детский конструктор взрослым языком

Время на прочтение5 мин
Охват и читатели61K
Привет, Хабр! Мы уже рассказывали о платформе LEGO MINDSTORMS Education EV3. Основные задачи этой платформы — обучение на практических примерах, развитие навыков STEAM и формирование инженерного мышления. В ней можно проводить лабораторные работы по изучению механики и динамики. Лабораторные стенды из кубиков LEGO и утилиты по регистрации и обработке данных делают опыты еще интереснее и нагляднее и помогают детям лучше понять физику. Например, школьники могут собрать данные о температуре плавления и с помощью приложения систематизировать их и представить в виде графика. Но это только начало: сегодня мы расскажем, как дополнить этот набор средой программирования MicroPython и использовать его для обучения робототехнике.


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

Поиск похожих инцидентов и заявок. Метрики и оптимизация

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

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


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


Под катом я расскажу про:


  • сбор отзывов на рекомендации
  • выработку метрик для оценки качества рекомендаций
  • построение цикла оптимизации модели
  • полученные инсайты и новую модель
Читать дальше →

Статический анализ больших объёмов Python-кода: опыт Instagram. Часть 2

Время на прочтение8 мин
Охват и читатели7.1K
Сегодня публикуем вторую часть перевода материала, посвящённого статическому анализу больших объёмов серверного Python-кода в Instagram.



Первая часть
Читать дальше →

Почему Солнце вращается вокруг Земли

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


В России одна известная организация под названием ВЦИОМ проводила социологическое исследование, на котором гражданам предлагали ответить на вопрос: «Согласны ли вы со следующим утверждением: Солнце вращается вокруг Земли?» Данные этого опроса многократно перепечатываются в СМИ, и на различных сетевых ресурсах в комментариях часто ссылаются на него при обсуждении различных общественно-политических проблем.


Если бы я принял участие в этом опросе, я бы, скорее всего, был среди тех 30%, кто ответил утвердительно. Ниже я постараюсь объяснить, почему.

34 open source библиотеки Python (2019)

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

Мы просмотрели и сравнили 10 000 open source библиотек для Python и выбрали 34 самые полезные.

image

Мы сгруппировали эти библиотеки в 8 категорий.
Читать дальше →

Решаем уравнение простой линейной регрессии

Время на прочтение23 мин
Охват и читатели41K
В статье рассматривается несколько способов определения математического уравнения линии простой (парной) регрессии.

Все рассматриваемые здесь способы решения уравнения основаны на методе наименьших квадратов. Обозначим способы следующим образом:

  • Аналитическое решение
  • Градиентный спуск
  • Стохастический градиентный спуск

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

Весь код, приведенный в статье, написан на языке python 2.7 с использованием Jupyter Notebook. Исходный код и файл с данными выборки выложен на гитхабе

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

Для иллюстрации материала используем очень простой пример.
Читать дальше →

9 лучших опенсорс находок за октябрь 2019

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

Доброго ноября, дамы и господа. Подготовил для вас подборку самых интересных находок из опенсорса за октябрь 2019.


За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывается оригинал).


В сегодняшнем выпуске.
Технологии внутри: Rust, Swift, TypeScript, JavaScript, Go, Scala, Python.
Тематика: веб и мобильная разработка, визуализация данных, инструменты разработчика, документация.


Прошлый выпуск.

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

Статический анализ больших объёмов Python-кода: опыт Instagram. Часть 1

Время на прочтение6 мин
Охват и читатели18K
Серверный код в Instagram пишут исключительно на Python. Ну, в основном это именно так. Мы используем немного Cython, а в состав зависимостей входит немало C++-кода, с которым можно работать из Python как с C-расширениями.



Наше серверное приложение — это монолит, представляющий собой одну большую кодовую базу, состоящую из нескольких миллионов строк и включающую в себя несколько тысяч конечных точек Django (вот выступление, посвящённое использованию Django в Instagram). Всё это загружается и обслуживается как единая сущность. Из монолита выделено несколько сервисов, но в наши планы не входит сильное разделение монолита.

Наша серверная система — это монолит, который очень часто меняется. Каждый день сотни программистов делают сотни коммитов в код. Мы непрерывно разворачиваем эти изменения, делая это каждые семь минут. В результате развёртывание проекта в продакшне выполняется около ста раз за сутки. Мы стремимся к тому, чтобы между попаданием коммита в ветку master и развёртыванием соответствующего кода в продакшне проходило бы менее часа (вот выступление об этом, сделанное на PyCon 2019).

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

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

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

Вторая часть
Читать дальше →

Работа над PEG на Core Developer Sprint

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

В этой статье я не буду рассказывать о новых фичах генератора парсера — я достаточно описал его в предыдущих частях. Вместо этого хочу рассказать что я делал на Core Developer Sprint на прошлой неделе, прежде чем всё сотрётся из моей памяти. Хотя большая часть материала так или иначе всё равно касается PEG. Так что мне придётся показать некоторый код, который задаёт направление в реализации PEG-парсера для Python 3.9.



Каждый год в течение последних четырёх лет группа разработчиков ядра Python собирается на недельный спринт в экзотическом месте. Эти спринты спонсируются принимающей стороной и PSF. Первые два года мы были у Facebook в Mountain View, в прошлом году была очередь Microsoft в Bellevue, а на этот спринт выбрали офис Bloomberg в Лондоне. (Должен сказать, что он выглядит довольно круто.) Слава core-разработчику Pablo Galindo Salgado за организацию!

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

Python v3.x: как увеличить скорость декоратора без регистрации и смс

Время на прочтение5 мин
Охват и читатели6.2K
Вначале была эта статья. Потом к ней появился комментарий. А в результате я углубился в чтение матчасти, закопался в дебаг и смог оптимизировать код из первой части этой истории. Предлагаю вместе со мной пройтись по основным моментам.
Читать дальше →

«Глубокое обучение с подкреплением. AlphaGo и другие технологии»: анонс книги

Время на прочтение6 мин
Охват и читатели8.3K
Всем привет!

У нас доступна для предзаказа одна из лучших книг по обучению с подкреплением, в оригинале именуемая "Deep Reinforcement Learning Hands-on" под авторством Максима Лапаня. Вот как будет выглядеть обложка русского перевода:



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

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

Реализация остальных возможностей PEG

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

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



Мы рассмотрим следующие фичи PEG:

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

Python за месяц

Время на прочтение6 мин
Охват и читатели151K
Руководство для абсолютных чайновичков.
(Прим. пер.: это советы от автора-индуса, но вроде дельные. Дополняйте в комментах.)

image


Месяц — это много времени. Если тратить на обучение по 6-7 часов каждый день, то можно сделать дофига.

Цель на месяц:

  • Ознакомиться с основными понятиями (переменная, условие, список, цикл, функция)
  • Освоить на практике более 30 проблем программирования
  • Собрать два проекта, чтобы применить на практике новые знания
  • Ознакомиться хотя бы с двумя фреймворками
  • Начать работу с IDE (средой разработки), Github, хостингом, сервисами и т. д.

Так вы станете младшим разработчиком (джуном) Python.

Теперь план по неделям.
Читать дальше →

Вывод модели динамической системы дискретного фильтра Калмана для произвольной линейной системы

Время на прочтение8 мин
Охват и читатели7.4K
Фильтр Калмана (ФК) является оптимальным линейным алгоритмом фильтрации параметров динамической линейной системы при наличии неполных и зашумленных наблюдений. Этот фильтр находит широкое применение в технических системах управления до оценок динамики изменения макроэкономических ситуаций или общественного мнения.

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

Stereopi+WebRTC=telepresense по-домашнему

Время на прочтение8 мин
Охват и читатели5K
Для начала ролик с youtube для вдохновения:


Предупреждение: проект на видео — лишь образец, который можно сделать по туториалу в статье в части стереозрения и «поворотов головой». Танки с пультами xbox не прилагаются.

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

Telegram bot, показывающий первые страницы 10 самых популярных мировых периодических изданий

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

Сейчас часто можно услышать, что российские сми формируют, или кто-то заставляет их формировать ограниченную и по сути пропагандистскую информационную повестку. Я решил проверить в меру своих способностей и желания так ли это? Для чего написал Telegram bot, который каждый день может отправлять первые страницы топ-10 самых популярных мировых газет, таких как:


  1. The New York Times
  2. The Guardian
  3. China Daily
  4. USA Today
  5. Bild
  6. The Washington Post
  7. The Asian Age
  8. The Wall Street Journal
  9. The Japan Times
  10. Los Angeles Times

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


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


Если интересно попробовать бота в деле, пожалуйста Main press pages @press_pages_bot.

Автоматическая визуализация python-кода. Часть четвертая: поддержка документирования

Время на прочтение9 мин
Охват и читатели7.6K
Ссылки на предыдущие части:

  • Часть первая — введение, графические примитивы, необходимые для создания графического представления кода
  • Часть вторая — реализация генератора графического представления кода (выполнена, в основном, на Питоне), микро язык разметки
  • Часть третья — новые возможности графики

Пример среды, поддерживающей такое графическое представление показан на картинке ниже.

image

Среда, поддерживающая графическое представление кода

В четвертой части статьи речь пойдет о поддержке процесса документирования.
Читать дальше →

Data Science Digest (October 2019)

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


Приветствую всех!

Встречайте свежий выпуск дайджеста c подборкой интересных и полезных материалов под катом.
Читать дальше →