neudor

log

Entries Comments



Month: October, 2008

Новый поисковик

16 October, 2008 (12:45) | Splog | By: neudor

Сейчас прочитал про новый поисковик от Opera, который может индексировать структуру веб-страниц. http://internetno.net/2008/10/16/opera-search/

Что заметит думающий читатель? Что когда этот сервис станет доступен в паблике, настанет просто рай. Наконец-то можно будет искать страницы по содержимому meta-тегов. Например,
<meta name=”generator” content=”WordPress *” />

Ну а потом, очевидно, скриптом сортировать по PR или ТИЦ. Скорее бы уж!

Раздаю кейворды на халяву

9 October, 2008 (13:31) | Splog | By: neudor

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

Футбол: Евро-2008
Уничтожит ли Землю андронный коллайдер
Выпускной
Присоединение Украины к НАТО
Концерт Кайли Миног в Москве
Футбол: Россия победила Грецию
Трoица
Как прошёл Максидром

Таких у меня аж 1662 штуки. Интересно? Забирайте!

Следите за обновлениями. У меня есть ещё. =)

Конвертация дерева в nested sets

9 October, 2008 (11:17) | PHP | By: neudor

Я кодю кое-чего крупное на CakePHP. Ну то есть код с нуля, а базы кое-какие остались от прошлой системы. И есть в этих базах дерево категорий. Обычное иерархическое дерево, где у каждого элемента есть parent_id:

id	name		parent_id

1	first		0
2	second		0
3	third		1

Случилось так, что в CakePHP есть встроенный функционал для работы с деревьями, но работает он только для структур вида nested sets. Что это такое довольно хорошо описано здесь.

Итак, на данном этапе сформировалась задача перевести существующее дерево к виду nested sets, а это значит у каждой записи в таблице проставить значения left и right. Гуглению было посвящено около часа. Сплошные вопросы, и ни одного работающего решения. Собственно такое положение и явилось причиной, по которой я выкладываю свою функцию. Вникайте.

$table = 'categories';
$number=1;

make_nested(0);

function make_nested($parent_id = 0) {
    global $db, $table, $number;
    $c = $db->selectCell("SELECT COUNT(*) from ".$table." \
    where parent_id=".$parent_id."");
    for($i=0; $i< $c; $i++) {
        $newrow = $db->selectRow("SELECT * FROM ".$table." \
        where parent_id=".$parent_id." order by sort, id \
        LIMIT $i, 1");

        $db->query("UPDATE `".$table."` SET lft=".$number." \
        WHERE id=".$newrow['id']."");
        $number++;

        make_nested($newrow['id']);

        $db->query("UPDATE `".$table."` SET rght=".$number." \
        WHERE id=".$newrow['id']."");
        $number++;
    }
}

Собственно функция — это как бы тот самый “червячок”, обходящий все вершины против часовой и размечающий их. Ничего сложного. Пользуйтесь и радуйтесь!

Ограничения на blogger.com

6 October, 2008 (18:19) | Splog | By: neudor

Как оказалось, при постинге через API существует лимит на 50 сообщений в сутки. Каждое следующее сообщение нужно сопровождать вводом капчи. Подчёркиваю — не просто один раз ввести код с картинки, подтвердив что я не бот, а делать это для каждого нового сообщения. Очень неприятно, блин.

Правда, действует оно только 24 часа, после чего снимается и всё становится как прежде.

Я люблю веб стандарты

5 October, 2008 (16:45) | other | By: neudor

Да! Я просто обожаю, когда всё красиво, аккуратно и семантично. Когда в разметке нет таблиц, когда заголовки тегами H1, а списки — LI. Всё это прекрасно, эстетично и просто волшебно.

А то вот посмотрите на это http://blogs.yandex.ru/rating/requests/?date=2008-10-05. Это ведь просто невозможно парсить!

=)

Если нашлись те, кого вышеприведённая проблема озадачила, даю решение.

$res = file_get_contents("http://blogs.yandex.ru/rating/\
requests/?date=2008-10-05");
$res = iconv("WINDOWS-1251", "UTF-8", $res);
$res = explode('<td class="null" colspan="3"><div></\
div></td>', $res, 3);
preg_match_all("#<a[^>]*>([^<]*)</a>#Uuis", \
$res['1'], $matches);
echo "<pre>"; print_r($matches['1']); echo "</pre>";\

Результатом будет

Array
  (
      [0] => Timati and Mario Forever
      [1] => ясень
      [2] => Собчак на Гордон-Кихот
      [3] => Sony PRS-700
      [4] => пелевин п5
      [5] => чечила
      [6] => одногруппники
      [7] => Америка Феррера
      [8] => www.nameofrussia.ru
      [9] => хорека
      [10] => стс зажигает суперзвезду
      ...
      и таких 50 штук =)

Удачи всем в применении найденных кейвордов.