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

а, то есть на столько все с тобой плохо…Но в дебиане есть еще и всякие GnomeClock и прочие. А еще это все собирается руками 2 командами. Но не твоими руками, это да. У твоих радиус кривизны сильно мал.

https://packages.debian.org/search?keywords=alarm-clock

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

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

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

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

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

Утечки в сишном коде и метапроговских диаграммах можно легко поустранять вручную

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

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

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

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

я сделал прототип будильника на прототипе метапрога, Линус написал для этого ядро а Бэббидж придумал компьютеры.

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

я сделал прототип будильника на прототипе метапрога

Только не ты, а я.

Линус написал для этого ядро а Бэббидж придумал компьютеры.

Совершенно верно. Твоя-то в этом какая заслуга, проФФесор ты наш?

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

Если ты в своём будильнике их устранить не осиливаешь

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

что уж говорить про обычные программы.

Которые практически все с утечками. Особенно это заметно в софте, написанном на высокоуровневых ЯП со сборщиком мусора. Покажи мне хоть одну сложную программу, в которой ГАРАНТИРОВАННО нет ни байта утечек.

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

Подобные товарищи завсегда в истории любили сжигать книги

Зачем сжигать бесполезную макулатуру по скриптухе с раздутыми донельзя абстракциями ради абстракций, если можно просто ее не читать и заняться чем-то более интересным?

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

Всех умиляет как Вы себя упоминаете в одном ряду с такими великими людьми. Они наверное гордятся такими соседством!

Хотя более корректна от Вас будет фраза примерно следующего содержания:

«Я (metaprog) сделал прототип будильника на прототипе метапрога, Линус написал для этого прототип ядра, Фон Нейман придумал для этого прототип архитектуры компьютера а Бэббидж придумал для этого прототип компьютера вообще. Говорят еще всякие прохвессоры типа Тьюринга или Шокли придумали для этого там прототипы всякой околокомпьютерной теоретической фигни, но на то они и прохвессоры что бы фигню придумывать от которой никакого толка. Толи дело прототип метапрога!»

Я все правильно сказал?

Твоя-то в этом какая заслуга, проФФесор ты наш?

В этом - никакой. А вот нормальный транслятор я в отличии от Вас сделал. На питоне, хе-хе.

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

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

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

Всех умиляет как Вы себя упоминаете в одном ряду с такими великими людьми. Они наверное гордятся такими соседством!

Будут ли они гордиться соседством с вами, ПроФФесор Сферических Сакральных Знаний В Вакууме?

«Я (metaprog) сделал прототип будильника на прототипе метапрога, Линус написал для этого прототип ядра, Фон Нейман придумал для этого прототип архитектуры компьютера а Бэббидж придумал для этого прототип компьютера вообще. Говорят еще всякие прохвессоры типа Тьюринга или Шокли придумали для этого там прототипы всякой околокомпьютерной теоретической фигни, но на то они и прохвессоры что бы фигню придумывать от которой никакого толка. Толи дело прототип метапрога!» Я все правильно сказал?

Как-то так. По крайней мере, отрицания заслуг Линуса, Фон Неймана и Бэббиджа с моей стороны не было.

А вот нормальный транслятор я в отличии от Вас сделал. На питоне, хе-хе.

Код в студию.

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

Будут ли они гордиться соседством с вами, ПроФФесор Сферических Сакральных Знаний В Вакууме?

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

Как-то так. По крайней мере, отрицания заслуг Линуса, Фон Неймана и Бэббиджа с моей стороны не было.

Если бы не заслуги Тьюринга, Шокли и прочих «прохвессоров» Вы бы свой метапрог чертили на бумашке и хвастались бы им бабушкам у подъезда. Но Ваше, гхм… «образование» не позволяет Вам этого понять.

Код в студию.

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

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

Зачем, если у меня уже есть готовый, который меня уже не первый день не подводит?

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

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

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

Покажи мне для начала. Или это как половой член - хвастаешься, а показывать не хочешь?

Если бы не заслуги Тьюринга, Шокли и прочих «прохвессоров»

Если б мне довелось придумывать с нуля компьютер вместо них, то я сам бы за них все что надо придумал:)

Утром деньги, вечером стулья.

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

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

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

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

Покажи мне для начала.

Вы во первых не поймете, во вторых мне придется для этого деанонимизироваться - а я этого не хочу.

Если б мне довелось придумывать с нуля компьютер вместо них, то я сам бы за них все что надо придумал:)

До-до, особенно транзисторы и теорию для их производства. С Вашим то знанием математики…

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

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

А у тебя пока что только половой член - и то есть сомнения в его целостности и вообще наличии - а вдруг ты на самом деле девушка или трансвестит?

Теперь понятно чем Вы с Дианой так глянулись друг другу…

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

если debian то gnome-clocks (кстати гном он не тащит за собой, несмотря на названия)

если ты под XFCE сидишь, то в панеле есть дефолтный Xfce Timers..

Иии все они сильно лучше твоей хеловордной полелки.

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

Кстати, чтоб все было честно, то давай расскажи, что мне ввести после app-get install, чтоб увидеть твою поделку у себя.

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

@metaprog дал четко понять что вот эта консольная возня его не интересует, надо с окнами и чтобы закрывался только снятием процесса.

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

а вот это кстати аргумент да, но @metaprog просил простой, то что вы показываете это слишком сложно.

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

Ну нельзя же так… нечестно говорить о честности в обе стороны…

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

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

Это позже, все же сделай скидку на то, что это - костыльный прототип.

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

Для компиляции - первая строка в моих трансляциях-исходниках. А если чего-то не хватает - подбирай сам или у меня спрашивай.

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

не, я просил apt-get причем на своем дебиан, а не компилировать. Тыж плакался, что тот же alarm-clock «пад убунту!!!111». ну и к томуж тут уже приводили выхлопы валгринда. зачем мне «всякое дерьмо в дом тащить»?

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

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


if(metaprog_instance_0_3560345070488020993__structure_constant_6184720867747722241_0.dynamic)
{
free(metaprog_instance_0_3560345070488020993__structure_constant_6184720867747722241_0.pointer);
}
else{ // вот это очень смущает, вы готовы ручаться что  это 
}     // не наступит никогда?
;

у ваших массивов есть индексирование или весь массив из себя по сути представляет вот это?


struct metaprog_instance_0_3560345070488020993__structure_definition_6184720867747722241_0 {
size_t size;
unsigned char *  pointer;
char dynamic;
};

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

Вы во первых не поймете, во вторых мне придется для этого деанонимизироваться - а я этого не хочу.

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

До-до, особенно транзисторы и теорию для их производства. С Вашим то знанием математики…

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

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

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

Теперь понятно чем Вы с Дианой так глянулись друг другу…

Котечка уже прямо писал, что прикалывается. А «пригляулся» мне он тем, что сначала давал прямые ответы по существу, намного более релевантные чем у гугла, а теперь уже и прямо работает над стандартной библиотекой Метапрога.

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

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

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

а где мелодия которая будет играть вновь и вновь? тут еще требуется доработка, надо все это зациклить по условию и добавить плеер с приятной музыкой, вот тогда «скриптуха» + утилитка диалог(хз на чем она) победит.

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

Да и отвязка от консоли и компиляция кроме линукса еще и под винду (не WSL) не помешала бы.

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

Благодарю за фидбек. Ваше мнение очень важно для нас

#!/bin/sh

set -ex

TIME=$(zenity --forms --add-entry="ЧАС" --add-entry="МИНУТА" --separator=':')

echo 'mpg123 --loop -1 melodia.mp3' | at "$TIME"
provaton ★★★★★ ()
Ответ на: комментарий от metaprog

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

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

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

До-до, оставляя за кадром дизайн схем - что и как Вы собрались там легировать, г-н практик? Как именно Вы собрали определять размеры переходов в транзисторах, материал для легирования и его количество? Экспериментально?

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

Нукося г-н практик, расскажите мне без гугла про форвакумный насос? Или может нормативы на устройства дверей и вентиляции для помещений в которых работают с силанами озвучите? А может хотя бы сечение медного провода на 20А, длина линии 100м, потери не более 5В посчитаете? Нет конечно, Вас на такое производство даже дворником не возьмут - не то что Вы там что то «придумывать» будете…

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

Из Вас Ванга еще хуже чем программист - хотя это и трудно себе представить.

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

Ну это уж очень какой-то простой тест с единичным выделением и высвобождением

Но утечек нет. Библиотечные вызовы - только malloc и free.

у ваших массивов есть индексирование или весь массив из себя по сути представляет вот это?

Это и есть тот самый метапроговский массив. Индексирование - в функциях, работающих с ним.

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

Не работает. Мой будильник без mp3 работает. В версии на константах от wav работал, но теперь он не нужен. Кстати, используется то же zenity.

И, опять же, баш, а не Си. Где компиляция под винду без WSL?

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

Вот это для метапрога в моем исполнении будет стоит 200$

За бесплатно опенсорс пилить анскильным проФФесорам не дано?

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

Сфигали я должен для Вас что то пилить?

Так что там с легированием переходов в транзисторе, обустройства помещений для работы с силанами или хотя бы расчета провода? Необучаемый дворник метапрог, корчащий из себя Великого Практика, увидел много незнакомых слов и привычно слился?

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