﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-过河卒</title><link>http://www.blogjava.net/ponzmd/</link><description>&lt;i&gt;平凡而简单的人一个，无权无势也无牵无挂。一路厮杀，只进不退，死而后已，岂不爽哉！&lt;br/&gt;
收起对“车”日行千里的羡慕；收起对“马”左右逢缘的感叹；目标记在心里面，向前进。一次一步，一步一脚印，跬步千里。&lt;br/&gt;
这个角色很适合现在的我。&lt;/i&gt; </description><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 12:41:31 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 12:41:31 GMT</pubDate><ttl>60</ttl><item><title>[ZT]在eclipse中查看Android各版本源代码</title><link>http://www.blogjava.net/ponzmd/archive/2010/02/07/312269.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Sun, 07 Feb 2010 08:23:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2010/02/07/312269.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/312269.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2010/02/07/312269.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/312269.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/312269.html</trackback:ping><description><![CDATA[<p>转帖于：<a title="http://www.javaeye.com/topic/534010" href="http://www.javaeye.com/topic/534010">http://www.javaeye.com/topic/534010</a> <p>如题，前面已经有人整理过1.5版本的源代码，但有些人回复说想要1.6的。 <br>今天刚好试了一下各版本源代码，运行良好。所以简单的整理了一下下载连接和安装方法。希望能用得上。 <br>1.android下载 <br>▼android-1.5的下载地址有如下 <br>http://rgruet.free.fr/public/android-1.5-cupcake-src.zip (21.6MB) <br>http://www.mediafire.com/file/awnzktte2wy/android-1.5-cupcake-src.zip <br>▼android-1.6的下载地址有如下 <br>http://rgruet.free.fr/public/android-1.6_r1-donut-src.zip (23MB) <br>http://sandos.se/~sandos/android-1.6_r1-donut-src.zip <br>http://www.droidnova.com/android-sdk-1-6-donut-sources,511.html <br>▼android-2.0的下载地址有如下 <br>http://rgruet.free.fr/public/android-2.0-eclair-src.zip (24.4MB) <br>2.android安装 <br>▼在各个版本的sdk下面创建新文件夹sources，如下 <br>android_sdk_installation_folder\platforms\android-1.5\sources <br>android_sdk_installation_folder\platforms\android-1.6\sources <br>android_sdk_installation_folder\platforms\android-2.0\sources <br>▼把下载后的zip解压缩到上面的sources下面，重新启动eclipse即可查看。 <br>注：上面三个版本本人都测试过，都运行良好。 <br>&nbsp;&nbsp;&nbsp; 如果上面的链接下载不了的话，我可以把我下载好的打包上传上来。你们先试一下吧。</p><img src ="http://www.blogjava.net/ponzmd/aggbug/312269.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2010-02-07 16:23 <a href="http://www.blogjava.net/ponzmd/archive/2010/02/07/312269.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[ZT]Android线程模型(Painless Threading)</title><link>http://www.blogjava.net/ponzmd/archive/2010/02/07/312260.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Sun, 07 Feb 2010 04:14:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2010/02/07/312260.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/312260.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2010/02/07/312260.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/312260.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/312260.html</trackback:ping><description><![CDATA[<p>转载于： <a title="http://kimilv.javaeye.com/blog/382683" href="http://kimilv.javaeye.com/blog/382683">http://kimilv.javaeye.com/blog/382683</a> <p>当第一次启动一个Android程序时，Android会自动创建一个称为“main”主线程的线程。这个主线程（也称为UI线程）很重要，因为它负责把事件分派到相应的控件，其中就包括屏幕绘图事件，它同样是用户与Andriod控件交互的线程。比如，当你在屏幕上按下一个按钮后，UI线程会把这个事件分发给刚按得那个按钮，紧接着按钮设置它自身为被按下状态并向事件队列发送一个无效（invalidate）请求。UI线程会把这个请求移出事件队列并通知按钮在屏幕上重新绘制自身。 <p>单线程模型会在没有考虑到它的影响的情况下引起Android应用程序性能低下，因为所有的任务都在同一个线程中执行，如果执行一些耗时的操作，如访问网络或查询数据库，会阻塞整个用户界面。当在执行一些耗时的操作的时候，不能及时地分发事件，包括用户界面重绘事件。从用户的角度来看，应用程序看上去像挂掉了。更糟糕的是，如果阻塞应用程序的时间过长（现在大概是5秒钟）Android会向用户提示一些信息，即打开一个“应用程序没有相应（application not responding）”的对话框。 <p>如果你想知道这有多糟糕，写一个简单的含有一个按钮的程序，并为按钮注册一个单击事件，并在事件处理器中调用这样的代码Thread.sleep(2000)。在按下这个按钮这后恢复按钮的正常状态之前，它会保持按下状态大概2秒钟。如果这样的情况在你编写的应用程序中发生，用户的第一反应就是你的程序运行很慢。 <p>现在你知道你应该避免在UI线程中执行耗时的操作，你很有可能会在后台线程或工作者线程中执行这些耗时的任务，这样做是否正确呢？让我们来看一个例子，在这个例子中按钮的单击事件从网络上下载一副图片并使用ImageView来展现这幅图片。代码如下：<pre>public void onClick( View v ) {
        new Thread( new Runnable() {
            public void run() {
                Bitmap b = loadImageFromNetwork();
                mImageView.setImageBitmap( b );
            }       
         }).start();
}</pre>
<p> 这段代码好像很好地解决了你遇到的问题，因为它不会阻塞UI线程。很不幸，它违背了单线程模型：Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。在这段代码片段中，在一个工作者线程中使用ImageView的方法，这回引起一些很古怪的问题。查处这个问题并修复这个bug会很困难而且也很耗时。
<p>Andriod提供了几种在其他线程中访问UI线程的方法。或许你已经对其中的一些方式很熟悉，但下面是一个更全面的列表：
<ul>
<li>Activity.runOnUiThread( Runnable ) 
<li>View.post( Runnable ) 
<li>View.postDelayed( Runnable, long ) 
<li>Hanlder </li></ul>
<p>上面的任何一个类或方法都可以修复我们前面代码中出现的问题。
<p>onClick( View v ) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Thread( new Runnable() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void run() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final Bitmap b = loadImageFromNetwork();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mImageView.post( new Runnable() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mImageView.setImageBitmap( b );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }).start();<br>}
<p>很不幸的是这些类或方法同样会使你的代码很复杂很难理解。然而当你需要实现一些很复杂的操作并需要频繁地更新UI时这会变得更糟糕。为了解决这个问题，Android 1.5提供了一个工具类：AsyncTask，它使创建需要与用户界面交互的长时间运行的任务变得更简单。
<p>在Android 1.0和1.1中具有与AsyncTask相同功能的类UserTask。它提供了完全一样的API，你需要做的只是把它的代码拷贝的你的程序中。
<p>AsyncTask的目标是替你管理你的线程。前面的代码可以很容易地使用AsyncTask重写。
<p>&nbsp;<pre>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 );
     }
}</pre>
<p>正如你看到的，使用AsyncTask必须要继承它。使用AsyncTask非常重要的是：AsyncTask的实例必须在UI线程中创建而且只能被使用一次。你可以使用预读AsyncTask的文档来来了解如何使用这个类，下面大概地了解一下它是如何工作的：
<ul>
<li>你可以使用泛型参数制定任务的参数、中间值（progress values）和任何的最终执行结果 
<li>doInBackground()方法会自动地在工作者线程中执行 
<li>onPreExecute()、onPostExecute()和onProgressUpdate()方法会在UI线程中被调用 
<li>doInBackground()方法的返回值会被传递给onPostExecute()方法 
<li>在doInBackground()方法中你可以调用publishProgress()方法，每一次调用都会使UI线程执行一次onProgressUpdate()方法 
<li>你可以在任何时候任何线程中取消这个任务 </li></ul>
<p>除了官方的文档，你可以阅读Shelves和Photostream源代码中的几个复杂的示例。我强烈地推荐阅读Shelves的源代码，它会使你知道如何在配置更改之间持久化任务以及在activity被销毁时正确的取消任务。
<p>不管是否使用AsyncTask，始终记住以下两个关于单线程模型的准则：不要阻塞UI线程以及一切Android UI操作都在UI线程中执行。AsyncTask仅仅是使你能够更容易地遵守这两条准则。
<img src ="http://www.blogjava.net/ponzmd/aggbug/312260.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2010-02-07 12:14 <a href="http://www.blogjava.net/ponzmd/archive/2010/02/07/312260.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android开发问题集结贴(持续更新)</title><link>http://www.blogjava.net/ponzmd/archive/2010/01/25/310742.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Mon, 25 Jan 2010 08:01:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2010/01/25/310742.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/310742.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2010/01/25/310742.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/310742.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/310742.html</trackback:ping><description><![CDATA[<p><strong>A1 .WARNING: Application does not specify an API level requirement! <br>ApiDemos] Device API version is 3 (Android 1.5)</strong> </p> <p>Q: AndroidManifest.xml中需指定users sdk &lt;uses-sdk android:minSdkVersion="3"/&gt;</p> <p>&nbsp;</p> <p><strong>A2: 模拟器设置上网代理</strong></p> <p>Q:启动模拟器时使用: emulator -avd your_avd_name -http-proxy <a href="http://name:password@10.10.10.10:3128">http://name:password@10.10.10.10:3128</a></p> <p>或者参考这里: 只加一次每次可用</p> <p>解决 Android 模拟器 无法上网问题 <a title="http://www.javaeye.com/topic/521023" href="http://www.javaeye.com/topic/521023">http://www.javaeye.com/topic/521023</a></p> <p>关键就是执行</p> <p>sqlite3 /data/data/com.android.providers.settings/databases/settings.db "INSERT INTO system VALUES(99,'http_proxy','10.193.xx.xx:1080')"  <p>&nbsp;</p> <p><strong>A3: Installation failed due to invalid APK file!</strong></p> <p>Q:在Eclipse中启动某应用的时候,出现如上错误. Installation failed due to invalid APK file!&nbsp; LogCat提示如下错误如下:</p> <p>01-26 07:59:28.466: ERROR/PackageParser(567): parsePackageName error: &lt;manifest&gt; specifies bad package name "com.android._ButtonStyle1": bad character '_'<br>01-26 07:59:28.466: ERROR/PackageManager(567): Couldn't find a package name in : /data/app/vmdl24363.tmp  <p>按照上面的提示,修改包名即可.  <p>&nbsp; <p><strong>A4: 启动AVD的时候出现的问题:Failed to find an AVD compatible with target 'Android 1.6' ，no compatible AVDs with target.</strong>  <p>Q:原因是AVD不在启动路径中,解决的办法找到".android"文件夹拷贝到贝到C:\Documents and Settings\当前用户下.修改下.android/avd里面以avd名命名的.ini文件中的path属性,修改为avd文件所在的位置.重启即可.</p> <p>&nbsp;</p> <p><strong>A5:Android出现Waiting for sdk to finish loading的解决办法</strong></p> <p>Q:原因是：你的Java编译环境和运行环境不对。<br>&nbsp;&nbsp;&nbsp; 解决办法：在WIndows下面使用统一的Java环境，我之前编译是JDK1.6，运行是JRE1.5。都调整为1.6就好了。</p> <p>&nbsp;</p> <p><strong>A6:Android官方网站无法访问,怎么办?</strong></p> <p>Q:访问官网镜像: <a title="http://androidappdocs.appspot.com/sdk/index.html" href="http://androidappdocs.appspot.com/sdk/index.html">http://androidappdocs.appspot.com/sdk/index.html</a> 即可.</p> <p>&nbsp;</p> <p><strong>A7:某些String.xml导入后出现如下错误提示：</strong></p> <p><strong>Description&nbsp;&nbsp;&nbsp; Resource&nbsp;&nbsp;&nbsp; Path&nbsp;&nbsp;&nbsp; Location&nbsp;&nbsp;&nbsp; Type<br>error: Apostrophe not preceded by \ (in Search' Titles)&nbsp;&nbsp;&nbsp; strings.xml&nbsp;&nbsp;&nbsp; /WikiNotes/res/values&nbsp;&nbsp;&nbsp; line 30&nbsp;&nbsp;&nbsp; Android AAPT Problem</strong>  <p>Q：原因符号”' ”,在xml中需要转义。只要将”' ” 修改为”\'”即可解决.  <p>&nbsp; <p><strong>A8:Android访问本地IP(localhost)</strong> <p>Q：Android模拟器启动后，默认IP为localhost，而PC端loaclhost被映射为10.0.2.2.</p><img src ="http://www.blogjava.net/ponzmd/aggbug/310742.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2010-01-25 16:01 <a href="http://www.blogjava.net/ponzmd/archive/2010/01/25/310742.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开通Android Market流程</title><link>http://www.blogjava.net/ponzmd/archive/2010/01/21/310319.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Thu, 21 Jan 2010 01:50:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2010/01/21/310319.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/310319.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2010/01/21/310319.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/310319.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/310319.html</trackback:ping><description><![CDATA[<p>前期准备:</p> <p>1. 申请一张支持Visa 或者 Master的国际信用卡. 注册Google checkout 需要使用到.</p> <p>Visa的相关介绍:</p> <blockquote> <p><a title="http://www.360doc.com/content/07/0406/21/10671_434257.shtml" href="http://www.360doc.com/content/07/0406/21/10671_434257.shtml">http://www.360doc.com/content/07/0406/21/10671_434257.shtml</a></p></blockquote> <p>2. 注册Google账号. 申请一个Google Mail账号即可(大家都应该有了)</p> <p>&nbsp;</p> <p>正式流程:</p> <p>1. 注册Google Checkout. <a href="http://checkout.google.com/">http://checkout.google.com/</a>. 注册时Local可能没有China,选择Hongkong就好.</p> <p>2.开通Android Market. 到 <a href="http://market.android.com/publish/signup">http://market.android.com/publish/signup</a> 填写基本信息,并通过你的CheckOut绑定信用卡支出25刀即可.Android　Market是不需要审核的,申请成功即可发布应用了.</p> <p>&nbsp;</p> <p>流程没有想象的复杂,希望大家都能加入.</p><img src ="http://www.blogjava.net/ponzmd/aggbug/310319.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2010-01-21 09:50 <a href="http://www.blogjava.net/ponzmd/archive/2010/01/21/310319.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>读专访Twitter界面设计师Vitor Lourenco的感悟</title><link>http://www.blogjava.net/ponzmd/archive/2010/01/05/308281.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Tue, 05 Jan 2010 07:20:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2010/01/05/308281.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/308281.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2010/01/05/308281.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/308281.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/308281.html</trackback:ping><description><![CDATA[<h3><br>Q：你的设计一贯以「简约」为基调。为什么相对于使用更多图像的方式，你倾向于此？<br>A：我相信一个优秀的网页介面应该是优雅含蓄的，从而将内容本身推向前台。一名设计师必须牢记，<strong><font color="#ff0000">多数情况下，用户浏览一个网站并非为了欣赏你天马行空的设计，而是做一件对他们有用的事。我很喜欢艾伦·库珀的一句话：「无论你的介面有多酷，简单一点总会更好</font></strong>」。</h3> <h3>感悟: 任何事情都要找出真正的需要,而不要被表面的符号所迷惑.</h3> <h3><br><font color="#ff0000"><strong>Q：对于踌躇于事业发展的年轻设计师们，你有什么建议？</strong></font><font color="#ff0000"><strong> <br>A：我建议他们做自己的项目。不要期待优质客户让你参与到好的项目中，这样的事情基本轮不到年轻人。现在就动手自己做点什么，你会学到很多，也会得到很多。</strong></font></h3> <p>感悟: 少点期待,多点实干,人生确是如此的.(自嘲:还没老到要考虑养老吧!)</p><img src ="http://www.blogjava.net/ponzmd/aggbug/308281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2010-01-05 15:20 <a href="http://www.blogjava.net/ponzmd/archive/2010/01/05/308281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>回归</title><link>http://www.blogjava.net/ponzmd/archive/2009/12/29/307638.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Tue, 29 Dec 2009 07:16:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2009/12/29/307638.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/307638.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2009/12/29/307638.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/307638.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/307638.html</trackback:ping><description><![CDATA[<p>有想开始写Blog了. </p> <p>转眼来深圳一年半了,和以前有了些变化,回顾并记录之.</p><img src ="http://www.blogjava.net/ponzmd/aggbug/307638.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2009-12-29 15:16 <a href="http://www.blogjava.net/ponzmd/archive/2009/12/29/307638.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>css透明遮蔽效果</title><link>http://www.blogjava.net/ponzmd/archive/2008/10/24/236297.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Fri, 24 Oct 2008 00:35:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2008/10/24/236297.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/236297.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2008/10/24/236297.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/236297.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/236297.html</trackback:ping><description><![CDATA[<blockquote>
<p>这段代码是通过lightbox2.02的源代码里面学习来的,主要要注意的地方是如果用overlayer包裹loadlayer层的话,loadlayer层会继承overlayer层的透明属性,而且这种继承后的透明属性很难屏蔽掉,比如在loadlayer上重新定义透明,新定义的透明不会有预期的效果.所以处理的时候必须要overlayer与loadbox分离来,单独来处理就不会出现上面的情况了.</p>
<p>效果:</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/css_758A/loading_2.png"><img style="border-width: 0px;" alt="loading" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/css_758A/loading_thumb.png" border="0" height="169" width="244" /></a> </p>
<p>具体代码如下:</p>
<p>&nbsp;</p>
<div class="csharpcode">
<pre><span class="lnum">   1:  </span><span class="kwrd">&lt;!</span><span class="html">DOCTYPE</span> <span class="attr">html</span> <span class="attr">PUBLIC</span> <span class="kwrd">"-//W3C//DTD XHTML 1.0 Transitional//EN"</span> <span class="kwrd">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">   2:  </span><span class="kwrd">&lt;</span><span class="html">html</span> <span class="attr">xmlns</span><span class="kwrd">="http://www.w3.org/1999/xhtml"</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">   3:  </span><span class="kwrd">&lt;</span><span class="html">head</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">   4:  </span><span class="kwrd">&lt;</span><span class="html">meta</span> <span class="attr">http-equiv</span><span class="kwrd">="Content-Type"</span> <span class="attr">content</span><span class="kwrd">="text/html; charset=utf-8"</span> <span class="kwrd">/&gt;</span></pre>
<pre><span class="lnum">   5:  </span><span class="kwrd">&lt;</span><span class="html">title</span><span class="kwrd">&gt;</span>loading demo<span class="kwrd">&lt;/</span><span class="html">title</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">   6:  </span><span class="kwrd">&lt;</span><span class="html">script</span> <span class="attr">type</span><span class="kwrd">="text/javascript"</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">   7:  </span>    <span class="kwrd">function</span> show(){</pre>
<pre><span class="lnum">   8:  </span>        <span class="kwrd">var</span> loadbox =document.getElementById(<span class="str">"loadlayer"</span>);</pre>
<pre><span class="lnum">   9:  </span>        <span class="kwrd">var</span> overlayer = document.getElementById(<span class="str">"overlayer"</span>);</pre>
<pre><span class="lnum">  10:  </span>        loadbox.style.display = <span class="str">"block"</span> ;</pre>
<pre><span class="lnum">  11:  </span>        overlayer.style.display = <span class="str">"block"</span> ;</pre>
<pre><span class="lnum">  12:  </span>    }</pre>
<pre><span class="lnum">  13:  </span>    </pre>
<pre><span class="lnum">  14:  </span>    <span class="kwrd">function</span> hide(){</pre>
<pre><span class="lnum">  15:  </span>        <span class="kwrd">var</span> loadbox =document.getElementById(<span class="str">"loadlayer"</span>);</pre>
<pre><span class="lnum">  16:  </span>        <span class="kwrd">var</span> overlayer = document.getElementById(<span class="str">"overlayer"</span>);</pre>
<pre><span class="lnum">  17:  </span>        loadbox.style.display = <span class="str">"none"</span> ;</pre>
<pre><span class="lnum">  18:  </span>        overlayer.style.display = <span class="str">"none"</span> ;</pre>
<pre><span class="lnum">  19:  </span>    }</pre>
<pre><span class="lnum">  20:  </span><span class="kwrd">&lt;/</span><span class="html">script</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">  21:  </span>&nbsp;</pre>
<pre><span class="lnum">  22:  </span><span class="kwrd">&lt;</span><span class="html">style</span> <span class="attr">type</span><span class="kwrd">="text/css"</span><span class="kwrd">&gt;</span>    </pre>
<pre><span class="lnum">  23:  </span>#overlayer{</pre>
<pre><span class="lnum">  24:  </span>    position: absolute;</pre>
<pre><span class="lnum">  25:  </span>    top: 50px;</pre>
<pre><span class="lnum">  26:  </span>    left: 0;</pre>
<pre><span class="lnum">  27:  </span>    z-index: 90;</pre>
<pre><span class="lnum">  28:  </span>    width: 100%;</pre>
<pre><span class="lnum">  29:  </span>    height: 100%;</pre>
<pre><span class="lnum">  30:  </span>    background-color: #000;</pre>
<pre><span class="lnum">  31:  </span>    filter:alpha(opacity=60);</pre>
<pre><span class="lnum">  32:  </span>    -moz-opacity: 0.6;</pre>
<pre><span class="lnum">  33:  </span>    opacity: 0.6;</pre>
<pre><span class="lnum">  34:  </span>    display:none;</pre>
<pre><span class="lnum">  35:  </span>    }</pre>
<pre><span class="lnum">  36:  </span>&nbsp;</pre>
<pre><span class="lnum">  37:  </span>#loadbox{</pre>
<pre><span class="lnum">  38:  </span>    position: absolute;</pre>
<pre><span class="lnum">  39:  </span>    top: 40%;</pre>
<pre><span class="lnum">  40:  </span>    left: 0;</pre>
<pre><span class="lnum">  41:  </span>    width: 100%;</pre>
<pre><span class="lnum">  42:  </span>    z-index: 100;</pre>
<pre><span class="lnum">  43:  </span>    text-align: center;</pre>
<pre><span class="lnum">  44:  </span>    }</pre>
<pre><span class="lnum">  45:  </span>&nbsp;</pre>
<pre><span class="lnum">  46:  </span>#loadlayer{</pre>
<pre><span class="lnum">  47:  </span>    display:none;</pre>
<pre><span class="lnum">  48:  </span>    }</pre>
<pre><span class="lnum">  49:  </span>&nbsp;</pre>
<pre><span class="lnum">  50:  </span><span class="kwrd">&lt;/</span><span class="html">style</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">  51:  </span><span class="kwrd">&lt;/</span><span class="html">head</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">  52:  </span><span class="kwrd">&lt;</span><span class="html">body</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">  53:  </span><span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="overlayer"</span><span class="kwrd">&gt;&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">  54:  </span><span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="loadbox"</span> <span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">  55:  </span>  <span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="loadlayer"</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">  56:  </span>      <span class="kwrd">&lt;</span><span class="html">img</span> <span class="attr">src</span><span class="kwrd">="loading.gif"</span> <span class="kwrd">/&gt;</span> </pre>
<pre><span class="lnum">  57:  </span>    <span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">  58:  </span><span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">  59:  </span>  <span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="containlayer"</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">  60:  </span>         <span class="kwrd">&lt;</span><span class="html">input</span> <span class="attr">type</span><span class="kwrd">="button"</span> <span class="attr">value</span><span class="kwrd">="show"</span> <span class="attr">onclick</span><span class="kwrd">="show()"</span> <span class="kwrd">/&gt;</span></pre>
<pre><span class="lnum">  61:  </span>        <span class="kwrd">&lt;</span><span class="html">input</span> <span class="attr">type</span><span class="kwrd">="button"</span> <span class="attr">value</span><span class="kwrd">="hide"</span> <span class="attr">onclick</span><span class="kwrd">="hide()"</span><span class="kwrd">/&gt;</span></pre>
<pre><span class="lnum">  62:  </span>        <span class="kwrd">&lt;</span><span class="html">br</span> <span class="kwrd">/&gt;</span></pre>
<pre><span class="lnum">  63:  </span>        <span class="kwrd">&lt;</span><span class="html">br</span> <span class="kwrd">/&gt;</span></pre>
<pre><span class="lnum">  64:  </span>        --------------------------------------------------------------------<span class="kwrd">&lt;</span><span class="html">br</span> <span class="kwrd">/&gt;</span></pre>
<pre><span class="lnum">  65:  </span>        --------------------------------------------------------------------<span class="kwrd">&lt;</span><span class="html">br</span> <span class="kwrd">/&gt;</span></pre>
<pre><span class="lnum">  66:  </span>        具体的网页内容.写在这里,上面通过一个半透明层遮蔽下面的内容<span class="kwrd">&lt;</span><span class="html">br</span> <span class="kwrd">/&gt;</span></pre>
<pre><span class="lnum">  67:  </span>  <span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">  68:  </span><span class="kwrd">&lt;/</span><span class="html">body</span><span class="kwrd">&gt;</span></pre>
<pre><span class="lnum">  69:  </span><span class="kwrd">&lt;/</span><span class="html">html</span><span class="kwrd">&gt;</span></pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style></blockquote>
<img src ="http://www.blogjava.net/ponzmd/aggbug/236297.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2008-10-24 08:35 <a href="http://www.blogjava.net/ponzmd/archive/2008/10/24/236297.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Netbean导入源代码和Javadoc</title><link>http://www.blogjava.net/ponzmd/archive/2008/04/19/194131.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Fri, 18 Apr 2008 17:11:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2008/04/19/194131.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/194131.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2008/04/19/194131.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/194131.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/194131.html</trackback:ping><description><![CDATA[<p>Google到的内容是这样:</p> <blockquote> <p>方法大致如下： <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、从主窗口中选择“工具”选项，然后点击“Java平台控制器”。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、在对话框的左面板中，选择要添加JavaDoc的平台。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、在“JavaDoc”标签中，单击“添加ZIP/文件夹”，然后指定JavaDoc文件的位置。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4、关闭对话框。 <br>这样就算完成。当选择对应的代码，使用快捷键Alt+F1时，就可以在浏览器中打开对应的帮助信息了。</p></blockquote> <p>如果这样能解决我也就不记在这里了. </p> <p>我在Netbeans6.01下面尝试导入javadoc和src都没有成功. </p> <p>最后成功导入的办法记录在下面. </p> <p><strong>1.从主窗口中选择“工具”选项，然后点击“库”。</strong></p> <p><strong>2.添加一个在对话框左面板中添加库,右面板中依次添加 jar,src,javadoc.</strong></p> <p><strong>3.关闭对话框.</strong></p> <p>这样如果导入的内容没有问题的话,应该就可以通过ctrl+shift+b查看相关方法的源代码,通过Alt+F1查看相关方法的Javadoc了. </p><img src ="http://www.blogjava.net/ponzmd/aggbug/194131.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2008-04-19 01:11 <a href="http://www.blogjava.net/ponzmd/archive/2008/04/19/194131.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>尽快去做</title><link>http://www.blogjava.net/ponzmd/archive/2008/04/15/192997.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Tue, 15 Apr 2008 01:39:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2008/04/15/192997.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/192997.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2008/04/15/192997.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/192997.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/192997.html</trackback:ping><description><![CDATA[<p>“<strong>在扭转公司颓势方面，我有很多经历，其中首先学会的是，如果你不得不做一些非常糟糕的事情，那就尽快去做并确保让所有人都知道你所做的以及为什么要这样做。当你在等待时机成熟以便推出大举措施的时候，无论是拖延问题、隐藏问题、还是零零星星地部分解决一个问题，总会带来负面效应。我相信最好的办法应该是，迅速地将问题置于脑后，继续前进。</strong>”</p> <blockquote> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ------引于郭士纳《谁说大象不能跳舞》</p></blockquote><img src ="http://www.blogjava.net/ponzmd/aggbug/192997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2008-04-15 09:39 <a href="http://www.blogjava.net/ponzmd/archive/2008/04/15/192997.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]提高Java水平的十大技术</title><link>http://www.blogjava.net/ponzmd/archive/2008/04/14/192774.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Mon, 14 Apr 2008 06:35:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2008/04/14/192774.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/192774.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2008/04/14/192774.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/192774.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/192774.html</trackback:ping><description><![CDATA[<p>本文列出了当今计算机软件开发和应用领域最重要十种关键技术排名，如果你想保证你现在以及未来的几年不失业，那么你最好跟上这些技术的发展。虽然你不必对这十种技术样样精通，但至少应该对它们非常熟悉。  <p>　　一、XML <p>　　在十种技术中，最重要的一种技术我想应该非XML莫属。这里不仅仅指XML规范本身，还包括一系列有关的基于XML的语言：主要有XHTML，XSLT，XSL，DTDs，XML Schema(XSD)，XPath，XQuery和SOAP.如果你现在还对XML一无所知，那么赶快狂补吧。XML是包含类似于HTML标签的一个文本文件，在这个文件中定义了一个树型结构来描述它所保存的数据。 <p>　　XML最大的优点是你既可以在这个文本文件中存储结构化数据，也可以在其中存储非结构化数据——也就是说，它能包含和描述"粗糙的"文档数据，就象它描述"规则的"表格数据一样。 <p>　　XHTML是目前编写HTML的首选方法;因为XHTML本身就是格式良好的XML，与通常畸形的HTML文档相比， XHTML格式文档更容易处理。 <p>　　XSLT和XSL是对XML文档进行转换的语言。它们可以将XML文档转换成各种格式，比如另一个文本文件、PDF文件、HTML文件、逗号分割的文件，或者转换成其它的XML文档。 <p>　　DTDs 和XML Schema用来描述XML文件所包含的数据内容的类型，使你不用编写定制的代码就能对XML文档的内容进行"有效性"检查，使内容强行遵守给出的规则。 <p>　　XPath 和 XQuery是查询语言，用它们可以从XML文档中吸取单个的数据项或者数据项列表。XQuery的功能特别强大，因为它对XPath查询进行了扩展。实际上，XQuery和XML的关系就像SQL之于关系数据库一样。 <p>　　SOAP是Web services间进行通讯的标准协议。你不必知道SOAP协议的所有细节，但是你应该熟悉其常用规则及其工作原理，这样你才能使用它。 <p>　　二、Web Services <p>　　Web服务是XML流行后的直接产物。因为XML可以描述数据和对象，XML大纲可以保证XML文档数据的有效性，因为XML的基于文本的规范，因而XML文档极其适合于作为一种跨平台通讯标准的基本格式。如果你还没有接触过Web服务，那么过不了多久你肯定会碰到它，所以必须熟练掌握Web服务，最好是精通它，因为它是迄今为止应用程序间跨不同种类机器、语言、平台和位置通讯的最简单的一种方式。不管你需不需要它，Web服务都会是将来互用性的主要趋势。 <p>　　XML工作组的John Bosak曾说过："XML使得Java有事可做"，那么，我们也可以说，Web服务使得所有语言都有事可做。Web服务让运行在大型机上的COBOL应用程序与运行在手持设备上的应用程序相互沟通;让Java小应用与。NET服务器相互通讯，让桌面应用与Web服务器进行无缝交互，不但为商业数据处理，同时也为商业功能提供了方便的实现——并且这种实现与语言、平台、和位置无关。 <p>　　三、面向对象编程 <p>　　许多程序员仍然认为OOP乃技术的象牙之塔，但是细细想一下过去十年里在面向对象领域里占据过统治地位的开发语言之后，你就不会这么认为了，OOP理念从Smalltalk开始，然后蔓延到C++和Pascal(Delphi)，到Java成为真正的主流，几年之后，VB.NET 和 C#的出现可以说是OOP发展到了登峰造极的地步。虽然使用这些语言不必了解OOP的概念，但如果你缺乏一些OOP的基本知识和方法，我想你很难在逐渐疲软的就业市场中找到工作。 <p>　　四、Java， C++， C#， VB.NET <p>　　如果你热衷于技术，并且热爱编程，那么我想你应该轻松玩转这些高级语言，我说的玩转并不一定要你成为超级编程高手。而是能看懂用这些语言编写的代码即可。如果你还有精力用它们编码那就更好了。其实这种机会甚少。但是看代码的机会很多，学习编程的最有效的一种方式就是看源代码——浩如烟海的源代码中很多都不是用你所钟爱的开发语言编写的。 <p>　　在过去的几年里，各个语言功能的发展基本上都差不多。现在你完全可以用VB.NET来写Windows服务、Web应用或者命令行程序。即使你只用其中的一种语言写程序。我认为也完全有必要学习另外一种语言，使自己能阅读和理解它们现有的例子代码，并且能将一种语言编写的代码转换成你首选的编程语言代码。这里列出的四种语言可谓是一个强大的开发语言工具箱，如果你掌握了它们，毫无疑问你一定是一个众人仰慕的高手。这里我要声明一下：那就是我并没有要忽略和排除其它的高级语言，如：FORTRAN、COBOL、APL、ADA、Perl和Lisp等等，根据你所从事的领域不同，应该选择适合的语言和工具。 <p>　　五、JavaScript <p>　　Java 和JavaScript两者的名字尽管很类似，但它们之间并没有什么关系。为什么一种脚本语言会如此重要，以至于将它列入十种关键技术之一呢?仔细想一下就知道了，目前所有主流的浏览器都使用JavaScript.如果你要编写Web应用程序，那么JavaScript不可或缺。此外，JavaScript还能作为一种服务器端的脚本语言，如将它嵌入在ASP、ASP.NET中，或者嵌入XSLT来扩展功能。目前JavaScript在Mozilla/Netscape中是激活基于XUL界面的首选语言，它派生出了ActionScript，成为Flash MX应用的编程语言。还有就是JavaScript极有可能成为未来新设备的脚本语言以及主流应用的宏语言。 <p>　　相比之下，VBScript虽然在微软的产品中得到很好的支持，但从长远来看，没有迹象表明它会有美好前途。微软自己都趋向于用JavaScript(或者用由JavaScript派生的JScript)来编写其客户端脚本代码。因此，如果你要选择脚本语言，非JavaScript莫属。 <p>　　六、Regular Expressions <p>　　从所周知，关系数据库的查询使用SQL，搜索XML文档用XPath 和XQuery，而正则表达式则用来搜索纯文本。例如，你可以用一个命令来查找或删除HTML格式文件中的注释内容。大家都用过"IndexOf"、"InStr"以及"Like"这些内建在JavaScript或VB中的文本搜索函数，这些函数虽然很容易使用，但是它们的功能却无法与正则表达式同日而语——现在每一种主流的开发语言都提供对正则表达式的存取。尽管有人认为正则表达式本身的读写艰涩难懂，但毕竟它的功能强大，使用它的领域也越来越多。 <p>　　七、Design Patterns <p>　　就像OOP通过创建和分类对象来简化编程一样，设计模式将普通的对象交互分类成指定的模型，这是一个从一般到具体的过程。OOP的成分使用得越多，设计模式就显得越有用武之地。所以你必须理解它们，跟上其总体理论的发展。 <p>　　八、Flash MX <p>　　当你需要比HTML和CSS所能提供的更多的客户端图形和编程能力时，Flash是最佳选择。在Flash中编程比用Java小应用或者。NET代码来得快得多，也容易得多。 <p>　　在最新版本中(MX)，Flash不仅可以画图和进行动画打包，它还是个高度的可编程应用环境。具备强大的与SOAP Web服务沟通的能力，可以调用运行在远端服务器上的ColdFusion、Java或。NET代码。可以说Flash几乎无处不在，包括手持设备、置顶盒、甚至是新的平板电脑，你到处都可以见到它的身影，所以使用它实际上可以扩展和延伸你的应用程序使用领域。 <p>　　九、Linux/Windows <p>　　这是当今PCs机操作系统的两大阵容，如果你想在计算机行业里混，就一定要熟悉它们。对于Linux，最好能自己安装，配置，下载它的图形用户界面以及一些应用程序。自己安装Apache并会编写Web应用程序。要清醒地认识到这个世界除了Windows之外，还有Linux的存在。并且这种局面将会长期存在。反过来，如果你是一个死忠的Linux开发者，不要再继续对Windows的憎恶，要相互学习，取长补短，看看Windows有什么好的东东可以采纳。记住Windows仍然是桌面之王。 <p>　　谁也说不准你们公司什么时候会决定从Linux转向Windows，或者从Windows转向Linux.谁也说不准什么时候你会跳槽跑到另外一个使用不同平台的公司上班——或者即便不跳槽，也有可能在不同平台上开始另外一个杀手级项目——所以最好在每个平台上都积累一些经验，而不要在一棵树上吊死。 <p>　　十、SQL <p>　　尽管SQL在当今众多的技术中已不是什么新东西，而且在未来的十年里它的作用很有可能被削弱，甚至整个被淘汰，但它仍然是一种基本技能——别看它是一种基本技能，至今仍有许多开发人员不懂什么是SQL或对它了解不多。不要指望基于图形用户界面的SQL构造器会帮你的忙，还是自己亲手写SQL查询吧，确定你掌握了SQL的基本语法。现在理解了SQL，不仅对以后学习XQuery有所裨益，而且可以使你很快找到简化或改进当前开发项目的途径。 <p>　　尾声：培养对技术的好奇心 <p>　　其实，不管技术的发展趋势如何，每个人最重要的一个技能是好奇心。敢于面对挑战，在你目前或未来的工作中，新语言或新技术可能很重要，也可能不怎么重要，你所学习的东西并不一定非要针对你的工作。不要怕失败，任何新的技术对初学者来说都是困难的。大多数的失败都可以归咎于本身急功近利，希望速成。俗话说——千里之行，始于足下，应该脚踏实地，一步一个脚印地往前走。不要让时间来左右你行动，而是要利用时间来关注、研究、测试新的开发技术和工具。</p><img src ="http://www.blogjava.net/ponzmd/aggbug/192774.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2008-04-14 14:35 <a href="http://www.blogjava.net/ponzmd/archive/2008/04/14/192774.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>青龙寺-樱花海</title><link>http://www.blogjava.net/ponzmd/archive/2008/04/07/191177.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Mon, 07 Apr 2008 01:53:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2008/04/07/191177.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/191177.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2008/04/07/191177.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/191177.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/191177.html</trackback:ping><description><![CDATA[<p>曾在青龙寺脚下租住过大概有半年的时间，当时也正好是樱花盛开的时节，每天早晨和黄昏我们都在青龙寺前的草坪中散步聊天，却未未曾用照片的形式记录下这青龙寺中的美景。在网络上见到网友发的青龙寺樱花美景，转贴至此，留恋青龙寺的那段日子。</p> <p>下面为转贴，原帖<a href="http://qbar.qq.com/xianeat/883.htm" target="_blank">在这里</a>。</p> <p>给各位观众简单介绍一下青龙寺。 <br>&nbsp;&nbsp; 青龙寺建于隋文帝开皇二年（528年），原名灵感寺，唐睿宗时期（711年）改名为青龙寺。它是唐代著名的佛寺之一，也是日本佛教真言宗的祖庭。青龙寺是日本人心目中的圣寺，日本从9世纪初起，曾派遣大批留学僧人到唐朝求法，其中以空海最著名。空海在青龙寺师从于密宗大师惠果，后将其传入日本，同时还把中国的文字书法，灌溉技术传回日本，并根据汉字创造了日文中的“片假名”促进了中日间的经济文化交流。青龙寺从宋代以后就已经荡然无存了，解放后经过勘察发据，探出了门塔，殿堂和廊庑等七处遗址，同时出土了部分文物。 <br>&nbsp;&nbsp;&nbsp; 1982年，中日两国在青龙寺遗址共同兴建了空海纪念碑和空海纪念堂，以纪念和发扬这位友好使者的精神。1986年，青龙寺保管所又从日本引进了万株樱花。每年樱花盛开的时候，这里格外吸引游人。（资料参考：《自游西安及周边》） <br>&nbsp;&nbsp;&nbsp; 走走走走走走，我们一同去郊游 <br>青龙寺的浪漫樱花海，还有一对新人在照婚纱照<img title="双击在新窗口按原始大小查看" src="http://edu.imgcache.qq.com/qzone/em/e13.gif">  <p><a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql1_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="196" alt="ql1" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql1_thumb.jpg" width="234" border="0"></a>&nbsp;<a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql2_4.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="176" alt="ql2" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql2_thumb_1.jpg" width="234" border="0"></a>  <p>&nbsp; <p>我喜欢的杨贵妃近照（樱花科系的一种）  <p><a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql3_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="340" alt="ql3" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql3_thumb.jpg" width="452" border="0"></a> <a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql5_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="340" alt="ql5" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql5_thumb.jpg" width="452" border="0"></a> <a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql4_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="340" alt="ql4" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql4_thumb.jpg" width="452" border="0"></a>  <p>我们登上了寺中阁楼  <p><a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql6_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="ql6" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql6_thumb.jpg" width="244" border="0"></a> <a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql7_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="ql7" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql7_thumb.jpg" width="184" border="0"></a></p> <p>&nbsp;</p> <p>旧唐回廊里，伟大的惠果大师和空海大师也就是我们大唐与日本大和的故事。空海大师即使日本的“孔子”。</p> <p>&nbsp;</p> <p><a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql8_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="340" alt="ql8" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql8_thumb.jpg" width="452" border="0"></a> </p> <p>历代有许多文人墨客很喜欢在青龙寺留下自己的诗迹，还记得李商隐（李义山）那首千古佳作《乐游原》吗？&nbsp;&nbsp; <br>向晚意不适，驱车登古原。夕阳无限好，只是近黄昏。&nbsp;&nbsp; <p><a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql9_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="452" alt="ql9" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql9_thumb.jpg" width="340" border="0"></a> </p> <p>“乐游原”即为此地。因汉宣帝曾在此地建造乐游苑，故又名乐游原。传说唐代大诗人白居易，舒元舆等都曾在青龙寺北住过。白居易在《青龙寺早夏》里描绘青龙寺的地势和风景日：“丹凤楼当后，青龙寺在前。市街尘不到，宫树影相连”。<br>再者，密宗的一些教徒喜欢到此地切磋密宗的咒语和幻术，青龙寺便成为密宗咒语幻术传播的源泉。图片是我永远也看不懂的密语宗书。  <p><a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql10_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="184" alt="ql10" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql10_thumb.jpg" width="244" border="0"></a> </p> <p>再来就是白丁香下的小吃街，我们在大树底下吃吃喝喝</p> <p><a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql12_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="452" alt="ql12" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql12_thumb.jpg" width="285" border="0"></a> </p> <p>寺里随处可见的历史遗迹，提醒我们中日两个民族始终保持着友好的关系。<a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql14_2.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="340" alt="ql14" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/f429d17d4190_88EF/ql14_thumb.jpg" width="452" border="0"></a> </p> <p>好了，到这里了，就到这里.</p><img src ="http://www.blogjava.net/ponzmd/aggbug/191177.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2008-04-07 09:53 <a href="http://www.blogjava.net/ponzmd/archive/2008/04/07/191177.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Nutch爬虫的工作过程</title><link>http://www.blogjava.net/ponzmd/archive/2008/04/02/190452.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Wed, 02 Apr 2008 12:53:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2008/04/02/190452.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/190452.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2008/04/02/190452.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/190452.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/190452.html</trackback:ping><description><![CDATA[<p>再来1号问题：爬虫的工作过程</p> <p>来个图：</p> <p><a href="http://www.ihooyo.com/wp-content/uploads/2008/04/workflow.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="333" alt="workflow" src="http://www.ihooyo.com/wp-content/uploads/2008/04/workflow-thumb.png" width="494" border="0"></a></p> <p>动作分解： <br>&lt;传言看源代码理解的更细致，不过偶没看，偶是根据文档和下午的操作总结的，错了请指正。&gt;</p> <p>1.创建空数据库Webdb：</p> <p>2.向Webdb中注入入口攫取地址：</p> <p>3.根据Webdb中数据生成fetchlist，并生成相应的segment。</p> <p>4.根据fetchlist攫取内容（fetched content）。</p> <p>5.根据获取内容更新Webdb</p> <p>6.重复执行3-5.这个过程<a href="http://blog.donews.com/52se/archive/2006/05/16/871487.aspx" target="_blank">52se</a>称为“产生/抓取/更新”循环。</p> <p>7.完成上面的循环后，根据Webdb中信息，如网页评分和链接信息等，再次更新segment.</p> <p>8.索引被攫取的页面，生成链接。</p> <p>9.去除indexes中重复的内容和链接。</p> <p>10.依靠indexes合成单一的index文件。大功告成。</p> <p>上面这些步骤都可以对应到Nutch给我们提供的CrawlTool中的命令上。</p> <p>爬虫忙完了，有了数据，我们就可以利用Nutch的search部分功能来查找内容了。</p> <p>&nbsp;</p> <p>参考：<a href="http://blog.donews.com/52se/archive/2006/05/16/871487.aspx">Nutch爬虫工作流程及文件格式详细分析</a></p> <h4><a href="http://today.java.net/pub/a/today/2006/01/10/introduction-to-nutch-1.html" target="_blank">Introduction to Nutch, Part 1: Crawling</a></h4><img src ="http://www.blogjava.net/ponzmd/aggbug/190452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2008-04-02 20:53 <a href="http://www.blogjava.net/ponzmd/archive/2008/04/02/190452.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Nutch的数据存储结构。</title><link>http://www.blogjava.net/ponzmd/archive/2008/04/02/190451.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Wed, 02 Apr 2008 12:52:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2008/04/02/190451.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/190451.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2008/04/02/190451.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/190451.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/190451.html</trackback:ping><description><![CDATA[<p>昨天睡觉前，总结了感兴趣的3个问题，现在来回顾一下</p> <p>1.爬虫工作的过程？</p> <p>2.爬虫获取数据后，数据的存储结构？</p> <p>3.数据如何索引成Lucene设定的索引格式？</p> <p>上午干工作耽误了，下午得闲，看点资料。试简单总结一下上面几个问题的。</p> <p>先回答2号问题，数据的存储结构好了。</p> <p>Nutch把爬虫找回来的资料做成了放在一个文件夹里面，美其名曰Web database。其实里面分别就四个文件夹了事。依次道来：</p> <ul> <li>crawldb：存放需要抓取的的超链接地址；  <li>segments：存放依据crawldb中提供的地址抓取到的内容信息。segments中的每个子文件夹存储fetcher根据crawldb抓取一次所得的内容。这些抓取的内容包括有content、crawl_fetch、crawl_generate、crawl_parse、parse_data、parse_text。其中content是抓取下来的网页内容；crawl_generate根据crawldb最初生成；crawl_fetch、content在抓取时生成；crawl_parse、parse_data、parse_text在解析抓取的数据文件时生成。其中crawl_generate、crawl_fetch和crawl_parse是crawldb的部分url数据，它们格式一样，不同的是抓取时间、状态、签名等有所变化。  <li>Index和indexes：Index是最终我们所需要得到的东西，而Index就是通过indexes合并的到的。  <li>Linkdb：linkdb中存放的是所有超链接及其每个链接的连入地址和锚文件。 </li></ul> <p>好了这个存储结构的问题完成了。</p> <p>抽空先写这么多，呆会有时间在继续。</p><img src ="http://www.blogjava.net/ponzmd/aggbug/190451.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2008-04-02 20:52 <a href="http://www.blogjava.net/ponzmd/archive/2008/04/02/190451.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Nutch0.9基本配置</title><link>http://www.blogjava.net/ponzmd/archive/2008/04/01/190147.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Tue, 01 Apr 2008 09:11:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2008/04/01/190147.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/190147.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2008/04/01/190147.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/190147.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/190147.html</trackback:ping><description><![CDATA[<p>下午配置成功了Nutch0.9.截图记录一下。</p>
<p><a href="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/Nutch0.9_F18A/nutchsuccess_2.jpg"><img style="border: 0px none ;" alt="nutchsuccess" src="http://www.blogjava.net/images/blogjava_net/ponzmd/WindowsLiveWriter/Nutch0.9_F18A/nutchsuccess_thumb.jpg" align="left" border="0" height="170" width="328" /></a> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>网络上面介绍这个配置的比较多，我就不重复劳动了。</p>
<p>推荐文档如下：Nutch Version 0.8x tutorial ，还有就是这里的篇<a href="http://hi.baidu.com/jgs80/blog/item/a248fffaf7d3f2dab48f3180.html" target="_blank">日志</a>。</p>
<p>我在这里记录一下遇到的几个错误和解决办法，大家可能有用。</p>
<p>如执行如下命令：<br />
./nutch crawl ../urls.txt&nbsp; -dir ../ihooyo&nbsp; -depth 5 -topN 100<br />
参数说明：<br />
-url 就是刚才我们创建的url文件,存放我们要抓取的网址<br />
-dir 指定抓取内容所存放的目录，如上存在mydir中<br />
-threads 指定并发的线程数<br />
-depth 表示以要抓取网站顶级网址为起点的爬行深度<br />
-topN 表示获取前多少条记录，可省</p>
<p>可能错误1：</p>
<p>Generator: jobtracker is 'local', generating exactly one partition.<br />
Generator: 0 records selected for fetching, exiting ...<br />
Stopping at depth=0 - no more URLs to fetch.<br />
No URLs to fetch - check your seed list and URL filters.<br />
crawl finished: sina5 </p>
<p>说明：指定要抓取的网址(url.txt)经过(crawl-urlfilters.xml)过滤后，已经没有可抓取对象了，检查两者的匹配即可。</p>
<p>可能错误2：</p>
<p>Dedup: starting<br />
Dedup: adding indexes in: ../ihooyo/indexes<br />
Exception in thread "main" java.io.IOException: Job failed!<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:604)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.nutch.indexer.DeleteDuplicates.dedup(DeleteDuplicates.java:439)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.nutch.crawl.Crawl.main(Crawl.java:135) </p>
<p>说明：一般为./conf/nutch-site.xml文件配置有错误。请参考如下配置修改。<br />
[xml]<br />
&lt;property&gt;<br />
&lt;name&gt;http.agent.name&lt;/name&gt;<br />
&lt;value&gt;ihooyo&lt;/value&gt;<br />
&lt;description&gt;&lt;/description&gt;<br />
&lt;/property&gt;<br />
&lt;property&gt;<br />
&lt;name&gt;http.agent.description&lt;/name&gt;<br />
&lt;value&gt;apersonblog&lt;/value&gt;<br />
&lt;description&gt;&lt;/description&gt;<br />
&lt;/property&gt;<br />
&lt;property&gt;<br />
&lt;name&gt;http.agent.url&lt;/name&gt;<br />
&lt;value&gt;www.ihooyo.com&lt;/value&gt;<br />
&lt;description&gt;&lt;/description&gt;<br />
&lt;/property&gt;<br />
&lt;property&gt;<br />
&lt;name&gt;http.agent.email&lt;/name&gt;<br />
&lt;value&gt;pjuneye@qq.com&lt;/value&gt;<br />
&lt;description&gt;&lt;/description&gt;<br />
&lt;/property&gt;<br />
[/xml]<br />
这种配置错误，在log日志中可找到提示。</p>
<p>可能错误3：</p>
<p>Injector: Converting injected urls to crawl db entries.<br />
Exception in thread "main" java.io.IOException: Job failed!<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:604)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.nutch.crawl.Injector.inject(Injector.java:162)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.nutch.crawl.Crawl.main(Crawl.java:115) </p>
<p>说明：一般为crawl-urlfilters.txt中配置问题，比如过滤条件应为<br />
+^<a href="http://www.ihooyo.com">http://www.ihooyo.com</a> ,而配置成了 <a href="http://www.ihooyo.com">http://www.ihooyo.com</a> 这样的情况就引起如上错误。</p>
<p>好了写完了。</p>
<img src ="http://www.blogjava.net/ponzmd/aggbug/190147.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2008-04-01 17:11 <a href="http://www.blogjava.net/ponzmd/archive/2008/04/01/190147.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Nutch初接触</title><link>http://www.blogjava.net/ponzmd/archive/2008/04/01/190136.html</link><dc:creator>过河卒</dc:creator><author>过河卒</author><pubDate>Tue, 01 Apr 2008 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/ponzmd/archive/2008/04/01/190136.html</guid><wfw:comment>http://www.blogjava.net/ponzmd/comments/190136.html</wfw:comment><comments>http://www.blogjava.net/ponzmd/archive/2008/04/01/190136.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ponzmd/comments/commentRss/190136.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ponzmd/services/trackbacks/190136.html</trackback:ping><description><![CDATA[<p>晚上花了将近两个小时的时间,看了网络上一些关于Nutch的介绍.<br>搞明白的几个问题:</p> <p>1.Nutch到底是什么?</p> <p>Nutch是一个开源的Java语言实现的搜索引擎。它通过完整功能的搜索系统。</p> <p>2.Nutch和Lucene到底是什么关系?两者如何取舍?</p> <p>Nutch基于Lucene，Lucene为Nutch提供文本索引和搜索API。两者的取舍问题在于Lucene不能够为你抓取数据，所以如果在有数据源的情况下最好的方式是使用Lucene API来建立索引，完成搜索。如果需要抓取数据的话，那自然是选择Nutch为好。</p> <p>3.Nutch的基本安装步骤?</p> <p>这个问题有官方文档。在这里。</p> <p>PS:似乎网络Nutch上最多的帖子就是关于这个的.其中比较有意思的就是摆脱Cgywin的一些方法,比如利用window批处理或者利用ant.个人还是觉得ant更通用.</p> <p>4.Nutch的基本组成?</p> <p>Nutch基本上两部分组成：抓取部分和搜索部分。抓取程序抓取页面并将抓取回来的数据做成反向索引；搜索程序则将反向索引搜索回答用户的请求。两者的关联部分在于索引。<br>具体内容还需要仔细看文档和介绍.</p> <p>5.Nutch文档集中地?<br><a href="http://wiki.apache.org/nutch/">http://wiki.apache.org/nutch/</a></p> <p>补充完成，今日继续。愚人节快乐!</p><img src ="http://www.blogjava.net/ponzmd/aggbug/190136.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ponzmd/" target="_blank">过河卒</a> 2008-04-01 16:50 <a href="http://www.blogjava.net/ponzmd/archive/2008/04/01/190136.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>