《开源思索集》一28万个开源项目之番外篇

简介:

本节书摘来异步社区《开源思索集》一书中的第1章,作者: 庄表伟 责编: 杨海玲, 更多章节内容可以访问云栖社区“异步社区”公众号查看。
28万个开源项目之番外篇
开源思索集
一、工具

  1. 数据抓取
    最初是打算使用openhub.net的Open API的,他们有不错的API,还在Github上放了一个开源项目。只可惜,他们的API,最多只能申请5个API Key,每个Key明天的访问请求数量不能超过1000次。当时我还不知道,其实openhub的数据只有28万多,还以为满打满算,至少得60多天才能全部抓完,顿时心就凉了。

后来有朋友介绍了一个很棒的直接抓取HTML页面,然后做DOM分析的工具,名叫noodle。

接下来,只要抓取: https://www.openhub.net/p?ref=homepage&q=&page={num} 就能够拿到所有项目的概要数据了。

当然,后续的331个项目的明细数据,还是得通过OpenHub的API来抓取。

  1. 数据分析
    完全是土法上马:sqlite3+numbers+csv+ruby,反正各种手法,什么称手用什么。
  2. 数据展示
    原本是打算在numbers里想想办法的,后来发现实在太弱。Excel也差不多,只能到网上搜索一些信息图制作的工具,后来找到了几个不错的在线工具,经过一番比较,最后决定用infogr.am来完成。的确非常不错。

二、释疑:项目大小与创建时间的关系
我与@云风 在微博上有一小段讨论,起因还是我之前分析的一些观点:

是否使用Github,越是新的项目越愿意用,越是大的项目越没法用。
是否使用Github来管理项目的issue,越是新的项目越愿意用,越是大的项目越没法用。
这个结论,其实在用词上,是有些讲究的:按理说,新与老相对,小与大相对;愿意与不愿意相对,能用与没法用相对,我的两个结论,对仗都不公整。其实,确实故意为之。

于是,云风与我的对话如下。

云风:项目规模和项目历史本身有相关性吧。代码规模越大的项目历史很可能越久。
我:项目的规模,主要还是与项目本身的特性有关。原本复杂的项目,才可能越长越大。原本就是小项目,也未必就会稳定地逐年增长。
云风:这只能说明小项目可以历史久,不能说明大项目可以历史短啊。很少有新项目一开始就很大啊。代码也是一行行写出来的啊。
我:那就是成长速度不同了。比如OpenStack一开始就不小。
云风:一开始就不小只能说闭源开发过一段时间,或从别的地方搬迁过来的吧。你能想象不被版本管理工具管理的情况下,首次提交 10 万行以上的代码?看这个 link 提交日志写的 initial fork out of nova。

后来,我也没有再继续这个讨论,但是却一直在思考这个问题:“项目的大小与项目的创建时间,究竟有多少相关性?”

后来,我将两个数据,做了一个分析:Log(第一次提交代码,至今的天数)/Log(代码行数),大概得到如下一个图:


q1

经过强大的Excel的计算,两个数据的相关系数,大约是0.203的样子,也就是说:大致上有较弱的正相关。

三、开源
目前,我已经将这个分析的相关数据,放在Github上开源了。简单介绍一下:

  • data.sqlite3.zip 是28万基础数据。
  • projects.sqlite3 是331个项目的详细数据。
  • projects.csv 是我用来做数据分析的大表格。

四、名单
331个一个开源项目,名单如下:

b1

相关文章
|
1月前
|
算法 前端开发 语音技术
推荐6款2023年爆火的开源项目,你值得一试!
推荐6款2023年爆火的开源项目,你值得一试!
推荐6款2023年爆火的开源项目,你值得一试!
|
3月前
|
消息中间件 缓存 算法
太全!不愧是Github爆火的阿里812页高并系统设计核心技术全解
某乎上有这样一个问答:现在好点的互联网公司招聘基本都要求有高并发经验,但没有高并发的经验的人感觉只有在好点的互联网才获得高并发经验,这难道不是死循环?没有高并发经验的人如何才能获取高并发方面的经验呢? 如何获取高并发经验? 其实并不是去了大公司就能获得高并发的经验,高并发只是一个结果,并不是过程。在来自全人类的高并发访问面前,一切都有可能发生,所以我们经常能看到顶级网站的颤抖。想要获得高并发经验基础最重要,这包括算法,操作系统,jvm,数据库,缓存,多线程等等。这些独立而又关联的知识其实书本里都有,我们需要时不时地去温习,不能一直痴迷于框架,框架只会挡住你的眼睛,让你觉得什么都不重要。大并发
|
8月前
|
存储 分布式数据库 调度
GitHub典藏版!腾讯T14级牛人亲码的分布式数据库实践,再次爆火
数据库就是要做好五件事,存储、事务、查询、复制和其他。而对分布式数据库来说,不仅要继续做这五件事,还要多出一件事,分片。在这六件事中,存储和其他这两件事与单体数据库差不多,难点就在事务、查询、复制和分片这四件。
|
6月前
|
存储 分布式计算 NoSQL
惊 GitHub首次开源!在国内外都被称为分布式理论+实践的巅峰之作
如果你是一位软件行业从业者,尤其是从事服务器端或者后台系统软件开发,相信近年来一定被层出不穷的商业名词所包围:NoSQL、Big Data、Web-scale、Sharding.Eventual consistency、ACID、CAP理论、云服务、MapReduce和Real-time等,所有这些其实都围绕着如何构建高效存储与数据处理这一核心主题。过去十年,在数据库领域与分布式系统方面涌现了许多引人瞩目的进展,由此深刻地影响了如何构建上层应用系统。
|
6月前
|
Dubbo Java 应用服务中间件
神作《Java多线程核心技术3》开源几分钟被下架!GitHub昙花一现
两天一次地分享好书环节又来了:高洪岩老师的 《Java多线程编程核心技术(第3版)》,网上还没有开源版本!阿嘴会在文末附电子版免费下载方式。
|
数据采集 缓存 移动开发
前端进阶:细数2年内我做的15个开源项目
从19年到21年,笔者利用空余时间陆陆续续做了一些开源项目, 大部分开源项目都立足于企业实际业务需求, 所以笔者觉得有必要做一个总结和复盘,在复盘的过程中希望也能对大家有所帮助.今后笔者的开源项目都会放在这篇文章中,如果想学习的可以多交流.
324 0
|
开发者 对象存储 数据管理
一言不合就删库跑路?万名贡献者和阿里开源的二三事 | 开发者必读(076期)
最炫的技术新知、最热门的大咖公开课、最有趣的开发者活动、最实用的工具干货,就在《开发者必读》!
794 0
|
存储 编解码 人工智能
首发!《长安十二时辰背后的技术秘籍》正式公开,速来下载
今天,阿里技术重磅发布电子书《长安十二时辰背后的技术秘籍:从智能算法到音视频创新技术》,已正式开放下载。了解在《长安十二时辰》的荧幕后,工程师在敲敲打打的代码之间,创造出智能算法和音视频技术的新高度。
6789 0
|
Dubbo 大数据 物联网
“2017最受欢迎中国开源软件”奖TOP 20揭晓 阿里中间件4大项目连续霸榜!
近日,开源中国公布了2017年度“最受欢迎中国开源软件”榜单,阿里中间件(Aliware)4大开源项目,数据库连接池Druid、JSON解析库Fastjson、分布式服务框架Dubbo、消息中间件Apache RocketMQ再次上榜。
8325 1
|
数据库 Android开发 Java