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

Я пилю Метапрог, мне нужны подсказки здесь и сейчас. А ты мне что посоветовал? Читать книжки и досконально изучать текстовые языки, не хватало мне забивать мозги всякой ху ерундой.

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

Ну и избранное:

У меня есть цель софт делать, а не учиться

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

От своих слов не отказываюсь, добавлю одно: не нравится - проходите мимо.

metaprog ()

Славься Метапрог, славьтесь аноны. Восьмая непочатая ветка начинается. И да прибудет с ней троллинг. Аминь.

anonymous ()

привет, ТС! очень нравится твоя идея, я готов помогать, только на формуах сидеть и языком трепать не люблю, люблю код конструировать. У меня есть лицензионный LabView и я умею в него тыкаться! Скидывай исходники, будем работать вместе

anonymous ()

Назначение Metaprog - генерация сишного кода.
Так как в Metaprog нет и близко мета программирования /для обобщенного программирования/, ..., то
разработать его можно было хоть на JavaScript, Python, ...
И ничего «зазорного» в этом бы не было.

Как-то с использованием js + PHP просканировал и создал *h, *.cpp, *.idl wrappers для API libraries MSDN /в основном использую для разработки C++/.

Фанаты языков подобны пациентам с 6-й палаты психдиспансера г.Дуриловка .

Владимир

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

Добавочка.

Выглядело это так

// --------------------------------------------------------
// --- Abandons a specified call on the specified service proxy.
//     
HRESULT WINAPI CWebServices::WsAbandonCall(
 _In_      WS_SERVICE_PROXY  *serviceProxy,
 _In_      ULONG             callId,
 _In_opt_  WS_ERROR          *error
) {
/*
Parameters

serviceProxy [in]      Pointer to a WS_SERVICE_PROXY structure representing the service proxy on which to abandon the call.     

callId [in]            ID of the call to abandon. (See the Remarks section.)                                                    

error [in, optional]   Pointer to a WS_ERROR structure that receives additional error information if the function fails.        


Return value

If the function succeeds, it returns NO_ERROR; otherwise, it returns an HRESULT error code.


Return code              Description
-----------              -----------
WS_E_INVALID_OPERATION   The current state of the service proxy is not valid for this operation.     
                                                                                                     

E_INVALIDARG             A NULL service proxy was passed to the function.                            
                                                                                                     
                                                                                                     

В 


Remarks

Calls are identified by a call ID. This call ID is associated with the call by the WS_CALL_PROPERTY_CALL_ID value of the
WS_CALL_PROPERTY_ID enumeration.

If the call ID is 0, all pending calls on the service proxy are abandoned. For more information, see the following topics:

Be aware that the actual I/O associated with the call is not canceled. The service proxy keeps the resources to complete the call 
even though the call was abandoned.

This results in a consumption of resources that is aggravated if an application continues to abandon calls, as can happen when
the server is slow to respond to the client, and the client application abandons one call only to make the same call again.


*/

 BOOL  bVp1 = TRUE;

 ErrorClear                                                // Clear error datas

HRESULT  $VpHRESULT = ::WsAbandonCall(
  serviceProxy,
  callId,
  error
 );

// --- 
//
 if ( $VpHRESULT == SOCKET_ERROR ) {

  ErrorDataCodeWSA( TRUE, FALSE )                          // Проверка на наличие ошибки

 }

 return  TRUE;                                             // 

}                                                          // HRESULT WINAPI CWebServices::WsAbandonCall(
]/code]

Владимир
anonymous ()

Теперь тупиковые ветки

Ты опять придумал термин из своей головы и объяснить его, конечно же не сможешь?

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

Нет. В примере все еще копипаста из хеловорда

    while (SDL_PollEvent(&evt)) {
        if (evt.type == SDL_QUIT) running = nk_false;
        nk_sdl_handle_event(&evt);
    }

А вообще аффтар - типичный пример attention whore. Ничего не сделал, ничего не умеет, но внимания требует. Типичная attentionwhore

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

А вообще аффтар - типичный пример attention whore. Ничего не сделал, ничего не умеет, но внимания требует. Типичная attentionwhore

Ну хотя бы всё локализовано в восьми ветках.

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

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

anonymous ()

Ох лол. этот клован включил цикл в цикл! чтоб исполнять цик, пока исполняешь цикл!

    char metaprog_instance_0loop_3843794819496142849_condition;
    do{
        int running = nk_true;

        SDL_Event evt;
        nk_input_begin(metaprog_instance_0junction_9191741165399785473);
        while (SDL_PollEvent(&evt)) {
            if (evt.type == SDL_QUIT) running = nk_false;
            nk_sdl_handle_event(&evt);
        }
        metaprog_instance_0loop_3843794819496142849_condition = running;
    }
    while (metaprog_instance_0loop_3843794819496142849_condition);

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

Это прорыв ящитаю!

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

Ох лол. этот клован включил цикл в цикл! чтоб исполнять цик, пока исполняешь цикл!

Это нюклер так работает. Точнее так работает та демка, которую он срисовал. А сделать нормально автор ниосилит. Его удел - срисовывать то, что наговнякали другие.

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

То есть он сначала рисует на виртуальной конве (тут SDL) все свои элементы, генерячит тонны эвентов, а потом их разгребает? Удачи аввтору в отловке тормозов и непрорисовок. Мне аж чота прям потыкать ту фекаль, которую нагенерит метапрог (ну, если нагеренит) захотелось...5 метровой палкой. Думаю любая ява гуйня будет быстрее в разы.

anonymous ()

А можете расписать вкратце, что это за эпопея в 8 частях, или мне все треды читать?

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

1. Заявка автора на мировое господство 2. Посылание анонов нах по поводу и без 3. Вода 4. Вода 5. Проходим `if-else` в Си. 6. Вода 7. Циклы `while` и `do {} while` в Си 8. Подведение предварительных итогов коллективным разумом анонов ЛОРа.

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

*Блин, прости, ЛОР-код тупой по умаолчанию

  1. Заявка автора на мировое господство
  2. Посылание анонов нах по поводу и без
  3. Вода
  4. Вода
  5. Проходим if-else в Си.
  6. Вода
  7. Циклы while и do {} while в Си
  8. Подведение предварительных итогов коллективным разумом анонов ЛОРа.
anonymous ()
Ответ на: комментарий от BRATISLAVA

Амбициозный проект «metaprog» терпит крушение над водами ЛОРа в течение 8 серий. Экипаж поделки отважно борется за спасение своей слитой в дно репутации.

Действующие лица:

Неунывающий и необучаемый Метапрог.
Изобретательный и находчивый анонимус Владимир
Хладнокровный и обаятельный радист hobbit Истеричная мисс Димочка в роли хлюзды Котички

anonymous ()

часть 8

Ungazun garunge ungazun garunge
Ungazun garunge ungazun garunge

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

Гм.
Получил «некоторую» пользу от тредов.
Волей-неволей переосмысливал задачи мета программирования ...
А в целом об всех тредах скажу так - НУ ИХ В ЖОПУ!

Владимир

anonymous ()

почему никто из политиков и прочих говорящих голов не возмущается тем, что все программирование намертво завязано на английский?

den73 уже звали?

А цитаты действительно потрясающие, спасибо анонче!

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

И мета-мета программирования.

Вот только персонаж под словом «мета» имеет кое-что другое. Прямо скажем не имеющее вообще никакого отношения кметапрограммированию. У него своя, альтернативная реальность.

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

Да-да, метапрограммирование это нормальная штука. Не всем она по душе, но к ОТ отношения не имеет.

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

Об метапрограммировании /от простого к сложному/:
- динамические объекты;
- динамические языки, использующие базы метаданных;
- экспертные системы;
- ...
- ИИ.

Владимир

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

Вот только персонаж под словом «мета» имеет кое-что другое

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

Например:

Теперь тупиковые ветки (nk_end и «малювання SDL») тоже остаются в теле цикла.

вот наблюдаем тупиковую ветку metaprog

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

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

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

Проще говоря - «В голове у меня бигуди, а на большее ты не рассчитывай».

Владимир

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

Теперь знаю, что означает ЧТД, а раньше думал - «черт тебя дери».

Владимир

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

Ох лол. этот клован включил цикл в цикл! чтоб исполнять цик, пока исполняешь цикл!

Ахах, какой же ты тупой, посмотри теперь примеры к SDL_PollEvent, и осознай что ты за хрень сейчас сказал. SDL_PollEvent завершается, а бесконечный цикл с do и так ясно зачем нужен. Выйти из основного цикла можно по переключению running.

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

Вот они антиметапрогеры, глупы, и чсвэшны.

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

Вообще то к любому разработчику и разработке отношусь лояльно.
Критикую Metaprog не потому, что автор невежда, ..., а потому что можно и нужно лучше ...

Владимир

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

Ды бред какой то пишет, про nuklear вообще много чего странного уже написали, и что gtk3 производительнее, и артурианец свое виденье работы его описывал, итд...

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

Мета про украински цель! Пора бы запомнить!

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

Твои бы слова собрать, они то реально смешными будут. Где ты про свое ЧСВ говоришь, и про «Я не обидчивый, я просто злопамятный!2121»

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

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

Да что выразить, он понять этого не может, потому что матана и абстракции, да ещё и текст.

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

Судя по персонажу, «мета» по-украински это за жопа

anonymous ()

Тема огонь, аффтар жжот напалмом. Здравствуй племя молодое, незнакомое (с). Думал внести свежую струю а потом передумал, и так все зашибись струится. Всем хорошего настроения, держитесь.

anonymous ()

Одни анонимы в треде)

Долго эта Санта-Барбара еще продолжаться будет?

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

Пока автор не повзрослеет и не осознает всей своей дурости. Это если его раньше не забанят. «Пока родители кормить не перестанут» — тоже вариант.

anonymous ()
Жил был Метапрог,
Не тужил.
На улице Герцена.
anonymous ()
Ответ на: комментарий от anonymous

«мета» по-украински это за жопа

Пора создавать dupaprog. Это больше подходит тому, что поцыэнт пытается тут изобразить.

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

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

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

Дупасистемный переход. Переход от управляемой дупы, к дупе ею управляющей.

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

Dupa-oriented Programming.

dupa metaprog: inherits MainDupa {
emitter:
    dupaCreate() void;
    dupaClose() void;
    dupaCollide() int;
receiver:
    makePoop(int) int;
    clone() dupa;
};
anonymous ()
Ограничение на отправку комментариев: