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

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

     19.04.2017       Выпуск 174 (17.04.2017 - 23.04.2017)       Статьи

Как я сделал самый быстрый ресайз изображений. Часть 2, SIMD

 

В прошлый раз мы получили ускорение в среднем в 2,5 раза без изменения подхода. В этот раз я покажу, как применять SIMD-подход и получить ускорение еще в 3,5 раза. Конечно, применение SIMD для обработки графики не является ноу-хау, можно даже сказать, что SIMD был придуман для этого. Но на практике очень мало разработчиков используют его даже в задачах обработки изображений. Например, довольно известные и распространенные библиотеки ImageMagick и LibGD написаны без использования SIMD. Отчасти так происходит потому, что SIMD-подход объективно сложнее и не кроссплатформенный, а отчасти потому, что по нему мало информации. Довольно просто найти азы, но мало детальных материалов и разбора реальных задач. От этого на Stack Overflow очень много вопросов буквально о каждой мелочи: как загрузить данные, как распаковать, запаковать. Видно, что всем приходится набивать шишки самостоятельно.

     19.04.2017       Выпуск 174 (17.04.2017 - 23.04.2017)       Видео

Юрий Половинкин о том, зачем Python сисадмину

Выпускник курсов Learn Python Юрий Половинкин рассказал о том, зачем он записался на курсы и что из этого получилось.

     18.04.2017       Выпуск 174 (17.04.2017 - 23.04.2017)       Статьи

Обманываем время: о тестировании с «подставным» временем на Linux и Docker

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

Менять системное время глобально ой, как не хотелось. Муторно, плюс у меня в ней столько всего понаставлено, не дай Б-г что-то заглючит (вряд ли, но мало ли). Думал запустить VirtualBox, но уж больно лень было ставить «чистую» Убунту, расшаривать папки, и т. д., тем более что этот вариант жрёт, как троглодит серьёзно потребляет машинные ресурсы.

 

Но буквально недавно я начал ковырять Docker. «У него просто обязан быть механизм контроля системного времени внутри контейнера», — подумал я. Рассмотрим, что же в результате вышло.

     17.04.2017       Выпуск 174 (17.04.2017 - 23.04.2017)       Статьи

Открытый курс машинного обучения. Тема 8. Обучение на гигабайтах с Vowpal Wabbit

Вот мы постепенно и дошли до продвинутых методов машинного обучения, сегодня обсудим, как вообще подступиться к обучению модели, если данных гигабайты и десятки гигабайт. Обсудим приемы, позволяющие это делать: стохастический градиентный спуск (SGD) и хэширование признаков, посмотрим на примеры применения библиотеки Vowpal Wabbit. Домашнее задание будет как на реализацию SGD-алгоритмов, так и на обучение классификатора вопросов на StackOverflow по выборке в 10 Гб.

     17.04.2017       Выпуск 174 (17.04.2017 - 23.04.2017)       Статьи

Data science и качественный код

 

Обычно модели машинного обучения строят в jupyter-ноутбуках, код которых выглядит, мягко говоря, не очень — длинные простыни из лапши выражений и вызовов "на коленке" написанных функций. Понятно, что такой код почти невозможно поддерживать, поэтому каждый проект переписывается чуть ли не с нуля. А о внедрении этого кода в production даже подумать страшно.

Поэтому сегодня представляем на ваш строгий суд превью python'овской библиотеки по работе с датасетами и data science моделями. 

     17.04.2017       Выпуск 174 (17.04.2017 - 23.04.2017)       Статьи

Введение в машинное обучение с tensorflow TensorFlow

Серия моих статей является расширенной версией того, что я хотел увидеть когда только решил познакомиться с нейронными сетями. Он рассчитан в первую очередь на программистов, желающих познакомится с tensorflow и нейронными сетями. Уж не знаю к счастью или к сожалению, но эта тема настолько обширна, что даже мало-мальски информативное описание требует большого объёма текста. Поэтому, я решил разделить повествование на 4 части:

     15.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Статьи

История о том, как парсер превратился в полноценного МРКО бота для Телеграм Telegram

 Недавно я писал статью про то, как написать парсер дневника МРКО, а в конце пообещал написать про интеграцию с Телеграм ботом, о чем очень жалею. Сейчас бот уже готов и полностью функционирует. Хочу рассказать вам, что использовал и с какими трудностями столкнулся в этой работе.

     13.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Статьи

Векторные модели и русская литература

 

Вы никогда не задумывались, почему тексты классических русских писателей так ценятся, а сами писатели считаются мастерами слова? Дело явно не только в сюжетах произведений, не только в том, о чём написано, но и в том, как написано. Но при быстром чтении по диагонали осознать это трудно. Кроме того, текст какого-нибудь значимого романа нам просто не с чем сравнить: почему, собственно, так прекрасно, что в этом месте появилось именно это слово, и чем это лучше какого-то другого? В какой-то мере реальное словоупотребление могло бы контрастно оттенить потенциальное, которое можно найти в черновиках писателя. Писатель не сразу вдохновенно пишет свой текст от начала до конца, он мучается, выбирает между вариантами, те, что кажутся ему недостаточно выразительными, он вычеркивает и ищет новые. Но черновики есть не для всех текстов, они отрывочны и читать их сложно. Однако можно провести такой эксперимент: заменить все поддающиеся замене слова на похожие, и читать классический текст параллельно с тем, которого никогда не было, но который мог бы возникнуть в какой-то параллельной вселенной. Попутно мы можем попытаться ответить на вопрос, почему это слово в этом контексте лучше, чем другое, похожее на него, но всё-таки другое.

     12.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Видео

django-sitetree: навигация для сайта

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

     12.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Статьи

Как написать чат-бота для вк за 3 минуты

К сожалению, на данный момент нет хороших библиотек на Python2, для того, чтобы быстро создать чат-бота. Ниже я покажу, как легко можно написать примитивного чат бота для VK, используя API VK.

Статья написана для новичков, чтобы показать, что ничего сложного в написании ботов на Python нет.

     12.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Статьи

Модель колебательного звена в режиме резонансных колебаний на Python

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

     12.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Статьи

Нескучные запросы с Django ORM Annotate и Query Expressions Django

Некоторое время назад передо мной встала задача: выбрать из таблицы значения по пользователям. Причём, эти значения должны соответствовать определённому регулярному выражению. Но и это не конец условия: из выбранных выражений нужно вытащить substring. Опять же, по регулярке. Сделал я это довольно быстро, и захотелось поделиться опытом с тем, кто ещё не может применять Annotate и Query Expressions на практике

     11.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Статьи

Начинаем работу Python + Qt5 + QML урок №1 PyQt Qt

Сегодня познакомимся с QML. Узнаем что это такое и с чем его едят. Создадим небольшое приложение с использованием данной технологии.

     11.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Статьи

Когда GitHub выстреливает вам в голову, создается новый фреймворк. Идея, концепция и реализация «Rutetider»

Готовое архитектурное решение для мобильных устройств, включая iOS, Android, Telegram-bots, а также платформы, поддерживающие обработку http-запросов, выступающее в роли пет-проекта автора статьи, будет интересно желающим реализовать «карманное» расписание занятий для своих университетов и школ. 

     11.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Видео

Текстовые интерфейсы и зачем они нужны

Я расскажу про текстовые интерфейсы (TUI), области их применения и инструменты для создания таких интерфейсов под Python: curses, urwid и др.

     10.04.2017       Выпуск 173 (10.04.2017 - 16.04.2017)       Видео

Питон в малине

В докладе я расскажу об устройстве одноплатного компьютера и его периферии на примере Raspberry Pi.
Установку на него дистрибутива операционной системы, Python 3 и управление с помощью него периферией (i2c, spi, uart и отдельными pin). 
А ещё я это покажу вживую.

     07.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Статьи

Kaggle: Британские спутниковые снимки. Как мы взяли третье место

Так вот, данный текст — это скорее байки по мотивам, в которых, с одной стороны, всё — правда, а с другой, обилие лирических отступлений и прочей отсебятины не позволяет рассматривать его как что-то наукоемкое, а скорее просто как полезное и увлекательное чтиво, цель которого показать, как может происходить процесс работы над задачами в дисциплине соревновательного машинного обучения. Кроме того, в тексте достаточно много лексикона, который специфичен для Kaggle и что-то я буду по ходу объяснять, а что-то оставлю так, например, вопрос про гусей раскрыт не будет. 

     07.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Статьи

Нейронные сети в борьбе с раком

Ниже вы прочитаете обзор статьи The cornucopia of meaningful leads: Applying deep adversarial autoencoders for new molecule development in oncology, которую мы с коллегами из Insilico Medicine и МФТИ подготовили для американского журнала Oncotarget, с упором на реализацию предложенной модели во фреймворке tensorflow. Исходная задача была следующей. Есть данные вида: вещество, концентрация, показатель роста раковых клеток. Нужно сгенерировать новые вещества, которые останавливали бы рост опухоли при определенной концентрации. Датасет доступен на сайте NCI Wiki.

     06.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Статьи

7 вредных советов проектировщику REST API Django

Адаптация статьи REST WORST PRACTICES, © Jacob Kaplan-Moss. Статья написана применительно к Django, но информация будет актуальна для широкого круга специалистов.

Думаю что лучший способ понять как нужно делать, изучить как делать НЕ нужно. Представляю вашему вниманию вредные советы проектировщикам REST API.

     06.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Учебные материалы

Книга «Программируем на Python»

Вы наверняка слышали о книге Майкла Доусона (Michael Dawson), в которой он учит языку программирования Python тем же самым путем, то есть через программирование несложных игр. Учиться, создавая свои собственные развлекательные программы. 

Несмотря на развлекательный характер примеров, демонстрируется вполне серьезная техника программирования. Ниже приведен отрывок из главы «Объектно-ориентированное программирование. Игра «Блек-джек»»