2008年10月25日星期六

国外典故这些你应该知道的

潘多拉的盒子:潘多拉是希腊神话中第一个尘世女子。普罗米修斯盗天火给人间后,主神宙斯为惩罚人类,命令神用黏土塑成一个年轻美貌、虚伪狡诈的姑娘,取名"潘多拉",意为"具有一切天赋的女人"。并给了她一个礼盒,然后将她许配给普罗米修斯的弟弟埃庇米修斯(意为 "后知")。埃庇米修斯不顾禁忌地接过礼盒,潘多拉趁机打开它,于是各种恶习、灾难和疾病立即从里面飞出来。盒子里只剩下唯一美好的东西:希望。但希望还没来得及飞出来,潘多拉就将盒子永远地关上了。"潘多拉的盒子"被用来比喻造成灾害的根源。

达摩克利斯剑:达摩克利斯是希腊神话中暴君迪奥尼修斯的宠臣,他常说帝王多福,以取悦帝王。有一次,迪奥尼修斯让他坐在帝王的宝座上,头顶上挂着一把仅用一根马鬃系着的利剑,以此告诉他,虽然身在宝座,利剑却随时可能掉下来,帝王并不多福,而是时刻存在着忧患。人们常用这一典故来比喻随时可能发生的潜在危机。

缪斯:缪斯是希腊神话中9位文艺和科学女神的通称。她们均为主神和记忆女神之女。她们以音乐和诗歌之神阿波罗为首领,分别掌管着历史、悲剧、喜剧、抒情诗、舞蹈、史诗、爱情诗、颂歌和天文。古希腊的诗人、歌手都向缪斯呼告,祈求灵感。后来,人们就常用"缪斯"来比喻文学、写作和灵感等。

斯芬克斯之谜:斯芬克斯是希腊神话中以隐谜害人的怪物,埃及最大的胡夫金字塔前的狮身人面怪兽就是他。他给俄狄浦斯出的问题是:什么东西早晨用四只脚走路,中午用两只脚走路,傍晚用三只脚走路?俄狄浦斯回答:是人。在生命的早晨,他是个孩子,用两条腿和两只手爬行;到了生命的中午,他变成壮年,只用两条腿走路;到了生命的傍晚,他年老体衰,必须借助拐杖走路,所以被称为三只脚。俄狄浦斯答对了。斯芬克斯羞愧坠崖而死。" 斯芬克斯之谜"常被用来比喻复杂、神秘、难以理解的问题。

皮格马利翁:皮格马利翁是希腊神话中的塞浦路斯国王。他憎恨女性,决定永不结婚。他用神奇的技艺雕刻了一座美丽的象牙女像,并爱上了她。他像对待自己的妻子那样抚爱她,装扮她,并向神乞求让她成为自己的妻子。爱神阿芙洛狄忒被他打动,赐予雕像生命,并让他们结为夫妻。" 皮格马利翁效应"后来被用在教育心理学上,也称"期待效应"或"罗森塔尔效应",比喻教师对学生的期待不同,对他们施加的方法不同,学生受到的影响也不一样。

犹大的亲吻:犹大是《圣经》中耶稣基督的亲信子弟12门徒之一。耶稣传布新道虽然受到了百姓的拥护,却引起犹太教长老司祭们的仇恨。他们用30个银币收买了犹大,要他帮助辨认出耶稣。他们到客马尼园抓耶稣时,犹大假装请安,拥抱和亲吻耶稣。耶稣随即被捕,后被钉死在十字架上。人们用"犹大的亲吻"比喻可耻的叛卖行为。

诺亚方舟:出自《圣经》。上帝对人类所犯下的罪孽非常忧伤,决定用洪水消灭人类。诺亚是个正直的人,上帝吩咐他造船避灾。经过40个昼夜的洪水,除诺亚一家和部分动物外,其他生物都被洪水吞没。后被用来比喻灾难中的避难所或救星。

伊甸园:出自《圣经》。上帝在东方的一片富饶的平原上开辟了一个园子,里面有果树和各种飞禽走兽。上帝让亚当看守园子。为排解他的寂寞,上帝从亚当的身上取出一根肋骨,造成一个女人――夏娃来陪伴他。他们过着无忧无虑的日子。人们用伊甸园比喻人间的乐园。

禁果:出自《圣经》。亚当和夏娃住在伊甸园中,上帝允许他们食用园中的果实,唯独"知善恶树"上的果实不能吃。狡猾的蛇引诱他们吃了禁果,从此他们懂得了善恶,辨别出真假,而且产生了羞耻之心。上帝因此将他们逐出伊甸园。禁果比喻被禁止得到而又渴望得到的东西。

多米诺骨牌:是一种西洋游戏,将许多长方形的骨牌竖立排列成行,轻轻推倒第1张牌时,其余骨牌将依次纷纷倒下。用于比喻时,"多米诺骨牌效应"常指一系列的连锁反应,即"牵一发而动全身"。

象牙塔:出自19世纪法国诗人、文艺批评家圣佩韦・查理・奥古斯丁的书函《致维尔曼》。奥古斯丁批评同时代的法国作家维尼作品中的悲观消极情绪,主张作家从庸俗的资产阶级现实中超脱出来,进入一种主观幻想的艺术天地――象牙之塔。"象牙塔"被用来比喻与世隔绝的梦幻境地。

滑铁卢:1815年,在比利时的滑铁卢,拿破仑率领法军与英国、普鲁士联军展开激战,法军惨败。随后,拿破仑以退位结束了其政治生涯。"滑铁卢"被用来比喻惨痛的失败。

鳄鱼的眼泪:西方传说,鳄鱼捕到猎物时,一边贪婪地吞噬,一边假惺惺地流泪。喻指虚假的眼泪,伪装的同情。又被引申为一面伤害别人,一面装出悲天悯人的阴险狡诈之徒。

山姆大叔:是美国的绰号,产生于1812年美英战争时期。纽约州一位诚实能干的肉类包装商被人们亲切地称为"山姆大叔 "。他担任纽约州和新泽西州的军需检验员,负责在供应军队的牛肉桶和酒桶上打戳。人们发现该厂的牛肉桶上都盖有E.A―U.S.标记。本来,E.A是一个军火承包商的名字,U.S是美国的缩写。碰巧山姆大叔(UncleSam)的缩写与美国的缩写(U.S.)相同,人们就管美国叫"山姆大叔"。美国人把"山姆大叔"诚实可靠、吃苦耐劳以及爱国主义精神视为自己民族的骄傲和共有的品质。1961年,美国国会正式承认"山姆大叔"为美国的民族象征。

opera设置

1.如何取消地址栏自动完成
opera:config
#Auto Dropdown
不勾选此选项即可;
2. 增加快速拨号个数
修改profile下的speeddial.ini文件,在末尾增加:
[Size]
Rows=4  
Columns=4

Rows和Columns个数根据自己需要填写;

2008年10月24日星期五

(转)不可以空腹吃的食品

饥肠辘辘,急于填饱肚子对健康是非常有害的,以下例举几种食物,不宜空腹吃用,以避免健康受到不必要的伤害。

柿子、西红柿

含有较多的果胶、单宁酸,上述物质与胃酸发生化学反应生成难以溶解的凝胶块,易形成胃结石。空腹吃柿子,大量的柿胶酚和红鞣质收敛剂与胃酸凝结成硬块,形成"柿石"。容易引起恶心、呕吐、胃溃疡,甚至胃穿孔等。柿子在饭后吃就不易形成"柿石"。

香蕉

香蕉中有较多的镁元素,镁是影响心脏功能的敏感元素,对心血管产生抑制作用。空腹吃香蕉会使人体中的镁骤然升高而破坏人体血液中的镁钙平衡,对心血管产生抑制作用,不利于身体健康。

山楂、橘子

含有大量的有机酸、果酸、山楂酸、枸橼酸等,空腹食用,会使胃酸猛增,对胃黏膜造成不良刺激,使胃发胀满、泛酸,若在空腹时食用会增强饥饿感并加重原有的胃痛。

牛奶、豆浆

这两种食物中含有大量的蛋白质,空腹饮用,蛋白质将"被迫"转化为热能消耗掉,起不到营养滋补作用。最好的饮用方式是与含面粉的食品同食,或餐后两小时再喝,或睡前喝均可,既有滋补保健、促进消化作用,又有排气通便作用。

糖是一种极易消化吸收的食品,空腹吃糖太多会使血液中的血糖突然增高,人体短时间内不能分泌足够的胰岛素来维持血糖的正常值,使血液中的血糖骤然升高容易导致眼疾。而且糖属酸性食品,空腹吃糖还会破坏机体内的酸碱平衡和各种微生物的平衡,对健康不利。

白薯

白薯中含有单宁和胶质,如果空腹吃,会刺激胃壁分泌更多胃酸,引起烧心等不适感。

冷饮

空腹时大量吃各种冷冻食品,会刺激胃肠发生挛缩,久之将导致各种酶促化学反应失调,诱发肠胃疾病。也会导致内脏器官功能受到损伤。女性月经期间还会使月经发生紊乱。

空腹饮酒容易刺激胃黏膜,引起胃炎和胃溃疡等多种病变。人体会很容易出现低血糖,进而头晕、出冷汗、心悸,严重者导致低血糖昏迷甚至死亡。

大蒜

大蒜含有辛辣的蒜素,空腹吃蒜,会对胃黏膜、肠壁造成刺激,引起胃痉挛,影响胃肠消化功能。

空腹饮茶会稀释胃液,降低消化功能,还会引起"茶醉",表现为心慌、头晕、四肢无力、胃肠不适、腹中饥饿等。

黑枣

黑枣含有大量果胶和鞣酸,这些成分与胃酸结合,同样会在胃内结成硬块。

维生素

维生素虽然不是食物,不过,如果在空腹时吃,会在人体还来不及吸收利用之前即从粪便中排出。如维生素A等脂溶性维生素,溶于脂肪中才能被胃肠黏膜吸收,应宜饭后吃用,才能够较完全地被人体吸收。,

菠萝

富含强酵素的菠萝,空腹吃会伤胃,其营养成分,最好在吃完饭后食用,才能更好地被吸收。

2008年10月23日星期四

刚才有客户投诉微软XP黑屏

用户:你好,请问这里是微软吗?
微软:是的,请问您有什么事吗?
用户:前几天看到你们发布公告,不是说好了要黑屏的吗?我都等一天了,怎么还不黑啊。。。。
微软:#%$^&@
用户:你们到底黑不黑了?
微软:…….
用户:说啊,你们黑不黑?
微软:黑… 盗版的才黑,你是盗版吗?
用户:是啊,100%盗版,绝对盗版.
微软:那不应该啊,对了,你打开自动更新了吗?
用户:打开了啊,早早的就打开了,就等着看黑屏呢!
微软;##$%^&%$#@$%…
用户:怎么了?不需要打开啊?
微软:需要,需要!
用户:那咋还不黑呢?
微软:你的自动更新有提示你下载补丁吗?
用户:这倒没有,我等老半天了,最后等不了了,自己去你们网站上下了一个,结果还是不黑,你说这玩意整的!
微软:….
微软:对不起,先生,我们暂时无法解决你的问题,呆会找技术人员跟你联系,谢谢!

挂机…………

刚才我电脑黑屏了

今天我的黑屏了
仔细一查,是显示器线松了
后来我还发现了,别人的盗版的都一小时黑一次屏,然后大家就能休息一下眼睛,活动活动身体,我感觉微软的设计真的非常人性化,所以我就把自己用的正版卸载了,换盗版的了
太人性化了
嘿 您还真别说 自从用上盗版之后 腰也不酸了 腿也不疼了 走路也有劲了 身体倍棒 吃嘛嘛香 微软 精心呵护您的身体

电脑用户保持眼睛湿润

转贴自http://www.uho.com.tw/hotnews.asp?aid=4377

信息科技时代来临,计算机使用的普及,不少长期在计算机前工作的朋友常常会觉得眼睛干涩、视力模糊,这其实很可能就是干眼症的早期表现。提醒各位,对这种状况不可掉以轻心。

根据美国全国职业保健与安全研究所的调查显示,每天在计算机前工作3小时以上的人之中,有90%的人眼睛有问题,表现症状是:眼睛干涩、头痛、烦躁、疲劳、注意力难以集中等,这种计算机视力综合症就是典型的干眼症。日本眼科医学会的调查结果也显示,每3名长期面对计算机屏幕的工作人员中,就有1名患有干眼症。因此,在计算机前工作的人需要特别注意保护眼睛。

诺贝尔眼科医师 张朝凯表示泪液主要有三大功能:一是湿润眼球;二是保持眼球的洁净;三是与眼屈光有关。如果泪液分泌太少或者蒸发过多,角膜表面和结膜表面得不到足够的滋润,看东西时,就会出现视物不清、眼睛酸涩等状况。而眨眼是一种保护性的神经反射作用,使泪水均匀地涂在角膜和结膜表面,以保持其润湿。正常人每分钟眨眼约为1020次,倘若长时间凝视计算机屏幕,眨眼次数常减少至每分钟45次,眼睛便会感到干涩。

防治干眼症,最重要还是让眼睛充分获得休息。若是无法避免与计算机为伍,我建议计算机屏幕上显示的亮度应为周围光线的3倍左右,屏幕的上端稍微低于视线10~15度,眼睛与计算机屏幕距离要保持在30cm以上;在计算机前每工作1个小时,就应该闭目休息10分钟,并用手按摩放松眼部周围的肌肉,或者眺望远处的景物等;此外,也可使用一些人工泪液来滋润眼睛,或刻意增加眨眼的次数,在饮食方面,可多吃富含维生素A的食物,例如胡萝卜和动物肝脏等。

别漠视干眼症,往往一开始只是感到眼睛干燥和酸涩,眼睛尚处于功能性损伤的阶段,但是如果这时还不注意保护眼睛,持续让你的眼睛长期处于干燥的状态,则可能引起角膜上皮细胞的脱落,造成器质性的损伤,当症状进一步恶化,则可能严重影响视力。最后还是要再次叮咛你,注意生活饮食规律正常,避免熬夜,才是眼睛保健根本之道。

(转)如何加速for loop? (C/C++)

Introduction
原题如下
有一个for循环,从0加到100,可是我觉得它不够快,要怎样才能让她更快呢?(不可以用数学公式)

for(i = 0; i <= 100; i++)
s = s + i;


我能想到的解法
1.调compiler参数,vc++和gcc都有-o可以调,可以optimize for speed,是最懒的方式。

2.善用多核心:

/*
(C) OOMusou 2008 http://oomusou.cnblogs.com

Filename : parallel_for_100.c
Compiler : Visual C++ 8.0
Description : Demo how to parallel sum 0 to 100
Release : 03/14/2008 1.0
*/
#include <stdio.h>
#include "omp.h"

int main() {
int i;
int s = 0;

printf("Number of core : %d\n", omp_get_num_procs());
printf("Number of threads : %d\n", omp_get_num_threads());

#pragma omp parallel for
for(i = 0; i <= 100; ++i) {
printf("thread %d : %d\n", omp_get_thread_num(), s = s + i);
}
printf("%d\n", s);
}

行结果

mber of core : 2
mber of threads : 1
read 0 : 0
read 1 : 51
read 0 : 52
read 0 : 106
read 1 : 104
read 0 : 109
read 1 : 162
read 0 : 166
read 1 : 220
read 0 : 225
read 1 : 280
read 0 : 286
read 1 : 342
read 0 : 349
read 1 : 406
read 0 : 414
read 1 : 472
read 0 : 481
read 1 : 540
read 0 : 550
read 1 : 610
read 0 : 621
read 1 : 682
read 0 : 694
read 1 : 756
read 0 : 769
read 1 : 832
read 0 : 846
read 1 : 910
read 0 : 925
read 1 : 990
read 0 : 1006
read 1 : 1072
read 0 : 1089
read 1 : 1156
read 0 : 1174
read 1 : 1242
read 0 : 1261
read 1 : 1330
read 0 : 1350
read 1 : 1420
read 0 : 1441
read 1 : 1512
read 0 : 1534
read 1 : 1606
read 0 : 1629
read 1 : 1702
read 0 : 1726
read 1 : 1800
read 0 : 1825
read 1 : 1900
read 0 : 1926
read 1 : 2002
read 0 : 2029
read 1 : 2106
read 0 : 2134
read 1 : 2212
read 0 : 2241
read 1 : 2320
read 0 : 2350
read 1 : 2430
read 0 : 2461
read 1 : 2542
read 0 : 2574
read 1 : 2656
read 0 : 2689
read 1 : 2772
read 0 : 2806
read 1 : 2890
read 0 : 2925
read 1 : 3010
read 0 : 3046
read 1 : 3132
read 0 : 3169
read 1 : 3256
read 0 : 3294
read 1 : 3382
read 0 : 3421
read 1 : 3510
read 0 : 3550
read 1 : 3640
read 0 : 3681
read 1 : 3772
read 0 : 3814
read 1 : 3906
read 0 : 3949
read 1 : 4042
read 0 : 4086
read 1 : 4180
read 0 : 4225
read 1 : 4320
read 0 : 4366
read 1 : 4462
read 0 : 4509
read 1 : 4606
read 0 : 4654
read 1 : 4752
read 0 : 4801
read 1 : 4900
read 0 : 4950
read 1 : 5050
50

以上结果可以发现,thread 0由0开始跑,thread 1由51开始跑,但之后就随机分配到两个核心,所以充分利用两个核心来运算。

inline assembly:我asm忘了差不多了, 一时也写不出来XD

改用unsigned int,而不用int,这种写法经我测试可以快一倍速度,主要是int须动用到有号数运算,速度较慢,详细原理请参考(原创) 无号数及有号数的乘加运算电路设计 (初级) (IC Design) (Verilog) (Linux)

/*
(C) OOMusou 2007 http://oomusou.cnblogs.com

Filename : for_loop_original.c
Compiler : Visual C++ 8.0
Description : Demo how to optimize for loop
Release : 01/05/2008 1.0
*/

#include <stdio.h>

int foo(int n) {
unsigned int i, s = 0;
for(i = 0; i <= n; i++)
s = s + i;

return s;
}

int main() {
int s;
s = foo(100000000000);
printf("%d\n", s);
}

使用Loop unwinding,请参考Wiki Loop unwinding

/*
(C) OOMusou 2007 http://oomusou.cnblogs.com

Filename : for_loop_unwiding.c
Compiler : Visual C++ 8.0
Description : Demo how to optimize for loop
Release : 01/11/2008 1.0
*/

#include <stdio.h>

int foo(int n) {
unsigned int i, s = 0;
for(i = 1; i <= n; i+=10) {
s += i;
s += i+1;
s += i+2;
s += i+3;
s += i+4;
s += i+5;
s += i+6;
s += i+7;
s += i+8;
s += i+9;
}

return s;
}

int main() {
int s;
s = foo(100);
printf("%d\n", s);
}

使用C++的Template Meta Programming方式,由于这是一种在compile time的运算,而不是在run time计算,所以在run time速度很快。

/*
(C) OOMusou 2007 http://oomusou.cnblogs.com

Filename : for_loop_tmp_cpp.cpp
Compiler : Visual C++ 8.0
Description : Demo how to optimize for loop by TMP
Release : 01/05/2008 1.0
*/

#include <iostream>

using namespace std;

template <unsigned n>
struct foo {
enum { value = n + foo<n-1>::value };
};

template<>
struct foo<0> {
enum { value = 0 };
};

int main() {
cout << foo<100>::value << endl;
}

C++的template类似C的macro,是否可用c来达成呢?我试着用以下的C,但无法compile成功,主要是C并不支持recursive macro,所以无福消受。

1#include <stdio.h>
2#define foo(x) ((x)?((x)+foo(x-1)):(0))
3
4int main() {
5 int s = foo(100);
6 printf("%d\n", s);
7}

7.使用硬件加速编译器;