LINUX.ORG.RU

Метапрог-прототип 13 + LOR Browser

 , ,


0

4

Поздравляю всех присутствующих с годовщиной первой темы про Метапрог!

LOR Browser, версия 35

В честь праздника представляю почтенной публике проект LOR Browser - просмотрщик ЛОР-тем с зумовым интерфейсом. Это то, что можно сделать на прототипе Метапрога спустя год активнейших обсуждений на ЛОРе.

Почему сразу 35? Потому что таков номер последней версии проекта LOR Browser в Метапрог онлайн.

В Метапрог онлайн можно скачать исходные диаграммы LOR Browser (старое название - Лоральмолог).

Сишную трансляцию и скомпилированный бинарный исполняемый файл можно скачать здесь:

https://www51.zippyshare.com/v/UTqVmrY8/file.html

Как пользоваться

1. Скачать ЛОР-тему в HTML, лучше всего - длинную страницу, которая открывается по кнопке «Показать удаленные комментарии» внизу страницы с ЛОР-темой.

2. Указать на htm-файл скачанной страницы.

3. Масштабировать и перемещаться с помощью колеса мыши. Перемещение зависит от положения курсора относительно центра окна (нулевое перемещение в центре и максимальное у краев).

Планы

Перемещения по зажиманию кнопки мыши пока нет, но можно добавить. Также планируется сделать древовидное отображение веток с комментариями (сейчас линейное, так как не хватило времени до годовщины). Скорее всего, будут еще и линии и подсветка веток («источников» вплоть до главного поста и производных веток, разными цветами) при наведении/клике на блоке поста. Возможно, проект эволюционирует в полноценный клиент для ЛОРа.

LOR Browser - не только хороший способ продемонстрировать возможности последней версии прототипа Метапрога, но еще и способ вплотную подобраться к сборке диаграммера - основного компонента будущего Метапрога «на самом себе».

Дополнительно

В разработке LOR Browser активнейше участвовал stasolog, он же Котечка, что и является причиной активного обмена пакетами через Метапрог онлайн, приведшего к появлению аж 35 версии LOR Browser. Кстати, подобным образом нумеруются версии игры Oxygen Not Included, последняя версия которой аж 399948. И игроки, и разрабочики прекрасно ориентируются в этих цифрах, при этом не заморачиваясь со сложной нумерацией версий.

В архиве прилагается видео, которое показывает как по длинному-длинному имени переменной можно найти место на диаграмме, на котором она объявляется. Это - хороший ответ на вопрос зачем транслятор дает переменным такие длинные и непонятные на первый взгляд имена. Функцию поиска места на диаграмме по имени переменной я добавил где-то в 11-12 версии, но забыл упомянуть ее тогда.

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

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

Метапрог-прототип, версия 13

Скачать:

https://www95.zippyshare.com/v/HKdrYe8e/file.html

В 13 версии исправлен импорт сишных инклюдов, исправлен баг трансляции и внедрена еще одна оптимизация в транслятор. В остальном она не отличается от 12, даже LOR Browser 35 в 12 версии прототипа может оттранслироваться корректно (если пользоваться скомпилированными ехе, где нет остановок транслятора на брейкпоинтах, которые были в 12 версии).

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

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

Метапрог-прототип, версия 11 + бенчмарк

Первая тема про Метапрог, с чего все начиналось:

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

Для праздничных подарков:

Bitcoin:1AYoK2TScSpD5bhf67mv9AxHDJ2RidRvjD



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

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

Но практика показывает обратное

К сожалению не показывает. Хэши ТС скорее всего писал не сам.

Опять снобизм,

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

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

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

Ежели описание будет — то можно.

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

Хэши ТС скорее всего писал не сам

На Котечку намекаете? Ну что ж, тогда bus factor у проекта больше единицы ;-)

многолетний опыт

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

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

Опыта в чём?

В написании числодробилок.

не замечаете, что музыку уже давно клепает любой васян и это тоже кто-то слушает?

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

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

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

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

Как минимум две сделанные Нами числодробилки успешно применяются в продакшоне. Причём сделаны на похапэ. Не спрашивайте, почему, просто заказчик упорот :3

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

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

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

Верю, видел. Только зачем их высирать?

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

Что Вы интересно называете числодробилкой, если для Вас мелодия на трех аккордах написанная любым васяном уже симфония?:-)

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

Вы намеренно путаете реализацию языка и попутный инструментарий и язык как таковой (приложение для сборки или исполнения программного кода != язык программирования), дайте формальное описание так называемого «языка» G, или может у него уже и стандарт есть? Может ли кто-либо кроме NI сделать свою реализацию этого так называемого «языка» в виду отсутствия формального описания или стандарта?

Кстати как ваша шуточная разработка поживает, не сыскала успеха и вы таки решили все же тут развлекаться?

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

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

Ну пару штук, которые базу и прочее никак не дёргают, зато принимают на вход и отдают на выход жирную структуру данных, молотя её с применением тонн тригонометрии, теории графов и прочего матана и ad-hoc-алгоритмов. Тянет на числодробилки?

мелодия на трех аккордах

Пха! В электронном пердёже может вообще мелодии не быть. Ну а в битах и подавно.

В английском языке, впрочем, для обозначения «потрясти жопой» есть слово beats, и music оно вроде как не считается. А в русском всё в кучу — хоть симфония, хоть луп из пуцычицы-пуцычицы…

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

Вы намеренно путаете реализацию языка и попутный инструментарий и язык как таковой

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

Вот где в Microsoft Word разделение на разметку, редакторы к ней и генерируемые из неё документы, которое есть в LaTeX? А нету его, файл с документом сразу и разметка, и готовый макет для печати, и редактируется полноценно только в одной программе, а остальное делается по остаточном принципу путём обратной разработки.

формальное описание так называемого «языка» G

Да кидали же тут не раз ссылки на документацию NI.

Может ли кто-либо кроме NI сделать свою реализацию этого так называемого «языка»

Могут, что мешает-то? Исходничная импотенция?

не сыскала успеха

А должна была? Она ведь создана исключительно для того, чтобы упрекнуть @liksys в обзывании Метапрога мертвопрогом.

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

Документация != формальное описание. Это вы ТС может по ушам ездить такими доводами и сказочками про какое-то разделение языков на «текстовые» и «графические».

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

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

Батенька, да это клиника…

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

Тянет на числодробилки?

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

В электронном пердёже может вообще мелодии не быть.

Пардонте, но это не симфония.

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

Это вы ТС может по ушам ездить такими доводами и сказочками про какое-то разделение языков на «текстовые» и «графические»

Да вот ТС, кстати, и позиционирует Метапрог не как язык, а как среду программирования.

завтра NI, например, ни с кем не посоветовавшись изменить поведение лабвью

И поломает этим совместимость со своими же продуктами, угу.

Батенька, да это клиника…

Угу. Ну ещё разминка скиллов (а то давно что-то вебню не трогали по работе) и +проектик в портфолио ;-)

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

для оркестра

Ойфсё. Таким же макаром можно ТСу выдвинуть требование сделать Метапрог текстовым, иначе это не программирование ни хрена.

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

А тем временем...

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

А тем временем, между прочим, голосовалку про будущее Метапрога вернули на главную. И есть люди, которых по-прежнему интересует законность пребывания метапрог-тем на ЛОРе. И я тебе уже объяснял, почему у них возникают такие сомнения. А свежие декларации «скрины и прозрачный выхлоп не нужны, изучать Метапрог надо только внутренними средствами» эти сомнения очень сильно усугубляют.

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

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

Это же всё аццкие костыли, чтобы сделать убогую писанину текстом чуточку проще! То ли дело комок из жгутиков!

Unicode4all ★★★★★
()
Ответ на: А тем временем... от hobbit

А что, опенсорс непременно должен быть текстовым и документированным, что ли? Всякие картинки под свободными вариантами CC, к которым не прилагаются исходники вообще, типа недостаточно свободные?

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

Откуда это всё берётся? o_O Из статистики по сферическому коду в вакууме?

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

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

Вот тут немного про это: https://channel9.msdn.com/Events/Connect/Microsoft-Connect--2018/D160

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

Ну в любом случае, это не для Нас; мы предпочитаем чётко и в симплексном порядке отдавать команды ЭВМ, поэтому даже T9 брезгуем и печатаем на мобильнике мультипрессом ;-) А так же не любим многооконные системы, где что-то выскакивает в процессе ввода, перехватывая фокус.

mertvoprog
()
Ответ на: А тем временем... от hobbit

Потому что удалили опрос monk. И все равно большинство против моего бана, да и к тому же модератор Pinkbyte тоже высказался против бана:

Не хватает (комментарий)

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

Удручают тут два момента.

Первый - это то, что истеричных «забанщиков», хоть и меньшинство, но хватает и они отмечаются в том опросе. Некоторые, такие как liksys и AntonI, еще и не стыдятся после этого писать в моих темах!

Второй - а куда пропала тема про Метапрог из топа? По мне так ЛОР без Метапрога в топе - как Париж без Эйфелевой башни.

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

Будет Метапрог частью опенсорса, или же это будет такая же вещь в себе, как и Лабвью

Метапрог уже является частью опенсорса. Прототи под GPLv3.

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

Прототип под GPLv3

При этом он ее нарушает.

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

не стыдятся после этого писать в моих темах!

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

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

Метапрог уже является частью опенсорса

Мой предыдущий комментарий ещё раз перечитай.

Прототип под GPLv3.

При этом 1) приколочен гвоздями к проприетарному рантайму; 2) не позволяет изучать исходники без ограничений (за пределами этого самого рантайма), ибо «исходники» являются блобами, формат которых нигде не описан.

Причём если на исправление п.1 есть какие-то надежды (выпуск сияющего метапрога-на-себе на белом холме), то твои планы по п.2 остаются под вопросом. То ты вроде соглашаешься, что описание нужно, то у тебя начинается затмение, и ты предлагаешь заходить всем желающим в метапрог и разбираться со «стандартной функцией сериализации» (кстати, даже описания этой функции недостаточно для разбора формата — нужны ещё конкретные значения, по которым можно в файле идентифицировать те или иные узлы и связи).

P.S. Вообще интересно, конечно, если такие программы, у которых «исходники» в двоичном виде, будут получать распространение — применимы ли к ним свободные лицензии, и если применимы, то как их трактовать? На мой взгляд, называть это опенсорсом либо нельзя вообще, либо можно только при условии наличия общедоступного описания формата этого блоба. Типа как в XML в начале пишут URL схемы, которая его описывает (зачастую посылают сразу на w3c.org), так и здесь — должна быть какая-то стабильная ссылка на документашку общепринятого формата (HTML, PDF или хотя бы маркдаун).

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

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

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

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

https://streamable.com/gqm33

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

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

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

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

Смотришь реализацию на Метапроге и повторяешь ее на твоем любимом текстовом ЯП, какие проблемы? Ах да, придется открыть Метапрог, но если уж такие проблемы с «курицей и яйцом» то что тебе помешает сделать это в виртуалке с отключенной сетью?

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

если такие программы, у которых «исходники» в двоичном виде, будут получать распространение — применимы ли к ним свободные лицензии, и если применимы, то как их трактовать?

Разве в GPL говорится об обязательности именно текстовой формы исходного кода?

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

Проблема не столько в том, что исходники в двоичном формате, а в том, что они в проприетарном двоичном формате.

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

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

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

Судя по всему, тот код листает список файлов и ищет файлы расширениями.

Нет, он считает количество строк в файлах разных типов. Вывод будет что-то типа:

.py - 3714 lines
.c - 518 lines
.html - 2048 lines
provaton ★★★★★
()
Последнее исправление: provaton (всего исправлений: 1)
Ответ на: комментарий от metaprog

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

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

там еще ошибка, он на директориях валится.

«Попробовал бы кто написать такой код на питоне без автодополнения»(c) @metaprog

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

$ date
Чт мар 26 15:14:11 MSK 2020
$ cat > sc.py
#!/usr/bin/python
import os, sys
D = {}
for f in os.listdir(sys.argv[1]): 
  D.setdefault(f.split('.')[-1], [0])[0] += len(open(os.path.join(sys.argv[1], f)).readlines())
for ext, n in D.items(): print ext, n
$ date
Чт мар 26 15:16:45 MSK 2020

если исправить ошибку с директориями тот как то так

#!/usr/bin/python
import os, sys
D = {}
for f in [os.path.join(sys.argv[1], i) for i in os.listdir(sys.argv[1])]:
    if os.path.isfile(f): D.setdefault(f.split('.')[-1], [0])[0] += len(open(f).readlines())
for ext, n in D.items(): print ext, n

Почему ТС считает что пять строк кода это нечто экстраодинарное?!

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

Второй - а куда пропала тема про Метапрог из топа? По мне так ЛОР без Метапрога в топе - как Париж без Эйфелевой башни.

Ого вы уже успели почувствовать тебя звездой и чахнете без должного внимания? ;)

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

«Попробовал бы кто написать такой код на питоне без автодополнения»(c)

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

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

Второй - а куда пропала тема про Метапрог из топа? По мне так ЛОР без Метапрога в топе - как Париж без Эйфелевой башни.

вот потому :D

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

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

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

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

Окей, когда будет новая тема - может принять участие.

Насчет «не того пути» у меня - это он просто не въехал в концепт, пускай для начала прочитает этот коммент от котечки, на котором оборвалась наша прошлая дискуссия: Метапрог-прототип, версия 6 + будильник на Метапроге (комментарий)

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

Он не хочет выкатывать какое-либо описание этого формата

Потому что моего формата еще нет, а лабвьюшные бинарные сериализации я использую через стандартный функционал, не зная их внутренностей. Хотя они вроде как описаны: Метапрог-прототип, версия 11 + бенчмарк (комментарий)

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

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

Я примерно так и пишу начиная с первых тем.

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