• Записи 1571
  • Теги 117
  • Комментарии 3341

Лог жизни

Узнал про Zulip

Позавчера, сидя на Идеалистах и листая ленту Fediverse, узнал о существовании такого проекта как Zulip. Решил узнать поподробнее, что это такое. И в очередной раз оказалось, что всё уже придумано для нас! Zulip изначально позиционируется как open source аналог Slack. Но в нём реализованы мои идеи мобильного сообщества как сочетания realtime-общения и асинхронного общения в одном месте! Что-то вроде self-hosted стены ВК или канала в Telegram, только ещё с поддержкой деления на разделы (там их называют каналами) и темы, как на форуме . Хотя, на мой взгляд, то, как это деление там устроено, несколько перегружает интерфейс. К тому же я предполагал мобильное сообщество сбалансированным в плане пользователь-центричности (user centrinc) и темо-центричности (topc centric), тогда как Zulip — это типичное темо-центричное сообщество. Там даже отдельной страницы профиля пользователя нет, только карточка, которая показывается при наведении мыши с минимумом информации: имя, аватар, статус в сообществе, и всё. Ни счётчика сообщений, ни поиска всего, написанного автором.
Но есть и недостатки. Во-первых, Zulip сделан на Django+PostreSQL, из-за чего будет весьма прожорлив в плане памяти. Во-вторых, использует client side rendering, и в принципе не будет работать с выключенным JavaScript. Хотя этим страдают многие проекты, сделанные после где-то 2012 года (Zulip появился в 2013), те же Mastodon и Akkoma, например. Но, справедливости ради, следует заметить, что интерфейс там достаточно быстрый и отзывчивый, а на любое сообщение или тему можно поставить внешнюю ссылку, как на полноценном форуме (но реализованы они в формате #/channtel/topic). Правда, не знаю, поддерживается ли возможность читать и писать сообщения в оффлайне. Для Web-версии поддержки PWA нет, но в то же время есть native apps для всех платформ (надеюсь, не на Electron написанные).
В общем, буду изучать Zulip дальше. Но, в любом случае, теперь количество возможных направлений жизни сократилось вообще до четырёх: блоггерство (и сюда же каталог бесплатного софта), инфобезопасность, написание TextCMS 2.0 на базе Preambula, участие в сторонних open source проектах (в первую очередь, HumHub, хотя кто знает, может и в Zulip вклад сделаю).

15 комментариев:

Показать еще 3 комментария
Нет
Гость
0
4X_Pro написал(а):
Можно сделать подгрузку готовых кусков HTML, да и всё


Можно. Но зачем, тем более в сеттинге "VDS для бедных"? Кэш страничек кушает память на сервере. Закэшировать куски чата вообще невозможно (ну если только там постят не 3.5 шиза раз в день).
4X_Pro
0

Вообще, у меня сеттинг скорее «мир для бедных», где бедный разработчик-одиночка, работая в условиях неполной занятости и будучи энтузиастом идей open source, в свободное от работы время пишет софт для таких же как он бедных пользователей со слабыми компьютерами или древними мобильниками, так как с потребностями таких пользователей корпорации не считаются ввиду низкой платёжеспособности. И в таких случаях дополнительная UI latency как раз таки, скорее всего, будет при использовании client side rendering (особенно на мобильниках), т.к. нужно, чтобы прогрузился и HTML-код, и CSS, и библиотеки типа React/Vue, и шаблоны/компоненты, и сами данные, и всё это отрендерилось на слабом процессоре, причём покрытие сотовой связи тоже может быть не очень. (Правда, тут сказывается, что я занимался всю жизнь не Web-приложениями, в которые заходят регулярно, а именно сайтами, поэтому приучен заниматься оптимизацией именно под «холодную» загрузку, когда в кеше ещё ничего нет. Возможно, при «горячей» прогрузке будет всё иначе.)
А вообще, я всегда считал, что CSR появился исключительно для того, чтобы можно было делать единую API для Web-интерфейса, мобильных приложений и CLI-инструментов.

Гость написал(а):
Но VPS-ки с бОльшим количеством памяти сейчас дешевые.

Ну смотря какую сумму считать приемлемой… Пробежался по тем хостингам, которые сходу вспомнил, цена получается от 1160 до 1500 руб./мес. И это при условии оплаты за год. Теоретически позволить можно, но идеологически — как-то неверно. Для сравнения, за этот VDS (с 1 Гб как раз) я плачу всего 300 руб/мес. Кстати, в те времена, когда я всё настраивал вручную, а не пользовался панелью управления сайтами, хватало вообще 512 Мб оперативки. Правда, тогда я почту здесь не держал, а пользовался Яндекс.Почтой.
Нет
Julia
0
4X_Pro написал(а):
И в таких случаях дополнительная UI latency как раз таки, скорее всего, будет при использовании client side rendering (особенно на мобильниках)


При использовании серверного рендеринга без оптимизаций вроде кэшей тоже, на самом деле. Но кэш в 0.5-1 ГБ особо не засунешь помимо бизнес-логики и всяких баз данных.

4X_Pro написал(а):
и библиотеки типа React/Vue


CSR можно делать без фреймворков.

Алсо отдавать статику + AJAX - это не серверный рендеринг. Серверный рендеринг - это когда буквально при каждом взаимодействии пользователя с сервисом перерендеривается страничка. От такого в чатах и всяких браузерных MMORPG отказались по разумным причинам.

4X_Pro написал(а):
единую API для Web-интерфейса


jQuery это сделал раньше, а потом и браузерный JavaScript подтянулся, а про Ослика забыли.

4X_Pro написал(а):
мобильных приложений


React Native появился намного позже React, который задумывался как раз для сценариев вроде кучи риал-тайм нотификаций.

4X_Pro написал(а):
CLI-инструментов


Node.js развивается параллельно Реакту и т.д.

Нет
Julia
0

4X_Pro написал(а):
древними мобильниками


Для таких существуют нативные приложения.
Нет
Julia
0
4X_Pro написал(а):
А вообще, я всегда считал, что CSR появился исключительно для того, чтобы можно было делать единую API для Web-интерфейса, мобильных приложений и CLI-инструментов.


Просто веб как бе изначально - это не про приложения, а чтобы любой Вася мог разместить свой дневничок и рекламку в глобальную сеть. Приложения туда подтянулись позже, когда у людей появился ADSL (микроэпоха PHP, Django монолитов), потом JS более-менее стандартизировали и появились менее жрущие траффик и более приятные в использовании приложения.
Нет
Гость
0

Нашел zulip и залип.
Нашел zalup и...

4X_Pro
0
Julia написал(а):
При использовании серверного рендеринга без оптимизаций вроде кэшей тоже, на самом деле. Но кэш в 0.5-1 ГБ особо не засунешь помимо бизнес-логики и всяких баз данных.

Всегда считал, что при посещаемости где-нибудь до 10000 пользователей/сутки (а у большинства частных сайтов на VDSах и такого нет) в серверном кешировании именно готовых страниц нужды особой нет. Только разве что держать результаты очень тяжёлых/сложных SQL-запросов в каком-нибудь Redis или Memcached.

Julia написал(а):
Просто веб как бе изначально - это не про приложения, а чтобы любой Вася мог разместить свой дневничок и рекламку в глобальную сеть. Приложения туда подтянулись позже, когда у людей появился ADSL (микроэпоха PHP, Django монолитов), потом JS более-менее стандартизировали и появились менее жрущие траффик и более приятные в использовании приложения.

Я в курсе… Я же застал времена Web 1.0. И очень жалею, что развитие технологий пошло так криво… Тем более, были ведь и нормальные альтернативы, типа Java-апплетов или JWS, на которых можно было бы писать именно полноценные приложения. Но увы, почему-то не прижились, а прижилась груда костылей по усложнению Webа и утяжелению броузеров.
Хотя и в наше время можно было бы сделать что-нибудь вроде sandbox с компилятором Go и кроссплатформенным UI-фреймворком (из того, что я знаю, лучше всего подошли бы wxWidgets по причине лёгкости и native looking). Проблема только в том, что в современных условиях протолкнуть новую технологию могут только крупные игроки типа Google или Microsoft, да и то с трудом…

Julia написал(а):
Серверный рендеринг - это когда буквально при каждом взаимодействии пользователя с сервисом перерендеривается страничка. От такого в чатах и всяких браузерных MMORPG отказались по разумным причинам.

Да это даже по моим меркам — перебор в большинстве случаев! Я-то под SSR понимал примерно следующее: при обычном запросе загружается полноценная страница с HTML-контентом (скажем, статья и 10 комментариев, если речь идёт о блоге или ленте Fediverse), а потом (скажем, при нажатии ссылки «ещё комментарии») догружается кусок HTML-кода с этими самыми комментариями, и вставляется в нужное место. А если поддержка JavaScript выключена, то происходит обновление страницы так, что показываются эти дополнительные комментарии, но не в виде просто куска кода, а вставленные в сайтовый шаблон.

Julia написал(а):
Для таких существуют нативные приложения.

К сожалению, не для всего они есть… Или формально может быть нативное, а если покопать, то окажется, что там внутри Electron какой-нибудь.
Нет
Гость
0
4X_Pro написал(а):
Тем более, были ведь и нормальные альтернативы, типа Java-апплетов


С очевидными дырами вроде XSS. И не то чтобы легковесные. Криво сделанные апплеты тормозили похуже самых говенно-оптимизированных Реакт-приложений.


4X_Pro написал(а):
а прижилась груда костылей по усложнению Webа и утяжелению броузеров


Какая груда костылей? DOM API вполне легко работает.


4X_Pro написал(а):
Хотя и в наше время можно было бы сделать что-нибудь вроде sandbox с компилятором Go и кроссплатформенным UI-фреймворком (из того, что я знаю, лучше всего подошли бы wxWidgets по причине лёгкости и native looking).


Основная проблема с внедрением нативных неJS технологий на веб-клиенте - сделать sandbox безопаснее чем у JS и настолько же совместимым с W3C стандартами как у JS (как работает тот же fetch).


4X_Pro написал(а):
Я-то под SSR понимал примерно следующее: при обычном запросе загружается полноценная страница с HTML-контентом (скажем, статья и 10 комментариев, если речь идёт о блоге или ленте Fediverse), а потом (скажем, при нажатии ссылки «ещё комментарии») догружается кусок HTML-кода с этими самыми комментариями, и вставляется в нужное место.


Так это уже не чат. Чат предполагает риал-таймовость или ее имитацию в виде перезагрузки фрейма.


4X_Pro написал(а):
К сожалению, не для всего они есть… Или формально может быть нативное, а если покопать, то окажется, что там внутри Electron какой-нибудь.


Тут смотря насколько древние мобилки. На мобилках из 2000х ты-то и обычную статичную HTML страничку с трудом покажешь. Для таких уже нужны нативные приложения.
Нет
Гость
0
4X_Pro написал(а):
Я в курсе… Я же застал времена Web 1.0. И очень жалею, что развитие технологий пошло так криво…


Ну да. Ну можно взять всё и переписать с другими технологиями. Только сможешь ли ты это сделать и что это даст по сравнению с тем что есть?
4X_Pro
0
Гость написал(а):
Так это уже не чат. Чат предполагает риал-таймовость или ее имитацию в виде перезагрузки фрейма.

Вообще, даже для чата можно было бы сделать либо циклическую подгрузку кусков кода с новыми сообщениями через AJAX, либо отправляя запрос примерно раз в 2 секунды, либо через «долгие соединения» с chunked-ответами.
Но я про другое. Про то, что CSR бездумно используется не только в чатах (там я бы ещё мог смириться), но и, скажем, в Akkoma и Mastodon (сервера Fediverse) или том же HumHub (движок сообщества), хотя там никакой реалтаймовости нет, равно как и вообще сколь-нибудь разумного обоснования применения CSR.

Гость написал(а):
Основная проблема с внедрением нативных неJS технологий на веб-клиенте - сделать sandbox безопаснее чем у JS и настолько же совместимым с W3C стандартами как у JS (как работает тот же fetch).

Вообще, тот же JWS просто использовался как точка входа — адрес, куда заходишь, а дальше запускается отдельное приложение на Java в отдельное окне (при этом скачивание и его самого и JRE, если нужно, делалось автоматически), с броузером уже не связанное, которое могло с Сетью взаимодействовать уже через свои библиотеки. Поэтому заморачиваться на тему совместимости необходимости нет необходимости.
Кстати, с удивлением узнал, что вместо JWS возник проект OpenWebStart, который, по сути дела, то же самое. Но увы, о нём даже знают единицы, не говоря уж об использовании… По-моему, для него даже пакета в основном репозитории Debian нет.

Гость написал(а):
Ну можно взять всё и переписать с другими технологиями. Только сможешь ли ты это сделать и что это даст по сравнению с тем что есть?

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

А что даст — броузеры перестанут выполнять несвойственную им роль среды выполнения приложений, а вернутся к тому, чему были изначально — станут инструментами просмотра информационных страниц. Как следствие — перестанут жрать память гигабайтами, и можно будет реже обновлять железо (а у меня всё к этому в итоге сводится). Собственно, если бы не броузер, я бы вообще, теоретически, мог бы сидеть на своём компьютере 2007 года покупки с Core 2 Duo и 3 Гб оперативки (если не играть в новые игры или играть через облако), потому что для остальных повседневных нужд 12-16 Гб оперативки просто не требуется.
Кстати, альтернативным вариантом могла бы быть стандартизация некоторого подмножества HTML для создания облегчённых страниц с наиболее типичными действиями (типа входа пользователя и написания комментариев) и облегчённый броузер для их просмотра. В идеале — вообще консольный, типа lynx/links. Что-то вроде того, что Яндекс пытался в технологии Турбо сделать (но и тут видел информацию, что Турбо-страницы по итогу решили закрыть).
Нет
Гость
0
4X_Pro написал(а):
Вообще, даже для чата можно было бы сделать либо циклическую подгрузку кусков кода с новыми сообщениями через AJAX, либо отправляя запрос примерно раз в 2 секунды


Ну это тоже CSR по сути.

4X_Pro написал(а):
Про то, что CSR бездумно используется не только в чатах


А там лучше чем без CSR и не сделаешь.

4X_Pro написал(а):
Akkoma и Mastodon (сервера Fediverse) или том же HumHub (движок сообщества), хотя там никакой реалтаймовости нет


Ну как. Соцсетки с нотификациями.

4X_Pro написал(а):
А что даст — броузеры перестанут выполнять несвойственную им роль среды выполнения приложений, а вернутся к тому, чему были изначально — станут инструментами просмотра информационных страниц.


А причем здесь это? Речь шла об альтернативах JS-у для клиентских приложений в браузере.

4X_Pro написал(а):
Как следствие — перестанут жрать память гигабайтами


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

4X_Pro написал(а):
и можно будет реже обновлять железо


Хз. Часто пользуюсь SaaS-ами через браузер на своём ноуте 2012ого года. Всё работает без тормозов и не жрет память сотнями мегабайт. И это удобнее, чем к примеру на каждый ответ в квизе загружать новую страничку, а потом сгорает ..опа от разрыва соединения и нужно всё заново проходить. CSR в этом плане нежнее. Но у меня стоит Линукс.

4X_Pro написал(а):
Собственно, если бы не броузер, я бы вообще, теоретически, мог бы сидеть на своём компьютере 2007 года покупки с Core 2 Duo и 3 Гб оперативки (если не играть в новые игры или играть через облако), потому что для остальных повседневных нужд 12-16 Гб оперативки просто не требуется.


Гигабайты оперативки сейчас стоят копейки даже для слоулайферов. Значительно дешевле, чем гигагерцы и ядра процессора. SaaS-ами либо не пользуются с мобильных устройств, либо делают облегченный вариант по функционалу и верстке. Вообще говоря мобилками слоулайфер вряд ли часто пользуется ввиду отсутствия потребности в частых путешествиях и FOMO.
4X_Pro
0
Гость написал(а):
Ну как. Соцсетки с нотификациями.

Ну для нотификации опять же можно просто повесить один JavaScript для проверки счётчика уведомлений, а не всё отдавать в JSON и на клиенте рендерить!

Гость написал(а):
Речь шла об альтернативах JS-у для клиентских приложений в браузере.

Я изначально смотрел шире: о том, что вернуться к desktop-ным приложениям, но адаптированным к современным условиям.

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

Ну вообще, всё Chromium-based жрёт память одинаково примерно (в своё время немало занимался замерами, пытаясь выяснить, можно ли найти что-то Chromium-based, что относилось бы к памяти экономнее). Сейчас вот открыл диспетчер задач на Vivaldi и вижу вот что: страница Идеалистов — 100 Мб, страница YouTube — 260 Мб, ВКонтакте — 790 Мб, Gmail — 307 Мб.

Гость написал(а):
Хз. Часто пользуюсь SaaS-ами через браузер на своём ноуте 2012ого года. Всё работает без тормозов и не жрет память сотнями мегабайт. И это удобнее, чем к примеру на каждый ответ в квизе загружать новую страничку, а потом сгорает ..опа от разрыва соединения и нужно всё заново проходить.

У меня ноутбук 2013 года, там тоже особых тормозов нет, после того, как оперативку до 12 Гб нарастил. А вот до этого (когда было 4 Гб, которые шли в изначальной поставке) иногда либо просто вкладки падали, либо вообще система висла. Впрочем, справедливости ради, тут проблема была не в броузере, а в Linux, в котором некорректно работает OOM killer при отсутствии swapа.
Гость написал(а):
Но у меня стоит Линукс.

У меня тоже. И на него перешёл как раз по двум причинам: меньше растут аппаратные требования (например, ставил Bodhi Linux даже на два древних ноутбука на даче 2003 и 2005 годов покупки просто для того, чтобы убедиться, что их хоть как-то можно ещё использовать), и крайне редко бывает принудительная смена интерфейса (в то время как в Windows это постоянно).
Написать комментарий
Прикрепить файлы: (не более 4 файлов, не более 102400 Кб каждый, 102400 Кб всего)


Задать вопрос