2004.3.19
过去两年我女儿Sharron一直在当地的盛装舞步培训机构上课,她已经非常擅长该项运动了。
去年10月,Sharron想参加盛装舞步比赛。我们被告知,Sharron必须先有一匹马,因为盛装舞步比赛同时比拼马与骑手。所以去年秋天我们为她买了一匹名为Oliver的小马。从12月开始,Sharron开始专心训练Oliver。
好吧,这个周末是Sharron的第一场盛装舞步比赛,她和Oliver将去Whidbey马术中心参加入门1级、2级的测试赛。不用说,我们都有点紧张,也有点兴奋。
2004.5.3
LO举了两个不成功的"优化"示例。一个是,Victor Vyssotsky在1960年代对FORTRAN编译器所做的一个优化,在后来的10万次编译中该优化部分从未被涉及过。另一个例子是Exchange 5.5 POP3 Server,有个开发负责人强烈建议进行一种"优化",事后证明对整体性能没啥得提升,甚至有点下降,最后回滚了这次"优化"。
经验是,开始优化前先搞清楚瓶颈所在,确保了解系统的基本性能特征。
2004.5.6
Windows 3.x如此成功的原因之一与当时的开发负责人直接相关。开发负责人Phil Barrett坚持Windows 3.x开发团队使用目标客户所用主流机型进行开发工作。当时较新款是33MHz 486,而66MHz的款型刚刚进入市场,许多微软开发人员用的是这两种款型,我们一般两年一换。
但是,Phil要求Windows 3.x开发团队只能使用20MHz 386款型,1到2MB内存。与之相比,微软其他团队用的是33MHz 486,4到8MB内存。由于预期Windows 3.x的目标客户群使用20MHz 386,Windows 3.x开发团队被迫使用同款机型进行开发工作。Phil的逻辑是,如果开发人员被迫使用客户所用款型主机,他们就会尽最大努力确保自己开发的产品运行良好,这迫使开发人员感受客户可能遭受的痛苦,迫使开发人员开发出尽可能小而快的产品。
今天,我们开发Longhorn时,仍然这样干。不是着眼于客户群体当下使用的主流机型,而是使用TA们18个月后使用的主流机型。
2004.5.17
LO讲述了另一个微软员工恶搞的故事
多年来,这些家伙想出很多创意非凡的恶搞,真是令人生畏。我最喜欢的一次是为了庆祝某个Xenix开发人员的生日,姑且称之为张三。
张三最近开始打高尔夫。晚上他的同事们溜进他的办公室,搬空了所有的家俱,用草皮覆盖了地板。他们还在草皮上挖了一个洞,用以放置高尔夫球托,还有一根高尔夫球杆,我觉得这是从附近的高尔夫球场偷来的。最后,他们将所有的家俱归位。于是张三可以在自己的办公室里推杆。
整栋楼内弥漫着草皮味,它是如此明显。我不想知道最后他们是如何收场的。
2004.5.21
LO在此思辨地提及,很多培训视频预设场景是黑白分明的,他希望增加一些非二元对立的道德困境场景。看得出,LO是个思考过人生的家伙。此外,从本篇看出,LO的父亲、叔叔、兄弟都是律师!这解了我一个惑,之前看他blog,提到他父亲在法庭上昏倒,我还奇怪,这是犯啥事了?LO的母亲曾经是美国医学物理学家协会执行理事。他这出身可以啊,CMU CS毕业,优秀的软件工程师。
2004.5.27
对于Lan Manager 1.0/2.0,只在内部调试版中检查收到的SMB报文的有效性,那是十五年前了(1989)。当时Lan Manager的适配机型是20MHz的386,没有足够的算力做太多报文校验工作,这种选择(不做校验)情有可原。那个年代,网络服务端很少校验收到的报文,当然并不是说这样做是对的。开发NT时,适配机型是33MHz的386,团队内部就服务端是否校验所收取SMB报文的有效性产生了大量争论,Chuck Lenzmeier正确地坚持NT服务端必须校验每一个收到的SMB报文。Lan Manager团队的人反驳说,没这必要。注意,Lan Manager诞生于健状性属于系统可选项的年代。但是,Chuck坚持自己的立场,必须校验收到的SMB报文。从那时起,我们在各个版本都加强了对所收取SMB报文的校验,向CIFS协议增加了诸如加密、签名之类的特性,以进一步降低SMB报文被篡改的风险。
scz: 哇哦,历史上SMB就是马蜂窝