[Из песочницы] Самые оупенсорсные города мира

0b51c0099d0548acbda013deb276420e.png

По мотивам «Самые оупенсорсные города России» проверил 1000 самых населённых городов мира на количество разработчиков имеющих аккаунт на гитхабе.

В сотню самых программирующих городов из прошлого рейтинга вошла только Москва, она занимает 97 место, а первую пятёрку заняли американские города.
Прошу любить, жаловать и анализировать (первая сотня):

Город Аккаутов на 1000 Население Аккаунтов C# Java PHP JavaScript
1 San Francisco 39.21330 732072 28707 259 1857 964 5168
2 Seattle 23.65600 569369 13469 499 940 470 2058
3 Austin 13.45580 678368 9128 237 617 400 1322
4 Washington 11.29047 552433 7129 143 353 338 1008
5 Portland 9.13443 540513 6724 119 319 473 1078
6 Denver 7.84379 555981 4361 107 254 254 644
7 Amsterdam 6.51773 745811 4861 87 340 429 876
8 Paris 6.26618 2110694 13226 230 1104 1467 2277
9 Stockholm 4.62854 1253309 5801 244 548 340 917
10 San Jose 4.19405 897460 3764 43 473 109 505
11 Helsinki 3.96270 558457 2213 26 251 124 379
12 Lyon 3.92926 463700 1822 37 171 328 315
13 Edinburgh 3.92846 435794 1712 57 181 115 189
14 Chicago 3.85087 2841952 10944 203 614 455 1584
15 London 3.77969 7421228 28050 837 2113 2025 4619
16 Oslo 3.77895 808690 3056 104 343 151 509
17 Nashville 3.65638 530852 1941 57 76 145 311
18 Shenzhen 3.63856 1002592 3648 49 501 150 564
19 San Diego 3.63000 1287050 4672 101 310 296 647
20 Bristol 3.52205 430714 1517 63 98 121 255
21 Berlin 3.35808 3398362 11412 145 1067 937 1745
22 Vancouver 3.33030 1837970 6121 169 438 408 906
23 Dublin 3.32803 1024027 3408 114 383 222 484
24 Bangalore 3.23687 4931603 15963 180 1925 535 1822
25 Barcelona 3.15465 1570378 4954 72 430 516 765
26 Ottawa 3.11516 874433 2724 60 211 145 430
27 Munich 3.01251 1246133 3754 81 439 313 515
28 Baltimore 2.94651 610892 1800 40 116 101 212
29 Dallas 2.92563 1211704 3545 128 251 196 505
30 Athens 2.91988 729139 2129 34 254 147 285
31 New York 2.82267 8107916 22886 315 1452 1093 3558
32 Las Vegas 2.65686 540111 1435 23 64 120 154
33 Copenhagen 2.53587 1089958 2764 167 218 212 433
34 Philadelphia 2.48887 1453268 3617 69 253 181 527
35 Charlotte 2.39658 598351 1434 51 95 100 231
36 Los Angeles 2.38527 3877129 9248 153 546 502 1317
37 Columbus 2.30851 736836 1701 54 132 81 260
38 Cleveland 2.28246 449514 1026 45 75 66 120
39 Pune 2.16896 2935968 6368 92 620 254 701
40 Sofia 2.15052 1062065 2284 368 204 184 332
41 Toronto 2.10615 4612187 9714 224 723 564 1554
42 Hamburg 2.10341 1733846 3647 55 405 356 542
43 Leeds 2.03021 455124 924 49 42 114 161
44 Newcastle 1.90376 497961 948 27 75 82 153
45 Stuttgart 1.90133 591688 1125 28 139 118 172
46 Dresden 1.89267 480801 910 20 120 84 100
47 Glasgow 1.85819 610271 1134 36 80 78 172
48 Hangzhou 1.85290 1878129 3480 45 545 145 738
49 Quebec 1.78432 645623 1152 38 88 68 175
50 Melbourne 1.77791 3730212 6632 247 436 502 1005
51 Indianapolis 1.75614 773283 1358 68 54 57 225
52 Sacramento 1.74824 467898 818 13 42 56 118
53 Madrid 1.73755 3102644 5391 81 612 398 902
54 Minsk 1.72835 1742123 3011 142 353 264 424
55 Brooklyn 1.72819 2300664 3976 28 168 244 813
56 Sydney 1.64930 4394585 7248 294 448 476 1192
57 Hyderabad 1.60663 3598199 5781 89 605 186 717
58 Hyderabad 1.60663 3598199 5781 89 605 186 717
59 Rotterdam 1.59807 603851 965 29 84 128 158
60 Singapore 1.59478 3547809 5658 112 511 306 818
61 Vilnius 1.53950 542381 835 31 62 100 122
62 Houston 1.53917 2027712 3121 136 152 121 365
63 Warsaw 1.52875 1651676 2525 90 288 183 293
64 Leipzig 1.48994 492637 734 16 85 109 110
65 Tucson 1.48966 518907 773 7 49 41 80
66 Milwaukee 1.46931 579180 851 35 64 61 134
67 Cologne 1.45537 968823 1410 20 142 177 223
68 Calgary 1.43834 968475 1393 60 90 87 174
69 Sheffield 1.43385 447048 641 12 42 80 76
70 Montreal 1.42021 3268513 4642 131 421 318 672
71 New Orleans 1.36501 459336 627 10 23 34 81
72 Brisbane 1.34692 1843459 2483 148 169 179 332
73 Kiev 1.30139 2514227 3272 118 453 366 502
74 Zagreb 1.29476 698967 905 41 87 98 111
75 Taipei 1.28917 2514794 3242 66 311 151 539
76 Budapest 1.27862 1708088 2184 60 242 209 324
77 Colombo 1.27754 648119 828 28 167 80 104
78 Birmingham 1.26379 984336 1244 50 81 120 161
79 Albuquerque 1.24133 487378 605 7 42 28 58
80 Cluj 1.23672 692149 856 34 105 75 128
81 Kathmandu 1.22310 790612 967 9 91 121 130
82 Phoenix 1.20965 1428509 1728 49 107 116 251
83 Belfast 1.19455 585994 700 19 58 38 98
84 Brussels 1.19231 1019022 1215 23 95 118 202
85 Edmonton 1.18810 822319 977 42 83 65 126
86 Porto Alegre 1.17718 1372763 1616 23 211 132 226
87 Islamabad 1.17353 601600 706 18 61 38 56
88 Detroit 1.14809 884941 1016 28 79 68 187
89 Yogyakarta 1.13552 636711 723 6 61 129 98
90 Milan 1.06750 1156903 1235 24 116 126 191
91 Antwerp 1.05479 459805 485 29 34 65 82
92 Bandung 1.03599 1699822 1761 23 194 208 179
93 Bremen 1.02849 546429 562 9 67 42 71
94 Campinas 0.99847 1031573 1030 23 133 70 113
95 Liverpool 0.99798 468946 468 12 29 44 73
96 Riga 0.99115 742570 736 17 75 98 118
97 Moscow 0.98089 10381288 10183 372 782 887 1425
98 Belgrade 0.94243 1115200 1051 26 100 115 164
99 San Antonio 0.94206 1256810 1184 30 63 102 101
100 Dubai 0.92933 1137376 1057 9 53 94 150
101 Xiamen 0.88183 578337 510 13 65 29 104


Полную таблицу с тысячей городов и распределением по языкам программирования можно посмотреть на github, там же доступна сортировка по любому столбцу, благодаря этому например можно узнать что больше всего Java программистов в живёт Лондоне.

Рейтинг был полученен следующим образом.

1) Города взяты здесь:
www.tiptopglobe.com/biggest-cities-world?p=0

2) Написан небольшой код на bash (смотреть не советую):
github.com/Danyboy/city_github
— Берём sed'ом название городов и их население с сайта
— Ищем через апи github сколько человек вписала у себя в аккаунте каждый город. Пример.
— Мучительно сводим это вместе
— Генерируем html

К апи github для получения все информации пришлось сделать 9000 запросов, что занимает очень много времени, ведь для не авторизованных пользователей разрешено только 10 запросов в минуту.

К сожалению, есть неточности, связанные с разным написанием городов, как было отмечено в комментариях к оригинальному посту (например Saint-Petersburg, St-Petersburg). Кроме того, на сайте tiptopglobe.com не очень свежая статистика по населению.

С радостью приму пожелания, исправления и подсказки на тему, как можно реализовать перебор по всем вариантам названия городов.

Ссылки по теме:
— Красивая визуализация представляющая github комьюнити в виде городов на интерактивной карте и статья о ней.
— Самые популярные пользователи github, статья c анализом полученных данных.

Update: исправил таблицу в статье благодаря замечания lolmaus и m0sk1t

© Geektimes