Сентябрь 2008

Drupal, BlogAPI и теги

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

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

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

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

Drupal: микроправки к BlogAPI

Все-таки Drupal пишут индусы. Пришлось по уши залезть в код, чтобы выяснить, отчего не работают metaWebLog.getCategories и mt.getCategoryList. Просто забыли проверить авторизацию, отчего, по счастью, просто все сломалось, а не стало отдавать все всем наружу. Не тестируют.

Патч: blogapi.diff.gz

Патч зашлю в Drupal сегодня.

Стандартное уведомление: если вы не знаете что такое патч, то он вам не нужен.

P.S. Работу с массивами в PHP проектировали ненатуралы.

Update: правка вошла в Drupal 6.5

This Stuff is Really Right

rrs_gitzo.jpg После наслания диарейных лучей, EMS-Почта России напряглась и донесла до меня посылку от Really Right Stuff (голова, L-bracket, площадка под объектив). Ехало оно ровно 19 дней.

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

Gitzo GT1541 + голова BH-25 от Really Right Stuff

Весит все это вместе 1260 грамм (у штатива снята центральная колонна), максимальная высота вместе с головой - 155 сантиметров, минимальная - 22. На картинке - вся эта конструкция вместе с 1DmkIII и объективом 300/4.

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

жить в эпоху перемен....

Я как-то был потрясен (не задумывался) вот этим вот сообщением в каментах. Буднично так, миллиард MD5 ключей в секунду на видеокарте. Надо найти GTX280 и на ней попробовать...

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

В distributed.net еще нет команд, которые ресурсы именно так получают?

I am

Сегодня и завтра я весь день буду на Рогожинском Хайлоаде. Сегодня - не знаю сколько, но думаю что весь день. Завтра - рулю там самой вечерней секцией про поиск, а значит точно буду весь день.

Желающие что-то пообсуждать или там поставить мне коньяку - welcome

nofollow-noindex патч для Drupal 6.4

Ссылками в комментариях спамят не только этот блог, но и мои сайты на Drupal (libraw.org,gpgpu.ru и так далее). В отличие от MovableType, антиспам-средства у Drupal развиты еще меньше, приходится пропускать без модерирования только зарегистрированных юзеров, но и это не вполне помогает.

Мировая часть проблемы в Drupal решена - ко всем ссылкам в юзерском контенте можно добавлять rel=nofollow, отчего спамить под гугл становится неинтересно. Остается яндекс, который rel=nofollow не понимает (насколько мне известно), но зато понимает "рамблеровский" (придуманный Димой Крюковым) тег <noindex>.

Сооответственно, нужно добавить три строчки кода к modules/filter/filter.module:

Сделано примерно так же, как для Movable Type:

  • Сама ссылка заменяется на явоскриптовую
  • В 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:

Сделано примерно так же, как для Movable Type:

  • Сама ссылка заменяется на явоскриптовую
  • В noscript,noindex, a.. rel=nofollow помещается слово [link] которое и становится ссылкой для Javascript-disabled people (стандартные стили у Drupal такие, что картинка переносится на новую строку и красивая стрелка не получается).

Стандартный дисклеймер. Если вы не знаете что такое патч, то вам все вышеописанное не нужно.

nofollow-патч для MovableType, 3-я попытка

После высказанной критики, вчерашний патч пришлось усовершенствовать:

  • Картинка со ссылкой убирается в <noscript>, большинство посетителей ее не увидят.
  • Переход по ссылке делаем яваскриптом, через window.location=

Патч вот: patch-nofollow-img-js.gz

Понятно, что есть недостатки:

  • В статусной строке не отображается URL. Это тоже лечится яваскриптом, но уже лень т.к. просто присвоение windows.status= не работает в Firefox/Opera, нужно таймеры ставить.
  • Потерялось открытие ссылки в отдельном окне. Можно, наоборот, сделать через window.open, но тогда потеряется открытие в текущем. Счастья нет.

В этом блоге, впрочем, используется несколько другая версия патча, которая оставляет ссылки на мои сайты прямыми, а остальные открывает в новом окне. Не публикую т.к. не нашел разумного способа вытащить хотя бы URL текущего блога в том месте, где зовется nofollowfy();

MovableType: новый nofollow-патч, MT 4.21

Поапгрейдил варез на MovableType 4.21 (коммерческий, раз уж его всем раздают). Работает. Стало местами поприятнее выглядеть, а так я кардинальной разницы не вижу. Ну плагин для тредовых комментариев теперь прямо в поставке, но он у меня и так был.

Раз уж засунул туда нос, переделал свой патч для <noindex>. У старого была проблема в том, что сам текст ссылки не индексировался Яндексом (ибо ссылка была запихана в noindex целиком). Теперь ссылка устроена иначе - текст подчеркивается, а сама ссылка теперь в иконке (позаимствованной у Википедии). Пример можно посмотреть в любых комментариях, например тут.

Скачать патч можно тут:

  • patch-nofollow-img.gz. Возможно, вам захочется поправить URL картинки, но это уже сами.

Чтобы два раза не вставать, полный список остальных моих патчей к MT 4.x:

  • patch-monday-mt41.gz делает понедельник первым днем недели в стандартном календаре.
  • patch-rudate.gz - русские названия дат (переведен блок для итальянского языка, его и нужно ставить в настройках блога).
  • patch-dirify.gz - добавляет русские буквы в таблицы "дирификации".

Все патчи подходят к 4.21

LibRaw 0.6.0 Release

Я понимаю, что уже опротивел за последние три дня, поэтому буду краток.

LibRaw 0.6.0 Release берут отсюда. Полный Changelog там, а краткий вот:

  • Поддержка Nikon D90 и P6000, Canon 50D, Sony A900, Panasonic FZ28 и LX3. При этом D90 и A900 поддержаны нормально, а для остальных нет таблиц RGBG-XYZ, цвета могут быть кривоваты (и будут еще апдейты).
  • Примитивное подавление бэндинга для камер Canon.

LibRaw 0.5.5 и LibRaw 0.6.0 Beta2

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

Скачивать тут, Changelog тоже тут

Мы уже проползли в KDE (в 4.2, это даже не бета :) отчего масса софта уже использует LibRaw (конечно, если вы возьмете свежую libkdcraw и соберете), цитирую:

  • digiKam - photo management software
  • kphotoalbum, an alternative to digiKam but with less features.
  • gwenview, a image viewer, used to show thumbs in icon view.
  • dolphin, a file manager, used to show thumbs in icon view.
  • darkroom, a experimental RAW converter
  • krita, a image editor, used as RAW image loader
Поздравления принимаются

Pages