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 + будильник на Метапроге

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

Мне кажется, National Instruments уже обязаны не только дать ему бесплатную лицензию, но и грант на $100К за такую интенсивную рекламу. :)

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

Вы либо полный код скидывайте который у вас течет

#include <SDL.h>
int main() { for(;;) { SDL_DestroyWindow(SDL_CreateWindow(...)); } }
stasolog ()
Последнее исправление: stasolog (всего исправлений: 1)
Ответ на: комментарий от cluge

Я не смотрел код nuklear_cross особо, но может ты имеешь виду что nuklear перерисовывает интерфейс каждый цикл? Это вроде бы не так, там есть потайная структура, в ней при первом проходе записываются данные, а в следующих проходах они просто обновляются.

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

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

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

Это тоже не рабочий, давайте нормальный )

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

Я не смотрел код nuklear_cross особо

Почему? Он простой.

может ты имеешь виду что nuklear перерисовывает интерфейс каждый цикл?

Я не имел это ввиду, я об этом прямо написал.

Это вроде бы не так

Вам с метапрогом выхлопы валгринда приводили, что не так-то?

ЗЫ: ты опять гендер поменял? Теперь опять Котечка, а не Дианочка?

ЗЫЫ: метапрог хвастался, что ты на офтопике сумел ваш чудо-будильник скомпилировать, будет инструкция или очередная ложь метапрога?

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

Гугл кстати плохо ищет по торрентам, поэтому скажу что на rutracker можно вбить «NI Debian 2013 Modules Toolkits and Drivers» и там сразу образ (32 битный выбирать лучше), и крякающая уточка. А DuckDuckGo неплохо ищет кстати.

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

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

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

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

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

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

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

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

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

Ещё какой гуманитарий. В самом худшем смысле этого слова.

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

ПО в дар

Это дело нехитрое.

готовы принять их деньги

А вот с этим сложнее. И глупо будет отказываться от БЕЗВОЗМЕЗДНОГО пожертвования. Именно безвозмездного. Авторские права на Метапрог не продаю.

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

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

Мальчик, перестань уже прогуливать школу и сходи на уроки экономики.

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

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

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

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

Я не имею это ввиду, я об этом прямо написал.

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

ЗЫ: ты опять гендер поменял? Теперь опять Ктечка, а не Дианочка.

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

ЗЫЫ: метапрог хвастался, что ты на офтопике сумел ваш чудо-будильник скомпилировать, будет инструкция или очередная ложь метапрога?

Да, я даже скриншот уже кидал - Метапрог-прототип, версия 7 + графические диалоги на Метапроге (комментарий). Собрать можно так же как и на linux'e с помощью MSYS2, а можно и с помощью Visual Studio как я. И так, у меня была Visual Studio последней версии, в Visual Studio Installer было отмечено «Разработка классических приложений на С++», и в них же галочка на «Инструменты Clang C++ для Windows». Из зависимостей только SDL2, поставил его с помощью vcpkg (https://docs.microsoft.com/ru-ru/cpp/build/vcpkg?view=vs-2019):

vcpkg install sdl2:x64-windows

Потом просто создал проект на CMake, вписал туда:

cmake_minimum_required(VERSION 3.8)
find_package(SDL2 CONFIG REQUIRED)
find_package(OpenGL REQUIRED)
include_directories("C:/Users/kotya/source/repos/vcpkg/packages/sdl2_x64-windows/include")
add_executable(metatimer "main.c")
set_property(TARGET metatimer PROPERTY C_STANDARD 11)
target_link_libraries(metatimer PRIVATE SDL2::SDL2 SDL2::SDL2main OpenGL::GL)
Переключил компилятор на Clang и собрал. Рядом нужно положить tinyfilesdialog и nuklear_cross.

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

Нет, другой) Стримерный я ещё не монетизировал, хотя делал пару доработок за деньги.

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

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

И вы это, за панибратство прошлого поста извините, видимо это «тыкание» заразно.

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

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

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

Мальчик, перестань уже прогуливать школу и сходи на уроки экономики.

Спасибо, сказки смешанные с пропагандой мне не интересны.

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

Так у тебя даже Windows 10 Pro for Workstations нету, о чем с тобой говорить? То ли дело я!

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

Кстати, как собрать на винде ХР? Годная система, достойная поддержки и SDL ее поддерживает.

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

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

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

Еще прикольнее будет, если сработает и под андроидом.

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

Можно собрать с помощью tcc, переключив драйвер с sdl2_opengl на gdi, даже без SDL2.

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

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

Это для админов локалхостов или ваннаби-датацентров, где стоят сервера из писюков. Очень востребованно там.

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

Не знаю соберется ли sdl2 с помощью tcc. А компилятор MS не поддерживает нормально стандарты С.

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

Это для админов локалхостов или ваннаби-датацентров, где стоят сервера из писюков. Очень востребованно там.

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

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

Ты, видимо, не совсем понимаешь, о чем идет речь.

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

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

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

К тебе это тоже относится, сам постоянно сыплешь оскорблениями, а потом бежишь жаловаться на ответы ОПа в спец-тему с пометкой «Хамит!!!».

stasolog ()
Ограничение на отправку комментариев: