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

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

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

Или просто красивые имена. У меня есть libastral.so, например. Купил ради лулзов, да так никуда пока и не пристроил.

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

Опять биполярочка обострилась?

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

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

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

тема оказалась настолько популярной

Ну ты много нафлудил, да.

что кому-то не лень было выложить бабло

Не такое уж и большое бабло: 650 рублей за регистрацию на год.

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

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

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

За что? За твое хамство? За посылание всех в жопу? За бесполезные игры с лабвью?

Тебе не за что деньги давать, ты не делаешь ничего нужного людям.

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

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

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

Повторяешься.

Вот скажи, как, по-твоему, я должен реагировать? За твои пляски начать кидать деньги? Покинуть тред и оставить тебя в покое? Какую цель ты преследуешь, посылая меня по всем адресам? Самоутверждаешься? Ты же понимаешь, что ничего не изменится. Ну, должен понимать, потому что я уже полтора треда нон-стоп тебя попинываю.

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

У меня работа идет. А как там твой «антиметапрог»? Теерь уже не на реде, а на... как его там? Джаваскрипте?

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

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

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

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

metaprog
() автор топика

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

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

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

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

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

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

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

Наверное обиделся из за того что ты не захотел брать xml+zip итд.

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

Надежнее же когда 1 элемент, ну ребол-программистам такое знать не обязательно.

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

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

Мне в гтк, кроме всего прочего, не нравился неоднозначный интерфейс колбеков и работа с объектами, из-за которой приходилось постоянно делать вставки-касты.

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

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

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

Ничего, что те, кого я посылаю, заслужили этого?

У тебя галлюцинации на гормональной почве пубертатного периода. Все пытались тебе поначалу помочь. Но действительно дельные советы ты отвергал и высмеивал, поскольку они не укладывались в твою картину мира. Поделом теперь.

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

действительно дельные советы

Какие? Читать гигабайты книг и мануалов? Обращаться к гуглу? Это я и без ЛОРа могу. От тебя лично я не припомню полезных советов.

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

Раньше срачи в моих темах заканчивались на 20 странице с уходом анонимусов. Теперь, благодаря тебе, они идут все время. Если уж начали дергать модераторов, то я вместо посылания в жопу могу начать жаловаться на оффтоп с твоей стороны. Оно тебе надо?

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

Приносить пользу бесполезному проекту = тратить свое время впустую

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

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

От тебя лично я не припомню полезных советов

Потому что у тебя либо память как у рыбки, либо они просто не уместились в твое мировосприятие.

Какую функцию вызвать, какую библиотеку использовать, какие параметры передать компилятору/линкеру, почему код не компилится итд

В гугл.

оффтоп

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

Можешь быть свободен

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

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

Ничего, что те, кого я посылаю, заслужили этого?

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

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

Подозреваю, что ты не такого финала хочешь.

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

забанили, несмотря на то,

Думаю, его всё же забанили за holier-than-thou. И ТС’у эта же участь грозит, со временем. Отношение к участникам тем у него уже подходящее.

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

Это местный мем, надо было в лоргугле искать. :)

В миру известна как PVS-Studio — проприетарный статический анализатор для C++ с конским ценником. Главный автор одно время троллил на ЛОРе, потом выпустил линуксовую версию, потом его забанили.

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

Наверное, за пропиетарщину. Или нет?

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

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

Хотя... в GIO есть файловые диалоги? И какие еще плюшки, которые пригодились бы проекту?

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

Давай донаты, помогай проекту или иди в жопу.

Кстати еще по поводу донатов. Вообще говоря, я довольно охотно даю донаты, и для этого потенциальному получателю достаточно соответствовать всего двум критериям: 1) делать что-то полезное для меня и 2) не вести себя как мудак.

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

Это я к чему. Вот ты просишь тут донатов, но тебе не приходит в голову мысль, что своим поведением и хамством ты уже отпугнул десятки потенциальных донатеров? Может, стоит пересмотреть свою модель поведения?

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