Как стать автором
Обновить
3170.6
RUVDS.com
VDS/VPS-хостинг. Скидка 15% по коду HABR15

Айтишный дауншифтинг, стремление к минимализму и простоте

Время на прочтение9 мин
Количество просмотров37K
Astrobotany

Современные IT чрезвычайно сложные, если не сказать переусложнённые, по своему устройству. Особенно это касается web. Фреймворки, grpc, Python/Go/JS/TS/Web Assembly etc, HTML5, CSS, Docker, Kubernetes и далее в бесконечность. Плюс современные методологии разработки ПО, типа Agile и иже с ними, заставляют выкатывать продукты в прод как можно быстрее, да ещё и так чтобы продукт понравился пользователю (то есть это наличие всяческих bells & whistles, чтобы заманить пользователя и прочих «плюшек» которые красиво выглядят, но жрут ресурсы как не в себя). Большинство плюёт на оптимизацию и вполне нормальным считается когда веб страничка весит мегабайты. А браузеры, которые должны всё это отображать, являются самыми тяжёлыми приложениями в ОС.

Всё вышеописанное может быть не так заметно, точнее не так осознаваемо людьми далёкими от айти, но, как ни странно, это начало раздражать самих айтишников. Программистов, админов, девопсов, да и просто людей, для которых компьютеры, электроника это хобби. И в результате, особенно в последнее время, стали происходить странные, на первый взгляд, вещи. Айтишники начали уходить в «андеграунд». По крайней мере в своих личных проектах. Как?

Web. Чем меньше и проще, тем лучше!


512k.club
512k.club

▍512kb.club и 1mb.1club


Однажды бороздя просторы интернета, я наткнулся на интересный сайт: 512kb.club (который оказался самым, пожалуй, продвинутым из всех нижеперечисленных).

Вроде бы ничего особенного. Список сайтов, отсортированный по объёму, несжатых, данных, разбитый на три категории (по цветам), в зависимости от объёма:

  • Green Team — < 100kb
  • Orange Team — < 250kb
  • Blue Team — < 512kb

Но это не просто такой челлендж, это идеология:
The internet has become a bloated mess. Massive JavaScript libraries, countless client-side queries and overly complex frontend frameworks are par for the course these days.

When online newspapers like The Guardian are over 4MB in size, you know there’s a problem. Why does an online newspaper need to be over 4MB in size? It’s crazy.

But we can make a difference — all it takes is some optimisation. Do you really need that extra piece of JavaScript? Does your WordPress site need a theme that adds lots of functionality you’re never going to use? Are those huge custom fonts really needed? Are your images optimised for the web?
The 512KB Club is a collection of performance-focused web pages from across the Internet. To qualify your website must satisfy both of the following requirements: It must be an actual site that contains a reasonable amount of information, not just a couple of links on a page (more info here).

Your total UNCOMPRESSED web resources must not exceed 512KB.
Да. Все сайты из этого списка, которые я успел посмотреть, открываются практически моментально, даже на, относительно, старом железе. CSS и JS, хоть и не везде, используются, но не агрессивно.

Основное содержание таких сайтов, это персональные страницы и блоги. Ещё есть сообщества программистов, домашние странички проектов и даже временный файлшаринг, файлы на который можно нужно заливать curl-ом из консоли…

Но разумеется это не единственное такое сообщество. Одним из последних, на который я натолкнулся, был 1mb.club, на котором тоже существует разделение по размерам страниц, но уже без «цветовой дифференциации штанов». Похожий манифест про «The internet has become a bloated mess.» и который примечателен тем что в его списках много сайтов известных проектов:


… и многие другие.

Ну это были всё цветочки. «Минимализация» веба на этом не заканчивается…

▍250kb.club, 10kb.club… 1024.club


Вообще мне, как человеку немножко связанному с демосценой градации по размеру страницы напоминают конкурсы на демопати (640kb demo, 512b intro etc). В стремлении сделать сайт как можно меньше пределов нет. Как и у демосценеров… Итак поехали в сторону уменьшения…

  • 250kb.club В этот список попадают сайты, размер которых, в сжатом виде, не превышает 256kb. Ничего особенного, всё те же персональные странички, вперемешку с блогами, но при этом умудряющиеся, несмотря на ограничения, выглядеть вполне прилично.
  • 10kb.club Меньше? Ещё меньше? Да, для настоящих гуру web-a нет преград. И даже в рамки 10 килобайт, можно вместить вполне приличные сайты (да, да, это даже какой-то хостинг для страничек — визиток).
  • Хардкор. Помещаемся в 1 килобайт! 1024.club В этом списке «хардкорщиков», всего пятеро участников. Не каждый сможет заставить себя дауншифтить до такой степени, но даже в таких объёмах, можно делать красиво, а не на голом HTML.

Но это была лишь одна сторона хардкора. Другая сторона, это ограничение по используемым технологиям. К этой стороне мы и идём…

1kb RULEZ!
1kb RULEZ!

▍XHTML.club и NoCSS.club (+bonus)


Этот завершающий раздел, про web, будет совсем кратким. Мы и так задержались на современных технологиях. Поэтому скорее переходим! Никакого JavaScript! Никакого CSS (ну почти)! Только web изначальный! Такой, каким он был тогда, когда его изобрёл Сэр Тим Бернерс Ли!

Два сильно похожих клуба, один побольше (c более мягкими правилами), другой совсем маленький (там вообще ничего нельзя), но по сравнению с гонкой за размер, здесь совсем мало участников.

14 в одном и шестеро в другом. Но даже в этих списках, есть известный, в узких кругах, сайт проекта libreboot, а во втором списке домашняя/мемориальная страница Денниса Ритчи.

И бонусом у нас будут отрицатели JS. И их довольно много, ибо они могут использовать CSS, в полный рост и не ограничены размерами. Итак, в списке NoJS.club, в числе прочего, были обнаружены… Хомяк PostmarketOS и GNU.org, что совершенно неудивительно, учитывая отношение Столлмана к JavaScript. ;-) Ну а так всё как и в предыдущих частях. Блоги, домашние странички, сообщества.

Ну это всё конечно хорошо, но пора переходить ко второй части, где будет куда как интереснее. Ибо во второй части мы выберемся за пределы обычного Web. И, как говорят нетсталкеры, вступим на дорогу по неизведанным просторам DeepWEB (не путать с DarkWEB!)…

Очень старые, старые и новые технологии… Но почти как старые.


IT технологии, сейчас, развиваются семимильными шагами. И то что было актуальным ещё вчера, становится никому не нужным уже сегодня. Мы не берём в расчёт кровавый энтерпрайз и кровавое легаси (там своя атмосфера, тёплых, почти ламповых, мейнфреймов), но в интернете очень мало протоколов долгожителей. Самые живучие, родившиеся ещё в 80-х, пожалуй, это SMTP, POP3, DNS, чуть менее живучие IRC и NNTP Но есть и казалось-бы протоколы которые давным давно должны были умереть, с приходом HTTP(S), но нет. Они не только не умерли, но ещё и родили идейных продолжателей. Причём произошло это в последние 2,5 года! О них и поговорим.

▍Забытый Finger, родом из 70-х


Как говорит нам Википедия, первая реализация протокола finger была представлена аж в 1971-м(sic!) году. То есть ещё до появления TCP/IP!

В современных реалиях этот простой, текстовый, протокол не является безопасным. Но что если его используют айтишники, на собственных мощностях, которые понимают на какой риск они идут. Что если fingerd, будет светить только одного пользователя — владельца ресурса, который всё равно ходит туда по SSH, авторизуясь по ключу, а то и вовсе через VPN? Правильно! Можно замутить что-нибудь интересное! Например блог… И показометр температуры процессора… И показ погоды в месте проживания автора. И… Вот вам команда для развлечений: echo | nc typed-hole.org 79 и несколько скриншотов:

Главное меню и общая информация о системе
Главное меню и общая информация о системе

Карточка пользователя и .plan
Карточка пользователя и .plan

Блог
Блогозаписи пользователя.

Погода в Бордо и температура процессора на сервере

В Бордо прохладнее чем в Питере, а процессор греется примерно так же. ;-)

Да. Клиент finger иметь на борту совершенно не обязательно, достаточно обычного netcat. Finger, пожалуй, наименее распространённый протокол, среди IT-дауншифтеров, но тем не менее я всё чаще и чаще встречаю finger:// линки на Gopher серверах и Gemini капсулах, о которых мы и поговорим дальше.

▍Возвращение суслика. Gopher, Протокол бывший популярным до HTTP


Карта GopherSpace
Карта GopherSpace

Полноразмерная версия карты сайтов Gopher живёт тут. Суслик (почти такой же как у GoLang ;-)), он-же Gopher… Родился в 1991-м, в университете Миннесоты. Начал вытесняться HTTP, году так в 1993-м. Тоже очень простой и популярный, в своё время, плэйнтекстовый протокол распределённого хранения и поиска документов. Достаточно сказать, что встроенная поддержка gopher была даже в FireFox (выпилена в версии 3.7) То есть всё это время сайты в gopherspace существовали в достаточном количестве и были востребованы… Но, внезапно, сейчас, в 2021-м году их количество начало становиться не меньше, а больше. Всему виной тяга к простоте. Гуфер не имеет поддержки SSL/TLS, да ему это и не нужно. Там нет такой дыры как webforms и иже с ними, так что можно сказать что SSL там и вовсе бесполезен. Зато gopher сайт (который иногда ещё называют «hole») можно открыть на каком угодно железе, даже на ретрокомпьютерах. Ибо браузеров поддерживающих суслика было создано дикое количество, под всё что гоняет электроны. Но даже не имея браузера, достаточно открыть обычный терминал и, да, да. Тот же netcat нам поможет! echo /users/julienxx | nc sdf.org 70 И мы видим, простой текстовый вывод…

julien gopher
julien gopher

Простой текстовый вывод… ;) Циферки и буковки, в начале каждой строки, это тип содержимого. Подробная табличка, в википедии (ссылка выше). Также можно воспользоваться швейцарским ножом админа, то есть curl… curl gopher://sdf.org/1/users/julienxx который нативно поддерживает этот протокол.

Отличительной особенностью Gopher, является то, что «гиперссылки» не являются частью текста, как в HTML. Поэтому котлеты контент отдельно мухи ссылки отдельно. Их нельзя инлайнить в тело содержимого. Только по принципу одна строка, одна ссылка.

Хорошей точкой входа в gopherspace (так называется множество сайтов gopher), будет, пожалуй gopher://gopher.floodgap.com/1/world или, если не хочется устанавливать клиент, он же через Web-Proxy.

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

▍Gemini. Между Меркурием и Аполлоном


В марте 1965-го года, ещё до полётов легендарных Apollo, но уже после полётов кораблей Mercury, американцы запустили первый корабль серии Gemini). По сравнению с «Меркурием», это была более продвинутая двухместная капсула, на которой, впервые в мире, была отработана стыковка двух кораблей в космосе, орбитальные манёвры, первый выход американцев в открытый космос, в общем хоть это и не был такой продвинутый корабль, как «Аполлон», но это был большой шаг вперёд, по сравнению с почти неуправляемым «Меркурием». Но это всё космическая лирика. Как-же история космонавтики США связана с современным интернет протоколом Gemini, впервые выпущенным в июне 2019-го? А вот как. По задумке создателей, современному интернету не хватает того самого «Gemini», который летал между «Mercury» (Gopher) и «Apollo» (HTTP), то есть протокол Gemini, это такой промежуточный этап, который мы потеряли. И порт 1965, на котором, по умолчанию, работает этот протокол, выбран в честь первого полёта капсулы Gemini-3 (я не просто так говорю «капсула». В GeminiSpace, называемом так по аналогии с GopherSpace отдельные сайты так и называются «capsule»).

Итак, чем-же плох или хорош протокол Gemini?

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

  • Простота. В чём-то он проще чем Gopher. В начале каждой строчки *.gmi файла нет необходимости ставить признак типа содержимого строки. Всё решается markdown-подобным синтаксисом.
  • Особенность упомянутая выше — markdown-подобный синтаксис, очень и очень сильно упрощённый.
  • Работа поверх SSL/TLS, являющаяся обязательным условием. Причём совершенно не обязательно заказывать сертификат у центра сертификации (Let's Encrypt или коммерсов). Достаточно самоподписанного сертификата, ибо дальше действует принцип TOFU ярким примером которого является, например, SSH. Побочным эффектом является то, что капсулу можно разместить в абсолютно любой сети — I2P, TOR(*.onion), Yggdrasil, etc.
  • Работа поверх TLS позволяет авторизоваться при помощи клиентских сертификатов. Например такая авторизация используется на капсуле игры astrobotany (gemini://astrobotany.mozz.us/).
  • Возможность отправлять данные на сервер. Простые «поля ввода»
  • Запуск CGI скриптов, на серверной стороне (Gopher тоже умеет в CGI).
  • Принцип подобный Gopher. Ссылки, отдельно, контент отдельно. Никакого инлайна.
  • В отличие от Gopher — поддерживает MIME-типы.

Вроде ничего такого особенного, но, если верить википедии, протокол буквально взорвал сетевое пространство, аккурат во время пандемии COVID-19, во второй половине 2020-го.
Достаточно взглянуть на график, чтобы увидеть динамику роста количества узлов:

График роста количества узлов
График роста количества узлов

Итак, как на это всё смотреть? Можно использовать прокси, например вот этот. Или воспользоваться, как и в предыдущих случаях, netcat: echo gemini://gemini.circumlunar.space/ | ncat -C --ssl gemini.circumlunar.space 1965

netcating gemini
netcating gemini

Но это конечно недостойно настоящего джедая. Ведь благодаря популярности протокола, для него выпустили 100500 клиентов (и чуть меньше серверов). От CLI, похожих на curl и TUI, похожих, например, на elinks или w3m, до GUI. После недолгого выбора и несмотря на то что я люблю консольные приложения, я, всё таки выбрал произведение искусства от горячего финского парня из фирмы Nokia, под названием Lagrange. И это действительно классная софтина, с дизайном напоминающим середину 90-х, но при этом удобную, мультипротокольную и… я ещё ни в одной программе не видел чтобы ТАК были подобраны цвета (не зря-ж горячий финский парень, в этой самой нокии занимается UI/UX), Да что я рассказываю. Смотрите сами.

Моё тамагочи-растение на AstroBotany (gemini)

Тамагочи
Тамагочи

Тот самый Gopher Site Julien.

Julien Gopher
Julien Gopher

И её-же finger хост!

finger
finger

А ещё клиент умеет рендерить картинки, по мере проматывания страницы, и проигрывать медиафайлы. Так же хорошо поддерживает ANSI графику, умеет скрывать форматированный текст. Можно менять любые хоткеи, ну в общем прелесть, а не софтина…
Ну что-ж, пожалуй хватит, пора переходить к краткому философскому (нет) эпилогу…

Эпилог. Зачем это всё?


Честно? А чёрт его знает? Но на самом деле нет! Современному человеку иногда хочется отдохнуть от чрезмерной сложности этого мира. И если человек айтишник, тем более. Хочется сделать что-то такое что будет таким-же простым как табуретка или Unix-Way, где каждая утилита делает что-то небольшое, но делает это хорошо. А с учётом локдауна, который пошёл на второй год, усложнять ещё и свои Pet-проекты, будет уже слишком.

Поэтому полное описание протокола Gemini занимает не более двух листов A4, поэтому народ начал открывать для себя ещё и finger. Поэтому впервые, за много лет, размер GopherSpace не уменьшился, а многократно увеличился. Я совершенно не удивлюсь, если через некоторое время станут популярными Telnet/SSH BBS и в FidoNet начнёт массово возвращаться народ.

В общем я никого не призываю поднимать собственную капсулу в Gemini или поднимать собственный Gopher Site, но как минимум посмотреть на это всё стоит. Там интересно!

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 62: ↑60 и ↓2+78
Комментарии73

Публикации

Информация

Сайт
ruvds.com
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
Россия
Представитель
ruvds