Короче, буду тут постить информацию о проектах которыми я занимаюсь в свободное время (чтоб типа было видно что мы не просто так выпускаем видосы раз в дохрена времени :D)
В планах на эту неделю написать парсер GitHub, и собрать максимально полную БД о репозиториях по различным ЯП.
Тут конечно есть пару нюансов, чтобы было не скучно:
1. БД развернуть в контейнере Docker, дабы пощупать ручками mssql под Linux. И тут уже первые траблы :D. Лагает инет, а Docker при загрузке образов не имеет менеджера подгрузки. Ну получаем следующую вещь - обрывается коннект с сервером, идем загружать образ по новой, не смотря на то что он состоит из нескольких файлов - гениально :D
2. В самом парсере никаких изысков, просто C# + реализаця github api - octokit.net. Задача - сделать максимально оптимальным в плане многопоточности, дабы парсить информацию быстрее. Тут типа тоже не все так просто, 85% репозиториев - мусор. И тут дилема, либо парсить все полностью, и потом уже фильтровать. Либо собрать наиболее полную базу о репозиториях, но потом уже в дальнейшем филтровать, хз на самом деле
3. Обработка данных - в идеале хотелось бы поковырятся на R. Но ес чо, обойдусь просто решеткой :D. Сама цель - собрать информацию о популярности ЯП и активности среди отдельных коммьюнити в процентном соотношении.
В конце постараюсь выложить дампы бд необработанной инфы, обработанной, и собственно самого парсера.
Отчетики и скриншотики буду тут постить по мере продвижения.
В планах на эту неделю написать парсер GitHub, и собрать максимально полную БД о репозиториях по различным ЯП.
Тут конечно есть пару нюансов, чтобы было не скучно:
1. БД развернуть в контейнере Docker, дабы пощупать ручками mssql под Linux. И тут уже первые траблы :D. Лагает инет, а Docker при загрузке образов не имеет менеджера подгрузки. Ну получаем следующую вещь - обрывается коннект с сервером, идем загружать образ по новой, не смотря на то что он состоит из нескольких файлов - гениально :D
2. В самом парсере никаких изысков, просто C# + реализаця github api - octokit.net. Задача - сделать максимально оптимальным в плане многопоточности, дабы парсить информацию быстрее. Тут типа тоже не все так просто, 85% репозиториев - мусор. И тут дилема, либо парсить все полностью, и потом уже фильтровать. Либо собрать наиболее полную базу о репозиториях, но потом уже в дальнейшем филтровать, хз на самом деле
3. Обработка данных - в идеале хотелось бы поковырятся на R. Но ес чо, обойдусь просто решеткой :D. Сама цель - собрать информацию о популярности ЯП и активности среди отдельных коммьюнити в процентном соотношении.
В конце постараюсь выложить дампы бд необработанной инфы, обработанной, и собственно самого парсера.
Отчетики и скриншотики буду тут постить по мере продвижения.
👍8🤡2❤1🤮1
Оу, короче, с утречка пришла бредовая мысль забахать анализ на F#. Чтоб интереснее было. По поводу анализа - есть такая вещь R Provider которая позволяет использовать R прям из F#, так что почти все по плану.
Составил список материалов по теме -
Basics:
https://www.tutorialspoint.com/fsharp/
https://fsharpforfunandprofit.com/posts/concurrency-async-and-parallel/
https://blogs.msdn.microsoft.com/visualstudio/2011/04/04/f-code-first-development-with-entity-framework-4-1/
Analysis:
http://bluemountaincapital.github.io/FSharpRProvider/
Parsing:
http://www.quanttec.com/fparsec/tutorial.html#
Там походу может еще чего накину
Составил список материалов по теме -
Basics:
https://www.tutorialspoint.com/fsharp/
https://fsharpforfunandprofit.com/posts/concurrency-async-and-parallel/
https://blogs.msdn.microsoft.com/visualstudio/2011/04/04/f-code-first-development-with-entity-framework-4-1/
Analysis:
http://bluemountaincapital.github.io/FSharpRProvider/
Parsing:
http://www.quanttec.com/fparsec/tutorial.html#
Там походу может еще чего накину
Tutorialspoint
F# Tutorial
F Tutorial - F# helps you in the daily development of the mainstream commercial business software. This tutorial provides a brief knowledge about F# and its features, and also provides the various structures and syntaxes of its methods and functions.
🤡6👍2🎉1
Блин, я ж забыл про лайки, интерактивность как никак 👌
🤡7
P.S.
Оператор ?. теперь больше не мой любимый оператор, его место занял волшебный |>
Оператор ?. теперь больше не мой любимый оператор, его место занял волшебный |>
🤡4❤1
Окееей, сегодня прям день разочарований
Во-первых, ограничение GitHub API на количество запросов - 10 в минуту - пролетаем с многопоточностью
Во-вторых, не хватило оперативки на MsSql в докере :D
В-третьих, ограничение по поиску во всем том же API на поисковую выдачу, в итоге обошел поиском по дате создания репозитория - по каждому дню, большие разбросы дат не катят, потому что в день создается почти 1к репозиториев на популярных языках
Но в любом случае уже все готово и тихо мирно данные парсятся, этот процесс займет дохрена времени, так что о результатах буду сообщать, и из-за слишком большого количества данных планирую таки парсить до начала 2017-го года, инфы актуальной для анализа будет предостаточно
P.S.
Парсер что-то больно заливать на гитхаб, поэтому обойдемся просто pastebin'ом
https://pastebin.com/N7xBQcVy
Во-первых, ограничение GitHub API на количество запросов - 10 в минуту - пролетаем с многопоточностью
Во-вторых, не хватило оперативки на MsSql в докере :D
В-третьих, ограничение по поиску во всем том же API на поисковую выдачу, в итоге обошел поиском по дате создания репозитория - по каждому дню, большие разбросы дат не катят, потому что в день создается почти 1к репозиториев на популярных языках
Но в любом случае уже все готово и тихо мирно данные парсятся, этот процесс займет дохрена времени, так что о результатах буду сообщать, и из-за слишком большого количества данных планирую таки парсить до начала 2017-го года, инфы актуальной для анализа будет предостаточно
P.S.
Парсер что-то больно заливать на гитхаб, поэтому обойдемся просто pastebin'ом
https://pastebin.com/N7xBQcVy
Pastebin
open Systemopen FSharp.Dataopen Newtonsoft.Jsonopen System.Data.Entityop - Pastebin.com
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
🤡4
Okay, парсил с перерывами, на данный момент 157 757 репозиториев,
готовы следующие языки: csharp, c, java, javanoscript, php, typenoscript, сейчас парсится C++
готовы следующие языки: csharp, c, java, javanoscript, php, typenoscript, сейчас парсится C++
🤡4
Окей, финальные результаты после парсинга наиболее рейтинговых репозиториев по языкам в период 29 августа 2017 по 1 января 2017-го, после чистки от пустышек
● C# — 24 621
● Java — 26 827
● C — 23 988
● C++ — 24 683
● JS — 29 463
● TS — 24 600
● PHP — 24 595
● F# — 1 997
● Python — 27 072
● Haskell — 9 838
● Ruby — 23 901
● Swift — 25 073
● Objective-C — 24 361
● R — 23 640
Общее количество — 324 857
● C# — 24 621
● Java — 26 827
● C — 23 988
● C++ — 24 683
● JS — 29 463
● TS — 24 600
● PHP — 24 595
● F# — 1 997
● Python — 27 072
● Haskell — 9 838
● Ruby — 23 901
● Swift — 25 073
● Objective-C — 24 361
● R — 23 640
Общее количество — 324 857
🤡5👍2
Ладушки, как будем делать отчет? Либо я заливаю порциями, либо готовлю крупный отчет и вываливаю все разом?
anonymous poll
Полный отчет – 72
👍👍👍👍👍👍👍 88%
По частям – 10
👍 12%
👥 82 people voted so far.
anonymous poll
Полный отчет – 72
👍👍👍👍👍👍👍 88%
По частям – 10
👍 12%
👥 82 people voted so far.
🤡1