<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>kjava</title>
    <description>专注于 移动互联网 手机WAP,手机软件开发，专注于JAVA
愿意结交志同道合之士。欢迎MSN联系 yanwzri@hotmail.com</description>
    <link>http://kjava.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>【转自落伍者】真实创业经历：老板挤公汽，客服开丰田！</title>
        <author>kjava</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kjava.javaeye.com">kjava</a>&nbsp;
          链接：<a href="http://kjava.javaeye.com/blog/212343" style="color:red;">http://kjava.javaeye.com/blog/212343</a>&nbsp;
          发表时间: 2008年07月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>前言：<br />&nbsp; &nbsp;&nbsp; &nbsp; 如果你打开了这篇文章，说明很有可能你也是一个内心不安分，敢想敢干的人。如果真是这样，那么祝贺你，你将拥有一段不平凡的经历以及足以让你自豪的人生，即便是失败，也会是轰轰烈烈，当然，你会比那些整日浑浑噩噩的上班一族更有机会成为下一个比尔盖茨，或下一个洛克菲勒。<br />&nbsp; &nbsp;&nbsp; &nbsp; 本文内容会涉及到消费者的需求调查、盈利模式的设计、网站的策划建设、公司注册、服务器购买、人员招聘以及营销推广等。这里面既有很多常人无法理解的艰辛，也有百年难遇的奇闻异事，总的来说，就是百感交集。<br />&nbsp; &nbsp;&nbsp; &nbsp; 这篇文章也许会危害一些人或者产生不良的影响，因为我揭露了一些鲜为人知的&ldquo;暴利&rdquo;地下产业，不过正因为如此，这篇文章才能体现出它真实的一面。如果你喜欢，或者对你有帮助，请支持一下，谢谢！<br /><br /><strong>正文：</strong><br />　　2006年8月，酝酿了5年多的创业项目逐渐成熟，我决定正式辞职，投身互联网创业大军。<br />&nbsp; &nbsp;&nbsp; &nbsp; 此时我大学毕业才两年，经过两年的打拼，我已经在武汉一家效益非常好的设计院里成为情报部门的重要一员，年薪6万虽不算多，但是对一个文科生来说，还是难以令人割舍的，更重要的是，我很快将被提升为部门的负责人。此时我做出这样的决定，周围所有的人包括领导、同事、家人、同学甚至LP，无不感到遗憾。但是有一位名人说得好，得到一样东西是以放弃另一样东西为代价的，而我认为，这样的交换，很值！<br />&nbsp; &nbsp;&nbsp; &nbsp; 我选择的项目是信息服务，由于之前没有任何经验，所以我把我的创业分为了三个阶段：<br />&nbsp; &nbsp;&nbsp; &nbsp; 第一阶段，摸索消费者的需求，为期1年左右。<br />&nbsp; &nbsp;&nbsp; &nbsp; 第二阶段，掌握营销技能，为期两年左右。<br />&nbsp; &nbsp;&nbsp; &nbsp; 第三阶段，组建团队，开始实施真正的项目。<br /><br />　　到现在，我已经处在了第二阶段中期，创业也将近两年了，收获确实不小。由于最近打算成立一个&ldquo;武汉创业俱乐部&rdquo;，以便能和武汉市的创业者进行交流和合作，所以将创业中的一些体会、经验与各位朋友分享，希望能有更多志同道合的朋友加入俱乐部。<br /><br /><strong>&nbsp; &nbsp;&nbsp; &nbsp; 一、第一阶段：摸索消费者的需求。<br /></strong>&nbsp; &nbsp;&nbsp; &nbsp; 刚辞职，精神状态特别好。由于思路比较清晰，所以网站很快上线。<br />&nbsp; &nbsp;&nbsp; &nbsp; 顺便说一下，虽然我是文科出身，但是特别喜欢计算机，大学的时候有1/3的时间钻研网络和计算机去了，所以建站对我来说问题不大。<br />&nbsp; &nbsp;&nbsp; &nbsp; 因为我要建两个站，而我知道国内的IDC服务不稳定，所以为了保险起见，选了两家信誉比较好的服务商，一家是上海的中华企业网，国内排名前十的一级域名服务商，用它建了一个出售电子书的网站；另一家是成都的世纪东方，国内排名前十的IDC服务商，用它建了一个网店建设服务网站。这里总结一下：中华企业网速度极快，但是安全性能比不上世纪东方，服务还可以；世纪东方服务态度好，解决问题非常迅速，后台管理非常方便快捷，但是它的缺点是网速偏慢。这两家的服务器都非常稳定，中华企业网从来没出过问题，世纪东方出过一次小问题，很快解决。<br />&nbsp; &nbsp;&nbsp; &nbsp; 先来说说为什么要建出售电子书的网站。由于工作的缘故，我手上积累了大量的珍稀绝版标准规范和设计手册，这里面有很多是设计人员常用的，但是由于总销量太小，出版社早就不再发行了，所以众多设计院只能靠自己印刷来解决，而经常有一些小设计院或设计人员连一本原版都弄不到，所以只好到处高价求售，正是发现了这个需求并拥有这个资源，所以我首先建了一个出售电子书的网站。由于稀缺资源很受搜索引擎欢迎，所以这个网站很快有了一定的人气，但是我担心由于侵权的问题而被相关部门处罚，所以在一年之后很快就关闭了。虽然根本没推广，每天的IP50都不到，但是这个网站还是帮我赚了几千块，尤其有一本《火力发电厂汽水管道零件及部件典型设计》，尽管很多论坛提供免费下载，但是仍然有源源不断的设计人员到我这里来购买，我定价每本30元，虽然不便宜，但是他们都毫不犹豫，立马付款，因为急需！<br />&nbsp; &nbsp;&nbsp; &nbsp; 不过现在这样的网站越来越多，电子书的价格也贬值了不少，国家知识产权相关的政策也越来越严，所以这类网站前途已经比较渺茫了。不过从这个站我获得了一个重要信息，那就是，对于急需的商品或服务，消费者不会嫌贵，也愿意冒风险，例如医院、房子、减肥药等。<br />&nbsp; &nbsp;&nbsp; &nbsp; 再来说说为什么要建一个网店建设服务网站。由于那段时间淘宝网铺天盖地的宣传吸引了无数想小本起家的年轻人，我自己也尝试在淘宝上开了一个小店，当然也是卖电子书，不过这个开店之前的过程及其繁琐复杂，连我这样具备一定IT基础的人都耗费了好几天时间，这个平台不知要阻挡多少心怀梦想的年轻人，即使成功开店了，也不知道要浪费他们多少额外的时间和精力，所以我当时就想，为什么不为这些人提供开店的服务呢？经过详细的调查和分析，我觉得非常可行，于是很快第二个网站就上线了，开一家店收300元。没过多久，第一个客人上门了，而且是一个台湾人，没想到我的网站还很有吸引力，连一向精明的台湾人都能被吸引过来，这让我高兴了很长一段时间。之后就比较顺利，不过逐渐我发现了另外一个更大的需求，那就是炒作信用。因为一家新店的信用从0做到四颗星是非常坚难的，而消费者买东西只看信用和价格，这样的形势对新店主是非常不利的，所以很多新店主自己想办法或请人炒作信用，但是这个过程比较复杂，而且有很大风险，所以一些专业为淘宝店主炒作信用的团地和个人收到极大的欢迎。即便是信誉较高的老店主，他们推出一款新产品后，为了提高人气，他们也会对该产品制造虚假购买量来吸引消费者，所以这个需求是非常大的，而且利润很高，所以我也很快加入进去。<br />&nbsp; &nbsp;&nbsp; &nbsp; 到了2007年年初，虽然赚了一些钱，但是总觉得这两个项目都是地下产业，终究做不大，所以决定都放弃。我想了解更高端的信息需求，但是苦于接触不到高端人员，在茫然中我突然在网上发现了北京有一家专业提供信息咨询服务的公司，看起来规模不小，所以我决定暂时停止创业，到那家公司去工作一段时间，深入了解高端人群的信息需求。<br />&nbsp; &nbsp;&nbsp; &nbsp; 总结：<br />&nbsp; &nbsp;&nbsp; &nbsp; 1、这一段时间我算是一个草根站长吧，我的一点感受是，最开始的定位很重要，否则将影响到你之后的发展。<br />&nbsp; &nbsp;&nbsp; &nbsp; 2、电子书销售和炒作店铺信用都是绝对的暴利，因为它几乎不需要什么成本，建个博客就可以开展业务了，但他们毕竟是地下产业，永远做不大，也不会有好的归宿。<br />&nbsp; &nbsp;&nbsp; &nbsp; 3、流量并不重要，关键是选什么样的产品或服务，以及流量是否能帮助其转换成财富。<br />&nbsp; &nbsp;&nbsp; &nbsp; 4、由于很多店主的需要，我也帮助很多店主推广网店店铺，因此有了一个意外的收获，那就是打好了我的网络营销基础，这为我的第二个阶段的工作带来了很大的帮助。<br /><br />&nbsp; &nbsp;&nbsp; &nbsp; <strong>二、暂停创业，第二次工作，独闯北京，成为北漂一族</strong><br />&nbsp; &nbsp;&nbsp; &nbsp; 2007年4月初，虽然在北京我没有任何亲人或朋友，但是我依然决定只身北上独闯北京。做好一切准备后，我与女朋友依依不舍地告别。<br />&nbsp; &nbsp;&nbsp; &nbsp; 到了北京，很顺利地通过了那家公司的面试，很顺利地在旧宫镇租到了一个不错的二居室，和一对小夫妻合作。所有事情总共花了一天时间，第二天便一个人到故宫、长城及十三陵转了一圈。<br />&nbsp; &nbsp;&nbsp; &nbsp; 这里要特别提一下我的室友，夫妻两很恩爱，待人非常友好热情（到现在还特怀念他们包的饺子，每个都有桔子那么大，非常好吃），他们一个来自浙江，一个来自河南，都是各自公司的市场经理，经验丰富，那段时间我向他们学到了不少营销方面的知识和技能。销售圈子内的有一句话：做销售先做人，真诚对待你身边的每一个人！<br />&nbsp; &nbsp;&nbsp; &nbsp; 这是给我印象最深的。<br />&nbsp; &nbsp;&nbsp; &nbsp; 2007年4月9日，开始了新工作，工作很简单，按照客户的要求帮助他们搜集和整理相关信息资料，这是我的特长，任务都是由信息部部长每天分配的。尽管我们公司的客户都是中人寿、平安、工行、中远、英博等大公司大集团，但是我的工作还是得到客户的一致好评，所以很快，一个月之后，我便成为了信息部部长助理，负责客户需求的评估、分析和任务分配，这样我就能更加近距离地接触客户的更多信息需求了，虽然很辛苦，但是每天非常开心。<br />&nbsp; &nbsp;&nbsp; &nbsp; 2007年6月，两个月下来，我接触的全是金融和经济类的信息需求，这主要与我们公司的业务方向有关，我想了解更多，但是发现在这里很难看到其他方面的需求，所以很快我决定到一些北京著名的互联网公司看看。简历发出后，我陆续接到了万方数据、百度总公司、任务中国和K68的面试通知，然后一一去面试。<br />&nbsp; &nbsp;&nbsp; &nbsp; 先说百度吧，拿到面试通后在网上查了下才知道百度的面试通知是很难拿到的，即使是清华计算机毕业的，也要先通过网络笔试这一关，而我发出简历第二天就收到面试通知，&ldquo;百度知道产品助理&rdquo;这个职位也不是很差吧？不过管他呢，去吧，很容易就找到了总部之一的普天大厦，百度在其中的9~12楼，进门还要在物业公司漂亮的前台那里签名，拿来一看，全是到百度和普天应聘的，一天好几页。上楼了，又要在百度公司漂亮的前台那里签名，她先是招呼我在一旁的沙发上稍等，然后又拿着一个写了编码的圆形纸牌子径直走过来想贴在我的胸前，我脑海里马上浮现出超市里售货员给商品打价码的场景，于是我立马挡住她，说：&ldquo;我自己来吧！&rdquo;，于是我接过来直接贴在简历的背面，结果她白了我一眼，走了。百度原来这样对应聘者的？一下子我对它的印象差了很多。看着一车一车的水果从我面前推过，看看一个又一个含着棒棒糖的百度员工漫不经心的走过，终于轮到我面试了，10分钟完事，没通过，因为他们要求太高了，而且不要有创业经历的人。<br />&nbsp; &nbsp;&nbsp; &nbsp; 再说K68吧，创始人阿康是一个非常热情爽朗的人，很不错，只是他们的现状离我的的期望太远了，去的时候还想过和加入他们一起创业呢，谈了两个小时就没想法了，虽然阿康很不错，但是它的组织和管理能力还是弱了一些。<br />&nbsp; &nbsp;&nbsp; &nbsp; 其它两家也是以失败告终，之后再也没有收到其他的面试通知了。于是，我决定回武汉继续创业，并拉上了一个关系很好的同事。他是荆州人，算是我的半个老乡，他爸爸经商很多年，他自己也做过一段时间生意，能力很强的一个人。他本来已经答应了，但是我最后一次去他家里的时候，它正在给他爸爸打电话，我清楚的听到他的爸爸在电话里对着他大吼：如果你自己创业，我就不认你这个儿子了。事情都弄到这个程度了，我只好劝他继续留在北京。实在可惜！<br /><br />&nbsp; &nbsp;<strong>三、第二次创业，历尽艰辛，奇遇不断</strong><br />&nbsp; &nbsp;&nbsp; &nbsp; 2007年9月，我回到了武汉，虽然已经到了秋季，但是武汉依然酷热难耐，我丝毫没有停顿，凑了几万块，马上开始了新公司的筹划。<br />&nbsp; &nbsp;&nbsp; &nbsp; 这次的创业项目是网络营销，由于目标客户都是企业，所以必须以公司的方式运作。之前到处游说，但是由于我的朋友多数是文科毕业，且比较保守，导致收效甚微，很多人愿意投资但是不愿意出力，所以没办法，最后只选了一个大学时的室友。他的工作非常不错，可以在经济上为我提供稳定的支援，因此我没急着拉他进来，而是先让他入股，后期再让他参与实际工作。重新创业，实际上依然只有我一个人。硬着头皮上吧，做出一点成绩来再继续出去游说，到时的效果也许会好些。<br />&nbsp; &nbsp;&nbsp; &nbsp; 出师不利，但是生活还要继续。<br />&nbsp; &nbsp;&nbsp; &nbsp; 第二件事就是找写字楼了，在这里解释一下为什么在这种情况下还要找写字楼，理由如下：<br />&nbsp; &nbsp;&nbsp; &nbsp; 1、可以让营业执照好看些，因为客户总喜欢看营业执照。注册地点是写字楼总比居民楼要好。<br />&nbsp; &nbsp;&nbsp; &nbsp; 2、招聘的时候，对潜在员工更有吸引力。<br />&nbsp; &nbsp;&nbsp; &nbsp; 3、一些客户喜欢上门谈，写字楼是个门脸，不仅可以给自己，更给客户信心。<br />&nbsp; &nbsp;&nbsp; &nbsp; 找写字楼花费了我不少时间，在闷热的天气下我依然几乎跑遍了武昌区的绝大多数写字楼，最后还是选了中南附近的一个。说实话，武汉的写字楼真的很便宜，中商广场这样的甲级写字楼，每平米才35元左右，其他的就更不用说了。反正价格不高，所以干脆挑了一个地段非常好，面积不大的房间。简装修，空调热水器什么的都有，我运气比较好的是，遇到的中介和房东都非常热情友好，中介的那位阿姨给了我不少非常好的建议和帮助。<br />&nbsp; &nbsp;&nbsp; &nbsp; 房东就更神奇了，他们50多岁，是二汽党委办公室的退休员工，武汉现任市委书记苗圩是他们的老上司。他们从不炒股，从不炒房，竟然通过股市赚了几十万，通过卖房赚了上百万。因为股票是朋友在帮他操作，而自己从不过问。至于房子，他们总是在需要的时候买，不需要的时候卖。他们需要房子的时候，房价是在最低谷，他们不需要房子的时候，房价就在最高峰。像他们这样的人，我周围还有几个，好运总是跟着他们走，别人不羡慕都不行。不过他们有一个共同的特点，那就是都很善良，热心，我想这应该就是对&ldquo;好人有好报&rdquo;最好的诠释吧。<br />&nbsp; &nbsp;&nbsp; &nbsp; 我没有他们这么好的运气，唯有通过自己的努力，因为运气和命运只会眷顾两种人：好人和努力的人。我希望争取都能做到。<br />&nbsp; &nbsp;&nbsp; &nbsp; 第三件事就是买办公家具了，正好有个朋友对这方面非常了解，它推荐我去余家头家具城。不过我还是跑遍了武昌所有的家具城和家具市场，比较下来，确实还是余家头好，选择余地也大。国庆节大家都在度假的时候，我总共花了3天时间挑选办公家具和办公用品，累得半死。总的来说，质量和性价比都还不错，辛苦也值得。<br />&nbsp; &nbsp;&nbsp; &nbsp; 第四件事就是注册公司了，由于注册资金不够，所以只好找工商代办公司来办。因为一位好朋友开公司的时候我陪他一起经历过，所以有点经验，很快就选好了同在一栋楼的一家工商代办公司，其实也就是一个夫妻店。人也挺不错，办事很利索，这事基本没操心。听说很多人为了剩下一千多的办证费用，耗费几十天时间，到处碰壁受气，所以在这里我建议大家在注册公司的时候，这活就交给别人去办，省出更多的时间和精力做更重要的事情。<br />&nbsp; &nbsp;&nbsp; &nbsp; 至于公司股权，我占多数，LP和室友各占一小部分，简单清晰。<br />&nbsp; &nbsp;&nbsp; &nbsp; 第五件事就是招聘员工了，神奇地说出来你都不信。<br />&nbsp; &nbsp;&nbsp; &nbsp; 我想先招1~2个客服，希望是有销售经验的男员工，因为好沟通，理念也好灌输。所以到处发招聘信息，结果等了一个多星期，收到的全是应届毕业生的简历，啥专业的都有。这让我郁闷了很长时间。然后有一天，决定到武汉热线的人才版块去转一转，突然你一条刚发布的求职信息让我眼睛一亮：女性，毕业1年多，曾经在平安保险和阿里巴巴担任客服经理，希望找互联网相关的工作，而且和我是老乡，于是我立马写了一封邮件给她。<br />&nbsp; &nbsp;&nbsp; &nbsp; 晚上，她给我打电话，说收到了邮件，觉得很好，想来面试，于是我们约好第二天。结果弄得我倒很紧张，第一次招聘员工，这么好的人才，生怕抓不住。<br />&nbsp; &nbsp;&nbsp; &nbsp; 第二天上午10点整，当她来到我的办公室时，我的第一感觉就是：大美女！第二感觉是：很干练！<br />&nbsp; &nbsp;&nbsp; &nbsp; 从交谈中我得知，她父母开了一家工厂，是做泵类产品的。家庭条件自然不必说，但是她天生喜欢销售，而且喜欢销售高科技或者互联网产品，不得不令人称奇。面谈也成功，她当场就决定加入我的公司。其实我觉得，之所以能这么顺利，工作环境和工作内容起到了重要的作用，所以之前的辛苦都是值得的。<br />&nbsp; &nbsp;&nbsp; &nbsp; 我自己每天挤公汽去公司，她每天开丰田霸道来上班，虽然我开的工资并不高也没有车贴油贴什么的。老板挤公汽，员工开丰田，这种事情你可能闻所未闻，但是就是事实，我们也觉得没什么，只要有个共同的目标，努力去实现就行。她不仅干练而且勤快，每天准时上下班，每天扫地拖地，工作认真仔细有条不紊，谁见了都会敬佩的。不知道她是天生的还是被阿里巴巴培养出来的，反正我会向她学习！<br />&nbsp; &nbsp;&nbsp; &nbsp; 在对客服一周的培训之后，我的公司正式开展业务。在给自己做营销的时候，为了测试各种营销方式的效果，我采用了几乎所有的营销方式，例如SEO、SEM、商务软件群发，论坛推广、软文推广、博客推广等等，最后总结出来，性价比最高的是软文，效果最持久的是SEO，最快捷有效的是SEM，提升流量最好的是网摘。你可以不同意，但是对我来说这是事实。<br />&nbsp; &nbsp;&nbsp; &nbsp; 业务一直比较稳定，却是少得稳定。这里一个重要的原因是我的产品设计有重大缺陷，因为我&ldquo;发明&rdquo;的营销方式基本是拍脑袋拍出来的，效果根本不及以上任何一种营销方式，甚至联邮件营销都比不上。因此遭遇了两个多月的困难期，迟迟打不开局面，LP、室友和客服都很着急。幸好我及时认识到了这个问题并很快做出了战略调整，就是做网络营销外包服务，放弃自己&ldquo;发明&rdquo;的营销方式，采用效果更好的SEO和SEM等等方式进行组合使用。<br />&nbsp; &nbsp;&nbsp; &nbsp; 结果业务依然很少，长期失眠，当时我并不知道是什么原因，后来才知道并不是网络营销外包服务没有市场，而是网络营销外包服务根本不适合我，这是后话。<br />&nbsp; &nbsp;&nbsp; &nbsp; 12月底，华中华南地区遇上百年难遇的雪灾，武汉长时间被冰冷的风雪包围，启动资金越来与少，接近弹尽粮绝，我的信心也跌入了谷底。我感觉需要调整，因此我对客服说，业务量这么少，天气又这么差，你先回去休息一段时间吧，等天气好了再来。结果坏天气一直持续到过年，我的客服也在元宵节之后才回来上班。这期间我一直在调整心态，思考战略以及自我反省。同时，朋友及家人又给我提供了一部分资金。<br />&nbsp; &nbsp;&nbsp; &nbsp; 年后上班才两周，突然有一天，客服提出来要辞职。尽管我极力挽留，依然于事无补，毕竟小庙留不住大佛。虽然这在我的预料之中，但是当它突然来临的时候，还是很受打击的。在给客服发了工资后，我们聊了一上午。下午她收拾东西回家了，走的时候说了一句：我很佩服你的创业精神，你鼓舞了我并坚定了我的决心，所以这次回去我也要创业。我说，很好啊，你天生就是创业的料，你去创业一定比我成功，如果需要帮助，随时找我。心里也在想，我只有在失败的时候才能鼓舞人，太讽刺了！<br />&nbsp; &nbsp;&nbsp; &nbsp; 一个人也清净，压力稍微小了点。在经过长期调查分析后，我对目标客户群进行了调整，原来主攻企业，现在主攻网店主。原因只有一个，做企业市场的公司太多了，竞争过于激烈，即使每单赚得再多，业务少一样活不下去。而网店主则不一样，市场也不小，却几乎没人做，除了淘宝和阿里妈妈。<br />&nbsp; &nbsp;&nbsp; &nbsp; 很快就有效果了，天天有店主找上门，虽然每单赚得不多，但是业务稳定，信心也增加了。不过网店营销业务是一块难啃的骨头，肉很少，味道也不好，连阿里妈妈啃得都很辛苦，我就更不必说了。尽管如此，我还是在安心的做，并努力从中寻找机会。<br />&nbsp; &nbsp;&nbsp; &nbsp; 终于有一天，一位客户无意间向我透露了服装批发的高额利润，因为我们关系很好，所以在我的请求下，他告诉了我更多信息。<br />&nbsp; &nbsp;&nbsp; &nbsp; 其实我早就想将网络营销和实物产品相结合，这样才能发挥网络营销真正的威力。能够通过空手套白狼来挖到第一桶金的，毕竟是少数，他们也不是普通人。多数人做生意还得投入本钱，投入不少的本钱，且一定要有自己的产品。<br />&nbsp; &nbsp;&nbsp; &nbsp; 此外，网店主本身的利润也很薄，能给你赚的也不多，帮别人做营销还不如帮自己做营销，于是我很快决定改行做服装网络批发。在经过一段时间的调研、分析和准备后，也就是前几天，我的服装批发网站很快上线，然后，百度竞价排名服务和google adsense同时开通，上线当天下午，电话络绎不绝，新的招聘计划即将开始...<br /><br />&nbsp; &nbsp;<strong>&nbsp; &nbsp; 四，小插曲</strong><br />&nbsp; &nbsp;&nbsp; &nbsp; 小插曲之一：著名公司的营销副总向我道出了一个巨大蓝海产业。<br />&nbsp; &nbsp;&nbsp; &nbsp; 4月份的时候有一个小插曲，某天，一个陌生人来突然到我的办公室说想和我聊一聊，当他递上名片的时候，我清晰地看到上面赫然印着&ldquo;**公司营销副总&rdquo;的字样（该公司是刚刚升到国内第三的IT培训企业，总部位于武汉，很快将获得风险投资）。<br />&nbsp; &nbsp;&nbsp; &nbsp; 我们很自由自在地闲聊，在聊天当中，他向我透露他现在很苦恼。由于要加快业务发展，他们公司打算开展全面的网络营销，由于之前在选择传统广告服务商的时候有过经验教训，因此他们更想找一家武汉本地的综合性网络营销企业，能够提供方案规划、制定、实施和监控，结果发现除了我们公司，他几乎找不到第二家。但是当他来到我的公司之后，他更失望了，因为他希望是一家有规模、专业性很强的公司为他们提供综合的服务，显然我的公司达不到他的标准，所以一下午都在闲聊，他希望我能给他一些意见，我也向他推荐了几家相对来说还不错的公司。<br />&nbsp; &nbsp;&nbsp; &nbsp; 在他走了之后，我终于明白为什么之前的战略不成功，并不是因为网络营销外包服务没有市场（相反这个市场是很大的，多少中小企业在门外徘徊不知如何进入），而实际上是我的公司规模太小，专业性不强，根本无法满足他们的综合要求。纵观国内网络营销领域，够提供营销规划、制定、实施和监控等综合服务的专业企业有几家？至少到现在为止我还没看到，百度、阿里巴巴和新浪更侧重于提供简单直接的产品，即便是分众旗下的好耶，也是能力有限的。个人认为，这样的公司终将在一家传统广告公司和一家代理多种产品的网络营销公司进行合并后产生，中小企业的网络营销外包服务这个巨大的蓝海市场等待着被人开发。<br /><br />&nbsp; &nbsp;&nbsp; &nbsp; 小插曲之二：运气不错，创业两年总共才被骗过一次。<br />&nbsp; &nbsp;&nbsp; &nbsp; 那是还在北京的时候，我利用晚上空闲时间建了一个网站来锻炼和提升我的网络营销技能。由于是测试，我干脆也测试了一下风险很高的个人性质&ldquo;服务器合租&rdquo;。一来性价比很高，二来想体验一下&ldquo;服务器合租&rdquo;。结果总共才使用了一个月，那个家伙就没影了，手机号变成空号。虽然被骗的钱不多，但是我还是想提醒一下大家，这种合租风险太高，尽量选择有保障有信誉的组织或企业。我自己现在用的是comsenz和92hezu的空间，还不错。<br /><br /><strong>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;五、总结</strong><br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;1、创业不是人干的事，没有一定的毅力、勇气和心理承受能力，千万别闯进来。<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;2、决定创业之后，首先要想清楚自己的定位、公司的定位、目标消费者的定位以及产品的定位，建议看看《定位》这本书，绝对有帮助！<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;3、定位好了之后，为公司制定一个可行的盈利模式，普通创业者永远别想着空手套白狼，那是天才的灵光一现。<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;4、创业之后，要学会善待客户，善待员工，更要善待自己，身体是革命的本钱，一定要撑到成功的那一天！<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;5、坚持才可能成功，但是要学会走活路，否则坚持下去只会死路一条。<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;6、对于创业者来说，融资能力、管理能力和营销能力同等重要，缺一不可，而且你缺什么就要补什么。<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7、成功的创业者都是自学成才的心理学家，他了解自己的心理，了解员工的心理，更了解客户的心理，如果你不了解员工和客户的心理，你永远别指望你的产品能卖出去。史玉柱就是一个典型，建议看看他的一些讲话，建议看看熊大寻的文章，也建议看看《影响力》和《引爆点》这两本书。<br /><br /><br /><strong>&nbsp; &nbsp;&nbsp; &nbsp; 六、给网络创业者的一些建议</strong><br />&nbsp; &nbsp;&nbsp; &nbsp; 1、网络创业者最缺乏的是对用户心理和真实需求的了解，所以建议有空多看看心理学方面的著作。<br />&nbsp; &nbsp;&nbsp; &nbsp; 2、网络创业者的营销能力普遍不足，提升营销能力最好最快的方法就是去做一段时间的销售代表和业务员。<br />&nbsp; &nbsp;&nbsp; &nbsp; 3、如果你建站只是为了赚点广告费，那么我建议你弄一些你感兴趣的产品来卖，然后在你自己的站上给自己的产品做广告，通过卖产品赚的钱绝对比挂广告多。这样不仅可以提高流量转化率，而且可能提高你的营销能力，更可以产生巨大的动力促进你不断将你的站做得更好。<br /><br />&nbsp; &nbsp;&nbsp; &nbsp; 关于本地服装批发网站的前景以及用户心理分析，择日再写两篇。<br /><br />全篇完</p>
          <br/>
          <span style="color:red;">
            <a href="http://kjava.javaeye.com/blog/212343#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 07 Jul 2008 14:53:34 +0800</pubDate>
        <link>http://kjava.javaeye.com/blog/212343</link>
        <guid>http://kjava.javaeye.com/blog/212343</guid>
      </item>
      <item>
        <title>Python 基本知识</title>
        <author>kjava</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kjava.javaeye.com">kjava</a>&nbsp;
          链接：<a href="http://kjava.javaeye.com/blog/210385" style="color:red;">http://kjava.javaeye.com/blog/210385</a>&nbsp;
          发表时间: 2008年07月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;</p>
<p><strong>Python </strong>(发音:[ 'pai&theta;(ə)n; (US) 'pai&theta;ɔn ])，是一种面向对象的解释性的计算机程序设计语言，也是一种功能强大而完善的通用型语言，已经具有十多年的发展历史，成熟且稳定。Python 具有脚本语言中最丰富和强大的类库，足以支持绝大多数日常应用。<br /><br />这种语言具有非常简捷而清晰的语法特点，适合完成各种高层任务，几乎可以在所有的操作系统中运行。<br />目前，基于这种语言的相关技术正在飞速的发展，用户数量急剧扩大，相关的资源非常多。<br /><br />Python的特色<br />简单&mdash;&mdash;&mdash;&mdash;Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样，尽管这个英语的要求非常严格！Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。<br />易学&mdash;&mdash;&mdash;&mdash;就如同你即将看到的一样，Python极其容易上手。前面已经提到了，Python有极其简单的语法。<br />免费、开源&mdash;&mdash;&mdash;&mdash;Python是FLOSS（自由/开放源码软件）之一。简单地说，你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。这是为什么Python如此优秀的原因之一&mdash;&mdash;它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。<br />高层语言&mdash;&mdash;&mdash;&mdash;当你用Python语言编写程序的时候，你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。<br />可移植性&mdash;&mdash;&mdash;&mdash;由于它的开源本质，Python已经被移植在许多平台上（经过改动使它能够工作在不同平台上）。如果你小心地避免使用依赖于系统的特性，那么你的所有Python程序无需修改就可以在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC！<br />解释性&mdash;&mdash;&mdash;&mdash;这一点需要一些解释。一个用编译性语言比如C或C++写的程序可以从源文件（即C或C++语言）转换到一个你的计算机使用的语言（二进制代码，即0和1）。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候，连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码 运行 程序。在计算机内部，Python解释器把源代码转换成称为字节码的中间形式，然后再把它翻译成计算机使用的机器语言并运行。事实上，由于你不再需要担心如何编译程序，如何确保连接转载正确的库等等，所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上，它就可以工作了，这也使得你的Python程序更加易于移植。<br />面向对象&mdash;&mdash;&mdash;&mdash;Python即支持面向过程的编程也支持面向对象的编程。在&ldquo;面向过程&rdquo;的语言中，程序是由过程或仅仅是可重用代码的函数构建起来的。在&ldquo;面向对象&rdquo;的语言中，程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比，Python以一种非常强大又简单的方式实现面向对象编程。<br />可扩展性&mdash;&mdash;&mdash;&mdash;如果你需要你的一段关键代码运行得更快或者希望某些算法不公开，你可以把你的部分程序用C或C++编写，然后在你的Python程序中使用它们。<br />可嵌入性&mdash;&mdash;&mdash;&mdash;你可以把Python嵌入你的C/C++程序，从而向你的程序用户提供脚本功能。<br />丰富的库&mdash;&mdash;&mdash;&mdash;Python标准库确实很庞大。它可以帮助你处理各种工作，包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI（图形用户界面）、Tk和其他与系统有关的操作。记住，只要安装了Python，所有这些功能都是可用的。这被称作Python的&ldquo;功能齐全&rdquo;理念。除了标准库以外，还有许多其他高质量的库，如wxPython、Twisted和Python图像库等等。<br />概括&mdash;&mdash;&mdash;&mdash;Python确实是一种十分精彩又强大的语言。它合理地结合了高性能与使得编写程序简单有趣的特色。<br /><br />Python的Hello World程序<br />下面是一个在标准输出设备上输出Hello World的简单程序，这种程序通常作为开始学习编程语言时的第一个程序：<br />#!/usr/bin/env python<br />print "Hello, world!"<br />或者：<br />import sys<br />sys.stdout.write("Hello, world\n")<br /><br />Python的历史<br />Python的创始人为Guido van Rossum。1989年圣诞节期间，在阿姆斯特丹，Guido为了打发圣诞节的无趣，决心开发一个新的脚本解释程序，做为 ABC 语言的一种继承。之所以选中 Python（大蟒蛇的意思）作为程序的名字，是因为他是一个Monty Python的飞行马戏团的爱好者。<br />ABC是由Guido参加设计的一种教学语言。就Guido本人看来，ABC 这种语言非常优美和强大，是专门为非专业程序员设计的。但是ABC语言并没有成功，究其原因，Guido 认为是非开放造成的。Guido 决心在 Python 中避免这一错误（的确如此，Python 与其它的语言如C、C++和Java结合的非常好）。同时，他还想实现在 ABC 中闪现过但未曾实现的东西。<br />就这样，Python在Guido手中诞生了。实际上，第一个实现是在Mac机上。可以说，Python是从ABC发展起来，主要受到了Modula-3（另一种相当优美且强大的语言，为小型团体所设计的）的影响。并且结合了Unix shell和C的习惯。<br />Python在编程语言中的定位<br />很多大规模软件开发计划例如 Zope， Mnet 及 BitTorrent. Google都在广泛地使用它。 <br />通常认为，Python是一种解释性的语言，但是这种说法是不正确的，实际上，Python在执行时，首先会将.py文件中的源代码编译成Python的byte code（字节码），然后再由Python Virtual Machine来执行这些编译好的byte code。这种机制的基本思想跟Java，.NET是一致的。然而，Python Virtual Machine与Java或.NET的Virtual Machine不同的是，Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级，不是说Python的Virtual Machine比Java或.NET的功能更强大，而是说和Java 或.NET相比，Python的Virtual Machine距离真实机器的距离更远。或者可以这么说，Python的Virtual Machine是一种抽象层次更高的Virtual Machine。<br />基于C的Python编译出的字节码文件，通常是.pyc格式。<br /><br />在实际开发中，python常被昵称为胶水语言，这不是说他会把你的手指粘住，而是说他能够很轻松的把用其他语言制作的各种模块（尤其是C/C++）轻松地联结在一起。常见的一种应用情形是，使用python快速生成程序的原型（有时甚至是程序的最终界面），然后对其中有特别要求的部分，用更合适的语言改写，比如3D游戏中的图形渲染模块，速度要求非常高，就可以用C++重写。<br /><br />Python的设计理念<br />可扩充性可说是Python作为一种编程语言的特色。新的内置模块（module）可以用C 或 C++写成。而我们也可为现成的模块加上Python的接口。Python可以使用户避免过分的语法的羁绊而将精力主要集中到所要实现的程序任务上。<br />Python也被称为是一门清晰的语言。因为它的作者在设计它的时候，总的指导思想是，对于一个特定的问题，只要有一种最好的方法来解决就好了。这在由Tim Peters写的python格言（称为The Zen of Python）里面表述为：<br />There should be one-- and preferably only one --obvious way to do it. <br />有意思的是，这正好和Perl语言（另一种功能类似的高级动态语言）的中心思想TMTOWTDI（There's More Than One Way To Do It）完全相反。这似乎是人们常把Perl和Python互相比较的重要原因。<br />Python语言是一种清晰的语言的另一个意思是，它的作者有意的设计限制性很强的语法，使得不好的编程习惯（例如if语句的下一行不向右缩进）都不能通过编译。这样有意的强制程序员养成良好的编程习惯。其中很重要的一项就是Python的缩进规则。<br />例如if语句：<br />if age&lt;21:<br />print "You cannot buy wine!\n"<br />print "But you can buy chewing gum.\n"<br />print "this is outside if\n"<br />一个和其他大多数语言（如C）的区别就是，一个模块的界限，完全是由每行的首字符在这一行的位置来决定的（而C语言是用一对花括号{}来明确的定出模块的边界的，与字符的位置毫无关系）。这一点曾经引起过争议。因为自从C这类的语言诞生后，语言的语法含义与字符的排列方式分离开来，曾经被认为是一种程序语言的进步。不过不可否认的是，通过强制程序员们缩进（包括if，for和函数定义等所有需要使用模块的地方），Python确实使得程序更加清晰和美观。<br />另外Python在其他部分的设计上也坚持了清晰划一的风格，这使得Python称为一门易读性、易维护性好，并且被大量用户所欢迎的、用途广泛的语言。Python直接编写的程序段有时运行效率甚至高于用C编写的程序。<br /><br />Python的不适之处<br />虽然Python是一个非常成功的语言，但对于习惯其他语言的程序员，有两个地方会让他们感觉略有不适。<br />1. 强制缩进<br />这也许不应该被称为局限，但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。即便是很有经验的Python程序员，也可能陷入陷阱当中。最常见的情况是tab和空格的混用会导致错误，而这是用肉眼无法分别的。<br />2. 单行语句和命令行输出问题<br />很多时候不能将程序连写成一行，如import sys;for i in sys.path:print i。而perl和awk就无此限制，可以较为方便的在shell下完成简单程序，不需要如Python一样，必须将程序写入一个.py文件。（对很多用户而言这也不算是限制）<br /><br />Python的缺点和补救措施<br />NO.1 运行速度（虽然比java快，但没法和需要编译的语言相比。）。有速度要求的话，用C++改写关键部分吧。<br />NO.2 国内市场较小（国内以python来做主要开发的，目前只有一些 web2.0公司）。但时间推移，目前很多国内软件公司，尤其是游戏公司，也开始规模使用他。<br />No.3 中文资料匮乏（好的python中文资料屈指可数）。托社区的福，有几本优秀的教材已经被翻译了，但入门级教材多，高级内容还是只能看英语版。<br />NO.4 构架选择太多（没有像C#这样的官方.net构架，也没有像rudy由于历史较短，构架开发的相对集中。rudy on rails 构架开发中小型web程序天下无敌）。不过这也从另一个侧面说明，python比较优秀，吸引的人才多，项目也多。<br /><br />Python的前景<br />Python在编程领域的占有率一直处于稳步上升之中，根据最新的数据，Python排名第六。前五名分别是Java、C、VB、PHP和C++. 作为一个很年轻的语言，Python的位置已经相当令人振奋了。随着微软将Python纳入.Net 平台，相信Python的将来会更加强劲发展。Python 很可能会成为.Net平台快速开发的主流语言。欲了解这方面情况，请参考Iron Python的相关信息. <br />著名的搜索引擎 Google 也大量使用Python。更加令人吃惊的是，在Nokia智能手机所采用的Symbian操作系统上，Python成为继C++,Java之后的第三个编程语言！2006年的Google编程大赛已经将Python作为参赛语言之一，可见Python的影响力之巨大。<br /><br />Python的应用<br />Zope-应用服务器 <br />Plone-内容管理系统 <br />Django-鼓励快速开发的web framework <br />Twisted - Python Network Application Framework Python的网络应用程序框架 <br />TurboGears - 另一个Web应用快速开发框架<br />Bit Torrent - 著名的BT下载工具<br />更多python的著名应用可以参看该地址：http://www.python.org/about/success/<br /><br />Python语言资源<br />官方主页 ：http://www.python.org/<br />For windows的 python解释器 （包括tkInterGUI开发环境，一个简单的IDE，完整广泛的英文文档）9MB：http://www.python.org/ftp/python/2.4.3/python-2.4.3.msi<br />一份不错的python中文教程 ：http://www.woodpecker.org.cn/obp/diveintopython-zh-5.4/zh-cn/dist/html/toc/index.html 该站致力于python研究，站内还有大量优秀教材下载。<br />python中文社区 ：http://python.cn/ 国内python大牛尽会于此<br />http://www.pythonet.cn - python 中文手册<br />ChinaUNIX论坛区的python版 http://bbs.chinaunix.net/forum-55-1.html 基本可以认为是国内论坛中python水平最高的<br />一本最佳的python入门书籍 (英文）http://china-pub.shop.eol.cn/computers/common/info.asp?id=25523<br />一个很好的开源pythonIDE http://stani.be/python/spe/blog/<br /><br />Python的库<br />由于设计者和开源社区的共同努力，在python中有大量优秀的库可以被直接调用以高效地完成不同需求的工作。这里列举一些常见常用的库：<br />Tkinter&mdash;&mdash;&mdash;&mdash; Python默认的图形界面接口。<br />Tkinter是一个和Tk接口的Python模块，Tkinter库提供了对Tk API的接口，它属于Tcl/Tk的GUI工具组。Tcl/Tk是由John Ousterhout发展的书写和图形设备。Tcl(工具命令语言)是个宏语言，用于简化shell下复杂程序的开发，Tk工具包是和Tcl一起开发的，目的是为了简化用户接口的设计过程。Tk工具包由许多不同的小部件，如一个按钮、一个滚动条等。通过Tk提供的这些小部件，我们就可快速地进行GUI开发。Perl、Scheme等语言也利用Tk库进行GUI开发。Tkinter是跨平台，在各种平台下都能使用。<br />Python Imaging Library(PIL)&mdash;&mdash;&mdash;&mdash;python提供强大的图形处理的能力，并提供广泛的图形文件格式支持，该库能进行图形格式的转换、打印和显示。还能进行一些图形效果的处理，如图形的放大、缩小和旋转等。是Python用户进行图象处理的强有力工具。<br />Pmw(Python megawidgets)Python超级GUI组件集&mdash;&mdash;&mdash;&mdash;一个在python中利用Tkinter模块构建的高级GUI组件，每个Pmw都合并了一个或多个Tkinter组件，以实现更有用和更复杂的功能。<br />PyXML&mdash;&mdash;&mdash;&mdash; 用Python解析和处理XML文档的工具包，包中的4DOM是完全相容于W3C DOM规范的。它包含以下内容：<br />xmlproc: 一个符合规范的XML解析器。<br />Expat: 一个快速的，非验证的XML解析器。 还有其他<br />和他同级别的还有 PyHtml PySGML<br />PyGame&mdash;&mdash;&mdash;&mdash; 用于多媒体开发和游戏软件开发的模块。<br />PyOpenGL&mdash;&mdash;&mdash;&mdash; 模块封装了&ldquo;OpenGL应用程序编程接口&rdquo;，通过该模块python程序员可在程序中集成2D和3D的图形。<br />NumPy、NumArray和SAGE&mdash;&mdash;&mdash;&mdash; NumArray是Python的一个扩展库，主要用于处理任意维数的固定类型数组，简单说就是一个矩阵库。它的低层代码使用C来编写，所以速度的优势很明显。NumPy是Numarray的后继者，用来代替NumArray。SAGE是基于NumPy和其他几个工具所整合成的数学软件包，目标是取代Magma, Maple, Mathematica和Matlab 这类工具。<br />MySQLdb模块&mdash;&mdash;&mdash;&mdash; 用于连接MySQL数据库。还有用于zope的ZMySQLDA模块，通过它就可在zope中连接mysql数据库。<br />PyGTK &mdash;&mdash;&mdash;&mdash; 用于python GUI程序开发的GTK+库。GTK就是用来实现GIMP和Gnome的那个库。有了它，你完全可以自信的尝试自己制造Photoshop<br />PyQt &mdash;&mdash;&mdash;&mdash; 用于python的Qt开发库。QT就是实现了KDE环境的那个库，由一系列的模块组成，有qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml，包含有300个类和超过5750个的函数和方法。PyQt还支持一个叫qtext的模块，它包含一个QScintilla库。该库是Scintillar编辑器类的Qt接口。<br />PyMedia &mdash;&mdash;&mdash;&mdash; 用于多媒体操作的python模块。它提供了丰富而简单的接口用于多媒体处理(wav, mp3, ogg, avi, divx, dvd, cdda etc)。可在Windows和Linux平台下使用。<br />Psyco &mdash;&mdash;&mdash;&mdash; 一个Python代码加速度器，可使Python代码的执行速度提高到与编译语言一样的水平。<br />Python-ldap &mdash;&mdash;&mdash;&mdash; 提供一组面向对象的API，可方便地在python中访问ldap目录服务，它基于OpenLDAP2.x。<br />smtplib模块 &mdash;&mdash;&mdash;&mdash; 发送电子邮件。<br />ftplib模块 &mdash;&mdash;&mdash;&mdash; 定义了FTP类和一些方法，用以进行客户端的ftp编程。我们可用python编写一个自已的ftp客户端程序，用于下载文件或镜像站点。如果想了解ftp协议的详细内容，请参考RFC959。<br />xmpppy模块 &mdash;&mdash;&mdash;&mdash; Jabber服务器采用开发的XMPP协议，Google Talk也是采用XMPP协议的IM系统。在Python中有一个xmpppy模块支持该协议。也就是说，我们可以通过该模块与Jabber服务器通信，是不是很Cool。<br />下面这些就不详细介绍，只列出名字和功能<br />adodb &mdash;&mdash;&mdash;&mdash; ADO数据库连接组件<br />bsddb3 &mdash;&mdash;&mdash;&mdash; BerkeleyDB的连接组件<br />chardet &mdash;&mdash;&mdash;&mdash; 编码检测<br />Cheetah &mdash;&mdash;&mdash;&mdash; 构建和扩充任何种类的基于文本的内容<br />cherrypy &mdash;&mdash;&mdash;&mdash; 一个WEB framework<br />ctypes &mdash;&mdash;&mdash;&mdash; 用来调用动态链接库<br />Cx-oracle &mdash;&mdash;&mdash;&mdash; 连接oracle的工具<br />DBUtils &mdash;&mdash;&mdash;&mdash; 数据库连接池<br />django &mdash;&mdash;&mdash;&mdash; 一个WEB framework<br />DPKT &mdash;&mdash;&mdash;&mdash; raw-scoket网络编程<br />docutils &mdash;&mdash;&mdash;&mdash; 用来写文档的<br />dpkt &mdash;&mdash;&mdash;&mdash; 数据包的解包和组包<br />feedparser &mdash;&mdash;&mdash;&mdash; rss解析<br />Kodos &mdash;&mdash;&mdash;&mdash; 正则表达式调试工具<br />Mechanize &mdash;&mdash;&mdash;&mdash; 爬虫连接网站常用<br />pefile &mdash;&mdash;&mdash;&mdash; windows pe文件解析器<br />py2exe &mdash;&mdash;&mdash;&mdash; 用来生成windows可执行文件<br />pycurl &mdash;&mdash;&mdash;&mdash; URL处理工具<br />pydot &mdash;&mdash;&mdash;&mdash; 画图的，graphiz<br />pyevent &mdash;&mdash;&mdash;&mdash; Python的事件支持<br />pylint &mdash;&mdash;&mdash;&mdash; 培养良好的编码习惯<br />Pylons &mdash;&mdash;&mdash;&mdash; 又一个web framework<br />pypcap &mdash;&mdash;&mdash;&mdash; 抓包的<br />pysqlite2 &mdash;&mdash;&mdash;&mdash; SQLite的连接组件<br />python-dnet &mdash;&mdash;&mdash;&mdash; 控制网络安全的其他设备<br />pythonwin &mdash;&mdash;&mdash;&mdash; Python的Windows扩展<br />pywmi &mdash;&mdash;&mdash;&mdash; 省了好多折腾功夫<br />reportlab &mdash;&mdash;&mdash;&mdash; Python操作PDF的Libary。<br />scapy &mdash;&mdash;&mdash;&mdash; 网络包构建分析框架,可编程的wireshark,有兴趣的google &ldquo;Silver Needle in the Skype&rdquo;<br />scons &mdash;&mdash;&mdash;&mdash; 项目构建工具，写好了模板用起来还是很方便的<br />sendpkt &mdash;&mdash;&mdash;&mdash; Python发包<br />setuptools &mdash;&mdash;&mdash;&mdash; 一套python包管理机制<br />simplejson &mdash;&mdash;&mdash;&mdash; JSON的支持<br />sqlalchemy &mdash;&mdash;&mdash;&mdash; SQL数据库连接池<br />SQLObject &mdash;&mdash;&mdash;&mdash; 数据库连接池<br />twisted &mdash;&mdash;&mdash;&mdash; 巨无霸的网络编程框架<br />winpdb &mdash;&mdash;&mdash;&mdash; 自己的程序或者用别的库不太明白的时候就靠它了<br />wxPython &mdash;&mdash;&mdash;&mdash; GUI编程框架,熟悉MFC的人会非常喜欢，简直是同一架构<br />除此之外还有很多，根本无法完全列举。<br /><br />开源社区的工作已经完成到这样的程度，基本上各种常见的编程需求都已经有非常成熟稳定高速的模块来实现，你所需要做的，只是去阅读文档然后把它找出来。<br />&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://kjava.javaeye.com/blog/210385#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 02 Jul 2008 09:25:32 +0800</pubDate>
        <link>http://kjava.javaeye.com/blog/210385</link>
        <guid>http://kjava.javaeye.com/blog/210385</guid>
      </item>
      <item>
        <title>看看大家的IT学习力在什么等级上</title>
        <author>kjava</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kjava.javaeye.com">kjava</a>&nbsp;
          链接：<a href="http://kjava.javaeye.com/blog/210381" style="color:red;">http://kjava.javaeye.com/blog/210381</a>&nbsp;
          发表时间: 2008年07月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>文 / 蔡學鏞<br /><br />自從《執行力》一書暢銷之後，開始有很多書都流行取個「XX力」的名稱，我也仿效這些作風，弄個「IT學習力」。不管處於任何行業，都必須每隔一段時間充實自己的技能，以免被淘汰。對於IT界來說，技術的「半衰期」更是相當短，所以「IT學習力」相當重要。<br /><br />就如同CMM用五個層次來評估軟體成熟度一樣，我將IT學習力分成五個層次，分別描述如下：<br /><br />【幼稚班】這個等級的人，相當被動，不會主動注意IT新知，不會主動學習IT技術。他總是等別人告訴他什麼東西重要，等別人開班授課，等人教導。有任何技術問題，不會去查網路，不會去查書，也不會動手做實驗，只會開口問人，而對方回答不知道的時候，他也就算了，沒有追根究柢的精神。<br /><br />在這個等級的人，如果不進入下一個等級的話，通常不會在IT產業待太久（除非他已經熬成婆，成為中階以上的主管了），畢竟IT產業可沒這麼好混。IT產業的人，學習力至少要在小學等級。<br /><br />【小學】這個等級的人，已經具有主動學習的精神，但是英文能力不佳，限制了資訊的取得與吸收。他們一看到英文就頭痛，會去逛天瓏書局，但只逛右手邊（中文區），除了結帳時，才會進入左手邊（原文書與櫃臺區）。這個等級的人相當多。<br /><br />其實，要離開這個階段進入下一個階段，對許多人來說，還真是滿不容易的。畢竟英文閱讀能力的培養，不是兩三個月就辦得到。更何況許多人在學生時代就對英文產生恐懼感，早就放棄英文了。因為英文不好，而限制了IT學習能力，真的很可惜。<br /><br />我還發現，這個等級的人對許多「IT名人」或「知名IT作家」趨之若鶩，有偶像崇拜情節。他們把IT名人的話奉為圭臬，但往往只是複述偶像的話，卻又說不出個道理來。<br /><br />【中學】這個等級的人，習慣看IT英文書。習慣上Amazon.com網站注意最近有出版哪些IT英文書，以及讀者對這些書的評價如何。這個等級的人，一個月至少會買一本IT原文書。如果他所喜歡的IT原文書國內沒進口，就會心急如焚，直接到Amazon.com等國外網站購買。<br /><br />他還相當熟悉一些國外的知名作家和他們的作品，可以如數家珍地說出「Mr. X的上一本書是講Y技術的；今年他會推出Z語言書籍的第二版，估計年底前出版。」<br /><br />我還發現，IT學習力在小學和中學等級的人，似乎都很喜歡參加「技術研討會」，還會真的把研討會贈送的Java的T-Shirt穿上身、.NET背包背出門。搭捷運時遇到一身「研討會贈品」行頭的人，我都會忍不住說出「Oh! My God」。<br /><br />【大學】這個等級的人，習慣看英文文件，並提前學習有可能會用到的技術。英文書的出版速度已經不能滿足他們，他們往往搶先在任何英文書出版之前，就先學該技術，因此，他們必須透過英文文件學習。他們也會常常閱讀官方關鍵人士的Blog。<br /><br />官方網站充斥著各種免費的文件，這些文件的閱讀難度介於Spec（規格書）和商業書籍之間。最常見的這類文件包括了：User's Guide、User's Manual、The Whitepaper。這些通常是由官方的技術人員所編寫，欠缺IT出版社專業編輯與美工的參與，所以閱讀的品質距離商業書籍還有一段距離。<br /><br />【研究所】這個等級的人，習慣看英文版的論文、Spec、Working Draft（工作草案）。這些資料通常份量不多，但很精確，也相當不容易閱讀。許多文件都會交互參考，甚至有許多外部參考文件。 <br /><br />許多時候，他們還會去閱讀源碼，從源碼中瞭解文件沒提到的地方，或解決有疑義的問題。能夠進入這個階段，其實已經相當不容易，在IT產業算是菁英中的菁英了。<br /><br />幼稚園學習力的人必須等官方把源碼寫完，公布嚴謹精確的Spec，幾個月後官方依據Spec寫成比較易懂的文件，半年後某專業作家用英文寫出一本商業書籍，再過一年後國內授權將這本書翻譯成中文，再過半年後某培訓單位找來老師開班授課。想想看【研究所】等級和【幼稚園】等級的資訊接收速度差多少？精確性又差多少？接受資訊的速度差，得到的知識精確度也差，就表示沒有競爭力。<br /><br />評估一下你自己的IT學習力在那個層次，並積極往下一個層次，看看自己欠缺的是什麼能力，然後給自己一段時間，逼自己在這段時間內進步到下一個等級。選擇進入IT產業，你就走進了這樣的宿命。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>汗，偶在IT混了6年，还在小学级:-(</p>
          <br/>
          <span style="color:red;">
            <a href="http://kjava.javaeye.com/blog/210381#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 02 Jul 2008 09:17:50 +0800</pubDate>
        <link>http://kjava.javaeye.com/blog/210381</link>
        <guid>http://kjava.javaeye.com/blog/210381</guid>
      </item>
      <item>
        <title>Google App ，牛！</title>
        <author>kjava</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kjava.javaeye.com">kjava</a>&nbsp;
          链接：<a href="http://kjava.javaeye.com/blog/206784" style="color:red;">http://kjava.javaeye.com/blog/206784</a>&nbsp;
          发表时间: 2008年06月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>对于想在互联网上造梦的技术人来说，Google App 是又一个福音。</p>
<p>现在可以没有域名、没有服务器，没有空间，没有投入，就能轻松建造自己的应用，并提供给全世界的网络客户。</p>
<p>&nbsp;</p>
<p>我的第一个Google App 应用，有相同兴趣的朋友可以一起探讨</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://ppc.appspot.com" title="http://ppc.appspot.com">http://ppc.appspot.com</a></p>
<p>* 需要用手机访问</p>
<p>&nbsp;</p>
<p>关于Google App 的相关信息，可以到以下网址了解：</p>
<p><a href="http://appengine.google.com/" title="http://appengine.google.com/">http://appengine.google.com/</a></p>
<p>&nbsp;</p>
<p>可以肯定的是，Google App 的推出，将对互联网产生深远影响，这种影响不亚于当年微软推出VB对软件业带来的影响</p>
          <br/>
          <span style="color:red;">
            <a href="http://kjava.javaeye.com/blog/206784#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 22 Jun 2008 00:31:03 +0800</pubDate>
        <link>http://kjava.javaeye.com/blog/206784</link>
        <guid>http://kjava.javaeye.com/blog/206784</guid>
      </item>
      <item>
        <title>如何防止欺骗点击作弊</title>
        <author>kjava</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kjava.javaeye.com">kjava</a>&nbsp;
          链接：<a href="http://kjava.javaeye.com/blog/206779" style="color:red;">http://kjava.javaeye.com/blog/206779</a>&nbsp;
          发表时间: 2008年06月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>如何防止欺骗点击作弊的分析&nbsp;&nbsp;&nbsp; 随着在线广告的流行，pay by per click（每次点击付钱）的模式逐渐被大家接受。可是 随之而来的问题就是fraud clicking的预防迫在眉捷，因为这将直接关系到这种广告模式能否长 久生存和能否成为一种真正的网站拥有者的收入来源。 </p>
<p>&nbsp;&nbsp;&nbsp; 下面介绍Google Adsense系统如何从系统角度出发防止点击欺骗，希望对其它的在线广告 系统防止虚假点击能有很好的指导作用： </p>
<p>1、点击率 ＝ 点击次数／共浏览的次数 <br />点击率是一个判断是否有无fraud clicks的关键的方法，可以想像一个网站上的广告的点 击率超过10%将意味这什么。 <br />#of Click/# of Viewed <br />2、点击覆盖率／独立IP ，这个分布里如果有；单个IP的（点击／浏览）＝点击覆 盖率超出了3倍的系统误差范围内将有作弊的嫌疑。 <br />例如来自 129.119.200.1 的用户浏览了16个网页，点击了4个广告，而整个广告的点击 率「从[1]里计算的到」是5%，那么计算得到： <br />%5 X 16 =~ 1，方差为Sqrt(1) = 1，点击覆盖率＝4/1 = 4 <br />根据数学上高斯分布，这种概率小于万分之一。 <br />Ratio VS IP distribution <br />3、点击率『点击覆盖率』／IP／时间 <br />根据时间序列对点击率进行分析，如果在某一个时间段上有明显的峰值，那么这将意味着 有潜在的欺骗点击的可能。 <br />Ratio VS time <br />4、网页load的时间和广告点击时间差的分析，以及每两次click之间时间差序列的分析 <br />[网页load的时间和 广告点击时间差] 应该是一个泊松分布 possion <br />distribution，而每两次click之间的时间差也应该是一个Possion <br />distribution，如果这个时间用秒记，大于25秒的话基本上呈现高斯分布的形状。 <br />[time of loading - time of click] distribution VS Possion <br />[time difference of two clicks] distribution VS Possion/Gaussion <br />5、针对Proxy点击的分析 <br />改变IP进行点击可以说在以往是最难以解决最难以发现作弊方式，大概国人进行Alexa的 Boost时就多半采用了Proxy进行虚假点击的方法，可是这里只要通过反向监查IP的来源是否是带 有Proxy功能的服务器就可以知道了。 <br />Reverse Proxy check <br />6、针对 http_agent的分析 <br />Http_agent／时间的时间序列的分析，峰值超过3方差需要审查 <br />7、针对 http_referral 的分析 <br />referral／时间的时间序列的分析 ，峰值超过3方差需要审查 <br />8、整体效果上还有一个非常有用的量 <br />所有用户的有效的每千次展示费用的均值／独立IP <br />这个将能更加直接找到spam clicking 的运行计算机并且予以封杀。 <br />搜索引擎优化 网站优化 网络营销 产品网络推广 搜索引擎登录 SEO工具 SEO动态 网站诊断 联系我们　|　在线咨询　|　网站地图HOME &gt; 搜索引擎营销SEM &gt; 如何防止欺骗点击作弊的分析&nbsp; </p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://kjava.javaeye.com/blog/206779#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 22 Jun 2008 00:14:20 +0800</pubDate>
        <link>http://kjava.javaeye.com/blog/206779</link>
        <guid>http://kjava.javaeye.com/blog/206779</guid>
      </item>
      <item>
        <title>Python语法小全</title>
        <author>kjava</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kjava.javaeye.com">kjava</a>&nbsp;
          链接：<a href="http://kjava.javaeye.com/blog/206698" style="color:red;">http://kjava.javaeye.com/blog/206698</a>&nbsp;
          发表时间: 2008年06月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>最近开始学习Python 有志同道合的朋友可以多联系</p>
<p>&nbsp;</p>
<p>以 #! 开头的称为组织行，这行告诉你的Linux/Unix系统当你 <dfn>执行</dfn> 你的程序的时候，它应该运行哪个解释器。例如：<code class="comment">#!/usr/bin/python<br /><br />以 # 开头的称为注释行。<br /><br /></code>数的4种类型：整数、长整数、浮点数和复数。<br /><br /><strong><br />字符串</strong>：单引号（&lsquo;）和双引号（"）的作用相同，转义符是（\），以三引号（如：'''或者"""）括起来的字符串中可以直接使用任意多个单引号（&lsquo;）和双引号（"）而无需转义符（\）。<br /><br /><strong>自然字符串</strong>：在字符串前加R（或r）指示某些不需要如转义符那样的特别处理的字符串，如：print R&ldquo;Hello\n World&rdquo;，将直接输出&ldquo;Hello\n World&rdquo;而不会出现换行的情况。<br /><br /><strong>Unicode字符串</strong>：在字符串前加U（或u）。<br /><br /><strong>缩进</strong>：Python没有类似 Begin&hellip;&hellip;End 的语句来标识语句块，它依靠缩进来标识语句块，因此错误的缩进将会导致解释程序报错。<br /><br /><strong>运算符与表达式</strong>：基本上与其它语言相类似，只是有以下几点不同。<br /><strong>x*y</strong>：乘法。2 * 3得到6。'la' * 3得到'lalala'。<br /><strong>x**y</strong>：幂运算，返回 x 的 y 次幂。<br /><strong>x/y</strong>：x 除以 y，4/3得到1（整数的除法得到整数结果）。4.0/3或4/3.0得到1.3333333333333333。<br /><strong>x//y</strong>：取整除。返回商的整数部分。4 // 3.0得到1.0。<br /><br /><strong>控制流语句</strong>：<br /><code><strong>if-elif-else</strong>：(Python 没有 switch-case 语句，可以通过 if 语句配合字典完成同样的工作)<br />if something == 1:<br />&nbsp;&nbsp;&nbsp; doSomething1()<br />elif something == 2:<br />&nbsp;&nbsp;&nbsp; doSomething2()<br />else:<br />&nbsp;&nbsp;&nbsp; doSomething3()<br /><br /><strong>while-else</strong>:<br />while something:<br />&nbsp;&nbsp;&nbsp; doSomething1()<br />else:<br />&nbsp;&nbsp;&nbsp; doSomething2()<br /><br /><strong>for-else</strong>:<br /></code><code class="key">for </code><code>i </code><code class="key">in </code><code class="func">range</code><code>(</code><code class="func">1</code><code>, </code><code class="func">10, 2</code><code>):&nbsp;&nbsp; # i 值从 1 到 10，步长为2</code><br /><code class="key">&nbsp;&nbsp;&nbsp;&nbsp;print </code><code>i</code><br /><code class="key">else</code><code>:</code><br /><code class="key">&nbsp;&nbsp;&nbsp;&nbsp;print </code><code class="cite">'The for loop is over'<br /><br /><strong>break 和 continue</strong>：用于中断和继续循环。<br /><br /><strong>函数</strong>：<br /><br /></code><code class="key">def </code><code class="func">say</code><code>(message, times = </code><code class="cite">1</code><code>):&nbsp; # time 的默认参数值是 1</code><br /><code class="key">&nbsp;&nbsp;&nbsp;&nbsp;print </code><code>message * times<br />&nbsp;&nbsp;&nbsp; return time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 无返回值的函数可省掉 return，等同于return None<br /></code><br />只有在形参表末尾的那些参数可以有默认参数值，即你不能在声明函数形参的时候，先声明有默认值的形参而后声明没有默认值的形参。这是因为赋给形参的值是根据位置而赋值的。例如，<code>def func(a, b=5)</code>是有效的，但是<code>def func(a=5, b)</code>是 <dfn>无效</dfn> 的。<br /><br /><code class="key"><strong>DocStrings</strong>：<br /></code></p>
<p>说白了就是类似于JavaDoc的东西。</p>
<p>文档字符串的惯例是一个多行字符串，它的首行以大写字母开始，句号结尾。第二行是空行，从第三行开始是详细的描述。可以使用<code>__doc__</code>（注意双下划线）调用<code>函数的文档字符串属性（属于函数的名称）。Python把 <dfn>每一样东西</dfn> 都作为对象，包括这个函数。</code></p>
<p>Python中的<code>help()</code>，它所做的只是抓取函数的<code>__doc__</code>属性，然后整洁地展示给你。</p>
<p>自动化工具也可以以同样的方式从你的程序中提取文档。随Python发行版附带的<strong>pydoc</strong>命令，与<code>help()</code>类似地使用DocStrings。</p>
<p><code class="key">def </code><code class="func">printMax</code><code>(x, y):</code><br /><code class="cite">&nbsp;&nbsp;&nbsp;&nbsp;'''Prints the maximum of two numbers.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 这里是文档字符串<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;The two values must be integers.'''</code><br /><code>&nbsp;&nbsp;&nbsp; print "DocStrings"&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; # 这里是函数体<br /><br /><strong>命令行参数</strong>：<br /><br /></code><code class="comment"># Filename: using_sys.py</code><br /><code class="key">import </code><code class="func">sys</code><br /><br /><code class="key">print </code><code class="cite">'The command line arguments are:'</code><br /><code class="key">for </code><code>i </code><code class="key">in </code><code class="func">sys</code><code>.argv:&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; # </code><code>sys.argv</code>变量是一个字符串的列表，用于保存命令行参数。<br /><code class="key">&nbsp;&nbsp;&nbsp;&nbsp;print </code><code>i<br /><br /></code><code>执行 Python </code><code class="comment">using_sys.py we are argvs 的输出结果是：<br />The command line arguments are:<br />d:\My Documents\Python\using_sys.py&nbsp;&nbsp; # sys.argv[0]<br />we&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; </code><code class="comment"># sys.argv[1]</code><br /><code class="comment">are&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; </code><code class="comment"># sys.argv[2]</code><br /><code class="comment">argvs&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; </code><code class="comment"># sys.argv[3]</code><br /><br /><strong>模块的__name__名称</strong>：<br />每个Python模块都有它的<code>__name__</code>，如果它是<code>'__main__'</code>，这说明这个模块被用户单独运行，我们可以进行相应的恰当操作。</p>
          <br/>
          <span style="color:red;">
            <a href="http://kjava.javaeye.com/blog/206698#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 21 Jun 2008 18:19:29 +0800</pubDate>
        <link>http://kjava.javaeye.com/blog/206698</link>
        <guid>http://kjava.javaeye.com/blog/206698</guid>
      </item>
      <item>
        <title>SQLServer数据库误删除恢复</title>
        <author>kjava</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kjava.javaeye.com">kjava</a>&nbsp;
          链接：<a href="http://kjava.javaeye.com/blog/206418" style="color:red;">http://kjava.javaeye.com/blog/206418</a>&nbsp;
          发表时间: 2008年06月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>SQLServer的查询分析器和企业管理器给了我们很大便利，使用起来很方便，真要感谢微软。但是在操作的过程中，也很容易出现问题，少写一个Where语句，就会带来灾难，几年或者几十年的经营数据如果被误删除，而且无法恢复的话，老板非K死你不可，即便每天备份，但如果只能恢复到昨天的数据，那也是无法接受的，因此必须要能恢复到误删除前的那个时间点的数据，幸好，SQLServer 的 日志恢复提供了这种可行性。</p>
<p>&nbsp;</p>
<p>进行日志恢复的先决条件</p>
<p>&nbsp;</p>
<p><span style="color: #ff0000;"><strong>1）有一个库备份文件 （aaa.bak）</strong></span></p>
<p><span style="color: #ff0000;"><strong></strong></span></p>
<p><span style="color: #ff0000;"><strong>2）有日志备份文件&nbsp; (aaa.log)</strong></span></p>
<p><span style="color: #ff0000;"><strong></strong></span></p>
<p><span style="color: #ff0000;"><strong>3）在库备份文件时间-日志备份文件时间间隔内，日志未被截断过</strong></span></p>
<p>&nbsp;</p>
<p><span style="color: #003366;">一定要注意以上的几个先决条件，很多朋友连日常备份都没有，那就完蛋了，也有很多朋友日志截断做得很勤，那也完蛋了。</span></p>
<p>&nbsp;</p>
<p><span style="color: #003366;">有了以上的两个条件,就可以用一下SQL命令进行恢复<br /><br />1、restore database&nbsp;数据库名 from disk='d:\aaa.BAK' with norecovery</span></p>
<p>2、restore log&nbsp;<span style="color: #003366;">数据库名</span> from disk='d:\aaa.log' with stopat='2008-1-29 17:56:00' </p>
<p>&nbsp;</p>
<p>stopat 是你想恢复的时间点。</p>
<p>&nbsp;</p>
<p>祝你好运，如果不行的话，给我留言！</p>
          <br/>
          <span style="color:red;">
            <a href="http://kjava.javaeye.com/blog/206418#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 20 Jun 2008 17:51:27 +0800</pubDate>
        <link>http://kjava.javaeye.com/blog/206418</link>
        <guid>http://kjava.javaeye.com/blog/206418</guid>
      </item>
      <item>
        <title>泰国普吉岛游记</title>
        <author>kjava</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kjava.javaeye.com">kjava</a>&nbsp;
          链接：<a href="http://kjava.javaeye.com/blog/204943" style="color:red;">http://kjava.javaeye.com/blog/204943</a>&nbsp;
          发表时间: 2008年06月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>2008年6月10日，是一个值得记得的日子，因为这一天，我第一次出国（泰国普吉岛），旅行度蜜月，这从一开始就注定必将是一次难忘的旅行，为过往留下记忆的浪花。 <br /><br />时间不是很长，从10号到15号，共六天，其实10号一整天都在飞机上和机场度过，15号也是在飞机上度过，真正玩的时间只有4天。下面就流水般记录一下行程路线及其给我留下深刻映象的一些片断。 10号凌晨5点在首都机场集合，领队是一个北京姑娘，年纪不大，但是是一位经验丰富的旅行带队专家，7点多钟进入机场，第一次知道机场有免税店（不要笑我土帽），里面有些商品超便宜，终于对国家税收有了进一步的认识：），点5的中南海只要55，外面是100，中华软盒275，外面估计得600吧，还有香水等等。 从北京到泰国曼谷大概飞行了4个半小时，在曼谷转机，到普吉岛，又飞行了1个小时，到酒店的时候已经是晚上8点多了。 <br /><br /><br /><br />11号是游玩的第一天，可是天气很不好，一直下雨，这一天我第一次骑了大象，看到这么笨重的一个家伙，估计得有2吨重，大象散发出来得味道有点难闻，长长的鼻子，笨拙地挪动脚步，慢慢幽幽，看起来很可爱。我想，大象可能是泰国的吉祥物，因为有很多地方都有大象的雕塑，也有很多大象的玩具，但是，说实话，我还真不知道这个大象到底可以用来干什么。用来运输，我觉得太慢，效率肯定很低，用来饮食，但是还没听说过吃象肉的，而且也不允许，也许象牙是个好东西，但是一只大象只有两个那么小的象牙，投入产出比也忒低了.....。后来又看了猴子表演，一只三岁大小的猴子，瘦小的个子，但是它的灵活和敏捷却让人震撼，攀登、上树、摘椰子，一切都那么流畅、那么恰到好处，最后一个弹跳灌篮，让我惊诧于猴子的超强弹跳力，估计它的弹跳高度是猴子本身高度的一倍。紧接着我们去了割喉岛、007岛，还有神仙半岛，这些岛屿的风景是无与伦比的，否则那么多好莱坞影片也不选择在那里拍摄。也许白天不断的大雨给游玩带来不快，不过晚上的幻多奇（fantasea）的演出才是真正的高潮，演出场馆内气势蓬勃的布置及其超强的音响效果带来的听觉刺激，给人于无比震撼，演出的内容基本上都是泰国的历史文化或者与之相关的东西，很精彩，尤其是灯光和场景布置，非常宏伟、壮观。不过当天晚上给我最大的感触还不是演出本身，而是看到周围来自不同国家，不同肤色的人，与他们在异国他乡，一起看演出、一起拍照、一起玩游戏，这一切都让我感觉到新鲜、难忘。 <br /><br /><br />12号，天气终于好转，这一天第一次坐快艇在海面上航行，虽然没有下雨，但是风不小，因此海浪也很大，将近一个多小时的路程、一路上乘风破浪，每一次海浪过来，快艇都要急速上升和下降，这种失重的感觉和在公园里坐海盗船是一样的刺激。碧海、蓝天、还有海面上起伏波澜的海浪及其天空飘浮着的朵朵白云，这对于从未这么深切地拥抱过大海地我，是一次多么难忘地体验。我静静地地站靠在快艇地船沿，时而忘着扑面袭来地海浪，蜂拥而至，每次都感觉到危险，每次都随着海浪飘起，时而望着前面一望无垠的海面及其两旁起伏委蛇的山岛。溅起的浪花偶尔会吹落到嘴里，哦，原来海水真得很咸。到了天堂蜜月湾，沙滩没有想象中那么大，海边游泳也由于安全的考虑只能在离海岸不到20米的距离游，真得是很遗憾。沙滩上的沙子很细、很柔，踩在上面非常舒服，可惜下海时，海底下全都时很锋利的珊瑚，一不小心就会伤痕累累。天堂蜜月湾的沙滩游泳离想象中的美好有很大差距，有点失落，不过海边的风景确实很好，阵阵海风，伴着温暖的阳光，穿着泳衣，搂着心爱的女人，漫步在柔软的沙滩上，一切都是那么美丽、那么和谐，那么难忘。 <br /><br /><br />13号，也许是为了弥补昨天沙滩游泳的遗憾，今天导游安排了去帝王岛，经过了一个半小时的快艇颠簸，路过亚洲最大的燕窝洞，来到帝王岛，今天天公很作美，太阳微笑着出来了，不是很晒。帝王岛也是很小的一个岛屿，开发了一个半圆形的沙滩可以游泳，为了安全，仍然是只能在离海岸不到20米的地区游泳，带着潜泳设备，其实就是一副泳镜和一个用口呼吸的气管，扑倒在水里，第一次看到清晰的珊瑚，各种形状，还有无数的色彩斑斓的海鱼，只要稍微洒点小面包，她们就蜂拥而至，这时只要弄个小袋子，可以逮住好几条。在海水里潜泳，可以清晰的看到，碧蓝色的海水，各种形状灰白相间的珊瑚，色彩斑斓的各种海鱼游来游去，用手轻轻划去，都能碰到他们，这一切，对于从来没有在海里游过泳的我，是一副很美的图画，甚至不小心喝到的海水，那咸咸的味道我都慢慢品尝。沙滩上，到处躺着晒日光浴的少男少女，有白人、黑人、当然还有我们黄皮肤的中国人，大家都静静地躺着，享受着海风、享受着阳光，也享受着没有工作压力，没有人打扰，没有过去，未来，只有现在的宁静。大概最让人难忘的就是晚上的人妖表演了。如果问我们一提到泰国，大家会想到什么，大概百分之九十五的回答是人妖，可想而之，到泰国就一定要去看看人妖。人妖表演其实大部分都是歌曲，大概有十几个人妖进行了表演，每次出场两三个。场上的人妖经过化妆后确实很漂亮，各种女性特征都很明显，乌黑柔软的头发、隆起的胸脯，据说他们性器官也进行了手术，基本和女性一样，甚至可以进行正常的性生活，真难于想象。人妖表演唱的歌曲都基本是流行歌曲，不过有的歌曲是用英文唱、有点用中文、还有的用韩文和日文，最让大家高兴的是有一个化妆成小日本女人的人妖的表演，是一个丑角，不停的怪叫，伸舌头，赢得了在场的观众，尤其是中国观众的阵阵掌声，我想当时在场的日本人一定不乐意！表演结束了，人妖都站在大厅了，可以和他们合影留念，也是一次近距离观看人妖的机会，大家也是抓住机会按动相机的快门，把人妖带回家去。人妖的胸脯是可以摸的，不过需要20泰铢/指头，一只手抓下去需要100铢，合人民币25元，其实不贵，不过老婆在，不敢太放肆，搂着人妖的腰，照了一张合影。也许是化妆的缘故，人妖的皮肤很白，头发很黑，身材也很好，真的比泰国的妹妹要漂亮很多很多。不过我想，没有哪个人会是天生想当人妖的，他们肯定是在生活种受到这样或那样的不愉快经历，最终走上了人妖的道路，人妖需要做手术才能改变性征、需要吃一些贵重的药品才能维持女人味，这些都是需要很多钱的，泰国有些政府基金会支柱他们，因为他们促进了泰国旅游业的发展，所以，人妖在泰国是受尊重、受保护的。但是我个人认为，人妖现象就如同中国封建王朝的太监现象，是不合理的，是愚昧的，不管这些人妖是不是自愿当人妖的，至少他们的生活是不会幸福的，人们想要看他们，更多的也是出于好奇，出于对一种变态行为的好奇，希望在若干年后，世界上，不再有一个人妖！ <br /><br /><br />14号,这一天首先来到泰国的毒蛇研究中心，全世界有两所一流的毒蛇研究中心，一所在泰国，一所在巴西。这个倒不稀奇，因为泰国的热带天气，一年四季都是夏天，蛇很容易生存，留下最深印象的是抓蛇表演，第一次看到了金刚王眼镜蛇和眼镜蛇，分别是泰国第一毒和第二毒蛇，金刚王眼镜蛇是吃眼镜蛇的，据说被它咬到只有三分钟的抢救时间。在毒蛇研究中心给LP买了一瓶消毒丸，80美金，据说对治疗豆豆很有效，也是没有任何副作用的保健品，效果应该很不错的。参观完毒蛇后，就去SPA中心做SPA，其实和国内的按摩差不多，没什么特别的东西。 14号下午5点开始从普吉飞往曼谷，从曼谷再转机到北京，今天早上6点到北京，结束了我的蜜月旅行。 <br /><br /><br /><br />到泰国旅游其实有几个需要注意的地方，</p>
<ol>
<li>要兑泰铢和美金出去 感觉兑美金最合适，国内6.93美金汇率，4.59泰铢汇率，折合31.8汇率，但是再泰国是32.83汇率，很多地方都可以兑换美金。但是在泰国用人民币就不划算了，只有4.0的汇率。最好在国内一次兑换足够的钱，不要到泰国通过银联卡去取钱，因为可能碰到ATM机吞卡或者不出钞等故障，那就麻烦了。 </li>
<li>参加旅行社到当地会有自费项目，一般来说是要参加一些自费项目的，因为有很多好玩的东西都不再旅行社的安排中，可是价格不统一会带来一个侃价的问题，我们13号那天都是自费项目，当地导游报价是1700，侃价到1000。 </li>
<li>不要在导游带去的地方买东西，尤其是手工艺品，可以自己到夜市去买，一般都会便宜一半，不过质量没保障。 </li>
<br /></ol>
<p><br /><br /><br />上传了几张照片，可以看看&nbsp;&nbsp;&nbsp; <a href="http://photos.i.cn.yahoo.com/slideshow-sq5XXrQoeqhNe2myuAWJTXLnMRg-?cq=1&amp;aid=7024" title="图片">图片欣赏</a></p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://kjava.javaeye.com/blog/204943#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 17 Jun 2008 23:38:46 +0800</pubDate>
        <link>http://kjava.javaeye.com/blog/204943</link>
        <guid>http://kjava.javaeye.com/blog/204943</guid>
      </item>
      <item>
        <title>SmartPhone的推荐JAVA虚拟机</title>
        <author>kjava</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kjava.javaeye.com">kjava</a>&nbsp;
          链接：<a href="http://kjava.javaeye.com/blog/189485" style="color:red;">http://kjava.javaeye.com/blog/189485</a>&nbsp;
          发表时间: 2008年05月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <a href="http://www.nsicom.com/Default.aspx?tabid=159" target="_blank">http://www.nsicom.com/Default.aspx?tabid=159</a><br /><br /><br />不知道怎么样，测试中
          <br/>
          <span style="color:red;">
            <a href="http://kjava.javaeye.com/blog/189485#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 04 May 2008 19:00:35 +0800</pubDate>
        <link>http://kjava.javaeye.com/blog/189485</link>
        <guid>http://kjava.javaeye.com/blog/189485</guid>
      </item>
      <item>
        <title>从事手机软件开发需要掌握什么知识?</title>
        <author>kjava</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kjava.javaeye.com">kjava</a>&nbsp;
          链接：<a href="http://kjava.javaeye.com/blog/166574" style="color:red;">http://kjava.javaeye.com/blog/166574</a>&nbsp;
          发表时间: 2008年03月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          回复：从事手机软件开发需要掌握什么知识？  <br />作者：乐平 <br />发布时间：2004-12-16  <br /> <br />与其说事先掌握好什么知识，不如说有没有不断学习掌握新知识的心态和思想准备、体力准备更重要。给自己找准一个方向最重要。 <br /><br />从开发的角度上简单的说手机软件可以分成应用软件、用户界面、操作系统、底层与设备驱动以及通信协议等几个方面。测试是手机软件开发的另外一个重要领域，分为协议测试、白箱测试以及系统测试。 <br /><br />应用软件包括游戏、WAP浏览器，Web浏览器、e-mail信箱管理器、MP3播放器、MPEG播放器、Flash播放器、日程管理、电子辞典、语音录音、语音识别以及汉字输入等等。 <br /><br />用户界面包括待机界面、呼叫控制、MMS界面、短消息/EMS界面等等一切操作手机时所能够看到的、听到的和摸到的过程控制。开发用户界面涉及到对GUI和通信过程的理解。 <br /><br />每个手机里面都有一个嵌入式多任务操作系统，如Nucleus, AMX等等。这个系统不仅要管理好所有的任务，而且要提供纠错环境。 <br /><br />底层部分包含语音编解码、信令在无线接口上进行传输编解码、数据编解码等等内容。设备驱动指的是LCD驱动、Flash驱动、GPIO驱动、MIDI芯片驱动、通用串口驱动、USB驱动、电源管理单元驱动等等方面。 <br /><br />通信协议包含完成空中传输过程第2层、第3层协议、补充业务协议、数据传输协议、以及SIM/UIM协议等等。扩展一点，TCP/IP协议，WAP协议也可以归在这一类。 <br /><br />除此以外最新的手机还支持Java等应用环境的整合。 <br /><br />可以看得出整个手机的软件，涉及到一个巨大的知识系统。体现到代码上，最简单的手机，它的软件系统至少也需要40万行代码。一般的手机软件的代码规模，在100万行左右。 <br /><br />一个软件开发专业人员每年能够生产得代码量，在1万行左右。 <br /><br />以上所说的每一个方面都涉及到一个庞大的知识系统，不是念完大学课程、甚至博士课程就马上可以应付得了的。所以，重要的是选准一个自己最感兴趣的领域，瞄准这个领域切入，苦干3~5年，才能略有建树。 <br /><br />值得一提的是，国内厂商十分紧缺的是测试专家，尤其是空中接口协议测试专家。 <br /><br />不管怎样，手机软件开发最低的入门条件是： <br />1. 熟悉《数据结构》 <br />2. 熟悉多任务操作系统 <br />3. 精通C语言 <br />4. 略知通信协议，比如ISDN协议中呼叫建立和呼叫拆除过程。
          <br/>
          <span style="color:red;">
            <a href="http://kjava.javaeye.com/blog/166574#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 01 Mar 2008 22:55:45 +0800</pubDate>
        <link>http://kjava.javaeye.com/blog/166574</link>
        <guid>http://kjava.javaeye.com/blog/166574</guid>
      </item>
      <item>
        <title>比尔·盖茨：永远别向复杂低头</title>
        <author>kjava</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kjava.javaeye.com">kjava</a>&nbsp;
          链接：<a href="http://kjava.javaeye.com/blog/153851" style="color:red;">http://kjava.javaeye.com/blog/153851</a>&nbsp;
          发表时间: 2008年01月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          2008.01.07  来自：CSDN　  呐不喊   共有评论(8)条 发表评论   [收藏到我的网摘]<br />改变世界的阻碍，并非人类的冷漠，而是世界的太过复杂性。<br />DB2及下一代商业数据库 <br />DB2 9 数据库开发与管理 IBM DB2技术经理为您讲解<br />live.csdn.net<br />加拿大·达内专注高端it培训先就业后付款 <br />四大技术体系四门热点技术，国内最强大的专家授课组合 学员就业IBM，微软，华为等名企年薪7-20万不等<br />www.tarena.com.cn<br />了解 Perl/Tk 模块基础知识 <br />介绍了 Perl 语言的一个 GUI 模块 Perl/Tk的基础知识<br />doc.csdn.net<br /><br />  【CSDN 1月7日消息】 本翻译摘自当地时间2007年6月7日比尔·盖茨在哈佛大学毕业典礼上的演：Bill Gates: Never surrender to complexity ——比尔·盖茨：永远别向复杂低头。<br /><br />改变世界的阻碍，并非人类的冷漠，而是世界的太过复杂性。<br /><br />为了将关心转变为行动，我们需要找到问题，发现解决方法，评估后果。但是复杂性阻碍了这些步骤。<br /><br />就算我们真地发现了问题所在，也不过是迈出了第一步，接着还有第二步：那就是从复杂的事件中找到解决办法。<br /><br />从复杂中找到解决办法可以分为四个步骤：确定目标，找到最高效的方法，发现适用于这个方法的新技术，同时最聪明地利用现有的技术——不管它是复杂的药物，还是最简单的蚊帐。<br /><br />在发现问题、找到解决方法之后，就是最后一步——评估工作结果，将你的成功经验或者失败教训分享，这样其他人就可以从你的努力中有所收获。<br /><br /><br />但是如果你想激励其他人参加你的项目，你就必须拿出比统计数字更多的东西：你必须展示你工作的人性因素，这样人们才会感到拯救一个生命对那些处在困境中的家庭意味着什么。【呐不喊】<br /><br /><br /><br />对应原句：<br /><br />The barrier to change is not too little caring; it is too much complexity.<br /><br />To turn caring into action, we need to see a problem, see a solution, and see the impact. But complexity blocks all three steps.<br /><br />If we can really see a problem, which is the first step, we come to the second step: cutting through the complexity to find a solution.<br /><br />Cutting through complexity to find a solution runs through four predictable stages: determine a goal, find the highest-leverage approach, discover the ideal technology for that approach, and in the meantime, make the smartest application of the technology that you already have — whether it's something sophisticated, like a drug, or something simpler, like a bednet.<br /><br />The final step – after seeing the problem and finding an approach – is to measure the impact of your work and share your successes and failures so that others learn from your efforts.<br /><br />But if you want to inspire people to participate, you have to show more than numbers; you have to convey the human impact of the work – so people can feel what saving a life means to the families affected.<br /><br />比尔·盖茨在哈佛大学毕业典礼上的演讲全文：http://www.gatesfoundation.org/MediaCenter/Speeches/Co-ChairSpeeches/BillgSpeeches/BGSpeechHarvard-070607.htm
          <br/>
          <span style="color:red;">
            <a href="http://kjava.javaeye.com/blog/153851#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 08 Jan 2008 09:47:50 +0800</pubDate>
        <link>http://kjava.javaeye.com/blog/153851</link>
        <guid>http://kjava.javaeye.com/blog/153851</guid>
      </item>
      <item>
        <title>每一个从事互联网研发人员都必须看的文章--亿万用户网站MySpace的成功秘密</title>
        <author>kjava</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kjava.javaeye.com">kjava</a>&nbsp;
          链接：<a href="http://kjava.javaeye.com/blog/152766" style="color:red;">http://kjava.javaeye.com/blog/152766</a>&nbsp;
          发表时间: 2008年01月03日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          每一个从事互联网研发人员都必须看的文章--<br /><br />亿万用户网站MySpace的成功秘密<br /><br /><br /><br />◎ 文 / David F. Carr   译 / 罗小平<br /><br /><br />高速增长的访问量给社区网络的技术体系带来了巨大挑战。MySpace的开发者多年来不断重构站点软件、数据库和存储系统，以期与自身的成长同步——目前，该站点月访问量已达400亿。绝大多数网站需要应对的流量都不及MySpace的一小部分，但那些指望迈入庞大在线市场的人，可以从MySpace的成长过程学到知识。<br /><br />用户的烦恼<br />Drew，是个来自达拉斯的17岁小伙子，在他的MySpace个人资料页上，可以看到他的袒胸照，看样子是自己够着手拍的。他的好友栏全是漂亮姑娘和靓车的链接，另外还说自己参加了学校田径队，爱好吉他，开一辆蓝色福特野马。<br />不过在用户反映问题的论坛里，似乎他的火气很大。“赶紧弄好这该死的收件箱！”他大写了所有单词。使用MySpace的用户个人消息系统可以收发信息，但当他要查看一条消息时，页面却出现提示：“非常抱歉……消息错误”。<br /><br />Drew的抱怨说明1.4亿用户非常重视在线交流系统，这对MySpace来说是个好消息。但也恰是这点让MySpace成了全世界最繁忙的站点之一。<br />11月，MySpace的美国国内互联网用户访问流量首次超过Yahoo。comScore Media Metrix公司提供的资料显示，MySpace当月访问量为387亿，而Yahoo是380.5亿。<br />显然，MySpace的成长太快了——从2003年11月正式上线到现在不过三年。这使它很早就要面对只有极少数公司才会遇到的高可扩展性问题的严峻挑战。<br />事实上，MySpace的Web服务器和数据库经常性超负荷，其用户频繁遭遇“意外错误”和“站点离线维护”等告示。包括Drew在内的MySpace用户经常无法收发消息、更新个人资料或处理其他日常事务，他们不得不在论坛抱怨不停。<br /><br />尤其是最近，MySpace可能经常性超负荷。因为Keynote Systems公司性能监测服务机构负责人Shawn White说，“难以想象，在有些时候，我们发现20%的错误日志都来自MySpace，有时候甚至达到30%以至40%……而Yahoo、Salesforce.com和其他提供商用服务的站点，从来不会出现这样的数字。”他告诉我们，其他大型站点的日错误率一般就1%多点。<br /><br />顺便提及，MySpace在2006年7月24号晚上开始了长达12小时的瘫痪，期间只有一个可访问页面——该页面解释说位于洛杉矶的主数据中心发生故障。为了让大家耐心等待服务恢复，该页面提供了用Flash开发的派克人（Pac-Man）游戏。Web站点跟踪服务研究公司总经理Bill Tancer说，尤其有趣的是，MySpace瘫痪期间，访问量不降反升，“这说明了人们对MySpace的痴迷——所有人都拥在它的门口等着放行”。<br />现Nielsen Norman Group 咨询公司负责人、原Sun Microsystems公司工程师，因在Web站点方面的评论而闻名的Jakob Nielsen说，MySpace的系统构建方法显然与Yahoo、eBay以及Google都不相同。和很多观察家一样，他相信MySpace对其成长速度始料未及。“虽然我不认为他们必须在计算机科学领域全面创新，但他们面对的的确是一个巨大的科学难题。”他说。<br /><br />MySpace开发人员已经多次重构站点软件、数据库和存储系统，以满足爆炸性的成长需要，但此工作永不会停息。“就像粉刷金门大桥，工作完成之时，就是重新来过之日。”（译者注：意指工人从桥头开始粉刷，当到达桥尾时，桥头涂料已经剥落，必须重新开始）MySpace技术副总裁Jim Benedetto说。<br />既然如此，MySpace的技术还有何可学之处？因为MySpace事实上已经解决了很多系统扩展性问题，才能走到今天。<br /><br />Benedetto说他的项目组有很多教训必须总结，他们仍在学习，路漫漫而修远。他们当前需要改进的工作包括实现更灵活的数据缓存系统，以及为避免再次出现类似7月瘫痪事件的地理上分布式架构。<br /><br />背景知识<br />MySpace目前的努力方向是解决扩展性问题，但其领导人最初关注的是系统性能。<br />3年多前，一家叫做Intermix Media（早先叫eUniverse。这家公司从事各类电子邮件营销和网上商务）的公司推出了MySpace。而其创建人是Chris DeWolfe和Tom Anderson，他们原来也有一家叫做ResponseBase的电子邮件营销公司，后于2002年出售给Intermix。据Brad Greenspan（Intermix前CEO）运作的一个网站披露，ResponseBase团队为此获得2百万美金外加分红。Intermix是一家颇具侵略性的互联网商务公司——部分做法可能有点过头。2005年，纽约总检察长Eliot Spitzer——现在是纽约州长——起诉Intermix使用恶意广告软件推广业务，Intermix最后以790万美元的代价达成和解。<br /><br />2003年，美国国会通过《反垃圾邮件法》（CAN-SPAM Act），意在控制滥发邮件的营销行为。Intermix领导人DeWolfe和Anderson意识到新法案将严重打击公司的电子邮件营销业务，“因此必须寻找新的方向。”受聘于Intermix负责重写公司邮件营销软件的Duc Chau说。<br />当时有个叫Friendster的交友网站，Anderson和DeWolfe很早就是它的会员。于是他们决定创建自己的网上社区。他们去除了Friendster在用户自我表述方面的诸多限制，并重点突出音乐（尤其是重金属乐），希望以此吸引用户。Chau使用Perl开发了最初的MySpace版本，运行于Apache Web服务器，后台使用MySQL数据库。但它没有通过终审，因为Intermix的多数开发人员对ColdFusion（一个Web应用程序环境，最初由Allaire开发，现为Adobe所有）更为熟悉。因此，最后发布的产品采用ColdFusion开发，运行在Windows上，并使用MS SQL Server作为数据库服务器。<br />Chau就在那时离开了公司，将开发工作交给其他人，包括Aber Whitcomb（Intermix的技术专家，现在是MySpace技术总监）和Benedetto（MySpace现技术副总裁，大概于MySpace上线一个月后加入）。<br /><br />MySpace上线的2003年，恰恰是Friendster在满足日益增长的用户需求问题上遭遇麻烦的时期。在财富杂志最近的一次采访中，Friendster总裁Kent Lindstrom承认他们的服务出现问题选错了时候。那时，Friendster传输一个页面需要20到30秒，而MySpace只需2到3秒。<br /><br />结果，Friendster用户开始转投MySpace，他们认为后者更为可靠。<br />今天，MySpace无疑已是社区网站之王。社区网站是指那些帮助用户彼此保持联系、通过介绍或搜索、基于共同爱好或教育经历交友的Web站点。在这个领域比较有名的还有最初面向大学生的Facebook、侧重职业交流的LinkedIn，当然还少不了Friendster。MySpace宣称自己是“下一代门户”，强调内容的丰富多彩（如音乐、趣事和视频等）。其运作方式颇似一个虚拟的夜总会——为未成年人在边上安排一个果汁吧，而显著位置则是以性为目的的约会，和寻找刺激派对气氛的年轻人的搜索服务。<br /><br />用户注册时，需要提供个人基本信息，主要包括籍贯、性取向和婚姻状况。虽然MySpace屡遭批评，指其为网上性犯罪提供了温床，但对于未成年人，有些功能还是不予提供的。<br />MySpace的个人资料页上表述自己的方式很多，如文本式“关于本人”栏、选择加载入MySpace音乐播放器的歌曲，以及视频、交友要求等。它还允许用户使用CSS（一种Web标准格式语言，用户以此可设置页面元素的字体、颜色和页面背景图像）自由设计个人页面，这也提升了人气。不过结果是五花八门——很多用户的页面布局粗野、颜色迷乱，进去后找不到东南西北，不忍卒读；而有些人则使用了专业设计的模版（可阅读《Too Much of a Good Thing?》第49页），页面效果很好。<br />在网站上线8个月后，开始有大量用户邀请朋友注册MySpace，因此用户量大增。“这就是网络的力量，这种趋势一直没有停止。”Chau说。<br /><br />拥有Fox电视网络和20th Century Fox影业公司的媒体帝国——新闻集团，看到了他们在互联网用户中的机会，于是在2005年斥资5.8亿美元收购了MySpace。新闻集团董事局主席Rupert Murdoch最近向一个投资团透露，他认为MySpace目前是世界主要Web门户之一，如果现在出售MySpace，那么可获60亿美元——这比2005年收购价格的10倍还多！新闻集团还惊人地宣称，MySpace在2006年7月结束的财政年度里总收入约2亿美元，而且预期在2007年度，Fox Interactive公司总收入将达到5亿美元，其中4亿来自MySpace。<br />然而MySpace还在继续成长。12月份，它的注册账户达到1.4亿，而2005年11月时不过4千万。当然，这个数字并不等于真实的用户个体数，因为有些人可能有多个帐号，而且个人资料也表明有些是乐队，或者是虚构的名字，如波拉特（译者注：喜剧电影《Borat》主角），还有像Burger King（译者注：美国最大的汉堡连锁集团）这样的品牌名。<br /><br />当然，这么多的用户不停发布消息、撰写评论或者更新个人资料，甚至一些人整天都泡在Space上，必然给MySpace的技术工作带来前所未有的挑战。而传统新闻站点的绝大多数内容都是由编辑团队整理后主动提供给用户消费，它们的内容数据库通常可以优化为只读模式，因为用户评论等引起的增加和更新操作很少。而MySpace是由用户提供内容，数据库很大比例的操作都是插入和更新，而非读取。<br />浏览MySpace上的任何个人资料时，系统都必须先查询数据库，然后动态创建页面。当然，通过数据缓存，可以减轻数据库的压力，但这种方案必须解决原始数据被用户频繁更新带来的同步问题。<br /><br />MySpace的站点架构已经历了5个版本——每次都是用户数达到一个里程碑后，必须做大量的调整和优化。Benedetto说，“但我们始终跟不上形势的发展速度。我们重构重构再重构，一步步挪到今天”。<br />尽管MySpace拒绝了正式采访，但Benedetto在参加11月于拉斯维加斯召开的SQL Server Connections会议时还是回答了Baseline的问题。本文的不少技术信息还来源于另一次重要会议——Benedetto和他的老板——技术总监Whitcomb今年3月出席的Microsoft MIX Web开发者大会。<br />据他们讲，MySpace很多大的架构变动都发生在2004和2005年早期——用户数在当时从几十万迅速攀升到了几百万。<br /><br />在每个里程碑，站点负担都会超过底层系统部分组件的最大载荷，特别是数据库和存储系统。接着，功能出现问题，用户失声尖叫。最后，技术团队必须为此修订系统策略。<br />虽然自2005年早期，站点账户数超过7百万后，系统架构到目前为止保持了相对稳定，但MySpace仍然在为SQL Server支持的同时连接数等方面继续攻坚，Benedetto说，“我们已经尽可能把事情做到最好”。<br /><br />里程碑一：50万账户<br />按Benedetto 的说法，MySpace最初的系统很小，只有两台Web服务器和一个数据库服务器。那时使用的是Dell双CPU、4G内存的系统。<br />单个数据库就意味着所有数据都存储在一个地方，再由两台Web服务器分担处理用户请求的工作量。但就像MySpace后来的几次底层系统修订时的情况一样，三服务器架构很快不堪重负。此后一个时期内，MySpace基本是通过添置更多Web服务器来对付用户暴增问题的。<br />但到在2004年早期，MySpace用户数增长到50万后，数据库服务器也已开始汗流浃背。<br />但和Web服务器不同，增加数据库可没那么简单。如果一个站点由多个数据库支持，设计者必须考虑的是，如何在保证数据一致性的前提下，让多个数据库分担压力。<br />在第二代架构中，MySpace运行在3个SQL Server数据库服务器上——一个为主，所有的新数据都向它提交，然后由它复制到其他两个；另两个全力向用户供给数据，用以在博客和个人资料栏显示。这种方式在一段时间内效果很好——只要增加数据库服务器，加大硬盘，就可以应对用户数和访问量的增加。<br /><br />里程碑二：1-2百万账户<br />MySpace注册数到达1百万至2百万区间后，数据库服务器开始受制于I/O容量——即它们存取数据的速度。而当时才是2004年中，距离上次数据库系统调整不过数月。用户的提交请求被阻塞，就像千人乐迷要挤进只能容纳几百人的夜总会，站点开始遭遇“主要矛盾”，Benedetto说，这意味着MySpace永远都会轻度落后于用户需求。<br />“有人花5分钟都无法完成留言，因此用户总是抱怨说网站已经完蛋了。”他补充道。<br />这一次的数据库架构按照垂直分割模式设计，不同的数据库服务于站点的不同功能，如登录、用户资料和博客。于是，站点的扩展性问题看似又可以告一段落了，可以歇一阵子。<br />垂直分割策略利于多个数据库分担访问压力，当用户要求增加新功能时，MySpace将投入新的数据库予以支持它。账户到达2百万后，MySpace还从存储设备与数据库服务器直接交互的方式切换到SAN（Storage Area Network，存储区域网络）——用高带宽、专门设计的网络将大量磁盘存储设备连接在一起，而数据库连接到SAN。这项措施极大提升了系统性能、正常运行时间和可靠性，Benedetto说。<br /><br />里程碑三：3百万账户<br />当用户继续增加到3百万后，垂直分割策略也开始难以为继。尽管站点的各个应用被设计得高度独立，但有些信息必须共享。在这个架构里，每个数据库必须有各自的用户表副本——MySpace授权用户的电子花名册。这就意味着一个用户注册时，该条账户记录必须在9个不同数据库上分别创建。但在个别情况下，如果其中某台数据库服务器临时不可到达，对应事务就会失败，从而造成账户非完全创建，最终导致此用户的该项服务无效。<br />另外一个问题是，个别应用如博客增长太快，那么专门为它服务的数据库就有巨大压力。<br />2004年中，MySpace面临Web开发者称之为“向上扩展”对“向外扩展”（译者注：Scale Up和Scale Out，也称硬件扩展和软件扩展）的抉择——要么扩展到更大更强、也更昂贵的服务器上，要么部署大量相对便宜的服务器来分担数据库压力。一般来说，大型站点倾向于向外扩展，因为这将让它们得以保留通过增加服务器以提升系统能力的后路。<br />但成功地向外扩展架构必须解决复杂的分布式计算问题，大型站点如Google、Yahoo和Amazon.com，都必须自行研发大量相关技术。以Google为例，它构建了自己的分布式文件系统。<br />另外，向外扩展策略还需要大量重写原来软件，以保证系统能在分布式服务器上运行。“搞不好，开发人员的所有工作都将白费”，Benedetto说。<br />因此，MySpace首先将重点放在了向上扩展上，花费了大约1个半月时间研究升级到32CPU服务器以管理更大数据库的问题。Benedetto说，“那时候，这个方案看似可能解决一切问题。”如稳定性，更棒的是对现有软件几乎没有改动要求。<br />糟糕的是，高端服务器极其昂贵，是购置同样处理能力和内存速度的多台服务器总和的很多倍。而且，站点架构师预测，从长期来看，即便是巨型数据库，最后也会不堪重负，Benedetto说，“换句话讲，只要增长趋势存在，我们最后无论如何都要走上向外扩展的道路。”<br />因此，MySpace最终将目光移到分布式计算架构——它在物理上分布的众多服务器，整体必须逻辑上等同于单台机器。拿数据库来说，就不能再像过去那样将应用拆分，再以不同数据库分别支持，而必须将整个站点看作一个应用。现在，数据库模型里只有一个用户表，支持博客、个人资料和其他核心功能的数据都存储在相同数据库。<br />既然所有的核心数据逻辑上都组织到一个数据库，那么MySpace必须找到新的办法以分担负荷——显然，运行在普通硬件上的单个数据库服务器是无能为力的。这次，不再按站点功能和应用分割数据库，MySpace开始将它的用户按每百万一组分割，然后将各组的全部数据分别存入独立的SQL Server实例。目前，MySpace的每台数据库服务器实际运行两个SQL Server实例，也就是说每台服务器服务大约2百万用户。Benedetto指出，以后还可以按照这种模式以更小粒度划分架构，从而优化负荷分担。<br />当然，还是有一个特殊数据库保存了所有账户的名称和密码。用户登录后，保存了他们其他数据的数据库再接管服务。特殊数据库的用户表虽然庞大，但它只负责用户登录，功能单一，所以负荷还是比较容易控制的。<br /><br />里程碑四：9百万到1千7百万账户<br />2005年早期，账户达到9百万后，MySpace开始用Microsoft的C#编写ASP.NET程序。C#是C语言的最新派生语言，吸收了C++和Java的优点，依托于Microsoft .NET框架（Microsoft为软件组件化和分布式计算而设计的模型架构）。ASP.NET则由编写Web站点脚本的ASP技术演化而来，是Microsoft目前主推的Web站点编程环境。<br />可以说是立竿见影，MySpace马上就发现ASP.NET程序运行更有效率，与ColdFusion相比，完成同样任务需消耗的处理器能力更小。据技术总监Whitcomb说，新代码需要150台服务器完成的工作，如果用ColdFusion则需要246台。Benedetto还指出，性能上升的另一个原因可能是在变换软件平台，并用新语言重写代码的过程中，程序员复审并优化了一些功能流程。<br /><br />最终，MySpace开始大规模迁移到ASP.NET。即便剩余的少部分ColdFusion代码，也从Cold-Fusion服务器搬到了ASP.NET，因为他们得到了BlueDragon.NET（乔治亚州阿尔法利塔New Atlanta Communications公司的产品，它能将ColdFusion代码自动重新编译到Microsoft平台）的帮助。<br />账户达到1千万时，MySpace再次遭遇存储瓶颈问题。SAN的引入解决了早期一些性能问题，但站点目前的要求已经开始周期性超越SAN的I/O容量——即它从磁盘存储系统读写数据的极限速度。<br />原因之一是每数据库1百万账户的分割策略，通常情况下的确可以将压力均分到各台服务器，但现实并非一成不变。比如第七台账户数据库上线后，仅仅7天就被塞满了，主要原因是佛罗里达一个乐队的歌迷疯狂注册。<br />某个数据库可能因为任何原因，在任何时候遭遇主要负荷，这时，SAN中绑定到该数据库的磁盘存储设备簇就可能过载。“SAN让磁盘I/O能力大幅提升了，但将它们绑定到特定数据库的做法是错误的。”Benedetto说。<br />最初，MySpace通过定期重新分配SAN中数据，以让其更为均衡的方法基本解决了这个问题，但这是一个人工过程，“大概需要两个人全职工作。”Benedetto说。<br />长期解决方案是迁移到虚拟存储体系上，这样，整个SAN被当作一个巨型存储池，不再要求每个磁盘为特定应用服务。MySpace目前采用了一种新型SAN设备——来自加利福尼亚州弗里蒙特的3PARdata。<br />在3PAR的系统里，仍能在逻辑上按容量划分数据存储，但它不再被绑定到特定磁盘或磁盘簇，而是散布于大量磁盘。这就使均分数据访问负荷成为可能。当数据库需要写入一组数据时，任何空闲磁盘都可以马上完成这项工作，而不再像以前那样阻塞在可能已经过载的磁盘阵列处。而且，因为多个磁盘都有数据副本，读取数据时，也不会使SAN的任何组件过载。<br />当2005年春天账户数达到1千7百万时，MySpace又启用了新的策略以减轻存储系统压力，即增加数据缓存层——位于Web服务器和数据库服务器之间，其唯一职能是在内存中建立被频繁请求数据对象的副本，如此一来，不访问数据库也可以向Web应用供给数据。换句话说，100个用户请求同一份资料，以前需要查询数据库100次，而现在只需1次，其余都可从缓存数据中获得。当然如果页面变化，缓存的数据必须从内存擦除，然后重新从数据库获取——但在此之前，数据库的压力已经大大减轻，整个站点的性能得到提升。<br />缓存区还为那些不需要记入数据库的数据提供了驿站，比如为跟踪用户会话而创建的临时文件——Benedetto坦言他需要在这方面补课，“我是数据库存储狂热分子，因此我总是想着将万事万物都存到数据库。”但将像会话跟踪这类的数据也存到数据库，站点将陷入泥沼。<br />增加缓存服务器是“一开始就