vitus_wagner: My photo 2005 (Default)
Пишут, что ЖЖ и DW договорились.
vitus_wagner: My photo 2005 (Default)
Тихо и незаметно у DW появилось хранилище файлов.

Я на всякий случай склонировал туда те 15 картинок, которые у меня на ЖЖ-шном файловом хостинге валялись. Надо бы найти теперь те посты, откуда на них ссылки и подправить и сслыки тоже.

Ни за что бы я про это не узнал, если бы не подписался на меня [personal profile] contemplator и я не полез смотреть его журнал.
vitus_wagner: My photo 2005 (Default)
А в DW есть такая фича claim OpenID.

Что она делает - она позволяет доказать что некий openid принадлежит тому же человеку, что и вот этот аккаунт в DW. В результате, если вы, например сделаете claim своему аккаунту в ЖЖ, то все ваши комментарии, импортированные из ЖЖ, как в ваш журнал, так и в любые другие, причем даже импортированные пять лет назад, станут подписаны вашим DW-аккаунтом, а значит на них будут распростнаняться настройки безопасности, полагающиеся для локальных комментариев - будут показываться картинки и ссылки.
vitus_wagner: My photo 2005 (Default)
Читаю тут комментарии к видеовыступлениям [livejournal.com profile] sapojnik и думаю, что комментаторы-то правы. Фон и образ выступающего имеют огромное значение для восприятия выступления.

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

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

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

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

Фантастические и астрономические посты - на фоне звездного неба. Но чтобы реально со звездами. то есть снимать придется в деревне, на втором этаже на фоне окна, с такого ракурса, чтобы земля в кадр не попадала.
vitus_wagner: My photo 2005 (Default)
http://yro.slashdot.org/story/15/06/06/163238/anti-tpp-website-being-blacklisted?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29

Сайт, агитирующий против Trans Pacific Partnership попал в списки спама во всех крупных социальных сетях. Утверждается также что он попал в черные списки у E-MAil провайдеров, и в результате в электронной почте тоже нельзя упоминать ссылки на него, а то в спам попадет. (если хотя бы один из двух переписывающихся пользуется каким-нибудь крупным почтовым провайдером)

Вообще борьба социальных сетей (включая ЖЖ и DW) со связностью интернета, желание помешать пользователям постить ссылки под предлогом борьбы со спамом, меня достает со страшной силой. У себя в журналах я насколько могу, разрешаю указывать ссылки, но скажем опции разрешить ссылки openid пользователям ни тот ни другой не предоставляет.
vitus_wagner: My photo 2005 (Default)
Решил тут по случаю весны объявить амнистию. И разбанил некоторых пользователей, которых недавно (и даже некоторых, которых давно) забанил за мат и чрезмерное ЧСВ. Кого забанил за занудство - тех не разбанивал.
vitus_wagner: My photo 2005 (Default)
Похоже, что DW унаследовал от LJ проблему с тем, что иногда в журнале внезапно оказывается забанен юзер, против которого хозяин журнала ничего не имеет.

Заглянул я сегодня в список банов в DW и обнаружил там по крайней мере один user-id которого совершенно не ожидал там увидеть.
vitus_wagner: My photo 2005 (Default)
Тут случайно сегодня попалась информация о существовании pump.io - распределенной социальной сети, поддерживающей репликацию, федерацию и тому подобные интересные фишки. Конечно, оно так же как и diaspora больше заточено под twitter-like чем под ЖЖ-like стиль общения.

Но я склоняюсь к мысли, что можно и попытаться этой штукой воспользоваться.

Во всяком случае в качестве бэкнд хранилища там предлагается использовать redis или mongodb а не mysql и написано оно не на php, а на node.js.
vitus_wagner: My photo 2005 (Default)
По совету [personal profile] dinozavr  поставил Deepest Sender. Это такой плагин к файрфоксу,
являющийся клиентом к ЖЖ. Интерфейс неожиданно симпатичен для мозилловского экстеншна. Оказывается, есть люди, которые умеют писать на XUL.
vitus_wagner: My photo 2005 (white)
Нашел вот клиент для андоида, который умеет в DW постить.

Вывод первый - location прописывает криво.

Меню тэгов не показывает.
vitus_wagner: My photo 2005 (Default)
Ну, вот - всё от кросспостил (без комментариев, правда). Полчаса заняло писание скрипта, минут 10 он работал. Делается это так: Сначала скрипт обнюхивает файл с постом, и пишет файлик с метаинформацией примерно такого вида:
Date: 2012-12-27 08:10
Options: backdate
Subject: Этого не может быть, потому что не может быть никогда.
Tags: экзопланеты
попутно вычищая их тела поста директивы ikiwiki, и если надо, заменяя их на чистый markdown. Потом тело поста пропускается через pandoc и скармливается
charm -q -x file.with.metadata --autoformat=off --backdate=on
Что странно - в wheezy charm работает, будучи запущен python-ом 2.6, но если его запусить python-ом 2.7 ухитряется перекодировать всё отправляемое на сервер по второму разу в utf-8. Кому интересно почитать откросспощенное, искать в календаре за январь и февраль.
vitus_wagner: My photo 2005 (Default)
Двухмесячный эксперимент по ведению блога на платформе ikiwiki признан провалившимся.

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

С чем связаны проблемы с дискуссиями, более менее понятно. Более того, они были вполне предвидмы, но я надеялся что найду силы это пофиксить, доработав модули comments и emailnotify в ikiwiki, чтобы было не хуже, чем в ЖЖ-based движках. Не собрался.

Кроме того, замечено что по мере увеличения количества постов время на обработку постинга комментария растёт.
Это, увы, совершенно неприемлемо. Если за два месяца это время выросло примерно вдвое-втрое, что будет через год? За эти два месяца было опубликовано всего 72 поста. В ЖЖ - больше 3 тысяч.

Это, похоже неустранимая бага дизайна ikiwiki. Хотя, по-моему в принципе создание движка на файловой системе, который имеет время обработки поста O(1) от числа страниц вполне возможно. Ну или хотя бы O(log log n).

Возможно, проблема ещё и в том как ikiwiki работает с git. В svn-based вики по детям пространства таких тормозов не замечено.

В общем, из ЖЖ/DW сваливать надо по социальным соображениям, но первый опробованный вариант оказался неудачным по техническим соображениям. Будем продолжать поиск.

P.S. Как вы считаете, нужно ли перепостить в ЖЖ/DW те 72 поста?

Deadlock

Jan. 15th, 2013 11:24 pm
vitus_wagner: My photo 2005 (Default)

Обнаружилось что в ikiwiki возникает какой-то deadlock. Причем, видимо, только с использованием git в качестве бэкэнда, а то бы может давно заметили. Сейчас вот грохнул процесс git push origin (origin и рабочая копия - в одной файловой системе) и в результате смог завершиться десяток процессов и запоститься три комментария.

Но вообще с блокировками они там явно что-то перемудрили. Уж во всяком случае окно комментирования должно на порядок быстрее открываться при данной мощности машины. Причем профайлер ничего интересного не показывает.

vitus_wagner: My photo 2005 (Default)

Поднял, наконец свой собственный OpenID провайдер. Путем минимальных переделок примера к модулю Net::OpenID::Server. Пока что никаких simple registration и attribute exchange extension не поддерживает, так как их, похоже, забыли положить когда переписывали модуль на поддержку OpenID 2.0.

Вообще OpenID 2.0 это что-то ужасное. Исходный OpenID был простым и понятным протоколом - вот URL, по ней есть контент, и где-то маленький-маленький элемент link, который указывает на опенидный сервер. Мы у этого сервера спрашиваем, а правда, что тот, кто к нам пришёл — законный владелец этой URL. Тот проверяет и отвечает да/нет. Всё. Если этот человек хочет ещё что-то про себя рассказать не людям, а другим серверам, может link с другим rel (например foaf) вписывать.

Теперь накрутили какой-то Yadis, для корректной работы которого нужно отдавать нестандартные http-заголовки, какие-то xrds, которые непонятно какой смысл имеют. При этом поддерживают все кто во что горазд. Например, хотя спецификация Yadis вообще-то предусматривает использование <meta http-equiv> Dreamwidh её кушать не хочет - ему http-заголовок подавай.

При этом половина ссылок на спецификацию и библиотеки с openid.net возвращает 404, а готовых drop-in реализаций не в виде плагинов к огромным фреймворкам нет. Приходится раскапывать информацию где-то на stackoverflow и чуть ли не в википедии.

Кстати, про foaf, похоже, забыли, и забыли незаслуженно.

Расширения sreg и ax надо будет прикрутить. А то вдруг заведется среди тех, куда я хожу комментировать, блог, который умеет оттуда email для посылки ответов или хотя бы для вытаскивания аватарки с gravatar-а доставать.

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

vitus_wagner: My photo 2005 (Default)

О существующем положении вещей

Практика показала, что OpenID довольно плохое решение для "бегства из ЖЖ". Пока ЖЖ лежит, никто блог и не комментирует, поскольку аутентифицироваться через OpenID не может.

Вообще, OpenID за те годы, которые прошли со времен его изобретения Фицпатрикром испортился. Исходно идея была очень симпатична - человек, приходя комментировать в чужой блог, представляется URL своего блога. Представляться комментатор должен для того, чтобы у него накопилась репутация. Очевидно, что "владелец такого-то блога" это вполне себе репутация.

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

Особенно, тут отличился гугль. У которого URL вообще неудобочитаема. Конечно, с тех пор в OpenID появлись всякие расширения, которые позволяют запросить определенную информацию о том, кто аутентифицировался. Но нужна ли эта информация читающим блог? Ну ладно E-Mail, он нужен самому блогодвижку, чтобы комменты на почту отправлять. Но всё остальное? Самого главного-то что пользователя как-то характеризует - какой-нибудь ссылки на то, что он ещё написал в интернете, нет.

Кстати, если подумать, то требование чтобы в момент регистрации пользователя его OpenID провайдер был online есть содержательный смысл. Ведь куда мы пойдем для того, чтобы что-то узнать о пользователе? На ту URL, которая является его claimed identity. Ничего другого у нас всё равно нет. Если пользователь у нас не первый раз, то можно просто когда он первый раз (при активном своём сервере) аутентифицируется, выдавать ему уже местную куку на месяц-другой, как делает lj.rossia.org.

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

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

О том, чего хотелось бы

Что такое, на мой взгляд, распределенная блогосфера?

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

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

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

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

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

  1. Используются надежные криптографические алгоритмы и протоколы.
  2. В этих протоколах предусмотрен срок действия сертификатов
  3. Предусмотрена процедура отзыва.

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

Но вот придумать процедуру авторизации, которая не требовала бы наличия в интернете (в данный момент) сервера, которому пользователь полностью доверяет, и на котором можно хранить секрет, и не требовала хранения какого-то достаточно объемного (не вмещающегося в человеческую память) секрета при пользователе, довольно сложно. Хэшированный пароль с солью - это секрет. Его нельзя делать публично доступным, как это было в юниксах 1970 года - словарные атаки на современном железе весьма эффективны. В принципе, можно попробовать распространять вместе с RSS-фидом блога что-нибудь симметрично-зашифрованное с помощью PBKDF2 или scrypt. Тогда серверный софт несущий любую копию данного блога сможет аутентифицировать его владельца.

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

vitus_wagner: My photo 2005 (Default)

Рассмотрел ещё один генератор френдленты, написанный mtve - rssagr

Проект существенно менее зрелый, чем rawdog, но несколько приятных особенностей есть.

Плюсы:

  1. Компактный скрипт с минимумом внешних зависимостей. Легко модифицировать и развивать
  2. Ротирует старые записи в отдельные HTML-файлы (у rawdog аналогичная функциональность достигается плагином)
  3. Держит список фидов отдельно от прочей конфигурации (каковой пока вообще не имеет)

Минусы:

  1. Не имеет никакого шаблонизатора. Не генерирует ссылку на css.
  2. Ссылки на предыдущие куски ленты генерируются независимо от их наличия
  3. Как и rawdog при добавлении большого количества фидов одновременно, не располагает свежескачанные записи в порядке написания
  4. Не имеет никакого интерфейса добавления, который бы избавлял пользователя от ручного поиска ссылки на фид (rawdog хоть из командной строки умеет скачивать html и парсить его в поисках <link rel="alternate">
  5. Не разделяет публичные данные (сгенерированный html) и внутренние (кэш состояния потоков). Я, конечно, могу доступ к этому кэшу ограничить средствами файловой системы и web-сервера, но подход rawdog, у которого есть недоступная по web директория для локального состояния и конфигурации, мне чем-то нравится больше.
  6. Всё-таки непонятно, чем автора не устроили имодуль XML::RSS, XML::RSSLite, XML::Feed и прочие несть им числа.
  7. При регулярном использовании ротирует страницу целиком, даже если с момента предыдущего апдайта появилось 1-2 новых сообщения.

Что бы можно сделать: 1. Прикрутить шаблонный движок (от HTML::Template, чтобы использовать общий шаблон страницы и css с блогом ikiwiki). 2. Для хранения списка фидов использовать не плоский текстовый файл, а foaf. Раз уж оно лежит там же где раздаваемые html. 3. Поправить алгоритм сортировки.

Но пока у меня rawdog работает, это имеет меньший приоритет чем древовидные комментарии и корректная работа почтовой нотификации.

vitus_wagner: My photo 2005 (Default)

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

Решив всё-таки из DW уйти я встал перед необходимостью завести и собственную френдленту.

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

Пока эксперементирую с rawdog.

Эта собака страшная в общем-то делает почти всё, что мне надо, и почти так, как мне надо. Правда, иногда случаются проблемы с кодировками. Типичные для питоновских web-интерфейсов попытки проинтерпретировать как ascii то, что ascii не является, Как бы его по умолчанию заставить считать что всё, что пришло из сети - по умолчанию utf-8.

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

И интерфейс для добавления новых фидов команднострочный. Хотя я может ещё это и пофикшу и приделаю какую-нибудь cgi-шку.

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

vitus_wagner: My photo 2005 (Default)
Что-то я заметил, что писать в блоге на общественно-политические темы мне не хочется. А на технические я пишу именно там, поскольку из-за глюков DW мне устраивать дискуссии здесь не хочется вообще. (хотя древовидные комменты там я так пока и не допинал). Поэтому данный журнал я теперь рассматриваю как не место для дискуссий доску объявлений о своей личной деятельности и вопросов к народу. Поэтому открываю комменты в ЖЖ. Поскольку меня перестает интересовать связаность дискуссий, и становится более важной возможность получить ответы от всех желающих высказаться.
vitus_wagner: My photo 2005 (Default)
Как вы считаете, сервис по распространению универсальных юзерпиков gravatar это добро или зло?

Я вообще в принципе, склонен считать что любой централизованный сервис в интернете это зло, но DNS и поисковые машины - зло неизбежное. Никакое Netsukuku их пока не заменит. C другой стороны, растаскивание "социальности" по блог-сайтам, когда за пределами своей социальной сети пользователь - никто, и выглядит никак - это ещё большее зло.

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

Опять же хорошо, когда есть выбор, А тут выбор есть. Столь же широко, если не шире, поддерживается Libravatar.org.

Upd Хотя я бы предпочёл, чтобы стандратом де-факто стала спецификация pavatar или ей подобная, которая не завязана на централизованные сервисы.
vitus_wagner: My photo 2005 (Default)
1. Пока я его не закрываю. Прежде чем можно будет съехать на свой собственный blog, там нужно ещё много чего доделать. Поэтому содержательные посты пока будут тут.

2. Правда, когда доделаю, кроспосстов в ЖЖ/DW делать не буду. Попрошу кого-нибудь с платным аккаунтом заимпортировать RSS или atom feed, и пусть все подписываются на него.

3. И вообще, никто не хочет помочь мне с дизайном? (помочь - это патчи к local.css, а не советы)

Upd. В ЖЖ меня уже заимпортировали [livejournal.com profile] vitus_wagner_rs. Можно подпиываться, хотя и пока бессмысленно.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

March 2017

S M T W T F S
    1 234
5 6 7 89 10 11
12 1314 1516 17 18
19 20 21 22 232425
262728293031 

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 23rd, 2017 04:26 pm
Powered by Dreamwidth Studios