Sunday, November 30, 2008

挣扎中的福建

挣扎中的福建

现实篇 尴尬生存

福厦泉漳VS城市化
在国内东部沿海的各省份中,福建的人口只3400多万,不及广东、江苏的一半。在上个世纪八十年代,全国只有五个省区没有百万人口大城市,福建就是其中之一。可以说,中心城市规模小、实力弱是福建发展后劲不足的突出问题。

长期以来,福建因为多山,人口分布分散,未能形成大的都市群。福建三大中心城市福州、厦门和泉州的建成区的人口之和却不到福建人口的10%。而同样是多山的日本,70% 以上的人口却集中在东京、大阪和名古屋三大城市圈。按国际上流行的理论,区域最大的中心城市人口首位度应不低于区域人口的十分之一,即福建3400万人口,其唯一超百万人口的城市福州的城市人口应不低于340万,而事实上,福州只有150多万人。在福建,连厦门这样的著名城市,岛内市区人口还比不上四川、河南等内陆省一个不知名的地级,甚至县级市。于是,厦门GDP总量在全国19个副省级城市中,名列倒数第一。

由于福、厦、泉三地经济总量在伯仲之间,在福建形成了三个“弱中心”。谁做地区“龙头”上,长期三地互不相让,形不成合力,甚至相互不满:福州人认为,是厦门人拖了福建的后腿——厦门税收上缴中央,但经济总量却记在福建的名下,使福建在中央财政转移支付等诸优惠政策中失去颇多;泉州人埋怨福州人,为大不尊——作为省会城市连周边的宁德、南平都无法带动,已没有资格在经济发展中领导全省;而厦门人却认为福州人自已不行,又怕厦门抢了福州的风头,处处在为厦门人设限……如今的八闽经济群龙无首。

与国内成为珠三角、长三角龙头的广州、上海这些超大型都市比,福建不仅在都市人口规模不可同日而语,在城市化上也是小巫见大巫。从严格意义上讲,目前的福建,还只有福州、厦门两座“城市”,而且还只是“中小城市”。泉州在国内212个地级市中,GDP排在第三,晋江在国内近3000个县级行政区中GDP位居老六,算是一个有知名度的城市了,但城市化水平就一直无法如经济地位一样,上升到相应的高度,人们走在泉州街头总有些许身在县城的感觉。漳州的城市化,“水仙”还在“刺桐”后!至于福建的诸多“山区”地级市,有的,还不如其管辖下的县市。福鼎、福安就不会比地级市宁德差。

而高度城市化,不仅能扩大消费,反作用加速工业化进展,更是吸引高端人才的物质保障。用钱,泉州人可以花3亿元,使年广告收入5亿的CCTV-5,成了晋江产品发布台,让如李连杰、刘德华、赵微、周迅、王楠、孔令辉等,近百名中国最知名的影视体坛明星,甚至欧洲是“皇马”,为自己代言,而却无法使福建那“中国的院士之乡”,近100名的闽籍院士“荣归”故里,为家乡建设做尽心力。

福建如果不能加快充分都市,就无法比别人早日实现全面的现代化,福建目前的尴尬局面就不会在短时间内消除。

企业外逃VS空心化

如今在有着“世界工厂”称号的中国城市里,现代企业,特别是重点创税企业,几乎成了当地经济的命脉。然而,在今天的福建,许多企业外移大规模外移,却成了决策者们的心头之痛。大概在1995年起,福建大大小小的企业就有外移行动。尤其是近两年,许多在福建较为著名的民企,几乎是毫不例外地选择外迁。

2002年,笔者在位于闽南德化中国最大家用耐热瓷生产商“冠福”采访时,厂方告诉笔者,他们厂已在上海浦东机场旁买了一块地,决定把物流中心迁到上海。笔者了解到,2004年初,福建省最大的洁具生产企业,福州诚福陶瓷有限公司,也决定在江苏镇江设立分厂。

青山遮不住,毕竟东流去。是的,两家大型陶瓷企业的外移只是近几年福建企业外逃运动中的冰山一角。你看,福建业内老大的福耀、天香、龙工、浔兴、利嘉、运盛也迁往上海;实达、金源、泰禾则迁往北京;远东、金威甚至迁往香港……就连福州马尾开发区及至国内业界“天字一号”的企业――华映光电,也由于无法在马尾形成产业配套体系,只好到江苏吴江再投资8亿美元生产液晶显像管,与投资昆山的台商笔记本电脑厂家进行配套。听说,兴业银行也正准备将总部迁往上海,而新大陆也放言外移。

在福建的出走企业中,最多的当属民营经济最发达的泉州市,据介绍,到2002年底,仅泉州一市就有23家民营企业外迁,占全省在外投资民营企业总数的1/4。在“迁徙”当中,这些泉州企业大部分都选择在上海落户,如恒安集团、七匹狼集团、劲霸时装、爱都制衣等企业把研发中心、信息中心、企划中心、商务中心等核心部门从泉州迁往上海。

有数据表明,目前在省外投资兴业的福建人数量已达到250万人,其中在上海办企业的福建人达30万人,在北京注册的企业有5000多家,年产值逾500亿元。自1995年始,福建人在20多个省市区成立商会70多个,会员人数达到1.5万,居全国第一。有业内人士测算,日益汹涌的企业外逃潮,已使福建数千亿元民间资金流外流,资金外流已经大于吸收的外资,给福建的发展产生了消极的影响。

企业外移,加上内在投资的不足,已使福建经济彻头彻尾地的空了心。


原因篇 门里一条虫
偷渡经济,闽人到底是得还是失?

福建的“偷渡文化”是有历史渊源的。历史上的福建人几乎都是从河南等中原地区迁陡来的。西汉元始二年,福建全省的在籍人口约只有4万人。在宋代以前,福建人口迁移主要以北方人口迁入为趋势。也就是说,现在3400万的福建人中,大多数人已不是当时土著闽人的后代。他们的血管中博动的几乎是中原河洛先民们那飘泊基因。

可以说,如今的闽人就是中国的吉普赛人,十足的“漂一族”。有人说在欧洲的十人中国人当中,就有九个福建人。新闻中,中东巴以地区中国人遭恐怖袭击了,死者是福建人;英国海滩上十几个中国人被海水淹死了,一打听又是福建人……“闽”,门字里的一条虫。言外之意只有走出家门才能成龙。于是,福建人是宁愿闷死在甲板下的船舱里,也不愿留在家乡受穷。

其实,尽管近几年来,福建在反偷渡方面的打击力度不能说不强,但闽沿海居民偷渡出海、出国的事,就像一日三餐一样地寻常。就是文化大革命其间,“下海投敌”抓到了要杀头,但天性好迁居飘泊的福建人,还是敢冒这个险。过去,在霞浦沿海,有时一次就枪毙十几个“下海投敌”者的事,并不少见。在闽人心目中,偷渡出海几乎是一个很平常的事。这也难怪国家对此总是禁而不止了。

相对于闽南人来讲,改革开放以来,大多数福州人的出洋,就是选择偷渡。据悉,仅1993年,福州人偷渡到美国海岸后,被美官方捉到的就有30000余人,而顺利入美的人数就更多了,由是可见福建的偷渡规模之大。

“世界怕美国,美国怕长乐。”福建坊间流行着这句话,更完整的版本应该加上“英国怕连江,日本怕福清。” 多年偷渡史中,福州长乐人出国的目的地大多是美国;福清人则以东渡扶桑,登陆日本为主;而连江人则钟情英伦。这流行语说的是,某些在填出国登记表抄别人内容时,连别人名字都一同抄上,小学还没有毕业,在海外生存能力极低的福州地区乡下农民,在海外胡作非为,令当地居民人见人怕,成了当地的治安隐患的事。这也使得许多要正正当当出国的福建人,在签证时,反而被上述国家拒之国门外。

如今,走在连江的亭江、长乐的各乡镇,满眼一栋栋七八层楼的小洋房拔地而起的同时,就是四处撂荒的田地。在长乐乡下的小学里,许多父母都出国的留守小学生,由于孤单得只乘下钱,甚至吸起了毒品。而与福州城相去不远的亭江,留守少妇们寂寞难奈,则纷纷在福州的各大媒体上打“交友”广告……

有人将近几年长乐市的经济发展一厥不振,归罪于该市大量人员偷渡上。是的,相对于偷渡发达国家打工那来钱速度,在家乡创业是打不起当地人兴趣的了。福建,特别福州地区的偷渡经济,到底为福建带来了什么?孩子是未来,福建农村农田中起高楼的同时,是不是已失去未来?

实业才能兴邦,偷渡经济能撑起海峡西岸繁荣带?

交通史,一部福建的千年发展史?

福建,特别是泉州,最辉煌的日子当属宋元时代。当时,奥斯曼土耳其帝国兴起,中国通往西方的陆上丝绸之路中断。而从宋朝至元朝,福建人从波斯人手中夺得海上经贸控制权,使闽地成为海上丝瓷之路的新起点。此时的泉州港成就了“东方第一大港”,泉州市区人口也达20多万,为当时全国之最。

在整个大一统的元代,汉人、南人(原南宋地区人)中共取进士300余人,而福建一地就占了94人,高居全国之首。宋代起,福建沿海就成为中国最繁华、最先进的地区,且这种局势直接延至清初。

“自海禁严而福建贫”。福建后来的式微也与“交通”二字相关。明末的宁远大捷中,奴尔哈赤被明军中的福建士兵炮火所伤,郁郁而终。满清入关后,爱新觉罗福临亲征福建为奴尔哈赤报仇,不料被郑成功部队炮火击中,死于厦门。于是,满清实行主要针对福建的报复性“迁界”——“不许片帆下海”的政策。要福建从现在的霞浦到诏安一带的沿海居民距海内迁90里生活。据统计,福建沿海在“迁界”后,田园荒芜达31.337万顷,房屋等不动产全被焚毁破坏。曾以“泉舶”、“福船”鹤立鸡群、傲视群雄、领航世界的福建造船业、航海业彻底衰落了。“以海为田”的福建,社会经济经历了汉晋以来最大的一次倒退,一下子沦为中国经济相对落后的地区之一。

直到近代,中国被迫打开“闭关锁国”大门时,福建沿海再度成为中国先进地区。但是,随着日本加紧侵华步骤,特别是日本侵占台湾后,福建因离日区台湾最近,台湾海峡成了日本人的门前的河。那一时期由于交通不畅等原因,福建又开始放慢了发展的速度。当时,在福建的一些重要的设施被迫北迁西移:1930年飞机制造工程处就由福州迁往上海;抗战前内迁贵州桐梓等地的海军学校,战后也没有回归福州,改迁青岛,这此也对福建的经济社会产生了消极的影响。

1949年,国民党迁台后,就宣布封锁大陆沿海各港口。而实际上,以当时台湾有限的军事实力,长期受到封锁的只是台湾海峡西岸的福建一省,从而使这个昔日中国最富饶的省份,在1978年时,GDP在国内各省排名中,落到23位,人均工农业总产值竟然落后于西北的新疆、青海、宁夏、甘肃和陕西五省区中的任何一个。直到改革开放后,福建才恢复了自己本来的面目,再次走在了全国前列。然而,近几年,随着南边广东、东边上海的大发展,及福建自身在公路、铁路、港口等方面的严重滞后,千年来制约福建发展的交通问题凸现。福建再一次落后于沿海兄弟省份。

而从历史上看,哪个时期交通通畅,福建社会经济就发展繁荣;哪一时期交通受阻,福建社会经济就萎缩萧条。一部千年交通史,一部福建的发展史!
附件
超大附件

Saturday, November 29, 2008

java.io.bits

Thia class defines the static operations to convert a element at byte array to corresponding java basic type value and push a java basic type value into a specified position in the byte array.

There are some things you need to care about

1. the index of the array is from [0--n-1] just same as c/c++

2. the coding is using big endian byte order, that is, the content in lower address is more important.

3. This is a question mark.. as the following code sample:
static short getShort(byte[] b, int off) {
return (short) (((b[off + 1] & 0xFF) << 0) +
((b[off + 0]) << 8));
}
why it needs bit and with 0xFF.???..

4.bit operations <<, >> are sign shift
bit operations <<<, >>> are unsigned shift

Thursday, November 27, 2008

刘永行VS黄光裕:两位首富两种路径

刘永行VS黄光裕:两位首富两种路径


让人意外的是,两份榜单面世不到一 个月,黄光裕的命运也像他的财富一样,出现了剧烈的起伏。

赤手空拳来到中国打拼天下的英国小伙子胡润,似乎对同样富有闯劲和冒险精神的国美集团董事局主席黄光裕情有独钟。在他一手炮制的中国百富榜上,黄光裕三次被推上了首富宝座。而在2008年的榜单上,黄光裕的个人财富是430亿人民币。

而创刊于1917年的《福布斯》杂志则显得相对谨慎,把首富的宝座留给了一直稳健发展的东方希望集团董事长刘永行。在“2008福布斯中国富豪榜”上,刘永行的个人财富是204亿元人民币。

对比两份在一个月之内先后颁布的榜单,会发现对富豪们个人财富的评估结果有着巨大差异。比如同样是黄光裕,在“2008 福布斯中国富豪榜”上只有183.6亿元人民币,与胡润的百富榜的估算结果相差246.4亿元人民币之巨。而对刘永行的财富估算是少有的“英雄所见略同 ”,在“胡润2008年百富榜”上,他拥有250亿元人民币个人财富,与福布斯的估算相差不大。而与大部分富豪今年财富严重缩水不同,刘永行的财富比去年 的180.8亿元人民币有稳步增长。

让人意外的是,两份榜单面世不到一个月,黄光裕的命运也像他的财富一样,出现了剧烈的起伏。11月22日左右,网络上开 始出现黄光裕被抓的传闻。之后,央视的报道证实了这一消息。据说,此次起因是指对其兄黄俊钦控股的*ST金泰的股价进行操纵。2007年下半年,*ST金 泰连续拉了42个涨停板,被称为中国股市第一“妖股”。早在两年前,也曾一度传闻黄光裕涉嫌贿赂和挪用资金违法操作房地产而被调查。而因为受经济危机及相 关负面消息影响,国美电器的股价也同样巨幅跌落,比最高点跌去了3/4之多。

在黄首富坐上过山车的同时,刘首富却有闲庭信步的雅致。因为不是上市公司,刘永行不用遭受股市行情表上股价起伏的煎熬。虽然自己的能源产业也受到经济大环境的影响,但他家有余粮、心中不慌。

这个冬天,那些家无隔夜米的人纷纷找上门来,希望刘永行能出手相救那些陷入困境中的铝业和煤化工企业。即使是曾和他争夺 三门峡氧化铝项目控制权的行业老大——中国铝业——也刚刚宣布裁员一万人以度难关,而他旗下的包头、三门峡铝业子公司不但没有裁员,反而乘机在招人。对送 上门来的低价求购的能源企业,刘永行保持了警惕。虽然目前是扩张的大好时机,但他更愿意留下余粮准备应付可能持续多年的经济危机。

“昨日之因,今日之果;今日之因,明日之果。”佛教中讲究这样的因果循环。刘永行与黄光裕今天境况的差异,又是因为昨日两人在哪些方面的差异所导致的?


企业扩张:超前半步与大胆冒进

黄光裕和刘永行的企业发展最大的差别在于,一个大胆冒进,一个步步为营。

黄光裕财富增值的过程好似一辆急遽爬升的过山车。2001年12月,国美的总资产约为5亿元 人民币;在3年之后,5亿恰恰是黄光裕上百亿身价的零头;而在今天,黄光裕的身价又几乎翻了4倍还多。探寻黄光裕的财富之旅,我们会发现这个30多岁的潮 汕男人,是“想象力+野心+财技”的混合体。

2003年以前获利状况不很乐观的国美电器零售业务却实现了相当的经营规模,从而带来了巨大 的现金流,其中一部分资金通过国美系内的投资公司,以往来款的形式转移给了系内从事房地产的公司无偿使用;房地产业的高回报带来的收益又流回电器零售业, 为其不断扩张提供了资金支持。

之后,就是2004年的包装上市;2005年全国“跑马圈地”,一口气开了250多家门店;再接着就是对永乐、大中和三联商社等行业巨头的连续收购。与此同时,黄光裕旗下的房地产项目,也得到了强劲的资金注入。

黄光裕的“主业”——国美电器,似乎取得了不俗的成绩。正处于舆论暴风眼的国美电器,于11月24日下午发布了第三季度财务报告。报告显示,截至9月30日,上市公司前三季度实现营业收入364亿元人民币,同比增长20.0%;经营利润18.7亿元人民币。

但从目前看来,黄光裕收购的大中电器和三联商社,或者是一笔赔本买卖。以收购大中为例,国美 付出现金36.5亿,折算成市盈率高达18倍,而目前香港上市的国美电器市盈率仅为6倍左右,如果现在黄光裕将大中电器装入香港上市公司国美电器中,与其 收购价相比将净亏20多亿元。

而黄光裕的“地产借壳梦”也遭遇了失败。为收购中关村股份,黄光裕先后花了9.1亿元,但因宏观调控、紧缩货币政策对国内地产业务的巨大冲击,原计划将鹏润地产180亿元地产资产注入中关村的计划遭到挫折。

在黄光裕的投资组合里,还有去年与如今已经破产的国际大投行贝尔斯登联合组建5亿美元的零售业投资基金,以及与新加坡太平星集团成立的总额达8亿美元投资房地产业的私募基金。在当前低迷的市道下,两只基金没有什么大的动静。

冒进的黄光裕在资产估值高峰时期进行了大规模的投资,而突如其来的金融风暴所引发的经济危机,变成了对喜欢资本运作的富豪们的“大屠杀”。

相比之下,“福布斯版首富”刘永行,仿佛是小心谨慎的化身。他的东方希望虽然越做越大,还涉足了化工、金融等领域,但是农牧业一直是他的第一业务。

刘永行对上市也一直意兴阑珊。他解释说,一个是之前做饲料业一直不缺钱,所以无需融资,一个是过于宽松的资金容易让人的头脑膨胀,用钱紧一点最好。

也正是遵循“用自己的钱安心”的原则,刘永行此生最大的冒险之举——投资铝业等相关能源产业,前期投资20多亿全是累积的自有资金,才让他在2003年底对中国民营企业重工业化运动打击的过程中,逃离了灭顶之灾,避免了铁本集团戴国芳似的悲剧。



政商关系:退避三舍与亲密无间

中国现在的实际情况是,政府制定相关政策,但商人群体目前过于弱小,无法介入此过程,也很难影响决策过程,只有遵守执行的义务。冯仑告诫道,“听党的话、跟政府走,否则你的企业根本没办法发展。”

刘永行兄弟是中国民营企业家中“听话”的典范。他们每一步发展都配合着政府的政策节奏,看着 政府的脸色做事,从不钻政府政策的空子,让政府陷于被动,从而也让家族生意能避开政策调控的锋芒。比如1982年四兄弟打算到农村养鸡之前,特地找到当时 的县委书记询问,回乡创业“要不要得”?得到肯定的答复之后,又正儿八经地向单位打报告申请辞职,辞职报告直打到四川省副省长那里才有了确切的批 示;1992年刘氏兄弟计划成立私营企业集团,也特地向国家工商局打报告,直到国家工商局批准才成立了中国第一个私营企业集团——希望集团;1993年刘 氏四兄弟有了成立一家民营银行的想法,就与41位政协委员共同提案,建议政府批准成立一家主要由民营企业家投资、主要为民营企业服务的银行。直到3年以后 国务院才批准,刘氏兄弟才当上民生银行的主要股东……

刘永行的“官场哲学”在短期内影响了企业的发展速度和路径。因为“房地产需要大量的(内幕)交易,需要不断地吃饭喝酒送礼”,他最后放弃进入地产业。

但黄光裕兄弟从创业开始,便一直是踏着政策和法律的边缘迈步前行。比如早年黄光裕大哥黄俊钦便因为倒卖电器产品,被呼和浩特警方以投机倒把查扣。

在一片混沌之中,这些“孤胆英雄”式的企业家们在当时的很多“肆意妄为”之举,也有着其积极的意义:他们对当时法律和政策底线的试探和触犯,在客观上拓展了它们的边限及商业的空间。但危险有时也因此而来。

黄光裕两次重大的危机,都是由某些官员腐败行径暴露所引发。如2006年,黄光裕兄弟陷入13亿违规贷款的危机,起因便是因为中行北京分行原行长牛忠光案发;而这次的被调查事件,据传也是因为商务部官员郭京毅等案发,黄光裕可能涉及到国美整体上市时有行贿行为。



行事方式:稳健宽容与强硬霸气

刘永行说他不喜欢与人搞关系、搞资源,是“自己的性格造成的”。

刘永行最崇拜的人是台湾的王永庆。他觉得王永庆最值得称道的是,他做正事、为人很正派。“我们的目标是要做百年企业,所以,不能去做一些过分的事情。所以不要随大流,要独立地思考。”

与之相对,在很多媒体记者的印象中,黄光裕难以挥去自己的草莽气息。曾经有一段时间,关于黄光裕及其国美帝国太过于霸道 的报道屡见报端,类似于“教父”、“价格屠夫”之类的称号被加在了他的头上,甚至有的媒体开始指责国美是“黑社会老大式的企业文化”。黄光裕显然不胜其 扰,于是一气之下干脆把自己“剃度”了事,以一颗凌厉的光头和一种完全无所谓的神态来对抗所有的质疑。

在一次和记者聊天时,黄光裕对某些媒体的咄咄逼人难以遮掩自己的年轻气盛:“我觉得很奇怪,他们这种故事从哪里编出来的?真这样,国家‘打黑’我就要首当其冲了。我黑在哪里?我怎么黑了?”

这个问题,也许政府的公检法部门更有资格来回答。那么,答案究竟会是怎么样的呢?


Wednesday, November 26, 2008

restore xp default task bar

---
'xp_taskbar_desktop_fixall.vbs - Repairs the Taskbar when minimized programs
don't show.
'© Kelly Theriot and Doug Knox - 8/22/2003
//////////////////The following is the script

Set WSHShell = WScript.CreateObject("WScript.Shell")

Message = "To work correctly, the script will close" & vbCR
Message = Message & "and restart the Windows Explorer shell." & vbCR
Message = Message & "This will not harm your system." & vbCR & vbCR
Message = Message & "Continue?"

X = MsgBox(Message, vbYesNo, "Notice")

If X = 6 Then

On Error Resume Next

WshShell.RegDelete
"HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2\"
WshShell.RegDelete
"HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StreamMRU\"
WshShell.RegDelete
"HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop\"

WshShell.RegDelete "HKCU\Software\Microsoft\Internet Explorer\Explorer
Bars\{32683183-48a0-441b-a342-7c2a440a9478}\BarSize"

P1 = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\"

WshShell.RegWrite p1 & "NoBandCustomize", 0, "REG_DWORD"
WshShell.RegWrite p1 & "NoMovingBands", 0, "REG_DWORD"
WshShell.RegWrite p1 & "NoCloseDragDropBands", 0, "REG_DWORD"
WshShell.RegWrite p1 & "NoSetTaskbar", 0, "REG_DWORD"
WshShell.RegWrite p1 & "NoToolbarsOnTaskbar", 0, "REG_DWORD"
WshShell.RegWrite p1 & "NoSaveSettings",0,"REG_DWORD"
WshShell.RegWrite p1 & "NoToolbarsOnTaskbar", 0, "REG_DWORD"
WshShell.RegWrite p1 & "NoSetTaskbar",0,"REG_DWORD"
WshShell.RegWrite p1 & "NoActiveDesktop",0,"REG_DWORD"
WshShell.RegWrite p1 & "ClassicShell",0,"REG_DWORD"

p1 = "HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy
Objects\LocalUser\Software\Microsoft\Windows\CurrentVersion\Policies\Explore
r\"

WshShell.RegWrite p1 & "NoCloseDragDropBands", 0, "REG_DWORD"
WshShell.RegDelete p1 & "NoMovingBands"

p1 = "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell"

WshShell.RegWrite p1, "explorer.exe", "REG_SZ"

p1 = "HKCU\Software\Microsoft\Internet Explorer\Explorer
Bars\{32683183-48a0-441b-a342-7c2a440a9478}\"
WshShell.RegDelete p1 & "BarSize"
WshShell.RegWrite p1, "Media Band", "REG_SZ"

On Error Goto 0

For Each Process in GetObject("winmgmts:"). _
ExecQuery ("select * from Win32_Process where name='explorer.exe'")
Process.terminate(0)
Next

MsgBox "Finished." & vbcr & vbcr & "© Kelly Theriot and Doug Knox", 4096,
"Done"

Else

MsgBox "No changes were made to your system." & vbcr & vbcr & "© Kelly
Theriot and Doug Knox", 4096, "User Cancelled"

End If

35岁之前成功12条法则


一:一个目标


一艘没有航行目标的船,任何方向的风都是逆风

1、你为什么是穷人,第一点就是你没有立下成为富人的目标

2、你的人生核心目标是什么?

杰出人士与平庸之辈的根本差别并不是天赋、机遇,而在于有无目标。

3、起跑领先一步,人生领先一大步:成功从选定目标开始

4、贾金斯式的人永远不会成功

为什么大多数人没有成功?真正能完成自己计划的人只有5%,大多数人不是将自己的目标舍弃,就是沦为缺乏行动的空想

5、如果你想在35岁以前成功,你一定在25至30岁之间确立好你的人生目标

6、每日、每月、每年都要问自己:我是否达到了自己定下的目标

二:两个成功基点

站好位置,调正心态,努力冲刺,35岁以前成功

(一)人生定位

1、人怕入错行:你的核心竞争力是什么?

2、成功者找方法,失败者找借口

3、从三百六十行中选择你的最爱

人人都可以创业,但却不是人人都能创业成功

4、寻找自己的黄金宝地

(二)永恒的真理:心态决定命运,35岁以前的心态决定你一生的命运

1、不满现状的人才能成为富翁

2、敢于梦想,勇于梦想,这个世界永远属于追梦的人

3、 35岁以前不要怕,35岁以后不要悔

4、出身贫民,并非一辈子是贫民,只要你永远保持那颗进取的心。中国成功人士大多来自小地方

5、做一个积极的思维者

6、不要败给悲观的自己

有的人比你富有一千倍,他们也会比你聪明一千倍么?不会,他们只是年轻时心气比你高一千倍。

人生的好多次失败,最后并不是败给别人,而是败给了悲观的自己。

7、成功者不过是爬起来比倒下去多一次

8、宁可去碰壁,也不要在家里面壁

克服你的失败、消极的心态

(1)找个地方喝点酒

(2)找个迪厅跳跳舞

(3)找帮朋友侃侃山

(4)积极行动起来

三:三大技巧

1、管理时间:你的时间在哪里,你的成就就在哪里。

把一小时看成60分钟的人,比看作一小时的人多60倍

2、你不理财,财不理你

3、自我管理,游刃有余

(1)创业不怕本小,脑子一定要好

(2)可以开家特色店

(3)做别人不愿做的生意

四:四项安身立命的理念

35岁以前一定要形成个人风格

1、做人优于做事

做事失败可以重来,做人失败却不能重来

(1)做人要讲义气

(2)永不气馁

2、豁达的男人有财运,豁达的女人有帮夫运

35岁以前搞定婚姻生活

3、忠诚的原则:35岁以前你还没有建立起忠诚美誉,这一缺点将要困扰你的一生

4、把小事做细,但不要耍小聪明

中国人想做大事的人太多,而愿把小事做完美的人太少

五:五分运气

比尔·盖茨说:人生是不公平的,习惯去接受它吧

1、人生的确有很多运气的成人:谋事在人,成事在天:中国的古训说明各占一半

2、机会时常意外地降临,但属于那些不应决不放弃的人

3、抓住人生的每一次机会

机会就像一只小鸟,如果你不抓住,它就会飞得无影无踪

4、者早一步,愚者晚一步

六:六项要求

1、智慧

(1)别人可你以拿走你的一切,但拿不走你的智慧

(2)巧妙运用自己的智慧

(3)智者与愚者的区别

2、勇气

(1)勇气的力量有时会让你成为“超人”

(2)敢于放弃,敢于“舍得”

3、培养自己的“领导才能、领袖气质”

(1)激情感染别人

(2)“三·七法则”实现领袖气质

(3)拍板决断能力

(4)人格魅力

4、创造性:不要做循规蹈矩的人

25-35岁是人生最有创造性的阶段,很多成功人士也都产生在这一阶段

5、明智

(1)知道自己的长处、短处,定向聚焦

(2)尽量在自己的熟悉的领域努力

6、持之以恒的行动力:在你选定行业坚持十年,你一定会成为大赢家

七:七分学习

1、知识改变命运

2、35岁以前学会你行业中必要的一切知识

a)每天淘汰你自己

b)在商言商

3、太相信的书人,只能成为打工仔

4、思考、实践、再思考、再实践

八:八分交际


朋友多了路好走
 
1、智商很重要,情商更重要:35岁以前建立起人际关系网

2、人脉即财脉:如何搞好人际关系

3、交友有原则

4、善于沟通:35岁以前要锻炼出自己的演讲才能

九:九分习惯

习惯的力量是惊人的,35岁以前养成的习惯决定着你的成功的大小

1、积极思维的好习惯

2、养成高效工作的好习惯

(1)办公室

(2)生活可以不拘小节,但要把工作做细

(3)学习聆听,不打断别人说话

3、养成锻炼身体的好习惯

4、广泛爱好的好习惯

5、快速行动的好习惯

十:十分自信

1、自信是成功的精神支柱

2、自信方能赢得别人的信任

3、把自信建立在创造价值的基础上

4、如何建立自信

(1)为自己确立目标

(2)发挥自己的长处

(3)做事要有计划

(4)做事不拖拉

(5)轻易不要放弃

(6)学会自我激励

(7)不要让自己成为别人

十一: 11个需要避开的成功陷阱
 
1、只有功劳,没有苦劳

2、不要“怀才不遇“,而要寻找机遇

3、不要想发横财

4、不要为钱而工作,而让钱为你工作

5、盲目跟风,人云亦云,人做我也做

6、小富即安,不思进取,知足常乐

7、承认错误而非掩饰错误

8、脚踏实地而非想入非非

9、野心太大而不是信心十足

10、反复跳槽不可取

11、眼高手低

12、不择手段

十二:十二分努力

没有人能随随便便成功

1、小不是成功,大不是成功,由小变大才是成功

2、中国社会进入微利时代:巧干+敢干+实干=成功

3、努力尝试就有成功的可能

4、做任何事情,尽最大努力

5、把事情当成事业来做

6、我看打工者

7、祝你早日掘到第一桶金来源:

Sunday, November 23, 2008

find使用技巧

find技巧

>>>>>>>>>>下面是一些例子:

#在$HOME 或 当前目录 中查.txt文件并显示
$find ~ -name "*.txt" -print
$find . -name "*.txt" -print
#对匹配的文件使用cpio命令,将他们备份到磁带设备中-prune
$find . -name "[A-Z]*" -prune
#查以大写字母开头的文件
$find . -name "[A-Z]*" -print 
#查以host开头的文件
$find /etc -name "host*" -print
#查以两个小写字母和两个数字开头的txt文件
$find . -name "[a-z][a-z][0--9][0--9].txt"    -print
#属性查找
$find . -perm 755 -print
$find . -perm -007 -exec ls -l {} ;
#查所有用户都可读写执行的文件同-perm 777
打印目录结构
$find . -type d -print 
打印非目录文件
$find .  ! -type d -print 
#因grep无法递归搜索子目录,故可以和find相结合使用。 在/usr/include 所有子目录中的.h文件中找字串AF_INEF6
find /usr/include -name '*.h' -exec   grep AF_INEF6 {} ;
# 查找在系统中最后10分钟访问的文件
find / -amin -10 
# 查找在系统中最后48小时访问的文件
find / -atime -2 
# 查找在系统中为空的文件或者文件夹
find / -empty 
# 查找在系统中属于 groupcat的文件
find / -group cat 
# 查找在系统中最后5分钟里修改过的文件 
find / -mmin -5 
#查找在系统中最后24小时里修改过的文件
find / -mtime -1 
#查找在系统中属于作废用户的文件
find / -nouser 
#查找在系统中属于FRED这个用户的文件
find / -user fred
>>>>>>>>>>>>下面是一些 "概括性" 说明

前言:关于find命令

由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。

在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。


一、find 命令格式


1、find命令的一般形式为;

find pathname -options [-print -exec -ok ...]


2、find命令的参数;

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。


3、find命令选项

-name

按照文件名查找文件。

-perm
按照文件权限来查找文件。

-prune
使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。

-user
按照文件属主来查找文件。

-group
按照文件所属的组来查找文件。

-mtime -n +n
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。

-nogroup
查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。

-nouser
查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2

查找更改时间比文件file1新但比文件file2旧的文件。
-type

查找某一类型的文件,诸如:

b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。

-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。

-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

另外,下面三个的区别:

-amin n
  查找系统中最后N分钟访问的文件

  -atime n
  查找系统中最后n*24小时访问的文件

  -cmin n
  查找系统中最后N分钟被改变文件状态的文件

  -ctime n
  查找系统中最后n*24小时被改变文件状态的文件

 -mmin n
  查找系统中最后N分钟被改变文件数据的文件

  -mtime n
  查找系统中最后n*24小时被改变文件数据的文件


4、使用exec或ok来执行shell命令

使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的

在有些操作系统中只允许-exec选项执行诸如l s或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。

exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。

例如:为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中

# find . -type f -exec ls -l { } \;
-rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README

上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。
在/logs目录中查找更改时间在5日以前的文件并删除它们:

$ find logs -type f -mtime +5 -exec rm { } \;

记住:在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。

在下面的例子中, find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。

$ find . -name "*.conf" -mtime +5 -ok rm { } \;
<> ? n

按y键删除文件,按n键不删除。

任何形式的命令都可以在-exec选项中使用。

在下面的例子中我们使用grep命令。find命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个sam用户。

# find /etc -name "passwd*" -exec grep "sam" { } \;
sam:x:501:501::/usr/sam:/bin/bash

二、find命令的例子;


1、查找当前用户主目录下的所有文件:

下面两种方法都可以使用

$ find $HOME -print
$ find ~ -print


2、让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;
$ find . -type f -perm 644 -exec ls -l { } \;


3、为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;

$ find / -type f -size 0 -exec ls -l { } \;


4、查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;

$ find /var/logs -type f -mtime +7 -ok rm { } \;


5、为了查找系统中所有属于root组的文件;

$find . -group root -exec ls -l { } \;
-rw-r--r-- 1 root root 595 10月 31 01:09 ./fie1


6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件。

该命令只检查三位数字,所以相应文件的后缀不要超过999。先建几个admin.log*的文件 ,才能使用下面这个命令

$ find . -name "admin.log[0-9][0-9][0-9]" -atime -7 -ok
rm { } \;
<> ? n
<> ? n
<> ? n
<> ? n


7、为了查找当前文件系统中的所有目录并排序;

$ find . -type d | sort


8、为了查找系统中所有的rmt磁带设备;

$ find /dev/rmt -print


三、xargs

xargs - build and execute command lines from standard input

在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现 溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。

find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;

而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。

来看看xargs命令是如何同find命令一起使用的,并给出一些例子。

下面的例子查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件

#find . -type f -print | xargs file
./.kde/Autostart/Autorun.desktop: UTF-8 Unicode English text
./.kde/Autostart/.directory: ISO-8859 text\
......

在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中:

$ find / -name "core" -print | xargs echo "" >/tmp/core.log

上面这个执行太慢,我改成在当前目录下查找

#find . -name "file*" -print | xargs echo "" > /temp/core.log
# cat /temp/core.log
./file6

在当前目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限:

# ls -l
drwxrwxrwx 2 sam adm 4096 10月 30 20:14 file6
-rwxrwxrwx 2 sam adm 0 10月 31 01:01 http3.conf
-rwxrwxrwx 2 sam adm 0 10月 31 01:01 httpd.conf

# find . -perm -7 -print | xargs chmod o-w
# ls -l
drwxrwxr-x 2 sam adm 4096 10月 30 20:14 file6
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 http3.conf
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf

用grep命令在所有的普通文件中搜索hostname这个词:

# find . -type f -print | xargs grep "hostname"
./httpd1.conf:# different IP addresses or hostnames and have them handled by the
./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
on your

用grep命令在当前目录下的所有普通文件中搜索hostnames这个词:

# find . -name \* -type f -print | xargs grep "hostnames"
./httpd1.conf:# different IP addresses or hostnames and have them handled by the
./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
on your

注意,在上面的例子中, \用来取消find命令中的*在shell中的特殊含义。

find命令配合使用exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令。


四、find 命令的参数

下面是find一些常用参数的例子,有用到的时候查查就行了,像上面前几个贴子,都用到了其中的的一些参数,也可以用man或查看论坛里其它贴子有find的命令手册


1、使用name选项

文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用。

可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来。

不管当前路径是什么,如果想要在自己的根目录$HOME中查找文件名符合*.txt的文件,使用~作为 'pathname'参数,波浪号~代表了你的$HOME目录。

$ find ~ -name "*.txt" -print

想要在当前目录及子目录中查找所有的‘ *.txt’文件,可以用:

$ find . -name "*.txt" -print

想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用:

$ find . -name "[A-Z]*" -print

想要在/etc目录中查找文件名以host开头的文件,可以用:

$ find /etc -name "host*" -print

想要查找$HOME目录中的文件,可以用:

$ find ~ -name "*" -print 或find . -print

要想让系统高负荷运行,就从根目录开始查找所有的文件。

$ find / -name "*" -print

如果想在当前目录查找文件名以两个小写字母开头,跟着是两个数字,最后是.txt的文件,下面的命令就能够返回名为ax37.txt的文件:

$find . -name "[a-z][a-z][0--9][0--9].txt" -print


2、用perm选项

按照文件权限模式用-perm选项,按文件权限模式来查找文件的话。最好使用八进制的权限表示法。

如在当前目录下查找文件权限位为755的文件,即文件属主可以读、写、执行,其他用户可以读、执行的文件,可以用:

$ find . -perm 755 -print

还有一种表达方法:在八进制数字前面要加一个横杠-,表示都匹配,如-007就相当于777,-006相当于666

# ls -l
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 http3.conf
-rw-rw-rw- 1 sam adm 34890 10月 31 00:57 httpd1.conf
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf
drw-rw-rw- 2 gem group 4096 10月 26 19:48 sam
-rw-rw-rw- 1 root root 2792 10月 31 20:19 temp

# find . -perm 006
# find . -perm -006
./sam
./httpd1.conf
./temp

-perm mode:文件许可正好符合mode

-perm +mode:文件许可部分符合mode

-perm -mode: 文件许可完全符合mode


3、忽略某个目录

如果在查找文件时希望忽略某个目录,因为你知道那个目录中没有你所要查找的文件,那么可以使用-prune选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略。

如果希望在/apps目录下查找文件,但不希望在/apps/bin目录下查找,可以用:

$ find /apps -path "/apps/bin" -prune -o -print


4、使用find查找文件的时候怎么避开某个文件目录

比如要在/usr/sam目录下查找不在dir1子目录之内的所有文件

find /usr/sam -path "/usr/sam/dir1" -prune -o -print
find [-path ..] [expression] 在路径列表的后面的是表达式

-path "/usr/sam" -prune -o -print 是 -path "/usr/sam" -a -prune -o
-print 的简写表达式按顺序求值, -a 和 -o 都是短路求值,与 shell 的 && 和 || 类似如果 -path "/usr/sam" 为真,则求值 -prune , -prune 返回真,与逻辑表达式为真;否则不求值 -prune,与逻辑表达式为假。如果 -path "/usr/sam" -a -prune 为假,则求值 -print ,-print返回真,或逻辑表达式为真;否则不求值 -print,或逻辑表达式为真。

这个表达式组合特例可以用伪码写为

if -path "/usr/sam" then
-prune
else
-print

避开多个文件夹

find /usr/sam \( -path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -print

圆括号表示表达式的结合。

\ 表示引用,即指示 shell 不对后面的字符作特殊解释,而留给 find 命令去解释其意义。

查找某一确定文件,-name等选项加在-o 之后

#find /usr/sam \(-path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -name "temp" -print


5、使用user和nouser选项

按文件属主查找文件,如在$HOME目录中查找文件属主为sam的文件,可以用:

$ find ~ -user sam -print

在/etc目录下查找文件属主为uucp的文件:

$ find /etc -user uucp -print

为了查找属主帐户已经被删除的文件,可以使用-nouser选项。这样就能够找到那些属主在/etc/passwd文件中没有有效帐户的文件。在使用-nouser选项时,不必给出用户名; find命令能够为你完成相应的工作。

例如,希望在/home目录下查找所有的这类文件,可以用:

$ find /home -nouser -print


6、使用group和nogroup选项

就像user和nouser选项一样,针对文件所属于的用户组, find命令也具有同样的选项,为了在/apps目录下查找属于gem用户组的文件,可以用:

$ find /apps -group gem -print

要查找没有有效所属用户组的所有文件,可以使用nogroup选项。下面的find命令从文件系统的根目录处查找这样的文件

$ find / -nogroup-print


7、按照更改时间或访问时间等查找文件

如果希望按照更改时间来查找文件,可以使用mtime,atime或ctime选项。如果系统突然没有可用空间了,很有可能某一个文件的长度在此期间增长迅速,这时就可以用mtime选项来查找这样的文件。

用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。

希望在系统根目录下查找更改时间在5日以内的文件,可以用:

$ find / -mtime -5 -print

为了在/var/adm目录下查找更改时间在3日以前的文件,可以用:

$ find /var/adm -mtime +3 -print


8、查找比某个文件新或旧的文件

如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项。它的一般形式为:

newest_file_name ! oldest_file_name

其中,!是逻辑非符号。

查找更改时间比文件sam新但比文件temp旧的文件:

例:有两个文件

-rw-r--r-- 1 sam adm 0 10月 31 01:07 fiel
-rw-rw-rw- 1 sam adm 34890 10月 31 00:57 httpd1.conf
-rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf
drw-rw-rw- 2 gem group 4096 10月 26 19:48 sam
-rw-rw-rw- 1 root root 2792 10月 31 20:19 temp

# find -newer httpd1.conf ! -newer temp -ls
1077669 0 -rwxrwxr-x 2 sam adm 0 10月 31 01:01 ./httpd.conf
1077671 4 -rw-rw-rw- 1 root root 2792 10月 31 20:19 ./temp
1077673 0 -rw-r--r-- 1 sam adm 0 10月 31 01:07 ./fiel

查找更改时间在比temp文件新的文件:

$ find . -newer temp -print


9、使用type选项

在/etc目录下查找所有的目录,可以用:

$ find /etc -type d -print

在当前目录下查找除目录以外的所有类型的文件,可以用:

$ find . ! -type d -print

在/etc目录下查找所有的符号链接文件,可以用

$ find /etc -type l -print


10、使用size选项

可以按照文件长度来查找文件,这里所指的文件长度既可以用块(block)来计量,也可以用字节来计量。以字节计量文件长度的表达形式为N c;以块计量文件长度只用数字表示即可。

在按照文件长度查找文件时,一般使用这种以字节表示的文件长度,在查看文件系统的大小,因为这时使用块来计量更容易转换。
在当前目录下查找文件长度大于1 M字节的文件:

$ find . -size +1000000c -print

在/home/apache目录下查找文件长度恰好为100字节的文件:

$ find /home/apache -size 100c -print

在当前目录下查找长度超过10块的文件(一块等于512字节):

$ find . -size +10 -print


11、使用depth选项

在使用find命令时,可能希望先匹配所有的文件,再在子目录中查找。使用depth选项就可以使find命令这样做。这样做的一个原因就是,当在使用find命令向磁带上备份文件系统时,希望首先备份所有的文件,其次再备份子目录中的文件。

在下面的例子中, find命令从文件系统的根目录开始,查找一个名为CON.FILE的文件。

它将首先匹配所有的文件然后再进入子目录中查找。

$ find / -name "CON.FILE" -depth -print


12、使用mount选项

在当前的文件系统中查找文件(不进入其他文件系统),可以使用find命令的mount选项。

从当前目录开始查找位于本文件系统中文件名以XC结尾的文件:

$ find . -name "*.XC" -mount -print


>>>>>>>>>>>>>>>>>

find 命令在linux中是很常用到的一个查找命令,它的功能非常地强大。可以结合正则匹配来搜索系统中的指定的内容,以下我就记录一下这个find常用到的一些用法
  
  首先我们来看看find的总体用法
  find path option [-print -exec -ok]
  其中path是指定在哪个路径中查找内容。如/var下查找内容,option是find中的一些属性值,常用的有-name,-type,-mtime,-ctime,-atime,-user,-group,-nouser,-nogroup,-perm 等,[-print -exec -ok]是可选属性值,-print是指把查找到的内容输出到指定的地方,-exec与-ok都是执行另处的command命令,但两都也有一点不 同,-exec在执行指定的command时不会给用户显示提示或操作信息,但是-ok就会在有提示询问操作时给用户显示信息,直到用户做了选择时才继续 执行。
  
  常用的option值说明
  -name 指定查找的内容是文件。
  -type 指定查找的文件的类型,它有d,l,b,p,f,c等文件类型,d是查找目录,l是查找链接档,b是查找块文件,p是查找管道文件,f是普通文件,c是字符设备文件
  -mtime,-ctime,atime都是指按时间查找,-mtime是文件的修改时间,-ctime是文件的创建时间,atime是后找开文件时间
  -user是查找指定用户帐号的文件
  -group是查找指定组帐号的文件
  -nouser查找无用户帐号文件
  -nogroup是查找无组帐号文件
  
  下面举几个例子说明一下find的用法
  (1)我想找出/etc目录下是passw开头的所有文件
   find /etc -name "passw*"
  这个例子中"*"号是正则匹配中的“所有”的意思
  (2)我想找出/var/log目录下所有的前5天的.log文件
   find /var/log -name "*.log" -mtime +5
  这个例子中"+5"是指5天以前的文件,如是查"-5"则是5天以内的文件
  (3)我想找出/home目录下是"ygl"这个用户的文件
   find /home -user "ygl"
  (4)我想找出/home目录下是"ygl"这个用户的所有的普通档的文件
   find /home -user "ygl" -type f
  (5)我想找出/var/log目录下的所有的.log文件并查看它的详细信息
   find /var/log -name "*.log" -type f -exec ls -l {} \;
  这个例子中用到了可选属性-exec用来执行ls命令,其中的-exec或者-ok的用法都要在它所执行的command后面接" {} \;"
  (6)我想查找出在/etc中以passw开头的所有文件中有没有ygl这些内容的
   find /etc -name "passw*" -exec grep -in "ygl" {} \;  

查找名字为conf的目录

  #find /目录 -type d -name conf

  注意type可能为b,c,d,l等……

  查找文件权限为755的文件

  #find /目录 -perm 755 -print

  如果用八进制,则可以用

  #find /目录 -perm -007 -print (跟chmod里的表示方法相同)

  查找文件属主为kt的文件

  #find /目录 -user kt -print

  查找group为kt的文件

  #find /目录 -group kt -print

  查找名字为file的文件

  #find /目录 -name file

  查找大小为0的文件

  #find /目录 -size 0

  忽略某个目录:

  #find /目录 -name "/目录名" -prune -o -print

  查找属主帐户已经被删除的文件:

  #find /目录 -nouser -print

  按更改时间查找文件

  #find /目录 -mtime -5 -print 单位是5,查找更改时间在5日以内的文件

  查找更改时间在3日以内的文件

  #find /目录 -mtime +3 -print

  查找更改时间比file1新但比file2旧的文件

  #find /目录 file1 ! -newer file2 -exec ls -l {} \;

  不仅查询根目录,而且查询子目录

  #find /目录 -name file -depth -print

  只在当前文件系统内部查询,而不进入其他文件系统

  #find /目录 -name file -mount -print

  用exec对查找出的文件进行操作

  #find /目录 -type f -exec ls -l {} \; //-exec ls -l {} \;则表示执行“ls -l”的操作。

  用exec安全模式,在删除前有提示

  #find /目录 -name "*.log" -mtime +5 -ok rm {} \; //这样在删除文件前会先提示

  根据inode号来取得硬链接

  #find /目录 -inum inode号

  对find找出的文件执行操作可以使用-exec 执行指令 {} \;也可以使用 | xargs 指令。


  由上面几个例子中可以看出find命令的强大。在实际的使用过程中,你将会发现find将会给你带来太多的方便

看一位华裔美国大兵的血腥日记

看一位华裔美国大兵的血腥日记
新浪博客 2008-11-23 00:31:13

这些武装分子可能不知道,在这些CNN战地记者都心惊肉跳的地区,上级授权给我们的开枪权限是:如果你认为应该开火,就开火如果你有一丁点儿怀疑,开火 如果有人一边打手机一边用手指着你,开火如果有人在放鸽子,开火如果有人在挖坑,开火按照我的理解就是:如果你觉得不爽,你就可以开火!

为了学费,我加入了美军

到纽约一个月了,一切都好——除了没有挣钱。天天在家做饭看书也还是有点令人沮丧,尤其在这个物欲横流的都市,似乎随时都在刷卡,随处都是消费,对于一个没有工作的人来说,就像没有胸部一样无法挺好地做人。于是,我仔细端详了一下天天都可以看到的地铁里的广告,那两幅征兵的尤其醒目——“Wedon’t accept applications,only commitments.USMarine我们需要你舍身报国 。”两个酷酷的士兵用坚毅而挑逗的眼光看着你——跟电影里的一样,充满阳刚的诱惑。

早就听说美军的待遇不错,工资不低还有很多津贴,还可以帮你付学费。想想自己MBA三四万的学费还没着落,干脆去当兵看看让美国政府帮忙付学费如何﹖于是,登录到millitary.com去看,不管三七二十一一顿填表,申请了海军陆战队marine 、陆军Army 和陆军预备役ArmyReserve ,很快收到了一堆介绍参军手续和好处的资料。

走进美军的征兵办,一屋子的军官全拿我当亲人,小心伺候着,生怕我反悔,还送我好多陆军小礼物,一个美女军官,每天车接车送的。真有点受宠若惊的感觉。一不留神,我加入了敌军。

如果你觉得不爽,你就可以开火

来到这个巴格达的美军基地,我们就4人一组地睡在由旧集装箱改装的铁盒子里,四周是一望无际的大沙漠,除了黄沙,还是黄沙。没有建筑、没有树木、没有道路、没有水、没有人家,像是到了月球表面,连个地名都没有。

今天我们被分配到一个新区域执行任务,听说那里是武装分子盘踞点,几乎每一条路上都埋有炸弹,狙击手们躲藏在各种废弃的房子里,火箭筒不时从某个角落里飞出来……我的任务是开斯特瑞克装甲车,以及等战友们下车去清剿后,坚守装甲车。但这几天,由于一位士兵休假,我被分到了步兵战斗组。我们要巡逻在主干道上,准备射击任何我们认为应该射击的目标。走不远,我们发现了一幢房子,等爆破专家仔细检查了整个建筑,确保里面没有炸弹以后。我们正式地占据了建筑,设置了临时警戒。

下午4点左右,突然枪声大响,我三两步直冲楼顶,楼顶上已经开始交火了,“肉棒”作者一位战友的绰号,编者注 也紧接着冲了上来。在街对面的斜对角的一幢建筑里,时不时可以看见闪光,那是武装分子在向我们开火,还有零星的狙击手在我们正前方的建筑群里开枪。我很小心地尽量不把头暴露出来,一阵连续的刺耳的响声,原来是在我正上方,美军的两架“阿帕奇”武装直升机在进行对地压制,一阵机炮声之后,正前方的敌方狙击手立马哑巴了。

可惜敌人都在建筑的里面,并没有被直接打击,过了没多久他们又开始还击,领队的少尉突然叫大家低头,斯特瑞克装甲车已经就位,准备送武装分子一枚大爆竹。只听两声巨响后,武装分子再也没有了气息。这些武装分子可能不知道,在这些CNN战地记者都心惊肉跳的地区,上级授权给我们的开枪权限是:如果你认为应该开火,就开火如果你有一丁点儿怀疑,开火如果有人一边打手机一边用手指着你,开火如果有人在放鸽子,开火如果有人在挖坑,开火按照我的理解就是:如果你觉得不爽,你就可以开火。

收拾完这帮人之后,我们把爆破专家和战地摄像人员送回他们的基地,我们也就回基地休息了。第二天,我们收到消息说,昨天在被我们轰击的建筑里找到可辨认尸体10多具,另有一些尸体已成蜂窝。这可算是排级的集体功了,估计过一段时间会有勋章颁发下来。

那个叫“好运”的战友

进入冬季了,沙漠的气候变得更加干燥,装甲车也停开冷气转为开暖气了。在巡逻的时候,我通常一连八九个小时猫在车内,开始流鼻血了。今天是我在这个曾经治安很差的地区最后一次巡逻了,我和往常一样还是在装甲车里打瞌睡,等着步兵队回来,我听见车顶上的“好运”一直在和机枪手谈论关于结婚、孩子、额外津贴的事情。

“好运”在德国驻军期间,约会过几次一位17岁的菲律宾裔女孩,他打算在休假期间与她结婚。但那个女孩却抢在结婚前怀了孕,而播种者却是另一个从得克萨斯来的家伙。“好运”不在乎,他只想跟这个女孩结婚,而后可以尽快拿到美军额外的家庭津贴。另外,还顺便拯救一个来自第三世界的少女,外加一个不劳而获的胖儿子,一举三得。

“好运”在这方面可能比较看得开,或者说是不在乎。他父亲结过三次婚,他同父异母的兄弟姐妹十多个。连他都分不清谁是哪房的。他父亲在他参军前的两个月在一场车祸中去世了,年仅38岁,听着有些头晕,才38岁就有十多个孩子。

在华盛顿我刚认识他的时候,他总是闷闷不乐的。直到后来玩上网络游戏后,心情才好转了很多。类似“好运”的家庭的士兵,我们连里有好几个。有的从来没见过自己的父亲,有的父母离异,孩子判给父亲,父亲再婚,有了继母,后来父亲去世,就跟着继母过,继母又跟人结了婚,有了孩子,他就跟着一帮毫无血缘关系的人生活。当营里批准我们可以使用手机后,他们都没有买手机。因为没人关心,也无人可打。

第100个自杀的兄弟

伊拉克开战4年来,美军死的死,伤的伤,疯的疯,逃的逃,自杀的自杀,每一天都在各个基地发生。有谁兴高采烈,意气风发,斗志昂扬的那才叫一个怪在战场上火拼的时候大家都是龙,回到帐篷里都是死蟹一只,士气低迷,唉声叹气,怨声载道,焦虑不安,每天掰着脚趾数着回美国的倒计时。

有的小青年十七八岁高中刚毕业就当兵,训练了4个月就来伊拉克,每天还在帐篷里不停地哭泣。这些情景与我小时候看到的美国好莱坞战争片中的美国大兵,真是天壤之别啊前两天,我们基地一个士兵自杀后,上级立刻关闭了基地网吧和电话亭,还规定一律不许往外打手机,否则没收。真没想到,美军也搞这一套,与山西小煤窑真有一拼。其他的士兵死,在基地里并没有引起太大的震动,大家早就司空见惯,见怪不怪了。这次却有点不寻常,或许是因为他挤进陆军自杀排行榜第100位吧。

这位快要退役的兄弟,大哥我得批评你两句。像在伊拉克这样的鬼门关,前脚出了帐篷,就不知道后脚还能不能再回来,你在15个月中有10万个死亡的机会,选择自杀简直是脱裤子放屁。你只要耐心等到下一个火拼的时候,身体略微抬高个一寸半寸的,对方的狙击手就能准确无误地命中你头盔与风镜之间的间隙……

那就全齐活了要名誉有名誉,要紫星勋章有紫星勋章,哥们都能参加你的追悼会,大伙儿体体面面地送你一程。陆军还能给你家里捎个50万美元的阵亡抚恤金。一念之差,人财两空,全都完了你怎么就这么傻呢﹖﹖这么一会儿你都挺不住﹖哥们不都在暗无天日、度日如年地挺着吗﹖﹖自杀的消息有时比在战场上挂掉的消息更加可怕,一个活生生的人倒下,他就是睡在上下铺的兄弟,那种感觉,正如你黑夜行走时,突然面临着一个深渊,而深渊里正传来死神的呼唤。

2008年8月,是我退役的日子,满以为还可以赶上到北京看奥运。但是现在兵源奇缺,陆军愣不让按期退役,每个士兵都必须在战区驻满15个月,除非重伤或挂掉。我现在的退役期推迟到了2008年的11月15日,还剩多少天,我也学会了掰脚指头。

夜深了,睡在中东沙漠中,望着浩瀚的星空,吹着从地狱刮来的风,全身的皮肤都在溃烂,我回想在中国的很多同班同学都找不着工作,当宅男,玩动漫,吃肯德基,跟父母较劲儿抗衡。我为什么会孤身来到这里﹖我到底为谁而战﹖

Saturday, November 22, 2008

java-entrance

>>>>>>>install jre & jdk in unbuntu

There are two method to install jdk in ubuntu:

To setup the jdk env, you must read this through firstly.


1. manual installation

go to http://java.sun.com/ to download jdk. There is a detail to be pointed out, that is you should download the .bin, NOT the .rpm.bin version.
(The rpm.bin version work in redhat relative version.)

Then, you can move it to /opt with the sudo and unpack it there.

cd ~/Desktop
sudo mv java_filename.bin /opt
cd /opt
sudo chmod 755 java_filename.bin
sudo ./java_filename.bin

That would unpack it in /opt. Now, you just have to configure it so your system would use the new version.
----------------the above steps are working...

Code:
sudo update-alternatives --config java
And make sure you pick the new version from the list. Now, you can check to see if your system is using the new version with

Code:
java -version


2. using apt-get to install it

Installing Java Runtime and JDK has been made easy since Ubuntu Feisty Fawn since multiverse and universe package has been made available by default. This short how to, covers an easy way to install Sun Java environment in your Ubuntu operating system.

Installing Java Runtime

$ sudo apt-get install sun-java6-jre

Installing Java Software Development Kit (JDK)

$ sudo apt-get install sun-java6-jdk

Alternatively you can choose to install previous Sun Java version on your machine by replacing 'sun-java6' with 'sun-java5' for Java 1.5, or by installing 'j2sdk1.4' package for Java 1.4.

That's all, you should be able to run Java applets using your favorite browser or run Java application by now.

However, if you install the jdk by this way, maybe some packages such as src of jdk lib will not be install or the install directory hardly to found.

To install all the things, you can use:
$ sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk


Setup the default Java version

Ubuntu Linux comes with update-java-alternatives utility to updates all alternatives belonging to one runtime or development kit for the Java language. To select, Sun's JVM as provided in Ubuntu 7.10, enter:
$ sudo update-java-alternatives -s java-6-sun

>>>>>>>>
You also need to edit a file called /etc/jvm. This file defines the default system JVM search order. Each JVM should list their JAVA_HOME compatible directory in this file. The default system JVM is the first one available from top to bottom. Open /etc/jvm
$ sudo vi /etc/jvm
Make sure /usr/lib/jvm/java-6-sun is added to the top of JVM list
/usr/lib/jvm/java-6-sun
At the end your file should read as follows:
/usr/lib/jvm/java-6-sun
/usr/lib/jvm/java-gcj
/usr/lib/jvm/ia32-java-1.5.0-sun
/usr/lib/jvm/java-1.5.0-sun
/usr

Save and close the file.
-------set jvm path here.

Setup the environment variable

You also need to setup JAVA_HOME and PATH variable. Open your $HOME/.bash_profile or /etc/profile (system wide) configuration. Open your .bash_profile file:
$ vi $HOME/.bash_profile
Append following line:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$PATH:$JAVA_HOME/bin

Save and close the file.

-----set JAVA_HOME and PATH
but it seems it do not work after set the profile. or set it wrong.
and i can not find $HOME/.bash_profile. why ??

If you can not find the .bash_profile, you can and these things to $HOME/.bashrc .

Or, you can create a new .bash_profile file in the $HOME directory!!!


Test your new JDK

Type the following command to display version:
$ java -version
Output:

java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode)

Try HelloWorld.java - first java program

$ vi HelloWorld.java
Append code:

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}

Save and close the file. Compile HelloWorld.java and execute program by typing following two instructions:
$ javac HelloWorld.java
$ java HelloWorld

Output:

Hello, World!

---------------------more info

Currently Ubuntu has the following Java packages

sun-java6-bin - Contains the binaries

sun-java6-demo - Contains demos and examples

sun-java6-doc - Contains the documentation

sun-java6-fonts - Contains the Lucida TrueType fonts from the JRE

sun-java6-jdk - Contains the metapackage for the JDK

sun-java6-jre - Contains the metapackage for the JRE

sun-java6-plugin - Contains the plug-in for Mozilla-based browsers

sun-java6-source - Contains source files for the JDK

Installing the Java Runtime Environment

First you need to check multiverse repository enabled or not after that open a terminal window. Since you are going to be installing the JRE and the web browser plug-in, you’ll be using the following command from a terminal

sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts

Once it downloads the packages and begins the installation, you’ll get a screen that contains the Sun Operating System Distributor License for Java and hit Enter to continue. You’ll see a dialog that asks you if you agree with the DLJ license terms. Select Yes, and hit Enter; the JRE will finish installing.

Testing Java Runtime Environment

You’ll want to confirm that your system is configured properly for Sun’s JRE. This is a two-step process.

First, check that the JRE is properly installed by running the following command from a terminal.

java -version

You should get similar output

java version “1.6.0″
Java(TM) SE Runtime Environment (build 1.6.0-b105)

Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Testing Java Plugin for Firefox

open Firefox and typing about:plugins in the address bar and check for java plugin

>>>>>>>>>>>>>
1.......

2.设置环境变量。
#vi /etc/profile
在最后面加入
#set java environment
JAVA_HOME=/usr/java/jdk-1_5_0_02
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存退出。

要使JDK在所有的用户中使用,可以这样:
vi /etc/profile.d/java.sh
在新的java.sh中输入以下内容:
#set java environment
JAVA_HOME=/usr/java/jdk-1_5_0_02
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存退出,然后给java.sh分配权限:chmod 755 /etc/profile.d/java.sh

3.在终端使用echo命令检查环境变量设置情况。
#echo $JAVA_HOME
#echo $CLASSPATH
#echo $PATH

4.检查JDK是否安装成功。
#java -version
如果看到JVM版本及相关信息,即安装成功!

>>>>>>>>>>>>sample(in ubuntu)

1. you can use eclipse to edit/compile/run the java. if you can run the eclipse( once you setting the jdk in the right way, you can run eclipse), then you can run the java sample easily.

2.using javac to compile the java source code and java to run the exe.

-------------the env running the sample

simon@simon-laptop:~/workspace$
simon@simon-laptop:~/workspace$ ls
firstJavaSample helloworld log testjava1
simon@simon-laptop:~/workspace$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/java/jdk1.6.0_10/bin
simon@simon-laptop:~/workspace$ echo $JAVA_HOME
/usr/java/jdk1.6.0_10
simon@simon-laptop:~/workspace$ echo $CLASSPATH

simon@simon-laptop:~/workspace$

---------the java source file name and directory

simon@simon-laptop:~/workspace/firstJavaSample$ ls
FirstJavaSample.class FirstJavaSample.java

----------the code of the source file
package firstJavaSample;


public class FirstJavaSample {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("hello world");

}
}
-----------compile and run the java exe
simon@simon-laptop:~/workspace/firstJavaSample$ javac FirstJavaSample.java
simon@simon-laptop:~/workspace/firstJavaSample$ cd ..
simon@simon-laptop:~/workspace$ java firstJavaSample.FirstJavaSample
hello world
simon@simon-laptop:~/workspace$

-------------some things you should care about

1. the name of the folder that contains the java source code should be the name of package of the the java soure code (firstJavaSample)

2.the name of the public class should be the name of the soure file (FirstJavaClass)

3. case senstive (firstJavaSample ! = FirstJavaSample)

4. you should go back to the folder that contains the package folder to run the java exe.

simon@simon-laptop:~/workspace$ java firstJavaSample.FirstJavaSample

workspace contains the firstJavaSample folder


Sunday, November 16, 2008

谷歌李开复:若碰到裁员 员工应当成一种动力

李开复建议,在选择职业时,应尽量选择现金流充足、历史记录良好、财务报表良好,并且经过考验的公司

金融风暴引燃职场危机(三)———

次贷危机就像多米诺骨牌一样,让全球金融机构逐一陷入泥潭。而相关行业也受到牵连,史无前例的大裁员正在波及各个行业。

遇到裁员怎么办?该如何看待裁员?裁员之后该如何寻找新的工作?昨天,记者采访了谷歌全球副总裁、大中华区总裁李开复。他表示,虽然谷歌在中国绝无裁员的可能,但是他过去在苹果、SGI、微软的职业生涯中经历多次裁员风暴。他告诉记者,被裁确实是一种挫折,但是员工不能把这种挫折当作惩罚,要当成继续前进的动力。而为了防止被裁员,员工在平时工作中不仅仅要关注自己的工作安排,也应该主动推销自己,多学习新技术,拓展自己的视野。

裁员风波来临时,往往是又急又快,让人措手不及。但是如果有防患于未然的心态,平时有一系列的准备,那么当裁员风波来临时,可以为自己争取一些主动。

如何进行预防性的“自救”呢?李开复告诉记者,第一,在选择自己的职业时,尽量选择现金流充足、历史记录良好、财务报表良好,并且经过考验的公司。在危机发生时,这样的公司往往具有一定的抗风险能力。第二,尽量选择公司里最核心的部门工作。比如在高盛工作就做投资银行业务,比如在苹果公司产品部门工作,比如在报社工作就从事采编业务。

核心部门是最容易受到保护的部门,而一般行政、人事或者非核心的部门容易在危机中首先遭遇裁员。第三,尽量增加适应性。比如做市场的员工可以接受换岗,在销售部门做几年,做研发的员工可以尝试在市场部门工作。

在一个公司做过的岗位越多,适应性越强,而公司在裁员时,会倾向于将熟悉业务层面较多的员工留下。第四,在工作的同时,要与时俱进地学习,延续自己的竞争 力。当你掌握了最新的技术和业务,就会永远处在业务线的前沿。这样,无论是否遭遇裁员,都会把主动权掌握在自己的手中。第五,做一个有自觉心的人。

所谓自觉心,就是要清楚自己的业绩处在公司的大致水平,而不是被通知要裁掉的时候,才知道自己落后于一般水平。第六,在公司注意沟通,提高情商,确定自己的工作成绩被别人知道,学会适度推销自己。在不过分邀功的情况下,让人知道自己的贡献。

李开复告诉记者,裁员固然是一种挫折,但是每一个挫折也是学习的机会。如果遭遇裁员,不要把它当作生活的惩罚,而要当成一个新的起点。员工可以寻找更喜欢 的工作,考虑是否继续读新的学位,积极努力地寻找更适合自己的职业。关键是不但要找到一个热门的职业,更要找到一个自己热爱的工作。因为只有真正热爱的工 作,才能激发起内心的斗志。

李开复经历过三种模式的裁员


李开复告诉记者,自己在从业生涯中多次遇到需要裁掉员工的情况。第一次是上世纪90年代初在苹果公司,那个时候他担任苹果公司的语音语言小组经理。当时苹 果公司采取了降价措施,但是依然销售不佳,一个季度的亏损达到4亿美元。因此,苹果公司来不及设计裁掉哪些部门,就由CEO召集部门经理,让部门经理将每 个部门裁员10%。

当时裁员的标准是:第一,看员工的业绩是否令人满意。第二,看员工是否熟悉其他的业务。第三,看员工未来的潜力。第四,团队精神。而这四个部分将由部门经理进行打分,最终由每个副总裁决定裁员名单。

李开复说,当今的金融危机中的裁员,一般是属于这种裁员。而这种裁员一般是员工被约谈后,当天就要求员工收拾好办公室里的物品离开。那个时候,公司会雇佣人数相当的警卫,以防止员工做出情绪激烈的出格举动。

另外一种裁员是公司由于项目失败或方向错误,而将整个部门砍掉。而这种裁员,一般会给予员工一定补偿。李开复告诉记者,他在微软担任自然互动部门副总裁 时,决定将一个小组全体裁掉。因为那个小组里全部是语言学家,当时被雇佣来做语法修正软件,但是并不成功。当公司财务吃紧时,这种业绩不佳的部门就可能被 取消。其模式是提前告知员工公司的决定,然后让员工提前去别的部门寻找岗位。如果在限期3个月内找不到岗位,就只能“走路”了。


李开复经历的第三次裁员风波是在微软。当时他担任微软全球副总裁。有一天,微软CEO鲍尔默召集全球100个副总裁开会,并宣布微软将实行末位淘汰制。他命令每个副总裁在所负责领域挑出5%的业绩落后的员工,并为他们做出明确的工作计划。如果他们依然完不成指标,将被告知被裁员。这也是裁员的第三种模式——末位淘汰制引发的裁员。

Saturday, November 15, 2008

complier supporting c99 complex

Recently, I have been surveying the operations of complex. From the c99 and C++0x standard draft, I get the information about the operations for a complex library. Besides, I also refer to boost math library for how to implement the complex.

BTW, the boost 1.3.6 seems does not implement all the operations supported by the c++0x draft.

And, I try to use vc2005, icc10.1, gcc4.2, dmc8.5 to experience the complex operations.
But vc2005 and gcc4.3 do not support the c99 complex.
And some operations in icc&win32 will be broken( throw a access violation when using cacos).
It seems that the dmc can do more work to complex operation. At least it will work normally for cacos operation.

The following is the sample testing in the dmc:

#include "stdio.h"
#include "math.h"
#include "complex.h"

void outputComplex(_Complex double rst )
{
printf("rst=%g+%gi\n", rst);
}


int main()
{


//_Complex double a_ = 1.0+ 5.0i;//error

_Complex double a__ = 1.0+ 5.0 * _Complex_I;

_Complex double a = 1.0+ 5.0 * I;

outputComplex(a);

complex double b = cacos(a);

double complex b_ = cacos(a);

outputComplex(b);

return 0;

}

////////
The following is the sample for icc10.1&win32

#include "stdio.h"
#include "math.h"
#include "complex.h"

void outputComplex(_Complex double rst )
{
printf("rst=%g+%gi\n", rst);//print in the readable format
}

int main()
{
float f__=1.0f;
isnan(f__);

_Complex double a;
_Complex double b;

a=1.0+5.0i;
a+=2.0+2.0i;//a=3+7i

_Complex double a_ = 1.0+ 5.0 * _Complex_I;

_Complex double a__ = 1.0+ 5.0 * I;

printf("a=%g+%gi\n",a);//print in the readable format
//a = cproj(a);

a = 1.0 + 2.0i;
b = cacos(a);//--
outputComplex(b);

return 0;
}

Tuesday, November 4, 2008

icc, vc2005, gcc4.2的参数入栈顺序和强制类型转化的一个case






icc, vc2005, gcc4.2的参数入栈顺序和强制类型转化的一个case

为方便描述, 想想如下的情况

有4个类型TA, TB,
              TA_meta, TB_meta,

存在如下的关系, 从TA可以转化成TA_meta, 
                       从TB可以转化成TB_meta,
                       从TA_meta<-->TB_meta,

...
TA:: operator TA_meta (const TA& );//从TA转化成TA_meta的函数
TA:: operator TA_meta (const TB& );//从TB转化成TA_meta的函数, 这里先把TB-->TB_meta, 然后吧TB_meta-->TA_meta

为方便我们需要引入另外一个类型 CC.
有一个函数如下:
foo(CC,  TA_meta);

调用者如下:
CC obj1;
TA ta;

foo(obj1, ta); //这里需要把ta--->ta对应的TA_meta

下面给出信息:
             |     编译器                   参数入栈顺序                            调用的转化函数  
------------------------------------------------------------------------------------
windows|     vc                         自右向左                             TA:: operator TA_meta (const TA& )    
             |     icc                         自左向右                             TA:: operator TA_meta (const TB& )---icc 疯了
-------------------------------------------------------------------------------------
linux      |     gcc                        自右向左                            TA:: operator TA_meta (const TA& )
            |      icc                         自左向右                            TA:: operator TA_meta (const TA& )






Monday, November 3, 2008

关于犯错误

我犯过很多错误。 有些错误的首次发生几乎不可避免, 有些错误的首次发生是由于我自己引起的。

不管 怎么样, 我应该 停止犯同样的错误。

我不想争论 什么是错误。 我只能说 我感觉到 不对的 就应该是错误吧。。

我发觉 我偏离方向。。

我试图 通过给错误下一个定义, 然后告诉我 我做的事情不是错误, 所以我没有犯错误。。
一种很好的自我安慰的方法。。。 无语。。。

最后, 要劝诫、勉励一下自己 停止犯 犯过的错误。。 努力去做到这一点, 也许你会觉得痛苦, 但是 迟早这些错误会让你付出代价的。。

听起来 我对 犯某些错误会上瘾 不错就是这样, 当然不一定是上瘾, 只是有一种需求。 因为 错误对不同的人的其定义是不一样的。。

哎, 最后 我还是试图 为错误下一个定义, 从而可以为我的某些行为辩护, 或者说可以让我明确地知道哪些该做哪些不该做。。

这几乎是做不到的。。。

所以, 我只能说 告诉自己 停止犯错误, 并记住这个原则, 你不要管 什么是错误。 你只要记住,并且践行:
停止犯错误。

最后我无法对错误下定义。

到了最后, 我只能说 当你意识到你做的是一个错误的, 那么就停止吧!!!

好了。 结束吧。

Sunday, November 2, 2008

how to compile gcc4.3.2

-----------编译-gcc 4.3.2----------
a.下载源代码

b.解压

c.查看里面的INSTALL文件夹, 里面有一些关于安装的帮助信息

--下面描述两个必要的组件GMP, GPFR
Installing GMP method1:
sudo apt-get install m4

method2:------recommended
download the src.
unzip.
--to the following steps, please look into the INSTALL file in the source.
./configure
make
make check
make install: the default target path is /usr/local


Installing GPFR
download the src.
unzip.
--to the following steps, please look into the INSTALL file in the source.
./configure
make
make check
make install: the default target path is /usr/local

------
from the prerequisities of gcc. you may be need to install gawk (sudp apt-get install gawk )too.



d.configure进行注册

假设加压后的源代码目录是 gcc-4.3.2
这个目录下还有不少别的目录 比如INSTALL, gcc, ...
进入这个目录,执行如下操作(可能需要管理员权限,即加sudo )

% mkdir objdir
% cd objdir
sudo ./../configure --enable-languages=c,c++
--prefix=/usr/local/gcc-4.3.2 --enable-shared --with-system-zlib
--without-included-gettext --enable-threads=posix --enable-nls
--enable-libstdcxx-debug --enable-mpfr --enable-targets=all
--enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu
--target=i486-linux-gnu --disable-multilib

注意
1. 这里是在objdir目录下,所以使用的是gcc-4.3.2目录下的configure
2. 关于configure的选项我 试了很多个, 也用了好长时间,才发现这个可用。这里给出一些如何发现这个选项的信息。
一开始我的电脑上转的是 gcc4.2.3. 后来我又更新到了gcc.4.3.2. 以下是我看到的已经安装(通过apt-get)的gcc的选项
//--------------gcc 4.3.2 -v 查看选项------------------
Using built-in specs.
Target: i486-linux-gnu
Configured
with: ../src/configure -v --with-pkgversion='Ubuntu 4.3.2-1ubuntu8'
--with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--enable-shared --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --enable-nls
--with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3
--enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc
--enable-mpfr --enable-targets=all --enable-checking=release
--build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu8)
//----------------

//----------gcc4.2.2 -v 查看选项----------------------
Using built-in specs.
Target: i486-linux-gnu
Configured
with: ../src/configure -v
--enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr
--enable-shared --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --enable-nls
--with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2
--enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc
--enable-mpfr --enable-targets=all --enable-checking=release
--build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)

你可以把上面的一些选项直接拿过来用比如
--enable-languages=c,c++,fortran,objc,obj-c++
--enable-shared --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --enable-nls
--enable-libstdcxx-debug
--enable-mpfr --enable-targets=all --enable-checking=release
--build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu

3. 必须加上--disable-multilib否则会发生编译错误

4. 这里你必须指定
--build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
否则会错误,在我的机器上他自己探测为i686-linux-gnu. 这会导致错误。

5. prefix 选项你指定了你想把gcc4.3.2安装到哪一个目录下, 你必须/最好指定

e. test. 参考INSTALL文件夹下面的信息

f. sudo make install
to install gcc4.3.2 to the prefix directory which is specified when configure.

-------------------------
以上是 在我的机器上安装的 过程。。

我想不同的机器 肯定会不同。。

王杰的歌

今天偶然又听到了, 心里酸酸的..

上网去 找了一下。。。


回家
英雄泪
家太远了
......

好遥远啊...