Закладки, к которым ты никогда не вернёшься

в 3:00, , рубрики: angular, open source, Программирование, расширения chrome, самоорганизация
Закладки, к которым ты никогда не вернёшься - 1

Закладки — самое ужасное изобретение человечества... Ну ладно, возможно, я немного утрирую, не самое, а только лишь одно из самых.

Закладки в браузере, список статей для прочтения в Pocket, закладки в популярных блогах типа Хабра и прочие списки из разряда "прочитать позже". Если у вас эти списки пусты или регулярно очищаются, вам не понять нашей печали.

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

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

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

Цифровое накопительство

Закладки, к которым ты никогда не вернёшься - 2

На самом деле, эта болезнь не нова и даже имеет название — "Digital Hoarding" (цифровое накопительство). При этом у нее чуть более широкое значение, и она не ограничивается закладками, а касается накопления разнообразного цифрового контента (те же закладки, электронные книги, туториалы, фото, избранные цитаты и пр.).

Казалось бы, что тут плохого, это же личная сокровищница знаний, личная библиотека у тебя в кармане (эх, могли ли мы себе такое вообразить, посещая небольшую оффлайн библиотеку в 90-х годах :)). На словах звучит красиво, а в реальности это чаще всего напоминает цифровую свалку. Мне нравится еще другое определение, промелькнувшее в Сети, которое очень подходит: "цифровое кладбище".

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

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

"У меня накопилось пару тысяч статей, ожидающих чтения! Я читаю много, но проблема в том, что на каждые 10 прочитанных статей я добавляю 20-25 новых".

"На ноутбуке у меня сейчас открыто около 500 вкладок в двух разных браузерах, из них 150-200 — это статьи, которые я решил, что прочитаю позже".

"Я собрал огромную коллекцию книг, прилежно каталогизирую их в Calibre и лелею как свою личную сокровищницу. Но когда мне нужно выбрать следующую книгу для чтения, я иду на сайт рекомендаций, а когда мне нужно скачать книгу, я обращаюсь к поисковику. Спрашивается, зачем тогда я храню тысячи книг в своем локальном хранилище?"

Призрачно всё в этом мире бушующем...

Закладки, к которым ты никогда не вернёшься - 3

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

Такая ограниченность, труднодоступность источников знаний отложила свой отпечаток на их общественное восприятие. Даже с приходом интернета и получения знаний буквально "в шаговой доступности" в мозгу на подкорке все же отложилась ценность источников знаний и страх, что завтра мы можем вернуться во "вчерашний день", где знания не были так легко достижимы. Тем более эти опасения не так уж и безосновательны (пусть и без идеи фантастического путешествия в прошлое) — ужесточение контроля за авторскими правами, появление культуры потребления платного контента и т. д.

В итоге, боязнь потерять или упустить что-то ценное, важное — то, что завтра мы можем не найти, — одна из причин, которая заставляет нас добавлять статьи в закладки "на всякий случай", "на черный день" или из банального "пригодится".

О прокрастинации замолвите слово...

Закладки, к которым ты никогда не вернёшься - 4

Да, конечно, и здесь она тоже во всем виновата. Та самая прокрастинация, наш извечный враг и искуситель.

Мы открываем ленту статей на Хабре, выбираем заинтересовавший заголовок, видим подпись "время чтения 15 минут". Да, тема интересная, полезная, надо прочитать... Хотя есть же кнопка "Добавить в закладки", вот оно, решение! Я обязательно прочту! Потом. А пока хоть на минутку отвлекусь, открою YouTube... Ну а дальше вы знаете.

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

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

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

Read Later == Read Never ?

Закладки, к которым ты никогда не вернёшься - 5

С сутью проблемы определились, сформулировали. Да, мы осознали, что это никуда не годится — наша ценнейшая коллекция Read Later неминуемо превращается в бесполезную свалку Read Never. Что дальше? Как решать проблему?

Один из подходов — наращивание функционала закладок, использование специализированных программ — менеджеров закладок, предоставляющих разнообразные продвинутые функции: каталогизация, тегирование, удобный и быстрый поиск и т. д. Однако, как показывает практика, мы все же придем к тому же результату. Разница лишь в том, что мы получим не просто свалку, а структурированную, но все такую же бесполезную свалку. Такие программы лишь усугубляют проблему, стимулируя и делая более удобным долгое хранение, а не скорейшее потребление сохраняемой информации.

Другой вариант, который иногда используется для стимулирования активности, требующей мотивации, — отбирать у пользователя "честно заработанные" за невыполнение поставленных целей. Необычный и любопытный, конечно, подход, но мало кто решится на такой вариант. Так что не беспокойтесь, разводить на деньги я вас не буду, хотя... надо подумать... если придумаю какой-нибудь платный дополнительный функционал, можно попробовать и развести :)

Еще вариация — не денежное, а социальное "наказание". Например, вы публично, на виду у ваших друзей и знакомых, в соцсетях объявляете о своих намерениях или своей цели. Если вы не достигаете заявленного, получаете минус в свой виртуальный рейтинг "социального уважения". Однако в нашем случае такой подход вряд ли как-то можно применить.

Так что же нам остается? Где оно, решение?

Решение есть — Don't Read Later!

Закладки, к которым ты никогда не вернёшься - 6

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

Уже в процессе работы над статьей родилась кардинальная идея: "Не читаешь? Тогда удаляем и спрашивать тебя не будем!" Идея в том, чтобы закладки сохранялись с фиксированным сроком, например, максимум на 7 дней. Не успел? Не прочитал? Значит, не нужно, значит, автоматически удаляется.

Как удаляется? А где же кнопка "отложить", где корзина, удаленные? Да, сурово. Да, жестоко. А как вы хотели? Ведь мы с вами вступаем на путь борьбы за самодисциплину!
Суровые обстоятельства требуют суровых решений.

Нет, ну серьезно — согласитесь, если вы не прочитали сохраненную статью за неделю, шансы, что статья ляжет затонувшим грузом на дно морское и вы о ней больше никогда не вспомните, очень близки к 100%. Вы ничего не потеряете. А вот наличие нависшей над вашим списком гильотины, отсчитывающей 7 дней, явно прибавит стимула к прочтению той информации, которую вы сочтете действительно ценной и полезной.

Сказал? Сделай!

Как и в своих прошлых статьях, беру Angular и делаю расширение для Chrome. Процесс первоначальной подготовки Angular рассмотрен в одной из моих предыдущих статей. Сама реализация идеи довольно тривиальна, кратко опишу функционал.

Добавление/удаление текущей открытой вкладки в список на чтение.

Текущую активную вкладку получаем так:

private getActiveTabAsync(): Promise<Tab> {  
  return chrome.tabs.query({  
    active: true,  
    currentWindow: true,  
  }).then((tabs: chrome.tabs.Tab[]) => tabs[0])  
}

Теперь у нас есть объект Tab, из которого мы можем взять url и даже title. Но нам бы нужен не заголовок окна, а заголовок текущей статьи, т. е. тег H1. В принципе, получить его не сложно, но напрямую через Tab мы не имеем доступа к контенту страницы. Для доступа к контенту необходимо использовать механизм внедрения скрипта на страницу, который извлечет и вернет содержимое необходимого нам тега H1:

private async getTabTitle(tab: Tab): Promise<string | null> {
    if (!tab.id) {
      return null;
    }

    try {
      const [injectionResult] = await chrome.scripting.executeScript({
        target: { tabId: tab.id },
        func: (defaultTitle: string | undefined) => {
          const titleElement = document.querySelector('h1');
          return titleElement?.innerText.trim() || defaultTitle;
        },
        args: [tab.title],
      });

      return injectionResult.result as string || null;
    } catch {
      return null;
    }
  }

Базовые настройки
Настроек много не потребуется, их всего две:

  • кол-во дней хранения (максимум 7);

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

Статистика
Расширение простое, какой-то сложной и детальной статистики нам не требуется. Нужно вывести лишь самый главный показатель — процент количества прочитанных статей от общего числа удаленных (как удаленных вручную, так и удаленных автоматически).

Прочитанными считаются ссылки, которые были удалены вручную, но не ранее, чем через 15 минут после их добавления (такие будем считать случайно добавленными). Непрочтенные — те ссылки, которые не были удалены вручную, а были удалены автоматически по истечению срока хранения.

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

Закладки, к которым ты никогда не вернёшься - 7

Заключение

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

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

Полный исходный код выложен на GitHub, проект полностью открытый и свободный.

Готовое расширение Don't Read Later опубликовано в магазине расширений Chrome и свободно доступно для всех желающих, готовых вместе со мной ступить "на путь истины", на путь освобождения от "закладочной зависимости" :)

P. S. А вы сталкивались с подобной проблемой? Как справлялись, как решали? Поделитесь своим опытом в комментариях.

P. P. S. Да, и не забудьте, конечно, добавить эту статью себе в закладки :)

Автор: kanasero

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js