Как найти русскоязычные репозитории?

Научно-технические вопросы применения русского языка в программировании. Проекты с сайта программирование-по-русски.рф, кроме ЯОС . Информация об организациях и людях, использующих или изучающих русский язык в программировании. Сравнение операционных систем.
Ответить
БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Как найти русскоязычные репозитории?

Сообщение БудДен » 16.10.18 13:32

#веб #русскоязычныерепозитории #поисксоратников

Стоит задача найти русскоязычные проекты на гитшубе, гитлабе и битбуцкете. У кого какие идеи, как это сделать? Нужно решить следующие связанные вопросы:

По каким принципам отбирать репозитории? Можно отбирать по множеству разных критериев
  • русскоязычность где? в описании, ,реадме, коммитах, именах файлов, сайт в домене ,ру
  • как отличать важные? по звёздочкам, количеству авторов кода
  • важна ли активность? это может быть количество фиксаций, дата последней фиксации
Как технически осуществить выборку? В гитшубе есть https://cloud.google.com/bigquery/public-data/, https://developer.github.com/v4/
В других службах такого может и не быть. Но в гитшубе сильно сказывается то, что объём данных по запросу ограничен.

Примеры репозиториев:
https://github.com/EvilBeaver/OneScript

Исполняющая среда скриптов на языке 1С http://oscript.io
2,643 commits
13 branches
27 releases
25 contributors

https://github.com/altocms/altocms
Alto CMS - Perfect Content Management System & Advanced Community Engine http://altocms.ru/
2,443 commits
3 branches
57 releases
18 contributors
Здесь на русском - только коммиты.

Аватара пользователя
Лис [Вежливый]
Сообщения: 477
Зарегистрирован: 08.10.18 13:32

Re: Как найти русскоязычные репозитории?

Сообщение Лис [Вежливый] » 16.10.18 14:17

> У кого какие идеи, как это сделать?

В github-е есть API, который позволяет получить список всех репозиториев, получать новые репозитории. Написать мониторящего демона - стандартная инженерная задача. Контент получать с гитхаба и как его парсить - это тоже совершенно простые задачи (если делать на англоязычных инструментах).

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

В других, я уверен, тоже есть API (из-за рыночной конкуренции), но я не проверял.

Проблема в недостаточной мыслительной мощности русскоязычного коммьюнити. Было бы больше населения - всё бы уже сделали.

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 16.10.18 16:01

Я уверен, что наши мощности достаточны решения для такой задачи. Просто нужно понять, как это сделать. 5000 запросов в час для регистранта. При 80 млн проектов полный перебор проектов займёт весьма существенное время, даже если зарегистрировать 10 учётных записей и качать с 10 компьютеров. Как исхитриться, чтобы не качать все проекты?

Аватара пользователя
Лис [Вежливый]
Сообщения: 477
Зарегистрирован: 08.10.18 13:32

Re: Как найти русскоязычные репозитории?

Сообщение Лис [Вежливый] » 16.10.18 18:40

80*10^6 / (5 * 10^3) / 24 = 666 дней.
1) не вижу по какой причине это слишком большой срок
2) одним запросом можно получить информацию сразу о нескольких репозиториях, что снижает время в 20-50 раз.

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

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 16.10.18 20:45

Эх, Лис, Лис. Как же ты предсказуем.

Код: Выделить всё

SELECT repository.url, count(1) from (SELECT repository.url, payload.shas.message FROM [bigquery-public-data:samples.github_nested]
  where REGEXP_MATCH(payload.shas.message,".*[абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ].*")) group by repository.url 
779 репозиториев

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 16.10.18 20:51

Код: Выделить всё

SELECT repository_url,count(1) FROM [bigquery-public-data:samples.github_timeline]
  where REGEXP_MATCH(payload_commit_msg,".*[абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ].*") group by repository_url
1411 штук

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 16.10.18 20:55

Причём, среди них нет ни altocms, ни onescript, ни моего https://github.com/budden/dlist, а значит, это лишь капля в море. Видимо, надо заплатить немного денег гуглу и получить полный доступ к базе гитшуба.

Аватара пользователя
Лис [Вежливый]
Сообщения: 477
Зарегистрирован: 08.10.18 13:32

Re: Как найти русскоязычные репозитории?

Сообщение Лис [Вежливый] » 16.10.18 21:33

> Эх, Лис, Лис. Как же ты предсказуем.

Если бы мне нужно было решить такую задачу, я бы создал на github репозиторий Awesome-Cyrillics
и предложил бы людям создавать запросы на добавление.

Но если я такой предсказуемый, я могу и вежливо молчать. Мне не трудно.

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 16.10.18 21:56

Ну, молчать или не молчать - ты сам решай. Насчёт твоей идеи. Допустим, создать репозиторий нетрудно. А вот что конкретно означает "предложить людям" и каким образом люди должны это твоё предложение услышать? Дальше, если они услышали, зачем им добавляться в этот репозиторий?

Аватара пользователя
Сандро
Сообщения: 86
Зарегистрирован: 07.10.18 14:39

Re: Как найти русскоязычные репозитории?

Сообщение Сандро » 18.10.18 05:54

БудДен писал(а):
16.10.18 20:55
Причём, среди них нет ни altocms, ни onescript, ни моего https://github.com/budden/dlist, а значит, это лишь капля в море. Видимо, надо заплатить немного денег гуглу и получить полный доступ к базе гитшуба.
Форкнул репу, поставил звезду, сделал машинный перевод кусочка инглиша в "прочти-меня"... )))

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 18.10.18 08:51

Там то ли 3 миллиона, то ли 80 миллионов репозиториев.

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 15.11.18 21:09

Проект разморожен. Ваши предложения по дальнейшим шагам?

Аватара пользователя
Сандро
Сообщения: 86
Зарегистрирован: 07.10.18 14:39

Re: Как найти русскоязычные репозитории?

Сообщение Сандро » 16.11.18 14:26

Лично я для собственного удобства сделал вот так:
Песочницы
Теперь у меня все мои поделки - под рукой... )))


Аватара пользователя
Сандро
Сообщения: 86
Зарегистрирован: 07.10.18 14:39

Re: Как найти русскоязычные репозитории?

Сообщение Сандро » 16.11.18 16:33

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

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 17.11.18 11:47

Нашёл 45 тысяч с русскоязычными записями в журнале изменений. Но выборка всего 3 миллиона, а всего репозиториев - почти 100 миллионов, из них должно быть порядка половины открытых. Т.е. должно быть хотя бы в 20 раз больше - порядка 900 тысяч репозиториев с русскоязычными записями в журнале.

https://gitlab.com/budden/repozitorii-x ... -kommitami

Аватара пользователя
Сандро
Сообщения: 86
Зарегистрирован: 07.10.18 14:39

Re: Как найти русскоязычные репозитории?

Сообщение Сандро » 17.11.18 16:55

Я не знаю, как работать с csv-файлами.
Беру <base href="https://gitlab.com/"> как "базовый", добавляю "довесок" из csv, к примеру chuprin-nikolay/workshop1,60
Получаю на выходе ... https://gitlab.com/chuprin-nikolay/workshop1,60 ...
И попадаю на страницу 404... (и так со всеми ссылками, выдернутыми из csv)

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 17.11.18 18:22

Отдыхайте пока, я нарыл уже 350 тысяч, но пока не успел их выгрузить в файл. Вообще такие файлы открываются с помощью Excel или Libre Office, только надо правильно выбрать разделитель колонок (запятая).

Такая возможность есть только для github, что делать с остальными - у меня пока нет идей.

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 17.11.18 23:49

https://gitlab.com/budden/repozitorii-x ... 349564.csv
- там покажется ссылка на скачивание файла. Это репозитории, как я понимаю, фактически с 2015 по 2017-й включительно,
в которых была хотя бы одна запись журнала изменений (commit message) с русскими буквами.

Теперь думаю, что следующий этап - это из них выбрать те, у которых README.md в кириллице. Можно получать 5000 README в час через API, итого это займёт 70 часов чистого времени, если есть только один аутентифицированный пользователь. У меня уже есть два, хотя не факт, что я буду париться. 70 часов - не так долго.

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

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 18.11.18 17:08

Переделал выборку, чтобы получать код репозитория, а не его "имя", которое иногда содержит какие-то странные вещи, например, может отсутствовать владелец. См. репозиторий.

Теперь нужно извлечь readme. Поглядываю на 1Скрипт. Вроде там (https://infostart.ru/public/699642/) есть библиотека restler. Есть добровольцы реализовать? Ещё, правда, нужно раскодировать base64. Вот есть такое:

https://www.forum.mista.ru/topic.php?id=716503
т.е. в каком-то 1С оно встроено. Можно вызывать для раскодировки внешнюю программу.



БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 19.11.18 00:26

Диспозиция меняется. Видимо, будем скачивать все репозитории и искать кириллицу во всех файлах. Это займёт длительное время (до года). И придётся писать или где-то искать лексеры для всех типов файлов. Возможно, придётся для этого разморозить старый "Яр" на лиспе, поскольку в нём всё нужное для быстрого создания таких лексеров есть, и его производительность достаточно велика, чтобы это имело практический смысл.

Аватара пользователя
Лис [Вежливый]
Сообщения: 477
Зарегистрирован: 08.10.18 13:32

Re: Как найти русскоязычные репозитории?

Сообщение Лис [Вежливый] » 19.11.18 06:03

имело практический смысл.
было бы ещё неплохо, если бы ты ещё этот практический смысл разъяснил (в смысле - практический смысл всей затеи. Найти всех руссскоязычных девелоперов, сдать их в КГБ с последующим спамом и сманиванием в Россию?). ты хочешь собрать доказательную статистику, ну ок. другим это зачем?

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 19.11.18 13:35

Изучить такое явление культуры, как русскоязычные идентификаторы. Явление существует. Но больше про него ничего неизвестно. В т.ч. связаться с этими людьми и пригласить их сюда. Рассказать им про яролит, яро-раскладку и пр. Напустить каких-нибудь учёных на эту выборку - пусть изучают.

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 19.11.18 18:24

Диспозиция опять меняется - я нашёл pygments. Как ни уворачивайся, а всё равно приходится вляпаться в этот питон. Он позволяет выцеплять идентификаторы из текстов на многих языках программирования и раскрашивать их, например, вот так он может генерировать BBCode:

/// На входе дан div клавиатуры, нужно его привязать и показать то, что надо.
function ПодготовьЭтуКлавиатуруКРаботе(div) {
console.assert(div.hasAttribute("data-target"));
const id_of_textarea = div.getAttribute("data-target");
//div.innerHTML="<p>для ввода латиницы удерживай пробел <button id='рискноп_показать_раскладку' title='Показать раскладку'>?</button></p>";
const Выборка = $("textarea#"+id_of_textarea);
console.assert(Выборка.length === 1, "Не к чему привязать клавиатуру - нет text_area с id = '%s'", id_of_textarea);
УстановиОбработчикиКлавиатуры(Выборка);
}

У него есть и вариант, когда печатается список лексем вместе с их классами:

Код: Выделить всё

pygmentize -f testcase /y/bitbucket/iaroklava-js/klaviatura.js 

            (Token.Keyword.Reserved, u'const'),
            (Token.Text, u' '),
            (Token.Name.Other, u'\u0412\u044b\u0431\u043e\u0440\u043a\u0430'),
            (Token.Text, u' '),
            (Token.Operator, u'='),
            (Token.Literal.String.Double, u'"#\u0440\u0438\u0441\u043a\u043d\u043e\u043f"'),
            (Token.Comment.Single, u'// $(document).ready(function ($) {\n'),
Это уже почти то, что надо, остаётся лишь поменять код и искать лексемы нужного класса с кириллицей. Т.е. план такой - неспешно клонируем все 350000 репозиториев, фильтруем их этой какашкой (потому что она СТРАШНО медленная) и получаем список файлов с кириллицей.

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 27.11.18 21:58

Случайно попалось - как поменьше скачивать с github.

https://www.linux.org.ru/forum/developm ... 3262737947

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 12.11.20 16:21

Лис, ты был прав. Прошло два года, рукописный список надо было создать, он бы насколько-нибудь бы уже наполнился. Я завёл.

Думаю только, что надо завести под это отдельный аккаунт. Если у кого-то есть репозитории для добавления в список - там написано, как заявиться на добавление.

https://github.com/budden/proekty-na-russkom-jazyke

https://gitlab.com/budden/proekty-na-russkom-jazyke

Аватара пользователя
Лис [Вежливый]
Сообщения: 477
Зарегистрирован: 08.10.18 13:32

Re: Как найти русскоязычные репозитории?

Сообщение Лис [Вежливый] » 12.11.20 19:16

«он бы насколько-нибудь бы уже наполнился»

Это в том случае, если его рекламировать (по форумам проанонсировать, lor, opennet, rsdn и что там ещё бывает).

И идеи надо было предлагать подавать через пулл-руквесты, а не через багтрекер.

БудДен
Сообщения: 2489
Зарегистрирован: 07.10.18 14:01

Re: Как найти русскоязычные репозитории?

Сообщение БудДен » 12.11.20 21:53

Хотя бы было бы место для складывания находок. Возможно, мне попадалась одна или две.

Ответить