精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
2017年度開源貢獻榜 國內阿里排第一

原文:Who contributed the most to open source in 2017? Let’s analyze GitHub’s data and find out
作者:Felipe Hoffa
翻譯:無阻我飛揚

摘要:作者依據來自GitHub 2017年度的數據,對近百家公司的開源貢獻數據進行了分析排名,也對自己的分析方法做了說明,以下是譯文。

這篇分析,我們將看到GitHub在2017年度發表的所有的pushevents。對每個GitHub用戶,我們不得不盡最大努力推測他們屬于哪個組織。本分析只關注在 2017 年增長超過 20 個 star 的倉庫。

下面是我的分析結果,大家可以在我的交互數據倉庫報告中修改這些結果

頂級云提供商的比較

2017年度GitHub數據:

  • 微軟大約有 1,300 名員工積極地將代碼推送到 GitHub 上的 825 個頂級倉庫。
  • 谷歌大約有 900 名員工活躍于 GitHub,將代碼推送到約 1,100 個頂級倉庫。
  • 亞馬遜大約有 134 名員工活躍于 GitHub,將代碼推送到 僅158 個頂級倉庫。
  • 并不是所有的項目都是公平的:谷歌員工貢獻的代碼倉庫比微軟的多了 25%,倉庫獲得的 star 數也更多(530,000 vs 260,000)。亞馬遜倉庫 2017年的 star 總數為 27,000。

RedHat, IBM, Pivotal, Intel, 和 Facebook

亞馬遜遠遠落后于微軟和谷歌,那處在它們之間的有哪些公司呢? 根據貢獻情況排名如下:RedHat,Pivotal,Intel也對GitHub做出了突出貢獻。

注意,下面的表格合并了所有的IBM全球的域名(IBM在各個國家的域名都會帶有各個國家的域名后綴)——雖然各個區域仍舊出現在接下來的表格中。

Facebook 和 IBM(US) 的 GitHub 用戶數量與亞馬遜的相似,但它們貢獻的項目收獲到了更多的 star(尤其是 Facebook):

緊接著是Alibaba, Uber, 和 Wix:

GitHub自己,Apache 和 Tencent:

Baidu, Apple, Mozilla:

Oracle, Stanford, Mit, Shopify, MongoDb, Berkeley, VmWare, Netflix, Salesforce, Gsa.gov:

LinkedIn, Broad Institute, Palantir, Yahoo, MapBox, Unity3d, Automattic, Sandia, Travis-ci, Spotify:

Chromium, UMich, Zalando, Esri, IBM (UK), SAP, EPAM, Telerik, UK Cabinet Office, Stripe:

Cern, Odoo, Kitware, Suse, Yandex, IBM (Canada), Adobe, AirBnB, Chef, The Guardian:

Arm, Macports, Docker, Nuxeo, NVidia, Yelp, Elastic, NYU, WSO2, Mesosphere, Inria

Puppet, Stanford (CS), DatadogHQ, Epfl, NTT Data, Lawrence Livermore Lab:

我的方法

如何將GitHub用戶和企業聯系在一起

確定每個GitHub用戶隸屬于哪個組織并不容易—但是我們可以通過email的域名來確定,域名信息包含在提交的PushEvents里:

  • 不止一個用戶用同一個電子郵件,所以我們只能考慮到GitHub用戶在同一時期可以將代碼推送到超過20個star的GitHub 項目。
  • 我只計同一時期超過3個推送的GitHub用戶。
  • 用戶推送代碼到GitHub可以在推送中顯示許多不同的電子郵件—部分解釋了Git是如何工作。為了確定每個用戶的所屬組織,查看他們推送顯示最頻繁的電子郵件。
  • 不是每個人都會用自己組織的郵箱地址。在 Github 上有很多 gmail.com, users.noreply.github.com 或其它的郵箱。有時候出于保護自己企業郵箱的需要,用戶會匿名——所以我看不見他們的郵件域名,那就沒辦法把他們計入進去了。
  • 有時候雇員更換了組織,也就是跳槽了。我就把他們分配到獲得更多推送的公司。

我的查詢

#standardSQLWITHperiod AS (  SELECT *  FROM `githubarchive.month.2017*` a),repo_stars AS (      SELECT repo.id, COUNT(DISTINCT actor.login) stars, APPROX_TOP_COUNT(repo.name, 1)[OFFSET(0)].value repo_name   FROM period  WHERE type='WatchEvent'  GROUP BY 1  HAVING stars>20), pushers_guess_emails_and_top_projects AS (  SELECT *# , REGEXP_EXTRACT(email, r'@(.*)') domain, REGEXP_REPLACE(REGEXP_EXTRACT(email, r'@(.*)'), r'.*.ibm.com', 'ibm.com') domain  FROM (SELECT actor.id  , APPROX_TOP_COUNT(actor.login,1)[OFFSET(0)].value login  , APPROX_TOP_COUNT(JSON_EXTRACT_SCALAR(payload, '$.commits[0].author.email'),1)[OFFSET(0)].value email  , COUNT(*) c  , ARRAY_AGG(DISTINCT TO_JSON_STRING(STRUCT(b.repo_name,stars))) reposFROM period aJOIN repo_stars bON a.repo.id=b.idWHERE type='PushEvent'GROUP BY  1HAVING c>3  ))   SELECT * FROM (  SELECT domain, githubers, (SELECT COUNT(DISTINCT repo) FROM UNNEST(repos) repo) repos_contributed_to, ARRAY(    SELECT AS STRUCT JSON_EXTRACT_SCALAR(repo, '$.repo_name') repo_name    , CAST(JSON_EXTRACT_SCALAR(repo, '$.stars') AS INT64) stars    , COUNT(*) githubers_from_domain FROM UNNEST(repos) repo     GROUP BY 1, 2     HAVING githubers_from_domain>1     ORDER BY stars DESC LIMIT 3  ) top, (SELECT SUM(CAST(JSON_EXTRACT_SCALAR(repo, '$.stars') AS INT64)) FROM (SELECT DISTINCT repo FROM UNNEST(repos) repo)) sum_stars_projects_contributed_to  FROM (SELECT domain, COUNT(*) githubers, ARRAY_CONCAT_AGG(ARRAY(SELECT * FROM UNNEST(repos) repo)) reposFROM pushers_guess_emails_and_top_projects#WHERE domain IN UNNEST(SPLIT('google.com|microsoft.com|amazon.com', '|'))WHERE domain NOT IN UNNEST(SPLIT('gmail.com|users.noreply.github.com|qq.com|hotmail.com|163.com|me.com|googlemail.com|outlook.com|yahoo.com|web.de|iki.fi|foxmail.com|yandex.ru', '|')) # email hostersGROUP BY 1HAVING githubers > 30  )  WHERE (SELECT MAX(githubers_from_domain) FROM (SELECT repo, COUNT(*) githubers_from_domain FROM UNNEST(repos) repo  GROUP BY repo))>4 # second filter email hosters)ORDER BY githubers DESC
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56

常見問題解答

如果一個組織有1500個倉庫,為什么只計算200個呢?如果一個倉庫有7000個star,為什么只顯示1500個?

我做了關聯過濾,只計算了2017年度的star數。例如,在GitHub上Apache有大于1500個倉庫,但在2017年,只有205個收到多于20個star數。

這是開源的現狀嗎?

請注意,分析GitHub數據不包括頂級的團體,如Android,Chromium, GNU, Mozilla,也不包括Apache或者Eclipse基金會,還有一些其它項目選擇在GitHub之外運行它們的大部分活動。

對我的組織不公平

我只能計算我所能看見的。大家可以質疑我的臆斷,告訴我你如何用更好的方式來衡量。工作查詢是最好的方法。

例如,當將IBM的基于區域的域名用一個SQL轉換語句合并為頂級域名時,看看它們的排名是如何變化的:

SELECT *, REGEXP_REPLACE(REGEXP_EXTRACT(email, r'@(.*)'), r'.*.ibm.com', 'ibm.com') domain
  • 1
  • 2


(當合并IBM的區域電子郵件域名時,它的相對排名發生顯著變化)

接下來的步驟

我以前可能錯過——錯誤可能還會再次發生。請看看GitHub所有可用的原始數據,并質疑我所有的臆斷——那會很酷,可以看看你會得到什么樣的結果。

用交互式數據倉庫報告

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
將項目同時托管到Github和Git@OSC
三談github頁面域名綁定:域名跳轉
Eclipse使用git最簡易流程
Github中的fork作用 是否同步原倉庫 怎么同步
harbor私有倉庫的安裝以及私有倉庫的設置鏡像推送
GitHub
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 蒙阴县| 屏东市| 赤峰市| 潼南县| 永定县| 治多县| 许昌市| 万源市| 武川县| 宜宾县| 黑龙江省| 霸州市| 蚌埠市| 扎赉特旗| 吉水县| 凤山市| 津南区| 贵州省| 肃宁县| 道真| 隆子县| 都昌县| 伊川县| 岳阳市| 岳普湖县| 乃东县| 博爱县| 甘肃省| 金塔县| 霍城县| 合水县| 万山特区| 竹溪县| 富蕴县| 法库县| 西安市| 中方县| 镇坪县| 罗定市| 永安市| 景德镇市|