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)

Ответ на: комментарий от Razk

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

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

но вас никто не заставляет это делать, можете не пояснять.

Да я пожалуй что-то увлекся. Последую вашему совету.

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

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

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

Чтобы понять чем достаточно просто сравнить технические спецификации обоих устройств по предоставляемым ими возможностям. Видите ли в чем дело, вряд ли тут найдется человек который наизусть знает все бесчисленные вариации микроконтроллеров и из функционала, так же как и всю линейку интела и их процессоров. Кстати на той же вики по 80386 написано что сейчас их используют в контроллерах (скорее всего не микро, а обычных, из мира автоматики)

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

Зачем нарушать закон(ну или священные права, называй как хочешь), если можно не нарушать.

Если не западло спонсировать заморских толстосумов - можешь и купить лицензию.

Блокнот и gcc бесплатны. Книгу С для чайников можно за месяц осилить. И тихонько пилить кодогенератор

В блокноте и на чистом Си? Нет уж, я не мазохист.

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

Исходники обычно достаточно компактны

Да уж, особенно исходники на чистом Си, которые в разы длиннее питоновских.

А вот прозрачными и читаемы где угодно они должны быть

Если в 2020 году оглядываться на удобство чтения в блокноте - далеко прогресс не уйдет. А читалка формата диаграмм все равно будет свободной. Да даже прототип уже под GPL v3.

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

Потому что они сами бездарности.

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

Нет ничего священнее своих детей

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

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

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

Словом, если не считать мультиядерных систем, то везде под капотом так или иначе сидит конкурентное выполнение на уровне ядра ОС, я правильно понимаю?

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

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

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

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

Не переписать, а пересобрать. Это и есть цель на данный момент.

до того момента для меня его по факту не существует как и для большинства тут

Вообще-то существует, пусть и на Лабвью. Если кому религия не позволяет запустить даже скомпилированный бинарник, требующий только бесплатного (даже для почитателей копирайта) рантайма (при чем все работает под вайном) - это не мои проблемы.

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

Метапрог «сам на себе» собираюсь и на веб портировать (по крайней мере, собиралку диаграмм).

но так его тоже нет или нет в свободном доступе

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

Есть еще конечно третий вариант, если вы просто наделаете скринов диаграмм на лабвью и я из буду рассматривать наперевес со справкой от NI

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

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

Надо Лабвью. Попробуем отвлечься, расслабиться, помедитировать. После чего в голову прийдет гениальная мысль: Debian GNU/Linux 2013 года можно скачать через торрент.

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

Лабвью - высокоуровневый конструктор с нижайшим порогом вхождения

Ну так это же прекрасно. Зачем мне питон, если есть Лабвью?

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

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

Метапрог «сам на себе» собираюсь и на веб портировать (по крайней мере, собиралку диаграмм).

Ну вот это было бы отличным решением проблемы распространения чтобы можно было реально что-то попробовать без нужды что-то вообще устанавливать.

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

я бы на вашем месте вообще сейчас об этом не думал есть куда более важные и нужные задачи

Совершенно верно. Это я так, подумываю.

тем более учитывая что все равно все транслируется в С и С это умеет

Не зря я выбрал именно сишный бекенд:)

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

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

Используй виртуалку.

Ну вот это было бы отличным решением проблемы распространения чтобы можно было реально что-то попробовать без нужды что-то вообще устанавливать.

Да. Когда мне что-то кидают, порой лень заморачиваться с установкой. Хотя я все равно пощупал многое из того что мне кидали (например, тот же джавовый myopenlab) чисто чтобы быть объективным.

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

И я уже который раз задаю вопрос(и до меня его задавали) нафига?

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

Я уж лучше тогда Visual Studio скачаю прости господи :)

Ну его я не использую, так что не в тему.

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

сейчас это минимум структурированный текст (xml,csv,json,ron,yaml,etc),

Чем он лучше бинарной сериализации?

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

Все же SDL немного не для этого задумывался, соответственно и поточный код там на уровне «вот вам что-то, отвалите товарищи игроделы»

С другой стороны, кроссплатформенность из коробки - это круто.

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

Используй виртуалку.

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

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

Мы уже подробно рассматривали этот вопрос.

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

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

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

Лучше не отвечать на его вопросы

Если б модераторы не свирепствовали, я б на это ответил матом.

если ответы можно найти по первым ссылкам в гугле

Адепт Пресвятого Гугла пожаловал. Мне лень гуглить, забыл? К тому же, адекватные ЛОРовцы могут дать ответ куда более релевантный, понятный и на русском языке.

Пусть учится сам добывать информацию

Делать мне нечего? Я пока что и так знаю достаточно, чтобы пилить прототип Метапрога, а если чего не знаю - Котечка подскажет запросто без посыланий к гуглу.

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

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

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

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

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

Я тем более не из таких:)

Начиналось это обсуждение с того, чтобы вкрутить многопоточность в ардуину. Если делать полноценную многопоточность, шедулер и прочие плюшки там, видимо, будут примерно такие же как на ОС для х86. Короче, надо по свободе пощупать ту либу.

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

Если б модераторы не свирепствовали, я б на это ответил матом.

Ути-пути.

Мне лень гуглить

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

Делать мне нечего?

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

Я пока что и так знаю достаточно, чтобы пилить прототип Метапрога

Поделил на ноль. Если бы знал, у тебя не было бы проблем с поиском информации и корявым транслятором.

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

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

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

Тебе не лень, ты не умеешь искать и обрабатывать информацию

То что надо умею.

Я хочу... чтобы тебе в этом не помогали

чтобы тебе в этом не помогали

не помогали

Ваше Сиятельство, извольте пройти по адресу, по которому обычно посылают «на», но который запрещают прямо упоминать на ЛОРе.

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

Ну вы просто вбили себе это в голову, вас от ответственности спасает лишь то, что вами никто не заинтересован. Вспомните недавнюю историю с Сысоевым да и любую другую, как только дело запахло деньгами, тут же и шакалов набежало. Кстати вам уже неоднократно говорили что ваш проект ждет тоже самое если он станет хоть кому-то нужен кроме вас, потому что по факту вы работаете на ПО которое не купили и тот же NI с радостью подаст на вас в суд и выиграет его, если вы конечно не сможете договориться полюбовно.

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

Когда Метапрог будет «сам на себе», без использования Лабвью, кто на кого и по какой статье в суд подаст, да еще и украинский?

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

А на самом деле, копирасты запугивают людей полицейскими мерами. И это отвратительно.

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

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

Это рекламка. Ну можно в качестве аннотации использовать в документации.

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

А это уже будет похоже, после некоторой обработки, на введение.

Дальше, уже полное описание каждого элемента диаграммы, желательно с примером использования. Вот это будет документация.

Надо скачать и запустить Метапрог

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

Что такое СУВТ ты так и не удосужился объяснить. Это таки одна из многочисленных реализаций Variant’a?

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

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

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