LINUX.ORG.RU

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

 , ,


0

3

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

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

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

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 ()
Ответ на: комментарий от liksys

У меня больше половины коллег в виме сидят. Я вс екак то на емаксе - но тоже никакого автодополнения…

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

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

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

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

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

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

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

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

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

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

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

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

metaprog ()
Ответ на: комментарий от 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 ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)