Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Общие вопросы Ирбис64 :  ИРБИС Irbis
 
Make Irbis Grate Again
Пользователь: levaleva (IP-адрес скрыт)
Дата: 08, March, 2022 21:30

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

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

Вместо этого везде и всё можно стало писать на питоне (python)!

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

Разработчики написали чудесный конвертер и все старые write-only форматы перекладываются в приличный и красивый код python. Любой питонист под рукой может быть привлечен к написанию обработок, ЛФК, и т.д. и т.п. Кадровые вопросы резко теряют напряженность.

Ведь нереляционная БД фактически хранит в себе JSON, к которому можно обращаться по полям:
title = document[200]
Подполя?. Ок
family = document[200]['a']
Повторения?
# повторения
price = document[910][0][E]
# c конца
price = document[910][-3][E]

Вся гибкость языка, ООП, функциональщина, итераторы, нормальные импорты в конце концов и переменные. И никаких матрешек с юнифорами.

боже, я даже вместо
rsum('10,20,30')
стал писать
10 + 20 + 30


Вместо:
&uf('+95'v100)
стал писать как человек:
len(document[100])

Вместо
&uf('+960*0.4#'v100)
просто
string_ = document[100][0:4]

и прочие .lower, .upper, .replace()

например вместо
&uf('+\1c:\\example.txt')
в явном виде, и без кувырочков через специальный костыль:
new_ = 'c:\\example.txt'.replace('\\', '\')

О, мне кажется, я мог бы продолжать бесконечно!. А ведь всего лишь нужно встроить интерпретатор питона...

https://regnum.ru/uploads/pictures/news/2020/12/25/regnum_picture_1608902932154711_big.jpg

Re: Make Irbis Grate Again
Пользователь: Игорь (IP-адрес скрыт)
Дата: 09, March, 2022 12:13

Хранилище данных на чем предлагается ?

Re: Make Irbis Grate Again
Пользователь: Игорь (IP-адрес скрыт)
Дата: 09, March, 2022 12:24

Клиента на чем делать предлагается? Если веб, то это одна головная боль, если консольный (что тоже наверно надо) - то другая.
И да, DML всё равно придётся реализовывать в том или ином виде (и желательно CDS\ISIS совместимого).
Есть идеи реализации GUI в стиле И64 клиента на Python?
Люди просто так не пересядут со старого доброго И64 на костылевелосипедное что-то.

Re: Make Irbis Grate Again
Пользователь: Alio (IP-адрес скрыт)
Дата: 09, March, 2022 12:33

levaleva написал(а):
-------------------------------------------------------
> Внезапно я увидел картину великого светлого
> будущего. Мне кажется она столь заманчива и
> сладостна, что никак не нельзя не поделиться.
>
> Вдруг разработчики взяли и отказались от ветхого
> legacy костыльного велосипедостроения, и
> берестяных грамот с языком форматирования.
>
> Вместо этого везде и всё можно стало писать на
> питоне (python)!
>
> Стильно, модно, молодежно, и в ногу со временем,
> вы только представьте себе! Ох, даже голова
> закружилась.
>
> Разработчики написали чудесный конвертер и все
> старые write-only форматы перекладываются в
> приличный и красивый код python. Любой питонист
> под рукой может быть привлечен к написанию
> обработок, ЛФК, и т.д. и т.п. Кадровые вопросы
> резко теряют напряженность.
>
> Ведь нереляционная БД фактически хранит в себе
> JSON, к которому можно обращаться по полям:
>
> title = document[200]
>
> Подполя?. Ок
>
> family = document[200]['a']
>
> Повторения?
>
> # повторения
> price = document[910][0]
> # c конца
> price = document[910][-3]
>
>
> Вся гибкость языка, ООП, функциональщина,
> итераторы, нормальные импорты в конце концов и
> переменные. И никаких матрешек с юнифорами.
>
> боже, я даже вместо
>
> rsum('10,20,30')
>
> стал писать
>
> 10 + 20 + 30
>
>
>
> Вместо:
>
> &uf('+95'v100)
>
> стал писать как человек:
>
> len(document[100])
>
>
> Вместо
>
> &uf('+960*0.4#'v100)
>
> просто
>
> string_ = document[100][0:4]
>
>
> и прочие .lower, .upper, .replace()
>
> например вместо
>
> &uf('+\1c:\\example.txt')
>
> в явном виде, и без кувырочков через специальный
> костыль:
>
> new_ = 'c:\\example.txt'.replace('\\', '\')
>
>
> О, мне кажется, я мог бы продолжать бесконечно!. А
> ведь всего лишь нужно встроить интерпретатор
> питона...
>
> [regnum.ru]
> /regnum_picture_1608902932154711_big.jpg

А зачем Вам вообще этот устаревший ИРБИС с его "заморочками"? Если Вам все ясно и понятно, почему бы Вам не создать собственную НОВУЮ систему?



Редактировано 1 раз. Последний раз 09.03.2022 15:14 пользователем Alio.

Re: Make Irbis Grate Again
Пользователь: levaleva (IP-адрес скрыт)
Дата: 09, March, 2022 17:55

Игорь написал(а):
-------------------------------------------------------
> Хранилище данных на чем предлагается ?
> Клиента на чем делать предлагается? Если веб, то
> это одна головная боль, если консольный (что тоже
> наверно надо) - то другая.
> И да, DML всё равно придётся реализовывать в том
> или ином виде (и желательно CDS\ISIS
> совместимого).
> Есть идеи реализации GUI в стиле И64 клиента на
> Python?
> Люди просто так не пересядут со старого доброго
> И64 на костылевелосипедное что-то.

Предлагать что-либо - это слишком смелое занятие.

Но в моем светлом будущем разработчики оставили и БД ISIS, и клиентов на дельфях.

Под капотом в общем-то ничего не поменялось. Сделана была простая штука в общем-то:

там где у нас раньше был файл формата - теперь лежит файл питона, в котором доступны не только все возможности питона, но и специальные объекты от ИРБИС64.

Например `BD` - объект БД. - вообще что угодно делайте.
from irbis_interface import BDConnect

smple_base = BDconnect('RDR')
sample_doc = sample_base.doc_by_id(500)
# Отдаёт объект Field
title = sample_doc.field(200)

Поскольку явное лучше чем неявное, разработчики реализовали итератор по всяким там выборкам, но обходим мы его сами. Никаких - "это сработает для всех записей/повторений". Для передач в дальнейший конвеер усеченной выборки тоже есть объектик.

from irbis_interface import ContextIterator, ResultCollector

input = ContextIterator()
output = ResultCollector()
# Итератор отдаёт объект типа Document
for doc in input:
    if doc.field(200)['A'] == 'Толстой':
        # Передали в итоговую выборку объект документа.
        ResultCollector.add(doc)
    elif doc.field(200)['A'] == 'Дантес':
       # А заодно и отредактировали запись
       doc.get_field(200)['A'] = 'Пушкин'

Как видим, даже отдельное приложение для глобальных корректировок не нужно. Просто интерфейс для выбора написанного скрипта в котором для ясности настраиваются параметры ContextIterator'a - БД, выборка записей. Хотя конечно ничто не мешает настроить его и в самом скрипте.

Еще раз подчеркну - архитектура осталась та же, движок БД тот же. Но пользователю оставлены чистые, приятные питонячьи интерфейсы для написания скриптов. Скупость ISIS спрятана под капотом и не расширяется однострочными юнифорами с шифрами, а прикрыта продуманной объектной моделью внешних интерфейсов.

Re: Make Irbis Grate Again
Пользователь: levaleva (IP-адрес скрыт)
Дата: 09, March, 2022 18:40

Alio написал(а):
>
> А зачем Вам вообще этот устаревший ИРБИС с его
> "заморочками"? Если Вам все ясно и понятно, почему
> бы Вам не создать собственную НОВУЮ систему?


Александр Иосифович, вы не поверите, но...

По сути, (но не по форме, да), я примерно так и сделал - перешёл в разработчики. ИРБИС64 поддерживаю только потому что ЦБС не на кого оставить, - кадров нет.

Разбираться в нюансах языка форматирования, расшифровывать аббривиатуры юнифоров - штука и сложная и специфичная одновременно.

Конечно, с одной стороны, уникальность специалистов может быть маркетинговой политикой, но ведь это не банковский энтерпрайз на Коболе. Мотивации погружаться в это хватит не у многих, а когда коммьюнити сожмется до одних разработчиков, дело станет совсем грустно.

Я понимаю, малейшая критика подходов и реализаций, особенно когда они обусловлены когда-то правильными и понятными решениями неприятна разработчикам, о чём косвенно говорят ваши риторические вопросы, близкие к переходам на личности. Это естественно.

Поэтому в этом треде нет и не будет никаких предложений. Продукт ваш, политика развития, видение будущего, решения и последствия за них - тоже ваше. Я не знаю бюджетов, кадровых возможностей, архитектурных препятствий и т.д.

Просто я помечтаю об открывшихся перспективах. Ведь интеграция скриптовых языков - дело не новое.

Re: Make Irbis Grate Again
Пользователь: Alio (IP-адрес скрыт)
Дата: 09, March, 2022 21:16

levaleva написал(а):
-------------------------------------------------------
> Alio написал(а):
> >
> > А зачем Вам вообще этот устаревший ИРБИС с его
> > "заморочками"? Если Вам все ясно и понятно,
> почему
> > бы Вам не создать собственную НОВУЮ систему?
>
>
> Александр Иосифович, вы не поверите, но...
>
> По сути, (но не по форме, да), я примерно так и
> сделал - перешёл в разработчики. ИРБИС64
> поддерживаю только потому что ЦБС не на кого
> оставить, - кадров нет.
Убедительная просьба: когда будет готова демоверсия вашей новой системы или тем более начнутся первые ее поставки, пожалуйста, сообщите...

Re: Make Irbis Grate Again
Пользователь: Игорь (IP-адрес скрыт)
Дата: 09, March, 2022 22:00

Ужас.

Re: Make Irbis Grate Again
Пользователь: levaleva (IP-адрес скрыт)
Дата: 09, March, 2022 22:18

Alio написал(а):
-------------------------------------------------------
> Убедительная просьба: когда будет готова
> демоверсия вашей новой системы или тем более
> начнутся первые ее поставки, пожалуйста,
> сообщите...

Боюсь, вы меня неправильно поняли. К сожалению, моя работа не имеет отношения к автоматизации библиотек.

Учитывая же столь резкое неприятие моих мечтаний - далее оставляю их при себе. Не будем тревожить покой почтенной публики.

Re: Make Irbis Grate Again
Пользователь: levaleva (IP-адрес скрыт)
Дата: 11, March, 2022 17:53

Всё интереснее и интереснее

https://github.com/amironov73/PythonIrbis

Re: Make Irbis Grate Again
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 12, March, 2022 07:28

levaleva написал(а):
-------------------------------------------------------
> Всё интереснее и интереснее
>
> [github.com]

А чего интересного-то? Проект заброшен на полпути, ибо, как выяснилось, питонист из меня никудышный, и проект превысил мои скромные когнитивные возможности.

Но базовая функциональность работает, это отрицать не буду.

Re: Make Irbis Grate Again
Пользователь: levaleva (IP-адрес скрыт)
Дата: 13, March, 2022 18:32

То что заброшен, это конечно печально.

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

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

Re: Make Irbis Grate Again
Пользователь: Alio (IP-адрес скрыт)
Дата: 17, March, 2022 15:14

Если интересно, ознакомьтесь с расширением языка форматирования XPFT,
который можно применять при работе с Турбо-сервером ИРБИС64 или Сервером ИРБИС64 под Linux или в Web-ИРБИС64+ PHP

Страницы 10-27 в этом документе...

Вложения: Web-IRBIS64+PHP.docx (131.9KB)  
Re: Make Irbis Grate Again
Пользователь: Лавринович Алексей (IP-адрес скрыт)
Дата: 02, April, 2022 03:57

Юнифоры понятны даже гуманитариям, а питоньячьи красоты только питонистам, пусть их нынче много.
Grate это по-каковски?
От HTML тоже отказаться?

Иностранный агент



Редактировано 3 раз. Последний раз 13.04.2022 05:20 пользователем Лавринович Алексей.

Re: Make Irbis Grate Again
Пользователь: Лавринович Алексей (IP-адрес скрыт)
Дата: 02, April, 2022 03:58

1 Попытки сделать нечто лучше ИРБИС были, например Буки, о них давно не слышно
2. ИРБИС 128 наследует только технологическое обеспечение и видимо идеологию
3. Мобильный клиент, прежде всего для Android - актуальная задача. Разработчик ИРБИС 128 намекал на такие планы
4."БД ISIS и клиенты на дельфях"? И то и другое немодно, немолодежно, причём уже давно...

Иностранный агент



Редактировано 4 раз. Последний раз 29.04.2022 10:33 пользователем Лавринович Алексей.



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.