LINUX.ORG.RU

Метапрог-прототип 43: начало переделки «на самом себе»

 , , , ,


2

4

Скачать:

https://mega.nz/file/fUhEjbCI#1LbpnccSm_SkwJi5Bugwc679tFxj7YJzCTOQxmxHvq0

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

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

У Метапрога появилась часть, полностью собранная уже на самом Метапроге. Тот самый Метапрог «сам на себе», пусть даже пока что в небольшой бекенд-части. Бекенд находится в папке «бекенд», есть линуксовый бинарник и сишный исходник (для компиляции бекенда на Windows и других платформах). С LabVIEW-частью Метапрога работает по сети, используя бинарную (де)сериализацию. Транслятор может работать и без него (если не может соединиться с ним по сети), но его наличие упрощает компиляцию (не надо вручную вызывать компилятор) и способствует некоторой оптимизации трансляции.

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

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

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

Предыдущая тема:

Метапрог-прототип 42



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

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

но с другой сажает надолго политических оппонентов.

Это было еще до ковида, ничего нового. А вот то, что в Европе, якобы свободной и демократической, локдауны не ввели только шведы и диктатор - это весьма иронично. И более того, в демократической Литве сейчас зверский тоталитаризм с «пропусками возможностей» (сертификатами вакцинации), в то время как в диктаторской Белоруси даже маски необязательны.

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

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

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

Один ты умный, так ведь?

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

Я бы сравнил с опасной бритвой, и это я еще через gui работаю. (через консоль тоже могу, но там все сложнее/неудобнее в 100500 раз)

Скажи Метапрог онлайн проще для того же функционала.

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

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

Только Nuklear гораздно удобнее их. Его еще и можно править под свои нужды, там всего один файл, все очень просто и понятно, относительно PySide2, Gtk.

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

Ну то есть то, что ты от себя отсекаешь основную часть аудитории — это, по твоему, меньшее зло, чем необходимость платы за хостинг???

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

А то, что китайцы и (с недавних пор) русские будут испытывать проблемы с тором - печально, конечно. Сочувствую. Но виноват в этом не я, а маразматические политические режимы. Если б я таки сделал хостинг с белым айпи, то кто даст гарантию что завтра Роскомпозор не найдет там «экстремизм» или еще черти что и не заблокирует в РФ? Так что кто хочет - пускай пробивается в тор. Котечка таки пробился (хотя секса, говорит, было много).

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

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

Я вижу даже ЛОР хостится всего лишь на 2 терабайтах + 240 гб дисков, а у меня целых 4 тб. Когда спрос на Метапрог онлайн повысится - куплю новый комп, а старый с 4 тб SSD+HDD RAID1 сможет стать сервером.

www.linux.org.ru/about

У меня, конечно, старый комп - не 2-процессорный сервер с 48 гб RAM, но и того что есть хватит. Ведь на ЛОРе крутится джава, а Метапрог при компиляции оптимизируется как сишка. К тому же, в Метапрог онлайн не HTML, а бинарный протокол.

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

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

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

Но больше всего меня в текстовой сишке убило то, что нельзя делать сложные рекурсии. То, что в Лабвью называется рекурсивной петлей/циклом (recursive loop). Кстати, прототип Метапрога состоит в основном из них (полагаю, убогая оптимизация таких конструкций в Лабвью является основной причиной тормозов транслятора в прототипе Метапрога). Если помнишь, прошлым летом я (после опыта с рекурсиями в сишке) добавил в Метапрог рекурсии. И сложные рекурсивные петли в Метапроге, веришь или нет, элементарно оптимизируются кодогенератором и компилятором, чего в простой текстовой сишке и близко не валялось. Метапрог тупо удобнее.

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

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

Можешь написать простой пример?

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

Кстати, вспомнил главную проблему. Она в сложных рекурсивных типах.

union mpsd_2_ {
__uint32_t element0;
struct mpsd_0_ element1;
};
struct mpsd_1_ {
char element0;
union mpsd_2_ element1;
};
struct mpsd_0_ {
struct mpsd_1_ element0;
struct mpsd_1_ element1;
int element2;
};

int main(int argc, char **argv){
struct mpsd_0_ mp_0_structure_constant_2871949313530728449_0;

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

А вот тут подробнее. В чём именно он прав в части раста? Перескажи СВОИМИ словами.

Самый главный недостаток Раста, конечно же, в том что он текстовый. На текстовых языках програмирования надо писать сочинения, которые проверяет учительница по имени Компилятор. В случае сишки тоже так, но «учительница» не такая строгая и генератор «сочинений» из Метапрог-схем я уже сделал. А из того что я понял у Царя - раст намного более строгая «учительница». Он тупо связывает руки и накладывает множество ограничений. Якобы ради «безопасности», а затыкать это приходится сишными «небезопасными» вставками.

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

У этого элемента будет sizeof() = бесконечность. Это не ограничения языка, такой объект просто невозможно создать.

Но ты можешь сделать mpsd_2_.element1 указателем.

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

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

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

Там же не структура, а юнион.

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

Если бы он имел динамический размер, то как создавать массивы union? Нужно было бы где то хранить размер каждого элемента.

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

Жди сколько хочешь, раз сам делать не хочешь.

Так вы же обещали! Вы что за свои слова не отвечаете ?

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

Будильником пользуюсь каждый день. Работает.

На телефоне?

Я уже хорошо устроился, поверь.

Устроился или пристроился ?

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

Самый главный недостаток Раста, конечно же, в том что он текстовый.

В случае сишки тоже так

а затыкать это приходится сишными «небезопасными» вставками.

Уровень познания впечатляет. Си в расте.

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

По-моему, ты всё-таки ушёл в политику. Но всё гораздо проще.

Тор тупо проще

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

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

А ещё «если он сидит в торе, значит, с ним что-то не так», вот это, по-моему, одинаково, что у них, что у нас.

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

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

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

Только Nuklear гораздно удобнее их.

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

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

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

Вот я на работе ищу странную ошибку в проекте на C++ в 30 тыс строк. Уже и cppcheck привлёк, и valgrind, подозрительная область сузилась, но не очень. И то, что я назвал — это такие «строгие учительницы» для C/C++, повышающие надёжность. В Rust же «учительницы» встроены в сам компилятор. Хорошо это или плохо — вопрос отдельный. Но там, где штатных учительниц нет — приходится всё равно привлекать репетиторов.

Якобы ради «безопасности»

Вот это «якобы» имело бы вес, если бы ты этих ошибок поотлавливал, потратил бы на это кучу времени, которое могло бы быть потраченным на добавление новой функциональности. Посмотрел бы в глаза пользователю, у которого безупречно работавшая у тебя программа упала в самый ответственный момент. Вот после этого начинаешь по-другому смотреть и на valgrind, и на cppcheck, и даже на PVS-Studio, которая пока ещё, будем честны, умеет побольше, чем cppcheck (что, разумеется, не отменяет того, что Андрей Карпов — тролль 80 уровня).

А так очень смешная ситуация. Я ни разу не видел гитхаба царя, не видел его кода, который делает хоть что-то полезное. Тем временем, ты его слушаешь как человека, который что-то знает о языках программирования. Бгг.

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

Объявлять переменные, еще и думать над их названиями

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

Уже было же. Единственная твоя диаграмма на м-прототипе, которую я понял — это та, которая была щедро снабжена комментариями. Так вот, если правильно обозвать переменные — 90% комментариев будут вообще не нужны.

И если всё равно описывать — почему не совместить описание с объявлением? Проще же!

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

Это было еще до ковида, ничего нового

А должно быть что-то новое? Этого не хватает?

А вот то, что в Европе, якобы свободной и демократической, локдауны не ввели только шведы и диктатор - это весьма иронично

Весьма ожидаемо.

Поди пойми еще где больше свободы

Там, где власть с плохой может смениться на нормальную. Подсказать, где?

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

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

Пардон что встреваю, пришла в голову аналогия:

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

А то ведь как иначе я найду мыло?

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

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

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

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

А то ведь как иначе я найду мыло?

Крайне кривая аналогия. Мыла в доме не так много, и оно легко категорируется, а одинаковые куски и категорировать-то не надо. А вот что делает в программе конкретная переменная целого типа, одна из многих сотен — можно долго вспоминать и так и не вспомнить.

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

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

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

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

Ну, если у вас в доме 50 видов мыла, которые все выглядят абсолютно одинаково, но одно подходит только для ванной, второе только для лица, третье для волос и так далее - а какие еще варианты?

Рисовать для каждого свою этикетку? Штук для двух, трех, ну пяти еще туда-сюда. Но если назначение уж очень эзотерическое вроде «можно мыть только домашних попугайчиков в первый час зимнего солнечного затмения», вы замучаетесь придумывать картинку. А потом гости будут пытаться угадать что какая каракуля изображает. Да и вы сами через полгода забудете.

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

Вот у нас есть комбинированный прибор, в котором есть выход гармонического сигнала, вход гармонического сигнала, кучка АЦП и кучка ЦАПов, к каждому из них свои настройки. Что проще - для каждого действия малевать собственную уникальную иконку или написать что-то вроде srs.SineOut.SetFreq( 133 ), srs.SineIn.SetRange( 1e-3 ), srs.adc[1].GetVoltage() ? Собственно, пример того, как это делается на Labview я сюда даже выложить не могу - такие вот ограничения графического формата. Но по одной картинке 32х32 угадать что-то сложно.

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

Стоит ли после этого удивляться, что ТС притягивает к своей деятельности, скажем так, не самых доброжелательных комментаторов (которых я не оправдываю, если что)?

На самом деле, стоит удивляться что еще находятся желающие ему помочь. Правда, сам Метапрог их старательно не замечает.

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

для которого надо и вывод самостоятельно писать

«Вывод» уже написан, подключаешь который тебе нужен, у нас NuklearCross используется, он поддерживает сразу несколько выводов, и позволяет запускаться даже в браузере.

Это наоборот плюс что он отвязан от графического API и позволяет просто добавить поддержку своего.

и многие виджеты

Какие?

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

Нет, не один. Умных в этом треде много, но ты не в их числе.

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

А так очень смешная ситуация. Я ни разу не видел гитхаба царя, не видел его кода, который делает хоть что-то полезное. Тем временем, ты его слушаешь как человека, который что-то знает о языках программирования. Бгг.

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

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

А вот что делает в программе конкретная переменная целого типа, одна из многих сотен — можно долго вспоминать и так и не вспомнить.

Так ведь это проблема того кто строит дом. Каждая переменная должна быть частью системы, а не валяться в куче у входа в дом (как в функциях зачастую). Сама по себе фраза «искать среди 30к строк» должна на мой взгляд навести на мысль что строка - это слишком низкий уровень абстракции. Мы все знаем что программа состоит не из строк, а из функций, объектов, систем. А где они? Они в голове. Их нет на экране, а жаль.

Можно уже сейчас сделать «typedef int Мыло» или как там в си, и вот уже не сотня, а всего пара штук. Другой вариант - расположить переменные на двумерной плоскости.

Я уверен, раз уж парсеры ничего не нашли, вы у себя на работе найдете типичную ошибку где «кусок кода решает немного другую проблему». Но раньше эта проблема включала вашу, а теперь нет. А почему так сложно найти этот кусок? Я думаю одна из причин в том, что и одна и другая проблемы находятся в голове, а не на экране. На экране только строки. Кусок нужно прочитать и распознать. Вообразить. Смоделировать в голове. Целый компилятор в голове нужен. И короткие комментарии не помогут, слишком важны детали.

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

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

Я, если ты видел, как раз стараюсь относиться к ТСу максимально доброжелательно.

Конечно, вижу. Самых назойливых отправил в игнор, а с вами веду диалог. Обсуждать личности здесь не хочу, у каждого человека есть причины поступать именно так как он поступает.

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

На самом деле, стоит удивляться что еще находятся желающие ему помочь. Правда, сам Метапрог их старательно не замечает.

Если ты не заметил, то старания MOPKOBKA я оценил. А вот у тебя желания помочь я не вижу.

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

Мы все знаем что программа состоит не из строк, а из функций, объектов, систем. А где они? Они в голове. Их нет на экране, а жаль.

В Лабвью и Метапроге есть.

Остальное в твоем комментарии - поддерживаю.

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

Да и вы сами через полгода забудете.

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

Мыло для попугайчика сложно нарисовать? Следите за пальцами.

🏠🦜🛁🧼🧼🧼🌕🕐🌖🌗🌘🌑❄️❄️❄️

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

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

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

Вот какой смысл в этих внушениях? Вы дизайнер? Кто вам сказал что вы достойны доверия? Кроме раздражения такие фразы ничего не вызывают. Потому что это очевидные внушения. Изучите как работают внушения. Калибровка, присоединение, ведение. Гуглите «Эриксоновский гипноз». Вы не откалибровались, не присоединились, но попытались вести. Такое ощущение что вы гипнотизируете сами себя.

Имя переменной в студию! Давайте сравним.

Что проще - для каждого действия малевать собственную уникальную иконку или написать что-то вроде srs.SineOut.SetFreq( 133 ), srs.SineIn.SetRange( 1e-3 ), srs.adc[1].GetVoltage() ?

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

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

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

Я надеюсь, что вы сами хотя бы не верите что все эти утрирования - помощь. Болит нога - отпили. Спасибо, ваш совет помог.

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

По-моему, ты всё-таки ушёл в политику

Да. И не только в комментариях здесь, а и в оффлайне.

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

В этом ты прав, конечно. У Метапрога «на самом себе», скорее всего, будет и веб-версия, чтоб вообще можно было попробовать, ничего не качая. Но Лабвью-прототип в веб не впихнешь, а те кому надо и так скачают. И там же ведь не только скачать и поставить, а и компиляцию сишных выхлопов наладить всо всеми инклудами. Это надо нормально так пошевелиться, особенно на винде (ставить MinGW с кучей пакетов, спасибо Котечке за помощь товарищу-студенту).

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

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

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

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

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

Например, вызов ffmpeg, gcc и других консольных монстров.

Лучше вообще разделать сишные исходники этих утилит на «кирпичики» для Метапрог-схем и забыть консоль как страшный сон.

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

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

Я прекрасно понимаю и корректирую схемы, которые на Лабвью или Метапроге делал годы назад. Типизация, кстати, очень в этом помогает. Из текстового названия переменной ее тип не видно, из цвета проводка на схеме и подсказки при наведении на него - видно в подробностях (если структура - то из чего состоит, если массив - то какой тип элементов итп), например вот сложная структура констант кодогенератора (данных, не меняющихся в процессе) под лабвьюшным суррогатом указателя: https://postimg.cc/XGMDt4G7

Единственная твоя диаграмма на м-прототипе, которую я понял — это та, которая была щедро снабжена комментариями

Это потому что ты вообще ничего не знаешь в Метапроге. Хотя Котечка вот освоился, с небольшой моей помощью. Надо лишь немножечко «поиграться».

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

Весьма ожидаемо.

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

Там, где власть с плохой может смениться на нормальную. Подсказать, где?

У нас?

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

Собственно, пример того, как это делается на Labview я сюда даже выложить не могу

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

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

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

За пустой файл с расширением торрента?

У нас?

И у нас.

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

> На самом деле, стоит удивляться что еще находятся желающие ему помочь. Правда, сам Метапрог их старательно не замечает.

Если ты не заметил, то старания MOPKOBKA я оценил. А вот у тебя желания помочь я не вижу.

Ну да, вы сейчас подтвердили мои слова.

> Мы все знаем что программа состоит не из строк, а из функций, объектов, систем. А где они? Они в голове. Их нет на экране, а жаль.

В Лабвью и Метапроге есть.

Про метапрог не знаю, но в Лабвью функций нет. Есть sub-vi, но это совсем не функции. Слишком неудобно ими пользоваться в роли функций.

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

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

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

Думая над ответом, учти, что этот человек, скорее всего, ничего не знает о Великом Противостоянии Текстового И Графического Программирования, а если и знает, то оно ему пофиг. Он хочет просто начать программировать.

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

Глупый кловун, как обычно, только и знает, что ники коверкать. Я понимаю, что у тебя IQ как у кабачка, но мог бы проявить фантазию.

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

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

> Да и вы сами через полгода забудете.

Я вас прошу, говорите за себя.

Я через это уже прошел. Если повезет, и вы получите такой опыт.

Мыло для попугайчика сложно нарисовать? Следите за пальцами.

🏠🦜🛁🧼🧼🧼🌕🕐🌖🌗🌘🌑❄️❄️❄️

«{🏠} использовать внутри помещений, для {🛁} мытья {🦜} птиц, (почему-то) {🧼🧼🧼}намыливать трижды, {🌕}(что означает круг я не догадался) во {🕐} время {🌖🌗🌘🌑} убывающей луны при {❄️❄️❄️} низких температурах»

Вы именно это пытались зашифровать своими иероглифами?

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

Какой именно пример? Если про приборы, так просто первая задача из реальной жизни, которая пришла в голову. Мы ее решали сначала на Labview, потом на Lua. Второй вариант я привел.

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

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

Изучите как работают внушения. Калибровка, присоединение, ведение. Гуглите «Эриксоновский гипноз». Вы не откалибровались, не присоединились

Спасибо за литературу, конечно, но меня ваша эзотерика и внушения не интересуют. Объективные данные как-то надежнее.

Имя переменной в студию! Давайте сравним.

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

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

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

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