2008

Натягивание Drupal на PostgreSQL

Несмотря на мой исходный пессимизм, появившееся неделю назад острое отвращение к MySQL заставило меня расчехлить напильник и наконец доработать Drupal 6.5 до устраивающей меня совместимости с PostgreSQL.

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

Несмотря на мой исходный пессимизм, появившееся неделю назад острое отвращение к MySQL заставило меня расчехлить напильник и наконец доработать Drupal 6.5 до устраивающей меня совместимости с PostgreSQL.

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

Drupal + PostgreSQL = еще один патч

В процессе попыток использования Drupal 6.5 с PostgreSQL выявилась мелкая неприятность: интерфейс к постгресу не вполне правильно эскейпит строки со спецсимволами. Постгрес хочет, чтобы ему давали в виде E '\r\n', а Друпал дает без E. Пожелание это новое, появилось в какой-то из восьмых версий, на функциональность не влияет, но противно забивать лог неизвестно чем.

Патч прилагается: drupal65-pgsql8x-patch2.diff.gz

В Drupal тоже настучал, глядишь добавят в 6.6 или там в семерку (до кучи сдал туда же предыдущий патч, от него тоже никакого вреда, кроме пользы).

Про Амазон и русские кредитки

Хваленые на Highload++ Amazon Web Services отказались скушать отечественную кредитку дебитовую Визу от ВТБ24. Внешне на сайте это никак не проявляется, однако банк отверг попытку списать с меня доллар, о чем прислал две SMS.

И я вроде даже понимаю почему - при регистрации нет места для security code (CVV2), а без этого банк интернетные платежи не авторизует. Придется и дальше, как лоху, арендовать виртуальные серверы.

Вообще, для меня загадка, как можно реализовать автоматическое списывание платежей в подобных условиях: CVV2 сохранять нельзя (по правилам карточных систем), без него - не работает. Хотя PayPal это как-то делает.

Drupal + PostgreSQL: вторая попытка

Внезапно возникшее отвращение к 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 - подозревает и выставляет), что лечится простым патчем:

drupal64.pgsql.diff.gz

Ваш MySQL - то еще Г...

Сегодня с утра один из моих сайтов запел, что Table '..../cache_block' is marked as crashed and should be repaired

Ну я ее, конечно REPAIR TABLE, но осадок остался. MySQL несколько месяцев никто не перезапускал, сервер тоже не падал:

12:21PM up 124 days, 21:33, 1 user, load averages: 3,48 3,59 3,63

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

Поставить mysqlcheck в крон?

I am - 2

Завтра и послезавтра (6-7 октября) я буду на Бунинском Хайлоаде. С утра и до непонятно какого времени, думаю что до среднего послеобедья.

Принимаю подношения, раздаю автографы, развлекаю публику.... Желающие что-то обсудить узнают меня по усам, очкам и майке АиП (не перепутайте с Лешей Ивановым)

Бешеные роботы возвращаются

crazy-robots.jpg

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

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

Drupal: второй патч для noindex

Помимо стандартного HTML Filter, который пришлось править для защиты от ссылочного спама, в Drupal обнаружилось еще одно аналогичное место: заголовок комментария.

Для зарегистрированных на сайте пользователей, имя пользователя является ссылкой на профиль, если читающий не залогинен, то даже и ссылки нет. Для сторонних же пользователей, указавших при комментировании линк на сайт, имя является ссылкой на этот сайт. Конечно, эта ссылка защищена от гугла через rel=nofollow, но наши поисковики такого не понимают, а хотят noindex.

Патч: drupal-themeinc-noindex.diff.gz

Так как я не вижу никакого смысла в индексировании Яндексом юзерских ников анонимов, то ухищрения с яваскриптом не нужны, просто noindex и все.

Drupal, BlogAPI и теги

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

По идее, для этого предназначен Aggregator, но его интеграция с Taxonomy запланирована только в Drupal 7. Кроме того, pull мне очень не понравился, хочется push. Для push есть BlogAPI, там даже поддерживается установка категорий (тоже довольно диким способом, ибо информация о словарях недоступна, можно получить только список терминов), но вот установка тегов (т.е. терминов, которых в словаре может не быть) через стандартный BlogAPI невозможна. mt_tags - не поддерживаются и не обрабатываются.

Я уже почти поправил BlogAPI (всего то нужно задать один параметр конфигурации - в какой словарь класть теги, остальное все тривиально) и оно уже почти работало, но нашлось готовое решение.

Inline Tags делает все что нужно. Не стандартным путем (т.е. использовать готовое поле tags в blog-редакторе и передачу значений в mt_tags), но вполне приемлемым: список тегов пишется в [tags][/tags] и все работает (проверено).

Pages