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

Чатик нужен не столько как средство общения, сколько как задел под «метапрог онлайн». Ты ж не набросаешь метапрог-плагин на Pidgin?))

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

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

Я RFC читал. И секса с их повторением даже в лабвью было немало. Что уж говорить о том, чтобы их самому писать...

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

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

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

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

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

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

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

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

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

Злостные копирасты, черт бы их побрал.

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

да я устал уже с ними спорить, они тупые все какие то, одно и то же по 20 раз им писать да ну нах пускай остаются при своём мнении.

время постараюсь найти твой чат поднять, вот по прогнозу погоды опять сезон дождей надвигается на нас так что наверное через дня 3)))

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

Потому что слишком резкий переход от незнания базовых вещей к чтению RFC и реализации прокси

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

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

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

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

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

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

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

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

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

ой не могу пишет теперь что я его сайт хакнул, FBI грозится)))

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

ну тебе то конечно виднее что мне интересно а что нет

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

Да, к сожалению пока так. Зато будет хороший образец для повторения в Метапроге, на пути к раскрутке. Интерфейс на нуклеаре и сеть на либевенте, скорее всего. Кстати, Котечка в 5 теме и Костярин в 9 сделали скрины, можешь посмотреть.

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

А анимация как-то синхронизируется с музоном?

Вообще хотелось синхронизировать, но в итоге просто частоту захардкодил. В это раз ещё и забыл поменять под bpm музыки.

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

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

Может стать неплохой игрулькой с элементами обучения.

Надо быть реалистом. До игры там как до Луны пешком. :-D

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

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

В Cairo есть кривые Безье: cairo_curve_to(). Считать их самому понадобилось только чтобы в анимации красные точки по кривым двигать.

А как насчет вытащить готовую функцию из реализации cairo_curve_to? Инкапсуляция не позволяет?

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

Примерно как в соседний город в их «Пятёрочку» съездить. Можно, но глупо и бессмысленно. В итоге потеряешь и во времени, и в удобстве, и в деньгах. И далеко¹ не факт, что там будет нужное.


¹ Вы поняли, да? Вы поняли? Далеко. ◉‿◉

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

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

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

Так вот, там «исходник» был двоичный, текст присутствовал только в виде отдельных фрагментов: триггеров и процедур (которые можно было увидеть только в среде разработки, ничего не напоминает?). И это порождало кучу проблем. Не было простого способа выяснить, что программист A поправил в модуле B.

Чот я вспомнил какой был merge hell если по недосмотру два программиста работало одновременно над одним workflow в сишарпе. При том что по внутреннему устройству там был обычный XML. Проще было реально одному откатить изменения, взять патч от другого и вновь внести свои вручную. Пару раз догаваривались у кого меньше изменений, а потом стали догавариваться предупреждать друг друга когда кто-то воркфлоу изменяет.

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

И к слову эти самые workflow вполне можно считать визуальным программированием, потому как все эти диаграммы, представленные в виде XML, компилируются в обычный сишарп. Правда я так и не понял зачем это нужно, потому как там хранилась бизнес логика, а те менеджеры которые отвечают именно за это все равно их не правили и вся работа по бизнес логике была на нас, программистах. Тем более что логика была порой довольно замудреной и часто приходилось писать весьма громоздкие выражения на сишарпе в параметрах блоков этих диаграм (а кое где и на VB.Net, брррррр). Так что работу менеджеров оно не ускоряло, потому как менеджеры ее не делали. Работу программистов оно не ускоряло, потому как программисты матерились когда правили эти диаграммы. Да и работу самой аппликухи оно не ускоряло, workflow вообще довольно тормозные.

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

LabVIEW - единственная нормальная визуальная среда программирования. Все остальное - шлак. Ничего лучше LabVIEW мне за 9 тем так и не показали.

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

А вообще мне даже интересно стало, как ты там собираешься решать вопросы merge hell в своем астрально-эфемерно-гипотетическом metaprog (когда он наконец-то будет). Современное программирование это всегда коллаборация, а значит будут ситуации когда над одним и тем же файлом будут работать разные люди, причем одновременно. Если файлы бинарные, значит 100% будет как в моем примере с C# Workflows - мерджится гитом оно не будет и оно будет требовать откатить твои изменения прежде чем забирать патч из репозитория.

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

Отличных от изменённого сознания автора? Конечно нет.

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