仪表板展示 | X-lab开放实验室GitHub开源项目洞察大屏
背景介绍
X-lab开放实验室是一个开源软件产业开放式创新的共同体,由来自国内外著名高校、创业公司、部分互联网与IT企业的专家学者与工程师所构成,目前已在包括开源治理标准制定、开源社区行为度量与分析、开源社区流程自动化、开源全域数据治理与洞察等方面做出了较有影响力的工作。
OpenLeaderBoard是X-lab开放实验室旗下的开源项目,它是一个全球开源领导力排行榜,基于一套科学、公正、透明的方法生成全球开源项目、开源企业、开源贡献者的排行榜单。OpenLeaderBoard对GitHub上的企业、项目以及开发者进行了活跃度和影响力的排名。
OpenDigger则是X-lab实验室主导的开源生态数据分析核心项目,负责与开源测量学相关的一切数据、指标、模型、算法等落库与实现。作为一个具有共识性的实施标准工具集,当前OpenDigger项目已经在木兰社区下面进行孵化与培养,并服务于包括木兰社区、开放原子基金会、互联网企业、COSS 企业、投资机构、媒体等不同的组织。
X-lab开放实验室需要对全球开源项目的相关数据指标进行多维度的展示,因此希望制作一个开源项目洞察大屏,在大屏中展示开源项目的不同指标,例如项目关注度、巴士系数、项目参与人数、Star/Fork总数、Star/Fork新增等指标,让关注项目的人可以了解整个开源项目的具体情况。
要在大屏上展示这么多的指标,就需要考虑数据怎么来?数据如何展示?什么样的项目适合OpenLeaderboard?基于这些问题,X-lab开放实验室开始进行项目选型,从数据展示、数据源接入、是否适合OpenLeaderboard、是否适合X-lab开放实验室等各个维度进行考察,希望要找到跟目标和要求相契合的数据可视化产品。
大屏介绍
GitHub开源项目洞察大屏基于DataEase(https://github.com/dataease/dataease)实现OpenLeaderBoard开源项目各指标的分析展示,包含了被观察开源项目的影响力、关注度、活跃度、巴士系数(即累计达到项目50%贡献度的开发者数量)、项目参与人数、Star/Fork总数、Star/Fork新增等指标。
对于OpenLeaderBoard来说,对数据可视化分析工具的需求包括:首先,要能够直观地展示开源项目的质量、进展和问题等项目整体情况,帮助社区及时发现和解决问题;其次,是展现开源项目关注度和活跃度,以激励社区成员参与项目开发和维护,促进社区成员的参与和贡献;最后,呈现开源项目数据和指标监控,这样做可以提高项目的质量和透明度,促进项目的发展和推广。
以DataEase开源项目为例,其开源项目洞察大屏的效果如下图所示。

为什么选择DataEase?
在进行BI产品选型时,X-lab开放实验室团队对比了多款开源工具,最终选择了DataEase开源数据可视化分析工具。X-lab开放实验室选择DataEase的原因包括:
1.DataEase是开源项目,所有人都可以贡献和使用,与X-lab开放实验室的使命、愿景、价值观相契合;
2.简单易用,DataEase不仅可以只需要一条命令就可以一键安装,而且可以通过拖拉拽的方式来设计图表;
3.丰富的图表支持;
4.多种数据源支持;
5.DataEase项目的整体活跃度非常高,而且每月持续迭代更新版本。
落地过程
基于上述的原因,X-lab开放实验室团队选择了DataEase。在使用部署的过程中,X-lab开放实验室团队也发现了一些大屏落地过程中需要解决的问题,但最终都通过和DataEase开源工具的配合得以解决。
问题1:由OpenDigger提供的数据的数据格式是固定的,所以在对接DataEase时,发现基于这些数据格式无法进行有效的数据展示。
解决方法1:经过团队多方讨论,决定写一个数据中转程序(即od-api)来解决这一问题。由数据中转程序来实现数据格式转换,获取开源项目的影响力、关注度、活跃度、巴士系数、项目参与人数等数据,并定时同步对应的数据,将数据存储到MySQL数据库中,再由DataEase进行数据源的接入,以及历史数据的同步。
问题2:团队希望获取开源项目在GitHub代码托管平台的Star、Fork等总数,但OpenDigger中记录的数据为趋势数据,并未记录总数等数据,即使数据累加也不是实际的Star总数、Fork总数。
解决方法2:团队通过调研接口后发现,GitHub开发的API中包含这些数据,通过调用API的接口,成功获取到这部分数据。
问题3:在OpenLeaderBoard项目排行榜中,当存在多个项目时,如何在进入开源项目大屏后使得展示的数据都是对应项目的数据?
解决方法3:在OpenLeaderBoard排行榜页面上增加一列图标,通过点击该列中的图标跳转至对应具体项目的开源洞察大屏。DataEase支持实时传入外部参数,只需要在跳转时,在公共链接部分对应上各自的项目名称,点击后大屏上即可展示对应的项目洞察数据。
效果实现
1.实现方案
相关数据由Opendigger和GitHub API提供,用数据转换程序od-api将数据整理落库到MySQL数据库中,并调整相对应的数据格式,最后将MySQL作为数据源接入到DataEase平台,用来进行数据分析和展示。
底层数据来源:OpenDigger、GitHub API;
数据转换程序:od_api;
DataEase数据源接入:MySQL;
数据展示:DataEase开源数据可视化分析平台。

▲ 附图 GitHub开源项目洞察大屏整体实现方案架构图
2.实现效果
更多合作
除了GitHub开源项目洞察大屏,X-lab开放实验室基于DataEase还实现了GitHub 2022数字洞察报告(BI大屏版),内容包含对GitHub多角度的宏观分析和微观分析,从全域生态、地域生态、供应链生态、技术生态、商业生态、组织生态、社区生态和开发者自身等八大视角,全面展示了开源软件生态体系的发展状况。
《GitHub 2022数字洞察报告》包含了GitHub全球增长大屏、开源软件供应链生态大屏、开源技术领域与编程语言大屏、开源数据库领域洞察大屏、全球商业开源洞察大屏、木兰开源社区洞察大屏、开源项目社区洞察大屏(下图以dataease洞察大屏为例)和开发者个人贡献大屏,后续还计划将这些大屏集成至OpenLeaderBoard项目中并统一入口。

赛事信息
近日,开放原子开源基金会发起了“OpenDigger开源软件生态数据分析挖掘平台挑战赛(OpenSODA)”。本项赛事正在火热进行中,比赛作品征集中W2类作品主题为“开源领域的可视化大屏”,DataEase为W2类作品案例的合作平台。该赛事初赛时间为5月6日,报名已经开始,欢迎大家使用DataEase开源数据可视化分析工具参加本项赛事。
相关文章:
仪表板展示 | X-lab开放实验室GitHub开源项目洞察大屏
背景介绍 X-lab开放实验室是一个开源软件产业开放式创新的共同体,由来自国内外著名高校、创业公司、部分互联网与IT企业的专家学者与工程师所构成,目前已在包括开源治理标准制定、开源社区行为度量与分析、开源社区流程自动化、开源全域数据治理与洞察等…...
【c语言】五大内存区域 | 堆区详解
创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>𖥦<)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…...
【JavaScript】动态表格
🎊专栏【 前端易错合集】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 🍔介绍 就是在输入框中输入数字后,再按…...
Css如何优雅的实现抽奖转盘
如图,抽奖转盘,可以拆分为几部分: 1.底部大圆; 2.中间小圆; 3.扇形区; 4.扇形内部奖品区; 5.抽奖按钮; 6.点击抽奖按钮时旋转动效及逻辑; 这其中,扇形区&am…...
在Java的小问题
问题1:如何在Java中创建一个对象? 解决方法: 在Java中,要创建一个对象,需要以下步骤: 创建一个类,定义对象的属性和行为。在类中定义一个构造函数,用于初始化对象的属性。在程序中…...
HashMap的扩容机制、初始化容量大小的选择、容量为什么是2的次幂
前置知识 先来看看HashMap中的成员属性 解释: size当前的容器中Entry的数量,也就是当前K-V的数量loadFactory装载因子,用来衡量HashMap满的程度,loadFactory的默认值是0.75threshold临界值,当实际KV数量超过threshol…...
[jenkins自动化2]: linux自动化部署方式之流水线(下篇)
目录 1. 引言: 2. 进阶操作 流水线 -> 2.1 简介: -> 2.2 最终效果图展示: -> 2.3 有没有心动, 真的像流水线一样, 实现了一键部署启动 3. 实现方式 3.1 下载几个插件 3.2 创建流水线任务 3.3 点击配置 3.4 根据流水线语法 写一个简单的helloworld 3.5 执行…...
idea使用 ( 二 ) 创建java项目
3.创建java项目 3.1.创建普通java项目 3.1.1.打开创建向导 接 2.3.1.创建新的项目 也可以 从菜单选择建立项目 会打开下面的选择界面 3.1.2.不使用模板 3.1.3.设置项目名 Project name : 项目名 Project location : 项目存放的位置 确认创建 3.1.4.关闭tips 将 Dont s…...
RabbitMq-接收消息+redis消费者重复接收
在接触RammitMQ时,好多文章都说在配置中设置属性 # rabbitmq 配置 rabbitmq:host: xxx.xxx.xxx.xxxport: xxxxusername: xxxpassword: xxxxxx## 生产端配置# 开启发布确认,就是confirm模式. 消费端ack应答后,才将消息从队列中删除#确认消息已发送到队列(Queue)pub…...
Orangepi Zero2 全志H616简介
为什么学 学习目标依然是Linux 系统 ,平台是 ARM 架构 蜂巢快递柜,配送机器人,这些应用场景用C51,STM32单片机无法实现 第三方介入库的局限性,比如刷脸支付和公交车收费设备需要集成支付宝SDK,提供的libalipay.so 是…...
Golang每日一练(leetDay0047)
目录 138. 复制带随机指针的链表 Copy List with Random-pointer 🌟🌟 139. 单词拆分 Word Break 🌟🌟 140. 单词拆分 II Word Break II 🌟🌟🌟 🌟 每日一练刷题专栏 &…...
HCL Nomad Web 1.0.7发布和新功能验证
大家好,才是真的好。 要问在HCL Notes/Domino系列产品中,谁更新得最快,那么答案一定是HCL Nomad Web。 你看上图右边,从1.0.1更新到1.0.7,都没花多少时间。 从HCL Nomad Web 1.0.5版本开始,可以支持直接…...
春招网申简历填写三技巧
网申第一关很重要,不夸张的说网申决定了你的笔试机会,从如信银行考试中心了解到,银行网申筛选过程中,有机器筛选人工筛选两道程序,掌握填写技巧后对提升简历通过率有较大帮助,一定要把握住,关于…...
计算机网络基础知识总结
经过学习我们可以知道: 关于计算机网络: ip地址端口号协议协议分层TCP五层协议协议封装两台计算机之间的通信 目录 ip地址 端口号 协议 协议分层 五层协议体系结构 (1) 应用层 (2) 运输层 (3) 网络层 (4)数据链路层 (5)物理层 封装&分用 两台主机之间的通信 …...
(下)苹果有开源,但又怎样呢?
一开始,因为 MacOS X ,苹果与 FreeBSD 过往从密,不仅挖来 FreeBSD 创始人 Jordan Hubbard,更是在此基础上开源了 Darwin。但是,苹果并没有给予 Darwin 太多关注,作为苹果的首个开源项目,它算不上…...
row_number 和 cte 使用实例:考场监考安排
row_number 和 cte 使用实例:考场监考安排 考场监考安排使用 cte 模拟两个表的原始数据使用 master..spt_values 进行数据填充优先安排时长较长的考试使用 cte 安排第一个需要安排的科目统计老师已有的监考时长尝试使用 cte 递归,进行下一场考试安排&…...
2023天梯赛记录
文章目录 L2-001 紧急救援L2-002 链表去重L2-004 这是二叉搜索树吗?L2-005 集合相似度L2-006 树的遍历L2-007 家庭房产L2-010 排座位L2-011 玩转二叉树L2-012 关于堆的判断L2-013 红色警报L2-014 列车调度L2-016 愿天下有情人都是失散多年的兄妹L2-019 悄悄关注L2-0…...
被吐槽 GitHub仓 库太大,直接 600M 瘦身到 6M,这下舒服了
大家好,我是小富~ 前言 忙里偷闲学习了点技术写了点demo代码,打算提交到我那 2000Star 的Github仓库上,居然发现有5个Issues,最近的一条日期已经是2022/8/1了,以前我还真没留意过这些,我这人懒…...
OpenGL(三)——着色器
目录 一、前言 二、Shader 2 Shader 2.1 顶点着色器 2.2 片段着色器 三、APP 2 Shader 四、顶点颜色属性 五、着色器类C 一、前言 着色器Shader是运行在GPU上的小程序,为图形渲染管线的某个特定部分而运行。各阶段着色器之间无法通信,只有输入和输…...
【MySQL】单表查询
一、表的准备 查询操作的SQL演示将基于下面这四张表进行,我们先创建好这四张数据表,并为其添加数据。 1、第一张表为部门表,名称为包含三个字段:部门编号(deptno),部门名称(dname&…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...
算法打卡第18天
从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...
