LINUX.ORG.RU

Метапрог-прототип, версия 7 + графические диалоги на Метапроге

 , ,


0

3

Скачать (перед запуском читайте !Русский.txt или !Українська.txt):

https://www71.zippyshare.com/v/dNcHIgzD/file.html

Новая версия принесла несколько новых фич интерфейса пользователя. Добавлено выделение прямоугольником для вырезания и копирования части диаграммы (в прошлой версии было только копирование и вставка одного блока по щелчку колесом мыши). После копирования куска диаграммы (с проводками с данными и жесткими последовательностями) его можно вставить кликом колесом мыши на пустом месте диаграммы. Есть план реализовать в будущий версиях также создание подфункций из выделенного куска - аналог Create SubVI из LabVIEW (так была сделана немалая часть функций в прототипе Метапрога).

Однако самая интересная фича новой версии - сериализация в base64 координат блока на диаграмме с цепочкой функций. Этому есть как минимум два возможных применения. Можно «ткнуть пальцем» на нужный блок (меню блоки - ткнуть пальцем на блок). Будет сгенерирована строка такого вида:

metaprog_debug:AAAAAAAAAAAAAAAHAAAAAFBUSDAAAAAEAAAAAAAAAAAAAAAAAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAU4fPk6Ov87ejqIO3gIOfg7+jy4PUAAAAK0+rw4L/t8fzq4AAAABXh8+To6/zt6Oog7eAg5+Dv8O7x4PUAAAAH0PPx8ero6VBUSDEAAAAxcmVsIAAr0LHRg9C00LjQu9GM0L3QuNC6INC90LAg0LfQsNC/0LjRgtCw0YUubXBiZBNiCtNfkRABAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAT9rPr7vfo8evu4ujpIOSz4Ovu4wAAAArT6vDgv+3x/OrgAAAAFPbl6+736PHr5e3t++kg5Ojg6+7jAAAAB9Dz8fHq6OlQVEgxAAAANXJlbCAAA25rYwAq0YbRltC70L7Rh9C40YHQu9C+0LLQuNC5INC00ZbQsNC70L7Qsy5tcGJkP/rfBI32qgEAAAADAAAAB01QTCAyLjAAAAAHTElDRU5TRQAAABDy5erx8u7i6Okg5LPg6+7jAAAACtPq8OC/7fH86uAAAAAQ8uXq8fLu4vvpIOTo4Ovu4wAAAAfQ8/Hx6ujpUFRIMQAAAC9yZWwgAANua2MAJNGC0LXQutGB0YLQvtCy0LjQuSDQtNGW0LDQu9C+0LMubXBiZFbEp7cIT2gBAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAV5+Dv8/HqIOKz6u3gIE51a2xlYXIrAAAACtPq8OC/7fH86uAAAAAU5+Dv8/HqIO7q7eAgTnVrbGVhcisAAAAH0PPx8ero6VBUSDAAAAAWAAEAAgNua2MNbmtjIGluaXQubXBiZFQc/+kgVZgBAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAO+PDo9PIg7fPq6+Xg8CsAAAAK0+rw4L/t8fzq4AAAAA748Oj08iDt8+rr5eDwKwAAAAfQ8/Hx6ujpUFRIMQAAADpyZWwgAANua2MAL9GW0L3RltGG0ZbQsNC70ZbQt9Cw0YbRltGPINC90YPQutC70LXQsNGAKy5tcGJkaxMcpv873AEAAAAAUFRIMAAAAAQAAAAAdcftGC2ZsAE=:metaprog_debug

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

Вместо тысячи слов:

https://i.postimg.cc/gd7RZD9Q/image.png

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

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

https://postimg.cc/hQVLBcHp

Дебаг-строку выводит оранжевый блок.

В новой версии прототипа Метапрога было исправлено множество багов. Теперь метапроговские массивы и СУВТ можно помещать под указатели и вставлять в структуры, не боясь багов. Это позволило добавить к будильнику, реализованному в прошлой версии, диалоги, запрашивающие час и минуту срабатывания будильника.

Для компиляции надо скачать https://sourceforge.net/projects/tinyfiledialogs/

Распаковать в папке с Си-файлом так, чтобы работал соответствующий инклюд.

Код:

https://pastebin.com/5NW30tQx

Введя нужное число, закрываете окошко. После ввода часа и минуты в консоль будет выведено время срабатывания. Теперь будильником можно пользоваться и для повседневных нужд (звук пронзительный, хорошо слышный, sound.wav больше не нужен), однако завершать его работу надо еще через диспетчер задач или Ctrl+C в консоли, когда не идет звук. Также нет проверки введенных чисел, если введете не то число - будильник никогда не сработает.

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

Предыдущая версия:

Метапрог-прототип, версия 6 + будильник на Метапроге



Последнее исправление: metaprog (всего исправлений: 2)
Ответ на: комментарий от Unicode4all

Диагармма (как и почти любой мой формат в Лабвью) собрана из кластеров и массивов. Как-то так (формат на самом деле обновился, но скринить заново лень):

https://i.postimg.cc/fbNW5vHB/image.png

Элементы - они же блоки. В кластере «об'єкт блок-діаграми» содержится енум, зависимо от которого идет десериализация и обработка объекта в строке (об'єкт в рядку). В Лабвью кстати нет юнионов и приходится так костылить. В Метарпоге такие вещи будут делаться через СУВТ.

Там еще в отдеьных массивах линии и жесткие последовательности. В кластере «картинка», кстати, тоже костыльный аналог СУВТ - булеан «кольорова» (цветная), по которому идет десериализация цветной или черно-белой картинки из строки для отрисовки.

metaprog
() автор топика
Ответ на: комментарий от metaprog

Целая инструкция вырисовывается по запуску и использованию будильника… Это решительно никуда не годится на самом деле.

abcq ★★
()
Ответ на: комментарий от metaprog

Обычно лабвьюшники, столкнвшиеся с задачей, которая Лабвью не по зубам, стиснув зубы переходят на текстовые ЯП. Но я не пожелал этого делать, только и всего:)

Получается, за 35 лет ты первый? (Ну или второй, если считать автора MyOpenLab.)

Повторю — само по себе это не приговор. Кто-нибудь всегда бывает первым. Но если за столько лет такой скромный прогресс — есть о чём задуматься…

P.S. Этот комментарий ты, похоже, так и не заметил…

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от metaprog

Диагармма (как и почти любой мой формат в Лабвью) собрана из кластеров и массивов.

«Волны перекатывались через мол и падали вниз стремительным домкратом»

Это не навсегда. Хорошо что даже такой будильник я уже сделал - и он, просидев ночь в ожидании, сработал!

Котечка тебе подлянку сделал, вместо того, чтобы разобраться и пропатчить нуклеар+, а ты сам не способен. Вместо того, чтобы нормально реализовать конструкции диаграмм, те же «условные схождения», ты выкатываешь новые версии метапроги, которые к поставленной тобой же цели «метапрог на самом себе» абсолютно не ведут. За год уже можно было какую-нибудь документацию написать, вместо отмазок.

ТС вообще большой оригинал.

Ну да, этого не отнять.

За это мы его и любим.

cluge
()
Последнее исправление: cluge (всего исправлений: 1)
Ответ на: комментарий от metaprog

А зачем? Есть хоткей для закрытия окна. Мышку использую по минимуму.

Прокомментируй, лучше утечки памяти, которые валгринд нашел.

provaton ★★★★★
()
Ответ на: комментарий от liksys

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

provaton ★★★★★
()
Ответ на: комментарий от metaprog

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

Я ж вот и говорю, тебе надо уделять внимание написанию документации. Текстовой в идеале, но если уж с текстом никак, то и видео сойдет. Народ не вдупляется нифига ни в твои диаграммы, ни в твои интерфейсы…

provaton ★★★★★
()
Ответ на: комментарий от provaton

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

Могу добавить, что между первым и вторым есть огромное количество промежуточных градаций… :)

hobbit ★★★★★
()
Ответ на: комментарий от provaton

У гения как минимум присутствует способность влет воспринимать информацию относящуюся к области в которой он гений и умение мгновенно и изящно решать задачи из этой области (со стороны это выглядит как магия).

С ТСом оба признака мимо.

ЗЫ хотя я не исключаю что он гениальный дворник.

AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 2)
Ответ на: комментарий от LINUX-ORG-RU

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

saibogo ★★★★
()

Для компиляции надо скачать https://sourceforge.net/projects/tinyfiledialogs/

На хрена будильнику еще и диалог выбора файлов? Ты бы хотя бы скриншоты готовой программы предоставил. Какие-то Ctrl-C в будильнике, ты совсем с головой не дружишь?

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

cluge
()
Ответ на: комментарий от AntonI

Да, скорее всего вы правы. Но у меня порой просыпается неуемная страсть к доскональной проверке очевидных вещей…

provaton ★★★★★
()
Ответ на: комментарий от anonymous

Откровенно смеюсь над тем что вы написали, но это только между нами, никто не должен об этом узнать…

abcq ★★
()
Ответ на: комментарий от provaton

валгринд шняга текстовых программистов, она вообще не работает, а если работает, то работает неправильно, вообще не понимаю этих «антиметапрогеров» принесут какое-то «не нужно» бесполезное и начинают свой текст сюда вкидывать вместо диаграмм. Вы лучше пойдите да поучитесь лабвью! Вот краткий экскурс в «циклы» и вариации структур данных. Даже этого хватит чтобы понять насколько программирование с графическим вводом программы на голову выше языков с текстовым вводом, и не позорьтесь тут больше. (мимикрировал как мог)

abcq ★★
()
Последнее исправление: abcq (всего исправлений: 1)
Ответ на: комментарий от ossa

Не ну так то да, но там же есть картинки, там даже по картинкам все понятно сразу.

abcq ★★
()
Последнее исправление: abcq (всего исправлений: 1)
Ответ на: комментарий от abcq

Мне понравилась картинка с облачком на котором написано «code». Вот они какие, облачные вычисления!

AntonI ★★★★★
()
Ответ на: комментарий от metaprog

По идее раз вы ярый пионер графического подхода, то надо бы задумать о том чтобы придумать графический формат аналога последовательности в общем и строки в частности, т.к. сериализоваться и десериализоваться в строки немного «зашкварно» т.к. они по сути все же текст.

abcq ★★
()
Ответ на: комментарий от AntonI

Застенчиво шаркает ногой, ну это картинка у нас одна из лучших… кстати поэтому она прямо в начале статьи.

abcq ★★
()
Ответ на: комментарий от cluge

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

«Каламбур», - догадался Штирлиц.

Опа, третья страница всего, а тему от анонимусов уже огородили…

hobbit ★★★★★
()
Ответ на: комментарий от abcq

Все уже придумано - сериализуемся, рендерим текст и сохраняем jpg. Потом грузим джипег, распознаем текст, десериализуемся.

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

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

abcq ★★
()
Ответ на: комментарий от hobbit

Пора заводить новый подраздел форума «йумор». И отдельный скор активистам раздела, мерять в баянах:-)

AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от hobbit

Как выражается ТС «они себя плохо вели», тут уже и чистки вон были, самая забавное что первый комментарий в треде не потерли, показатель так показатель :3

abcq ★★
()
Ответ на: комментарий от AntonI

Лучше бы вы не писали тут об этом… Идея то была хорошей!

abcq ★★
()
Ответ на: комментарий от AntonI

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

abcq ★★
()
Последнее исправление: abcq (всего исправлений: 1)
Ответ на: комментарий от abcq

Мне кажется нужно выходить в 3D.

И вообще, что ща искусственные ограничения, почему только визуальное программирование? Даёшь вкусозапахоаудиовизуальноосязательный ввод! Ну или хотя бы аудиовизуальноосязательный.

Каждая программа представляется в виде звуков, видеоряда и проглаживаний/поцелуев и т.д. Будет пользоваться бешенной популярностью, @DELIRIUM сразу задонатит ползарплаты:-)

AntonI ★★★★★
()
Ответ на: комментарий от AntonI

триде это лютый матан так то… и двадетян лучше кстати, решительно вас осуждают за подобные речи :3

abcq ★★
()
Ответ на: комментарий от DELIRIUM

Не уходи от ответа, сколько ты готов задонатить в порнопрог?

AntonI ★★★★★
()
Ответ на: комментарий от DELIRIUM

Не такой как выжимка из говна (копи-лувак), но и оценку метапрогу давать рано, возможно это бесценный инструмент для выжимки или лепки

Anoxemian ★★★★★
()
Ответ на: комментарий от AntonI

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

abcq ★★
()
Ответ на: комментарий от abcq

Ну тут все будет в руках разработчика…

AntonI ★★★★★
()

Меня давно мучает вопрос. Почему основным языком метапрога является украинский, а не, скажем, английский или на худой конец французский?

Владимир

Thetan ★★★
()
Ответ на: комментарий от CryNet

ну по жс он уже проходился как по скриптухе ставя ее на одну полку с «не нужно» как и питон. Можете сделать выводы сами в общем-то.

abcq ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.