作者之前曾大力倡导移除Objective-C代码(在Audible已移除数十万行),却意外地发现自己又愉快地开始使用它。 最初打算用Python重写一个博客生成器,但他们放弃了这个努力,并考虑了Swift、Rust、Go和C,优先考虑速度。 最终,对超越C结构的数据建模功能的需求使他们回到了Objective-C——他们现在欣赏这种语言的小巧、易于理解和稳定性(极少的未来变更意味着更少的技术债务)。 尽管它的语法有些古怪,但作者发现这次体验令人愉快且富有成效。 由此产生的应用程序SalmonBay,一个静态网站/博客生成器,可以在不到一秒钟内构建作者的25年博客。 它作为开源提供,但并非 intended for 广泛使用。 这种经历展示了对先前“拆解”技术令人惊讶的回归,这源于实际需求和对它独特品质的重新发现。
## 首例脊髓裂治疗显示出希望
加州大学戴维斯分校医疗团队取得了一项医学突破:安全实施胎儿手术,并结合干细胞治疗脊髓裂。发表在《柳叶刀》上的“CuRe试验”1期结果表明,将人胎盘来源的干细胞贴片添加到标准胎儿手术中是可行的。
脊髓裂发生在怀孕期间脊髓未完全闭合,通常会导致终身残疾。该试验侧重于安全性,研究人员发现前六名患者中没有与干细胞相关的副作用——没有感染、泄漏或异常生长。核磁共振扫描显示出手术成功的积极指标,包括脑疝的逆转,并且没有婴儿需要脑室分流术治疗脑积水。
这种突破性方法旨在不仅修复缺陷,而且*再生*和保护正在发育的脊髓,从而可能改善传统胎儿手术之外的运动能力和生活质量。该试验现在正在扩大到包括多达35名患者,并将进行长达六岁的长期随访,以评估功能改善情况。
一种易于获取、低成本的设备,用于绕过STM32微控制器的读出保护等级1 (RDP1),正在中国闲鱼市场上销售,价格约为19欧元。该设备是一个带有适配板的USB加密狗,声称可以解密F0、F1、F2和F4系列芯片。
作者购买并使用该设备测试了STM32F205RBT6,成功转储了其完整的闪存内容,即使启用了RDP1保护,也无需冷却或故障注入等技术。虽然该软件需要Windows系统,最初会触发安全警告,并且需要调整区域设置,但它确实如广告宣传的那样工作。
观察到一点小问题:该软件会过度读取闪存,但正确大小范围内的有效数据是准确的。虽然绕过RDP1的方法已经存在,但该设备提供了一个简单、即用的解决方案,引发了安全问题和可访问性,方便逆向工程。其内部工作原理在很大程度上未知,核心芯片的身份被隐藏,但进一步分析是可能的。
## 使用Mikado方法处理遗留代码
继承一个庞大、复杂且文档匮乏的代码库,感觉就像陷入流沙。尝试进行重大更改——修复错误、添加新功能或重构——常常会导致连锁问题和进度停滞。Mikado方法提供了一种结构化的方法来避免这种情况。
其核心思想是将雄心勃勃的目标分解为小的、有时限的任务(5-15分钟)。如果任务在时限内失败,**回滚更改**并确定需要首先解决的更小的“子目标”。然后,在新的时限内处理这个子目标。成功的任务会**立即提交**,创建频繁的检查点。
这个迭代过程,可视化为分支的“Mikado”棍图,逐步解开依赖关系。例如,升级ORM依赖项可能首先涉及提取公共函数调用,然后调整单个实例,最后完成升级。
Mikado方法强调短时限以避免“沉没成本谬误”,并频繁提交以保持可发布的代码库。它关注于在尝试更大的目标之前,使每一步都*更容易*,最终实现对具有挑战性的遗留系统的有效且成功的更改。
## 386芯片的漫长复制之路:AMD与Intel的竞争
关于AMD复制Intel CPU速度慢的说法并不完全准确。虽然AMD的Am386于1991年问世,比Intel的386晚了六年,但延误源于IBM最初对386的不感兴趣——IBM不希望出现与利润丰厚的迷你计算机竞争的芯片,因此没有促使Intel广泛授权。这使得Intel得以避免延长与AMD的许可协议。
AMD花了两年时间逆向工程386,但随之而来的是与Intel长达八年的代价高昂的法律斗争,最终两家公司损失了1亿美元。Intel积极努力延缓AMD的进入,有效地使AMD落后一个世代超过十年,并巩固了其在高利润CPU市场的统治地位。
尽管如此,Am386是一款具有竞争力的芯片,以更低的价格提供与Intel相当的性能,吸引了注重性价比的用户。虽然最终被486和Windows 95的崛起所取代,但Am386展示了AMD的能力,并为其未来奠定了基础,甚至在其PC鼎盛时期之后,在嵌入式系统中存活了多年。这场冲突凸显了Intel的激进策略,并塑造了AMD在CPU领域的轨迹。