Экспериментируя с Solid, новой интернет-платформой Тима Бернерса-Ли

Фронт-дело

Недавно я прочитал статью, ссылка на которую приведена ниже, в которой говорится о необходимости нового Интернета. В этой статье Тим Бернерс-Ли (изобретатель Интернета и нынешний директор Консорциума всемирной паутины (W3C)) объясняет, что он основал новую компанию с проектом с открытым исходным кодом с целью вернуть свое первоначальное видение Интернета. .. Этот проект называется Solid.

Вот отличный пример для этой статьи:



Моя любимая строчка из этого:

Мы не говорим с Facebook и Google о том, следует ли вносить полное изменение, при котором все их бизнес-модели полностью меняются в мгновение ока. Мы не спрашиваем их разрешения.

Так что да, он пытается разозлить очень богатых людей.

Кроме того, в этой статье, которую он опубликовал, подробно описывается его цель:



Что такое Solid?

Я должен быть честным, я не собираюсь быть таким убедительным, как парень, который изобрел Интернет, поэтому, пожалуйста, прочтите это:



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

Хорошо, это не совсем так, но я предполагаю, что идея Кремниевой долины была вдохновлена ​​Solid.

По сути, каждый пользователь создает Pod. В этом модуле вся их информация. Затем все приложения в экосистеме будут взаимодействовать с этим модулем, и у пользователя есть выбор, от какой информации отказаться.

Это возвращает пользователю контроль / конфиденциальность.

Что касается базовой инфраструктуры, я понятия не имею. Я только что услышал об этом сегодня. Предстоит еще много исследований, но об этом позже. Давайте что-нибудь построим.

Создайте приложение во время обеденного перерыва

На их веб-сайте утверждается, что вы можете «создать приложение во время обеденного перерыва», поэтому я решил попробовать. Полное руководство приведено ниже, и я предполагаю, что они будут обновлять его по мере внесения изменений, поэтому я не собираюсь здесь проходить все руководство, но я расскажу о каждом шаге. Вы можете получить от них полное руководство здесь:



Шаг 0. Получите капсулу

Пока есть два варианта получения Pod. Оба бесплатны.

  1. Хостинговое решение Inrupt через их веб-сайт inrupt.net.
  2. Солидное сообщество

Технически существует третий вариант - разместить его самостоятельно в качестве надежного провайдера, но он относится к Solid Community.

Шаг 1. Настройте простую HTML-страницу.

Довольно прямолинейно. В итоге я использовал плагин VS-Code Live Server, просто для простоты, но есть много вариантов.

Шаг 2. Добавьте jQuery.

Нет, просто нет. Я не собираюсь создавать что-то для «будущего Интернета» с помощью jQuery.

Если вам действительно нужны некоторые функции выбора, просто используйте bling.js.

Также посетите этот сайт, который покажет вам, как делать что-то без jQuery:



Шаг 3. Добавьте элементы пользовательского интерфейса состояния входа

Довольно просто.

Шаг 4. Добавьте клиент Solid auth

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

Шаг 5. Добавьте кнопку входа

Это довольно просто. Я просто использовал ссылку на их popup.html страницу на их гитхабе. Мне пришлось настроить строку для vanilla JS и для прослушивателя событий.

const login = document.getElementById('login');
login.firstElementChild.addEventListener('click', () => solid.auth.popupLogin({ popupUri }));

Кроме того, trackSession без jQuery стал намного длиннее, но не так. Ниже представлен весь метод с частями шагов 5 и 7.

Возможно, есть более простое решение, но оператор switch у меня сработал.

Шаг 6. Добавьте кнопку выхода

То же самое, пришлось настроить, чтобы он работал без jQuery.

const logout = document.getElementById('logout');
logout.children[1].addEventListener('click', () => solid.auth.logout());

Шаг 7. Добавьте элемент ввода для WebID профиля.

Пришлось сделать небольшой массаж, чтобы заставить это работать, но не слишком сложно.

Шаг 8: Добавьте RDFlib.js

Простой.

Шаг 9. Покажите имя пользователя

Незначительное массирование кода, но не слишком сложное.

Шаг 10. Покажите друзей пользователя

Пришлось внести еще несколько корректировок, чтобы цикл заработал, но вот код:

Я добавил немного в конце, чтобы сообщить пользователю, если у него нет друзей. Так грустно.

Шаг 11. Сделайте друзей интерактивными

Не было возможности проверить эту часть, поэтому я не стал ее делать. Хотя это казалось довольно простым.

Вот и все!

Первые впечатления

Что ж, было весело.

Пройдет ли тест на «успеть во время обеденного перерыва»? Что ж, сегодня суббота, так что мне придется немного вообразить, но да, получилось. Это заняло у меня больше времени, потому что я упрямый и отказываюсь использовать jQuery, но в остальном это могло длиться не больше часа.

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

Если вы хотите проверить мой последний код на Vanilla JS, посмотрите его здесь:



Последние мысли

Я не достаточно умен, чтобы предсказать, что ждет Солида в будущем, но я опустил ногу в общественный бассейн и вышел. Вы также можете подключиться к сообществу на gitter.

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

Следующий шаг - создать с его помощью настоящее приложение и посмотреть, как далеко мы можем зайти.