精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

你上世紀寫的代碼現在還work嗎?挑戰者:我需要讀磁帶的機器

新聞 前端
代碼找不到、硬件已過時、文檔也缺失…… 幾十年前的代碼復現起來沒那么容易。

 代碼找不到、硬件已過時、文檔也缺失…… 幾十年前的代碼復現起來沒那么容易。

你上世紀寫的代碼現在還work嗎?挑戰者:我需要讀磁帶的機器

「敢不敢把你十年前寫的代碼翻出來看看還能不能運行?」在最近的一篇社論文章中,《Nature》介紹了兩位法國科學家發起的一項挑戰。

這項挑戰名為「Ten Years Reproducibility Challenge」,由法國國家數字科學技術研究所的計算機神經科學家 Nicolas Rougier 與法國國家科學研究中心的理論生物物理學家 Konrad Hinsen 共同發起,旨在鼓勵各個領域的研究者翻出自己十年前(或更早)的代碼,看看這些代碼到底還能不能運行,研究能否復現。

你上世紀寫的代碼現在還work嗎?挑戰者:我需要讀磁帶的機器

Rougier 認為,盡管計算在科學研究中占有越來越重要的比重,但研究者很少披露自己的底層代碼。即使他們給出了代碼,別人也很難去執行,就連作者本人有時也會遇到麻煩。而且,隨著編程語言、計算環境的演化,現在還能運行的代碼過段時間可能就不行了。

因此,「『十年代碼復現挑戰』的宗旨是找出那些十年之后仍然能夠 work 的代碼編寫和發布技術,」Hinsen 表示。

這項比賽共吸引了 35 名參賽者。他們提出要復現 43 篇論文,其中 28 篇形成了可復現報告。這些論文涉及的語言包括 C、R、Mathematica 和 Pascal 等等,還有一位參賽者復現的不是代碼,而是一個用 SBML(系統生物學標記語言)編寫的分子模型。

當然,這條復現之路并沒有想象中那么簡單,有人代碼找不到了,有人找到代碼也不知道怎么運行。最后,他們通過這項比賽總結出了一些提高代碼可復現性的技巧,可以為現在的工作提供借鑒。

老代碼沒那么容易 work

你的代碼還在嗎?

要完成這個挑戰,首先你得找到自己當年的代碼,有人在這一步就被卡住了。

Roberto DiCosmo 是法國國家信息與自動化研究所的一位計算機科學家,他在 1998 年的一篇論文中提到了一個名為「OcamlP3l」的并行編程系統。但在找遍自己和合著者的硬盤、備份之后,他也沒能找到 OcamlP3l 系統的代碼。

不過幸運的是,一個名為「Software Heritage」的源代碼歸檔網站為他提供了一份備份。

你上世紀寫的代碼現在還work嗎?挑戰者:我需要讀磁帶的機器

Software Heritage 會定期抓取 GitHub 等開源代碼網站,有點像定期抓取網頁的互聯網檔案館(Internet Archive)。開發者也可以請求 Software Heritage 抓取自己的庫留作存檔。

起初,DiCosmo 并沒有考慮去 Software Heritage 找自己的代碼,因為在他開發 OcamlP3l 的時候,Software Heritage 還沒出現。他猜測,一定是有人將他的代碼傳到了 Gitorious 托管平臺,而 Software Heritage 又在該平臺關停之前抓取了上述代碼。

你的文檔還在嗎?

「在一個組織良好的項目里,文檔的行數超過代碼行數不是什么稀罕事兒,」加州大學伯克利分校的一位計算可復現性倡導者表示,「你要保留盡可能多的信息,對分析的結構有更廣泛的描述,比如數據從哪兒來,數據、代碼的一些元信息等,這些是復現的關鍵。」

Melanie Stefan 是愛丁堡大學的一位神經科學家,她想復現一個用 SBML 寫的計算模型。盡管模型都在,但她卻找不到自己當年用的參數值(如分子濃度),也沒有很好地記錄數據標準化的關鍵細節。

因此,Stefen 無法復現她的部分研究。「即使對于同一個人來說,很多十幾年前再明顯不過的模型細節現在也不明顯了,真是令人始料未及!」她面無表情地說道。

你有運行代碼的硬件嗎?

作為比賽的組織者,Rougier 也參加了這次挑戰。他重現的代碼是 Apple II 中的一個圖像放大器,這是整個挑戰賽中最古老的代碼。這段代碼寫于 32 年前,當時寫的時候 Rougier 才 16 歲,還發表在了一本名為《Tremplin Micro》的雜志上(已倒閉)。

如今,即使拿著神秘的 AppleSoft BASIC 語言說明,他也不記得代碼是怎么運行的了。「真是見了鬼了,這可是我自己寫的,」Rougier 惆悵地說道。

但是,他可以在網上找到這段代碼并使其在一個網頁版 Apple II 模擬器上運行。要做到這點并不難,Rougier 表示,最難的部分是讓它在一個真正的 Apple II 上運行。

[[340458]]

對于 Rougier 來說,硬件不是問題,因為他辦公室就有一臺 Apple II,是一位同事在清理辦公室時搶救出來的。但由于這款 Apple II 的年齡比 USB 線和互聯網都大,而且當前的計算機無法與它的老式磁盤驅動相連。因此,在運行代碼之前,Rougier 需要某種定制的硬件以及一盒老式磁盤。

他在亞馬遜上找到了一些帶有「New」字樣的磁盤,但日期是 1993 年的。在對他的數據進行三次寫入以確保比特穩定之后,磁盤開始運行了。

活動的發起者 Hinsen 也遇到了硬件方面的麻煩。他把自己 90 年代寫的代碼有條不紊地存到了磁帶里,但現在,他已經沒有能讀取磁帶的工具了。

你的計算環境過時了嗎?

過時的計算環境也是壓死參賽者的一根稻草。Sabino Maggi 是意大利的一名計算機物理學家,1996 年,他用 Fortran 語言建模了一個超導裝置,并用 Microsoft Visual Basic 來處理結果。二十多年過去了,Fortran 并沒有發生太大變化,因此 Maggi 只做了些微的調整就實現了代碼的順利編譯。但始料未及的是,Visual Basic 給他出了一個難題。

Maggi 在報告中寫道,「Visual Basic 是一門死掉的語言,早就被 Visual Basic.NET 取代了。」所以,為了運行二十多年前的 Visual Basic 代碼,Maggi 不得不使用從網上找到的安裝盤在自己的 Mac 電腦上重建了一個十年前的 Windows 虛擬機。

在安裝之前,Maggi 遇到了一個問題:他根本不記得自己 96 年用的是哪個版本。這些年,微軟發布了該語言的多個版本,而且并不總是向后兼容的。

你上世紀寫的代碼現在還work嗎?挑戰者:我需要讀磁帶的機器

模擬 1994 年的 Windows 計算機運行 Microsoft Visual Basic 的 Mac。

同樣受到計算環境問題困擾的還有 Ludovic Courtès,他是法國國家信息與自動化研究所的一名研究工程師。在這次挑戰賽中,他復現了 2006 年一篇比較數據壓縮策略的論文,代碼是用 C 語言寫的。由于 API 發生了變化,他的代碼無法用現有軟件庫進行編譯。為了解決這一問題,他不得不將 6 個計算組件回滾到很老的版本。

如今,研究者們可以用 Docker 和 Conda 虛擬環境來打包計算環境,以備不時之需。但有幾位參賽者選擇了其他方法,比如 Guix(一個 Linux 包管理器)。它可以保證環境直到最后一位都是可復現的,并且構建環境的代碼版本是透明的。

「環境和整篇論文都可以檢查,可以從源代碼構建,」Courtès 表示。Hinsen 認為,Guix 可能是這個比賽「目前最好的可復現研究工具」。

違反直覺的是,很多參賽者發現,用一些比較古老的語言寫的代碼反而是最容易復現的。新語言快速變化的 API 和對第三方庫的依賴使得它們很難復現。從這個意義上來說,今年剛剛停止支持的 Python 2.7 倒是一個不錯的機會,它既是一門高級編程語言,又不會再進行更新。

如何提高代碼可復現性?

在經歷了復現代碼的艱辛之后,相信每位參賽者都意識到了自己當年寫代碼時埋下的一些「隱患」,比如存儲介質、所選語言、備份平臺等。

那么,如何提高論文代碼的可復現性呢?《Nature》文章的作者在文中給出了一個 checklist:

1. 代碼。基于即點即擊(point-and-click)界面的工作流(如 Excel)是不可復現的。你要將計算和數據操作保存在代碼中;

2. 文件。使用注釋、計算筆記本、README 文件等解釋你的代碼如何運行,定義期望的參數和所需的計算環境;

3. 記錄。記下關鍵參數,如用于啟動隨機數生成器的「seed」值。這樣的記錄可以幫你重新運行代碼、跟蹤 bug 以及意外的結果;

4. 測試。創建一套測試函數。使用 positive 和 negative 控制數據集來確保你得到預期的結果,并在開發過程中運行這些測試,在 bug 出現時及時清除;

5. 保存。GitHub 是一個流行但并不永久的在線存儲庫。長期來看,Zenodo、Figshare 和 Software Heritage 等歸檔服務可能更加穩定;

6. 跟蹤。使用 Git 等版本控制工具來記錄你的項目歷史,記下產生每個結果所用到的版本;

7. 打包。利用容器化工具(Docker、Singularity 等)、網頁服務(Code Ocean、Gigantum、Binder)、虛擬環境管理器(Conda)等創建隨時可用的計算環境;

8. 自動化。使用 Travis CI 等持續集成服務在不同的計算環境中定期自動測試你的代碼;

9. 簡化。避免使用會使后續利用復雜化的小眾或難以安裝的第三方代碼庫;

10. 檢查。通過在一系列計算環境中運行代碼來檢查代碼的可移植性。

此外,曼徹斯特大學的計算機科學家 Carole Goble 指出,將自己的代碼開源也是一種提高可復現性的方式,這樣別人就有機會在你的代碼基礎上進行修改,以保持其活力。

如果你也有十幾、二十幾年前寫的代碼,可以拿出來試試還能不能運行。

責任編輯:張燕妮 來源: 機器之心
相關推薦

2018-04-04 17:08:18

CIO

2011-02-23 09:35:58

Mozilla火狐瀏覽器

2015-07-17 10:02:48

寫代碼

2013-03-25 12:37:56

2013Android競爭對手

2015-04-27 15:05:28

2012-04-16 13:21:00

2011-11-07 09:02:52

諾基亞Windows Pho

2015-02-02 11:31:33

聯想摩托羅拉

2016-08-18 00:44:38

Python編程語言

2018-07-23 13:48:47

京東云

2015-09-02 15:26:13

環信

2012-12-11 09:45:39

JustinTV實時視頻網站

2024-08-28 11:57:25

2022-05-18 10:33:10

首席信息官CIOIT領域

2018-10-31 09:43:22

2013-08-30 09:06:17

公有云AWSIBM

2012-03-29 09:13:52

Windows Pho挑戰賽

2022-10-19 11:17:35

2017-12-19 15:20:47

代碼應用架構

2020-05-13 15:52:18

編碼競賽網站代碼
點贊
收藏

51CTO技術棧公眾號

亚洲国产合集| 成人福利电影| 精品在线亚洲视频| 欧美另类交人妖| 韩国无码一区二区三区精品| 日本高清不卡一区二区三区视频 | 亚洲av无码一区二区三区网址 | 国产欧美精品日韩| 日本免费在线播放| 欧美影院三区| 欧美精品一区二区三区四区| 日韩精品免费播放| 毛片在线网址| 国产精品国产三级国产aⅴ原创| 粉嫩av四季av绯色av第一区| 国产精品无码粉嫩小泬| 精品av久久久久电影| 深夜福利国产精品| 亚洲の无码国产の无码步美| 国产成人久久精品一区二区三区| 狠狠做深爱婷婷久久综合一区| 一本—道久久a久久精品蜜桃| 性xxxxbbbb| 国产成人精品免费| 国产欧美在线观看| 免费视频网站在线观看入口| 国产精品大片| 久久久精品国产亚洲| 亚洲性猛交xxxx乱大交| 精品国产乱子伦一区二区| 在线不卡欧美精品一区二区三区| 欧美激情国产精品日韩| 成人bbav| 午夜久久久久久| 欧美做暖暖视频| 成人日韩欧美| 成人欧美一区二区三区1314| 日韩精品福利视频| 欧美孕妇孕交| 久久免费看少妇高潮| 国产一区二区三区四区hd| 99久久免费国产精精品| 加勒比av一区二区| 91精品中文在线| 亚洲自拍偷拍另类| 日韩av在线发布| 国产91热爆ts人妖在线| 国产寡妇亲子伦一区二区三区四区| 韩国一区二区三区在线观看| 欧美精品一本久久男人的天堂| 国产又色又爽又高潮免费| 国产在线日韩精品| 国产一区二区三区网站| 精品人妻无码一区| 国产一卡不卡| 国产一区二区三区免费视频| 快灬快灬一下爽蜜桃在线观看| 米奇777超碰欧美日韩亚洲| 日韩精品丝袜在线| 好吊日免费视频| 欧美日本成人| 国产一区二区三区网站| 潮喷失禁大喷水aⅴ无码| 日韩欧美网址| 久久天天躁日日躁| 精品少妇久久久久久888优播| 欧美日本三区| 亚洲**2019国产| 中文字幕免费观看| 美美哒免费高清在线观看视频一区二区 | 鲁鲁狠狠狠7777一区二区| 三级无遮挡在线观看| 久久日韩粉嫩一区二区三区| 日韩高清国产精品| 久久黄色美女电影| 亚洲国产另类精品专区| 99色精品视频| 香蕉久久一区| 精品国产免费一区二区三区四区| 亚洲精品国产成人av在线| 杨幂一区二区三区免费看视频| 一区二区三区回区在观看免费视频| 国产又色又爽又高潮免费| 欧美日本精品| 国产精品wwww| 亚洲第一页在线观看| 91麻豆国产在线观看| 亚洲日本理论电影| 黄色美女视频在线观看| 日本久久电影网| 性生交大片免费看l| 日韩美女毛片| 久久久91精品国产| 国产精品午夜影院| 国产一区二区三区av电影 | 日本免费一区二区三区视频观看| 中文字幕a级片| 丰满少妇久久久久久久| 日本一区二区在线视频| 啦啦啦中文在线观看日本| 一本色道综合亚洲| 欧美一级大片免费看| 欧美一级精品| 97国产在线视频| 国产精品久久无码一三区| www.成人网.com| 婷婷视频在线播放| 二区三区不卡| 欧美精品一区二区三区蜜桃视频 | 手机看片福利在线| 国产午夜精品理论片a级大结局| 91传媒免费视频| 亚洲综合av一区二区三区| 精品国产sm最大网站免费看| 五月天婷婷丁香网| 亚洲女人av| 国产精品果冻传媒潘| 午夜视频成人| 在线观看亚洲精品视频| 超碰男人的天堂| 欧美性久久久| 亚洲永久免费观看| 137大胆人体在线观看| 欧美日韩国内自拍| 日韩综合第一页| 中文无码久久精品| 91久久国产精品91久久性色| h网站视频在线观看| 福利一区视频在线观看| 成人午夜精品无码区| 欧美女人交a| 亚洲一区美女视频在线观看免费| 在线免费看a| 欧美三级视频在线| 免费在线观看a视频| 性8sex亚洲区入口| 国产一区二区免费电影| 不卡av免费观看| 精品国一区二区三区| 玖玖爱免费视频| 国产精品1区2区3区在线观看| 中文字幕一区二区三区最新| h1515四虎成人| 中文字幕av一区二区三区谷原希美| 久久精品国产成人av| av成人老司机| 日韩国产欧美亚洲| 中文字幕伦av一区二区邻居| 欧美做爰性生交视频| 日本一二三区在线视频| 色综合天天综合网国产成人综合天 | 精品国内亚洲2022精品成人| 久久久久久噜噜噜久久久精品| 亚洲av永久无码国产精品久久 | 乱子伦视频在线看| 欧美日韩在线二区| 国产精品专区h在线观看| eeuss影院在线观看| 欧美区视频在线观看| xxxx日本少妇| 成人高清免费观看| 无码人妻丰满熟妇区96| 嫩草一区二区三区| 国产精品亚洲欧美导航| 成人日韩欧美| 亚洲精品久久久久中文字幕二区| 国产精品免费av一区二区| 久久夜色精品国产噜噜av| 成人在线激情网| 欧美r级电影| 99国产超薄肉色丝袜交足的后果| 俺来也官网欧美久久精品| 日韩黄在线观看| 亚洲高清视频免费观看| 亚洲日本成人在线观看| 久久精品无码专区| 米奇777在线欧美播放| 一区二区日本| 豆花视频一区二区| 日产精品99久久久久久| 黄网站app在线观看| 精品动漫一区二区三区在线观看| 天天干天天干天天| 综合欧美亚洲日本| 日本道中文字幕| 免费成人在线观看| 日韩美女爱爱视频| 国产中文精品久高清在线不| 91在线网站视频| 深夜成人影院| 欧美高清性猛交| 九色在线观看视频| 日韩精品一区二区三区在线观看 | 久国产精品韩国三级视频| 国产91在线亚洲| 欧美裸体在线版观看完整版| av一区二区三区四区电影| 欧美片第一页| 欧美极品少妇xxxxⅹ免费视频| 久久精品a一级国产免视看成人| 欧美精品第一页| 亚洲综合久久网| 一区二区三区欧美| 超碰人人人人人人人| 懂色av噜噜一区二区三区av| 丝袜制服一区二区三区| 亚洲第一精品影视| 黄瓜视频免费观看在线观看www | 国产高清www| 999成人精品视频线3| 美媛馆国产精品一区二区| 日韩激情欧美| 成人a免费视频| 韩日精品一区二区| 韩剧1988在线观看免费完整版| 免费网站成人| 主播福利视频一区| 天堂av在线7| 亚洲激情中文字幕| 性做久久久久久久久久| 欧美日本精品一区二区三区| 狠狠人妻久久久久久综合| 亚洲成人动漫精品| 九九久久免费视频| 一区二区三区在线观看动漫| 国产极品视频在线观看| 国产网站一区二区三区| 不卡一区二区在线观看| av电影天堂一区二区在线| 在线观看亚洲免费视频| 国产精品91一区二区| 手机av在线网站| 国内一区二区视频| 中文字幕第38页| 久久精品国产亚洲aⅴ | 视频欧美精品| 国产精品免费在线免费| 日本一道高清亚洲日美韩| 清纯唯美亚洲综合| 亚洲成人人体| 国产福利精品视频| 三上悠亚激情av一区二区三区 | 成年人午夜免费视频| 亚洲欧美综合| 农民人伦一区二区三区| 激情成人亚洲| 黄色一级视频片| 亚洲欧美日本视频在线观看| 欧美激情国产精品日韩| 久热国产精品| 一级片视频免费观看| 久久成人久久鬼色| 亚洲热在线视频| 成人一区二区三区视频在线观看| 性活交片大全免费看| 白白色 亚洲乱淫| 国产呦小j女精品视频| 久久你懂得1024| 亚洲自拍偷拍图| 国产精品传媒视频| 青青草原在线免费观看视频| 亚洲成人免费av| 无码人妻精品一区二区| 欧美日韩中字一区| 亚洲av无码片一区二区三区 | 欧美成年黄网站色视频| 久久久国产精品x99av| 国产一二区在线| 国内精品久久久久久中文字幕 | 精品美女在线观看视频在线观看| 美日韩在线视频| 老司机深夜福利在线观看| 国产精品成熟老女人| 国产精品igao视频网网址不卡日韩| 99精品99久久久久久宅男| 老司机精品在线| 亚洲视频小说| 一区在线免费| 天天操天天爽天天射| 国产乱妇无码大片在线观看| 成人手机在线免费视频| 国产精品剧情在线亚洲| 玖玖爱免费视频| 欧美亚洲丝袜传媒另类| 亚洲大尺度视频| 亚洲午夜av久久乱码| 2024最新电影免费在线观看| 97成人精品区在线播放| 日韩成人一区| 欧美亚洲精品日韩| 欧美淫片网站| 不卡av免费在线| 不卡av免费在线观看| 国产白丝一区二区三区| 欧美日韩视频免费播放| av网站免费大全| 国产午夜精品免费一区二区三区| 91精品久久| 国产精品久久久久久久久久ktv| 9999久久久久| 亚洲一区二区四区| 久久国产99| 高清中文字幕mv的电影| 国产精品第五页| 蜜臀尤物一区二区三区直播| 精品对白一区国产伦| 日本www在线| 国产精品av在线播放| 老牛国内精品亚洲成av人片| 日韩欧美一级在线| 麻豆精品视频在线观看免费| 亚洲黄色在线网站| 亚洲国产wwwccc36天堂| 国产高清在线观看视频| 正在播放欧美一区| 欧美日韩五码| 欧美精品二区三区四区免费看视频| 欧美黄色一级视频| 午夜视频在线网站| 亚洲国产高清在线| 天堂网视频在线| 亚洲娇小xxxx欧美娇小| 国产精品偷拍| 99国产在线观看| 欧美精品首页| xxxx国产视频| 一区二区三区在线免费观看 | 国产视频精品自拍| 国产乱码在线| 国产乱码精品一区二区三区日韩精品| 亚洲a一区二区三区| 日本免费色视频| 国产精品亲子乱子伦xxxx裸| 精品国产xxx| 亚洲美女免费精品视频在线观看| 搞黄网站在线看| 国产日本一区二区三区| 欧美日韩国产精品一区二区亚洲| 99中文字幕在线| 亚洲欧美另类小说视频| 国产精品嫩草影院桃色| 日韩三级成人av网| crdy在线观看欧美| 日韩视频在线免费播放| 国产一本一道久久香蕉| 久久久久亚洲AV成人| 日韩欧美国产一区二区在线播放 | 秘密基地免费观看完整版中文 | 久久人人爽人人爽人人片av免费| 亚洲男人天堂2024| 成人教育av| 四虎一区二区| 久久精品国产成人一区二区三区 | 天天舔天天操天天干| 欧美午夜影院一区| 看黄网站在线| 国产超碰91| 午夜在线a亚洲v天堂网2018| 伊人影院综合网| 欧美一区二区三区日韩| heyzo中文字幕在线| 欧美日韩亚洲免费| 毛片av中文字幕一区二区| 我要看黄色一级片| 精品国产不卡一区二区三区| 超碰aⅴ人人做人人爽欧美| 日韩一本精品| 国产一区日韩二区欧美三区| 国产一级片播放| 亚洲人免费视频| 国产精品久久久久久久久久辛辛| 男人添女人下部视频免费| 久久日韩粉嫩一区二区三区| 在线免费观看av片| 欧美激情国产日韩精品一区18| 亚洲欧洲色图| 亚洲综合123| 欧美日韩中文字幕在线| 午夜激情在线观看| 俄罗斯精品一区二区三区| 日韩精品色哟哟| 欧美黑人精品一区二区不卡| 国产视频一区在线| 天堂综合在线播放| www一区二区www免费| 国产精品久久久久久久岛一牛影视| 亚洲国产av一区二区| 国产成人啪精品视频免费网| 亚洲成人精品| 国产人妻一区二区| 日韩欧美国产综合一区| 日韩色淫视频| 国产av天堂无码一区二区三区| 国产精品三级久久久久三级| 懂色av成人一区二区三区| 国产精品美女免费视频| 99精品视频免费观看| caoporn91| 伊人男人综合视频网| 欧美aaaaaaaa牛牛影院|