LINUX.ORG.RU

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

 , , ,


3

6

Не нравится - проходите мимо. Нравится - помогайте проекту.

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

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

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

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

Чисто технические. По Си, библиотекам итп. А поучать не по делу - «не учите меня жить, лучше помогите материально».

Примеры

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

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

Собственная метапроговская функция

Метапрог не только умеет вызывать сишные функции, но на нем можно и свои делать. Функция для открытия слушателя (listener) на нужном адресе и порте и ее схема:

https://i.postimg.cc/8kXBCX40/image.png

Зеленые линии - особенные. Они задают жесткую последовательность выполнения. Сначала bind и только потом уж listen. Сначала listen - и только потом уж сокет можно передать дальнейшим функциям (например, accept).

У функции есть своя пиктограмма.

Открытие окошка

Этот пример открывает окно. Там же есть асинхронный вызов (на завершение):

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

Инициализация (отдельная функция, инлайнится еще на уровне метапрога в главную диаграмму):

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

Асинхронная функция на завершение:

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

Все это генерирует такой код (опять же - не для эстетов, а для скармливания gcc):

https://pastebin.com/T3Bu5Qy6



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

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

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

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

У меня канал иногда бывает 500kbps, а изредка и 64kbps. Так что да, не всегда резиновый. Когда скорость возвращается обратно в человеческие 100mbps (или я возвращаюсь к скорости), начинаю люто-бешено выкачивать обновления. Поэтому да, 100-200мб программы (которым не нужен доступ от рута) лучше динамически линковать.

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

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

metaprog
() автор топика
(🖨) = putStrLn
(⌨) = getLine
(🔎🗑) = filter

(📈) [] = []
(📈) ((📨):(🗃)) = (📈) ((<(📨)) 🔎🗑 (🗃)) ++ [(📨)] ++ (📈) ((>=(📨)) 🔎🗑 (🗃))

main = (🖨) . (📈) =<< (⌨)

Вот оно, графическое программирование во всей его красе! Минимум текста, никаких мануалов! И написано на себе! Ура, товарищи!

balsoft ★★
()

Ого, уже третяя часть! Автор молодец, видно сразу несколько методик по раскручиванию постов

  1. Громкие лозунги про «новый» и «революционный» подход к программированию
  2. Сравнение своего гения с кумиром многих Линусом Торвальдсом
  3. Постоянное напоминание о своей значительности
  4. Постоянные жалобы на, якобы, обезьян, которые мешают нашему гению своими нинужностями
  5. ТС постоянно поддаётся на провокации недотроллей, тем самым подливая масла в огонь.

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

Язабан

Fizzika ★★
()

А с поиском как? В большом проекте с текстом, чтобы найти, допустим, паттерн «Var == A.*n» мне, собственно, надо только его погрепать. А у вас как? Что-то для более-менее сложного поиска и замены информации задумано?

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

ТС постоянно поддаётся на провокации недотроллей, тем самым подливая масла в огонь.

На самом деле это недотролли поддаются на провокации ТС.

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

Perl круче!

                                           $_='ev
                                       al("seek\040D
           ATA,0,                  0;");foreach(1..3)
       {<DATA>;}my               @camel1hump;my$camel;
  my$Camel  ;while(             <DATA>){$_=sprintf("%-6
9s",$_);my@dromedary           1=split(//);if(defined($
_=<DATA>)){@camel1hum        p=split(//);}while(@dromeda
 ry1){my$camel1hump=0      ;my$CAMEL=3;if(defined($_=shif
        t(@dromedary1    ))&&/\S/){$camel1hump+=1<<$CAMEL;}
       $CAMEL--;if(d   efined($_=shift(@dromedary1))&&/\S/){
      $camel1hump+=1  <<$CAMEL;}$CAMEL--;if(defined($_=shift(
     @camel1hump))&&/\S/){$camel1hump+=1<<$CAMEL;}$CAMEL--;if(
     defined($_=shift(@camel1hump))&&/\S/){$camel1hump+=1<<$CAME
     L;;}$camel.=(split(//,"\040..m`{/J\047\134}L^7FX"))[$camel1h
      ump];}$camel.="\n";}@camel1hump=split(/\n/,$camel);foreach(@
      camel1hump){chomp;$Camel=$_;y/LJF7\173\175`\047/\061\062\063\
      064\065\066\067\070/;y/12345678/JL7F\175\173\047`/;$_=reverse;
       print"$_\040$Camel\n";}foreach(@camel1hump){chomp;$Camel=$_;y
        /LJF7\173\175`\047/12345678/;y/12345678/JL7F\175\173\0 47`/;
         $_=reverse;print"\040$_$Camel\n";}';;s/\s*//g;;eval;   eval
           ("seek\040DATA,0,0;");undef$/;$_=<DATA>;s/\s*//g;(   );;s
             ;^.*_;;;map{eval"print\"$_\"";}/.{4}/g; __DATA__   \124
               \1   50\145\040\165\163\145\040\157\1 46\040\1  41\0
                    40\143\141  \155\145\1 54\040\1   51\155\  141
                    \147\145\0  40\151\156 \040\141    \163\16 3\
                     157\143\   151\141\16  4\151\1     57\156
                     \040\167  \151\164\1   50\040\      120\1
                     45\162\   154\040\15    1\163\      040\14
                     1\040\1   64\162\1      41\144       \145\
                     155\14    1\162\       153\04        0\157
                      \146\     040\11     7\047\         122\1
                      45\15      1\154\1  54\171          \040
                      \046\         012\101\16            3\16
                      3\15           7\143\15             1\14
                      1\16            4\145\163           \054
                     \040            \111\156\14         3\056
                    \040\         125\163\145\14         4\040\
                    167\1        51\164\1  50\0         40\160\
                  145\162                              \155\151
                \163\163                                \151\1
              57\156\056

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

Ненужно это ты %) А Perl нужен для обработки текста, он для этого идеально подходит, и работает быстрее всяких питонов.

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

А Perl6 нужен как язык на котором можно тестить инновационные фичи для языков!

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

Да и кто если не Perl? Там вон потоки есть, куча модулей в CPAN, полноценный скриптовый язычок.

Deleted
()

Не нравится - проходите мимо.
Нравится - помогайте проекту.

Без твоих советов обойдёмся.

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

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

Я не научился. Ничего не понятно. ТС видимо просто толстый тролль.

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

Стоп, т.е. перл ненужнее даже 1С?

Выстраиваем цепочки ненужности!

a > b = b ненужнее a

C > C++ > 1С > Perl > Labview > Metaprog

Так получается?

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

Вообще весь текст кроме main и скобочек можно убрать и потом определения вынести в отдельный модуль.

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

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

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

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

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

Вместо аккуратной темы с уже готовой альфа-версией, с готовой репой на гите

Здрасьте, в этих темах мне уже кучу всего подсказали по делу. Не такие хейтеры как ты, конечно.

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

Ненужнее тебя в этих темах только анонимные тролли.

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

уже кучу всего подсказали по делу

«По делу» для тебя это разжёвывание тебе демо-примеров и объяснение основ программирования на гтк? Лол

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

Откуда ты брал список параметров для функций-коллбэков в примере с сервером и графическим хеллоуворлдом?

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

C/C++ нужны. пёрл не нужен, есть современные скриптовые языки прекрасно заменяющие данную наколенную поделку какого то админа с впоследствии наляпанными миллионами кривых дополнений с мозговзрывательной логикой. лично мне больше всего нравится ruby но и python тоже очень не плох по сравнению с пёрлом. оба языка спроектированы, продуманы, последовательны и логичны в отличии от. 1C за программирование вообще не считаю, смею предположить что наверное он нужен бухам но точно не мне лично. что такое labview не знаю но из контекста данной темы если я правильно понимаю какое то проприетарное говнище пытающееся реализовать нелепую идею топикстартера. metalog ненужная попытка украинского школьника сделать то же самое самостоятельно.

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

Да и кто если не Perl? Там вон потоки есть, куча модулей в CPAN, полноценный скриптовый язычок.

всё тоже самое есть в ruby + адекватный синтаксис и удовольствие от программирования как ни от какого другого языка

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

пёрл не нужен

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

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

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

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

лично мне больше всего нравится ruby но и python тоже очень не плох по сравнению с пёрлом

Они более медленные, у них более плохие регулярки, более многословны.

оба языка спроектированы, продуманы

Глобальные переменные сделаны так же как и в php, нужен global, ты ныл что это очень криво, еще в питоне нормальных замыканий нету.

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

Смоллток мертв, а руби еще нет.

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

За срачами с людьми, многих из которых я бы послал (если б не запрет на маты), скрываются главные вопросы.

Вот есть пример с асинхронным сервером и гтк-хеллоуворлдом.

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

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

Где именно ты брал список параметров для функций-коллбеков? Из мануалов?

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

Я думаю автоматически вытягивать список правильных коллбэков. Это надо делать по классам? Приведи пример плиз.

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

Но не такой жирный, как в плюсах или, тем более, джавах и дотнетах. Верно?

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

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

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

Они более медленные

возможно но несущественно для скриптового языка. хочешь скорость пиши на C.

у них более плохие регулярки

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

более многословны

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

Глобальные переменные сделаны так же как и в php, нужен global, ты ныл что это очень криво, еще в питоне нормальных замыканий нету.

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

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

возможно но несущественно для скриптового языка

Ну Python, Ruby это тормоза совсем уж.

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

Я очень рад что тебе хватило!

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

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

сие говно неудобная на практике взятая из какой то абстрактной теории говнофича похапэшников

В Perl ее нету, правда здорово? Он вообще более сишный такой.

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

Давайте же писать все на Java! Заменим нечитаемый (ba)sh на нее!

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

Я вот думаю как лучше конструировать диаграммы. Может с помощью Label (прямоугольники с текстом) и иконок (пиктограммы)?

Кстати, первый пример с лейблом готов. И заодно асинхронным вызовом (на завершение):

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

Инициализация (отдельная функция, инлайнится еще на уровне метапрога в главную диаграмму):

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

Коллбек-завершение:

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

Все это генерирует такой код (не для эстетов, а для скармливания gcc):

https://pastebin.com/T3Bu5Qy6

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

Я вот думаю как лучше конструировать диаграммы. Может с помощью Label (прямоугольники с текстом) и иконок (пиктограммы)?

Сам не особо представляю.

Кстати, первый пример с лейблом готов. И заодно асинхронным вызовом (на завершение):

Прекрасно, приятно видеть что работа идет!

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

Сам не особо представляю.

А если подумать? Есть идеи?

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