LINUX.ORG.RU

Metaprog: выпуск прототипа (универсальная графическая среда программирования)

 , ,


2

3

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

LabVIEW-прототип не является конечной целью. В дальнейшем с помощью прототипа Metaprog будет собран «сам на себе» и не будет зависеть от LabVIEW.

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

Видео-обзор ( VarfolomeyKote4ka)

https://youtu.be/EcQMgUAm0DE

Скачать: https://www86.zippyshare.com/v/pWggQ91b/file.html

Аннотация

Открывать и запускать !метапрог.vi и !метапрог онлайн.vi

В Метапрог онлайн интегрирован чат и хранилище пакетов с блок-диаграммами. Там идет разработка Метапрога и можно получить консультации.

В Метапрог и Метапрог онлайн встроена справочная система и интерактивные инструкции.

Требования:

1. Для запуска, просмотра и редактирования диаграмм - LabVIEW начиная с 2013.

2. Если не удалось достать линуксовую версию LabVIEW - виртуальная машина с Windows начиная с ХР с кириллической локализацией (иначе будут проблемы с кодировкой символов).

3. Tor Browser или Tor для подключения к серверу:

https://www.torproject.org/

или:

sudo apt-get install tor

4. Для компиляции сгенерированного кода:

sudo apt-get install clang libevent-dev libsdl2-dev

Адрес для добровольных пожертвований:

Bitcoin: 1AYoK2TScSpD5bhf67mv9AxHDJ2RidRvjD

Этот адрес действителен как ключ для электронной подписи от имени разработчика.

Код лицензирован под GNU GPL v3, подробности - по кнопке «Про программу» и в файле LICENSE.txt (на английском). Отдельные файлы могут быть лицензированы под MPL и другими лицензиями.

Описание конструктора диаграмм (часть справочной системы, лучше читать смотря на Метапрог)

В случае вопросов или проблем консультации можно получить в чате программы «Метапрог онлайн».

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

Блок-диаграмма состоит из блоков, линий с данными и особых линий - жестких последовательностей. Каждый блок может иметь входы и выходы.

При клике на терминал начнется рисование провода с данными. Клик на пустом месте при рисовании провода задает точку излома провода. При приближении курсора к терминалам провод автоматически подстраивается под ближайший терминал с совместимым типом (несовместимые типы подключить невозможно). Для окончательного подтверждения соединения кликни и связь будет установлена. Чтобы отменить рисование проводка, нажми Esc.

Подключаться дважды к одному терминалу нельзя - будут ошибки. Используй разветвления. Чтобы создать разветвление, кликни на квадратик, который появляется при приближении к проводу, и рисуй провод как обычно (только отенять кнопкой Esc не надо - будет баг).

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

Очередность выполнения также задается жесткими последовательностями. Это - особые линии, которые проводятся по кнопке блоки - последовательность. Первый клик на блоке - начало последовательности, следующие клики - изломы провода (на пустых местах) либо конец последовательности (на блоке). Места начала и конца провода имеют значение при работе с циклами, условными разветвлениями, переключателями.

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

Чтобы скопировать элемент на диаграмме, нажми на него колесом мыши. Чтобы вставить - жми колесом мыши на пустом месте.

При наведении мышью на элемент диаграммы отображается подробная информация о нем. Элементы подсказок кликабельные. Для дальнейшней справки кликай на "?" в подсказках к элементам.

Описание контейнера с данными и системы типов (часть справочной системы, лучше читать смотря на Метапрог)

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

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

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

Данные - включает в себя числа (знаковые, беззнаковые и бробные разных разрядностей) и логический тип (зеленый). Логический тип совместим со всеми числовыми типами, так как в Си они могут выступать в качестве условия (если ноль - «нет», все другие значения - «да»). Есть типы число (все числа, коричневый), знаковое (голубой), беззнаковое (темно-синий), целое (объединяет знаковое и беззнаковое),дробь (оранжевый).

Неопределенное - аналог типа void в Си. Совместим со всеми типами.

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

Структура (последовательность и выбор) прямо транслируется в struct или union на Си. Формируется из контейнеров с данными другого типа путем из вытягивания на структуру. Достум к элементам структуры осуществляется через блок «операция над структурой».

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

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

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

Функция Си - на уровне Си является указателем на функцию. Над такой константой есть пикторгамма соответствия копии на диске в виде дискетки, как над подфункцией. Ее цвет зависит от соответствия. Кликом по этой пиктограмме можно управлять соответствями. Подобная пиктограмма есть у сложных типов (структур и структур условного выбора типа). В подсказках к константам, содержащим подфункцию, есть 4 цветные цифры. Это суммарное число комментариев определенных видов в поддиаграммах (замечание, известные ошибки, пожелания и «дело сделано»).

------------------------------------------

При клике на пиктограмму перемещения объект можно передвинуть, при этом линии до его терминалов передвинутся за ним (но тут еще возможны баги).

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

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

Предыдущие темы, посвященные разработке Metaprog

Metaprog: универсальная графическая среда программирования [LabVIEW-прототип] часть 9

Там же ссылки на более ранние темы.



Последнее исправление: metaprog (всего исправлений: 1)

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

Да, я есть на Хабре.

Но зачем? Местные хоть троллируют, а тамошние молча карму сольют и всё. Как с Денисом Поповым было. Хабр – прибежище пассивно-агрессивных, а здесь люди с открытым забралом.

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

Когда руки дойдут. Возможно уже после того как сделаю чатик на самом метапроге.

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

странно что ещё не слили зареганные там лоровцы, которые тут всю эту клоунаду видели

Может, потому, что у лоровцев так не принято? :)

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

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

Владимир

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

Пожалуй было бы не плохо, чтобы ТС на хабре написал дюжину статей

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

о пользе «впрягания кобылы в трактор»

С огромной долей вероятности вся дюжина будет об этом. Если успеет. Мне кажется, там подобное сносят намного быстрее.

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

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

anonymous
()

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

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

Даже с инвайтом его быстро сольют. Сейчас глянул, инвайты стоят порядка $50 — это тебе не нового юзера на лоре регистрировать. Дорогое удовольствие.

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

механизмы ограничения неадекватных людей

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

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

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

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

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

Все закончится на краденом лабвью и винде в виртуалке.

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

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

Бизнесу не важно психи они или гении - ДЕНГЫ ДАВАЙ!

Владимир

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

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

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

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

Ой, кстати, какой интересный материал в свете метапрога...

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

Взято отсюда: https://habr.com/ru/post/427529/

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

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

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

Но ведь обычная безграмотность и воинствующая — таки две большие разницы.

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

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

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

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

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

А metaprog вроде на выздоровление пошел:
- ни кого не посылает;
- работает интенсивно;
- ...

Ему бы еще свои догмы «отменить».
Вот интересно поймет он, что во многом был не прав?

Владимир

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

странно что ещё не слили зареганные там лоровцы, которые тут всю эту клоунаду видели

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

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

Сейчас глянул, инвайты стоят порядка $50

Без лоха и жизнь плоха.

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

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

Да просто за опрос под постом минусуют. Я когда-то думал, что опросы это прикольно и добавил один. Оказалось не все разделяют моё мнение. Прикольно. Об этом, кажется, даже на Лурке написано, что опросы там не любят. А сидеть гадать что им нравиться — всё равно что подстраиваться. Местному анонимусу это не по вкусу.

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

Но ведь обычная безграмотность и воинствующая — таки две большие разницы.

Да расслабьтесь. Метапрог забудет добавить кат и его сольют первым постом. Всё предрешено.

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

+1. Там еще царские коммент-ветки безвозвратно удаляют, на ЛОРе хоть почитать можно.

Это с десктопа они удалённые, а на m.habr* весь царский трёп есть может быть даже до сих пор. Это баг что ли у них. В общем я с мобилы не обломался и пересмотрел все его умножения на ноль.

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

Вот интересно поймет он, что во многом был не прав?

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

Так и происходит психологическое взросление.

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

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

Работы привалило, небось. Не переживайте, вернётся он скоро. И вы снова сможете троллить ТС’а.

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

Ну вот Владимир «Не суди, да не судим будешь».
Вспомни каким ты был в молодости?
Вспомнил?
Ну так вот не суди строго других.

Честно говоря ни чего против Метапрог не имею ...

«Настанет день и сам поймет наверное ...».
https://www.youtube.com/watch?v=gL3bnw1XT5o Не думай о секундах свысока, наступит время сам поймёшь наверное..

Владимир

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

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

Ну зачем же так? Здесь же на ЛОРе так любят и хабр и ТС'а. Почему бы вместо этого наоборот - плюсиков теме подкинуть?

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

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

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

Я прототип Метапрога вполне себе могу поддерживать. Хотя без дополнительных плюшек типа структур условного выбора типа, версионированных форматов итп (которые я запланировал в Метапроге) в Лабвью сложновато.

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

лабвью. Кстати, там есть тематический хаб

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

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

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

Жаль, что «постройку дома» вы начали с крыши.
Вот GUI а-ля LabView нужно разрабатывать?
Нужно.
Ну хотя бы с него начали.
Кстати по разработке GUI, что нибудь расскажите?
Будет с scratch или за основу какой-либо из готовых возьмете?

Владимир

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

Когда начнете разработку GUI, то наверное лучше открыть новый тред типа «Разработка GUI для Метапрог».

Владимир

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

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

Все проще гораздо. Скоро в школу, революция временно откладывается. Какая-такая революция в программировании, когда тетрадки не собраны.

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

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

Владимир

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

Да не хочет он «молчать и слушать». Он хочет «взять всё и поделить». С соответствующим результатом.

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

Придет он постепенно к пониманию полезности: абстракций, объектов, ...
Из одного песка дом не построишь.

Владимир

anonymous
()

@metaprog Мне, в принципе, глубоко наплевать на графическое программирование вообще, и Metaprog в частности, но с уверенностью могу сказать, что мне было забавно наблюдать за самоподрывами местных самодовольных «гуру». @VarfolomeyKote4ka тоже +1.

Вениамин

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

Котечка, залогинься.

Ринат, залогинься.

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

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

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

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