<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    bt下載與小說520

    bt下載與小說520

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      16 隨筆 :: 0 文章 :: 6 評論 :: 0 Trackbacks

    2008年12月18日 #

    Mozilla Public License

    MPL License,允許免費重發(fā)布、免費修改,但要求修改后的代碼版權(quán)歸軟件的發(fā)起者。這種授權(quán)維護了商業(yè)軟件的利益,,它要求基于這種軟件得修改無償貢獻版權(quán)給該軟件。這樣,圍繞該軟件得所有代碼得版權(quán)都集中在發(fā)起開發(fā)人得手中。但MPL是允許修改,無償使用得。MPL軟件對鏈接沒有要求。

    SD開源協(xié)議

    BSD開源協(xié)議是一個給于使用者很大自由的協(xié)議。可以自由的使用,修改源代碼,也可以將修改后的代碼作為開源或者專有軟件再發(fā)布。 當你發(fā)布使用了BSD協(xié)議的代碼,或則以BSD協(xié)議代碼為基礎(chǔ)做二次開發(fā)自己的產(chǎn)品時,需要滿足三個條件:

    1. 如果再發(fā)布的產(chǎn)品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協(xié)議。

    2. 如果再發(fā)布的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權(quán)聲明中包含原來代碼中的BSD協(xié)議。

    3. 不可以用開源代碼的作者/機構(gòu)名字和原來產(chǎn)品的名字做市場推廣。

    BSD代碼鼓勵代碼共享,但需要尊重代碼作者的著作權(quán)。BSD由于允許使用者修改和重新發(fā)布代碼,也允許使用或在BSD代碼上開發(fā)商業(yè)軟件發(fā)布和銷售,因此是對商業(yè)集成很友好的協(xié)議。而很多的公司企業(yè)在選用開源產(chǎn)品的時候都首選BSD協(xié)議,因為可以完全控制這些第三方的代碼,在必要的時候可以修改或者二次開發(fā)。

    Apache Licence 2.0

    Apache Licence是著名的非盈利開源組織Apache采用的協(xié)議。該協(xié)議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權(quán),同樣允許代碼修改,再發(fā)布(作為開源或商業(yè)軟件)。需要滿足的條件:

    1. 需要給代碼的用戶一份Apache Licence

    2. 如果你修改了代碼,需要再被修改的文件中說明。

    3. 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協(xié)議,商標,專利聲明和其他原來作者規(guī)定需要包含的說明。

    4. 如果再發(fā)布的產(chǎn)品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現(xiàn)為對Apache Licence構(gòu)成更改。

    Apache Licence也是對商業(yè)應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要并作為開源或商業(yè)產(chǎn)品發(fā)布/銷售。

    GPL

    GPL許可證是自由軟件的應用最廣泛的軟件許可證,人們可以修改程式的一個或幾個副本或程式的任何部分,以此形成基於這些程式的衍生作品。必須在修改過的檔案中附有明顯的說明:您修改了此一檔案及任何修改的日期。 您必須讓您發(fā)布或出版的作品,包括本程式的全部或一部分,或內(nèi)含本程式的全部或部分所衍生的作品,允許第三方在此許可證條款下使用,并且不得因為此項授權(quán)行為而收費。

    LGPL

    Linux就是采用了GPL。GPL協(xié)議和BSD, Apache Licence等鼓勵代碼重用的許可很不一樣。GPL的出發(fā)點是代碼的開源/免費使用和引用/修改/衍生代碼的開源/免費使用,但不允許修改后和衍生的代碼做為閉源的商業(yè)軟件發(fā)布和銷售。這也就是為什么我們能用免費的各種linux,包括商業(yè)公司的linux和linux上各種各樣的由個人,組織,以及商業(yè)軟件公司開發(fā)的免費軟件了。

    GPL協(xié)議的主要內(nèi)容是只要在一個軟件中使用(“使用”指類庫引用,修改后的代碼或者衍生代碼)GPL協(xié)議的產(chǎn)品,則該軟件產(chǎn)品必須也采用GPL協(xié)議,既必須也是開源和免費。這就是所謂的”傳染性”。GPL協(xié)議的產(chǎn)品作為一個單獨的產(chǎn)品使用沒有任何問題,還可以享受免費的優(yōu)勢。

    由于GPL嚴格要求使用了GPL類庫的軟件產(chǎn)品必須使用GPL協(xié)議,對于使用GPL協(xié)議的開源代碼,商業(yè)軟件或者對代碼有保密要求的部門就不適合集成/采用作為類庫和二次開發(fā)的基礎(chǔ)。

    其它細節(jié)如再發(fā)布的時候需要伴隨GPL協(xié)議等和BSD/Apache等類似。

    Public Domain

    公共域授權(quán)。將軟件授權(quán)為公共域,這些軟件包沒有授權(quán)協(xié)議,任何人都可以隨意使用它。

    Artistic許可

    使作者保持對進一步開發(fā)的控制。

    posted @ 2008-12-18 13:55 bt下載| 編輯 收藏

    2008年12月4日 #

    著第3屆bt論壇的順利結(jié)束的秋風,我也來分享一下自己在前端優(yōu)化方面的一些些小經(jīng)驗,其實這些經(jīng)驗本身都是來自yahoo的優(yōu)化原則,不過經(jīng)過ahuaxuan自身的實踐和再次的思考,把原來的原則都進行了分組和分析.不過由于ahuaxuan bt涉及到的東西有限,并沒有經(jīng)歷過全部的優(yōu)化點,所以只把自己做過的拿出來和大家討論討論,其中不免加入自己一些觀點,希望大家指正.

    先說說目標,前端優(yōu)化的目標是什么,一個字:快.兩個字:更快.那么下面我們來看看慢的網(wǎng)頁將會給我們帶來什么:
    1. 慢的頁面可能會網(wǎng)站失去更多的用戶.

    2. 慢500ms意味著20%的用戶將放棄訪問(google)

    3. 慢100ms意味著1%的用戶將放棄交易(amazon)

    4. 慢 ???ms意味著??%的用戶將放棄xx(your site)

    所以我們的目標很明確,就是要網(wǎng)頁展現(xiàn)的速度更快.
    經(jīng)過ahuaxuan的實踐和總結(jié),其實要讓網(wǎng)頁展現(xiàn)更快只需要注意幾個大的方面,下面會一一描述這幾個大的方面.


    [size=medium]1減少http請求,我把它排在了第一點,為啥要在第一點呢,很簡單,因為它最重要.



    如何做呢.讓ahuaxuan帶著大家分析一下這個問題.從何處著手呢.ahuaxuan大聲疾呼,我們要從數(shù)據(jù)開始.ok,一般來說,我們從變化性上把數(shù)據(jù)分成兩種類型,變和不變.那么不變的數(shù)據(jù)可以緩存,變化的數(shù)據(jù)不能緩存,這是一個常識,也就是說要減少我們的http請求次數(shù)這個目標可以轉(zhuǎn)換成把數(shù)據(jù)分為變化和不變化兩個部分.不變化的數(shù)據(jù)不需要再次請求,這樣http請求的次數(shù)就減少了,下面我們分點來描述將數(shù)據(jù)分類的途徑.


    1. 合并腳本文件
    包括腳本,樣式和圖片,可以有選擇的把一些Js和css可以合并成一個文件,一些圖片可以使用css sprites技術(shù).這樣做的原因是什么?做過web開發(fā)的人都知道,js和css基本是不變的,是靜態(tài)文件,圖片亦然.那么不變的文件如果適當?shù)暮喜⒃谝黄?會有什么效果呢?請求的次數(shù)從多次變成了一次.這樣http請求的次數(shù)就減少了.當時合并之后,文件體積變大了,會影響速度嗎?答:肯定會啊,不過這里是需要權(quán)衡的,比如我100份靜態(tài)文件,合并成10份還是合并成1份這就得看你得具體情況了.

    2. 指定Expires或者Cache-Control,
    對于靜態(tài)內(nèi)容:設(shè)置文件頭過期時間Expires的值為“Never expire”(永不過期)
    動態(tài)頁面,在代碼中添加cache-control,表示多少時間之后過期,如:
    response.setHeader("Cache-Control", "max-age=3600");
    如果使用了Expires文件頭,當頁面內(nèi)容改變時就必須改變內(nèi)容的文件名。通常是在文件內(nèi)容后加版本號
    這一點是大多數(shù)人都忽略得,之前很多人在壇子上發(fā)布自己得小系統(tǒng),還有demo,ahuaxuan跑過去一看,my god,一堆又一堆得js,css,既沒有恰當?shù)煤喜?也沒有設(shè)置過期時間.每次刷新頁面都要重新下載這一堆又一堆的js,css.http請求那叫一個多啊.無謂了流量就這樣產(chǎn)生了.

    這一點在企業(yè)應用的系統(tǒng)中也時有發(fā)生.比如我們使用extjs作為前端的技術(shù),400多k啊,每打開一個頁面都導入,下載這個js,夠無聊的.那么童子們可能就要問了,靜態(tài)文件為啥不用apache,lighttpd等呢,答,用了又怎么樣,不設(shè)expire或者max-age不是一樣要下載,最好的方法是寫一個filter,再filter中判斷,如果url滿足一定的條件(比如符合配置文件中的正則表達式),那么就設(shè)置一個max-age,這樣就ok,太簡單了,幾行代碼就可以搞定.快哉.

    3. 緩存Ajax請求
    緩存的方法同動態(tài)頁面,ajax請求需要使用get方式,url長度為2k(ie)限制(post請求有兩個過程,1發(fā)送請求headers,2發(fā)送請求數(shù)據(jù),根據(jù)http規(guī)范,get請求只會發(fā)送一個tcp包).--------這一段話來自yahoo,先不管其真假,我們從另外一個方面來考慮一下為什么最好使用get方式,講一個ahuaxuan經(jīng)歷過的事情,之前有一個項目的ajax請求使用了post方式,后來發(fā)現(xiàn)經(jīng)常出錯,而且拋出了squid的錯誤,因為我們的網(wǎng)站使用了squid,問題就出在這里了,從http協(xié)議上可以了解到,method=post是指把數(shù)據(jù)提交到服務(wù)器上去,那么squid的一個特性是不會緩存post請求(事實上它確實不應該緩存,因為這樣會違反http協(xié)議中的語義),把ajax請求改成get方式之后,一切恢復如常.

    4. 移除重復的js
    重復的js導入也有可能導致ie重新加載該腳本.沒啥好說的,照做.

    5. 避免重定向
    有一種經(jīng)常被網(wǎng)頁開發(fā)者忽略卻往往十分浪費響應時間的跳轉(zhuǎn)現(xiàn)象。這種現(xiàn)象發(fā)生在當URL本該有斜杠(/)卻被忽略掉時。這時候會返回一個301的狀態(tài)碼,然后瀏覽器重新發(fā)起一次請求.在企業(yè)應用里,重定向是我們在企業(yè)應用中常用的技術(shù),不過用在網(wǎng)站項目上,您可要小心了,因為普通的重定向其實是server在response header中設(shè)置http status=302,瀏覽器收到之后,判斷出是302,會重新發(fā)送一個請求,目標地址是前一次返回中指定的地址.在網(wǎng)站項目中如果可以不用重定向就別用吧.如果您做企業(yè)應用項目,ok,關(guān)系不大,您就放心的”定”吧.

    小節(jié),ahuaxuan把減少http請求次數(shù)分為了以上5個小點,每個小點之后附加一些實例,大家可以根據(jù)這些點來判斷自己的項目是否可以有優(yōu)化的地方.


    使用cdn
    讓內(nèi)容更靠近用戶,這有啥好說呢,原理很簡單,就是根據(jù)用戶瀏覽器所在機器的ip來判斷哪些服務(wù)器離用戶最近,瀏覽器會再次去請求這些最近的機器.一般的cdn服務(wù)商是通過開發(fā)自己的dns server來達到這個目的的.不過這個是通常情況哦,技術(shù)實力比較高,或者場景比較特殊的公司會開發(fā)自己的cdn.當然不管怎么說,使用cdn肯定可以使頁面響應更快(也包括音頻,視頻,圖片,文本文件,等等等等)

    減小返回數(shù)據(jù)的體積
    1. 使用gzip壓縮返回數(shù)據(jù)
    Gzip壓縮所有可能的文件類型是減少文件體積增加用戶體驗的簡單方法。比如本來400k的文件,壓縮一下之后只有50k-100k,那么網(wǎng)絡(luò)的流量就立刻下來了,壓縮的代價是服務(wù)器端要壓縮文件,需要消耗cpu,瀏覽器需要解壓文件,也需要消耗cpu,不過對于現(xiàn)代這么nb的pc,來說,瀏覽器解壓一下數(shù)據(jù)帶來的cpu消耗簡直不值一提.所以您就壓吧.不過壓的時候要小心哦,有的瀏覽器在特定場景下會出去一些小bug,導致頁面不正常.比如ie6在跨域的時候可能會有些小麻煩,把這部分數(shù)據(jù)的gzip去掉就可以了.

    2. 最小化js文件和css文件
    壓縮js可以使用JSMin或者YUI Compressor,后者同時可以壓縮css,這個也沒啥好說的,照做吧.

    3. 將css和js獨立成外部文件
    其實這一點也可以看成是區(qū)分不變數(shù)據(jù)和變化數(shù)據(jù).很多人喜歡在頁面商寫很多很多的js和css,這些數(shù)據(jù)其實都是不會變化的數(shù)據(jù),也就是說這些數(shù)據(jù)也是可以緩存在瀏覽器上的,通過把它們獨立成外部文件,可以把這些數(shù)據(jù)緩存起來.這樣做看上去是增加的請求的次數(shù),但是由于第一次請求之后該部分數(shù)據(jù)已經(jīng)被緩存,所以第二次就無需再請求后端,減少了網(wǎng)絡(luò)帶寬的開銷.

    優(yōu)化Cookie

    1. 減小cookie體積
    能不放就別放吧,為啥呀,cookie就象鑰匙串,只有出門和回家得時候才用,但是一整天你都要帶在身上,麻煩不.
    2. 合理設(shè)置Cookie域
    由于二級域名可以拿到一級域名得cookie,那么如果,而二級域名之間確不能相互共享cookie,所以合理得設(shè)置cookie得域名也可以避免無必要得帶寬浪費和響應速度得增加.
    3. 設(shè)置合理的cookie過期時間
    該過期就過期,不要讓不必要的數(shù)據(jù)一直帶在身上走來走去.
    4. 使用域分離
    為圖片或者其他靜態(tài)資源文件使用子域或者建立新的獨立域名(申請新的域名),避免無必要的cookie傳輸,當然也是要在有必要得情況下,圖片類網(wǎng)站肯定有必要,javaeye上得圖片并沒有使用域分離,所以我們得cookie其實會帶到壇子得圖片服務(wù)器上去,每次請求圖片都是如此(不過還好,壇子里沒有什么圖片,所以這方面的浪費不大).

    小結(jié),其實cookie上得問題,單詞請求看上去也不是什么大問題,好像是無所謂得事情,就那么幾十個byte,至于嗎,不過大家都聽說過水滴石穿,繩鋸木斷的故事.所以該做的,我們還是要做,正所謂,勿以善小而不為,勿以惡小而為之.
    優(yōu)化瀏覽器加載
    1. 將css放在頁面頂部加載
    把樣式表放在文檔底部的問題是在包括Internet Explorer在內(nèi)的很多瀏覽器中這會中止內(nèi)容的有序呈現(xiàn)。瀏覽器中止呈現(xiàn)是為了避免樣式改變引起的頁面元素重繪。用戶不得不面對一個空白頁面。
          HTML規(guī)范清 楚指出樣式表要放包含在頁面的<head />區(qū)域內(nèi):“和<a />不同,<link />只能出現(xiàn)在文檔的<head />區(qū)域內(nèi),盡管它可以多次使用它”。無論是引起白屏還是出現(xiàn)沒有樣式化的內(nèi)容都不值得去嘗試。最好的方案就是按照HTML規(guī)范在文 檔<head />內(nèi)加載你的樣式表。

    2. 將js放在頁面底部加載
    腳本帶來的問題就是它阻止了頁面的平行下載。HTTP/1.1 規(guī)范建議,瀏覽器每個主機名的并行下載內(nèi)容不超過兩個。如果你的圖片放在多個主機名上,你可以在每個并行下載中同時下載2個以上的文件。但是當下載腳本時,瀏覽器就不會同時下載其它文件了,即便是主機名不相同。

    Js放在底部加載其實并不影響瀏覽器展示頁面,除非用戶會在js加載完成之前就調(diào)用某個js方法,比如說頁面剛展現(xiàn)到一半,但是恰好這一半里有一部分是調(diào)用了還未下載的js,這個時候就會出問題了,如果童子們遇到這種情況,可以把這部分js先加載.

        
    總結(jié)一下下:以上這些優(yōu)化點其實只是前端優(yōu)化的部分內(nèi)容,不過根據(jù)80/20原則,這些優(yōu)化點已經(jīng)覆蓋了80%的情況了,同時前端優(yōu)化其實也不是什么復雜的東西,原理上是很簡單的,更多的是需要我們的實踐,因為我們可能會碰到各種各樣的問題,而很多的這些問題其實一般是預測不到的.只有遇到過才知道.
    說的不對的地方請大家拍磚,或者童子們也可以把自己的經(jīng)驗在這里和大家分享一下.代表其他童子表示十分的感謝.

    當然,由于ahuaxuan水平有限,文章中難免有不到之處,還望不吝指正,謝謝.
    posted @ 2008-12-04 20:31 bt下載 閱讀(1549) | 評論 (3)編輯 收藏

    2008年11月9日 #

    企業(yè)向國家工商總局申請對百度濫用市場支配地位進行反壟斷調(diào)查,并處1.7億元罰款 bt吧。

      本報記者 韋文潔

      目前,國內(nèi)對百度的競價排名雖然詬病頗多,但在制約手段的建立上處于真空狀態(tài),缺乏相應的措施。在業(yè)界評論家看來,如果國內(nèi)搜索控制輿論沒有相關(guān)的法律法規(guī)來制裁,總有一天,網(wǎng)絡(luò)自由也將會淪為資本的附屬品 色即是空

      2008年的這個秋天,對北京百度網(wǎng)訊科技有限公司(以下簡稱百度)來說,可謂多事之秋。

      10月31日,就在秋末的最后這幾天,受河北唐山人人信息服務(wù)有限公司法定代表人王冠玨的委托,北京市邦道律師事務(wù)所李長青律師,把一冊厚達91頁16開本的《反壟斷調(diào)查申請書》,送到了國家工商總局反壟斷處一位官員手中,申請對百度濫用市場支配地位的反壟斷調(diào)查。據(jù)這位官員告訴他,這是反壟斷法實施以來,發(fā)生在網(wǎng)絡(luò)領(lǐng)域的第一例。

      而在此之前,9月8日,淘寶網(wǎng)“為杜絕不良商家欺詐”,首次向外界宣布屏蔽百度搜索鏈接,向其公正性公開提出抗議;9月12日,百度因被披露涉嫌收取300萬元保護費屏蔽三鹿奶粉負面新聞,被卷入震驚全國的“三鹿問題奶粉”事件之中,成為公眾口誅筆伐的對象。

      更早一些,在今年的秋初,因質(zhì)疑“競價排名”的貓膩,百度就被深圳律師黃維領(lǐng)告上法院,如果不是百度提出管轄權(quán)異議,此案恐怕已在深圳市福田區(qū)人民法院開庭審理。

      “發(fā)難”一場連接一場,面對來自南北的不斷夾擊,百度這個“全球最大的中文搜索引擎”,如何將這股訴訟潮化險為夷,巧渡搜索引擎行業(yè)所面臨的經(jīng)營模式之困,化解新技術(shù)帶來的法律難題,成為業(yè)界關(guān)注的焦點。

      異常變化

      2007年初,曾有10年經(jīng)營藥品生意的唐山人王冠玨,在工商局登記注冊了唐山人人信息服務(wù)有限公司,創(chuàng)辦了一個普及醫(yī)藥知識及招商的網(wǎng)站———全民醫(yī)藥網(wǎng)。

      為了提高網(wǎng)站的點擊率,增加客流量,全民醫(yī)藥網(wǎng)和百度河北代理商簽了一個《競價排名協(xié)議》。

      所謂“競價排名”,就是搜索引擎商推出的一種業(yè)務(wù)。當用戶搜索一些常用詞語時,從搜索引擎服務(wù)商購買了服務(wù)的廠商的名字就會排在搜索的前列。每當用戶點擊搜索的結(jié)果進入廠商的主頁時,廠商就要向搜索引擎服務(wù)商繳納一次費用,也就是搜索引擎的廣告收入。

      全民醫(yī)藥網(wǎng)和百度簽訂的這個競價排名,參與時間為2008年3月至9月份,金額8.9萬元,排位于第3名,點擊一次最低價格為0.55元,最高為3.8元。

      參與競價的最初幾個月,是全民醫(yī)藥網(wǎng)和百度的蜜月期。全民醫(yī)藥網(wǎng)做的全國廠家招商、招會員,在百度搜索排第一名。他們網(wǎng)站的客流,高峰時日瀏覽量達8000次,每月固定客戶以1000人的比例上漲。

      誰知前景開始看好的時候,因為全民醫(yī)藥網(wǎng)要改版,6月至8月,全民醫(yī)藥網(wǎng)把競價支付價格調(diào)到最低時,異常便開始出現(xiàn)了。

      7月5日一上班,商務(wù)部經(jīng)理李娟就慌慌張張地跑來告訴王冠玨,“今天在百度里輸入全民醫(yī)藥網(wǎng)的網(wǎng)址,鏈接一下子突然少了,以前的八萬多條信息,只剩下了一個頁面4條記錄”。

      身為商人的王冠玨深知,訪問量就是網(wǎng)站的生命,新客戶來不了,老客戶不會來,做免費的廣告,商家也不會干。從百度來的訪問量一直占全民醫(yī)藥網(wǎng)90%的客流量,如果不及時改變這種異常變化,全民醫(yī)藥網(wǎng)只能是“坐以待斃。”

      為了解決面臨的“滅頂之災”,作為百度的一個客戶,王冠玨趕緊讓技術(shù)部長王運嶺,給百度總部和百度石家莊代理商發(fā)信和去電,反映這一異常變化。但百度的電話始終打不通。最后好不容易收到了石家莊百度的回信:“通常這種變化是正常的,是完全自動的,并不表示會對個別網(wǎng)站進行懲罰。”

      可是,讓王冠玨焦慮不已的是,到了7月10日,全民醫(yī)藥網(wǎng)的日訪問量驟減,從前一日的2961IP驟減為701IP。而后來以2008年7月10日為分界點的前后兩個月對比,全民醫(yī)藥網(wǎng)的月訪問量從前一個月的88095IP銳減至18340IP,日均訪問量從2936IP銳減至611IP,會員已經(jīng)在網(wǎng)上搜不到全民醫(yī)藥網(wǎng),網(wǎng)站幾乎沒人來光顧了。再和百度聯(lián)系,一點音信都沒有。

      7月14日,焦慮不已的王冠玨不得不再次給百度去信哀求:“就算是你們客服說的是因為系統(tǒng)自動更新,但更新也不能差距這么大呀?現(xiàn)在幾乎就在百度里找不到帶著全民醫(yī)藥網(wǎng)域名的內(nèi)容了……請幫我們查出原因,速回郵件或致電。”

      但直到現(xiàn)在,他也沒有等來百度的郵件或回電。

      “降權(quán)懲罰”

      9月初,王冠玨給全民醫(yī)藥網(wǎng)換了一個域名,希望百度能夠收錄他們網(wǎng)站,但是一個月過去了,一條記錄都沒有。

      2008年9月25日,王冠玨在查詢谷歌、雅虎對全民醫(yī)藥網(wǎng)的收錄情況時,結(jié)果分別顯示為6690條及3000多條,而其他的包括有道、搜狗,都比百度多。

      面對這種異常,王冠玨真是百思不解。經(jīng)過走訪大量的網(wǎng)站,咨詢行內(nèi)專家,翻閱大量資料后,發(fā)現(xiàn)他們也遭遇過類似的結(jié)果。

      一些站長告訴他,之前在百度做了競價排名,如果后來不做,很容易就被百度屏蔽了。比如:重慶某知名民營醫(yī)院在建立自己的網(wǎng)站后,在百度、谷歌、雅虎等搜索引擎上搜索排名一直排第一。但是,從今年8月開始,用百度竟然再也搜索不到醫(yī)院網(wǎng)站了,但用谷歌、雅虎卻能夠搜索到,而且還是排位第一。這讓醫(yī)院感到十分疑惑,便以各種方式向百度反映這一情況,但都未得到令人信服的答復。迫于無奈,醫(yī)院負責人趕緊投錢參加百度的競價排名,很快,醫(yī)院的網(wǎng)站又“神奇地”在百度上出現(xiàn)了。

      2005年10月至2006年4月,365數(shù)碼網(wǎng)曾在百度做競價排名廣告。而當他們停止續(xù)費,不再在百度上投放廣告后,竟然被百度“屏蔽”。

      據(jù)中搜網(wǎng)的技術(shù)專家介紹,所有的搜索結(jié)果都可以進行人工干預,所謂屏蔽就是在搜索程序中嵌入針對特定信息的“黑名單”,從而使機器自動不去抓取指定域名的網(wǎng)頁,從而實現(xiàn)自己的營銷目的。

      王冠玨的一位網(wǎng)友還告訴他,其代理的客戶大部分在行業(yè)中有較強的影響,網(wǎng)站也都具有相當?shù)牧髁俊T谫徺I百度關(guān)鍵詞競價之前,在百度搜索頁左邊的排序中,基本都能排在前幾名,而在購買了百度的關(guān)鍵詞競價服務(wù)后,反而在首頁很難找到。

      “顯然,百度在非付費的自然排序中有意下降客戶的排名,目的就是希望這些客戶對于關(guān)鍵詞競價這種付費服務(wù)產(chǎn)生依賴。”王冠玨的網(wǎng)友說。

      因此,早在2005年,一些網(wǎng)站站長甚至結(jié)成了“反百度聯(lián)盟”,并且獲得了信息產(chǎn)業(yè)部備案序號(豫ICP備05009507)。據(jù)《瞭望》報道,聯(lián)盟的發(fā)起人郭振東,2004年發(fā)現(xiàn)自己創(chuàng)辦的文學網(wǎng)站美人魚社區(qū)被百度屏蔽。此后,他在與百度上海公司員工的接觸中獲悉,只要交6000元就能將被封的網(wǎng)站解禁,并承諾在一年內(nèi)不再屏蔽。因此,他認為百度之所以對網(wǎng)站進行屏蔽,是為了推廣百度的競價排名服務(wù),遂發(fā)起“反百度聯(lián)盟”,收集百度公司對待站長和網(wǎng)友不公正的證據(jù)。

      “沒在百度做競價排名廣告前,還可以在百度上搜索到365數(shù)碼網(wǎng),現(xiàn)在卻搜不到了。早知道這樣,還不如一開始就不做呢。”該365數(shù)碼網(wǎng)負責人認為,百度“封殺”365數(shù)碼網(wǎng)的目的,在于迫使其繼續(xù)交錢給百度做競價排名廣告。

      “最令人不服氣的是,用什么評定中小網(wǎng)站該不該被屏蔽,這一系列的標準都是百度自己在操作,外人無法知道,更無法考證和干涉。”一位網(wǎng)友告訴王冠玨。

      看一看他人,比一比自己,王冠玨徹底明白了,因為自己的網(wǎng)站開始有了4000以上的客流量,它一看你的IP這么高,開始能賺到錢,為什么還不到我這里來交錢?便給你的網(wǎng)站來了個“降權(quán)懲罰。”

      但百度企業(yè)市場部總監(jiān)舒迅曾對“屏蔽”一說斷然否認:“百度搜索引擎上是否收錄一個網(wǎng)站,與這個網(wǎng)站是否參與百度競價排名推廣沒有任何關(guān)系。百度收錄的中文網(wǎng)站數(shù)是全球最多的,但并不承諾收錄每一個網(wǎng)站。”

    百度壟斷

      “百度一下”,幾乎已經(jīng)成為廣大網(wǎng)民最為常見的習慣性搜索。

      自7月份以來,不斷有客戶問王冠玨:“在網(wǎng)上為什么搜不到你們網(wǎng)站?”網(wǎng)民一般都使用百度,他們認為在百度搜不到,就是在網(wǎng)上搜不到。

      李長青律師認為,百度的屏蔽行為對其他網(wǎng)站之所以構(gòu)成封殺是基于其獲得的市場支配地位。

      據(jù)相關(guān)資料表明,2008年第2季度,百度占據(jù)中國搜索引擎市場份額的64.4%。第3季度,坐擁中國搜索市場近2/3份額。到今年10月23日,百度網(wǎng)站發(fā)布公司新聞,已經(jīng)在中國搜索引擎市場穩(wěn)穩(wěn)占據(jù)70%以上市場份額。雖然它不過是一個工具,但它現(xiàn)在形成了一個霸主的地位。將對手遠遠拋在后面。

      《反壟斷法》第19條第一款第一項規(guī)定,有下列情形之一的,可以推定經(jīng)營者具有市場支配地位:一個經(jīng)營者在相關(guān)市場的市場份額達到二分之一的。上述資料表明,百度已經(jīng)完全獲得了中國搜索引擎市場的支配地位。

      正是因為百度具有了這樣的市場地位,其屏蔽行為才具有了封殺其他網(wǎng)站的能量和效果。百度也利用此舉,贏得了巨大的收益:2007年,百度年收入為17.444億元人民幣,比2006年增長108.2%。而其2008年第二季度的財報顯示,收入突破一億美元。

      記者一位在北京經(jīng)營網(wǎng)站的朋友則認為,對于眾多中小網(wǎng)站來講,其絕大多數(shù)的流量都來自于百度搜索引擎這個“入口”。因為絕大多數(shù)網(wǎng)民往往只能記住網(wǎng)站的名稱,然后通過搜索到達該網(wǎng)站。因此,擺在眾多網(wǎng)站面前的一個現(xiàn)實問題是,網(wǎng)站流量的訪問入口已經(jīng)被百度這些大搜索巨頭所壟斷,網(wǎng)站的生殺大權(quán)事實上已經(jīng)被掌握在了別人手中。一旦被搜索引擎“屏蔽”,就很有可能導致網(wǎng)站失去流量。對于搜索引擎“競價排名”的方式,中小網(wǎng)站雖然不滿,但為了生存,大多數(shù)都敢怒不敢言。

      現(xiàn)在擺在他們面前的只有兩條路:如果想逃避被百度封殺的厄運,要么屈服于它,參與競價推廣,任其宰割;要么向反壟斷部門舉報,或到法院起訴,通過打官司,尋求公正。

      對王冠玨而言,擺在他面前的這兩條路,沒有一條坦途。

      “生死之戰(zhàn)”

      就在瀕臨絕望的時候,8月1日起施行的《反壟斷法》,讓王冠玨瞬間下定了決心:“我看到了希望。只要法律是公正的,哪怕我失敗,也要去摸這個老虎屁股。否則,你投入再多,由它來主宰,這種狀況永遠也無法改變。”

      10月31日,在送往國家工商總局反壟斷處的《反壟斷調(diào)查申請書》中,李長青律師認為,百度對其他網(wǎng)站的封殺,是濫用市場支配地位的行為,造成兩個嚴重的社會后果:其一、百度的封殺行為在實際上消滅了許多網(wǎng)絡(luò)經(jīng)濟中的市場競爭主體,從根本上破壞了公平的市場競爭秩序,嚴重損害了社會主義市場經(jīng)濟的活力;其二、出于商業(yè)目的人工干預搜索結(jié)果的行為損害了社會大眾的利益,不符合公眾對于信息公開、客觀的要求。其行為與敲詐勒索無二。這種網(wǎng)絡(luò)霸權(quán)主義,不僅應該受到道義上的譴責,而且應該受到行政和法律的制裁。

      他建議:執(zhí)法機構(gòu)對百度使用的搜索技術(shù)規(guī)則和搜索過程進行調(diào)查;制定搜索技術(shù)規(guī)范和搜索市場服務(wù)規(guī)范,強化對搜索引擎服務(wù)的管理;責令百度停止其濫用市場支配地位封殺其他網(wǎng)站的違法行為,并處以1.7444億元人民幣的罰款(《中華人民共和國反壟斷法》第47條規(guī)定:經(jīng)營者違反本法規(guī)定,濫用市場支配地位的,由反壟斷執(zhí)法機構(gòu)責令停止違法行為,沒收違法所得,并處上一年度銷售額百分之一以上百分之十以下的罰款。2007年百度全年營業(yè)收入為17.444億人民幣,根據(jù)以上規(guī)定,可以對其處以1.7444億元人民幣的罰款)。

      中國互聯(lián)網(wǎng)協(xié)會互聯(lián)網(wǎng)政策與資源工作委員會學術(shù)專家胡鋼曾對媒體表示,搜索引擎的“推廣方式”或“贊助商鏈接”在本質(zhì)上依然屬于廣告。但由于嶄新性,搜索引擎尚處在廣告法的監(jiān)管盲區(qū),這使得搜索引擎服務(wù)商得以明目張膽地大打“擦邊球”。

      中國政法大學副教授吳景明則認為,我國《廣告法》第13條早已規(guī)定:廣告應當具有可識別性,能夠使消費者辨明其為廣告。而搜索行業(yè)的競價排名未能被明確劃歸到廣告范圍,類似搜索引擎這類新技術(shù)應用帶來的問題該如何適用法律,目前尚無定論,“這凸顯我國相關(guān)立法的滯后”。

      互聯(lián)法網(wǎng)總監(jiān)趙占領(lǐng)也認為:“這類事件反映出我國互聯(lián)網(wǎng)領(lǐng)域還存在很多法律空白或爭議之處。比如廣告法和反不正當競爭法如何適用于網(wǎng)絡(luò)環(huán)境下?搜索引擎運營商在用戶沒有購買競價排名的情況下,不收錄用戶的網(wǎng)站究竟該如何定性?是否屬于強制交易行為?這都需要提供證據(jù)來證明搜索引擎運營商此舉的初衷是為了達成交易。”

      目前,國內(nèi)對百度的競價排名雖然詬病頗多,但在制約手段的建立上處于真空狀態(tài),缺乏相應的措施。在業(yè)界評論家看來,如果國內(nèi)搜索控制輿論沒有相關(guān)的法律法規(guī)來制裁,總有一天,網(wǎng)絡(luò)自由也將會淪為資本的附屬品。

      現(xiàn)在,也許是政府部門著手解決這個問題的最佳時間。10月31日,李長青律師送材料到國家工商總局反壟斷處時,一位官員告訴他:“內(nèi)部也正在開會,研討這方面的問題呢。”

      在等待行政申請結(jié)果的同時,他正忙著收集證據(jù),準備一旦時機成熟,要與百度對簿公堂,展開一場面對面的“生死之戰(zhàn)”。而“一旦這個口子打開了,救活的就不僅僅是全民醫(yī)藥網(wǎng)這一家了,而是所有的中小網(wǎng)站和中國的互聯(lián)網(wǎng)經(jīng)濟。”李長青律師說。

    posted @ 2008-11-09 22:08 bt下載 閱讀(229) | 評論 (0)編輯 收藏

    2008年11月6日 #

    這是 Mashable bt搜集的最新 Web 開發(fā)工具箱,包括拖放式 Web 程序創(chuàng)建工具,代碼庫,項目管理,測試程序,以及支持各種編程語言的框架,從 Ajax 到 Ruby 到 Python。這是第二部分。

      參考與資料


    COfundOS - 一個討論開源軟件,尋找投資的平臺。 http://www.5a520.cn
    Mac Yenta - 獨立 Mac 開發(fā)者的社會化網(wǎng)絡(luò)平臺
    CorkDump - 一個關(guān)于常用資源(代碼片段,CSS,F(xiàn)lash 等)討論板。
    All Developers Network - 開發(fā)者社會化網(wǎng)絡(luò)
    CodePlex - 來自微軟的開源項目托管站點


    UnmatchList - 開發(fā)設(shè)計者的資源庫
    developerAnalytics - 社會媒體評價與報告,幫助你發(fā)現(xiàn)有潛力的社會媒體應用。
    CollabFinder - 一個供開發(fā)設(shè)計者協(xié)同工作的地方。
    測試,監(jiān)控,Bug 跟蹤,項目管理



    CloudStatus - 對 Web 上最流行云服務(wù)進行觀察

    BetaBitz - 一個幫助你尋找 Beta 測試者的地方

    observu - 免費的網(wǎng)站與服務(wù)器監(jiān)測服務(wù)

    UserFix - Bug 報告與功能請求站點

    OctaGate SiteTimer - 用來測試你的站點的訪問時延



    Cuzillion - 簡單的頁面測試與檢查程序

    Mob4Hire - 為你的移動應用程序需要大量測試者

    Beanstalk - 一個托管的服務(wù),用來瀏覽跟蹤版本控制,包含對Basecamp 以及 Campfire 等同類服務(wù)的集成。

    BUGtrack - 項目管理,Bug 跟蹤

    UserZoom - 用戶體驗測試平臺


    devunity - 曾是一個 Beta 版 Bug 跟蹤服務(wù),現(xiàn)已成為社會化開發(fā)平臺
    BuiltWith - 對任何站點提供技術(shù)分析與 SEO 信息服務(wù)
    fixx - Bug 跟蹤,包含移動設(shè)備界面與協(xié)同功能
    BugWiki - 一個簡易的 Bug 跟蹤系統(tǒng)
    litmus - 基于 Web 的測試程序,在不同瀏覽器上檢查你的設(shè)計


    Bugtagger - 一個包含標簽機制的 Bug 跟蹤程序,方便找到每個 Bug 是與什么相關(guān)的
    FEED Validator - 驗證你的 Atom, RSS 以及 KML 聚合服務(wù)
    pastebin - Debug 工具允許你協(xié)同工作以找到問題所在
    JUnit.org - 一個測試框架,編寫并執(zhí)行自動測試程序
      Ruby 以及 Ruby on Rails 資源與工具


    Open Source Rails - 一個用來展示基于開源 Ruby on Rails 站點的地方
    Exceptional - Rails 程序異常跟蹤與管理工具
    TuneUp - 使用 Rails 插件檢查你的程序的性能
    heroku - Ruby on Rails平臺,無需安裝配置,直接在瀏覽器中寫代碼。
    RSpec 1.1.8 - Ruby 的開發(fā)框架,包括 Scenario 框架與代碼示例框架



    Lovd By Less - 一個開源的 Ruby on Rails 社會網(wǎng)絡(luò)平臺
    Merb - 一個 Ruby 框架,包含廣泛功能
    Camping - 一個 Ruby 微框架
      Ajax, Java & JavaScript 資源與工具


    Javxs - 在線工具,將 HTML 轉(zhuǎn)換為 JavaScript
    frevvo - 一個 Ajax 表單創(chuàng)建工具,包括 XML 支持與拖放式控制
    AjaxDaddy - Ajax 程序演示
    WaveMaker - 可視化,開源 Ajax 所見即所得編輯器
    AppJet - JavaScript 程序編寫平臺



    SproutCore - 一個 JavaScript 框架,用來創(chuàng)建桌面質(zhì)量的 Web 程序
    Bungee Connect - Ajax Web 程序平臺,跨瀏覽器支持
    Spring - 企業(yè) Java 應用平臺,旨在提高開發(fā)效率與程序質(zhì)量
    jQuery - 一個用于 Ajax Web 開發(fā)的 JavaScript 庫。
    KSS - 使用該框架,無需編寫任何代碼就可以開發(fā)基于 javaScript 的 UI
        PHP 資源與工具


    Flow3 - 一個最初用于 TYPO3 5.0 的 PHP 框架,但可以獨立使用
    Prado - 一個基于組件的 PHP 5 編程框架,面向?qū)ο螅录?qū)動
      Perl 資源與工具


    Mason - 基于 Perl 的 網(wǎng)站開發(fā)引擎,包含 Debug, 模板等工具
      Flash 資源與工具


    OpenLaszlo - 富 Internet 平臺,結(jié)合 Flash 與 DHTML,但只需一次編寫
      Python 資源與工具


    GTK+ - 一個用于 Python 的 GUI 開發(fā)工具套件
    Wing IDE - 專業(yè)的 Python 開發(fā)環(huán)境,提供30天試用
    Cheetah - 一個開源的,基于 Python 的模板引擎與代碼生成工具

    posted @ 2008-11-06 19:51 bt下載 閱讀(226) | 評論 (0)編輯 收藏

    新聞來源:mashable.com
    這是 Mashable bt搜集的最新 Web 開發(fā)工具箱,包括拖放式 Web 程序創(chuàng)建工具,代碼庫,項目管理,測試程序,以及支持各種編程語言的框架,從 Ajax 到 Ruby 到 Python。這是第一部分。

    Web 程序創(chuàng)建類


    DreamFace - 一個用來創(chuàng)建個性化 Web 程序的框架。

    Organic Incentive - 以拖放式界面創(chuàng)建 Web 飾件 http://www.5a520.cn

    dbFLEX - 商務(wù)程序開發(fā)平臺。

    app2you - 在線創(chuàng)建與定制 Web 程序。

    Qrimp - 一個便宜的數(shù)據(jù)庫平臺,基于你周圍的數(shù)據(jù)(如 Excel)創(chuàng)建應用程序。





    Lightspoke - 拖放式程序創(chuàng)建工具,動態(tài)過濾,排序,真正的關(guān)系數(shù)據(jù)庫后臺。

    Tersus - 可視化程序創(chuàng)建工具,無需編寫代碼。

    Qt - 跨平臺應用程序框架,可以同時開發(fā)應用與界面。


    代碼庫與代碼搜索




    byteMyCode - 代碼搜索

    Snipplr - 幫你存儲,管理所有代碼片段。

    ErrorKey - 錯誤代碼搜索引擎。

    findJAR.com - JAR 文件搜索

    github - 代碼庫,既支持公共代碼,又支持私人代碼,私人代碼通過 SSH 以及 SSL 訪問。



    merobase - 搜索組件。

    Codebase - 代碼庫,技術(shù)支持與安裝部署跟蹤程序。

    CONFiles - 配置文件的在線存儲與分享

    CodeSnippets - 公共代碼庫,也支持私人代碼

    GWT-Ext - 免費的,可下載的飾件庫


    開發(fā)環(huán)境,平臺與框架


    SocialGO - 社會化網(wǎng)絡(luò)托管平臺,包括消息,視頻聊天,會員資料,照片分享,博客等
    Pringo - 社會化網(wǎng)絡(luò)平臺,功能包括視頻,MP3 支持,圖片庫,圈子,podcasting 等。
    slinkset - 一個用于創(chuàng)建社會化新聞?wù)军c的在線平臺
    iWidgets - 社會化 Syndication 平臺,允許你將你的內(nèi)容聚合到社會化網(wǎng)絡(luò)
    WackWall - 一個 Hosted 的社會化網(wǎng)絡(luò)平臺




    WhiteLabelDating.com - 一個創(chuàng)建約會,社會網(wǎng)絡(luò),社區(qū)站點的平臺,允許以自己公司的名義創(chuàng)建。
    ONEsite - 社會網(wǎng)絡(luò)平臺,包括博客,照片與視頻庫,評分與標簽,消息板,私人消息等
    jinity - 免費的社會網(wǎng)絡(luò)平臺,包括消息板,聊天,圈子,日志,投票,新聞等
    Magnify.net - 網(wǎng)站視頻工具,包括全套媒體工具
    ShoutEm - 微博客與社會網(wǎng)絡(luò)平臺



    Soceeo - 社會網(wǎng)絡(luò)平臺,包含文件分享,新聞,投票等
    Swift - 移動站點創(chuàng)建工具,包括多種設(shè)計選項,支持 RSS Feed,多媒體等
    SnappVille - 社會網(wǎng)絡(luò)平臺,包括組,博客工具,即時消息等
    Ning - 社會網(wǎng)絡(luò)平臺,允許使用自己的品牌,包括會員資料,事件列表,甚至 Facebook 集成。
    mixxt - 社會網(wǎng)絡(luò)平臺,包括事件,論壇等
    zembly - 一個用來創(chuàng)建社會應用的的平臺,目前處于 Beta 版。Yuku - 一個社區(qū)平臺,可定制,擁有很強大的系統(tǒng)管理工具SocialEngine - 基于 PHP 的社會網(wǎng)絡(luò)平臺,功能包括 multi-part profiles,子網(wǎng),搜索友好 URL,博客,圈子等。Cappuccino - 一個用來創(chuàng)建桌面品質(zhì) Web 程序的開源框架Jaws - 一個用戶友好 CMS 平臺。   綜合開發(fā)工具


    Tabifier - 對你的代碼進行自動縮進。
    Sms2do - 一個用來評測和演示 SMS 程序的免費工具。
    Pretty Printer - 源代碼格式化工具,支持 PHP, JavaScript, CSS 等
    Jitterbit - 一個開源集成方案,提高可擴充性與性能
    Bitizer - 二進制,十進制,16進制,Base 36 以及 ASCII 轉(zhuǎn)換工具



    thmbnl - 顯示你站點中那些鏈接網(wǎng)頁的縮略圖
    ID Selector - 一個 OpenID 工具
    consoleFISH - 免費的,基于 Web 的 SSH 服務(wù)器訪問
    form site - 用來創(chuàng)建自定義表單
    99Polls - 用來創(chuàng)建投票與調(diào)查



    Warehouse - 一個非常漂亮的代碼庫瀏覽服務(wù),支持多代碼庫以及非常完善的權(quán)限控制
    rendur 2.1 - 一個沙箱程,讓你一邊寫代碼,一邊生成頁面
    Languify - 翻譯管理系統(tǒng)
    ROR Sitemap Generator - 顧名思義,這是一個 ROR 網(wǎng)站地圖生成工具
    MicroMaps - 用來生成交互式地圖,放在你的網(wǎng)站



    Newsfeed Maker - 為你的網(wǎng)站或博客創(chuàng)建 News Feed
    WriteMaps - 網(wǎng)站地圖在線生成工具
    Project Kenai - 免費的開源項目或代碼托管站點
    Launch Splash - 為你還沒有開通的網(wǎng)站免費生成一個歡迎頁面
    Browser Shell - 基于瀏覽器的 SSH 工具
    foigo - 創(chuàng)建自定義表單,調(diào)查,以及數(shù)據(jù)庫AggData - Premade lists for your development projects.SnapCasa - 網(wǎng)站縮略圖工具Versionshelf - 代碼庫安全管理   Mashups 與 APIs


    The Echo Nest - 音樂相關(guān)的開發(fā)服務(wù) API,包括歌手資料,音樂推薦等功能
    Zeep Mobile - 為你的站點添加基于文本的消息系統(tǒng)
    Clickatell - 一個短消息網(wǎng)關(guān),讓你的網(wǎng)站通過多中連接方式發(fā)短消息
    Nonoba - 在線游戲開發(fā) API,支持多玩家。
    Zong - 移動支付平臺,包含開發(fā) API



    Web Shots Pro - 一個 API,開發(fā)者可用來在他們的程序中添加網(wǎng)站縮略圖。
    Pushpin - 一個簡單易用的在線地圖 API,支持大量標記以及眾多其它功能
    Datamash - Create widgets and mashups for your site with information anywhere on the Web.借助網(wǎng)絡(luò)上的眾多信息為你的站點創(chuàng)建 widgets 與 mashups
    Spicy Pipes - Mashup builder.

    posted @ 2008-11-06 19:50 bt下載 閱讀(258) | 評論 (0)編輯 收藏

    2008年11月5日 #

    原文作者:miguelcarrasco
    原文鏈接:Who Wants To Beat-Google?
    翻譯:小豬哥

    誰不想打敗Google呢?很宏偉的目標,但怎樣做到呢?每個人對此都有自己的魔幻方法。微軟一度要以440億美元收購Yahoo!,還在R&D投資 bt幾十億,縱然財力如此雄厚,他能做到么?有人認為需要更多的網(wǎng)頁檢索,有人認為應當有更好的界面,這個問題的答案仁者見仁,智者見智。

        而且現(xiàn)在來做這件事情(打敗Google)再合適不過。隨著經(jīng)濟危機的來臨,大批大批的web 2.0 公司即將破產(chǎn),那些僅僅依賴互聯(lián)網(wǎng)生存的公司也即將倒閉。即便強如Google也在去年受到了沖擊,其股價去年700美元每股,而今跌到286(作者發(fā)稿時)。現(xiàn)在看來,互聯(lián)網(wǎng)免費的午餐已經(jīng)消失。

        然而微軟卻一直保持著強勁的勢頭,因為他非常多元化而且在一個領(lǐng)域做得實在太優(yōu)秀了——軟件!他有著難以想象的money,手中有難以置信的全球智慧人群(接近100,000雇員),同時他還擁有最富有夢想的一些領(lǐng)導者在運籌帷幄。如果有誰能夠做出更好的搜索引擎,那毫無疑問就是微軟。而Google會退縮么,當然也不會。

    社交圖(Social Graph)


    Facebook經(jīng)常談?wù)?/font>的Social Graph著實強大,因此Facebook得以很了解你。他知道你的朋友是誰、你住在哪里、你在哪兒工作……他有圖片、video以及你感興趣的東西。他甚至知道你在哪個社交圈、你想?yún)⒓邮裁椿顒印R蚨梢哉fFacebook比你的朋友都了解你。

    搜索怎么了(What’s Wrong With Search Today?)

        當我試著用“GAC”一類的來搜索的時候,返回的結(jié)果令我感到荒唐——加拿大抵制協(xié)會(Geological Association of Canada)。我是一個軟件開發(fā)者,F(xiàn)acebook、Twitter和LinkedIn 都知道這一點,但是Google對此一無所知。所以返回的有效搜索寥寥無幾。我媽媽搜索一個關(guān)鍵詞跟我搜索一個關(guān)鍵詞得到的返回完全相同。但是我媽媽喜愛 的是手工藝,我喜歡的是軟件開發(fā),我們應該得到不同的結(jié)果才對。

        為什么沒有人利用社交圖的數(shù)據(jù)呢?單純拷貝Google搜索模式、換個Logo是行不通的,人們更換搜索需要理由。在搜索中添加內(nèi)容才是出路。

        比爾蓋茨在過去的幾年里一而再再而三地提到:搜索的道路還很長。幾個月前我聽到的解決方案——新的界面、一直鼠標滾動的搜索結(jié)果(never ending scrolling),這些顯然不是比爾蓋茨想說的。Scrolling endlessly所以你就不用選頁了?這顯然不是解決方式。

        微軟真正應當做到的是:當用Google和Live Search搜索的時候,Live Search返回的結(jié)果更好。而且不是好一點,要好很多才行。

    微軟能做什么(So What Can Microsoft Do?)

        毫無疑問,微軟有業(yè)內(nèi)最優(yōu)秀的開發(fā)者、架構(gòu)師和工程師,同樣也有大筆大筆的錢可以投到搜索中(這一點從他購買Yahoo! 就能夠看出來)。然而微軟要想贏得搜索戰(zhàn)所缺少的東西也很明了:他們需要創(chuàng)意和行動路線,也即“作戰(zhàn)計劃”。Windows, Internet Explorer和Office,微軟當年都不是第一個,但他做出了比其他操作系統(tǒng)更好的操作系統(tǒng),比其他office套件更好的office套件,比其 他瀏覽器更好的IE,而且他還讓所有這些應用能夠無縫地運行在一起。所以如果微軟擁有戰(zhàn)略,并且能夠正確實施,Live Search將會迅速得到難以想象的市場占有率。

    Live Search 與Facebook關(guān)聯(lián)(Live Search and Facebook Connect)

        微軟應當充分利用Facebook connect,并將之與Live Search關(guān)聯(lián)。使用Facebook connect,F(xiàn)acebook用戶能夠在Microsoft Live Search中關(guān)聯(lián)到他們資料數(shù)據(jù)和認證證書。通過關(guān)聯(lián)搜索、結(jié)合用戶的資料數(shù)據(jù),這個搜索就是“終極搜索引擎”。

    Microformats將是搜索的未來(Microformats are the future of Search)


        Microformats比其他任何瀏覽器都好,以hCalander, hCard和 hReview開始。如果你還從未聽過Microformats,趕緊查查,你就會知道他為什么這么重要。到目前為止,網(wǎng)絡(luò)上大部分的數(shù)據(jù)都是完全無序的。舉個例子你輸入“Contact Miguel Carrasco”搜索,你會搜到我的博客但僅此而已。但你想要找到的是我的聯(lián)系卡片。下面是我使用hCalander Microformat來為Winnipeg.net User Group創(chuàng)建一個事件的實例。

       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的搜索引擎可以在搜索結(jié)果中得到正確的信息,并且鏈接到網(wǎng)址來為事件注冊

    完美的搜索界面(The Complete Search Interface)

        大家也許都忘記了,Google剛誕生出來的那會,沒有blogs,Video也不大,F(xiàn)acebook和其他社交網(wǎng)絡(luò)還在娘胎呢。然而搜索的未來在于內(nèi)容。人們每月花費成百上千個鐘頭在社交網(wǎng)絡(luò)、新網(wǎng)址和博客。他們持續(xù)地向這些玩意中提供了大量他們的信息:喜歡什么?朋友是誰?下周做什么?現(xiàn)在什么心情?未來三周可能去哪玩……

        我個人就至少在網(wǎng)絡(luò)上使用至少20種不同的社交服務(wù),所以說搜索引擎不能只返給我簡單的數(shù)據(jù),而應當利用這些數(shù)據(jù)返給我我想要的內(nèi)容。比如,我已經(jīng)在網(wǎng)上吵了好幾天說我下周要去邁阿密。

        在Facebook,我創(chuàng)建了幾個我將要在邁阿密參加的活動;在Digg,我dugg了幾個水中呼吸器的信息;在Last.fm,我創(chuàng)建了幾個標題為“Miami Plane Ride”的音樂列表。在Facebook我從朋友那兒收到了幾個回帖稱我不應當錯過邁阿密的幾個酒吧和跳舞俱樂部。其他朋友推薦了那兒的幾處海灘,還給了照片。

        如果我去Google搜索跳舞俱樂部,最頂上的三個搜索結(jié)果跟我要找的一點關(guān)系都沒有。如圖:



    圖片11
        正如我說的,沒有一個搜索結(jié)果對我有用,是不是我的搜索條件太為難Google了?于是我又輸入了“Miami”,讓我們再看看結(jié)果:


    圖片22

        現(xiàn)在起碼我得到了一些結(jié)果能讓我看到邁阿密的跳舞俱樂部,但是哪個是朋友推薦我的呢?為什么我要的結(jié)果不能直接出現(xiàn)在我的面前?為什么沒有圖片,或者最好再有video?消費者的評論在哪兒呢?

        使用Live Complete Search,,輸入“跳舞俱樂部”,迅速在我的搜索結(jié)果中出現(xiàn)了內(nèi)容,并且將結(jié)果局限到了邁阿密。并不是因為我想去邁阿密,搜索才得到這樣的結(jié)果,而是因為我twitter了我的朋友問他們邁阿密最好的跳舞俱樂部在哪兒,因此,搜索找出了我想要的結(jié)果。



    圖片33

        第一條結(jié)果是Nikki Beach,正是我朋友告訴我的那個。搜索中還有一張圖片,他們留給我的評論也能在搜索頁面中看到,還有電話號碼也以microformats的形式出現(xiàn) 在網(wǎng)頁中,我還能夠在這兒使用Twitter, Digg或者 Facebook得到更詳細的信息。而且,Live Complete Search知道我在Last.FM創(chuàng)建了一個Miami播放列表,所以還在搜索中加入了一個鏈接。

        當然這只是個例子,但我想從中你已經(jīng)能夠看到了精髓。

    Building Live Social Profile
        Google已經(jīng)證明你并不需要擁有所有的數(shù)據(jù),因為有人會提供而Google只是幫你找到它們,令人感到發(fā)笑的是許多企業(yè)紛紛克隆Google的方法。 微軟有互聯(lián)網(wǎng)上第一位的IM——MSN Messenger,每個用戶都有一個Live 賬號,有些人還有Live Spaces的賬號。我不知道你怎樣,但在我看來使用Live Spaces的并不多。我點擊了一下我MSN的好友,發(fā)現(xiàn)很多人從未用過Live Spaces,即使有使用的人,可能使用的幾率也不及Facebook之類的百分之一。

        我的建議是微軟應當設(shè)法將Live Spaces變成人氣旺盛的(“Live”) Spaces,從而用戶可以通過互聯(lián)網(wǎng)將他們的社交狀況傳上去,這將創(chuàng)建一個終極社交檔案(social profile)和終極個人網(wǎng)頁(social “my page”)。


    圖片44
    建議界面(The Proposed Interface)

        建議的Live Search的界面非常簡單。它默認提供完整的搜索容量,包含互聯(lián)網(wǎng)上的一切并將搜索結(jié)果放在合適的位置。比如,使用完全搜索,你會得到一些網(wǎng)頁、 blog、帖子和一些視頻,也可能有寫Digg文章。如果只想搜索自己的社交圖呢?沒問題,只需要點擊“Social”,搜索結(jié)果馬上只呈現(xiàn)出與你有關(guān)的 結(jié)果。

        而且,Live Search的界面中能夠插入許多過濾器,比如“搜索”和“兒童”。學校可以管理網(wǎng)絡(luò)從而只允許“搜索”模式,父母可以管好自己的孩子只允許“兒童”模 式。通過Live Spaces和 Live Profile連接這些系統(tǒng),微軟將創(chuàng)建出比Google PageRank強大許多的搜索,用戶的天平也開始擺向了這邊。



    圖片55
    搜索的最終思想(Final Thoughts on Search)

        希望你能夠意識到,社交內(nèi)容、microformats、和一個能夠提供整個網(wǎng)絡(luò)的完美界面將是搜索的下一次飛躍。擁有更加接近社交圖的搜索結(jié)果比PageRank或者PageRank的克隆更容易統(tǒng)計互聯(lián)網(wǎng)

    posted @ 2008-11-05 21:57 bt下載 閱讀(218) | 評論 (0)編輯 收藏

    2008年11月3日 #

    毋庸置疑,對于所有研究互聯(lián)網(wǎng)新媒體公司的同仁們而言,blogbus是一個絕佳的案例,他不是BT bsp。

    1,在門戶BSP大舉進攻下,專業(yè)BSP日漸沒落。blogbus偏安于上海,能發(fā)展的有聲有色,不易。剛看到Jenny發(fā)的blogbus六周年的活動。可以說,blogbus的發(fā)展路線值得所有web2.0公司學習。

     編者注:如在百度中搜索 甜性澀愛色即是空 愛的色放出現(xiàn)的問題說知道了。

    2,blogbus能走到現(xiàn)在,跟公司團隊的黃金組合關(guān)系很大。資深的互聯(lián)網(wǎng)人士:橫戈;資深媒體研究專家:魏武揮;資深廣告營銷界人士:jenny。我想,國內(nèi)所有希望通過互聯(lián)網(wǎng)賺錢的web2.0公司都應該參考下這種團隊。不管是思路、見地。還有資源,客戶的說教。

    3,blogbus走出的商業(yè)模式,將是未來很長一段時間,不少國內(nèi)2.0公司必須的一步。原因很簡單,中國互聯(lián)網(wǎng)廣告規(guī)模雖然上漲很快,但依然停留在初級階段,缺乏專業(yè)細分的廣告網(wǎng)絡(luò)(代理)公司推動。加上客戶認知度較低,web2.0公司必須肩負推動廣告挖掘的重任。

    4,所以,細分的廣告網(wǎng)絡(luò)(代理)公司在國內(nèi)會越來越有前景,其中一部分會來源于公關(guān)公司的升級,另一部分會來自于當下大量掌握廣告客戶投放資源的4A公司;再有一個就是新媒體或者是社會化媒體公司自身,在這點上blogbus和feedsky都是個例子。David Wolf說,“中國的問題在于我們點子的太簡單”,其實更準確點說是缺專營的廣告營銷公司。

    5,所以,有人會問:blogbus是廣告公司,還是互聯(lián)網(wǎng)公司?其實,blogbus作為一個新媒體或者是社會化媒體平臺,已經(jīng)聚集了百萬級的人群,背靠這些人群挖掘出了不小的商業(yè)價值,這已經(jīng)說明了一切。很多更大用戶量級的公司,尚不及此。你說google是互聯(lián)網(wǎng)公司,還是廣告公司?除了不斷膨脹的互聯(lián)網(wǎng)業(yè)務(wù),google也正在成為更大的廣告代理或分銷商。所以,我說過,新媒體要變成廣告公司

    6,blogbus最近推出的幾個業(yè)務(wù),非常值得把玩。一個是基于blog平臺推出的SNS功能,我非常認同魏武揮的說法,因為用戶和營銷需求去增加blog平臺的互動功能,顯然SNS是增加互動關(guān)聯(lián)的成熟方式。但絕不是把blog變成一個SNS平臺。

    7,另一個更有意思的則是《城客》,簡單說,城客是一個依托于blogbus平臺的雜志;它其實是blogbus線上資源的一個延伸(內(nèi)容低成本+現(xiàn)有用戶群),這也是我看好它的一個因素;趕巧的是,同期還有一個純粹靠整合網(wǎng)上內(nèi)容的印刷雜志《博客天下》。形式相同,思路卻是迥異。

    8,我記得,blogbus下面還有一個做口碑營銷的“吆喝城”。

    9,blogbus會成為一種現(xiàn)象,尤其是在冬天。

    posted @ 2008-11-03 11:34 bt下載| 編輯 收藏

    2008年10月30日 #

    TreeMap是紅黑樹算法的實現(xiàn),實現(xiàn)了SortedMap接口,要注意的是它不在使用哈希表,存儲方式是一個特殊的二叉樹,有關(guān)紅黑樹:
    http://baike.baidu.com/view/133754.htm  http://www.bt285.cn

    這篇文章介紹的不錯,我之前沒有聽說過二叉樹,我就是看這篇文章加上看一下TreeMap的源代碼才搞懂紅黑樹算法的.

     

    這里不打算研究TreeMap的源代碼了,因為完全是一個算法的實現(xiàn),如果對這個算法不了解,肯定看不懂,我也有很多地方不是沒有完全看明白,這里就談?wù)凾reeMap的使用吧.

     

     

    TreeMap的聲明:public class TreeMap extends AbstractMap implements SortedMap,Cloneable, java.io.Serializable
    所以我們要知道SortedMap接口:
    SortedMap表示的是一個排序的Map
    public interface SortedMap extends Map
    增加了幾個方法的定義
    SortedMap headMap(Object toKey)
    SortedMap tailMap(Object fromKey)
    SortedMap subMap(Object fromKey, Object toKey)
    Object firstKey()
    Object lastKey()

     

     

    既然TreeMap是有序的,自然要求元素是可以比較大小的,如果構(gòu)造函數(shù)指定Comparator的話,就使用這個Comparator比較大小,如果沒有指定Comparator的話,就使用自然排序(元素要實現(xiàn)Comparable接口).如果這兩個都不可用,就等著出錯吧.

    現(xiàn)看一下該接口的定義:
    public interface Comparable{
       public int compareTo(Object o);
    }
    該接口定義類的自然順序,實現(xiàn)該接口的類就可以按這種方式排序.
    一般要求:
    e1.equals((Object)e2)和e1.compareTo((Object)e2)==0具有相同的值,
    這樣的話我們就稱自然順序就和equals一致.
    這個接口有什么用呢?
    如果數(shù)據(jù)或者List中的元素實現(xiàn)了該接口的話,我們就可以調(diào)用Collections.sort或者Arrays方法給他們排序.

    如果自然順序和equals不一致的話,如果出現(xiàn)在Sorted Map和Set里面,
    就會出現(xiàn)預想不到的邏輯錯誤,可能你調(diào)用add的時候添加不了,而集合里面確沒有這個元素.具體的討論要接口哈希表的應用.

     

     

     

    public interface Comparator {
      int compare(Object o1, Object o2);
      boolean equals(Object obj);
    }

    定義了兩個方法,其實我們一般都只需要實現(xiàn)compare方法就行了,因為類都是默認從Object繼承
    所以會使用Object的equals方法.
    Comparator一般都作為一個匿名類出現(xiàn),對于沒有實現(xiàn)Comparable的對象的集合,排序的時候
    需要指定一個Comparator.

    這里舉例說明
    對于實現(xiàn)了Comparable的類我們就用最簡單的Integer
    List list=new ArrayList();
    list.add(new Integer(3));
    list.add(new Integer(53));
    list.add(new Integer(34));
    Collections.sort(list);

    對于沒有實現(xiàn)Comparable的,我們就用Object,按照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());
    })

    因為是二叉樹,所以一般查找時間復雜度為 o(lg(n)),這個效率當然沒有HashMap的效率高.不過TreeMap比HashMap功能強大,如果不需要排序的話當然不會用TreeMap,如果需要排序的話,HashMap無法勝任,當然要用TreeMap了,它可以求子Map.所以這個是適用場合問題,無法比較他們.
     
    另外,我們也習慣了,有Map就會跟一個Set,我們都可以猜到TreeSet和通過TreeMap實現(xiàn)的一個SortedSet的實現(xiàn).不過我覺的TreeSet好像比TreeMap用的場合多一些,求子集是很常用的呀!!

    posted @ 2008-10-30 20:59 bt下載 閱讀(3290) | 評論 (1)編輯 收藏

    2008年10月27日 #

    以前我一直以為File#renameTo(File)方法與OS下面的 move/mv 命令是相同的,可以達到改名、移動文件的目的。不過后來經(jīng)常發(fā)現(xiàn)問題,真的很bt,File#renameTo(File)方法會返回失敗(false),文件沒有移動,又查不出原因,再后來干脆棄用該方法,自己實現(xiàn)一個copy方法,問題倒是再也沒有出現(xiàn)過。

    昨天老板同學又遇到這個問題,F(xiàn)ile#renameTo(File)方法在windows下面工作的好好的,在linux下偶爾又失靈了。回到家我掃了一遍JDK中File#renameTo(File)方法的源代碼,發(fā)現(xiàn)它調(diào)用的是一個本地的方法(native method),無法再跟蹤下去。網(wǎng)上有人說該方法在window下是正常的,在linux下面是不正常的。這個很難說通,SUN不可能搞出這種平臺不一致的代碼出來啊。

    后面在SUN的官方論壇上看到有人提到這個問題“works on windows, don't work on linux”,后面有人回復說是“file systems”不一樣。究竟怎么不一樣呢?還是沒有想出來...

    后面在一個論壇里面發(fā)現(xiàn)了某人關(guān)于這個問題的闡述:
    In the Unix'esque O/S's you cannot renameTo() across file systems. This behavior is different than the Unix "mv" command. When crossing file systems mv does a copy and delete which is what you'll have to do if this is the case.

    The same thing would happen on Windows if you tried to renameTo a different drive, i.e. C: -> D:
    終于明白咯。

    做個實驗:

  • File sourceFile = new File("c:/test.txt");   
  • File targetFile1 = new File("e:/test.txt");   
  • File targetFile2 = new File("d:/test.txt");   
  • System.out.println("source file is exist? " + sourceFile.exists()   
  •     + ", source file => " + sourceFile);   
  • System.out.println(targetFile1 + " is exist? " + targetFile1.exists());   
  • System.out.println("rename to " + targetFile1 + " => "  
  •     + sourceFile.renameTo(targetFile1));   
  • System.out.println("source file is exist? " + sourceFile.exists()   
  •     + ", source file => " + sourceFile);   
  • System.out.println(targetFile2 + " is exist? " + targetFile2.exists());   
  • System.out.println("rename to " + targetFile2 + " => "  
  •     + sourceFile.renameTo(targetFile2));  



  • 注意看結(jié)果,從C盤到E盤失敗了,從C盤到D盤成功了。因為我的電腦C、D兩個盤是NTFS格式的,而E盤是FAT32格式的。所以從C到E就是上面文章所說的"file systems"不一樣。從C到D由于同是NTFS分區(qū),所以不存在這個問題,當然就成功了。

    果然是不能把File#renameTo(File)當作move方法使用。

    可以考慮使用apache組織的commons-io包里面的FileUtils#copyFile(File,File)和FileUtils#copyFileToDirectory(File,File)方法實現(xiàn)copy的效果。至于刪除嘛,我想如果要求不是那么精確,可以調(diào)用File#deleteOnExit()方法,在虛擬機終止的時候,刪除掉這個目錄或文件。

    BTW:File是文件和目錄路徑名的抽象表示形式,所以有可能是目錄,千萬小心。
    下面我寫的一個實現(xiàn)方法

    /**
      * 使用FileChannel拷貝文件
      *
      * @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();
       }
      }
     }

    posted @ 2008-10-27 10:15 bt下載 閱讀(1677) | 評論 (2)編輯 收藏

    2008年10月14日 #

    CSDN首頁推薦了一篇文章,說兩位退休的美國大學教授上書反對將Java作為編程教學語言,對此我表示高度認同。對于Java,我并不反感,而且相信它在工業(yè)應用中的地位不可取代,但是,我一直反對將Java作為主要的編程教學語言,因為教學語言承擔著與生產(chǎn)語言不同的任務(wù),它必須能夠幫助學生奠定堅實的技術(shù)基礎(chǔ),塑造核心技術(shù)能力。在這方面,Java不能夠勝任。

    1990年代中期以前,美國的計算機編程入門教育以Pascal為主。我的一位美國程序員朋友至今還懷念他與Pascal為伴的高中年代。到了1990年代中后期,由于ANSI C語言“糾正”了早期C語言的一些不適合編程教學的問題,因此成為很多美國高中和大學編程入門課的教學語言。1998年,美國指導編程教學的一個協(xié)會推薦將C++作為入門教學語言,在當時引起很大的反響,認為是編程教育方面的一個重要進步。但遺憾的是,C++非常復雜,而當時C++語言的教育體系又非常不成熟,因此很多地方的教學方法不得當,把學生迅速拖入無邊無際的語言細節(jié)當中,引起了學生痛苦的抱怨。大約經(jīng)過兩三年不成功的實踐之后,在本世紀初,美國計算機教育界普遍接受Java作為編程入門語言。此后在很短的時間里,Java迅速成為美國高中和大學里的首選編程教學語言,老師教得輕松,學生學得甜蜜,所以這個局面一直持續(xù)到現(xiàn)在。

    而在中國,BASIC語言及其變體一直到1990年代中期都還是“算法語言”課程的主要教學內(nèi)容,充分折射出當時中國計算機教學與工業(yè)應用之間的脫節(jié)。只是到了1990年代后期,C語言才確立了在中國工科計算機編程入門教育中的主流地位。到現(xiàn)在為止,大部分工科學生都“必修”“C程序設(shè)計語言”這門課程。不過事實上,根據(jù)我的了解,這門課程的總體教學質(zhì)量相當糟糕,大部分學生可以說是滿懷希望而來,兩手空空而去。在這種情況下,中國高校計算機編程入門教育已經(jīng)開始悄悄向Java過渡了。據(jù)我所知,有一些名校已經(jīng)開始將Java設(shè)為編程入門課程,并且認為這是與國際接軌進步標志。

    在我的朋友圈子里,大多數(shù)真正的一線開發(fā)者和技術(shù)領(lǐng)導者,對于將Java作為入門教學語言的“發(fā)展方向”都持質(zhì)疑態(tài)度。他們中很多人目前主要的工作都集中在Java上,因此這種態(tài)度并非來自所謂語言宗教情緒,而是來自他們招聘和實際工作中的感受。他們發(fā)現(xiàn),只學習Java、C#、VB等“現(xiàn)代”編程語言的學生,精于拿來主義,長于整合和快速開發(fā),思維活躍,生產(chǎn)效率高,讓他們來做直截了當?shù)摹⒂姓驴裳摹⒎茄芯啃院头莿?chuàng)新性的工作比較合適,但是基礎(chǔ)不扎實,對計算機系統(tǒng)的理解薄弱,處理細節(jié)和矛盾的能力不足,一旦他們熟悉的套路用不上,則缺少自主分析問題、解決問題的知識、能力和經(jīng)驗。

    今天看到兩位教授的“上書”,才知道原來他們也有同感。只不過這兩位教授說的更直白,直接反對將Java作為入門編程語言,而是冒天下之大不韙,公然號召開歷史倒車,要求退回到C、C++、Lisp和Ada去。

    我是支持兩位教授的。我認為,Java、C#、VB和其它虛擬機之上的語言都不適合作為專業(yè)程序員的入門教學語言。在中國還非常缺乏具有創(chuàng)新和獨立解決問題的高水平程序員的局面下,我們應該認真做好的事情是努力提高C/C++的教學質(zhì)量,而不是圖快活轉(zhuǎn)向Java。

    教學語言的選擇是至關(guān)重要的事情。作為大多數(shù)學生第一種需要認真學習理解的編程語言,教學語言將會成為他們中間很多人的“編程母語”,深深地烙印在學生的思維方式中。這個編程母語要幫助學生破除計算機和軟件的神秘感,建立對于程序的基本認識和對計算機模型的最初理解。在后續(xù)專業(yè)基礎(chǔ)課和專業(yè)課程的學習中,這門編程語言應該作為主要工具貫穿始終,幫助學生認識計算機系統(tǒng),掌握算法與數(shù)據(jù)結(jié)構(gòu)技能,熟悉操作系統(tǒng)概念,理解編譯原理知識,理解軟件抽象及軟件設(shè)計的基本思想,完成一定量的課程及課外項目實踐,建立正確的軟件開發(fā)實踐習慣。不但如此,這種教學語言必須是工業(yè)界的主流語言,否則學生學非所用,學習動力無法保證。

    按照這個標準來衡量,Java適合于作為主要的編程教學語言嗎?我不這么認為。首先,我承認Java在教學上有一些優(yōu)勢,比如其開發(fā)環(huán)境和工具支持非常成熟,有助于培養(yǎng)學生正確的編程習慣;Java是當今第一工業(yè)主流語言,標準類庫非常全面,可以迅速地開發(fā)具有實際用途的程序,有助于激發(fā)和保持學生的興趣;而在數(shù)據(jù)結(jié)構(gòu)、算法、編譯原理的教學方面,Java也毫不落于下風,在軟件抽象設(shè)計(面向?qū)ο螅┓矫妫琂ava還有著明顯的優(yōu)勢;特別是在并行編程的教學方面,Java 1.5 concurrency包提供的優(yōu)勢是壓倒性的。盡管有如上這些優(yōu)勢,但Java作為教學語言存在著一個致命的缺陷,即它是一個虛擬機語言,這一點就足以把它從教學語言的名單上去掉。作為一個虛擬機語言,Java對開發(fā)者隔絕了下層的真實系統(tǒng),從而構(gòu)造了一個近乎完美的環(huán)境,在這個環(huán)境里,世界上只有一種機器,一個操作系統(tǒng),內(nèi)存是無限的,所有的機器都具有相同的字節(jié)順序和一致的類型約定,為了設(shè)計的優(yōu)美而犧牲速度永遠是正義行為,從反射到運行時自動加載,從完備的容器類到統(tǒng)一字符編碼,一大堆漂亮的功能都可以不費吹灰之力唾手而得。要是這個世界上每臺計算機都是一個Java機器,每項編程任務(wù)都可以在這樣一個近乎完美的環(huán)境中開發(fā),那毫無以為,Java是最合適的編程教學語言。但是事實上呢?這樣一個完美的環(huán)境是Java力量的源泉,但這卻不是真實的世界。在真實世界里,我們可能面對非常原始的環(huán)境,苛刻的運行時限制,復雜多變的系統(tǒng)環(huán)境,令人窒息的細節(jié)魔鬼,要對付這些東西,需要開發(fā)者具有在應對復雜性,自己構(gòu)造環(huán)境,在諸多限制條件下尋找解決方案的能力。而這種能力,被無數(shù)人無數(shù)次地證明是軟件開發(fā)、特別是軟件創(chuàng)新的核心能力。把Java作為教學語言,恰恰會導致這種核心能力的缺失。除此之外,如果耐心觀察的話,不難發(fā)現(xiàn),幾乎在任何軟件領(lǐng)域里的創(chuàng)新性成果都首先是由C/C++語言實現(xiàn)的,原因很簡單,Java是站在C/C++基礎(chǔ)之上的,只有C/C++先把大路趟開,Java才能夠順勢而上。

    相反,盡管C/C++語言作為教學語言有很多的不足,比如不同環(huán)境下開發(fā)模式差異大,細節(jié)繁多,開發(fā)效率低,容易犯錯,測試和調(diào)試困難,學習者難以保持動力,等等,但是這些問題都可以解決。而C/C++的關(guān)鍵優(yōu)點,是能夠讓學習者在真實的計算機抽象上、在大量的細節(jié)和矛盾中學會思考,學會解決問題,學會了解真實的系統(tǒng),知輕重,明生死,從而建立核心能力。掌握了C/C++ bt語言,再去學習和理解Java、C#、Python、Ruby和其它語言,就比較容易達到更高的境界。反之,如果習慣了舒舒服服躺在完美世界里當闊少,那就很難有勇氣面對真實的世界。當然,很多開發(fā)者認為,現(xiàn)在更重要的能力是理解業(yè)務(wù)、整合現(xiàn)有資源的能力,而不是處理底層細節(jié)的技術(shù)。這種說法放在個人身上沒有問題,但是不能成為整個編程教育的指導思想。我們需要各個層面上的人才,精通業(yè)務(wù)和設(shè)計的架構(gòu)師固然很重要,但能夠在底層作出創(chuàng)新成果的編程高手實際上更為稀缺和珍貴,很多時候也能夠創(chuàng)造更大的價值。而且,更重要的是,一個精通系統(tǒng)知識的開發(fā)者在往上走的時候不會遇到大的障礙,而一個只知道拼裝組合的“高級設(shè)計師”,往往連往下看的勇氣都沒有。

    Java的另外一個問題,是其所倡導的繁瑣設(shè)計風格,一個對象套一個對象,一個對象疊一個對象,概念之間彼此橫七豎八地互相依賴,人為制造出一大堆貌似精美、實則累贅的所謂設(shè)計。這個問題我已經(jīng)批評過多次,并且相信這股歪風一定會最終被人們拋棄,Java最終會歸于質(zhì)樸。但是在這一天到來之前,Java對于初學者來說,很可能蒙住他們的雙眼,使他們看不到軟件設(shè)計中最可貴的簡單性和優(yōu)美的統(tǒng)一,體會不到數(shù)據(jù)和程序的統(tǒng)一。在這一點上,C表現(xiàn)的非常好,而C++如果教學得體,可以做的更好。

    當然,這并不是為現(xiàn)在的C/C++教學辯護。恰恰相反,從我了解的情況來看,目前普通高校的C/C++教學質(zhì)量非常令人擔憂。學生學不會,而且越學越?jīng)]有興趣,老師則感到教起來很棘手,迫于現(xiàn)實情況往往選擇敷衍了事。反而是教Java,無論如何學生還能學到一點東西,對就業(yè)也有直接的幫助。至于學生的核心能力確實,發(fā)展后勁不足等問題,就讓他們在現(xiàn)實工作中自己解決吧。坦率地說,這種想法也很有道理。不過,從教學角度來說,我認為老師們還是應該積極考慮如何提高C/C++的教學質(zhì)量。畢竟學生階段是十分寶貴的,基礎(chǔ)不在這個時期夯實,將來想彌補,就算不是完全不可能,也將付出十倍的代價。本著對學生職業(yè)生涯的負責態(tài)度,還是應該幫助學生達到這個階段應該達到的目標。在兩位教授的公開信里,也充分表達出這個意思。

    我贊成的編程教育過程,應當是以C/C++(基本上是C)為主線,貫穿起算法、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)原理、編譯和數(shù)據(jù)處理、軟件設(shè)計和組件技術(shù)等關(guān)鍵知識領(lǐng)域,讓學生能夠從根本上理解現(xiàn)代軟件系統(tǒng)的原理和構(gòu)造,并通過有效的練習建立正確的軟件設(shè)計觀念和良好的工程實踐習慣。在這個基礎(chǔ)上,無論將來是深入學習C++,還是進入Java的繁榮世界,或者擁抱Python、Ruby,甚至于走向Web開發(fā),都會心領(lǐng)神會,勢如破竹。

    posted @ 2008-10-14 19:38 bt下載| 編輯 收藏

    僅列出標題  下一頁
    主站蜘蛛池模板: 中文字幕亚洲综合精品一区| 亚洲免费视频一区二区三区| 九月丁香婷婷亚洲综合色| 好吊妞788免费视频播放| 成全在线观看免费观看大全| 国产99久久亚洲综合精品| 99久久亚洲综合精品成人网| 国产亚洲无线码一区二区| 国产三级免费观看| 毛片a级三毛片免费播放| 99在线在线视频免费视频观看| 有色视频在线观看免费高清在线直播| 亚洲人成综合网站7777香蕉| 亚洲精品456在线播放| 亚洲大尺度无码专区尤物| 亚洲午夜AV无码专区在线播放| 日本免费网站观看| 扒开双腿猛进入爽爽免费视频| 四虎免费影院ww4164h| 99视频在线免费看| 久久久免费的精品| 免费在线观影网站| 女同免费毛片在线播放| 两个人日本免费完整版在线观看1| 免费人妻精品一区二区三区| 免费在线观看一级片| 一个人免费观看www视频| 国产成人久久精品亚洲小说| 亚洲AV日韩AV永久无码色欲| 中文字幕在线观看亚洲日韩| 2020久久精品亚洲热综合一本| 亚洲av专区无码观看精品天堂| 亚洲ts人妖网站| 亚洲国产精品免费观看| 91在线亚洲综合在线| 亚洲精品国产av成拍色拍| 亚洲乱码国产乱码精华| 国产成人亚洲午夜电影| 一个人看的免费观看日本视频www| 成年大片免费视频播放一级| 国产免费A∨在线播放|