2009年6月4日星期四
彼得·林奇的投资策略:寻找翻10倍的股
按照投资操作的6个基本步骤:选择目标企业、评估内在价值、分析市场价格、确定买人价格、分配投资比例、确定持有期限,经过对林奇有关投资策略的论述的收集整理,我们将其投资策略逐一总结为6个基本原则。
林奇的选股原则:分门别类,与众不同
林奇分析公司业务的方法主要是根据公司销售或产量的增长率将其划分为六种类型公司的股票:缓慢增长型、大笨象型(stalwart’s)、快速增长型、周期型、资产富余型(asset plays)、转型困境型。
林奇认为,所有经济实体的“增长”都意味着它今年的产出比去年更多。衡量公司增长率有多种方法:销售量的增长、销售收入的增长、利润的增长等。
稳定缓慢增长型公司的增长非常缓慢,大致与一个国家GNP的增长率相等。
快速增长型公司的增长非常迅速,有时一年会增长20%~30%,甚至更多。在快速增长型公司中你才能找到价格上涨最快的股票。
需要注意的是,一家公司的增长率不可能永远保持不变。—家公司并不总是固定地属于某一种类型。
在不同时期,在公司发展的不同阶段,公司的增长率在不断变化,公司也往往从最初的类型后来转变为另一种类型。
林奇在分析股票时,总是首先确定这个公司股票所属的不同类型,然后相应确定不同的投资预期目标,再进一步分析这家公司的具体情况,分别采取不同的投资策略。因此,林奇认为:“将股票分类是进行股票投资分析的第一步。”
我们只能首先分析确定公司股票的类型,对不同的类型采取不同的投资策略。那些千篇一律式的陈词滥调般的投资原则往往是非常愚蠢的。比如,当你的投资翻番时就把股票卖掉,两年后就把股票卖掉,当价格下跌10%时卖掉手中的股票可以减少损失,等。你千万不要相信这些是放之四海而皆准的投资原则。
请记住林奇的忠告:
“绝对不可能找到一个各种类型的股票普遍适用的公式。”
“不管股市某一天下跌50点还是108点,最终优秀公司的股票将上涨,而一般公司的股票将下跌,投资于这两种不同类型公司的投资者也将得到各自不同的投资回报。”
关于选股,林奇一再告诫投资者要独立思考,选择那些不被其他人关注的股票,做真正的逆向投资者:
“真正的逆向投资者并不是那种在大家都买热门股时偏买冷门股票的投资者(例如:当别人都在买股票时,他却在卖股票)。真正的逆向投资者会等待事态冷却下来以后再去买那些不被人所关注的股票,特别是那些让华尔街厌烦的股票。”
林奇认为自己成功的主要原因在于与众不同的选股策略:“在我掌管富达公司麦哲伦基金的这13年间,尽管有过无数次的失误,但每只个股还是平均上涨了20多倍。其原因在于我仔细研究之后,发现了一些不出名和不受大家喜爱的股票。我坚信任何一位投资者都可以从这样一种股票分析的策略中受益。”
林奇的选股策略的与众不同之处主要在于以下几个方面:
◆不选热门股,只选冷门股
人们往往对热门股追捧得趋之若鹜,林奇却对热门股回避得惟恐不及:
“如果有我不愿买的股票,那它一定是最热门行业中最热门的股票。”
热门股之所以如此热门,是因为其股价涨得很快,快得总是让人觉得不可思议。遗憾的是热门股跌起来也很快,甚至比涨得还快,快得让你找不到脱手的机会。
林奇对无人问津的冷门股却热情无限:“如果你找到了一只几乎不曾被机构投资者问津的股票,你就找到了一只有可能赚钱的股票。如果你找到一家公司,它既没有被分析家们访问过又没有专家会承认知道它,你赚钱的机会就会大了一倍。”
林奇发现找到冷门股的一个规律是:那些业务让人感到乏味、厌烦、甚至郁闷的公司股票,一般是少人问津的冷门股,却最终会成为股价不断上涨的大牛股。
◆避开高增长易变行业,关注低增长稳定行业
投资于高增长行业几乎是股市中投资策略的一个主流,林奇却对此不屑一顾:“很多人喜欢投资于让人激动的高增长行业,这里总是人潮如涌,但不包括我。我喜欢投资低速增长的行业,例如生产塑料小刀和叉子的公司,但是我也只有在找不到像葬礼服务业这种没有增长的行业时才会这么做。正是在这种零增长行业中才最有可能找到能赚大钱的股票。”
那么,林奇为什么如此与众不同呢?因为他发现高增长行业吸引了大批想进入该行业分享奶酪的聪明人和强势企业,而众多竞争对手的进入使该竞争变得非常激烈,公司很难持续保持利润率,股价相应会下跌。而低增长行业同时是低竞争行业,公司容易持续保持利润率,股价相应会随着利润的上升而上升。
◆远离高技术公司,关注低技术公司
1995年—1999年更是一次史无前例的牛市,指数上涨一倍,连续5年股票的回报率都在20%以上。这次大牛市中,人们对网络股等高科技企业的狂热是最大的推动力。但是,在人们的狂热中,林奇却再次宣称自己是技术厌恶者:
“一直以来,我都是技术厌恶者。我个人的经验表明,只有那些不盲目追赶潮流的人才能成为成功的投资者。事实上,我所知道的大多数有名的投资人(首当其冲的就是沃伦?巴菲特)都是技术厌恶者。他们从来不会买人那些自己不了解其业务情况的公司股票,我也同样如此。”
林奇和巴菲特一样,从来不会买人那些自己不了解其业务情况的、变化很快的、未来发展不稳定的公司股票。他同样坚持只投资于自己能够完全理解的传统稳定行业的公司股票。林奇说:“当周围有如此多的稳定行业时,为什么要购买易变行业的股票呢?”
◆别选多样化公司,关注专业化公司
林奇如此厌恶公司通过收购实现多样化,以至于他将其讽刺地称为“多元化恶化”:
“利润不错的公司通常不是把钱用来回购股票或者增加股息,而是更喜欢把钱浪费在收购其他公司这件蠢事上。这种‘精心准备’的收购对象却是一些这样的公司:(1)价格被高估;(2)业务经营完全超出他们的理解范围。这两点确保收购后的损失而不是收益能达到最大。”
相反,林奇喜欢寻找专业经营的优秀公司。比如,他非常关注抽资独立型公司。采用抽资摆脱做法的子公司或者分公司就会变成独立自由的经济实体。尤其是兼并和收购浪潮中成为恶意收购对象的公司,往往通过卖掉或者抽资摆脱做法,与子公司脱离关系后很快就可以击退恶意收购者,这时独立出来的子公司的股票就会独立上市。
◆不选竞争对手多的公司,只选竞争对手少的公司
人们往往关注那些在激烈竞争中脱颖而出的著名公司,而往往忽略了那些长期独霸行业却默默无闻的隐形冠军企业。
但林奇却与众不同:“相比较而言,我更愿意拥有一家地方性石头加工场的股票,而不愿拥有20世纪福克斯公司的股票。因为电影公司的竞争对手非常多,而石头加工场却有一个‘领地’(Niche):在它占据的领地内没有什么竞争对手。”
林奇对拥有市场领地的优势企业情有独钟:“我总在寻找这种拥有‘领地’的公司,理想的公司都有一个‘领地’。”这种领地使公司获得了能够在所在市领地形成的一种排他性独家经营权。这种排他性独家经营权正是林奇寻觅的阿拉丁神灯:“没有什么可以描述排他性独家经营权的价值……一旦你获得了排他性独家经营权,你就可以提高价格。”
林奇发现巴菲特和他一样,非常钟情于寻找具有独家经营权的优秀企业。林奇敬佩地说,巴菲特通过向“独家经营权”型公司投资赚了数十亿美元。
◆别听内幕消息,只看公司及其内部员工买入行动
对于一般投资人来说,有一种正大光明却比内幕消息更为准确可靠的方法:那就是观察公司员工买人自己公司的股票及公司回购自身股票的行动。这种行动,代表公司员工、公司本身对未来充满信心,他们对公司有着最内部的消息,最直接、最全部的理解,其买人行动是一个非常积极的信号。
林奇认为,公司回购自身股票是对公司未来充满信心的重要表现,而且回购股票长期而言会提高股票的价值:“一家公司回报投资者的最简单、最好的方法就是回购自己流通在外的股票。如果一家公司对自己未来的发展充满自信,它为什么不可以也像投资者那样向自己公司的股票进行投资呢?……从长期来看,回购股票只会对投资者有利。”
林奇认为,如果公司的普通员工们也在积极购买本公司的股票时,那就是一个非常重要的买入信号:“没有什么样的内幕消息能比公司的职员正在购买本公司的股票更能证明一只股票的价值。”一个年薪2万美元的普通员工,却用1万美元买人本公司的股票,这肯定是一次对其本人来说有重大意义的投资行动。但林奇认为内部人员购买本公司股票的原因却只有一个:“他们认为股票的价格被低估了,并且最终会上涨。”
林奇的估值原则:市盈率为主,综合估值
林奇主要采用市盈率进行股票估值。
按照林奇对股票的六种分类,不同类型公司的股票市盈率差别也很大。许多投资者通过对不同行业之间、同一行业不同公司之间的市盈率比较,寻找市盈率偏低的股票,从中获取超额投资利润。但林奇提醒我们,低市盈率股票并非就一定值得投资:“一些投资者认为不管什么股票只要它的市盈率低就应该买下来。但是这种投资策略对我来说没有什么意义。我们不应该拿苹果与橘子相比。因此能够衡量道氏化学公司股票价值的市盈率并不一定适合沃尔玛。”
只考虑市盈率当然很傻,但市盈率毕竟是一个非常容易得到的数据,在正确运用时对分析股票也有相当大的用途,因此,你不能对其不理不睬,而是要合理分析。
在根据市盈率判断股票高估还是低估时,一定要进行充分、全面的比较。一是将行业市盈率与市场整体市盈率进行比较;二是将目标公司的市盈率与行业平均市盈率比较;三是将目标公司不同年份的历史市盈率进行比较。
关于市盈率指标的运用,林奇给投资者的一个忠告是:“如果对于市盈率你可以什么都记不住,但你一定要记住,千万不要买入市盈率特别高的股票。”
林奇也会用每股账面资产与股价进行比较,但他很清楚这样做有潜在风险:“每股账面价值经常与公司的实际增长没有什么关系,它经常严重高估或者低估了公司的真实增长情况。”林奇提醒我们,当你为了账面价值而购买一只股票时,你必须仔细考虑一下那些资产都是些什么,到底真实的市场价值是多少。在分析公司资产时,林奇十分强调库存现金。如果库存现金数额巨大,就必须根据库存现金对其股价进行调整后,再计算市盈率。如果不考虑数额很大的库存现金的话,那么我们就会低估公司股票的价值。
林奇也会找到一些收益适中却非常值得投资的公司,这主要是因为它的自由现金流。通常这种公司都拥有一大笔旧设备的折旧,而这些旧设备短期内不会被淘汰。这种公司在改革的过程中还可以继续享受税收减免待遇(设备的折旧费用是免税的)。这些折旧使公司的自由现金流远远大于报表上的现金流,容易使一般投资者低估其股价。但林奇对现金流量的定义非常严格:“如果你根据现金流来购买股票的话,请确信这个现金流指的是自由现金流。自由现金流,是指在正常资本投资支出之后留下的现金。这是一笔只进不出的现金。”
林奇看待股市的原则:收益线与价格线
林奇认为,最终公司股价的走势取决于公司价值。尽管有时要经过数年时股价才能调整到与公司真实价值相符的水平,但是有价值的公司即使股价下跌很久,也最终会上涨,至少在多数情况下是这样。
投资者在任何——张既有股票价格走势线又有收益线这样的股票走势图上都会看到这种股票价格走势与收益走势基本相符的情形。林奇这样总结股票价格波动的规律:
“股票的价格线与收益线的变动趋势是相关的,如果股票价格线的波动偏离了收益线,它迟早还会恢复到与收益线的变动相关的趋势上。人们可能会关心日本人在做什么、韩国人在做什么,但是最终决定股票涨跌情况的还是收益。人们可能会判断出市场上股票短时间的波动情况,但从长期来看股票的波动情况还是取决于公司的收益。”
例如,道氏化学公司1971年—1975年和1985年—1988年间收益增加时股票价格随之上涨。在这两个时期之间,也就是从1975年—1985年,道氏化学公司的收益波动很大,同时股票价格的波动也很大。
1958年—1972年间,雅芳公司收益持续上涨,股价也相应从3美元上涨到惊人的140美元。尽管大家对这只股票普遍看好,但相对于收益来说股价明显太高了。1973年公司收益大跌,让投资人幻想破灭,股价也随之大跌。
林奇买入股票的原则:选择最佳时机
林奇认为,选择买人股票的最佳时机的前提是发现被市场低估的股票:“事实上,买人股票的最佳时机总是当你自己确信发现了价位合适的股票的时候,正如在商场中发现了一件价位适宜的商品一样。”
林奇从多年投资经验中发现最佳交易时机可能出现在以下两种特定时期。
第一种时机是出现在年底。股价下挫最严重的时期总是出现在一年中的10月到12月之间,这并非偶然,因为经纪人和投资人往往为了年底消费,愿意低价卖出股票。机构投资者同样喜欢在年底清除一些亏损的股票以便调整未来的证券组合。所有这些抛售行为将导致股价下跌,对于价位较低的股票影响更加严重。
第二种时机出现在每隔几年市场便会出现的崩盘、回落、狂跌时期。在这些令人惊惶的时期,如果投资人有足够的勇气在内心喊着“卖出”时仍镇静地买人,就会抓住那些曾认为不会再出现的良机。对于那些经营良好而且盈利可观的公司股票,在市场崩溃时期反而是良好的投资时机。
林奇的投资组合原则:集中投资,适当分散
长期以来一直存在集中投资与分散投资两种完全对立的投资组合管理观点。林奇却并不偏执于某一种组合模式:“寻找一种固定的组合模式不是投资的关键,投资的关键在于根据实际情况来分析某只股票的优势在哪里。”
林奇认为,确定投资的前提是研究分析股票价格是否合理:“假设你做了正确的研究并且买了价格合理的股票,这样你就已经在一定程度上使你的风险最小化了。”相反如果购买一只价格高估的股票就是一件不幸的事。因为即使这个公司取得了很好的业绩,投资人仍然难以从中赚钱。
林奇认为,投资应该尽可能集中投资优秀企业的好股票,而不能单纯为了多元化投资于自己不了解的股票。投资者应该尽可能多地持有下列公司的股票:“(1)你对该公司有一定的了解;(2)你通过研究发现这家公司拥有良好的发展前景。投资分析研究的结果可能是一只股票,也可能是多只股票符合以下标准,投资人应该根据自己的研究判断来决定投资组合持有股票的多少。但根本没有必要因为多元化投资而投资一些自己不熟悉的股票,对小投资者来说愚蠢的多元化投资如同恶魔一样可怕。”
但林奇同时认为,为了避免一些不可预见的风险发生,只投资于一只股票是不安全的,一个小的资产组合中应含有3只—10只股票较为适宜,这样既可以分散风险,又有可能产生更多收益。
(1)如果你希望寻求“10倍股” (tenbagger),那么你拥有的股票越多,在这些股票中出现“10倍股”的可能性就越大。
(2)拥有的股票越多,资产组合调整的弹性就越大,这是林奇投资策略的一个重要组成部分。有些人认为,林奇的投资成功在于其只投资于增长型股票,其实林奇投资于增长型股票的资金从未超过基金资产的30%—40%,余下部分被分别地投资于其他类型的股票以分散风险。“尽管我拥有1 400只股票,但我的一半资产投资于100只股票,2/3投资于200只股票,1%的资金分散投资于500只定期调整的次优股。我一直在找寻各个领域的有价值的股票,却并不执著于某一类型的股票。”
林奇认为,在选择分散投资的对象时应考虑下列因素:
增长缓慢型股票是低风险、低收益的股票;大笨象型股票是低风险、中等收益的股票;如果你确信了资产的价值,资产富余型股票是低风险、高收益的股票;周期型股票取决于投资人对周期的预期准确程度,可能是低风险、高收益,也可能是高风险、低收益。同时,十倍收益率股票易于从快速增长型或转型困境型股票中获得,这两种类型的股票都属于既是高风险又是高收益类型的股票。越是有潜力增长的股票越有可能下跌。
林奇认为,在投资组合管理中,要不断地复查自己的股票,同时仔细观察股市动态,根据公司及股市的变化对股票进行适当调整。
林奇的持股原则:长期投资胜过短期投资
林奇是长期投资的信奉者:“我对长期投资的兴趣无人能及。但是正如圣经中所说,鼓吹要比实践容易得多。”
林奇同样注意到,由于有了短线投资者和一些专业的对冲基金管理人员,使得现在股票的换手率变得异常迅速,短期交易已经充斥整个市场,并对市场行情产生了重大影响,造成了市场的更大波动。
但林奇非常反对短线交易:“指望依靠短线投资赚钱谋生就像依靠赛车、赌牌谋生一样机会非常渺茫。事实上,我把短线投资看做是在家里玩的卡西诺纸牌游戏(Casino)。在家里玩卡西诺纸牌游戏的缺点是要做大量的记录工作。如果你在股市上每天交易20次,那么一年下来要交易5 000次,而且所有的交易情况都必须记录下来,然后做成报表向美国国税局进行纳税申报。因此,短线交易只不过是一个养活了一大批会计人员的游戏。”…
请记住林奇关于长期投资的一句格言:“股票投资和减肥一样,决定最终结果的是耐心,而不是头脑。”
snprintf/_snprintf 在不同平台间函数差异
char *strncpy(char *dest, const char *src, size_t n);
snprintf函数并不是标准c/c++中规定的函数,但是在许多编译器中,厂商提供了其实现的版本。
在gcc中,该函数名称就snprintf,而在VC中称为_snprintf。(赖半仙注:snprintf,strncpy几个安全字符串函数已经加入到C99标准里面)
由于不是标准函数,没有一个统一的标准来规定该函数的行为,所以导致了各厂商间的实现版本可能会有差异。今天也的的确确看到了差异,因为这个小小的差异是我的程序无法正常的处理数据。
这个小小的差异发生在count参数。在VC中,这个count就是要写入的总字符串字符数,例如:
vc程序的输出是:
-1
1234567890@
gcc程序的输出是:
12
123456789
从输出结果可以知道:VC中的_snprintf的count参数表示,会向buff中写入count个字符,不包括'\0'字符,
并且不会在字符串末尾添加'\0'符,并且,如果字符串超过count,函数返回-1以标志可能导致的错误;gcc
中的snprintf函数的count参数表示,向buff中写入10个字符,包括'\0'字符,并且,返回实际的字符串长度,
例子中为12。
如果不了解这些函数在各平台间的差异,也许我们的程序在移植过程中会变得很脆弱。我们应该小心各种各样
的陷阱。
2009年6月3日星期三
男女关系大实话
恋爱篇 1.爱情是一种神奇的力量,会使人从哪里摔倒就从哪里爬起来,除非摔得(感情)残废了; 2.男的追女的,只要男的坚持不懈,最后一般可以追到;而女的追男的,只要男的不愿意,肯定追不到;因为男人皮较厚、心较硬,而女人则相反。 3.男人往往可以同时有几个同性好朋友,这些朋友可以互相认识或不认识,可以相差很大;而女人的同性好朋友往往只能有一个,且是排他的。男人的朋友可以是有男有女且年长年幼的,而女人的朋友大多是男的且比自己年长的。 4.女孩对男人的爱很多是从崇拜开始的。 婚姻篇 1.夫妻双方千万不要试图去改变对方,而应该去适应对方。因此,在结婚前就要想清楚,自己婚后能不能适应对方,如果不能,还是不结婚为妙。婚前,特别是女人,对对方的某种遗憾和不满,婚后迟早会以更剧烈的形式爆发。 2.夫妻双方门当户对(不仅仅是经济上的)的肯定比门不当户不对的家庭更容易稳定。有钱的家庭不一定幸福,但成天为经济发愁的家庭肯定不幸福。 3.千万不要找比自己多太多钱的女人,除非你更看重金钱。千万不要找学位比自己高比自己名牌的女人,除非你忍受得了她的心高和对你的轻蔑。 4.男人娶女人,最重要的是娶一个忠诚的人;女人嫁男人,最重要的是嫁一个负责的人。 5.爱情是天生的,可以一见钟情,但决不会自动维持长久。而婚姻是可以靠夫妻双方不断努力和外界各种约束而得到稳定的。 6.只有夫妻之间的爱情转化为亲情时,婚姻才可称之为婚姻,才会稳固。 7.婚姻是一条船,而爱情和孩子是两块最重要的压船石。 情人篇 1.人的本性其实都是花的,无论男女,只是受法律、舆论、机遇和自己的脸皮厚薄及胆量大小等制约,各人花的程度才表现不同。花和不花的人就好象 桔子和橙子。花的人的感情是可分的,分给不同的情人不同的桔瓣,虽大小不同,但都有桔子的汁。不花的人的感情是较难分的,就象橙子,要 么只能给一个人独享,要么就会分破分漏了。 2.男人有钱就变坏,女人变坏就有钱。 3.女人偷情,有第一次就会有第二次;有第一个人就会有第二个人。 4.一个女人,明知一个男人有妻子,如果还愿意和他单独来往,不管她出于什么目的,他们迟早会成为长期或短期情人的。 5.女人勾引男人,认识五分钟就可以上床;而男人勾引女人,有可能一辈子也成功不了。 6.女人使用美人计,正常的男人都会将计就计。 7.男女交往,如果不是以爱情为目的,则男方多为sex-driven,而女方多为profit-driven 8.男人花主要是寻找自信和刺激,大多并不愿以拆散自己的婚姻作代价;而女人花要么是寻找她所认为的爱情、要么是为了得到某些利益,但都可能放弃自己原来的婚姻。 9.人的感情需要是多层次的,如父母儿女之情、兄弟姐妹之情、夫妻之情、同性异性朋友之情、情人之情、同事之情等等,如果缺了某种,总会试图去寻找和弥补。 10.婚前花的人婚后不一定还那么花,但婚前不花的人婚后可能更花,婚前缺的往往更容易婚后补。 |
Linux下6款值得推荐的博客工具
KBlogger
homepage:http://kblogger.pwsp.net/
KBlogger是一款基于KDE环境简单易用博客工具(支持KDE4),集成在KDE kicker中。KBlogger功能相对简单支持日记修改、英文单词拼写检查、附件上传,值得一提的是:支持代理功能,需要代理翻墙的朋友应该需要这个代理功能,比如最近被射杀的blogspot等。kblogger支持blogger和其他的blog系统的API接口,例如著名的wordpress、MSN Spaces等。在fedora、ubuntu下,kblogger都可以在各自的软件中仓库中找到并安装。
QTM
homepage:http://qtm.blogistan.co.uk/
QTM,顾名思义,是一款基于Qt的博客工具,他内含博客模板、支持快速发布链接、日志跟踪(trackbacks)、ping、标签(technoratitags)、草稿保存和其他更多的功能选项。QTM支持目前大多数流行的博客程序接口,比如logger,MetaBlogAPI(包括Wordpress,Drupal和WindowsLive Spaces)和Movable Type。QTM还是跨平台支持linux、Mac OS、windows系统。该工具的主页上提供了源码及打包程序,比如rpm、deb。
BloGtk
homepage:http://blogtk.sourceforge.net/
BloGtk是一款Gnome环境下的写博软件,使用Python和PyGTK编写,快速、简单易用。支持Blogger, Movable Type, WordPress及其他支持Atom发布协议的blog,还可以自定义标签功能。尽管BloGtk有很多排版编辑功能,却不支持“所见即所得”模式,这是让人比较郁闷的,但是程序提供了一个预览模式配合博客内容排版,习惯了“所见即所得”写博客的朋友,使用起来可能有点不习惯。
GNOME Blog
homepage:http://www.gnome.org/~seth/gnome-blog/
GNOME blog是GNOME套件中的博客工具。界面简洁,支持所见即所得、英文拼写检查。GNOME blog支持包括Blogger,MetaBlogAPI(包括 Wordpress,Drupal,和Windows LiveSpaces),Movable Type及Pyblosxom、Advogato、LiveJournal等大多数流行博客。有一个比较特殊功能是定时发布,比如你可以在白天像记流水帐一样的增加日志内容,然后定时在晚上10点发布。
Drivel Journal Editor
homepage:http://www.dropline.net/drivel/
Drivel是一款GNOME环境下的博客工具,登录界面跟诸多IM软件的一样,编辑界面设计很简单,拥有日志发布、编辑、删除、预览最新日志等常用功能,支持离线写作和编辑、拼写检查,HTML语法高亮、所见即所得写作,如果在写作过程总发生错误导致程序关闭,还能恢复刚才编辑的日志。Drivel支持LiveJoumal,Blogger,MovableType,Advogato等博客协议以及支持使用Atom发布日志的其他博客。
ScribeFire(好东西总要放在最后的)
homepage:http://www.scribefire.com/
Scribefire这是我重点推荐的写博利器,也是我目前最喜欢的一款写博工具。这是一款以firefox扩展插件形式发布的写博程序。Scribefire功能是相当强大的,常用的编辑功能,该有的都有了,日志编辑、发布、修改、删除、注解、多媒体,支持离线写作和编辑、所见即所得写作,还支持TAG,在浏览网页的时候,看到一些好的文字,可以在通过firefox中的右键菜单,直接将文字发布到自己的博客中去。scribefre添加站点的时候,能自动侦测API协议文件,这样就免去了不用知道这个博客用了什么程序接口也能轻松设置连接博客。Scribefire目前支持Blogger、LiveJournal、MetaBlogAPI(包括 Wordpress,Drupal,和Windows Live Spaces)、Jeeran、Performancing、MovableType、Textpattem、Roller(测试中)。
免费好用的翻墙软件OpenVPN - Alonweb

首先你需要注册一个用户名:http://alonweb.com/user/register

注册完毕后你需要下载 Alonweb 的认证和配置文件,当然前提是你有安装 OpenVPN,如果没有的话跟着我一步步来吧。
在 Ubuntu 上安装 OpenVPN
打开终端,输入:
sudo apt-get install openvpn
安装完毕。
下载 Alonweb 配置和认证文件
打开终端,输入:
wget http://static.alonweb.com/downloads/alonweb.tar.gz
sudo tar -C /etc -zxvf alonweb.tar.gz
现在可以运行 OpenVPN 了,打开终端,输入:
sudo /etc/init.d/openvpn start

提示输入文章开头注册的用户名和密码,OK。
现在你可以随心所欲的 Taste the freedom of internet 了。
2009年6月2日星期二
vim实用技术(1)
下面首先对Vim做一下最基本的介绍,并给出一些参考信息,以方便对Vim不熟悉的读者也能够理解并自己查阅进一步信息。
与大部分其它编辑器不同,进入Vim后,缺省状态下键入的字符并不会插入到所编辑的文件之中。Vim的模式(mode,可以简单地理解为"状态")概念非常重要。需要知道,Vim有以下几个模式:
- 正常(normal)模式,缺省的编辑模式;下面如果不加特殊说明,提到的命令都直接在正常模式下输入;任何其它模式中都可以通过键盘上的Esc键回到正常模式。
- 命令(command)模式,用于执行较长、较复杂的命令;在正常模式下输入":"(一般命令)、"/"(正向搜索)或"?"(反向搜索)即可进入该模式;命令模式下的命令要输入回车键(Enter)才算完成。
- 插入(insert)模式,输入文本时使用;在正常模式下键入"i"(insert)或"a"(append)即可进入插入模式(也有另外一些命令,如"c",也可以进入插入模式,但这些命令有其它的作用)。
- 可视(visual)模式,用于选定文本块;可以在正常模式下输入"v"(小写)来按字符选定,输入"V"(大写)来按行选定,或输入"Ctrl-V"来按方块选定。
- 选择(select)模式,与普通的Windows编辑器较为接近的选择文本块的方式;在以可视模式和选择模式之一选定文本块之后,可以使用"Ctrl-G"切换到另一模式--该模式很少在Linux上使用,本文中就不再介绍了。
Vim带有完整的帮助文档。在当前的Vim 6.4的标准发布中,有一百多章、近六十万英文词的帮助文件,进入Vim后输入":help"(命令模式中输入的命令要敲回车键才结束输入,下面不再说明 这一点)即可访问。本文在介绍特性时,对文档中已经说明得很详细的内容只会提纲挈领地加以简短说明和提供应用范例,并提供访问相应的Vim文档的命令。
一般的发布版中还常常带有一个简单的30分钟的Vim教程,新手在操作系统的命令行上输入"vimtutor" 命令即可开始学习。除上面的简单说明外,本文并不介绍最基本的Vim命令,Vim的新手应该先通过教程熟悉一下Vim,再继续往下阅读。
建议所有的Vim用户经常访问Vim的主站点[1]。上面除了基本的发布、安装、下载等信息外,最有用的内容是用户可以上传自己写的Vim脚本 (script)和撰写自己认为有用的提示(tip),供其他Vim用户使用。在写这一段的时候,Vim站点上已有一千三百多个脚本,提示数刚好超过了一 千。对于序号为nn的脚本,直接访问的URL是http://www.vim.org/scripts/script.php?script_id= nn;对于序号为nn的提示,直接访问的URL是http://www.vim.org/tips/tip.php?tip_id=nn。
不另加说明的话,本文讨论的内容适用于Vim版本6(即从6.0到6.4)。建议认真的Vim用户升级到Vim 6.4,最好是自己编译升级所有的补丁包。相关信息网站上都有,此处不再赘述。
Vim支持世界上的主要语言,当然也包括中文。如果你用Vim编辑中文,而中文不能正确显示,那有两种可能性:一是使用的Vim不完整,不含多字节语言支持(multi_byte特性);二是某个配置出了问题。
说到多语言支持,最基本的概念有两个:一是文件的语言编码,而是环境的内部编码。在较老的操作系统中,不管Linux还是Windows,这两个编 码都是一样的,也就意味着,一次只能处理一种编码的文件:要么只能处理西文编码(Latin1,即ISO-8859-1 [5]),要么只能处理中文编码(GB2312 [2])。而在新的操作系统中,这两者可以是不一样的。在Linux上,常见的情况是环境的内部编码使用UTF-8 [6],而UTF-8可以同任何一种语言编码作无损转换,这就保证了系统的多语言处理能力。Vim这方面秉承了Unix/Linux的传统,在内部编码使 UTF-8的时候,可以同时处理不同意语言编码的文件。以下列出了和语言编码的相关的设置:
- 环境变量LANG(使用的语言);
- 环境变量LC_CTYPE(使用的内部编码);
- Vim选项encoding(Vim的内部编码);
- Vim选项termencoding(Vim在与屏幕/键盘交互时使用的编码);
- Vim选项fileencoding(Vim当前编辑的文件在存储时的编码);
- Vim选项fileencodings(Vim打开文件时的尝试使用的编码);
- Vim选项ambiwidth(对"不明宽度"字符的处理方式;Vim 6.1.455后引入)。
如果你的环境只需要处理简体中文的话,那么,最简单的方式就是所有的设定全部使用简体中文。只需要:设定LANG=zh_CN.GB2312,不设 定LC_CTYPE(默认跟LANG一样),不设定与编码相关的Vim选项(默认由LANG和LC_CTYPE决定),也无需设定Vim选项 ambiwidth。也就是说,我们把语言设定为中国(CN)使用的中文(zh),编码为GB2312(注意:Vim内部并不识别国标GB18030 [3],所以此处只能设GB2312;参看下面关于UTF-8的讨论)。
不过,如果按照目前Linux下的惯例,内部编码一律使用UTF-8的话,会有一些额外的好处,其中之一就是在这种情况下Vim支持同时编辑多种不 同编码的文件,如简体中文和繁体中文(见下图);另外,此时Vim也可以通过编码转换支持GBK [4]和GB18030了。这样,众多关于语言编码的Vim选项就有了用武之地了。下面进一步说明一下这些选项和推荐设定(如果适用的话):

- encoding=utf-8:不管文件的编码如何,不管如何显示和输入,Vim内部使用的编码是UTF-8;这是国际化支持的基础。
- termencoding:取决于实际的终端或X Window的设定。举例来说,如果选择语言简体中文登录到X Window,或者正在使用CXTERM [10]的话,那么该选项应被设为GB2312;如果使用缺省的语言(LANG=en_US.UTF-8)登录到X Window,或者使用PuTTY [11]远程访问Linux机器、并且设定里的字符编码(配置中Window-Translation)设为UTF-8的话,该选项就应该设为utf- 8。从Windows下使用PuTTY远程连接Linux的请特别注意,测试表明,仅在使用UTF-8的情况下,PuTTY才能可靠地支持中文的显示和输 入(显示字体必须设成中文字体)。
- fileencoding:文件载入时,该选项被置为Vim认定的文件编码,因此,存储时文件的编码不会改变。此处和下面 fileencodings可使用的编码为libiconv支持的所有几百种编码(如果编译时包含了iconv特性的话),与中文相关的有gb2312、 gbk、gb18030、hz-gb-2312、iso-2022-cn、big5、cp936、cp950等。如果创建新文件,你又不希望使用UTF- 8作为文件编码时,那么,你可能需要手工设定该选项,如":set fileencoding=gb2312"。需要注意的一点是,使用"set"来设定该选项的话会改变以后新建文件的缺省编码,而使用 "setlocal"的话则只影响当前文件(参考":help setlocal")。 fileencodings=ucs-bom,utf-8,chinese:Vim会首先判断文件的开头是否是一个Unicode [7]的BOM(byte order mark)字符[8],是的话则把文件的其余内容解释成相应的Unicode序列;否的话再试图把文件内容解释成UTF-8的序列;再失败的话,则把文件 解释为简体中文(chinese是一个跨平台的简体中文字符集的别名,Linux下相当于gb2312和euc-cn;此处也可以根据需要以 gb2312、gbk或gb18030等编码替代)。需要注意的是,该顺序不能颠倒,并且在后面再添加其它编码如big5、latin1也是没有意义的, 因为Vim不能识别8比特编码中的错误,因此这些编码后列的编码永远不会被用到。
- ambiwidth=double:把所有的"不明宽度"字符[9]--指的是在Unicode字符集中某些同时在东西方语言中使 用的字符,如省略号、破折号、书名号和全角引号,在西方文字中通常字符宽度等同于普通ASCII字符,而在东方文字中通常字符宽度等同于两倍的普通 ASCII字符,因而其宽度"不明"--的宽度置为双倍字符宽度(中文字符宽度)。此数值只在encoding设为utf-8或某一Unicode编码时 才有效。需要额外注意的是,如果你通过终端使用Vim的话,需要令终端也将这些字符显示为双宽度。比如,XTERM [12]的情况下应该使用选项"-cjk",即使用命令"uxterm -cjk"来启动使用双宽度显示这些字符的Unicode X终端;使用PuTTY远程连接的话则应在配置的Window-Translation中选中"Treat CJK ambiguous characters as wide"(参见下图)。

|
在使用内部编码UTF-8的情况下,如需编辑fileencodings之外(其不能自动识别)的文件,则可以使用以下命令:":e ++enc=编码 文件名"。详情可参考":help ++enc"。
不管是文本界面还是图形界面的Vim,都支持鼠标。不过,在文本界面中,鼠标支持缺省没有被激活;这就意味着,在终端上使用鼠标,所有的功能仍和没 有使用Vim时相同,并不受Vim影响。要激活文本界面中的鼠标支持也很容易,只需要执行一句 ":set mouse=a"即可。
启用了鼠标支持之后,Vim主要支持的鼠标操作有:
- 单击移动光标到点击的位置;
- 在帮助的关键字上双击显示该关键字相关的帮助信息;
- 在普通文本上双击选中点击位置的单词;
- 拖动鼠标选中文本;
- 使用鼠标滚轮滚动当前缓冲区中的文本;
- 多窗口编辑时可以拖动窗口分栏的位置。
进一步的信息可参看":help 'mouse'"、":help mouse-using"和":help scroll-mouse-wheel"。
特别需要值得一提的是,在远程访问Linux系统时也是可以使用鼠标的。如果使用X Window系统,自然不必说;而使用SSH远程连接时,大部分Linux下的终端客户程序,如XTERM、GNOME-Terminal [13]、较新版本的Konsole [14],以及Windows下的PuTTY,支持鼠标的使用:你只需简单地启动Vim、执行一句":set mouse=a"就可以了(当然,也可以把上面的语句去掉起始的冒号放到.vimrc文件中)。
对于编写代码,缩进是最基本的概念之一。至于缩进是使用空格还是制表符(Tab),或者缩进是否正好使用一个制表符来表示,很多程序员,特别是 Windows开发出身的程序员,很容易混淆。幸好,Vim对于这些概念有非常完整的支持,足以应付各种复杂的情况。以下是相关的主要Vim选项:
- shiftwidth(缩进的空格数);
- tabstop(制表符的宽度);
- expandtab(是否在缩进和遇到Tab键时使用空格替代;使用noexpandtab取消设置);
- softtabstop(软制表符宽度,设置为非零数值后使用Tab键和Backspace时光标移动的格数等于该数值,但实际插入的字符仍受tabstop和expandtab控制);
- autoindent(自动缩进,即每行的缩进值与上一行相等;使用noautoindent取消设置);
- cindent(使用C语言的缩进方式,根据特殊字符如"{"、"}"、":"和语句是否结束等信息自动调整缩进;在编辑C/C++等类型文件时会自动设定;使用nocindent取消设置);
- cinoptions(C语言缩进的具体方式,请参考":help cinoptions-values");
- paste(粘贴模式,会取消所有上述选项的影响来保证后面的操作--通常是从剪贴板粘贴代码--保持原有代码的风格;使用nopaste取消设置)。
下面给出一些常用的组合:
- shiftwidth=4 tabstop=4:很多Windows出身的程序员会习惯这样的设置,让缩进等于制表符宽度。
- shiftwidth=4 tabstop=8:很多Unix程序员的设置,仍使用较常用的4格缩进,但制表符宽度为标准的8。
- cinoptions=>4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1 shiftwidth=2 tabstop=8:标准的GNU编码风格的设置,对Vim缺省的C缩进风格作了很多微调,比如,if语句下的"{"、"}"要在"if"后缩进两格,但 函数定义部分"{"、"}"仍和函数名一行对齐。开源软件经常使用该种缩进风格。
在编辑代码时一个很有用的命令是调整代码缩进,可以很方便地增加(或减少)若干级缩进,并自动根据选项设定使用正确的空格或制表符。只需要使用 "V"选中你要调整的代码行,然后键入"<"(或">")即可增加(或减少)一级缩进;在键入"<"(或">")之前键入数字则 可以指定增加(或减少)的缩进级数。
我们要讨论的最后一个相关的命令是":retab"。在设定了expandtab选项时,该选项会把所有的制表符转换成空格。在没有设定 expandtab选项时,使用":retab!"可把空白字符转换成制表符(可能误转换,慎用),使用":retab n"可以把tabstop重置为n,并转换含制表符的连续空白字符为适当的制表符和空格的组合以保证含制表符的行看起来没有任何变化。详细信息请参看": help :retab"。
没人愿意每次都手工输入一大堆的Tab和缩进设定。可是,放在.vimrc文件中似乎也不是个好主意:如果我编辑的代码不止一种风格呢?--考虑一 下,如果你参加开源软件项目,你能保证你参加的所有项目,还有你公司里的软件项目,代码风格都一样吗?--Vim是我用过的第一个支持在文件中记录代码风 格设定的编辑器。这个特性在Vim中叫做模式行,实际上,它所做的是在打开文件时根据文件中的Vim指令设定相关的Vim选项。下面就是一个嵌在C源代码 中的模式行:
|
这种方式非常简单,功能也非常强大。另外请注意,出于安全的考虑,模式行中的选项只影响当前文件(":help modeline-local"),也不能做任何设置选项以外的工作。
提升Ubuntu用户体验的10大应用程序
1.Ubuntu Tweak - 易用性体验
http://ubuntu-tweak.com/
Ubuntu Tweak是一款专门为Ubuntu(GNOME桌面)准备的配置、调整工具。主要面向新手级的普通用户。它可以设置很多并不能在系统首选项中设置的隐藏选项,以满足用户自定义的乐趣。即使是新手,也可以方便地通过它来进行适合自己的系统调整。![]()
![]()
2.screenlets - DIY体验
http://www.screenlets.org/
Screenlets是基于Python语言的,在Ubuntu下能够在桌面上添加各种小玩意的一款软件,如即时贴、时钟、天气预报、月历等等。这个软件和 Mac OS X 中的 Dashboard 很类似,可与 Compiz 或 Beryl 配合使用,以便装饰或扩展桌面。Screenlets给用户的体验可以说是带来无穷无尽的乐趣。![]()
![]()
3.Handbrake - 多媒体体验
http://handbrake.fr/
Handbrake一款开源并遵从GPL协议的跨平台的多媒体文件转换软件。无需特别技巧便可直接将 DVD 电影转换成 AVI/MPEG4 格式,还有 MP4 及 OGM 输出、AAC 及 Vorbis 编码.HandBrake 能转换被加密的(encrypted)DVD,转换时以多任务方式工作,同时让你选择语言,声音及画面质量,转换后的画面大小等.具备 x264 的多线程 H.264 编码和 H.264 Baseline 选项.![]()
![]()
4.Yakuake - 终端体验
http://yakuake.uv.ro/
Yakuake基于KDE桌面的Quake风格终端,要是基于gnome就更好了,拥有热键控制,背景透明,阴影,动画效果,带标签,可定制等强大的终端集成化特色功能,如果用一个字来形容,那就是:酷!![]()
![]()
5.UNetbootin - 安装体验
http://unetbootin.sourceforge.net/
unetbootin为一款跨平台的,用来建立各种LINUX USB系统,也可以加载各种系统工具,允许将各种Linux/BSD的发行版或者其他操作系统安装到一个真正的分区,而且可以不用光盘,因为可以透过网络自动下载,让一切linux安装变得更简单!![]()
![]()
6.Songbird - 多媒体体验
http://getsongbird.com/
Songbird是一款媒体播放器自由软件,Songbird整合了桌面网络播放器、数位播放器与网页浏览器,是如iTunes等私有媒体播放器的替代器之一。Songbird基于Mozilla的XULRunner平台,因此只需经少量修改就可在Windows、Mac OS X、与大多数的Linux个人电脑上运行。Songbird使用GStreamer媒体框架来播放媒体及使用SQLite作为媒体柜的存储引擎。这种集成化的软件,应该是未来软件的一个发展方向。![]()
![]()
7.Conky - 系统监视
http://conky.sourceforge.net/
Conky是一款用于X桌面下的系统监视软件。Conky具有很高的可配置性,可以监视许多系统参数,如:CPU、内存、交换内存、硬盘使用情况等状态;各种硬件的温度;系统的进程(top);网络状态;电池电量;系统信息和邮件收发;各种音乐播放器MPD、XMMS2、BMPx、Audacious)的控制。不像其他系统监视器那样需要高级别的部件工具箱来渲染他们的信息,Conky可以直接在X视窗下渲染,这意味着在相同配置下Conky可以消耗更少的资源来达到效果,很多朋友在问某某的桌面可以看到这么多参数,怎么如此酷,也许就在用conky。![]()
8.VirtualBox - 虚拟机
http://www.virtualbox.org/
VirtualBox应该说是目前仅次于VM的虚拟机软件了,不久前,SUN又归入甲骨文门下,相信甲骨文将会让virtualbox的功能得到更大提升。使用者可以在virtualbox上安装并且执行Solaris、Windows、Linux、OS/2 Warp、OpenBSD及FreeBSD等系统。重要的一点,virtualbox之绝对遵循GPL的开源软件。VirtualBox特别功能包括Remote Desktop Protocol(RDP)、iSCSI及USB的支援,如果用Ubuntu或其他的linux发行版加上virtualbox的组合,绝对可以让你的电脑成为单系统机器。![]()
![]()
9.DropBox - 分享体验
https://www.getdropbox.com/
Dropbox其实是一个供跨平台(Windows, Mac OS,Linux)的网络在线存储、同步以及分享的客户端软件(在LINUX下确切说是nautilus的一个插件),目前用户可以获得2Gb的免费存储容量空间,Dropbox将在你的主目录下生成一个虚拟的目录,把需要同步上传的东西往里放就可以,省事、省心。![]()
![]()
10.GNOME Do - 易用性体验
http://do.davebsd.com/
GNOME Do是一款类似于Mac OS X平台下Quick Silver的软件,用于快速启动任何自己想启动的东西。![]()
![]()
更多值得体验的软件,还有待各位linuxer慢慢挖掘。