Обновить
1024K+

Python *

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

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

Автоматизация рыбной ловли для World of Warcraft

Время на прочтение5 мин
Охват и читатели97K
Познакомился с World of Warcraft очень давно и люблю его весь, но одна вещь больше всего не давала мне покоя — рыбная ловля. Это нудное повторяющееся действие, где ты просто нажимаешь на кнопку рыбной ловли и тыкаешь на поплавок раз в 5-15 секунд. Мой навык разработки рос, а ситуация с рыбной ловле так и не улучшалась с каждым годом что я играл, поэтому я решил убить двух зайцев сразу — начать осваивать python и всё же сделать бота для себя.
Читать дальше →

Pygest #15. Релизы, статьи, интересные проекты из мира Python [01 августа 2017 — 14 августа 2017]

Время на прочтение2 мин
Охват и читатели9.9K
image Всем привет! Это уже пятнадцатый выпуск дайджеста на Хабрахабр о новостях из мира Python.

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

А теперь к делу!
Перейти к дайджесту

Метод оптимизации Trust-Region DOGLEG. Пример реализации на Python

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


Trust-region метод (TRM) является одним из самых важных численных методов оптимизации в решении проблем нелинейного программирования (nonlinear programming problems). Метод базируется на определении региона вокруг лучшего решения, в котором квадратичная модель аппроксимирует целевую функцию.

Методы линейного поиска (line search) и методы trust-region генерируют шаги с помощью аппроксимации целевой функции квадратичной моделью, но использую они эту модель по-разному. Линейный поиск использует её для получения направления поиска и дальнейшего нахождения оптимального шага вдоль направления. Trust-region метод определяет область (регион) вокруг текущей итерации, в котором модель достаточно аппроксимирует целевую функцию. В целях повышения эффективности направление и длина шага выбираются одновременно.

Trust-region методы надежны и устойчивы, могут быть применены к плохо обусловленным задачам и имеют очень хорошие свойства сходимости. Хорошая сходимость обусловлена тем, что размер области TR (обычно определяется модулем радиус-вектора) на каждой итерации зависит от улучшений сделанных на предыдущих итерациях.
Читать дальше →

Учим робота готовить пиццу. Часть 1: Получаем данные

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


Автор изображения: Chuchilko


Не так давно, после завершения очередного конкурса на Kaggle — вдруг возникла идея попробовать сделать тестовое ML-приложение.
Например, такое: "помоги роботу сделать пиццу".


Разумеется, основная цель этого ровно та же — изучение нового.


Захотелось разобраться, как работают генеративные нейронные сети (Generative Adversarial Networks — GAN).


Ключевой идеей было обучить GAN, который по выбранным ингредиентам сам собирает картинку пиццы.


Ну что ж, приступим.

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

Резервное копирование базы mysql и файлов на удаленный FTP — Python 3

Время на прочтение6 мин
Охват и читатели11K
Начал изучать волшебный язык Python3 и решил испробовать его в действие на своем маленьком VPS.

На сервере стоит Mysql, Apache, nginx… во общем простой стандартный набор, там же хостятся с два десятка клиентских сайтов.

Каждый день делается резервная копия всех баз и файлов доменнов средствами приметного скрипта #!bin/bash

Я решил использовать Python 3… Вот непосредственно и сам код:
Читать дальше →

OpenDataScience и Mail.Ru Group проведут открытый курс по машинному обучению

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

6 сентября 2017 года стартует 2 запуск открытого курса OpenDataScience по анализу данных и машинному обучению. На этот раз будут проводиться и живые лекции, площадкой выступит московский офис Mail.Ru Group.



Если коротко, то курс состоит из серии статей на Хабре (вот первая), воспроизводимых материалов (Jupyter notebooks, вот github-репозиторий курса), домашних заданий, соревнований Kaggle Inclass, тьюториалов и индивидуальных проектов по анализу данных. Здесь можно записаться на курс, а тут — вступить в сообщество OpenDataScience, где будет проходить все общение в течение курса (канал #mlcourse_open в Slack ODS). А если поподробней, то это вам под кат.

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

Начало работы с Wagtail CMS (Django) и GraphQL

Время на прочтение3 мин
Охват и читатели8.9K
Если у вас появилась потребность добавить React в Wagtail CMS, да еще и с использованием GraphQL, то это руководство должно помочь вам в этом.

image

Это перевод статьи из официального блога Wagtail, автор Brent Clark.
Читать дальше →

Основы работы с LongPoll сервером ВКонтакте

Время на прочтение31 мин
Охват и читатели61K
Доброго времени суток! Недавно я решил познакомиться с API крупнейшей социальной сети Европы — ВКонтакте. В разделе «Для разработчиков» содержится довольно подробная документация, а в интернете существует немалое количество статей, помогающих освоиться с VK API, поэтому я решил, что серьезных проблем в изучении быть не должно. Однако, когда я добрался до LongPoll сервера, обнаружилось, что статей по работе с ним практически нет, а официальная документация не настолько полна, чтобы полностью понять изучаемый материал. Пришлось методом проб и ошибок пытаться понять принцип работы LongPoll-а, что через некоторое время мне сделать все-таки удалось. Я решил поделиться изученным материалом с другими людьми, чтобы сократить их время изучения нового. Ниже вы можете ознакомиться с разделами, про которые мне удалось написать.
Читать дальше →

Ограничения глубинного обучения и будущее

Время на прочтение19 мин
Охват и читатели23K
Эта статья представляет собой адаптацию разделов 2 и 3 из главы 9 моей книги «Глубинное обучение с Python» (Manning Publications).

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



Ограничения глубинного обучения


Глубинное обучение: геометрический вид


Самая удивительная вещь в глубинном обучении — то, насколько оно простое. Десять лет назад никто не мог представить, каких потрясающих результатов мы достигнем в проблемах машинного восприятия, используя простые параметрические модели, обученные с градиентным спуском. Теперь выходит, что нужны всего лишь достаточно большие параметрические модели, обученные на достаточно большом количестве образцов. Как сказал однажды Фейнман о Вселенной: «Она не сложная, её просто много».
Читать дальше →

Создаем массу асинхронных запросов при помощи Grequests

Время на прочтение3 мин
Охват и читатели20K
Requests хорошо, но grequests лучше. Я не знаю лучше, эффективней библиотеку, которая умеет быстро и элегантно выполнять HTTP-запросы нежели requests, данная библиотека — несомненный лидер, в данном плане.

Но так как с асинхронностью, у неё хромает, выполнять асинхронные запросы возможно с использованием threading или gevent.
Читать дальше →

Пишем бота для Slack на Python

Время на прочтение3 мин
Охват и читатели23K
Небольшой туториал, как сделать простого слэк-бота на Python, развернуть его на Heroku, подключить Travis CI за двадцать минут и начать делать что-то полезное.

Итак у нас есть бот, который карает людей пишущих в чат «привет», только чтобы отвлечь нас от работы. Как сделать себе такого же, но лучше?
Читать дальше →

Карта самоорганизации (Self-orginizing map) на TensorFlow

Время на прочтение6 мин
Охват и читатели42K
Привет, Хабр! Недавно начал свое знакомство с библиотекой глубокого обучения (Deep Learning) от Google под названием TensorFlow. И захотелось в качестве эксперимента написать карту самоорганизации Кохонена. Поэтому решил заняться ее созданием используя стандартный функционал данной библиотеки. В статье описано что из себя представляет карта самоорганизации Кохонена и алгоритм ее обучения. А также приведен пример ее реализации и что из этого всего вышло.

image

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

Как я сделал самый быстрый ресайз изображений. Часть 3, числа с фиксированной точкой

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

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


В предыдущих частях:


Часть 0
Часть 1, общие оптимизации
Часть 2, SIMD

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

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

Генератор кликов на Python для программы Data Engineer

Время на прочтение5 мин
Охват и читатели8.7K
Процесс разработки образовательной программы очень похож на процесс разработки нового продукта. И там, и там ты пытаешься вначале понять, а есть ли спрос на то, что ты собираешься производить? Существует ли в реальности та проблема, которую ты хочешь решить?

Предыстория


В этот раз для нас всё было довольно просто. Несколько выпускников нашей программы «Специалист по большим данным» в течение, наверное, года просили:
Сделайте для нас еще одну программу, где мы бы могли научиться работать с Kafka, Elasticsearch и разными инструментами экосистемы Hadoop, чтобы собирать пайплайны данных.

Потом со стороны работодателей стали «прилетать» запросы, которые собирательно можно описать так:
Data Engineer'ы – это очень горячие вакансии!
Реально их уже на протяжении полугода никак не можем закрыть.
Очень здорово, что вы обратили внимание именно на эту специальность. Сейчас на рынке очень большой перекос в сторону Data Scientist'ов, а больше половины работы по проектам – это именно инженерия.

С этого момента стало понятно, что спрос есть, и проблема существует. Надо бросаться в разработку программы!
Читать дальше →

Тематическое моделирование средствами BigARTM

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

Введение


Обратил внимание на перевод публикации под названием «Тематическое моделирование репозиториев на GitHub» [1]. В публикации много теоретических данных и очень хорошо описаны темы, понятия, использование естественных языков и многие другие приложения модели BigARTM.

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

GeekUniversity открывает набор студентов на факультет Python-разработки

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


В нашем онлайн-университете для программистов открылся новый факультет. Теперь в GeekUniversity студенты смогут освоить Python-разработку на Middle-уровне и гарантированно начать карьеру сразу после обучения.


GeekUniversity — совместный образовательный проект Mail.Ru Group и IT-портала GeekBrains. Программу обучения и спецкурсы для факультета разрабатывают Avito, Альфа-банк, МТС, Тинькофф, DeliveryClub.

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

Pygest #14. Релизы, статьи, интересные проекты из мира Python [18 июля 2017 — 31 июля 2017]

Время на прочтение2 мин
Охват и читатели6.3K
image Всем привет! Это уже четырнадцатый выпуск дайджеста на Хабрахабр о новостях из мира Python.

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

А теперь к делу!
Перейти к дайджесту

Интерфейс vs interface

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

Одним из принципов объектно-ориентированного проектирования является программирование на уровне интерфейса, а не на уровне реализации. Видимо, из-за того что код в книгах и статьях по проектированию представлен преимущественно на Java, программисты на других языках, особенно с динамической типизацией, испытывают трудности с переносом знаний из этих книг и статей на свой рабочий язык программирования.


Часто сложность в понимании принципа "программируйте на уровне интерфейса" кроется в концентрации на инструменте, а не на смысле. Из-за наличия в Java ключевого слова interface, происходит искажение понимания принципа, и он превращается в "программируйте, используя interface". Так как в Python инструмент в виде ключевого слова interface отсутствует, некоторые питонисты пропускают этот принцип.


В книге Банды Четырех примеры приводятся на Smalltalk и C++. Оба этих языка не имеют ключевого слова interface, но это не мешает авторам применять принцип, используя имеющиеся в распоряжении конструкции языка:


У манипулирования объектами строго через интерфейс абстрактного класса есть два преимущества:

  • клиенту не нужно иметь информации о конкретных типах объектов, которыми он пользуется, при условии, что все они имеют ожидаемый клиентом интерфейс;
  • клиенту необязательно "знать" о классах, с помощью которых реализованы объекты. Клиенту известно только об абстрактном классе (или классах), определяющих интерфейс.


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

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

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

Что необходимо для качественной Web разработки?

Время на прочтение2 мин
Охват и читатели8.7K
Какие знания необходимы современному, а главное востребованному веб-разработчику?

За скобками остается базовое умение писать код и всё что связано с умением работать в команде и иные очевидные вещи. Для нашей программы курса «Web-Разработчик», который стартует 5 августа, мы очертили именно следующий круг знаний и скилов, считая их основополагающими в специальности:

Во-первых, код ревью: стоит писать такой код, чтобы он был повторно используем, понятен и прост, сюда относятся DRY, KISS, цикломатическая сложность, читаемость, преждевременная оптимизация, чистые функции, статический анализ, соблюдение style guide и инструменты для отслеживания всего этого. Это как дизайн или психология: каждый считает себя экспертом, но далеко не каждый таковым является на деле — тут важны чёткие принципы, системный подход конечно же практика.

Во-вторых, разработчику неплохо было бы быть знакомым со спецификой Python, синтаксическим сахаром и подкапотной жизнью. Как правильно использовать генераторы, итераторы, декораторы и контекстные менеджеры, как на практике применять MRO и бороться с утечками памяти – все это полезные практические навыки, которые делают код лаконичнее, понятнее и «поддерживаемее», а продукт – более стабильным и приспосабливаемым.
Читать дальше →

SOAP и REST сервисы с помощью Python-библиотеки Spyne

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

Знакомство с библиотекой Spyne


В данной статье я хочу рассказать о замечательной Python-библиотеке Spyne. Мое знакомство с Spyne началось в тот момент, когда передо мной поставили задачу написать Веб-сервис, который будет принимать и отдавать запросы через SOAP-протокол. Немного погуглив я наткнулся на Spyne, которая является форком библиотеки soaplib. А еще я был удивлен, насколько мало русскоязычной информации встречается о данной библиотеке.

С помощью Spyne можно писать веб-сервисы, которые умеют работать с SOAP, JSON, YAML, а написанный скрипт можно запустить через mod_wsgi Apache. Итак, давайте рассмотрим несколько примеров, напишем работающие скрипты и настроим так, чтобы скрипты работали через apache.
Читать дальше →