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

Научно-технические вопросы применения русского языка в программировании. Проекты с сайта программирование-по-русски.рф, кроме ЯОС . Информация об организациях и людях, использующих или изучающих русский язык в программировании. Сравнение операционных систем.
Ответить
БудДен
Сообщения: 2828
Зарегистрирован: 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
Здесь на русском - только коммиты.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

БудДен
Сообщения: 2828
Зарегистрирован: 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 репозиториев

БудДен
Сообщения: 2828
Зарегистрирован: 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 штук

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

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

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

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

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

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

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

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

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

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

БудДен
Сообщения: 2828
Зарегистрирован: 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, а значит, это лишь капля в море. Видимо, надо заплатить немного денег гуглу и получить полный доступ к базе гитшуба.
Форкнул репу, поставил звезду, сделал машинный перевод кусочка инглиша в "прочти-меня"... )))

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

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

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

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

БудДен
Сообщения: 2828
Зарегистрирован: 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. Битбукет.
- Ну и расписываем в них "небитые и проверенные" ссылки... )))

БудДен
Сообщения: 2828
Зарегистрирован: 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)

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

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

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

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

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

БудДен
Сообщения: 2828
Зарегистрирован: 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 должен быть на русском.

БудДен
Сообщения: 2828
Зарегистрирован: 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С оно встроено. Можно вызывать для раскодировки внешнюю программу.



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

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

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

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

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

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

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

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

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

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

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

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

БудДен
Сообщения: 2828
Зарегистрирован: 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 репозиториев, фильтруем их этой какашкой (потому что она СТРАШНО медленная) и получаем список файлов с кириллицей.

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

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

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

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

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

БудДен
Сообщения: 2828
Зарегистрирован: 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

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

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

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

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

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

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

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

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

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

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

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

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

Сообщение БудДен » 22.11.23 19:10

Просмотрел около 1500 репозиториев, в т.ч. вместе с Глебом NNN написал программку, которая скачивает репозитории и ищет там русский язык. За мои деньги написали, но спасибо в любом случае.

Нашёл пока вот что:

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

operation Растопка_котла() {
  relevant режим_растопки_котла = Режим_растопки_котла.accessible.filter [
    состояние == Состояние_режима.Активен
  ].any

  def duration() {
    return 1
  }

  def end() {
    вода.температура_обратной_воды = вода.температура_прямой_воды -
      (вода.расчетная_температура_прямой_воды - вода.расчетная_температура_обратной_воды)
    if (вода.температура_обратной_воды < температура_холодной_воды.next()) {
      вода.температура_обратной_воды = температура_холодной_воды.next()
    }
Эта программка была найдена глазами, поскольку написана на экзотическом языке моделирования. Программка ищет тексты на популярных языках, таких как PHP, Java, go и т.п, и она бы не заметила этот файл вообще, т.к. он не входит в список языков.

Офигеть! Задача стоит с 2018 года и пока я сам за неё не взялся, никто не взялся. Зато у каждого есть свой форум и по два языка программирования, по половине операционной системы на брата. У Лиса уже 2145 одних только тем на форуме. У Алексея - сообщество в телеге, тысячи сообщений там появляются в неделю. Вот какая активная жизнь бурлит в сообществе любителей русского языка! Но важно то, что все эти сообщения сами по себе на русском языке, это сулит нашему русскому языку блистательное будущее в ИТ, ведь мы, ИТ-шники, не перестаём его использовать, хотя бы ради того, чтобы пофлудить в чатиках.

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

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

Сообщение БудДен » 22.11.23 22:54

Новости ChatGPT:

Один из способов получить список открытых репозиториев - это использовать метод "Search repositories" (Поиск репозиториев) GitHub API. Вот пример запроса, который можно отправить для получения списка открытых репозиториев:

GET https://api.github.com/search/repositories?q=is:public

Также, учтите, что доступ к GitHub API требует аутентификации. Вы можете использовать токен доступа (access token) для аутентификации в запросах к API. Инструкции по созданию токена доступа можно найти в документации GitHub.

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

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

Сообщение Лис [Вежливый] » 23.11.23 04:25

> У Лиса уже 2145 одних только тем на форуме.

Так или иначе, практика показала, что если на моём форуме опубликовать какой-нибудь репозиторий, то о нём узнает опеннет, лор и что там ещё бывает. Это покрывает большое количество программистов и так, т.е. если бы они хотели, они бы нашлись. Дело не в поиске программистов, а в поиске мотивации (или денег). Некоторые предлагают внедрять геймификацию в обучение. Мне кажется, что мотивация работает не так просто, но можете считать Большое Лисоревнование (челлендж и вызов) объявленным (создание ядра ОС там где-то глубоко в середине, явно не в начале).

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

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

Сообщение БудДен » 23.11.23 10:23

Молодец, Лис! Главное - это придумать правильную стратегию, а уж кто будет её воплощать - найдётся. Ну или не найдётся. Но памятник нерукотворный уже установлен. Между тем за вчера, ночь и утро мы с компьютером обработали ещё 7 тыс. репозиториев. Находок мало, они пока тут будут накапливаться:

https://github.com/budden/proekty-na-ru ... поиска.txt

Игнат99
Сообщения: 124
Зарегистрирован: 27.09.23 15:29

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

Сообщение Игнат99 » 28.11.23 15:36

Вы тут симуляцией работы занимаетесь. Жаль что в России со специалистами так всё грустно.
Последний раз редактировалось Игнат99 29.11.23 13:32, всего редактировалось 2 раза.

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

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

Сообщение БудДен » 29.11.23 09:57

Чем писать такие простыни, взяли бы и нашли несколько репозиториев. Простыни любой ПТУ-шник может писать.

Запустил на ночь ещё 5000 репозиториев. Находок мало. Из интересного - вот что:


https://github.com/sw0rl0k/selfcontrolapp

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

        #region Код, автоматически созданный конструктором форм Windows

        /// <summary>
        /// Требуемый метод для поддержки конструктора — не изменяйте 
        /// содержимое этого метода с помощью редактора кода.
        /// </summary>
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
            this.menuStrip1 = new System.Windows.Forms.MenuStrip();
            this.файлToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
            this.tsmiExit = new System.Windows.Forms.ToolStripMenuItem();
            this.помощьToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
            this.помощьToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
            this.оПрограммеToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
            this.englishToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
Что мы здесь можем наблюдать? Чел стал создавать программу в визуальном дизайнере и по дури не выполнил догму о том, что русского языка в коде быть не должно: вбил в названия пунктов меню названия на русском. Соответственно, Микрософт ему и сгенерировал. Т.е. Микрософт вполне лояльно относится к программированию на любом национальном языке. Тут уместно вспомнить, что имена пользователей в Windows могут быть в кириллице (хотя граблей кое-где и подложили), а вот в импортозамещающих линуксах, каковых наберётся с дюжину - хренушки (на язык просилось другое слово).

Как там было у Пелевина:
Антирусский заговор , безусловно, существует – проблема только в том, что в нем участвует все взрослое население России.

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

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

Сообщение БудДен » 29.11.23 10:47

Кроме того, явно что-то не то с фильтрацией имён - в sql комментарии в виде

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

-- комментарий
становятся именами.

Игнат99
Сообщения: 124
Зарегистрирован: 27.09.23 15:29

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

Сообщение Игнат99 » 29.11.23 11:00

Вообщем более сложные модели языка нужны. Просто русский алфавит и слова устарели и не актуальны для мемоник от слова совсем.
Последний раз редактировалось Игнат99 01.12.23 15:49, всего редактировалось 4 раза.

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

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

Сообщение БудДен » 29.11.23 13:16

Не надо, пожалуйста, засорять эту тему.

Ответить