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

Теперь еще один важный вопрос. malloc выдает void-указатель. Как правильно сделать из него указатель на строку и записать несколько байтов? Скажем, байты 49, 50, 51? Пробую сделать функцию, превращающую число в строку с числоим - не получается.

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

Ахах, +, с таким же смехом отправляю свои комменты %)

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

То есть malloc понимает тип переменной, которой присваивается его результат?

Кастовать указатель от malloc нельзя?

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

То есть malloc понимает тип переменной, которой присваивается его результат?

Нет, просто тип «void*» трансформируется в указатель так же как int трансформируется в double.

int a;
char c;
void *p;

p = &a; // никаких трабл
p = &c;

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

мы с Котечкой развлекаемся.

это конечно личное дело каждого, но зачем же так громко о таких вещах?

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

Кастовать указатель от malloc нельзя?

Можно конечно, это же в С. А вот в C++ трансформирование void* в другие указатели отсутствует, поэтому в С++ коде постоянно есть такое:

t* var = (t*)malloc(10);

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

это была капча, ты ее провалил

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

Ну ты прям NPC с квестом.

Ну а ты думал. Это тебе не мелочь по карманам тырить. Вот ТС с котечкой не осилили.

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

сделан за разумное время

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

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

Может он не может в ТЛС, но в ос.экзек-то полюбасу умеет, не?

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

malloc выдает void-указатель. Как правильно сделать из него указатель на строку

Если malloc, то принято без каста, типа

char *str = malloc (OVERCOMMIT_VALUE);
anonymous
()
Ответ на: комментарий от Deleted

Хочу узнать сколько он комментов наспамил - больше 127 или больше 255:)

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

я хоть не фанат switch в C и обычно просто использую «этажерку из if... else if... else...», однако справедливости ради замечу что ассемблерный листинг в gcc получается разный. на сколько switch эффективнее мои знания точно определить не позволяют, но думаю что там такие копейки которыми можно пренебречь даже при программировании под i8086.

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

Ошибаешься про копейки, все нормальные лексеры применяют похожую на jmp table вещь для определения типа символа.

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

Если часто вызывается то копейки превращаются в рубли, ну тут думаю и так ясно.

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

и школьником (тоже не имея доказательств того, что я учусь в школе).

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

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

Да большинство пользователей про switch ниче не знает, и хотеть знать тож не хочет. Просто шкило звучит оскорбительно в чьих то умах видимо.

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

в таком случае странно конечно что компиляторы не оптимизируют. превратить if в switch автоматом не так уж сложно - если все условия ограничены == значит переделать в switch и транслировать как switch.

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

Все єто надо в компиляторе еще и прописать. В тексте. Может руки не дошли:)

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

А про jmp table не слышал. Я вообще не про тебя именно говорю %) Там выше чел уперся и говорит что switch в С ужасен, и приводит примеры совсем других штук.

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

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

switch в C довольно ограничен если сравнивать хотя бы, из того что знаю, с Ruby. ограниченность в том что в case может быть только const value. могу предположить что именно в этом случае компилятор и может как то оптимизировать а в более сложных случаях не будет никакой разницы с if.

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

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

Ну это по историческим причинам, но суть то в оптимизации как раз, в Ruby ее нету. Естественно удобнее if из python чем cmp из x86-ассемблера, но нельзя их сравнивать!!!

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

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

Я не Константин Сергеевич, но и я тоже «не верю».

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

Это уже не так интересно, чей именно. А вот в том, что ты дупапроговский (или он — твой) есть сомнения. Не все с ним так ясно. Выше уже приводили пример реального шизофреника, в одно рыло писавшего собственную ось.

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

Дык написал же ж! На виртуалке запустил - работает, бутается за считанные секунды. Другое дело, что я недолюбливаю консоль, а там именно консоль и свой диалект Си. iluha16 думаю оценит, он ведь юзает dwm:

https://en.wikipedia.org/wiki/TempleOS

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

Я их Ctrl+S в браузере, всего 8 страниц.

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

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

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

Davis proclaimed that the system's features, such as its 640x480 resolution, 16-color display and single audio voice, were explicitly instructed to him by God. It was programmed with an original variation of C (named HolyC)

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

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

Там есть и 3д игры, гонки, шутер, симулятор полета орла...

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

Хотя https://templeos.org/

In the wake of Terry A. Davis' passing his family has requested supporters of his donate to «organizations working to ease the pain and suffering caused by mental illness» such as The Brain & Behavior Research Foundation and National Alliance on Mental Illness.

как бы намекает на имевшую место mental illness по всей видимости ту самую которой страдали библейские сочинители. шизофрения вполне могла обостриться в пустыне на фоне обезвоживания.

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