Собираем 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, получаем ошибку:
[code]SSLError: [SSL: TLSV1_UNRECOGNIZED_NAME] unknown error (_ssl.c:###)[/code]

Читать далее «Собираем 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»

Поиск графиков по шаблону через корреляцию

Рассмотрен примитивный метод поиска похожих графиков с помощью корреляции. Все происходит под Linux с помощью Python 3.5. (Windows может добавить геморроя.)

Основная идея: когда нравится движение цены на графике в определенный момент времени, я хочу легко находить похожие движения на рынке на сегодняшний день.

Читать далее «Поиск графиков по шаблону через корреляцию»

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

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

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

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

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

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

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

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

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

Библиотеки для 2D рисования на C/C++

Ниже рассмотрены библиотеки на C/C++, которые могут быть использованы в основе разработки библиотеки для генерации 2D финансовых графиков и индикаторов технического анализа.

Основными требованиями являются:

  • Наличие C/C++ API.
  • Наличие адекватной документации с примерами.
  • Наличие Python-пакета для экспериментов.
  • Относительно высокая скорость работы Python-пакета при рисовании >30000 линий.
  • Правильная работа со шрифтами, поддержка пиксельных шрифтов и возможность отключения сглаживания.

Читать далее «Библиотеки для 2D рисования на 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»

Подключение C-кода в Python с помощью Distutils

В предыдущих постах описаны примеры использования С-библиотек в Python с помощью Cython. Там все было здорово, все работало быстро и без проблем. Единственное, в том случае требуется установить Cython и изучить дополнительно его документацию.

Для быстрого достижения цели, Cython прекрасно себя проявил. Но что делать, если хочется вызывать C-код без установки дополнительных пакетов? Для этого есть несколько возможностей и одна из них, использование distutils — стандартная Python-утилита для сборки и установки пакетов.

Читать далее «Подключение C-кода в Python с помощью Distutils»