LINUX.ORG.RU

Метапрог-прототип, версия 7 + графические диалоги на Метапроге

 , ,


0

3

Скачать (перед запуском читайте !Русский.txt или !Українська.txt):

https://www71.zippyshare.com/v/dNcHIgzD/file.html

Новая версия принесла несколько новых фич интерфейса пользователя. Добавлено выделение прямоугольником для вырезания и копирования части диаграммы (в прошлой версии было только копирование и вставка одного блока по щелчку колесом мыши). После копирования куска диаграммы (с проводками с данными и жесткими последовательностями) его можно вставить кликом колесом мыши на пустом месте диаграммы. Есть план реализовать в будущий версиях также создание подфункций из выделенного куска - аналог Create SubVI из LabVIEW (так была сделана немалая часть функций в прототипе Метапрога).

Однако самая интересная фича новой версии - сериализация в base64 координат блока на диаграмме с цепочкой функций. Этому есть как минимум два возможных применения. Можно «ткнуть пальцем» на нужный блок (меню блоки - ткнуть пальцем на блок). Будет сгенерирована строка такого вида:

metaprog_debug:AAAAAAAAAAAAAAAHAAAAAFBUSDAAAAAEAAAAAAAAAAAAAAAAAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAU4fPk6Ov87ejqIO3gIOfg7+jy4PUAAAAK0+rw4L/t8fzq4AAAABXh8+To6/zt6Oog7eAg5+Dv8O7x4PUAAAAH0PPx8ero6VBUSDEAAAAxcmVsIAAr0LHRg9C00LjQu9GM0L3QuNC6INC90LAg0LfQsNC/0LjRgtCw0YUubXBiZBNiCtNfkRABAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAT9rPr7vfo8evu4ujpIOSz4Ovu4wAAAArT6vDgv+3x/OrgAAAAFPbl6+736PHr5e3t++kg5Ojg6+7jAAAAB9Dz8fHq6OlQVEgxAAAANXJlbCAAA25rYwAq0YbRltC70L7Rh9C40YHQu9C+0LLQuNC5INC00ZbQsNC70L7Qsy5tcGJkP/rfBI32qgEAAAADAAAAB01QTCAyLjAAAAAHTElDRU5TRQAAABDy5erx8u7i6Okg5LPg6+7jAAAACtPq8OC/7fH86uAAAAAQ8uXq8fLu4vvpIOTo4Ovu4wAAAAfQ8/Hx6ujpUFRIMQAAAC9yZWwgAANua2MAJNGC0LXQutGB0YLQvtCy0LjQuSDQtNGW0LDQu9C+0LMubXBiZFbEp7cIT2gBAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAV5+Dv8/HqIOKz6u3gIE51a2xlYXIrAAAACtPq8OC/7fH86uAAAAAU5+Dv8/HqIO7q7eAgTnVrbGVhcisAAAAH0PPx8ero6VBUSDAAAAAWAAEAAgNua2MNbmtjIGluaXQubXBiZFQc/+kgVZgBAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAO+PDo9PIg7fPq6+Xg8CsAAAAK0+rw4L/t8fzq4AAAAA748Oj08iDt8+rr5eDwKwAAAAfQ8/Hx6ujpUFRIMQAAADpyZWwgAANua2MAL9GW0L3RltGG0ZbQsNC70ZbQt9Cw0YbRltGPINC90YPQutC70LXQsNGAKy5tcGJkaxMcpv873AEAAAAAUFRIMAAAAAQAAAAAdcftGC2ZsAE=:metaprog_debug

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

Вместо тысячи слов:

https://i.postimg.cc/gd7RZD9Q/image.png

Там будет явно показан конечный блок, на который «ткнули пальцем», либо подфункция, по которой до него следует добираться.

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

https://postimg.cc/hQVLBcHp

Дебаг-строку выводит оранжевый блок.

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

Для компиляции надо скачать https://sourceforge.net/projects/tinyfiledialogs/

Распаковать в папке с Си-файлом так, чтобы работал соответствующий инклюд.

Код:

https://pastebin.com/5NW30tQx

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

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

Предыдущая версия:

Метапрог-прототип, версия 6 + будильник на Метапроге



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

Там все намного прозаичнее оказалось, unordered_set имеет хеш сбоку припека, а сравнения идут через итератор и «равенство» (ну по крайней мере это стандартное поведение через find и contains), с каком-то смысле это похоже на сравнение по хешу, тем что ключи уникальны, но это все же разные вещи по причине того, что «равенство» и ключ можно интерпретировать по разному, что может сказаться на скорости. Опять же с минимальными правками код Рината это код на С++ (в основном хедеры иначе нужно будет подключить, ну и малокфри заменить на ньюделит, получится приблизительно тоже самое по цифрам. Забавно что вы не заметили всего этого выше, потому что мы все это уже обсудили :3

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

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

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

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

То есть себя? Норм. Потихоньку учишься самокритичности.

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

Возможно ли создавать массивы таким образом?

Используй char*, и всё будет прекрасно работать. Освобождать только потом придётся вручную.

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

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

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

Освобождать только потом придётся вручную.

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

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

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

То есть, дело в специальных процессорах и чипсетах с низким энергопотреблением и 3,3-вольтовой логикой? И в свободном от проприетарщины исполнении их кроме Librem нет, так ведь?

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

Опять же с минимальными правками код Рината это код на С++ (в основном хедеры иначе нужно будет подключить, ну и малокфри заменить на ньюделит, получится приблизительно тоже самое по цифрам

Попробуй сделать С++ реализацию, не уступающую сишной.

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

Странно, я вроде ограничения на срок хранения не ставил. Ладно, скоро с новой версией будут новые пасты из кодогенератора.

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

Ладно, скоро с новой версией будут новые пасты

Чего только люди не придумывают, только бы на гитхаб не выкладывать…

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

Вот то-то и оно… Можно конечно еще отказать от аллоцирования памяти средствами языка и делать это системными brk sbrk и аналогами на windows написав свой аллокатор, чтобы уж точно не подкопаться было.

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

Если ты намекаешь на мое незнание «технологий» в ИТ

А какие технологии ты знаешь? Ну кроме освоенного методом тыка лабвью

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

Кроме шуток, проблема - в ворах и ставленниках олигархов

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

Я бы назвал его лицемером, но не стал этого делать.

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

Так тот мальчик был святым, он воровал у богатых и отдавал бедным :3

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

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

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

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

Физик не может решить квадратное уравнение, математик не знающий таблицу умножение. Зато научно популярно «Урановые таблетки»

Школа в 21 веке обязана этот минимум давать, но вместо этого из-под палки (к счастью, не в прямом смысле, а когда-то было и в прямом) заставляют читать скучнейшую графоманию всяких Толстых.

Квадратные уравнения вроде не Толстой открыл?

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

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

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

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

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

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

Дизельные электрички, велосипеды на ядерных двигателях, самолёты на педалях. Научно-популярные записки метапрога.

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

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

Выпускники школ в большинстве даже не знают, что у Солнца водорода осталось только на ~4 млрд лет и дальше оно раздуется до красного гиганта, после чего сдуется в белого карлика (если оставить все на самотек)

Вся суть - не вникая в техническую часть рассуждаешь о ТЕОРИИ, зато квадратное уравнение = «матан». Ты то хоть раз в живой телескоп смотрел, реальные снимки с космических телескопов видел?

Твои сверх новые и всё остальное твоё «научно-популярное», по сути просмотренное по discovery лабуда. Если бы ты действительно понимал с насколько ущербными снимками и методами работают астрологи, то не пропёрдывал бы здесь всё это.

В СССР вроде был «научный атеизм», но выпусники советских школ в 90х массово ринулись в церкви - вот оно, качество советского и постсоветского образования. Да и в США тоже где-то так: там более 60% населения верующие.

В истории ты профан, даже лень объяснять. Доводы и выводы на уровне РенТВ

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

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

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

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

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

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

Во ВСЕХ предметных областях современной науки разбираться на уровне профессионала все равно практически нереально.

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

Способен. И решил. Если кого не устраивает мое решение - пускай объясняет почему.

давай уже тогда про архитектурные недостатки процов от яблок

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

Дизельные электрички

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

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

А вот это уже фантазии твои, а не мои.

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

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

Ты то хоть раз в живой телескоп смотрел

Да.

реальные снимки с космических телескопов видел?

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

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

C++ - это то, что не соберется сишным компилятором.

Кэп говорит, что С++ - это то что собирается С++ компилятором.

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

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

Астрологи? Те, кто гороскопы пишут? Или ты так астрономов назвал?

В истории ты профан

Да уж, куда мне до тебя с твоими выпадами на тему нацпола: «Национальные/политические/религиозные споры (-5) » - Оскорбление древних египтян !

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

Тогда почти весь Си - это С++. Однако, если говорить о бенчмарке, то чтобы он считался именно плюсовым, а не чисто сишным, он все же не должен собираться компилятором Си, только С++.

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

Есть же куча гуев для гита

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

Можешь даже свой написать на своем метапроге.

Можно, но для этого надо разбираться с консольным гитом. Пока некогда.

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

Да, это же так сложно, что просто пипец.

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

Еще одна ваша трактовка, которая наверное имеет место быть, но все как обычно сложнее.

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

Во ВСЕХ предметных областях современной науки разбираться на уровне профессионала все равно практически нереально.

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

Способен. И решил. Если кого не устраивает мое решение - пускай объясняет почему.

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

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

Тогда почти весь Си - это С++.

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

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

Во ВСЕХ предметных областях современной науки разбираться на уровне профессионала все равно практически нереально.

У тебя очень интересный подход. Если ты каким-то чудом узнал какой-то факт, то этот факт ОБЯЗАНЫ знать просто все, и кто не знает - тот необразованное мудило, тяжелым бременем лежащее на обществе. Если ты сам что-то не знаешь, то сразу начинается «невозможно разобраться во всем» или вообще «это нафиг не нужно, зачем мозги засорять».

Способен. И решил. Если кого не устраивает мое решение - пускай объясняет почему.

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

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

Мануал в любом случае придется читать, так же как и с лабвью. В принципе весь читать нет смысла, потому что половина его написана для тех кто разворачивает гит репозиторий. Вам нужны только первые главы по навыкам практической работы с гит в качестве клиента, все остальное можно нагуглить в SO. Ну и наверное раз лабвью нормально не поддерживает гит как среда для разработки, можно попробовать tortoise git он неплох и является gui приложением.

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

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

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

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

Ему по сути надо отсюда https://git-scm.com/book/ru/v2

1, 2, 3, 7 все остальное уже в процессе работы. Не так много читать, тем более что уже все на русском есть.

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

Я по видосам научился наконец какать, до этого не получалось, а талмуды типа «Искусство какать» пусть матанисты читают.

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