IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте нас в Twitter

     25.10.2017       Выпуск 201 (23.10.2017 - 29.10.2017)       Видео

Asyncio для процессинга распределенной базы данных

Видео со встречи группы PyNSK #17
Докладчик: Никита Семенов

О докладе:
Появление asyncio стало новой вехой в истории питона. По-настоящему удобный и эффективный способ запускать асинхронный код.

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

Для этого я возьму децентрализованные базы данных с web-интерфейсом, раскиданные по нескольким серверам, и покажу как их можно эффективно запроцесить только при помощи стандартных методов питона 3.4+ и aiohttp.

Слайды: https://www.slideshare.net/PyNSK/asyncio-81082020

     25.10.2017       Выпуск 201 (23.10.2017 - 29.10.2017)       Статьи

Где перспективно и адекватно использовать Python

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

     24.10.2017       Выпуск 201 (23.10.2017 - 29.10.2017)       Видео

Python для GameDev

Видео со встречи группы PyNSK #17
Докладчик: Станислав Каблуков

О докладе:
Расскажу о своём опыте использования Python для разработки игр. В каких игровых движках и программах для моделирования используется Python. 

Как и почему стоит использовать python для создания игр, и в каких случаях лучше отказаться от данной идеи. О плюсах и минусах использования Python. 

В докладе будет про: python, blender, Ren'py, KivEnt, Boo, UE4 и д.р.

Слайды: https://www.slideshare.net/PyNSK/python-gamedev

     23.10.2017       Выпуск 201 (23.10.2017 - 29.10.2017)       Статьи

Краткий курс машинного обучения или как создать нейронную сеть для решения скоринг задачи

Вопросы, которые разобраны в статье:

• Как собрать и подготовить данные для построения модели?
• Что такое нейронная сеть и как она устроена?
• Как написать свою нейронную сеть с нуля?
• Как правильно обучить нейронную сеть на имеющихся данных?
• Как интерпретировать модель и ее результаты?
• Как корректно оценить качество модели?

     23.10.2017       Выпуск 201 (23.10.2017 - 29.10.2017)       Статьи

«4 свадьбы и одни похороны» или линейная регрессия для анализа открытых данных правительства Москвы

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

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

     22.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

Расширяем и используем Flatpages в Django. Встраиваем CKEditor

Cегодня я хотел бы вам рассказать о том, как сделать модель, которая хранит в себе обычные страницы, а не отдельные записи в базе данных (для ListView, TemplateView и тд). Речь пойдёт о том, как расширить и дополнить существующие в Django flatpages. Но хотелось бы рассказать о проблеме, с которой я столкнулся и почему решил поделиться данным функционалом. Часто возникает ситуация, когда в админке для администратора сайта нужно реализовать функционал самой обычной страницы (одна запись в БД – это одна страница, где прописывается url, контент и доп. инфа для конкретной страницы). Тем самым можно создавать прямо из админки новые страницы с любым url и контентом.

     21.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

Пишем простой счётчик уникальных слов на Python с GUI на Tkinter

Данная статья написана для тех, кто только начал изучать Python. В ней я пошагово опишу создание простого счетчика слов из txt-файлов, применяя Tkinter. Исходный код написан под Python 2.7, в конце статьи я добавлю несколько комментариев относительно того, как перенести его под 3.6

     20.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

“Без data engineer-а ценность модели аналитика стремится к нулю” — интервью с дата инженером Николаем Марковым

Data Engineering становится все более популярным, многие компании постепенно открывают соответствующие вакансии. В связи с этим мы взяли интервью у дата инженера и преподавателя на программах “Специалист по большим данным” и “Data Engineer” Николая Маркова о том, что должны уметь data scientist-ы и data engineer-ы, чего им чаще всего не хватает и как найти свое место в анализе данных.

     20.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

Code review по-человечески (часть 1)

В последнее время я читал статьи о лучших практиках code review и заметил, что эти статьи фокусируются на поиске багов, практически игнорируя другие компоненты ревью. Конструктивное и профессиональное обсуждение обнаруженных проблем? Неважно! Просто найди все баги, а дальше само сложится.

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

     19.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

Руководство по созданию расширений для Jinja2 Jinja2

Jinja2 — Python-библиотека для рендеринга шаблонов, являющаяся де-факто стандартом при написании веб-приложений на Flask и довольно популярной альтернативой встроенной системе шаблонов Django. Хотя и будучи сильно привязана к языку, Jinja2 позиционирует себя как инструмент для дизайнеров и верстальщиков, упрощающий вёрстку и отделяющий её от разработки, и пытающийся по мере возможностей изолировать не-разработчиков от Python. Вёрстка, впрочем, не единственное возможное её применение; например, в своей работе я использую шаблоны Jinja2 для генерации SQL-запросов.

     18.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

Сравнение и создание морфологических анализаторов в NLTK

Здравствуйте. Это статья о сравнении существующих и создании своих морфологических анализаторов в библиотеке NLTK.

NLTK — пакет библиотек и программ для символьной и статистической обработки естественного языка, написанных на языке программирования Python. Отлично подходит для людей, изучающих компьютерную лингвистику, машинное обучение, информационный поиск [1].
В данной статье я буду сопровождать примеры кодом на языке Python (версии 2.7).

     17.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

Вышла Odoo 11 — открытая система для автоматизации бизнеса

В академ-городке Лувэн-ла-Нёв (Louvain-la-Neuve) недалеко от Брюсселя около недели назад прошла 3-х дневная конференция Odoo Experience 2017, которая собрала разработчиков и пользователей Odoo со всего мира.

Я там был, пиво пил, и про Odoo говорил. А этот пост пишу для тех, кто про Odoo ничего не слышал, или до сих пор не пробовал эту прекрасную платформу.

Odoo — это самая популярная в мире открытая платформа для бизнес-приложений, которая развивается с 2005 года (TinyERP -> OpenERP -> Odoo). 

     18.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Вакансии

Python разработчик в Ivideon (до 230к и выше руб)

Ivideon (http://ivideon.com/) - это популярный облачный сервис для домашнего и бизнес-видеонаблюдения.

Наша highload-платформа постоянно обрабатывает, хранит и стримит видео с десятков тысяч камер по всему миру. У нас собственные подсистемы кодирования видео, биллинг, распределённое хранилище архива и ещё десятки микросервисов для разных задач. Всё это работает на стеке Python/Tornado, C++/Asio, MongoDB, Redis, Hg (BitBucket).

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

Нужно хорошо разбираться в:
1. Программировании в целом (алгоритмы/структуры данных);
2. Проектировании и технологиях разработки (архитектурные паттерны/тестирование/документирование);
3. Сетевом программировании и распределённых системах;
4. Серверных Linux;
5. Грамотном выражении своих идей.

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

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

Формальные требования:

- Знание современного Python (PEP-8, 2.7 vs 3.x);
- Опыт разработки под Linux и высокий общий уровень владения этой системой (bash, популярные утилиты);
- Опыт работы с сетью (TCP, HTTP + REST);
- Знание классических алгоритмов и структур данных;
- Опыт работы с системами контроля версий (мы используем Mercurial).
- Опыт разработки с использованием одного из распространенных веб-фреймворков (Tornado, Flask, Django);
- Опыт работы с SQL- и NoSQL-базами (идеально - MongoDB);
- Плюсом будет владение C++ и опыт коммерческой разработки на нём;
- Опыт работы с project management-системами и багтрекерами.
- Знание паттернов и принципов проектирования;
- Плюсом будет опыт работы с видео-кодеками, передачей видео по сети или VoIP.

Кратко про нас и что предлагаем:

- Самому проекту уже более 10 лет, работаем по всему миру (тот же сайт и личный кабинет у нас уже доступен на 8 языках), есть представители в США и Европе.
- Команда облачного направление - 6 человек (хотим найти ещё парочку), it отдел - 45 человек, всего в компании нас более 170.
- По количеству пользователей сейчас приближаемся к 2.5 млн.
У нас большое облако на сервис-ориентированной архитектуре, решающее спектр задач от биллинга пользователей до элементов internet of things. 
- Ключевые подсистемы: публичный API, стриминговая платформа, облачный архив, видеоаналитика, биллинг, бэкофисные сервисы. Также команда облака поддерживает свои CI и test automation-платформу. Используем Python+Tornado, C++, Linux, MongoDB.
- Гибкий график. Работа в офисе в Москве на ст. м. Варшавская. От метро до офиса курсирует бесплатный автобус (2 минуты в пути) или 10 минут пешком;
- Удобная кухня в офисе с чаем/кофе и запасами печенек, тортиков, сладостей, фруктов и прочего;
- Настольный теннис для любителей активного отдыха и массажное кресло для всех остальных, часто играем в настольные игры и начали формировать команду для соревнований по пейнтболу;
- Молодой амбициозный коллектив, демократичная, дружеская атмосфера и очень адекватное руководство;
- Способствуем развитию и профессиональному росту сотрудников, помогаем с покупкой необходимой профессиональной литературы;
- Оформляем по ТК РФ с первого дня. Всё белое. Зарплатная вилка, в которой идеально было бы найти специалиста - до 230 000 рублей, но готовы обсуждать и выше.

Контакты:


Почта - m.kuzmin@ivideon.com
Telegram - https://telegram.me/maxim_kuzmin
Skype - kuzmin.maks

     17.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

История взлома всех игр в Telegram

Сейчас компьютерные игры везде. Присутствуют они и в Telegram. Расскажу о том, как были взломаны практически все игры этого мессенджера, обойдя самых первоклассных игроков, находящихся в топах скорбордов. Хочу поделится результатами исследований. О различных методиках взлома, читинга и путях обхода логики игр под катом.

     16.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

Поиск решения для быстрого создания интерфейсов СУБД

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

В статье я хотел бы рассказать о своем пути поиска такой системы.

     16.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

ScadaPy возможности применения modbus протокола

 

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

     16.10.2017       Выпуск 200 (16.10.2017 - 22.10.2017)       Статьи

Русскоязычный чат-бот Boltoon: создаем виртуального собеседника

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

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

На мой взгляд, в этом что-то есть… 


Тем не менее, о чат-ботах много говорят на Хабре. Они могут быть самые разные. Популярностью пользуются боты на базе нейронных сетей прогнозирования, которые генерируют ответ пословно. Это очень интересно, но затратно с точки зрения реализации, особенно для русского языка из-за большого количества словоформ. Мной был выбран другой подход для реализации чат-бота Boltoon. 

     14.10.2017       Выпуск 199 (09.10.2017 - 15.10.2017)       Статьи

Цветы, муха и хорошо отрепетированное случайное машинное обучение

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

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

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

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

     12.10.2017       Выпуск 199 (09.10.2017 - 15.10.2017)       Статьи

Как научить свою нейросеть анализировать морфологию

Недавно мы рассказывали про генератор стихов. Одной из особенностей языковой модели, лежащей в его основе, было использование морфологической разметки для получения лучшей согласованности между словами. Однако же у использованной морфоразметки был один фатальный недостаток: она была получена с помощью “закрытой” модели, недоступной для общего использования. Если точнее, выборка, на которой мы обучались, была размечена моделью, созданной для Диалога-2017 и основанной на закрытых технологиях и словарях ABBYY.

     12.10.2017       Выпуск 199 (09.10.2017 - 15.10.2017)       Статьи

Minecraft. Создание копировального аппарата

Предлагаем вместе создать в игре Minecraft копировальный аппарат

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