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)

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

С всеми этими перлами «мириться» можно было бы.
ИМХНО главное - ни концепта ни новаций нет и даже намека на это нет.
Предположим будет доработано или разработано какое-либо GUI а-ля LabView /вообщем то это было бы не плохо/.
Пожалуй для этого нашлись бы «уместные» задачи.
Но реализация Си === LabView «лапша» мягко говоря «недальновидно».
И так а-ля LabView GUI имеем к примеру.
Представьте себе как будет выглядеть программы, использующие интенсивно работу с текстом, ...
Вот входы микросхем, ... для этой «лапши» будут очень уместны.
А если эта «лапша» вдобавок использует удобное API, то тогда все Ok!
Сам дизайн диаграмм LabView именно для такого рода задач и был разработан.
И более того они поступили - ПРОФЕССИОНАЛЬНО ...

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

Владимир

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

да это всё по сто раз ему говорили, и он сто раз одно и то же отвечал:

«я на лабвью всё прекрасно пишу, это универсальная среда, а вы все дураки и не лечитесь со своим текстовым программированием. а никто больше не использует лабвью и графическое погромирование потому что копирасты виноваты ЪУЪ»

вообще можно уже нейросеть натренировать отвечать за ТСа, а его самого забанить, мало что изменится

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

Предположим будет доработано или разработано какое-либо GUI а-ля LabView /вообщем то это было бы не плохо/.

Так ведь есть уже графические системы, и об это много раз писали. Есть свободные. Зачем распыляться на создание ещё одной, без каких-либо новых идей, если можно взять и допилить? Некоторые перечислены тут: https://alternativeto.net/software/labview/?platform=linux

Вот входы микросхем, … для этой «лапши» будут очень уместны.

Только вот микросхемы сейчас проектируют в текстовых представлениях. Не в последнюю очередь из-за того, что лапша сложна для понимания. К примеру, вот. Попробуй восстановить алгоритм: https://vimeo.com/351835220

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

вообще можно уже нейросеть натренировать отвечать за ТСа

Нет, это анонов можно заменить нейросетью, и rebforcer'ов c liksys'ями, одно и тоже пишут постоянно.

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

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

Нет ошибок — нет обработки ошибок. Так-то.

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

Когда я был помоложе и ростом 3.5 метра, то в бухгалтерских АРМ решал проблему просто.
Сообщений об ошибках бухгалтера ни когда не видели.
Был log файл, о котором знал только разработчик и оперативно исправлял ляпы.
Все хвалили и говорили - «Какой хороший программист.».
Ну, а потом log стал «худящий» - ну прям как «доходяга».

Владимир

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

Не к спору, ... /и всякому иному негативу/.

Мне ближе https://www.youtube.com/watch?v=IeHDQFkgNyY PROTEUS 8 для начинающих 2
http://theproteus.ru/

И это не просто красивые диаграммы - это графическая часть проекта.
Вообщем это огромная вселенная /не много затрагивал ее/.
Можно «нарисовать» схему и протестировать «все и вся».

Вот здесь графика «на своем месте».

Владимир

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

PROTEUS

А-а-а, ты уже про соединение готовых окорпусованных компонент. Я подумал, что ты про проектирование СБИС.

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

У ТС энергии много, но к сожалению она сводится «на нет» его бредовой «догматикой».

Владимир

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

Но у него «все впереди, надейся и жди».

Владимир

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

Признаю, я был не прав.

Metaprog 5
Metaprog 4
]Metaprog 9
...

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

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

Ну «догматика» и «аксиоматика» ТС требуют, чтобы возле него был:
- тазик с водой и розгами;
- и ХОРОШИЙ учитель.

Владимир

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

Но надо признать он «крепкий орешек» /в своей «догматике»/.
Может быть другие методы более «действенные» имеются?

PS: Конечно речь не о том, чтобы «на кол посадить».

Владимир

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

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

Жаль, что не поддерживаются кортежи.

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

Критикуешь анон, так скажи как надо ...

Смысл графического программирование мне не понятен.

Скорее всего использование графики при разработке программ должно быть объектно ориентированным и
быть rapid технологией для создания проектов.
То бишь должно иметь набор объектов «из коробки»:
- строки;
- массивы;
- списки;
- деревья;
- ...
- и еще две сотни объектов ... /для начала/.

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

PS: Реализуемый ТС - «антипод» выше сказанному.
Впрочем у ста программистов обычно бывает - сто и одно мнение.

Владимир

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

Так по лучше ...

Критикуешь безмозглый анон, так расскажи как надо ...

Далее сказанное не является «априори», а лишь подходом к разработке архитектуры

Смысл графического программирования мне не понятен.
Скорее всего графические примитивы должны быть объектно ориентированными и акцентированными
к разработке rapid технологии для создания проектов.

"Из коробки" программисту должны быть предоставлены графические примитивы для работы с:
 - строками;
 - массивами;
 - списками;
 - деревьями;
 - математическая нотация /для начала и MathML сойдет/
 - ...
 - и еще две сотни объектов ... /для начала/.

Графические примитивы должны быть "придатком" к высокоуровневому API /библиотеки/.

PS: Реализуемый ТС проект - «антипод» выше сказанному.
Впрочем у ста программистов обычно бывает - сто и одно мнение.

PS: Выше сказанное не от «диванного теоретика».
Пока разрабатывается API.
Пожалуй где-то с 14 октября начну разработку GUI с scratch.
Так как GUI будет не просто набором controls, а использовать метаданные из объектно-ориентированной метадата базы.

Владимир

anonymous
()

Это полный провал. Выпуск прототипа не только не начал революцию в ИТ, но и не вызвал срач и глумление над автором на 40 страниц. Судя по количеству отзывов о работе революционной графической среды, скриншотов и видео от счастливых пользователей, их количество колеблется между 0 и 1 (не считая самого автора).

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

Скорее всего ТС продолжит развитие своего проекта и постепенно создаст «новации», являющиеся аналогами объектов ...
Если долго мучится, то «что нибудь получится» - обязательно.

Владимир

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

не вызвал срач и глумление над автором на 40 страниц

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

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

Они просто завидуют, у них времени и идей на это попросту нет. Ты патентуй быстрей.

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

Тебе самому не стыдно обзываться как в детском саду? Господа регистранты, настучите на этот коммент кто-нибудь.

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

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

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

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

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

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

Шутка.

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

Владимир

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

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

Тычо! В ютубе уже тренды с этим метапрогом. Сам Гейтс высказался, что это будущее! Торвальдс лично приехал в украиский мухосранск пожать руку аффтору и предложить ему переписатьперерисовать ядро на схемах. IBM начало делать графические процессоры (с микрокодом на метапроге). Хабр бурлит обсуждениями! Королева готова дать метапрогу рыцаря. копирасты из NI плачут и считают убытки, думают нанять киллера для аффтара. i-rinat ушел в монастырь

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

с микрокодом на метапроге

с метакодом на микропроге О_О

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

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

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

anonymous
()

Вообще странно, что в теме о релизе революционной графической среды программирования нет ни одной картинки...

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

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

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

Господа регистранты, настучите на этот коммент кто-нибудь.

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

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

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

Ты чё? Кто бы ещё сделал такую роскошную рекламу LabVIEW, как ТС?

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

Ой да лаааааадно.

Взлетит ли метапрог — очень большой вопрос (скорее всего, нет, конечно), а вот про существование «графической среды разработки для самых маленьких» благодаря этим темам узнали очень многие. И для этих многих, думаю, понятно, что если ТС использует её не по назначению, это не означает, что она плоха сама по себе. Ринат даже вон легальную домашнюю версию за $50 откопал :) — и всё благодаря ТСу. :)

Я бы на месте NI ему грант выдал.

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

Так метапрог же взлетел! теперь лабвью ненужен. Поэтому и убытки.

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