Адиль Хаштамов

Привет! Меня зовут Адиль. Всю свою сознательную жизнь я занимаюсь разработкой программного обеспечения. Этот блог моя записная книжка, где я стараюсь почаще делать заметки на тему программирования, разработки и проектирования ПО. Сейчас особенно заинтересован в современных веб приложениях, машинном обучении и анализе данных.

Pyenv: удобный менеджер версий python

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

Сегодня я хочу кратко рассказать и показать возможности работы такого замечательного инструмента как pyenv. Данный скрипт ни что иное как удобный менеджер версий для языка программирования Python. Лучше всего сразу всё увидеть на конкретных примерах.

читать ещё

Vagrant: что за зверь и как с ним работать?

Vagrant

За последнее время обилие инструментов для разработчиков неуклонно растёт: Ansible, Otto, Vagrant, Nomad, Consul, Puppet, Chef... Что это всё? Дабы немного прояснить ситуацию, сегодня я бы хотел рассказать о таком замечательном инструменте как Vagrant, который сам использую практически каждый день.

Что такое Vagrant?

Vagrant это инструмент, позволяющий унифицировать среду разработки и среду в которой этот код будет разворачиваться, используя технологию виртуализации. Проще говоря, если вы как и я любитель делать проекты в среде Windows, но в будущем разворачивать их на *nix машинах, то Vagrant вам в помощь :-) Очень часто возникают проблемы на фоне того, что среда разработки значительно отличается от среды, где будет крутиться конечное приложение. Например, в Windows название папки с Заглавной буквы и со строчной это одно и то же, хотя в unix системах это две разные папки.

С высоты птичьего полёта, Vagrant ничто иное как CLI (интерфейс командной строки) для VirtualBox с блекджеком и Vagrantfile.

В качестве демонстрационного примера мы создадим изолированную операционную систему на базе Ubuntu 14.04.3 LTS с виртуальным окружением Python + работающим Django приложением внутри.

читать ещё

Бесплатные SSL сертификаты от Let's Encrypt

В прошлом году Google явно дал всем понять, что пора бы уже подключать SSL сертификаты к своим сайтам. Теперь же по-умолчанию предпочтение будет отдаваться сайтам, использующим защищенное соединение. В связи с этим с недавних пор появилась шумиха вокруг бесплатных SSL сертификатов (давно уже пора). При поддержке Linux Foundation, а также Mozilla, Facebook, Akamai, Cisco и многих других именитых гигантов IT индустрии, свет увидел проект под названием Let's Encrypt.

Проект в первую очередь призван обезопасить веб, а также облегчить жизнь рядовым веб-разработчикам (всю эту возню с генераций приватных ключей, CSR, подтверждением прав на домен, настройкой веб-сервера и так далее свести на нет). Более того, SSL сертификаты, выдаваемые Let's Encrypt, полностью бесплатные. Есть в них правда одно но, они являются базовыми и срок действия ограничен до 3-х месяцев (но это вовсе не проблема, так как продление можно настроить автоматически).

читать ещё

Итоги первой встречи Python программистов в Алматы

Almaty Python

В середине сентября 2015 года мы в Алматы провели первую встречу Питонистов - ALA Py.

На этой встрече было порядка 120 человек (успех). Встреча была организована нашей компанией Aviata.kz. Было прочитано 3 доклада:

Видео с митапа можно посмотреть ниже

Полный фотоотчет доступен здесь.

читать ещё

Руководство по работе с HTTP в Python. Библиотека requests

Стандартная библиотека Python имеет ряд готовых модулей по работе с HTTP.

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

Во-первых, большое обилие классов и функций. Во-вторых, код получается вовсе не pythonic. Многие программисты любят Python за его элегантность и простоту, поэтому и был создан модуль, призванный решать проблему существующих и имя ему requests или HTTP For Humans. На момент написания данной заметки, последняя версия библиотеки - 2.9.1. С момента выхода Python версии 3.5 я дал себе негласное обещание писать новый код только на Py >= 3.5. Пора бы уже полностью перебираться на 3-ю ветку змеюки, поэтому в моих примерах print отныне является функцией, а не оператором :-)

читать ещё

Ещё одна попытка начать писать в блог

Приветствую, уважаемый читатель!

Честно говоря, я уже давно забыл какой это по счёту блог, вернее попытка начать вести его. Так уж получилось, что более-менее успешный блог у меня был в далеком 2009 году, но из-за "кривизны" моих рук его уникальный контент бесследно канул в лету. Позже были многочисленные попытки возродить его, но каждый раз всё заканчивалось неудачей, проще говоря, мне было лень снова что-то начинать писать. Необходимость ведения блога есть, причём острая. В первую очередь она связана с родом моей деятельности. Я разработчик ПО, в простонародье программист, а ввиду нашей динамичной сферы деятельности, где технологии устаревают и появляются столь стремительно, не делать заметки грех. Мы, программисты, по своей природе ленивый народ, и именно этот факт частенько доставляет нам массу неудобств и страданий. Помимо того что мы ленимся комментировать свой код и писать к нему документацию, мы не делаем банальных заметок при изучении тех или иных вопросов, связанных с технологиями и их смежными областями. Стоит лишь отнестись к данному вопросу чуточку серьёзней, это помогло бы нам сэкономить массу времени и нервов в будущем. Поэтому данный блог я рассматриваю в первую очередь как записную книжку для моих мыслей, идей и размышлений. Если уж так получится, что кто-то из вас найдёт здесь для себя что-нибудь полезное, то я буду только этому рад.

Тематика блога узконаправленная, в основном тут будут записки на тему софтостроения и смежные области.

Контактную информацию можно посмотреть на странице Обо мне.

читать ещё