多年前,在一门研究生计算机科学课程中,我的任务是实现一个用于“通过运动检测进行变分图像分割”的算法。正如他们所说,这个算法非常复杂。在十几篇论文中简要描述了该算法,它有几十个子程序,当实现时,代码扩展到数千行 MATLAB 代码。但是有一个子程序,神秘地称为“数值升级”例程,其描述神秘地从科学记录中消失了。如果没有这个小而至关重要的例程,整个奇妙的图像分割机器就会发出噼啪声并停止运转。崩溃!恐慌!悲哀。
幸运的是,经过多个深夜,我设法找到了一份未发表的技术报告,其中概述了缺失的例程(用日语写的,但那是另一个故事了)。奇妙的机器隆隆作响,图像被分割,我的 GPA 得救了。
这门课程教会了我很多道理,其中之一是我们要在使科学工作,特别是科学代码,可重复方面还有很长的路要走。这就是我们最近启动一个名为 JotGit 的开源项目的原因之一。
JotGit 将 git(用于强大的版本控制和离线工作)与在线协作富文本编辑结合在一起。我们的目标是使使用 git 轻松跟踪和发布与科学论文相关的所有内容:论文本身的文本、论文中使用的数据、用于处理数据的代码,以及所有其他内容。这是一个原型的快速演示
代码在 GitHub 上。JotGit 仍然是一个原型,但我们正在尽早发布,并将经常发布。为了方便您自己运行、托管和破解 JotGit,我们使用 meteor Web 框架构建了它,该框架非常容易在任何 Mac 或 Linux 系统上运行,并且依赖项最少。Meteor 使实时 Web 开发变得非常有趣,所以即使您以前没有做过任何 Web 开发,这也是一个很好的入门方式!
JotGit 背后的核心思想是,每个人都应该能够使用他们喜欢的工具和流程为科学论文做出贡献。目前使用 git 的科学家也倾向于使用 LaTeX 和 Markdown 等工具来撰写论文,这些工具是基于文本的,易于用 git 管理,但大多数科学家仍然使用 Word 文档,这些文档与 git 不兼容。而且,不幸的是,从 Word 到 Markdown/LaTeX/git 有一个陡峭的学习曲线。
我们从运行 writeLaTeX 的经验中非常了解这个问题,writeLaTeX 是 LaTeX 的在线协作编辑器,具有富文本层,为 LaTeX 带来了 WYSIWYG。writeLaTeX 的主要目标之一始终是帮助 LaTeX 爱好者(像我们一样)与非 LaTeX 爱好者(像我们合作的大多数人一样)协作。如果您习惯于使用强大的脚本、版本控制和历史记录功能在 LaTeX 中撰写论文,当有人递给您 Word 文档时,您可能会畏缩。但是,如果您习惯于使用 Word,当有人递给您一堆看起来不像论文的计算机代码时,您可能会有相同的反应。使用 JotGit,我们在后端使用 git、LaTeX 和 Markdown 等强大的工具,但我们将它们包装在一个简单、协作、所见即所得的前端中。最终,您可以使用您喜欢的任何工具。
我们对像 git 这样的分布式版本控制系统为协作和共享科学论文提供的机会感到兴奋。GitHub 通过其 fork 和 pull request 协作模型真正彻底改变了开源软件。我们能为科学记录做同样的事情吗?“fork”一篇论文意味着什么?目前,JotGit 与本地 git 存储库一起工作,但很快我们将把它连接到 GitHub,所以我们的目标是找出答案。
目前就这些。请关注更多更新。仓库中有一个简短的路线图,其中包含后续步骤,如果您有任何问题,请给我们留言或打开一个 issue 进行讨论。
祝您编程愉快!
2 条评论