Во-первых, доля Яндекса оказалась заниженной. Выяснилось, что в ряде случаев резался реферер, что в Яндекс.Почте быстро поправили.
Во-вторых, доля Гугл-почты оказалась просто неприлично низкой, меньше процента.
Впрочем, несложный эксперимент показал, что gmail.com тоже режет рефереры. Посылаем сами себе письмо со ссылкой на собственный сайт (логи которого доступны), жмем на нее и видим в логах:
Drupal-овская Taxonomy import/export via XML в версии 1.1 работала. Я даже научился туда XML-и генерировать и было мне счастье.
А версию 1.2 они сломали (мотивируя починкой Security Advisory). Короткие таксономии работают, а попытка залить туда 200 терминов кончается фиаско.
А ведь это модуль не ежедневного использования, шансов на починку гораздо меньше чем обычно. И обычно то не чинят, а ради одноразовой штуки заморачиваться не хочется вовсе. Я вот перешел на CSV import, хотя он и менее удобен: присвоить ID терминам нельзя.
Ответ по заявкам телезрителей (пришло в личную почту) на вопрос про сапам в комменатриях.
На удивление, простые народные средства помогают не тратить на эту проблему больше нескольких минут в день (на 5 сайтах с открытыми комментариями и приличным pagerank).
Хочется думать, что помогает в первую очередь бессмысленность спама по каментам: noindex+nofollow везде, отчего нет смысла тратить много усилий. Но безумные роботы таких тонкостей не знают и их реально много.
Несмотря на мой исходный пессимизм, появившееся неделю назад острое отвращение к MySQL заставило меня расчехлить напильник и наконец доработать Drupal 6.5 до устраивающей меня совместимости с PostgreSQL.
В настоящую минуту один из моих сайтов уже работает под PgSQL со всеми нужными мне модулями, а остальные будут переведены после нескольких дней тестирования первого.
Несмотря на мой исходный пессимизм, появившееся неделю назад острое отвращение к MySQL заставило меня расчехлить напильник и наконец доработать Drupal 6.5 до устраивающей меня совместимости с PostgreSQL.
В настоящую минуту один из моих сайтов уже работает под PgSQL со всеми нужными мне модулями, а остальные будут переведены после нескольких дней тестирования первого.
В процессе попыток использования Drupal 6.5 с PostgreSQL выявилась мелкая неприятность: интерфейс к постгресу не вполне правильно эскейпит строки со спецсимволами. Постгрес хочет, чтобы ему давали в виде E '\r\n', а Друпал дает без E.
Пожелание это новое, появилось в какой-то из восьмых версий, на функциональность не влияет, но противно забивать лог неизвестно чем.
Хваленые на Highload++ Amazon Web Services отказались скушать отечественную кредитку дебитовую Визу от ВТБ24. Внешне на сайте это никак не проявляется, однако банк отверг попытку списать с меня доллар, о чем прислал две SMS.
И я вроде даже понимаю почему - при регистрации нет места для security code (CVV2), а без этого банк интернетные платежи не авторизует. Придется и дальше, как лоху, арендовать виртуальные серверы.
Вообще, для меня загадка, как можно реализовать автоматическое списывание платежей в подобных условиях: CVV2 сохранять нельзя (по правилам карточных систем), без него - не работает. Хотя PayPal это как-то делает.
Внезапно возникшее отвращение к MySQL (каменты тоже читать) заставило посмотреть на связку Drupal + PostgreSQL еще раз.
Если аккуратно, то все работает. Т.е. к core у меня и раньше претензий не было, а сломался я в модуле Backup-Restore. Сейчас - с минимальным набором 3rd-party (Tagadelic, Inline Tags, Site Menu, Pathauto, Transliteration) все вроде живет. Точнее, Transliteration не транслитерирует, но оно этого и с MySQL не делало, но всяких сообщений об ошибках и прочих безобразий пока нет, за исключением одного:
У меня на разных инсталляциях PostgreSQL стоит разный default client_charset. Где-то KOI8, где-то CP1251, но нигде не стоит UTF8 (базы все, естественно, в UTF). Это все по соображениям совместимости - много где живут скрипты многолетней давности и вставлять в каждый из них set client_charset мучительно.
Drupal о такой подлости не подозревает (MovableType - подозревает и выставляет), что лечится простым патчем:
Для зарегистрированных на сайте пользователей, имя пользователя является ссылкой на профиль, если читающий не залогинен, то даже и ссылки нет. Для сторонних же пользователей, указавших при комментировании линк на сайт, имя является ссылкой на этот сайт. Конечно, эта ссылка защищена от гугла через rel=nofollow, но наши поисковики такого не понимают, а хотят noindex.
Задача: публиковать автоматические ленты новостей на сайтах. Новости берутся с веба, обрабатываются (распознается тематика, присваиваются теги), после чего появляются на сайте.
По идее, для этого предназначен Aggregator, но его интеграция с Taxonomy запланирована только в Drupal 7. Кроме того, pull мне очень не понравился, хочется push. Для push есть BlogAPI, там даже поддерживается установка категорий (тоже довольно диким способом, ибо информация о словарях недоступна, можно получить только список терминов), но вот установка тегов (т.е. терминов, которых в словаре может не быть) через стандартный BlogAPI невозможна. mt_tags - не поддерживаются и не обрабатываются.
Я уже почти поправил BlogAPI (всего то нужно задать один параметр конфигурации - в какой словарь класть теги, остальное все тривиально) и оно уже почти работало, но нашлось готовое решение.
Inline Tags делает все что нужно. Не стандартным путем (т.е. использовать готовое поле tags в blog-редакторе и передачу значений в mt_tags), но вполне приемлемым: список тегов пишется в [tags][/tags] и все работает (проверено).
Все-таки Drupal пишут индусы. Пришлось по уши залезть в код, чтобы выяснить, отчего не работают metaWebLog.getCategories и mt.getCategoryList. Просто забыли проверить авторизацию, отчего, по счастью, просто все сломалось, а не стало отдавать все всем наружу. Не тестируют.
Ссылками в комментариях спамят не только этот блог, но и мои сайты на Drupal (libraw.org,gpgpu.ru и так далее). В отличие от MovableType, антиспам-средства у Drupal развиты еще меньше, приходится пропускать без модерирования только зарегистрированных юзеров, но и это не вполне помогает.
Мировая часть проблемы в Drupal решена - ко всем ссылкам в юзерском контенте можно добавлять rel=nofollow, отчего спамить под гугл становится неинтересно. Остается яндекс, который rel=nofollow не понимает (насколько мне известно), но зато понимает "рамблеровский" (придуманный Димой Крюковым) тег <noindex>.
Сооответственно, нужно добавить три строчки кода к modules/filter/filter.module:
В noscript,noindex, a.. rel=nofollow помещается слово [link] которое и становится ссылкой для Javascript-disabled people (стандартные стили у Drupal такие, что картинка переносится на новую строку и красивая стрелка не получается).
Стандартный дисклеймер. Если вы не знаете что такое патч, то вам все вышеописанное не нужно.
Ссылками в комментариях спамят не только этот блог, но и мои сайты на Drupal (libraw.org,gpgpu.ru и так далее). В отличие от MovableType, антиспам-средства у Drupal развиты еще меньше, приходится пропускать без модерирования только зарегистрированных юзеров, но и это не вполне помогает.
Мировая часть проблемы в Drupal решена - ко всем ссылкам в юзерском контенте можно добавлять rel=nofollow, отчего спамить под гугл становится неинтересно. Остается яндекс, который rel=nofollow не понимает (насколько мне известно), но зато понимает "рамблеровский" (придуманный Димой Крюковым) тег <noindex>.
Сооответственно, нужно добавить три строчки кода к modules/filter/filter.module:
В noscript,noindex, a.. rel=nofollow помещается слово [link] которое и становится ссылкой для Javascript-disabled people (стандартные стили у Drupal такие, что картинка переносится на новую строку и красивая стрелка не получается).
Стандартный дисклеймер. Если вы не знаете что такое патч, то вам все вышеописанное не нужно.
В статусной строке не отображается URL. Это тоже лечится яваскриптом, но уже лень т.к. просто присвоение windows.status= не работает в Firefox/Opera, нужно таймеры ставить.
Потерялось открытие ссылки в отдельном окне. Можно, наоборот, сделать через window.open, но тогда потеряется открытие в текущем. Счастья нет.
В этом блоге, впрочем, используется несколько другая версия патча, которая оставляет ссылки на мои сайты прямыми, а остальные открывает в новом окне. Не публикую т.к. не нашел разумного способа вытащить хотя бы URL текущего блога в том месте, где зовется nofollowfy();
Поапгрейдил варез на MovableType 4.21 (коммерческий, раз уж его всем раздают). Работает. Стало местами поприятнее выглядеть, а так я кардинальной разницы не вижу. Ну плагин для тредовых комментариев теперь прямо в поставке, но он у меня и так был.
Раз уж засунул туда нос, переделал свой патч для <noindex>. У старого была проблема в том, что сам текст ссылки не индексировался Яндексом (ибо ссылка была запихана в noindex целиком). Теперь ссылка устроена иначе - текст подчеркивается, а сама ссылка теперь в иконке (позаимствованной у Википедии).
Пример можно посмотреть в любых комментариях, например тут.
Скачать патч можно тут:
patch-nofollow-img.gz. Возможно, вам захочется поправить URL картинки, но это уже сами.
Чтобы два раза не вставать, полный список остальных моих патчей к MT 4.x:
patch-monday-mt41.gz делает понедельник первым днем недели в стандартном календаре.
patch-rudate.gz - русские названия дат (переведен блок для итальянского языка, его и нужно ставить в настройках блога).
patch-dirify.gz - добавляет русские буквы в таблицы "дирификации".
Поковырял 10 минут детектор доменных паркингов на черном квадрате и все сломалось. Недавно отмечали миллион на квадрате, на прошлой неделе было еще чуть больше (1007012) "настоящих живых сайтов", а стало 928332.
Ну значит еще раз инфоповод будет, где-то осенью... Если, конечно, не выяснится, что паркингов еще больше.
Редкий случай, когда невозможно доказать, что у меня работает полный автомат.
Автоматическое обновление черного квадрата позавчера поздравило меня с приездом и выдало круглую цифру. Позволю себе скриншот:
Торопитесь увидеть, это продержится до следующей среды, а потом их станет еще больше.
На всякий случай: подсчет парковок у меня довольно условный и срабатывает только если запаркованых доменов на одном хостере реально много, не меньше нескольких тысяч.
Мучаюсь тут с MetaWeblog API: мои перловые изделия ничего, кроме system.listMethods позвать толком не могут, подозреваю косяк с авторизацией, который побороть пока не сумел.
В то же время, всякие w.bloggar и прочие ScribeFire c этим сервером общаются почти нормально, во всяком случае и список блогов получить можно и запостить выходит.
Отсюда вопроc: а есть в природе какой-нибудь удобный отладочный XML-RPC proxy ? Google находит нечто невнятное на питоне, но я на нем плохо розумию.
UPDATE: вы не поверите, но проблема была в том, что у меня был числовой пароль. Эти перловые клиенты, не задумываясь, слали <int>пароль</int> вместо <string>
Каменты временами жгут, рекомендую. В фид включены и те комментарии, которые сабмитят читатели через ЖЖ.
2. Желающие читать комментарии к конкретной записи могут это делать по RSS. Над формой комментария каждой записи есть ссылка все комментарии к этой записи вы можете Subscribe to feed получать в RSS-потоке - вот это оно и есть.
Присылание комментариев по E-mail я пока не осилил и скорее всего осиливать не буду.
3. Временно, до апгрейда сервера (1-3 недели), публикация комментариев производится асинхронно. Комментарии будут появляться на сайте через 1-3 минуты, а комментаторов это избавит от ошибок Proxy timeout и прочих подобных.