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

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

Он просто будет поставляться скомпилированным бинарником вшитым во флешку с уникальным серийным номером без возможности установки с проверкой контрольных сумм и прочего. Флешка – это не интеллектуальная собственность, а значит её можно продавать. И за большие деньги. Я даже название фирмы придумал ОАО «Макак-софтвере» и лозунг «любая макака станет программистом».

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

Мило. А в каких случаях?

Я так и не понял. Вот это видео, если интересно: https://www.youtube.com/watch?v=m4ktATnz0co

Хм. Потыкал в видео. Кажется, там нет про always_inline, только про gnu_inline. Видимо, я с чем-то другим спутал.

поэтому хочу сэкономить на лишних вызовах функции

Экономишь на вызовах, платишь thrashing’ом кеша инструкций, который маленький. Нужны бенчмарки. Или можно забить.

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

А мы тогда с Илюхой расчехлим недопиленный Метапрог, чуть допилим - и выложим бесплатно:)

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

Кстати, в GPL есть и дисклеймер, верно?

Если Вы имеете ввиду отказ от ответсвености, то да. Все одобренные OSI лицензии его имеют. (Сайт лежит).

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

Экономишь на вызовах, платишь thrashing’ом кеша инструкций, который маленький

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

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

Дык чего еще FreeBSD не допилили? Свободность это же плюс.

Там OpenBSD своей мощью задавит любого конкурента. Соваться страшно.

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

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

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

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

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

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

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

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

Это та самая огороженная хурма, по сей день не умеющая даже такую базовую для любого GSM-телефона вещь, как отчёты о доставке SMS, удобная? А рингтоны как туда с нормальных ОС закачать?

У меня вон SE в ящике лежит и не жужжит. После нормальных девайсов возвращаться к нему не хочется от слова вообще.

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

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

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

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

невозможность сменить дефолтный браузер

не умеющая даже такую базовую для любого GSM-телефона вещь, как отчёты о доставке SMS

Рингтоны мне не нужны

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

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

Как пишут «авторитетные™ источники»:

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

Это я к чему — был бы у меня выход на китайских школьников (а мандарин всё равно потихоньку-помаленьку изучать начал), я бы извлёк из этого куда бОльшую пользу. Ибо что-что, а лабораторные исследования китайские школьники (не все, правда) делать умеют.

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

Ты тактично пропустил замечание о том, что конкретно мне эти фичи не нужны. Зная, что именно я хочу, я получил телефон, который прекрасно работает и есть не просит.

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

мандарин всё равно потихоньку-помаленьку изучать начал

То испанский, то китайский. Когда будет «антиметапрог»?

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

Написал уже, clojurescript сверхпроизводительный язык же! Теперь будет китайцам продавать.

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

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

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

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

У меня где-то был обзор на SE и айпэд (2017 года), где в числе прочего были перечислены 17 феерических косяков любого ойфона. Тактикал нюклеар бомбуэ тупых мажорисов и прочих яблорабов в комментах крайне доставило. Хотя и преимущества вроде развитой в сравнении с массовыми андроидными девайсами (на тот момент) аудиоподсистемы я там тоже обозначил.

P.S. Если бы не производственные нужды, к огрызкотехнике на километр не подошёл бы, за исключением второго поколения айподов (как шаффлов, так и нано).

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

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

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

кардинально ничего не изменится

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

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

Тактикал нюклеар бомбуэ тупых мажорисов и прочих яблорабов в комментах крайне доставило

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

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

не получится использовать телефон как флешку для курсачей, и музычку не закачать через проводок

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

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

кто его покупает да за такие деньжищи?

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

Короче, ЦА ойфонов — потребыдло всех мастей. Оруэллу даже и не снилось такое оболванивание глобального масштаба.

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

Но денег-то можно было меньше потратить:)

SE стоил около 20-24 килорублей.

Единственная серьёзная проблема с ним — логотип спрятать. А то логотип Apple какую-то нездоровую реакцию вызывает. Даже тут бурления.

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

Попробую грубо описать ситуацию самых «бездумных» жертв. Представь, что мама, папа, муж/жена..., ВСЕ друзья каждый день попугайствуют «Илюха, хватит быть лохом, купи наконец айфон. А если не можешь купить, тогда насоси.» И такой «ритуал» очень сильно действует на психику любого человека. А ещё и на работе КАЖДЫЙ заказчик «Да, ты выполнил работу, но у тебя нету айфона, поэтому мне западло работать с таким лохом.». А все заказчики, которым насрать на айфон, пропали куда-то. Ты можешь сказать «нафиг такие „друзья“, которым важен лишь айфон», но у тебя отличные от них ценности. У ГК большинство людей с такими же ценностями как у неё - те самые «чем новее айфон, тем круче».

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

Вот такая грубая аналогия.

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

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

Надо «если такая версия, то вызываем эту функцию» и так 100500 раз. Прямо свалка легаси кода.

Поддерживаю. Я свой бинарный версионированный велосипед делал, кажется, ровно один раз, примерно в 1994 году, когда на моём компе жёсткий диск был 40 МЕГАбайт, а ОЗУ - 1 мегабайт. И работало это всё под ДОСом. Поскольку я был добросовестным молодым программистом, я поддерживал всё, что писалось старыми версиями, и после поддержки трёх версий код уже стал сильно разлапистым.

После этого я стал писать конфиги в INI, а затем в XML. А бинарные форматы лучше оставить для тех областей, где без них действительно не обойтись — для больших потоков измерительной информации, например. Но не для конфигов и не для исходников (пусть даже исходников диаграмм).

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

Представь, что мама, папа, муж/жена..., ВСЕ друзья каждый день попугайствуют «Илюха, хватит быть лохом, купи наконец айфон. А если не можешь купить, тогда насоси.» И такой «ритуал» очень сильно действует на психику любого человека.

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

«Да, ты выполнил работу, но у тебя нету айфона, поэтому мне западло работать с таким лохом.»

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

У ГК большинство людей с такими же ценностями как у неё - те самые «чем новее айфон, тем круче».

не понял что такое ГК но таких людей не уважаю абсолютно, угораю над ними, иногда троллю, и повышаю своё ЧСВ на фоне людей с настолько ложными ценностями. яблорабы, как и все выпендрёжники, на самом деле просто смехотворны со своими понтами.

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

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

Многим в США легко отдать половину месячной зарплаты за телефон

охренеть, 15 дней работать бесплатно за эту хренотень.

который не тормозит

андроид тоже не тормозит если уж не брать совсем слабое железо

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

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

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

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

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

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

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

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

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

Не красиво и не удобно, если Вы берёте что есть, а не подшиваете у портного под себя. Там вообще нюансов тонна. Больше чем с выбором айфона. Зато в деловом костюме к тебе, будь ты хоть разносчик пиццы, относятся все по другому, а тёлки текут сами по себе, автоматически. И ещё, если переходишь на красный в деловом костюме, то количество людей, которые пойдут за Вами больше. Деловой костюм меняет восприятие окружающих. Разумеется он должен сидеть хорошо. И не быть слишком строгим, или быть слишком строгим, если надо напустить важности.

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

Я интенсивно использую в Лабвью функции сериализации-десериализации в текст или файл (что суть одно и то же). Очень удобно, не надо делать парсеры и прочую подобную ерунду.

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

https://www.ni.com/example/31330/en/

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

Я более чем уверен, что даже чтение бинарных легаси-форматов будет куда быстрее парсинга всяких там json, xml, yaml.

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

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

Проблема в том, что Метапрог для элементарного просмотра твоих файлов придётся ставить ВЕЗДЕ, да ещё и обновлять его, как только выйдет новая версия формата. XML же можно посмотреть любым текстовым редактором, ему в принципе пофиг, какие у тебя поля в файле.

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

Вот возьми ПК 15-летней давности (2004 года) - у него есть поддержка? Нет, все гарантии давно истекли. Но если он физически исправен - на него прекрасно можно поставить линукс и иметь весьма широкий функционал (пусть и без ААА-игр 2019 года). Почему с телефонами, черт побери, не так?

Скажи спасибо IBM. В начале 80-х они сделали, возможно, самую открытую платформу в истории. Там всё было либо документировано, либо описано в книжках. Например, вот в этой книжке. Описаны порты, команды, видеопамять, внутренние структуры файловой системы, системные вызовы и многое другое. Благодаря открытой платформе появились клоны, появились стандарты де-факто и многое другое.

В компах 2004 года многое, разумеется, уже не так, к примеру, видеокарты потихоньку начали преращаться в вещь в себе. Но в целом пинок IBM был настолько мощен, что ПК до сих пор остаётся гибкой модульной платформой.

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

Тут уже нужно не только открытое ПО, но и открытое железо. А его сделать куда труднее. Опенмоко вон пыталось — и где оно теперь?

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

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

Чем именно выше, не подскажешь?

на простой рисовалке блок-схем

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

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

деловой костюм любой выглядит некрасиво на мой взгляд а «тёлки» прекрасно текут от моих футболок и кофт.

Это дворовые шалашовки. Если это твой уровень, то пожалуйста.

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

И XML та же Лабвью, как я понимаю, читать умеет.

Да, умеет, и даже json умеет. И что? К функциям, работающим с текстовыми форматами надо подключать определения типов, точно так же как к бинарной десериализации, даже на скрине по твоей ссылке это видно. Так что преимуществ не вижу.

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

С Лабвью при смене формата секса много. Метапрог будет отличаться поддержкой версионированных форматов «из коробки».

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

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

Проблема в том, что Метапрог для элементарного просмотра твоих файлов придётся ставить ВЕЗДЕ, да ещё и обновлять его, как только выйдет новая версия формата

Редактор конфигов и прочих файлов будет легко прикрутить к любой метапрог-программе.

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

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

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

Тут уже нужно не только открытое ПО, но и открытое железо

Почему не делают телефоны на распбери пи?

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

Надо всего лишь функцию конверсии версионированного формата в последнюю версию сделать - дальше все просто.

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