Представлен выпуск почтового клиента Geary 3.34, ориентированный на использование в окружении GNOME. Изначально проект был основан организацией Yorba Foundation, создавшей популярный менеджер фотографий Shotwell, но позднее разработка перешла в руки сообщества GNOME. Код написан на языке Vala и распространяется в рамках лицензии LGPL. Готовые сборки в ближайшее время будут подготовлены для Ubuntu (PPA) и в форме самодостаточного пакета flatpak...Подробнее: https://www.opennet.me/opennews/art.shtml?num=51533
>Целью развития проекта является создание богатого по возможностям продукта, но при этом предельно простого в использовании и потребляющего минимум ресурсов.
>Интерфейс реализован при помощи библиотеки GTK3+.Взаимоисключение.
Не электрон же :)
Ещё раз:
>богатого по возможностям
>GTK3+
> Ещё раз:
>>богатого по возможностям
>>GTK3+Тут уже не говнотк виноват, а HIG говногнома. Те же приложения MATE и то гораздо богаче по возможностям.
> Те же приложения MATE и то гораздо богаче по возможностям.А покажите богатый по возможностям аналог Evolution из Mate.
>> Те же приложения MATE и то гораздо богаче по возможностям.
> А покажите богатый по возможностям аналог Evolution из Mate.Они не делали почтовик, но есть богатый по возможностям Thunderbird, тоже на gtk3
>>> Те же приложения MATE и то гораздо богаче по возможностям.
>> А покажите богатый по возможностям аналог Evolution из Mate.
> Они не делали почтовик, но есть богатый по возможностям Thunderbird, тоже на
> gtk3А, я неправильно прочитал. Пардон.
Пилите, Шура, Geary, они золотые!
Гг, всяко не эволюшен.
Из того, что это GNOME, следует сломанный трей, или тут его отрезать еще не успели?
Просыпается как-то гном после обновления и говорит пользователю:— Слушай, я что-то трея не чувствую.
— А У ТЕБЯ ЕГО НЕТ!
Забавно. Я тоже писал свой новый фотоменеджер на GTK / Gnome.Никогда не пользуйтесь этим говном, никогда не пишите нативные (под Gnome) приложения.
Большая ошибка думать, что это фреймворк общего назначения для написания приложений. Он создан только и исключительно для написания системных приложений (Gnome Disk, Gnome Settings, ...). Он абсолютно не поддерживается, им на вас наплевать и потом вы столкнетесь с огромным количеством проблем, а вам скажут "Ну, у нас нет такого use case".
Более того, вы проведёте 2 месяца с профилировщиком, решая свою проблему. Напишите патчи для GTK, которые увеличивают производительность в 800 раз! Карл, в 800 раз!!! И они проходили все тесты.
А эти...откажутся эти патчи даже рассматривать! Потому что им это на х...не нужно. Им не нужно писать высокопроизводительные приложения с большим количеством элементов.
Поэтому все кто хэйтят Electron JS, что всё якобы медленно и жрёт много памяти - а вот нативное на C++/GTK это круто и быстро. А JavaScript-программисты - это тупые обезьяны, которые не потянули...
Ребята, вы просто не понимаете реальное положение вещей.
Товарищ, какие будут ваши доказательства?"Гюльчатай, открой личико!"(С)
Прокудин это ты тут инкогнито пописываешь?
Ну, у меня где-то сохранились естественно скриншоты профилировщика.Не думаю, что стоит тратить время чтобы их найти. Основная переписка с разработчиками велась в IRC, ибо только там до них достучаться.
Вот здесь, в переписке, есть скриншоты приложения (естественно прототипа) https://gitlab.gnome.org/GNOME/gtk/issues/1081
Вот квадратики - это thumbnail, куда должна грузиться превью изображения. Я хотел полностью отказаться от фоток, раскинутых по директориям (как сделано сейчас), и сделать поиск исключительно по метатегам и искусственному интеллекту (как Google Photos).
Оказалось, что это сраное говно, не умеет не то что грузить фотки. Оно даже не способно просто отрисовать 10 000 вот таких серых квадратиков (элементов / виджетов). Мне это нужно, чтобы сразу показать все потенциальные фотки (и не менять скролинг, а потом их реально подгружать). Они не могут, блять, отрисовать даже 1 000 таких элементов - это заняло 5 минут на мощном компьютере!
А где, собсно, ссылка на ишшью, где ты что-то там ускоряешь в 800 раз?> Оно даже не способно просто отрисовать 10 000 вот таких серых квадратиков (элементов / виджетов)
Еще в детстве, изучая борланд дельфи по какой-то там книжке, я узнал, что создавая свою реализацию сапёра, нужно таблицу с клетками рисовать самостоятельно, а не создавать плеяду полноценных TButton-ов. По твоему тексту не понятно, действительно ли ты создавал 10,000 полноценных Gtk-виджетов.
Да и зачем пытаться рисовать всё? Очевидно, что из этих 10,000 одновременно будут видны только некоторые; на твоем скрине так и вообще виднеются лишь 20 квадратов. Зачем рисовать все остальное? Ну сделай упреждающую загрузку, типа если пользователь скроллит вниз, то, предугадывая, загружаем следующие 20 картинок. И скролл при этом вполне можно оставить "реального" размера, как если бы реально скроллировались 10,000 картинок.
Да и почему бы просто не посмотреть, как сделано в аналогичных Gtk-шных программах? Я бы в первую очередь посмотрел, как это реализовано в gThumb. Идеальная программа состоит из нуля строчек кода, поэтому стремись к этому значению, максимально переиспользуя уже написанный кем-то код (в данном случае "виджет с превьюхами").
Я ещё ниже на комментарий ответил, у вас схожие вопросы.1. Я действительно создавал 10,000 полноценных Gtk-виджетов (компонентов)
2. Конечно же я посмотрел как сделано у других. Но какие "другие"? Только Gnome Nautilus и Shotwell. Так же и сделано.
3. Разве есть хоть какие-то приличные нетривиальные приложения на GTK? И которые не тормозят? Их нет.
4. Именно по этой причине Gnome Nautilus безбожно тормозит при открытии директории с большим количеством файлов (или при поиске). Или вы не замечали как он виснет на 30 секунд?
Это не хороший путь.
Хороший это создавать и отображать только то, что реально видно.
Это сложно но и более правильно.Классический пример в венде это ListView.
Можно попробовать туда загрузить лог файл целиком, но теже 10к вызовов AddListItem займут кучу времени, а можно поставить хук чтобы он сам запрашивать содержимое нужного элемента по индексу и установить только количество элементов. Тогда получается мгновенная загрузка лог файла хоть на 1м записей и моментальный скролл.
Это самый правильный путь, чтобы не только начать, но и дописать приложение в реальном мире. Взять готовые компоненты, которые должны иметь такую поддержку. И, кажется, эта возможность есть везде. Например в React Native - FlatList. В Android тоже есть.В GTK такой поддержки нет. Тогда хотя бы рендериться компоненты должны быстро - этого тоже нет.
Мне, фактически, предложили написать свой https://gitlab.gnome.org/GNOME/gtk/blob/master/gtk/gtkflowbox.c.
Серьезно? Т.е. взять - и отложить разработку на пару месяцев, пока я буду писать (и разбираться) свой компонент?
Который во всю использует внутренности вроде Cairo / GSK. Они сами пилят свой компонент уже 6 лет!Конечно нет. Я возьму классный Electron JS, поиском найду нужный компонент за 15 секунд http://shama.github.io/view-list/ и мои пользователи получать офигенно быстрое классное решение. А за эти несколько месяцев я наклепаю кучу функционала, который они ждут.
issue нет. Я с ними переписывался в IRC. Вот ссылки на скриншоты профилировщика.
https://drive.google.com/open?id=16ccqcSSdr4p1LYmItqThAOjtEo...
Вот ссылка на ветку кода https://github.com/likern/gtk-patched/commits/custom-flowbox
>Оно даже не способно просто отрисовать 10 000 вот таких серых квадратиков (элементов / виджетов)Пихать 10000 полноценных виджетов на одну форму? Мне кажется, это крайне сомнительный подход. Подозреваю, что проблемы тут будут не только и даже не столько в UI-библиотеке, сколько в оконной системе. Не знаю насчет иксов, а на винде есть действующий даже на уровне голого WinAPI лимит всех USER-объектов, включая окна, меню, элементы управления (виджеты), хоткеи и т.п., и по умолчанию он равен 10000 штук на процесс. И 65536 на сессию.
Вероятнее всего, именно по этой причине разработчики GTK не очень-то беспокоятся по поводу работоспособности приложений с 10000 виджетов на форме. Кроссплатформенным такой подход точно не будет.
Здесь надо либо уходить на библиотеки, которые используют windowless виджеты (т.е. грубо говоря, сами занимаются их рендерингом и обработкой событий - насколько я понимаю, это WPF на .net, QML на Qt, либо электрон), либо конкретно для этого окна отрисовывать и обрабатывать события самому.
Сначала пишется прототип, а уже потом оптимизируется. Иначе так можно никогда приложение и не написать.Всё верно. Никто и не собирался по-настоящему их отрисовывать. Я взял стандартный, базовый элемент - контейнер https://developer.gnome.org/gtk3/stable/GtkFlowBox.html. Естественно я рассчитывал что он умеет это делать, ведь это базовая потребность. И альтернатив этому контейнеру нет.
И оказалось что он этого делать не умеет! И никаких обходных путей! И добавлять эту поддержку они не собираются. Хочешь частично отрисовывать - пиши свой (!) GtkFlowBox (который на 5 000 кода, это очень низкоуровневый базовый элемент).
Кстати, в Gnome Nautilus ( файловый менеджер) они используют именно этот GtkFlowBox. И именно поэтому всё начинает безбожно тормозить, когда открываешь директорию с большим количеством файлов или делаешь поиск.
Я начал разбираться - нашёл профилировщиком функцию, которая отжирает время (внутри GTK). А я использовал их стандартные виджеты. Я им говорю - что делать? А они мне - пиши свой низкоуровневый виджет на С, который заменяет их базовый (!) стандартный.Так их стандартный сраный виджет - это 5 000 строчек низкоуровнего забористого С, который дёргает Cairo / Pango и это уже очень advanced level. Как такое писать знает ОЧЕНЬ мало человек - фактически разработчики GTK только. Свой виджет они писали 5 лет!
Конечно, заниматься этим я не собирался.Разобрался что это за функция - оказалось, тарам-там-там (!!!), у них есть свой криво-написанный CSS джижок (очень маленькое подмножество), только стилизует не HTML (div, a, IMG), а их виджеты (как раз на фотках тени, скругления и т.п.).
И вот у них там квадратичный алгоритм (!) добавления элементов в этом движке. После 100 элементов уже начинает тормозить.
Я переписал на O(N*log N) - стало в 800 раз быстрее. 100 000 элементов отрисовывал за 0.1 секунду кажется.
Ссылку на патч, пожалуйста.
Вы правда думаете, что я полезу искать эти никому ненужные наработки только чтобы доказать что-то на форуме с 1.5 калеки?Если бы от этого что-то изменилось, я бы потратил время и нашёл этот патч.
Я с ними общался напрямую в IRC. ISSUES месяцами висят. Патч они даже не стали смотреть. Поэтому и до создания формального issue дело не дошло.
Потом главный разработчик этого CSS (кажется Matias Clasen) движка перестал отвечать на вопросы, чтобы помочь разобраться с их движком. Видимо, начал ревновать что я полез в их код.
Вы что, типа хотите уличить во лжи?))) Но тут столько подробностей, что проверить несложно.
Вот здесь https://gitlab.gnome.org/GNOME/gtk/blob/master/gtk/gtkcssnode.c
используется связный список.У вас 1000 элементов. Чтобы добавить элемент в середину, вы пробегаете (начиная с начала) половину списка. И так для всей 1000 элементов. Вот и квадратичный алгоритм.
А надо вместо связного списка https://developer.gnome.org/glib/stable/glib-Doubly-Linked-L... использовать дерево https://developer.gnome.org/glib/stable/glib-Balanced-Binary....
Вот именно это я и сделал.
Просто интересно.Я не шарю в асимптотическом анализе алгоритмов, но твой довод выглядит здорово.
Кстати, ты реально думаешь, что рендеринг одновременно 10к item-ов - это хорошая идея? Я думаю именно из-за этого они и не стали отвечать, боясь получить ответ, заведомо стрёмный.
А вообще не разбираюсь в программировании на gtk, и было интересно тебя почитать.
Я выше написал комментарии по отрисовку 10к элементов. Почитай, будет интересно)По производительности: отрисовка и 10к, и 100к, и даже 1млн на чистом С - это копеечные операции. Ну секунду, ну максимум 10 секунд должно занимать.
Более того, я всех деталей не помню. Но! кажется я предложил им добавить такую поддержку (отрисовку только того, что видно на экране) в GtkFlowBox, притом я сам готов был это сделать, т.к. для меня это был блокер. И...они отказались)))
Лезть в CSS движок - это крайняя мера, от безысходности. Я потратил уже 3 месяца на разработку. И боролся за проект до последнего. Но такое наплевательское отношение во всём. Я же там столкнулся ещё с десятком проблем. Например, они даже не умеют изменять размер виджетов - слайдера.По поводу правильно ли это: вообще, сначала пишется приложение, его каркас. Ведь это всё время и деньги. Я не могу заниматься такими мелочами в самом начале. А уже потом идёт более детальная оптимизация.
Я ведь не вручную отрисовываю эти элементы. Я кладу их в абстрактный контейнер, который отвечает за отрисовку https://developer.gnome.org/gtk3/stable/GtkFlowBox.html.
И рендерить только то, что попадает на экран - это оптимизация, её можно написать потом, попозже. Более того, это должен поддерживать стандартный GtkFlowBox - это абсолютно базовая и критичная функциональность. С ней столкнется любой, кто отрисовывает длинный список / дерево.
В React Native есть FlatList который рендерит только то, что попадает на экран. И это идёт из коробки.
> По производительности: отрисовка и 10к, и 100к, и даже 1млн на чистом С - это копеечные операции. Ну секунду, ну максимум 10 секунд должно занимать.Грубая неправда. Как я понимаю, даже код на С использует API библиотек, которые рисуют эти 100500 элементов. И эта библиотека не может, ни в каком случае, нарисовать столько элементов быстро.
> В React Native есть FlatList который рендерит только то, что попадает на экран. И это идёт из коробки.
chunking and lazy loading, так победим.
Если серьёзно - что за проект? Pet, за деньги?
Ну как не может? У меня смогла нарисовать, а у них не может? Вы тред читали?Отрисовка занимает очень мало время даже 100 000 элементов, даже миллиона. Библиотеки отрисовки (это Cairo) вообще этого не замечают. Проблема исключительно в GTK, в их CSS движке.
Свой проект, коммерческий (планировался). Фотоменеджер с искусственным интеллектом а-ля Google Photos.
Вот ссылки на скриншоты профилировщика.
https://drive.google.com/open?id=16ccqcSSdr4p1LYmItqThAOjtEo...Прошу прощения, я ошибся. Я улучшил производительность конкретного use-case не в 800 раз, а в 6750 раз - с 82 секунд до 0.012 секунд (функция gtk_box_update_child_css_position). А если бы эти клоуны мне помогли, то я бы улучшил и gtk_css_node_propogate_pending_changes.
И тогда бы общая производительность выросла бы в эти самые 6750 раз. С 333 секунд до 0.05 секунд для отрисовки 100 000 элементов.
И Gnome Nautilus тоже перестал бы тормозить =)))
Они серьезно для поиска и формирования набора стилей элемента используют связанный список? Это как-то... Странно! Маразматически странно, хотя алгоритм с деревом среднестатистического разработчика поставит на некоторое время в тупик, но это же основа, которой пользуются сотни тысячи человек. Теперь понятно, в чем основная проблема этого тулкита -- неграмотные люди у руля, понятно, почему шапка продалась...
Я сам был шокирован. Как это возможно, им же пользуются сотни тысяч людей?И люди-то неглупые. Никто в мире не напишет сразу оптимальный CSS движок. И я написал бы не лучше с первого раза. Я думаю большинство его вообще не сможет написать.
Короче, очень токсичное сообщество. Худшее, что я встречал.
И создали они HTML5, только очень плохой ;) Тот же CSS. UI описывается через XML:) Код логики пишется через биндинги на JavaScript или Python
Маразматически - что им это написали, объяснили почему алгоритм квадратичный. Написали патч (потратив кучу времени). Проверили профилировщиком до и после для доказательства.А они...просто блин в чате мне перестали отвечать)) Поднадоел я им, наверное. Вот это трэш)
https://github.com/likern/gtk-patched/tree/custom-flowbox
Радостный написал им в IRC. Ноль реакции. Приложил скриншоты профилировщика - ноль реакции.В итоге я понял, что выкинул 2 месяца своей жизни на GTK зря. Им это было не нужно, не интересно. Никто не собирался смотреть патчи, даже не поинтересовались.
Они просто сказали - сорян, чувак. У нас все приложения (которые они пишут, все базовые утилиты Gnome пилятся чуваками из Red Hat / Ubuntu) максимум содержат 100 виджетов.
А то, что это абсолютно критично для тех, кто пишет приложения на их говняном GTK - это им похер. GTK ТОЛЬКО для внутренней разработки.
Столкнетесь с блокирующей проблемой - и никто не будет её фиксить, и даже. (!!!) принимать патчи с исправлениями!
Ну я понял, что занимаюсь какой-то хернёй. Ведь на Electron JS я бы написал всё бы давно, а не сидел профилируя и отлаживая GTK (а для этого надо фактически стать вровень с разработчиками GTK, и научиться отлаживать сам GTK).Просто я хотел именно настоящее нативное приложение под Linux.
Поэтому линуксойды - вы должны на Electron JS молиться. Это ваш (и мой) единственный шанс получить нормальные, приличные качественные приложения под Linux (как часть кросс-платформенности). А проблемам с тем, что он много жрёт памяти - техническая и дело не в качестве приложений. Как только станет больше таких приложений - её пофиксят. И всё будет летать.
GTK мертв. Нативная разработка под Linux абсолютно мертва. C++/Qt практически умер. Как в целом Desktop разработка.
Забористая история. И, если верить тексту, написана продвинутым челом. Но есть одно НО. Логика где? Вывод связан с текстом не больше чем асфальт с зимним солнцестоянием. Ущербность gtk-тима не делает скриптовые поделки лучше чем они есть. Вот ни разу.
Вывод:1. Внутри GTK те же самые технологии что и в HTML. CSS движок для стилизации и дерево элементов. (В QT с QML тоже).
2. С ресурсами GTK они уже безнадежно отстали по всем фронтам. Это всё стагнирует. А значит в целом нативная разработка под Gnome мертва.
3. Шаг влево, шаг вправо от Hello World - и всё работает очень плохо и медленно. Гораздо хуже связки HTML / JS. В отличие от пропаганды на форумах.
4. Написать программу требует просто невероятных усилий на борьбу со всем и вся. Это очень медленно. А значит приложений с богатым функционалом не появится.
5. Никто не пишет на чистом GTK. Всё используют либо Python, либо JavaScript обвязки ;)) Те под Linux нативной разработки в привычном понимании слова уже нет, от слова совсем. И Gnome Shell написан на JavaScript.
6. JavaScript невероятно быстрый интерпретируемый язык. И это лишь язык, его можно скомпилировать в бинарный формат. https://hermesengine.dev/.
7. В оптимизацию JavaScript и HTML вложено столько сил и средств! И дальше будет только лучше с WebGPU https://gpuweb.github.io/gpuweb/ и BinaryAST
https://github.com/tc39/proposal-binary-ast.8. Проблема с Electron только в потреблении памяти. Сам по себе он очень быстрый.
9. Проблема с памятью решается легко - не тащить с каждым приложением свой Chrome, а использовать системный движок.
https://medium.com/dailyjs/put-your-electron-app-on-a-diet-w...
https://github.com/pojala/electrino
Сейчас я пишу на JavaScript. И самая передовая разработка и самые большие инновации происходят именно среди JavaScript / Web разработчиков.Они, по ощущениям, в целом сильнее как программисты. Более открыты к передовому опыту.
Например, они вовсю используют SVG графику. А в Android и iOS до сих пор пихают растровые картинки.
Ну про GTK понятно, а с Qt что не так?
С ним я не работал. В целом разработка desktop приложений стагнирует и потихонечку умирает . Всё ушло в Web / Mobile.
На qt не звезди, с ним всё нормально.
Вот ссылка на ветку с изменениями - https://github.com/likern/gtk-patched/commits/custom-flowbox.
Пожалуй присоединюсь.
Но в отношении всего что делает GNOME.У меня все боли в основном из за glib (2.30+ и ныне уже 2.64).
1. Убитый в ноль файловый монитор под FreeBSD и другие BSD тоже.
Оно довольно долго вообще роняло приложения. Пол года это вообще было выключено и приходилось жать F5/refresh каждый раз чтобы увидеть что поменялось в тунаре или на рабочем столе.
Потом оно просто тупо выжирало проц в полку в приложениях активно это юзающих типа того же тунара, но и в других фм использующих его тоже.
В итоге я написал с нуля новый бэкенд монитора который ничего не жрёт, имеет всякие рейт лимиты, кеширование и прочие прелести и это не взяли в базу потому что:
- ты не протестировал это на всех БСД системах (а оно мне надо!?)
- надо спросить всех авторов кто туда коммитил согласныли они чтобы их говнокод выкинули - это ваще нечто а не отмаза, учитывая что они сами без проблем от туда куски выкидывают
- раздели свой патч на серию мелких патчей которые апгрейдят то что есть - как будто в этом есть смысл, это же новая реализация не имеющая кроме совместимого апи ничего общего совсем2. Дебильное поведение при создании нового процесса: либа идёт по всем возможным дескрипторам и пытается их закрыть или выставить CLOSEXEC. Вот у меня 260+ тыщ лимит для файлов на процесс и либа при попытке запустить какой то процесс через её апи делает 260+ тыщ сисколов, хотя реально там обычно хватило бы десятка, в самом тяжёлом случае который я видел у родительского процесса было 10к открытых реально файлов.
Всё потому что во фре нет fdwalk() (пока ещё нет, но в процессе).
Патч они пока тоже в либу не взяли, хотя вроде как претензий нет.
(но такая фигня не только в glib, но и в том же dbus, libgcrypt, gpgme, vte и где то ещё, в лучшем случае там скопипащен патч с fdwalk() от линуха и хотя бы линуксойдам полегче)3. Это касается и линухов.
В glib есть функции для работы с временем, как получение так и форматирование.
Так вот если ты не выставил переменную окружения TZ во что то магическое типа UTC+8 что не таймзона а статически вычисляемое значение то оно на каждый чих связанный с временем будет делать 5-6 сисколов чтобы открыть и прочитать файл таймзоны с диска и распарсить его.
Это эпически заметно даже по тормозам в файловых манагерах, а уж во всяких хайлоадах даже при записи в логфайлы может быть такая паразитная нагрузка.
Самое смешное что 8 лет назад там было нормальное кеширование для этого, но его выкинули и позже добавили кеширование которое вообще совсем не работает почти ни в каких случаях.
Притом выкинули вообще с какими то долбанутыми описаниями, если в комитмесадже было ещё хоть как то заметно какие то намёки на связанность мысли то в тикете вообще ничего. В комит месадже говорилось что /etc/localtime читается каждую секунду, но там же говорилось что это была проблема ихнего файлового монитора и они хотели это починить но за 8 лет не починили.
Может быть удастся впилить это обратно.
Но я чувствую они скажут: теперь оно не читает /etc/localtime а вдруг его юзер поменяет.
Но хотя бы для UTC там кеш точно без проблем будет.4. Несколько специфичный патч - чтобы можно было сбилдить под FreeBSD не из портов.
Тоже завернули.
Сказали писать в документацию воркароунды.
Написал отдельный пул регвест - пока тишина.
У меня очень стойкое ощущение что ребята просто пилят бабло.
Те они заворачивают чужие пулрегвесты а потом через пол годика и более сами делают тоже самое.
И они ломают что то и забывают об этом на годы и потом доблестно фиксят.
Ну и на фоне истории с наездом на Столмана это п***во выглядит ещё более плохо.
Если кому интересно - могу подкрепить всё написанное выше ссылками на пулрегвесты и багрепорты.Я вообще не понимаю как так получается что в этой долбаной либе которая везде используется активно такой корявый код.
Поэтому я начинаю боятся всего что связано с гномом, потому что там вроде везде одни и теже люди.
Может конечно я чего то не понимаю и сам дурак, но скажем когда я прихожу в xfce там очень дружественное отношение: за меня даже мои огромные патчи разбили на коммиты и сами закоммитили.
В FreeRDP тоже как то относительно просто зашёл OSS бэкенд и серия патчей мелких багов под фрю.
О боже! Сочувствую!))) Я верю и без патчей)Если бы они не врали, а так и сказали бы - это не фреймворк для разработки сторонних приложений, а внутренняя поделка чисто для своих. То и претензий бы не было.
Ну, тут несколько проблем.
1. Вся разработка ушла в Web / Mobile. Сейчас практически вообще ничего не разрабатывается на GTK. Либо системные приложения (которые, конечно нужны), либо всякие gThumb / Shotwell / ... это всё очень старые приложения, им очень много лет. И переписать их дорого. Вот и тянут старые GTK приложения.2. В GNOME ОЧЕНЬ МАЛО разработчиков. Я насчитал, что их всего где-то 20 человек на весь GNOME / GTK / GDK / GSK / GLIB.У них ни на что нет времени и ресурсов. И все они сидят на зарплате Red Hat / Canonical.
3. Именно из-за этого они очень боятся что-то поломать в своих приложениях. Т.е. они просто поддерживают полумертвый GNOME чтобы ничего в стандартных приложениях не ломалось.
4. Разработчиков на C, и уж тем более GUI на C - очень мало. Значит и нет никакого open source.
Да мне то что, я эти патчи всё равно поддерживаю и применяю у себя при сборке из портов, у меня всё хорошо :)Попробуй создать просто пулрегвест, думаю в чат никто особо не заглядывает, в багтрекере тоже ничего сильно не обсуждают и сразу гвоорят чтобы делал пул регвест.
Со списком проблем не согласен.
Ну, это моё видение. Оно может быть ошибочным =)Да какой смысл? Там всё решают ключевые разработчики. У них основной канал общения - IRC, они все там тусуются. Они всё в IRC прочитали и не по одному разу. В том числе автор CSS движка. Не нужно - значит не нужно)
Будем считать интересный опыт ))
Ну прочитали, малоли кто там ходит.
Иди заведи пулрегвест, когда завернут тогда и будешь рассказывать какие все плохие, а пока не считается.
Ссылка на скриншоты профилировщика https://drive.google.com/drive/folders/16ccqcSSdr4p1LYmItqTh...
https://gitlab.gnome.org/users/likern/activityА где пул регвест про фикс производительности?
Я выше отвечал. Я с ними переписывался в IRC. На issue они месяцами могут не реагировать. А мне нужно срочно - или проблема решается. Или я закрываю разработку из-за непреодолимых препятствий.Я думал так:
1. Напишу в IRC, приложу скриншоты до и после
2. Они обрадуются что кто-то сделал работу за них и бесплатно.
3. Подготовлю патч на основу feedback
4. Уже создам issue в том виде, в котором им нужноНаписал в IRC - ноль реакции. Приложил скриншоты профилировщика до и после - ноль реакции. Ещё писал - они вообще перестали отвечать.
Ну я же не идиот?) Потратить ещё время на создание / описание Issue, подготовку патча чтобы... получить всё тоже самое?
Поэтому я не стал тратить время впустую на никому, очевидно, не нужную Issue. Я и так был очень сильно демотивирован.И ещё момент. Я переписал CSS движок и убрал (улучшил в 800 раз) только одну функцию, которая отжирала время. Осталась ещё одна, что требовало менять CSS движок ещё сильнее. Но
1. Это на месяц работы. Нужно было одобрение GNOME разработчиков.
2. Я хотел получить консультацию у автора - были неочевидные моменты. Без него непонятно было как правило.
Те патч был полностью работоспособным и валидным. Но мою проблему на 100% не решал. Иначе бы я просто тянул бы свою пропатченную версию GTK.Но уже на этом этапе всё стало ясно по их реакции на патч (никакой). И я остановился.
Нашёл ветку и выложил на GitHub. Пусть будет для истории =)
https://github.com/likern/gtk-patched/commits/custom-flowboxЯ думаю эта ветка и сейчас должна заработать. Но гарантировать не могу.
Откройте для себя наконец Freepascal/Lazarus!
Все приложения на GTK - фактически уже мертвы. Их неминуемо ждём стагнация, медленная смерть и, в конце концов, забвение.
Кто пользуется, подскажите - умеет работать с Exchange без костылей? Как минимум по имени поискать, получателя автодополнением подставить, и т.д.
Кто пользуется, норм? Он легче thunderbird? Или кто что может посоветовать, чтобы легковесный и без лишней фигни. Спс.
> Кто пользуется, норм? Он легче thunderbird? Или кто что может посоветовать, чтобы
> легковесный и без лишней фигни. Спс.Чисто субъективно - легче.
Пакет в той же ubuntu тоже заметно меньше, чем тандербёрд.
Легковесный и без лишней фигни — это mutt.
Слишком без лишней фигни :)
> Изначально проект был основан организацией YOBA FoundationЯсно.
> GObject
Лишь бы не использовать C++.
> WYSIWYG редактор для создания сообщений с использованием разметки HTML (задействован webkitgtk),
Почтовые сервисы на маркдаун переходят, а тут html...
> Почтовые сервисы на маркдаун переходят, а тут html...Маркдаун - это то, что вместо WYSIWYG. А html - это внутренний формат отправляемого письма, там выбор только между plain text и html.
стесняюсь спросить,но вот интересно.
в линуксе есть почта для локальных пользователей
есть ли в природе простой графический почтовый клиент способный читать редактировать и удалять такую почту
без всевозможных дополнительных настроек различных прокладок, агентов и прочей мути, которая кроме раздражения позволяет усомниться в адекватности разрабов...
Ну ведь простой же вопрос как быстро и не проблематично читать
почту лок юсеров ...