LINUX.ORG.RU

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

 , ,


1

2

Рейтинг пользователей тем про Метапрог или практический пример применения визульного программирования

Пока Метапрог не готов, продемонстрирую практическое применение LabVIEW. Скачать программу-демонстратор можно тут:

http://e2tilsgo5s44hqmlwb4epwrjnh7ynvsckj2tl5duwdqbxg67chqpelad.onion/file/9b...

Для перехода по ссылке нужен Tor Browser, для просмотра кода примера - LabVIEW начиная с 2013.

На данном графике - количество комментариев самых активных зарегистрированных пользователей в темах про Метапрог на момент 29.06.19 04:47:37

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

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

Данная диаграмма читает файлы с сохраненными темами из заданной папки и выдает массив кластеров из числа сообщений и имени пользователя, отсортированный по числу сообщений:

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

Данная диаграмма берет 12 самых активных пользователей, строит их рейтинг и сохраняет его в картинку:

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

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

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

FAQ

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

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

Примеры

Предыдущие см. в прошлых темах

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

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

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

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

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

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

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

Наконец-то нормально работают циклы!

https://pastebin.com/1duyPBMB

Это та самая диаграмма со старого скрина:

https://i.postimg.cc/65N2KMQz/image.png

Теперь тупиковые ветки (nk_end и «малювання SDL») тоже остаются в теле цикла. Теперь осталось внедрить тот же механизм управления тупиковыми ветками для условий (if, switch) и можно будет приниматься за разработку Метапрога на «самом себе».

Донат

Bitcoin:1AYoK2TScSpD5bhf67mv9AxHDJ2RidRvjD



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

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

Ошибочное суждение. Нижняя ступень пирамиды Грэма.

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

И настоящие программисты только так и делают.

Настоящие программисты должны уметь это сделать при необходимости.

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

Все сложно. В природе не существует никаких дешевых способов видеозахвата. Но можно включить хитрость - есть китайские конвертеры с VGA на композит, и устройства захвата композита. Оба девайса стоят полкопейки, так что ободрав с них корпус и собрав несложную схемку, можно получить приемлемое изображение для 640x480 - с аналоговыми помехами, но достаточное, чтобы поконфигурировать биос и переустановить систему через консоль.

С HDMI все сложнее. Есть тошибовый чипик, который умеет переупаковывать HDMI в CSI-2, и можно прикинуться чем-то вроде паевой камеры. Качество изображения близко к идеальному, поддерживаются разные разрешения - в зависимости от того, какой ты скормишь чипику EDID.

Видео можно кодировать и передавать в MJPG, это идеальный для этих целей формат: никаких задержек, каждый кадр - законченное изображение. Так делают многие веб-камеры, и они аппаратно умеют кодировать поток в жопеги, которые выдаются в /dev/video. Но ни одно из упомянутых выше устройств видеозахвата не умеет аппаратное кодирование, а выдает непожатый поток пикселей.

Я пробовал стримить через mjpg-streamer захват VGA и получил в лучшем случае 4 фпс на пае - полное говно, как ты понимаешь. HDMI он вообще не умел, я его запатчил и он худо-бедно начал это делать, но больше 800x600 выдать не смог. Плюс у HDMI если сложности в виде динамической смены разрешения источника, отключения кабеля и прочего. Поэтому я написал свой стример, который умеет кодировать жопеги параллельно на разных ядрах, а если платформа поддерживает (как пай) - то и на GPU. Получилась минимальная задержка с максимальным фпс.

Тема использовать китайский видеозахват появилась давно, но я был один из первых, кто это придумал, у меня даже пруфы есть в виде вытравленных несколько лет назад плат и поста на реддите))). Сейчас есть вот такой проект, но он написан на баше + PHP и собран на коленке: https://github.com/Fmstrat/diy-ipmi. Схема в случае VGA почти та же, что и у меня, только я вместо второго пая использую ардуину со специальной прошивкой, или любой другой HID-контроллер, с которым общаюсь по сериалу. Фпс там на днище, и какими-то особыми фичами и не пахнет.

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

Алсо, еще одно мое ноу-хау - сборка осей в докере: https://github.com/pi-kvm/pi-builder. Тоже придумал специально для этого.

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

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

// А все началось с того, что мой домашний сервер завис, когда я уехал в отпуск.

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

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

Прототипа на может быть без проекта. Прототип ничего – это и есть ничего.

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

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

Я бы забил. Отпуск на то и отпуск, чтобы отдохнуть. :-)

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

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

И опять же, «хоба как могу».

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

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

Хотя сейчас все исходники и так уже выложены на гитхаб, вместе со сборочными инструментами. При желании разобраться нетрудно. Тем более, что софтовая часть в моем исполнении прекрасно встает на конструкцию из проекта diy-ipmi с минимальными изменениями в железе: https://i.imgur.com/HjdBVAB.png

PS: А недопрог свои исходники все никак не выложит, кекеке.

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

Ага.

А, ну теперь понятно, почему ты его пилишь. Я поначалу подумал, что это абстрактно, без применения.

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

Зачем так завязывать я на торе? Я вот к примеру не особо хочу что то сделать с тором ради программирования рисования просто потому что медленно. Если мне понадобится вытянуть жирную зависимость, то можно вообще забить. Почему просто нельзя использовать HTTPS? Зачем такие сложности с майнингом? Зачем все так усложнять?

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

Кроме лабвьюшного кода для меня не проблема скомпилировать ехешники

В середине треда тебе говорили про exe-файл, но ты отмазывался и тебя поймали на этом. Не знаю скинул ли в итоге ты экзешник, вроде как, до сих пор нет...

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

Зачем так завязываться на торе?

Удобный и безопасный способ хостить сервера.

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

Тор думаю посталять вместе с метапрогом - не нужно будет дополнительных телодвижений по поводу его установки, запуска итп. Жирные зависимости? Мой лабвьюшный прототип метапрога на лабвью весит всего лишь около 12 мегабайт, а тора хватает даже на ютуб в HD-качестве, так что на диаграммы скорости хватит.

Почему просто нельзя использовать HTTPS?

Сложнее. Нужно вшивать статические айпишники, настраивать сертификаты HTTPS и платить за это. В торе все «из коробки» и бесплатно.

Зачем такие сложности с майнингом?

А как предлагаешь защищаться от спама и ДДОСа? Гугловские капчи - не вариант.

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

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

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

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

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

И желание автора делать свой проект лучше и удобнее

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

Ну не знаю, сейчас затестил тор на телефоне. Ютуб, мобильную версию, которая не такая жирная как десктопная, открывался секунд 20-30

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

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

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

Updated. Использовал orbot + orfox, попробовал tor browser - стало лучше сайты грузятся быстрее и даже видео запустилось.

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

Может это было давно, когда тор был медленным?

Кстати, я с тором забыл что такое блокировки. Хотя у нас вроде ничего и не блокирут кроме российских сервисов типа яндекса и мейлру.

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

Значит дело в мобильном устройстве (джава, черт бы ее побрал) или вайфае/мобильном интернете, а не в торе.

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

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

Ну и зачем? Сам с собой ты можешь и без чатика общаться. Всё равно там больше никого не будет по объективным причинам.

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

То. А то влажные мечты устроят соседям потоп.

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

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

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

metaprog, эй, кловун, боишься обосраться - потому не делаешь сортировку? Боишься, что ВНЕЗАПНО окажется, что графика не панацея, а дело в твоей пустой башке?

И вообще, где еще ПРИМЕРЧИКИ с нуклеаром? Бегом работать, разфлудился тут. Не заслужил еды в треде.

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

Ну, может это и то, но в плеймаркете последняя обнова была в декабре 2018 года, а эта репа намного свежее

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

Жду выхода метапроге ради того, чтобы посмотреть как выглядит на нем программа считающая примеры с вложенными скобками,типо такого: (2+5)*(5+(4+(5+6*5)))

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

Вообще много чего бы хотелось увидеть рабочего, но увы автор не балует

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

менеджмент от бога

Аллегория «Метапрог»

– Я собираюсь копать могилы вместо эксковатора!
– Хм, интересно. Я помогу тебе.
– Для начала нужно украсть лопат и с их помощью выточить из камня свои!
– Э-м-м…?
– Потом прорубить в лесу дорогу до кладбища, чтобы не ходить центральной!
– Зачем?
– Я собираюсь копать могилы!
– Э-э-э…
– Производители экскаваторов дураки!

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

то есть когда метапрог будет готов

Он уже готов. Его финальное состояние не будет отличаться от текущего. Это и ежу понятно.

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