The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск почтового клиента Geary 3.34"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск почтового клиента Geary 3.34"  +/
Сообщение от opennews (??), 22-Сен-19, 09:25 
Представлен выпуск почтового клиента Geary 3.34, ориентированный на использование в окружении GNOME. Изначально проект был основан организацией Yorba Foundation, создавшей популярный менеджер фотографий Shotwell, но позднее разработка перешла в руки сообщества GNOME. Код написан на языке Vala и распространяется в рамках лицензии LGPL. Готовые сборки в ближайшее время будут подготовлены для Ubuntu (PPA) и в форме самодостаточного пакета flatpak...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=51533

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Выпуск почтового клиента Geary 3.34"  –6 +/
Сообщение от Аноним (1), 22-Сен-19, 09:25 
>Целью развития проекта является создание богатого по возможностям продукта, но при этом предельно простого в использовании и потребляющего минимум ресурсов.
>Интерфейс реализован при помощи библиотеки GTK3+.

Взаимоисключение.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Выпуск почтового клиента Geary 3.34"  +6 +/
Сообщение от ilyafedinemail (ok), 22-Сен-19, 09:37 
Не электрон же :)
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (4), 22-Сен-19, 11:21 
Ещё раз:
>богатого по возможностям
>GTK3+
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

6. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от ilyafedinemail (ok), 22-Сен-19, 12:34 
> Ещё раз:
>>богатого по возможностям
>>GTK3+

Тут уже не говнотк виноват, а HIG говногнома. Те же приложения MATE и то гораздо богаче по возможностям.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

9. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Annoynymous (ok), 22-Сен-19, 13:35 
> Те же приложения MATE и то гораздо богаче по возможностям.

А покажите богатый по возможностям аналог Evolution из Mate.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

15. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от ilyafedinemail (ok), 22-Сен-19, 16:50 
>> Те же приложения MATE и то гораздо богаче по возможностям.
> А покажите богатый по возможностям аналог Evolution из Mate.

Они не делали почтовик, но есть богатый по возможностям Thunderbird, тоже на gtk3

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

29. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Annoynymous (ok), 23-Сен-19, 09:33 
>>> Те же приложения MATE и то гораздо богаче по возможностям.
>> А покажите богатый по возможностям аналог Evolution из Mate.
> Они не делали почтовик, но есть богатый по возможностям Thunderbird, тоже на
> gtk3

А, я неправильно прочитал. Пардон.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

3. "Выпуск почтового клиента Geary 3.34"  +7 +/
Сообщение от vantoo (ok), 22-Сен-19, 11:17 
Пилите, Шура, Geary, они золотые!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (5), 22-Сен-19, 12:15 
Гг, всяко не эволюшен.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от DerRoteBaron (ok), 22-Сен-19, 12:34 
Из того, что это GNOME, следует сломанный трей, или тут его отрезать еще не успели?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Выпуск почтового клиента Geary 3.34"  +9 +/
Сообщение от Annoynymous (ok), 22-Сен-19, 13:34 
Просыпается как-то гном после обновления и говорит пользователю:

— Слушай, я что-то трея не чувствую.
— А У ТЕБЯ ЕГО НЕТ!

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

10. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (10), 22-Сен-19, 14:21 
Забавно. Я тоже писал свой новый фотоменеджер на GTK / Gnome.

Никогда не пользуйтесь этим говном, никогда не пишите нативные (под Gnome) приложения.

Большая ошибка думать, что это фреймворк общего назначения для написания приложений. Он создан только и исключительно для написания системных приложений (Gnome Disk, Gnome Settings, ...). Он абсолютно не поддерживается, им на вас наплевать и потом вы столкнетесь с огромным количеством проблем, а вам скажут "Ну, у нас нет такого use case".

Более того, вы проведёте 2 месяца с профилировщиком, решая свою проблему. Напишите патчи для GTK, которые увеличивают производительность в 800 раз! Карл, в 800 раз!!! И они проходили все тесты.

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

Поэтому все кто хэйтят Electron JS, что всё якобы медленно и жрёт много памяти - а вот нативное на C++/GTK это круто и быстро. А JavaScript-программисты - это тупые обезьяны, которые не потянули...

Ребята, вы просто не понимаете реальное положение вещей.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Выпуск почтового клиента Geary 3.34"  –1 +/
Сообщение от Гномик (?), 22-Сен-19, 16:22 
Товарищ, какие будут ваши доказательства?

"Гюльчатай, открой личико!"(С)

Прокудин это ты тут инкогнито пописываешь?

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

18. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (10), 22-Сен-19, 22:12 
Ну, у меня где-то сохранились естественно скриншоты профилировщика.

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

Вот здесь, в переписке, есть скриншоты приложения (естественно прототипа) https://gitlab.gnome.org/GNOME/gtk/issues/1081

Вот квадратики - это thumbnail, куда должна грузиться превью изображения. Я хотел полностью отказаться от фоток, раскинутых по директориям (как сделано сейчас), и сделать поиск исключительно по метатегам и искусственному интеллекту (как Google Photos).

Оказалось, что это сраное говно, не умеет не то что грузить фотки. Оно даже не способно просто отрисовать 10 000 вот таких серых квадратиков (элементов / виджетов). Мне это нужно, чтобы сразу показать все потенциальные фотки (и не менять скролинг, а потом их реально подгружать). Они не могут, блять, отрисовать даже 1 000 таких элементов - это заняло 5 минут на мощном компьютере!

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

27. "Выпуск почтового клиента Geary 3.34"  +2 +/
Сообщение от Аноним (27), 23-Сен-19, 07:39 
А где, собсно, ссылка на ишшью, где ты что-то там ускоряешь в 800 раз?

> Оно даже не способно просто отрисовать 10 000 вот таких серых квадратиков (элементов / виджетов)

Еще в детстве, изучая борланд дельфи по какой-то там книжке, я узнал, что создавая свою реализацию сапёра, нужно таблицу с клетками рисовать самостоятельно, а не создавать плеяду полноценных TButton-ов. По твоему тексту не понятно, действительно ли ты создавал 10,000 полноценных Gtk-виджетов.

Да и зачем пытаться рисовать всё? Очевидно, что из этих 10,000 одновременно будут видны только некоторые; на твоем скрине так и вообще виднеются лишь 20 квадратов. Зачем рисовать все остальное? Ну сделай упреждающую загрузку, типа если пользователь скроллит вниз, то, предугадывая, загружаем следующие 20 картинок. И скролл при этом вполне можно оставить "реального" размера, как если бы реально скроллировались 10,000 картинок.

Да и почему бы просто не посмотреть, как сделано в аналогичных Gtk-шных программах? Я бы в первую очередь посмотрел, как это реализовано в gThumb. Идеальная программа состоит из нуля строчек кода, поэтому стремись к этому значению, максимально переиспользуя уже написанный кем-то код (в данном случае "виджет с превьюхами").

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

36. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (10), 23-Сен-19, 12:17 
Я ещё ниже на комментарий ответил, у вас схожие вопросы.

1. Я действительно создавал 10,000 полноценных Gtk-виджетов (компонентов)
2. Конечно же я посмотрел как сделано у других. Но какие "другие"? Только Gnome Nautilus и Shotwell. Так же и сделано.
3. Разве есть хоть какие-то приличные нетривиальные приложения на GTK? И которые не тормозят? Их нет.
4. Именно по этой причине Gnome Nautilus безбожно тормозит при открытии директории с большим количеством файлов (или при поиске). Или вы не замечали как он виснет на 30 секунд?

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

61. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Ivan_83 (ok), 24-Сен-19, 01:03 
Это не хороший путь.
Хороший это создавать и отображать только то, что реально видно.
Это сложно но и более правильно.

Классический пример в венде это ListView.
Можно попробовать туда загрузить лог файл целиком, но теже 10к вызовов AddListItem займут кучу времени, а можно поставить хук чтобы он сам запрашивать содержимое нужного элемента по индексу и установить только количество элементов. Тогда получается мгновенная загрузка лог файла хоть на 1м записей и моментальный скролл.

Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

65. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от VICTOR MALOVemail (?), 24-Сен-19, 04:38 
Это самый правильный путь, чтобы не только начать, но и дописать приложение в реальном мире. Взять готовые компоненты, которые должны иметь такую поддержку. И, кажется, эта возможность есть везде. Например в 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/ и мои пользователи получать офигенно быстрое классное решение. А за эти несколько месяцев я наклепаю кучу функционала, который они ждут.

Ответить | Правка | ^ к родителю #61 | Наверх | Cообщить модератору

54. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от VICTOR MALOVemail (?), 23-Сен-19, 17:23 
issue нет. Я с ними переписывался в IRC.  Вот ссылки на скриншоты профилировщика.
https://drive.google.com/open?id=16ccqcSSdr4p1LYmItqThAOjtEo...
Вот ссылка на ветку кода https://github.com/likern/gtk-patched/commits/custom-flowbox
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

33. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Школьник (ok), 23-Сен-19, 11:29 
>Оно даже не способно просто отрисовать 10 000 вот таких серых квадратиков (элементов / виджетов)

Пихать 10000 полноценных виджетов на одну форму? Мне кажется, это крайне сомнительный подход. Подозреваю, что проблемы тут будут не только и даже не столько в UI-библиотеке, сколько в оконной системе. Не знаю насчет иксов, а на винде есть действующий даже на уровне голого WinAPI лимит всех USER-объектов, включая окна, меню, элементы управления (виджеты), хоткеи и т.п., и по умолчанию он равен 10000 штук на процесс. И 65536 на сессию.

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

Здесь надо либо уходить на библиотеки, которые используют windowless виджеты (т.е. грубо говоря, сами занимаются их рендерингом и обработкой событий - насколько я понимаю, это WPF на .net, QML на Qt, либо электрон), либо конкретно для этого окна отрисовывать и обрабатывать события самому.

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

35. "Выпуск почтового клиента Geary 3.34"  +1 +/
Сообщение от Аноним (10), 23-Сен-19, 12:08 
Сначала пишется прототип, а уже потом оптимизируется. Иначе так можно никогда приложение и не написать.

Всё верно. Никто и не собирался по-настоящему их отрисовывать. Я  взял стандартный, базовый элемент - контейнер https://developer.gnome.org/gtk3/stable/GtkFlowBox.html. Естественно я рассчитывал что он умеет это делать, ведь это базовая потребность. И альтернатив этому контейнеру нет.

И оказалось что он этого делать не умеет! И никаких обходных путей! И добавлять эту поддержку они не собираются. Хочешь частично отрисовывать - пиши свой (!) GtkFlowBox (который на 5 000 кода, это очень низкоуровневый базовый элемент).

Кстати, в Gnome Nautilus ( файловый менеджер) они используют именно этот GtkFlowBox. И именно поэтому всё начинает безбожно тормозить, когда открываешь директорию с большим количеством файлов или делаешь поиск.

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

19. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (10), 22-Сен-19, 22:21 
Я начал разбираться - нашёл профилировщиком функцию, которая отжирает время (внутри GTK). А я использовал их стандартные виджеты. Я им говорю - что делать? А они мне - пиши свой низкоуровневый виджет на С, который заменяет их базовый (!) стандартный.

Так их стандартный сраный виджет - это 5 000 строчек низкоуровнего забористого С, который дёргает Cairo / Pango и это уже очень advanced level. Как такое писать знает ОЧЕНЬ мало человек - фактически разработчики GTK только. Свой виджет они писали 5 лет!

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

20. "Выпуск почтового клиента Geary 3.34"  +2 +/
Сообщение от Аноним (10), 22-Сен-19, 22:30 
Конечно, заниматься этим я не собирался.

Разобрался что это за функция - оказалось, тарам-там-там (!!!), у них есть свой криво-написанный CSS джижок (очень маленькое подмножество), только стилизует не HTML (div, a, IMG), а их виджеты (как раз на фотках тени, скругления и т.п.).

И вот у них там квадратичный алгоритм (!) добавления элементов в этом движке. После 100 элементов уже начинает тормозить.

Я переписал на O(N*log N) - стало в 800 раз быстрее. 100 000 элементов отрисовывал за 0.1 секунду кажется.

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

28. "ссылка"  +1 +/
Сообщение от big dick (?), 23-Сен-19, 08:17 
Ссылку на патч, пожалуйста.
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

31. "ссылка"  +2 +/
Сообщение от Аноним (10), 23-Сен-19, 11:01 
Вы правда думаете, что я полезу искать эти никому ненужные наработки только чтобы доказать что-то на форуме с 1.5 калеки?

Если бы от этого что-то изменилось, я бы потратил время и нашёл этот патч.

Я с ними общался напрямую в IRC. ISSUES месяцами висят. Патч они даже не стали смотреть. Поэтому и до создания формального issue дело не дошло.

Потом главный разработчик этого CSS (кажется Matias Clasen) движка перестал отвечать на вопросы, чтобы помочь разобраться с их движком. Видимо, начал ревновать что я полез в их код.

Вы что, типа хотите уличить во лжи?))) Но тут столько подробностей, что проверить несложно.

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

32. "ссылка"  +/
Сообщение от Аноним (10), 23-Сен-19, 11:12 
Вот здесь 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....
Вот именно это я и сделал.

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

38. "ссылка"  –1 +/
Сообщение от big dick (?), 23-Сен-19, 13:41 
Просто интересно.

Я не шарю в асимптотическом анализе алгоритмов, но твой довод выглядит здорово.

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

А вообще не разбираюсь в программировании на gtk, и было интересно тебя почитать.

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

40. "ссылка"  +/
Сообщение от Аноним (10), 23-Сен-19, 14:10 
Я выше написал комментарии по отрисовку 10к элементов. Почитай, будет интересно)

По производительности: отрисовка и 10к, и 100к, и даже 1млн на чистом С - это копеечные операции. Ну секунду, ну максимум 10 секунд должно занимать.

Более того, я всех деталей не помню. Но! кажется я предложил им добавить такую поддержку (отрисовку только того, что видно на экране) в GtkFlowBox, притом я сам готов был это сделать, т.к. для меня это был блокер. И...они отказались)))
Лезть в CSS движок - это крайняя мера, от безысходности. Я потратил уже 3 месяца на разработку. И боролся за проект до последнего. Но такое наплевательское отношение во всём. Я же там столкнулся ещё с десятком проблем. Например, они даже не умеют изменять размер виджетов - слайдера.

По поводу правильно ли это: вообще, сначала пишется приложение, его каркас. Ведь это всё время и деньги. Я не могу заниматься такими мелочами в самом начале. А уже потом идёт более детальная оптимизация.

Я ведь не вручную отрисовываю эти элементы. Я кладу их в абстрактный контейнер, который отвечает за отрисовку https://developer.gnome.org/gtk3/stable/GtkFlowBox.html.

И рендерить только то, что попадает на экран - это оптимизация, её можно написать потом, попозже. Более того, это должен поддерживать стандартный GtkFlowBox - это абсолютно базовая и критичная функциональность. С ней столкнется любой, кто отрисовывает длинный список / дерево.

В React Native есть FlatList который рендерит только то, что попадает на экран. И это идёт из коробки.

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

41. "ссылка"  +/
Сообщение от big dick (?), 23-Сен-19, 14:25 
> По производительности: отрисовка и 10к, и 100к, и даже 1млн на чистом С - это копеечные операции. Ну секунду, ну максимум 10 секунд должно занимать.

Грубая неправда. Как я понимаю, даже код на С использует API библиотек, которые рисуют эти 100500 элементов. И эта библиотека не может, ни в каком случае, нарисовать столько элементов быстро.

> В React Native есть FlatList который рендерит только то, что попадает на экран. И это идёт из коробки.

chunking and lazy loading, так победим.

Если серьёзно - что за проект? Pet, за деньги?

Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

42. "ссылка"  +1 +/
Сообщение от Аноним (10), 23-Сен-19, 14:48 
Ну как не может? У меня смогла нарисовать, а у них не может? Вы тред читали?

Отрисовка занимает очень мало время даже 100 000 элементов, даже миллиона. Библиотеки отрисовки (это Cairo) вообще этого не замечают. Проблема исключительно в GTK, в их CSS движке.

Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

43. "ссылка"  +1 +/
Сообщение от Аноним (10), 23-Сен-19, 14:51 
Свой проект, коммерческий (планировался). Фотоменеджер с искусственным интеллектом а-ля Google Photos.
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

53. "ссылка"  +/
Сообщение от VICTOR MALOVemail (?), 23-Сен-19, 17:21 
Вот ссылки на скриншоты профилировщика.
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 тоже перестал бы тормозить =)))

Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

58. "ссылка"  +/
Сообщение от Фанат ГТК (?), 23-Сен-19, 22:58 
Они серьезно для поиска и формирования набора стилей элемента используют связанный список? Это как-то... Странно! Маразматически странно, хотя алгоритм с деревом среднестатистического разработчика поставит на некоторое время в тупик, но это же основа, которой пользуются сотни тысячи человек. Теперь понятно, в чем основная проблема этого тулкита -- неграмотные люди у руля, понятно, почему шапка продалась...
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

59. "ссылка"  +/
Сообщение от Аноним (10), 24-Сен-19, 00:56 
Я сам был шокирован. Как это возможно, им же пользуются сотни тысяч людей?

И люди-то неглупые. Никто в мире не напишет сразу оптимальный CSS движок. И я написал бы не лучше с первого раза. Я думаю большинство его вообще не сможет написать.

Короче, очень токсичное сообщество. Худшее, что я встречал.

И создали они HTML5, только очень плохой ;) Тот же CSS. UI описывается через XML:) Код логики пишется через биндинги на JavaScript или Python

Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

60. "ссылка"  +/
Сообщение от Аноним (10), 24-Сен-19, 00:59 
Маразматически - что им это написали, объяснили почему алгоритм квадратичный. Написали патч (потратив кучу времени). Проверили профилировщиком до и после для доказательства.

А они...просто блин в чате мне перестали отвечать)) Поднадоел я им, наверное. Вот это трэш)

Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

57. "ссылка"  +/
Сообщение от VICTOR MALOVemail (?), 23-Сен-19, 17:33 
https://github.com/likern/gtk-patched/tree/custom-flowbox
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

22. "Выпуск почтового клиента Geary 3.34"  +3 +/
Сообщение от Аноним (10), 22-Сен-19, 22:38 
Радостный написал им в IRC. Ноль реакции. Приложил скриншоты профилировщика - ноль реакции.

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

Они просто сказали - сорян, чувак. У нас все приложения (которые они пишут, все базовые утилиты Gnome пилятся чуваками из Red Hat / Ubuntu) максимум содержат 100 виджетов.

А то, что это абсолютно критично для тех, кто пишет приложения на их говняном GTK - это им похер. GTK ТОЛЬКО для внутренней разработки.

Столкнетесь с блокирующей проблемой - и никто не будет её фиксить, и даже. (!!!) принимать патчи с исправлениями!

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

23. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (10), 22-Сен-19, 22:51 
Ну я понял, что занимаюсь какой-то хернёй. Ведь на Electron JS я бы написал всё бы давно, а не сидел профилируя и отлаживая GTK (а для этого надо фактически стать вровень с разработчиками GTK, и научиться отлаживать сам GTK).

Просто я хотел именно настоящее нативное приложение под Linux.

Поэтому линуксойды - вы должны на Electron JS молиться. Это ваш (и мой) единственный шанс получить нормальные, приличные качественные приложения под Linux (как часть кросс-платформенности). А проблемам с тем, что он много жрёт памяти - техническая и дело не в качестве приложений. Как только станет больше таких приложений - её пофиксят. И всё будет летать.


GTK мертв. Нативная разработка под Linux абсолютно мертва. C++/Qt практически умер. Как в целом Desktop разработка.

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

24. "Выпуск почтового клиента Geary 3.34"  +2 +/
Сообщение от улыбнуло (?), 23-Сен-19, 00:42 
Забористая история. И, если верить тексту, написана продвинутым челом. Но есть одно НО. Логика где? Вывод связан с текстом не больше чем асфальт с зимним солнцестоянием. Ущербность gtk-тима не делает скриптовые поделки лучше чем они есть. Вот ни разу.
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

34. "Выпуск почтового клиента Geary 3.34"  +1 +/
Сообщение от Аноним (10), 23-Сен-19, 11:52 
Вывод:

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

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

37. "Выпуск почтового клиента Geary 3.34"  –2 +/
Сообщение от Аноним (10), 23-Сен-19, 12:24 
Сейчас я пишу на JavaScript. И самая передовая разработка и самые большие инновации происходят именно среди JavaScript / Web разработчиков.

Они, по ощущениям, в целом сильнее как программисты. Более открыты к передовому опыту.

Например, они вовсю используют SVG графику. А в Android и iOS до сих пор пихают растровые картинки.

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

25. "Выпуск почтового клиента Geary 3.34"  +3 +/
Сообщение от Аноним (25), 23-Сен-19, 01:53 
Ну про GTK понятно, а с Qt что не так?
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

30. "Выпуск почтового клиента Geary 3.34"  –3 +/
Сообщение от Аноним (10), 23-Сен-19, 10:27 
С ним я не работал. В целом разработка desktop приложений стагнирует и потихонечку умирает  . Всё ушло в Web / Mobile.

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

26. "Выпуск почтового клиента Geary 3.34"  +2 +/
Сообщение от Аноним (26), 23-Сен-19, 05:49 
На qt не звезди, с ним всё нормально.
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

51. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от VICTOR MALOVemail (?), 23-Сен-19, 16:45 
Вот ссылка на ветку с изменениями - https://github.com/likern/gtk-patched/commits/custom-flowbox.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

45. "Выпуск почтового клиента Geary 3.34"  +1 +/
Сообщение от Ivan_83 (ok), 23-Сен-19, 15:10 
Пожалуй присоединюсь.
Но в отношении всего что делает 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 бэкенд и серия патчей мелких багов под фрю.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

47. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (10), 23-Сен-19, 15:50 
О боже! Сочувствую!))) Я верю и без патчей)

Если бы они не врали, а так и сказали бы - это не фреймворк для разработки сторонних приложений, а внутренняя поделка чисто для своих. То и претензий бы не было.

Ну, тут несколько проблем.

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.

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

62. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Ivan_83 (ok), 24-Сен-19, 01:08 
Да мне то что, я эти патчи всё равно поддерживаю и применяю у себя при сборке из портов, у меня всё хорошо :)

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

Со списком проблем не согласен.

Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

64. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от VICTOR MALOVemail (?), 24-Сен-19, 01:32 
Ну, это моё видение. Оно может быть ошибочным =)

Да какой смысл? Там всё решают ключевые разработчики. У них основной канал общения - IRC, они все там тусуются. Они всё в IRC прочитали и не по одному разу. В том числе автор CSS движка. Не нужно - значит не нужно)

Будем считать интересный опыт ))

Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

67. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Ivan_83 (ok), 24-Сен-19, 13:10 
Ну прочитали, малоли кто там ходит.
Иди заведи пулрегвест, когда завернут тогда и будешь рассказывать какие все плохие, а пока не считается.
Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

56. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от VICTOR MALOVemail (?), 23-Сен-19, 17:27 
Ссылка на скриншоты профилировщика https://drive.google.com/drive/folders/16ccqcSSdr4p1LYmItqTh...
Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

46. "Выпуск почтового клиента Geary 3.34"  +1 +/
Сообщение от Ivan_83 (ok), 23-Сен-19, 15:44 
https://gitlab.gnome.org/users/likern/activity

А где пул регвест про фикс производительности?

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

48. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (10), 23-Сен-19, 16:09 
Я выше отвечал. Я с ними переписывался в IRC. На issue они месяцами могут не реагировать. А мне нужно срочно - или проблема решается. Или я закрываю разработку из-за непреодолимых препятствий.

Я думал так:
1. Напишу в IRC, приложу скриншоты до и после
2. Они обрадуются что кто-то сделал работу за них и бесплатно.
3. Подготовлю патч на основу feedback
4. Уже создам issue в том виде, в котором им нужно

Написал в IRC - ноль реакции. Приложил скриншоты профилировщика до и после - ноль реакции. Ещё писал - они вообще перестали отвечать.
Ну я же не идиот?) Потратить ещё время на создание / описание Issue, подготовку патча чтобы... получить всё тоже самое?

Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

49. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (10), 23-Сен-19, 16:18 
Поэтому я не стал тратить время впустую на никому, очевидно, не нужную Issue. Я и так был очень сильно демотивирован.

И ещё момент. Я переписал CSS движок и убрал (улучшил в 800 раз) только одну функцию, которая отжирала время. Осталась ещё одна, что требовало менять CSS движок ещё сильнее. Но

1. Это на месяц работы. Нужно было одобрение GNOME разработчиков.

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

Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

50. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (10), 23-Сен-19, 16:21 
Те патч был полностью работоспособным и валидным. Но мою проблему на 100% не решал. Иначе бы я просто тянул бы свою пропатченную версию GTK.

Но уже на этом этапе всё стало ясно по их реакции на патч (никакой). И я остановился.

Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

52. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от VICTOR MALOVemail (?), 23-Сен-19, 16:46 
Нашёл ветку и выложил на GitHub. Пусть будет для истории =)
https://github.com/likern/gtk-patched/commits/custom-flowbox

Я думаю эта ветка и сейчас должна заработать. Но гарантировать не могу.

Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

68. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Anonimous (?), 24-Сен-19, 14:28 
Откройте для себя наконец Freepascal/Lazarus!
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

11. "Выпуск почтового клиента Geary 3.34"  –1 +/
Сообщение от Аноним (10), 22-Сен-19, 14:29 
Все приложения на GTK - фактически уже мертвы. Их неминуемо ждём стагнация, медленная смерть и, в конце концов, забвение.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

12. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (12), 22-Сен-19, 14:56 
Кто пользуется, подскажите - умеет работать с Exchange без костылей? Как минимум по имени поискать, получателя автодополнением подставить, и т.д.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от th3m3 (ok), 22-Сен-19, 16:40 
Кто пользуется, норм? Он легче thunderbird? Или кто что может посоветовать, чтобы легковесный и без лишней фигни. Спс.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

16. "Выпуск почтового клиента Geary 3.34"  +1 +/
Сообщение от macfaq (?), 22-Сен-19, 19:47 
> Кто пользуется, норм? Он легче thunderbird? Или кто что может посоветовать, чтобы
> легковесный и без лишней фигни. Спс.

Чисто субъективно - легче.
Пакет в той же ubuntu тоже заметно меньше, чем тандербёрд.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

39. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (39), 23-Сен-19, 14:03 
Легковесный и без лишней фигни — это mutt.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

44. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от th3m3 (ok), 23-Сен-19, 15:03 
Слишком без лишней фигни :)
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

21. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (21), 22-Сен-19, 22:37 
> Изначально проект был основан организацией YOBA Foundation

Ясно.

> GObject

Лишь бы не использовать C++.

> WYSIWYG редактор для создания сообщений с использованием разметки HTML (задействован webkitgtk),

Почтовые сервисы на маркдаун переходят, а тут html...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

55. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (55), 23-Сен-19, 17:27 
> Почтовые сервисы на маркдаун переходят, а тут html...

Маркдаун - это то, что вместо WYSIWYG. А html - это внутренний формат отправляемого письма, там выбор только между plain text и html.

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

66. "Выпуск почтового клиента Geary 3.34"  +/
Сообщение от Аноним (66), 24-Сен-19, 07:01 
стесняюсь спросить,но вот интересно.
в линуксе есть почта для локальных пользователей
есть ли в природе простой графический почтовый клиент способный читать редактировать и удалять такую почту
без всевозможных дополнительных настроек различных  прокладок, агентов и прочей мути, которая кроме раздражения позволяет усомниться в адекватности разрабов...
Ну ведь простой же вопрос как быстро и не проблематично читать
почту лок юсеров ...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру