Pull to refresh

Comments 21

Лучше уж не pickle, а jsonpickle. После него хотя-бы можно будет данные куда-нибудь выгрузить, например в javaScript какой-нибудь. Или вообще из этого сервис организовать.
Я не против, если есть конкретные предложения — давайте обсудим
Предложения, скорее, на уровне диванного анализа :) Замена pickle на jsonpickle особого труда не составит (но я пока не смогу этим заняться), а уже с json-ом можно творить что угодно.
Спасибо! Обязательно учту.
Пожалуйста! Если будут какие-то вопросы, обращайтесь :)
Неделю назад хотел сделать подобное для расчета закона n-рукопожатий, но раз пишу коммент, а не пост, значит передумал ;)
Хорошая работа.
Спасибо. Очень приятно.
Я писал подобное приложение на php, закон 7 рукопожатий это закон 5 рукопожатий уже)
Есть люди, не входящие в vk/fb, обычно из-за них продлевают цепочку на два звена в обе стороны.
Такие большие графы возможно удобно было бы анализировать интерактивно, если построить их с помощью d3js. Правда, не уверен, какая будет скорость при тысячах узлов, но на сотнях работает нормально. Там есть зум и прочие вкусности.
Спасибо за интересную статью, взял на вооружение готовые библиотеки что вы советовали :)
А мы в прошлом семестре подобное на octave/matlab писали (правда реализацию того же PageRank и прочего требовали писать с нуля, матричными операциями и считая eigenvalue/vectors).
В этом семестре планируем взяться за hadoop, ибо сети для научных исследований будут большими, на одной машине все не просчитать. Хотя я честно говоря фанат пайтона, потому сегодня начал читать как подружить hadoop и python. Или использовать какой нибудь pig latin.

Потратил вечер на то чтобы заюзать этот код. Разочаровался. Проблемы возникли следующие:


  • При установке rabbitmq, он автоматически стартует сервер, а Celery при этом (при незапущенном vhost?) ругается на отсутствие django, что ни разу не способствует дебагу. Но это быстро решилось, хотя и подпортило настрой.
  • Первый запуск упал с каким-то эксепшном. Когда подписал try/catch, выяснилось что VK возвращает ошибки "Too many requests" (может всё-таки стоило допустить возможность такого ответа и выводить что-то типа "нужно больше токенов"?)
  • Запустил celery с ограничением в 2 воркера. Не помогло
  • Запустил celery с ограничением в 1 воркер. Безрезультатно, два запроса getFriends всё равно валятся. В этот момент я понял, что вообще ничего не понимаю.

Я не понимаю главного — Как во всей этой супер распределенной системе выдерживается интервал между запросами? Может это где-то в rabbitmq или в celery должно настраиваться? Может где-то не хватает time.wait() или "while request_failed: retry()"? У меня всё валится и я не понимаю почему не должно… Ну нету у меня четырех токенов, я готов подождать, но блин, не работает же. Вернуться на первую версию — да, можно, но речь о том что ЭТА не работает. Да, возможно, я не совсем по назначению использую её, но если там всё Настолько Вероятностно и без всякой защиты, есть немалый шанс словить такой вот "Too many requests" на супер масштабном и дофига распределенном запросе, который длится уже долго. И потерять кучу данных.


И последний пункт, вызывающий у меня негодование. Нет, может я чо не понимаю, но кажется, вы кроме ID в крутом распределенном виде ничего не запрашиваете. То есть собственно информативность вершин графа стремится к нулю. И при этом вы сравниваете быстродействие своей системы с быстродействием моей (у которой в вершинах АВАТАРКА, а алгоритм абсолютно линеен и без хранимых процедур). Короче, ящитаю, что AkelPad качается и устанавливается в 100500 раз быстрее, чем ваш этот TeX Live. Утрировано, но всё-таки, без аватарок (и ДАЖЕ без банального plaintext имени), мой код будет работать никак не в 60 раз медленнее. А если заюзать хранимые процедуры, то и того быстрее будет. Попахивает грязным маркетингом. Фу фу фу.


Ни разу не хочу сказать, что методы увеличения быстродействия не крутые — они очень крутые и очень перспективны для выкачивании аватарок, но при сравнении, пожалуйста, решайте аналогичные задачи. Немного неприятно когда бесконечно крутые технологии Wolfram представляют тормозными, хотя я в своем исследовании ни строчки не написал для увеличения быстродействия, потому что цель была не в быстродействии, а в результате. Я хотел получить ВИЗУАЛЬНО ИНФОРМАТИВНЫЙ граф, а не получить хоть какие-то данные быстро.


И я даже хочу отправить няшные пул-реквесты (потому что тоже обожаю Python), но мне мешает непонимание, описанное выше. Я не представляю себе как через эти очереди гарантированно добиться двух запросов в секунду… Вот. А если нельзя, так надо дальше думать же! Плохие инструменты, код небезопасен. Хотя бы костыль вставить какой-нибудь, типа "while request_failed: retry()"...

Привет

При установке rabbitmq, он автоматически стартует сервер, а Celery при этом (при незапущенном vhost?) ругается на отсутствие django, что ни разу не способствует дебагу. Но это быстро решилось, хотя и подпортило настрой.


Может у тебя какая-то другая Celery?)

Первый запуск упал с каким-то эксепшном. Когда подписал try/catch, выяснилось что VK возвращает ошибки «Too many requests» (может всё-таки стоило допустить возможность такого ответа и выводить что-то типа «нужно больше токенов»?)
Запустил celery с ограничением в 2 воркера. Не помогло
Запустил celery с ограничением в 1 воркер. Безрезультатно, два запроса getFriends всё равно валятся. В этот момент я понял, что вообще ничего не понимаю.


Нужно много токенов, об этом было написано. Иначе все равно можно упереться в ограничения от ВК.

Как во всей этой супер распределенной системе выдерживается интервал между запросами? Может это где-то в rabbitmq или в celery должно настраиваться?


Не выставлял интервал, но инфу можно найти в манах.

И при этом вы сравниваете быстродействие своей системы с быстродействием моей (у которой в вершинах АВАТАРКА, а алгоритм абсолютно линеен и без хранимых процедур)


Аватарку получить — не думаю, что произойдет большая просадка по perfomance. Про хранимки тебе писали в комментах, никто не мешал их заюзать.

Я хотел получить ВИЗУАЛЬНО ИНФОРМАТИВНЫЙ граф, а не получить хоть какие-то данные быстро.


Опять же, получить аватарку не проблема

Ничего не имею против Wolfram, он очень крут, и спасибо за коммент и время

А запарился я, потому что мне показали https://gephi.org
Давайте всё-таки сделаем нормальную качалку друзей друзей? Я прям очень хочу потыкать этот граф в Gephi

Мне тоже показывали Gephi

Давайте всё-таки сделаем нормальную качалку друзей друзей?


Уже давно в планах все переписать и сделать еще быстрее)

Ого, перечитал свою статью, оказывается, 119 секунд — это действительно только getMutural с чистыми ID. У меня было подозрение, что на хабре не бывает негатива, но как-то не щёлкнуло… Моя любовь к необдуманным действиям не знает границ…
Приношу глубочайшие извинения за наезд, задачи решаются аналогичные. Прошу игнорировать абзацы n-2 и n-1 в сообщении i-2

Ничего, всякое бывает
Sign up to leave a comment.

Articles