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)

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

даже не думал что могут быть какие то проблемы. Да и у тебя же Debian

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

Прототип Метапрога объективно находится в щекотливом положении — он не работает нативно под линуксом, а соответственно вопрос «что метапрог-темы делают на ЛОРе» остаётся в силе. То, что будущий Метапрог планируется нативным — это пункт 2 офтопик-листа, «Вот сделают, тогда и обсудим.» Пока модераторы настроены благожелательно, но эта благожелательность может кончиться в любой момент.

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

Когда же читатели ЛОРа видят у ТСа вот это:

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

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

Ещё раз говорю: лично я не топлю и не топил за изгнание Метапрога с ЛОРа. Мне интересно, во что эта интересная концепция может вылиться. Но вот другие люди в конце концов могут взяться за вилы, и у них, к сожалению, будет своя правда. И вот чтобы их не доводить — постарайтесь проработать тему связки «Linux + Метапрог» более добросовестно.

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

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

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

Ну уже заработала библиотека для работы с метапрог-онлайн. Теперь нужно сделать gui.

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

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

Хорошо. Признаю себя необучаемым дворником. За сколько проведешь мне спецкурс по Python, C++ и азам математики?

С праздником!

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

За сколько проведешь мне спецкурс по Python, C++ и азам математики?

Тут на https://www.pluralsight.com/ дают доступ бесплатный до конца месяца. Можно бесплатно поизучать, то что в обычное время стоит денег…

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

Для этого ТСу надо перестать себя вести как необучаемый дворник - на такие жертвы он может пойти только за очень крупную сумму денег.

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

Это единственный способ помочь проекту.

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

C++

Можно бесплатно поизучать

Зачем мне С++, если сишка как бекенд для Метапрога меня устраивает? «Царь сишки» почему-то внезапно полюбил плюсы. Может быть, небезосновательно: если б у меня не было перед глазами примера Лабвью и идеи сделать Метапрог - плюсы, наверное, были б хорошим выбором. Но по мне так в графических схемах абстракции куда нагляднее, чем в том же тексте. Например, Котечка говорит, что метапроговские массивы - это аналог vector.

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

Ты качал прототип Метапрога. Что помешало тебе запустить его? Какие проблемы?

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

изучение им тех или иных моментов связанных с программированием

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

Это единственный способ помочь проекту.

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

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

А ещё мне подумалось, что вот что.

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

Вот если бы ТС взялся всю эту муру визуализировать — это бы, пожалуй, было весьма интересно. Но это надо совсем в другом направлении идти, не условными схождениями в лабвью заниматься. В каком надо? Я не знаю, тут надо основательно продумать концепцию и изучить текущее состояние дел, прежде чем за IDE хвататься.

А те, кому повезло, и кто до сих пор занимается «простынями кода» — это счастливчики.

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

Каких именно знаний мне не хватает?

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

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

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

Нет ничего практичней хорошей теории.

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

@metaprog настало время создать новую тему с глупым названием. Тема сама себя не создаст.

AntonI, liksys, hobbit вот вам не надоедает. Респект таким пацанам XD.

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

Так ведь и ты заглядываешь. Метапрог-зависимость это серьезно, никто не ушел, rebforcer пытался ограничить себя, забросив аккаунт, но потом все равно возвращался под видом анонима.

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

А кто мне запретит. Диванный психолог в лице тебя? Я думаю врятли. И да дальнейшие потуги на троллинг от тебя будут проигнорированы. Обращайся за этим к метапрогерам. Успехов.

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

ЧТО? ВЫ МНЕ ЗАПРЕЩАЕТЕ? ДА ДА? У МЕНЯ НЕТ ЗАВИСИМОСТИ!!!

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

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

Мне нравится как некоторые из этих проблем решил Go. В метапроге же решается еще больше проблем, идет не просто отказ от перегруженных фреймворков, но еще и от стандартных инструментов типа git'a, vim'a, которые Go теснить побоялся/незахотел, а ведь они это тоже траблы и сложность.

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

Git прекрасно решает свою задачу и при этом не является чем-то заумным для пользователя. Зачем гуглу придумывать свой велосипед? Вон, уже были джва таких «убийцы». Были да всплыли.

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

Зачем мне С++, если сишка как бекенд для Метапрога меня устраивает?

Каких именно знаний мне не хватает? По мне так не хватает мне только времени

С++ был из твоей цитаты. Можешь учить не С++. Просто поищи может найдёшь что-нибудь интересное.

Я вот поискал, и выбрал себе вот это на апрель: https://app.pluralsight.com/profile/author/pavel-yosifovich

Windows Internals и Windows 10 Internals (про .NET смотреть не буду)

Вроде у этого Йосифовича и книги по теме есть, не только видосы: https://leanpub.com/windowskernelprogramming

Так что видео должны быть норм…

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

Оба наверное :)

Погуглил, и в одном обсуждении Йосифовича нашёл такой твит:

«Can we call you the new Charles Petzold?»

С другой стороны нашёл совместную книгу

Windows Via C/C++ Paperback – 9 Dec 2019

by Pavel Yosifovich (Author), Jeffrey Richter (Author)

https://www.amazon.co.uk/Windows-Via-C-Pavel-Yosifovich/dp/0135953391

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

Кстати нашёл баг в Nuclear, пока портировал его на Win98, вечером баг фикс им кину. Так что одним багом будет меньше в GUI приложениях метапрога :)

https://imgur.com/a/S9pWVNi

Всё-таки Nuclear замечательная либа своей минималистичностью!

Для порта Qt5 или Gtk+3 мне бы понадобилось значительное время, а тут всего пару часов для порта с XP на Win98 :)

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

пока портировал его на Win98

Лол, а с какой целью?

Всё-таки Nuclear замечательная либа своей минималистичностью!

Еще и GUI быстро+легко строится, это доказывается тем, что у ОПа вопросов практически не было.

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

Windows 98 чудесным образом каждые две недели превращалась в тыкву, и её нужно было переустанавливать. J3QQ4 или как там его. Все наизусть помнили уже.

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

Презентация операционной системы транслировалась телеканалом CNN. Демонстрацию новых возможностей системы проводил глава компании Microsoft Билл Гейтс. Во время подключения сканера к демонстрационному компьютеру под управлением Windows 98 в системе возникла фатальная ошибка, вызвавшая синий экран смерти. Биллу Гейтсу тогда удалось отшутиться: «Должно быть, поэтому мы пока и не поставляем Windows 98»

Классная система %) А вы метапрог ругаете!

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

У меня года 4 прожила. Но мусор конечно тот еще, ничего не скажешь.

liksys ★★★☆
()

Какие неожиданные новости! https://www.opennet.ru/opennews/art.shtml?num=52698

Но не для меня. Я давно говорил что Qt + KDE - проприетарные поделки, и в скором времени весь GPL их улетучится. Хотя KDE в общем то может перейти на Gtk, но мне кажется это маловероятным.

Ну в общем то мое мнение не изменилось: Qt Company объявила о изменении модели лицензирования фреймворка Qt (комментарий)

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

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

hobbit, ты в последний раз высказывал мысль что Qt Company вставляет палки в колеса лишь мелким проприетарщикам, а те кто выступает за GPL ничего не теряют... Что теперь думаешь? Мне кажется сейчас уж совсем все очевидно. За софт конечно обидно...

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

Мне кажется сейчас уж совсем все очевидно.

Во-первых, из текста по ссылке следует, что ничего ещё не решено.

Во-вторых, если всё будет совсем плохо — ну форкнут её.

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

Без «абстракций» рабский труд нужен просто для написания хоть чего-то большого и долгоживущего. Не надо валить в кучу разные вещи.

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

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

Во-первых, из текста по ссылке следует, что ничего ещё не решено.

Там написано про прошлый опыт «переговоров».

Во-вторых, если всё будет совсем плохо — ну форкнут её.

И будет две несовместимых версии, если потянут конечно.

Без «абстракций» рабский труд нужен просто для написания хоть чего-то большого и долгоживущего. Не надо валить в кучу разные вещи.

Лол, нет конечно. gimp, ffmpeg, libreoffice, итд.

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

Библиотека графического интерфейса уже строится на открытых технологиях.

А там посмотрим… например, сколько нефти нужно для поддержания системы разработки с непрозрачными бинарными «исходниками».

Ну это какая то проприетарная дичь, я надеюсь этого не будет. Иначе получается фейковая открытость.

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

Лол, нет конечно. gimp, ffmpeg, libreoffice, итд.

Расшифруй. Ты о чём?

Ну это какая то проприетарная дичь, я надеюсь этого не будет. Иначе получается фейковая открытость.

Во! ТСу это объясни. :) Может, хоть у тебя получится…

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

Ну Wine же как-то разрабатывают по такому же типу, что изменения приходят через год после появления их в CrossOver, и живут…

Опять же во всяких Ubuntu и Debian обычно древняя версия Qt и тоже как-то живут разрабы, при разработке для этих систем…

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

Опять же во всяких Ubuntu и Debian обычно древняя версия Qt и тоже как-то живут разрабы

Они, помимо прочего, начиная с Qt 4, перестали радикально ломать совместимость. Есть исключения (переход на QtWebEngine, например), но в целом я могу спокойно писать, скажем, на Qt 4.8, а потом проверять, как мой код собирается под какой-нибудь 5.12.

Надо, конечно, смотреть, что в Qt6 будет…

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

Проект не перегружен абстракциями

С какого перепугу? Просто вместо Qt там куча либ GObject+GTK+нужное подставить. Те же «абстракции». Только если в Qt используется язык с ООП, то тут — имитация ООП на сишечке. Что проще развивать — это сильный вопрос.

Ну и GIMP под Windows это долгое время был лютый звиздец. Сейчас вроде нормально. Но чтобы просто собрать его под винду, надо нанять сотню рабов натащить руками кучу библиотек.

Qt-программы портируются куда легче. Я пишу программу под линуксом, потом беру винду, накатываю на неё Qt SDK, собираю, проверяю, сваливаю из винды. Всё. Тут мне и куча модулей на разные случаи жизни, и система сборки… С проектом уровня GIMP, конечно, так не получится, он ещё на GEGL завязан и не только.

Просто за всё надо платить. «Абстракции» Qt дают лёгкую переносимость. В GTK абстракций тоже хватает, но они другого уровня, код более громоздкий.

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

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

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

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

Только если в Qt используется язык с ООП, то тут — имитация ООП на сишечке.

Ну и можно вспомнить про Q_OBJECT. А благодаря сишечке любая библиотека написанная с использованием GObject подхватывается из любого языка где есть поддержка GObject. Ну и есть gtkmm, vala для тех кому не хочется разбираться в сишке.

Ну и GIMP под Windows это долгое время был лютый звиздец.

Ну так gtk он для linux'a.

«Абстракции» Qt дают лёгкую переносимость.

Ну это Qt ее дает, а не абстракции (которые ради абстракций).

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

Ну это Qt ее дает, а не абстракции (которые ради абстракций).

Ну я тогда опять не понял, как с Qt соскочили на «абстракции», которые требует сотни рабов и нефть, или сотни нефти и рабов…

Ну и можно вспомнить про Q_OBJECT. А благодаря сишечке любая библиотека написанная с использованием GObject подхватывается из любого языка где есть поддержка GObject.

К питону Qt как-то подключили.

gtkmm

Это получается абстракция над абстракцией. По мне так уж лучше сразу QtWidgets.

Ну так gtk он для linux’a.

Ну и зачем оно тогда? Линукс-эксклюзивов практически никто не делает. И я считаю, что это правильно: как это ни странно, кроссплатформенное ПО вроде того же firefox куда лучше популяризирует Linux, чем никому не известные за пределами линукса эксклюзивы.

Наверное, одним из последних могикан был DarkTable, и тот, ЕМНИП, не выдержали и портировали.

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

К питону Qt как-то подключили.

Ограниченно да с трудом. А gtk подключили практически ко всему.

Это получается абстракция над абстракцией. По мне так уж лучше сразу QtWidgets.

Абстракций там не больше чем в Qt выйдет, скорее просто адаптация под плюсы.

Ну и зачем оно тогда?

Альтернатива проприетарному Qt.

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

Альтернатива проприетарному Qt.

Ты недостаточное число раз повторил слово «проприетарный», люди не поверят. :)

GPL из Qt никуда не делся, и LGPLные модули в нём тоже пока доминируют. И даже если случится худшее и новые версии будут перелицензированы — форк неизбежен. См. истории LibreOffice и MariaDB.

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

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

Qt-программы портируются куда легче. Я пишу программу под линуксом, потом беру винду, накатываю на неё Qt SDK, собираю, проверяю, сваливаю из винды.

А как же кросскомпиляция, зачем вообще оффтопик для этого посещать? Базовые тесты под wine погонять, а дальше уже пусть багрепорты шлют, тогда можно и окунуться в омут кисы, нет?

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