Email or username:

Password:

Forgot your password?
Stas

Так, скрипт, что бы построить граф юзеров мастодонта почти дописал, осталось немного его обкатать и вспомнить как это красиво обработать в gephi.
Ну и попробовать собрать информацию о тысяч 200-300 пользователей. Или замахнуться на миллион?

24 comments
Stas

Миллион наверное не получится. В секунду обрабатываю от 4 до 60 юзеров (видимо скорость от инстанса зависит, есть медленные). Вычисление средней скорость изначально не закладывал в логику, но путь будет 50. Т.е. за час я обработаю тыс 180 пользователей.
Но в принципе красивая кластеризация начинается от 100 тыс. Поэтому попробую тестово в этом районе собрать (может какие-то ошибки вылезут, а там, если первый сбор будет ок, то может для основного сбора несколько часов подожду.

Stas

Вообще, можно было и асинхронность внедрить, но есть 2 сложности:
– На некоторые слабые инстансы создам лишнюю ненужную нагрузку.
– сложность в отладке, что бы не пихать одинаковые данные в одну таблицу. Ну ладно, одинаковые то мы отфильтруем, но лучше их вообще не собирать, конечно.

Stas

Почему-то 2 раз подряд остановилось ровно на 30778 строке. Писал в файл. Возможно из-за глубокой рекурсии какие-то системные проблемы с памятью. Сильно разбираться в этом не хочу.
Пока перевёл на sqlite и добавил логи.
Надеюсь это не какое-то ограничение API, а моя локальная проблема.

Stas

Иногда нужно пройти все этапы (на самом деле уже их проходил, просто подзабыл), чтобы понять, что ошибки(проблемы) в общем-то и не было.
Оказалось, что все дело в глубине рекурсии:
1 уровень, смотрю только своих подписчиков(юзеров) и их записываю.
2 - смотрю юзеров у юзеров.
3 - смотрю юзеров у юзеров юзеров. И вот тут есть разница по сравнению с твиттером, поскольку в целом Мастадонт более компактен, у всех меньше подписок. Поэтому и утыкался несколько раз в одно и тоже число.

Stas

Ну и оказалось, что апишечка вообще все хитро регулирует и ограничивает самими инстансами "из коробки". Получать информацию в много потоков - это нужно прям сильно постараться. Владельцы слабых инстансов могут спать спокойно. Все очень грамотно by design.
mastodonpy.readthedocs.io/en/s

Stas

вообще пока еще ничего не понятно, но жутко интересно. Собрал 84 тысячи (связи) на данный момент (сильно переоценил скорость сбора, увы)
узлов 2.5 к
ребер 4.7 к
это промежуточный граф, продолжаю сбор

Stas

Как все закончу выложу на гитхаб, скрипт, собранные связи, инструкцию и пр.

liilliil 🇫🇯🇱🇨🇱🇧

@vsv Что это, Бэрримор? (особенно то жёлтое в стороне)

Stas

@liilliil граф пользователей мастодонта

Stas replied to liilliil

@liilliil да пока ничего. это промежуточный результат. желтое в стороне это какой-то англоязычный пользователь. Но я уже не гляну кто именно, сбросил его.
вверху кластер вроде англоязычный, внизу рускоязычный

liilliil 🇫🇯🇱🇨🇱🇧 replied to Stas

@vsv есть хотя бы возможность к карте привязать?

Stas replied to liilliil

@liilliil к географической? локаций то ни у кого нету. по языку? ну тоже такое себе. но чисто визуально можно, наверное. все в рамках gephi или чего-то аналогичного можно все что угодно. но тут больше кластеризация комьюнити

Stas replied to Stas

@liilliil потом в любом случае выложу свгшку, чтоб можно было не запариваясь с gehi порассматривать. сбросил, потому что еще идет сбор. на тот момент было 84к, сейчас 90к. не знаю пока на сколько меня хватит, но буду продолжать сбор

Stas

сожмет?
p.s. пережало картинку

Stas

@PaulNakatim
да там большой файл. решил проверить насколько его сожмет. придется на гитхаб все картинки выкладывать
вот так 100% центральная область выглядит

Epsilon

@vsv "не пора ли " замахнуться", батенька, на ВильЯма, понимаете ли, нашего, Шекспира?" :blobfoxcofeglare:

xeniax

@vsv интерееесно! А какие гипотезы хочешь проверить этим графом?

Stas

@Xeniax ну который на картинке – он глубиной 2, и им я особо ничего не проверю.
Поэтому пока собираю массив данных и там уже будем смотреть.
По времени это оказывается дольше чем ожидалось, api мастодонта не такое производительное, как у того же твиттера.
Но в целом, мне хочется посмотреть на кластеры юзеров из кого они состоят.
Думаю завтра уже будет визуализация, если за ночь успею собрать информацию.

xeniax

@vsv а мне вот интересно проверить гипотезу о том что в ближ время будет отток пользователей с крупных инстансов в средние. И в целом есть много вопросов к графу мастодона, но я не умею в графы)

Stas

@Xeniax хм... Это отдельная задача. Нужно подумать как её можно отмониторить малыми силами. В принципе, у каждого пользователя которого я записываю в нике есть инстанс. Если gephi умеет с помощью какой-то регулярки окрашивать точку в зависимости от инстанса, то если сделать 2 равнозначных слепка юзеров через необходимый интервал, то по распределение цвета можно увидеть динамику.
Но я давно gephi не ковырял и с ходу даже и не скажу, возможно это или нет.

Stas

@Xeniax но, тем не менее, в абсолютных цифрах это можно как-то подсчитать.
Тут пока, повторюсь, пока не ясно как быстро можно собрать массив информации. Вроде как до 100 тыс относительно быстро все собиралось, а потом замедлилось.
Обидно, что все 100 тыс (связей) собранных данных ушли на отладку, пока решал проблему.

Go Up