LINUX.ORG.RU

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

 , , ,


1

3

FAQ

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

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

10. Примеры выдают варнинги при компиляции (у кое-кого еще и сегфолтятся)

Решено вводом неанонимных структур, если идет обращение к данным из сишных инклюдов.

12. Зачем ты пытаешься сделать «графический C» (используя подходы к разработке, структуры данных и прочее из C, но в виде блоксхем)?

Потому что я хочу программировать именно в графике и мне нравится Лабвью, но не нравятся ограничения его бекенда, обусловленные в основном копирастией. Хочется иметь возможность программировать не только на высоком, но даже на самом низком уровне (драйвера, ядра ОС, микроконтроллеры итп) и оперировать указателями, как в Си, но делать это в графике, а не в тексте.

13. Есть же first order logic, лямбда исчисление и т.д. Ты бы изучил для начала альтернативы, может для данного вида представления имеются лучшие подходы?

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

Примеры

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

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

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

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

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

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

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

Неанонимные структуры

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

Главная функция:

https://i.postimg.cc/8kJdT96h/image.png

Открытие нового окна:

https://postimg.cc/kBX6rB0P

Та же диаграмма в видео:

https://streamable.com/jqng1

Видно всплывающие подсказки, в конце удаляется и снова проводится один из проводков.

Начало рисования SDL, то что должно делаться каждый цикл в нуклеаре:

https://postimg.cc/tYS199bZ

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

Кстати, что мешает мне сейчас сделать главный нуклеаровский цикл, ведь циклы ж уже готовы? Смотрите на этот скрин:

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

Почти такой же пример, только есть цикл и нету sleep (чтобы можно было полюболваться на окошко 10 секунд). Что тут не так? Схема правильная, но надо еще научить транслятор ставить «тупиковые» ветки, берущие начало в цикле, в пределах цикла по-умолчанию. Сейчас код nk_end и малювання SDL оказываются за пределами тела цикла, буду это исправлять. Где-то там же находится ключ к полному налаживанию ветвления через if и switch.

Сам код:

https://pastebin.com/f5PDfi77

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



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

В данный момент мне интересны

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

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

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

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

остальное уже не очень интересно
там фсио сложна

Этот метапрог сдулся :-( хочу следующего...

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

Отлично!

- Рядовой Петров, о чём вы думаете, глядя на этот кирпич?

- О бабах!

- ...Но почему?

- А я всегда о них думаю!

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

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

Тут мы имеем несгибаемую в течении 7 тем позицию автора. См. п.1.

hobbit ★★★★★
()

В этом простом примере с открытием окошка на 10 секунд давние читатели увидят очень важное изменение. Транслятор стал использовать имена структур и типов из инклюдов вместо анонимных структур.
https://pastebin.com/f5PDfi77

Это же пример с гитхаба нуклера вот этот https://github.com/vurtun/nuklear/blob/master/demo/sdl_opengles2/main.c

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

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

Я же говорил, что никакого метапрога нет. Он эти примеры от руки пишет, а потом обфусцирует. Возможно тоже вручную.

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

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

Facepalm.jpg

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

Facepalm.jpg

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

Это же пример с гитхаба нуклера вот этот

Ну ничего странного в этом нету.

даже комменты не все потер

Вот комменты почему остались? Значит код не сгенерированный, а написан вручную получается...

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

Значит код не сгенерированный, а написан вручную получается...

И до тебя начинает доходить, что все это было профанацией, нацеленной прежде всего на выклянчивание донатов.

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

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

Но это не объясняет целые куски копипасты

    {struct nk_font_atlas *atlas;
    nk_sdl_font_stash_begin(&atlas);
    /*struct nk_font *droid = nk_font_atlas_add_from_file(atlas, "../../../extra_font/DroidSans.ttf", 14, 0);*/
    /*struct nk_font *roboto = nk_font_atlas_add_from_file(atlas, "../../../extra_font/Roboto-Regular.ttf", 16, 0);*/
    /*struct nk_font *future = nk_font_atlas_add_from_file(atlas, "../../../extra_font/kenvector_future_thin.ttf", 13, 0);*/
    /*struct nk_font *clean = nk_font_atlas_add_from_file(atlas, "../../../extra_font/ProggyClean.ttf", 12, 0);*/
    /*struct nk_font *tiny = nk_font_atlas_add_from_file(atlas, "../../../extra_font/ProggyTiny.ttf", 10, 0);*/
    /*struct nk_font *cousine = nk_font_atlas_add_from_file(atlas, "../../../extra_font/Cousine-Regular.ttf", 13, 0);*/
    nk_sdl_font_stash_end();

тут даже с евентлупом (я даже не уверен, что автор понимает зачем это тут иначе бы тоже вырезал).

int running = nk_true;
 
    SDL_Event evt;
    nk_input_begin(metaprog_instance_0junction_5353583517401603073);
    while (SDL_PollEvent(&evt)) {
        if (evt.type == SDL_QUIT) running = nk_false;
        nk_sdl_handle_event(&evt);
    }

тут тоже автор не понимает, для чего эта штука и что оно делает

    {float bg[4];
...    
nk_color_fv(bg, nk_rgb(255,255,255));

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

Моя вторая личность не может быть такой жадной. Клептоманию я лечил еще прошлой весной!

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

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

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

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

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

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

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

Расходимся короче...или подождем реакции ТСа?

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

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

Код в основном сгенерированный

С мягким знаком!

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

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

Весь значимый код скопирован подчистую, и лишь некоторые переменные заменены обфускатором. Шикарное программирование в графике, ничего не скажешь. Прорыв!

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

Там просто используются сишные вставки. Они уже использовались раньше, в gtk примерах, для макроса, хз использовались ли в поздних.

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

Сделал хотя бы простенький веб-сервер на нем?

Ох, лол. Тебе не стыдно, да?

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

скриншот бы приложил

Лучше видео, как все это делается.

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

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

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

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

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

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

Был разве кто-то, кто хотя бы отдалённо рассматривал участие в «проекте»?

Ну только www.linux.org.ru/people/VarfolomeyKote4ka/profile

Остальные ждали от автора хоть какого-то черновика с описанием концепций его задумки. Вместо этого городились отмазки: «все будет круто, все будет как в играх, с интерактивным обучением»

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

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

Ну а тебя не смущает в этой теории заговора что тут упоминается «метапрог на самом себе» и «метапрог на лабвью»?

Не логичнее ли предположить, что автор уперся в сложности гтк, решил съехать на нуклеар

Ему не понравился gtk3 из за CSS.

чтобы хоть как-то получать твою помощь и предполагаемые донаты?

Да не, посмотри, там на вставках форматированние слетело, потому что это вставки! А остальное сгенерированное.

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

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

Главная функция:

https://i.postimg.cc/8kJdT96h/image.png

Открытие нового окна:

https://postimg.cc/kBX6rB0P

Начало рисования SDL, то что должно делаться каждый цикл в нуклеаре:

https://postimg.cc/tYS199bZ

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

Кстати, что мешает мне сейчас сделать главный нуклеаровский цикл, ведь циклы ж уже готовы? Смотрите на этот скрин:

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

Почти такой же пример, только есть цикл и нету sleep (чтобы можно было полюболваться на окошко 10 секунд). Что тут не так? Схема правильная, но надо еще научить транслятор ставить «тупиковые» ветки, берущие начало в цикле, в пределах цикла по-умолчанию. Сейчас код nk_end и малювання SDL оказываются за пределами тела цикла, буду это исправлять. Где-то там же находится ключ к полному налаживанию ветвления через if и switch.

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

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

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

Круто. Намного лучше смотреть на графику, чем на то что было сгенерированно %) Ну вот заодно и разрушенны этими скриншотами всякие теории заговора.

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

Ну а тебя не смущает в этой теории заговора что тут упоминается «метапрог на самом себе» и «метапрог на лабвью»?

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

остальное сгенерированное

Или обфусцированное.

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

@VarfolomeyKote4ka

Я только видел, как он лулзы ловил.

Вместо этого городились отмазки

Тут надо добавить, что он ещё и в атаку перешёл. В предыдущих темах я его спрашивал, может ли он простенький веб-сервер наклепать, тут, тут и тут. Теперь он это с других требует: link!

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

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

Иди ставь триалку и осваивай Лабвью, неуча кусок.

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

начитался цитат Линуса

Мне особенно нравится: «Talk is cheap. Show me the code.» Отлично к теме подходит, как мне кажется.

Правда, я не думал, что когда нибудь увижу так много cheap talk.

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

Для веб-сервера нужны циклы и еще плюшки по мелочи. Разрабатывал бы сам Метапрог - понял бы.

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

Мне кажется они троллят, ну или прям любители заговоров. Если хочешь прям железно прекратить это можешь сделать apt install simplescreenrecorder и записать процесс на видео в этой программке.

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

Если что-то выглядит как утка, плавает, как утка, крякает, как утка - то это, вероятно, и есть утка.

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

Иди ставь триалку ко-ко-ко куд-кудах

Эти диаграммы ты мог сделать где угодно - да хоть нарисовать в инкскейпе. Ни одного неопровержимого пруфа существования даже прототипа метапрога до сих пор не предоставлено.

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

Я даже знаю что он тебе сейчас ответит.

По существу — ничего. Это уже ни для кого не новость.

Человек развлекается, получает внимание. Собеседники тоже развлекаются, глумятся по очереди. А автор и не против, по всей видимости.

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

Чем посоветуешь редактировать видео, чтобы оставить только небольшой участок, где редактируется диаграмма?

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