Monthly Archives: May 2006

白话相对论

一直都想写一些关于相对论的文章,来表达一下我对这位伟人的景仰之情,但始终没找到什么时间。其实现在也没什么时间,不过想想最好还是写一写:一来将我对这个偶像的崇拜进行到底;二来确实想说一说相对论,其实它也不是那么难理解的,甚至是一种常识,只是我们谁都没有注意罢了,虽然真正深层次的挖掘还是非常之深奥的。但是,就像爱因斯坦本人说过的一句名言——也是迄今我喜欢的名言之一——一样,这个宇宙最不可理解的就是她是可以被理解的。

本来这件事情最好是在去年完成,因为 2005 年是爱因斯坦逝世 50 周年和狭义相对论诞生 100 周年的年头,可惜错过了这样的机会。不过百年之后,这也算是一个新的起点,就此补偿一下。

废话就不说了,不过还有一点就是,跟我在俱乐部里呆过的人都会知道一个经典的密码,同时也就不会忘记爱因斯坦和他的诞辰及忌日了:Einstein18791955。

声明:

本文观点虽借鉴自诸多科普读物,但系作者自行归纳而成,且作者非物理学专业,因此水平有限,如有错误,欢迎指正。所以是否接受与传播、使用本观点属读者自主行为,与作者无关,由此引发的任何后果作者概不负责。
如不特别声明,文章中的物理学名词解释引用自维基百科。
在本文中如不特指,“相对论”就代表“狭义相对论”。
假设读者应该至少具有中国高中物理知识水平,因此对一些基本物理学名词不做解释。
欢迎转载,转载请注明作者及出处,或给与反向链接。

一、简介——爱因斯坦的宇宙就是我们的宇宙
提到相对论,我想应该还是有很多人能够说出狭义和广义之分。有人说过爱因斯坦连给他的理论起名字都是那么的吸引人,当

RÍANNA

Author by Vicente Velasco (Tatyandacil)

Namárië, Ríanna vanima, Heriméla!
Antanelyë men melmë ar alassë,
ar renuvammet oialë.
Namárië, Ríanna vanima, Ardalótë!
Coacalinalya firnë ve lícuma súrinen,
nó melmemma len úva firë indommassen.
Namárië, Ríanna vanima, Indotári!
Sí wila Númenna rámainen laurië,
ar nai fëalya seruva oialmaressë.

Translation by Helge K. Fauskanger

Farewell, beautiful Princess, loving lady!
You gave us love and joy,
and we will remember them forever.
Farewell, beautiful Princess, Flower of the Realm!
The light of your house died like a candle in
the wind,
but our love for you will not die in our hearts.
Farewell, beautiful Princess, Queen of Hearts!
Now fly into the West on golden wings,
and may your soul rest in eternal bliss.

一首诗,谁能猜出来是用什么语言写的?

window.eval() 和 eval() 的却别?

前两天作了一个试验,把 Javascript 文件当作一个字符串读到浏览器的内存中,然后使用 eval() 方法来解析,对某些内容的 Javascript 文件(我用的是 prototype.js)会有异常抛出。好像浏览器的 Javascript 引擎总是试图去执行一些本来是声名性的语句,例如定义 function。在我的试验中,当解析到 prototype 给 Object 添加的 extend 方法时,说第一个参数 destination 没有定义。

当研究了另一个非常有名的 Ajax 框架 Dojo 之后发现,如果使用 window.eval() 方法,上面的问题就没有了,解析可以非常顺利地进行,就像把 Javascript 文件通过

【转载】魔兽争霸 vs. 星际争霸 vs. 红色警戒

魔兽娱乐性强 比较搞笑 你常常越玩越轻松
星际竞技性强 比较严肃 你常常越玩越紧张
红警政治性强 比较偏激 你常常越玩越气愤

玩魔兽 就像唱卡拉ok 普通人练一首歌半个月 已经能赢得同伴的掌声
玩星际 就像唱京戏 曲不离口的练上一年 可能还唱不上调子
玩红警 就像说话 不用练就差不多水平 练了很多年说话的水平不见得高多少

学习魔兽 你能打赢两家疯狂电脑的时候 你和真人打就能取胜了
学习星际 你能打赢七家电脑 你还纳闷怎么还打不过真人
学习红警 你能打赢七家电脑 1000000 次 不见得和真人玩过

学习魔兽 两个小时你能死在相同的战术上八次 毫无还手之力
学习星际 两个小时你能死在迥异的战术上八次 毫无还手之力
学习红警 两年你都死在相同的得战术上无数次 毫无还手之力

魔兽里面 你专心练一个族往往就能够应付对同族异族4种情况打法
星际里面 人打虫的高手往往曾经就是虫打人的高手
红警里面 你学会一个国家就等于学会了所有国家

魔兽里面 熟练了几种套路就可以取胜
星际里面 熟练了几种套路还是被随机应变的对手牵着鼻子走
红警里面 熟练了几种套路,你会发现根本没用,只要熟练一种就可以了

魔兽里面 你利用计谋伏击或者包围了对方主力 对方却掏出回程扬长而走
星际里面 你会发现不仅有游击战还有阵地战、伏击战、空投战……
红警里面 你会发现什么战都是多余的,人多才是硬道理

魔兽里面 敌人无论离家多远都可以十秒内回救被你偷袭的基地
星际里面 你稍不留神就中了声东击西的诡计
红警里面 你必须时刻留神你得矿车

魔兽里面 你 5 分钟侦察一次还能对敌人兵种搭配了如指掌
星际里面 你 5 分钟侦察五次说不定得到的还是假情报
红警里面 你 5 分钟侦查一次,然后就再也用不着侦查了

魔兽里面 5 分钟不侦察你还能猜出来敌人部队构成
星际里面 3 分钟不侦察出门就可能全是克制你的兵种
红警里面 不用你去侦查地图上就能看见敌人的情况

魔兽里面 赢了一场大战就可以松口气 因为几乎稳操胜券
星际里面 赢了一场大战 正得意一下却发现刚刚大战中被一支奇兵偷袭得经济全毁
红警里面 赢了一场大战 你会觉得很幸运 你好多天都没有打过大战了。

魔兽里面 大战对决常常形势一边倒
星际里面 大战对决常常双方两败俱伤
红警里面 大战对决常常就像已经知道了结局颁奖典礼

魔兽里面 一次全军覆没 99% 可以打 GG
星际里面 十次全军覆说不定都不知鹿死谁手
红警里面 经常全军覆没是一种战斗方式

魔兽里面 你郁闷于虽然有顽强精神却在难以劣势中翻盘
星际里面 你郁闷于虽然有优势却被有顽强精神的对手翻盘
红警里面 你郁闷于必须有对方不知道的战术才能翻盘

魔兽里面 录像看到一半往往能知道结局
星际里面 录像看到结局你才发现开始的判断错了
红警里面 录像是什么都不知道

魔兽里面 初始的基地被拆毁就失去了希望
星际里面 两个人鏖战到调换基地位置甚至四海为家也不稀奇
红警里面 初始基地不仅可以被拆 还可以被占 被偷 被炸 自己还可以逃跑

魔兽里面 初始矿采完基本胜负就见分晓
星际里面 全地图的资源耗尽说不定才换来一个平局
红警里面 大家一直在抢资源很少出现平局

魔兽里面 你可以龟缩防守、偏安一隅
星际里面 你如果%

新发现的一个好东西 Script#

Script# 就是一个用 C# 代码来写脚本语言,然后通过特定的编译器将其转换成 Javascript。

不想在我这里说太多,作者的 blog 上面已经写的很清楚了。

有兴趣的可以到这里看一下。

另外还觉得这个东西生成的 Javascript 所引进的面向对象模型有点意思,等我研究一下再来说说。

偶然间发现一个 π 的算法

long a = 10000, b = 0, c = 2800, d, e = 0, f[2801], g;

main() {
for (; b – c; ) f[b++] = a / 5;
for (; d = 0, g = c * 2; c -= 14, printf(“%.4d”, e + d / a), e = d % a);
for (b = c; d += f[b] * a, f[b] = d % –g, d /= g–, –b; d *= b);
}

结果是
5926 5358 9793 2384 6264 3383 2795 0288 4197 1693 9937 5105 8209 7494 4592 3078 1640 6286 2089 9862 8034 8253 4211 7067 9821 4808 6513 2823 0664 7093 8446 0955 0582 2317 2535 9408 1284 8111 7450 2841 0270 1938 5211 0555 9644 6229 4895 4930 3819 6442 8810 9756 6593 3446 1284 7564 8233 7867 8316 5271 2019 0914 5648 5669 2346 0348 6104 5432 6648 2133 9360 7260 2491 4127 3724 5870 0660 6315 5881

据说是年薪四十万的面试题

小明和小强都是张老师的学生,张老师的生日是 M 月 N 日,2 人都不知道张老师的生日是下列 10 组中的一天,张老师把 M 值告诉了小明,把 N 值告诉了小强,张老师问他们知道他的生日是那一天吗?

3 月 4 日 3 月 5 日 3 月 8 日
6 月 4 日 6 月 7 日
9 月 1 日 9 月 5 日
12 月 1 日 12 月 2 日 12 月 8 日

小明说:如果我不知道的话,小强肯定也不知道。

小强说:本来我也不知道,但是现在我知道了。

小明说:哦,那我也知道了。

请根据以上对话推断出张老师的生日是哪一天?

CS0013 or CS0016 Compilation Errors in ASP.NET Web Applications

SYMPTOMS
When you view a Microsoft ASP.NET Application in a Web browser, you may receive the following error messages:

For the Microsoft .NET Framework version 1.1, the error message is the following:

CS0016: Could not write to output file ‘c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary
ASP.NET Files\application1\c11b43f6\cf3ec03\rizcntet.dll’ . The directory name is invalid.

For the .NET Framework 1.0, the error message is the following:

CS0013: Unexpected error writing metadata to file
‘C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\Temporary ASP.NET Files\application2\3fc72f26\eb731247\ev2bslce.dll’.
The directory name is invalid.

CAUSE
The system TEMP and TMP variables point to a folder that does not exist.

The compiler generates temporary files in the folder where the TEMP and the TMP variables point to before the files are copied to the Temporary ASP.NET Files folder. However, the folder where the system variables point to is deleted when you restart the computer. Therefore, the compiler cannot generate the temporary files.

RESOLUTION

  1. Create a temporary folder under %Systemroot%, and then name it Temp.
  2. Grant full permissions on the Temp folder to the aspnet user account in .NET Framework 1.0 or to the NETWORK SERVICE user account in .NET Framework 1.1.
  3. Right-click My Computer, and then click Properties.
  4. On the Advanced tab, click Environment Variables.
  5. Select the TEMP variable under System variables, and then click Edit.
  6. Type %SystemRoot%\TEMP in the Variable Value box, and then click OK.
  7. Repeat steps 5 and 6 to edit the TMP variable. Click OK two times.
  8. Click Start, and then click Run.
  9. To reset Internet Information Services (IIS), type iisreset on the command prompt.

Note If the error message that is mentioned in the “Symptoms” section of this article persists, restart the computer.

MORE INFORMATION
Steps to Reproduce the Behavior

  1. Start Microsoft Visual Studio .NET.
  2. Create a new ASP.NET Web Application project by using Microsoft Visual C# .NET or Microsoft Visual Basic .NET, and then name the project CompileTest.
  3. On the Build menu, click Build Solution.
  4. Right-click My Computer, and then click Properties.
  5. On the Advanced tab, click Environment Variables.
  6. Select the TEMP variable under System variables,
    and then click Edit.
  7. Type %SystemRoot%\TEMP1 in the Variable Value box to point to the nonexistent TEMP1 folder, and then click OK.
  8. 8.Repeat steps 6 and 7 to edit the TMP variable to point to the nonexistent TEMP1 folder.
  9. 9.Click OK two times.
  10. 10.To notice one of the error messages that are mentioned in the “Symptoms” section of this article, visit the following URL: http://localhost/CompileTest/WebForm1.aspx

从那次天大学生户外遇险想到的

不是我们征服了自然,而是自然宽容了我们。

一句颇感自责的话,无所不能的人们,真的是对大自然束手无策了吗?

消极地逃避!

消极的你我在深闺中仰视探险家的伟大,他们把未知的神奇带来,把旅途的艰险留住。这一切好象都那么遥远,那么必然。走进大学的校园,才忽然觉得这个世界上不只有家庭与学校,国家与民族,有的是你未曾听说过的想法,可贵的是有人用自己的青春在实践,或许路途茫远、艰辛,甚至危险而面临死亡。

更像电影中才能见到的遇险,今天就出现在也许是你我隔壁或上铺兄弟的身上。感觉就会是她大多忍耐了我们的挑衅,而这一次不等于每一次。

有的是对他们的羡慕甚至崇拜,虽然刚刚听到这个消息的时候确实觉得丢人。回想起几年前北大山鹰社挑战雪山的壮举,加之人们的宽容与支持,以及后来许多网友用“真正的生死之交”来形容他们的经历,逐渐地这些人变得伟大起来,户外变成了探险,逐渐地有一个人出现在了我的脑海中。

徐霞客!中国的探险家不多,屈指可数,我就知道这一个。

让青春来的有些挑战吧,如果大自然要对风华正茂的年龄说不,那么至少作为实践者和先驱者我们把经验留给后来人,让她瞧一瞧人类的征服欲源自存在,源自任何尚未被征服的世界的存在。

一个世界,生生不息!

想想你们的口号:天行健,君子以自强不息;地势坤,君子以厚的载物!