LINUX.ORG.RU

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

 , ,


1

2

Рейтинг пользователей тем про Метапрог или практический пример применения визульного программирования

Пока Метапрог не готов, продемонстрирую практическое применение LabVIEW. Скачать программу-демонстратор можно тут:

http://e2tilsgo5s44hqmlwb4epwrjnh7ynvsckj2tl5duwdqbxg67chqpelad.onion/file/9b...

Для перехода по ссылке нужен Tor Browser, для просмотра кода примера - LabVIEW начиная с 2013.

На данном графике - количество комментариев самых активных зарегистрированных пользователей в темах про Метапрог на момент 29.06.19 04:47:37

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

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

Данная диаграмма читает файлы с сохраненными темами из заданной папки и выдает массив кластеров из числа сообщений и имени пользователя, отсортированный по числу сообщений:

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

Данная диаграмма берет 12 самых активных пользователей, строит их рейтинг и сохраняет его в картинку:

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

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

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

FAQ

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

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

Примеры

Предыдущие см. в прошлых темах

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

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

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

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

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

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

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

Наконец-то нормально работают циклы!

https://pastebin.com/1duyPBMB

Это та самая диаграмма со старого скрина:

https://i.postimg.cc/65N2KMQz/image.png

Теперь тупиковые ветки (nk_end и «малювання SDL») тоже остаются в теле цикла. Теперь осталось внедрить тот же механизм управления тупиковыми ветками для условий (if, switch) и можно будет приниматься за разработку Метапрога на «самом себе».

Донат

Bitcoin:1AYoK2TScSpD5bhf67mv9AxHDJ2RidRvjD



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

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

Ну и результат соответствующий.

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

Как следствие того, что сфера не была исследована вовсе

Что там исследовать? Я пользуюсь Лабвью - оно мне нравится. Но оно пропиетарное, по-своему ограниченное и много чего не умеет, из-за чего мне либо переходить на текстовые языки, либо... делать Метапрог.

Достойных аналогов Лабвью мне за 8 тем так никто и не показал, максимум жалкие подобия.

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

либо… делать Метапрог

Какое точное слово – «делать».

Достойных аналогов Лабвью мне за 8 тем так никто и не показал, максимум жалкие подобия.

Ну, так критериев Вы так и не назвали.

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

Там даже графических подфункций я не увидел.

Странно, почему не увидел, там у них это называется «вложенная схема».

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

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

Что за двойные стандарты?

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

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

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

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

Тот же лабвью 100% написан на каком-нибудь текстовом языке программирования.

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

Если NI разорится и закроется, исчезнет правообладатель и Лабвью станет freeware - я только за!

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

Вот если правообладатель перед тем, как исчезнуть, в последнем всплеске угасающего сознания отдаст Лабвью в общественное достояние или хотя бы разрешит считать её freeware — тогда да. Но далеко не факт, что так будет, истории успеха тут есть, но они, скорее, исключение.

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

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

Даже M$ не дерет столько бабла за винду.

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

А Лабвью — среда разработки, причём не для кого попало.

Ты ещё возмутись, почему фотошоп стоит дороже винды.

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

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

Особенно когда вместо него будет Метапрог. Я вообще не рассматриваю Лабвью как конкурента Метапрогу. Они сами устранились от того, чтобы претендовать на универсальность.

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

Ясно-понятно, винда же позиционируется как универсальная система для любого x86-утюга. А Лабвью — среда разработки, причём не для кого попало.

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

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

Тот же лабвью 100% написан на каком-нибудь текстовом языке программирования.

На плюсах. И утечек там доху полно.

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

Там всего лишь голый TCP, но на нем веб-сервер реализуется сравнительно несложно.

А какой критерий «нормальности»? Текстовое представление?

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

Кстати, Лабвью можно было бы прекрасно переделать на «самом себе». Но копирасты из NI этого не делают потому что бабло и так течет рекой.

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

Особенно когда вместо него будет Метапрог.

«Свежо питание, но серится с трудом»

Когда полноценные условия, конструкции выбора, разные виды циклов будут? Полгода? Года? ∞?

Когда будет документация с описанием всех блоков и линий?

Вон ребята, которые делают HiAsm, хотя бы что-то запилили. Можно открыть файл со схемкой, нажать run и программа запустится.

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

Чтобы я на каждом слове и заумной синтаксической конструкции плевался, читая текстовый код?

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

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

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

Там всего лишь голый TCP, но на нем веб-сервер реализуется сравнительно несложно.

Да, легко. Нужно всего-то реализовать HTTP сверху. HTTP 0.9.

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

Там всего лишь голый TCP, но на нем веб-сервер реализуется сравнительно несложно.

Да, легко. Нужно всего-то реализовать HTTP

ТС ведь только говорил, что реализовал веб-сервер. Это как в анекдоте: "-- Моему соседу 80 лет и он говорит, что может каждый день свою старуху. — Ну и Вы говорите так же".

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

Вот вся сложность в том, как представлять структуру. Да, цикл «фор» можно соплями развесить, а можно сделать циклы разворачивающимися как в блендере. Блендер, его классический нодовый редактор материалов, наверное, можно представить образцом, полуидеалом. Берём базовые ноды, собираем на ней какие-то «высокоуровневые» операции, объединяем их в группу, вся эта простыня прячется в уютненький прямоугольник с нужными «входами» и «выходами». В итоге, работая с вот такими группами (считай функциями, циклами), мы можем войти в любую из них и отредактировать «изнутри». При этом человеку не обязательно даже знать на каком языке будет скомпилен шейдер, на GLSL или HLSL. Это и есть красота и удобство.

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

Всё депендает от реализейшона, как говорят в лутчих домах Лондо́на. Смогут ли авторы найти баланс, или в корне улучшить? Время покажет. Может они просто сделают ещё одно ненужно, тогда анонимусы всего мира возликуют и возопят «я жы гаварииил!!!». А может и выйдет годное. Тогда честь им и хвала. Но всё это второ-треьтепланово, ведь главное - они набираются опыта. Это самое ценное что может быть. Никакие диванные аналитизмы пользы не принесут, принесёт только практика.

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

тупую злость

Отнюдь. Над безграмотными ничтожествами вроде тебя я просто смеюсь. Шмайлики же и прочие эмо-цзы на таком ресурсе — удел тебе подобных озабоченных подростков. Как там птички, кстати, поживают?

P.S. К просветлению ближе не тот, кто любит весь мир (по большей части этого не заслуживающий), а тот, кто даже о ненависти своей может говорить спокойно и с улыбкой на лице.

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

А что в них разбираться?

Да как-то у него с этим все совсем печально было.

Спроси у него, лучше.

Думал, что вы активно общаетесь и вне форума. И ты в курсе. Ну, да ладно...

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

Да разобрался вроде.

Отлично.

А ты уже продумал, как метапроге, раз она напрямую оперирует Сишными функциями, будет выглядеть вызов, к примеру:

double strtod (const char* str, char** endptr);

???

Там и указатель, и указатель на указатель!

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

а случаем не assignment наз-ся сей оператор, англичанин? да нахрен этот go нужен, поделка какая то ненужная, откуда мне знать его терминологию и какой там сахар. после краткого знакомства с тьфу паскалем ':=' у меня сразу вызывает крайне негативные эмоции.

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

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

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

говённая проприетарная поделка, сайт на русском. лучше не позорься советовать такое говнище. к чему автору бросать наработки на labview ради другой проприетарной поделки?

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

Метапрог уже поддерживает указатели на указатели, и даже указатели на указатели на указатели итд.

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

Метапрог уже поддерживает указатели на указатели

Да верю.

Можно увидеть схемку, в которой тот же самый strtod вызывается, а результат выплевывается в терминал, ты же демонстрировал, как в терминал пишешь? Строку задай в самой схеме, ввода не нужно.

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

Это я тебе ответил и про го, и про синтаксический сахар := А агрессию ты проявил почему-то не в мой адрес, а в отношении kostyarin_

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

какие странные выводы. где конкретно? я проявил агрессию исключительно в адрес технологий - паскаля и go.

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

да я про него ничего плохого не говорил чей бы он не был. не понимаю чего тебя возмущает.

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

Задание строки происходит на блоке константы массива. Посмотри самую первую тему, где консольные хеллоуворлды даже не на пастебине.

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

Задание строки происходит на блоке константы массива.

«Родился на улице Герцена, в гастрономе номер двадцать два.»

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

Зачем такую хрень писать?

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

«Родился на улице Герцена, в гастрономе номер двадцать два.»

Дык всеж понятно и логично. Есть блок, можно задать значение...

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

Тьфу, strtod. Мне почудился stdout. Чудеса творит текстовое программирование.

https://streamable.com/hrw6l

https://pastebin.com/fAp3eaPK

Долго втыкал что за второй параметр. Ясен пень, что указатель на указатель. Это типа указатель на строку после окончания цифры? Короче, к нему я приткнул нулл.

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