2010年4月30日星期五

再现经久不衰的话题:创业(转)

摘自:http://forum.esm-cn.com/FORUM_POST_1000010035_1200501690_0.HTM

本人创业10年,9死1生,占过便宜吃过亏,辛苦过也懒惰过,看到这个论坛里面充斥着大量的没有创业经验的人在指导别人创业,另有大量由于缺乏思路赔光家 底的

故事,本人非常痛心,本着救人加吹牛的心态特将本人独家秘籍和盘托出,以免大家少走弯路.

教程秘籍一: 为什么要创业?
这是在你创业前必须先问自己的第一个问题,切记切记!!
答案一: 身边的人创业发了,我又不比他笨,如果我创业,肯定不会错.
答案二: 我都年龄不老小了,人总不能打工一辈子吧?现在手头这个项目正好创业!
答案三:现在手头有点积蓄,年龄也不大,不怕亏,亏了可以再去打工,年龄大了就瞻前顾后了
答案四:开饭馆的都发了(或者其他任意行业,总之是创业者准备去看得事情),我也要开
答案五:职位混到头了,老板也不可能给总经理当,工资也会再涨多少了,此时不创业更待何时?
答案六:现在房子那么贵,打工看来是这辈子都买不起房了,拼了!

以上是绝大多数缺乏创业知识的人的心中选择的答案,如果你的答案出现在上述答案中,那么请你千万记住,把创业的想法就当作吹牛的谈资就可以了。

正确的答案是: 我已经发现了一个确定可以赚到钱的项目!
千万要记住此秘籍:
创业教程初级班秘籍之一: 因为发现了确定的可以赚到钱的可行的项目,所以我决定创业!

任何非此答案的创业理由都是错误的!年龄大了,别人发了,房子贵了,现在有闲钱都不是你可以去创业的理由,只能成为你败家的借口!

二:我是个有经营头脑的人吗?
很不幸,这个世界绝大多数人是不适合独立创业的,但是只有极少数人可以清醒地认识到这个问题(一般是把自己的老婆孩子都亏光之后)
注意:经营头脑不等于管理头脑,也不等于执行头脑。但,如果你要独立创业的话,没有经营头脑等于自杀,等于拿自己钱玩过家家。所以鉴定一下自己这

个 脑袋,是至关重要的头等大事,如果你有幸可以碰到我这样的好人的话,我可以免费帮你鉴定,呵呵!
太多的故事是这样告诉大家的:王老三勤勤恳恳,拿吃亏当福,最终终于成了大地主!
李老四早上3点起床干活,晚上2点上床睡觉,终于成了一代富豪!故事本来是逗人玩的,无非是善有善报,恶有恶报那一套,但是不幸的是,我发现很多人

正 是拿这样的故事来看待自己的创业的:我能吃苦!我不怕吃亏! 我意志坚强,可以顶住所有的压力!这些都不是你可以成功的充分条件
拿我遇到的真实故事告诉大家什么叫经营头脑吧。
公司同事每天中午都会打电话定快餐,在众多的送快餐的人中有这样一位:提一个大木盒子,上面盖着保温的棉毛巾,每次这个人把某位同事定好的饭交给

定 饭的人后,都会问有没有人没有定饭?因为他随时带了4~5份没有人定的饭,而我发现,每次都有人没有定饭,而直接向此人购买了盒饭。我怀疑此人在帮某

餐 厅送饭的同时,又顺便炒了单,要知道送快餐提成才5毛,但是炒单我估计他一份盒饭至少赚了2元。

这就叫经营头脑!---在工作中轻易的发现商机的能力!

好了,那么如何鉴别你是否有经营头脑呢?很简单,回顾一下过去,你是否曾经有过在工作中发现某件事情可以创造利润,而没有人去干?如果你过去从来

没 有过这样的体验,那么,很不幸,你是个没有经营头脑的人,你—---至少不适合独立创业!如果你现在开始开动脑筋,发现好像好多商机,那么恭喜你,你很

适 合当副总,就是在我的指导下工作,呵呵!

创业教程初级班秘籍二:没有经营头脑的人,不适合独立创业!

三: 如何判断一个项目是好项目?

如果你通过了俺的上述2关考察,那么让我们进入到下一个环节,让我们一起看看你自以为好的项目到底如何.
由于身在深圳的缘故,这十几年目睹了无数的创业故事,而其中的大多数项目基本上从开始的那一天就注定是要死的,如果你可以提前预知自己必死无疑,那你想想 你可以节省多少钱啊?可以让你在未来少多少的追悔莫及的感觉啊? 所以请我这样的高手给你咨询一下,实在是太必要了.
先用身边阵亡的朋友举几个例子吧:
例一: 某朋友在某大型公司做部门经理,手头积蓄了30万,感觉在深圳买房遥遥无期,而且觉得年龄不饶人,同时发现深圳黑手机制造是个集散地,决定回老家成立公 司,销售黑手机。
例二:某朋友手头积蓄了50万,感觉不能再继续打工了,决定加盟7-11连锁店
例三:某朋友是原某大型手机厂某省公司5年的老总,该大型公司倒闭后,由于该朋友人品极佳,手下数十名员工宁愿数月没有工资,要让该朋友带领大家创业,该 朋友最终选择了做某啤酒的该省代理另外加某英语学习机的代理
例四:某朋友原来从事电脑it行业的销售,决定去国外开创一番事业,最终选择去印尼开展短信业务,具体是与深圳某短信设备制造商及运营商合作,希望在印尼 copy此业务


大家感觉上述项目如何?这些项目都有人在做,而且都有人在大把赚钱,但---你可以在里面赚到钱吗? 做还是不做,这是个问题!
以俺如此资深的专家来对上述几个项目逐一点评:
项目一:贸易型的生意一般都是向上游买,然后向下游卖,中间赚取差价,看起来非常简单,一般人都喜欢计算计算差价然后就直接冲进去了,少部分人侥幸成功 了,大部分人将自己的购房首期款给丢水里了。为什么发生这样的事情呢? 教你一招最简单的判断此类生意是否可作得秘籍—那就是上游下游2头,你至少要占着一头,什么意思?就是要么你对上游绝对熟悉,没人可以骗了你,你对所有细 节都非常清楚,或者你有极其可靠的专业人士在充当你的幕僚(例如老婆,小舅子,表哥表弟,高中同学等等,总之就是绝对不会欺骗你,而且会无私告诉你一切的 一个人) ,下游同理,如果对上游不清楚,那么如果你对销售此产品具有绝对的把握,或者有绝对的幕僚协助你。如果2头都占了,那么恭喜你,你可以直接进入未来我写的 中级班教程,初级班不需要学习了。如果你2头都不占,那么也要恭喜你,你将用你可怜的积蓄作为学费,自学成材学会我初级班教程的10~30%的内容。
此项目一就是犯了2头都不熟悉的大错,凭感觉做事,必死无疑阿!




例二点评:凡是项目就牵涉到要投多少钱的问题,以及回报如何的问题,我们可以试想一下,7-11一家店投资数十万,如果该店营业额不佳,你打算如何? 7- 11是否每家店都赚钱?我如何保证我这家店可以赚到钱?7-11总店会给你退款吗?你可以很快将该店转让吗?投资1个点可以有超过年10%的收益吗?  10%的收益你可以接受吗?如果有稳定的超过10%的收益,那些有着数千万没地方投资的大老板为何不一口气开几百家7-11来赚这个稳定的利润?
千万切记俺的此秘籍:创业初期,绝对不可以干资本性项目!!!
原因如下:1.资本性项目一般投资巨大,利润回报并不可观
2.资本性项目的退出机制没有保障,如果你后悔的时候,你会发现,这个项目套住的
远远不是你那点钱,还有你未来无限的时间及精力,如果这个项目很快亏钱还好,
你可以下定决心马上结束,如果这个项目半死不活,是个鸡肋,哈哈,你完蛋了!
有人不同意我的观点了,说身边就很多朋友加盟某连锁,现在发了,或者说我自己就加盟某品牌,现在日子过得轻松又舒服。 但—--请问,如果加盟如此好赚,为何总店不自己去搞直营?
所以凡是加盟连锁等等都属于此类项目,成功几率绝对小于40%,有人说40%的成功几率已经很高了,生意那有一定成功的?真的吗?请你闭上眼睛仔细想想, 你真的做好了亏钱的思想准备了吗?我敢打赌,几乎所有开始创业的人,都没有做好亏钱的思想准备,他们只是在不得不接受亏钱的现实面前才低下自己高贵的头。
不过现在好了,因为你遇到了我这个诲人不倦的百年难遇的专家,我就是那个传说中专门给你赠送秘籍的大侠,遇到了我,好好上我的课,记住----我们的创业 目标是----100%的成功,不是40%的成功!!
凡是开工厂,加盟连锁,开发某个东西,设计某个新产品,都属于此类项目,这些东西并非不可以做,并非不赚钱,但是它不合适拿着自己所有积蓄去搏的初创业的 人。

例三点评:请问:什么是机会? 这个世界绝大多数(超过99%)的人,不懂什么是机会,总是哀叹机会不肯眷顾自己,觉得自己比萨达姆背,比拉登苦。让我这个世外高人告诉你什么是机会 ------机会就是你已经拥有的东西中有价值的部分。 可以理解吗? 是不是太高深了?也许应该放在中级班的教程。 如果一个东西你自始自终没有拥有过,那显然不会是你的机会。而机会就在你的身边,而且你就正在拥有者它,但是----很不幸,因为你太蠢了,所以你不认为 他是机会,你认为那是垃圾,你眼中的机会是你没有得到的东西,是别人正在靠着发财的事情,例如:你觉得张三机会好,有个表哥在证监会,可以透露股票信息, 李四机会好,碰到禽流感,卖醋结果发了。对张三来说自己的表哥就是自己的机会,对李四来说自己卖的醋就是机会。所以对你来说,你一定要把自己拥有的资源关 系等等人认认真真梳理3遍以上,你的机会就隐藏在你拥有的东西之中,绝对不是在你没有拥有的东西中。
本人某朋友生意遇到挫折,不过手头依然有比较充裕的资金,哀叹不知该干什么,寻找项目混混恶恶的过了1年多,在得到俺的指点之后,将所有过去认识的人的名 片联系方式全部找出,经过1周的筛选,找出3个潜在机会,最终经过比较之后选定了其中1个,仅用不到1个月的时间,重新开始也业务,目前生意蒸蒸日上,哈 哈。
找不到自己的机会的人是可悲的,但是不认为自己的机会是机会的人是愚蠢的。例三中的失败者,就是把自己的机会(对该省手机市场的极度掌控)弃之不用,而转 去销售啤酒学习机等根本外行的市场。最终将价值数百万的无形资产(对该省手机市场的掌控及完整的营销队伍)丢入垃圾桶,其失败从最开始就是注定的。该朋友 在创业初期,俺多次给其指出其错误,但该朋友极度自信,不接受俺的逆耳忠言,经过2年的艰辛,终于结束清盘,现在沦落为替某公司打工,又重新去另外的地方 当省公司老总去了。可悲可叹!
关于如何有效地发掘及利用自己的机会,《穷爸爸富爸爸》书里每年关于作者小时候出租图书的故事是最具代表性的故事。建议初次想创业的人务必上网查找学习此 故事。
关于如何认识机会,鉴别机会,事实上不仅仅使用于初创业的人,也同样适用于在公司打工希望得到升迁的人,甚至已经创业成功的人,但是该命题设计内容太多, 呆俺有机会在高级班的课程中为大家详细阐述。
这个思路也可以换一种想法,就是---要做自己熟悉的东西,你的商业机会就在你的身边,而绝对不是某个八杆子打不倒的人,突然告诉你的信息,或者网上道听 途说的什么东西,如果创业初期你做的不是你熟悉的东西,你的失败几率大于90%。 放弃自己的机会,等于放弃自己的未来阿。
例三中的朋友去干了自己不熟悉的东西,而且轻易放弃自己的优势,败之必然。
在一次提醒大家:创业初期,我们的成功目标是100%!!千万不要尝试挑战自己的智商,千万不要过高估计自己的能力。


例 四点评:该朋友是俺朋友中最具魄力的创业者,英文一窍不通,凭着在qq上认识了几个印尼华人,就只身跑去印尼,在雅加达机场不知去哪里,耗了半天终于碰到 某热心华人,给其介绍了一个廉价宾馆,才算落身。时间已经过去了块1年了,该朋友已经干掉了差不多20万的积蓄,认识了若干印尼华人大款,但是项目做成0 个,前几天和该朋友吃饭,摘录部分谈话如下:
俺:你当时去到底准备搞什么项目阿?
答:准备搞短信,你看深圳群发短信多猖狂,印尼几乎没有,这肯定有着巨大的市场潜力
俺:那你具体准备干什么?卖短信设备?还是在印尼替别人发垃圾短信赚钱?
答:什么都干啊
俺:那你卖了多少设备了?你的日常工作都是干什么?
答:去认识有钱的大老板,让他们投资搞这个项目
俺:进展如何?
答:我现在认识了印尼的华人第二富,计划投资2000万搞这个项目,答应给我5%的股份!
俺:投资2000万具体搞什么?这些钱都是用来干什么?赚钱的方式是什么?怎么发展群发短信的客户?华人第二富看得上这个生意吗?
答: 。。。。车到山前必有路。。
俺:你合作的深圳厂商啥关系和你?你以前对短信业务及技术了解多少阿?
答:没关系,去之前在网上查的公司,原来对短信业务及技术完全不了解。
俺:为什么你不直接把发短信的这些设备在当地的电脑通信市场去销售?
答:我们投资的公司搞起来之后就会去销售了
俺:你合作的厂商技术实力如何?东西是他么自己开发的吗?信誉如何?会不会骗你?
答: /?#¥¥%……¥……。。

我已经不想再将谈话的内容罗列了,这个世界胆子大的人真是多阿,可惜他们明白胆子大不能成为成功的助力剂,反而是加速失败的推动力。
对于有此类想法的人,我有个很简单的建议:把房子卖了,金银首饰全部换成现金,直接去澳门葡金赌场,全部押在一个台上,一次搞定,成功几率同样是10%, 中了赚10倍走人,亏了你也就心死了。这样至少可以节约你的精力,如何?


四: 如何进行沙盘演习
在俺过去指导过的无数的失败分子中,几乎无人可以回答我的问题超过5个。 先学习一段孙子兵法:夫未战而庙算胜者,得算多也;未战而庙算不胜者,得算少也。多算胜少算,而况于无算乎!吾以此观之,胜负见矣。 看到没有?几千年前没有上过大学的人都知道多算胜少算,但是现在的人为啥越活越笨了呢?而且读书越多的人越笨。
我一般问那些loser的问题如下(无先后顺序):
1. 你怎么知道你要干的这个东西赚钱啊?
2. 竞争对手都是谁啊?
3. 你和竞争对手相比的优势有啥?
4. 顾客为啥要向你买东西啊?
5. 请你把你的生意全过程给我讲解一遍
6. 你的生意如果按照你的预测完全可以达到目标,可以赚多少钱?
7. 你的经营潜在的风险都是那些?请一一给我详细解释
8. 你打算如何控制你的风险?请详细讲解给我听
9. 你的成本构成都有那些?请给我详细讲解一遍
10. ------

如果要进行庙算,你需要算得东西太多了,这里先教你最重要的,其他的留在中级班和高级班了,呵呵,最重要的庙算就是市场销售环节的庙算。
即使你运气糟透了,竟然花5000元/部,采购了100台手机,但是,不要紧,最重要的是你是否可以卖掉。明白吗? 任何时候最终要的都是销售,销售 nb的人完全可以弥补他犯下的其他所有的错误。你即使把老娘和丈母娘的房子都抵押了,只要你可以把你进的东西销出去,我写的这么多的乱七八糟你都可以不 看。
销售部分庙算包括以下部分:
1.销售过程分析:把你的东西从你的手上出去后,一直到最终消费者的所有流程搞清楚。每个环节的利润比例必须搞清楚。到你手的利润是多少,必须搞清楚。事 实上曾经有无数的被俺指导过的人,当俺问他你的销售过程流程的细节给我讲一遍的时候,大多数人都含糊其辞,而这个时候他们才意识到自己太唐突了。这个大问 题包括以下小问题:列出所有可能购买你的产品的不同客户群/谁买你的东西,谁用你的东西?(注意:买东西的人不一定就是用东西的人啊)/
2.市场分析:你的产品的生命周期(不懂得人去google)及所处位置/你卖的同类产品主要的竞争点是什么/未来的趋势是什么?
3.竞争分析:你比竞争对手强的地方是什么?注意,有人说,我在这个开个小花店,没啥优势,事实上你的优势就是地域优势,如果你的地域也没有优势了,那你 真的完蛋了。如果分析来分析去都找不到自己存在的价值,你何必去扎进去呢?/
4.市场策略:你如何把你和你的竞争对手区分开?/你计划如何去销售你的产品?/你的产品如何到达最终消费者?

如果你可以准确清楚地回答清楚以上问题的大多数,恭喜你,你已经开始在打有准备的战争了!
在过去我听过的无数创业计划中,很多人唾沫乱飞的讲着很多和销售完全无关的事情,或者是某个idea,或者是某个灵机一动,发言者陶醉在自己的一时的机智 之中。或者已经在规划未来股份制的问题,在美国上市还是在香港上市。但是请听我一席话:创业第一重要需要考虑的事情就是销售!销售!销售!
在销售没有搞清楚以前,请把你认为重要的,燃眉之急的任何其他事情都先放在一遍。没有比把你的东西如何卖出去更重要的事情了!
没有看我的培训就已经清楚的领悟到这点的同学,恭喜你,加10分!看到这里认为销售不重要的朋友,其实你仍然可以创业,你具备投身于互联网业务,然后被n 亿美金收购的潜力! 以后我去听你讲课,呵呵。

五: 财务预算与控制
你已经鉴定了你的脑袋瓜质量优异,同时你也有个很好的确实不错的项目,市场也very good.下一步干啥? 做预算! 这点任何一个傻瓜都知道,而且也会去做,但是世界多奇怪,每个聪明人总是在破产之后才说:我当初怎么那么傻?我简直就是个sb阿!

 

我某个哥们就前几年就干了这么一个蠢事,计划生产某零件,该零件的销售绝对没有问题(因为他本来就在销售同类产品,客户全部铁的要死),计划投资 20万搞定。结果呢? 一年后累计投资现金200万,全部丢在水里。问哥们为啥当初计划20万,怎么后来成200万了?朋友无言以对。事实上他也对自己的所作所为感到不可思议。

 

记住:任何时候你很宽松的预算之后,然后再乘以2~10之间的任何一个数字就是你未来实际可能花掉的钱。 很多人刚刚创业的前3个月可以坚持记帐,随后很多人就成了一笔糊涂帐,很多人认为反正肉烂在锅里,东西没少钱没少就行了,这真是大错特错,记账的目的不仅 仅是搞清楚钱有没有少,更重要的是进行财务控制及分析。 在你开始你的生意的时候,所有可花可不花的钱一毛不花,所有必须花的钱砍半花,开始之前做好详细的预算,开始之后做好详细的记录

,每个月 将实际收支与预算做对比,然后修改未来3个月的预算。相信我,如果照着我说的去做,你亏掉老娘的房子之后,至少还可以剩下丈母娘的房子。不照着我说的做的 后果就是全部亏掉,呵呵。 仔细思考好自己止亏点是亏多少钱?一定要认真想好,找个本子记在上面,每个月翻出来看看,记住,这决定了是否还可以再来一次,明白吗?亏钱不可怕,可怕的 是亏的自己都不敢相信。最可怕的是永远没有了翻身的机会!!


六: 只追一只兔子,一定把它追到手!
  有个做开发出身的朋友告诉我他的创业计划: 计划开发一个美容仪器,该仪器投资小,只要数千元,外壳计划在电子市场找个公用的外壳,先做3~5个,卖卖看,卖不动了,不过亏几千块,卖的好了就发了. 他的长期计划就是每3个月开发一个产品,迟早都有成功的那一天.
  另外有个朋友在短短的2年之内做了如下项目: 制作网站,卖笔记本电脑,开塑钢门窗厂,开光纤连接器工厂,做某品牌手机地包,还有其他不记得了.
  浅尝辄止,未作深入的研究及筹划是创业投 资的大忌!其失败是必然的,成功是偶然的.
  以上2为朋友是在不同的时间连续快速转换干了不同的项目,而另外一些super man竟然在创业初期同时在干n个惊天动地的项目!他们的理由都很简单:鸡蛋不能放在一个篮子里,东边不亮西边亮!
  对于巴菲特也许是对的, 但是,对于你这个囊中羞涩,急于成功的新手,相信我----把鸡蛋全部放在一个篮子里,然后认认真真地看好这个篮子才是最英明的做法!
  现在 你是否已经胸有成竹的准备了2个以上的项目?那么照着老师的话去做,把你的项目依次拿到pk台上去pk,只剩最后一个项目,好了,这个项目将最终改变你的 命运!他将带领你走入财务自由的天地!把其他的项目统统忘掉!
  相信我,你的能力和精力根本无法应付2个以上的项目,分散精力将直接导致你的 失败!

七: 如何与人合伙

据我的观察,身边创业的人,超过半数的选择的是合伙,而合伙人就像现在的婚姻一样,破裂的多,完美的少,也许不到7年就痒了吧?呵呵。

所以如何正确处理合伙人的关系是创业及其重要的一课!

一般人选择的合伙人无非是同事,朋友,同学,客户或供应商极少会超出这个圈子。而且往往选择的合伙人和自己的身份相似,例如:业务员和另外一个业务员合 作,工程师和另外一个工程师合伙。但是当你创业后,马上面临的第一个问题就是分工问题,如果你与合伙人身份类似的话,分工不当会直接导致你公司的快速死 亡。

首先请评估一下你自己,你的容忍度有多大?
初级容忍度:你的合伙人把和女朋友一起看电影得出租车票拿来公司报销了
二 级容忍度:你的合伙人每天10点半后来公司,每天下班前1个小时就消失了,而且并没有告诉你他去哪里了。
三级容忍度:你交代给你的合伙人给某个客户送货收款,他竟然送了货后,空手会来了,并却告诉你,这个客户人品没有问题,款肯定会给的,而你认为这个客户一 定会赖帐
四级容忍度:你的合伙人给别人说公司他是老板,你是替他打工的
五级容忍度:他对你指手画脚,直接吩咐你去干这个干那个
六 级容忍度:你的合伙人提出他应该股份多点,你应该少点

请问,您的容忍度可以达到那个级别?对方的行为达到那个级别您会考虑是否要和对方 继续合伙下去呢?

以上事项是众多的合伙人散伙的原因。但---这些都不是应该成为散伙的理由。对于以上6级事项,我告诉正确的做法就是一个字:忍!有人说:老师,是可忍孰 不可忍!我拼了,老子宁愿不赚钱也不和这个王八蛋合伙了!那么有没有其他的解决办法呢?答案是:有!既然你不能忍,那你必须可以找到一个可以容忍你的合伙 人!就这么简单,但是又有人说了,老师,我这个人是人不犯我,我不犯人,我不想去容忍别人,但我也不需要别人容忍我。真的吗?那我可以很负责任的告诉你, 迄今为止,俺从来没有见过不抱怨合伙人的合作者!打架动刀子,上法院的倒是见过不少。

那么难道就只有忍了吗?当然不是,也有绝对不能容 忍的事情,举例如下: 店铺通www.dptong.com
合伙人收了客户的货款装进自己口袋,对公司说客户没付款
合伙人非要把自己不 学无术的小舅子搞到公司来当销售部经理
合伙人在公司财务刚刚好转就提出买一辆别克
合伙人发现客户有新产品的需要,然后在外面又搞了个 公司

……….

简单点说:凡是个性,面子,习惯等等方面的,你必须学会容忍,凡是损害到公司利益的,你必须学会不容忍。

题外话:把老婆弄在公司的人,只能让所有的员工及客户极端讨厌他的老婆,不会起到任何其他的效果,切记切记!

八: 把自己摆正位置

    刚刚创业的人,尤其是原来没有当过领导的人,角色转变太快,以至于一时无法适应,做出许多荒唐的行为来,原来见过某偶然发了一笔后创业的某年轻人,出入带 着一个女秘书,又无法做到像农民大款那样自如,非常滑稽。

    心里希望别人都称呼他为某总,希望少的可怜的员工在他跟前毕恭毕敬(另外一个极端是和员工称兄道弟,恨不得大家共夫共妻),感觉出门还要挤公共车太没面子 了,不需要打的的时候也打车。置办一些高档的衣着或其他可以提高身份档次的物品。

    感觉自己既然创业就是要过自由的生活,如果比打工还辛苦,那创什么业?所以决定每天睡到10点才来公司。

    感觉公司虽小,自己毕竟是个老总,客户那面一般让手下去拜访,自己不能轻易出马,否则太掉价了。

    有些人觉得过去自己的了老板简直黑透了,自己做老板一定要非常大方,绝不对下属苛刻,于是工资都比别的地方高,奖金月月都不能少.完全不知道什么情况下才 要给员工发这么高的工资.

还有其他种种现象,在此不一一列举了.

总之,凡有上述症状的创业者,犯了角色快速变化不适应症. 需尽快调理.

 调理方法如下:

1. 保证你永远第一个出现在办公司,最后一个离开办公室
2. 你见客户的数量要绝对超过你手下任何一个业务员的数量,例如你手下2个业务,每人每月见80个客户,那么你要见过上述160个客户中的至少120个.
3. 给自己发全公司最低的工资,记住公司的钱和个人的钱要绝对分开!(极其重要)
4. 希望员工做到的,自己首先做到,例如要求员工写工作总结或清洁办公室等等
5. 要明白,当你选择了创业这条路的时候,你就注定要过牛马不如的生活至少2年,明白吗?不要说社会上有多少快速成功的例子,我可以告诉你,彩票每周还开3次 呢,不知每周要创造多少个500万.但是不幸的是永远不是你.
 6. 其他种种读者自己可以开发出来的调理方法….


九: 创业开始的第一个目标是什么?

    前几天和一个刚刚创业的工程师吃饭,此人原来在某公司开发了若干软件系统,过去销售还不错,有一定市场知名度.由于公司经营不善关闭,该工程师和公司其他 几名工程师租了一个小办公室.我问其现在的精力都在干什么?答:在开发一些新的产品.然后开始大讲特讲新产品的功能及未来市场前景多么宽广.问其为何不把 老产品销售工作做起来, 此人竟然被噎住了,无言以对.公司已经开张4个月了,几个原来靠薪水的工程师自己凑钱拼搏,钱在天天得花,竟然从来没有考虑过收入从哪里来,什么时候来. 一定要到了突然发现没有钱的那一天,才开始着急,四处打听谁可以投资,运气好的,被别人收编,运气差的,公司四散,前边的钱和精力全部丢入水里.

    每次我见到这样的创业者,俺都怀着无限崇敬的心情仰视对方, 佩服阿佩服,真是艺高人胆大,我真的非常吃惊为何这个社会有那么多平时看起来胆子不大,性格内向的人投资项目为何如此胆大妄为?他们拿自己的钱往水里丢, 眼睛都不眨一下,丢的兴起的时候,把老婆的私房钱,老娘的棺材钱,儿子的奶粉钱,同学哥们的购房首期款全部拿来痛痛快快地丢进了水了!

    如果有人愿意学习俺胆小如鼠的性格,那么我告诉你,公司开张之后的第一个目标就是: 财务平衡!

    请牢牢记住上述四个大字,在你的公司开张之后,任何事情都没有这件事情重要的了,如果有10见事情列在你的面前pk,第一个标准就是那些事情可以马上为你 带来现金收入!!任何超过6个月以上才有可能创造收入的东西都将成为你公司死亡的毒药!!(事实上以你的智商得出结论的6个月,一般要至少乘以3~5,就 是18~30个月以后)

    不要幻想某个大客户公公关8个月内可能让你赚几百万,一个打电话让你马上送某东西过去马上可以赚10块钱的客户远远重要过告诉你明年向你采购300万的客 户。同样:一个马上可以销售的不伦不类的低档产品,其重要性远远超过6个月以后才会上市的某个轰动世界的产品。

    财务不平衡的第一个严重后果就是彻底摧毁你的自信性,把你的员工的积极性无情的推倒。只要你的财务报表连续出现几个负数,相信我,如果你依然可以做到面无 表情,基本上你已经在开始盘算着怎么把丈母娘的房产证骗到手了。

    请牢牢记住我的胆小如鼠创业法的秘籍: 公司开张后的第一目标:财务平衡!

    财务平衡的好处太多了,你的内分泌将维持平衡,大脑神经化学成分也将非常平衡,你和下属的关系,和老婆在床上的搏斗都将非常平衡!如果你的财务不平衡,那 么上述种种都将不平衡。

感谢仁兄的提醒,现补上第十帖
创业常见病之----自大+狂躁综合症

公司也开张了,业务也开始了,逐渐也有收入了,而且还在业务过程中慢慢的发现了一些新的机会.这时候的创业者,特别像刚练了几个月南拳的年轻人一样, 感觉非常好,恨不得天天举行武术比赛,从此自己打遍天下无敌手.而且对铁砂掌,硬气功,少林腿法,螳螂拳,醉拳,双节棍,飞檐走壁,穿墙术,起死回生术等 等都有了浓厚的兴趣,感觉自己精力极端旺盛,大脑极度活跃,只是时间不够用.

那么,恭喜你,你已经越过了创业的第一个痛苦的时期,进入了创业者的第二个阶段,同时你也得了 自大+狂躁综合症

该病患者较轻的,沉湎于幻想,经常想入非非,时不时考虑未来的公司总部大厦建在哪里,较重者,马上付诸行动,公司规模急速膨胀,名片改印刷头衔为总裁 或ceo,手下多了几个经理,设立了若干新的部门,公司将在保持老业务的同时,快速进入更具有增长性的新行业或新产品。公司的财务报表出现负数,而你竟然 不屑一顾。

初次创业的人大概只有不到40%的人可以坚持到这个阶段,60%的人经不过俺前面的考试已经被屠杀掉了。所以首先恭喜你进入下一关了,当然了,场外观 众的短信投票是无法帮助你挽回败局的,要靠的只有你自己,冲过去,你将进入月冠军,你将实现100进40。历史的数据告诉我们了中小企业的3年存活率是 10% ,所以你必须在pk台上最终取得40进10的资格,否则你的赌注就是你的所有财富和未来无穷的悔恨!
在这场100进40的淘汰赛中,你唯一可以干的事情就是保持一个清醒的头脑,把你要干的事情从财务方面市场方面资金方面反复的测算及沙盘操演。我相信你任 何事情经过3次以上操演的,你必定迈过100进40的大关。其实失败的避免是非常容易的,照我说的做就好了。

恭喜你,马上进入中级班的培训,同时也祝福你顺利晋级成为40进10的胜利者!

11,创业改变不了一个失败的打工者
  
   通过创业来改变自己不佳的现状的人竟然非常之多。试想一下,如果创业,一个完整的公司需要考虑的事情我们假设是10(财物,供应,销售等等),而你当初打 工时仅仅熟悉1或者2,而这1或者2你竟然都做不好,不要告诉我你做的很好了(对于那些试图通过创业来改变现状的人而言),你凭什么可以做好那些你甚至从 来都没有接触过的工作?
   如果你没有足够多的赌本,如果你像俺一样没有任何亲友可以依靠,让打工成为你创业的预科班实在是极其必要的,多少人日复一日的重复着相同的日子,岁月一天 一天增长,知识一天一天僵化,一年一年的过去,你增加的仅仅是年龄和低于cpi增长速度的工资。妄图通过跳槽或者创业来改变自己无异于痴心妄想。
    年初俺和某刚辞职的某美术设计吃饭,该美工在某公司负责设计产品包装海报等等,问为何辞工,计划未来做什么。 答曰在其公司无法得到锻炼(该公司为一小电子产品制造商,仅她一人做所有的美工工作),计划去学英文,未来做个中介小公司,专门为国外的设计公司与国内的 委托者沟通。 OMG! 这个商业计划太完美,充满了romantic和创意!此人事实上工作比较努力,所有交办的工作都能及时完成,在公司差不多工作3年,但是我可以很负责任得 讲,此人的能力在三年内绝对是原地踏步,公司没有给她提供发展的机会吗? No!公司所有的产品包装宣传页等设计全权由其决定,而她事实上提交出业务勉强接受的方案即视为完成。主动放弃自己锻炼机会的人占所有打工者的95%以 上。有哪个设计公司可以提供给你全权设计一个公司所有美工相关的工作机会?
   如果是俺来做上述这个工作,俺的计划如下:三年内将该公司按照VI设计标准将该公司所有美工相关包装宣传品认认真真设计至少3套方案出来,等俺摔出来此绝 对要高于一般设计公司的设计后,不涨工资恐怕老板是sb,跳槽恐怕轻而易举,自己开个小设计公司恐怕易如反掌。而且如果是你自己开个小设计公司的时候,成 功案例是如此的难以得到,当你去和客户老板交流的时候,恐怕只能是小心翼翼,而如果作为公司员工,竟然如此主动承担工作,恐怕和老板交流设计内容的时候, 是老板受宠若惊!而你在上这个创业预科班的时候,竟然有人在给你发着工资!在你走掉的时候苦苦哀求你不要离开!
   改变自己远远重要过改变环境!那些无法改变自己,原地踏步的人,试图通过创业来改变自己永远不可能实现!


12, 如何让老板为你交学费?

有没有过这样的体验? 和一群陌生人相处,很容易鉴别出那些人是企业主,那些人是打工者?准确率超过80%,但你仔细看衣着,相貌,举止又好像没啥特别的区别。大家大学刚毕业的 时候都一样,10年以后再看,气质变化极大。
是什么造成了这样的区别?是思考,是判断,是决定,是这些心理活动改变了人。
美国大富豪特朗普写过本书叫 think like a millionare.如果你能做到像老板一样的思考,你就越接近预科班的毕业,如果你从来都没有过这样的经历,呵呵,让我偷偷的告诉你个秘密:请问创业 预科的学费是老板替你交好,还是你自己交好?
让我们来实战一把,如果某个饭馆生意不好,而你是此饭馆的部长,你会想什么?呵呵,绝大多数人是这样想的,靠,怎么这么倒霉阿,刚换个工作,生意又不 好,涨工资是没戏了。小张刚去的那个皇帝大酒楼据说生意不错,不知道缺不缺人。或者有人是这样想:哇哈哈,过了年俺就byebye了,最好天天没生意,省 得俺累得半死。
那么老板是如何想的呢? 老板是这样想的:这个酒楼的地点是否有问题?隔壁几个和我类似的酒楼为何生意比我好?我的价格比别人高了吗?是不是我这里停车有问题?招牌菜是否过时了? 我的服务有那些不到位的地方呢?装修是否有不到位的地方?包房的卡拉Ok最近投诉比较多,是继续保留改进呢还是把它给撤掉?
作为部长如果你像老板这样思考,可以把你累坏吗?如果把你思考后的结果告诉老板改进,如果改进成功,即使老板sb没给你奖金,你也得到了一次预科班的 实战机会,如果改进失败,呵呵,亏钱的可是老板,得到锻炼的可以是自己阿! 而且我敢保证,即使你的建议导致公司亏了钱,老板恐怕也要发奖金给你。这个年代,谁把公司当家阿?看到你这样的人,老板恨不得给你磕头了。


13, 权力是自己拿来的,不是老板给的

看到主题有人骂我了,我tmd也想给老板出谋划策阿,但是我来公司n年了,只见过老板的二奶一次,老板宝马车后面冒的烟我都没有见过,我给老板出谋划策不 是胡扯淡么?
还是用故事讲话吧,某次和2人吃饭,其一是企业主,另一为某大公司中层干部,中层干部感叹未来升职渺茫,创业胆怯,不知未来何去何从。企业主说:我大 学毕业刚1月即当上了某大型公司仓管部门的经理。皆惊讶,问如何获此重视?企业主说:刚去公司上班,公司把应届毕业生当搬运工人用,其他人皆骂娘,此人每 日搬运货物10小时后,利用闲暇时间,仔细观察丈量了仓库,1月后给上司提交了一份仓库货物重新摆放运输的设计,三日后,直接升任仓管部门经理!该企业主 当时说: 打工没有比升职更简单的事情了,我在任何一家公司上班给自己定的指标就是至少在这个公司提交60份合理化建议,老板用不用随便,但是我一定坚持写到60份 以上!一般不到20份的时候就被提拔了,哈哈.
曾经有某员工给俺提交了一建议,而且主动地工作,俺甚喜,虽然发现其建议极低劣,仍然热情给与鼓励,但并没有采纳,该员工再没有提交第二份建议,俺非 常失望.想一想,如果你自己开了公司,当你推出自己的产品,客户反映非常冷淡的时候你会怎么做? 你肯定是反思为何客户不买账,检讨自己的工作失误在那里,但是作为员工的时候,给老板提任何一个建议,就希望得到一个正向的反馈,这个要求是对老板太苛刻 了.请把老板当作你的客户,任何一个老板不采纳的你的建议,肯定是有问题的,如果你自己想不明白,可以直接向老板询问,老板看到这样的员工,高兴死了别怕 老板会烦你.你的能力的提升也加速了.
讲了几个故事,还没有谈到主题:权利是拿来的,不是老板给的. 99%的打工者不理解此真理. 99%的员工只会做老板吩咐的事情.要知道,哪怕是世界500强的公司里面,职务说明书写的格外详细的公司,你事实上拥有的权利其实是远远超过你的想象 的!!
随便举个例子吧,例如你仅仅是某公司的业务报表的统计人员,公司有些固定的格式让你完成,一般就是个普通文员当作一般文书工作而已,但---人力资源 部有规定了你不可以对数据进行分析吗? 有人规定了你不可以努力在数据中寻找一些有益于公司业务的线索,发现一些销售上的问题吗?从来没有人禁止过,但也从来没有文员会像我说的那样去做. 如果你是生产管理人员,那家老板规定了你不可以使用公司没有使用的分析方法来分析公司的生产问题了?
当你拥有了更多的信息和知识的时候,权利就倒向了你! 如果公司只有你懂得如何对员工进行绩效考核,谁敢去做人力资源的头?其他职位请同学自己举一反三,找张纸写出来公司没有规定不可以干,而你觉得有价值可以 干得事情来.写不出来没有悟性的同学把俺的教程抄3遍吧.

中国人由于奴化教育的问题,大多数人被园丁修理的差不多了(北大老师原话),希望大家重新燃起心中的火花,做个有思想的人,记住,只有你才能把自己当作个 蓝领工人,任何人都无法阻止你像任正非一样去思考问题.


14, 上天为何对你如此不公?
  
  又没有人告诉你?(陈楚生)-----之上天不公版
  当我进入这个上市的公司,
   那是从来就没有体会过的郁闷.
  我打开人力资源发送给我的邮件,
  忽然感到无比的愤懑.
  看不见奖金的工资条不变 的薪水,
  我听见有人欢呼有人在哭泣.
  早习惯功劳被人冒领的项目,
  但却无法忘记自己的辛劳.
  有没 有人曾告诉你我很勤奋,
  有没有曾在你面谈时诽谤?
  有没有人曾告诉你我很在意,
  在意这个公司的平等?.
   
  辛勤劳动的成果被部门经理窃取!自己辛苦做的方案为公司赚了很多钱,但是老板连个屁都没放?老板的小姨子初中毕业,却拿着5倍于自己的薪 水,项目经理把最累的毫无价值的工作都安排给了你,有个sb不学无术,靠拍马屁竟然成了副总,那个会给经理抛媚眼的业务员把公司的好客户全部给霸占了,x 省(或某学校,或某批进入公司)的这帮家伙把持了公司,排斥其他所有的人。
  
  人是个天性追求平等的动物,而追求平等已经深深地嵌入 到人的基因里面,人对不平等事务的快速反应纯粹处是下意识的,而并非是理性思考的结果.
  不知道有多少人为了追求所谓的公平,或者为对不公平表 达愤怒,而失去自己的得之不易的机会.
  当你再一次因为遭遇所谓的不公平的时候,请按照我说的三思在后行
  
  1. 你在这个公司的待遇是否比其他公司相同岗位的人收入相当(这句的意思就是不要和同事比! 和同事比的结果就是你永远觉得不公平,和同事比是非理性比较)
   2. 你目前所处的岗位是否有机会让你学习预科班的课程?(不是指上网看俺的破帖子!)
  
  俺曾经在创业中期由于遭遇重大挫折而去 某公司上了半年班,俺发现同事沉重的心态和俺的轻松(虽然俺当时经济处于极度不利的时候)心态形成鲜明的对比。俺当时的感觉就是打工真好啊,真是太轻松 了,简直是it’s a piece of cake!。
  
  把你认为的不公正丢在脑后,你会发现天地是如此的开阔!


15,  坚持到底的理由是什么?

前一段时间某经营长期处于困境的朋友在其blog发布一自励之文 章,大意就是成功不是毛毛雨,不会自己从天上掉下来,不经历风雨怎么见彩虹,同时讲述部分打持久战的成功案例来激励自己

所有讲述的事例都 是对的,但是却无法成为支持自己一定要坚持下去的理由

为什么要在生意困难的时候坚持?坚持的方法是什么?仅仅是因为你找不到更好地事情做 而坚持吗?这些都是困扰着很多创业者的问题秘籍:在困难的时候坚持的唯一理由是该项目未来可以产生很好的回报!

有人说:你这不是废话吗? 没钱赚得项目我坚持,我有病啊?呵呵,这个世界就是这样奇怪,道理说出来的时候人人都觉得没啥,轮到自己做的时候,全部忘到九霄之外了实战中俺发现很多人 在这种情况下的选择是干耗着,浪费很多时间在游戏或瞎逛中

此秘籍的实战指导意义就是,当你生意处于困境的时候,你第一该做的事情是要仔细 分析行业前景(此事极难,已超出本教程内容,不过最投机取巧的办法就是多和行业内高手交流),然后按照你分析得出的方向要去努力!

为坚持 而坚持的人是在浪费生命,其失败是必然的,为可预期的未来坚持的人其成功是必然的坚持是同样的坚持,坚持时干的事情却大不相同,这干的不同得事情将决定谁 被第一个洗牌洗出去


16, 备战备荒防苏修
甲午战争前夕,如果你作为中方战争选手,如果你有幸和日方选手做面对面的交流,你会给自己和对手做怎样的评价?你会认为自己是个垃圾一触即溃吗?我 相信绝对不会,战争爆发后被敌人砍头后才知道悔恨自己平时不努力赵括和马谡是这些人的终极榜样,其失败的代价是自己的脑袋,如果在创业中你不幸碰到这样的 对手,轻者痛失生意机会,重者破产完事

2年前大师我自己就碰到了这样的超一流对手,在某个新产品的开发的开始,俺与对手几乎同时起步, 而 且同时在市场上打响战役,可惜这次俺遇到的是一支高素质的部队,是一支有着狼一般的狡猾,猎豹一样的速度,狮子一样的凶猛的对手,不到1年的时间,师傅俺 就被敌人彻底从市场上给清理出去了,师傅俺的所有成功的秘籍都全部失效了,为啥?战争开始的时候比的是你平时对部队的训练和平时的积累弹簧跳得高在于事前 压得很!!事后俺和对手成为了很好的朋友,得知,此人18岁即大学毕业! 牛人啊,不服不行

简单点说就是你站在跑道上才考虑如何战胜刘 翔恐怕是于事无补了

过去n年俺见过无数处于此阶段的小公司,当暂时没有订单的时候干的事情是上网斗地主,呵呵人的差异造就你公司的差异


17,  种瓜得豆之方法(创业初期扩展商机的方法)

人生就像是一场阴差阳错的大戏,基本上很难按照 你的预期去发展,当你种瓜的时候,如何顺便培养豆苗是有法可循的

让我们看看高手是如何做的:10年前,深圳电子行业最火爆的产品非VCD 莫属,当时火爆的行情不会比最近几年的黑手机差如果你是某销售VCD零部件中某个极不重要的元器件的供应商,请问你如何发掘你的商机?

高 手是这样做的:1.建立一个大VCD厂的技术全面的开发工程师关系,成为自己的技术幕僚(对有心者非常容易实现,)

2.获取到市场上所有 VCD方案的材料清单3.了解所有的替代器件的替换表(某些器件不同供应商不同编号,很多时候很多人搞不清楚)

4.了解所有器件的供应 商,逐一拜访(偷懒的办法就是在某工厂采购部坐等)

5. 给关系好的客户推荐所有他不知道的供应商的产品6.给关系好的其他供应商销售其产品到他不知道的VCD厂此人从零开始,在极短的时间内,赤手空拳迅速积累 了可观的财富,其做事之方法,非一般人可以想象(事实上在5,6的环节并不需要你跑遍所有的客户或供应商,因为你在实际操作的工程中很快就发现重点产品及 客户)

创业开始的生意最终一直坚持下去的,比例并不是非常高,中途转换产品的比例惊人,所以如何在工作中发现新的商机是非常重要的

要 成功做到这一点,你需要将你目前销售的产品划定一个目标区域,然后你要将此区域内涉及的所有产品及商业模式全部摸索清楚,按照师傅俺的经验,在你摸索的过 程中,你将由无数惊喜地发现!

赵本山说这辈子就指望一个笑话了,说实话师傅俺就是靠着这一秘籍做到了经常被人模仿,从未被人超越的非凡境 地! 哈哈


18, 不要做只知道part number(型号)的人

若干年前,俺第一次从事的业务工作是个香港的电子公司,在干了大半年,师傅俺勇创公司销售业绩No.1的时候(直白点说,就是其它所有人的营业额加 起来也没师傅俺一人多),俺被老板炒鱿鱼了!俺牢牢地记住了老板炒俺鱿鱼时说的话:本公司不需要只懂part number(型号)的人作为业务人员人生最大的恶耻辱莫过于此啊!苍天啊,你为何对一个崭露头角的优秀人才如此嫉妒?难道我收到的钱是 ***********不成?怀着对老板的仇恨和对社会的不满,师傅俺悲愤地离开了这个人渣!

几年后,俺明白了,像俺这样的业务渣子事实 上在公司可以存活大半年本身就已经是老板的宽容了,因为俺当年只懂背下来了所有的产品型号和对应的价格,即不懂客户为什么买我的产品,也不知道如何向客户 推荐我的产品,甚至连基本的价格谈判的技能都不具备,我对所有的人所有的数量全部是一个价格!所以当时我的销售额的成功,事实上是应该归功于该行业的成 功,是老板货源组织能力的成功,而我竟然把功劳算在了我的头上!!当然了该老板低下的沟通能力使他失去了俺这样的天才,也是对他的一个小小的惩罚,哈哈

好多年前,俺有个朋友从事国际集成电路的库存搜集及销售,每次他都可以以严重低于市场的价格购到一些相当抢手的产品,轻易赚到大钱,这是为什么呢? 朋友告诉了我他的秘密,原来这个地球不光只有俺这一个笨蛋,国外很多处理库存的人经常非常 *** 的把产品的生产批号,或者其它的包装上的一些字符串当作产品型号放在网上,显然,这样的东西永远都卖不掉,而我的朋友,早已洞察了这些 *** 的行为,轻易的就以极低的价格购下非常贵的东西,谁敢说知识不是钞票?

人世间最大的 *** 莫过于亲手把本来是属于自己的钱一点一点,辛辛苦苦的给销毁,不相信有这样的人吗?师傅俺在差不多8年前就遇到了这样的一个人,在陈店,这个世界最大的电 子垃圾处理中心,无数的电子垃圾从世界各地源源不断地被运输到这里,这里的农民把部分可以销售的成品直接销售出去,而把无法销售的产品拆分成电子零件销售 在一个相当于2个篮球场的大仓库了,俺看到了刚刚被拆分掉的大约20万台来自于日本的小灵通手机而部分没有分拆的,老板以20元一部的价格可以销售给师傅 俺老板对这些看起来是手机,但又不是手机的东西感到非常不解!这些手机的价值,按照当时的市场价格超过1亿以上!!而此人分拆后的零件,我估计大概连50 万都卖不了我估计此人终身都生活在极度的悔恨之中

无论你是销售什么东西,你一定不要仅仅只是记住一个型号的名称,无论你做贸易还是生 产,无论你做服务还是垃圾分解,要把自己手头的东西的本质搞得非常清楚!不要换个马甲你就不认识了!

回报将在未来一个不经意的时候突然的 措手不及的来到!有时候你都认为成功为啥来的如此突然,而事实上成功永远是对你过去努力所给出的一个回报!

记住:搞清楚所有的part number 后面的所有知识!


19, 最基本的谈判原则
10年前,俺和一朋友合伙去东北某县级市做一笔大买卖,客户是极有钱的客户,事实上该客户非常急迫需要购买我们的东西,而其事实上的接受价格是N元当时俺 朋友极度自信,要求师傅俺不要插嘴,他来搞定一切,谈判第二天在客户的豪华办公室进行

客户:你的东西多少钱?

朋友:n- 100元
客户:太贵了,我们可以接受的价格是n-200元
朋友:好吧 n-200也可以

客户:我们付款的原则是销完 之后给你们付款
朋友(完全没有任何思想准备):我考虑一下

谈判差不多1分钟后结束

由于这是一笔对当时的我们来 说非常巨大的金额,回到酒店我们商量1分钟后,决定放弃此业务

一个月后,客户由于实在无法购买到此产品,公司副总恰好给了俺电话
副总:我们还需要此产品,你们是否还有兴趣销售?

俺:上次的价格我们做不了啊这个价格我们亏本阿你是否可以给高点?

副 总:那就n-100,付款条件你接受吗?

俺:我们不是不信任你们这么大的客户,实在是我们是小公司,没有那么多资本垫付您是否有其他付款 方式建议?

副总:这样吧,给你们先付30%,剩下的,货到后销售的时候,你派人直接来收钱,如何?

俺:好吧,就这样定了 吧

谈 判秘籍:
1. 谈判的结果是双方受益,而不是一方受益(很多人误以为谈判的最佳结果就是自己占到最大的好处,这是极其愚蠢的,世界上永远没有单赢的合作,只有双赢的合 作!!),如果你可以设想出增加对方利益的同时可以增加自己的利益,你就成为顶尖的谈判高手了举例:买100送100是比较典型的针对个人的策略

2. 如果对方先开条件,你就取得了谈判的主动权

关于谈判,只要熟练应用以上2条,你这辈子都够用了


19,  创新是创新者的墓志铭

创新显然是个褒义词,国家在鼓励,社会也在鼓励,不过独独师傅俺的胆小如鼠创业秘籍不鼓励

创新是财务的无底洞创新是公司创业的毒药 创新使创业者的精神奔溃创新是你如果试图加害某创业者最佳的建议!

难 道师傅俺是个反社会的分子?不是,是师傅俺的大智慧在电光火石的刹那间已经看到了创业在宇宙四维空间中的绝对坐标!什么人适合创新?其坐标如下: 1.追求极度刺激之赌徒:例如乔布斯,比尔盖茨,或者爱迪生之流,宁愿不要大学文凭也在所不惜有人说,师傅难道这些人不是我们学习的榜样吗?我呸!!!这 些人当然是nb的一塌糊涂之人,还用你讲吗?但他是你可以学的了的吗?师傅俺之所以nb,就nb在于知道什么是自己该干的,什么是自己不该干的,师傅我从 来不用社会的标准来行事,师傅根据的是宇宙的真理来判断事务如果你想创新也可以,先拿这几条标准衡量衡量自己:你是否曾经囊括了全国奥数比赛的所有金牌? 你是否在上中学期间独立的发明了微积分(虽然牛顿早就发明了)?你是否第一次尿床的时候,就感悟到了波粒二象性?你是否小的时候卧在鸡蛋上孵过小鸡?你是 否也曾经有一个苹果砸在你的头上,然后你马上判断出这是一个红富士?如果没有的话,把你的嘴给我闭上吧!

2.独步天下的世界顶级高手: 只有像师傅俺这样的人,孤独求败!才真正体验过处于世界巅峰的时候你必须创新的冲动与挣扎而你们这些中级班的学员有什么资格谈创新?诺基亚,索尼有资格, 连华为和中兴都未必敢说创新2个字

3.钱多烧的慌的家伙:gogle最喜欢玩创新了,老子银子大把,不创新不如死了算了摸摸你的口袋,是 不是比google 刚好多了1分钱?

4.神经病患者:不用多讲了5.社会教育的受害者:哈哈,说的就是你啊!

也许有一 天你会像师傅俺一样达到第二种境界,或者像师傅俺一样达到了第三种境界(有闲钱是比较容易达到的境界,呵呵),你就可以开始满足你创新的欲望了,否则,还 是趁早把你创新的东西丢进垃圾桶吧,免得师傅看到罚你抄培训教程10遍

记住:凡是这个社会几乎都没人干的事情,你去干的话就等于承认自己 是上述第四种人


20,  成为行业专家

就在此论坛的此栏目,有一位属于俺的徒孙级别的同行在记录着自己的创业经过,大师俺看着此人竟然号称做了此业务已经超过3年多,而其表现出来的行业 知识的欠缺,让俺为其深深地捏了一把汗,同学们,光有勇气和毅力是远远不够的!

如 果你要进入一个行业,3年之内,你一定要至少成为这个行业的顶尖行业评论家不管你是身处行业的那个链条,你都要搞清楚所有的链条,你要明白整个的食物链是 如何组成的每个链条的存在价值及利益来源?每个链条竞争的关键是什么?每个链条的老大是那个公司?你应该在每个链条都要培养自己的信息源

要 像师傅俺做的一样,某次行业大会休息期间,某著名国际咨询公司老总利用休息时间请教了俺关于行业的看法,10分钟后,此人即在发言中多次引用了俺的观点做 到这一点即使你不能发掘出新的商业机会,至少也将帮助你避免到更多的陷阱!

成为行业专家除了多学习之外,最重要的是建立行业链条高人的关 系圈

通过公共渠道获取信息的人是可怜虫,绝对不是内行! 每次俺在媒体看到关于俺所处行业的滑稽的报道(几乎从来没看到一句人话,要多离谱就有多离谱),俺就在想,俺整天看到的关于其他行业的这些信息莫非在其他 的行业内的人士看来和我看来一样都是滑稽可笑?

几 年前偶然见到某电子产品芯片开发者的founder,此人跟踪该产品长达4年,而其产品当时尚未出来,此人给俺聊起该电子产品的路线图,一是兴起,在俺会 议室的白板上开始给俺整整讲解了数个小时!此人对于该产品几乎全线的竞争对手,各个环节的食物链,所有的链条的利益,蛋糕分配了如指掌!事实胜于雄辩,当 此人的产品面世的时候,半年之内打垮了绝大多数的竞争对手,目前依然牢牢的控制着这个市场!

高手要么不出手,出手一定要取敌人的首级! 奉劝各位急于出手的低手,苦练内功!

记住:称为行业专家是你发展的基本条件,获取真正的信息的最佳渠道就是行业内的高级从业人员!这是你 在你所处的行业里立于不败之地最基本的条件!


21, 头脑寄生虫策略
世间的生物,有超过9成是寄生虫,世间的公司也有超过9成是寄生于宿主公司的身上,寄生虫靠宿主的营养生存,寄生虫也可以 把自己的头脑寄生于宿主的大脑之中。
  把含有苏丹红的番茄酱卖给麦当劳是属于上游寄生,加盟麦当劳在某地开店是下游寄生,而麦当劳在那里开店, 肯德基就在马路对面开店就属于头脑寄生了。
  上下游的寄生说出来就明白,其最难之处在于宿主的可遇而不可求,个人努力往往很难奏效,运气成分非 常大,这里按下不表。
  最近股票比较火,研究的人就非常多,很多人俨然专家,然而细究其研究的信息源,却是来源于互联网,由于偶然的因素,俺比 较清楚2家上市之底细,每次当俺在网上,报纸(权威如21世纪经济报道)或者杂志(权威如财经)看到关于此2上市公司滑稽不堪,极度扭曲真相的报道,俺深 深地震惊,问世间真相为何物?直叫人生死相寻啊!!
  如果我们打麻将,我带透视眼镜,你全凭你的技术,你感觉胜率如何?也许偶然有几把你的牌实 在太好了,上手就天胡,下手即摸炸弹。但是打一晚上,估计你的裤衩都输没了。
  前几天某同学在QQ上和我讨论黄金的走势,声称其颇有研究,现将 聊天记录贴于以下:
  同学22:52:15请问对黄金的走势有没研究,我长远看好
  熊熊之火22:55:54靠,这玩艺不懂
   网友22:56:55呵呵。我一直在研究投资
  熊熊之火22:57:04佩服
  同学22:57:34大学毕业了二年,靠工资没法发 达,又不能做生意
  熊熊之火22:59:40研究黄金我认为是极其错误的事业选择
  同学23:00:00此话怎讲
  熊熊之 火23:00:29你认识这个行业最NB的人是什么人?
  同学23:01:18 1.全球经济有衰退的可能2,中东战火可能重燃3.纸币贬值4.工业上,金线最近大量用来代替电子元件里的铜线熊熊之火23:01:31不要分析这些
   熊熊之火23:01:50就说你认识最nb的人是谁?有多nb?
  同学23:02:57呵呵,认得一个搞金赚了千万的人
  熊熊之火 23:03:18如果你美国/日本/欧洲/中国顶级的黄金专家一个都不认识。。。。。
  熊熊之火23:03:33我也认识在澳门赚了5000万 的人,呵呵很简单的道理,如果黄金真的如此同学说的1/2/3/4条原因而上涨,那么我相信99.9%的炒黄金的人也都已经看到了,那么黄金的价格将在一 分钟之内涨到位。而无需等到若干个投资日之后才涨到位,之所以没有上涨到高位,是因为有众多的机构有众多的此同学根本无从知道的理由认为黄金不会涨太高, 或者认为此价位已经是现阶段的到位价格,或者根本就是某个超级大鳄在控盘全球黄金也未可知,难道市场上还缺投机的资金吗?
  假设黄金投资的相关 的所有信息为100,专业级别的选手可能也仅仅知道60,而无法做出必胜的决策,可以想象此同学类型的决策者仅仅掌握小于5的信息,试问你如何可以做出科 学的决策?如果你仅仅掌握地球人都知道的信息的5,而对某件事情做出准确预测,就好比你仅仅知道嫦娥1号的颜色,竟然就可以预测嫦娥一号的绕月轨道一样! 你就是俺心目中的神!
  在你经营企业的过程中,你将不得不面对很多你没有足够多信息去支撑你得出一个正确结论的选 择,beortobe,thisisaquestion!
  不要尝试用你愚蠢的大脑和残缺不全的信息去试图得出正确的选择,把决定的权利交给那 些掌握30/40/50甚至100的信息量的你信得过的人(至于如何结识并让此类nb人物愿意帮你,请同学们自由发言总结)。
  你将得到如下好 处:1.快速做出决策,而不是耗费众多时日而犹豫不决2.节约更多的时间用于你的智商可以处理的事情之上3.在你寄生大脑的同时,无疑你将会获得此人的友 谊4.你将获得超出你的能力的胜率此招术师傅俺应用如鱼得水,屡屡得手,哈哈,同学们务必绞尽脑汁才能真真理解师傅俺的秘籍的精妙之处,仅仅看字面意思, 如同看故事会而已!


22,   一点突破,全面进攻

有个你钦慕已久的mm,你不敢她表白,每次见到她你的手心都出 汗,你在你的 大脑里构思了无数种你和她在一起的场景,所有的细节都考虑了10种以上的可能有一个偶然的机会,你和她单独相处在了一起,当你正在挖空心思回忆自己过去制 定的战略的时候她竟然闭上眼睛把嘴巴凑到了你的眼前!!请问你怎么办?

1.不!我不能如此的不道德

2.问对方是不是眼睛进沙子了

3.太快了!应该是先摸手后摸肘顺着胳膊往下走顺序不对,重来!

4.机会难得!嘴巴先上去再说!

5.娃哈哈+爽歪 歪!落到我的手里,你要跑掉那就算我是个 *** !

如 果你可以对上述选择题做出正确选择,其实就不用看下面的文章了创业太难了,难到什么程度呢?难到实在找不到突破口,就像拿刀去砍一片竹子一莫一样,每个人 在找突破口的时候就耗费掉了绝大多数的精力和财力,而当刀真的砍倒竹子之后,相当一部分人,就势把竹子就劈成了2半,完成了创业开始的过程(如何寻找突破 口的方法,请认真学习初/中级班课程)

然后这个世界也有一些把刀砍到竹子上之后停下来的人,刀刃已经进去了一半,再加10%的力气,工 作就完成了,但是他偏偏停下来了,这种人非常之多!!

这种人一般的思维是:这个突破口到底是不是真的突破口阿?

要不要换 另外一个地方砍?

开始这么难(要使这么大的力气),往下会更难得(需要更大的力气)

在等等看不着急砍

这 种现象翻译成创业过程的图像往往是这样:已经找到了某个可以赚钱的项目,而且也确实开始赚钱了,不过当时赚钱不多,而该创业者即没有花费更多的精力去开拓 新客户,也没有想着扩大公司规模(例如招聘业务员等),只是在下一步该如何干的思考中度日

这 个现象如此之普遍,不仅师傅俺当年屡次犯了此错,身边的朋友客户也一而再再而三的犯此错误,这个错误将导致你将极其不容易获得的商机白白葬送掉!而犯此错 误的人很大程度上是因为犯了师傅俺在初级班教程中提到的认识不到手中机会而造成的当某个项目轻易的赚了点钱的时候,大多数人并不是把它当作了自己开创事业 的突破口,而是认为它是天经地义的应该存在的一个理所应当的现象!

这个道理其实比较简单,不过照顾到一些迟钝的学员,拿师傅俺n年前一 个 小小的成功故事大家感性认识一下N年前一个极其偶然的原因,某人给了师傅俺一个电话,此人不知出于何种目的,在电话里跟师傅俺神侃了1~2个小时!最后话 题跑到了10万8千里之外,问我是否可以帮他买到某个东西A,换了一般人,肯定以为遇到了骗子,呵呵,但是凭着师傅的智商,马上运算出可以尝试一把事情出 乎意料的顺利,师傅俺组织来了A,成交了,连续成交了数笔哈哈师傅俺没有沉浸在小小的得意之众俺迅速的将和A相关的B,C,D,E统统组织起来,然后迅速 的寻找和此人类似的需求者这仗为师傅未来创造更多的商机埋下了伏笔,也让师傅享受到了一点突破,全面进攻所带来的金钱和快乐!哈哈记住:事情的变化往往和 你的预期是不一致的,正确把握住商机才是最重要的,当外部环境没有按照你的预期来发展,甚至成功就是不费吹灰之力就到来的时候,千万不要犹豫,不要迟疑, 要马上改变策略,直接跨过你原来的所有计划,直接向最终的成功进军!



2010年4月29日星期四

用CURL提交POST数据实例(附详细说明)


<?php
set_time_limit(0);
@date_default_timezone_set('Asia/Shanghai');
function curlrequest($url,$postfield,$proxy="")
{
 $proxy=trim($proxy);
 $user_agent ="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)";
 $ch = curl_init(); // 初始化CURL句柄
 if(!empty($proxy))
 {
  curl_setopt($ch, CURLOPT_PROXY, $proxy);//设置代理服务器
 }
 curl_setopt($ch, CURLOPT_URL, $url); //设置请求的URL
 //curl_setopt($ch, CURLOPT_FAILONERROR, 1); // 启用时显示HTTP状态码,默认行为是忽略编号小于等于400的HTTP信息
 //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);//启用时会将服务器服务器返回的“Location:”放在header中递归的返回给服务器
 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);// 设为TRUE把curl_exec()结果转化为字串,而不是直接输出
 curl_setopt($ch, CURLOPT_POST, 1);//启用POST提交
 curl_setopt($ch, CURLOPT_POSTFIELDS, $postfield); //设置POST提交的字符串
 //curl_setopt($ch, CURLOPT_PORT, 80); //设置端口
 curl_setopt($ch, CURLOPT_TIMEOUT, 25); // 超时时间
 curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);//HTTP请求User-Agent:头
 //curl_setopt($ch,CURLOPT_HEADER,1); //设为TRUE在输出中包含头信息
 //$fp = fopen("example_homepage.txt", "w");//输出文件
 //curl_setopt($ch, CURLOPT_FILE, $fp);//设置输出文件的位置,值是一个资源类型,默认为STDOUT (浏览器)。
 curl_setopt($ch,CURLOPT_HTTPHEADER,array(
 'Accept-Language: zh-cn',
 'Connection: Keep-Alive',
 'Cache-Control: no-cache'
 ));// 设置HTTP头信息
 $document = curl_exec($ch); //执行预定义的CURL
 $info=curl_getinfo($ch); //得到返回信息的特性
 //print_r($info);
 if($info[http_code]=="405")
 {
  echo "bad proxy {$proxy}\n"; //代理出错
  exit;
 }
 //curl_close($ch);
 return $document;
}
//请求URL
$url="http://example.cn/getInfo.php";
//POST 提交数据,可用HTTPWATCH查看
$postfield="userName=test&year=2008&passWord=123456&Submit=%CC%E1%BD%BB";
// 代理服务器
$proxy = '';
//请求
$str=curlrequest($url,$postfield,$proxy);
// 输出结果
echo $str;

2010年4月27日星期二

jQuery Ajax 全解析(转)

摘自:http://www.cnblogs.com/QLeelulu/archive/2008/04/21/1163021.html

jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。

废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复 杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到).

1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中。

url (String) : 请求的HTML页的URL地址。

data (Map) : (可选参数) 发送至服务器的 key/value 数据。

callback (Callback) : (可选参数) 请求完成时(不需要是success的)的回调函数。

这个方法默认使用 GET 方式来传递的,如果[data]参数有传递数据进去,就会自动转换为POST方式的。jQuery 1.2 中,可以指定选择符,来筛选载入的 HTML 文档,DOM 中将仅插入筛选出的 HTML 代码。语法形如 "url #some > selector"。

这个方法可以很方便的动态加载一些HTML文件,例如表单。

示例代码:

$(".ajax.load").load("http://www.cnblogs.com/QLeelulu/archive/2008/03/30/1130270.html .post",
function (responseText, textStatus, XMLHttpRequest){
this;//在这里this指向的是当前的DOM对象,即$(".ajax.load")[0]
//alert(responseText);//请求返回的内容
//alert(textStatus);//请求状态:success,error
//alert(XMLHttpRequest);//XMLHttpRequest对象
});

这里将显示结果。

 

注:不知道为什么 URL写绝对路径在FF下会出错,知道的麻烦告诉下。下面的get()和post()示例使用的是绝对路径,所以在FF下你将会出错并不会看到返回结果。还有get()和post()示例都是跨域调用的,发现传上来后没办法获取结果, 所以把运行按钮去掉了。

 

2. jQuery.get( url, [data], [callback] ):使用GET方式来进行异步请求

参数:

url (String) :  发送请求的URL地址.

data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示,会做为QueryString附加到请求URL中。

callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。

这是一个简单的 GET 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。示例代码:

		$.get("./Ajax.aspx", {Action:"get",Name:"lulu"}, function (data, textStatus){
//返回的 data 可以是 xmlDoc, jsonObj, html, text, 等等.
this; // 在这里this指向的是Ajax请求的选项配置信息,请参考下图
alert(data);
//alert(textStatus);//请求状态:success,error等等。
当然这里捕捉不到error,因为error的时候根本不会运行该回调函数

//alert(this);
});

点击发送请求:

jQuery.get()回调函数里面的 this ,指向的是Ajax请求的选项配置信息:

image

 

3. jQuery.post( url, [data], [callback], [type] ) :使用POST方式来进行异步请求

参数:

url (String) : 发送请求的URL地址.

data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示。

callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。

type (String) : (可选)官方的说明是:Type of data to be sent。其实应该为客户端请求的类型(JSON,XML,等等)

这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。示例代码:

Ajax.aspx:

Response.ContentType = "application/json";
Response.Write("{result: '" + Request["Name"] + ",你好!(这消息来自服务器)'}");
jQuery 代码:
$.post("Ajax.aspx", { Action: "post", Name: "lulu" },
function (data, textStatus){
// data 可以是 xmlDoc, jsonObj, html, text, 等等.
//this; // 这个Ajax请求的选项配置信息,请参考jQuery.get()说到的this
alert(data.result);
}, "json");

点击提交:

这里设置了请求的格式为"json":

image

如果你设置了请求的格式为"json",此时你没有设置Response回来的ContentType 为:Response.ContentType = "application/json"; 那么你将无法捕捉到返回的数据。

注意一下,alert(data.result); 由于设置了Accept报头为“json”,这里返回的data就是一个对象,并不需要用eval()来转换为对象。

 

4. jQuery.getScript( url, [callback] ) : 通过 GET 方式请求载入并执行一个 JavaScript 文件

参数

url (String) : 待载入 JS 文件地址。

callback (Function) : (可选) 成功载入后回调函数。

jQuery 1.2 版本之前,getScript 只能调用同域 JS 文件。 1.2中,您可以跨域调用 JavaScript 文件。注意:Safari 2 或更早的版本不能在全局作用域中同步执行脚本。如果通过 getScript 加入脚本,请加入延时函数。

这个方法可以用在例如当只有编辑器focus()的时候才去加载编辑器需要的JS文件.下面看一些示例代码:

加载并执行 test.js。

jQuery 代码:

$.getScript("test.js");


加载并执行 AjaxEvent.js ,成功后显示信息。

jQuery 代码:

$.getScript("AjaxEvent.js", function(){
alert("AjaxEvent.js 加载完成并执行完成.你再点击上面的Get或Post按钮看看有什么不同?");
});

加载完后请重新点击一下上面的 Load 请求看看有什么不同。

jQuery Ajax 事件

Ajax请求会产生若干不同的事件,我们可以订阅这些事件并在其中处理我们的逻辑。在jQuery这里有两种Ajax事件:局部事件 和 全局事件。

局部事件就是在每次的Ajax请求时在方法内定义的,例如:

 $.ajax({
beforeSend: function(){
// Handle the beforeSend event
},
complete: function(){
// Handle the complete event
}
// ...
});

全局事件是每次的Ajax请求都会触发的,它会向DOM中的所有元素广播,在上面 getScript() 示例中加载的脚本就是全局Ajax事件。全局事件可以如下定义:

 $("#loading").bind("ajaxSend", function(){
$(this).show();
}).bind("ajaxComplete", function(){
$(this).hide();
});

或者:

 $("#loading").ajaxStart(function(){
$(this).show();
});

我们可以在特定的请求将全局事件禁用,只要设置下 global 选项就可以了:

 $.ajax({
url: "test.html",
global: false,// 禁用全局Ajax事件.
// ...
});

下面是jQuery官方给出的完整的Ajax事件列表:

  • ajaxStart (Global Event)
    This event is broadcast if an Ajax request is started and no other Ajax requests are currently running.
    • beforeSend (Local Event)
      This event, which is triggered before an Ajax request is started, allows you to modify the XMLHttpRequest object (setting additional headers, if need be.)
    • ajaxSend (Global Event)
      This global event is also triggered before the request is run.
    • success (Local Event)
      This event is only called if the request was successful (no errors from the server, no errors with the data).
    • ajaxSuccess (Global Event)
      This event is also only called if the request was successful.
    • error (Local Event)
      This event is only called if an error occurred with the request (you can never have both an error and a success callback with a request).
    • ajaxError (Global Event)
      This global event behaves the same as the local error event.
    • complete (Local Event)
      This event is called regardless of if the request was successful, or not. You will always receive a complete callback, even for synchronous requests.
    • ajaxComplete (Global Event)
      This event behaves the same as the complete event and will be triggered every time an Ajax request finishes.
  • ajaxStop (Global Event)
    This global event is triggered if there are no more Ajax requests being processed.

    具体的全局事件请参考API文档。
    好了,下面开始说jQuery里面功能最强的Ajax请求方法 $.ajax();  

     

    jQuery.ajax( options ) : 通过 HTTP 请求加载远程数据

    这个是jQuery 的底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。

    $.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该对象,但特殊情况下可用于手动终止请求。

    注意: 如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml")。错误的 MIME 类型可能导致不可预知的错误。见 Specifying the Data Type for AJAX Requests
    当设置 datatype 类型为 'script' 的时候,所有的远程(不在同一个域中)POST请求都回转换为GET方式。

    $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息。详细参数选项见下。

    jQuery 1.2 中,您可以跨域加载 JSON 数据,使用时需将数据类型设置为 JSONP。 使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。数据类型设置为 "jsonp" 时,jQuery 将自动调用回调函数。(这个我不是很懂)

    参数列表:

    参数名 类型 描述
    url String (默认: 当前页地址) 发送请求的地址。
    type String (默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET"。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。
    timeout Number 设置请求超时时间(毫秒)。此设置将覆盖全局设置。
    async Boolean (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
    beforeSend Function 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。XMLHttpRequest 对象是唯一的参数。
    function (XMLHttpRequest) {
    this; // the options for this ajax request
    }
    cache Boolean (默认: true) jQuery 1.2 新功能,设置为 false 将不会从浏览器缓存中加载请求信息。
    complete Function 请求完成后回调函数 (请求成功或失败时均调用)。参数: XMLHttpRequest 对象,成功信息字符串。
    function (XMLHttpRequest, textStatus) {
    this; // the options for this ajax request
    }
    contentType String (默认: "application/x-www-form-urlencoded") 发送信息至服务器时内容编码类型。默认值适合大多数应用场合。
    data Object,
    String
    发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'。
    dataType String

    预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息返回 responseXML 或 responseText,并作为回调函数参数传递,可用值:

    "xml": 返回 XML 文档,可用 jQuery 处理。

    "html": 返回纯文本 HTML 信息;包含 script 元素。

    "script": 返回纯文本 JavaScript 代码。不会自动缓存结果。

    "json": 返回 JSON 数据 。

    "jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

    error Function (默认: 自动判断 (xml 或 html)) 请求失败时将调用此方法。这个方法有三个参数:XMLHttpRequest 对象,错误信息,(可能)捕获的错误对象。
    function (XMLHttpRequest, textStatus, errorThrown) {
    // 通常情况下textStatus和errorThown只有其中一个有值
    this; // the options for this ajax request
    }
    global Boolean (默认: true) 是否触发全局 AJAX 事件。设置为 false 将不会触发全局 AJAX 事件,如 ajaxStart 或 ajaxStop 。可用于控制不同的Ajax事件
    ifModified Boolean (默认: false) 仅在服务器数据改变时获取新数据。使用 HTTP 包 Last-Modified 头信息判断。
    processData Boolean (默认: true) 默认情况下,发送的数据将被转换为对象(技术上讲并非字符串) 以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。
    success Function 请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态
    function (data, textStatus) {
    // data could be xmlDoc, jsonObj, html, text, etc...
    this; // the options for this ajax request
    }

    这里有几个Ajax事件参数:beforeSend success complete ,error 。我们可以定义这些事件来很好的处理我们的每一次的Ajax请求。注意一下,这些Ajax事件里面的 this 都是指向Ajax请求的选项信息的(请参考说 get() 方法时的this的图片)。
    请认真阅读上面的参数列表,如果你要用jQuery来进行Ajax开发,那么这些参数你都必需熟知的。

    示例代码,获取博客园首页的文章题目:

    $.ajax({
    type: "get",
    url: "http://www.cnblogs.com/rss",
    beforeSend: function(XMLHttpRequest){
    //ShowLoading();
    },
    success: function(data, textStatus){
    $(".ajax.ajaxResult").html("");
    $("item",data).each(function(i, domEle){
    $(".ajax.ajaxResult").append("<li>"+$(domEle).children("title").text()+"</li>");
    });
    },
    complete: function(XMLHttpRequest, textStatus){
    //HideLoading();
    },
    error: function(){
    //请求出错处理
    }
    });

    这里将显示首页文章列表。

     

     

    其他

    jQuery.ajaxSetup( options ) : 设置全局 AJAX 默认选项。

    设置 AJAX 请求默认地址为 "/xmlhttp/",禁止触发全局 AJAX 事件,用 POST 代替默认 GET 方法。其后的 AJAX 请求不再设置任何选项参数。

    jQuery 代码:

    $.ajaxSetup({
    url: "/xmlhttp/",
    global: false,
    type: "POST"
    });
    $.ajax({ data: myData });

     

    serialize() 与 serializeArray()

    serialize() : 序列表表格内容为字符串。

    serializeArray() : 序列化表格元素 (类似 '.serialize()' 方法) 返回 JSON 数据结构数据。

    示例:

    HTML代码:

    <p id="results"><b>Results: </b> </p>
    <form>
    <select name="single">
    <option>Single</option>
    <option>Single2</option>
    </select>
    <select name="multiple" multiple="multiple">
    <option selected="selected">Multiple</option>
    <option>Multiple2</option>
    <option selected="selected">Multiple3</option>
    </select><br/>
    <input type="checkbox" name="check" value="check1"/> check1
    <input type="checkbox" name="check" value="check2"
    checked="checked"/> check2
    <input type="radio" name="radio" value="radio1"
    checked="checked"/> radio1
    <input type="radio" name="radio" value="radio2"/> radio2
    </form>

    image

    serializeArray() 结果为:

    image

     

    一些资源

    一个jQuery的Ajax Form表单插件:http://www.malsup.com/jquery/form/

    一个专门生成Loading图片的站点:http://ajaxload.info/   大家觉得那些Loading比较炫的可以在这里跟帖晒一下,方便大家取用,嘎嘎

  • 2010年4月22日星期四

    高胜宁:网络事件营销的技能和方法(转)

    摘自:http://column.iresearch.cn/u/hlhw/archives/2010/286420.shtml

    文/高胜宁

            随着网络互动技术的发展和越来越多的社会热点从网络上爆发,企业正在尝试或者已经利用互联网和消费者进行多种形式的互动,并开展网络事件营销,即组织和利 用具有名人效应、新闻价值以及社会影响的人物或事件,引起媒体、社会团体和消费者的兴趣与关注。简单地说,事件营销就是通过把握新闻的规律,制造具有新闻 价值的事件,并通过具体的操作,让这一新闻事件得以传播,从而达到广告的效果。

      基本技能

      丰富的知识储备

      进行事件营销,策划者或组织者需要在经济、人文、历史、法律等各方面有所涉猎。对设计判断网络话题能力要求等同于新闻记者,并要时刻保持政治敏 感性,对网络话题的设计不能触犯底线,既要勇敢出击又要能够把握全局,能够从企业、产品、需求以及网友等多重角度中转换工作职能,甚至能够从网友的跟帖中 找到灵感和思路,以此突破话题方向。

      准确的甄别能力

      当前,随着互联网用户的增长,用户成分复杂,利益趋于多元化。随着SNS、微博等新的沟通工具的出现,网络氛围及话语权已经从精英转型为草根, 从娱乐需求转向多元利益诉求。一个不起眼的小人物,一个不起眼的小帖子,也能引起轩然大波。据CNNIC报告,我国网络用户已达到3.84亿,网络用户组 成成分复杂,可分为政治利益诉求、情感利益诉求以及经济利益诉求等多种心态。

      高度的职业敏感

      受关注的话题越来越同质化。新浪网总编辑陈彤认为:网络新闻是一种极其容易腐烂的物品。抢时间,抓内容品质是话题保鲜的最好方 法。但信息传播借助科技手段,产品更新换代速度迅猛,覆盖群体纵深发展,网站竞争激烈。新闻传播方式已经发生改变,单向传播路径已经发 生改变。每一个人的面前都有一个麦克风,大家都是无冕之王。因此,我们需要时刻保持高度职业敏感性,要在最早最短时间内寻找到最有爆发力的新闻事件,迅速 植入客户产品和品牌信息。王老吉亿元捐款,就是在一个恰当的时刻抓住了千载难逢的机会。

      培养网络感觉

      很多策划者还处在闭门造车的阶段,只会拍脑门进行方案的撰写,却从来不泡论坛,也不写博客。天涯社区总裁刑明说:没有网恋就没有网感。网络感觉 需要随时随地进行培养。这种感觉在一定程度上犹如评估一条普通新闻对于网友潜意识的冲击,及网友面对此新闻的第一感觉。网络感觉和新闻素养是一个网络公关 从业者谋生的手段。一个新闻工作者一定要具备杂文家的素质,能够从新闻背后挑出骨头,能够看出新闻背后的话题,做好新闻延续报道及深度报道。针对话题炒 作,抛出话题仅仅是开端,后续的修剪非常重要,如果没有良好的网感素质,在话题的延续和品牌信息的衔接上就会存在很大难度。

      钻研网络世界

      百度搜索风云榜,百度新闻关键词,必定代表着当天互联网上最热的事件。我们不仅需要经常访问天涯和猫扑,而且需要经常去灌水,发表看法,一定要 成为这些网站的资深用户;要去新浪、搜狐、网易和腾讯的博客看看大家都在写什么,同时自己也试着每周写两到三篇;订阅《华尔街日报》、《联合早报》、《金 融时报》和《财经》的新闻,看看这些新锐媒体都在讨论什么,他们的专业文章是怎么写出来的。对于任何一个网络热点事件,要及时进行跟踪,“外行看热闹,内 行看门道”,仔细研究每一个事件的来龙去脉。

      重要方法

      情绪感染法

      当前社会正处于矛盾频发阶段,消费者日益增长的物质文化需求和落后的生产力以及信息不对称而产生的话题,容易引起网络人群的极大关注。民生类、 情感类、励志类等话题最容易引起网民共鸣。网络平台自身的优势在于传播话题的多样性,一段视频、一篇微博、甚至几个字,均能够在互联网上引起轩然大波。

      利用美伊战争赚了一回的统一润滑油不仅进入了公众的视野,而且还在众多的消费者心目中有了一个清晰的定位:为减少摩擦而努力!它是怎么做到的 呢?原来统一润滑油在报道美伊战争的节目中打出了“多一点润滑,少一点摩擦”宣传语,并在互联网就该话题进行了大量传播,没有多余的解说和图景,和中央电 视台反战宣传的语调高度一致,充分利用网民的反战情绪,吸引网民参与话题讨论,使其形象迅速深入人心。

      超女营销法

      千篇一律的线上活动缺乏网民深度参与,活动组织者不得不投放大量的广告甚至注册虚假账号来敷衍雇主需求。组织者过分注重了页面的设计和主题的策 划,并没有对活动进行包装和传播,也就是说只有开头没有过程,认为只要活动页面上线就可以了,最后只需要做一份漂亮的报告而已。

      超女营销法是指在线上活动传播过程中,对参与活动的网民进行主动包装或者事先预埋参与选手,有针对性地进行话题炒作,从而达到提升整个活动效果 的方法。在早期超女比赛中,事先参赛选手的预埋,活动进程的话题炒作,使得超级(快乐)女生成为人人梦想出名的大舞台。

      2007年年底,淘宝网开展了一场声势浩大的“淘斯卡”创意大赛,淘宝用户根据活动主题自行创作形式多样的文字、图片、视频等作品上传至专区论 坛,然后经过评比,最终获取丰厚的奖品。拥有强大用户群的淘宝吸引了上万件参赛作品。在此次活动中,一个被网友称之为“淘宝第一美女”的淘宝卖家“水煮鱼 皇后”脱颖而出。而水煮鱼皇后更是成为当时网络甚至平面媒体竞相报道的对象。原来,该参赛选手一开始就预埋参赛,并对其参赛作品,话题传播进行了精心的设 计,最终不仅达到了推动此次赛事的目的,同时淘宝卖家积极向上的健康性格也广为人知,淘宝通过此次活动可谓是一箭双雕。

      草船借箭法

      草船借箭法是指在事件传播过程中,要善于学会在适当的时机借助其他热点事件达到产品传播的效果。很多经典的案例,都是借助了别人的力量,达到了 良好的传播效果。如借助当前热点事件、借助名人参与、借助专家点评、借助传统媒体引导等等。

      北京奥运会期间,全球体育明星和金牌得主成为网络热点词汇的时候,一则名为《赤壁之大学泡妞版上》在网络上迅速走红,并占据百度搜索风云榜第三 名。该视频短片中植入社交网站“爱情公寓”,吸引大量网友的关注与转载,并成为仅次于奥运会的网络热点事件,由于该视频标注是上集,所以众多网友开始期待 下集,或许是策划方并未想到能引起这么大的轰动效应和鉴于制作事件的问题,下集迟迟未能公布,而在该视频发布第三天,另一则名为《赤壁之风行版》在网上公 开发布,效果不亚于泡妞版的转载率和传播率,其中植入了“风行电影”。原来,风行网站的市场部在看到泡妞版风靡互联网的时候,利用下集未发布的空隙,制作 了风行版的视频短片。这正是借助了网络热点关注词汇,利用别人的力量轻松进行了自身产品的传播。

      概念带动法

      企业在传播一个产品的时候,都希望一夜走红,但网络的不可预见性使得众多企业组织者对事件营销望而止步。但一种新的传播方式正在被越来越多的企 业所尝试,他们开始为自己的产品或服务创造一种“新理念”、“新潮流”。就像全世界都知道第一个造出飞机的是莱特兄弟一样。理论市场和产品市场同时启动, 先推广一种观念,有了观念,市场慢慢就会做好。互联网无疑提供了一个良好的平台,从早期的农夫山泉的天然水,到联想彪悍的小Y,诸如蚂蚁族、奔奔族、时彩 族,都是先概念、后产品或者概念产品同步推广的经典案例。

      “时彩族”指的是一群有着相同爱好的网友,通过网络联络他们所从事的各种各样的工作,其中多数为公司白领,他们利用工作闲暇时间干着同样的事 情,聊着同样的话题,也通过网络购买可以时时开奖的彩票等,除了调节工作状态,也可以算是一种赚取外快的好方法。但因为这个彩票玩法很多,中奖几率比较 高,游戏性很强,让一些白领把手头的工作放到了一边,严重影响办公效率。时彩族们经常聚集在第一视频、博弈网出现,网络是他们沟通交流的主要渠道,告别了 社交网站的插件游戏,他们不再把采菜当做自己的任务,而是另外开辟了一个新的天地,通过网络进行小投资。其实,时彩族是第一视频为了推广自己的彩票网站而 进行的概念炒作,该案例的成功之处就是充分对概念进行前期渲染,不仅打造一个全新的概念,而且还将需要传播的产品进行了有效的结合。

      事件营销的方法有很多种,关键在于各种素材的融合以及有效的传播控制,犹如照顾自己的孩子一样传播一个公共事件,不仅能达到客户的传播预期,更 能提高自身的成就感。

    行业网站推广六要素(转)

    摘自:http://www.68design.net/web-guide/promotion/37652-1.html

      一个站点要运营成功的几个要素(从客户访问网站的角度)。我们可以模拟客户游历网站的过程,一个客户在网上游历,偶然中通过搜索引擎或是网络广 告,或其其他的方式找到了你的网站

      1、知道:

      要让客户找到你认识你,这就要通过网络广告,其他广告形式去宣传,但是宣传是个很花钱的事,如果又想不花太多的钱,又想有好的效果,那就是进行 seo。所以SEO是前台技术,是一种如何让客户快速找到你的一种技术。seo不是作弊,seo是网站运营的基础性工作。

      2、接受:

      要让客户接受你,一个网站要让客户接受,一个是从视觉上(信息的视觉感受又分为颜色,形状,大小,方位等因素),另一个是从听觉(网站最好是不 要添加背景音乐),还有就是从信息内容,也就是信息架构,客户要能很容易找到他想要的信息。最后就是要从操作上让客户接受,也就是客户使用起来不会很吃 力,不会迷失方向,不会不知所措,不会等待了很久也没有打开你的网页,这就是所谓的用户体验设计。

      3、欣赏:

      客户找到了你的网站,并且在你的网站停留了片刻,发现了一些正是他想要的信息,但是他还意外发现了其他更多他想要的信息。他非常惊喜,感觉的非 常满意,觉得你的网站确实为他提供了有价值的信息,而且还有很多其他的他想要的信息。于是他就把你的网站加入到了收藏夹中。而且把你的网站推荐了给他的朋 友。要做到这一点必须是你的网站的内容是非常丰富,非常有价值的,非常独特的。如果你的网站上都是些其他网站上有的东西,客户都曾经看过的东西。那么客户 就不会很欣赏你的网站,他会觉得你的网站很普通。

      为访客解决问题是做网站的最高境界!

      4、眷恋:

      客户曾经访问过你的网站,那一次的访问让他很满意,也很难忘,所以在他需要同类型的信息时,他又想起了你的网站(要让客户能很容易的再次访问你 的网站,网站的域名必须是简单好记的),并再次访问你的网站,他发现访问的速度还是那么快(网站一定要保证访问速度),信息又有了很多更新(网站信息不更 新是最大的弊端),他再次感到了惊喜,他发现了很多他上次没见到过的信息,这些信息对他来说非常有价值。并且这条信息让他赚了不少的钱。他的朋友和亲戚都 知道了这件事,于是他的朋友亲戚们都去访问你的网站。当打开你的网站时,他们的感受与客户的感受完全一样,于是他们的朋友亲戚……。你的网站就是这样发达 起来的,为客户提供最好最快的服务对你必然没有坏处。

      从网站主的角度去考虑一个网站的运营:

      1、定位:

      首先网站主做网站的第一目的是盈利,所以网站第一件事是要找准市场,定好位,还要有清晰的盈利模式,所以网站架设前的市场分析和投资收益分析是 必不可少的。你的市场是什么?你如何盈利?这个作为网站运营者一定要非常清楚。

      2、团队:

      市场找到了,盈利模式确定了,结下来就是团队的搭建,如何打造一个高效的网站运营团队是非常重要的,需要多少人,都需要什么样的人这都是根据你 的网站的内容来确定的。如何以最少的成本去运营网站是网站主最需要考虑的事情,即使有了风险投资,也要慎重使用,不产生效益的花费,你就是风险投资再多, 终究也会花完。所以要从小的起步,尽量在你的能力范围之内。现在已经不是个人英雄年代,任何事情都是需要团队来完成的,但团队并不意味着人越多越好,你应 该搭建一个你最需要的团队。

      3、服务:

      网站要盈利肯定是要网站能让客户接受并产生价值,所以网站一定要做好推广,做好内容,以及做好服务。你的网站必须要有你自己独特的东西,用户凭 什么能记住你的网站,用户为什么上你的网站?

      4、发展:

      网站经营团队搭建好了,网站也做好了,推广也做得不错,也获得了客户的认可,那么你就要考虑发展的问题了,你的网站不可能一下子做得很大,所以 起步的时候你都是按照你的能力来规划网站的规模的,但是网站的规模总是会变的,要么变小直到网站死掉,要么变大,当网站规模变大时,那么你就的考虑整个团 队的建设和管理的问题了,尽量打造高效的团队,而不要盲目去扩充团队的规模,你的管理能力不可能从管几个人的一下子飞跃到管几百个人(除非你曾经有过管理 几百号人的经验)

      5、创新:

      网站稳定经营一段时间以后,网站主就必须考虑如何创新了,因为很多人发现了你的网站,知道这种网站能赚钱,并且很多人在疯狂的模仿你(互联网模 仿的速度是最快的),所以你一直要保持以你独特的方式别人没办法快速模仿的方式去做。创新可能会导致死亡,因为开发和培育一个新的市场和模式都是需要时间 的,如果你耗不过这个时间你就会死掉,但不创新肯定会死,与其等死不如勇敢去迎接死亡。

      6、网站的运营一定要稳定,如果客户经常打不开你的网站,那么你所有的努力都会前功尽弃。

    2007年我国行业网站收入达147亿元(转)

    摘自:http://www.68design.net/News/32062-1.html

      《电子商务世界》在杭州第三届中小企业电子商务 应用发展大会发布的调查报告数据显示,2007年我国具备运营能力的行业网站达2300家,总营业收入147亿元,较2006年的100亿元增长47%, 从业人数超过19万人。

      2007年企业化运营B2B网站总数超过4500家,而2006年是2000家,实现了一年翻一番的发展。

      平均收入640万元

      此次调查对象是B2B行业网站运营企业,涉及30多个领域,如食品、电子、纺织、化工等行业,覆盖浙江、北京、上海、广东等10多个省市。

      行业网站经过几年发展,活力逐渐显现,每个网站平均注册会员大约为8万家左右,其中收费会员约占注册会员总数的7%。2007年行业网站的平均 营业收入约为640万元,2006年的这个数字是530万元,同比增长20%。

      2007年,B2B行业网站收入在500万元以下的占到了63.93%,收入500―1000万元的达到了21.71%的比例,而收入在 1000万元以上的网站比例是14.35%,与2006年相比,增长了近4个百分点。

      长三角及周边地区B2B行业网站在全国所占比重持续攀高。浙江、上海、江苏的行业网站约占被调查样本总数的65%,其中仅浙江就占整个调查总数 的4成,且行业网站的数量还在增多。

      调查发现,B2B行业网站的收入来源仍然主要是广告、会员、资金服务,也开始出现新的收费模式,包括竞价排名收入和代理产品销售收入,这说明 B2B行业网站开始寻求变化,丰富收入来源。

      三处不足需克服

      国家信息化专家资讯委员会专家柴跃廷教授表示,从供应市场的角度来看,行业网站相对于中小企业的需求来说还有不完善的地方,表现在三个方面。

      首先是交易模式比较单一,趋于雷同。大多数的网站没有深入细分交易主体,交易模式缺乏针对性,这是行业网站供给市场质量不高的原因。此外,全程 交易服务能力不足也是普遍存在的问题。很多网站只注重交易中服务,没有太多地关注交易以前的和交易以后的服务。同时,行业网站普遍存在同行恶性竞争现象, 规模小,公信力低,服务质量差。

      柴跃廷表示,这些问题的产生反映出我国法律法规环境的不完善。如急需的法律法规不到位,国家相关部门还没有出台电子商务经营主体的管理办法,所 以许多投诉难以处理。

      此外,对电子货币也没有成熟的管理办法出台。我国行业网站其实属于电子商务服务业范畴,但是国家对电子商务服务业产业政策定位不明确,相关的税 收优惠及投融资政策不到位。

    Delphi异常处理try except语句和try finally语句用法以及区别(转)

    摘自:http://blog.csdn.net/wzq9706/archive/2010/04/06/5453254.aspx

    一直写程序都没管他们,也尽量很少用,今天终于想把他给弄个明白,在网上找来,记下!
    主要是前面小部分,后面的是详细说明(很�嗦!)

    一、异常的来源
      在Delphi的应用程序中,下列的情况都比较有可能产生异常。  
      (1)文件处理  
      (2) 内存分配  
      (3)Windows资源 
      (4)运行时创建对象和窗体  
      (5)硬件和操作系统冲突
       
       二、异常的处理
      (1)try…except…end;  
      在try体内的代码发生异常时,系统将转向except部分进行异常 的处理。这是Delphi处理异常的最基本的方式之一。
      
      (2)try…finally…end;  
      这种异常处理结 构一般用于保护Windows的资源分配等方面,它确保了无论try体内的代码是否发生异常,都需要由系统进行最后的统一处理的一些Windows对象的 正确处理。  
      和try…except…end不同,该结构的finally部分总被执行。
      
      (3)不存在 try…except…finally…end结构来既处理异常,又保护资源分配的结构,但是,try…except…end结构允许嵌套到 try…finally…end结构中,从而实现既处理异常,又保护资源的分配。
      
      三、异常的精确处理
      (1)定义一个 异常。  
      在Delphi中,每个异常都是Exception[1]类的一个派生类[2]。因此,定义一个异常就是定义一个 Exception类的派生类。  
      type EMyException = class(Exception);  
      当然,基 类可以是Exception或者Exception的任何一个任何层次的派生类。
      
      (2)在程序中抛出一个异常。  
       根据不同的情况抛出异常是使用异常的最基本的模式。在Delphi中,由raise语句来实现。  
      【语法】raise 异常类.Create('异常的缺省说明');
      
      (3)在try…except…end中更加精确的捕捉异常。  
      使 用on E:异常类 do…结构可以在do体内处理特定异常类所抛出的异常。
      
      四、异常的调试
      在Delphi IDE中,解除"Debugger Options"(可以使用菜单Tools―>Debugger Options…进行访问)中的Integrated Debugging复选框的勾选状态可以进行异常的调试。
      
      五、异常的补充 说明
      (1)每一段程序都有可能产生错误!这是软件业的一个不容置疑的现象和规律。事实上,传统的if…else…结构完全可以解决所有的错 误,使用Exception机制也没能够回避在最原始的层次,通过遍历可能的情况来产生异常的做法,那么,为什么还要异常机制?
      
       答案很清楚:异常提供了一种更加灵活和开放的方式,使得后来的编程者可以来根据实际的情况处理这种错误,而不是使用预先设定好的处理结果。

    2010年4月16日星期五

    我觉得不错的一篇delphi多线程入门(转)

    摘自:http://www.360doc.com/content/10/0102/09/681839_12482238.shtml

    多线程编程(1) - 先入门再说。

      多线程应该是编程工作者的基础技能, 但这个基础对我来讲的确有点难(起码昨天以前是这样).

      开始本应该是一篇洋洋洒洒的文字, 不过我还是提倡先做起来, 在尝试中去理解.

      先试试这个:

    procedure TForm1.Button1Click(Sender: TObject);
    var
     i: Integer;
    begin
     for i := 0 to 500000 do
     begin
      Canvas.TextOut(10, 10, IntToStr(i));
     end;
    end;

      上面程序运行时, 我们的窗体基本是 "死" 的, 可以在你在程序运行期间拖动窗体试试...

      Delphi 为我们提供了一个简单的办法(Application.ProcessMessages)来解决这个问题:

    procedure TForm1.Button1Click(Sender: TObject);
    var
     i: Integer;
    begin
     for i := 0 to 500000 do
     begin
      Canvas.TextOut(10, 10, IntToStr(i));
      Application.ProcessMessages;
     end;
    end;

      这个 Application.ProcessMessages; 一般用在比较费时的循环中, 它会检查并先处理消息队列中的其他消息.

      但这算不上多线程, 譬如: 运行中你拖动窗体, 循环会暂停下来...

      在使用多线程以前, 让我们先简单修改一下程序:

    function MyFun: Integer;
    var
     i: Integer;
    begin
     for i := 0 to 500000 do
     begin
      Form1.Canvas.Lock;
      Form1.Canvas.TextOut(10, 10, IntToStr(i));
      Form1.Canvas.Unlock;
     end;
     Result := 0;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     MyFun;
    end;

    细数上面程序的变化:

      1、首先这还不是多线程的, 也会让窗体假 "死" 一会;

      2、把执行代码写在了一个函数里, 但这个函数不属于 TForm1 的方法, 所以使用 Canvas 是必须冠以名称(Form1);

      3、既然是个函数, (不管是否必要)都应该有返回值;

      4、使用了 500001 次 Lock 和 Unlock.

      Canvas.Lock 好比在说: Canvas(绘图表面)正忙着呢, 其他想用 Canvas 的等会;

      Canvas.Unlock : 用完了, 解锁!

      在 Canvas 中使用 Lock 和 Unlock 是个好习惯, 在不使用多线程的情况下这无所谓, 但保不准哪天程序会扩展为多线程的; 我们现在学习多线程, 当然应该用.

      在 Delphi 中使用多线程有两种方法: 调用 API、使用 TThread 类; 使用 API 的代码更简单.

    function MyFun(p: Pointer): Integer; stdcall;
    var
     i: Integer;
    begin
     for i := 0 to 500000 do
     begin
      Form1.Canvas.Lock;
      Form1.Canvas.TextOut(10, 10, IntToStr(i));
      Form1.Canvas.Unlock;
     end;
     Result := 0;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    var
     ID: THandle;
    begin
     CreateThread(nil, 0, @MyFun, nil, 0, ID);
    end;

      代码分析:

      CreateThread 一个线程后, 算上原来的主线程, 这样程序就有两个线程、是标准的多线程了;

      CreateThread 第三个参数是函数指针, 新线程建立后将立即执行该函数, 函数执行完毕, 系统将销毁此线程从而结束多线程的故事.

      CreateThread 要使用的函数是系统级别的, 不能是某个类(譬如: TForm1)的方法, 并且有严格的格式(参数、返回值)要求, 不管你暂时是不是需要都必须按格式来;

    因为是系统级调用, 还要缀上 stdcall, stdcall 是协调参数顺序的, 虽然这里只有一个参数没有顺序可言, 但这是使用系统函数的惯例.

      CreateThread 还需要一个 var 参数来接受新建线程的 ID, 尽管暂时没用, 但这也是格式; 其他参数以后再说吧.

      这样一个最简单的多线程程序就出来了, 咱们再用 TThread 类实现一次

    type
     TMyThread = class(TThread)
     protected
      procedure Execute; override;
     end;
    procedure TMyThread.Execute;
    var
     i: Integer;
    begin
     FreeOnTerminate := True; {这可以让线程执行完毕后随即释放}
     for i := 0 to 500000 do
     begin
      Form1.Canvas.Lock;
      Form1.Canvas.TextOut(10, 10, IntToStr(i));
      Form1.Canvas.Unlock;
     end;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     TMyThread.Create(False);
    end;

      TThread 类有一个抽象方法(Execute), 因而是个抽象类, 抽象类只能继承使用, 上面是继承为 TMyThread.

      继承 TThread 主要就是实现抽象方法 Execute(把我们的代码写在里面), 等我们的 TMyThread 实例化后, 首先就会执行 Execute 方法中的代码.

      按常规我们一般这样去实例化:

    procedure TForm1.Button1Click(Sender: TObject);
    var
     MyThread: TMyThread;
    begin
     MyThread := TMyThread.Create(False);
    end;

      因为 MyThread 变量在这里毫无用处(并且编译器还有提示), 所以不如直接写做 TMyThread.Create(False);

      我们还可以轻松解决一个问题, 如果: TMyThread.Create(True) ?


    procedure TForm1.Button1Click(Sender: TObject);
    var
     MyThread: TMyThread;
    begin
     MyThread := TMyThread.Create(True);
     MyThread.Resume;
    end;
    //可简化为:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     with TMyThread.Create(True) do Resume;
    end;

      使用 TThread 类时, Delphi 有提供的模板, 但用 IDE 写代码很方便, 我重写一遍录下来给大家看:

      多线程编程(1) - 先入门再说

      期间使用了 Ctrl+J、Shift+Ctrl+C、Ctrl+Alt+P 等快捷键.

      重要的修正与补充: 在 TThread 类的例子中, 应该有这句: FreeOnTerminate := True; (原来漏掉, 代码中已加上; 但动画加不上了).

      先说它什么意思:

      类 Create 了就要 Free;

      但 TThread(的子类) 有特殊性, 很多时候我们不能确定新建的线程什么时候执行完(也就是什么时候该释放);

      如果线程执行完毕自己知道释放就好了, 所以 TThread 给了一个布尔属性 FreeOnTerminate, 如果为 True, 线程执行完毕后就会自释放.

      我怎么会忽略了这么重要的问题呢? 原因有二:

      1、我一直在追求最精炼的代码;

      2、我手头上不只一本书上介绍说: FreeOnTerminate 的默认值是 True(错误!), 经落实, 应该是 False, 起码在 Delphi 2007 和 2009 中是这样; 或许以前的某个版本和现在不一样

    多线程编程(2) - 从 CreateThread 说起。

    function CreateThread(
     lpThreadAttributes: Pointer;      {安全设置}
     dwStackSize: DWORD;          {堆栈大小}
     lpStartAddress: TFNThreadStartRoutine; {入口函数}
     lpParameter: Pointer;         {函数参数}
     dwCreationFlags: DWORD;        {启动选项}
     var lpThreadId: DWORD         {输出线程 ID }
    ): THandle; stdcall;           {返回线程句柄}

      在 Windows 上建立一个线程, 离不开 CreateThread 函数;

      TThread.Create 就是先调用了 BeginThread (Delphi 自定义的), BeginThread 又调用的 CreateThread.

      既然有建立, 就该有释放, CreateThread 对应的释放函数是: ExitThread, 譬如下面代码:

    procedure TForm1.Button1Click(Sender: TObject);
    begin
     ExitThread(0); {此句即可退出当前程序, 但不建议这样使用}
    end;

      代码注释:

      当前程序是一个进程, 进程只是一个工作环境, 线程是工作者;

      每个进程都会有一个启动线程(或叫主线程), 也就是说: 我们之前大量的编码都是写给这个主线程的;

      上面的 ExitThread(0); 就是退出这个主线程;

      系统不允许一个没有线程的进程存在, 所以程序就退出了.

      另外: ExitThread 函数的参数是一个退出码, 这个退出码是给之后的其他函数用的, 这里随便给个无符号整数即可.

      或许你会说: 这个 ExitThread 挺好用的; 其实不管是用 API 还是用 TThread 类写多线程, 我们很少用到它; 因为:

      1、假如直接使用 API 的 CreateThread, 它执行完入口函数后会自动退出, 无需 ExitThread;

    2、用 TThread 类建立的线程又绝不能使用 ExitThread 退出; 因为使用 TThread 建立线程时会同时分配更多资源(譬如你自定义的成员、还有它的祖先类(TObject)分配的资源等等), 如果用 ExitThread 给草草退出了, 这些资源将得不到释放而导致内存泄露. 尽管 Delphi 提供了 EndThread(其内部调用 ExitThread), 这也不需要我们手动操作(假如非要手动操作也是件很麻烦的事情, 因为很多时候你不知道线程是什么时候执行完毕的).

      除了 CreateThread, 还有一个 CreateRemoteThread, 可在其他进程中建立线程, 这不应该是现在学习的重点;

      现在先集中精力把 CreateThread 的参数搞彻底.

      倒着来吧, 先谈谈 CreateThread 将要返回的 "线程句柄".

      "句柄" 类似指针, 但通过指针可读写对象, 通过句柄只是使用对象;

      有句柄的对象一般都是系统级别的对象(或叫内核对象); 之所以给我们的是句柄而不是指针, 目的只有一个: "安全";

      貌似通过句柄能做很多事情, 但一般把句柄提交到某个函数(一般是系统函数)后, 我们也就到此为止很难了解更多了; 事实上是系统并不相信我们.

      不管是指针还是句柄, 都不过是内存中的一小块数据(一般用结构描述), 微软并没有公开句柄的结构细节, 猜一下它应该包括: 真实的指针地址、访问权限设置、引用计数等等.

      既然 CreateThread 可以返回一个句柄, 说明线程属于 "内核对象".

      实际上不管线程属于哪个进程, 它们在系统的怀抱中是平等的; 在优先级(后面详谈)相同的情况下, 系统会在相同的时间间隔内来运行一下每个线程, 不过这个间隔很小很小, 以至于让我们误以为程序是在不间断地运行.

      这时你应该有一个疑问: 系统在去执行其他线程的时候, 是怎么记住前一个线程的数据状态的?

    有这样一个结构 TContext, 它基本上是一个 CPU 寄存器的**, 线程是数据就是通过这个结构切换的, 我们也可以通过 GetThreadContext 函数读取寄存器看看.

      附上这个结构 TContext(或叫: CONTEXT、_CONTEXT) 的定义Context = ^TContext;
    _CONTEXT = record
     ContextFlags: DWORD;
     Dr0: DWORD;
     Dr1: DWORD;
     Dr2: DWORD;
     Dr3: DWORD;
     Dr6: DWORD;
     Dr7: DWORD;
     FloatSave: TFloatingSaveArea;
     SegGs: DWORD;
     SegFs: DWORD;
     SegEs: DWORD;
     SegDs: DWORD;
     Edi: DWORD;
     Esi: DWORD;
     Ebx: DWORD;
     Edx: DWORD;
     Ecx: DWORD;
     Eax: DWORD;
     Ebp: DWORD;
     Eip: DWORD;
     SegCs: DWORD;
     EFlags: DWORD;
     Esp: DWORD;
     SegSs: DWORD;
    end;

      CreateThread 的最后一个参数是 "线程的 ID";

      既然可以返回句柄, 为什么还要输出这个 ID? 现在我知道的是:

      1、线程的 ID 是唯一的; 而句柄可能不只一个, 譬如可以用 GetCurrentThread 获取一个伪句柄、可以用 DuplicateHandle 复制一个句柄等等.

      2、ID 比句柄更轻便.

      在主线程中 GetCurrentThreadId、MainThreadID、MainInstance 获取的都是主线程的 ID.

      �哩�嗦一大些, 才说了 CreateThread 一个参数, 下篇继续.

      线程的学习还在入门中, 把我的理解写在这, 最期望的收获是得到指正.

    多线程编程(3) - 从 CreateThread 说起[续]。                       

                   function CreateThread(
     lpThreadAttributes: Pointer;
     dwStackSize: DWORD;
     lpStartAddress: TFNThreadStartRoutine;
     lpParameter: Pointer;
     dwCreationFlags: DWORD; {启动选项}
     var lpThreadId: DWORD
    ): THandle; stdcall;
      CreateThread 的倒数第二个参数 dwCreationFlags(启动选项) 有两个可选值:
      0: 线程建立后立即执行入口函数;
      CREATE_SUSPENDED: 线程建立后会挂起等待.
      可用 ResumeThread 函数是恢复线程的运行; 可用 SuspendThread 再次挂起线程.
      这两个函数的参数都是线程句柄, 返回值是执行前的挂起计数.
      什么是挂起计数?
      SuspendThread 会给这个数 +1; ResumeThread 会给这个数 -1; 但这个数最小是 0.
      当这个数 = 0 时, 线程会运行; > 0 时会挂起.
      如果被 SuspendThread 多次, 同样需要 ResumeThread 多次才能恢复线程的运行.
      在下面的例子中, 有新线程不断给一个全局变量赋随机值;
      同时窗体上的 Timer 控件每隔 1/10 秒就把这个变量写在窗体标题;
      在这个过程中演示了 ResumeThread、SuspendThread 两个函数.
      运行效果图:
      
      代码文件:unit Unit1;
    interface
    uses
     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs, StdCtrls, ExtCtrls;
    type
     TForm1 = class(TForm)
      Button1: TButton;
      Button2: TButton;
      Button3: TButton;
      Timer1: TTimer;
      procedure Button1Click(Sender: TObject);
      procedure Button2Click(Sender: TObject);
      procedure Button3Click(Sender: TObject);
      procedure FormCreate(Sender: TObject);
      procedure Timer1Timer(Sender: TObject);
     end;
    var
     Form1: TForm1;
    implementation
    {$R *.dfm}
    var
     hThread: THandle; {线程句柄}
     num: Integer;   {全局变量, 用于记录随机数}
    {线程入口函数}
    function MyThreadFun(p: Pointer): Integer; stdcall;
    begin
     while True do {假如线程不挂起, 这个循环将一直循环下去}
     begin
      num := Random(100);
     end;
     Result := 0;
    end;
    {建立并挂起线程}
    procedure TForm1.Button1Click(Sender: TObject);
    var
     ID: DWORD;
    begin
     hThread := CreateThread(nil, 0, @MyThreadFun, nil, CREATE_SUSPENDED, ID);
     Button1.Enabled := False;
    end;
    {唤醒并继续线程}
    procedure TForm1.Button2Click(Sender: TObject);
    begin
     ResumeThread(hThread);
    end;
    {挂起线程}
    procedure TForm1.Button3Click(Sender: TObject);
    begin
     SuspendThread(hThread);
    end;
    {下面是窗体代码}
    procedure TForm1.FormCreate(Sender: TObject);
    begin
     Timer1.Interval := 100;
    end;
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
     Text := IntToStr(num);
    end;
    end.

    2010年4月15日星期四

    三个字叠在一起组成的字

    �(三个土,读音yao,意:山高,多用於人名。)
    �(三条牛,读音bēn,意:同"奔 ",急走,跑,紧赶,逃跑等。)
    聂(三只耳朵,读音nie,意: )
    磊(三块石头,读音lěi,本义:石头多)
    �(三条小狗,读音biāo,意:疾风,暴风。同"飙" )
    �(三个宝贝,读音bi,意:传说中的一种动物,像龟。旧时大石碑的石座多雕刻成��形状 )
    奸(三个女字重叠,读音jian,意:同"奸")
    �(三匹马,读音piāo,意:许多马跑的样子 )
    �(三只羊,读音shān,意:群羊 )
    �(三个吉,读音zhe,意:同"哲"。 )
    �(三个言,读音ta,意:说话快。 )
    �(三条舌头,读音qi,意:播弄是非 )
    �(三只眼,读音mo,意:美目 )
    �(三只香,读音xīn,意:古同"馨"。 )
    �(三条泉水,读音xun,意:下雨而泉水出 )
    �(三个响雷,读音bing,意:〔��〕雷声。 )
    �(三个条田,读音lei,意:田间的土地,古代一种藤制的筐子。 )
    轰(三个车,读音hōng,意:见"轰"。)
    �(三个白,读音xiǎo,意:皎洁,明亮:"天�无云。")
    �(三颗心,读音suǒ,意:沮丧的样子。)
    �(三个小,读音mo,意:古同"麽"。)
    �(三个鹿,读音cū,意:同"粗"。)
    �(三个龙,读音da ,意古同"�",龙腾飞的样子。)
    鑫(三个金,读音xīn,意旧时商店字号、人名用字,取其金多兴旺之意)
    森(三个木,读音sēn,意稠密)
    淼(三个水,读音miǎo,意(水广阔无际的样子)
    �(三个土,读音yao,意山高。多用于人名)
    �(三个士,读音zhuang,意古同"壮")
    �(三个私的右半部分,读音lěi,意垒土块为墙。)
    �(三只手,读音pa,意 俗称扒手为三只手,故写作"�")
    品(三口之家,读音pǐn,本义:众多)
    晶(三日,读音jīng,意清明;晴朗)
    �(三子,读音zhuǎn,意谨慎)
    众(上四下豕,读音zhong,意同"众")
    毳(三根毛,读音cui,意指兽毛皮)
    �(三条鱼,读音xiān ,意古同"鲜")
    �(三只羊,读音shān ,意古同"膻")
    矗(三个直,读音chu,意高耸)
    �(三根草,读音hui,意古同"卉")
    �(三个止,读音se,意古同"涩")
    �(三个隼,读音za,意群鸟)
    �(三个又,读音ruo,意古同"若")
    �(三股阴风,读音xiū,意惊跑的样子)
    �(三个飞机,读音fēi,意义未详。)
    �(三把尖刀,读音li ,意:姓氏。)
    焱(三把火,读音yan ,意:火花,火焰。)

    2010年4月14日星期三

    Delphi正则表达式使用方法(TPerlRegEx)(转)

    摘自:http://blog.csdn.net/farce/archive/2010/02/05/5291820.aspx

    正 文:

        使用Delphi开发软件无疑是一种比较高效率的方式,完全对象的语言,严格控制的语法,可 视化开发环境的性能,编译器的速度和已编译代码的效率,编程语言的功能及其复杂性,数据库结构的灵活性和可扩展性,框架对设计和使用模式的扩充无疑都是 delphi身上的光芒。     最近飘易使用Delphi开发了一套工具,由于和网络应用相关的东西较多,需要使用正则表达式,而目前主流的delphi下的正则表达式,应该 是 PerlRegEx 。     官方网站: http://www.regular-expressions.info/delphi.html
        直 接下载: http://www.regular-expressions.info/download/TPerlRegEx.zip     安装方法(飘易使用的delphi版本是 delphi2007): 1、先把解压的 TPerlRegEx 文件夹放在 Delphi 的根目录下的 Imports 目录中。 2、目前最新 For Win32 的版本是可以在 Delphi7,Delphi 2006,Delphi 2007,Delphi 2009 下使 用。飘易用的是2007,于是就打开 PerlRegExD2007.dpk ,在 Project Manager 窗口中 的 PerlRegExD2007.bpl 上点击右键,执行 Install。这时在 Tool Palette 的列表中已经有 了 TPerlRegEx,在 JGsoft 组。 3、 Tools -> Options -> Environment Options -> Delphi Options -> Library- Win32 -> Library path -> 添加路径:$(BDS)\Imports\TPerlRegEx (注:就是刚才放置的 路径)。 4、打开delphi根目录下 Imports\TPerlRegEx\pcre ,把 pcre3.dll 文件复制到 C:\WINDOWS \system32 文件夹下,这个文件夹里是windows系统存放 dll 文件的大本营。如果不复制pcre3.dll,在应 用 TPerlRegEx 正则的时候,系统提示出错。 5、用delphi打开 Imports\TPerlRegEx 目录下的 pcre.pas 文件,找 到 //{$DEFINE PCRE_STATICLINK} ,把之前的注释 // 删除;找到 {$DEFINE PCRE_LINKDLL} ,把 它注释掉,即改为 //{$DEFINE PCRE_LINKDLL} 。 注意:这点非常重要,如果不这样改的话,在软件开发完成后,分发到其他电脑上的时候,软件就会提示“缺少pcre3.dll错误”。这样修改的原因,是把 正则直接封包到 exe 文件里,而不需要链接 pcre3.dll 了;封包进 exe,付出的代价是软件增大了 100KB 左右的大小,当然比起必 须携带 pcre3.dll来说,这是有意义的付出。  具体的原因,看下面的官方解释:
    // Define PCRE_STATICLINK to link the OBJ files with PCRE 7.7.
    // Due to bugs in the Delphi compiler, you may get an internal error if install TPerlRegEx into a design time package,
    // and you don't put TPerlRegEx into a runtime package either.
    // You can use PCRE_STATICLINK if you don't use packages at all (which means you don't install it into the IDE and you don't drop TPerlRegEx on a form)
    // You can also use PCRE_STATICLINK if you put the component into a runtime package
    6、可以使用了! 直接 uses PerlRegEx 或从 Tool Palette 添加都可以。  (以上部分方法参考)     TPerlRegEx 安装设置完成后,就可以舒心地使用了,一些简单的使用方法如下:
    //查找是否存在
    var
      reg: TPerlRegEx;
    begin
      reg := TPerlRegEx.Create(nil);
      reg.Subject := 'CodeGear Delphi 2007 for Win32';
      reg.RegEx   := '\d';
      if reg.Match then
        ShowMessage(' 找到了')
      else
        ShowMessage('没找到');
      FreeAndNil(reg);
    end;
    //替换一般字符串
    var
    reg: TPerlRegEx;
    begin
    reg := TPerlRegEx.Create(nil);
    reg.Subject := ' 我爱DELPHI, 但Delphi不爱我!';
    reg.RegEx   := 'Delphi';
    reg.Replacement := '◆';
    reg.ReplaceAll;
    ShowMessage(reg.Subject); // 返回: 我爱DELPHI, 但◆不爱我!          
    FreeAndNil(reg);
    end;
    //分别显示找到的每一个和总数
    var
      reg: TPerlRegEx;
      num: Integer; // 用 num 来计数
    begin
      reg := TPerlRegEx.Create(nil);   reg.Subject := 'CodeGear Delphi 2007 for Win32';
      reg.RegEx   := '\d';   num := 0;
      while reg.MatchAgain do  //MatchAgain 是下一个
      begin
        ShowMessage(reg.MatchedExpression); // 将分别显示: 2 0 0 7 3 2
        Inc(num);
      end;
        ShowMessage(IntToStr(num)); //6   FreeAndNil(reg);
    end;
    //目标字符串的位置与长度
    var
      reg: TPerlRegEx;
    begin
      reg := TPerlRegEx.Create(nil);   reg.Subject := 'CodeGear Delphi 2007 for Win32';
      reg.RegEx   := 'Delphi';   while reg.MatchAgain do  //很明显: 本例只能找到一个结果
      begin
        ShowMessage(reg.MatchedExpression); // 找到的字符串: Delphi
        ShowMessage(IntToStr(reg.MatchedExpressionOffset)); // 它所在的位置: 10
        ShowMessage(IntToStr(reg.MatchedExpressionLength)); // 它的长度: 6
      end;   FreeAndNil(reg);
    end;

    2010年4月13日星期二

    delphi7 手动安装 indy10.2.3(转)

    摘自:http://delphibasic.blogbus.com/logs/34742922.html

    delphi7下的安装成 功,delphi11和delphi6的安装没有试用

    【自动安装】
    Lib\Fulld7.bat
    双击运行即可。
    自动会把bpl文件拷到C:\windows\system32
    重新打开delphi7会自动加载 dclIndyCore70.bpl dclIndyProtocols70.bpl


    【手工安装】
    1.windows的path路径中增加D7的路径
    在启用delphi7时,要能加载dclIndyCore70.bpl这个文件
    如果是自动安装,这个文件会拷到C:\windows\system32\dclIndyCore70.bpl,所以不用改path

    2.delphi7菜单中Library路径中
    添加indy10\LIB路径下的System、Core、Protocols下的三个目录
    添加indey10\D7 因为这个目录下有bpl和dcu文件

    3.删除delphi7目录Bin下的indy*.BPL文件,这是官方旧版本的文件,放心删除。

    4.删除delphi7目录下的 Id*.DCU文件,一般都是在lib目录里。


    5.打开indy10\lib目录,安装DPK包顺序如下:

    (1)编译 System\IndySystem70.dpk       (只需要compile)
              (这个不是设计包,不需要install)

    (2)编译 Core\IndyCore70.dpk           (只需要compile)
       编译安装Core\dclIndyCore70.dpk   (设计包,先complie后install)

    (3)编译 Protocols\IndyProtocols70.dpk   (只需要compile)
       编译安装Protocols\dclIndyProtocols70.dpk (设计包,先complie后install)

    6.完成

    【第二次手工安装】

    第一步:
    indy10\D7目录下的5个文件
    复制到delphiD:\Delphi7_Ent\Projects\Bpl
    IndySystem70.bpl
    IndyCore70.bpl
    IndyProtocols70.bpl
    dclIndyCore70.bpl
    dclIndyProtocols70.bpl

    第二步:
    打开delphi7菜单
    Component/install packpages/
    add dclIndyCore70.bpl

    add dclIndyProtocols70.bpl


    第三步
    打开delphi7菜单中Library路径中
    添加indy10\LIB路径下的System、Core、Protocols下的三个目录

    完成!更简单。前提是要有现成bpl的文件,如果没有bpl文件,还得需要dpk编译

    2010年4月12日星期一

    xml中正确包含html代码


    怎么样才能在xml中包含html代码,并正确使用呢?

    在xml中用正确的格式包含html代码    


    如:<![CDATA[ html代码 ]]>
    <?xml version="1.0" encoding="UTF-8"?>
    <urlset>
    <url>
        <loc><![CDATA[<DIV>测量检测:具有最全的测量和检测产品,没有其他公司可以提供如此之多的测量检测产品,包括具有超高精度的L-GAGE激光<a href="8308.html" target="_blank">测量传感器</a>,多功能U-GAGE超声波传感器,A-GAGE测量光幕;</DIV>]]></loc>
        <lastmod>2010-03-10</lastmod>
        <changefreq>weekly</changefreq>
        <priority>0.6</priority>
    </url>
    <urlset>

    新手业务员销售技巧(转)

    摘自:http://blog.china.alibaba.com/blog/pc165a/article/b0-i10328456.html

    第一,正确的心态

    想一辈子做销售工作的人是很少的,大多数人只是把销售作为一个锻炼、学习,从而提高自身竞争力,以及了解社会的一个机会;也可能是求职过程中一个 无奈的过渡。无论原因是什么,应该明白的一点是,在做销售的过程中,你可以获得较其他行业更快的个人成长。如果你明白了这一点,那么你就能以积极的心态面 对可能的失败及挫折。客户的拒绝是销售人员的家常便饭,而做销售最大的困扰就来自于此,许多人不能坚持,原因不在于他能力多差,而是他(她)误解了销售的 目的,将销售业绩作为自己销售成功与否的唯一标杆――这个就是大多数销售人员容易犯的心态错误。其实,面对失败,我们可以换个角度来看,如果在失败后,我 们能及时反省,找到失误的原因,在下次加以改进,你的能力不就在无形中提升了吗,也就是说,你有了把握更多机会的能力;

    第二个要素是个人的精神面貌

    可以将这个作为上个条件的延伸,不多说,积极、乐观,这个是基本要求,积极的情绪可以感化对方,甚至控制局面,自己以后可以慢慢体会;具备了良好 的心态,这个就不难;

    第三,敏锐的观察、全面的思考、充分的准备

    观察--知己知彼,百战不殆

    思考--运筹帷幄,决胜千里

    准备--细节决定成败

    具备上述三点条件,你就获得赢取对方信任的内部因素。任何一个谈判对手都不会轻视你。

    下面再强调几个我认为很重要的技巧:

    1、不论对方是谁,我和他(她)是身份对等的,是生意合作者,不要畏缩,也不要太强势,态度须不卑不亢;

    2、做最坏的打算,做最好的准备,提前做好任何可能出现的意外情况处理方案;

    3、恭维是必要的谈话技巧,但不能滥用,否则会让别人产生轻浮的印象;同时,自己的意见不要过多,言多必失,多听听对方的想法,既是对对方的尊 重,也是了解对方真实想法的最直接途径,切记,听比说重要!!!

    4、不要直接否定对方的想法,需要技巧性处理;也不要说竞争对手的坏话;

    5、有些机会是需要自己去创造的,多动动大脑。

    总的来说,个人对销售的流程有几个字来概括:先用心(正确的心态;待人以诚)、后用脑(先了解,再分析,完善方案)、最后用腿(有的放矢,一击中 的),这样的话,你的业务成功率会很高。

    请允许我自夸一下――免费说这么多,还不知道是否采用,当福利吧:)――我曾做过很多单位,国营、合资、集体、民营的,不乏国内顶级企业。卖过的 产品(服务)也是五花八门,业绩一直还不错,国内某知名商务网站的单笔金额最高的合同就是我签的(辞职前),但我并不是"跑"得最勤的,原因在于我喜欢总 结,喜欢思考,以脑带动腿,效率自然要高一点。

    2010年4月9日星期五

    在eclipse下编译运行 nutch(转)

    摘自:http://zhangxiang390.javaeye.com/blog/257373

    关键字: eclipse 编译 nutch

    1.       下载Nutch 并解压到某个目录下,建议在根目录下。


    2.       修改 Nutch\conf 目录下的 nutch-site.xml crawl-urlfilter.txt 两个文件,具体的修改方法如下:

    (1) nutch-site.xml:  

    在<configuration></configuration> 中间插入以下内容:

    <property>

     <name>http.agent.name</name>

     <value>Jennifer</value>

     <description>HTTP 'User-Agent' request header. MUST NOT be empty -

     please set this to a single word uniquely related to your organization.

     NOTE: You should also check other related properties:


          http.robots.agents

          http.agent.description

          http.agent.url

          http.agent.email

          http.agent.version


     and set their values appropriately.

     </description>

    </property>


    <property>

     <name>http.agent.description</name>

     <value>Jennifer</value>

     <description>Further description of our bot- this text is used in

     the User-Agent header. It appears in parenthesis after the agent name.

     </description>

    </property>


    <property>

     <name>http.agent.url</name>

     <value>Jennifer</value>

     <description>A URL to advertise in the User-Agent header. This will

        appear in parenthesis after the agent name. Custom dictates that this

        should be a URL of a page explaining the purpose and behavior of this

        crawler.

     </description>

    </property>


    <property>

     <name>http.agent.email</name>

     <value>Jennifer</value>

     <description>An email address to advertise in the HTTP 'From' request

        header and User-Agent header. A good practice is to mangle this

        address (e.g. 'info at example dot com') to avoid spamming.

     </description>

    </property>

     

    并修改<value></value> 中间的值,这里的设置是因为Nutch 遵守了robots 协议,在获取response 时,把自己的相关信息提交给被爬行的网站,以供识别。所以设置成任何你喜欢的值都可以的。

    (2) crawl-urlfilter.txt:

     

    找 到"+^http://([a-z0-9]*\.)* MY.DOMAIN.NAME/ ,将其中的' MY.DOMAIN.NAME/' 直接删除。  

    为了后面的方便,建议在修改完成后将conf 文件夹复制一下,并保存在硬盘的其他的地方。

     

    3.       到下面两个页面去下载两个jar 文件,他们分别是:

    http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-mp3/lib/

    http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-rtf/lib/

    下载其中的jid3lib-0.5.1.jarrtf-parser.jar 两个文件,并分别把他们拷贝到Nutch\src\plugin\parse-mp3\libNutch\src\plugin\parse-rtf\lib 两个文件夹下。

     

    4.       准备工作做好以后就可以在Eclipse 中配置Nutch 了。打开Eclipse 后,我们开始建立Java project 。具体的做法是:

    File > New > Project > Java project 创建Eclipse 项目,给我们的项目命名,然后选择Create project from existing source ,并指向你的Nutch 录。

     

    5.       点击 Next 后我们就能看到用于定义 Java build 的设置环境。在第一个选项卡 source 下面, 选择conf, 在下面可以看到三个连接,我们需要选择第三个: Add project ‘Nutch’ to build path , 完成以上步骤之后我们就将conf 加入到了classpath 中。注意:这里不是指上面的第三个选项卡。

     

    6.       现在需要 我们选择Default output folder ,在这里我们必须选择Nutch/conf 作为它的Default output folder ,否则就会找不到crawl-urlfilter.txt ,从而不能完成网站的爬行,就会出现我之前一只没有解决的问题,会出现以下提示:

    Generator: 0 records selected for fetching, exiting ...

    Stopping at depth=0 - no more URLs to fetch.

    No URLs to fetch - check your seed list and URL filters.

     

     

    7.       点击Finish ,这时我们就完成了前续的配置工作,这时我们就可点击运行,选择Java Application 点击OK ,开始让Eclipse 自己寻找项目的主类。我们选择Crawl- org.apache.nutch.crawl ,点击OK

     

    8.       这时我们可以回到Nutch\conf 目录下看下,我们可以看到里面的内容发生了改变,这时就需要我们还原原来conf 下的内容,这时我们在第2 步中另外保存的conf 文件夹就起到了作用。(当然,新生成的东西并不影响我们的后续爬行工作,我们可以只考虑将原来conf 下的内容复制回来,但是我个人觉得为了文件夹的管理和查找方便,我建议将新生成的内容全部删除后在将原来conf 下的内容复制回来。 还有一点需要我们注意,conf 里面不可以有org 文件夹,如果有的话delete ,否则的话会影响index )。在nutch下建立文件夹myURL,新建文本文件url.txt,键入爬行的起始 URL,保存关闭。

     

    9.      点击菜单中的Run > Open run dialog ,选择Java Application 分支,选中Arguments 选项卡。

    Program arguments 中填写爬行命令,如: myURL -dir myPages -depth 2 -topN 50

    VM arguments 中填写:-Dhadoop.log.dir=logs -Dhadoop.log.file=hadoop.log

    填写完成后,点击apply 完成提交。由于我们到目前为止还没有建立需要我们爬行的url 地址,所以我们在提交完成后,点击close ,然后我们就可以建立需要Nutch 爬行的url 地址,建好之后,只要我们在点击工具栏上的运行按钮,我们就可以在Console 的透视图中看到Nutch 爬行的结果了。当然如果我们之前已经建立好了我们需要爬行的url 地址,我们就可以直接点击run ,这时我们也可以在Console 的透视图中看到Nutch 爬行的结果。

    至 此,我们的工作全部完成了,当然我建议在Eclipse 里面配置Nutch 之前,我们最好能够熟悉在Shell 的环境下运行Nutch 。如果有什么不对的地方,欢迎大家指正,我也很希望能和大家一起学习有关Nutch 的相关内容。