recoder: (Default)

Помнится, лет десять-одиннадцать назад мне очень хотелось иметь персональный contact manager. Эдакую семейную CRM. Написать своё я за десять лет так и не сподвигся (shame!), а вот память заметно ухудшилась. Вдобавок мой социальный круг к сожалению расширился, так что сочетание неважной памяти на имена с ещё более неважной памятью на лица вгоняет меня во всё большую печаль...

Но вот случайно я узнаю, что совершенно не одинок в своей печали, но только один чувак по имени Régis Freyd (@djaiss) оказался настолько неленивым чтобы взять и написать такой правильный семейный CRM и назвать его Monica. И чем больше я читаю про эту Монику, тем больше и больше она мне нравится!

Во-первых, разработчики реализовали почти всё, что мне хотелось (и многое такое, чего мне не было нужно):

  • Собственно каталог контактов: с адресами, заметками, тегами, всё как надо
  • Можно указать отношения между контактами
  • Есть напоминания по контактам (включая дни рождения и пр.)
  • По каждому контакту можно вести историю общения и ставить напоминания для поддержания контакта
  • Для каждого контакта есть отдельная история долгов и подарков
  • Есть простенький журнал-дневник
  • Есть простенький список задач
  • Есть неплохой API и активно пишутся приложения для iOS и Android

Во-вторых, исходники Моники открыты и доступны на GitHub'e. Благодаря этому - можно купить аккаунт на MonicaHQ.com за $5 в месяц, можно пользоваться бесплатным планом в котором практически всё есть, а можно взять исходники и установить её на свой собственный сервер (автор утверждает что ему известно о более чем полутора тысячах таких установок).

В-третьих, само приложение удивительно удобное и аккуратное, что большая редкость для OSS приложения. Оно может быть не настолько отполировано как какой-нибудь Highrise, но всё равно - пользоваться Моникой очень приятно!

Есть конечно в этой бочке мёда и несколько ложечек дёгтя. Прежде всего - как и со всеми сервисами, есть вероятность что автора, к примеру, съест канадский медведь и он сервис пропадёт вместе со всеми данными. Было бы здорово иметь двухстороннюю синхронизацию этих контактов со, скажем, Gmail'овскими, но не думаю что авторский коллектив займётся этим в обозримом будушем. Так что придётся обходиться регулярным экспортом данных в архив.

Другая неприятная особенность - это то что проект написан на PHP (хоть и на рельсоподобном Laravel). Что значит что участвовать в разработке этого добра я, скорее всего не буду. Вот, к примеру, попытка поднять её в Docker'e у меня провалилась прямо со второго шага, а желания ковыряться в PHPшных кишочках нет ну совсем никакого...

И тем не менее - это очень приятная находка! Всем кто присоединялся к моим мечтам о подобной системе - срочно бежать, регистрироваться, пользоваться, и желательно заплатить автору $45 за год вперёд.

recoder: (masked)

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

Взял, написал себе небольшой скриптец ljlinks.py для выкусывания внешних ссылок из последних 20 постов. Потом начал запускать его с опенсорсным скриптом archivenow, который сохраняет выбранные ссылки в публичные архивы типа Web Archive или Archive.is. И теперь достаточно раз в недельку запускать единственную команду:

for u in `./ljlinks.py --username $LJUSER --password $LJPASS`; \
    do archivenow --is --ia $u; done

Было бы замечательно иметь где-нибудь ещё скрипт-редиректор который бы проверял жив ли ещё адресуемый ресурс и в зависимости от этого перенаправлял на живой ресурс или на его архивную копию. Только вот боюсь что такого сервиса быть не может, потому что его спаммеры тут же съедят. Эх...

Далее - поставил себе в Chrome плагинчик Archiveror который обещает автоматически архивировать всё что я складываю в закладки. Тоже какое-никакое подспорье в борьбе с энтропией.

И ещё надо будет на досуге поисследовать WebRecorder, который webrecorder.io. По крайней мере идеи там любопытные.

recoder: (masked)

Цифровая тётка с косой нанесла очередной удар в спину: внезапно обнаружилось, что моя коллекция инфографики на vi.sualize.us накрылась медным тазом. Вместо графиков и котиков по моим URLам почему-то теперь открываются какие-то дизайнерские интерьеры. Покопавшись в мементовом WebArchive удалось выяснить, что последний раз мой аккаунт архивировался в декабре прошлого года, после чего сайт верломно похерился, словно в издёвку оставив мне в аккаунте пару картинок и грустного котика. Сволочи!

Старый del.icio.us был недавно опять перекуплен, на этот раз Pinboard'ом за полсотни штук грина, замигрирована на мемориальный сервер, и обещается оставаться в read-only статусе, но всё равно до сих пор лежит в дауне. Балбесы!

Неожиданно Facebook начал допиливать свои Saved Links - организовали там коллекции и сделали кое-какой поиск, но для промышленной организации ссылок всё равно не подходит. Максимум что я могу доверить Фейсбуку - это быть моим inbox'ом для ссылок с мобильных устройств.

Но есть и хорошие новости! Я нашёл своих единомышленников объединившихся в Archive Team. Они также как и я верят в ценность архивации всего, также ненавидят сокращаторы. Сейчас вот спасают ЖЖшечку и SoundCloud.

Могу пожелать коллегам из Archive Team успехов в борьбе с мировой интернет-энтропией, но всё равно считаю что спасение утопающих - дело рук самих утопающих. И пойду дальше пилить свой сохранятор...

recoder: (masked)

Ален нови, ностра алис! Что означает — ежели один человек построил, другой завсегда разобрать может.
© к/ф Формула Любви
По мере того как веб-дизайнеры, науськиваемые SEOшниками, всё больше изгалялись в своей креативности, на нашей стороне всё больше крепло желание как-то пресечь всё это на корню, чтобы просто побыстрее добраться до искомого текста, запрятанного за баннерами, всплывающими подписками и прочей мишурой.

Сначала пробовали бороться AdBlock'ами, и они конечно помогали, но хотелось большей унификации. Появились читалки вроде покойной Readability (от которой впрочем ещё остаётся Mercury API). Тут же подтянулись монстры: Google с его неоднозначным AMP и Facebook с Instant Article начали тянуть одеяло на себя, предлагая упрощённые версии страниц со своей рекламой под эгидой заботы о мобильных пользователях.

А вот в нашу сторону одеяло пока никто не тянул. Пока красавчик Дуров не запилил Telegram с его Instant View. Они сделали именно то, что я думал реализовать в своей читалке: сделали возможность к каждому сайту написать свой собственный фильтр, который грамотно вытянет нужную информацию и оформатирует в хорошо читаемом виде. И объявили конкурс с призовым фондом в $200000 на самые хорошие темплейты для сайтов.

Такое обязательно надо будет заинтегрировать в свою веб-читалку. А ещё мне всё больше нравится идея использовать сам Телеграм (с ботом) как клиент для многих задач. Дуров наверное именно этого и добивается...

recoder: (masked)

В процессе дизайна персонального архиватора обнаружил что существует достаточно официальный (RFC 7089) протокол для архивации веб-ресурсов под названием Memento. Авторы протокола пошли оригинальным путём и просто расширили стандартную процедуру "content negotiation" ещё одним измерением - временем!

В схеме Memento клиент может сделать HEAD-запрос к ресурсу (на сервере, поддерживающем эту схему) с указанием заголовка "Accept-Datetime: {date}" и сервер отвечает на такой запрос стандартным 200 OK с указанием места где живёт "TimeGate" - сервер архивации, и выглядит это как "Link: {uri}, rel=timegate". После этого можно обратиться к таймгейт-серверу и он выдаст 302 Found туда где уже и выдадут запрошенную архивную копию.

На основе этого протокола придумали решение моей проблемы протухающих ссылок - Robust Links. Тэг ссылки просто расширяется дополнительными атрибутами data-versiondate и data-versionurl, так что ссылки выглядят примерно так:

<a href="http://thekeepers.org/" data-versionurl="http://archive.today/DTt8f" data-versiondate="2014-11-01">http://thekeepers.org/</a>
// rendered as http://thekeepers.org/

Такие декорированные ссылки небольшим скриптом можно превратить в мини-менюшки выбора конкретной сохранённой версии документа по ссылке. К сожалению, обычному бложеку на LJ/DW такая техника не подходит потому что сторонний скрипт так легко не подцепить. Поэтому Memento-сервисы обычно поддерживают запросы вида GET /{date}/{resource uri}, однако стандартизация сюда ещё не добралась и каждый сервис лепит что-то своё.

Увы, серьёзных сервисов поддерживающих Memento, не так уж и много: Wayback Machine, Archive Today, Perma.cc. Wayback Machine примечательна своим возрастом - она архивирует интернет с 2001 года (я там даже нашёл свой старый хомяк из прошлого тысячелетия!). Archive Today поражает качеством архивирования - видимо они загружают страницы в headless browser и сохраняют получившееся состояние. Однако совершенно непонятно кому принадлежит этот сервис и соответственно неясно сколько он ещё протянет. Perma.cc пилится Гарвардским университетом, так что стоит предположить что он переживёт все подобные сервисы, что и является его главным преимуществом.

Чувствую, в своём хабе-архивариусе надо будет запилить поддержку Memento. Незачем велосипеды изобретать. Было бы совсем круто сделать этот протокол распределённым, чтобы каждый такой сервачок мог спросить у соседних сервачков "а у вас такого URLя не найдётся?", но как только начинаешь думать о децентрализации - сразу всплывает такое количество проблем, что всё желание думать дальше и пропадает. Поэтому наш девиз - каждый сам за себя!

recoder: (masked)

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

В списке self-hosted архиваторов есть ровно две позиции:

  1. Wallabag. Хоть внутри и на богомерзком PHP, но снаружи выглядит неплохо. Много хороших фич: работающая readability, теги, поиск, RSS-фиды, импорт, экспорт в mobi/epub. Есть мобильные приложения.
  2. Nunux. Более молодёжный: на NodeJS, с модными external identities, приличным REST API. Но

Букмаркеров оказалось больше, но все страшные как атомная война: Shaarli, SemanticScuttle, Pinry, UnMark.

Сокращаторов тоже есть несколько: lstu, polr, YOURLS. Но только последний делает что-то сложнее тупого управления одной таблицей в БД, да и тот на PHP. Но мне кажется, свой сокращатор и так пишется за пару вечеров на любимом языке.

В общем, кое-что уже написано, но не очень хорошо и непонятно как это всё интегрировать.

От отчаяния пошёл посмотреть на готовые сервисы: pinboard, raindrop, diigo, stash.ai, contentle, historious. Нашёл даже такой оверкилл как BookmarkOS. И приличным из них всех мне кажется только Diigo. И я бы даже раскошелился на $50/год чтобы включить архивацию страниц, однако где гарантии что лет через пять от не уйдёт в царство Аида, унеся с собой тысячи заботливо разложенных закладок?

Чем дальше - тем больше мне хочется сесть и написать себе свой собственный аналог того же Diigo с самыми важными фичами:

  • каталогизатор ссылок (теги, коллекции)
  • сокращатор ссылок
  • архивация содержимого ссылок
  • поиск по сохранённым ссылкам
  • оптимизатор содержимого a-la readability/newspaper
  • ведение очереди/очередей для чтения

А чтобы самому не писать мобильные клиенты - написать прокси-сервер для клиента от Wallabag.

Несложно же должно быть для опытного программера с современными-то фреймворками. А если получится - можно будет развить всё это дело в более продвинутый персональный интернет-хаб. Так сказать, мои личные розовые очки для интернетов. (Пошёл набрасывать спецификации и освежать в памяти навыки deployment'a.)

recoder: (masked)

Отправился я недавно перечитать кой-чего из старого ЖЖ примерно десятилетней давности (да-да, я тот самый человек который перечитывает старые записи и даже иногда возвращается к старым дискуссиям). И после недолгого щёлканья по ссылкам остался в лёгком шоке от того что добрая половина гиперссылок протухла и более никуда не ведёт. Пошёл пошарить по своим коллекциям ссылок и пришёл в полнейшее расстройство. Увы, связность гипертекста не выдерживает испытание временем.

Плач Интернет-Ярославны )

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

И захостить всё это на своём собственном сервере, чтобы ни от кого не зависеть!

Должно быть несложно...

December 2024

S M T W T F S
1234567
891011121314
15161718192021
22232425 262728
293031    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 25th, 2025 05:55 am
Powered by Dreamwidth Studios