【51CTO.com快译】本文介绍了2016年脱颖而出的几个创新的开源项目。
在开源潮流的早期阶段,注意力主要放在操作系统上,后来才放在了大型内容管理系统上。这年头,甚至在主流新闻媒体上,容器也经常被提及。各大技术故事很好,但是它们忽视了出现在开源界小众领域的其他活动。我盘点了去年值得关注的七个相对藉藉无名的项目。你可以在本人的Nooks and Crannies专栏中看到介绍此类项目的更多文章。
1.Mixxx:DJ的瑞士军刀
上世纪80年代末,我在一家地方广播电台当流行音乐节目主持人(DJ),还当派对、婚礼和舞会的流动DJ。这份工作很好玩,生意不难做。只要两只CD播放机、一套还不错的混音和放大系统以及好多CD,就可以开张营业了。30年后,我的脑海里还是拖着那些CD到处跑的画面。采样对早在那时的流动DJ来说几乎闻所未闻。那时普通电脑很昂贵,速度也很慢,从PC播放音乐很麻烦――在节目活动期间缓冲时会卡住。
面向DJ的技术在此后几年发生了显著变化。一款便宜的电脑就能处理我们那个年代可以处理的一切,而且远不止这些。Mixxx这个开源系统为流动DJ或俱乐部DJ充当混音器和采样器。它的功能异常丰富,拥有4个输入端和4个采样端,交替淡变期间同步的工具,按键检测的工具,音高修正以获得谐波混频的工具,以及内置效果。你可以实时播放混音、录制混音,或者使用SHOUTcast或Icecast通过互联网流式传输。Mixxx有一个非常出色的音乐库系统,让你可以以自己喜欢的任何一种方式来组织管理音乐,因而可以迅速调播库中的歌曲。Mixxx全面支持DJ硬件控制器,包括市面上的80多种最流行的款式。
Mixxx,别评判我的音乐
我看了一下Mixxx社区,它是一群活跃、井然有序的专业人员,具有广泛的多样性。有论坛、庞大的维基和出色的错误及版本跟踪,一切井井有条。社区采用了一套明确而具体的行为规范,以防成员当中出现有问题的行为。在维基上,你能找到与Mixxx结合使用的硬件方面的出色提示,一个“参与进入”页面(http://mixxx.org/wiki/doku.php/getting_involved)介绍了如何可以加入到Mixxx社区。Mixxx是一款C++应用程序,采用GPL v2许可证,适用于Windows、OS X和Linux。版本2.0是在2015年12月推出的。
2.sofa:不适合懒惰的数据科学家
R项目是一种广泛使用的软件环境,面向统计计算,它在数据分析领域的使用继续在增长。rOpenSci项目开发的工具让R得以访问庞大的资料库(包括科学数据和全文本杂志文章)。sofa是rOpenSci团队开发的工具之一。sofa是一个工具包,让用户可以在R中轻松访问CouchDB NoSQL文档数据库。
想在程序中开始使用sofa,你得创建一个服务器句柄,名为cushion:
- myCushion <- Cushion$new(
- host = "myhost.mynet.org",
- transport = 'https',
- port = NULL,
- user = 'username',
- pass = 'mypassword'
- )
一旦你有了cushion,可以连接到任何数据库,或创建和销毁数据库。数据库的创建就跟下面一样简单:
- db_create(myCushion, 'felines')
一旦你创建了一个JSON或 XML文档,很容易把它插入到数据库:
- my_kitty <- '{"name":"Midnight", "color":"black", "furry":true, "size":'large', "gender":"tom"}'
- doc_create(myCushion, dbname="felines", my_kitty)
你可以视情况为doc_create指定第四个参数,迫使文档ID使用某个已知值。如果你不使用,默认情况是使用一个自动创建的哈希密钥。
准备查询吗?就是这么简单直观:
- db_query(myCushion, dbname="felines", selector=list(size = 'large'))$docs
这个查询会返回结构以及完整文档,包括ID和大小字段为large的所有文档的修订。还有工具让你可以将返回限制在特定字段,并实现比这个例子复杂得多的搜索。
sofa是一种出色的工具,可以发掘CouchDB中的数据;如果大数据对你来说很重要,它可能是适合你的工具。rOpenSci的所有工具都采用MIT许可证,并且有一套贡献者行为规范(https://github.com/ropensci/sofa)。代码放在GitHub上(https://github.com/ropensci/sofa)。
3.PANOPTES:开源天文项目
4月份,我采访了PANOPTES项目的詹妮弗·唐(Jennifer Tong)和威尔弗雷德·吉(Wilfred Gee)。我很喜欢他们在OSCON大会上的演讲,一直在关注其网站(http://www.projectpanoptes.org),以便进一步了解这个出色的项目。PANOPTES的全称是 Panoptic Astronomical Networked OPtical observatory for Transiting Exoplanets Survey,这个项目利用了全球有兴趣构建机器人望远镜的平民科学家的集体智慧。这个全球阵列将检测凌日行星,供更庞大的陆地和太空望远镜进一步分析。
每个参与者使用这些现成设备来建造机器人望远镜:商用摄像头、Arduino Micro、英特尔NUC及其他随处可见的部件。你可以从亚马逊买到大多数部件,总的成本不到5000美元。这种望远镜将与项目服务器共享数据,来自许多装置的图像分析将用来查找潜在的结果。如果主人需要,单个的望远镜可以下线,用于无关的观测。这使得它成为对学校和科学教育人士来说很理想的项目,因为他们可以参与更庞大的全球项目,并有机会使用高质量望远镜,用于本地教学工作。
PANOPTES项目继续在完善硬件设计。欢迎系统的beta测试人员按照网站上的操作指示来建造一个望远镜。集中式观测控制系统也在开展大量工作,该系统可以指令每一个机器人望远镜如何观测。这个项目值得关注,不仅仅是由于它开展的科学工作,还由于可以了解吸引人们参与其他分布式科学团队的过程。
4.OpenAPS:为一型糖尿病患者改善生活质量
对我来说,今年OSCON的重要时刻之一就是,达纳·刘易斯(Dana Lewis)发表了围绕OpenAPS的主题演讲,这是一种简化的人工胰腺,面向一型糖尿病患者。OpenAPS使用现有的医疗工具――胰岛素泵和血糖持续监视仪,结合Raspberry Pi或英特尔Edison计算机。该系统可处理复杂计算,胰岛素泵用户要将血糖含量保持在一个稳定的水平,通常必须执行这些计算。通过每5分钟更新一次,它以近实时方式处理工作,每天24小时连续不断。这意味着为用户减少了白天的麻烦,晚上可以睡得更香。
这个项目的核心理念是,通过开源项目代码,它们就能以比当前的闭源人工胰腺系统(APS)医疗研究项目更快的速度让APS造福更多的病人。OpenAPS团队采取了一种保守的做法,帮助确保高效的同时又很安全。
已有90多套得到部署,其中30多套于2016年夏天和秋天部署,大约三分之一的OpenAPS用户是孩子。社区由用户引导,欢迎新用户。用于自行构建的说明文档(https://openaps.readthedocs.io/en/latest/index.html)唾手可得,内容翔实。它不仅解释了方法,还解释了原因,注重病人的安全。
许多IT专业人士想让计算机做一些有意思的工作,从而让生活变得更美化,而OpenAPS就是我觉得利用我们的开源技能帮助亲朋好友的最佳例子之一。
5.OpenEMR:确保诊所井井有条的工具
我始终觉得,诊所是相当复杂的工作场所。必须保管和保护大量不同的信息,使用病人信息的职能部门同样迥然不同。最近,我惊讶地发现原来还有OpenEMR(http://www.open-emr.org)这种开源诊所管理系统。它存在已有一段时间,最初于2001年开发,当时叫另一个名字。第一个版本是在2002年推出的,采用GPL V2.0 许可证。
功能特性非常丰富。除了一个可靠的病人记录系统外,OpenEMR还有一个内置的医疗计费系统,可以加入使用ANSI ASC X12的各大计费交换中心,还可以使用所需的任何编码系统。除了较传统的印刷、传真或电子邮件方法外,OpenEMR还可以使用ePrescribe处理在线处方订购。如果作为一项服务来安装,OpenEMR还有一个病人门户网站系统,可以处理与病人联系的事务。如果诊所已经在使用一个流行的病人门户网站系统,系统可以通过API来联系,改而使用这个门户网站。
OpenEMR病人信息屏幕
OpenEMR提供了长长的报告列表,引起我注意的一项功能是,它支持20多种语言,能够让同一家诊所支持多种语言。在大量人口不说本地语言的不同城市,诊所有这项功能很好,因为每个用户可以选择自己的语言。OpenEMR完全符合UTF-8。
据估计光在美国就安装了5000多套,OpenEMR有一个由用户和开发人员组成的活跃社区。OEMR基金会是一家美国慈善组织,它是为支持OpenEMR的采用和开发而设立的,旨在为所有人提供更平价的医疗保健服务。有很活跃的论坛,用户和开发人员可以讨论各自的要求,并且帮助使用这款应用软件。全球30多家公司提供商业托管及/或支持OpenEMR。它不是所有人都需要的好东西,但无疑是开源界一个漂亮的成功故事。
6.bibisco:小说家的朋友
2015年9月,我在自己的专栏中介绍了bibisco。bibisco(http://www.bibisco.com)由安德烈·费科曼迪(Andrea Feccomandi)开发,这种开源工具可以替代Scrivener之类的软件程序。完善的功能特性给我留下了深刻印象;正如后来所说,我一直改用它来写自己的小说及其他作品。只有一个缺点阻止我对这个项目投入全身心的热情,那就是缺少OS X客户软件。安德列是针对Windows和32位及64位Linux包装它的。我的一个朋友在Mac上很巧妙地解决了问题,不过我仍搞不明白是怎么做到的。
bibisco其实已彻底改变了我写小说的方式。就一章里面的每个场景而言,我使用不同的条目,用一行标题来描述这个场景。我可以使用这些条目作为该章的故事板,需要时可以重新排列。每章可以标以地点和人物,还能获得报告,表明那些地点和人物在全书中出现的频次。自改用这个工具以来我取得了不小的进展,无比高兴。不过有一个烦人的小问题。我只能在有Windows电脑的家里创作小说;我的Macbook根本干不了。想象一下,安德烈告诉世人:他购买了一台Mac,那样可以发布OS X客户软件几天后,我有何等惊讶。随后在一个月过后,他再次宣布OS X客户软件已发布在网站上。
7.Pa11y:自动化可访问性测试
可访问性(accessibility)是Web设计方面一个经常被忽视的部分。许多指导准则很难测试,但是设计人员可以使用许多具体的、可测试的标准――如果他们有适合相应任务的工具。Pa11y(http://pa11y.org)应运而生,这套工具用于对网页进行一次性测试或自动化测试,针对一系列广泛的标准集来测试可访问性。很容易用npm来安装基本的工具包,所以你可以马上测试网页,并获得反馈和特定的建议,以便改进。如果贵公司想要对网页进行日常或定期的测试,仪表板和Web服务安装起来简单直观。你可以在demo.pa11y.org看到这个仪表板的演示。
社区在积极开发网站的新版本,包括为开发人员及想要贡献代码的其他人提供了详细得多的信息。该组织采用了由Contributor Covenant改动而来的行为规范。他们还开始为名为Sidekick的仪表板应用软件开发一种新的、更完善的版本。这个项目的编程工作已开始,团队致力于完全在GitHub代码库这一开放环境下设计和开发。
还有更多
每年会涌现几百个新的开源项目。想要介绍全部项目是不可能的,尽管我很想这么做。本文介绍的这些项目只是明年值得关注的诸多项目中的几个而已。说说你关注的项目,欢迎留言交流。
原文标题:7 cool little open source projects that stood out in 2016,作者:D Ruth Bavousett
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】