LINUX.ORG.RU

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

 , ,


1

2

Сегодня, как и было обещано, день выпуска 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

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

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

Лицухи labVIEW за твой счет?

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

Есть пробная версия.
Чтобы продолжить, создайте учетную запись

акуительно!

anonymous ()

Я не понял, а когда уже будет полноценный бинарь, чтобы под wine пустить, м?

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

Вот кстати было бы намного проще, что думаешь metaprog? Тогда в Wine ставишь рантайм и пускаешь сам метапрог. Рантайм же под вайном должен идти?...

VarfolomeyKote4ka ()

Для присутствующих хочу разъяснить, что автор неоднократно и демонстративно кладет болт на юридические формальности, в частности, публикация исходника этого поделия под GPL нарушает EULA самого лабвью (кстати, ворованного).

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

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

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P9ezSAC&l=...

you must ensure that you follow section 13 of the agreement. Specifically if you distribute run-time engines for the SOFTWARE or driver interface SOFTWARE with your Authorized Application, you must pass through to users either the NI License Agreement, or your own license agreement, which is substantially in accordance with the NI License, with restrictions against allowing your end users to (i) reverse engineer, decompile, or disassemble the SOFTWARE

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

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

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

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

Донат очевидно идет солдатам НАТО? Хорошие ты сказки придумываешь.

VarfolomeyKote4ka ()

Почему сие поделие не самостоятельное?

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

Разработка велась изначально на labview, ну так и продолжилась. Сейчас появился прототип, довольно таки интересный, и с этого времени уже будет идти переписывание метапрога «на самом себе», ну и следовательно будет идти и отвязка! Тогда и будет самостоятельность, относительная.

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

Уже сейчас прототип генерирует Си код. Сейчас будет писаться новый метапрог с учетом опыта, на этом прототипе. Новый метапрог уже можно будет как минимум собрать под линуксом с помощью gcc. Далее уже планы с ассемблером итд. Ну а привязка к labview исчезнет, так как сам labview нужен чисто для запуска текущего прототипа.

VarfolomeyKote4ka ()

Новость на главную запилите кто нибудь!

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

Почему, кстати, генерация С, а не LLVM? В инете есть куча статей, показывающих, как «с нуля» сделать язык и компилятор к нему, используя автоматизированные тулзы.

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

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

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

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

Хороший вопрос, ответ мне тоже интересен будет. Ну наверное Си ОП уже знал, и решил для прототипа не слишком усложнять себе работу.

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

Практически сплошная ложь.

потому что лабвью давал ему оооочень высокоуровневые кубики

Интерфейс прототипа сделан на довольно таки низкоуровневом, хотя скорей примитивном функционале отрисовки labview. Nuklear наоборот это высокоуровневость в сравнении с тем что было. Ты бы посмотрел сначала прототип, но сказки рассказывать веселее конешно %)

Потыкавшись сначала в гтк, а потом в нуклеар

gtk слишком тяжелый, это будет заметно не на линуксовых системах.

и продолжил делать свою поделку на лабвью в надежде

Чисто твои догадки ничем не подтвержденные. У тебя особое, свое восприятие мира.

Собственно, все девять тредов он пытается припрячь кого-то делать этот проект за него

Ложь, в начале ОП вообще хотел лично сам делать все основное, из за этого аноны говорили что метапрога нету, а ОП рисует скриншоты в паинте. Так по моему и ты говорил, или rebforcer, не помню уже.

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

Почему ты продолжаешь упорно мне писать? Мне неинтересен твой бред, пусть с ним психиатры разбираются. Спорить с тобой тоже не интересно, потому что ты либо врешь (все твои возражения - вранье), пытаясь оппонировать, либо выдаешь некомпетентные суждения. У тебя и лабвью низкоуровневый, и в питоне «нет типов». Весьти с тобой диалог - все равно что пятикласснику объяснять про законы Кирхгофа. Хотя пятиклассник может еще что-то понять, пожалуй.

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

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

Но ведь это «О программе»

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

Почему ты продолжаешь упорно мне писать?

Я просто отвечаю на твою ложь. Я конечно понимаю что тебе не нравится, но я вроде бы у тебя в игноре :-) Хотя и дураку ясно что ты так оправдываешься, отвечать за свои слова не хочется то, когда ты лгун-liksys.

Мне неинтересен твой бред

Очень аргументированно!

У тебя и лабвью низкоуровневый, и в питоне «нет типов».

Ничего из этого я не говорил. Опять врешь. Ну или очень плохо читаешь.

VarfolomeyKote4ka ()

Во, идея - иди на хабр тему создай со своим метапрогом - даже интересна будет реакция местных))

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

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

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

Не трудись отвечать, дальнейшего диалога у нас с тобой не будет.

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

GPL эта поделка тоже нарушает

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

весь этот прожект создается исключительно для сбора донатов

Не факт, скорее автор очень хочет быть погромистом и очень неосиливает нормальные ЯП.

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

разве он распространяет

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

очень неосиливает

И не пытается.

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

но тратить свое время на это не буду

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

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

Тем, кто следил за эпопеей

Конечно им все очевидно, особенно что ты врун. Вот я например тут с 1 треда. А ты пришел где то в 5-6 треде, и очень сомневаюсь что ты читал предыдущие.

Не трудись отвечать, дальнейшего диалога у нас с тобой не будет.

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

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

Аудитория хабра в основном состоит из неразумного нубья. Каждая первая тема аля «как написать helloworld на Python» собирает сотни классов и восторженных комментариев с просьбой к автору писать ещё. Они признают дупапрога богиней и будут на руках носить.

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

А почему сам прототип нельзя перегнать в C и скомпилять?

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

Хабр - то еще место, но ненужность поделия ТСа даже там всем будет очевидна. Ну может найдется парочка дурачков вроде котечки, но не более того.

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

ОП говорил что labview схемы довольно таки сложные (на них сделан прототип), и перевести их во что нибудь другое будет крайне сложным. Так то это было бы хорошим вариантом, сам думал и предлагал.

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

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

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

Хоспаде, бред все бредовее.

Они с котечкой пытались

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

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

Является ли сохранённая в png картинка производной от фотошопа?

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

Если хочешь сравнить с фотошопом, то давай возьмем psd, а не общий формат. И то, psd понимают многие редакторы.

В случае с лабвью - никто не понимает формата лабвью, кроме него самого.

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

Я просто не видел фотошопа уже лет 15 и не помню как там формат называется.

Так распространение psd же никак лицухой не возбраняется?

никто не понимает формата лабвью, кроме него самого

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

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

Полагаю, распространять псд, сделанный в ворованном Фотошопе, ты не имеешь права.

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

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

В этом как раз нет проблемы - если автор пишет код сам, он может добавить исключение в лицензию

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

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

liksys ()

www86.zippyshare.com

А-а-а-а, держите меня семеро!!!111пыщпыщ

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

То есть аффтар, который афиширует создание своей системы контроля версий, не осилил ни одну из уже существующих. Зошибизь (читать без Ш). Впрочем, с ЯП та же история.

Данные - включает в себя числа (знаковые, беззнаковые и бробные разных разрядностей)

бробные

Барбитуратные, я бы сказал.

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

«О программе» это на русском языке. На мове должно быть «Про програму» с одной 'м'. Автор опечатался от волнения?

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

он может добавить исключение в лицензию

Это уже не GPL лицензия её нельзя править, это теперь EULA

LINUX-ORG-RU ()
Ответ на: комментарий от annulen

Считает, ты всё трактуешь как-то по своему, причём безосновательно.

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

Там специальный пункт для этого предусмотрен, по ссылке сходи и просветись

annulen ★★★★★ ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)