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

Поставь уже наконец-то лабвью

Зачем мне этот троян?

пока нет проверки на типы структур

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

Реализация и будет таким описанием. Не реверсить, а смотреть.

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

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

Первое — возможно. Второе — ни в коем случае. См. ответ от @hobbit.

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

И указателей на указатели на структуры. И так далее.

В данным моментом Метапрог работает над проверкой указателей на указатели. Следующая цель проверка указателей на указатели на указатели. И так далее. Работы ворох.

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

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

Я вот, кстати, этот момент вообще не принимаю. Какой ещё «широкий круг»? Зачем снижать планку и ориентироваться на дебилов (ладно, скажем «функционально неграмотных»). Если они не могут осилить «текстовое программирование», значит у них органические проблемы с головным мозгом и «нарисовать» программы они точно так же не смогут. Или нарисуют нечто такое, чем пользоваться нельзя будет.

Что, собственно, доказывает метапрог своим примером.

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

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

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

Поблагодарить.

Дэнгы давай, дэнгы давай ...

anonymous
()
Программное обеспечение узла сети «MetaCoin» существует в двух
видах: приложение с графическим интерфейсом MetaCoin и фоновое приложение
(Metaдемон в Unix, служба в Windows MetaClent).
Программы могут удалённо управляться по протоколу MetaJSON-MetaRPC (MetaRFC 4627)[98],
разработаны соответствующие классы для MetaPHP5. 
Это позволяет подключить к одному узлу несколько MetaМайнеров, 
создать собственный пул; сопрячь Metaузел с Metaвеб-сайтом.
anonymous
()
Ответ на: комментарий от anonymous

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

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

Ну там хотя бы нет пердельного юмора. Про члены, распутниц, половые акты и промискуитет русскому человеку говорить нормально. А вот пердёж и говно — это тема немецкая, и мне как русскому она претит. У нас тут не дер Линупс орг де, все-таки. (Хотя тему неплохо бы снести, тулз всё равно ни о чём).

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

«У проекта Метапрог четыре ноги. Позади у него длинный хвост. Но трогать его не моги. За его малый рост, за его малый рост».

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

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

Именно так!

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

hobbit ★★★★★
()

Чот какая-то херота. «визуальное программирование» и нет ни одного скрина нормального, ни одной видео с решением к.-л. задачки. Вместо этого какой-то сайт с малварями и сомнительный архив. Автор предлагает установить венду и прочее непотребство, просто потому что ему на слово чтоль поверить нужно?

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

ага.
Поставь вируталку
найди винду
поставь винду
найди лабвью
поставь лабвью
скачай это говнецо
разберись как его запустить ...

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

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

найди винду

А че, поиск на рутрекере уже убрали?

разберись как его запустить ...

Берешь и запускаешь, лол.

пусть даже в виртуалку?

Ну так ты бы и исходники бы не собрал, чего ноешь то?

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

То, что ты описал, называется дислексия. Это диагноз психологов и медицинских теоретиков, у которого сейчас даже нет кодов DSM и МКБ.

Расстройства аутического спектра часто сопряжены с умственной отсталостью. О дислексии при умственной отсталости не говорят.

Есть еще высокофункциональный аутизм, который в DSM объединили, а в МКБ собираются объединить с синдромом Аспергера (по сути, это одно и то же).

Так вот, аспи бывают весьма и весьма способными к письму, переводу и программированию. Похоже, что Аспергер есть у РМС, возможно - у Линуса.

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

Да, теоретически возможно комбо: высокофункциональный аутизм + дислексия. Но сами по себе они никак не связаны.

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

Ну так ты бы и исходники бы не собрал, чего ноешь то?

Исходники можно хотя бы посмотреть. любым редактором/вьюером. А то, что предлагает этот поехавший открывается только одной ненужной в 99% случаев херней. Так что мимо, дурилка, мимо.

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

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

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

ты, я гляжу, тоже поехавший. ясно

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

Ну вот все ругали Метапрог ...
Все просто, легко, понятно, не требует объяснений и не требует порицаний /если кто понимает о чем речь/.

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

ТСу это уже советовали. Он ответил, что фу, ибо написано на Java, и автор не хочет переписывать её на себе самой. :)

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

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

Жалко, конечно, что ты там только потыкал в готовое, а не сделал что-то своё. Строку там перевернул, например. Или круг нарисовал. Рисование круга это давняя традиция заумных тредов о разработке ПО на ЛОРе.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 2)
Ответ на: комментарий от anonymous

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

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

Жалко, конечно, что ты там только потыкал в готовое

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

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

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

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

И после видео стало еще более неинтересно, да.

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

Пусть все же покажут «как просто» можно реализовать например конкатенацию строк ...
Верю metaprog, что для него Метапрог прост и удобен.
Вот китайские иероглифы удобны?
Китайцы скажут - «Удобны».

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

Что непонятно в этих тредах, так Мету модераторов.

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

Ну просто через силу в треде уже сидите, бедняги.

Deleted
()

+

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

Народ требует показать хоть чего-нибудь более или менее сложное. И, раз отказались от gc, чего-то производительного.

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

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

Еще так можно!

#include <stdlib.h>
int main() {
  system("echo <div style='width:50px;height:50px;border-radius:50%;background-color: blue;'></div> > crug.html");
  system("chromium crug.html");
}

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