99精品视频在线观看,亚洲精品成人久久久998,国产999精品在线观看http://www.aygfsteel.com/ponzmd/<i>平凡而簡(jiǎn)單的人一個(gè),無(wú)權(quán)無(wú)勢(shì)也無(wú)牽無(wú)掛。一路廝殺,只進(jìn)不退,死而后已,豈不爽哉!<br/> 收起對(duì)“車(chē)”日行千里的羨慕;收起對(duì)“馬”左右逢緣的感嘆;目標(biāo)記在心里面,向前進(jìn)。一次一步,一步一腳印,跬步千里。<br/> 這個(gè)角色很適合現(xiàn)在的我。</i> zh-cnMon, 23 Jun 2025 00:35:30 GMTMon, 23 Jun 2025 00:35:30 GMT60[ZT]在eclipse中查看Android各版本源代碼http://www.aygfsteel.com/ponzmd/archive/2010/02/07/312269.html過(guò)河卒過(guò)河卒Sun, 07 Feb 2010 08:23:00 GMThttp://www.aygfsteel.com/ponzmd/archive/2010/02/07/312269.htmlhttp://www.aygfsteel.com/ponzmd/comments/312269.htmlhttp://www.aygfsteel.com/ponzmd/archive/2010/02/07/312269.html#Feedback0http://www.aygfsteel.com/ponzmd/comments/commentRss/312269.htmlhttp://www.aygfsteel.com/ponzmd/services/trackbacks/312269.html轉(zhuǎn)帖于:http://www.javaeye.com/topic/534010

如題,前面已經(jīng)有人整理過(guò)1.5版本的源代碼,但有些人回復(fù)說(shuō)想要1.6的。
今天剛好試了一下各版本源代碼,運(yùn)行良好。所以簡(jiǎn)單的整理了一下下載連接和安裝方法。希望能用得上。
1.android下載
▼android-1.5的下載地址有如下
http://rgruet.free.fr/public/android-1.5-cupcake-src.zip (21.6MB)
http://www.mediafire.com/file/awnzktte2wy/android-1.5-cupcake-src.zip
▼android-1.6的下載地址有如下
http://rgruet.free.fr/public/android-1.6_r1-donut-src.zip (23MB)
http://sandos.se/~sandos/android-1.6_r1-donut-src.zip
http://www.droidnova.com/android-sdk-1-6-donut-sources,511.html
▼android-2.0的下載地址有如下
http://rgruet.free.fr/public/android-2.0-eclair-src.zip (24.4MB)
2.android安裝
▼在各個(gè)版本的sdk下面創(chuàng)建新文件夾sources,如下
android_sdk_installation_folder\platforms\android-1.5\sources
android_sdk_installation_folder\platforms\android-1.6\sources
android_sdk_installation_folder\platforms\android-2.0\sources
▼把下載后的zip解壓縮到上面的sources下面,重新啟動(dòng)eclipse即可查看。
注:上面三個(gè)版本本人都測(cè)試過(guò),都運(yùn)行良好。
    如果上面的鏈接下載不了的話(huà),我可以把我下載好的打包上傳上來(lái)。你們先試一下吧。



過(guò)河卒 2010-02-07 16:23 發(fā)表評(píng)論
]]>
[ZT]Android線(xiàn)程模型(Painless Threading)http://www.aygfsteel.com/ponzmd/archive/2010/02/07/312260.html過(guò)河卒過(guò)河卒Sun, 07 Feb 2010 04:14:00 GMThttp://www.aygfsteel.com/ponzmd/archive/2010/02/07/312260.htmlhttp://www.aygfsteel.com/ponzmd/comments/312260.htmlhttp://www.aygfsteel.com/ponzmd/archive/2010/02/07/312260.html#Feedback0http://www.aygfsteel.com/ponzmd/comments/commentRss/312260.htmlhttp://www.aygfsteel.com/ponzmd/services/trackbacks/312260.html轉(zhuǎn)載于: http://kimilv.javaeye.com/blog/382683

當(dāng)?shù)谝淮螁?dòng)一個(gè)Android程序時(shí),Android會(huì)自動(dòng)創(chuàng)建一個(gè)稱(chēng)為“main”主線(xiàn)程的線(xiàn)程。這個(gè)主線(xiàn)程(也稱(chēng)為UI線(xiàn)程)很重要,因?yàn)樗?fù)責(zé)把事件分派到相應(yīng)的控件,其中就包括屏幕繪圖事件,它同樣是用戶(hù)與Andriod控件交互的線(xiàn)程。比如,當(dāng)你在屏幕上按下一個(gè)按鈕后,UI線(xiàn)程會(huì)把這個(gè)事件分發(fā)給剛按得那個(gè)按鈕,緊接著按鈕設(shè)置它自身為被按下?tīng)顟B(tài)并向事件隊(duì)列發(fā)送一個(gè)無(wú)效(invalidate)請(qǐng)求。UI線(xiàn)程會(huì)把這個(gè)請(qǐng)求移出事件隊(duì)列并通知按鈕在屏幕上重新繪制自身。

單線(xiàn)程模型會(huì)在沒(méi)有考慮到它的影響的情況下引起Android應(yīng)用程序性能低下,因?yàn)樗械娜蝿?wù)都在同一個(gè)線(xiàn)程中執(zhí)行,如果執(zhí)行一些耗時(shí)的操作,如訪(fǎng)問(wèn)網(wǎng)絡(luò)或查詢(xún)數(shù)據(jù)庫(kù),會(huì)阻塞整個(gè)用戶(hù)界面。當(dāng)在執(zhí)行一些耗時(shí)的操作的時(shí)候,不能及時(shí)地分發(fā)事件,包括用戶(hù)界面重繪事件。從用戶(hù)的角度來(lái)看,應(yīng)用程序看上去像掛掉了。更糟糕的是,如果阻塞應(yīng)用程序的時(shí)間過(guò)長(zhǎng)(現(xiàn)在大概是5秒鐘)Android會(huì)向用戶(hù)提示一些信息,即打開(kāi)一個(gè)“應(yīng)用程序沒(méi)有相應(yīng)(application not responding)”的對(duì)話(huà)框。

如果你想知道這有多糟糕,寫(xiě)一個(gè)簡(jiǎn)單的含有一個(gè)按鈕的程序,并為按鈕注冊(cè)一個(gè)單擊事件,并在事件處理器中調(diào)用這樣的代碼Thread.sleep(2000)。在按下這個(gè)按鈕這后恢復(fù)按鈕的正常狀態(tài)之前,它會(huì)保持按下?tīng)顟B(tài)大概2秒鐘。如果這樣的情況在你編寫(xiě)的應(yīng)用程序中發(fā)生,用戶(hù)的第一反應(yīng)就是你的程序運(yùn)行很慢。

現(xiàn)在你知道你應(yīng)該避免在UI線(xiàn)程中執(zhí)行耗時(shí)的操作,你很有可能會(huì)在后臺(tái)線(xiàn)程或工作者線(xiàn)程中執(zhí)行這些耗時(shí)的任務(wù),這樣做是否正確呢?讓我們來(lái)看一個(gè)例子,在這個(gè)例子中按鈕的單擊事件從網(wǎng)絡(luò)上下載一副圖片并使用ImageView來(lái)展現(xiàn)這幅圖片。代碼如下:

public void onClick( View v ) {
        new Thread( new Runnable() {
            public void run() {
                Bitmap b = loadImageFromNetwork();
                mImageView.setImageBitmap( b );
            }       
         }).start();
}

這段代碼好像很好地解決了你遇到的問(wèn)題,因?yàn)樗粫?huì)阻塞UI線(xiàn)程。很不幸,它違背了單線(xiàn)程模型:Android UI操作并不是線(xiàn)程安全的并且這些操作必須在UI線(xiàn)程中執(zhí)行。在這段代碼片段中,在一個(gè)工作者線(xiàn)程中使用ImageView的方法,這回引起一些很古怪的問(wèn)題。查處這個(gè)問(wèn)題并修復(fù)這個(gè)bug會(huì)很困難而且也很耗時(shí)。

Andriod提供了幾種在其他線(xiàn)程中訪(fǎng)問(wèn)UI線(xiàn)程的方法。或許你已經(jīng)對(duì)其中的一些方式很熟悉,但下面是一個(gè)更全面的列表:

  • Activity.runOnUiThread( Runnable )
  • View.post( Runnable )
  • View.postDelayed( Runnable, long )
  • Hanlder

上面的任何一個(gè)類(lèi)或方法都可以修復(fù)我們前面代碼中出現(xiàn)的問(wèn)題。

onClick( View v ) {
        new Thread( new Runnable() {
                public void run() {
                         final Bitmap b = loadImageFromNetwork();
                         mImageView.post( new Runnable() {
                                  mImageView.setImageBitmap( b );
                          });
                 }
        }).start();
}

很不幸的是這些類(lèi)或方法同樣會(huì)使你的代碼很復(fù)雜很難理解。然而當(dāng)你需要實(shí)現(xiàn)一些很復(fù)雜的操作并需要頻繁地更新UI時(shí)這會(huì)變得更糟糕。為了解決這個(gè)問(wèn)題,Android 1.5提供了一個(gè)工具類(lèi):AsyncTask,它使創(chuàng)建需要與用戶(hù)界面交互的長(zhǎng)時(shí)間運(yùn)行的任務(wù)變得更簡(jiǎn)單。

在Android 1.0和1.1中具有與AsyncTask相同功能的類(lèi)UserTask。它提供了完全一樣的API,你需要做的只是把它的代碼拷貝的你的程序中。

AsyncTask的目標(biāo)是替你管理你的線(xiàn)程。前面的代碼可以很容易地使用AsyncTask重寫(xiě)。

 

public void onClick( View v ) {
     new DownloadImageTask().execute( "http://example.com/image.png" );
}

private class DownloadImageTask extends AsyncTask {
     protected Bitmap doInBackground( String... urls ) {
          return loadImageFormNetwork( urls[0] );
     }

     protected void onPostExecute( Bitmap result ) {
         mImageView.setImageBitmap( result );
     }
}

正如你看到的,使用AsyncTask必須要繼承它。使用AsyncTask非常重要的是:AsyncTask的實(shí)例必須在UI線(xiàn)程中創(chuàng)建而且只能被使用一次。你可以使用預(yù)讀AsyncTask的文檔來(lái)來(lái)了解如何使用這個(gè)類(lèi),下面大概地了解一下它是如何工作的:

  • 你可以使用泛型參數(shù)制定任務(wù)的參數(shù)、中間值(progress values)和任何的最終執(zhí)行結(jié)果
  • doInBackground()方法會(huì)自動(dòng)地在工作者線(xiàn)程中執(zhí)行
  • onPreExecute()、onPostExecute()和onProgressUpdate()方法會(huì)在UI線(xiàn)程中被調(diào)用
  • doInBackground()方法的返回值會(huì)被傳遞給onPostExecute()方法
  • 在doInBackground()方法中你可以調(diào)用publishProgress()方法,每一次調(diào)用都會(huì)使UI線(xiàn)程執(zhí)行一次onProgressUpdate()方法
  • 你可以在任何時(shí)候任何線(xiàn)程中取消這個(gè)任務(wù)

除了官方的文檔,你可以閱讀Shelves和Photostream源代碼中的幾個(gè)復(fù)雜的示例。我強(qiáng)烈地推薦閱讀Shelves的源代碼,它會(huì)使你知道如何在配置更改之間持久化任務(wù)以及在activity被銷(xiāo)毀時(shí)正確的取消任務(wù)。

不管是否使用AsyncTask,始終記住以下兩個(gè)關(guān)于單線(xiàn)程模型的準(zhǔn)則:不要阻塞UI線(xiàn)程以及一切Android UI操作都在UI線(xiàn)程中執(zhí)行。AsyncTask僅僅是使你能夠更容易地遵守這兩條準(zhǔn)則。

過(guò)河卒 2010-02-07 12:14 發(fā)表評(píng)論
]]>
Android開(kāi)發(fā)問(wèn)題集結(jié)貼(持續(xù)更新)http://www.aygfsteel.com/ponzmd/archive/2010/01/25/310742.html過(guò)河卒過(guò)河卒Mon, 25 Jan 2010 08:01:00 GMThttp://www.aygfsteel.com/ponzmd/archive/2010/01/25/310742.htmlhttp://www.aygfsteel.com/ponzmd/comments/310742.htmlhttp://www.aygfsteel.com/ponzmd/archive/2010/01/25/310742.html#Feedback0http://www.aygfsteel.com/ponzmd/comments/commentRss/310742.htmlhttp://www.aygfsteel.com/ponzmd/services/trackbacks/310742.htmlA1 .WARNING: Application does not specify an API level requirement!
ApiDemos] Device API version is 3 (Android 1.5)

Q: AndroidManifest.xml中需指定users sdk <uses-sdk android:minSdkVersion="3"/>

 

A2: 模擬器設(shè)置上網(wǎng)代理

Q:啟動(dòng)模擬器時(shí)使用: emulator -avd your_avd_name -http-proxy http://name:password@10.10.10.10:3128

或者參考這里: 只加一次每次可用

解決 Android 模擬器 無(wú)法上網(wǎng)問(wèn)題 http://www.javaeye.com/topic/521023

關(guān)鍵就是執(zhí)行

sqlite3 /data/data/com.android.providers.settings/databases/settings.db "INSERT INTO system VALUES(99,'http_proxy','10.193.xx.xx:1080')"

 

A3: Installation failed due to invalid APK file!

Q:在Eclipse中啟動(dòng)某應(yīng)用的時(shí)候,出現(xiàn)如上錯(cuò)誤. Installation failed due to invalid APK file!  LogCat提示如下錯(cuò)誤如下:

01-26 07:59:28.466: ERROR/PackageParser(567): parsePackageName error: <manifest> specifies bad package name "com.android._ButtonStyle1": bad character '_'
01-26 07:59:28.466: ERROR/PackageManager(567): Couldn't find a package name in : /data/app/vmdl24363.tmp

按照上面的提示,修改包名即可.

 

A4: 啟動(dòng)AVD的時(shí)候出現(xiàn)的問(wèn)題:Failed to find an AVD compatible with target 'Android 1.6' ,no compatible AVDs with target.

Q:原因是AVD不在啟動(dòng)路徑中,解決的辦法找到".android"文件夾拷貝到貝到C:\Documents and Settings\當(dāng)前用戶(hù)下.修改下.android/avd里面以avd名命名的.ini文件中的path屬性,修改為avd文件所在的位置.重啟即可.

 

A5:Android出現(xiàn)Waiting for sdk to finish loading的解決辦法

Q:原因是:你的Java編譯環(huán)境和運(yùn)行環(huán)境不對(duì)。
    解決辦法:在WIndows下面使用統(tǒng)一的Java環(huán)境,我之前編譯是JDK1.6,運(yùn)行是JRE1.5。都調(diào)整為1.6就好了。

 

A6:Android官方網(wǎng)站無(wú)法訪(fǎng)問(wèn),怎么辦?

Q:訪(fǎng)問(wèn)官網(wǎng)鏡像: http://androidappdocs.appspot.com/sdk/index.html 即可.

 

A7:某些String.xml導(dǎo)入后出現(xiàn)如下錯(cuò)誤提示:

Description    Resource    Path    Location    Type
error: Apostrophe not preceded by \ (in Search' Titles)    strings.xml    /WikiNotes/res/values    line 30    Android AAPT Problem

Q:原因符號(hào)”' ”,在xml中需要轉(zhuǎn)義。只要將”' ” 修改為”\'”即可解決.

 

A8:Android訪(fǎng)問(wèn)本地IP(localhost)

Q:Android模擬器啟動(dòng)后,默認(rèn)IP為localhost,而PC端loaclhost被映射為10.0.2.2.



過(guò)河卒 2010-01-25 16:01 發(fā)表評(píng)論
]]>
開(kāi)通Android Market流程http://www.aygfsteel.com/ponzmd/archive/2010/01/21/310319.html過(guò)河卒過(guò)河卒Thu, 21 Jan 2010 01:50:00 GMThttp://www.aygfsteel.com/ponzmd/archive/2010/01/21/310319.htmlhttp://www.aygfsteel.com/ponzmd/comments/310319.htmlhttp://www.aygfsteel.com/ponzmd/archive/2010/01/21/310319.html#Feedback1http://www.aygfsteel.com/ponzmd/comments/commentRss/310319.htmlhttp://www.aygfsteel.com/ponzmd/services/trackbacks/310319.html前期準(zhǔn)備:

1. 申請(qǐng)一張支持Visa 或者 Master的國(guó)際信用卡. 注冊(cè)Google checkout 需要使用到.

Visa的相關(guān)介紹:

http://www.360doc.com/content/07/0406/21/10671_434257.shtml

2. 注冊(cè)Google賬號(hào). 申請(qǐng)一個(gè)Google Mail賬號(hào)即可(大家都應(yīng)該有了)

 

正式流程:

1. 注冊(cè)Google Checkout. http://checkout.google.com/. 注冊(cè)時(shí)Local可能沒(méi)有China,選擇Hongkong就好.

2.開(kāi)通Android Market. 到 http://market.android.com/publish/signup 填寫(xiě)基本信息,并通過(guò)你的CheckOut綁定信用卡支出25刀即可.Android Market是不需要審核的,申請(qǐng)成功即可發(fā)布應(yīng)用了.

 

流程沒(méi)有想象的復(fù)雜,希望大家都能加入.



過(guò)河卒 2010-01-21 09:50 發(fā)表評(píng)論
]]>
讀專(zhuān)訪(fǎng)Twitter界面設(shè)計(jì)師Vitor Lourenco的感悟http://www.aygfsteel.com/ponzmd/archive/2010/01/05/308281.html過(guò)河卒過(guò)河卒Tue, 05 Jan 2010 07:20:00 GMThttp://www.aygfsteel.com/ponzmd/archive/2010/01/05/308281.htmlhttp://www.aygfsteel.com/ponzmd/comments/308281.htmlhttp://www.aygfsteel.com/ponzmd/archive/2010/01/05/308281.html#Feedback0http://www.aygfsteel.com/ponzmd/comments/commentRss/308281.htmlhttp://www.aygfsteel.com/ponzmd/services/trackbacks/308281.html
Q:你的設(shè)計(jì)一貫以「簡(jiǎn)約」為基調(diào)。為什么相對(duì)于使用更多圖像的方式,你傾向于此?
A:我相信一個(gè)優(yōu)秀的網(wǎng)頁(yè)介面應(yīng)該是優(yōu)雅含蓄的,從而將內(nèi)容本身推向前臺(tái)。一名設(shè)計(jì)師必須牢記,多數(shù)情況下,用戶(hù)瀏覽一個(gè)網(wǎng)站并非為了欣賞你天馬行空的設(shè)計(jì),而是做一件對(duì)他們有用的事。我很喜歡艾倫·庫(kù)珀的一句話(huà):「無(wú)論你的介面有多酷,簡(jiǎn)單一點(diǎn)總會(huì)更好」。

感悟: 任何事情都要找出真正的需要,而不要被表面的符號(hào)所迷惑.


Q:對(duì)于躊躇于事業(yè)發(fā)展的年輕設(shè)計(jì)師們,你有什么建議?
A:我建議他們做自己的項(xiàng)目。不要期待優(yōu)質(zhì)客戶(hù)讓你參與到好的項(xiàng)目中,這樣的事情基本輪不到年輕人。現(xiàn)在就動(dòng)手自己做點(diǎn)什么,你會(huì)學(xué)到很多,也會(huì)得到很多。

感悟: 少點(diǎn)期待,多點(diǎn)實(shí)干,人生確是如此的.(自嘲:還沒(méi)老到要考慮養(yǎng)老吧!)



過(guò)河卒 2010-01-05 15:20 發(fā)表評(píng)論
]]>
回歸http://www.aygfsteel.com/ponzmd/archive/2009/12/29/307638.html過(guò)河卒過(guò)河卒Tue, 29 Dec 2009 07:16:00 GMThttp://www.aygfsteel.com/ponzmd/archive/2009/12/29/307638.htmlhttp://www.aygfsteel.com/ponzmd/comments/307638.htmlhttp://www.aygfsteel.com/ponzmd/archive/2009/12/29/307638.html#Feedback1http://www.aygfsteel.com/ponzmd/comments/commentRss/307638.htmlhttp://www.aygfsteel.com/ponzmd/services/trackbacks/307638.html有想開(kāi)始寫(xiě)B(tài)log了.

轉(zhuǎn)眼來(lái)深圳一年半了,和以前有了些變化,回顧并記錄之.



過(guò)河卒 2009-12-29 15:16 發(fā)表評(píng)論
]]>
css透明遮蔽效果http://www.aygfsteel.com/ponzmd/archive/2008/10/24/236297.html過(guò)河卒過(guò)河卒Fri, 24 Oct 2008 00:35:00 GMThttp://www.aygfsteel.com/ponzmd/archive/2008/10/24/236297.htmlhttp://www.aygfsteel.com/ponzmd/comments/236297.htmlhttp://www.aygfsteel.com/ponzmd/archive/2008/10/24/236297.html#Feedback0http://www.aygfsteel.com/ponzmd/comments/commentRss/236297.htmlhttp://www.aygfsteel.com/ponzmd/services/trackbacks/236297.html

這段代碼是通過(guò)lightbox2.02的源代碼里面學(xué)習(xí)來(lái)的,主要要注意的地方是如果用overlayer包裹loadlayer層的話(huà),loadlayer層會(huì)繼承overlayer層的透明屬性,而且這種繼承后的透明屬性很難屏蔽掉,比如在loadlayer上重新定義透明,新定義的透明不會(huì)有預(yù)期的效果.所以處理的時(shí)候必須要overlayer與loadbox分離來(lái),單獨(dú)來(lái)處理就不會(huì)出現(xiàn)上面的情況了.

效果:

loading

具體代碼如下:

 

   1:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   2:  <html xmlns="http://www.w3.org/1999/xhtml">
   3:  <head>
   4:  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   5:  <title>loading demo</title>
   6:  <script type="text/javascript">
   7:      function show(){
   8:          var loadbox =document.getElementById("loadlayer");
   9:          var overlayer = document.getElementById("overlayer");
  10:          loadbox.style.display = "block" ;
  11:          overlayer.style.display = "block" ;
  12:      }
  13:      
  14:      function hide(){
  15:          var loadbox =document.getElementById("loadlayer");
  16:          var overlayer = document.getElementById("overlayer");
  17:          loadbox.style.display = "none" ;
  18:          overlayer.style.display = "none" ;
  19:      }
  20:  </script>
  21:   
  22:  <style type="text/css">    
  23:  #overlayer{
  24:      position: absolute;
  25:      top: 50px;
  26:      left: 0;
  27:      z-index: 90;
  28:      width: 100%;
  29:      height: 100%;
  30:      background-color: #000;
  31:      filter:alpha(opacity=60);
  32:      -moz-opacity: 0.6;
  33:      opacity: 0.6;
  34:      display:none;
  35:      }
  36:   
  37:  #loadbox{
  38:      position: absolute;
  39:      top: 40%;
  40:      left: 0;
  41:      width: 100%;
  42:      z-index: 100;
  43:      text-align: center;
  44:      }
  45:   
  46:  #loadlayer{
  47:      display:none;
  48:      }
  49:   
  50:  </style>
  51:  </head>
  52:  <body>
  53:  <div id="overlayer"></div>
  54:  <div id="loadbox" >
  55:    <div id="loadlayer">
  56:        <img src="loading.gif" /> 
  57:      </div>
  58:  </div>
  59:    <div id="containlayer">
  60:           <input type="button" value="show" onclick="show()" />
  61:          <input type="button" value="hide" onclick="hide()"/>
  62:          <br />
  63:          <br />
  64:          --------------------------------------------------------------------<br />
  65:          --------------------------------------------------------------------<br />
  66:          具體的網(wǎng)頁(yè)內(nèi)容.寫(xiě)在這里,上面通過(guò)一個(gè)半透明層遮蔽下面的內(nèi)容<br />
  67:    </div>
  68:  </body>
  69:  </html>


過(guò)河卒 2008-10-24 08:35 發(fā)表評(píng)論
]]>
Netbean導(dǎo)入源代碼和Javadochttp://www.aygfsteel.com/ponzmd/archive/2008/04/19/194131.html過(guò)河卒過(guò)河卒Fri, 18 Apr 2008 17:11:00 GMThttp://www.aygfsteel.com/ponzmd/archive/2008/04/19/194131.htmlhttp://www.aygfsteel.com/ponzmd/comments/194131.htmlhttp://www.aygfsteel.com/ponzmd/archive/2008/04/19/194131.html#Feedback0http://www.aygfsteel.com/ponzmd/comments/commentRss/194131.htmlhttp://www.aygfsteel.com/ponzmd/services/trackbacks/194131.htmlGoogle到的內(nèi)容是這樣:

方法大致如下:
       1、從主窗口中選擇“工具”選項(xiàng),然后點(diǎn)擊“Java平臺(tái)控制器”。
       2、在對(duì)話(huà)框的左面板中,選擇要添加JavaDoc的平臺(tái)。
       3、在“JavaDoc”標(biāo)簽中,單擊“添加ZIP/文件夾”,然后指定JavaDoc文件的位置。
       4、關(guān)閉對(duì)話(huà)框。
這樣就算完成。當(dāng)選擇對(duì)應(yīng)的代碼,使用快捷鍵Alt+F1時(shí),就可以在瀏覽器中打開(kāi)對(duì)應(yīng)的幫助信息了。

如果這樣能解決我也就不記在這里了.

我在Netbeans6.01下面嘗試導(dǎo)入javadoc和src都沒(méi)有成功.

最后成功導(dǎo)入的辦法記錄在下面.

1.從主窗口中選擇“工具”選項(xiàng),然后點(diǎn)擊“庫(kù)”。

2.添加一個(gè)在對(duì)話(huà)框左面板中添加庫(kù),右面板中依次添加 jar,src,javadoc.

3.關(guān)閉對(duì)話(huà)框.

這樣如果導(dǎo)入的內(nèi)容沒(méi)有問(wèn)題的話(huà),應(yīng)該就可以通過(guò)ctrl+shift+b查看相關(guān)方法的源代碼,通過(guò)Alt+F1查看相關(guān)方法的Javadoc了.



過(guò)河卒 2008-04-19 01:11 發(fā)表評(píng)論
]]>
盡快去做http://www.aygfsteel.com/ponzmd/archive/2008/04/15/192997.html過(guò)河卒過(guò)河卒Tue, 15 Apr 2008 01:39:00 GMThttp://www.aygfsteel.com/ponzmd/archive/2008/04/15/192997.htmlhttp://www.aygfsteel.com/ponzmd/comments/192997.htmlhttp://www.aygfsteel.com/ponzmd/archive/2008/04/15/192997.html#Feedback0http://www.aygfsteel.com/ponzmd/comments/commentRss/192997.htmlhttp://www.aygfsteel.com/ponzmd/services/trackbacks/192997.html在扭轉(zhuǎn)公司頹勢(shì)方面,我有很多經(jīng)歷,其中首先學(xué)會(huì)的是,如果你不得不做一些非常糟糕的事情,那就盡快去做并確保讓所有人都知道你所做的以及為什么要這樣做。當(dāng)你在等待時(shí)機(jī)成熟以便推出大舉措施的時(shí)候,無(wú)論是拖延問(wèn)題、隱藏問(wèn)題、還是零零星星地部分解決一個(gè)問(wèn)題,總會(huì)帶來(lái)負(fù)面效應(yīng)。我相信最好的辦法應(yīng)該是,迅速地將問(wèn)題置于腦后,繼續(xù)前進(jìn)。

                                         ------引于郭士納《誰(shuí)說(shuō)大象不能跳舞》



過(guò)河卒 2008-04-15 09:39 發(fā)表評(píng)論
]]>
[轉(zhuǎn)]提高Java水平的十大技術(shù)http://www.aygfsteel.com/ponzmd/archive/2008/04/14/192774.html過(guò)河卒過(guò)河卒Mon, 14 Apr 2008 06:35:00 GMThttp://www.aygfsteel.com/ponzmd/archive/2008/04/14/192774.htmlhttp://www.aygfsteel.com/ponzmd/comments/192774.htmlhttp://www.aygfsteel.com/ponzmd/archive/2008/04/14/192774.html#Feedback0http://www.aygfsteel.com/ponzmd/comments/commentRss/192774.htmlhttp://www.aygfsteel.com/ponzmd/services/trackbacks/192774.html本文列出了當(dāng)今計(jì)算機(jī)軟件開(kāi)發(fā)和應(yīng)用領(lǐng)域最重要十種關(guān)鍵技術(shù)排名,如果你想保證你現(xiàn)在以及未來(lái)的幾年不失業(yè),那么你最好跟上這些技術(shù)的發(fā)展。雖然你不必對(duì)這十種技術(shù)樣樣精通,但至少應(yīng)該對(duì)它們非常熟悉。

  一、XML

  在十種技術(shù)中,最重要的一種技術(shù)我想應(yīng)該非XML莫屬。這里不僅僅指XML規(guī)范本身,還包括一系列有關(guān)的基于XML的語(yǔ)言:主要有XHTML,XSLT,XSL,DTDs,XML Schema(XSD),XPath,XQuery和SOAP.如果你現(xiàn)在還對(duì)XML一無(wú)所知,那么趕快狂補(bǔ)吧。XML是包含類(lèi)似于HTML標(biāo)簽的一個(gè)文本文件,在這個(gè)文件中定義了一個(gè)樹(shù)型結(jié)構(gòu)來(lái)描述它所保存的數(shù)據(jù)。

  XML最大的優(yōu)點(diǎn)是你既可以在這個(gè)文本文件中存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù),也可以在其中存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù)——也就是說(shuō),它能包含和描述"粗糙的"文檔數(shù)據(jù),就象它描述"規(guī)則的"表格數(shù)據(jù)一樣。

  XHTML是目前編寫(xiě)HTML的首選方法;因?yàn)閄HTML本身就是格式良好的XML,與通常畸形的HTML文檔相比, XHTML格式文檔更容易處理。

  XSLT和XSL是對(duì)XML文檔進(jìn)行轉(zhuǎn)換的語(yǔ)言。它們可以將XML文檔轉(zhuǎn)換成各種格式,比如另一個(gè)文本文件、PDF文件、HTML文件、逗號(hào)分割的文件,或者轉(zhuǎn)換成其它的XML文檔。

  DTDs 和XML Schema用來(lái)描述XML文件所包含的數(shù)據(jù)內(nèi)容的類(lèi)型,使你不用編寫(xiě)定制的代碼就能對(duì)XML文檔的內(nèi)容進(jìn)行"有效性"檢查,使內(nèi)容強(qiáng)行遵守給出的規(guī)則。

  XPath 和 XQuery是查詢(xún)語(yǔ)言,用它們可以從XML文檔中吸取單個(gè)的數(shù)據(jù)項(xiàng)或者數(shù)據(jù)項(xiàng)列表。XQuery的功能特別強(qiáng)大,因?yàn)樗鼘?duì)XPath查詢(xún)進(jìn)行了擴(kuò)展。實(shí)際上,XQuery和XML的關(guān)系就像SQL之于關(guān)系數(shù)據(jù)庫(kù)一樣。

  SOAP是Web services間進(jìn)行通訊的標(biāo)準(zhǔn)協(xié)議。你不必知道SOAP協(xié)議的所有細(xì)節(jié),但是你應(yīng)該熟悉其常用規(guī)則及其工作原理,這樣你才能使用它。

  二、Web Services

  Web服務(wù)是XML流行后的直接產(chǎn)物。因?yàn)閄ML可以描述數(shù)據(jù)和對(duì)象,XML大綱可以保證XML文檔數(shù)據(jù)的有效性,因?yàn)閄ML的基于文本的規(guī)范,因而XML文檔極其適合于作為一種跨平臺(tái)通訊標(biāo)準(zhǔn)的基本格式。如果你還沒(méi)有接觸過(guò)Web服務(wù),那么過(guò)不了多久你肯定會(huì)碰到它,所以必須熟練掌握Web服務(wù),最好是精通它,因?yàn)樗瞧駷橹箲?yīng)用程序間跨不同種類(lèi)機(jī)器、語(yǔ)言、平臺(tái)和位置通訊的最簡(jiǎn)單的一種方式。不管你需不需要它,Web服務(wù)都會(huì)是將來(lái)互用性的主要趨勢(shì)。

  XML工作組的John Bosak曾說(shuō)過(guò):"XML使得Java有事可做",那么,我們也可以說(shuō),Web服務(wù)使得所有語(yǔ)言都有事可做。Web服務(wù)讓運(yùn)行在大型機(jī)上的COBOL應(yīng)用程序與運(yùn)行在手持設(shè)備上的應(yīng)用程序相互溝通;讓Java小應(yīng)用與。NET服務(wù)器相互通訊,讓桌面應(yīng)用與Web服務(wù)器進(jìn)行無(wú)縫交互,不但為商業(yè)數(shù)據(jù)處理,同時(shí)也為商業(yè)功能提供了方便的實(shí)現(xiàn)——并且這種實(shí)現(xiàn)與語(yǔ)言、平臺(tái)、和位置無(wú)關(guān)。

  三、面向?qū)ο缶幊?

  許多程序員仍然認(rèn)為OOP乃技術(shù)的象牙之塔,但是細(xì)細(xì)想一下過(guò)去十年里在面向?qū)ο箢I(lǐng)域里占據(jù)過(guò)統(tǒng)治地位的開(kāi)發(fā)語(yǔ)言之后,你就不會(huì)這么認(rèn)為了,OOP理念從Smalltalk開(kāi)始,然后蔓延到C++和Pascal(Delphi),到Java成為真正的主流,幾年之后,VB.NET 和 C#的出現(xiàn)可以說(shuō)是OOP發(fā)展到了登峰造極的地步。雖然使用這些語(yǔ)言不必了解OOP的概念,但如果你缺乏一些OOP的基本知識(shí)和方法,我想你很難在逐漸疲軟的就業(yè)市場(chǎng)中找到工作。

  四、Java, C++, C#, VB.NET

  如果你熱衷于技術(shù),并且熱愛(ài)編程,那么我想你應(yīng)該輕松玩轉(zhuǎn)這些高級(jí)語(yǔ)言,我說(shuō)的玩轉(zhuǎn)并不一定要你成為超級(jí)編程高手。而是能看懂用這些語(yǔ)言編寫(xiě)的代碼即可。如果你還有精力用它們編碼那就更好了。其實(shí)這種機(jī)會(huì)甚少。但是看代碼的機(jī)會(huì)很多,學(xué)習(xí)編程的最有效的一種方式就是看源代碼——浩如煙海的源代碼中很多都不是用你所鐘愛(ài)的開(kāi)發(fā)語(yǔ)言編寫(xiě)的。

  在過(guò)去的幾年里,各個(gè)語(yǔ)言功能的發(fā)展基本上都差不多。現(xiàn)在你完全可以用VB.NET來(lái)寫(xiě)Windows服務(wù)、Web應(yīng)用或者命令行程序。即使你只用其中的一種語(yǔ)言寫(xiě)程序。我認(rèn)為也完全有必要學(xué)習(xí)另外一種語(yǔ)言,使自己能閱讀和理解它們現(xiàn)有的例子代碼,并且能將一種語(yǔ)言編寫(xiě)的代碼轉(zhuǎn)換成你首選的編程語(yǔ)言代碼。這里列出的四種語(yǔ)言可謂是一個(gè)強(qiáng)大的開(kāi)發(fā)語(yǔ)言工具箱,如果你掌握了它們,毫無(wú)疑問(wèn)你一定是一個(gè)眾人仰慕的高手。這里我要聲明一下:那就是我并沒(méi)有要忽略和排除其它的高級(jí)語(yǔ)言,如:FORTRAN、COBOL、APL、ADA、Perl和Lisp等等,根據(jù)你所從事的領(lǐng)域不同,應(yīng)該選擇適合的語(yǔ)言和工具。

  五、JavaScript

  Java 和JavaScript兩者的名字盡管很類(lèi)似,但它們之間并沒(méi)有什么關(guān)系。為什么一種腳本語(yǔ)言會(huì)如此重要,以至于將它列入十種關(guān)鍵技術(shù)之一呢?仔細(xì)想一下就知道了,目前所有主流的瀏覽器都使用JavaScript.如果你要編寫(xiě)Web應(yīng)用程序,那么JavaScript不可或缺。此外,JavaScript還能作為一種服務(wù)器端的腳本語(yǔ)言,如將它嵌入在ASP、ASP.NET中,或者嵌入XSLT來(lái)擴(kuò)展功能。目前JavaScript在Mozilla/Netscape中是激活基于XUL界面的首選語(yǔ)言,它派生出了ActionScript,成為Flash MX應(yīng)用的編程語(yǔ)言。還有就是JavaScript極有可能成為未來(lái)新設(shè)備的腳本語(yǔ)言以及主流應(yīng)用的宏語(yǔ)言。

  相比之下,VBScript雖然在微軟的產(chǎn)品中得到很好的支持,但從長(zhǎng)遠(yuǎn)來(lái)看,沒(méi)有跡象表明它會(huì)有美好前途。微軟自己都趨向于用JavaScript(或者用由JavaScript派生的JScript)來(lái)編寫(xiě)其客戶(hù)端腳本代碼。因此,如果你要選擇腳本語(yǔ)言,非JavaScript莫屬。

  六、Regular Expressions

  從所周知,關(guān)系數(shù)據(jù)庫(kù)的查詢(xún)使用SQL,搜索XML文檔用XPath 和XQuery,而正則表達(dá)式則用來(lái)搜索純文本。例如,你可以用一個(gè)命令來(lái)查找或刪除HTML格式文件中的注釋內(nèi)容。大家都用過(guò)"IndexOf"、"InStr"以及"Like"這些內(nèi)建在JavaScript或VB中的文本搜索函數(shù),這些函數(shù)雖然很容易使用,但是它們的功能卻無(wú)法與正則表達(dá)式同日而語(yǔ)——現(xiàn)在每一種主流的開(kāi)發(fā)語(yǔ)言都提供對(duì)正則表達(dá)式的存取。盡管有人認(rèn)為正則表達(dá)式本身的讀寫(xiě)艱澀難懂,但畢竟它的功能強(qiáng)大,使用它的領(lǐng)域也越來(lái)越多。

  七、Design Patterns

  就像OOP通過(guò)創(chuàng)建和分類(lèi)對(duì)象來(lái)簡(jiǎn)化編程一樣,設(shè)計(jì)模式將普通的對(duì)象交互分類(lèi)成指定的模型,這是一個(gè)從一般到具體的過(guò)程。OOP的成分使用得越多,設(shè)計(jì)模式就顯得越有用武之地。所以你必須理解它們,跟上其總體理論的發(fā)展。

  八、Flash MX

  當(dāng)你需要比HTML和CSS所能提供的更多的客戶(hù)端圖形和編程能力時(shí),F(xiàn)lash是最佳選擇。在Flash中編程比用Java小應(yīng)用或者。NET代碼來(lái)得快得多,也容易得多。

  在最新版本中(MX),F(xiàn)lash不僅可以畫(huà)圖和進(jìn)行動(dòng)畫(huà)打包,它還是個(gè)高度的可編程應(yīng)用環(huán)境。具備強(qiáng)大的與SOAP Web服務(wù)溝通的能力,可以調(diào)用運(yùn)行在遠(yuǎn)端服務(wù)器上的ColdFusion、Java或。NET代碼。可以說(shuō)Flash幾乎無(wú)處不在,包括手持設(shè)備、置頂盒、甚至是新的平板電腦,你到處都可以見(jiàn)到它的身影,所以使用它實(shí)際上可以擴(kuò)展和延伸你的應(yīng)用程序使用領(lǐng)域。

  九、Linux/Windows

  這是當(dāng)今PCs機(jī)操作系統(tǒng)的兩大陣容,如果你想在計(jì)算機(jī)行業(yè)里混,就一定要熟悉它們。對(duì)于Linux,最好能自己安裝,配置,下載它的圖形用戶(hù)界面以及一些應(yīng)用程序。自己安裝Apache并會(huì)編寫(xiě)Web應(yīng)用程序。要清醒地認(rèn)識(shí)到這個(gè)世界除了Windows之外,還有Linux的存在。并且這種局面將會(huì)長(zhǎng)期存在。反過(guò)來(lái),如果你是一個(gè)死忠的Linux開(kāi)發(fā)者,不要再繼續(xù)對(duì)Windows的憎惡,要相互學(xué)習(xí),取長(zhǎng)補(bǔ)短,看看Windows有什么好的東東可以采納。記住Windows仍然是桌面之王。

  誰(shuí)也說(shuō)不準(zhǔn)你們公司什么時(shí)候會(huì)決定從Linux轉(zhuǎn)向Windows,或者從Windows轉(zhuǎn)向Linux.誰(shuí)也說(shuō)不準(zhǔn)什么時(shí)候你會(huì)跳槽跑到另外一個(gè)使用不同平臺(tái)的公司上班——或者即便不跳槽,也有可能在不同平臺(tái)上開(kāi)始另外一個(gè)殺手級(jí)項(xiàng)目——所以最好在每個(gè)平臺(tái)上都積累一些經(jīng)驗(yàn),而不要在一棵樹(shù)上吊死。

  十、SQL

  盡管SQL在當(dāng)今眾多的技術(shù)中已不是什么新東西,而且在未來(lái)的十年里它的作用很有可能被削弱,甚至整個(gè)被淘汰,但它仍然是一種基本技能——?jiǎng)e看它是一種基本技能,至今仍有許多開(kāi)發(fā)人員不懂什么是SQL或?qū)λ私獠欢唷2灰竿趫D形用戶(hù)界面的SQL構(gòu)造器會(huì)幫你的忙,還是自己親手寫(xiě)SQL查詢(xún)吧,確定你掌握了SQL的基本語(yǔ)法。現(xiàn)在理解了SQL,不僅對(duì)以后學(xué)習(xí)XQuery有所裨益,而且可以使你很快找到簡(jiǎn)化或改進(jìn)當(dāng)前開(kāi)發(fā)項(xiàng)目的途徑。

  尾聲:培養(yǎng)對(duì)技術(shù)的好奇心

  其實(shí),不管技術(shù)的發(fā)展趨勢(shì)如何,每個(gè)人最重要的一個(gè)技能是好奇心。敢于面對(duì)挑戰(zhàn),在你目前或未來(lái)的工作中,新語(yǔ)言或新技術(shù)可能很重要,也可能不怎么重要,你所學(xué)習(xí)的東西并不一定非要針對(duì)你的工作。不要怕失敗,任何新的技術(shù)對(duì)初學(xué)者來(lái)說(shuō)都是困難的。大多數(shù)的失敗都可以歸咎于本身急功近利,希望速成。俗話(huà)說(shuō)——千里之行,始于足下,應(yīng)該腳踏實(shí)地,一步一個(gè)腳印地往前走。不要讓時(shí)間來(lái)左右你行動(dòng),而是要利用時(shí)間來(lái)關(guān)注、研究、測(cè)試新的開(kāi)發(fā)技術(shù)和工具。



過(guò)河卒 2008-04-14 14:35 發(fā)表評(píng)論
]]>
青龍寺-櫻花海http://www.aygfsteel.com/ponzmd/archive/2008/04/07/191177.html過(guò)河卒過(guò)河卒Mon, 07 Apr 2008 01:53:00 GMThttp://www.aygfsteel.com/ponzmd/archive/2008/04/07/191177.htmlhttp://www.aygfsteel.com/ponzmd/comments/191177.htmlhttp://www.aygfsteel.com/ponzmd/archive/2008/04/07/191177.html#Feedback0http://www.aygfsteel.com/ponzmd/comments/commentRss/191177.htmlhttp://www.aygfsteel.com/ponzmd/services/trackbacks/191177.html曾在青龍寺腳下租住過(guò)大概有半年的時(shí)間,當(dāng)時(shí)也正好是櫻花盛開(kāi)的時(shí)節(jié),每天早晨和黃昏我們都在青龍寺前的草坪中散步聊天,卻未未曾用照片的形式記錄下這青龍寺中的美景。在網(wǎng)絡(luò)上見(jiàn)到網(wǎng)友發(fā)的青龍寺櫻花美景,轉(zhuǎn)貼至此,留戀青龍寺的那段日子。

下面為轉(zhuǎn)貼,原帖在這里

給各位觀(guān)眾簡(jiǎn)單介紹一下青龍寺。
   青龍寺建于隋文帝開(kāi)皇二年(528年),原名靈感寺,唐睿宗時(shí)期(711年)改名為青龍寺。它是唐代著名的佛寺之一,也是日本佛教真言宗的祖庭。青龍寺是日本人心目中的圣寺,日本從9世紀(jì)初起,曾派遣大批留學(xué)僧人到唐朝求法,其中以空海最著名。空海在青龍寺師從于密宗大師惠果,后將其傳入日本,同時(shí)還把中國(guó)的文字書(shū)法,灌溉技術(shù)傳回日本,并根據(jù)漢字創(chuàng)造了日文中的“片假名”促進(jìn)了中日間的經(jīng)濟(jì)文化交流。青龍寺從宋代以后就已經(jīng)蕩然無(wú)存了,解放后經(jīng)過(guò)勘察發(fā)據(jù),探出了門(mén)塔,殿堂和廊廡等七處遺址,同時(shí)出土了部分文物。
    1982年,中日兩國(guó)在青龍寺遺址共同興建了空海紀(jì)念碑和空海紀(jì)念堂,以紀(jì)念和發(fā)揚(yáng)這位友好使者的精神。1986年,青龍寺保管所又從日本引進(jìn)了萬(wàn)株櫻花。每年櫻花盛開(kāi)的時(shí)候,這里格外吸引游人。(資料參考:《自游西安及周邊》)
    走走走走走走,我們一同去郊游
青龍寺的浪漫櫻花海,還有一對(duì)新人在照婚紗照

ql1 ql2

 

我喜歡的楊貴妃近照(櫻花科系的一種)

ql3 ql5 ql4

我們登上了寺中閣樓

ql6 ql7

 

舊唐回廊里,偉大的惠果大師和空海大師也就是我們大唐與日本大和的故事。空海大師即使日本的“孔子”。

 

ql8

歷代有許多文人墨客很喜歡在青龍寺留下自己的詩(shī)跡,還記得李商隱(李義山)那首千古佳作《樂(lè)游原》嗎?  
向晚意不適,驅(qū)車(chē)登古原。夕陽(yáng)無(wú)限好,只是近黃昏。  

ql9

“樂(lè)游原”即為此地。因漢宣帝曾在此地建造樂(lè)游苑,故又名樂(lè)游原。傳說(shuō)唐代大詩(shī)人白居易,舒元輿等都曾在青龍寺北住過(guò)。白居易在《青龍寺早夏》里描繪青龍寺的地勢(shì)和風(fēng)景日:“丹鳳樓當(dāng)后,青龍寺在前。市街塵不到,宮樹(shù)影相連”。
再者,密宗的一些教徒喜歡到此地切磋密宗的咒語(yǔ)和幻術(shù),青龍寺便成為密宗咒語(yǔ)幻術(shù)傳播的源泉。圖片是我永遠(yuǎn)也看不懂的密語(yǔ)宗書(shū)。

ql10

再來(lái)就是白丁香下的小吃街,我們?cè)诖髽?shù)底下吃吃喝喝

ql12

寺里隨處可見(jiàn)的歷史遺跡,提醒我們中日兩個(gè)民族始終保持著友好的關(guān)系。ql14

好了,到這里了,就到這里.



過(guò)河卒 2008-04-07 09:53 發(fā)表評(píng)論
]]>
Nutch爬蟲(chóng)的工作過(guò)程http://www.aygfsteel.com/ponzmd/archive/2008/04/02/190452.html過(guò)河卒過(guò)河卒Wed, 02 Apr 2008 12:53:00 GMThttp://www.aygfsteel.com/ponzmd/archive/2008/04/02/190452.htmlhttp://www.aygfsteel.com/ponzmd/comments/190452.htmlhttp://www.aygfsteel.com/ponzmd/archive/2008/04/02/190452.html#Feedback0http://www.aygfsteel.com/ponzmd/comments/commentRss/190452.htmlhttp://www.aygfsteel.com/ponzmd/services/trackbacks/190452.html再來(lái)1號(hào)問(wèn)題:爬蟲(chóng)的工作過(guò)程

來(lái)個(gè)圖:

workflow

動(dòng)作分解:
<傳言看源代碼理解的更細(xì)致,不過(guò)偶沒(méi)看,偶是根據(jù)文檔和下午的操作總結(jié)的,錯(cuò)了請(qǐng)指正。>

1.創(chuàng)建空數(shù)據(jù)庫(kù)Webdb:

2.向Webdb中注入入口攫取地址:

3.根據(jù)Webdb中數(shù)據(jù)生成fetchlist,并生成相應(yīng)的segment。

4.根據(jù)fetchlist攫取內(nèi)容(fetched content)。

5.根據(jù)獲取內(nèi)容更新Webdb

6.重復(fù)執(zhí)行3-5.這個(gè)過(guò)程52se稱(chēng)為“產(chǎn)生/抓取/更新”循環(huán)。

7.完成上面的循環(huán)后,根據(jù)Webdb中信息,如網(wǎng)頁(yè)評(píng)分和鏈接信息等,再次更新segment.

8.索引被攫取的頁(yè)面,生成鏈接。

9.去除indexes中重復(fù)的內(nèi)容和鏈接。

10.依靠indexes合成單一的index文件。大功告成。

上面這些步驟都可以對(duì)應(yīng)到Nutch給我們提供的CrawlTool中的命令上。

爬蟲(chóng)忙完了,有了數(shù)據(jù),我們就可以利用Nutch的search部分功能來(lái)查找內(nèi)容了。

 

參考:Nutch爬蟲(chóng)工作流程及文件格式詳細(xì)分析

Introduction to Nutch, Part 1: Crawling



過(guò)河卒 2008-04-02 20:53 發(fā)表評(píng)論
]]>
Nutch的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)。http://www.aygfsteel.com/ponzmd/archive/2008/04/02/190451.html過(guò)河卒過(guò)河卒Wed, 02 Apr 2008 12:52:00 GMThttp://www.aygfsteel.com/ponzmd/archive/2008/04/02/190451.htmlhttp://www.aygfsteel.com/ponzmd/comments/190451.htmlhttp://www.aygfsteel.com/ponzmd/archive/2008/04/02/190451.html#Feedback0http://www.aygfsteel.com/ponzmd/comments/commentRss/190451.htmlhttp://www.aygfsteel.com/ponzmd/services/trackbacks/190451.html昨天睡覺(jué)前,總結(jié)了感興趣的3個(gè)問(wèn)題,現(xiàn)在來(lái)回顧一下

1.爬蟲(chóng)工作的過(guò)程?

2.爬蟲(chóng)獲取數(shù)據(jù)后,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)?

3.數(shù)據(jù)如何索引成Lucene設(shè)定的索引格式?

上午干工作耽誤了,下午得閑,看點(diǎn)資料。試簡(jiǎn)單總結(jié)一下上面幾個(gè)問(wèn)題的。

先回答2號(hào)問(wèn)題,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)好了。

Nutch把爬蟲(chóng)找回來(lái)的資料做成了放在一個(gè)文件夾里面,美其名曰Web database。其實(shí)里面分別就四個(gè)文件夾了事。依次道來(lái):

  • crawldb:存放需要抓取的的超鏈接地址;
  • segments:存放依據(jù)crawldb中提供的地址抓取到的內(nèi)容信息。segments中的每個(gè)子文件夾存儲(chǔ)fetcher根據(jù)crawldb抓取一次所得的內(nèi)容。這些抓取的內(nèi)容包括有content、crawl_fetch、crawl_generate、crawl_parse、parse_data、parse_text。其中content是抓取下來(lái)的網(wǎng)頁(yè)內(nèi)容;crawl_generate根據(jù)crawldb最初生成;crawl_fetch、content在抓取時(shí)生成;crawl_parse、parse_data、parse_text在解析抓取的數(shù)據(jù)文件時(shí)生成。其中crawl_generate、crawl_fetch和crawl_parse是crawldb的部分url數(shù)據(jù),它們格式一樣,不同的是抓取時(shí)間、狀態(tài)、簽名等有所變化。
  • Index和indexes:Index是最終我們所需要得到的東西,而Index就是通過(guò)indexes合并的到的。
  • Linkdb:linkdb中存放的是所有超鏈接及其每個(gè)鏈接的連入地址和錨文件。

好了這個(gè)存儲(chǔ)結(jié)構(gòu)的問(wèn)題完成了。

抽空先寫(xiě)這么多,呆會(huì)有時(shí)間在繼續(xù)。



過(guò)河卒 2008-04-02 20:52 發(fā)表評(píng)論
]]>
Nutch0.9基本配置http://www.aygfsteel.com/ponzmd/archive/2008/04/01/190147.html過(guò)河卒過(guò)河卒Tue, 01 Apr 2008 09:11:00 GMThttp://www.aygfsteel.com/ponzmd/archive/2008/04/01/190147.htmlhttp://www.aygfsteel.com/ponzmd/comments/190147.htmlhttp://www.aygfsteel.com/ponzmd/archive/2008/04/01/190147.html#Feedback0http://www.aygfsteel.com/ponzmd/comments/commentRss/190147.htmlhttp://www.aygfsteel.com/ponzmd/services/trackbacks/190147.html下午配置成功了Nutch0.9.截圖記錄一下。

nutchsuccess

 

 

 

 

 

 

 

網(wǎng)絡(luò)上面介紹這個(gè)配置的比較多,我就不重復(fù)勞動(dòng)了。

推薦文檔如下:Nutch Version 0.8x tutorial ,還有就是這里的篇日志

我在這里記錄一下遇到的幾個(gè)錯(cuò)誤和解決辦法,大家可能有用。

如執(zhí)行如下命令:
./nutch crawl ../urls.txt  -dir ../ihooyo  -depth 5 -topN 100
參數(shù)說(shuō)明:
-url 就是剛才我們創(chuàng)建的url文件,存放我們要抓取的網(wǎng)址
-dir 指定抓取內(nèi)容所存放的目錄,如上存在mydir中
-threads 指定并發(fā)的線(xiàn)程數(shù)
-depth 表示以要抓取網(wǎng)站頂級(jí)網(wǎng)址為起點(diǎn)的爬行深度
-topN 表示獲取前多少條記錄,可省

可能錯(cuò)誤1:

Generator: jobtracker is 'local', generating exactly one partition.
Generator: 0 records selected for fetching, exiting ...
Stopping at depth=0 - no more URLs to fetch.
No URLs to fetch - check your seed list and URL filters.
crawl finished: sina5

說(shuō)明:指定要抓取的網(wǎng)址(url.txt)經(jīng)過(guò)(crawl-urlfilters.xml)過(guò)濾后,已經(jīng)沒(méi)有可抓取對(duì)象了,檢查兩者的匹配即可。

可能錯(cuò)誤2:

Dedup: starting
Dedup: adding indexes in: ../ihooyo/indexes
Exception in thread "main" java.io.IOException: Job failed!
        at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:604)
        at org.apache.nutch.indexer.DeleteDuplicates.dedup(DeleteDuplicates.java:439)
        at org.apache.nutch.crawl.Crawl.main(Crawl.java:135)

說(shuō)明:一般為./conf/nutch-site.xml文件配置有錯(cuò)誤。請(qǐng)參考如下配置修改。
[xml]
<property>
<name>http.agent.name</name>
<value>ihooyo</value>
<description></description>
</property>
<property>
<name>http.agent.description</name>
<value>apersonblog</value>
<description></description>
</property>
<property>
<name>http.agent.url</name>
<value>www.ihooyo.com</value>
<description></description>
</property>
<property>
<name>http.agent.email</name>
<value>pjuneye@qq.com</value>
<description></description>
</property>
[/xml]
這種配置錯(cuò)誤,在log日志中可找到提示。

可能錯(cuò)誤3:

Injector: Converting injected urls to crawl db entries.
Exception in thread "main" java.io.IOException: Job failed!
        at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:604)
        at org.apache.nutch.crawl.Injector.inject(Injector.java:162)
        at org.apache.nutch.crawl.Crawl.main(Crawl.java:115)

說(shuō)明:一般為crawl-urlfilters.txt中配置問(wèn)題,比如過(guò)濾條件應(yīng)為
+^http://www.ihooyo.com ,而配置成了 http://www.ihooyo.com 這樣的情況就引起如上錯(cuò)誤。

好了寫(xiě)完了。



過(guò)河卒 2008-04-01 17:11 發(fā)表評(píng)論
]]>
Nutch初接觸http://www.aygfsteel.com/ponzmd/archive/2008/04/01/190136.html過(guò)河卒過(guò)河卒Tue, 01 Apr 2008 08:50:00 GMThttp://www.aygfsteel.com/ponzmd/archive/2008/04/01/190136.htmlhttp://www.aygfsteel.com/ponzmd/comments/190136.htmlhttp://www.aygfsteel.com/ponzmd/archive/2008/04/01/190136.html#Feedback0http://www.aygfsteel.com/ponzmd/comments/commentRss/190136.htmlhttp://www.aygfsteel.com/ponzmd/services/trackbacks/190136.html晚上花了將近兩個(gè)小時(shí)的時(shí)間,看了網(wǎng)絡(luò)上一些關(guān)于Nutch的介紹.
搞明白的幾個(gè)問(wèn)題:

1.Nutch到底是什么?

Nutch是一個(gè)開(kāi)源的Java語(yǔ)言實(shí)現(xiàn)的搜索引擎。它通過(guò)完整功能的搜索系統(tǒng)。

2.Nutch和Lucene到底是什么關(guān)系?兩者如何取舍?

Nutch基于Lucene,Lucene為Nutch提供文本索引和搜索API。兩者的取舍問(wèn)題在于Lucene不能夠?yàn)槟阕ト?shù)據(jù),所以如果在有數(shù)據(jù)源的情況下最好的方式是使用Lucene API來(lái)建立索引,完成搜索。如果需要抓取數(shù)據(jù)的話(huà),那自然是選擇Nutch為好。

3.Nutch的基本安裝步驟?

這個(gè)問(wèn)題有官方文檔。在這里。

PS:似乎網(wǎng)絡(luò)Nutch上最多的帖子就是關(guān)于這個(gè)的.其中比較有意思的就是擺脫Cgywin的一些方法,比如利用window批處理或者利用ant.個(gè)人還是覺(jué)得ant更通用.

4.Nutch的基本組成?

Nutch基本上兩部分組成:抓取部分和搜索部分。抓取程序抓取頁(yè)面并將抓取回來(lái)的數(shù)據(jù)做成反向索引;搜索程序則將反向索引搜索回答用戶(hù)的請(qǐng)求。兩者的關(guān)聯(lián)部分在于索引。
具體內(nèi)容還需要仔細(xì)看文檔和介紹.

5.Nutch文檔集中地?
http://wiki.apache.org/nutch/

補(bǔ)充完成,今日繼續(xù)。愚人節(jié)快樂(lè)!



過(guò)河卒 2008-04-01 16:50 發(fā)表評(píng)論
]]>
主站蜘蛛池模板: 湘潭县| 崇左市| 赤城县| 康平县| 长岛县| 黑河市| 浑源县| 都昌县| 葵青区| 新巴尔虎右旗| 望奎县| 临安市| 大邑县| 庆阳市| 蓬安县| 阳东县| 长葛市| 于都县| 肥东县| 友谊县| 临洮县| 山丹县| 清涧县| 岑溪市| 福州市| 崇文区| 老河口市| 明星| 瑞金市| 临夏县| 阳泉市| 荣成市| 永和县| 泸溪县| 东乡族自治县| 黎平县| 阜新市| 化德县| 五河县| 讷河市| 鄂伦春自治旗|