Jennifer Lin’s Weblog

July 13, 2008

index and constraint

Filed under: scripts — jennyca @ 10:40 pm

How can I check if I have the right indexes for the foreign key constraints on a child table ?

Since any index always add some space and resource overhead, it is probably unwise to blindly index every foreign key. But, if there are legitimate locking or query performance benefits to be made, the following script authored by Tom Kyte gives a list of foreign keys, their columns and a flag indicating whether the appropriate index exists.

column columns format a20 word_wrapped
column table_name format a30 word_wrapped

select decode( b.table_name, NULL, '****', 'ok' ) Status,
	   a.table_name, a.columns, b.columns
from
( select substr(a.table_name,1,30) table_name,
		 substr(a.constraint_name,1,30) constraint_name,
	     max(decode(position, 1,     substr(column_name,1,30),NULL)) ||
	     max(decode(position, 2,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(position, 3,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(position, 4,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(position, 5,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(position, 6,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(position, 7,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(position, 8,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(position, 9,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(position,10,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(position,11,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(position,12,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(position,13,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(position,14,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(position,15,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(position,16,', '||substr(column_name,1,30),NULL)) columns
    from user_cons_columns a, user_constraints b
   where a.constraint_name = b.constraint_name
     and b.constraint_type = 'R'
   group by substr(a.table_name,1,30), substr(a.constraint_name,1,30) ) a,
( select substr(table_name,1,30) table_name, substr(index_name,1,30) index_name,
	     max(decode(column_position, 1,     substr(column_name,1,30),NULL)) ||
	     max(decode(column_position, 2,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(column_position, 3,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(column_position, 4,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(column_position, 5,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(column_position, 6,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(column_position, 7,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(column_position, 8,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(column_position, 9,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(column_position,10,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(column_position,11,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(column_position,12,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(column_position,13,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(column_position,14,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(column_position,15,', '||substr(column_name,1,30),NULL)) ||
	     max(decode(column_position,16,', '||substr(column_name,1,30),NULL)) columns
    from user_ind_columns
   group by substr(table_name,1,30), substr(index_name,1,30) ) b
where a.table_name = b.table_name (+)
  and b.columns (+) like a.columns || '%'
/

http://www.jlcomp.demon.co.uk/faq/fk_ind.html

How can I identify which index represents which primary or unique key constraint ?

The connection between constraints and the indexes which are used to check these constraints for the current user can be described by this query:

        select  --+ rule
            o.owner as index_owner
            , o.object_name as index_name
            , n.name as constraint_name
        from    sys.cdef$ c
            , dba_objects o
            , sys.con$ n
        where c.enabled = o.object_id
        and c.con# = n.con#
        and n.owner# = uid
        /
       SQL> select uid from dba_users where username like '%RXADMIN%';

If you leave away the condition and n.owner# = uid you get all the constraints. You may further limit this query to your constraint name by adding the condition and n.name = ‘your_constraint_name’.

Why can indexes and constraints be so different? In particular, you may use for example an index on columns (c, a, b) to enable a unique constraint on columns (a, b, c). Remember a constraint is a logical structure whereas an index is a physical one. So a unique or a primary constraint just describe the uniqueness. If (c, a, b) is unique then all other permutations are unique as well.

Further, these indexes may also be non-unique. You need this if you have a deferred constraint that is checked only at commit time. If you would insist on a unique index the attempt to insert duplicate values would fail before the commit although another command may have undone the duplicate entry.

http://www.jlcomp.demon.co.uk/faq/constraints_and_indexes.html

unique index vs unique constraint

Filed under: Oracle Dev — jennyca @ 10:20 pm

A constraint is to define a business rule for a column of a table.

Constraints to be referential integrity rules that govern the allowable contents of a column and
in the case of a primary key (PK) and unique key (UK) constraint, in conjunction with foreign keys
(FK), define the formal relationship between columns and rows in one table to another.

The difference between a unique index and a unique key/primary key constraint starts with the fact
that the constraint is a rule while the index is a database object that is used to provide improved
performance in the retrieval of rows from a table. It is a physical object that takes space and is
created with the DDL command: create index or as part of a create table with primary key or unique
key constraints or an alter table command that adds these constraints.

Constraint types

Not Null - Column value must be present.
Unique Key - Column(s) value(s) must be unique in table or null.
Primary Key - Unique key + Not Null which equates to every column in the key must have a value and
this value is unique so the primary key uniquely identifies each and every row in the table.
Foreign Key - Restricts values in a table column to being a value found in the primary key or unique
key Constraint on the referenced table (parent/child relationship).
Check - Tests the column value against an expression (rule).

Technically it would be possible for Oracle, to support primary key and unique key constraints
without using an index at all. In the case of a unique key or primary key constraint Oracle could
perform a full table scan to check for the presence of a key value before performing the insert
but the performance cost of doing this for anything other than a very small table would be excessive
probably rendering Oracle useless.

Prior to Oracle 8 if you defined a primary key or a unique key constraint the Oracle RDBMS would
create a unique index to support enforcement of the constraint. If an index already existed on the
constrained columns Oracle would use it rather than define another index on the same columns.

Starting with Oracle version 8 Oracle has the ability to enforce primary key and unique key constraints
using non-unique indexes. The use of non-unique indexes supports deferring enforcement of the constraint
until transaction commit time if the constraint is defined at creation time as deferrable. Also starting
with version 8 Oracle has the ability to place constraints on tables where the existing data does not
meet the requirements imposed by the constraint through use of a novalidate option.

The practical difference between using a unique index to support data integrity and a unique key or
primary key on the same columns since Oracle will build an index to support the constraint if you do not
is that you can define foreign key constraints when the primary key or unique key constraint exist.
Also in the case of a primary key constraint Oracle will convert the columns in the constraint to be
not null constrained when it is added to meet the primary key requirement to uniquely identify each and
every row in the table.

There is no such restriction on a unique index. The primary key and unique key constraints along with
foreign key constraints that reference them also provide a form of documentation on the relationships
between objects.

The Oracle RDBMS Data Dictionary views All/DBA/USER_CONSTRAINTS and ALL/DBA/USER_CONS_COLUMNS may be used
to locate constraints on a table and the columns being constrained.

If you drop or disable a primary key or unique key constraint that is supported by a unique index the index
is dropped with the constraint. If a non-unique index is used to support the constraint the index is not
dropped with the constraint. This second condition is effective only with version 8 and higher.

Note: Unique key constraints allow the constrained column to be NULL. Nulls values are considered to be
valid and do not violate the constraint.

http://www.jlcomp.demon.co.uk/faq/uk_idx_con.html
http://askanantha.blogspot.com/2007/09/difference-between-unique-index-and.html

July 10, 2008

Learning shell script

Filed under: UNIX/LINUX — jennyca @ 1:22 am

http://man.ddvip.com/os/freebsd_book_chs/ch24.htm

在执行 Shell Script 时,程序会自动产生一些变量:

变量名称 说明
$? 表示上一个指令的离开状况,一般指令正常离开会传回 0。不正常离开则会传回 1、2 等数值。
$$ 这一个 shell 的 process ID number
$! 最后一个在背景执行的程序的 process number
$- 这个参数包含了传递给 shell 旗标 (flag)。
$1 代表第一个参数,$2 则为第二个参数,依此类推。而 $0 为这个 shell script 的档名。
$# 执行时,给这个 Shell Script 参数的个数
$* 包含所有输入的参数,$@ 即代表 $1, $2,….直到所有参数结束。$* 将所有参数无间隔的连在一起,存成一个单一的参数。也就是说 $* 代表了 “$1 $2 $3…”。
$@ 包含所有输入的参数,$@ 即代表 $1, $2,….直到所有参数结束。$@ 用将所有参数以空白为间隔,存在 $@ 中。也就是说 $@ 代表了 “$1″ “$2″ “$3″….。

http://man.ddvip.com/os/freebsd_book_chs/

July 6, 2008

省油小贴士

Filed under: Life — jennyca @ 7:02 pm

与其每天去看加油站令人心惊肉跳的数字,不如关心一下如何在不影响生活的前提下省油。汽车专家总结出不少省油小贴士,与读者分享。

1、确保轮胎气压正确。不够气或是气太多,都会增加耗油量,因此应该定时检查轮胎气压。
2、不要随意更换轮胎的大小。选择更宽的轮胎或许让你的车看来更有”跑车味”,但轮胎越宽,车轮阻力越大。

3、定期检查你的驾驶盘和轮胎是否调准。车子旧了,轮胎和驾驶盘往往会失准,这也会耗油。

4、用黏度最低的滑机油。车主手册上应会说明汽车所能用的最低黏度滑机油。滑机油黏度越低,引擎就越“省力”,也就越省油。

5、保养引擎,有问题立刻修好它。因为不论问题大小,它们都会减低引擎的效率,浪费汽油。

6、保养车身。车身出现凹陷就会增加汽车行驶时所遇到的气流阻力。

7、不要“热身”过度。热车时间不可过长,车主可以先让车子慢慢行驶一两公里来达到热身的效果。

8、汽车没动时,不要开动引擎。如果你需要在车上等一段时间,把引擎熄掉。

9、不要猛踩油门加速,这只会大大增加耗油量,但省不了太多时间。

10、不要超速。对一般车子而言,80公里的时速最省油,每增加1公里的时速,就使耗油量增加0.5%。

11、清理你的车后行李厢。多余的东西,只会增加汽车的负担,也就是增加你口袋的负担。

12、先计划好路程再上路,少走冤枉路。

RMAN-20202

Filed under: RMAN error — jennyca @ 1:37 pm

Symptoms

RMAN convert returns error:
Starting backup at 07-MAR-06
using target database controlfile instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=521 devtype=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 03/07/2006 11:00:38
RMAN-20202: tablespace not found in the recovery catalog
RMAN-06019: could not translate tablespace name “test”

Cause

Tablespace name is not being matched within the database. Name must be entered in uppercase
within single quotes.

Error clearly shows the tablespace is not found.

Solution

To implement the solution, please execute the following steps:

Rather than using:

convert tablespace ‘test’ to platform=’……………….

Use:

convert tablespace ‘TEST’ to platform=’……………….

June 20, 2008

人生的主要事业

Filed under: Life — jennyca @ 12:14 am

转载自: JeromeXie.com 心智网

什么是你人生的主要事业?有人把工作当作自己的主要事业,有人把玩乐当作主要事业,有人把经营小家庭当作主要事业,有人把获取金钱、财富当作主要事业,有人把谋取官职、向上爬当作主要的事业,有人把成为名人当作自己的主要事业……。

正如我们在前一篇《什么是心智?》的开头所指出,很少有人把心智成长当成其人生的主要事业。这是因为人们处于ego(见《什么是ego?》)本能的自我保护心态,很少愿意承认自我存在的心智问题,很少能认清正是各种心智的问题阻碍了人生其他事业的发展,很少能看清自我的其他方面的发展在有局限心智框架中难以实现超越和突破。

正如爱因斯坦所说:“人不可能在创造了问题的思想层面来解决这些问题。”也就是说,如果你的人生出现了各种问题,其根源是思想的问题,是心智的问题;要解决问题,必须突破现有心智级别的桎梏,跳出现有思想的框框,从心智成长的角度,来彻底解决各种人生问题。

人们往往习惯把破裂的家庭关系、工作事业的不如意、情绪的困扰和折磨等归咎于运气、归咎于他人、归咎于环境、归咎于外部的事件,很少愿意到自己的心 灵深处挖掘其根源。人们也往往习惯于取得少许的外部成功就沾沾自喜,高估了自我的能力和智慧,让ego在祝贺和阿夷奉承的干杯声中膨胀爆裂,所谓“祸兮福 所倚,福兮祸所伏”,为失败埋下了伏笔。

把外部的追求当作自我的追求是人生最大的误区和迷途。不是我们不应该追求外部的成功和享受,只是这些成功和享受其生命力非常有限,也非常地脆弱和短命,很少能给我们带来真正持久的幸福。

智慧的先人很早就通过宗教的教义、哲学的思辨、艺术的表达告诉我们:心智成长才是人生的主要事业。如孔子的心灵感言:“吾十有五而志于学,三十而 立,四十而不惑,五十而知天命,六十而耳顺,七十而从心所欲不逾矩。”如老子称“道”为“天地之始、万物之母、众妙之门。”心智成长是我们达到“从心所欲 不逾矩”的“众妙之门”,是通往心灵自由和持久幸福的必由之路。

我曾把追求外部的成功和享受当作自己的主要事业:刻苦学习参加高考,毕业工作一段时间后又努力考取研究生,然后在工作单位努力工作获得提拔,又与朋 友一起创业为了实现心中的梦想,后又移居国外寻找乐土,找到工作以维持生计,然后又回到国内进入国际大公司成为海归经理,最后又回到加拿大……。每一个目 标似乎都能达到,而每一个目标的达到都不能带来所期望的幸福和满足,却往往带来更多的烦恼和痛苦。

经过不断探索、体验、试验、思考、学习,我认识到人生主要的问题是心智问题,是内心的冲突所导致。

外部冲突、失败、挫折是心灵内部冲突的反映。

内部冲突也许是因为小时候家庭环境的产物,也许是ego的冲突本性。通过追求心智成长,我们能从根本解决导致不断失败和痛苦的主要根源。这是我人生 经历得出的结论。这个结论也不断地得到自我和外部的证实:改善的家庭关系、稳定平和的心境、健康舒适的生理状况、释放的创造力和灵感、增强的自信和幽默 感、重拾对生活的热忱……。我体会到了心智成长对释放人生潜力的巨大价值,这成为我创办心智网的初衷:与大家分享心智成长过程中的体验、喜悦和困惑,提供 一个交互工具成为大家互相学习、共同成长的交流平台,成为心智成长对人生价值的历史见证。

心智成长的目标

心智成长作为人生的主要事业,是要提升我们的意识级别,取得内部的成功。这是取得持久外部成功和幸福人生的最有效的途径。

心智成长作为人生的主要事业,其主要目标是是提升自我的意识级别,首先取得内部成功。

解决内心冲突

心智成长的首要任务就是解决内心的冲突,解决心智上的各种问题,达到内外一致的和谐境地。

前面提到:人的外部的冲突是其内部冲突的反射。当你与配偶发生争吵,与子女产生隔阂,与同事产生矛盾,与陌生人发生争执时,仔细反省一下,都能发现 自我内心冲突的根源。也许你对当前的婚姻已感到厌倦,或对子女的要求过高,对同事升迁比你快感到焦虑,或者心情烦躁时与路人发生了身体碰撞。无论何种原因 发生了外部冲突,都应仔细审视一下自我ego的捣乱和恶作剧(参见《ego的行为表现》和《ego的情绪表现》)。

随着外部冲突的加剧,又反过来强化激化了内心的冲突。越是与配偶争吵,对婚姻的失望就越深;越是斥责子女,他们就越是反叛和异端;越是抵触与同事的合作,事业就越是停滞不前;越是与路人争吵,你的心情就越烦躁。外部冲突是紧张焦虑等负面情绪和一些精神疾病的主要原因之一。

不仅人与人之间的冲突是其内心冲突的反映,而且民族与民族的冲突,宗教与宗教的冲突,国家与国家的冲突,种族与种族的冲突,也都是集体内心冲突的反 射。战争、武力对抗又反过来加剧了人们内部心理冲突,在人的内心世界留下了沉重的阴影。纳粹德国对犹太人的屠杀,日本军队在中国和亚洲其他国家的暴行,中 东地区长期的动乱,美军在世界各地的侵略行径,都不断加深了冲突双方人们内心的冲突。

外部的冲突不能靠冲突本身来解决。通过心智成长解决内心的冲突才是是解决外部冲突的根本之路。

内心冲突也许是源自于集体无意识的遗传,也许产生于小时候家庭、环境、他人对你的伤害,也许是你所处的社会、文化对你的潜移默化的影响和传染,但内心冲突往往深植于潜意识当中不易察觉,对你的影响就如本能冲动一样难以抗拒和抵挡。

随着心智的成长,你的心理冲突逐步消除,外部冲突也会因此逐渐化解。随着外部冲突的化解,你的人生旅途的阻力也愈发减少,又反过来促进了心灵的和谐与成熟。这种良性循环是心智成长的快乐根源。

对自己承担责任

对自己承担完全的责任是心智成长的目标之一。Ego的任务是为失败、挫折寻找替罪羊、寻找外部的借口。把自己的失败、情绪困扰、精神萎靡归罪于他 人、归罪于外部环境和运气。于是怨天尤人、唉声叹气、责备抱怨、斥责辱骂成了家常便饭,成了发泄内心冲突的唯一渠道,心智却在ego的发泄中沉沦。

所有的ego都想从你这里获取些什么,但没有ego会为你的失败承担任何的责任。只有你的心智是你的命运的主人。你的心智是你的舞者,环境、社会、他人、机会、运气是你的舞蹈。因此你的心智必须对你的人生表演承担完全的责任。

逃避对自我的责任是心智不成熟的典型表现。这种逃避可能表现为抱怨责备,也可能表现为酗酒、性沉湎、暴饮暴食、赌瘾、网络沉溺,也可能表现为抑郁、萎靡、厌世、冷漠。逃避使人生成为混小时,成为对生命终结的等待。

承认心智必须对自我承担完全的责任,是心智成长的开端,是人生美丽风景的起点站。

超越恐惧与害怕

恐惧害怕是内心冲突的根源。因为害怕产生紧张,因为恐惧产生忧虑,因为畏惧产生自卑。

我们害怕饥饿,害怕无家可归,害怕与人交往,害怕权威,害怕竞争,害怕风险,害怕人生的不确定性,害怕爱人离我们而去,害怕衰老,害怕失去工作,害怕失去金钱,害怕受到伤害,害怕得病,害怕死亡,害怕死后进地狱……。

害怕是ego的人生动机。害怕迫使你努力工作、拼命挣钱;害怕催生竞争,触发战争;害怕也成为娱乐和艺术的一部分,如恐怖电影、惊险小说。

社会和组织就是利用人们的害怕心理来达到自己的目的。企业利用内部竞争和外部竞争来提高生产力,宗教组织利用人们对死后下地狱或来生还要受苦的害怕来进行精神控制,国家利用受侵略的悲痛历史来培养民族主义的情绪,媒体利用人们的害怕的心理吸引眼球……。

恐惧害怕成为动机的同时,也成为人生潜力发挥的最大制约因素。多少人生的体验是因为害怕而无法尝试呢?多少成功的果实因为害怕而无法摘取呢?多少幸福的姻缘因为害怕而无法圆满呢?多少来临的机会因为害怕而错失良机呢?

害怕的反义词不是勇敢、也不是无畏,而是“爱”。只有害怕和爱才是人生的最本质的动机。破釜沉舟的故事说明了把害怕发挥到极致就变成了勇敢;而母亲因为爱,能为自己的子女献出生命而在所不惜。

所以心智成长的旅程是选择害怕还是选择爱的旅程。是把害怕发展到极致,成为无所畏惧,还是超越害怕,让爱的阳光照亮人生的路途?这是你的选择,心智要么因极度害怕而硬化,要么因为爱而充盈。不作出选择,就会被害怕所吞噬。

开发精神和情绪强度

只有理解了害怕与爱的关系,才能开发出健康的情商。情绪的强度,是心智成熟度的主要标志。心智成长的目标,是要成为自我情绪的主人,摆脱情绪的奴驭。

情绪的困扰是人生的主要苦难和折磨之一,其危害性甚至超过了身体的痛苦。我们也常常因为情绪的冲动做出不理智的决策和导致令人后悔的语言行为,伤害他人,最终伤害自己。

社会和其他ego,正是利用我们的脆弱的情绪来达到操纵我们的目的。而健康坚强的情绪,能让我们积累无坚不摧的精神意志力,战胜任何困难险阻,达到人生的各种目标。情绪的强度,是领导者的最基本心理素质。

情绪的强度不是忍受情绪痛苦的能力。任何产生痛苦体验的负面情绪如悲痛、紧张、忧虑、嫉妒等都是意志的摧毁力量。情绪强度的开发是要学会如何控制自 己的思想来消除负面的情绪,培养积极的情绪,因为思想是情绪的根源,情绪是思想的能量释放。坚韧是强者的通行证,痛苦是弱者的墓志铭。

精神的强度就是我们的意志力。最高形式的领导力就是第五级领导力,而第五级领导力的核心就是谦逊和意志力。无论从事何种事业,都会遇到挫折和磨难。面对挫折和磨难,由于缺乏意志力而选择退出和逃避是失败的主要原因。

不能把慈爱、同情理解为软弱和缺乏情绪和精神的强度。孙中山的口号是博爱,毛泽东的口号是斗争,两者都是伟大的领袖,都具有超凡的精神力量。学会如何去爱是培养情绪和精神力量的心智课程。

提升对世界的认识

高度决定态度,态度决定行为,行为决定结果。这里的高度即是指思想的高度。所谓思想决定命运,心智决定人生。只有不断超越现有的意识级别,才能不断解决人生发展过程中遇到的各种问题实现人生的飞跃。

提升意识级别的重要一课是不断发展和更新自我的人生观、世界观和价值观。人生观、世界观和价值观是“意识”这台电脑的操作系统。要运行最新的三维电 脑游戏,你必须把你的电脑的操作系统从Windows 98升级到Windows XP。同样如果你想让你的人生游戏更为精彩绚烂,你必须升级你的世界观和人生观。

你是相信命运还是相信心智?你是责备环境还是检视自我?你认为人就是ego,还是有另一个真我的存在?你的人生目的是追求享乐还是提倡奉献?你如何 看待和解决关系中的冲突?你如何回答人生的终极问题:人生的意义究竟是什么?你的信仰和信念系统决定了你的表演舞台,决定了能运行什么样的人生软件:是沉 溺于性爱,还是快乐地创造;是不断地积累财富,还是寻找真正的幸福;是珍惜亲情、友情、爱情,还是喜新厌旧、花样翻新;是投身于实现心中梦想,还是在每月 薪水的计算中为房贷和车贷编制平衡负债表……。

认识世界的另一个重要课程是了解世界的运行原则。这些原则应成为我们思考时所参照的隐形标准。就好像你给自己在内心列两个清单:一个是什么是可以做的清单,另一个是什么不可以做的清单。有了这两个清单,你的人生中所面临的许许多多、大大小小的决策就变得非常容易和直观。

当面临利益的权衡,你是坚守诚信的原则,还是利用欺骗达到获取的目的?当与人发生冲突,你是从自身寻找原因,还是一味归罪他人?当生命面临威胁,你 是实现自我大逃亡,还是先掩护他人安全?当选择职业和事业,你是以赚钱多少为考虑,还是以职业本身对你的意义为考虑?每个人面对这些选择都有不同的内心标 杆,而这些标杆决定了人生的走向和结果。

一些原则具有永恒的价值,不随时间场合的变化而变化。比如诚实的原则。虽然现今商业社会中许多人把诚实看成弱智的表现,认为弱肉强食的环境需要的是 厚黑哲学,但你依然能从许多成功的商人身上看到诚实的秉性和价值。比如李嘉诚、牛根生等。你也可以观察到欺诈的致命后果,如安然公司、克林顿丑闻之类。

透过现象看本质,学习哪些原则具有真正的价值,并在心智人生中固化和坚守这些原则,培养史蒂芬·柯维博士所倡导的“以原则为中心”的人格,是心智成长的重要一课。

提升对自我的认识

比认识世界更重要的是认识自我。“认识你自己”,这是写在古希腊阿波罗神庙入门口流传千古的格言。如果连自己都不认识,何以认识世界和他人?如果不认识自己,自我就像没有根的浮萍,在充满欲望的池塘中漫无目的的飘荡,成为被他人利用的目标和牺牲品。

认识自我,就是要不断问你自己:

  • “我来到这个世界上负有什么样的使命?”
  • “什么样的人生事业是我心之所属?我的梦想是究竟是什么?什么是我真正的需要?”
  • “我有什么样的优势?我有哪些弱势?我如何能发挥优势,避免弱势?”
  • “在与别人的关系中,我起着什么样的作用?”
  • “什么是我人生的短期目标,什么是长期目标?我当前人生价值的优先级顺序是怎样的?”

这些不是容易回答的问题,你也可能发现你需要经常修订你对这些问题的答案。我常想如果我能早点开始问自己这些问题,人生会是完全的不同。

上帝不会无缘无故地把你送到人世间。每个人生来就负有重要的使命。但你的使命绝不会只是生存、赚钱、享乐、结婚、生子、然后老死或病死。总地来说你的人生目的是为了贡献人类的集体心智进化和心智成长,但你如何贡献人类的心智进化则是你的具体使命。

没有使命的人生是随波逐流、无头苍蝇的人生;是受ego本能驱动驭使的人生;是苍白无力,不值得留恋的人生。

发现自我的使命不是一件容易的事情。Ego总是把我们的使命往获取、积累身外之物的方向引领。殊不知这些只是完成使命的工具之一,不是使命的目的。 当毛泽东、周恩来、邓小平决定投身中国的解放事业,他们找到了他们的使命;当比尔盖茨和巴菲特决定死后贡献出他们的大部分财富积累,他们领悟了他们的人生 使命;当牛顿、爱因斯坦开始思索宇宙的奥秘,他们发现了他们的使命。

你不需要成为伟人,但你同样肩负心智使命。可能是在平凡的工作中发现意义,也可能是在抚养子女中明白爱的真谛,也可能是在克服生活磨难的历程中寻找真我。探索使命的过程就是心智成长的过程。

我们的外部事业如职业、创业常常会有天花板置顶的感觉,好像总是突破不了已取得的成绩和业绩,甚至开始走下坡路。一个很重要的原因可能就是因为你并 不喜爱你所从事的事业,或者你没有发挥你的优势,而是以弱势搏命运。如果你所从事的工作和事业不是你的心之所属,不是你的激情所在,那么你的日常工作成为 了熬时间、看手表,这样你在这个事业上的前途是可以预见的。同样,如果你所从事的事业和工作不是你的特长,而是你的缺憾,那么你的前景同样堪忧。成功者与 失败者的区别是,成功者懂得除了勤奋,灵感是成功的重要保障。

灵感让你每天早起,充满激情地投入工作,工作成为生活不可分割的一部分,工作和创造本身的快乐是你的最高奖赏,报酬已不是你的工作的目的。奇怪的是,在你不追求报酬的时候,外部报酬却源源不断地流向你。激情和灵感就像河流,你是顺水行舟的舵手。

你按照使命和梦想的指南为自己订立合理的短期目标和长期目标,也根据需要和局势灵活调整目标和优先级,人生的轻重缓急井然有序,有的放矢。紧张不再是生活的伴侣,焦虑离你远去。对你有帮助的人和其他资源不断在正确的时间和正确的场合出现,仿佛有一支无形的力量在推动着你。

这就是“认识自己”和“认识世界”的力量。

改善思维方式

思维决定行为,行为决定后果。我们最大的发展局限是无法突破我们心智成长过程中自我编织成的思维框框,这样我们只能在有限的时空内徘徊惆怅。心智是心灵通过意识散发出的智慧,所谓智慧就是正确的思维方式。

改善思维可以是简单地转换观念。比如我们惯常的思维是“失败是悲惨的”,但如果把关于失败的思维转换为“失败不过是心智成长过程中所必须经历的体 验。任何人生经历,无论成功失败,都是为心智成长而体验”,那么你的心智的力量就上了一个台阶,对未知风险的恐惧就减轻了许多,经受失败的能力也随之增 强。

当我们刚移民加拿大时,面临着许多生活上的困难,甚至生存上的困难。但我太太决心要考加拿大注册会计师,这对于英语很有困难的她是一个非常大的挑 战。但她就抱着一个观念:“时间反正是要过去的,如果现在不努力,五年后我还是现在的状况。”这个观念支撑着她克服了无数困难,五年后她成为了加拿大注册 会计师。是呀,“时间反正是要过去的”,这是一个多么有力量的思想,它会带给你所需要的耐心和毅力,克服意想不到的各种困难险阻,达到似乎不可能完成的目 标。

改善思维方式的另一个着眼点是跳出因果关系的逻辑思维套路。我们从小所受的教育是“因为A,所以B”。我们就是这样证明数学公理,物理等式。任何结 果都需要有原因,需要逻辑。可是现代量子物理发现在粒子级别因果关系不再存在,而是随机的概率关系。许多为人之所以能取得常人难以取得的成就就是因为他们 能跳出因果效应的思维框框,让直觉取代逻辑,让想象取代感知。爱因斯坦如果把思维局限于因果关系的逻辑推理,就发明不了相对论。比尔盖兹如果受限于感知的 理性推断,就无法做出“人人桌面一台电脑”的预言。直觉和想象,是天才与平庸的分水岭,是奇迹和伟业的心智源泉。

增强生命的能量

成功者之所以成功,往往是因为他们具有旁人所不具备的旺盛生命能量。他们的生命似乎运行在较高的频率波段,具有永不疲倦的精力和斗志。其实生命的能量并非是与生俱来的属性,而是心智能量的折射。

心智能量是身体能量、思想能量、心理能量和精神能量的平衡和聚焦,缺少其中的一种能量都会使人生的爆发力和持久力受到影响。但其中精神能量、心理能 量、思想的能量比身体的能量要具备大得多的当量。比如身患残疾的著名物理学家,《时间简史》的作者斯蒂芬·霍金,虽然他不能行走,听力和说话都有问题,但 其心智的力量和对人类的贡献是常人无法相比。

思想能量发源于我们的头脑,通过心理的情绪能量而对外发生作用。通过心智的开发和修炼,思想的能量能转化为精神的能量,其作用力更是不可限量。精神 的能量可以把人变成人肉炸弹,变成挡子弹的盾牌,也可以把人变成一呼百应的精神领袖。希特勒的精神力量给人类带来了巨大的灾害,而基督耶稣的精神力量改变 了西方社会的历史和传统。精神能量是生命能量的核反应堆。

积极的心理情绪能量是积极心态的表现,而积极的精神能量是真我本能的释放。

Ego的本能是性、生存、获取;而真我的本能是爱、创造、成长。

性、生存、获取的ego本能可以成为人生的动机,成为能量的来源,但其作用力和持续力是非常有限。而爱、创造、成长的真我本能一旦通过意识的作用而得到释放,生命蕴含的巨大潜力就能得以发挥,人生就不再是一日三餐的蹉跎和追求享乐的平庸。

思想能量、情绪能量、精神能量又反过来增强了身体的能量;良好的身体精神状况又促进了心智能量的进一步积蓄,生命从此进入了能量不断增强的良性循 环。工作和生活的日常活动从痛苦不堪的时间消磨变成了心旷神怡的高峰体验和“流”的体验。失败也不再是令人害怕的结局,而是学习成长过程中的实验课程。分 享和奉献成为人生的目的,“获得”成为了“给予”的自然结果。

这就是心智成长所要追求的目标。

June 15, 2008

Seven SUV Rollover Tips

Filed under: Life — jennyca @ 2:30 am

SUVs are notoriously known in the automobile industry for being quick to get into rollover accidents. While this is not a totally unfounded claim, it is also important to note that SUV rollovers typically don’t happen because of manufacturer defects or design flaws’ they happen because drivers are dangerous in a vehicle that is already prone to rollovers under certain conditions.

But how’s a driver to stay safe? SUV rollovers happen more commonly than rollovers in other vehicles because, essentially, SUVs are top heavy. There’s nothing you can really do to change that, short of not buying an SUV, but there are tips you can use to stay safe from SUV rollover no matter what kind of vehicle you drive. Take these tips to heart, they could very well save your life.

1. You can avoid SUV rollovers by choosing a smart SUV. Know what you’re buying before you buy it! Check out consumer reports, guides, and rollover ratings. In general, SUV rollovers are most likely to happen with vehicles that are tall and “skinny.” The best SUVs to buy when you’re hoping to prevent rollover are the ones that have a father distance between the tires in the back.

2. The second tip, which you cannot overlook, is to drive your SUV “like an SUV”. If you’re used to driving a car, or even a truck or van, it is tricky to jump into an SUV and take off. You can’t take curves as quickly in an SUV. If you try, rollover is likely. Before you speed down the highway, take a few days or weeks to learn the feel of your SUV’s steering, brakes, acceleration, and so on.

3. When dealing with an SUV, drive safely. This is, of course, the best tip to use when driving anything, but it is important to note that most SUV rollovers only happen when the SUV goes off of the main road.

If you’re chatting on your cell phone, doing your makeup in the car, or tending to yelling children in the backseat, it is much more likely that you’ll run off of the road, where you’ll hit a ditch, curb, bump, or obstacle and be thrown head over heels.

4. To go hand-in-hand with the last tip, drive according to the road conditions. SUV rollovers are more likely on rural roads, simply because potholes are more common. If you’re driving on a dirt road or road that rarely gets repaired after the winter, having an SUV can prevent you from sticking in the mud, but at the same time, a pothole can cause you to become off balance and, in effect cause an SUV rollover. Remember that driving for the road conditions also includes the weather. If it’s raining, snowing, or foggy, slow down.

5. Avoid panicking when steering. The common response to losing control is to over-steer in attempts to regain control. Don’t panic and fall into this trap! You’ll only make matters much worse. Instead, grab the wheel firmly and try to keep the vehicle going in a straight path, as you pump the brakes to slow. When you panic and steer sharply, it has the same effects of going around a turn too quickly, and SUV rollovers are common.

6. Keep your car in tip-top shape if you want to avoid SUV rollover. Most importantly, check your tire pressure. If one tire is running low on air, this will not only cause efficiency problems, but will also make your SUV be prone to rollover. Keep in mind also that ESC systems are now available to upgrade your SUV.

This kind of a system monitors your vehicle and your movements to prevent rollover. If you carry things in your SUV, make sure that these things are distributed evenly according to weight. Centrifugal force plays a huge roll in SUV rollovers, so check your loaded items often.

7. Wear your seatbelt. Okay, this isn’t exactly a way to prevent SUV rollovers, but it is a way to prevent death if your SUV should happen to rollover, for whatever reason. More fatalities occur because the driver or passenger was thrown completely or partially out of the SUV as it rolled, and reports show that buckling up can reduce your risk of death when in an SUV rollover by up to 75%.

Be safe, be smart, and if you do happen to become involved with an SUV rollover, which can happen to even the best drivers, contact a lawyer to learn about your legal rights.

http://www.automotive.com/new-cars/05/suvs/lexus/index.html

June 12, 2008

stty

Filed under: UNIX/LINUX — jennyca @ 8:32 pm
bash-3.00$ stty -a
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

Set backspace '<-' as DELETE key
stty erase ^h

Set Ctrl + backspace '<-' OR 'Delete' as DELETE key
stty erase ^?

Add this line into profile to make it permanent.

June 11, 2008

Bill Gate’s Quotes

Filed under: Life — jennyca @ 2:59 pm

Life is not fair, get used to it!

The world won’t care about your self esteem. The world will expect you to accomplish something BEFORE you feel good about yourself.

You will NOT make L30,000 a year right out of secondary school. You won’t be the vice-president of a company with a car phone until you earn both.

If you think your teacher is tough, wait till you get a boss.

Flipping burgers is not benatth your dignity. Your grandparents has a different word for burger flipping: they called it opportunity.

If you mess up, it’s not your parents’ fault, so don’t whine about your mistakes, learn from them.

Before you were born, your parents weren’t as boring as they are now. They got that way from paying your bills, cleaning your clothes and listening to you talk about how cool you thought you were. So before
you go out and save the rain forest try helping out at home.

Your school may have done away with winners and losers, but life HAS NOT. In some schools, they have abolished failing grades and they’ll give you as MANY TIMES as you want to get the right answer. This
doesn’t bear the slightest resemblance to ANYTHING in real life.

Life is not divided into terms. You don’t get summers off and very few employers are interested in helping you FIND YOURSELF. Do that on your own time.

Television is NOT real life. In real life people actually have to leave the coffee shop and go to jobs.

Be nice to nerds. Chances are you’ll end up working for one.

比尔·盖茨留给青年的十句警言

1.社会充满不公平现象。你先不要想去改造它,只能先适应它。 (因为你管不了它)

  2.世界不会在意你的自尊,人们看的只是你的成就。在你没有成就以前,切勿过分强调自尊。(因为你越强调自尊,越对你不利)

  3.你只是中学毕业,通常不会成为CEO,直到你把CEO职位拿到手为止。(直到此时,人们才不会介意你只是中学毕业)

  4.当你陷入人为困境时,不要抱怨,你只能默默地吸取教训。(你要悄悄地振作起来,重新奋起)

  5.你要懂得:在没有你之前,你的父母并不像现在这样“乏味”。你应该想到,这是他们为了抚养你所付出的巨大代价。(你永远要感恩和孝敬他们,才是硬道理)

  6.在学校里,你考第几已不是那么重要,但进入社会却不然。不管你去哪里,都要分等排名。(社会、公司要排名次,是常见的事,要鼓起勇气竞争才对)

  7.学校里有节假日,到公司打工则不然,你几乎不能休息,很少能轻松地过节假日。(否则你职业生涯中一起跑就落后了,甚至会让你永远落后)

  8.在学校,老师会帮助你学习,到公司却不会。如果你认为学校的老师要求你很严格,那是你还没有进入公司打工。因为,如果公司对你不严厉,你就要失业了。(你必须清醒地认识到:公司比学校更要严格要求自己)

  9.人们都喜欢看电视剧,但你不要看,那并不是你的生活。只要在公司工作,你是无暇看电视剧的。(奉劝你不要看,否则你走上看电视连续剧之路,而且看得津津有味,那你将失去成功的资格)

  10.永远不要在背后批评别人,尤其不能批评你的老板无知、刻薄和无能。(因为这样的心态,会使你走上坎坷艰难的成长之路)

职场少走弯路的十条忠告

Filed under: Life — jennyca @ 1:07 pm

一 买个闹钟,以便按时叫醒你。贪睡和不守时,都将成为你工作和事业上的绊脚石,任何时候都 一样。不仅要学会准时,更要学会提前。就如你坐车去某地,沿途的风景很美,你忍不住下车看一看,后来虽然你还是赶到了某地,却不是准时到达。“闹钟”只是 一种简单的标志和提示,真正灵活、实用的时间,掌握在每个人的心中。

二 如果你不喜欢现在的工作,要么辞职不干,要么就闭嘴不言。初出茅庐,往往眼高手低,心高气傲,大事做不了,小事不愿做。不要养成挑三拣四的习惯。不要雨天烦打伞,不带伞又怕淋雨,处处表现出不满的情绪。记住,不做则已,要做就要做好

三 每个人都有孤独的时候。要学会忍受孤独,这样才会成熟起来。年轻 人嘻嘻哈哈、打打闹闹惯了,到了一个陌生的环境,面对形形色色的人和事,一下子不知所措起来,有时连一个可以倾心说话的地方也没有。这时,千万别浮躁,学 会静心,学会忍受孤独。在孤独中思考,在思考中成熟,在成熟中升华。不要因为寂寞而乱了方寸,而去做无聊无益的事情,白白浪费了宝贵的时间。

四 走运时要做好倒霉的准备。有一天,一只狐狸走到一个葡萄园 外,看见里面水灵灵的葡萄垂涎欲滴。可是外面有栅栏挡着,无法进去。于是它一狠心绝食三日,减肥之后,终于钻进葡萄园内饱餐一顿。当它心满意足地想离开葡 萄园时,发觉自己吃得太饱,怎么也钻不出栅栏了。相信任何人都不愿做这样的狐狸。退路同样重要。饱带干粮,晴带雨伞,点滴积累,水到渠成。有的东西今天似 乎一文不值,但有朝一日也许就会身价百倍。

五 不要像玻璃那样脆弱。有的人眼睛总盯着自己,所以长不高看不远;总是喜欢怨天尤人,也使别人无比厌烦。没有苦中苦,哪来甜中甜?不要像玻璃那样脆弱,而应像水晶一样透明,太阳一样辉煌,腊梅一样坚强。既然睁开眼睛享受风的清凉,就不要埋怨风中细小的沙粒。

六 管住自己的嘴巴。不要谈论自己,更不要议论别人。谈论自己往往会 自大虚伪,在名不副实中失去自己。议论别人往往陷入鸡毛蒜皮的是非口舌中纠缠不清。每天下班后和你的那些同事朋友喝酒聊天可不是件好事,因为,这中间往往 会把议论同事、朋友当做话题。背后议论人总是不好的,尤其是议论别人的短处,这些会降低你的人格。

七 机会从不会“失掉”,你失掉了,自有别人会得到。不要凡事在 天,守株待兔,更不要寄希望于“机会”。机会只不过是相对于充分准备而又善于创造机会的人而言的。也许,你正为失去一个机会而懊悔、埋怨的时候,机会正被 你对面那个同样的“倒霉鬼”给抓住了。没有机会,就要创造机会,有了机会,就要巧妙地抓砖。

八 若电话老是不响,你该打出去。很多时候,电话会给你带来意想不到的收获,它不是花瓶,仅仅成为一种摆设。交了新朋友,别忘了老朋友,朋友多了路好走。交际的一大诀窍就是主动。好的人缘好的口碑,往往助你的事业更上一个台阶。

九 千万不要因为自己已经到了结婚年龄而草率结婚。想结婚,就要找一个能和你心心相萤相辅相携的伴侣。不要因为放纵和游戏而恋爱,不要因为恋爱而影响工作和事业,更不要因一桩草率而失败的婚姻而使人生受阻。感情用事往往会因小失大。

十 写出你一生要做的事情,把单子放在皮夹里,经常拿出来看。人生要有目标,要有计划,要有提醒,要有紧迫感。一个又一个小目标串起来,就成了你一生的大目标。生活富足了,环境改善了,不要忘了皮夹里那张看似薄薄的单子。

Next Page »

Blog at WordPress.com.