??xml version="1.0" encoding="utf-8" standalone="yes"?> SD开源协?/strong>
BSD开源协议是一个给于用者很大自q协议。可以自q使用Q修Ҏ(gu)代码Q也可以修改后的代码作为开源或者专有Y件再发布?当你发布使用?jin)BSD协议的代码,或则以BSD协议代码为基做二ơ开发自q产品Ӟ需要满三个条Ӟ(x)
1. 如果再发布的产品中包含源代码Q则在源代码中必d有原来代码中的BSD协议?
2. 如果再发布的只是二进制类?软gQ则需要在cd/软g的文档和版权声明中包含原来代码中的BSD协议?
3. 不可以用开源代码的作?机构名字和原来品的名字做市(jng)场推qѝ?
BSD代码鼓励代码׃nQ但需要尊重代码作者的著作权。BSD׃允许使用者修改和重新发布代码Q也允许使用或在BSD代码上开发商业Y件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源品的时候都首选BSD协议Q因为可以完全控制这些第三方的代码,在必要的时候可以修Ҏ(gu)者二ơ开发?
Apache Licence 2.0
Apache Licence是著名的非盈利开源组lApache采用的协议。该协议和BSDcMQ同样鼓׃码共享和重原作者的著作权,同样允许代码修改Q再发布(作ؓ(f)开源或商业软g)。需要满的条gQ?
1. 需要给代码的用户一份Apache Licence
2. 如果你修改了(jin)代码Q需要再被修改的文g中说明?
3. 在g伸的代码?修改和有源代码衍生的代码?需要带有原来代码中的协议,商标Q专利声明和其他原来作者规定需要包含的说明?
4. 如果再发布的产品中包含一个Notice文gQ则在Notice文g中需要带有Apache Licence。你可以在Notice中增加自q许可Q但不可以表Cؓ(f)对Apache Licence构成更改?
Apache Licence也是对商业应用友好的许可。用者也可以在需要的时候修改代码来满需要ƈ作ؓ(f)开源或商业产品发布/销售?
GPL
GPL许可证是自由软g的应用最q泛的Y件许可证Qh们可以修改程式的一个或几个副本或程式的M部分Q以此Ş成基D些程式的衍生作品。必d修改q的案中附有明昄说明Q?zhn)修改了(jin)此一档案?qing)Q何修改的日期?(zhn)必让(zhn)发布或出版的作品,包括本程式的全部或一部分Q或内含本程式的全部或部分所衍生的作品,允许W三方在此许可证条款下用,q且不得因ؓ(f)此项授权行ؓ(f)而收贏V?
LGPL
Linux是采用?jin)GPL。GPL协议和BSD, Apache Licence{鼓׃码重用的许可很不一栗GPL的出发点是代码的开?免费使用和引?修改/衍生代码的开?免费使用Q但不允怿改后和衍生的代码做ؓ(f)闭源的商业Y件发布和销售。这也就是ؓ(f)什么我们能用免费的各种linuxQ包括商业公司的linux和linux上各U各L(fng)׃人,l织Q以?qing)商业Y件公司开发的免费软g?jin)?
GPL协议的主要内Ҏ(gu)只要在一个Y件中使用(“使用”指类库引用,修改后的代码或者衍生代?GPL协议的品,则该软g产品必须也采用GPL协议Q既必须也是开源和免费。这是所谓的”传染?#8221;。GPL协议的品作Z个单独的产品使用没有M问题Q还可以享受免费的优ѝ?
׃GPL严格要求使用?jin)GPLcd的Y件品必M用GPL协议Q对于用GPL协议的开源代码,商业软g或者对代码有保密要求的部门׃适合集成/采用作ؓ(f)cd和二ơ开发的基础?
其它l节如再发布的时候需要伴随GPL协议{和BSD/Apache{类伹{?
Public Domain
公共域授权。将软g授权为公共域Q这些Y件包没有授权协议QQ何h都可以随意用它?
Artistic许可
使作者保持对q一步开发的控制? 本报记?韦文z?/p>
目前Q国内对癑ֺ的竞h名虽然诟病颇多,但在制约手段的徏立上处于真空状态,~Z相应的措施。在业界评论家看来,如果国内搜烦(ch)控制舆论没有相关的法律法规来制裁QL一天,|络自由也将?x)本的附属?色即是空 2008q的q个U天Q对北京癑ֺ|讯U技有限公司(以下U百?来说Q可谓多事之U?/p>
10?1日,在U末的最后这几天Q受沛_唐山Zh信息服务有限公司法定代表人王冠珏的委托,北京?jng)邦道律师事务所李长青律师,把一册厚?1?6开本的《反垄断调查甌书》,送到?jin)国家工商d反垄断处一位官员手中,甌对百度滥用市(jng)场支配地位的反垄断调查。据q位官员告诉他,q是反垄断法实施以来Q发生在|络领域的第一例?/p>
而在此之前,9?日,淘宝|?#8220;为杜l不良商家欺?#8221;Q首ơ向外界宣布屏蔽癑ֺ搜烦(ch)链接Q向其公正性公开提出抗议Q??2日,癑ֺ因被披露涉嫌收取300万元保护费屏蔽三鹿奶_负面新闻,被卷入震惊全国的“三鹿问题奶粉”事g之中Q成为公众口诛笔伐的对象?/p>
更早一些,在今q的U初Q因质疑“竞h(hun)排名”的猫腻,癑ֺp深圳律师黄维领告上法院,如果不是癑ֺ提出辖权异议,此案恐怕已在深圛_(jng)田Zh民法院开庭审理?/p>
“发难”一接一场,面对来自南北的不断夹击,癑ֺq个“全球最大的中文搜烦(ch)引擎”Q如何将q股诉讼潮化险ؓ(f)P巧渡搜烦(ch)引擎行业所面(f)的经营模式之囎ͼ化解新技术带来的法律NQ成Z界关注的焦点?/p>
异常变化 2007q初Q曾?0q经营药品生意的唐山人王冠珏Q在工商局登记注册?jin)唐׃hZ息服务有限公司,创办?jin)一个普?qing)医药知识?qing)招商的网站———全民医药网?/p>
Z(jin)提高|站的点ȝQ增加客量Q全民医药网和百度河北代理商{了(jin)一个《竞h名协议》?/p>
所?#8220;竞h(hun)排名”Q就是搜索引擎商推出的一U业务。当用户搜烦(ch)一些常用词语时Q从搜烦(ch)引擎服务商购C(jin)服务的厂商的名字׃(x)排在搜烦(ch)的前列。每当用L(fng)?yn)L索的l果q入厂商的主|Q厂商就要向搜烦(ch)引擎服务商缴U一ơ费用,也就是搜索引擎的q告收入?/p>
全民医药|和癑ֺ{订的这个竞h名,参与旉?008q?月至9月䆾Q金?.9万元Q排位于W?名,点击一ơ最低h(hun)gؓ(f)0.55元,最高ؓ(f)3.8元?/p>
参与竞h(hun)的最初几个月Q是全民医药|和癑ֺ的蜜月期。全民医药网做的全国厂家招商、招?x)员Q在癑ֺ搜烦(ch)排第一名。他们网站的客流Q高峰时日浏览量?000ơ,每月固定客户?000人的比例上涨?/p>
谁知前景开始看好的时候,因ؓ(f)全民医药|要改版Q?月至8月,全民医药|把竞h(hun)支付h调到最低时Q异怾开始出C(jin)?/p>
7?日一上班Q商务部l理李娟慌慌张张地跑来告诉王冠珏,“今天在百度里输入全民医药|的|址Q链接一下子H然了(jin)Q以前的八万多条信息Q只剩下?jin)一个页?条记?#8221;?/p>
wؓ(f)商h的王冠珏qQ访问量是|站的生命,新客h不了(jin)Q老客户不?x)来Q做免费的广告,商家也不?x)干。从癑ֺ来的讉K量一直占全民医药|?0%的客量Q如果不?qing)时改变q种异常变化Q全民医药网只能?#8220;坐以待毙?#8221; Z(jin)解决面(f)?#8220;灭顶之灾”Q作为百度的一个客P王冠珏赶紧让技术部长王q岭Q给癑ֺ总部和百度石家庄代理商发信和ȝ(sh)Q反映这一异常变化。但癑ֺ的电(sh)话始l打不通。最后好不容易收C(jin)矛_庄百度的回信Q?#8220;通常q种变化是正常的Q是完全自动的,q不表示?x)对个别|站q行惩罚?#8221; 可是Q让王冠珏焦虑不已的是,C(jin)7?0日,全民医药|的日访问量骤减Q从前一日的2961IP骤减?01IP。而后来以2008q??0日ؓ(f)分界点的前后两个月对比,全民医药|的月访问量从前一个月?8095IP锐减?8340IPQ日均访问量?936IP锐减?11IPQ会(x)员已l在|上搜不到全民医药网Q网站几乎没人来光顾?jin)。再和百度联p,一炚w信都没有?/p>
7?4日,焦虑不已的王冠珏不得不再ơ给癑ֺM哀求:(x)“q是你们客服说的是因ؓ(f)pȝ自动更新Q但更新也不能差距这么大呀Q现在几乎就在百度里找不到带着全民医药|域名的内容?#8230;…请帮我们查出原因Q速回邮g或致c(din)?#8221; 但直到现在,他也没有{来癑ֺ的邮件或回电(sh)?/p>
“降权惩罚” 9月初Q王冠珏l全民医药网换了(jin)一个域名,希望癑ֺ能够收录他们|站Q但是一个月q去?jin),一条记录都没有?/p>
2008q??5日,王冠珏在查询h、雅虎对全民医药|的收录情况Ӟl果分别昄?690条及(qing)3000多条Q而其他的包括有道、搜狗,都比癑ֺ多?/p>
面对q种异常Q王冠珏真是百思不解。经q走访大量的|站Q咨询行内专Ӟ阅大量资料后,发现他们也遭遇过cM的结果?/p>
一些站长告诉他Q之前在癑ֺ做了(jin)竞h(hun)排名Q如果后来不做,很容易就被百度屏蔽了(jin)。比如:(x)重庆(jin)某知名民营医院在建立自己的网站后Q在癑ֺ、谷歌、雅虎等搜烦(ch)引擎上搜索排名一直排W一。但是,从今q?月开始,用百度竟然再也搜索不到医院网站了(jin)Q但用谷歌、雅虎却能够搜烦(ch)刎ͼ而且q是排位W一。这让医院感到十分疑惑,便以各种方式向百度反映这一情况Q但都未得到令h信服的答复。迫于无奈,医院负责紧投钱参加百度的竞h(hun)排名Q很快,医院的网站又“奇?#8221;在百度上出现?jin)?/p>
2005q?0月至2006q?月,365数码|曾在百度做竞h(hun)排名q告。而当他们停止l费Q不再在癑ֺ上投攑ֹ告后Q竟然被癑ֺ“屏蔽”?/p>
据中搜网的技术专家介l,所有的搜烦(ch)l果都可以进行h工干预,所谓屏蔽就是在搜烦(ch)E序中嵌入针对特定信息的“黑名?#8221;Q从而机器自动不去抓取指定域名的网,从而实现自q营销目的?/p>
王冠珏的一位网友还告诉他,其代理的客户大部分在行业中有较强的媄(jing)响,|站也都h相当的流量。在购买癑ֺ关键词竞价之前,在百度搜索页左边的排序中Q基本都能排在前几名Q而在购买?jin)百度的关键词竞h务后Q反而在首页很难扑ֈ?/p>
“昄Q百度在非付费的自然排序中有意下降客L(fng)排名Q目的就是希望这些客户对于关键词竞h(hun)q种付费服务产生依赖?#8221;王冠珏的|友说?/p>
因此Q早?005q_(d)一些网站站长甚至结成了(jin)“反百度联?#8221;Qƈ且获得了(jin)信息产业部备案序?豫I(xin)CP?5009507)。据《瞭望》报道,联盟的发起h郭振东,2004q发现自己创办的文学|站h鱼社癑ֺ屏蔽。此后,他在与百度上公司员工的接触中获(zhn),只要?000元就能将被封的网站解,q承诺在一q内不再屏蔽。因此,他认为百度之所以对|站q行屏蔽Q是Z(jin)推广癑ֺ的竞h名服务,遂发?#8220;反百度联?#8221;Q收集百度公司对待站长和|友不公正的证据?/p>
“没在癑ֺ做竞h名广告前Q还可以在百度上搜烦(ch)?65数码|,现在却搜不到?jin)。早知道q样Q还不如一开始就不做呢?#8221;?65数码|负责h认ؓ(f)Q百?#8220;杀”365数码|的目的Q在于迫使其l箋交钱l百度做竞h(hun)排名q告?/p>
“最令h不服气的是,用什么评定中网站该不该被屏蔽,q一pd的标准都是百度自己在操作Q外人无法知道,更无法考证和干涉?#8221;一位网友告诉王冠珏?/p>
看一看他人,比一比自己,王冠珏彻底明白了(jin)Q因q|站开始有?000以上的客量Q它一看你的IPq么高,开始能赚到钱,Z么还不到我这里来交钱Q便l你的网站来?jin)?#8220;降权惩罚?#8221; 但百度企业市(jng)场部ȝ舒迅曑֯“屏蔽”一说断然否认:(x)“癑ֺ搜烦(ch)引擎上是否收录一个网站,与这个网站是否参与百度竞h名推q没有Q何关pR百度收录的中文|站数是全球最多的Q但q不承诺收录每一个网站?#8221; 癑ֺ垄断 “癑ֺ一?#8221;Q几乎已l成为广大网民最为常见的?fn)惯性搜索?/p>
?月䆾以来Q不断有客户问王冠珏Q?#8220;在网上ؓ(f)什么搜不到你们|站Q?#8221;|民一般都使用癑ֺQ他们认为在癑ֺ搜不刎ͼ是在网上搜不到?/p>
李长青律师认为,癑ֺ的屏蔽行为对其他|站之所以构成封杀是基于其获得的市(jng)场支配地位?/p>
据相兌料表明,2008q第2季度Q百度占据中国搜索引擎市(jng)Z额的64.4%。第3季度Q坐拥中国搜索市(jng)2/3份额。到今年10?3日,癑ֺ|站发布公司新闻Q已l在中国搜烦(ch)引擎?jng)场E稳占据70%以上?jng)场份额。虽然它不过是一个工P但它现在形成?jin)一个霸ȝC。将Ҏ(gu)q远抛在后面?/p>
《反垄断法》第19条第一Ƅ一规定,有下列情形之一的,可以推定l营者具有市(jng)场支配地位:(x)一个经营者在相关?jng)场的?jng)Z额达C分之一的。上q资料表明,癑ֺ已经完全获得?jin)中国搜索引擎?jng)场的支配C?/p>
正是因ؓ(f)癑ֺh?jin)这L(fng)?jng)场CQ其屏蔽行ؓ(f)才具有了(jin)杀其他|站的能量和效果。百度也利用此DQ赢得了(jin)巨大的收益:(x)2007q_(d)癑ֺq收入ؓ(f)17.444亿元人民币,?006q增?08.2%。而其2008q第二季度的财报昄Q收入突破一亿美元?/p>
记者一位在北京l营|站的朋友则认ؓ(f)Q对于众多中网站来Ԍ其绝大多数的量都来自于癑ֺ搜烦(ch)引擎q个“入口”。因为绝大多数网民往往只能C|站的名Uͼ然后通过搜烦(ch)到达该网站。因此,摆在众多|站面前的一个现实问题是Q网站流量的讉K入口已经被百度这些大搜烦(ch)巨头所垄断Q网站的生杀大权事实上已l被掌握在了(jin)别h手中。一旦被搜烦(ch)引擎“屏蔽”Q就很有可能D|站失去量。对于搜索引?#8220;竞h(hun)排名”的方式,中小|站虽然不满Q但Z(jin)生存Q大多数都敢怒不敢言?/p>
现在摆在他们面前的只有两条\Q如果想逃避被百度封杀的厄q,要么屈服于它Q参与竞hq,d宰割Q要么向反垄断部门D报,或到法院赯Q通过打官司,L公正?/p>
对王冠珏而言Q摆在他面前的这两条路,没有一条坦途?/p>
“生死之战” 在Ȓ(f)l望的时候,8?日v施行的《反垄断法》,让王冠珏瞬间下定?jin)决心(j)?x)“我看C(jin)希望。只要法律是公正的,哪怕我p|Q也要去摸这个老虎屁股。否则,你投入再多,由它来主宎ͼq种状况永远也无法改变?#8221; 10?1日,在送往国家工商d反垄断处的《反垄断调查甌书》中Q李镉K律师认ؓ(f)Q百度对其他|站的封杀Q是滥用?jng)场支配C的行为,造成两个严重的社?x)后果?x)其一、百度的杀行ؓ(f)在实际上消灭?jin)许多网l经中的市(jng)场竞争主体,从根本上破坏?jin)公q的?jng)场竞争U序Q严重损害了(jin)C会(x)M?jng)场l济的活力;其二、出于商业目的h工干预搜索结果的行ؓ(f)损害?jin)社会(x)大众的利益Q不W合公众对于信息公开、客观的要求。其行ؓ(f)与敲诈勒索无二。这U网l霸权主义,不仅应该受到道义上的谴责Q而且应该受到行政和法律的制裁?/p>
他徏议:(x)执法机构对百度用的搜烦(ch)技术规则和搜烦(ch)q程q行调查Q制定搜索技术规范和搜烦(ch)?jng)场服务规范Q强化对搜烦(ch)引擎服务的管理;责o(h)癑ֺ停止其滥用市(jng)场支配地位封杀其他|站的违法行为,q处?.7444亿元人民币的|款(《中华h民共和国反垄断法》第47条规定:(x)l营者违反本法规定,滥用?jng)场支配C的,由反垄断执法机构责o(h)停止q法行ؓ(f)Q没收违法所得,q处上一q度销售额癑ֈ之一以上癑ֈ之十以下的罚ƾ?007q百度全q营业收入ؓ(f)17.444亿h民币Q根据以上规定,可以对其处以1.7444亿元人民币的|款)?/p>
中国互联|协?x)互联网政策与资源工作委员?x)学术专家胡钢曑֯媒体表示Q搜索引擎的“推广方式”?#8220;赞助商链?#8221;在本质上依然属于q告。但׃崭新性,搜烦(ch)引擎处在广告法的监盲区,q得搜索引擎服务商得以明目张胆地大?#8220;擦边?#8221;?/p>
中国政法大学副教授吴景明则认为,我国《广告法》第13条早已规定:(x)q告应当h可识别性,能够使消费者L明其为广告。而搜索行业的竞h(hun)排名未能被明划归到q告范围Q类似搜索引擎这cL技术应用带来的问题该如何适用法律Q目前尚无定论,“q凸显我国相关立法的滞后”?/p>
互联法网ȝ赵占领也认ؓ(f)Q?#8220;q类事g反映出我国互联网领域q存在很多法律空白或争议之处。比如广告法和反不正当竞争法如何适用于网l环境下Q搜索引擎运营商在用h有购买竞h名的情况下,不收录用L(fng)|站I竟该如何定性?是否属于强制交易行ؓ(f)Q这都需要提供证据来证明搜烦(ch)引擎q营商此丄初衷是ؓ(f)?jin)达成交易?#8221; 目前Q国内对癑ֺ的竞h名虽然诟病颇多,但在制约手段的徏立上处于真空状态,~Z相应的措施。在业界评论家看来,如果国内搜烦(ch)控制舆论没有相关的法律法规来制裁QL一天,|络自由也将?x)本的附属品?/p>
现在Q也许是政府部门着手解册个问题的最x间?0?1日,李长青律师送材料到国家工商d反垄断处Ӟ一位官员告诉他Q?#8220;内部也正在开?x),研讨q方面的问题呢?#8221; 在等待行政申L(fng)果的同时Q他正忙着攉证据Q准备一旦时机成熟,要与癑ֺ对簿公堂Q展开一场面寚w?#8220;生死之战”。?#8220;一旦这个口子打开?jin),救活的就不仅仅是全民医药|这一家了(jin)Q而是所有的中小|站和中国的互联|经?#8221;李长青律师说? 参考与资料 Web E序创徏c?br />
原文作者:(x)miguelcarrasco 谁不x败Google呢?很宏伟的目标Q但怎样做到呢?每个人对此都有自qҎ(gu)。微软一度要?40亿美元收购YahooQ,q在R&D投资 bt几十亿,U늄财力如此雄厚Q他能做CQ有为需要更多的|页(g)索,有h认ؓ(f)应当有更好的界面Q这个问题的{案仁者见仁,见智?br />
Live Search 与Facebook兌QLive Search and Facebook ConnectQ?/strong> 毋庸|疑Q对于所有研I互联网新媒体公司的同仁们而言Qblogbus是一个绝佳的案例Q他不是BT bsp?/p>
1Q在门户BSP大Dq攻下,专业BSP日渐没落。blogbus偏安于上P能发展的有声有色Q不易。刚看到Jenny发的blogbus六周q的zd。可以说Qblogbus的发展\U值得所有web2.0公司学习(fn)?br />
~者注Q如在百度中搜烦(ch) 甜性ӆ?/font>Q?a >色即是空 q色放出现的问题说知道?jin)?/p>
2Qblogbus能走到现在,跟公司团队的黄金l合关系很大。资q互联|h士:(x)横戈Q资深媒体研I专Ӟ(x)武?/font>Q资深广告营销界h士:(x)jenny。我惻I国内所有希望通过互联|赚qweb2.0公司都应该参考下q种团队。不是思\、见地。还?a >资源Q客L(fng)说教?/p>
3Qblogbus走出的商业模式,是未来很长一D|_(d)不少国内2.0公司必须的一步。原因很单,中国互联|广告规模虽然上涨很快,但依然停留在初阶段Q缺乏专业细分的q告|络Q代理)(j)公司推动。加上客戯知度较低Qweb2.0公司必须肩负推动q告挖掘的重仅R?/p>
4Q所以,l分的广告网l(代理Q公司在国内?x)越来越有前景,其中一部分?x)来源于公关公司的升U,另一部分?x)来自于当下大量掌握q告客户投放资源?A公司Q再有一个就是新媒体或者是C会(x)化媒体公司自w,在这点上blogbus和feedsky都是个例子?a target="_blank" closure_hashcode_="361">David Wolf?/font>Q?#8220;中国的问题在于我们点子的太简?#8221;Q其实更准确点说是缺专营的广告营销公司?/p>
5Q所以,有h?x)?/font>Qblogbus是广告公司,q是互联|公司?其实Qblogbus作ؓ(f)一个新媒体或者是C会(x)化媒体^収ͼ已经聚集?jin)百万的h,背靠q些人群挖掘Z(jin)不小的商业h(hun)|q已l说明了(jin)一切。很多更大用户量U的公司Q尚不及(qing)此。你说google是互联网公司Q还是广告公司?除了(jin)不断膨胀的互联网业务Qgoogle也正在成为更大的q告代理或分销商。所以,我说q,新媒体要变成q告公司?/p>
6Qblogbus最q推出的几个业务Q非常值得把玩。一个是Zblogq_推出的SNS功能Q我非常认同武挥的说法Q因为用户和营销需求去增加blogq_的互动功能,昄SNS是增加互动关联的成熟方式。但l不是把blog变成一个SNSq_?/p>
7Q另一个更有意思的则是《城客》,单说Q城客是一个依托于blogbusq_的杂志;它其实是blogbusU上资源的一个g伸(内容低成?现有用户)(j)Q这也是我看好它的一个因素;赶y的是Q同期还有一个纯_w整合|上内容的印h志《博客天下》。Ş式相同,思\却是q异?/p>
8Q我记得Qblogbus下面q有一个做口碑营销?#8220;吆喝?/font>”?/p>
9Qblogbus?x)成ZU现象,其是在冬天?/p>
]]>
先说说目?前端优化的目标是什?一个字:?两个?更快.那么下面我们来看看慢的网将?x)给我们带来什?
1. 慢的面可能?x)网站失L多的用户.
2. ?00ms意味着20%的用户将攑ּ讉K(google)
3. ?00ms意味着1%的用户将攑ּ交易(amazon)
4. ????ms意味着??%的用户将攑ּxx(your site)
所以我们的目标很明?是要网展现的速度更快.
l过ahuaxuan的实践和ȝ,其实要让|页展现更快只需要注意几个大的方?下面?x)一一描述q几个大的方?
[size=medium]1减少httph,我把它排在了(jin)W一?为啥要在W一点呢,很简?因ؓ(f)它最重要.
如何做呢.让ahuaxuan带着大家分析一下这个问?从何处着手呢.ahuaxuan大声疑֑,我们要从数据开?ok,一般来?我们从变化性上把数据分成两U类?变和不变.那么不变的数据可以缓?变化的数据不能缓?q是一个常?也就是说要减我们的httphơ数q个目标可以转换成把数据分ؓ(f)变化和不变化两个部分.不变化的数据不需要再ơ请?q样httph的次数就减少?下面我们分点来描q将数据分类的途径.
1. 合ƈ脚本文g
包括脚本,样式和图?可以有选择的把一些Js和css可以合ƈ成一个文?一些图片可以用css sprites技?q样做的原因是什?做过web开发的人都知道,js和css基本是不变的,是静(rn)态文?囄亦然.那么不变的文件如果适当的合q在一??x)有什么效果呢?h的次C多次变成?jin)一?q样httph的次数就减少?当时合ƈ之后,文g体积变大??x)?jing)响速度?{?肯定?x)?不过q里是需要权衡的,比如?00份静(rn)态文?合ƈ?0份还是合q成1份这得看你得具体情况了(jin).
2. 指定Expires或者Cache-Control,
对于?rn)态内容:(x)讄文g头过期时间Expires的gؓ(f)“Never expire”Q永不过期)(j)
动态页?在代码中dcache-control,表示多少旉之后q期,?
response.setHeader("Cache-Control", "max-age=3600");
如果使用?jin)Expires文g_(d)当页面内Ҏ(gu)变时必L变内容的文g名。通常是在文g内容后加版本?
q一Ҏ(gu)大多Ch都忽略得,之前很多人在坛子上发布自己得系l?q有demo,ahuaxuan跑过M?my god,一堆又一堆得js,css,既没有恰当得合ƈ,也没有设|过期时?每次h面都要重新下蝲q一堆又一堆的js,css.httph那叫一个多?无谓?jin)流量就q样产生?
q一点在企业应用的系l中也时有发?比如我们使用extjs作ؓ(f)前端的技?400多k?每打开一个页面都导入,下蝲q个js,够无聊的.那么童子们可能就要问??rn)态文件ؓ(f)啥不用apache,lighttpd{呢,{?用了(jin)又怎么?不设expire或者max-age不是一栯下蝲,最好的Ҏ(gu)是写一个filter,再filter中判?如果url满一定的条g(比如W合配置文g中的正则表达?,那么p|一个max-age,q样ok,太简单了(jin),几行代码可以搞?快哉.
3. ~存Ajaxh
~存的方法同动态页?ajaxh需要用get方式,url长度?k(ie)限制(posth有两个过E?1发送请求headers,2发送请求数?Ҏ(gu)http规范,geth只会(x)发送一个tcp?.--------q一D话来自yahoo,先不其真假,我们从另外一个方面来考虑一下ؓ(f)什么最好用get方式,讲一个ahuaxuanl历q的事情,之前有一个项目的ajaxh使用?jin)post方式,后来发现l常出错,而且抛出?jin)squid的错?因ؓ(f)我们的网站用了(jin)squid,问题出在这里了(jin),从http协议上可以了(jin)解到,method=post是指把数据提交到服务器上?那么squid的一个特性是不会(x)~存posth(事实上它实不应该缓?因ؓ(f)q样?x)违反http协议中的语义),把ajaxhҎ(gu)get方式之后,一切恢复如?
4. U除重复的js
重复的js导入也有可能Die重新加蝲该脚?没啥好说?照做.
5. 避免重定?/span>
有一U经常被|页开发者忽略却往往十分费响应旉的蟩转现象。这U现象发生在当URL本该有斜杠(/Q却被忽略掉时。这时候会(x)q回一?01的状态码,然后览器重新发起一ơ请?在企业应用里,重定向是我们在企业应用中常用的技?不过用在|站目?(zhn)可要小?j)?jin),因ؓ(f)普通的重定向其实是server在response header中设|http status=302,览器收C?判断出是302,?x)重新发送一个请?目标地址是前一ơ返回中指定的地址.在网站项目中如果可以不用重定向就别用?如果(zhn)做企业应用目,ok,关系不大,(zhn)就攑ֿ(j)?#8221;?#8221;?
节,ahuaxuan把减httphơ数分ؓ(f)?jin)以?个小?每个点之后附加一些实?大家可以Ҏ(gu)q些Ҏ(gu)判断自己的项目是否可以有优化的地?
使用cdn
让内Ҏ(gu)靠近用户,q有啥好说呢,原理很简?是Ҏ(gu)用户览器所在机器的ip来判断哪些服务器ȝhq?览器会(x)再次去请求这些最q的机器.一般的cdn服务商是通过开发自qdns server来达到这个目的的.不过q个是通常情况?技术实力比较高,或者场景比较特D的公司?x)开发自qcdn.当然不管怎么?使用cdn肯定可以佉K面响应更?也包括音?视频,囄,文本文g,{等{等)
减小q回数据的体U?/span>
1. 使用gzip压羃q回数据
Gzip压羃所有可能的文gcd是减文件体U增加用户体验的单方法。比如本?00k的文?压羃一下之后只?0k-100k,那么|络的流量就立刻下来?压羃的代h服务器端要压~文?需要消耗cpu,览器需要解压文?也需要消耗cpu,不过对于Cq么nb的pc,来说,览器解压一下数据带来的cpu消耗简直不g?所以?zhn)压?不过压的时候要心(j)?有的览器在特定场景下会(x)出去一些小bug,D面不正?比如ie6在跨域的时候可能会(x)有些麻?把这部分数据的gzipL可以了(jin).
2. 最化js文g和css文g
压羃js可以使用JSMin或者YUI Compressor,后者同时可以压~css,q个也没啥好说的,照做?
3. css和js独立成外部文?
其实q一点也可以看成是区分不变数据和变化数据.很多人喜Ƣ在面商写很多很多的js和css,q些数据其实都是不会(x)变化的数?也就是说q些数据也是可以~存在浏览器上的,通过把它们独立成外部文g,可以把这些数据缓存v?q样做看上去是增加的h的次?但是׃W一ơ请求之后该部分数据已经被缓?所以第二次无需再请求后?减少?jin)网l带宽的开销.
优化Cookie
1. 减小cookie体积
能不攑ְ别放?为啥呀,cookiep钥匙?只有出门和回家得时候才?但是一整天你都要带在n?ȝ(ch)?
2. 合理讄Cookie?
׃二域名可以拿到一U域名得cookie,那么如果,而二U域名之间确不能怺׃ncookie,所以合理得讄cookie得域名也可以避免无必要得带宽费和响应速度得增?
3. 讄合理的cookieq期旉
该过期就q期,不要让不必要的数据一直带在n上走来走?
4. 使用域分?
为图片或者其他静(rn)态资源文件用子域或者徏立新的独立域?甌新的域名),避免无必要的cookie传输,当然也是要在有必要得情况?囄cȝ站肯定有必要,javaeye上得囄q没有用域分离,所以我们得cookie其实?x)带到坛子得囄服务器上?每次h囄都是如此(不过q好,坛子里没有什么图?所以这斚w的浪费不?.
结,其实cookie上得问题,单词h看上M不是什么大问题,好像是无所谓得事情,那么几十个byte,至于?不过大家都听说过水滴石穿,l锯木断的故?所以该做的,我们q是要做,正所?勿以善小而不?勿以恶小而ؓ(f)?
优化览器加?
1. css攑֜面剙加蝲
把样式表攑֜文底部的问题是在包括Internet Explorer在内的很多浏览器中这?x)中止内容的有序呈现。浏览器中止呈现是ؓ(f)?jin)避免样式改变引L(fng)面元素重绘。用户不得不面对一个空白页面?
HTML规范?楚指出样式表要放包含在页面的<head />区域内:(x)“?lt;a />不同Q?lt;link />只能出现在文的<head />区域内,管它可以多ơ用它”。无论是引v白屏q是出现没有样式化的内容都不值得d试。最好的Ҏ(gu)是按照HTML规范在文 ?lt;head />内加载你的样式表?
2. js攑֜面底部加蝲
脚本带来的问题就是它L?jin)页面的q下蝲。HTTP/1.1 规范Q浏览器每个L名的q行下蝲内容不超q两个。如果你的图片放在多个主机名上,你可以在每个q行下蝲中同时下?个以上的文g。但是当下蝲脚本Ӟ览器就不会(x)同时下蝲其它文g?jin),即便是主机名不相同?
Js攑֜底部加蝲其实q不影响览器展C页?除非用户?x)在js加蝲完成之前p用某个jsҎ(gu),比如说页面刚展现C?但是恰好q一半里有一部分是调用了(jin)q未下蝲的js,q个时候就?x)出问题?如果童子们遇到这U情?可以把这部分js先加?
ȝ一下下:以上q些优化点其实只是前端优化的部分内容,不过Ҏ(gu)80/20原则,q些优化点已l覆盖了(jin)80%的情况了(jin),同时前端优化其实也不是什么复杂的东西,原理上是很简单的,更多的是需要我们的实践,因ؓ(f)我们可能?x)碰到各U各L(fng)问题,而很多的q些问题其实一般是预测不到?只有遇到q才知道.
说的不对的地方请大家拍砖,或者童子们也可以把自己的经验在q里和大家分享一?代表其他童子表示十分的感?
当然,׃ahuaxuan水^有限,文章中难免有不到之处,q望不吝指正,谢谢.
]]>
]]>
COfundOS - 一个讨论开源YӞL投资的^台?http://www.5a520.cn
Mac Yenta - 独立 Mac 开发者的C会(x)化网l^?br />
CorkDump - 一个关于常用资源(代码片段QCSSQFlash {)(j)讨论ѝ?br />
All Developers Network - 开发者社?x)化|络
CodePlex - 来自微Y的开源项目托站?br />
UnmatchList - 开发设计者的资源?br />
developerAnalytics - C会(x)媒体评h(hun)与报告,帮助你发现有潜力的社?x)媒体应用?br />
CollabFinder - 一个供开发设计者协同工作的地方?br />
试Q监控,Bug 跟踪Q项目管?
CloudStatus - ?Web 上最行云服务进行观?br />
BetaBitz - 一个帮助你L Beta 试者的地方
observu - 免费的网站与服务器监服?br />
UserFix - Bug 报告与功能请求站?br />
OctaGate SiteTimer - 用来试你的站点的访问时?br />
Cuzillion - 单的面试与检查程?br />
Mob4Hire - Z的移动应用程序需要大量测试?br />
Beanstalk - 一个托的服务Q用来浏览跟t版本控Ӟ包含对Basecamp 以及(qing) Campfire {同cL务的集成?br />
BUGtrack - 目理QBug 跟踪
UserZoom - 用户体验试q_
devunity - 曾是一?Beta ?Bug 跟踪服务Q现已成为社?x)化开发^?br />
BuiltWith - 对Q何站Ҏ(gu)供技术分析与 SEO 信息服务
fixx - Bug 跟踪Q包含移动设备界面与协同功能
BugWiki - 一个简易的 Bug 跟踪pȝ
litmus - Z Web 的测试程序,在不同浏览器上检查你的设?
Bugtagger - 一个包含标{机制的 Bug 跟踪E序Q方便找到每?Bug 是与什么相关的
FEED Validator - 验证你的 Atom, RSS 以及(qing) KML 聚合服务
pastebin - Debug 工具允许你协同工作以扑ֈ问题所?br />
JUnit.org - 一个测试框Ӟ~写q执行自动测试程?br />
Ruby 以及(qing) Ruby on Rails 资源与工?
Open Source Rails - 一个用来展C基于开?Ruby on Rails 站点的地?br />
Exceptional - Rails E序异常跟踪与管理工?br />
TuneUp - 使用 Rails 插g(g)查你的程序的性能
heroku - Ruby on Railsq_Q无需安装配置Q直接在览器中写代码?br />
RSpec 1.1.8 - Ruby 的开发框Ӟ包括 Scenario 框架与代码示例框?
Lovd By Less - 一个开源的 Ruby on Rails C会(x)|络q_
Merb - 一?Ruby 框架Q包含广泛功?br />
Camping - 一?Ruby 微框?br />
Ajax, Java & JavaScript 资源与工?
Javxs - 在线工具Q将 HTML 转换?JavaScript
frevvo - 一?Ajax 表单创徏工具Q包?XML 支持与拖攑ּ控制
AjaxDaddy - Ajax E序演示
WaveMaker - 可视化,开?Ajax 所见即所得编辑器
AppJet - JavaScript E序~写q_
SproutCore - 一?JavaScript 框架Q用来创建桌面质量的 Web E序
Bungee Connect - Ajax Web E序q_Q跨览器支?br />
Spring - 企业 Java 应用q_Q旨在提高开发效率与E序质量
jQuery - 一个用?Ajax Web 开发的 JavaScript 库?br />
KSS - 使用该框Ӟ无需~写M代码可以开发基?javaScript ?UI
PHP 资源与工?
Flow3 - 一个最初用?TYPO3 5.0 ?PHP 框架Q但可以独立使用
Prado - 一个基于组件的 PHP 5 ~程框架Q面向对象,事g驱动
Perl 资源与工?
Mason - Z Perl ?|站开发引擎,包含 Debug, 模板{工?br />
Flash 资源与工?
OpenLaszlo - ?Internet q_Q结?Flash ?DHTMLQ但只需一ơ编?br />
Python 资源与工?
GTK+ - 一个用?Python ?GUI 开发工具套?br />
Wing IDE - 专业?Python 开发环境,提供30天试?br />
Cheetah - 一个开源的Q基?Python 的模板引擎与代码生成工具
]]>
DreamFace - 一个用来创Z性化 Web E序的框架?br />
Organic Incentive - 以拖攑ּ界面创徏 Web Cg http://www.5a520.cn
dbFLEX - 商务E序开发^台?br />
app2you - 在线创徏与定?Web E序?br />
Qrimp - 一个便宜的数据库^収ͼZ你周围的数据Q如 ExcelQ创建应用程序?
Lightspoke - 拖放式程序创建工P动态过滤,排序Q真正的关系数据库后台?br />
Tersus - 可视化程序创建工P无需~写代码?br />
Qt - 跨^台应用程序框Ӟ可以同时开发应用与界面?br />
代码库与代码搜烦(ch)
byteMyCode - 代码搜烦(ch)
Snipplr - 帮你存储Q管理所有代码片Dc(din)?br />
ErrorKey - 错误代码搜烦(ch)引擎?br />
findJAR.com - JAR 文g搜烦(ch)
github - 代码库,既支持公׃码,又支持私Z码,Uh代码通过 SSH 以及(qing) SSL 讉K?br />
merobase - 搜烦(ch)lg?br />
Codebase - 代码库,技术支持与安装部v跟踪E序?br />
CONFiles - 配置文g的在U存储与分n
CodeSnippets - 公共代码库,也支持私Z?br />
GWT-Ext - 免费的,可下载的Cg?br />
开发环境,q_与框?
SocialGO - C会(x)化网l托^収ͼ包括消息Q视频聊天,?x)员资料Q照片分享,博客{?br />
Pringo - C会(x)化网l^収ͼ功能包括视频QMP3 支持Q图片库Q圈子,podcasting {?br />
slinkset - 一个用于创建社?x)化新闻站点的在U^?br />
iWidgets - C会(x)?Syndication q_Q允怽你的内容聚合到C会(x)化网l?br />
WackWall - 一?Hosted 的社?x)化|络q_
WhiteLabelDating.com - 一个创建约?x),C会(x)|络Q社区站点的q_Q允总自己公司的名义创建?br />
ONEsite - C会(x)|络q_Q包括博客,照片与视频库Q评分与标签Q消息板Q私人消息等
jinity - 免费的社?x)网l^収ͼ包括消息板,聊天Q圈子,日志Q投,新闻{?br />
Magnify.net - |站视频工具Q包括全套媒体工?br />
ShoutEm - 微博客与C会(x)|络q_
Soceeo - C会(x)|络q_Q包含文件分享,新闻Q投等
Swift - Ud站点创徏工具Q包括多U设计选项Q支?RSS FeedQ多媒体{?br />
SnappVille - C会(x)|络q_Q包括组Q博客工Px消息{?br />
Ning - C会(x)|络q_Q允怋用自q品牌Q包括会(x)员资料,事g列表Q甚?Facebook 集成?br />
mixxt - C会(x)|络q_Q包括事Ӟ论坛{?
zembly - 一个用来创建社?x)应用的的^収ͼ目前处于 Beta 版?a >Yuku - 一个社区^収ͼ可定Ӟ拥有很强大的pȝ理工具SocialEngine - Z PHP 的社?x)网l^収ͼ功能包括 multi-part profilesQ子|,搜烦(ch)友好 URLQ博客,圈子{?a >Cappuccino - 一个用来创建桌面品?Web E序的开源框?a >Jaws - 一个用户友?CMS q_? l合开发工?
Tabifier - 对你的代码进行自动羃q?br />
Sms2do - 一个用来评和演示 SMS E序的免费工兗?br />
Pretty Printer - 源代码格式化工具Q支?PHP, JavaScript, CSS {?br />
Jitterbit - 一个开源集成方案,提高可扩充性与性能
Bitizer - 二进Ӟ十进Ӟ16q制QBase 36 以及(qing) ASCII 转换工具
thmbnl - 昄你站点中那些链接|页的羃略图
ID Selector - 一?OpenID 工具
consoleFISH - 免费的,Z Web ?SSH 服务器访?br />
form site - 用来创徏自定义表?br />
99Polls - 用来创徏投票与调?br />
Warehouse - 一个非常漂亮的代码库浏览服务,支持多代码库以及(qing)非常完善的权限控?br />
rendur 2.1 - 一个沙qQ让你一边写代码Q一边生成页?br />
Languify - 译理pȝ
ROR Sitemap Generator - 思义Q这是一?ROR |站地图生成工具
MicroMaps - 用来生成交互式地图,攑֜你的|站
Newsfeed Maker - Z的网站或博客创徏 News Feed
WriteMaps - |站地图在线生成工具
Project Kenai - 免费的开源项目或代码托管站点
Launch Splash - Zq没有开通的|站免费生成一个欢q页?br />
Browser Shell - Z览器的 SSH 工具
foigo - 创徏自定义表单,调查Q以?qing)数据?a >AggData - Premade lists for your development projects.SnapCasa - |站~略囑ַ?a >Versionshelf - 代码库安全管? Mashups ?APIs
The Echo Nest - 音乐相关的开发服?APIQ包括歌手资料,音乐推荐{功?br />
Zeep Mobile - Z的站Ҏ(gu)加基于文本的消息pȝ
Clickatell - 一个短消息|关Q让你的|站通过多中q接方式发短消息
Nonoba - 在线游戏开?APIQ支持多玩家?br />
Zong - Ud支付q_Q包含开?API
Web Shots Pro - 一?APIQ开发者可用来在他们的E序中添加网站羃略图?br />
Pushpin - 一个简单易用的在线地图 APIQ支持大量标C?qing)众多其它功?br />
Datamash - Create widgets and mashups for your site with information anywhere on the Web.借助|络上的众多信息Z的站点创?widgets ?mashups
Spicy Pipes - Mashup builder.
]]>
原文链接Q?a target="_blank" closure_hashcode_="447">Who Wants To Beat-Google?
译Q?a target="_blank" closure_hashcode_="448">猪?/font>
而且现在来做qg事情Q打败GoogleQ再合?/font>不过。随着l济危机的来_(d)大批大批的web 2.0 公司卛_破Q那些仅仅依赖互联网生存的公怹卛_倒闭。即便强如Google也在d受到?jin)冲击,其股价去q?00元每股Q而今跌到286Q作者发E时Q。现在看来,互联|免费的午餐已经消失?br />
然而微软却一直保持着强劲的势_(d)因ؓ(f)他非常多元化而且在一个领域做得实在太优秀?jin)—?span>软gQ他有着难以惌的moneyQ手中有难以|信的全球智慧h(接近100,000雇员Q,同时他还拥有最富有梦想的一些领D在q筹帷幄。如果有谁能够做出更好的搜烦(ch)引擎Q那毫无疑问是微Y。而Google?x)退~么Q当然也不会(x)?br />
C交图(Social GraphQ?/strong>
Facebookl常谈论的Social Graph着实强大,因此Facebook得以?span>?jin)?/font>你。他知道你的朋友是谁、你住在哪里、你在哪儿工?#8230;…他有囄、video以及(qing)你感兴趣的东ѝ他甚至知道你在哪个C交圈、你惛_加什么活动。因而可以说Facebook比你的朋友都?jin)解你?br />
搜烦(ch)怎么?jin)(What’s Wrong With Search Today?Q?/strong>
当我试着?#8220;GAC”一cȝ来搜索的时候,q回的结果o(h)我感到荒唐——加拿大抵制协会(x)QGeological Association of CanadaQ。我是一个Y件开发者,Facebook、Twitter和LinkedIn 都知道这一点,但是GoogleҎ(gu)一无所知。所以返回的有效搜烦(ch)寥寥无几。我妈妈搜烦(ch)一个关键词跟我搜烦(ch)一个关键词得到的返回完全相同。但是我妈妈喜爱 的是手工艺,?span>喜欢的是软g开发,我们应该得到不同的结果才寏V?br />
Z么没有h利用C交囄数据呢?单纯拯Google搜烦(ch)模式、换个Logo是行不通的Qh们更换搜索需要理由。在搜烦(ch)中添加内Ҏ(gu)是出路?br />
比尔盖茨在过ȝ几年里一而再再而三地提刎ͼ(x)搜烦(ch)的道路还很长。几个月前我听到的解x案——新的界面、一直鼠标滚动的搜烦(ch)l果Qnever ending scrollingQ,q些昄不是比尔盖茨惌的。Scrolling endlessly所以你׃用选页?jin)?q显然不是解x式?br />
微Y真正应当做到的是Q当用Google和Live Search搜烦(ch)的时候,Live Searchq回的结果更好。而且不是好一点,要好很多才行?br />
微Y能做什么(So What Can Microsoft Do?Q?/strong>
毫无疑问Q微软有业内最优秀的开发者、架构师和工E师Q同样也有大W大W的钱可以投到搜索中Q这一点从?span>购买YahooQ?p够看出来Q。然而微软要惌得搜索战所~少的东西也很明?jin)?x)他们需要创意和行动路线Q也?#8220;作战计划”。Windows, Internet Explorer和OfficeQ微软当q都不是W一个,但他做出?jin)比其他操作pȝ更好的操作系l,比其他office套g更好的office套gQ比?他浏览器更好的IEQ而且他还让所有这些应用能够无~地q行在一赗所以如果微软拥有战略,q且能够正确实施QLive Search会(x)q速得到难以想象的?jng)场占有率?/p>
微Y应当充分利用Facebook connectQƈ之与Live Search兌。用Facebook connectQFacebook用户能够在Microsoft Live Search中关联到他们?span>资料数据和认证证书。通过兌搜烦(ch)、结合用L(fng)资料数据Q这个搜索就?#8220;l极搜烦(ch)引擎”?br />
Microformats是搜烦(ch)?span>未来QMicroformats are the future of SearchQ?/strong>
Microformats比其他Q何浏览器都好Q以hCalander, hCard?hReview开?/font>。如果你q从未听qMicroformatsQ赶紧查查,你就?x)知道他Z么这么重要。到目前为止Q网l上大部分的数据都是完全无序的。D个例子你输入“Contact Miguel Carrasco”搜烦(ch)Q你?x)搜?span>我的博客但仅此而已。但你想要找到的是我的联pd片。下面是我用hCalander Microformat来ؓ(f)Winnipeg.net User Group创徏一个事件的实例?br />
1: <div class="vevent" id="hcalendar-Winnipeg-.net-User-Group-September-Event">
2: <a class="url" >
3: <abbr class="dtstart" title="2008-09-30T06:00-06:0000">September 30, 2008 6</abbr> –
4: <abbr class="dtend" title="2008-09-30T08:00-06:00">8am</abbr> :
5: <span class="summary">Winnipeg .net User Group September Event</span> at
6: <span class="location">17th Floor - One Lombard Place - Winnipeg, Manitoba, Canada</span></a>
7: <div class="description">What could possibly be better than enjoying some free pizza and pop with your peers while be entertained / educated by a presentation on a single .Net topic? Well, how about an open forum that includes some of the hottest topics in software development to date?! To keep the meeting energized, we will be limiting each topic to 20 minutes, and what's more, each topic will have a subject matter expert on hand to facilitate the session.
8:
9: Come prepared with questions, project stories, and ideas to one of the most unique user group sessions we have ever had.
10:
11: Topics will include:
12:
13: What is BizTalk
14: A Real World Silverlight Application
15: What is NHibernate
16: Why Continuous Integration Is Critical
17: Open Forum Free-for-All Session</div><div class="tags">Tags:
18: <a rel="tag" >winnipeg</a><a rel="tag" > user group</a><a rel="tag" > .net</a><a rel="tag" > microsoft</a></div>
19:
20: </div>
一个支持Microformat的搜索引擎可以在搜烦(ch)l果中得到正的信息Qƈ且链接到|址来ؓ(f)事g注册?br />
完美的搜索界面(The Complete Search InterfaceQ?/strong>
大家也许都忘C(jin)QGoogle刚诞生出来的那会(x)Q没有blogsQVideo也不大,Facebook和其他社交网l还在娘胎呢。然而搜索的未来在于内容。h们每月花Ҏ(gu)百上千个钟头在社交网l、新|址和博客。他们持l地向这些玩意中提供?jin)大量他们的信息Q喜Ƣ什么?朋友是谁Q下周做什么?现在什?span>?j)?/font>Q未来三周可能去哪玩……
我个人就臛_在网l上使用臛_20U不同的C交服务Q所以说搜烦(ch)引擎不能只返l我单的数据Q而应当利用这些数据返l我我想要的内容。比如,我已l在|上吵了(jin)好几天说我下周要去迈阿密?br />
在FacebookQ我创徏?jin)几个我要在迈阿密参加?span>zdQ在DiggQ我dugg?jin)几个水中呼吸器的信息;在Last.fmQ我创徏?jin)几个标题?f)“Miami Plane Ride”的音乐列表。在Facebook我从朋友那儿收到?jin)几个回帖称我不应当错过q阿密的几个酒吧和蟩舞俱乐部。其他朋?span>推荐?jin)那儿的几处hWQ还l了(jin)照片?br />
如果我去Google搜烦(ch)跌׃部,最上的三个搜索结果跟我要扄一点关p都没有。如图:(x)
囄11
正如我说的,没有一个搜索结果对我有用,是不是我的搜索条件太为难Google?jin)?于是我又输入?#8220;Miami”Q让我们再看看结果:(x)
囄22
现在L(fng)我得C(jin)一些结果能让我看到q阿密的跌׃部,但是哪个是朋友推荐我的呢Qؓ(f)什么我要的l果不能直接出现在我的面前?Z么没有图片,或者最好再有videoQ消费者的评论在哪儿呢Q?br />
使用Live Complete Search,Q输?#8220;跌׃?#8221;Q迅速在我的搜烦(ch)l果中出C(jin)内容Qƈ且将l果局限到?jin)迈阿密。ƈ不是因ؓ(f)我想去迈阿密Q搜索才得到q样的结果,而是因ؓ(f)我twitter?jin)我的朋友问他们q阿密最好的跌׃部在哪儿Q因此,搜烦(ch)扑և?jin)我惌的结果?br />
囄33
W一条结果是Nikki BeachQ正是我朋友告诉我的那个。搜索中q有一张图片,他们留给我的评论也能在搜索页面中看到Q还有电(sh)话号码也以microformats的Ş式出?在网中Q我q能够在q儿使用Twitter, Digg或?Facebook得到更详l的信息。而且QLive Complete Search知道我在Last.FM创徏?jin)一个Miami播放列表Q所以还在搜索中加入?jin)一个链接?br />
当然q只是个例子Q但我想从中你已l能够看C(jin)_N?br />
Building Live Social Profile
Google已经证明你ƈ不需要拥有所有的数据Q因为有Z(x)提供而Google只是帮你扑ֈ它们Qo(h)人感到发W的是许多企业纷U克隆Google的方法?微Y有互联网上第一位的IM——MSN MessengerQ每个用户都有一个Live 账号Q有些hq有Live Spaces的̎受我不知道你怎样Q但在我看来使用Live Spaces的ƈ不多。我点击?jin)一下我MSN的好友,发现很多Z未用qLive SpacesQ即使有使用的hQ可能用的几率也不?qing)Facebook之类的百分之一?br />
我的是微软应当设法将Live Spaces变成人气旺盛的(“Live”Q?SpacesQ从而用户可以通过互联|将他们的社交状况传上去Q这创Z个终极社交案(social profileQ和l极个h|页Qsocial “my page”Q?br />
囄44
界面QThe Proposed InterfaceQ?/strong>
的Live Search的界面非常简单。它默认提供完整的搜索容量,包含互联|上的一切ƈ搜索结果放在合适的位置。比如,使用完全搜烦(ch)Q你?x)得C些网c(din)?blog、帖子和一些视频,也可能有写Digg文章。如果只x索自qC交囑֑Q没问题Q只需要点?#8220;Social”Q搜索结果马上只呈现Z你有关的 l果?br />
而且QLive Search的界面中能够插入许多qo(h)器,比如“搜烦(ch)”?#8220;儿童”。学校可以管理网l从而只允许“搜烦(ch)”模式Q父母可以管好自q孩子只允?#8220;儿童”?式。通过Live Spaces?Live Profileq接q些pȝQ微软将创徏出比Google PageRank强大许多的搜索,用户的天q也开始摆向了(jin)q边?br />
囄55
搜烦(ch)的最l思想QF(tun)inal Thoughts on SearchQ?/strong>
希望你能够意识到Q社交内宏Vmicroformats、和一个能够提供整个网l的完美界面是搜烦(ch)的下一ơ飞跃。拥有更加接q社交图的搜索结果比PageRank或者PageRank的克隆更Ҏ(gu)l计互联|?/p>
]]>
http://baike.baidu.com/view/133754.htm http://www.bt285.cn
q篇文章介绍的不?我之前没有听说过二叉?我就是看q篇文章加上看一下TreeMap的源代码才搞懂红黑树(wi)法?
q里不打研ITreeMap的源代码?因ؓ(f)完全是一个算法的实现,如果对这个算法不?jin)?肯定看不?我也有很多地方不是没有完全看明白,q里p谈TreeMap的用吧.
TreeMap的声?public class TreeMap extends AbstractMap implements SortedMap,Cloneable, java.io.Serializable
所以我们要知道SortedMap接口:
SortedMap表示的是一个排序的Map
public interface SortedMap extends Map
增加?jin)几个方法的定?br />
SortedMap headMap(Object toKey)
SortedMap tailMap(Object fromKey)
SortedMap subMap(Object fromKey, Object toKey)
Object firstKey()
Object lastKey()
既然TreeMap是有序的,自然要求元素是可以比较大的,如果构造函数指定Comparator的话,׃用这个Comparator比较大小,如果没有指定Comparator的话,׃用自然排?元素要实现Comparable接口).如果q两个都不可?q着出错?
现看一下该接口的定?
public interface Comparable{
public int compareTo(Object o);
}
该接口定义类的自焉?实现该接口的cd可以按这U方式排?
一般要?
e1.equals((Object)e2)和e1.compareTo((Object)e2)==0h相同的?
q样的话我们q自然序和equals一?
q个接口有什么用?
如果数据或者List中的元素实现?jin)该接口的?我们可以调用Collections.sort或者ArraysҎ(gu)l他们排?
如果自然序和equals不一致的?如果出现在Sorted Map和Set里面,
׃(x)出现预想不到的逻辑错误,可能你调用add的时候添加不?而集合里面确没有q个元素.具体的讨接口哈希表的应用.
public interface Comparator {
int compare(Object o1, Object o2);
boolean equals(Object obj);
}
定义?jin)两个方?其实我们一般都只需要实现compareҎ(gu)p?因ؓ(f)c都是默认从Objectl承
所以会(x)使用Object的equalsҎ(gu).
Comparator一般都作ؓ(f)一个匿名类出现,对于没有实现Comparable的对象的集合,排序的时?br />
需要指定一个Comparator.
q里举例说明
对于实现?jin)Comparable的类我们q最单的Integer
List list=new ArrayList();
list.add(new Integer(3));
list.add(new Integer(53));
list.add(new Integer(34));
Collections.sort(list);
对于没有实现Comparable?我们qObject,按照hashCode大小来排?
List list= new ArrayList();
list.add(new Object());
list.add(new Object());
list.add(new Object());
Collections.sort(list,new Comparator(){ public int compare(Object o1, Object o2){
return (o1.hashCode()-o2.hashCode());
})
因ؓ(f)是二叉树(wi),所以一般查找时间复杂度?o(lg(n)),q个效率当然没有HashMap的效率高.不过TreeMap比HashMap功能强大,如果不需要排序的话当然不?x)用TreeMap,如果需要排序的?HashMap无法胜Q,当然要用TreeMap?它可以求子Map.所以这个是适用场合问题,无法比较他们.
另外,我们也习(fn)惯了(jin),有Map׃(x)跟一个Set,我们都可以猜到TreeSet和通过TreeMap实现的一个SortedSet的实?不过我觉的TreeSet好像比TreeMap用的场合多一?求子集是很常用的呀!!
注意看结果,从C盘到E盘失败了(jin)Q从C盘到D盘成功了(jin)。因为我的电(sh)脑C、D两个盘是NTFS格式的,而E盘是FAT32格式的。所以从C到E是上面文章所说的"file systems"不一栗从C到D׃同是NTFS分区Q所以不存在q个问题Q当然就成功?jin)?/strong>
果然是不能把File#renameTo(File)当作moveҎ(gu)使用?
可以考虑使用apachel织的commons-io包里面的FileUtils#copyFile(File,File)和FileUtils#copyFileToDirectory(File,File)Ҏ(gu)实现copy的效果。至于删除嘛Q我惛_果要求不是那么精,可以调用File#deleteOnExit()Ҏ(gu)Q在虚拟机终止的时候,删除掉这个目录或文g?
BTW:File是文件和目录路径名的抽象表示形式Q所以有可能是目录,千万心(j)?
下面我写的一个实现方?br />
/**
* 使用FileChannel拯文g
*
* @param srcFile
* @param destFile
* @throws IOException
*/
public static void copyUseChannel(File srcFile, File destFile)
throws IOException {
if ((!srcFile.exists()) || (srcFile.isDirectory())) {
return;
}
if (!destFile.exists()) {
createFile(destFile.getAbsolutePath());
}
FileChannel out = null;
FileChannel in = null;
try {
out = new FileOutputStream(destFile).getChannel();
in = new FileInputStream(srcFile).getChannel();
ByteBuffer buffer = ByteBuffer.allocate(102400);
int position = 0;
int length = 0;
while (true) {
length = in.read(buffer, position);
if (length <= 0) {
break;
}
// System.out.println("after read:"+buffer);
buffer.flip();
// System.out.println("after flip:"+buffer);
out.write(buffer, position);
position += length;
buffer.clear();
// System.out.println("after clear:"+buffer);
}
} finally {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
}
}