Эту бы энергию - да в мирное русло…
На одном из «матрасников» (походом это не назвать) столкнулся с неизвестной мне девушкой. Совсем другой круг общения, вроде бы как нет общих знакомых… Разболтались. По возвращении - аська, скайп… Мда, про «нет общих знакомых» я сильно ошибался. За пять минут набралось как минимум штук двадцать, дальше копать не стали - и так всё ясно, обычная картина: «Калининград - большая деревня».
И тут в голове промелькнула мысль: «А не попробовать ли визуализировать связи между людьми?»
В качестве выборки была взята записная книжка телефона. Телефон синхронизируется с гугловским эккаунтом? За-ме-ча-тель-но.
Берём Python.
Читается документация на
Google Contacts API.
За полчаса с страшным матом и треском пишется скрипт, выдирающий из гуглоконтактов адресную книгу.
Из списка удаляются совсем уж «левые» личности, которые не влияют на выборку - рабочие контакты, «мертвые души» и прочая муть.
Людям раскидывается файл с списком имён и с просьбой поудалять оттуда всех незнакомых личностей и вернуть файл обратно.
Десять минут на написание парсера и ≈ час на более-менее удобный ORM и веб-интерфейс, чтобы можно было руками расставлять - кто кого знает.
Загоняем всю эту беду в БД, правим связи (после очередной чистки списка осталось всего (УРА!) 98 человек).
Экспортим в нужном виде, скармливаем
GraphViz'у… И получаем, зараза, семимегабайтную PNGшку 11096х2363 пикселей, в которой… Ну, вот примерно так (сильно уменьшено):
И это наверняка еще не все связи проставлены, угу. И хорошо, что валил в выходной файл только ID’шники людей, а не ФИО, как хотел изначально.
В связи с чем возникает вопрос:
ЛЮДИ!!! У кого-нибудь есть мысль, как/чем этот хаос можно внятно отрисовать?
P.S.
Walrus не предлагать - масштабы не те, чтобы с ним заморачиваться.
P.P.S.
Flare очень, очень и очень неплох, но так лень Flex вспоминать…