2009-02-10

关于版本

1, 微软
1.1 Vista
对于微软的Vista,很少听到叫好的。
看到有文章说,这是微软的策略,这样是为了引入Windows 7。(确实,Windows 7很让人期待,微软也给人Windows 7很值得期待的感觉。)

这个说法可能是靠谱的。来看一个帖子:有人问为什么Vista的代号叫Longhorn?回答:

其实"长角"(Longhorn)实际上是下一代Windows的开发代号,具体内容如下:
在温哥华北面有一个北美最好的滑雪胜地,微软很多人喜欢到那里度假。那里有两座山,一座叫Whistler,另一座叫 Blackcomb,Windows XP的代号是Whistler,而Longhorn之后的那个Windows代号是Blackcomb。在那里滑雪的人,一般先从Whistle山上滑下来,然后到两座山之间的一个小酒馆去休息休息,再去滑Blackcomb。这个小酒馆就叫做Longhorn。
(附:Longhorn是微软从NT体系的顶峰Windows XP迈向新高峰Blackcomb中间的一个过渡系统。)


这可不是随便说说的,Windows 7的代号确实是Blackcomb。
关于微软产品的代号可以参考http://en.wikipedia.org/wiki/Microsoft_codenames

[注: 后来我又在Google Maps验证了这几个地方: Whistler Blackcomb Mountains The Longhorn Saloon]

跟Vista遭遇类似的还有Windows ME为Windows 2000铺路。

1.2 团队
Windows 2000和Windows NT的系统目录都是C:\WINNT (假如安装在C盘的话);
Windows 98和Windows XP的系统目录都是C:\Windows (假如安装在C盘的话);
据悉,微软内部也是有几个不同的团队的。

2, AMD
接着说团队的事情说。
人们发现,AMD不同产品的稳定性性能上可能有不同。
据说是因为有两个团队,甲团队开发了A产品,然后进入维护阶段,然后A团队修整;这时B团队开始开发B产品。如此交替。
所以,可能发现A/C/E等产品表现是一致的,而B/D/F等产品表现一致。
(本人对AMD产品研究不多,请勿全信。)

3, Linux

从Linux 1.0这个里程碑式的系统开始,使用了两"路"编号方法标注内核的开发。偶数号的内核(比如 1.0、2.2、2.4)是"稳定阶段的"内核,表示对内核只有少量的修改,这些修改不影响内核的稳定性,只是为了修正一些bug或优化效率等。同时,奇数号的内核版本(1.1、2.3)是前沿的或者"开发阶段的"内核,表示对内核特性有所增加。


所以,偶数版本比较稳定。
受Linux此风格影响,不少软件的版本上都有这个特点。

2009-01-27

把文件压缩成.CAB格式

Windows XP C:\WINDOWS\system32\makecab.exe

压缩单个文件
C:\WINDOWS\system32\makecab.exe a.txt

压缩一个文件夹
在目录下dir /b >list.txt
C:\WINDOWS\system32\makecab.exe /f list.txt

如果文件很大,会分别放到diskx这些目录下。
如需要放到一个文件中,那么
C:\WINDOWS\system32\makecab.exe /d maxdisksize=2048000000 /f list.txt

2008-11-18

Lazy evaluation

对于C/C++,if语句的表达式如果使用&&,则计算到某个条件为false后,后面就不会执行。
因此,经常有人写if((pTemp != NULL) && (pTemp->iValue > 10))类似的语句。(注:实际上这种写法不严谨。)

对于Java,if语句中表达式结果只能是Boolean。但是,可以使用&&和&。
如果使用&&,则与C/C++一样,Lazy evaluation。
如果使用&,则即使某个条件为false之后还会计算所有的条件。(可以理解为Boolean的位与)

Javascript const

因为Javascript不支持宏定义,所以就把一些常量从var修改为const。
用FF测试OK,用IE报错——居然到IE7还不支持const(const是Javascipt 1.4之后增加的)。