rss
Неделя первая. Нечто новое

Истоки

Мне всегда хотелось научиться рассказывать истории. Никогда этого не удавалось, но я пытаюсь. Может, это смешно и нелепо, но безумно интересно. И сколько бы я ни читал книг о том, как писать книги (очередное бессмысленное занятие, но увлекательное), в них раз от разу повторялось одно и то же: обязательно должен быть герой. Даже если это статья о производительности силосных заводов Новгородской области. И основная мысль должна укладываться в формулу «Герой, который…». Мне до сих пор интересно, что означает этот «который» по отношению к самому себе.

И мне всегда нравилась метафора пути, даже скорее дао. Ведь все мы куда-то движемся. Путешествие своеобразное, потому что точно известно куда мы придём, но именно поэтому интересно, какой будет сама дорога. “Единственный вход: рождение, единственный выход — смерть. Какие тебе еще ориентиры?”

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

Я давно размышляю о том, как идеально должен быть устроен процесс именно публикации. Хотелось, чтобы было просто и гибко. Первоначальная постановка задачи звучала примерно как «хочу кружевные трусики и в ЕС», то есть состояла из набора желаний, скрестить которые представлялось достаточно сложным. Хотелось максимальной простоты, поддержки версионности, статичности содержания и возможности работать с текстами без интернета. Ну и минимального количества компонентов, задействованных в обеспечении всего это благоденствия. И да, совершенно забыл, хотелось бы управлять структурой. И чтобы не требовалось программировать день и ночь, чтобы это всё, наконец, заработало. «И сменные темы», - шепчет жадность. «И чтобы вышивать умела», - застенчиво говорит глупость.

Возможно, это перфекционизм. Никому ненужный, бессмысленный и беспощадный, диктуемый стремлением к красоте и изящности, которое вряд ли кто оценит. «Фуфуфу, есть уже три миллиона сервисов и шесть миллионов фреймворков, которые могут обеспечить большинство требуемых возможностей, притом безвозмездно, то есть даром!» И это так. Но… Я бы взял частями. Но мне нужно сразу. Это основной аргумент кроме жадности, которая вопиет каждый раз, когда я публикую что-то на стороне, и лени, которая мучительно ноет при обновлении вордпресса до актуальной версии или при чистке авгиевых конюшен после очередного проникновения говна сквозь дыры в теме.

Сайт - это медиум

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

Также во весь рост стоит вопрос экосистемы. Начну издалека, а именно с пользовательской истории. Возможно, именно с неё и следовало бы начать. Знакомьтесь: программист Антон.

Программист Антон

Земную жизнь пройдя до половины, он оказался в Санкт-Петербурге. Он думает, что ему есть что сказать и что он пишет хорошие постмодернистские тексты (на самом деле нет). Он прошёл долгий путь от diary.ru до стэндалона, и десятилетия блоггинга оставили в его душе выжженный след и отвращение к вордпрессу. У него есть телефон на андроиде, планшет (Win10) и два стационарных компьютера (один с Windows, другой с линуксом), на всех он хотел бы иметь возможность работать над текстом в том редакторе, который сейчас доступен. Также очень часто ему приходится ездить в метро, где интернет у него отсутствует. Также он ведёт два непопулярных канала в телеграме и содержимое их он хотел бы публиковать на сайте. И хотелось бы иметь бэкап всего написанного и не думать о безопасности сайта. Также он мнит себя великим дизайнером и свои идеи он хочет реализовывать играя с цветами заголовка и перенося статьи из одного каталога в другой. Прочитав в одной умной книжке о лонгридах, он также хотел бы создать нечто подобное; увлекаясь фантастикой в её young adult форме, в его голове зародилась идея романа, а ещё музыка, видео, 3d и другие интересные DIY-штуки. Электроника?! Кто сказал «электроника»? А для всего этого будет нужен свой раздел и возможность что-то выделить или затенить.

Путь

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

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

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

Я услышал про Cactus. Django и python достаточно волшебные для меня слова, но что-то не срослось. Даже и не помню что. Видимо, убился об virtualenv и глобальное его непонимание на тот момент. В любом случае, он прошёл мимо меня. Думал запилить что-то самопальное и даже начинал писать, но всё упиралось в то, что я тотально не понимал, зачем я это делаю. Ну вот не нужна мне динамика на сервере вообще, а связываться с полным набором того, что может понадобиться, каждый раз не хотелось. Как гром среди ясного неба (инсайты посещают меня иногда, обожаю ощущать себя сказочным долбоёбом) пришло понимание того, что тот формат, который мне нужен - это вики. Структура именно та, которая хочу, версионность есть из коробки, markdown-разметка - всё просто отлично. Сломался я на шаблонах. Взглянув на то, что творится внутри Dokuwiki… Нет, конечно же, я не бросил всё и не убежал, визжа как маленькая девочка. Я какое-то время боролся с этим монстром, написанным в стиле, который в последний раз я видел десять лет назад, и тогда это уже было «фуфуфу!» Но… Последнее время я не готов в любой ситуации стойко преодолевать. До свидания, вики, может быть, в следующий раз!

Благоденствие

Я действительно считаю, что оно достижимо и я на пути к нему. Конструктивно всё просто. Есть Hugo, потому что это Go, а это модно, стильно, молодёжно. И название хорошее, эта система - родной брат моей жёлтой резиновой уточки Фридрихьа. Фридрихь и Хуго, Хуго и Фридрихь… Каталог content, как и весь проект, находятся в git. Содержимое - это обычные каталоги и файлы, которые редактируются стандартными средствами в любой операционной системе. Telegram использовался как система управления, но, в связи с блокировкой в России, я решил от него отказаться. SSH так SSH. С помощью Git поддерживается версионность и передача данных между клиентами и сервером. Хранится это всё в bitbucket, но ничто не мешает мне всё это перенести на свой сервер и обмениваться через него. В результате:

  • система простая;
  • состоит из трёх компонентов, независимых и взаимозаменяемых;
  • она никак не зависит от операционной системы или программного обеспечения на клиенте (этот текст полностью написан на телефоне).

Если это не счастье, то я даже и не знаю, каким оно должно быть.