Size: a a a

Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только

2020 March 05
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Лукас Бомбак написал статью про то, как готовить частичную гидрацию для изоморфных приложений — "The case of partial hydration (with Next and Preact)".

Фронтенд-фреймворки, которые умеют рендерить приложение на сервере (React, Vue, Angular), должны гидрировать страницу (устанавливать обработчики событий на отрендеренную сервером вёрстку), чтобы она стала интерактивной. При таком подходе есть проблема — на клиент летит много ненужного кода, например, код неинтерактивных компонентов (заголовки, врезки, компоненты для типографики и т.п.). Поэтому команда Лукаса при работе над большим новостным порталом реализовала частичную гидрацию страницы. При таком подходе на клиент прилетает только тот код, который нужен для работы интерактивных элементов.

Идея несложная. Нужно отрендерить статичную вёрстку и отметить в ней элементы, которые нужно гидрировать. Для отметки таких элементов, ребята использовали тег <script type="application/hydration-marker" />. Далее клиентский скрипт находит такие элементы и гидрирует их. Таким образом на странице получается несколько независимых мини-приложений.

Статья очень полезная. Если вы разрабатываете большой проект с использованием SSR и большинство ваших компонентов неинтерактивны, то стоит обратить внимание на этот подход.

#ssr #performance #react

https://medium.com/@luke_schmuke/how-we-achieved-the-best-web-performance-with-partial-hydration-20fab9c808d5
источник
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Джеймс Снелл из команды разработки ядра Node.js написал статью про текущий статус поддержки QUIC в ноде — "A QUIC Update for Node.js".

QUIC — это транспортный протокол, который лежит в основе HTTP/3. Он решает проблему плохой утилизации канала связи в сетях с высокими задержками, ускоряет установку соединения между клиентом и сервером и решает другие проблемы. На данный момент в отдельном репозитории организации Node.js полным ходом идёт его внедрение.

Для работы с новым протоколом используется новый модуль quic; будет ли он доступен разработчикам в будущем, пока окончательно не решено. Этот модуль экспортирует одну функцию createServer, с помощью которой создаются как инстанс сервера, так и клиент. Под капотом используется библиотека ngtcp2, разрабатывающаяся рабочей группой, работающей над спецификацией QUIC.

Экспериментальная поддержка QUIC, доступная всем разработчикам, должна появиться в Node.js v14. Добавление полноценной поддержки протокола запланировано в Node.js v15.

#protocol #nodejs #net

https://www.nearform.com/blog/a-quic-update-for-node-js/
https://t.me/defront/268
источник
2020 March 07
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Зак Блум в блоге Cloudflare опубликовал статью про историю появления URL — "The History of the URL".

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

Первой сетью была ARPANET, но позже появились другие сети: COMSAT, CHAOSNET, UCLNET, INTELPOSTNET. Для того чтобы объединить их в одно целое, были разработаны протоколы интернета. Для адресации узлов новой сети существующее подход ARPANET не подходил. Список всех узлов сети хранился на центральном сервере в обычном файле. При каждом добавлении нового узла в сеть этот сервер должен был по ftp передавать всем узлам сети обновлённый файл. Решением было создание иерархической системы, в которой можно запрашивать только тот список узлов, который принадлежит определённому домену. Так появилось доменное имя.

Статья большая. В ней рассказывается про историю появления всех частей URL: протокол, порт, путь, параметры, якорь. Очень рекомендую почитать, если интересуетесь историей web'а.

#history #web

https://blog.cloudflare.com/the-history-of-the-url/
источник
2020 March 08
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Пару дней назад в чате @defrontchat спросили про преимущества Styled Components. Я как фронтендер-пенсионер сказал, что не понимаю хайпа вокруг CSS-in-JS библиотек. И вот сегодня нашёл довольно хороший пост Санил Пая про преимущества CIJ-библиотек.

Стили, написанные с использованием CIJ можно проанализировать статически: если в имени класса есть опечатка TS/Flow про это скажут. При использовании CIJ-библиотек не надо волноваться про append-only стили. Удалил компонент — удалил стили. Контроль над селекторами делает простым извлечение критического CSS. Так как стили в CIJ это код, начинают работать оптимизации, использующиеся для JS (code splitting, dead code elimination). Ещё одно неочевидное преимущество касается того, что в SPA-приложениях, в которых используется асинхронная загрузка стилей и скриптов нельзя гарантировать порядок загрузки ассетов, что приводит к использованию !important.

The facebook codebase has thousands of !important statements, despite being written by competent engineers with solid engineering practices and deep relationships with design teams.

В общем, рекомендую почитать статью всем, у кого есть вопросы к CSS-in-JS. Многое встаёт на свои места.

#cssinjs #musings

https://gist.github.com/threepointone/731b0c47e78d8350ae4e105c1a83867d
источник
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Бенг Ю и Джонатан Империоси из Google рассказали, как добавление http-заголовка stale-while-revalidate повлияло на бизнес-метрики — "How Google improved ads performance with stale-while-revalidate".

Google Ad Manager для показа рекламы использует скрипт gpt.js. Этот скрипт находится в кеше браузера не более 15 минут. Как только проходит 15 минут запись в кеше устаревает и браузер делает синхронный запрос для получения свежей версиии gpt.js. В Chrome 75 появилась поддержка stale-while-revalidate. Команда разработки Ad Manager добавила к gpt.js http-заголовок
cache-control: private, max-age=900, stale-while-revalidate=3600


Он говорит о том, что если файл запрашивается между 15 и 60 минутами, после того как он попал в кеш, тогда будет использоваться устаревшая версия файла, но в фоне скрипт будет обновлён и закеширован для использования в будущем. Добавление заголовка ускорило начальную загрузку скрипта на 2% и на 0.5% увеличилио доход от показанной рекламы.

Stale-while-revalidate стоит использовать в тех случаях, когда наиболее быстрая загрузка файла важнее загрузки его самой свежей версии.

#performance #cache

https://web.dev/ads-case-study-stale-while-revalidate/
источник
2020 March 10
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Чарльз Клермон опубликовал статью про влияние производительности на бизнес-метрики SPA-приложения — "The Impact of Web Performance".

Обычно считается, что пользователи дорогих устройств тратят больше, но это не совсем так. В статье на примере показано, что наиболее критичный показатель для SPA-приложений не мощность устройства, а отзывчивость приложения и плавность анимаций. Один и тот же сайт может показывать разные результаты для одного и того же устройства в зависимости от того, замедляет ли iOS CPU от состояния батареи.

Для измерения производительности пользователи были разделены на группы по разным категориям устройств. Для разделения пользователей по типу iPhone использовались значения device.screenResolution и device.mobileDeviceBranding (980x1000 это iPhone X/Xr). Измерялось количество отрендеренных браузером фреймов в течении первой секунды после клика (60 — отличный показатель, 0 — плохой).

В общем, интересная статья. Рекомендую почитать, если интересуетесь темой оптимизации.

#performance #mobile

https://simplified.dev/performance/impact-of-web-performance#ref-iphone-categories
источник
2020 March 11
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Райан Аткинсон рассказал, почему он выбрал Svelte для большого проекта — "Why Svelte is our choice for a large web project in 2020".

В статье Райан рассказывает про объективные преимущества Svelte относительно других фреймворков (скорость работы, гибкость компилятора, встроенная поддержка создания производительных анимаций), так и субъективные (приятно работать, легко изучать, синтаксис и семантика). В недостатках усложнение процесса сборки (компилятор должен выполнять больше работы в отличии от компиляции JSX или Vue-компонентов), новый синтаксис для новичков, реактивный синтаксис работает только с компонентами, рендеринг блокирует основной поток. Ещё есть проблемы, вызванные молодостью проекта: скромная экосистема инструментов (плагины для редакторов, поддержка TypeScript), лучшие практики ещё не устоялись, молодая экосистема библиотек, с ростом количества компонентов может значительно вырасти объём бандла (решается с помощью code splitting), мало вакансий на сегодняшний день, на данный момент у проекта нет финансовой поддержки.

Рекомендую почитать статью, если задумываетесь о переходе на Svelte и хотите узнать про плюсы и минусы фреймворка.

P.S. Спасибо @oleg_log за ссылку на статью.

#svelte

https://github.com/feltcoop/why-svelte
источник
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Эндрю Пардо рассказал про планы разработки Flow на 2020 год — "What we’re building in 2020".

В этом году работа будет сфокусирована на производительности, дальнейшем снижении потреблении памяти, улучшении системы типов и добавлении новых фич в language server protocol.

Запланировано добавление подсказок для параметров функций и методов, улучшение Quick Info для деклараций, будет идти на работа над ускорением отклика обработки запросов при редактировании и навигации по коду. Также планируют улучшить типизацию this в декларациях функций и работу с unsealed-объектами (будет корректно проверяться доступ к свойствам объекта). Переработают дизайн дженериков, для того чтобы избавиться от проблем, возникающих с областью видимости параметров. Можно будет выборочно подавлять ошибки с помощью $FlowFixMe.

Хотя я перешёл на TypeScript (и пока не жалею), искренне хочу, чтобы все планы были реализованы.

#flow #announcement

https://medium.com/flow-type/what-were-building-in-2020-bcb92f620c75
источник
2020 March 13
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Вчера вышла новая версия Firefox. Крис Миллс рассказал про новый релиз — "Security means more with Firefox 74".

Feature Policy теперь включён по умолчанию. Этот механизм разрешает или запрещает использование функций браузера. С его помощью можно гибко управлять доступом к камере, полноэкранному режиму или включить предупреждения для неоптимизированных изображений на время разработки.

Также была включена поддержка http-заголовка Cross-Origin-Resource-Policy (CORP), с помощью которого накладываются дополнительные ограничения на кросс-доменные запросы. Эта фича была добавлена для того, чтобы владельцы сайтов могли противостоять атакам по сторонним каналам таким как Spectre, Meltdown.

В октябре 2018 года Mozilla, Google, Microsoft и Apple договорились о том, чтобы отключить поддержку небезопасных версий TLS 1.0/1.1. С 74-ой версии Firefox будет отображать предупреждение "Secure Connection Failed" для TLS 1.0/1.1 с возможностью перейти на сайт. Это первый шаг на пути к полному удалению старых версий TLS.

В CSS было добавлены свойство text-underline-position для управления позицией линии подчёркивания. Это очень полезная фича для языков с вертикальным письмом и математических формул. Была добавлена поддержка свойств text-underline-offset, text-decoration-thickness. В JS-движок добавлен optional chaining. У canvas был расширен метод measureText — теперь он возвращает геометрию ограничивающего прямоугольника.

В режиме отзывчивого дизайна был доработан механизм рендеринга, теперь при выборе Android-устройств сайт будет отображаться так же, как если бы он отображался на реальном устройстве. Теперь можно отлаживать вложенные web-воркеры. В CSS-инспекторе были добавлены дополнительные подсказки для неактивных свойств z-index, top, bottom, left, right. Улучшена интеграция с React Dev Tools — исправлена проблема с Go to definition для перехода к исходному коду компонента.

#firefox #release #announcement

https://hacks.mozilla.org/2020/03/security-means-more-with-firefox-74-2/
источник
2020 March 14
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Аллен Вирфс-Брок (редактор спецификаций ES5 и ES2016) представил большую научную статью (190 страниц) про историю развития JavaScript, которую он написал в соавторстве с Бренданом Айком. Эта статья будет опубликована в журнале "Proceedings of the ACM on Programming Languages".

Немного полистал — в ней есть много всего интересного. Например, рассказывается, почему спецификация получила название ECMAScript. Это был долгий и сложный процесс — Sun не захотела передавать права на торговую марку "JavaScript" организации ECMA, когда началась работа над спецификацией. Эта же участь постигла другое название "LiveScript" — Netscape тоже не захотела передавать права на свою торговую марку. Тем не менее работа над спецификацией уже во всю шла, и как плейсхолдер использовался "ECMAScript". В конечном счёте участники TC39 не смогли выбрать другое подходящее название и сошлись на том, что оставят ECMAScript.

Аллен и Брендан проделали очень большую работу при написании статьи. Must read для всех, кто интересуется историей web'а и JavaScript.

#js #history

https://zenodo.org/record/3707008#.XmvrZ0MxWHo (preprint)
источник
2020 March 15
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Крис Льюис и Брендан Дин из UberEats рассказали, почему они пошли по пути переписывания основного сайта проекта и какие плоды это им принесло.

Проблема с предыдущей версией сайта имела накопительный эффект. Это было React-Redux приложение, которое плохо поддавалось разделению на бандлы и имело сложности с поддержкой из-за усложнённого подхода к работе с данными и смешиванию кода для разных платформ (desktop/mobile). В новой версии они перешли на фреймворк fusion.js, созданный Uber на базе React (аналог Next.js). Благодаря ему они получили server side rendering и хорошую поддержку code splitting. Для слоя данных оставили Redux, но только как хранилище данных, которое может быть использовано разными роутами приложения. Для всего остального состояния используется локальное состояние компонентов. Благодаря работающему code splitting решили проблему со смешиванием кода разных платформ.

Очень большая и толковая статья. Рекомендую почитать.

#react #performance #architecture

https://eng.uber.com/uber-eats-com-web-app-rewrite/
источник
2020 March 16
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Увидел сегодня в ленте твиттера ссылку на серию статей Лео Фабриканта про оптимизацию производительности контрола автодополнения — "Secrets of JavaScript: A tale of React, Performance Optimization and Multi-threading".

Автор решал задачу отзывчивого автодополнения для названий научных организаций. Так как эти названия длинные, пользователь с большой вероятностью может сделать опечатку, поэтому важно было сделать поиск нечётким (fuzzy search), что увеличивало общее время поиска и создавало лаги при вводе текста. В статьях описаны разные подходы, которые Лео попробовал реализовать для уменьшения лагов: от setTimeout до пулла Web Worker'ов.

Статьи написаны очень доступно. Рекомендую почитать, если чувствуете, что не хватает знаний про профилировку приложений. Все примеры написаны на React, но описанные концепции можно использовать с любым фреймворком.

#performance #react #ux

https://levelup.gitconnected.com/secrets-of-javascript-a-tale-of-react-performance-optimization-and-multi-threading-9409332d349f
источник
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Ох, чую будут недовольные этим постом, но пройти мимо не могу.

Название COVID-19 выглядит как древний тикет из Джиры с техническим долгом, за который никто не хочет браться. Шутки шутками, но это довольно серьёзная проблема, которая может унести чью-то жизнь.

Закрытие границ с другими странами, ввод карантина в некоторых регионах и просьба не выходить на улицу со стороны властей может выглядеть как глупость и банальная паника. Очень многие из нас имеют хороший иммунитет и проблема кажется не такой серьёзной: "Ну переболею этой ерундой, и что такого?" Как относительно молодой и здоровый человек, я с этим абсолютно согласен. Но есть люди, которые попадают в группу риска — чьи-то пожилые родители, люди с пониженным иммунитетом. Именно ради них стоит задуматься о том, чтобы уменьшить риск распространения вируса и сократить количество контактов с другими людьми.

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

В общем, желаю всем здоровья и, пожалуйста, помогайте друг другу.

#StayTheFuckHome

https://staythefuckhome.com/ru/
источник
2020 March 17
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Сегодня во всех каналах прогремела новость — GitHub купил npm. В блоге GitHub появился пост Ната Фридмана о том, что это значит для сообщества — "npm is joining GitHub".

В ближайшем будущем усилия будут сфокусированы на инфраструктуре реестра. Также продолжается работа над седьмой версией npm — самая большая фича следующего релиза Workspaces (управление множеством пакетов из пакета верхнего уровня). Обещают активно сотрудничать с сообществом и ментейнерами пакетов — планируют расширить программу GitHub Sponsors на экосистему npm. Платные сервисы npm будут продолжать работать, но в этом году приватные пакеты npm можно будет переместить в GitHub Packages. Фокус в развитии npm смещается  исключительно на публичный реестр.

Так как GitHub принадлежит Microsoft, это означает: что npm переходит под её крыло. Уж что-что, а инструменты для разработчиков Microsoft умеет делать хорошо.

#announcement #npm #github #microsoft

https://github.blog/2020-03-16-npm-is-joining-github/
источник
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Недавно Фрэнк Фаулкнер — участник рабочих групп W3C — обновил свою статью про проблемы доступности атрибута title — "Using the HTML title attribute".

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

Если title используется для дополнительного описания ссылок, то эту информацию стоит вынести в текст ссылки. Если title используется для добавления описания к изображению, то лучше всего вынести это описание как текст и разместить его рядом с изображением. В 2020 году осталось только единственное место, где title может быть полезен, — добавление дополнительной информации к фреймам. Но фреймы в современном web'е не используются, так что про этот случай можно забыть.

Хорошая статья. Рекомендую почитать.

#a11y #html

https://developer.paciellogroup.com/blog/2010/11/using-the-html-title-attribute/
источник
2020 March 19
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Дэниэл Маккей рассказал как использовать проверку типов TypeScript в VSCode без добавления компилятора ts в процесс сборки приложения — "Using Typescript Without Typescript".

VSCode из коробки поддерживает проверку типов в JavaScript-файлах. Для этого нужно в редакторе включить опцию checkJs или использовать специальные комментарии в начале файла: // @ts-check — для пофайлового включения проверки типов и // @ts-nocheck для исключения файла из проверок. Типы подхватываются из определений JSDoc. Для определения пользовательских типов можно использовать @typedef, также можно вытащить описание типов в d.ts -файл и импортировать его внутри JSDoc:
/**
* @param {import("./main").ISomeModel} req
* @returns {Promise<import("./main").IApiResponse>}
*/


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

#typescript #bundlerfree

https://www.dandoescode.com/blog/using-typescript-without-typescript/
источник
2020 March 20
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Берт Бос — можно сказать один из отцов CSS (участвует в разработке стандартов с 1996 года) — поделился своими мыслями по поводу версионирования CSS в статье "CSS X".

Последняя пронумерованная версия CSS была CSS3. CSS3 — это неофициальное название набора независимых спецификаций (модулей), которые были извлечены из монолитной спеки CSS2.1 с добавлением новых модулей. Такое разделение было удобно для рабочей группы и разработчикам браузеров, но стало неудобно для разработчиков: что было добавлено после CSS3, где можно найти систематизированную информацию в удобном виде и т.п.

В статье Берт пишет о том, что рабочая группа не будет брать на себя обязанности по определению того, что должно входить в CSS4. Если брать работу по версионированию, то возникает много вопросов: какие модули должны попасть в новую версию, с какой частотой подымать версию, как взаимодействовать с разработчиками браузеров и т.п. Он предлагает сообществу (будь это комитет из участников разных организаций или недавно сформированная CSS4 Community Group) независимо от рабочей группы сформировать независимый набор спецификаций — CSS4. Он не видит в этом ничего плохого.

CSS4 Community Group начала свою работу с февраля этого года. Вполне возможно, что эта инициатива будет успешна.

#css #specification #musings

https://www.w3.org/blog/2020/03/css-x/
источник
2020 March 21
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Разработчики браузеров начинают задумываться о том, чтобы перевести HTTP-заголовок User-Agent в статус deprecated.

User-Agent не был надёжным средством для определения возможностей браузера, но тем не менее многие сайты его используют. Более того на некоторых логика работы с UA сломана, из-за чего возникают неприятные ошибки. Шима Видас решил проверить, как будут вести себя современные сайты, если на наделю отключить User-Agent. Что из этого получилось, он описал в статье "My findings after browsing the web without a User-Agent header for one week".

Большинство сайтов работало без каких-либо проблем, включая Amazon, Reddit, Instagram, Google Photos. Но в Google Docs выскакивало сообщение о том, что могут быть недоступны некоторые функции. iCloud рекомендовал использовать последние версии браузеров. Twitter переключал на старую версию сайта, а поиск Google отдавал HTML-only версию сайта. Были баги. В Google Docs перестали работать некоторые горячие клавиши, в Twitter сломалось копирование и вставка в текстовых полях. Twitch падал с ошибкой в JS из-за того, что не был учтён случай, когда navigator.userAgent пустая строка. Некоторые сайты начали воспринимать  пользователя как бота и переставали открываться  (Facebook, Arstechnica, Apple Developer).

Я лично поддерживаю начинание объявить устаревшим User-Agent. Но, думаю, что этот процесс может легко растянуться на несколько лет.

#http #web

https://webplatform.news/issues/2020-03-19
источник
2020 March 22
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Фредерик О'Брайен в статье "What Does A Foldable Web Actually Mean?" размышляет о будущем web в контексте распространения устройств со складывающимися экранами.

Устройств со складывающимися экранами становится больше: Galaxy, Huawei и Motorola уже выпустили девайсы с гнущимся экраном, а Microsoft анонсировала Surface Duo — устройство с двумя независимыми экранами. Для того чтобы можно было адаптировать страницы и web-приложения под такие экраны, разрабатываются новые спецификации. Microsoft работает над новой спецификацией для CSS и JavaScript API. В CSS предлагается использовать новое медиа-выражение spanning, которое будет органично вписываться в концепцию отзывчивого дизайна. Для получения информации о сегментах в JS (например, для WebGL-приложения), предлагается использовать window.getWindowSegments. Благодаря этим возможностям можно будет реализовать новые пользовательские сценарии. Например, когда на одной половине устройства отображается web-карта, а на другой — список организаций,

Маловероятно, что foldable-устройства окажут такой же эффект на web, какой в свое время оказало появление iPhone, но работа над адаптацией web-платформы уже идёт.

#mobile #web

https://www.smashingmagazine.com/2020/02/foldable-web-meaning/
источник
2020 March 23
Defront (при поддержке Зарплата.ру) — про фронтенд-разработку и не только
Брайан Карделл — один из участников w3c — написал небольшую статью про проблему сломанных ссылок в вебе — "Making Sure Content Lives On..."

Брайан пишет про то, что веб — ненадёжная среда для хранения контента, который должен быть доступен в течение многих лет. Его публикации на сайтах, где он писал как приглашённый автор, исчезли навсегда, после того как эти сайты прекращали существовать. Для более надёжного сохранения контента можно использовать Internet Archive, но у него есть проблема — нет гарантий, что страница автоматически попадёт в архив.

Сейчас можно добавлять страницы в архив только вручную: с помощью специальной формы на сайте или добавив http://web.archive.org/save/ в начале url страницы, которую нужно сохранить. Брайан связался с техническим директором Internet Archive и сделал более удобный сервис для автоматизированного сохранения страниц. Сейчас он открыт для всех, если эксперимент будет успешен, то Internet Archive реализует что-то подобное у себя.

Если публикуете контент на больших и серьёзных сайтах (habr, medium, dev.to), то стоит задуматься о том, чтобы добавлять свои статьи в Internet Archive. Я же с этого момента буду добавлять в архив все статьи из канала. Если какая-то ссылка будет сломана, то её можно будет найти в интернет архиве.

#web #experimental

https://bkardell.com/blog/ArchivingByDefault.html
источник