《开源思索集》一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(代码行数),大概得到如下一个图:

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

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

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

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

时间: 2024-07-30 04:52:42

《开源思索集》一28万个开源项目之番外篇的相关文章

《开源思索集》一“我们的开源项目”活动发起人——庄表伟专访

"我们的开源项目"活动发起人--庄表伟专访 开源思索集 1. 先来个自我介绍吧! 庄表伟,盛大创新院高级研究员.1997年毕业至今,始终战斗在编程的"第一线",2009年加入盛大创新院.一直致力于推广并服务开源,热爱社区,热衷参与各种社区的交流活动.对于开源的事业贡献度很低,目前稍微能够拿得出手的项目,是一个正在进行中的写作计划:<借助开源项目,学习软件开发>. 为什么要发起"我们的开源项目"活动? 这个活动,最初是因为即将召开的QC

《开源思索集》一开放源码是开源软件吗? - 简书

开放源码是开源软件吗? - 简书 开源思索集开放源码和开源软件的不同是什么?开放源码不能叫做开源软件吗?所谓开源,仅仅是指符合OSI定义的Open Source吗?Open Source的来历1997年,埃里克·雷蒙(Eric Raymond)出版其著作<大教堂和市集>,探讨黑客社区与自由软件原则.1998年初,该论文受到极大的关注,成为促成网景通讯公司将其受欢迎的互联网套装软件<网景通讯家>(Netscape Communicator)释放成为自由软件的因素之一.这些代码即为今日

《开源思索集》一成功的开源软件都有什么样的特点

成功的开源软件都有什么样的特点 开源思索集一.萌芽阶段1.解决实际问题,这是核心.不一定要特别创新,特别酷,当然如果有的话是加分项. 2.定期发布,及时接受反馈,不断满足用户需求,形成稳定预期. 二.成长阶段1.出色的宣传手段.引导传播的能力.很多不错的开源项目因为这一点不够,始终默默无闻 . 2.足够好的协作机制.虽然开源社区通常有较为成熟的玩法,但是做得不够好的项目比比皆是. 3.友好的参与引导.不断地吸引新人加入贡献(包括新手指南.开发文档.Demo等). 三.成熟阶段1.商业介入,获得资

《开源思索集》一导读

开放源码是开源软件吗? 当我们谈开源时,我们谈些什么? 如何更有效地学习开源项目的代码? 打开本书,为你解答有关开源的所有问题. "将开源与道德脱钩,既不以道德相标榜,也不以道德相指责.这是对于开源软件最好的态度!" "自由软件值得尊重:软件版权应该遵守:开源运动值得参与.专利说到底是个很糟糕的东西.而知识,蕴含在任何能够被读到的源代码里." "学习开源,就尽可能在代码里找答案,而不是在代码之外找答案,那些都是二手的,而且很可能是不准确的." &

《开源思索集》一Free Software vs. Open Source

Free Software vs. Open Source 开源思索集 推荐一部电视剧 很早以前看过一部港剧<龙兄鼠弟>,是万梓良.郑则仕和张卫健演的.其中万梓良饰演的雷文凤,在最后写了一本书,叫做<黑白灰>.大意是:这个世界,虽然存在黑白两色,绝大多数人,却都是灰色的.而他,却一定要坚持做一个纯白色的人.甚至在他看来,灰色的人较之黑色的人,更加罪恶. 最近刚刚读完了另外一本书<若为自由故>,则是一本Richard Stallman的传记.在这本书里,红帽公司总裁罗伯特

《开源思索集》一基于包管理工具的开源生态圈

基于包管理工具的开源生态圈 开源思索集2005年,我还是一个典型的Java程序员.一个偶然的机会,我看到了一篇文章--<Ruby on Rails实践>. 在简单的试用之后,我于2005年05月27日在当年的JavaEye社区写了一篇热情洋溢的帖子:Java社群该向Ruby on Rails学习些什么? 当时的JavaEye站长Robbin回复到:"Python/Ruby是下一代的编程语言,Java是这一代的编程语言,要等到Python/Ruby流行,至少5年以后.正因为5年以后,所

《开源思索集》一如何看待陈皓在微博上对闭源和开源软件的评论?

如何看待陈皓在微博上对闭源和开源软件的评论? 开源思索集 忍不住要深深地叹息一声,各位,这个观点真的一点都不新鲜,而且早就被批得一钱不值了. 在1998年,微软的万圣节文件被泄露,然后流到了Eric S. Raymond的手上,他是<大教堂与集市>的作者. ESR以极其尖锐的语言,点评了这批文件,我只打算摘录与陈皓观点相关的部分. 微软的文件中说:"当向JimAll描述这个问题的时候,它提供了漂亮的模拟"追逐后灯".要使一大批半组织的暴民合作,必须要向他们指出一个

《开源思索集》一我们都是干柴,期待烈火!

我们都是干柴,期待烈火! 开源思索集今天,整个上午我都在创智天地7号楼,参加一个社区经理的活动.社区经理培训活动之四 --"如何从0开始做一个很棒的社区" 来了很多朋友,大家都是8分钟快速演讲,给我留下最深刻印象的,是OpenERP社区的Jeff,还有ThinkLAMP社区的板子. Jeff的社区,做了很多很多的贡献,但是也有很多"苦逼"的数据.一个Wiki,非常非常多的内容,只有4个人撰写,而且其中90%的内容,还是他一个人写的.为了养活社区,Jeff在外面接活,

《开源思索集》一拥抱开源,从中受益

拥抱开源,从中受益 开源思索集导读:盛大创新院高级研究员庄表伟近日编撰系列文章<借助开源项目,学习软件开发>活动,引起业界关注.庄表伟认为,通过编撰这些文章,希望更多开发者能够借助开源项目提高开发效率,减少重复劳动并从开源软件中受惠.同时,他呼吁更多开发者参与此项活动,通过分享过来人的经验教训,帮助那些初次接触开源的朋友.为此,CSDN记者就开源社区未来前景,开源所带来的机遇和开源是否受到企业青睐等几方面对庄表伟进行了采访. 以下是采访内容: CSDN记者:您为何如此重视开源? 庄表伟:随着科