## “头部激活剂”之谜 20世纪70年代,德国生物学家希尔德加德·“奇卡”·沙勒声称从水螅——一种具有惊人再生能力的简单淡水生物——中分离出一种“头部激活剂”分子,并认为它会触发头部生长。她的发现引发了兴奋,将发育生物学和分子生物学领域交织在一起,并为理解形态发生提供了潜在的关键。沙勒甚至测序了这种肽,并将其提供给研究人员。 然而,复制她的结果被证明是不可能的。尽管进行了无数次尝试,斯蒂芬·伯金和查尔斯·戴维等科学家未能重现她的发现,导致怀疑,并最终放弃了这项研究。虽然水螅在其他研究中仍然很有价值,但“头部激活剂”却成了一个科学谜团。 这场争议深刻地影响了相关人员,特别是沙勒和维尔纳·穆勒,一位公开质疑她工作的生物学家。他们的专业冲突升级为欺诈指控和一场持续了数十年的痛苦争端,最终穆勒出版了一本书,详细讲述了他的版本。 最终,2010年水螅基因组测序表明,这种肽序列甚至没有编码在水螅的DNA中,进一步否定了最初的发现。这个故事突出了科学的演变本质、可重复性的挑战以及科学辩论可能造成的个人代价,留下沙勒测序的肽的来源——以及“头部激活剂”背后的真相——未解。
## APL、Lisp 与富有表现力的编程追求
在20世纪50年代和60年代,富有表现力的编程语言的探索出现了两条平行路径:Lisp 和 APL。Lisp 源于列表处理,强调语义优雅——将代码视为数据;而 APL 由 Kenneth Iverson 创建,则优先考虑语法密度,采用一种独特的、类似象形文字的符号来简洁地表示复杂的思想。
两种语言都拥有极简的核心,依赖于单一的基本数据结构(Lisp 的列表,APL 的数组)和函数式原则。尽管理念不同——一个用于符号推理,另一个用于数学交流——它们的创建者曾考虑将它们结合起来,但未能达成共识。
Iverson 的思想深刻地影响了现代数组编程,尤其是在 NumPy、PyTorch 和 TensorFlow 中,它们利用了 APL 最初开发的广播和向量化等概念。Iverson 的学生 Arthur Whitney 最终通过 K 弥合了差距,K 是一种继承了 Lisp 和 APL 的语言。K 发展为拥抱 Lisp 的嵌套列表,实现了两种语言优势的综合。一个简洁的 Python 实现展示了如何通过标量扩展实现核心 APL 概念,突出了 Iverson 的“符号作为思维工具”的持久力量。
## 构建一个用于并行计算的微型PC集群:摘要
该项目详细介绍了使用二手联想Tiny PC运行Ubuntu Server构建小型并行计算集群的过程。目标是学习如何将计算密集型R模拟,特别是目标最大似然估计(TMLE),分配到多台机器上,以减少与单台笔记本电脑或云解决方案相比的运行时间。
设置包括安装Ubuntu、配置无密码SSH以实现节点之间无缝通信,以及通过SSH自动化软件包安装。然后将R脚本分发到每个节点以利用多核处理。使用不同的交叉验证折叠(CV5与CV10)和各种SuperLearner模型比较了性能。
结果表明,与单机处理相比,集群的性能有了显著提高。增加CV折叠可以减少偏差,但略微增加方差。调整后的xgboost与glmnet结合,在偏差、方差和覆盖率之间表现出最佳平衡。
该项目强调了进一步开发的机遇,包括创建可重用的集群管理软件包、添加进度监控和ETA估计,以及探索openMPI以进行更高级的并行化。关键经验教训包括有效使用`sprintf`进行系统命令,以及在`future_lapply`中设置种子以获得可重复性的好处。