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

Может, стоит железо поменять?

Софт из разряда чего-то простого (браузеры, офисы) обязан работать идеально на железе, поддерживающем винду ХР. Если это не так - проблема в софте, а не железе.

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

Тем что это оверхед. Прямо обращаться к структуре, отвечающей за свойства стиля объекта, быстрее и удобнее, чем прописывать чертов CSS.

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

проблема в миллионах новых веб стандартов которых во времена xp ещё не наговнопридумывали

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

не интересовался как там конкретно реализуется но думаю преобразовать { border: 1px solid red; } в gtk_set_border_color или как там (не пишу на gtk предпочитаю qt именно из за этих идиотских километровых названий ф-ций связанное с неиспользованием оопа) не сложнее чем преобразовать квадратики с линиями в код на C. подозреваю что для профессионалов текстового программирования это вообще раз плюнуть.

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

именно из за этих идиотских километровых названий ф-ций связанное с неиспользованием оопа)

gtkmm? vala?

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

не знаю, не пробовал вышеуказанное. катастрофически не хватает времени из за веб говнокодерства.

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

связанное с неиспользованием оопа

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

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

не знаю для чего и что там используется потому что не использовал gtk для написания по ни разу. туториал только какой то видел и мне это сразу бросилось в глаза. переключился на qt. с ним делал разок по для фриланса. но там тоже проблема вышла потому что заказчик требовал бинарник для linux, windows и macos. для linux и windows я ему собрал а macos у меня не было никогда и я его только на скриншотах видел так что пришлось нанять индуса ещё который за $30 собрал ему для этой говнопроприетарщины бинарник.

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

Да и я могу сделать в графике функцию для задавания рамки, но все равно это будет жуткий костыль. И ладно статически задал цвет - как я динамически буду те цвета задавать? Тоже скармливать гткшному рантайму текстовые строки?

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

А как насчет миллионов вложенных друг в друга XML или JSON-элементов вместо структур? Мне почему-то кажется, что даже миллион (в прямом смысле) вложенных друг в друга структур будут работать на обычном ПК, а вот чтобы работать с таким же тяжелым XML/JSON понадобится суперкомпьютер.

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

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

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

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

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

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

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

и всё же я не думаю что будет какой то заметный оверхед если ты заюзаешь для этой цели css поддерживаемый в gtk. если не веришь проведи benchmarkи.

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

Меня бесит, что для задавания рамочек надо не подать структуру на вход функции, а делать создавалку для текста типа

border: 1px solid red

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

Кстати, мне не нужен red и прочие человекочитаемые названия, нужно иметь возможность задать любой цвет. Как?

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

Кстати, мне не нужен red и прочие человекочитаемые названия, нужно иметь возможность задать любой цвет. Как?

Прочитать о CSS? Просто загугли «CSS цвета».

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

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

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

Можешь посмотреть как gtkcssprovider устроен, я других способов низнаю. Ну или сам рисовать обводку...

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

Thunderbird, если что, тоже на браузерном движке построен. Ибо удобнее, блин. И пользоваться, и поддерживать. И i7 для него при этом не нужен (как и для GMail, впрочем).

А протоколы и так открытые, какие проблемы? Просто с настоящими нищебродами вроде ТС, илюхи16 и скотечки, которые пользуются шиндовсами и «охвесами» 15-летней давности, серьёзные разработчики считаются всё меньше. И почитайте посты этих троих, поймёте, о чём я. Можно сколько угодно грозить геноцидом (кстати, типичное пересечение вышеуказанных пунктов 2 и 3), считать себя какой-то илиткой и «андеграундом» (не имея о настоящем андеграунде никакого представления), перекладывать с больной головы на здоровую, но без адаптации к существующей реальности невозможно даже встать на путь её изменения под себя. Наблюдая за всеми этими заблудшими лор-овцами, я пришёл к выводу, что ригидность — их главный бич. И пока они от этого бича не избавятся, сами бичами и останутся. Не материально, так ментально. Адаптируйся или исчезни. Закон природы, чо.

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

Прямо обращаться к структуре, отвечающей за свойства стиля объекта, быстрее и удобнее

Едрить, неужели ты наконец понял, что такое DOM, и в частности CSSOM? А не то, что ты там блеял про говнопарсеры.

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

шиндовсами и «охвесами»

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

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

К чему адаптироваться? К тому, что текстовые редакторы жрут по гигабайту или винде, полной зондов? Я адаптировался: ушел на Линукс, но даже тут не все хорошо, взять то же CSS в гтк.

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

Там вроде те же чертовы приватные поля методы, не дающие мне оперировать внутренностями структур. Или нет?

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

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

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

Большинство ЛОРовцев просто высказывают свои хотелки в грубой форме (касательно «как нам обустроить веб»). Ты и я хоть немного задумались о том как можно воплотить такие фантазии в реальность (у каждого свои фантазии).

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

А про почту - это пример, когда можно свободно пилить альтернативные реализации клиента и не бояться «палок в колёсах». Сколько сайтов - spa? У каждого есть свой rest api, но его закрывают от людей со стороны даже если не нашли дыр в безопасности.

Я думаю, что тема «как нам обустроить веб» исчерпала себя в этом треде про метапрог.

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

color: #ff000c

или

border: 1px solid #ff000c

Это hex значения цветов. Можно вбить в гугле «css colors picker» и вот выбираешь мышкой цвет и тебе показывают его hex, rgb... Это же есть в гимпе, крите и всех редакторов изображений.

Чтобы цвета были приятны глазу, а не ядовитые - выбирай цвета здесь. Опять же, при клике на цвет сразу копируется его код.

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

Кстати, мне не нужен red и прочие человекочитаемые названия, нужно иметь возможность задать любой цвет. Как?

Можно почитать стандарты, например:

border: solid 1px rgb(255, 255, 255)

И еще и преобразовывать число и цвет и вставлять в строку

λr.λg.λb.`rgb(${r}, ${g}, ${b})`, в чём проблема?

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

λr.λg.λb.`rgb(${r}, ${g}, ${b})`

Что за шаманское заклинание?

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

Ну знач только через CSS.

ушел на Линукс, но даже тут не все хорошо, взять то же CSS в гтк

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

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

А человека, не считающего нормальным ожирение программ в разы по сравнению с традиционными, ты в какую категорию определяешь? Или не считающего нормальным хранение своих данных непонятно где?.. Хотя...

Ко-ко-ко GNU головного мозга ко-ко-ко сектантов ко-ко-ко столлманомирке

Ой, всё. Вопросов больше не имею.

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

В детстве у родителей был комп с 32 мб оперативки. Игрушки тогдашние работали, браузеры, офисы, чаты (ирка) тоже и все в гуе на винде 98. Ладно, игрушки, допустим, выросли и глупо от такого раритета ожидать запуска гта 5. Но почему бы ему не тянуть веб и офис с таким же успехом как тогда?

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

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

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

Винда 9х уже 32-битная

Не совсем!

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

К чему адаптироваться?

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

К тому, что текстовые редакторы жрут по гигабайту

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

но даже тут не все хорошо, взять то же CSS в гтк.

Это не хорошо, это офигительно. Вместо изобретения костыльных велосипедов взяли наконец более-менее известный и устаканившийся формат стилизации. Давно пора было так сделать и не кормить NIH-демона лишний раз.

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

К тому, что гигабайт памяти — это сейчас вообще не объём

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

Ну и да, за своим вимом 8.1 я такого не замечал

Ну vim просто тормозит, лол.

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

Ну если у тебя тормозит даже вим

Я его не запускаю, так что не тормозит.

а отстал точно не я

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

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

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

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

Смотри какая беда. Сделай с этим кодом

https://pastebin.com/q2Mfjfyi

вот что:

gcc -E ./callbacks.h -o callbacks.c $(pkg-config --cflags --libs gtk+-3.0)
castxml --castxml-output=1 -o ./callbacks.xml ./callbacks.c

Мне на стадии castxml выдает вот что:

./callbacks.h:127:16: error: unknown type name 'CairoContext'; did you mean
      'PangoContext'?
               CairoContext *cr,

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

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

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

А свобода в современном мире, вопреки расхожим верованиям ГНУсных фанатиков, на самом деле заключается разве что в невозможности быть пойманным. В способности в любой момент отвязаться от этих самых хранящихся непонятно где данных и появиться в новой ипостаси, поскольку добрые дела сейчас можно творить исключительно анонимно. И то, что фанатики считают абсолютным злом, по факту можно обернуть себе на пользу. Главное — иметь цель и мотивацию. Без них легко скатиться до уровня здешних клоунов. Так что прежде чем петь припев из известного творения Кипелова, следует самому себе задать не менее известный вопрос из «Заратустры»: свободен для чего? Когда ответ на этот вопрос будет чётко известен, может, и моя позиция для тебя тоже прояснится. Дерзай.

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

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

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

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

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