Sublime Text 3 как Python IDE

Пока на RealPython разжигают войну IDE и объясняют, как настроить среду разработки на Python под: Sublime VIM Emacs Я расскажу, почему я (пока) переехал на Sublime Text 3 и как я его настроил. А также отмечу, чего в нём не хватает для счастливой разработки. PyCharm — замечательная IDE для Python. Это, несомненно, так, но если нужно разрабатывать full‑stack, то одним им не обойтись. На работе это не проблема. Но вот дома покупать лицензию на все продукты JetBrains ради экспериментов накладно. ...

7 декабря 2015 г.

Flask: что почитать

НЕ! Обновляемый список полезных ссылок с материалами по Flask Версия: 1.0. Последнее обновление: 30.11.2015. Начинающим «The Flask Mega‑Tutorial» — подробный пошаговый учебник по веб‑фреймворку Flask. Покрывает все основные темы: шаблоны, формы, базу данных, интернационализацию, деплоймент на сервере. «Flask Workshop» — трёхчасовое видео от того же автора. Демонстрация основных возможностей Flask на живом примере. Ещё один учебник — «Flask TodoMVC». На этот раз создают не блог, а список задач (To‑Do). Плюс этого учебника в том, что рассматривается не только Flask, но и его использование в связке с JS‑фреймворком Backbone.js. «Flask by Example» — учебный пример с Flask, Redis и Angular. Если ещё не устали от учебников и учебных проектов, посмотрите ещё один материал от Real Python — «Python Web Applications With Flask». Помимо того, что это хороший, подробный и понятный учебник, в нём описывается переход от небольшого приложения к среднему — во Flask это нетривиальная задача. В третьей части рассматриваются вопросы тестирования и отладки приложения. Опытным пользователям ...

30 ноября 2015 г.

Конвертирование андроид приложения на Kotlin

На прошлой неделе наткнулся на очень интересную статью от Антонио Лева: «Converting Plaid to Kotlin: Lessons Learned». В ней автор на примере одного Android‑приложения сравнивает Kotlin и Java. Цель — выявить преимущества и недостатки разработки на Kotlin. Если посмотреть на числа, которые приводит автор, то по ним видно, что на Kotlin код получается значительно компактнее: на 22 % меньше строк, на 27 % меньше символов. Это значит, что программировать на Kotlin значительно быстрее, чем на Java. Да и приятнее (но это цифрами не измерить). ...

16 ноября 2015 г.

Highload++ 2015

На прошлой неделе прошла конференция Highload++ 2015. Конференция большая: доклады шли в 5 потоков. Казалось бы, выбор большой, но если отбросить секцию менеджмента и секцию фронтенд‑разработки, то в каждом втором докладе будет PostgreSQL. Один из моих коллег так высказался о конференции: «Highload++ 2015 — 40 % PostgreSQL, 40 % очереди, 20 % приправы». Не буду рассказывать о всех докладах, которые я посетил. Как и на всякой конференции, было много неудачных докладов. Я расскажу немного о трёх, на мой взгляд, самых достойных докладах конференции. Если будете покупать видео с этой конференции, то записи первых двух докладов стоят того, чтобы их посмотреть. Про третий доклад разговор отдельный. ...

11 ноября 2015 г.

Cpython Internals Walk Through

Ресурсов о том, как работает стандартная реализация Python (CPython) внутри, мало. Пробиваться самому сквозь не самый очевидный код на C — задача для питониста очень сложная. Чтение кода на C требует определённой практики. Серия лекций, прочитанная Филипом Гио, — хорошая отправная точка. Филип подробно рассказывает о внутренних структурах Python, проводя студентов от байт‑кода к структурам, написанным на C. Темы, охваченные курсом: Байт‑код и главный цикл интерпретатора. Фреймы, вызовы функций, области видимости. PyObject. Типы данных в Python. Объект с кодом, объект функции. Итераторы. Классы и объекты. Генераторы. Рассказ ведётся с большим количеством примеров. Каждое погружение внутрь Python начинается с конкретного кусочка кода на Python. Потом разбирается получившийся байт‑код. Дальше — уже команда за командой — разбирается реализация команд байт‑кода на C. ...

2 ноября 2015 г.

Самые слабые стороны программистов-самоучек

Меня огорчает реакция людей, когда на вопрос «Как мне стать хорошим программистом?» советуешь прочитать книгу по алгоритмам. Хорошо, если каждый десятый спрашивает, какую я посоветую. Остальные девять говорят, что им это не нужно. А ведь алгоритмы — это лишь одна из многих проблем у программистов‑самоучек. Я это очень хорошо знаю: я сам из самоучек. У меня план по закрытию пробелов в знаниях расписан года на два вперёд. Так что я провожу на Coursera по 3–4 часа в неделю, только чтобы добрать базу. А ведь надо ещё и новые технологии изучать, и работать с хорошей эффективностью. И я считаю, что мне ещё повезло: моих знаний в математике пока хватает. ...

26 октября 2015 г.

Kotlin - мой следующий JVM-язык

Утром, в дополнение к физическим упражнениям, я примерно час программирую. Для этого отлично подходят не очень сложные проекты, которые делаются в кайф. Для меня это маленькие игры и приложения для Android. Первый подобный проект я написал на Java. Второй стартовал так же — на Java. Но я решил его портировать на Kotlin. Основная проблема Java — её многословность. Проект очень быстро перестал «влазить» в голову, особенно по утрам. Обычно это означает, что пришло время рефакторинга и код придётся дробить, делать его похожим на «лютый энтерпрайз». Тоска. А так как проект делается для удовольствия, то я решил попробовать что‑нибудь новенькое и поменять язык разработки. ...

19 октября 2015 г.

Паттерн Singleton

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

12 октября 2015 г.

Неплохой вводный видео-курс по Python

Люблю смотреть разные видеокурсы по используемым языкам и технологиям. Причём не только по продвинутым темам, но и по базовым. Ещё не было такого курса, в котором не нашлось бы чего‑нибудь интересного и полезного для меня. О последнем просмотренном мной курсе от Георгия Курячего я хочу немного рассказать. Этот курс — отличное базовое введение в Python 2. Возможно, если вы изучали Python в университете, то этот курс покажется вам слабоватым. Но мне, как человеку, который изучал язык и его библиотеку разрозненно — по книгам, статьям и отдельным видео, — такой курс показался вполне достойным. Он полностью оправдал время, потраченное на него. ...

28 сентября 2015 г.

Итоги конференции PyConRu 2015

В субботу закончилась конференция PyCon Ru 2015 в Екатеринбурге. Немного остыв, можно подвести некоторые итоги. Конференция получилась хорошей. Как говорит один мой коллега, если на двухдневной конференции было два интересных доклада, то конференция удалась. На PyCon интересных и полезных докладов было больше. Я выделил 4 таких доклада. Начало положил Гаель Вароко. Если про scikit было просто интересно послушать — в повседневной работе мы машинным обучением не занимаемся, — то рассказ о второй библиотеке joblib заставил нас провести порядочное время на её сайте. Сама библиотека позволяет легко организовывать параллельные вычисления. И нам был очень интересен ответ на вопрос, сможем ли мы её использовать в своём проекте. ...

21 сентября 2015 г.