2016年脫穎而出的7個小而美的開源項目
譯文【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】