Вчера днём быстренько наваял скриптик на bash/sed/grep, вытаскивающий с livejournal.com френдов данного юзера. Выяснил, что ежели у кого больше 500 френдов - не покажут. Расстроился.
Вечером всё же решил дополнить скрипт с тем, чтобы он полученную инфу заносил в базу данных (MySQL). Сделал, и ну давай базу заполнять! Начал с себя и ещё нескольких юзеров, а потом стало интересно, какие там вообще объёмы, и сойдутся ли у меня юзера на букву z за разумное время. Очень долго сходились, но сошлись. Потом давай заполнять базу на букву y, и выяснилось, что многих на z у меня не хватало. Но и тут всё-таки сошлось к двум часам ночи.
В общем, после заполнения букв y и z у меня в базе осело примерно 15000 ников. После чего я скачал GraphViz и ну давай графы рисовать.
И, в общем, какая-то дрянь получается. Вот ежели взять двух-трёх юзеров, у которых френдов относительно немного (ну, скажем, не больше 10...20), и построить граф их дружбы, причём рекурсивно не углубляться - тогда ничего себе получается картинка. А ежели у кого 100 или 300 друзей, да ещё рекурсивно углубиться, то или ничего не нарисуется (памяти не хватает - 256Мб + своп), или нарисуется такая запутанная-перезапутанная схема, что просто караул.drouk@lj, а ты как рисовал?
|
графы и графини
Не факт, что graphviz лучшее решение для этой задачи Та же фигня - строить большие графы тяжело (а ты что думал - это задача достаточно высокого класса). |