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

Собрали в одном месте самые важные ссылки
консультируем про IT, Python

     14.02.2019       Выпуск 269 (11.02.2019 - 17.02.2019)       Статьи

Самые быстрые Python веб-фреймворки в 2019

В 2018 году Python укрепил свои позиции популярности среди программистов и вошел в Top 3 самых популярных языков на github. Все больше и больше людей переходит на светлую сторону…то есть Python. Появилось еще большее количество разработчиков, которые интересуются данным языком и ведут разработку своих проектов с его помощью. Одним из популярных направлений для Python является web-разработка. Хочется, чтобы не только процесс разработки был удобным и быстрым, но и сами проекты могли похвастаться скоростью и стабильностью работы.

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

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

     13.02.2019       Выпуск 269 (11.02.2019 - 17.02.2019)       Статьи

Знакомство с простейшей нейронной сетью и ее пошаговая реализация

Как-то раз я наткнулся на книгу под названием «Создай свою нейросеть», автор которой -Тарик Рашид и после прочтения остался доволен, в отличие от многих других методичек по нейронным сетям, которые по-своему, несомненно, хороши, в этой книге все подавалось простым языком c достаточным количеством примеров и советов

По этой же книге я и хочу пройтись пошагово, а именно по практической части — написанию кода простой нейронной сети.

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

     13.02.2019       Выпуск 269 (11.02.2019 - 17.02.2019)       Статьи

Устранение рекурсии в Python

На протяжении последних 20 лет я восхищался простоте и возможностям Python, хотя на самом деле никогда не работал с ним и не изучал подробно.

 

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

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

     13.02.2019       Выпуск 269 (11.02.2019 - 17.02.2019)       Статьи

Холиварный рассказ про линтеры

Все мы пишем код. Много кода. Само собой, бывают ошибки. Иногда это просто кривой код, а иногда цена ошибки — взорванный космический корабль. Конечно, никто не делает намеренных косяков, все в меру возможностей стараются следить за качеством, но без инструментов статического анализа вряд ли можно быть уверенным, что всё идеально.

Линтеры помогают приводить код к единому стилю и избегать ошибок. Правда, только в том случае, если вы готовы к страданиям, а не отмахиваетесь в конце концов «pylint: disable», только чтобы оно отстало. Какой должен быть линтер, и почему таки не обойтись Pylint, знает Никита Соболев (sobolevn), который понимает и любит линтеры настолько, что даже свою компанию назвал так, чтобы их не расстраивать — wemake.services.

     13.02.2019       Выпуск 269 (11.02.2019 - 17.02.2019)       Учебные материалы

Книга «Прагматичный ИИ. Машинное обучение и облачные технологии»

Эта книга Ноя Гифта предназначена для всех, кого интересуют ИИ, машинное обучение, облачные вычисления, а также любое сочетание данных тем. Как программисты, так и просто неравнодушные технари найдут тут для себя полезную информацию. Примеры кода даны на Python. Здесь рассматривается множество столь продвинутых тем, как использование облачных платформ (например, AWS, GCP и Azure), а также приемы машинного обучения и реализация ИИ. Джедаи, свободно ориентирующиеся в Python, облачных вычислениях и ML, также найдут для себя много полезных идей, которые смогут сразу применить в своей текущей работе.

     13.02.2019       Выпуск 269 (11.02.2019 - 17.02.2019)       Статьи

Шаблон фабричного метода и его реализация в Python

Перевод статьи: The Factory Method Pattern and Its Implementation in Python

     12.02.2019       Выпуск 269 (11.02.2019 - 17.02.2019)       Статьи

Создание и настройка портативной сборки Jupyter Notebook и Lab на Windows. Часть 1

Когда я начинал изучение Python, устанавливал впервые Jupyter Notebook, потом пытался передать с созданное в нём приложение на предприятие, я часто сталкивался с различными проблемами. То кириллица в имени пользователя мешает, то настройки не перенеслись, то ещё чего-то. Все эти проблемы я преодолел в основном самостоятельно, используя Google и затратив немало времени на их решение.

 

По мере роста опыта я научился создавать папку, в которой лежит переносимое с одного компьютера на другой виртуальное окружение Python, настройки Jupyter и Matplotlib, портативные программы (ffmpeg и др.) и шрифты. Я мог написать дома программу, скопировать всю эту папку на компьютер предприятия, и быть уверенным, что ничего не потеряется и не сломается на ровном месте. Потом я подумал, что такую папку можно дать и новичку в Python, и он получит полностью настроенную и переносимую среду.

     12.02.2019       Выпуск 269 (11.02.2019 - 17.02.2019)       Статьи

VBA и Python для автоматизации Excel и MS Office

Эта заметка более подробно раскрывает всем известный тезис: Под конкретную задачу надо выбирать наиболее подходящий инструмент применимо к офисной автоматизации.

VBA (Visual Basic for Applications), де-факто, самый популярный язык для автоматизации Microsoft Office. Доступен из коробки, помимо Excel, работает в PowerPoint, Outlook, Access, Project и других приложениях.

Если задать вопрос: «Какой язык программирования выбрать первым», то где-то в 90% всех случаев будет предложен Python. На практике здесь может быть и любой другой язык, но, исходя из популярности языка и своего опыта, буду сравнивать с ним.

     10.02.2019       Выпуск 268 (04.02.2019 - 10.02.2019)       Статьи

Buildbot: сказ с примерами еще об одной системе непрерывной интеграции

Buildbot, как несложно догадаться из названия, является инструментом для непрерывной интеграции (continuous integration system, ci). Про него уже было несколько статей на хабре, но, с моей точки зрения, из них не очень понятны преимущества сего инструмента. Кроме того, в них почти нет примеров, из-за чего трудно увидеть всю мощь программы. В своей статье я постараюсь восполнить эти недостатки, расскажу про внутренне устройство Buildbot'a и приведу примеры нескольких нестандартных сценариев.

     09.02.2019       Выпуск 268 (04.02.2019 - 10.02.2019)       Статьи

Начинаем FPGA на Python

Технология FPGA (ПЛИС) в настоящее время обретает большую популярность. Растёт количество сфер применения: помимо обработки цифровых сигналов, FPGA используются для ускорения машинного обучения, в blockchain технологиях, обработке видео и в IoT.

     09.02.2019       Выпуск 268 (04.02.2019 - 10.02.2019)       Статьи

Как устроен штрихкод?

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

Как устроен баркод, и что закодировано на этой картинке?

     09.02.2019       Выпуск 268 (04.02.2019 - 10.02.2019)       Статьи

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

Мало кто верит, что современный data science-стек может быть построен не на Python, но такие прецеденты есть :). Стек Одноклассников формировался долгие годы, в первую очередь программистами, перешедшими в data science, но всё ещё остались близкими к проду, поэтому в его основе лежат открытые технологии JVM-стека: Hadoop, Spark, Kafka, Cassandra и т.д. Это помогает нам сокращать время и затраты на ввод моделей в эксплуатацию, но иногда создаёт и сложности. Например, при подготовке базовых решений для участников SNA Hackathon 2019 пришлось сжать волю в кулак и погрузиться в мир динамической типизации. Подробности (и лёгкий троллинг) под катом :)

     09.02.2019       Выпуск 268 (04.02.2019 - 10.02.2019)       Статьи

Обширный обзор собеседований по Python. Советы и подсказки

После 3-х недель собеседований, поисков, учёбы, бессонных ночей (часто прокручивал в голове возможные повороты событий, варианты ответов и т.д.) я получил достаточно много предложений. Первые два пришлось отклонить, поскольку закончился deadline по принятию решения, а я ждал предложений от других контор. В результате я принял для себя конкретный день, чтобы определиться и ждал результатов текущих и пройденных собеседований. Честно говоря, выбор у меня был достаточно сложный, поскольку варианты, между которыми я выбирал, в целом были очень привлекательными. В общем я решил поставить для себя приоритетом направление развития, а не условия и проект. Даже после принятия решения (и предложения) другие продолжали приходить (но для меня это уже было неважно).

     07.02.2019       Выпуск 268 (04.02.2019 - 10.02.2019)       Статьи

Делаем прототип бота для боев в Clash Royale

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

     07.02.2019       Выпуск 268 (04.02.2019 - 10.02.2019)       Статьи

Пишем XGBoost с нуля — часть 2: градиентый бустинг

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

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

     07.02.2019       Выпуск 268 (04.02.2019 - 10.02.2019)       Статьи

Ускорить сложные вычисления с минимальной загрузкой RAM

В процессе освоения ML, СNN, NN на Python новичок почти всегда сталкивается с проблемой скорости вычислений, а иногда и нехватки оперативной памяти.

Особенно это заметно с большими базами, которые по размеру больше 50% свободной RAM. Мысли о покупке более достойного железа всего лишь одно из возможных решений.

Иной вариант использовать одну из возможностей в Python — итерации по самой функции.

Простой и наглядный пример. Допустим Вам необходимо возвести в 200 000 степень ряд чисел от 1 до 10 и сложить их сумму. В итоге вы должны получить число длинной 200 тыс знаков. это в 2 раза больше чем google)

     06.02.2019       Выпуск 268 (04.02.2019 - 10.02.2019)       Статьи

Пишем XGBoost с нуля — часть 1: деревья решений

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

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

     06.02.2019       Выпуск 268 (04.02.2019 - 10.02.2019)       Новости

Избран управляющий совет 2019

О том, кто будет направлять Питон в ближайшее время