LINUX.ORG.RU

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

 , , ,


0

3

Интерактивная обучалка

https://streamable.com/dnhoy

Интерактивная инструкция по сборке факториала

https://streamable.com/h8dto

Меню из функций

Наконец допилил меню из функций. Программирование на Метапроге будет выглядеть примерно так:

https://streamable.com/xlprt

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

Сама функция, считающая факториал, выглядит так:

https://i.postimg.cc/ZRzpHhnv/image.png

Полученный код корректно считает факториал 11 (10+1, как на схеме):

https://pastebin.com/pdbhKcey

Переключатель (он же switch)

https://streamable.com/vgn3w

https://pastebin.com/tuB9X00u

Чат-клиент

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

Версия 1.

http://e2tilsgo5s44hqmlwb4epwrjnh7ynvsckj2tl5duwdqbxg67chqpelad.onion/file/de...

Требования

1. Windows начиная с ХР с кириллической локализацией (иначе будут проблемы с кодировкой символов).

2. Для запуска скомпилированного ехе-файла бесплатный рантайм (32-битный):

https://download.ni.com/support/softlib/labview/labview_runtime/2013 SP1/Wind...

3. Для просмотра и редактирования диаграмм с кодом чат-клиента - LabVIEW начиная с 2013. Как кто его достанет - личное дело каждого, если жалко денег - на торрентах оно есть.

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

https://www.torproject.org/

Сам чат-клиент лицензирован под GNU GPL v3, подробности - по кнопке «Про программу».

FAQ

0. Где отсутствующие примеры и пункты FAQ? Как вообще читать эти темы?

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

11. Как выглядит факториал в графическом представлении?

https://i.postimg.cc/ZRzpHhnv/image.png (уже на Метапроге, а не Лабвью).

Прошлые темы:

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

+------+      +------+
| xorq +------+ %rax |
+------+      +------+
       |
   +---+--+
   | %rax |
   +------+

Удачи. Ха-х.

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

Артурианец пилит Skyviz на С++ с гитхабом. Пока не видно, чтобы это давало бонус к скорости разработки сравнительно с Лабвью.

У меня такое ощущение, что мотивированность у тебя выше, и если бы ты пилил на C++... В общем, очень субъективно. Но главное, что его исходники может посмотреть и заинтересоваться любой, просто зайдя на гитхаб (не на этой стадии, конечно, а когда будет что пощупать и увидеть). И даже это не даёт гарантии, что заинтересуется. Найти единомышленников на опенсорсный проект вообще задача нетривиальная. А ты людям ещё и рогатки ставишь.

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

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

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

Вручную ставить скобки и точки с запятыми

Ну как минимум это не сложнее, чем таскать узлы и связи из панели инструментов. К тому же закрывающие скобки (а иногда и открывающие) IDE во многих случаях умеют ставить сами.

прописывать ручками каждый вызов функции

Есть автодополнение. Я обычно 2-3 буквы набираю, дальше мне уже предлагают выбор. Но правда, я больше пишу не на Си, а на C++, где глобальные имена редкость, обычно вызываешь методы классов, с ними автодополнению работать проще.

каждое название переменной, которые нужно декларировать на английском

Можно пользоваться транслитом, а многие языки даже юникодные переменные понимают. Это, скорее, ограничение организационнное, если ты пишешь в команде, чем техническое.

и, черт побери, еще и помнить их названия!

Это проблема людей, пишущих функции на сотни строк. В маленьких функциях хорошо структурированного кода все функции под рукой. К тому же, C++ позволяет объявлять переменную одновременно с присвоением. Вот в паскале да, похуже, но и там при функциях разумного размера это не бог весть какая проблема.

Ваяние проводков избавляет меня от этой мороки

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

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

Даже в твоем примере надо заранее помнить: Vector2D, double, len.

Это очевидные вещи из названия.

При этом на будущее надо обязательно запомнить v1, a.

А это, скорее всего, неудачные названия. Хотя если ты реализуешь расчёт из какой-то методики, в которой a и есть a, то всё правильно, и запоминать нечего.

В визуальном программировании это не так, по крайней мере о названиях так париться не надо.

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

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

В маленьких функциях хорошо структурированного кода все функции под рукой.

Очепятка, я имел в виду, конечно же, «все переменные под рукой».

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

Кстати, как выяснилось, существует LabVIEW Home Bundle for Windows, который стоит 50 баксов. Это уже вполне подъёмная цена, не тысячи.

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

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

Оооо. Помню, тащились мы от этой песни и даже переделывали момент на 2:05: «мой сын, мой сын электрик, мой брат, мой брат электрик, мой кум, мой кум электрик, мой сват, мой сват электрик, мой тесть, мой тесть электрик, отец, отец электрик, сосед, сосед электрик, и я электрик!!!111»

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

P.S. Я на Vimeo сам перешёл для новых MMV, потому как такого засилья копираздов там нет.

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

сперва и не понял, что за графики, что за элементы

А ТС считает, что графика сразу понятна всем. Безусловно.

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

Кстати, если не лезть в шаблонную магию, то писать на чистом С++ легче, чем на чистом C. Там хотя бы строки человеческие (относительно) есть из коробки.

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

Не значит. Но это твоя задача — доказывать обратное. Пока что доказательств не особо видать.

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

Я играл в g-mod, там есть wiremod... Я там даже компьютеры строил! Скриншоты из поисковика:
https://i.ytimg.com/vi/2v84FyKNqUY/maxresdefault.jpg
https://garry-s-mod.ru/wp-content/uploads/2018/10/1024x7.jpg

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

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

ну и такой лапши у меня не получалось.

Если делаешь схему типа кнопка-провод-лампочка, сложно сделать лапшу, да?

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

Но очевидно же что я делал вещи более сложные,

Очевидно, что ты пишешь, что делал вещи.

Уроки метапрога не прошли впустую, как я погляжу. Ты научился.

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

с этим пережитком полувековой давности

Консоль вечна! Многие разработчики даже в венде вопили о слабой консоли пока не завезли gitbash (поверх mingw) и wsl. Кто-то где-то на ЛОРе писал, я запомнил основную мысль. Консоль делает тривиальной задачу автоматизировать использование любой CLI программы. Некоторые ЛОРовцы пишут как полностью отказались от файлового менеджера в пользу bash'а. Лично я сам в шоке, в основном мне достаточно ФМ, но иногда мне проще сделать rm Music/*.txt, чем вручную искать все текстовые файлы в этой папке и удалять их. Если надо сделать 9000 однотипных операций, выполняемых консольной программой - всё банально. Если эти операции делаются только в программе с гуем - это БОЛЬ! Можно заморочиться с AutoIt и xdotool, но так геморроя на порядки больше + скрипты, зависящие от разрешения экрана и положения окон программ, никогда не будут работать как часы.

А ещё сравни: нужно кое-что сделать. В долфине это делается одним способом, в наутилусе - другим, в каждом фм - по-своему. А в консоли - копипаст одной команды и всё, независимо от DE/WM и прочего. Хотя дистропроблемы могут вылезти.

Конечно же, в программах с гуем есть зачатки автоматизации, но совсем не ровня башу и тем более перлу и питону. Только в больших финансируемых проектах есть система макросов (не путать с сишными и лисповыми макросами). Уровня МС Оффис и Либр Оффис. Я методом тыка понял основной принцип работы макросов в экселе. Нажимаешь кнопку/менюшку «начать запись макроса», дальше тыкаешь кнопки и редактируешь как обычно. Для КАЖДОГО действия «на лету» генерируется код на VBA (Visual Basic for Applications). Вместо переменных все данные захардкожены, но зато повторяют все действия пользователя. Глазами ПМа «одна фича, внедрение которой требует увеличения кодовой базы в 1.5-2-дофига раза». И всё равно работа с универсальной консолью проще, быстрее и удобней, чем связываться с системой макросов, которая индивидуальна для каждой программы.

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

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

но иногда мне проще сделать rm Music/*.txt, чем вручную искать все текстовые файлы в этой папке и удалять их

В нормальных ФМ есть хотя бы «выделить по шаблону», да и сортировка по типу файлов тоже есть %)

В долфине это делается одним способом, в наутилусе - другим, в каждом фм - по-своему.

В windows - del, в linux - rm...

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

пока не завезли gitbash

Теперь есть PowerShell!

PS (ls)[1].Name.Replace('con', 'na')
.nafig
vs bash
$~ ls -A | sed -n 3p  | sed 's/con/na/g'
.nafig
Ну сразу как бы видно бесспорное превосходство...

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

У «превосходителей» просто мания к примитивным примерам. Примерно как сравнивать языки на решении единственной задачи — «99 бутылок пива».

В таком сравнении лидером будет HQ9+. На нём такая программа пишется так:

9

Всё очень просто, и главное — понятно!

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

Виндовый аналог PyQt и 9000 биндингам к GTK для популярных скриптовых языков... И такие слова от слаковода!

Ну и PowerShell (портированный на линукс без большей части виндовой инфраструктуры) против bash'а - это консоль против консоли, а не консоль против гуя, как скандирует ТС.

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

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

Виндовый аналог

QML тогда уж, и то QML для мобилок больше, а XAML для десктопа.

Какие вообще планы у ТСа когда закроется этот тред?

Планы что не закроется до релиза. Ладно, и в правду спамить не стоит!

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

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

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

И штаны надевают сегодня тоже через ноги, а не через голову, но это не значит, что так удобнее.

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

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

иногда мне проще сделать rm Music/*.txt, чем вручную искать все текстовые файлы в этой папке и удалять их

https://i.postimg.cc/C5ndRHH6/Music.png

И это сравнительно простая задача, решаемая даже сортировкой по типу файла в графическом ФМ. А вот с чем-то посложнее преимущества графики еще очевиднее. Не учить синтаксис всяких там grep и sed, не вводить каждый раз ручками длиннющие команды (вместо этого всего лишь проводки переваять чуточку).

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

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