Great minds think alike

Слушаю последний выпуск подкаста:

https://radio-t.com/p/2024/07/27/podcast-920/ (тема про Haystack)

И там Григорий рассказывал про свою мечту, ну чтоб:

  • исходный текст был rich-text, чтобы можно было пожирнять, картинку вставить внутрь
  • объекты разработки хранились в базе данных
  • использование объектов было индексировано
  • версии объектов хранились прямо в базе данных без дополнительных гитов
  • был тулинг/IDE всё это поддерживающий
  • проект собирался не из файлов, а прямо из базы данных

Удивительно, но SAP/ABAP-разработка пошла по этому пути давным-давно, но:

  • до rich-text они так и не добрались, хотя до до остального — в целом скорее да
  • система получилась закрытой и своеобразной

… и мне это скорее нравится, если бы не это, то я бы скорее всего свичнулся.

Как в программе ABAP можно получить список последних введенных в поле значений?

Интересный вопрос.

Если кратко, то может быть и можно, но всё очень-очень сложно.

Тут вопрос в концепции.

С одной стороны, любая программа ABAP работает только на сервере. SAP GUI работает на компьютере пользователя и отвечает только за показ результата работы и ожидание дальнейших инструкций от пользователя. Пользователь видит результат, нажимает кнопку, SAP GUI передаёт нажатие кнопки на сервер, серверная программа снова отрабатывает и даёт новый результат, отправляет его на просмотр пользователю.

Это круг PAI-PBO, который никогда не прекращается.

BTW, с точки зрения архитектуры SAP GUI — это «тонкий клиент», так как никакая прикладная логика на нём не работает, только красивое отображение и приём-передача информации на сервер и обратно.

С другой стороны, список последних введённых значений хранится только на SAP GUI (то есть на компьютере пользователя), и сервер ничего не знает про это. Так же как и не знает какого цвета кнопки. Вы можете сами включить в SAP GUI любую тему и поменять все цвета, но на работу ABAP это никак не повлияет, и сервер про это никогда не узнает.

С точки зрения ABAP-сервера, нет никакой разницы, выбираете ли вы значение из истории, или вводите его вручную заново, или вставляете из буфера обмена.

На практике существуют некоторые пользовательские функции, когда необходимо взаимодействие ABAP-сервера и SAPGUI-клиента:

  • загрузка файла (GUI_UPLOAD)
  • выгрузка файла (GUI_DOWNLOAD)
  • показ индикатора прогресса (SAPGUI_PROGRESS_INDICATOR)
  • и ещё кое-что по мелочи

Оно реализовано очень нетривиально внутри, можете убедиться.

Если поглядеть в класс CL_GUI_FRONTEND_SERVICES, например в метод CALL_METHOD, то окажется, что ничего просто так сделать не получится.

Вообще большой вопрос — умеет ли SAP GUI отдавать такую информацию или нет, документировано это или нет. В классе не видно ни одного метода, отдалённо напоминающего требуемую функциональность.

Тупик, приехали.

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

c:\Users\Ivan\AppData\Roaming\SAP\SAP GUI\History\SAPHistoryIVAN.db

Этот файл пишется в моём случае в формате SQLite, который неизвестно как разбирать, напрямую в ABAP его анализ невозможен. Ещё неизвестно, что за защита на нём стоит, потому что внутре данные покорябаны:

Тоже приехали.

На моей памяти это задача одна из самых невозможных. Хотя казалось бы…

Расходимся, или вам есть что добавить?

Эффект Телепорно или Лингвистический Шок

Если вы хай сосаити (high society), то должны купить себе этот великолепный спорт-кар:

Из забавного побочного эффекта, если спросить у Copilot:

Как называется эффект когда фраза на одном языке значит что-то смешное или похабное дня носителей другого языка

Он начинает отвечать про Эффект Телепорно:

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

Видимо внутренний цензор просыпается.

Интересно, кстати, почему он выбирает именно Хабр, как основу ответа, а не Википедию, в которой используется другое наименование (Лингвистический шок) для такой ситуации.

Ох уж эти выдумщики из Диснея

Диснейские творцы снова что-то напридумывали в своём новом сериале про космических лесбийских ведьм, которые решили родить себе при помощи Силы двух девочек-двойняшек.

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

Они случайно двухслойные, такие что корабль поменьше помещается между слоями, а корабль побольше — не помещается. И ещё там такие перемычки чтобы … эмм … ну выглядело эпично.

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

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

Вот такое представление о Космосе у диснейских создателей очередного вычпока от легендарной космической саги. Они реализуют ровно то, что могут себе представить в маркетинговом отделе.

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

Code review

В последнем выпуске подкаста Radio-T ведущие снова спорили о пользе или бесполезности Code review: https://radio-t.com/p/2024/07/13/podcast-918/

Снова ничего нового, кажется, но ведущие соскочили на привычные рельсы, у меня было стойкое ощущение дежа-вю. В целом согласен со всеми участниками, но у меня своя правда.

Я в текущих своих условиях вижу один довод «за» — если есть процедура Code review, то я пишу чище.

Кстати, устоявшегося термина на русском языке так и не сложилось. Википедия предлагает сразу четыре варианта:

Просмотр кода, рецензирование кода, обзор кода, ревизия кода

и ни с одним из них я не сталкивался в жизни.

Интернациональные наблюдения / Чемпионат Европы 2024

В матче Португалия — Франция:

Большой фрагмент трибун занят флагами Узбекистана.

Видимо неспроста, узбеки любят футбол, узбеки богатеют.

В матче Англия — Швейцария:

Надпись Switzerland (Швейцария) почему-то на футболке не Швейцарии, а Англии.

Видимо тоже неспроста, футболки акционные-сувенирные, изготовлены специально к матчу. А может такой способ оказать психологическое давление или вариант чёрной магии?

Кстати, удовольствие не скажу что очень дорогое:

В матче Нидерланды — Турция:

Все вольности с вывешиванием флагов с первых рядов отменили во избежание чего-бы-то-ни-было:

Звуковой фон очевидно в пользу Турции, как только голландцы брали мяч слышен осуждающий свист и наоборот, если турецкие футболисты владели мячом, то гул трибун моментально менялся на поддерживающий.

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