“工程技术” 分类下的文章
人渣经济笔记上提到这样一个故事:
美国在1998年(应该是 1999 年)发射的火星探测器Mars Climate Orbiter在登陆火星的时候坠毁,后来追查原因,发现事情很简单――探测器的一部分是由洛克西德马丁公司负责制造,那里的程序员一不小心使用了英制单位,但NASA规定使用的是公制单位,这结果导致了对推力的读数实际读出的是磅,但是NASA却以为是牛顿,一磅大概相当于4.5牛顿。换句话说,在推力已经很大的时候,NASA的控制台还以为推力不足,于是探测器用诡异的姿势进入了诡异的轨道,然后就坠毁了。
详细参看当年 CNN 的报道。我听到过一个类似的故事,不知真假,而且记不大清楚了。有关宇航员进行太空漫步,去维修某个仪器。一切顺利,但发现要取下的螺丝钉是英制的,而宇航员只带了公制的六角扳手。行动因此失败。
这种错误,绝不只发生在美国。因为美国市场巨大,市面上的仪器很多是英制的,即使你在别的国家,使用的仪器设备也可能是英制的。一般的实验室里必备公制以及英制的工具以及螺丝钉。最讨人嫌的设计是,有时候同一个小东西上同时有两种单位制的钉子。
以前不理解讲秦始皇的历史功绩时为啥要说统一度量衡,直到三十岁左右才明白。
为什么Windows 2K/XP/2K3系统的时钟前四秒快第五秒慢?
by Yan on 5月 27, 2008
前一阵子,松鼠会中有人提到,Windows 系统中的秒针走起来,前四秒快,而后一秒慢。然后又说是今年才开始的,预示着地球的剧变,等等不着边际的话。很不以为然。但是,这种快慢不一的现象原来是真的,现在有人提供了一个解释,是程序的问题:
如果你细心注意过的话,点开2K/XP/2K3系统右下角的时钟,让他的秒针走动起来的时候,会出现一个很有意思的现象:前四秒钟数字和秒针变化的快,第五秒感觉却很长,这是为什么呢?
原因实际上出在那个表的精度上。
如果学过Windows的C++编程可以知道,WM_TIMER是常用的定时器。但这个定时器的精度不是很高。在Windows的Clock这个子程序中,实际上就是用了WM_TIMER进行定时。当显示秒针时,表的更新由这样一句语句触发:
SetTimer (hWnd, TimerID, OPEN_TLEN, 0L);
SetTimer的用法很简单,设置好Timer之后,每次触发就只要重新取当前时间重画表盘就可以了。那么OPEN_TLEN就是Timer的触发时间。这个时间是一个常量,在受到影响的系统里面被定义为450,也就是不到半秒。
定义成450ms会出现什么现象?我们来看一组数。第一行和第三行是更新的次数,他们下面是更新的毫秒数。
1 2 3 4 5 6 7 8
450 900 1350 1800 2250 2700 3150 36009 10 11 12 13 14 15 16
4050 4500 4950 5400 5850 6300 6750 7200
表面张力驱动的微型船
by Yan on 5月 21, 2008
小时候一个玩法:用小木片做船,把拔掉头的圆珠笔芯放在船尾,笔芯里面的油扩散到水面,小船就会被推动,自己开起来。
船为什么会被驱动:因为油的表面张力比水小,所以船的前后形成表面张力差。船是被前面的水面拽着走的。物理学上叫做 Marangoni 效应。
University of Texas 的 Cheng Luo 教授小时候也玩过这个。与别人不同的是,他把小时候的游戏用到了研究工作中。他做了一艘 19.5 毫克重的船,用一滴 1.49 微升的异丙醇驱动,在 1 毫米深的浅水里速度可达每秒 30 厘米。
好玩吧。这种微型船的应用是显而易见的。
链接:
Toy-Like Microboat Could Carry Tiny Cargoes
Luo, Cheng; Li, Hao; and Liu, Xinchuan. “Propulsion of microboats using isopropyl alcohol as a propellant.” Journal of Micromechanics and Microengineering, 18 (2008) 067002 (6pp).
飞行的泡沫
by sinophysiker on 5月 19, 2008
根据Live Science以及网不易的报道。
某人发明了能够制造包含氦气泡沫的机器,并能将泡沫切割成型。这样的成型泡沫可以在空中漂浮和飞行很长时间。大致可以升到90至150米的高度飞行数公里。
Head Tracking for Desktop VR Displays using the WiiRemote
by xil41 on 1月 29, 2008
post it here just for fun…:)