《Elastic(中国)产品应用实战》——七、使用Elastic Stack洞察GitHub开源项目的开发效能(上)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 《Elastic(中国)产品应用实战》——七、使用Elastic Stack洞察GitHub开源项目的开发效能(上)

开源项目的火热程度取决于技术创新和行业发展趋势,有很多风口浪尖的开源项目 确实非常吸引人。GitHub中的开源项目质量好不好,是不是数项目获得的星星就够 了?该如何洞察开源项目的社区参与程度?如何判断项目核心开发团队的研发效能? 为了回答这些颇具深度的问题,我们还需要对项目进行更深度的分析。


本教程教你使用Elastic Stack构建GitHub开源项目的关键指标的分析看板,在 Kibana中详细分析项目的几个重要维度。


1. 学习目标


  • 1)使用zip/tar.gz软件包在本地轻松搭建Elastic Stack开发环境;
  • 2)使用 Filebeat HTTP JSON inputedit 插件从 GitHub API 下载分析数据
  • 3)Kibana中查询和分析项目数据,图形化展示分析结果
  • 4)掌握Kibana数据分析展示看板的基本操作。


2. 准备工作


首先需要在你的电脑上,进行下面的两项准备工作。你可以使用Windows. macOS 或者Linux操作系统完成本教程的所有操作。


1)在浏览器中打开网址。


https://www.elastic.co/downloads/past-releases#elasticsearch


下载 elasticsearch-7.17.0-darwin-aarch64.tar.gzkibana-7170-darwin- aarch64.tar.gzfilebeat-717.0-darwin-x86_64.tar.gz 软件包。


请自行选择正确的平台,以上darwin-aarch64软件包适用于moacOS M1平台; 而darwin-x86_64软件包适用于macOS Intel平台。根据你使用的操作系统下载 正确的软件包。


2)GitHub屮创建personal token,用于提升访问GitHub Api请求数限制。

image.png

保存这个界面中的类似于这样的个人访问令牌 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 备用。

3. 启动开发环境


1)启动Elasticsearch服务器下面是在macOS Ml平台上解压缩Elasticsearch 软件包,进入解压后的软件包的目录,使用其可执行文件启动服务。

tar zxvf elasticsearch-7.17.0-darwin-aarch64.tar.gz
cd elasticsearch-7.17.0/bin
./elasticsearch -Enode.name=mac-m1

以上使用的命令是直接运行Elasticsearch可执行文件./elasticsearch - Enode.name=mac-m1其中参数-Enode.name=mac-m1设定了当前节点的名称 你也可以使用你的主机名。


如果是在Windows平台上,使用解压缩软件将zip软件包解压后打开Windows 操作系统的命令行工具,进入解压后的目录中,执行./elasticsearch.exe- Enode.name=mac-m1即可,对于下面的KibanaFilebeat也是如法炮制。


2)启动Kibana服务器。


使用下面的命令启动Kibana服务器。

tar zxvf kibana-7.17.0-darwin-aarch64.tar.gz
cd kibana-7.17.0-darwin-aarch64/bin
./kibana

这样就启动了 Kibana服务器,如果你使用的是远程的虚拟机或者云主机需要在 启动命令中加入一个参数即可,./kibana server -H 0.0.0.0,这样Kibana就可以从 远程的任意Ip地址访问。


Kibana默认会连接上一步所启动的Elasticsearch服务器,在这个开发环境中,默 认没有启用用户名和密码认证,由于是临时的测试,生产环境中建议启用 Elasticsearch的用户密码认证。


3)准备Filebeat的运行环境:解压缩Filebeat软件包,进入解压后的目录备份 默认的 filebeat.yml 重命名为 filebeat.yml.bk


用下面的命令准备好Filebeat的运行环境。

tar zxvf filebeat-7.17.0-darwin-x86_64.tar.gz
cd filebeat-7.17.0-darwin-x86_64
mv filebeat.yml filebeat.yml.bk

4)初始化Kibana的配置。


在浏览器中输入http://localhost:5601在登陆了 Kibana之后点击左上角的图 标,打开左侧隐藏菜单,找到 Stack Management->Kibana->Advanced Setting 页 面中的这两个选项。


打开“Dark mode”选项,打开暗黑模式界面。

image.png

设置 “Document Explorer or classic view” 选项。关闭默认的 classic 经典视

图模式。

image.png

自查点


已经成功的将ElasticsearchKibana在本机上,启动并运行正常。可以在浏览器 中访问Kibana的界面。浏览若干重要的功能界面:Discover .Dashboard JDevTools, Stack Management 等。


4. 下载示例配置文件


为了降低学习Kibana数据看板的搭建门槛请访问网址下载准备好的示例文件 https://github.com/martinliu/sdp-dashboard/archive/refs/heads/main.zip


解压下载后的zip文件其中的三个文件会被使用到

1) filebeat.yml:完整的Filebeat配置参数模版。用它替换Filebeat的默认配置文 件。本示例配置文件分析的是Ansibleawx项目(Ansbile Tower的开源版 本)你也可以根据需要其替换为其它需要探索的项目;

2) add_gh_fields.json: GitHub项目属性扩展字段定义。将其放入Filebeat程序 文件夹的目录中;

3) export-vl.O.ndjson: Kibana可视化数据分析看板模版。后续将其导入到新安 装的Kibana中。


以上三个文件适用于任何操作系统。如果你的操作系统中安装了 Git客户端,你可 以直接clone这些示例文件所在项目到本地git clone https://github.com/martinliu/sdp-dashboard.git


5. 使用 Filebeat 下载项目数据


Filebeat包含多种数据摄入模块:

各种模块已经覆盖很多类型的数据源,灵活使用这些模块就可以将Filebeat当作 —个mini版的Logstash使用,当然Logstash包含了更丰富的摄入模块和数据处 理能力。本教程聚焦在“HTTP JSON”采集模块的应用。


6. 获取开源项目概要信息


本教程提供的示例配置文件,采集的是awx的项目数据。将下载示例配置文件中的 add_gh_fields.json filebeat.yml 复制至U Filebeat 的目录中。

使用微软的Virtual Studio Code编辑器【或者其他的纯文本编辑器】打开 filebeat.yml 示例文件。

查看该示例文件,你需要删除掉此文件中间的大部分内容「或者注释掉这部分先不 用的代码」只留下下面的剩余部分,用于做Filebeat的初始化测试。你还需要使用 上面的步骤中所准备好的GitHub Personal Access Token替换配置文件中第21行 中token后面对应的参数。

###################### Filebeat Configuration Example 
#########################
# ============================== Filebeat inputs 
===============================
filebeat.inputs:
# ============================== 建议先获取这一部分的数据 
===============================
# overall, contributors, releases, languages, tags 的数据少且重要,可以手工确认之后在做第二
部分
# 获取项目的概要信息 - overall
# GET /repos/{owner}/{repo}
- type: httpjson
 interval: 120m
 config_version: 2
 request.url: https://api.github.com/repos/ansible/awx
 request.method: GET 
 # 在请求中增加个人认证令牌,提高数据获取条数限制
 request.transforms:
 - set:
 target: header.Authorization
 value: 'token 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'
 # 使用数据处理器,修整数据
 processors:
 # 优化分析:增加方便搜索分析的字段 
 - add_fields: 
 fields:
 project: awx
 kpi: overall
 # 解码裸 json 结果:将 message 字段中的 json 内容解码为多个字段
 - decode_json_fields: 
 fields: ["message"]
 target: "json"
# ======================= Elasticsearch template setting 
=======================
# 配置索引模版基础属性
setup.template.overwrite: true
setup.template.settings:
 index.number_of_shards: 1
 number_of_replicas: 0
 index.mapping.total_fields.limit: 5000
setup.template.name: "filebeat"
setup.template.pattern: "filebeat-*"
setup.template.fields: "fields.yml"
# 修改部分 json 字段默认的数据类型
setup.template.json.enabled: true
setup.template.json.path: "add_gh_fields.json"
setup.template.json.name: "add_gh_fields"
# 禁用 ilm 功能
setup.ilm.enabled: false
# ================================== General 
===================================
name: github-crawler
# ================================== Outputs 
===================================
# ---------------------------- Elasticsearch Output ----------------------------
output.elasticsearch:
 hosts: ["localhost:9200"]
 index: "filebeat-7"
# ================================= Processors 
=================================
# 删除 Filebeeat 采集到的无关数据,节省存储空间
processors:
- drop_fields:
 fields: ["ecs", "agent", "input", "host", "message"] 
# ================================== Logging 
===================================
logging.level: debug
# ============================= X-Pack Monitoring 
==============================
# monitoring.enabled: true

以上配置文件仅使用了必要的参数选项,目的是实现开源项目概要参数信息的抓取,

并测试 Filebeat 的可用性(filebeat-7.17.0-darwin-x86_64.tar.gz 可以正常运行在

macOS M1 平台,Filebeat 目前还没有 aarch64 的软件包)。


不论是 macOS,Windows 还是 Linux,打开命令行工具,进入 Filebeat 的解压缩

目录后,执行下面的测试命令./filebeat test output。

➜ filebeat-7.17.0-darwin-x86_64 ./filebeat test output
elasticsearch: http://localhost:9200...
 parse url... OK
 connection...
 parse host... OK
 dns lookup... OK
addresses: ::1, 127.0.0.1
 dial up... OK
 TLS... WARN secure connection disabled
 talk to server... OK
 version: 7.17.0

以上返回结果表明:Filebeat可以正常连接本机的Elasticsearch服务器。在Window 操作系统中,需要将filebeat可执行文件名换成filebeat.exe,后面的命令行参数不 变。如果filebeat.yml配置文件的语法错误这个命令中会报错。


7. 理解 GitHub API 的限流和限速


使用Filebeat作为客户端访问GitHub API需要了解的重要信息都在官方文档上点 这里,下面都是一些必须理解的知识,以及有必要在运行Filebeat的操作系统上做 的测试。


认证用户每小时的请求发送总配额是5000次;对于比较流行的项目而言,issue pull request两类的数据量比较多,很可能会用尽配额,建议使用since参数 先拉取近期的数据分析,然后逐步拉取旧数据;

企业版用户的配额高一些,每个用户,每小时的配额是15000次;

未认证用户,每小时限制在60次请求;

建议在采集数据之前,先在GitHub上对目标项目进行大概的了解,预估overall contributorsreleaseslanguagestagsissues pull request 等数据的 条数和可能需要的请求次数,然后分步骤采集各类数据;

可以用加大page size参数【per_page参数的最大值为100]的方式降低需要 发出的请求次数。page size越小采集的项目数据量越大,越可能碰到被限流 的情况。


检查你的PAT是否正确,或者用户是否被限流的方法是,在命令行里运行这条命令

curl-u
martinliu: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-I https://api.github.com/users/octocat

这个命令中-umartinliu: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 包含了用户名和个人访问令牌(PAT)。

➜ curl -u martinliu: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 -I 
https://api.github.com/users/octocat
HTTP/2 200
server: GitHub.com
date: Thu, 17 Mar 2022 11:01:02 GMT
content-type: application/json; charset=utf-8
content-length: 1335
cache-control: private, max-age=60, s-maxage=60
vary: Accept, Authorization, Cookie, X-GitHub-OTP
etag: "c9c3cea653b1e722852a41f65a43a5e969c0722c81525b3f1a27f7678269c6ba"
last-modified: Tue, 22 Feb 2022 15:07:13 GMT
x-oauth-scopes: public_repo, repo:status
x-accepted-oauth-scopes:
github-authentication-token-expiration: 2022-04-15 06:47:45 UTC
x-github-media-type: github.v3; format=json
x-ratelimit-limit: 5000
x-ratelimit-remaining: 4440
x-ratelimit-reset: 1647516784
x-ratelimit-used: 560
x-ratelimit-resource: core
access-control-expose-headers: ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimitLimit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, XOAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHubSSO, X-GitHub-Request-Id, Deprecation, Sunset
access-control-allow-origin: *
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: origin-when-cross-origin, strict-origin-when-cross-origin
content-security-policy: default-src 'none'
vary: Accept-Encoding, Accept, X-Requested-With
x-github-request-id: 4664:4A3B:121A47C:12EB215:623314EE

以上结果表明了,认证成功的GitHub账号,且未被限流的桩体,结果中的这几个参 数最重要:

* x-ratelimit-limit: 是 5000 表明用户名和 PAT 是正确的,如果是 60 表明,这个用户名和
token 组合错误,未认证用户的限制是 60。
* x-ratelimit-remaining: 4440 当前这个小时里的剩余 API 请求数。
* x-ratelimit-reset: 1647516784 下一次访问限制被重置的时间。

在采集数据之前,确认能看到类似于以上的数据,否则不要继续做下面的步骤。基于GitHub API使用的限流特性,建议分类分时段采集数据,避免发生被限流的状况。


在使用FilebeatHTTP JSON模块采集GitHub API数据的过程中很难不会碰到被 限流的情况求)在被限流的时候你可以在filebeat的滚动日志中看到类似下面的信息。

2022-03-17T11:22:53.262+0800
ERROR [input.httpjson-stateless] v2/input.go:115 Error while
processing http request: failed to execute http client.Do:
server responded with status code 403:
{''message'':''Resource protected by organization SAML enforcement.
You must grant your Personal Access token access to this organization.'',''documentation_url'':
"https://docs.github.com/articles/authenticating -to-a-github-organization-with-saml-single-sign-on/")
{"id": "BF2B0C218CAC3BA0", "input_url": "https://api. github.com/repos/elastic/beats/releases")

以上信息表明,你当前的账户访问被限流了,这样你不得不等待一个小时后,在让 Filebeat继续采集数据。


自查点


你已经理解了 GitHub API访问流控的基本知识。完成了在正式采集数据前的必要测 试已经确认当前用户名和PAT是正确无误。在浏览器中提前测试filebeat.yml配 置文件中的request.rul确保URL可以正常返回结果。


可选的测试在操作系统上用git clone的方式下载一个自己的项目修改某个文件 后将更新push回去确保和GitHub网站的服务是正常的。

下一步开始进行数据初始化前的准备基础准备工作。

8. 采集并确认部分项目数据


在导入数据之前,需要完成下面这几项任务:


1)导入为大家准备好的Kibana配置文件

2)在配置文件中只开启overall部分的数据采集

3)首次启动Filebeat并停止它

4)Kibana中确认采集到的数据

5)为了大批量数据采集,修改索引字段数量上限。


下面详细讲解操作过程。

在解压缩后的zip文件中,找到export-vl.O.ndjson文件在浏览器中打开Kibana 的界面,点击左侧菜单需要导入示例Kibana可视化对象。


点击展开左侧菜单,选择Management->Stack Management->Kibana->Saved Objects-点击右上角的"Import”按钮,选中"export-vl.O.ndjson”文件点击 右下角的导入按钮。

image.png

 

用文本编辑器打开filebeat.yml配置文件确保在filebeat.inputs:这个部分中只 包含下面的采集项目概况的代码。

- type: httpjson
 interval: 6m
  config_version: 2
 request.url: https://api.github.com/repos/ansible/awx
 request.method: GET
 # 在请求中增加个人认证令牌,提高数据获取条数限制
 request.transforms:
 - set:
 target: header.Authorization
 value: 'token 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' #此处的 token 示例
需要被替换
 # 使用数据处理器,修整数据
 processors:
 # 优化分析:增加方便搜索分析的字段
 - add_fields:
 fields:
 project: awx
 kpi: overall
 # 解码裸 json 结果:json 内容解码为多个字段
 - decode_json_fields:
 fields: ["message"]
 target: "json"

以上代码中token后面的字符串需要替换为你自己的,获取方式参考前文。


重点解释几个参数:


Type: httpjson:这是使用Filebeathttpjson采集模块下面整段都是它的 配置,每一段采集一个不同的GitHub API;

intervel: 6m:配置这个采集条目的采集频率,如果该类型数据变化频率不高, 每天采集两三次即可。60m60分钟采集一次的频率,可以配置为60分钟的 nGitHub API限流的周期也是按60分钟恢复一次的。

数据量大的时候需要考虑延长采集间隔,取保一个周期内,可以将所有数据都 刷新一遍;

request.url:这里配置的是不同GitHub API的路径,其中包括了目标分析代码 库的全路径,需要在采集前用浏览器测试其正确性。如果考虑到采集可能受限 制可以查阅API文档,适当提高page size的大小从而节省采集请求次数

request.transforms:配置了使用token认证方式,保证filebeat使用你的个 人访问令牌,以认证用户的身份采集数据,否则非认证用户60次的请求限制, 分分钟就会被用完;

-add_fields:这一段配置了开源项目的名称和数据分类;这里使用了手工配置 的方式,在后续增加其它类型数据采集的时候,你需要确认修改project:字段 的项目名称,分类名称和request.url对应,不需要修改。

打开命令行工具,进入Filebeat解压缩后的目录中。运行下面的命令

➜ filebeat-7.17.0-darwin-x86_64 ./filebeat -e

这条命令的输出日志应该很快就会停止。按ctrl+c结束首次数据采集测试。在没有 报错的情况下,初始化信息采集就成功了。下面开始在Kibana里确认数据采集结果。

image.png

 点击Kibana左侧菜单选择Analytics->Discovery->右上角的Open菜单-〉选择 overall预制查询视图。在数据显示视图中,至少应该有一条数据,打开这条数据观 察所有采集到的字段。项目Overall的数据信息丰富,变化率不大,可以每天两三 次,就能够绘制出相关的趋势分析图表。


虽然只采集到有限的项目概况数据,现在已经可以查看GitHub开源项目分析看板的样貌了。


点击 Kibana 左侧菜单选择Analytics->Dashboard->点击 GitHub Project Analysis。

image.png

查看相关信息点:

1)在项目选择菜单中,选中filebeat.yml文件中所配置的项目名称。界面中的数 据会自动刷新;

2)overall mertrics这个区域里显示了基础的项目数据

3)这里显示了项目的年龄。这是个扩展字段,如果没有显示正确数值的话,应该 排查解决后,在进行后续的采集和分析。


在我们分析一个开源项目的时候,完全不能只看overall metrics中的概况基础数据。 可以参考DORA 2019 Report的分析报告点击那个链接打开相关的说明文档。这 是一个长期的跟踪调查,从四个维度分析软件交付效能。我将每个分析维度和 GitHub中的相关开发活动数据做了对应。

image.png

在项目分析数据集看板的不同模块的标题中,我使用到了 T1. T2S1的标签,其 它周围的数据分析块也同时起到了参考支撑作用。


值得说明的是,这四个维度的正向和反向分析都是值得推敲的,可以会推导出完全 相反的结论,需要理性判断。例如:某个代码库长期以来,保持着很高的open issues 的状态open issue的数量高达1500以上。这个数据可能的分析方向如下

它是非常火爆的项目:遭到用户热捧,参与者积极踊跃的参与项目反馈;

项目技术债的坑很深:用户对这个坑很多,坑很深的项目,保持着忍耐且不离 不弃,并长期吐槽的状态;

项目核心开发团队(含外部贡献者)专注于创新:项目参与各方无法协同平衡 新功能开发和技术债清理之间的矛盾,而开发新功能的诱惑往往更大,大家就 默认选择了前者;

项目的原作者/公司转战其它赛道:项目原作者团队是持续性的主要负责方,解 铃还须系铃人,外部贡献者和其它开发者很难接盘或者挽救这样的项目。


希望以上各种假设开阔了你分析开源项目的思路,而应该选择那个分析结论,还依 赖于你对这个项目其它背景信息,和历史发展过程的了解程度。


可以在Kibana的时间选择控件中,选择最近三个月、半年、一年等时段进行特定 的分析,也可以选择过去的某一年或者半年做YOY的年度对比分析。特别是对 releaseprissues三类数据的综合分析,我们不难从开发效能的角度度量这些 开源项目的整体研发效能实力。


本教程为大家抓取和分析数据提供了技术工具的支撑。为你进行项目的深度分析提 供基础的信息和角度。根据不同的项目分析需求,我们从这些数据中还可以开发出 其它各种分析角度和图表。我为此在GitHub上也创建了一个项目欢迎大家一起交流。


项目地址https://github.com/martinliu/sdp-dashboard


在进入大批量数据采集前,还需要微调Elasticsearch后台的索引字段数量上限。点 击展开左侧菜单,选择Management->Dev Tools->Console0在这个开发者工具 的左侧输入并执行下面的代码。

PUT filebeat-7/_settings
{
 "index.mapping.total_fields.limit": 5000
}

执行的结果如下图所示。

image.png

操作步骤:

1)粘贴入以上代码后点击右三角的执行按钮

2)右侧结果返回为true,表明成功更新了索引配置。


自查点


检查确认:

1)Kibana里正常导入了所有示例可视化控件和基础配置

2)filebeat可执行文件可以正常的执行

3)完成了 Elasticsearch的索引初始化和配置微调;

4)成功导入了项目概要overall数据,并且在Dashboard上可见这些数据。


在以上自测点都成功以后,再进入下面的步骤。


更多精彩内容,欢迎观看:

《Elastic(中国)产品应用实战》——七、使用Elastic Stack洞察GitHub开源项目的开发效能(下):https://developer.aliyun.com/article/1220912?spm=a2c6h.13148508.setting.14.653f4f0e1XsCJH

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
1月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
70 3
|
15天前
|
编解码 人工智能 自然语言处理
MaskGCT:登上GitHub趋势榜榜首的TTS开源大模型
近日,香港中文大学(深圳)联手趣丸科技推出了新一代大规模声音克隆TTS模型——MaskGCT。一起看看该模型的一些表现吧!
|
1月前
|
数据采集 应用服务中间件 Go
开源的键鼠共享工具「GitHub 热点速览」
开源的键鼠共享工具「GitHub 热点速览」
|
1月前
|
存储 IDE 开发工具
来咯,他来咯 看GitHub Codespaces 如何帮助缩短开发设置时间
来咯,他来咯 看GitHub Codespaces 如何帮助缩短开发设置时间
21 0
|
3月前
|
SQL JavaScript 前端开发
Github 2024-08-05 开源项目周报 Top15
根据 Github Trendings 的统计,本周(2024年8月5日统计)共有15个项目上榜。以下是根据开发语言汇总的项目数量: - Go 项目:4个 - JavaScript 项目:3个 - Python 项目:3个 - Java 项目:2个 - TypeScript 项目:2个 - C 项目:1个 - Shell 项目:1个 - Dockerfile 项目:1个 - 非开发语言项目:1个
92 2
|
3月前
|
人工智能 Rust JavaScript
Github 2024-08-26 开源项目周报Top15
根据Github Trendings的统计,本周共有15个项目上榜。以下是按开发语言汇总的项目数量:Python项目8个,TypeScript、C++ 和 Rust 项目各2个,Jupyter Notebook、Shell、Swift 和 Dart 项目各1个。其中,RustDesk 是一款用 Rust 编写的开源远程桌面软件,可作为 TeamViewer 的替代品;Whisper 是一个通用的语音识别模型,基于大规模音频数据集训练而成;初学者的生成式人工智能(第2版)则是由微软提供的18门课程,教授构建生成式AI应用所需的知识。
122 1
|
3月前
|
Rust Dart 前端开发
Github 2024-08-19 开源项目周报Top15
根据Github Trendings的统计,本周(2024年8月19日统计)共有15个项目上榜。按开发语言分类,上榜项目数量如下:Python项目最多,有7项;其次是JavaScript和TypeScript,各有3项;Dart有2项;HTML、PowerShell、Clojure和C++各1项。此外,还介绍了多个热门项目,包括Bootstrap 5、RustDesk、ComfyUI、易采集、Penpot等,涵盖了Web开发、远程桌面、自动化测试、设计工具等多个领域。
106 1
|
3月前
|
JavaScript 前端开发 Go
Github 2024-08-12 开源项目周报 Top14
本周Github Trendings共有14个项目上榜,按开发语言汇总如下:Python项目7个,TypeScript项目5个,C项目2个,JavaScript项目2个,Go和Batchfile项目各1个。其中亮点包括开发者职业成长指南、Windows激活工具、ComfyUI图形界面、AFFiNE知识库、易采集可视化爬虫等项目,涵盖多种实用工具和开源平台。
111 1
|
3月前
|
存储 安全 Java
【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私
在一次意外中,作者因三年前将测试代码遗忘在GitHub上而遭遇了代码被他人fork的问题。为解决这一危机,作者详细介绍了如何通过GitHub的DMCA下架通知流程安全删除敏感代码,包括处理私人信息和商标侵权的具体步骤。本文不仅提供了实用的操作指南,还强调了及时响应的重要性,帮助读者避免类似风险
37 0
【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私
|
3月前
|
开发者 存储 API
Xamarin 开发者的社区资源概览:从官方文档到GitHub示例,全面探索提升开发技能与解决问题的多元化渠道与实用工具
【8月更文挑战第31天】Xamarin 开发者社区资源概览旨在提升开发效率与解决问题,涵盖官方文档、社区论坛、GitHub 项目等。官方文档详尽,涵盖 Xamarin.Forms 使用、性能优化等;社区论坛供交流心得;GitHub 提供示例代码。此外,第三方博客、视频教程及 Xamarin University 等资源也丰富多样,适合各阶段开发者学习与提升。通过综合利用这些资源,开发者可不断进步,应对技术挑战。
46 0