LINUX.ORG.RU

Metaprog: универсальная графическая среда программирования [LabVIEW-прототип] часть 9

 , , ,


0

3

Интерактивная обучалка

https://streamable.com/dnhoy

Интерактивная инструкция по сборке факториала

https://streamable.com/h8dto

Меню из функций

Наконец допилил меню из функций. Программирование на Метапроге будет выглядеть примерно так:

https://streamable.com/xlprt

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

Сама функция, считающая факториал, выглядит так:

https://i.postimg.cc/ZRzpHhnv/image.png

Полученный код корректно считает факториал 11 (10+1, как на схеме):

https://pastebin.com/pdbhKcey

Переключатель (он же switch)

https://streamable.com/vgn3w

https://pastebin.com/tuB9X00u

Чат-клиент

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

Версия 1.

http://e2tilsgo5s44hqmlwb4epwrjnh7ynvsckj2tl5duwdqbxg67chqpelad.onion/file/de...

Требования

1. Windows начиная с ХР с кириллической локализацией (иначе будут проблемы с кодировкой символов).

2. Для запуска скомпилированного ехе-файла бесплатный рантайм (32-битный):

https://download.ni.com/support/softlib/labview/labview_runtime/2013 SP1/Wind...

3. Для просмотра и редактирования диаграмм с кодом чат-клиента - LabVIEW начиная с 2013. Как кто его достанет - личное дело каждого, если жалко денег - на торрентах оно есть.

4. Tor Browser или Tor для подключения к серверу:

https://www.torproject.org/

Сам чат-клиент лицензирован под GNU GPL v3, подробности - по кнопке «Про программу».

FAQ

0. Где отсутствующие примеры и пункты FAQ? Как вообще читать эти темы?

Чего нет в этой части - есть в прошлых. Для того, чтобы понять идею Метарпога, не обязательно читать тысячи комментариев из всех тем. Необходимый минимум собран в заголовках тем. Читайте заголовки и ссылки в них. Кстати, обновляется только заголовок последней темы, если эта тема уже не последняя - она не обновляется. В более новых темах пункты FAQ могут обновляться и в случае расхождения действительна более новая версия.

11. Как выглядит факториал в графическом представлении?

https://i.postimg.cc/ZRzpHhnv/image.png (уже на Метапроге, а не Лабвью).

Прошлые темы:

Metaprog: универсальная графическая среда программирования [в разработке]

Metaprog: универсальная графическая среда программирования [в разработке] часть 2

Metaprog: универсальная графическая среда программирования [в разработке] часть 3

Metaprog: универсальная графическая среда программирования [в разработке] часть 4

Metaprog: универсальная графическая среда программирования [в разработке] часть 5

Metaprog: универсальная графическая среда программирования [в разработке] часть 6

Metaprog: универсальная графическая среда программирования [в разработке] часть 7

Metaprog: универсальная графическая среда программирования [в разработке] часть 8



Последнее исправление: metaprog (всего исправлений: 8)

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

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

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

И все равно ерунда. Сам подумай почему (с).

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

Угадал?

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

если дятел написал факториал рекурсивно - то спасти может только эвтаназия

Опять цитаты великих людей?

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

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

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

Извините, но факториал на Питоне Реально пишется за десяток секунд. И при этом сразу можно в длинную математику. То есть входной параметр не ограничен максимальных значением. Так что видео здесь просто излишне

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

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

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

Ути-пути, какое милое передёргивание. Короче, ты нихрена не понял. Ничего удивительного, ты ж неуч без опыта реальной разработки.

Черный ящик, дружок. Прочитай ещё раз.

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

Тебя ведь не затруднит как-то подтвердить эти слова, правда? А то пока они выглядят голословным бредом.

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

И почему же раскрутка не удалась, как думаешь? Уж не потому ли, что складывание си-кубиков оказалась не настолько эффективным, как складывание кубиков на лабвью, ммм?)))

Конечно, это так. Но ты не сознаешься.

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

При чем тут рекурсия? И зачем для факториала не целые числа? Факториал определён для целых чисел и пишется через цикл

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

и пишется через цикл

Справедливости ради нужно добавить, что пишется он только во время ранних стадий обучения. Даже если потом пишут вычисление функций рядами, если там есть факториалы, они не высчитываются на каждую итерацию явно, а дополняются умножением или делением.

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

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

Угадал?

Угадал. Портрет типичного антиметапрогера.

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

Так и запишем: антиметапрогер - человек, высказывающий конструктивную, но неудобную критику проекта.

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

Я бы с большим удовольствием посмотрел как рекурсии выглядят в метапроге

Элементарно. Блок функции в диаграмме той же функции. Но пока что в транслятор рекурсия не включена.

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

Ну я как бы не совсем тебе. Просто у тебя в сообщении были удобные для продолжения идеи слова.

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

антиметапрогера

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

Ты раньше не мог быть против Showtime Komputeishon, потому что его не было. Теперь он есть, и ты можешь гордо носить почётное звание антишоутаймкомпьютейшеника.

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

... зато знающий пачку языков, имеющий опыт разработки и проектирования архитектуры огромных проектов и рисовавший диаграммы во всяких инструментах. Видишь ли, мой опыт позволяет мне судить о разработке. У тебя опыта нет, поэтому твои вскукареки про лабвью - единственную вещь, которую ты видел - вызывают не более чем снисходительную улыбку :3

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

А что у ирината используется если не она?

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

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

Насколько я знаю, LGPL разрешает использовать компоненты в пропиетарщине, но запрещает статическую линковку. Насколько будет существенно для софта по производительности, если даже арифметику нельзя будет делать со статической линковкой? Вот нуклеар лицензирован под пермиссивной лицензией:

https://github.com/vurtun/nuklear#license

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

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

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

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

Конечно свою пили, мамкин юрист.

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

Ну, а если по теме:

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

Взаимоисключающие требования. Но вообще, возможно, подойдет мозиловская лицензия. Она ограничивается действиями конкретного файла. Хотя хз, что у тебя входит в понятие файла, никто ж ничего не видел.

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

Давайте без шуток и сарказма, вопрос серьезный.

Диаграммы на скринах и видео есть. Есть процесс их сборки. Как насчет Creative Commons?

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

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

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

Бери MIT или BSD лицензию и не парь мозги.

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

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

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

вдруг на международный рынок выйдешь

На краденном лабвью.

Ты еще логотип начни разрабатывать

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

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

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

К счастью, у нас и за пиратство массово не преследуют. И я не только на СНГ ориентируюсь. Метапрог после отвязки от Лабвью (если не раньше) будем по всему миру продвигать. А там, откуда родом всякие майкрософты и гуглы, копирайт свято чтут. С копирастами надо бороться их же оружием.

Бери MIT или BSD лицензию и не парь мозги.

Ага, чтоб условный мелкософт скоммуниздил мои разработки, не дав ничего взамен? Чтобы копирасты пилили пропиетарные форки и я еще и должен был за них платить (или пиратить), будучи первоначальным разработчиком? Взять тот же стек TCP/IP из винды. Или историю Столлмана, сделавшего первые версии Emacs, но имевшего проблемы с закопиращеным кодом его форка:

Free as in Freedom на русском: Глава 7. Дилемма абсолютной морали

И тут Столлман смог воспользоваться уже существующим кодом,
чтобы сэкономить время. Он скоро обнаружил версию Emacs, написан-
ную на языке С аспирантом Карнеги-Меллона Джеймсом Гослингом.
Она называлась Gosling Emacs или просто Gosmacs. Эта версия вклю-
чала в себя интерпретатор упрощённого диалекта языка Lisp под назва-
нием Mocklisp. И хотя Гослинг защитил свою версию редактора автор-
ским правом и потом продал его компании UniPress, Столлман получил
карт-бланш от одного из разработчиков, который работал над Gosmacs
на раннем этапе, и которому за это Гослинг дал полные права на ту ран-
нюю версию редактора.
Сначала Ричард рассчитывал изменить только пользовательские ко-
манды, чтобы добиться полной совместимости с оригинальным Emacs
для PDP-10. Но когда увидел, насколько слаб Mocklisp на фоне обыч-
ного Lisp – понял, что нужно полностью переделать интерпретатор. В
такой ситуации было естественным переписать большую часть высо-
коуровневого кода Gosmacs на Lisp, чтобы использовать всю мощь и
гибкость этого языка. В середине 1985 года GNU Emacs был размещён
в интернете, и только в нескольких его файлах остался код Gosmacs.
Позже компания UniPress узнала о проекте Столлмана, и стала от-
рицать, что некий разработчик имеет полные права на раннюю версию
Gosmacs. Ричард не смог найти то электронное письмо, чтобы защи-
титься от претензий, и решил проблему иначе: переписал оставшиеся
части, полностью избавив программу от следов Gosmacs.

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

Я ни за что не буду публиковать свой код под MIT или BSD, разрешающими копирастам подобные подлости. С копирастами надо бороться их же оружием.

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

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

Взаимоисключающие требования. Но вообще, возможно, подойдет мозиловская лицензия. Она ограничивается действиями конкретного файла.

MPL действительно симпатично выглядит.

https://www.gnu.org/licenses/license-list.en.html#MPL-2.0

Да, у меня Метапрог-диаграммы в виде файлов.

Какие-то еще варианты по поводу лицензий есть?

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

Хоть один новый популярный язык, который вышел за последнее десятилетие (Node.js, Golang, Rust, Scala, Kotlin) как-то пытались ограничивать использование языка?

Вообще, кроме старых glibc (с которыми все задолбались и у которых в лицензиях есть оговорки о том, что их можно использовать, с любыми продуктами), есть какие-то базовые компоненты языков под GPL?

Из-за обновления лицензии gcc от него ушли бздишники и принялись пилить тогда еще кривой clang. Теперь clang с llvm не уступают gcc, обладают понятной лицензией, не налагающих никаких требований, и используются при разработках практически всех новых современных низкоуровневых языков.

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

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

Давайте без шуток и сарказма, вопрос серьезный.

Диаграммы на скринах и видео есть. Есть процесс их сборки. Как насчет Creative Commons?

Как-то непривычно видеть, как ты сам над собой стебёшься.

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

У тебя куча проблем

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

а ты какой-то ерундой занимаешься

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

Ты еще логотип начни разрабатывать.

Уже разработал. Есть в чатике и такой же будет в Метапроге. Кстати, его я тоже выложу под открытой лицензией, чтоб ни одна сволочь не закопирастила торговую марку (как случилось, например, с Arduino).

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

Вообще, кроме старых glibc (с которыми все задолбались и у которых в лицензиях есть оговорки о том, что их можно использовать, с любыми продуктами), есть какие-то базовые компоненты языков под GPL?

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

Нужна такая лицензия, чтобы можно было свободно использовать базовые компоненты в любом, в том числе закрытом, софте, но все же обязывающая выкладывать свои версии кода этих компонентов в случае их изменения. MPL подходит?

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

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

Кстати говоря, это не спасет тебя от присвоения торговой марки. Как бы публикация ничего не значит, важна бумажка. Кто первый зарегистрировал официально - того и тапки, да. Вот возьму, не пожадничаю зарегистрировать на себя, и будешь лапу сосать :D

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

сам над собой стебёшься

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

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

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

Я б посмотрел на оба варианта этого цирка, но они, к сожалению, остаются где-то в параллельной вселенной вместе с единорогами.

liksys ★★★★
()

GPL сейчас не работает в принципе, ну вот вообще никак.

Сколько лет идет суд с vmware? 5? 10? Всем плевать, они могут его затягивать до бесконечности. Американская компания, работает в Америке.

На Микротик постоянно наезжают за то, что у них используется модифицированное ядро. Всем посрать. Продают свое оборудование в европе, России. Скорее всего, в Америке.

Код для российских Эльбрусов собирают модифицированным gcc. Пойди, попроси у них исходники. Посмотрим, как далеко тебя пошлют.

Формат djvu читает единственная открытая GPL либа Djvulibre. Вроде как были какие-то закрытые либы, которые продавались Лизардтеч за деньги. Только вот Лизардтеч разорился уже раз 10 и постоянно его перепродают от одного владельца другому. Открой Плеймаркет/Аппстор. Там десятки читалок с поддержкой Djvu. Думаешь, все они купили лицензию за десятки тысяч долларов, чтобы продавать читалку для телефончиков за доллар? Попроси у них исходники.

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

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

В современных реалиях, GPL намного сильнее мешает продукту, чем помогает. Практика разработки новых продуктов (вернее, ее не разработки) это подтверждает.

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

Код для российских Эльбрусов собирают модифицированным gcc

Это распространенный миф. Компилятор у них свой собственный, с покупным лицензированным фронтендом от Edison Design Group (его, кстати, использует даже Intel C++ Compiler), а бэкенд самописный, потому что оптимизация под эльбрус - специфическая и нетривиальная задача, и сами разработчики считают компилятор обязательной частью стека их технологий.

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

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

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

Так было с gcc/clang. Так было с бизибоксом/тулбоксом. Сейчас гугл/хуавей пилят свои собственные ядра для операционок, потому что им неудобно работать с линуксовым.

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

Может быть. Если это так, то приношу извинения за продолжение распространения неправдивой информации.

Сейчас вообще софт играет все более важную роль. Особенно для компиляторов под новые архитектуры.

Недавно смотрел интервью с одним разработчиком из Интела. Он рассказывал, что над драйверами к их видеокарточкам работают больше инженеров, чем над самими железками.

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

Ну да, разве нет? Это вообще во многих языках так. Ну может конечно я не с той либой собрал или еще чего, но у меня выдает inf после определенного значения.

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