开源贡献 计算_使用此网站为开源做贡献

开源贡献 计算

When I began the transition into being a software developer, I knew that contributing to open source projects would greatly assist my job search.

当我开始过渡为软件开发人员时,我知道为开源项目做贡献将极大地帮助我的求职。

So, I jumped onto GitHub looking for issues that I could take on. Little did I know that this would be a miserable endeavor.

因此,我跳上GitHub寻找可能遇到的问题。 我几乎不知道这将是一场痛苦的努力

实现 (The Realisation)

At the beginning, I thought I could simply go to React’s repo page (or another extremely popular repo’s page) and find an issue.

一开始,我以为我可以简单地转到React的repo页面(或另一个非常受欢迎的repo的页面)并找到问题。

But those repo’s are literally hounded by people looking for an issue. And it is very time consuming to click through repositories.

但是这些回购协议实际上是由寻找问题的人所束缚的。 单击存储库非常耗时。

My second thought was to use GitHub’s issue search, but I ran into several problems here:

我的第二个想法是使用GitHub的问题搜索 ,但是在这里遇到了几个问题:

  1. You cannot filter issues based upon the amount of stars a repository has

    您不能根据存储库具有的星级来过滤问题
  2. You can only filter by language if the issue is literally labeled that language. (So if the project is predominantly a JavaScript repo and the issue is not labeled JavaScript, you have no way of searching for it by language.)

    如果问题在字面上标有该语言,则只能按语言进行过滤。 (因此,如果项目主要是JavaScript存储库,而该问题未标记为JavaScript,则无法通过语言进行搜索。)

Basically, you have to know of them and look them up manually.

基本上,您必须了解它们并手动查找它们。

  1. As said before, go to a project’s GitHub page by learning of its existence in some way

    如前所述,通过某种方式了解项目的存在 ,以转到项目的GitHub页面

  2. Look through the issues. Now you can filter a little by label (think bug, feature, good-first-issue)

    浏览问题。 现在,您可以按标签进行过滤(考虑错误,功能,优先事项)
  3. If you don’t find something that you can do, you have to start this process over with a new repo!

    如果找不到您可以做的事情,则必须从一个新的仓库开始这个过程!

Needless to say, it took me forever to find an issue that I wanted to take on.

不用说,我花了很长时间才找到我想要解决的问题。

Fast forward a few months. I began to make a website to make open source contribution easier.

快进几个月。 我开始制作一个网站,以简化开源贡献。

创作过程 (The Process of Creation)

The main challenge was to get the data that I wanted. I knew I had to use the GitHub API.

主要的挑战是获取我想要的数据。 我知道我必须使用GitHub API。

As I said earlier, when you search on GitHub for an issue, you cannot search by stars or language. This stems from the fact that GitHub’s Repo API request does not provide this option.

如前所述,当您在GitHub上搜索问题时,无法按星号或语言进行搜索。 这是因为GitHub的Repo API请求未提供此选项。

My initial thought was that I should focus on finding repositories of interest. For example, the thousand most starred JavaScript, Python, and a variety of other languages repos.

我最初的想法是,我应该专注于寻找感兴趣的存储库。 例如,上千种最受注视JavaScript,Python和其他各种语言存储库。

Well… you cannot search repos by language nor by star count.

好吧……您无法通过语言或星级来搜索存储库。

Dynamically fetching data is cool, but how could I do it? Here is a condensed view of why it is ridiculously difficult with the GitHub API.

动态获取数据很酷,但是我该怎么办呢? 这是为什么GitHub API如此困难的简明视图。

使用GitHub API达成协议 (Coming to Terms with the GitHub API)

One thing to begin with: you have a limit of 5000 requests per hour to the GitHub API.

首先要解决的问题是:每小时对GitHub API的请求数限制为5000。

This is the only way to get a bunch of repositories at once: https://api.github.com/repositories which will give you around 35 repositories but none of these rows have language or star count.

这是一次获取一堆存储库的唯一方法: https : //api.github.com/repositories它将为您提供约35个存储库,但是这些行都没有语言或星号。

Though, you can query each of these repositories returned from the initial API request (ex. https://api.github.com/repos/facebook/react) and then you get this data!

不过,您可以查询从初始API请求返回的每个存储库(例如https://api.github.com/repos/facebook/react ), 然后就可以获取此数据!

But wait… I have to go through every repository on GitHub... there are approximately 90 million repositories.

但是等等...我必须遍历GitHub上的每个存储库...大约有9000万个存储库。

一点数学 (A Little Math)

90,257,000 (amount of repos with amount of requests to get repos) / 5000 (hourly rate limit) ~= 18,000 hours or 750 days or around 2 years… ?

90,257,000(回购金额与获得回购请求的数量)/ 5000(每小时费率上限)〜= 18,000小时或750天或大约2年…

勉强做出的决定 (The Reluctantly Made Decision)

So I had to find the repositories manually… ?. Thank god for this site: https://gitstar-ranking.com/ but still, quite a few hours of clicking through repositories…

因此,我不得不手动查找存储库……。 感谢上帝为这个网站:h ttps://gitstar-ranking.com/,但是仍然需要花几个小时才能浏览存储库…

But, I got there! And here is the site! ?

但是,我到了那里! 这是网站! ?

FindanIssue.com (FindanIssue.com)

I made it as simple as possible. Search by the exact repo, by specific language (exact and case sensitive), by label, or the age of the issue. So, you can get to the root of what you are looking for.

我使它尽可能简单。 按确切的存储库,特定的语言(精确且区分大小写),标签或问题的年龄进行搜索。 因此,您可以找到所需的内容。

If you are a beginner, then search by labels such as good first issue or docs/ documentation as well as specifying your programming language of choice.

如果您是初学者,请按标签(例如“ 第一期”docs /文档)进行搜索 ,并指定您选择的编程语言。

If you are a seasoned developer looking for a challenge, search by labels such as feature, help wanted, bug, or other labels of your choice.

如果您是经验丰富的开发人员,正在寻找挑战,请按功能 ,所需的帮助错误或您选择的其他标签之类的标签进行搜索。

At the moment, the data is refreshed twice daily so old issues are removed and issues that have been labeled are given their proper label.

此刻,数据每天刷新两次,因此,旧的问题将被删除,已标记的问题将被赋予适当的标签。

总结思想 (Closing Thoughts)

There is still a lot of work that can be done:

还有很多工作可以完成:

  • The most glaring problem is that only around 900 projects are showcased. So, there are a wide spectrum of amazing projects that are not being given a chance.

    最明显的问题是仅展示了大约900个项目。 因此,有许多惊人的项目没有机会。
  • Improving the backend and some additions to the frontend would really make a difference

    改善后端以及对前端的一些补充确实会有所作为

All in all, I made this because I believe it to be a step towards fulfilling a need in the open source community of linking issues to developers. Rather then going out into the wild to find an issue to take on, the site aims to make it a simple few minutes of searching through a table.

总而言之,我之所以这样做,是因为我相信这是满足开源社区将问题与开发人员联系起来的需要的一步。 该网站旨在使搜索表格的时间变得很短,而不是大肆寻找要解决的问题。

I hope you use it and find yourself giving back to the world of open source, that you, as a developer, depend on every single day.

我希望您使用它并发现自己回馈开源世界,即您作为开发人员每天都依赖。

Here is the repo: https://github.com/jMuzsik/find-an-issue

这是仓库: https : //github.com/jMuzsik/find-an-issue

And here is the site: https://findanissue.com

这是网站: https : //findanissue.com

And thanks for the read!

并感谢您的阅读!

翻译自: https://www.freecodecamp.org/news/use-this-site-to-contribute-to-open-source-ec9b2751cb2/

开源贡献 计算

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode275. H指数 II(二分法)

给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列。编写一个方法,计算出研究者的 h 指数。 h 指数的定义: “h 代表“高引用次数”(high citations),一名科研人…

java 多线程阻塞队列 与 阻塞方法与和非阻塞方法

Queue是什么队列,是一种数据结构。除了优先级队列和LIFO队列外,队列都是以FIFO(先进先出)的方式对各个元素进行排序的。无论使用哪种排序方式,队列的头都是调用remove()或poll()移除元素的。在FIFO队列中,所…

批量移动AD用户到指定OU

作为域管理员,在日常工作中使用ADUC(AD用户和计算机)工具在图形界面中进行账号管理操作可谓是家常便饭了。然而一个个增加、移动、删除用户,这样操作有时真的够烦,当管理大批量的账户时,重复操作浪费的时间…

vs 编译说明

静态编译/MT,/MTD 是指使用libc和msvc相关的静态库(lib)。动态编译,/MD,/MDd是指用相应的DLL版本编译。其中字母含义 d:debug m:multi-threading(多线程) t:text代码 d:dynamic(动态)…

python numeric_Python pandas.to_numeric函数方法的使用

pandas.to_numeric(arg, errorsraise, downcastNone) [source]将参数转换为数字类型。默认返回dtype为float64或int64, 具体取决于提供的数据。使用downcast参数获取其他dtype。请注意,如果传入非常大的数字,则可能会导致精度损失。由…

javascript 分号_让我们谈谈JavaScript中的分号

javascript 分号要使用它们,还是不使用它们… (To use them, or not to use them…) Semicolons in JavaScript divide the community. Some prefer to use them always, no matter what. Others like to avoid them.JavaScript中的分号分隔社区。 有些人更喜欢始终…

leetcode436. 寻找右区间(二分法)

给定一组区间,对于每一个区间 i,检查是否存在一个区间 j,它的起始点大于或等于区间 i 的终点,这可以称为 j 在 i 的“右侧”。 对于任何区间,你需要存储的满足条件的区间 j 的最小索引,这意味着区间 j 有最…

python篇第6天【数据类型】

Python有五个标准的数据类型:Numbers(数字)String(字符串)List(列表)Tuple(元组)Dictionary(字典)Python数字数字数据类型用于存储数值。他们是不…

如何确定Ionic是否适合您的项目

by Simon Grimm西蒙格里姆(Simon Grimm) 如何确定Ionic是否适合您的项目 (How to find out if Ionic is the right choice for your project) Ionic has been around for quite some years. With the latest release of version 4, it has become an even better option for d…

二维数组的查找 java_查找二维数组java的总和

我正在一个项目中,我必须读取文件并将内容输入2D数组。然后,我必须对每一行,每一列和矩阵的周长求和。到目前为止,除外围功能外,我一切正常。我正在尝试为两个外部列的顶行,底行和中间创建单独的for循环。矩…

递归法解决兔子问题

记得以前過相似问题,今天有同事问道,竟然不知所答,故写篇文章以记之。 一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么若干月以后可以繁…

mysql本地连接错误解决办法

今天公司同事在测试服务器上死活不能用一个账号在本地登陆,但是远程就可以,于是我帮忙看了下,测试服务器的IP是10.10.2.226,错误如下:linux-0fdr:/home1/mysql_data # mysql -h 10.10.2.226 -u jxq2 -pjxq2ERROR 1045 (28000): Access denied for user jxq2linux-0fdr (using p…

leetcode546. 移除盒子(dp)

给出一些不同颜色的盒子,盒子的颜色由数字表示,即不同的数字表示不同的颜色。 你将经过若干轮操作去去掉盒子,直到所有的盒子都去掉为止。每一轮你可以移除具有相同颜色的连续 k 个盒子(k > 1),这样一轮…

408. Valid Word Abbreviation

题目: Given a non-empty string s and an abbreviation abbr, return whether the string matches with the given abbreviation. A string such as "word" contains only the following valid abbreviations: ["word", "1ord", &qu…

oracle常用操作指令

登录oracle用户: sqlplus 用户名/密码 创建用户:create user 要创建的用户名 identified by 当前用户名; 授权:grant resource,connect to 要授权的用户名; 删除用户:drop user 用户名 创建表: create table student( id n…

java接收二进制数据_java-从套接字读取二进制数据

我正在尝试连接到服务器,然后向其发送HTTP请求(在这种情况下为GET).这个想法是请求一个文件,然后从服务器接收它.它应同时适用于文本文件和二进制文件(例如imgs).我对文本文件没有任何问题,它可以完美工作,但是对二进制文件有一些麻烦.首先,我声明一个BufferedReader(用于读取标…

web开发入门_Web开发人员和设计师的自由职业入门

web开发入门Learn how to get started with freelancing as a web developer and designer. Cara Bell shares lessons and tips she has learned from her years as a freelancer.了解如何以网络开发人员和设计师的身份开始自由职业。 卡拉贝尔(Cara Bell)分享了她从自由职业者…

leetcode1343. 大小为 K 且平均值大于等于阈值的子数组数目(队列)

给你一个整数数组 arr 和两个整数 k 和 threshold 。 请你返回长度为 k 且平均值大于等于 threshold 的子数组数目。 示例 1: 输入:arr [2,2,2,2,5,5,5,8], k 3, threshold 4 输出:3 解释:子数组 [2,5,5],[5,5,5] 和 [5,5,8…

二分查找递归和非递归方法分析

递归实现: 自己写的递归:多一个赋值操作,虽然可以得到正确的结果。但是比较难以理解。 问题:没有深刻理解递归返回值。return会在递归调用到最后,在递归结束的地方,会将返回值一层一层返回给方法&#xff0…

BaseYii_autoload

BaseYii_autoload 判断是否是classMap还是命名空间的 然后 转换成 绝对路径 include 文件  public static function autoload($className){      //classMap 一般都是类库 官方 或者自定义类映射 if (isset(static::$classMap[$className])) {$classFile static::$cla…