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

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

и запихать поиски решения в простой перебор всех значений.

Ну тут повезло, что множество флоатинг-поинтов конечно ;)

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

Там один программист — полупрогер котечка, и полупрогер метапрог

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

Сферические знания в вакууме - это как мужской половой член: прекрасно если есть, но не то, чем стоит кичиться.

Мужик без члена — это печально

deadplace ()

Во сколько я напостил! Отвечайте на мои ответы. Хочу вкатиться

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

Он решал «численным методом», а не через формулу, как всякое матановское быдло.

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

Она ж не монотонная. Какой корень детектит метапрога? ))

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

Он изобрел метод половинного деления (точнее не половинного а на 10), дискриминант ему лень было гуглить. Но на полном квадрате его метод ломался и выдавал неверный ответ.

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

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

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

Она ж не монотонная.

Монотонность это уже ядерный матан!!!!111 Не для нежной психики ТСа.

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

Но это не значит, что питон как таковой быстрее, чем метапрог как таковой.

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

—————
¹Ты так и не доказал, что твоё решение вообще корректное: разрешения коллизий у тебя вообще нет.

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

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

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

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

AntonI ()

Метапрог, давай сыграем в игру? Реши мне на метапроге квадратное уравнение ax^2 + bx + c = 0 в случае рациональных корней. Необходимый «матан» прилагаю: корня всегда два; если b^2 - 4 * a * c < 0, то оба корня комплексные; корни отыскиваются по формуле x1,x2 = (-b +- sqrt(b^2 - 4 * a * c)) / (2 * a). Случай одного корня с кратностью 2 для простоты трогать не будем, пусть выводит два одинаковых. Программа принимает коэффициенты a, b, c из консоли (как именно – на твое усмотрение) и выводит в консоль корни x1, x2. Решение нужно запостить сюда в виде архива, который должен содержать скриншот схемы в метапроге и файл с сишным выхлопом. Дополнительные материалы также на твое усмотрение.

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

Это как бы с самого начала.

Да помню. В самых первых тредах тоже отметился. Просто еще раз повторить не помешает.

cluge ()

что это такое и где его скриншоты?

а чего оно само не умеет страницу скачивать?

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

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

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

что это такое и где его скриншоты?

Метапрог или Лор браузер? Попробуй скачать. Если проблемы - обращайся.

а чего оно само не умеет страницу скачивать?

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

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

Метапрог, давай сыграем в игру? Реши мне на метапроге квадратное уравнение...

Я больше в эти игры не играю. Некогда, да и желание выполнять хотелки людей, ничего не сделавших для проекта, отпало из-за отвратительнейшего поведения антиметапрогеров типа ПроФФесора Этанола (все совпадения случайны). Мне очень не хотелось бы потратить свое время, чтобы в лучшем случае не получить ничего, а в худшем - выслушивать по-свински неблагодарные придирки (например я, видите ли, поленился проверить деление на ноль или еще чего).

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

содержать скриншот схемы в метапроге и файл с сишным выхлопом

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

С дальнейшими вопросами обращайся в Метапрог онлайн, если не удается запустить его - пиши тут.

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

Ты так и не доказал, что твоё решение вообще корректное: разрешения коллизий у тебя вообще нет.

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

хотя сравнивал ты своё решение¹, которое искало совпадение хешей, с реализацией на питоне, которая делала прямой поиск подстрок без предварительной подготовки

Может по свободе попробую прямой поиск для сравнения.

Ты писал, что в твоем сверхбыстром сишном бенчмарке на хешах ошибка. Ты ее пофиксил?

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

скриншоты лорбраузера есть? пытаюсь представить, что это такое

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

пытаюсь представить, что это такое

Лучше не надо. Кошмары будут мучить по ночам.

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

Мужик

Фи, что за гендерное разделение в XXI веке? Человек — просто человек.

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

Программа принимает коэффициенты a, b, c из консоли

А вот аналога МЕРТВОПРОГовского пожирача в Метапроге, по ходу, до сих пор нет, хехе. Но впрочем, и не нужно, что язык графический и создан для борьбы с ЧИОРНОЙ консолью — странно, что там даже вывод в неё добавлен.

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

@mertvoprog недавно высказал очень умную мысль: скрины и сишные трансляции вредят восприятию Метапрога. Не осилившие поставить прототип Метапрога теряют преимущество интерактивности (ключевое для Метапрог-схем), а логику работы программы не видят за стеной сишного кода, для чтения людьми вообще не предназначенного. Так что извольте, сударь, сами поставить прототип Метапрога.

Ой как всё запуууущеноооо…

Во-первых, субъективное. @mertvoprog безусловно очень интересный собеседник, у него обо всём есть своё мнение, и лично мне он помог, когда я в свой редактор контактов добавлял поддержку формата NBU, за что ему спасибо. Но ты вообще-то в курсе, что он крупнейший на ЛОРе специалист по убиванию себя об стену? За ним числятся как минимум две эпические истории по вылету с ЛОРа и ещё несколько неэпических. Если ты для себя и своего проекта такого будущего не хочешь — имеет смысл по получении таких советов как минимум насторожиться.

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

С дальнейшими вопросами обращайся в Метапрог онлайн, если не удается запустить его - пиши тут.

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

С людьми, у которых есть хоть сколько-нибудь инженерного мышления, такие мантры не работают. Интерактивность внутри метапрога — это неплохо. Но большие проекты на одной интерактивности не живут. Код должен быть проверяемым и сопровождаемым. Нужен код, нужно описание языка, нужно описание внутренних форматов, наконец, нужны примеры! Затаскивание на службы вместо всего перечисленного на нас не действует.

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

выслушивать по-свински неблагодарные придирки (например я, видите ли, поленился проверить деление на ноль или еще чего).

А это надо в цитатник. :)

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

внешними средствами

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

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

На ЛОРе их по очевидным причинам практически нереально найти: здесь секта свидетелей юникса, консолезадротничества и прочего антивиндузятничества. В то время как целевая аудитория Метапрога — это виндузятники, которые вместо ReactOS перебежали на линукс и хотят сделать из линукса винду. Такие кадры тут встречаются, но о-о-о-очень редко. Даже кедерасты, коих тут обилие, далеко не всегда являются настолько латентными виндузятниками, хотя казалось бы.

hint для @metaprog: сделать к следующему релизу какую-то приблуду для кедерастов и поставить тег kde ;-) Интересно, что из этого получится и сколько нового народу набежит в тред.

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

Там, если что, прям готовый пример как раз для твоего случая.

Princesska ()

Этот тупняк все еще жив?

ilinsky ★★★★★ ()

Какая интересная тема получилась!

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

Я выкладывал решения с подстроками в 5 и даже 3 символа

Это не доказательство, которое можно проверить.

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

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

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

Достаточно было бы показать, в каком месте делается разрешение коллизий, и как это транслируется в Си. Доказывать, что Си компилятором преобразуется в нужные инструкции не обязательно, в clang и gcc я достаточно верю. А вот в поделие ТСа — не очень. Я не заметил в его высказываниях признаки понимания хеш-таблиц.

i-rinat ★★★★★ ()

Кто ни будь дайте скирин. Интересно же =)

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

Спасиб +)

Уууууууууууууууууууууу. Тема не раскрыта! Хочу этот как его код эммм… скриншот кода ))))))) Не сишного, а того который этот самый, ну вы поняли который в паинте рисовался =)

Маладец метапрог, жду веб сервера!

LINUX-ORG-RU ()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)

Что это такое https://imgur.com/3o0h5ED, что это за адов пипец? Как этим вообще пользоваться? Вы вдвоем с котечкой браузерами, редакторами текстов, смотрелками pdf, да, блин, мобильными телефонами пользуетесь? Таки, наверно, да. Почему нужно выдумывать хрень, поведение которой вообще не очевидно и близко не приближается к общепринятым стандартам пользовательского интерфейса. Что за хрень творится со шрифтом? Почему, даже когда ее не трогаешь, она отжирает 100% CPU и потихоньку отжирает оперативку?

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

Кстати, если в диалоге выбора файла нажать «Отменить», оно тупо падает https://imgur.com/ku32sCr , а не просто завершает работу, как должна вести себя нормальная программа. Гы-гы-гы.

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

Фи, что за гендерное разделение в XXI веке?

Пройдите мимо

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

Олсо, лоральмолог — это намёк на офтальмолога, которого пользователям придется посетить

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

Во всем виновато gtk!

Нет там гтк, там только SDL2 и сопутствующие либы. Гтк автор отмел в одной из первых тем, т.к. в гтк ооп во все поля, а он ооп не приемлет.

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