VisionOS's Weblog

October 23, 2005

我們替Google Talk省了多少宣傳費啊(转载)

Filed under: uncategorized — visionos @ 3:41 am

一整天國內外的blogger及網友瘋狂宣傳測試Google Talk,打開RSS訂閱都是Google Talk,呵~我也插了一腳加入宣傳的行列

Gmail的死忠支持者+Google的口碑+病毐式行銷[按:这个词真是太确切了],Google什麼都不必做,千千萬萬的blogger及網友已經在一天不到的時間替 Google Talk省下了大量的宣傳廣告費用,而很多人知道Google Talk的推出,還是透過MSN勒!(MSN的對話大致就是:Google的IM軟體Google Talk出了喔,哇,那我們安裝來測試玩一下吧!呵!)

當看到台北馬路上的公車車廂廣告有著整個車體的Yahoo!奇摩 Messenger的廣告(不知道Yahoo!奇摩花了多少預算啊??)還有最近一直在傳統媒體上打廣告的Yahoo!奇摩知識+(下廣告預算真是多的可怕),再想想今天Google Talk一天之內的迅速口碑傳播,這種口耳相傳的口碑行銷真的是超級可怕的!而Google還沒有花一毛錢登廣告喔!

我甚至想,會再掀起另一波贈送Gmail邀請函的風潮,推出Google Talk,實為拓展Gmail的底盤,Gmail才有廣告關鍵字賣錢啊!

schoolbag

Filed under: uncategorized — visionos @ 3:08 am

This morning, while I was driving to work, I noticed a mother carrying her son’s heavy school bag — while her idiot son was capering[跳跃,顽皮] happily in front of her. Man, if I am the kid’s father, I would have gave him a piledrive[拎起来] into the drain[下水道,臭水沟]. How could he do that to his mom that cooks, washes and cares for him ? This is too much.

When I was young, I carried my own schoolbag. No doubt they weighted like a full grown male orang utan – but what the hell, those are my book. If anyone should be carrying the books for my own good – it would be myself. Kids are pampered[娇惯] and spoilt too much nowadays. They only know how to surf porn on the internet, nothing else.

But then, I also have always been wondering … why are those kids required to carry so many books to school ? I mean, why can’t someone install lockers at schools .. so that they can keep their stuffs there ? Instead of carrying books to school, students can choose which book to take back home for their revisions. It’s much more practical and convenient that way.

Things that people should have done but never did.

陈省身

Filed under: uncategorized — visionos @ 1:45 am

陈省身是欧几里得高斯黎曼 嘉当的继承者与开拓者。杨振宁曾赋诗一首,单道陈省身先生的伟大贡献和他在数学史上的地位,诗的最后两句便是”千古寸心事,欧高黎嘉陈”。

陈 省身发展了高斯-博内公式,为陈氏示性类,被命名为”陈氏级 理论”,成为经典杰作。他1946年提出了微分纤维丛理论,这与杨振宁30年后提出的规范厂理论殊途同归。该理论的影响遍及数学的各个领域。他创立的复流 形上的值分布理论,包括陈-Bott定理,影响及于代数数论。他为广义的积分几何奠定基础,获得基本运动学公式。他所引入的陈氏示性类与陈-Simons 微分式,已深入到数学以外的其他领域,成为论诸如规范场等的重要工具。他先后发表过数学论文158篇、《陈省身论文集》4卷以及《陈省身文选》等著作。 [现在终于有点明白为什么学微分几何的人对杨振宁比较推崇,原来他发展的规范场与纤维从有异曲同工之妙。

"向陈省身致敬,数学的伟人!

他使得高斯博内公式家喻户晓,

他发现了内蕴[??]的证明,

他的真理传遍了世界,

他给我们陈类,

还有第二不变量,

纤维丛和层,

颁布和叶形,

让我们向陈省身欢呼致敬!”

————————————————-

嘉當.E.( Elie-Joseph Cartan 1869-1951)

法國數學家。186949日生於伊澤爾的多洛米約,195156日 在巴黎去世。早年因家境貧寒無力上大學,後得到杜伯特的資助進入巴黎高等師範學校,1891年畢業,通過了教師資格考試。1894年完成學位論文 < <論有限連續變換群的結構>& gt;,取得博士學位。先後在蒙比里埃大學、里昂大學、南錫大學、巴黎大學任教。1912年任巴黎大學理學院教 授。1940年退休。

E.嘉當對20世紀數學發展有重大影響。他的數學工作大致可以分為三大類;李群和李代數理論、微分方程論、微分幾何學。1894年他徹底解決了有限參變量連續群問題,奠定了李群代數理論的基礎。1896年開始研究線性結合代數,不久他証明了每個代數結構可以用二重單位表示。並對李代數進行分類,引進 的概念。

1913年他進一步研究複單李代數的表示,利用最高權概念對複半單李代數的不可約線性表示進行分類,特別是得出正交群李代數的旋表示。他發現了量子力學中的旋子, 並利用它將複合向量由三維旋轉變成二維表示,從而建立了半單純李群的基本概念。1925年以後,他利用拓撲學方法發現了流形基本群與李代數結構之間的聯 系,把李群與拓撲學研究有機地結合起來。在微分方程組理論中,他定義了全微分方程中的通常積分元和正則積分元,給出適應於一類方程組的嘉當-克勒存在定 理,推進了所謂普法夫問題的求解。

1930年發表的<<有限連續群理論及 位置分析>>中,他總結了以前的研究並 證明一系列新定理,其中包括:更明確的流形、連續 群、李群、齊性空間等概念,證明李群的閉子群是李群,首次證明李的第三基本定理的逆定理,證明單連通李群同胚於極大緊子群與歐氏空間的拓撲積。1929年 起,他用不變微分形式討論李群的同調群,證明單李群的秩等於貝蒂數之和。由此,開始了李群及齊性空間拓撲學的研究高潮。

1920年以後,E.嘉當在相對論發展的影響下,對微分幾何學進行了一系列最值得稱道的工作。他發展了一般流形上活動標架法,創立了仿射連絡、射影連絡、 保角連絡的幾何學,發現和研究對稱黎曼空間,對連絡進行深入的探討。嘉當晚年發展了對稱空間理論,提出擬保形映象理論。
——————

关于微分几何中的多维空间,嘉当建立广义空间仿射联络、射影联络和保形联络的概念。1923年他提出了一般联络的微分几何学,将克莱因[不变量思想?]和黎曼的几何[流形的思想?]观点统一起来,这就是纤维丛概念的开端 嘉当的联络思想对现代微分几何学有着极其深刻的影响

———————————————–

锦瑟 李商隐


锦瑟无端五十弦,

一弦一柱思华年。

庄生晓梦迷蝴蝶,

望帝春心托杜鹃。

沧海月明珠有泪,

蓝田日暖玉生烟。

此情可待成追忆,

只是当时已惘然
[译诗]

锦瑟呀,你为何竟然有五十条弦? 每弦每节,都令人怀思黄金华年。 我心象庄子,为蝴蝶晓梦而迷惘; 又象望帝化杜鹃,寄托春心哀怨 沧海明月高照,鲛人泣泪皆成珠 蓝田红日和暖,可看到良玉生烟。 悲欢离合之情,岂待今日来追忆, 只是当年却漫不经心,早已惘然。

[题解]



这首诗历来注释不一, 莫衷一是。或以为是悼亡 之作,或以为是爱国之篇 或以为是自比文才之论, 或以为是抒写思念待儿锦 瑟。但以为是悼亡诗者为 最多。有人认为,开首以 瑟弦五十折半为二十五, 隐指亡妇华年二十五岁。 这话未免有嫌牵强。但是, 首联哀悼早逝却是真实。 颔联以庄子亡妻鼓盆而歌 和期效望帝化成子规而啼 血,间接地描写了人生的 悲欢离合。颈联以鲛人泣 珠和良玉生烟的典故,隐 约地描摹了世间风情迷离 恍惚,可望而不可置。最 后抒写生前情爱漫不经心, 死后追忆已经惘然的难以 排遣的情绪。


C/C++ calling Matlab functions (转载)

Filed under: uncategorized — visionos @ 1:01 am

C/C++ calling Matlab functions

Since many of us use C/C++ to code our GAs, and then use Matlab to plot the results, here’s several simple steps that allow you to call Matlab functions directly from C/C++:

1. Convert the main to mexFunction
mexFunction is the entrance of matlab executable.

mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[]) {    int i;    int argc  = nrhs;

    char **argv;

    argv = new char * [argc];

    for (i=0; i<argc; i++) {               int length = mxGetNumberOfElements(prhs[i])+1;              argv[i] = new char [length];              mxGetString(prhs[i], argv[i], length);     }    ...}

Basically, prhs are left elements and plhs are right elements.
e.g. In Matlab
[a,b]=xxx(c,d,e);
a and b are prhs, and nrhs = 2
c, d, and e are plhs, and nlhs = 3

2. Convert printf to mexPrintf
This can be done simply by

"#define printf mexPrintf"

3. Error message: mexErrMsgTxt will show text in red (default) in Matlab.

mexErrMsgTxt("blah blah blah");

4. Include "mex.h" everywhere you call mex functions.
mex.h can be found under the maltab directory.

5. To call a matlab function, use mexCallMATLAB
For example, to call a = f(b), where a is a double and b is a 1×2 matrix, the code looks like:

mxArray *plhs, *prhs;prhs =  mxCreateDoubleMatrix(1, 2, mxREAL);double *ptr = mxGetPr(prhs);ptr[0] = b;ptr[1] = c;mexCallMATLAB(1, &plhs, 1, &prhs, "f");a = *mxGetPr(plhs); mxDestroyArray(plhs);mxDestroyArray(prhs);

6. Compile the transferred code into mex (in Matlab)

mex -f /usr/local/matlab/bin/cxxopts.sh foo.cpp foo1.cpp foo2.cpp .....

cxxopts.sh are needed to let matlab know that you are doing c/c++.
It can be found under the matlab directory. The 1st name will be used as the library name (foo). In windows, the result is .dll; in Linux, it’s .mexglx.

More mex functions can be found on the MathWorks. Hope that helps.

钱钟书:说笑 (转载)

Filed under: uncategorized — visionos @ 12:46 am
中国青少年世纪读书网      钱钟书      2004-11-17 13:42

  自从幽默文学提倡以来,卖笑变成了文人的职业。幽默当然用笑来发泄,但是笑未必就表示着幽默。刘继庄《广阳杂记》云:”驴鸣似哭, 马嘶如笑。“而马并不以幽默名家,大约因为脸太长的缘故。老实说,一大部分人的笑,也只等于马鸣萧萧,充不得什么幽默。

  把幽默来分别人兽,好象亚里士多德是第一个。他在《动物学》里说:”人是唯一能笑的动物。“近代奇人白伦脱(W.S.Blunt) 有《笑与死》的一首十四行诗,略谓自然界如飞禽走兽之类,喜怒爱惧,无不发为适当的声音,只缺乏表示幽默的笑声。不过,笑若为表现幽默而设,笑只能算是废 物或奢侈品,因为人类并不都需要笑。禽兽的鸣叫,尽够来表达一般人的情感,怒则狮吼,悲则猿啼,争则蛙噪,遇冤家则如犬之吠影,见爱人则如鸠之呼妇 (cooing)。请问多少人真有幽默,需要笑来表现呢?然而造物者已经把笑的能力公平地分给了整个人类,脸上能做出笑容,嗓子里能发出笑声;有了这种本 领而不使用,未免可惜。所以,一般人并非因有幽默而笑,是会笑而借笑来掩饰他们的没有幽默。笑的本意,逐渐丧失;本来是幽默丰富的流露,慢慢地变成了幽默 贫乏的遮盖。于是你看见傻子的呆笑,瞎子的趁淘笑――还有风行一时的幽默文学。

  笑是最流动、最迅速的表情,从眼睛里泛到口角边。东方朔《神异经・东荒经》载东王公投壶不中,”天为之笑”,张华注谓天笑即是闪 电,真是绝顶聪明的想象。据荷兰夫人(LadyHolland)的《追忆录》,薛德尼.斯密史(SidneySmith)也曾说:”电光是天的诙谐 (Wit)。”笑的确可以说是人面上的电光,眼睛忽然增添了明亮,唇吻间闪烁着牙齿的光芒。我们不能扣留住闪电来代替高悬普照的太阳和月亮,所以我们也不 能把笑变为一个固定的、集体的表情。经提倡而产生的幽默,一定是矫揉造作的幽默。这种机械化的笑容,只像骷髅的露齿,算不得活人灵动的姿态。柏格森《笑 论》(LeRire)说,一切可笑都起于灵活的事物变成呆板,生动的举止化作机械式(Lemcaniqueplaquesur Levivant)。所以,复出单调的言动,无不惹笑,像口吃,像口头习惯语,像小孩子的有意模仿大人。老头子常比少年人可笑,就因为老头子不如少年人灵 变活动,只是一串僵化的习惯。幽默不能提倡,也是为此。一经提倡,自然流露的弄成模仿的,变化不拘的弄成刻板的。这种幽默本身就是幽默的资料,这种笑本身 就可笑。一个真有幽默的人别有会心,欣然独笑,冷然微笑,替沉闷的人生透一口气。也许要在几百年后、几万里外,才有另一个人和他隔着时间空间的河岸,莫逆 于心,相视而笑。假如一大批人,嘻开了嘴,放宽了嗓子,约齐了时刻,成群结党大笑,那只能算下等游艺场里的滑稽大会串。国货

  提倡尚且增添了冒牌,何况幽默是不能大批出产的东西。所以,幽默提倡以后,并不产生幽默家,只添了无数弄笔墨的小花脸。挂了幽默的 招牌,小花脸当然身价大增,脱离戏场而混进文场;反过来说,为小花脸冒牌以後,幽默品格降低,一大半文艺只能算是”游艺”。小花脸也使我们笑,不错!但是 他跟真有幽默者绝然不同。真有幽默的人能笑,我们跟着他笑;假充幽默的小花脸可笑,我们对着他笑。小花脸使我们笑,并非因为他有幽默,正因为我们自己有幽 默。

  所以,幽默至多是一种脾气,决不能标为主张,更不能当作职业。我们不要忘掉幽默(Humour)的拉丁文原意是液体;换句话说,好 象贾宝玉心目中的女性,幽默是水做的。把幽默当为一惯的主义或一生的衣食饭碗,那便是液体凝为固体,生物制成标本。就是真有幽默的人,若要卖笑为生,作品 便不甚看得,例如马克・吐温(MarkTwain):自十八世纪末叶以来,德国人好讲幽默,然而愈讲愈不相干,就因为德国人是做香肠的民族,错认幽默也像 肉末似的,可以包扎得停停当当,作为现成的精神食料。幽默减少人生的严重性,决不把自己看得严重。真正的幽默是能反躬自笑的,它不但对于人生是幽默的看 法,它对于幽默本身也是幽默的看法。提倡幽默作一个口号,一种标准,正是缺乏幽默的举动;这不是幽默,这是一本正经的宣传幽默,板了面孔的劝笑。我们又联 想到马鸣萧萧了!听来声音倒是笑,只是马脸全无笑容,还是拉得长长的,像追悼会上后死的朋友,又像讲学台上的先进的大师。

  大凡假充一桩事物,总有两个动机。或出于尊敬,例如俗物尊敬艺术,就收集骨董,附庸风雅。或出于利用,例如坏蛋有所企图,就利用宗 教道德,假充正人君子。幽默被假借,想来不出这两个缘故。然而假货毕竟充不得真。西洋成语称笑声清扬者为”银笑”,假幽默像掺了铅的伪币,发出重浊呆木的 声音,只能算铅笑。不过,”银笑”也许是卖笑得利,笑中有银之意,好比说”书中有黄金屋”;姑备一说,供给辞典学者的参考。

Random Numbers in C/C++

Filed under: uncategorized — visionos @ 12:37 am
adapted from http://cplus.about.com/od/advancedtutorials/l/aa041303a.htm
Example 1.
————————————————–
#include <cstdlib>
#include <iostream>
using std::cout;
using std::endl;

int main()
{

    cout << RAND_MAX << endl;

    return 0;
}
—————————————————
Note:

  • The function, rand, is used to generate a random integer between 0 and RAND_MAX. Rand is part of the C standard library.
  • Notice, that I have included "cstdlib". Cstdlib is a wrapper around the C include file, stdlib.h. The difference between cstdlib and stdlib.h is subtle. Identifiers, such as function and variable names in C libraries are in the global namespace. The can be used without any qualification.

Example 2.
—————————————————-
#include <cstdlib>
#include <iostream>
using std::cout;
using std::endl;

int main()
{

    for (int i = 0; i < 5; i++) {
        cout << rand() << endl;
    }

    return 0;
}
———————————————————
Note:

  • Getting the same sequence for every run can be useful for testing and in some situations, but it usually isn’t what is wanted.
  • Srand takes an unsigned int as an argument and sets the seed used for generating random numbers. Usually, the system time is a good choice as an argument for srand. It will be different each time the program is run. Thus, results will also be different.

Example 3.
———————————————————–
#include <cstdlib>
#include <ctime>
#include <iostream>
using std::cout;
using std::endl;

int main()
{

    // Set evil seed (initial seed)
    srand( (unsigned)time( NULL ) );

    for (int i = 0; i < 5; i++) {
        cout << rand() << endl;
    }

    return 0;
}
————————————————————–

Example 4.
————————————————————–
#include <cstdlib>
#include <ctime>
#include <iostream>
using std::cout;
using std::endl;

int main()
{

    float x;

    // Set evil seed (initial seed)
    srand( (unsigned)time( NULL ) );

    for (int i = 0; i < 5; i++) {
        x = (float) rand()/RAND_MAX;
        cout << x << endl;
    }

    return 0;
}
———————————————————————
Note:

  • There are two tricky points to notice in this program. First, to avoid integer arithmetic, I have explicitly casted the returned value of rand into a float.

    rand() / RAND_MAX is integer arithmetic. The result is always truncated to zero.

    (float) rand() / RAND_MAX is floating point arithmetic with a result in the range of 0 to 1, inclusive.

  • The second point to notice is that the value 1.0 is included in the possible results. This may, or may not, be desired. Here’s how to exclude 1.0 from the results.

    rand() / (RAND_MAX + 1.0 )is floating point arithmetic with a result in the range of 0 to 1.0, exclusive of 1.0.

What’s a blog?

Filed under: uncategorized — visionos @ 12:23 am

source: http://www.blogger.com/tour_start.g

A blog is

  • A personal diary;
  • A daily pulpit[讲坛]. (who are the audiences? the people from all over the world.)
  • A collaborative space.
  • Your own private thoughts.

Your blog is whatever you want it to be.

How to post photos?
You can also upload photos by attaching them to any email sent to your own mail-to-blogger address.

October 22, 2005

杂感 (关于宗教、理性、情感)

Filed under: uncategorized — visionos @ 9:46 pm

[注:几个月前的文章了。今天翻翻电脑,偶然看到这段文字,就贴出来了]

2005-06-29

今天心里颇不顺畅。一则近来压力太大、生活匆忙;二则感慨身边的人不能交心。人苦闷的时候,总是要看点东西、写点东西,来填充自己的心灵。

学理工的人容易将问题简单化,这是理学与工学的特点决定的;而细想起来,特别是当沉静下来,思考人性、社会的问题的时候,人并不是那么简单的。一个很重要 的区别就是目的的不同。在科学领域,目的一般都是很明确、很一致的。而人生的目的则不是明确的;而这个不明确性的明确化就产生了各种教义(包含道德,所有 的教义在一般情况下,都是一致的),而为了论证教义的正确性,一般的方法就是神秘化(不同的教义派,有不同的图腾,且具有排他性,这会产生冲突),这就产 生了宗教。

如此不同的人生,就产生了身边多彩的生活。具体到自己,那该如何呢?我不信奉宗教,虽然偶尔看一些宗教的教义;我自以为能够以高于宗教的态度来看待这个问 题。既然我不信奉宗教,那我生存的目的的问题就还没有解决。我以前说过,多数人多数时候都是随着环境走的,虽然有手有脚有脑,却没有多少自主的选择。初看 起来,这多少是人的悲哀,实则不然。把这看成是人的悲哀的人,真是太高看人了。爱因斯坦说过,"专家不过是喂熟了的狗"。虽然刻薄,却点中要害。人为肉 身,是不能超出自己,看到自己的命运的。不过是不断地在放在自己面前的两个肉包子里,选一个更大一点的而已。这是事实,这里没有尊严、没有信仰。

人类的情感则似乎十分奇妙,喜怒哀乐愁,这似乎游离于理智(在两个肉包子里做出选择的理智)之外。它是什么呢?动物也是有情感的。人蔑视动物的理智,却经 常同情动物的情感。因为一直以来,情感被看作称为人性的东西。理智是人与环境交互的过程中就需要的,而情感则是人与人交互的过程中需要的。所以说,情感是 社会的产物。社会性越强的生物,具有越丰富的情感。

我自己感觉,我是理智多于情感的人。没有为什么,生来如此。

My first blog was born today.

Filed under: uncategorized — visionos @ 8:09 pm

What’s blog? A place to share something with others. Here we don’t care who you are. We only care about thoughts, feeling and wonderful things in the world.

Welcome to my blog! And welcome myself to this blog world!

Blog at WordPress.com.