呓语
我们升斗小民,微不足道,如路边的蚂蚁,粪缸里的蛆虫,不过是苟且图存,既无行善的能力,也无作恶的力量,说话不过像是疯子的呓语,是无人肯听的,传播几米就会消散在风中,所谓群众的呼声,不过是被呼声而已。生存着不过是被人践踏,被人口红利,吸着本已不多的血,无声无息并不会有老爷大人注目; 死也如风吹残叶,旋几下落在地上,不几天就化为了尘土,悲伤的不过是几个亲友,生命就弥散在了无边无际无来无去的宇宙中。
我们升斗小民,微不足道,如路边的蚂蚁,粪缸里的蛆虫,不过是苟且图存,既无行善的能力,也无作恶的力量,说话不过像是疯子的呓语,是无人肯听的,传播几米就会消散在风中,所谓群众的呼声,不过是被呼声而已。生存着不过是被人践踏,被人口红利,吸着本已不多的血,无声无息并不会有老爷大人注目; 死也如风吹残叶,旋几下落在地上,不几天就化为了尘土,悲伤的不过是几个亲友,生命就弥散在了无边无际无来无去的宇宙中。
昔人不愿得千金,惟愿得季布一诺,侠者感人之力可谓大矣。春秋战国秦汉之际,一时豪俊,如重交之管鲍,仗义之杵臼程婴,好客之四公子,纾人急难之郭解朱家,莫不烈烈有侠士风范,为世人之所倾慕。迨于后世,古道渐衰,人情险诈,奸猾并起,才智之士又争赴仕途,遂使一脉侠风荡然寡存,惟于江湖闾里之间,有时尚可求到,然亦微矣!余谓任侠为中国旧有之精神,正如日本之武士道,欧洲中世纪之骑士。倘能拾摭旧闻,不涉神怪,不诲盗淫,著成一书,虽未必便挽颓风,然寒窗苦寂,持卷快谈,亦足以浮一大白也。频年饥驱远游,秦楚燕赵之间,跋涉殆遍,屡经坎坷,备尝世味,益感人间侠士之不可无。兼以情场爱迹,所见亦多,大 都财色相欺,优柔自误。因是,又拟以任侠与爱情相并言之,庶使英雄肝胆亦有旖旎之思,儿女痴情不尽娇柔之态,此《宝剑金钗》之所由作也。
发现Macbook Air外接显示器的时候,默认是没有开启ClearType的,字体发虚的很厉害。
解决方法是在终端底下输入:
defaults -currentHost write -globalDomain AppleFontSmoothing -int 2
就是强行把抗锯齿打开。
有时候明明mp3里嵌入了歌词的tag,但是iPhone/iPod里还是不能显示。经试验,发现是V2.4的ID3 Tag偶尔会有这种Bug。在iTunes里,选择相应的mp3文件,右键点击,选择Convert ID3 Tags,转成V2.3版的ID3 Tag,问题解决。
1945年,黄炎培以国民政府参政员的身份到访延安,在延安,他见到了共产党的领袖毛泽东。
毛泽东问:“任之先生,这几天通过你的所见所闻,感觉如何?”
黄炎培直言相答:“我生六十余年,耳闻的不说,所亲眼见到的,真所谓其兴也勃焉,其亡也忽焉,一人,一家,一团体,一地方,乃至一国,不少单位都没有能跳出这周期率的支配力。大凡初时聚精会神,没有一事不用心,没有一人不卖力,也许那时艰难困苦,只有从万死中觅取一生。既而环境渐渐好转了,精神也就渐渐放下了……总之没有能跳出这周期率。”
毛泽东答:“我们已经找到新路,我们能跳出这周期率。这条新路,就是民主。只有让人民来监督政府,政府才不敢松懈。只有人人起来负责,才不会人亡政息。”
————
挖65年的老坟,拭目以待。
当年 OpenGL Shader 语言选择投票 Cg 没有通过,而让 3D labs 主导的 GLSL 成为了标准,真是一件大不幸的事件。要同时支持 D3D 和 OpenGL 的渲染引擎就很麻烦,往往得写 HLSL 和 GLSL 两套代码。我们知道,PC D3D、XBOX 360 和 PlayStation 3 都是用 HLSL(Cg),当要移植到 OpenGL 时,就需要同样的代码 GLSL 也要写一套。
我们可以在 OpenGL 上用 nVidia 的 Cg Runtime 来解决这个问题。他可以用 HLSL 的语法来写 OpenGL 的 Shader。但是 Cg Runtime 也有他的缺点:1. 它很庞大,2. 他在 ATi 的显卡上性能不行,3. 他不支持 OpenGL ES 等等。FarCry 1,Axon Engine,id 的新游戏 Rage 采用这个方案。
所以有时候我们需要一个直接把 HLSL 翻译成 GLSL 的解决方案。
另外,Cg Runtime 在 Shader Model 4 和 Shader Model 5 在 OpenGL 上的支持好像也不太好。自从 Cg 的核心开发人员投奔微软后,Cg 框架的发展就明显停了下来。
这种人为造成的屏障,不知道是开发人员的不幸,还是产业的不行。
为了应付即将到来的长途旅行,搞了套 3G 上网设备。采用 Lenovo Ideapad U150 超轻便小本(11.6 吋显示屏,SU2200 双核,1G 内存, 250G 硬盘,蓝牙、Wifi、以太网卡都有,自己加了 1G 内存)。这个本子有个缺点,键盘很松的样子,响声很大,等发现已经晚了,已经买回家了。其他方面都还可以。
我对 3G 手机毫无兴趣,只是想 3G 上网,出外的时候可以看看网页,打打字而已。伟大的祖国可能是世界上唯一有 3 种制式 3G 并存的国家,中国移动的 TD-SCDMA,中国联通的 WCDMA,中国电信的 CDMA 2000。联通用的 WCDMA 是国际上最通用的 3G 制式吧。本来想用联通的服务,可是联通的 3G 上网,是只能在 3G 区域用,不能切换到 2G 用,纯 3G 网络覆盖面积还是很小的。中国移动的 3G 好像更不行。最后选了中国电信的天翼 3G,3G、2G、Wifi 随时切换。试了下速度,尚可,在家里好的时候有 200Kbytes 峰值,看看网页是够了。
本子不带 3G 模块,所以搞了个华为的 EC122 上网卡。这个卡还是显得庞大了点,相比于 U 盘。
如果是玩 3G 手机,还是用联通吧。纯 3G 上网,电信不错。逛某论坛发现,基本没人用电信的 3G 电话,全是上网的。而联通的 3G 用户,就是用 3G 电话的多,上网的反而极少。这是我们国家的怪现象。
最后给关心的人报个我买的价格:U150 (3699元),1G DDR3(175元),华为 EC122(280元),电信 3G(我的e家套餐内含 20 小时每月,无月租,超出 0.1 元每分钟)。
我们程序界经常有句话,不要重新去发明轮子。轮子的发明确实很伟大,到底是谁发明的也不可考。我估计,这个发明是古代人在劳动生产中自然发现(或者叫发明)的。
想象下古人推或者拉一块沉重的方石头,这个时候要克服的是滑动摩擦力,它跟材料的光滑度、物体的重量和接触面的大小有关。这个力很大,古人一定很费劲。然后他发现,滚起来更省力(哪怕他不是圆形的),这个时候,如右图,是 Fp * Dp 这个力矩对抗 Fa * Da 这个力矩。如果这块石头是八角形的,那么 Da 就会更短,抵抗的力矩就会更小,随着形状越接近圆形,那么力矩就越小。可以想象,如果是个纯粹的完美的圆形的,那么抵抗的力矩会最小,这个时候就算是一个“小古人”,也可以推得动一块很重的大石头,这个其实就是滚动摩擦。并且圆形的特点,是滚动的时候不会颠簸,因为到圆心的距离一样。轮子就这样被发明了。
我们认真研究下轮子的滚动摩擦。如右图所示,无论是轮子,还是托起轮子的地面,都不可能是完全刚性的,总会有点变形,就是这点变形,造成了滚动摩擦的起因。其实滚动摩擦并不是一种摩擦,而是一种力矩,完全的滚动摩擦,并没有在接触点产生滑动,也就不会做功。当轮子和地面越硬,变形就越小,相当于产生的滑动摩擦就越小。这就是为什么火车用钢轨和钢轮子;也是为什么自行车和汽车,气不足的时候会更吃力或者更消耗汽油。
但是汽车为什么不用钢轮子呢?这个道理是很简单的,不像铁轨,他不需要转向,他的转向,是靠扳道实现的。而汽车要主动转向(这个需要滑动摩擦力),钢轮子太滑,不能方便转向。何况,如果轮子是钢的,地面岂不是很容易划烂。如果整个地面用钢板,那成本也太高了。有轨电车,其实是可以用钢轮子的,而且,很多有轨电车,确实用的是钢轮子。
轮子里面的学问,暂时就讲这些。
现在有大于 4G 内存相当常见,内存这么便宜。这样操作系统的选择就是件麻烦事情。Windows XP、Windows Vista 和 Windows 7 x86 版本都只能用到 3.0~3.2G 左右,跟主板有关。很多人就被逼安装 x64 版本的操作系统。
其实N年前就有PAE1这个CPU支持的特性。现在市面上的 CPU,估计没有不支持的吧。现在的 Linux 发行版,2.6 之后的内核大都编译进去了 PAE 的支持,所以,就算你是大于4G内存,装Linux 32bits,也可以完全利用全部内存。Windows Server 2003 和 Windows Server 2008 的 32 位版,也用PAE支持到 64G 的内存。
看这个表:
| Windows 版本 (和最大支持内存(GB)) | 32-bit 版本 | 64-bit版本 |
|---|---|---|
| Windows 2000 Professional, Server | 4 | N/A |
| Windows 2000 Advanced Server | 8 | N/A |
| Windows 2000 Datacenter | 32 | N/A |
| Windows XP Starter | 0.5 | N/A |
| Windows XP Home & Media Center | 4 | |
| Windows XP Professional | 4 | 32 |
| Windows Server 2003 Web | 2 | N/A |
| Windows Server 2003 Small Business, Home, Storage | 4 | N/A |
| Windows Server 2003 Enterprise Storage | 8 | N/A |
| Windows Server 2003 Standard (SP1/SP2/R2) | 4 | 32 |
| Windows Server 2003 Enterprise (SP2) | 64 | 2048 |
| Windows Server 2003 Datacenter (SP2) | 128 | 2048 |
| Windows Vista Starter | 1 | N/A |
| Windows Vista Home Basic | 4 | 8 |
| Windows Vista Home Premium | 4 | 16 |
| Windows Vista Business, Enterprise, Ultimate | 4 | 128 |
| Windows Server 2008 Standard, Web | 4 | 32 |
| Windows Server 2008 Enterprise, Datacenter | 64 | 2048 |
| Windows 7 Starter | 2 | N/A |
| Windows 7 Home Basic | 4 | 8 |
| Windows 7 Home Premium | 4 | 16 |
| Windows 7 Professional, Enterprise, Ultimate | 4 | 192 |
Windows 32 位版本内存的限制,完全只是商业考量,并非技术原因。所以,如果你要支持大内存,而又不想用x64版本的操作系统,XP 内核的可以选用 Windows Server 2003 Enterprise 或者 DataCenter 版本,Vista 和 Win7 内核的,可选用 Windows Server 2008 Enterprise。
当然 32 位的操作系统利用 PAE 可以支持到 64G 内存,但是单个应用程序,还是只能最多利用 4G 内存空间,我觉得这是我们唯一要用 64bits 操作系统的原因。
有“高手”说,考试新人,考矩阵求逆就够了。这么“高深”的东西,我怎么能懂呢。我是只知道点积和叉积的。这个话恐怕也说满了,点积和叉积,我也不能说我就知道了。我只知道了一点点。
关于矩阵求逆,我们知道求逆的定义,就是求 M-1= I / M。对于
的矩阵,不过是 16 个线性联立方程,有16个未知数,这个只是体力活,就算你未尝先把公式背下来,硬算也是初中生可解的问题,并且这个只是代数问题,跟几何没有关系。而点积和叉积则不同,点积和叉积是 3D 解析几何,3D 图形学的数学基础,如何让扁平的代数立体起来,靠的就是这个。大多数引擎程序员会自认为自己很了解点积和叉积。但是实际上据我观察,却不是这样。99%的人没搞懂这个。
我们的教科书,倾向于直接把结果含糊不清的告诉学生,而没有把其中的过程,思辨教给学生,而这个反而是精华。我说他们含糊不清,已经是个很轻的说法。实际上,我发现我们的教科书,采用循环定义,想当然的推理的地方很多。我尝试用一种不同的途径来讲述这个。你看了之后,可能会更明白了,哦,原来是这样。但是很有可能 (或者说是更有可能) 是更迷糊了。很多你认为理所当然的东西一下子朦胧了起来。
我们从最简单的开始。老王是卖白菜的,他问,一斤白菜 2 块钱,请问 3 斤白菜多少钱?虽然你家里不是卖白菜的,我想你也能得出答案,6 块钱。我如果问为什么呢?因为 2*3 = 6。如果我问为什么 2*3 = 6 呢?这个就有点难度了。九九乘法表里就是这样的,我们从小就背下来了。其实很简单,乘法是加法的简化写法,2*3 等于 3 个 2 相加,所以 2*3 = 2+2+2=6。那为什么 2+2+2=6 呢?这就很难答上来了。如果你孩子问你,你会跟他搬指头。搬指头是没错的,但是如果是 20,200,2000, 你恐怕就没这么多指头可以搬(蜈蚣除外)。
要解答这个问题,其实是没有可能的。我们要搬出公理,公理,就是公认的道理,不证自明的道理,其实就是没有办法证明的道理。我们前面说的,其实是自然数,或者说,我们叫它自然数,因为它很“自然而然”。关于自然数,我们有皮亚诺公理来描述这个问题。
皮亚诺的这五条公理用非形式化的方法叙述如下:
皮亚诺公理里的第 2 项所谓的后继,其实定义了加法,后继,就是搬一个指头,就是 +1 的得到的数。后继的后继,就是 + 1 + 1。我们知道 1 的后继那个数,我们写作 2,意思就是 1 + 1 = 2。所以加法就是多次搬指头的简写。
a+b 定义为 a 后面第 b 个后继,也就是 a 之后再搬 b 次指头。
我们先证明证明加法结合律:

首先证明 c=1 时上式成立, (a+b)+1 是 (a+b) 的后继,而 a+b 是 a 后的第 b 个后继,那么 a+(b+1) 也就是 (a+b) 的后继。所以
公式1: 
成立。
假设 c=m 时成立,我们证明 c=m+1 时也成立。
如果
公式2:
成立,
那么 根据公式1有

根据公式2有

再根据公式1(用了两次公式1)

证毕。
加法交换律也可以用归纳法类似的证明。
那么
等于多少呢?
。
等于多少呢?按上面的方法,不难证明
。
但是
写起来太难看了,如果你买100斤白菜,那岂不是要写老长?我们定义一个新的简写方法,a多次累加b次,我们写成
。乘法就是多次加法的简写。就得到
。
乘法也可以证明符合结合律和交换律。证明就不写了。自己可以去试试。
另外,对于一个自然数,乘以1等于多少呢?这个很容易理解,还是等于自身。一斤白菜2块钱,你买一斤,当然还是2块钱。所以我们有:
公式3: 
卖白菜是件很高深的工作,跟掏粪不相上下,也需要大学生才能搞定。老王大学毕业后,卖白菜卖的很有心得。有个问题,今天进了100斤白菜的货,卖出了85斤,问,还剩多少斤呢?
所以我们要定义一个搬指头的逆运算,反向扳指头,先拿出100根指头,然后拿掉85个指头,这个运算我们叫减法,减法是加法的逆运算。

如果卖了100斤呢?你发现啥都没剩下。这时候我们定义一个新的数 0,表示没有,空。0算不算自然数,有的领域倾向于算是,比如集合论和计算机科学里。有的领域一般不算,比如数论。数论里面算0,很多东西就不好搞了。比如0算不算偶数?算不算质数?不好搞。我们不讨论这个。卖白菜虽然高深,但是也没到要去证明哥德巴赫猜想的地步。
所以,卖完100斤后,老王今天收入了200块钱。老王的白菜生意做得很好,又很有信誉,所以,白菜供应商可以让老王先拿货,后付款。第二天老王又拿了100斤白菜,但是挂了帐,拿货价是1元每斤(白菜的利润没这么高,否则就不是叫白菜,但是我们还没学过实数,所以暂时这么定)。结果这天生意不好,大家都喜欢吃点好的(豆腐就不错),只卖掉了30斤,老王今天收入多少钱呢?

要还供应商100块,这个帐一算,老王亏了40块。如何计帐这个亏了的40块钱(统计局不叫这个叫亏损,叫赤字,老王收入下降也不是下降,叫负增长),我们扩展自然数支持这个记法,叫负数。-1就是0前继,-40就是0往前数40。
我们不难得到,0-40 = -40,0-n=-n;
负整数乘以正整数是正整数还是负整数呢。当然是负整数。我欠你10块钱,是-10。如果是欠10倍的10块钱,当然是 –100。如果是正数就麻烦了,你要倒找我钱。即, 假设a, b是正整数:

负整数乘以负整数是负整数还是正整数呢?
假设a, b是正整数,那么

显然结果为正整数。
我们初步从一无所有开始,得到了整数的概念和一些基本的运算。后面我们要进入实数和几何,然后接近点积和叉积。
Recent Comments