OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 23:49

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Связывание с питоном
СообщениеДобавлено: Четверг, 11 Апрель, 2019 08:27 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Мне тут молчел, связанный с торговлей на типа бирже, категорически поведал, что большие конторы никогда не пользуют питон. Но маленькие -- вроде той, где он подкармливается -- сидят именно на нём, и выбор у них невелик: у них есть доступ к библиотекам либо на питоне, либо на джаве. Некий сложный алгоритм он делает на ББ, но нужно связываться с библиотеками на питоне, и это получается с переменным успехом.

Это всё к тому, что вопрос достаточно серьёзный.

А поэтому хочется максимально убрать порог -- дать набор даже кажущихся спецам тривиальными примеров и свидетельств (с версиями и что там ещё, заранее Невообразимое).
Предлагаю выдавать сюда кто что полезного знает или может припомнить.

Наличие сотни простых, на разные лады утверждений "а мы делали" + детали, передающие аромат реальности, сильно поможет target-аудитории.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связывание с питоном
СообщениеДобавлено: Четверг, 11 Апрель, 2019 09:15 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Есть куча инструментов для IPC, опенсорсных и самописные даже были, не обязательно "всё связывать библиотеками как в Си, как правильно, как надо, надувая щёки". В конце концов есть сокеты и прочие REST API.

В конце конца концов есть широкоизвестный в узких кругах проект MultiBlackboxPlatform который позволял крутить ББ в dll https://bitbucket.org/petryxa/mbp/src/default/ где есть файлик с говорящим названием Docu/How-To make mbpslave.dll.odc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связывание с питоном
СообщениеДобавлено: Четверг, 11 Апрель, 2019 09:48 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 987
Откуда: Казань
Я немножко работал в фирме занимающейся созданием платформы для Форекса и немного знаю тему изнутри. Самая большая озабоченность у тех, кто торгует - это чтобы быстро работало. Так как цена меняется по несколько раз в секунду и если есть выгодная возможность продать или купить что-то, то надо быстрее это делать, так как уже через секунду цена может быть невыгодной. Исходя из этого надо предлагать такое решение, которое будет работать как можно быстрее. В этом плане, как мне кажется, web-решения, такие как, SOAP и прочие WEB API будут помедленнее, чем непосредственный вызов dll. Поэтому лично я бы создал dll с использованием BlackBox, а уже эту dll бы вызывал из питона.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связывание с питоном
СообщениеДобавлено: Четверг, 11 Апрель, 2019 15:00 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Обычный http-сервер сегодня тащит до тысяч запросов в секунду, так что тут спорно. Даже O3 из коробки на тестовых запросах тянул. Плюс маленькая контора вряд ли будет заниматься реальным HFT. DLL тянет за собой мрачное наследие Си вместе с access violation и прочим.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связывание с питоном
СообщениеДобавлено: Пятница, 12 Апрель, 2019 06:43 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Rifat писал(а):
я бы создал dll с использованием BlackBox, а уже эту dll бы вызывал из питона.
Вы все начинаете советы давать, не зная конкретной ситуации.

Большие игроки (микрофинансы и проч.) полностью контролируют свой софт и в условиях миллисекунд с питоном никогда (что естественно -- и что мне категорически подтвердили) дела не имеют.

Вопрос был в другом: питона слишком много кругом -- и слишком много самоучек.

И надо дать примеров, конкретных и разных.

Хорошо уже просто сказать "я успешно соединял ББ с питоном в такой-то области приложений". Маленький проект или большой -- не важно. Мы знаем, сколько всего разного бывает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связывание с питоном
СообщениеДобавлено: Пятница, 12 Апрель, 2019 09:46 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Мы соединяли ББ с php через REST на O3+Json под Линуксом (хотя с нашими наработками это было вообще неважно). Вместо php можно ставить питон, от этого http не изменится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связывание с питоном
СообщениеДобавлено: Пятница, 12 Апрель, 2019 10:32 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Вот. Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связывание с питоном
СообщениеДобавлено: Пятница, 26 Апрель, 2019 08:29 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1134
Откуда: СССР v2.0 rc 1
Я соединял с питоном ББ и DLL на Обероне (вариант Антона Кротова).
Конечно, при этом у DLL есть масса ограничений (в том числе отваливается контроль при межмодульном взаимодействии).
Взаимодействие в питоне организуется через модуль ctypes.
В документации к модулю всё описано, но всё же примерный порядок действий (примерно):
1. import ctypes
2. <proc>=ctypes.CDLL.Load("myDLL.dll")
3. <proc>.MyProc(ctypes.int(a), ctypes.float32(b), .... )
Есть смысл использовать если только это тяжёлые расчёты -- затраты на вызов и конвертацию слишком большие.
Есть конечно, более питоничное решение ускорения расчётов, но про него я рассказывать не буду.
Как сказал один товарищ в чате Телеграмм -- оберонщики все лживые вплоть до последнего))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связывание с питоном
СообщениеДобавлено: Пятница, 26 Апрель, 2019 14:34 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Большое спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связывание с питоном
СообщениеДобавлено: Суббота, 27 Апрель, 2019 00:39 

Зарегистрирован: Среда, 31 Январь, 2018 19:54
Сообщения: 244
Rifat писал(а):
Я немножко работал в фирме занимающейся созданием платформы для Форекса и немного знаю тему изнутри. Самая большая озабоченность у тех, кто торгует - это чтобы быстро работало. Так как цена меняется по несколько раз в секунду и если есть выгодная возможность продать или купить что-то, то надо быстрее это делать, так как уже через секунду цена может быть невыгодной.

Питон интересен тем, что через него удобно, например, с Excel работать.
Rifat писал(а):
Поэтому лично я бы создал dll с использованием BlackBox, а уже эту dll бы вызывал из питона.

Можно ведь и наоборот, вызывать процедуры из Питона и ещё использовать его библиотеки. В Питоне есть ядро в виде dll - python3y.dll - здесь 3y - номер версии - Типа Python36.dll, которое может быть доступна из ВВ - точно так же как работаете с WinApi.
viewtopic.php?
https://forum.oberoncore.ru/viewtopic.php?f=2&t=3162&p=57799&hilit=%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82#p57799

Вообще, выбор интересных приложений для интеграции с ВВ стоит обсудить.
Для вашей задачи с Форексом и для Всех тоже может быть интересно новое приложение -> Сейчас появился ClickHouse от Яндекса - очень быстрая для вычислительных и аналитических задач отказоустойчивая и "супер"масштабируемая база данных - годится как для локального применения, так и для создания устойчивых кластеров с репликацией данных. Интеграция возможна через HTTP - это протокол по умолчанию, через который можно делать все: запрашивать данные, загружать данные - SQL подобный интерфейс запросов.
open source, исходники прилагаются.

Хотя и реклама, но ограничения прописаны: https://habr.com/ru/post/322724/

Tutorial: https://clickhouse.yandex/tutorial.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связывание с питоном
СообщениеДобавлено: Суббота, 27 Апрель, 2019 07:21 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 1488
Откуда: Украина, Киев
arlean1 писал(а):
Питон интересен тем, что через него удобно, например, с Excel работать.
С Excel можно работать практически на чём угодно. Можно даже подключаться к Excel файлам как базам данных через ADO, листы документа при этом выступают в роли таблиц базы.
Получается простейшая база данных с таблицами, в которых данные удобно править руками.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связывание с питоном
СообщениеДобавлено: Суббота, 27 Апрель, 2019 08:48 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Сколько всяких забавностей есть у публики ))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связывание с питоном
СообщениеДобавлено: Суббота, 27 Апрель, 2019 11:06 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
Ярослав Романченко писал(а):
С Excel можно работать практически на чём угодно.

Если это только на линкусовом сервере делать не надо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связывание с питоном
СообщениеДобавлено: Пятница, 20 Сентябрь, 2019 09:15 

Зарегистрирован: Среда, 31 Январь, 2018 19:54
Сообщения: 244
По поводу математики в Питоне - возможно, что многое используется из Intel® Math Kernel Library
Разработчики Питона получили лицензию раньше других, а сейчас эта библиотека доступна всем.

Она включает в себя возможности Deep Neural Network - глубокое структурированное обучение или иерархическое обучение, основанное на искусственных нейронных сетях.

И вы даже можете распространять её со своими программами, с указанием на разработчика этой библиотеки

License FAQ - https://software.intel.com/en-us/mkl/license-faq


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связывание с питоном
СообщениеДобавлено: Четверг, 03 Октябрь, 2019 13:26 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1134
Откуда: СССР v2.0 rc 1
К питону вообще прикрутили всё что можно и не нужно (ну, лично у меня такое впечатление).
Только правда в том, что коллега справа от меня страдает с питоном уже год -- то данные кривые прилетят, то либа обновится, то интерпретатор под Windows работает не так, как под Linux.
Хоть golang (я на нём работаю) -- испорченный Оберон, но в отличии от питона -- у меня хоть типизация для начала есть. Знаю, что как я работаю -- это далеко не идиоматично для golang (тут кое-кто меня бы упрекнул "ты пишешь на нём, как на Обероне", и что бы я в свою очередь не без некоторого удовольствия подтвердил). Но всё-таки питон -- это тупиковый путь. Пока был относительно прост -- ещё куда ни шло. Но кривая сложности на нём хоть и начинается гладко, уже в середине весьма круто смотрит вверх. А в конце -- это вообще набор ломанных пиков начиная от нулевого уровня.
Да, питон благодаря всяким штукам может быть быстрым (в 95% случаев -- таки нет). Но его внутренняя сложность...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB