Web

Опять про MovableType и dirify

Сегодня меня порадовали, дескать подписка на комментарии в твоем блоге не работает.

Действительно, на ряде записей ссылка "подписаться на комментарии к этой записи по RSS" была битая, вела на несуществующий фид.

Разбирательство показало, что:

  • Это касается только записей, где последняя буква (буквы) в title - непечатная (мягкий-твердый знак или знаки препинания). Эти символы дирифицируются в подчеркивание.
  • Сами такие записи имели URL вида date/bla_bla_.html (фиды: bla_bla_.xml).
  • Ссылки из списков записей (по месяцам, по рубрикам) были правильными.
  • А вот ссылки, сформированные через <$MTEntryBaseName$> вели на bla_bla.html.
Засучив рукава, я полез читать исходники MovableType и мне открылось страшное.

Вопрос про мониторинг ЖЖ

А вот есть ли какой-то способ быстро (секунды) узнавать, что в ЖЖ-юзер написал новый пост? Мониторить надо, допустим, несколько тысяч журналов.

Вижу такое решение: зафрендить и мониторить френдленту, но ведь забанят, если раз в 10-15 секунд ее дергать ?

P.S. Задавать вопросы в блоге понравилось. Работает, ответы хорошие. Попробую еще.

Мечта об RSS-читалке для гиков

Вот читаю я RSS-потоки, штук эдак 100, а хотел бы и больше. Разные, про фото, про железо, про софт, просто потоки сознания. И вот что меня достало:
  • Неинтересные мне темы. Хочу читать новости про Apple, но ни слова про iPhone. Идеально было бы отложить весь iPhone отовсюду в отдельную папочку и ее уже не читать.
  • Дубли. Выпустил Nikon новую камеру, так об этом напишут все. И фотографы и фото-новости и новости железа и вообще все. Половина просто перепечатает пресс-релиз, а вторая половина - перепечатает и откомментирует.
  • Редкие жемчуга в куче понятно чего. Ленты в которых 99% неинтересны (тематика не та), но зато остальной процент - интересен крайне.

Вот и интересно, может быть есть готовое счастье, которое бы делало простые вещи:

  1. негативную фильтрацию по ключевым словам (все кроме iPhone);
  2. позитивную фильтрацию (все про Photoshop, а остальные новости Adobe неинтересны);
  3. несколькоуровневую кластеризацию (темы-похожие тексты - полные дубли);
  4. архивацию хотя бы за несколько месяцев, а лучше вечную;
  5. поиск по архиву.
Хочу десктопное приложение (Win или Win+Mac) или в крайнем случае сервис. Готов дать денег.

Мизантропическое-2

А знаете ли вы, что плагин Crossposter (к MT4) не работает с ЖЖ по двум прозаическим причинам
  • Во-первых, автор XML::Atom::Client при постинге новой записи делает POST (как и положено), а при обновлении имеющейся - PUT (вот ударило ему в голову). Мораль: не тестировали, даже не пытались.
  • Во-вторых, тот же модуль не забывает перекодировать текст из utf-8 в &amp#xNNNN (нафига, спрашивается?), ничего не делает с title и не передает кодировку принимающей стороне.

Всех бы убил, но боюсь один остаться. Попатчил в очередной MTLJPost (видели бы вы, как он конфигурируется под MT4, просто смех один), расслабился.

Да, теперь коментарии разрешены везде.

Счастье wanted

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

Пусть для простоты - все они на стандартных распространенных движках: IPB, phpBB, VB (подозреваю, что распространенных движков есть десятка два, другими словами - счетное количество).

Ну неужели нету готового интернетного сервиса, который превращал бы указанные мной форумы в RSS-потоки ?

Экспорт темплейтов Movable Type, вариант 2

Предыдущий вариант скрипта экспортирует только те темптейты, которые уже описаны в конфиг-файле от Template Installer

В некоторых случаях это неудобно, хочется экспортировать все, включая widgets, системные темплейты и так далее. Поэтому родился новый вариант (скачать tmpl_export_full.zip).

Использование предполагается совместно с Template Installer:

./tmpl_export_full.pl OutDir [BlogID] [DSN]
 OutDir - обязательный параметр, что-то вроде 
   cgi-bin/mt/plugins/TemplateInstaller/template_sets/mycatalog
   (mycatalog будет создан если не существует)
 BlogID - ID блога (можно подсмотреть в параметрах mt.cgi при администрировании
    конкретного блога.
 DSN - Data Source в терминах DBI (dbi:Pg:movabletype - умолчание)
После исполнения скрипта, в каталоге OutDir появится набор темплейтов, который будет доступен плагину Template Installer.

ложь, большая ложь и статистика

Заглянул с статистику своего сайта, не поверите, посмотреть "используемые разрешения". Удивился.

Заглянул в статистику рунета в-целом и просто офигел:
li-101m-a.png

Граждане, вас много лет кидали! Ноутбуки (которые 1280x800) считали в одну кучу с нормальными мониторами (которые 1280x1024). О сколько нам открытий чудных...

Movable Type 4: nofollow и noindex

К MT3 был отдельный плагин nofollow, который приписывал атрибут rel=nofollow ко всем ссылкам в комментариях.

В четвертой версии эта функциональность есть прямо в самом движке. Ее несколько расширили, в частности в комментарях от доверенных комментаторов можно такую функциональность выключить (и тем их поощрить).

Естественно, о российских реалиях и теге <noindex> в SixApart не знают. Прилагаемый

патч
решает эту проблему. На глаз - работает.

P.S. Если вы не знаете что такое "патч", то он вам не нужен

Как один мужик Calendar Widget починял

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

В то же время, иметь календарик в блоге — приятно, особенно если он не сильно пустой. По счастью, авторы Movable Type дают готовый Calendar Widget, который даже работает. И я даже им долгое время пользовался, но полного счастья не было:

  • Календарик - одинаковый на всех страницах. Включая, например, архив за ноябрь прошлого года. Хотя разумнее в архиве за прошлые месяцы показывать календарь за эти месяцы.
  • А если быть точным, то календарик на странице отвечает моменту ее генерации. Для архива за прошлый месяц - это будет дата последней записи за тот месяц, другими словами там будет правильный календарь пока вы не перегенерируете страницу.
Одним словом, бардак. Впрочем, есть средства его починить, но сначала нужно поставить задачу.

Мизантропическое

Голосом зануды:
MovableType 4.x. Казалось бы, давно имеем систему Widget Set, можно собрать сайдбар из этих самых виджетов мышкой и разместить в блоге. Прекрасная штука, была еще в 3-й версии.
Однако в 4-й версии про них явно забыли и включаемые элементы настраиваются переменными (по сути, дефайнами) в шапке страницы. Как-то так:
<MTSetVar name="sidebar" value="1">
<MTSetVar name="module_recent_entries" value="1">
<MTSetVar name="module_category_archives" value="1">
Ну скажите пожалуйста, если widget set - это плохо, то нафига для них отдельный пункт меню завели ? При этом, естественно, набор переменных новых темплейтов в документации не описан, несмотря на то, что одно из ключевых Release Notes у четверки озвучено как Kick-ass documentation. Впрочем, если kick-ass переводить буквально, то ощущение от документации сходится. Попробуйте там найти что-нибудь действительно нетривиальное....

MT-Colorer. Кажется прекрасной заменой для кривого, косого и т.п MTCodeBeautifier-а (который, извините уже непонятно как скачать, хорошо что в заначке был).
Но он тянет за собой ports/devel/colorer, который в свою очередь хочет принести все известные ему библиотеки и компиляторы java, после чего все ломается. Видите-ли JDK 1.4 не собирается GCC 4.2, а у меня это, пардон, системный компилятор (FreeBSD-current) и другого тут не носят.

Эх, хорошо что я незлобивый. Другой бы давно всех убил, один бы остался. (С) Успенский, близко к тексту.

Экспорт темплейтов Movable Type

Как и обещал ранее, родил скрипт для упрощения работы по переносу темплейтов MT:
cкачать tmpl_export_lite.zip

Это не замена 97-баксового Template Exporter, а именно скрипт для легкой автоматизации работы (переносить через dump/restore не всегда удобно):

  • Предназначен для работы с Template Installer, в частности кормится его конфигурационным файлом.
  • Работает с командной строки, если у вас хостинг, то нужен shell-доступ, ftp недостаточно.
  • Назначение: сохранить результаты работы через интерфейс MT в виде, пригодном для установки TemplateInstaller (например, в другой блог). Сохраняются только темплейты, уже определенные в Template Set
  • Все настройки перевода (<__trans=..) естественно пропадают, ибо в базе данных оно сидит уже переведенное.

Апгрейд Movable Type (3.x -> 4.x), часть первая

После десятка экспериментов на кошках, была отработана (и проделана на данном блоге) процедура апгрейда на Movable Type 4.x с третьей версии. В общих чертах она совпадает с рекомендованой авторами MT4, хотя имеются, конечно, и всякие локальные отклонения.

В пошаговом виде процедура выглядит так: После десятка экспериментов на кошках, была отработана (и проделана на данном блоге) процедура апгрейда на Movable Type 4.x с третьей версии. В общих чертах она совпадает с рекомендованой авторами MT4, хотя имеются, конечно, и всякие локальные отклонения.

В пошаговом виде процедура выглядит так:

Голова нужна не только, чтобы в нее есть....

"Чисто случайно" выяснил, что Export в Movable Type 3.3 не экспортирует теги. Кучу всякой хрени экспортирует, а теги - нет.

Другими словами, процедура апгрейда в 4-ку будет примерно такой:

  • апгрейдим по стандартной процедуре (как-то даже будет работать) до 4.0
  • делаем экспорт
  • ставим рядом блог с нуля (меня, напоминаю, волнуют новые темлейты)
  • делаем импорт.
  • дальше перенастраиваем и все такое.

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

MT: перенос темплейтов (боремся с чужой жадностью)

Разработчики MovableType, судя по всему, предполагают, что вся работа с темплейтами должна происходить внутри интерфейса системы. В ряде сортов колбасы потребности, очевидно, нет. В частности, нет способов сделать:
  • backup/restore только темплейтов;
  • использование темплейтов одного блога для другого;
  • редактирование внешним редактором, а не встроенным уебибожеством.

Понятно, что разработчики плагинов в стороне не остались и Mark Carey предлагает готовое решение в виде плагинов Template Exporter и Template Installer. Есть правда одна закавыка, Installer бесплатен для некоммерческого использования, а вот за Exporter автор хочет $97.

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

<b>pg_dump -E UTF8 -F c -t mt_template movabletype | ssh server pg_restore -d movabletype -c </b>

Это, естественно, для инсталляции MT на PostgreSQL. C MySQL я практически не знаком, но уверен что средства побэкапить-поресторить табличку есть и там. Для переноса Archive Mapping нужно таскать табличку mt_templatemap. Конечно, мы неявно предполагаем что:
  • blog_id на двух инсталляциях совпадает
  • нужно перенести все темплейты всех блогов.

Естественно, для чуть более сложной задачи: экспортировать не все, а только для одного блога, экспортировать в файлы (и импортировать из них) придется попрограммировать. На первый взгляд, экспорт в формате, пригодном для импорта через Template Installer должен уложиться строчек в 20.

Movable Type 4: апгрейду быть

Несколько дней поковырял в фоновом режиме на тестовом сервере 4-й Movable Type и таки решил апгрейдиться.

Причин тому несколько (из cписка новых фич перечислены только важные для меня):

  • Главная причина апгрейда.
    Новая система темплейтов хоть и не идеально соответствует моим желаниям, но все же гораздо ближе к ним, чем старая.
    Старые темплейты я последний раз проклинал пару дней назад, переводя RSS-фид на Feedburner: пришлось исправить всего то мест пять (в идеале должно быть одно).
  • Более человеческие средства кросспоста в ЖЖ, используемый сейчас MTLJPost чудовищен.
  • Возможность сделать ветвящиеся комментарии, этот плагин был и для версии 3.3, но заставить его работать я так и не смог.
  • Встроенная поддержка OpenID, отчего использование этой авторизации стало менее замысловатым.
  • Активные авторы плагинов будут делать их (и исправлять ошибки) под 4-ю версию, а на старые — очевидно забъют.

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

Помимо этого, не подходят и старые стилевые файлы. Т.е. любимый Cutline придется рихтовать самому.

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

Movable Type 4.0. Апгрейдиться или нет...

Вердикт после попытки пару часов поработать: глюкало. Пусть сначала 4.2 выпустят, потом поговорим

Посмотрел на 4-й Movable Type с точки зрения "апгрейдиться или нет".
Впечатления двойственные:

  • Очень красивая новая панель управления, кнопочки, все мигает и переливается.
  • Появился бэкап (как я понимаю, полный), а не только экспорт.
  • Переделана система темплейтов, явно учли мои замечания :).
  • Есть готовый плагин для кросспоста в ЖЖ, не такой уродский, как используемый мной MTLJpost. Немножко недоделаный, имя аккаунта не видно где должно, но пользоваться можно.
  • Preview - настоящие. Наконец то!
  • апгрейд на тестовой площадке прошел на ура.
Попробовал проапгрейдить тестовую площадку....

Синхронизация MTЖЖ(beta.ya.ru) ? А как ?

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

И мне даже в порядке эксперимента оно было бы интересно. BUT HOW ?

Есть ли готовое или частично-готовое решение ? Ну хрен с ним с я.ру пока, но даже двусторонняя синхронизация MTЖЖ похоже малореальна. Как, например, вылить дерево комментариев из ЖЖ ?

Update. В силу излишнего AI у скрипта синхронизации с ЖЖ, пришлось комментирование тут запретить (синхронизации то нету :). Комментируйте ЖЖ-шную копию пожалуйста

Банальное: рунет растет

Банально, но на черном квадрате уже более 700 тысяч точек. Т.е. 702 тысячи сайтов в .RU/SU взяли и ответили. 600 тысяч было в начале марта, 17 процентов за 4 месяца - это все те же 60 годовых.

Ссылочное ранжирование в Рунете, часть 4: трафик по тематикам

Очередная статья на тему SEO: Ссылочное ранжирование в Рунете, часть 4: тематический трафик.
Допустим, у нас есть данные о частотах запросов (а они есть), тогда по ним можно посчитать очень интересное.
  • Берем запросы и раскладываем их по тематикам. Да, полноты не добиться, но больше половины - разложим. Получим оценку поискового трафика по данной теме.
  • Поделим ссылочные бюджеты на этот трафик - получим оценку стоимости привлечения пользователей из поисковиков.

Все это проделано в статье.

Выводы, как обычно, довольно любопытные:

  • Если смотреть по тематике, а не по конкретному запросу, то стоимость привлечения клиентов через SEO в разы и порядки дешевле, чем привлечение их же контекстной рекламой.
  • Естественно, самые дорогие клиенты - в узких тематиках. Мало запросов, высокая конкуренция и так далее.
  • Судя по всему, продвижением по низкочастотным запросам занимаются мало, по многим крупным и интересным тематикам (Автомобили, например) количество уникальных текстов ссылок на порядок меньше количества формулировок запросов. При том, что текст ссылки может быть уникальным за счет названия сайта-клиента.

Зачитать текст

Тематические бюджеты: изменения и дополнения

Достаточно плодотворная дискуссия в ru_seo, плюс множество персональных обсуждений убедили меня в том, что статья про ссылочные бюджеты по тематикам нуждается в некоторой доработке.

Что и было сделано. Встречайте Ссылочное ранжирование в Рунете, часть 3b: тематические бюджеты с изменениями и дополнениями.

Изменения и дополнения:

  • Не учитываем ссылки с "мегапорталов" - сайтов с формальной ценой ссылки более $500
  • Помимо топовых бюджетов считается среднее для Top-10 бюджетов

Напоминаю, что относиться к этим данным следует весьма осторожно:

  • многие сайты продвигаются по многим темам сразу;
  • многие сайты продвигаются не только мордами;
  • большой бюджет на ссылки не гарантирует успеха в продвижении.

Pages

Subscribe to Web