Разработчик Андрей Каща (Andrei Kashcha) из Сиэтла представил проект карты GitHub, собрав на одном сайте более 400 тыс. репозиториев. Все репозитории разбиты по странам с вымышленными названиями, которые описывают применяемые в них технологии.

Для создания карты использовались данные о том, кто и каким репозиториям ставил звёзды с июня 2020 года по март 2023. Это помогло собрать проекты суммарно с более 350 млн звёздами. Все данные были получены и проанализированы с помощью сервиса Google BigQuery.
После этого необходимо было найти похожие репозитории, чтобы отсортировать их по используемым технологиям. Для этого автор выбрал алгоритм определения сходства с помощью Коэффициента Жаккара. Мощности его домашнего компьютера с 24 ГБ оперативной памяти не хватило, поэтому для проекта был арендован экземпляр AWS EC2 с 512 ГБ оперативной памяти, который справился с задачей всего за несколько часов. Автор рассказал, что экспериментировал и с другими алгоритмами поиска соответствий, но Коэффициент Жаккара показал самый точный результат.

На третьем этапе необходимо было выполнить кластеризацию всех проектов. Для этого использовался алгоритм Лейдана. С его помощью удалось получить более 1000 кластеров. Узлы в графах автор проекта рассчитывал с помощью своего решения, код которого опубликован на GitHub.

В итоге получилась карта проектов на GitHub, которые объединены используемыми в них технологиями. Каждой области знаний дали название вымышленной страны, сгенерированное с помощью ChatGPT& К примеру:
-
Свифтория — проекты на Swift;
-
Вьютопия — проекты на Vue.js;
-
Джаваленд — проекты на Java;
-
Питония — проекты на Python;
-
Дотнетия — проекты на .NET;
-
Фронтера — фронтенд-разработка;
-
Земля Юнити — проекты на движке Unity;
-
Ледиаполис — проекты, связанные с LED;
-
Хардлендс — разработка железа;
-
Королевство PHP — проекты на PHP;
-
Диплёрния — проекты глубокого обучения.
Каждая вымышленная страна содержит в себе точки, обозначающие проекты. Клик по точке открывает карточку проекта с README. Также показываются связи точки с другими проектами, в которых он встречается или используется.

Карту можно просматривать в браузере, но первый запуск сайта может быть достаточно долгим из-за загрузки данных. Код проекта опубликован на GitHub.
ссылка на оригинал статьи https://habr.com/ru/articles/753598/
Добавить комментарий