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)
Ответ на: комментарий от i-rinat

Чушь, ты просто гордишься тем что знаешь хлам, понятно?! Вон с rebforcerom поговори, он тебя просветит, пора бы уже выкинуть практически все, ну кроме rebol, clojure там...

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

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

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

hobbit ★★★★★
()

Как закатиться в Metaprog-тред если ты не сидел в предыдущих двадцати?

Накидайте полезных советов.

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

Скачать и запустить прототип Метапрога. Подробности в заголовке темы.

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

Посмотреть видео: https://www.youtube.com/watch?v=EcQMgUAm0DE&feature=youtu.be

Скачать LabView 2013 x86, Windows XP Professional, Metaprog, а после можно начать творить. Если нужна информация, то можно почитать быстренько начальные посты каждых тем.

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

Скачиваю Лабвью, а мне вместо капчи спрашивают ширину жд-колеи.

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

Sage

Ну вот, блин.

Полтора дня никто в тред не писал, уже и из трекера пропало, а ты апнул :-(

Как там идет переписывание метапрога не на лабвью? Вангую, что пациент грустит, потому что кроме лабвью нифига не осилил. А еще завтра еще понедельник, а домашка не сделана.

anonymous
()
Ответ на: Sage от anonymous

Не, он не виноват, это я апнул.

А ванговать — дело гиблое. «Либо увидим, либо не увидим».

hobbit ★★★★★
()
Ответ на: Sage от anonymous

Двощерие на моем ЛОРе?

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

Мне кажется, у нашего пациента депрессия. Не понят на лоре, не понят на хабре.

Неужели же концепция и философия была ошибочна?! :D

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

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

Я тоже не считаю Лабвью идеалом, иначе не брался бы за Метапрог. Это всего лишь лучшая из имеющихся на данный момент сред программирования, только и всего. Из имеющихся именно на данный момент. Кто после моего практического опыта с Лабвью убедит меня, что какой-то питон, плюсы, джава или сишарп удобнее?)) А ведь Метапрог-то разрабатывается...

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

нормально

Но болезненно для неокрепшего мозга.

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

// Кловун старательно пытается сделать вид, что я - единственный его враг в интернетах, а всех тех десятков людей, что говорили ему о том, что он занимается херней, не существует :3

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

А ведь Метапрог-то разрабатывается

Сначала ты всё обставил так, что все тут подумали, что релиз «прототипа» будет содержать метапрог-сам-на-себе. Наверное, прямым текстом ты такого не писал, я не вчитывался. Но ты неоднократно заявлял, что после выпуска прототипа вплотную займёшься созданием метапрога-самого-на-себе. Выпустил прототип. И всё, что можно на прототипе — считать факториал. Даже без ввода значения с клавиатуры, тупо харкод входных значений. А теперь ещё выясняется, что метапрог-сам-на-себе можно будет начать делать только после следующей версии прототипа. Даже не сделать. Начать только.

Обычное vaporware.

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

Если тебя не устраивают темпы разработки - вливайся в проект и ускоряй ее.

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

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

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

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

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

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

......

И всё, что можно на прототипе — считать факториал

................

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

.................................

А теперь ещё выясняется

.......................................................

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

Ну ты просто мастер проецирования и аутотренинга!

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

Ошибки признать не способен в виду общей незрелости.

Какие еще ошибки? Самая большая ошибка за время разработки Метапрога - это трата времени на ответы тебе, в том числе этот.

все твои оппоненты оказались правы

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

Сообщений все меньше, былого задора уже нет

Потому что незачем мне что-либо тебе доказывать. iluha16 тоже пытался что-то доказывать тете Ирине и бабе Ликсусе, но понял, что это - напрасная трата времени. Лучше потрачу его на разработку Метапрога.

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

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

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

В чем?

Что графическое программирование общего назначения не нужно :)

Потому что незачем мне что-либо тебе доказывать

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

От тебя пользы ноль

Конечно, я же не собираюсь помогать этому цирку.

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

Особенно доставляют заявления вроде

Большая часть современого прогрммирования на текстовых языках — это и есть Ctrl+C/Ctrl+V.

(орфография цинично сохранена)

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

Были бы ошибки - признал бы. Но я их не вижу.

Потому, что ты ещё не дошёл до того уровня, на котором они станут критичными.

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

В огороженном лАбВьЮчАтИкЕ с полутора анонимусами ты этих вопросов можешь и не получить, да.

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

В огороженном лАбВьЮчАтИкЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PS: кстати, тормоза мертвопрога при отрисовке диаграмм происходят не из-за отсутствия аппаратного ускорения, а потому что лабвьюшные кубики, которые ты использовал, не предназначены для анимации. Даже на питоне с pygame или на Qt без opengl рисование 2d было бы быстрее. Еще один камень в твой огород выбора инструмента не по задаче.

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

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

На самом деле я не понимаю, зачем ты тут флудил 10 страниц. Очевидно, что ты не внял ни одному совету и зафейлил абсолютно всё. Всё, о чем тебя предупреждали, сбылось.

Достаточно просто увидеть, что за 20 страниц, прошедших после релиза, НИКТО из людей вне твоей с котечкой палаты не попробовал это поделие. Провал.

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

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

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

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

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

Самая большая ошибка за время разработки Метапрога - это трата времени на ответы тебе

Жестокий дефицит йода. У тебя настолько низкий интеллект, что ты не смог найти кнопку «добавить в игнор» в профиле оппонента? Тогда трать время на ответы, чо

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

Пойдет время - и ты исчезаешь совсем.

Иногда почитываю эти темы и не могу понять, тебе-то это зачем? Видно, что это твое желание, чтобы он изчез. Зачем тебе это?

Зачем вы все пишете в эту тему? Может, как обычно это принято на лоре, сказать своё «ненужно» и отойти?

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

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

За это тебя следует наказать по попе ремнем

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