科学分析和可视化更适合开源

还没有读者喜欢这个。
a magnifying glass looking at a brain illustration

Opensource.com

Marcus Hanwell 受过物理学训练,但他科学背景使他走上了一条与大多数研究人员不同的道路。如今,他是许多旨在帮助科学界更好地分析和可视化其数据的开源项目的贡献者。如果您对为科学应用找到合适的开源工具有疑问,Marcus 可以为您指明正确的方向。

在 Opensource.com,Marcus 是社区版主计划的成员。他撰写的主题涵盖从 特定工具科学出版物的开放获取,再到 活动回顾等各种内容。您也可能会在评论中看到他,帮助推动讨论。

除了专门针对科学研究的工具外,Marcus 还经常使用许多更通用的开源开发工具和工作流程应用程序来简化他的生活。在此社区焦点访谈中了解更多关于 Marcus 如何在他的生活中使用这些工具的信息。

基础知识

  • 姓名: Marcus D. Hanwell
  • Opensource.com 用户名: mhanwell
  • 地点:美国纽约州克利夫顿公园
  • 职业/雇主/职位:Kitware, Inc. 技术主管
  • 开源联系:最初是 Gentoo,然后是 KDE,现在太多了,无法一一提及(开放科学)
  • 最喜欢的开源工具或应用程序:KDE 及其包含的大部分内容!我喜欢使用 Kile 编辑 LaTeX,使用 Qt Creator 进行编码,以及使用 Firefox 浏览网页
  • 最喜欢的 opensource.com 频道:生活(虽然我希望看到一个科学频道!)

向我们敞开心扉。

我住在纽约州雷克斯福德,离我担任 Kitware, Inc. 总部技术主管的纽约州克利夫顿公园非常近。我拥有英国谢菲尔德大学物理学学士学位和博士学位,专注于实验纳米材料工程。2002 年,我曾在硅谷参加一个项目三个月,向物理专业的学生展示创业公司是如何运作的。当我开始攻读博士学位时,我一心想成为一名研究科学家,推动科学的边界。我甚至认为我现在可能已经获得诺贝尔奖了!

我的开源之旅始于大约 1996 年或 1997 年,当时我下载了一个 Red Hat Linux 安装程序,并开始尝试在我的机器上运行图形环境。微软认为我应该花那么多钱才能获得一个编译器并尝试编写软件,这让我感到沮丧。后来,我组装了一台 AMD64 机器,并开始使用 Gentoo Linux;2004 年,我成为一名软件包维护者,专注于移植和科学应用程序(以及一些 KDE 的东西)。我曾在 2005 年被评为本周开发者,但后来对更积极地创建软件而不是打包/移植产生了兴趣。

我一直对科学数据的可视化充满热情,在攻读博士学位期间,我发现仅仅绘制一个分子并生成图像是多么困难(和昂贵)。起初我打算开始自己的项目,但后来开始四处寻找,并在 Google Summer of Code 中找到了一个完美的项目,该项目是 KDE 的一部分。我申请了,被接受了,剩下的就是历史。我在匹兹堡大学做了一次博士后,但最终我决定学术界不适合我。当我发现这家小公司愿意付钱让我从事开源科学软件工作时,我非常兴奋;我于 2009 年加入 Kitware,担任研发工程师。我所做的几乎所有事情都是开放的,我编写的代码通常采用 3 条款 BSD 许可,文档采用 CC-BY 许可!我有机会与世界上一些最优秀的科学家、研究人员和工程师一起解决有趣且具有挑战性的问题,并且一直在寻找更多具有激动人心的项目的合作者。

哪些开源工具和数据可以帮助您完成工作,它们如何帮助您?

我的日常工作是科学数据可视化和分析,为了实现这一点,我使用了大量的开源工具。有用于跨平台、硬件加速渲染的 OpenGL,Qt 作为图形工具包,GCC,以及最近的 Clang,用于编译代码,以及 Qt Creator 用于开发,我经常使用它的 GDB 集成。我广泛使用 CMake 来构建我参与的项目,并使用 CTest 来驱动测试框架以及 CDash 来聚合结果。Google Test 增强了 Qt 中可用的功能,使测试驱动开发更容易,我将两者与 Kitware 开发的图像差异回归一起使用,以验证渲染图像在跨平台、显卡和架构上的一致性。我使用 Git 进行分布式版本控制,并使用 Gerrit 进行在线代码审查,尽管我正在寻找替代方案,因为上游似乎永远不会集成对主题分支的支持。

其中一些工具我参与贡献,另一些工具我既使用又参与贡献。可视化工具包 (VTK) 是我在加入 Kitware 之前没有真正使用过的东西,但我现在是其核心开发人员之一。我在我参与的许多项目中使用它,并且还花了很多时间研究它。开放化学项目是我在 Kitware 领导的项目,它广泛使用了 CMake、Qt、OpenGL、VTK、Google Test、OpenGL、GLEW 以及开发、调试和部署代码所需的其他一系列东西。我也需要开放数据来测试和演示我所做的事情,有时这可能有点困难。NWChem 几年前开源了,清洁能源项目 是其中一些数据的良好来源。我们的许多合作者都能够提供开放许可的内容,但我希望看到这种情况有所改善,这也是我花时间倡导的

您希望哪些方面更加开放?

科学!我之所以做我现在做的事情,是因为研究的现实与我刚开始进入这个领域时的期望不符。公共资助的研究通常使用闭源工具进行,所使用的数据、工作流程、分析和软件通常完全封闭。所有这些都应该公开接受审查,更重要的是,所有这些都应该开放以供构建和扩展。我在博士和博士后研究期间写的一些论文我无法访问,而大部分用于支付实验室、我的工资和所有其他费用的资金都来自公共资金。我认为这是一种极大的不公正,我被告知出版业在某个地方增加了价值……坦率地说,我没有看到他们增加了什么价值在现代社会。

您在工作或生活中遇到的开放性方面最大的挑战是什么?

我认为最大的挑战来自出版巨头们,他们固守着过时的商业模式,这种模式对科学的帮助已经不大。问题在于,他们似乎已经忘记了他们让科学研究成果公开(即出版)的使命,他们根深蒂固,拥有完善的资金机制,口袋里装满了用于游说、律师和广告的钱。我认为在现代社会,我们中的许多人有幸拥有连接到庞大共享知识网络的高带宽连接,我们应该找到几乎毫不费力地共享事物的方式的商业模式。其中最大的挑战是找到资助这项工作并建立能够继续工作和创新的开发团队的方法。

我仍然想改变世界,我仍然想让世界变得比我发现的更好。我不认为实现这一目标的方法是软件许可,我认为知识产权可能是律师发明的最有害的概念之一,它主要用于充实他们的口袋并保持垄断力量。我希望看到知识产权法进行改革,为公众服务,而不是为公司服务。我也希望看到政府机构将更多资金用于资助科学的可持续软件,即自由许可的软件,以便更广泛的科学家(以及公众)能够从中受益。我最希望看到研究转变为一个以共享为默认的领域,如果您想发表您声称是科学的结果,那么所有步骤都应该共享并接受质疑。我认为开源从科学的理想中借鉴了很多,现在我希望看到科学借鉴开源所做的一些创新!

为什么要选择开源方式?

我认为,从核心上讲,这一切都是为了消除障碍,减少重复发明轮子。我在攻读学位、博士学位和博士后期间学到的另一件事是,科学家倾向于编写相当糟糕的代码,而没有您可能希望看到的严谨性。有一些主要的代码甚至没有使用版本控制。我永远不会提及姓名,但我曾参加过一些会议,在会上有人反对使用版本控制!我真的想努力改进这一点,理想情况下,找到进入大学教学生软件开发以及围绕它的所有流程的方法。

我认为我们需要打破所有黑匣子的围墙,教人们如何查看它们的内部!无论您是刚入门、拥有博士学位、在 Google/IBM/Facebook/GE 工作,还是发明了 C++。我们都是会犯错的,并且可以互相学习。开源方式是我见过的唯一真正实现这一目标的方式。如果我想编写一个分子编辑器,如果我可以检查其他人之前所做的事情,那会容易得多。如果埃尔温·薛定谔编写了一小段专有代码来描述量子系统的状态,而不是分享薛定谔方程及其完整推导,那么我们所有人将处于何种可悲的境地?计算机代码正在迅速取代数学,成为发现的主要工具之一,但它通常没有达到科学出版物中数学证明的相同标准。

User profile image.
Jason 是 Opensource.com 的工作人员和红帽员工,时间从 2013 年到 2022 年。此个人资料包含他在该期间与工作相关的文章。其他贡献可以在他的个人帐户中找到。

评论已关闭。

知识共享许可协议本作品根据知识共享署名-相同方式共享 3.0 未本地化版本许可协议获得许可。
© . All rights reserved.