Собираем Python 3.5 с новым OpenSSL на Ubuntu 12.04

Установка Python 3.5 дело не сложное, да вот установится он на Ubuntu 12.04 скомпилированный на OpenSSL 1.0.1, а для поддержки современных протоколов TLS необходима версия не ниже 1.0.2+.

Проблема: При подключении из Python 3.5 используя TLS, получаем ошибку:
SSLError: [SSL: TLSV1_UNRECOGNIZED_NAME] unknown error (_ssl.c:###)

Читать далее «Собираем Python 3.5 с новым OpenSSL на Ubuntu 12.04»

HTTP/2 + ALPN + NGINX на Ubuntu Server 12 и 14

Получить последнюю версию Nginx легко, все есть в официальном репозитории на Nginx. Но получить ALPN, который необходим для работы HTTP/2 на Chrome сложнее, так как на официальном сайте Nginx собран с OpenSSL 1.0.1, а для ALPN необходима версия OpenSSL не ниже 1.0.2.

Читать далее «HTTP/2 + ALPN + NGINX на Ubuntu Server 12 и 14»

Установка последней версии или обновление Nginx на Ubuntu

Ни во всех дистрибутивах Linux есть доступ к последней версии сервера Nginx. К счастью, на сайте Nginx есть репозитории для большинства дистрибутивов с подробной инструкцией.

Ниже пример обновления Nginx на Ubuntu.

Читать далее «Установка последней версии или обновление Nginx на Ubuntu»

Как и в чем изучать C/C++

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

C++ — расширение языка C вносящее возможности объектно-ориентированного программирования, стандартные библиотеки и дополнительные улучшения. Упрощает разработку и предоставляет готовый, оптимизированный дополнительный функционал (STL).

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

Читать далее «Как и в чем изучать C/C++»

Использование Numpy C api в C-расширении для Python

Ниже рассмотрен пример использования Numpy C api при написании расширения для Python на языке C. Расширение будет подключаться с помощью distutils. В примере умножаются поэлементно два массива.

Читать далее «Использование Numpy C api в C-расширении для Python»

Установка TA-Lib и пример использования C api

TA-Lib — библиотека с открытым кодом в которой реализовано более 200 индикаторов технического анализа. Наиболее известные: RSI, MACD, ADX, Stochastic, Bollinger Bands и др.

Библиотека разработана на чистом C. TA-Lib может быть скомпилирована под разные системы и может использоваться из разных языков программирования, например: C/C++, Java, Perl, Python, PHP и др.

Внутри пример ее установки на Linux и использования из C.

Читать далее «Установка TA-Lib и пример использования C api»

Конвертируем Hg в Git на Bitbucket

Простая пошаговая инструкция по переносу проекта из Hg-репозитория в Git-репозиторий. Все делается на Bitbucket под Linux Ubuntu. Предварительно настроена ssh-авторизация.

Читать далее «Конвертируем Hg в Git на Bitbucket»

Cython и C++ в IPython

В прошлом посте было описано подключение библиотеки на С. Здесь же представлен код для подключения библиотеки на C++. Преимущества C++ очевидны, поддержка классов, множество шаблонов и других улучшений, о которых лучше всего расскажет Вики.

Читать далее «Cython и C++ в IPython»

IPython: вызов библиотеки C из Python с помощью Cython

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

Однако в этот раз мне необходимо использовать библиотеку написанную на языке C. А хочу я все это делать в IPython. Конечно, кроме написания C-кода.

Читать далее «IPython: вызов библиотеки C из Python с помощью Cython»