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

date можно написать хоть в одну секунду, видео сними.

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

Так почему Вы считаете что 5 строчек текста без автодополнения это ужас-ужас? И правда интересно.

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

По сути ответы одинаковые, но в реальности ты отталкиваешь от себя аудиторию таким обращением. Зачем?

Почему бы и не оттолкнуть аудиторию, которой нужно лизать зад? Разве это не разумно.

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

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

Потому что только недоросли думают, что если воткнуть как можно больше в одну строку, то это – улучшение. Это весма распростанённа форма рака моска среди программистов.

Количество строк ничего не значит.

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

тоже никакого автодополнения…

Зачем нажимать кнопки 20 раз, если можно 2-3, так и не было объяснено.

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

Котечка передает:

а что за победы actix-web? царь тред сделал или ворвался? ссылку бы!

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

функционал

То есть матан ты не признаешь, а функан ок?

DELIRIUM ☆☆☆☆☆ ()
Ответ на: комментарий от kostyarin_

Почему бы и не оттолкнуть аудиторию, которой нужно лизать зад? Разве это не разумно.

Быть вежливым и адекватным != лизать зад.

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

И что, там достаточно сложные программы

Некоторые, достаточно сложные, это мое субъективное мнение.

было чем-то выдающимся? По отдельности в них ничего экстраординарного нет

Нет там ничего выдающегося и экстраординарного. Просто работает.

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

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

Мы в том числе против TUI, к слову.

Мне, когда пользовался, вполне зашел консольный BitchX

Лучше никакое, чем такое, ага

Продолжайте жрать кактус, а лучше пишите багрепорты разработчикам.

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

Быть вежливым и адекватным != лизать зад.

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

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

это он просто не въехал в концепт

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

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

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

А чем отличается от требования ставить всякие пиратские Visual Studio и сборочки Intellij IDEA на галерах?

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

Кажется, кто-то здесь не понимает разницу между «лизать зад» и «вежливо обращаться».

P.S. Ага, прочитал расшифровку:

Угу, вежливый человек свои понятия не навязывает

Так ТС с самой первой темы и занимается именно навязыванием своих понятий. Довольно агрессивно. «Я софт писать пришёл, а не учиться», «археологию учить не буду» и др.

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

Нет там ничего выдающегося и экстраординарного. Просто работает.

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

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

Серьёзно @metaprog относится только к Метапрогу, остальное наотмашь по ходу дела.

BitchX does not yet support Unicode.

Мда.

а лучше пишите багрепорты разработчикам

Мы-то пишем, и иногда даже чиним, но лезут новые. В Viber и вовсе смысла особого репортить нету, оно ж проприетарное, и одно время вообще версию для GNU/Linux забросили, о чём поддержка прямо отвечала. Год назад таки откопали и зачинили наконец.

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

Потому что моего формата еще нет

Окей, можно это воспринять как тонкий намёк на то, что «когда формат появится, описание будет». Хотя хотелось бы не тонкий намёк, а ясно выраженные намерения…

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

«Я софт писать пришёл, а не учиться», «археологию учить не буду» и др.

Это не навязывание своих понятий а обозначение позиции. И даже «иди учись/ставь Метапрогу» это не навязывание понятий.

Навязывание понятий это скажем попытка заставить ТСа принять тот факт что квадратное уравнение не входит в матанализ. Что в этом невежливого я ума не приложу… Если только считать невежливым вообще любое обучение.

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

И в виме и в емаксе давно автодополнения есть. Даже несколько разных вариантов.

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

Возможно. Я не пользуюсь, надо будет попробовать (хотя мне и так норм).

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

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

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

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

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

Ну и где она плоская, за окном дома, а за ними деревья. Плоскостью не пахнет. Так себе доказательство.

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

Автодополнения нет, вместо него хорошая память.

А причем тут память? Просто я не фанат текста, мне не доставляет кайф набирать буковки.

gint value = gtk_scrolled_window_get_max_content_width(GTK_SCROLLED_WINDOW(main_scrolled_window));

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

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

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

Так в эти древние редакторы автодополнение нормально просто не вкрутить, ну или оно лагать будет. LSP дает надежду, но это все равно будет консольный мазохизм.

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

Вопросы остаются. Почему существует множество библиотек на LabView под GPL? Они все нарушают лицензию? Может стоит кинуть жалобы, что бы их удалили с GitHub'a?

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

IDE, даже самая-самая крутая и прокачанная - не более чем полумера.

Да, но царь например писал про интерактивный текст. Так что с текстом не все так просто, ему есть куда расти.

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

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

Пользуемся, метапрог хотел ЛОР в виде дерева. Я успел сделать только отрисовку комментария, остальное сверху приделано было в условиях жесткой нехватки времени. Под конец еще была переделана функция zoom'a, она вообще не тестировалась, и вот так получилось. Ну теперь то никаких сроков нету, так что в следующий раз тебе понравится творенье.

Почему, даже когда ее не трогаешь, она отжирает 100% CPU и потихоньку отжирает оперативку?

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

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

Так на C из-за убогости C такая портянка. На языках с нативным ООП, а не Glib-овской пародией на него, такой код в разы короче и интуитивнее.

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

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

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

интерактивный текст

Гипертекст придумали ещё в прошлом веке.

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

Я же про текст в программировании. А не просто текст.

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

Не совсем, ибо там не хватает многозадачности, есть лишь убогий TRS-костыль.

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

Работать то работает... А вот что бы мог CMake подхватить, и сам CMake разобрать, и автотулзы заодно? А автодополнение в хмтл + жаваскрипт что бы везде нормальное и пересекалось?

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

Тоже не особо кайфово.

gint value = main_scrolled_window.get_max_content_width();

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

метапрог хотел ЛОР в виде дерева

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

Потому что на каждую отрисовку оно перерендеривает текст

Это не оправдание; Наш калькулятор на J2ME с полностью кастомным рендером UI перерисовывает каждый кадр, независимо от свёрнутости приложения, но при этом не тормозит и даже батарею заметно не жрёт.

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

Так вроде забракованный MS-DOS умел в многозадачность. А потом появился Российский клон который тоже умел в нее, я правда название забыл, Багет ДОС? ТР-ДОС?...

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

Дык во всяких браузерных мордах к коду навигация по коду гипертекстом и реализована.

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

А вот что бы мог CMake подхватить, и сам CMake разобрать, и автотулзы заодно?

А это говно мамонта где-то адекватно подхватывается? C и особенно C++ — сплошь боль и тонна легаси, поэтому Мы в последнее время предпочитаем писать на чём-то посовременнее.

нормальное

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

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

А получилось в итоге не дерево

Ну времени не хватило, говорю же. План такой, сделаем редактор диаграмм отвязанный от метапрога, и потом наделаем для него ЛОР-блоков. Но пока возможности текущей версии не позволяют (позволяют но костылингом), в следующей версии можно уже начать будет делать.

Это не оправдание;

И заново рендерит ttf-текст, загружает текстуру в видео-память, удаляя старую? И сколько там текста? Сопоставимо с текстом во всем треде?

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

А как кайфовее? Если заменить ввод имени метода выбором его из некой портянки из десятков доступных методов — возни будет ещё больше.

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

А это говно мамонта где-то адекватно подхватывается?

Ты про CMake??? Так наоборот модно молодежно, вон Microsoft в Visual Studio добавили поддержку CMake. В QtCreator, KDevelop и автотулзы подхватываются нормально, и тормозов нету.

C и особенно C++ — сплошь боль и тонна легаси

Под остальное библиотек не нахожу, поэтому вот так. Ну и атонол на С++ пишет же.

поэтому Мы в последнее время предпочитаем писать на чём-то посовременнее

На чем?

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

Тогда буду говорить что оно просто не может автодополнять что нужно, или тоже не то? Ну тогда не знаю даже.

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

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

gint value = ma#_sc#.get_m#c#;
# - когда жмется автодополнение. Но обычно много повторяющихся имен нету, или вообще нету, поэтому клавишо-нажатие минимально.

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

Ну времени не хватило

Да не похоже, что в задумке это вообще было.

загружает текстуру в видео-память, удаляя старую

Там софтварный рендеринг :P Но с двойной буферизацией вроде.

И сколько там текста? Сопоставимо с текстом во всем треде?

Несколько десятков надписей, и не многострочных. Но стоит и мощность 200-мегагерцового ARM-процессора с десктопными сравнить…

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

Да не похоже, что в задумке это вообще было.

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

Там софтварный рендеринг

Так это плюс.

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

Ну там вся проблема в том что текст именно рендерится из шрифтов. И шрифт каждый раз открывается и читается заново из файла...

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

Так наоборот модно молодежно

Не-а, модно-молодёжно — это Meson/Ninja, а CMake уже бумерский.

библиотек не нахожу

Так FFI на что?

На чем?

Rust/Go. Но там с жирнотой бинарей и линковкой проблемы, надо с этим что-то делать. Ждём V :3

не может автодополнять что нужно

А что нужно?

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