2016年脫穎而出的7個(gè)小而美的開(kāi)源項(xiàng)目
譯文【51CTO.com快譯】本文介紹了2016年脫穎而出的幾個(gè)創(chuàng)新的開(kāi)源項(xiàng)目。
在開(kāi)源潮流的早期階段,注意力主要放在操作系統(tǒng)上,后來(lái)才放在了大型內(nèi)容管理系統(tǒng)上。這年頭,甚至在主流新聞媒體上,容器也經(jīng)常被提及。各大技術(shù)故事很好,但是它們忽視了出現(xiàn)在開(kāi)源界小眾領(lǐng)域的其他活動(dòng)。我盤(pán)點(diǎn)了去年值得關(guān)注的七個(gè)相對(duì)藉藉無(wú)名的項(xiàng)目。你可以在本人的Nooks and Crannies專(zhuān)欄中看到介紹此類(lèi)項(xiàng)目的更多文章。
1.Mixxx:DJ的瑞士軍刀
上世紀(jì)80年代末,我在一家地方廣播電臺(tái)當(dāng)流行音樂(lè)節(jié)目主持人(DJ),還當(dāng)派對(duì)、婚禮和舞會(huì)的流動(dòng)DJ。這份工作很好玩,生意不難做。只要兩只CD播放機(jī)、一套還不錯(cuò)的混音和放大系統(tǒng)以及好多CD,就可以開(kāi)張營(yíng)業(yè)了。30年后,我的腦海里還是拖著那些CD到處跑的畫(huà)面。采樣對(duì)早在那時(shí)的流動(dòng)DJ來(lái)說(shuō)幾乎聞所未聞。那時(shí)普通電腦很昂貴,速度也很慢,從PC播放音樂(lè)很麻煩――在節(jié)目活動(dòng)期間緩沖時(shí)會(huì)卡住。
面向DJ的技術(shù)在此后幾年發(fā)生了顯著變化。一款便宜的電腦就能處理我們那個(gè)年代可以處理的一切,而且遠(yuǎn)不止這些。Mixxx這個(gè)開(kāi)源系統(tǒng)為流動(dòng)DJ或俱樂(lè)部DJ充當(dāng)混音器和采樣器。它的功能異常豐富,擁有4個(gè)輸入端和4個(gè)采樣端,交替淡變期間同步的工具,按鍵檢測(cè)的工具,音高修正以獲得諧波混頻的工具,以及內(nèi)置效果。你可以實(shí)時(shí)播放混音、錄制混音,或者使用SHOUTcast或Icecast通過(guò)互聯(lián)網(wǎng)流式傳輸。Mixxx有一個(gè)非常出色的音樂(lè)庫(kù)系統(tǒng),讓你可以以自己喜歡的任何一種方式來(lái)組織管理音樂(lè),因而可以迅速調(diào)播庫(kù)中的歌曲。Mixxx全面支持DJ硬件控制器,包括市面上的80多種最流行的款式。
Mixxx,別評(píng)判我的音樂(lè)
我看了一下Mixxx社區(qū),它是一群活躍、井然有序的專(zhuān)業(yè)人員,具有廣泛的多樣性。有論壇、龐大的維基和出色的錯(cuò)誤及版本跟蹤,一切井井有條。社區(qū)采用了一套明確而具體的行為規(guī)范,以防成員當(dāng)中出現(xiàn)有問(wèn)題的行為。在維基上,你能找到與Mixxx結(jié)合使用的硬件方面的出色提示,一個(gè)“參與進(jìn)入”頁(yè)面(http://mixxx.org/wiki/doku.php/getting_involved)介紹了如何可以加入到Mixxx社區(qū)。Mixxx是一款C++應(yīng)用程序,采用GPL v2許可證,適用于Windows、OS X和Linux。版本2.0是在2015年12月推出的。
2.sofa:不適合懶惰的數(shù)據(jù)科學(xué)家
R項(xiàng)目是一種廣泛使用的軟件環(huán)境,面向統(tǒng)計(jì)計(jì)算,它在數(shù)據(jù)分析領(lǐng)域的使用繼續(xù)在增長(zhǎng)。rOpenSci項(xiàng)目開(kāi)發(fā)的工具讓R得以訪(fǎng)問(wèn)龐大的資料庫(kù)(包括科學(xué)數(shù)據(jù)和全文本雜志文章)。sofa是rOpenSci團(tuán)隊(duì)開(kāi)發(fā)的工具之一。sofa是一個(gè)工具包,讓用戶(hù)可以在R中輕松訪(fǎng)問(wèn)CouchDB NoSQL文檔數(shù)據(jù)庫(kù)。
想在程序中開(kāi)始使用sofa,你得創(chuàng)建一個(gè)服務(wù)器句柄,名為cushion:
- myCushion <- Cushion$new(
- host = "myhost.mynet.org",
- transport = 'https',
- port = NULL,
- user = 'username',
- pass = 'mypassword'
- )
一旦你有了cushion,可以連接到任何數(shù)據(jù)庫(kù),或創(chuàng)建和銷(xiāo)毀數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)的創(chuàng)建就跟下面一樣簡(jiǎn)單:
- db_create(myCushion, 'felines')
一旦你創(chuàng)建了一個(gè)JSON或 XML文檔,很容易把它插入到數(shù)據(jù)庫(kù):
- my_kitty <- '{"name":"Midnight", "color":"black", "furry":true, "size":'large', "gender":"tom"}'
- doc_create(myCushion, dbname="felines", my_kitty)
你可以視情況為doc_create指定第四個(gè)參數(shù),迫使文檔ID使用某個(gè)已知值。如果你不使用,默認(rèn)情況是使用一個(gè)自動(dòng)創(chuàng)建的哈希密鑰。
準(zhǔn)備查詢(xún)嗎?就是這么簡(jiǎn)單直觀(guān):
- db_query(myCushion, dbname="felines", selector=list(size = 'large'))$docs
這個(gè)查詢(xún)會(huì)返回結(jié)構(gòu)以及完整文檔,包括ID和大小字段為large的所有文檔的修訂。還有工具讓你可以將返回限制在特定字段,并實(shí)現(xiàn)比這個(gè)例子復(fù)雜得多的搜索。
sofa是一種出色的工具,可以發(fā)掘CouchDB中的數(shù)據(jù);如果大數(shù)據(jù)對(duì)你來(lái)說(shuō)很重要,它可能是適合你的工具。rOpenSci的所有工具都采用MIT許可證,并且有一套貢獻(xiàn)者行為規(guī)范(https://github.com/ropensci/sofa)。代碼放在GitHub上(https://github.com/ropensci/sofa)。
3.PANOPTES:開(kāi)源天文項(xiàng)目
4月份,我采訪(fǎng)了PANOPTES項(xiàng)目的詹妮弗·唐(Jennifer Tong)和威爾弗雷德·吉(Wilfred Gee)。我很喜歡他們?cè)贠SCON大會(huì)上的演講,一直在關(guān)注其網(wǎng)站(http://www.projectpanoptes.org),以便進(jìn)一步了解這個(gè)出色的項(xiàng)目。PANOPTES的全稱(chēng)是 Panoptic Astronomical Networked OPtical observatory for Transiting Exoplanets Survey,這個(gè)項(xiàng)目利用了全球有興趣構(gòu)建機(jī)器人望遠(yuǎn)鏡的平民科學(xué)家的集體智慧。這個(gè)全球陣列將檢測(cè)凌日行星,供更龐大的陸地和太空望遠(yuǎn)鏡進(jìn)一步分析。
每個(gè)參與者使用這些現(xiàn)成設(shè)備來(lái)建造機(jī)器人望遠(yuǎn)鏡:商用攝像頭、Arduino Micro、英特爾NUC及其他隨處可見(jiàn)的部件。你可以從亞馬遜買(mǎi)到大多數(shù)部件,總的成本不到5000美元。這種望遠(yuǎn)鏡將與項(xiàng)目服務(wù)器共享數(shù)據(jù),來(lái)自許多裝置的圖像分析將用來(lái)查找潛在的結(jié)果。如果主人需要,單個(gè)的望遠(yuǎn)鏡可以下線(xiàn),用于無(wú)關(guān)的觀(guān)測(cè)。這使得它成為對(duì)學(xué)校和科學(xué)教育人士來(lái)說(shuō)很理想的項(xiàng)目,因?yàn)樗麄兛梢詤⑴c更龐大的全球項(xiàng)目,并有機(jī)會(huì)使用高質(zhì)量望遠(yuǎn)鏡,用于本地教學(xué)工作。
PANOPTES項(xiàng)目繼續(xù)在完善硬件設(shè)計(jì)。歡迎系統(tǒng)的beta測(cè)試人員按照網(wǎng)站上的操作指示來(lái)建造一個(gè)望遠(yuǎn)鏡。集中式觀(guān)測(cè)控制系統(tǒng)也在開(kāi)展大量工作,該系統(tǒng)可以指令每一個(gè)機(jī)器人望遠(yuǎn)鏡如何觀(guān)測(cè)。這個(gè)項(xiàng)目值得關(guān)注,不僅僅是由于它開(kāi)展的科學(xué)工作,還由于可以了解吸引人們參與其他分布式科學(xué)團(tuán)隊(duì)的過(guò)程。
4.OpenAPS:為一型糖尿病患者改善生活質(zhì)量
對(duì)我來(lái)說(shuō),今年OSCON的重要時(shí)刻之一就是,達(dá)納·劉易斯(Dana Lewis)發(fā)表了圍繞OpenAPS的主題演講,這是一種簡(jiǎn)化的人工胰腺,面向一型糖尿病患者。OpenAPS使用現(xiàn)有的醫(yī)療工具――胰島素泵和血糖持續(xù)監(jiān)視儀,結(jié)合Raspberry Pi或英特爾Edison計(jì)算機(jī)。該系統(tǒng)可處理復(fù)雜計(jì)算,胰島素泵用戶(hù)要將血糖含量保持在一個(gè)穩(wěn)定的水平,通常必須執(zhí)行這些計(jì)算。通過(guò)每5分鐘更新一次,它以近實(shí)時(shí)方式處理工作,每天24小時(shí)連續(xù)不斷。這意味著為用戶(hù)減少了白天的麻煩,晚上可以睡得更香。
這個(gè)項(xiàng)目的核心理念是,通過(guò)開(kāi)源項(xiàng)目代碼,它們就能以比當(dāng)前的閉源人工胰腺系統(tǒng)(APS)醫(yī)療研究項(xiàng)目更快的速度讓APS造福更多的病人。OpenAPS團(tuán)隊(duì)采取了一種保守的做法,幫助確保高效的同時(shí)又很安全。
已有90多套得到部署,其中30多套于2016年夏天和秋天部署,大約三分之一的OpenAPS用戶(hù)是孩子。社區(qū)由用戶(hù)引導(dǎo),歡迎新用戶(hù)。用于自行構(gòu)建的說(shuō)明文檔(https://openaps.readthedocs.io/en/latest/index.html)唾手可得,內(nèi)容翔實(shí)。它不僅解釋了方法,還解釋了原因,注重病人的安全。
許多IT專(zhuān)業(yè)人士想讓計(jì)算機(jī)做一些有意思的工作,從而讓生活變得更美化,而OpenAPS就是我覺(jué)得利用我們的開(kāi)源技能幫助親朋好友的最佳例子之一。
5.OpenEMR:確保診所井井有條的工具
我始終覺(jué)得,診所是相當(dāng)復(fù)雜的工作場(chǎng)所。必須保管和保護(hù)大量不同的信息,使用病人信息的職能部門(mén)同樣迥然不同。最近,我驚訝地發(fā)現(xiàn)原來(lái)還有OpenEMR(http://www.open-emr.org)這種開(kāi)源診所管理系統(tǒng)。它存在已有一段時(shí)間,最初于2001年開(kāi)發(fā),當(dāng)時(shí)叫另一個(gè)名字。第一個(gè)版本是在2002年推出的,采用GPL V2.0 許可證。
功能特性非常豐富。除了一個(gè)可靠的病人記錄系統(tǒng)外,OpenEMR還有一個(gè)內(nèi)置的醫(yī)療計(jì)費(fèi)系統(tǒng),可以加入使用ANSI ASC X12的各大計(jì)費(fèi)交換中心,還可以使用所需的任何編碼系統(tǒng)。除了較傳統(tǒng)的印刷、傳真或電子郵件方法外,OpenEMR還可以使用ePrescribe處理在線(xiàn)處方訂購(gòu)。如果作為一項(xiàng)服務(wù)來(lái)安裝,OpenEMR還有一個(gè)病人門(mén)戶(hù)網(wǎng)站系統(tǒng),可以處理與病人聯(lián)系的事務(wù)。如果診所已經(jīng)在使用一個(gè)流行的病人門(mén)戶(hù)網(wǎng)站系統(tǒng),系統(tǒng)可以通過(guò)API來(lái)聯(lián)系,改而使用這個(gè)門(mén)戶(hù)網(wǎng)站。
OpenEMR病人信息屏幕
OpenEMR提供了長(zhǎng)長(zhǎng)的報(bào)告列表,引起我注意的一項(xiàng)功能是,它支持20多種語(yǔ)言,能夠讓同一家診所支持多種語(yǔ)言。在大量人口不說(shuō)本地語(yǔ)言的不同城市,診所有這項(xiàng)功能很好,因?yàn)槊總€(gè)用戶(hù)可以選擇自己的語(yǔ)言。OpenEMR完全符合UTF-8。
據(jù)估計(jì)光在美國(guó)就安裝了5000多套,OpenEMR有一個(gè)由用戶(hù)和開(kāi)發(fā)人員組成的活躍社區(qū)。OEMR基金會(huì)是一家美國(guó)慈善組織,它是為支持OpenEMR的采用和開(kāi)發(fā)而設(shè)立的,旨在為所有人提供更平價(jià)的醫(yī)療保健服務(wù)。有很活躍的論壇,用戶(hù)和開(kāi)發(fā)人員可以討論各自的要求,并且?guī)椭褂眠@款應(yīng)用軟件。全球30多家公司提供商業(yè)托管及/或支持OpenEMR。它不是所有人都需要的好東西,但無(wú)疑是開(kāi)源界一個(gè)漂亮的成功故事。
6.bibisco:小說(shuō)家的朋友
2015年9月,我在自己的專(zhuān)欄中介紹了bibisco。bibisco(http://www.bibisco.com)由安德烈·費(fèi)科曼迪(Andrea Feccomandi)開(kāi)發(fā),這種開(kāi)源工具可以替代Scrivener之類(lèi)的軟件程序。完善的功能特性給我留下了深刻印象;正如后來(lái)所說(shuō),我一直改用它來(lái)寫(xiě)自己的小說(shuō)及其他作品。只有一個(gè)缺點(diǎn)阻止我對(duì)這個(gè)項(xiàng)目投入全身心的熱情,那就是缺少OS X客戶(hù)軟件。安德列是針對(duì)Windows和32位及64位Linux包裝它的。我的一個(gè)朋友在Mac上很巧妙地解決了問(wèn)題,不過(guò)我仍搞不明白是怎么做到的。
bibisco其實(shí)已徹底改變了我寫(xiě)小說(shuō)的方式。就一章里面的每個(gè)場(chǎng)景而言,我使用不同的條目,用一行標(biāo)題來(lái)描述這個(gè)場(chǎng)景。我可以使用這些條目作為該章的故事板,需要時(shí)可以重新排列。每章可以標(biāo)以地點(diǎn)和人物,還能獲得報(bào)告,表明那些地點(diǎn)和人物在全書(shū)中出現(xiàn)的頻次。自改用這個(gè)工具以來(lái)我取得了不小的進(jìn)展,無(wú)比高興。不過(guò)有一個(gè)煩人的小問(wèn)題。我只能在有Windows電腦的家里創(chuàng)作小說(shuō);我的Macbook根本干不了。想象一下,安德烈告訴世人:他購(gòu)買(mǎi)了一臺(tái)Mac,那樣可以發(fā)布OS X客戶(hù)軟件幾天后,我有何等驚訝。隨后在一個(gè)月過(guò)后,他再次宣布OS X客戶(hù)軟件已發(fā)布在網(wǎng)站上。
7.Pa11y:自動(dòng)化可訪(fǎng)問(wèn)性測(cè)試
可訪(fǎng)問(wèn)性(accessibility)是Web設(shè)計(jì)方面一個(gè)經(jīng)常被忽視的部分。許多指導(dǎo)準(zhǔn)則很難測(cè)試,但是設(shè)計(jì)人員可以使用許多具體的、可測(cè)試的標(biāo)準(zhǔn)――如果他們有適合相應(yīng)任務(wù)的工具。Pa11y(http://pa11y.org)應(yīng)運(yùn)而生,這套工具用于對(duì)網(wǎng)頁(yè)進(jìn)行一次性測(cè)試或自動(dòng)化測(cè)試,針對(duì)一系列廣泛的標(biāo)準(zhǔn)集來(lái)測(cè)試可訪(fǎng)問(wèn)性。很容易用npm來(lái)安裝基本的工具包,所以你可以馬上測(cè)試網(wǎng)頁(yè),并獲得反饋和特定的建議,以便改進(jìn)。如果貴公司想要對(duì)網(wǎng)頁(yè)進(jìn)行日?;蚨ㄆ诘臏y(cè)試,儀表板和Web服務(wù)安裝起來(lái)簡(jiǎn)單直觀(guān)。你可以在demo.pa11y.org看到這個(gè)儀表板的演示。
社區(qū)在積極開(kāi)發(fā)網(wǎng)站的新版本,包括為開(kāi)發(fā)人員及想要貢獻(xiàn)代碼的其他人提供了詳細(xì)得多的信息。該組織采用了由Contributor Covenant改動(dòng)而來(lái)的行為規(guī)范。他們還開(kāi)始為名為Sidekick的儀表板應(yīng)用軟件開(kāi)發(fā)一種新的、更完善的版本。這個(gè)項(xiàng)目的編程工作已開(kāi)始,團(tuán)隊(duì)致力于完全在GitHub代碼庫(kù)這一開(kāi)放環(huán)境下設(shè)計(jì)和開(kāi)發(fā)。
還有更多
每年會(huì)涌現(xiàn)幾百個(gè)新的開(kāi)源項(xiàng)目。想要介紹全部項(xiàng)目是不可能的,盡管我很想這么做。本文介紹的這些項(xiàng)目只是明年值得關(guān)注的諸多項(xiàng)目中的幾個(gè)而已。說(shuō)說(shuō)你關(guān)注的項(xiàng)目,歡迎留言交流。
原文標(biāo)題:7 cool little open source projects that stood out in 2016,作者:D Ruth Bavousett
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】