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

Чем набор «make» лучше копипасты командной строки с первой строчки исходника?

Тем, что не надо открывать исходник. Разве это не очевидно?

Да и вообще удивляет наличие в разделе Development людей, которых это пугает.

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

то хаскель пользовать, то питон, то джаваскрипт, то виртуальные машины а-ля джава…

Чем тебе хаскель-то помешал, и кто его активно на ЛОРе в продакшн толкает? Неужели есть такие?

то питон, то джаваскрипт

Блин, делаю поделки для внутреннего использования на тикле с Тк, заворачиваю в экзешник и отдаю. Никто не жаловался ни на производительность, ни на отжирание памяти. Заметь, в отличие от выхлопов метапроги, отжирание памяти которых уже столько ЛОРовцев заметили.

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

Черт пойми что те копирасты из NI наговнокодили на плюсах. Ладно если б хоть денег за свой глюкодром не брали...

Попробуй поставить рантаймы Microsoft Visual C++ разных версий, может это поможет:

https://www.majorgeeks.com/files/details/multipack_visual_c_installer.html

Расскажите мне после этого как божественно кодить на плюсах и как прекрасны рантаймы.

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

Попробуй поставить рантаймы Microsoft Visual C++ разных версий

Мне на это свое свободное время тратить не охота. Но если хочешь мне заплатить, то вот мой биткоин адрес: 1PCKCyNu17S9uGBA2zfiaXAk9NR55MFTTa

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

Может он станет такого уровня, что сам нужные либы будет скачивать.

Да с такими амбициями целым виндоподобным дистрибутивом попахивает… Где весь стек от инита будет переписан на Метапрог. И даже модули ядра постепенно будут переписываться на Метапрог…

а сам автор почему-то этого не сделал

А зачем? У автора и так уже всё нужное стоит, очевидно.

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

Да с такими амбициями целым виндоподобным дистрибутивом попахивает… Где весь стек от инита будет переписан на Метапрог. И даже модули ядра постепенно будут переписываться на Метапрог…

Да вроде у ТСа именно такие амбиции, как бы не смешно это звучало…

А зачем? У автора и так уже всё нужное стоит, очевидно.

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

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

Ну я тут писал что он Дениса Попова напоминает. С тем же результатом скорее всего.

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

Извини, не знаю, кто такой Денис Попов и чем он прославился.

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

Linux Bolgenos - ее первые шаги и обсуждение

Если вкратце то он обещал написать свою ОС, ядро, компилятор и еще кучу всего. В итоге перед взором публики предстала слегка покореженная руками автора Ubuntu.

Амбиции Метапрога очень уж это все напоминают.

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

Я из украины, причем тут какой-то «роскомпозор»

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

Значит, провайдер в дупу заливает. От такого никакой сайт не застрахован.

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

Я могу тебе на гугл диск перезалить, там два архива. Другой вопрос а оно надо?

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

А почему вдруг назначение тега должно было измениться?На этом сайте даже правила с начала 00-х не менялись,

Потому что сформировалась практика, по которой новости, касающие ресурса, отмечаются тегом lor.

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

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

Эта «свистоперделка» работает адекватно и облегчает жизнь во всех программах, кроме сабжа. Вайбером не пользуюсь, телеграмм реагирует адекватно.

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

Скролл много где для зума используется, а паннинг перетаскиванием.

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

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

Пожирание CPU вообще не зависит от языка

А я говорил, что зависит?) Мне просто показалось забавной ситуация

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

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

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

если этот софт будет законченным продуктом,

Тогда ему место в новостях, а не в разделе Development. Ну и LORA вышеупомянутая тоже в довольно сыром виде сюда вбрасывалась.

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

Дак это и не для чтения, скорее визуализатор красивый. Ну и в Adobe Reader, например, есть инструмент «Рука».

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

Гыыыыы, Мы идиот.

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

Я могу тебе на гугл диск перезалить, там два архива. Другой вопрос а оно надо?

Давай.

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

весь такой топящий за производительность

Бесконечный цикл напрямую не отражается на производительности программы. Вот остальных, может, да ;-)

это прямое следствие сложности С

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

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

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

Именно так он и думает, увы. Причем он же не отображение графики в С делает 1:1, он же от себя втыкает некоторое количество ноу-хау которые делают неизбежным утечки памяти и UB на любом проекте чуть сложнее хеллоу-ворлда - что мы тут и собсна видим.

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

От такого никакой сайт не застрахован.

Это сам сайт меня отфутболивает, а не провайдер блокирует к нему доступ.

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

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

Ей хотя бы пользоваться можно было) А тут что? Кто-нибудь может использовать LorReader хоть как-то? Сам метапрог использует свою программу хоть как-то?

Дак это и не для чтения

LorReader предназначен не для чтения. Спасибо.

скорее визуализатор красивый

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

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

есть инструмент «Рука».

И что? Я не удивлюсь, если в этот раздутый комбайн втроена лайт-реализация фотошопа. Основной функционал работает как надо, скролл прокручивает.

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

Вот уж что, а это не C-специфичный баг.

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

Не зря появился недомем про выстрел в ногу.

средствами статического анализа

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

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

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

Сам метапрог использует свою программу хоть как-то?

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

весь текст сливается в одно мессиво

Значит, или экран слишком маленький, или тред слишком большой ;-)

Pacgraph

Ой, не, когда Мы это тыкали, то оно такой монструозный SVG выплюнуло, что его и открывать-то опасно.

раздутый комбайн

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

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

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

Где связь?

все сторонние средства

Какие средства? Весь мир должен быть переписан на Метапроге, даже небо, даже Аллах! Подключение чего-то внешнего допускается лишь как временная мера!

каких-то чудес ждать не приходится

Ну почему же, такой прогресс за год — это уже чудо.

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

И даже модули ядра постепенно будут переписываться на Метапрог…

Хм, автор с самого начала заявлял о революции в программировании. Чтобы всё было на Метапроге, даже модули, даже ядро!

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

Дядь, давай-ка обозначим следующее. «Пугает» и «лень» – разные вещи. Мне безумно лень заниматься этим. Метапрог мне ничего не дает на данный момент. У меня есть интерес к тому, что это такое, но любой интерес обламывается об необходимость разбирать высранную портянку, что-то откуда-то копировать и вставлять. Знаешь, чем хороша система сборки? Даже если она не умеет качать зависимости, она хотя бы скажет, каких зависимостей тебе не хватает. Дело даже не доходит до сборки портянок, мне бы сам метапрог собрать, что ни капли не проще. Какие-то папки, какая-то лапша. Определись, для кого ты пилишь метапрог – для людей, или для себя. Если для себя – то зачем тред? Если для людей – то зачем ты их мучаешь?

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

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

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

Значит, или экран слишком маленький, или тред слишком большой ;-)

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

Да и не так уж это и важно, я могу зумить совсем немного, и всё равно тред нечитаем, так как всё скомпонованно в одну узкую колонку - никакой визуализации нет

Ой, не, когда Мы это тыкали, то оно такой монструозный SVG выплюнуло, что его и открывать-то опасно.

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

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

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

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

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

памяти он кушает тоже меньше

Да ладно????

pandoc — чуть ли не единственная программа, которая сожрала у Нас 7 ГБ памяти (из 5.6 доступных, ага), и даже не думала останавливаться. Возможно, сожрала бы и больше, пришлось пристрелить. Написана она догадайтесь на чём.

Вообще, ФП держится на довольно хлипких с точки зрения возможности преобразования в высокопроизводительный машинный код концепциях. Достаточно, например, рекурсию нехвостовой сделать —и… Ну а о том, к чему привела мода на ФП в современном вебе, и говорить не стоит… и так по прожорливости, кхем… видно.

а как в LLVM.

Ну вообще-то LLVM на будущее планируется, но пока C.

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

если метапрог советует скачивать его полностью через «показать удаленные сообщения»

А это уже из-за рукожопости @metaprog и недавно запиленной возможности удалять комментарий без ветки ответов. Эта штука, по-видимому, сломается, если в дереве комментариев есть разрывы. Альзо, просмотр удалённых — это самый простой и надёжный способ выкачать весь тред без пажинации; насколько Мы помним, его даже Lorify использует.

Там есть интерактивный режим

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

К счастью, все мои потребности покрывает zathura

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

не настолько раздуты, как адобридер

И не умеют всего того же, ага. Вот @fornlr не дадут соврать, Им попадался мультимедийный комикс в PDF.

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

Кхе…

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Во дают! Ещё плашки «Best viewed in Internet Explorer 5.5» не хватает.

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

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

Это как бы с самого начала. Двоичные форматы, нечитаемый сишный код, кодогенерация всего в функцию main()… А, ещё обещание интерактивных обучалок вместо документации (сейчас, правда, вроде бы уже не так категорично)…

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

Черт пойми что те копирасты из NI наговнокодили на плюсах.

Ты таки уверен, что проблема в плюсах? :)

hobbit ★★★★★ ()

аффтор молодец!

иногда ждешь, когда какой-нибудь баг в софте пофиксят по полгода, а тут метапрог один (ну с котечкой) за год уже 13 версий выкатил. Фря вон с 91 года только 12 версий набрала, а тут 13 за год! Всем бы такого рвения и производительности!

deadplace ()

Недавно я хотел аффтору сообщить какую-то важную инфу, но он послал меня (нет, не в жопу!) в метапрог онлайн. Так и не сообщил. Так что желаю аффтору в 14 версии сделать почтовый клиент для контактов

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

то еще больше показал падение лора как технического ресурса

Этот сайт никогда техническим ресурсом не был

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

Нет, не смогли - оно не работает на полном квадрате.

А какая разница? Формула-то одинаковая

deadplace ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)