Светлячный Dev Лог

Sat 15 October 2011

GitHub в Цифрах

Tags: git, github

en

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

Основной паттерн моего использования социальных возможностей гитхаба таков: я фолловлю других кодеров для того, чтобы видеть в ленте какие проекты он находят, комментят и коммитят. Таким образом, я периодически обнаруживаю что-нибудь интересненькое. Вот только работало это лишь до определенного момента — пока объем данных в ленте не вырос настолько, что я стал лениться ее читать.

Тут то и возникла идея — как-то агрегировать данные ленты, чтобы вычленять из нее интересные проекты. Например учитывая возросший к ним интерес людей из твоего первого или второго круга.

Кроме того, сервис должен будет упростить отслеживание того, что происходит в форках ваших репозиториев. Это уже будет полезно тем, у кого десятки публичных репозиториев. Такая функциональность у меня даже реализована, но в виде простенького скрипта, который генерирует RSS с новыми коммитами в форках.

А еще, можно сделать пузомерку для гиков, с медальками, рейтингами и титулами. Это просто прикольно: сделал десяток коммитов в полночь получи титул "Midnight code warrior" :)

Однако, прежде чем ввязываться в затратное дело — создание отдельного сервиса для всех, я решил посчитать некоторую статистику отностиельно того, сколько же людей потенциально смогут оценить достоинства этого моего сервиса. Очень уж я не люблю делать бесполезные штуки :)

Прогресс

Для начала, я написал выкачивалку всех гитхаб пользователей. Что она делает. Она берет указанный логин, сохраняет его профиль, выкачивает список тех, кого за кем он следит, и добавляет их в очередь, если их профили еще не скачаны. Затем все повторяется для каждого логина, который в очереди, до тех пор, пока очередь не опустеет.

Поскольку у API гитхаба есть ограничение в 5000 запросов в час, то процесс выкачивания всего графа затянулся почти на два дня.

Всего было выкачано 57 тысяч профилей пользователей и около 500 тысяч репозиториев. На мой взгляд, пользователей маловато, но позможно так оно и есть. Раз мой скрипт до кого-то не добрался, значит его никто не фоловит, так что аккаунт скорее всего заброшен.

Так выглядел процесс выкачивания. По этому графику хорошо заметен момент, когда очередь "на закачку" перестала расти и начала убывать.

Наблюдай и следи

Самое важное для моего проекта — доли пользователей, которые наблюдают за большим количеством репозиториев или следят за большим количеством других разработчиков:

|

Отсюда видно, что почти 50% пользователей, следят более чем за 10 репозиториями и 7% (около 4 тысяч) — более чем за 100. Так же мне интересны те 20% (11 тысяч), что фоловят более 10 человек, они наверняка не успевают прочитывать весь свой News Feed. И уж наверняка оставшиеся 410 пользователей, что фоловят больше сотни по достоинству оценят аггрегатор новостной ленты. Сам я, как раз вхожу в последнюю категорию, так как фоловлю 331 разработчика.

Количество репозиториев

Среднее количество публичных репозиториев у гитхаб пользователя — 8, из них 3, это форки чужих проектов.

|

На этом графике видно, что 60% пользователей имеют меньше 10 публичных репозиториев, а у 15% их нет вообще. Зато почти у четверти пользователей гитхаба публичных репозиториев от 10-100, и они являются потенциальными пользователями моего сервиса.

При этом, процент активных репозиториев, таких в которые был хотя бы один push за последний месяц, всего 10%.

И еще…

Всего я выкачал информацию чуть больше чем по 500 тысячам репозиториев, и примерно 40% из них, это форки. Удивительно, я думал что форков должно быть гораздо гораздо больше.

Посчитал я и то, насколько больше "второй круг", по сравнению с первым. В среднем, пользователь гитхаба фоловит 9 человек, и следит за 33 репозиториями, это его "первый круг". Второй круг, это те, кого фоловят те, кого фоловят ты. Второй круг, уже составляет 230 пользователей и 800 репозиториев. И это в среднем. Для нерепрезентативных вроде меня цифры другие: 11548 и 42882 соответственно. Это почти 1/5 всего гитхаба!

Кроме этого, я посчитал соотношение обычных пользователей и организаций:

Немножко Топов, я знаю, они всем нравятся :)

Top 20 компаний

Компания Кол-во
37965
ThoughtWorks 75
Google 65
Mozilla 61
Red Hat 58
Freelance 56
Twitter 40
Japan 40
Yandex 39
Freelancer 36
Globo.com 35
Yahoo! 33
Intridea 31
Facebook 30
GitHub 29
Student 26
Emergya 26
Pivotal Labs 24
Microsoft 23
Engine Yard 23

Top 20 городов

Город Кол-во
23657
San Francisco 1441
London 962
New York 578
Paris 474
Chicago 458
Seattle 457
Tokyo 430
Berlin 423
Germany 417
Portland 346
Toronto 317
Boston 288
Austin 280
Sydney 272
Stockholm 261
Japan 244
Los Angeles 230
Brooklyn 226
Melbourne 221

Top 20 "последователей"

Логин Фолловит
snytkine 3242
mtsoerin 1983
webiest 1903
superfeedr 1710
charlenopires 1236
stonegao 1205
Marak 1068
speedygonzalez 1059
tyru 1022
esneko 867
josegonzalez 640
c9s 556
kanzure 555
take-cheeze 517
elliottcable 495
Sannis 475
mattn 462
j2labs 453
dpree 446
rkh 444

Top 20 "кого фолловят"

Логин Последователей
defunkt 4005
torvalds 3803
jeresig 3466
mojombo 3248
ryanb 2737
schacon 2429
paulirish 2316
dhh 2170
wycats 2044
ry 2032
rails 1946
facebook 1802
jquery 1767
technoweenie 1572
pjhyett 1563
visionmedia 1554
cyanogen 1410
douglascrockford 1380
tpope 1369
android 1317

Top 20 "по репозиториям"

Логин Репозиториев
gitpan 21976
vim-scripts 3735
emacsmirror 3101
Epictetus 911
panega 612
jenkinsci 602
dev2dev 504
wave2future 411
CyanogenMod 342
MechanisM 329
rjbs 325
tokuhirom 297
rwldrn 297
aculich 287
rainly 282
albertobraschi 278
idega 272
rafl 266
apache 258
kristianmandrup 244

Top 20 "вотчеров"

Логин Наблюдает за
gitpan 21976
vim-scripts 3736
emacsmirror 3588
stonegao 2789
abecciu 2474
igrigorik 2415
charlenopires 2339
stan 2318
matagus 2160
smtlaissezfaire 1955
rmetzler 1916
shanlalit 1897
willi 1896
Epictetus 1821
filipeamoreira 1812
arden 1783
andrew 1746
methodmissing 1665
rkh 1571
lgs 1511

Всё

Наверняка по той базе, что у меня теперь есть, можно посчитать еще что-нибудь интересненькое. Но пока это всё. Будут идеи — присылайте.

P.S. — думаю, проектик найдет свою аудиторию в несколько тысяч человек. Осталось придумать, как его монетизировать, чтобы окупать аренду серверных мощностей.

Comments !