LINUX.ORG.RU

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

 , , ,


2

3

FAQ

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

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

10. Примеры выдают варнинги при компиляции (у кое-кого еще и сегфолтятся)

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

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

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

(пока что на Лабвью)

Примеры

Находятся в прошлых темах. Компилировать исходники нужно так:

gcc ./test.c -o ./test $(pkg-config --cflags --libs gtk+-3.0)

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

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

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

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

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

Прототип чата:

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

Показывалка языка локализации через seltocale (кстати, у кого что показывает?)

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

Прототип чата с прокруткой:

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



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

Программы записывающие микрофон будут получить звук который идет на динамики.

какой то изврат для записи звука с проприетарного по.

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

ну так собери lfs и сделай всё как хочется

слакварный

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

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

какой то изврат для записи звука с проприетарного по.

Если в альсе так нельзя что сразу изврат?) Тут идея в том что можно из одного источника в другой делать перенаправление, важная штука. А я не музыкант, я так говорю через записанные отрезки https://rakovanie.ru/

ну так собери lfs и сделай всё как хочется

Зачем? Меня инит устраивает, да и Slackware и так LFS практически, просто тут есть собранные пакеты, некоторый костяк для удобства, от которого легко отказаться, такой LFS со скриптами для удобства, а еще мне лень компилировать %)

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

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

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

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

Без пульсы это нельзя? Иногда это очень нужная фича, винда xp точно это умеет. Вот только у меня подключение bluetooth наушников начинается с ритуала pulseaudio -k. Надо обязательно перезапустить, конфиги трогать не надо. Один и тот же рецепт для разных дистров.

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

Без пульсы это нельзя?

Неа. Может неправильно помню но очень скорее всего нет.

Вот только у меня подключение bluetooth наушников начинается с ритуала pulseaudio -k. Надо обязательно перезапустить, конфиги трогать не надо.

Багрепорты слал уже?

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

Багрепорты слал уже?

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

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

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

Systemd? Отлично! Говно мамонта из SystemV? Прекрасно! BSD-style? Волшебно! Бизибоксовский инит? Офигенно! OpenRC? Зашибись! Андроидно-b2g-шный RC? Чудесно! Срачи начинают только ригидные тупари, в черепушке которых столько информации не помещается.

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

Я вообще не наблюдаю никаких проблем вообще с какой-либо системой инициализации.

Тому ще ты с ней не работаешь? Лол. Systemd это не просто инит к тому же, так что сравнивать его с sysvinit не имеет смысла. Да и мы не спорим о sysvinit vs systemd, успокойтесь. Я просто называю плюсы.

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

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

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

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

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

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

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

бинарные форматы вместо текстовых

это означает что по каждому чиху надо писать ПО для редактирования ну или считать биты в hex редакторе.

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

а чё там systemctl, там вроде start/stop/status.

Лол, нет, там много чего. Дык и у systemd еще куча частей, не только systemctl.

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

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

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

Нет. Просто иметь нужные определения типов (typedef) и стандартные функции сериализации-десериализации.

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

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

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

ну я не знаю чего там ещё потому что:

ilya@www ~ $ man systemctl
No manual entry for systemctl
ilya@www ~ $

говна не держу.

когда работал над заказами по ssh кроме как start/stop/status ничего не пользовался, догадался сам потому что похоже на инит скрипты /etc/init.d/mysql start. только всё наоборот и нельзя так просто посмотреть список как в `ls /etc/init.d/`. да и вообще не понятно что откуда берётся, нельзя открыть файл в /etc/init.d/ vimом и посмотреть. вобщем не нравится мне.

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

и нельзя так просто посмотреть список как в `ls /etc/init.d/`.

systemctl list какой нибудь %) не могу подсказать так как:

man systemctl
Ничего про systemctl в руководстве нет
%)

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

Для их чтения.

текстовые форматы можно редактировать vimом

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

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

Редактировал. И юниты systemd редактировал. И rc-файлы под B2G писал. И с OpenRC разбирался. Единственное, во что не приходилось за ненадобностью лазить - это Upstart и launchd. Но не думаю, что и там были бы какие-то сложности.

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

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

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

На чём угодно лучше, чем на твоём бомжвью. Стена там →

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

какое то говнище, выпиливал это говнище помнится из gentoo

Его можно считать говнищем, пока ты сидишь в локалке с обычной сетевой картой, ну пусть даже с двумя. Да, там можно просто набрать ifup. А вот если надо поднять какой-нибудь PPTP да ещё к серверу от MS (да-да, у нас один провайдер так интернет раздавал) или какой-нибудь билайномодем... Вот тут NM резко становится полезным.

Времена меняются, увы.

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

А к двоичным форматам не надо структуру придумывать? Если их структура не продумана, а пользуются ими >1 человека, будет ад, от которого никакая версионированность не спасёт.

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

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

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

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

Речь шла конкретно про NetworkManager. А это, внезапно, вообще демон. К нему есть и консольная утилита, и TUI (правда, недоделанный), и GUI. Выбирай на вкус.

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

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

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

Ubuntu деривативы и Manjaro. Если баг есть в убунте - его давно зарепортили. Хоть я и программист, я очень не люблю настраивать систему. Только если проблемы сами вылазят, тогда настраиваю. Ну а работа по ssh это совсем другой разговор.

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

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

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

Вроде как реестр надёжнее, но это путь винды и гнома.

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

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

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

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

у меня чёткий стереотип что вся гуйня глючная.

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

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

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

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

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

struct {
  int connection_type; // 1 for ethernet, 2 for pppoe
  
  // ethernet specific fields
  int ip;
  int netmask;
  
  // pppoe specific fields
  char *username;
  char *password;
};

что помешает тебе без энкапсуляции поставить connection_type = 2 не указав при этом username/password и как следствие сохранить инвалидную информацию в бинарный файл который и отредактировать простым текстовым способом нельзя. как вариант при попытке открыть этот файл для редактирования твоя прожка будет падать в сегфолт потому что будет пытаться прочитать username/password из неинициализированного адреса.

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

К нему есть и консольная утилита, и TUI (правда, недоделанный), и GUI.

ZUI не хватает, ТС не оценит.

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

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

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

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

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

Я сделал открытие окошка в нуклеаре. Теперь вопрос как ставить виджеты в произвольном месте этого окошка. И как вообще создавать виджеты.

Вот есть в моих диаграммах (например на этой https://postimg.cc/KkHhZwvf ) компонент «вызов функции». Это основной прямоугольник (с текстовым названием или картинкой) плюс квадратики со стрелочками (терминалы). Надо чтобы на клик по основному квадратику и по терминалам была разная реакция, то есть, насколько я понимаю, это должен быть сборник разных виджетов.

Начнем с простого. В произвольном месте поставить прямоугольник с текстом. Как?

Где в нуклеаре вообще функции рисования линий, прямоугольников итп? Или это уже в SDL или gles?

Да, в гтк я это сделал, но все же чувствую, что рисовать диагарммы на gtk fixed - это жуткий костыль.

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

Будет список с именами элементов структуры. Редактирование будет по типам. connection_type - строковый параметр? Лучше если он будет как enum или еще одна структура, чтобы без дурацких строк, в которых все же можно ошибиться.

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

рисовать диагарммы на gtk fixed - это жуткий костыль

Да, для рисования чего-то, что не состоит из виджетов, вроде используется DrawingArea. Там как раз уместны функции gdk_draw_XXX(), на той странице есть список этих функций.

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

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

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

а вот если бы автор использовал ООП patternы заменять тулкиты было бы проще и можно было бы с лёгкостью поддерживать несколько разных.

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