<?xml version="1.0" encoding="utf-8"?><logs><log><id>244</id><title><![CDATA[再见Windows]]></title><time>2010-8-31 22:56:54</time><category>我的日记</category><content><![CDATA[<p>这里的 Windows 是指 Microsoft 的那个 Windows。在领略了 Ubuntu 的桌面效果后，早就想把 Windows 弃用了，但考虑到有很多的资料不便移植，所以一直用盗版的 Windows 7。</p>
<p>前几由于安装了最新的 Mysql(5.5.5)和PHP(5.3.3)，导致我电脑上的 Apache 出了问题：PHP一旦操作 Mysql 就会出现&ldquo;无法显示该网页&ldquo;，什么错误代码都没有。正是这个问题，让我下载了N个版本的 Mysql，但都没能解决。终于，在我一遍又一遍的配置 Mysql 服务时，一不小心，之前的所有数据都被我彻底删除了。虽然用数据恢复工具把数据都恢复了，但是数据库的目录结构没有保存下来，真后悔自己习惯按&ldquo;Shift+Delete&ldquo;......</p>
<p>我把所有问题都归就于无辜的 Windows 上。这下没什么可顾虑的了，对于我这样不喜欢玩游戏的电脑用户，真不知道 Ubuntu 不能满足我的什么需求？于是带着懊恼，彻底删除了 Windows 7，安装了&ldquo;向往已久&rdquo;的 Ubuntu 桌面版。我并不熟悉 Ubuntu 的操作，一些配置，一边上网查找资料，就这样开始了我的 Ubuntu 之旅。</p>
<p>附：PHP操作Mysql时提示&ldquo;无法显示该网页&rdquo;的解决方法</p>
<p>最后证实，并非 Windows 的问题，而是 Mysql 5.0 以上的 lib(libmysql.dll) 文件导致的。重新下载了 Mysql 5.0.* 的 lib 文件，重启 Apache 后恢复正常。</p>]]></content><url>http://zhangqian.me/blogs/diary/{$LogUrlHtml}</url></log><log><id>243</id><title><![CDATA[与谷歌对话第二期]]></title><time>2010-8-10 18:28:23</time><category>我的日记</category><content><![CDATA[<p>再次收到了来自<a href="http://www.google.com/support/forum/p/webmasters?hl=zh-CN">谷歌网站管理员支持论坛</a>小组成员的邀请，将于下周与谷歌员工进行电话访谈交流。</p>
<p>谷歌网站管理员支持论坛近日又进行了一次&ldquo;超级用户&rdquo;的评选，此次评选出3位站长朋友，这是自上次以来谷歌管理员支持论坛第一次搞的活动。</p>
<p>此前，可能由于&ldquo;<a href="http://zhangqian.me/blogs/net/shut-down-google-cn.html">谷歌退出中国</a>&rdquo;的影响，官方论坛不仅冷清，而且还很混乱，里面充斥着各种各样的商业广告以及垃圾信息，此次活动可能是谷歌欲再次开展在华业务的信号，毕竟由于中国人口众多，不可忽视。</p>
<p>此次对话，我暂定于16日进行，主要讨论如何加强谷歌员工与超级用户之间的交流以及作为超级用户的感受和需求。</p>
<p>同时，也欢迎大家在评论中留下你们的问题，我将会在电话交流中向谷歌员工提出。</p>]]></content><url>http://zhangqian.me/blogs/diary/{$LogUrlHtml}</url></log><log><id>242</id><title><![CDATA[解决Win7刚开机svchost.exe进程CPU占用率100%的方法]]></title><time>2010-7-24 23:36:57</time><category>IT知识堂</category><content><![CDATA[<p><a href="http://zhangqian.me/tag/?tag=Windows+7">Windows 7</a> 操作系统在刚开机时，CPU 使用率高达 100%，持续将近 2 分钟左右，2 分钟的等待是漫长的。</p>
<p>Windows 7 可以说是&ldquo;新一代的 Windows 操作系统&rdquo;，其中有很多以前想都不敢去想的效果和功能，所以不论从速度还是性能方面，应该都会比 Windows XP 好很多，不然仅仅靠优美的水晶外观很难征服用户。</p>
<p>但 Win 7 刚开机时 CPU 使用率一直在 100%，大概持续将近 2 分钟之长，这就很不正常了。</p>
<p>中毒的情况在我身上可以排除，从我接触电脑以来，无论是公司还是个人，我使用的电脑从来没有中过病毒。那究竟什么样的程序会抢占 2 分钟之长的时间才可以完成加载呢？打开&ldquo;任务管理器&rdquo;发现有两个名为 <a target="_blank" href="http://baike.baidu.com/view/610308.htm">svchost.exe</a> 的进程，分别把 100% 的资源用尽了。</p>
<p>网上有的<a href="http://www.chedong.com/blog/archives/001286.html">资料</a>说是因为 Windows Updates 服务，是由于 Windows Update 服务下载/安装失败而导致更新服务反复重试造成的。我也试过这样做，但是没有任何改观。不过这个解决方法给了我很大的启示：svchost.exe 进程简单的说就是一个提供网络连接的接口，可能是由于很多个服务同时去试着连接网络而使得 CPUT 使用率增高到 100%。</p>
<p>那就从 Windows 的服务中入手吧，要想找到进行所对应的服务很简单。只需要打开&ldquo;Windows 任务管理器&rdquo;转到&ldquo;进程&rdquo;选项卡，选中需要查看服务的进程，然后点击鼠标右键，选择最下面的&ldquo;转到服务(S)&rdquo;，便会转到&ldquo;服务&rdquo;选项卡，并且默认选中 svchost.exe 进程所使用的服务。（见下图）</p>
<p style="text-align: center"><img border="0" alt="通过Windows 任务管理器来查看进行所使用的服务" src="/uploadFiles/201007/201007246k84dr.png" /></p>
<p style="text-align: center"><img border="0" alt="通过Windows 任务管理器来查看进行所使用的服务" src="/uploadFiles/201007/2010072441rloo.png" /></p>
<p style="text-align: left">此时，你便可以根据&ldquo;Windows 任务管理器&rdquo;中的分析情况，把服务设置为&ldquo;手动启动&rdquo;，这样开机 CPU 占用 100% 的问题便可以解决了。</p>
<p style="text-align: left"><span style="color: #ff0000">注意，执行服务的设置时，仔细看&ldquo;服务管理器&rdquo;中对服务的详细描述，一定要谨慎操作。</span></p>]]></content><url>http://zhangqian.me/blogs/IT/{$LogUrlHtml}</url></log><log><id>241</id><title><![CDATA[茉莉龙珠绿茶]]></title><time>2010-7-16 19:08:17</time><category>我的日记</category><content><![CDATA[<p style="text-align: center"><img border="0" alt="我的木子茶业-茉莉龙珠" src="/uploadFiles/201007/20100716lea6gw.jpg" /></p>
<p>今天一大早，我便收到了EMS寄来的快件：茶，是一包 100% 福建原产的&ldquo;茉莉龙珠&rdquo;绿荼。</p>
<p>这是 <a href="http://www.mymuzi.com">我的木子茶叶</a> 的馆主送给我的。</p>
<p>我不是一个懂得品茶的人，对于我来说，茶水除了比白开水好喝外，没有什么特别之处。但我很喜欢茶的香味，所以也会经常喝茶，但喝的是那种5元一盒的茉莉花茶，与 Yuan 送给我的茉莉花茶是没得比的（要100多呢，肯定没得比了...）。</p>
<p>赶紧打开泡一杯来尝尝。第一次看到做工如此好的茶，外形圆紧，白毫显露，形似珍珠（这些形容词是抄包装上的，但确实圆圆的、一粒粒的像珍珠一样）。取茶数粒放入杯中，倒入开水后，杯中的茶渐渐下沉并舒展开来，一股淡而雅的茉莉花香四溢开来；饮后满口清香，甚是回味。</p>]]></content><url>http://zhangqian.me/blogs/diary/{$LogUrlHtml}</url></log><log><id>240</id><title><![CDATA[新的博客主题]]></title><time>2010-7-4 19:12:46</time><category>维护手册</category><content><![CDATA[<p>前段时间，为了考验一下自己的对 Java 技术的了解，便用 Java EE&nbsp;写了一个博客程序，其中用的样式就是现在博客使用的样式，这个样式是我从 <a href="http://www.mattcutts.com/blog/">Matt Cutts</a> 的博客下扒下来的，此乃使用的是&ldquo;照猫画虎&rdquo;之术。对于我来说&ldquo;照猫画虎&rdquo;甚是简单，但自己做一个不错的主题，比登天还要难。</p>
<p>Java EE 版的博客完成后，发现代码甚是凌乱，虽然在其中用到了一些 MVC 的框架，但感觉与 Model 2 还相差甚远。</p>
<p>想要使用新的博客程序，但考虑到环境的搭建和在使用中可能会出现各种各样未知的问题，毕竟是一个很不成熟的程序，于是便放弃了使用。</p>
<p>又想要使现在的博客换个样子，于是便采用了这套新的主题。之前的 js 代码甚是混乱，所以把 js 的代码也换了。</p>
<p>评论部分也有了小小的改变，采用返回 json 格式信息的方法来判断和显示评论的发表情况。</p>]]></content><url>http://zhangqian.me/blogs/{$LogUrlAsp}</url></log><log><id>239</id><title><![CDATA[EL自定义函数]]></title><time>2010-6-22 20:17:25</time><category>IT知识堂</category><content><![CDATA[<p>JSP 标准标记库 (JSTL) 是自定义标记库的集合，它将许多 JSP 应用程序通用的核心功能封装为简单的标记，但有时候仍然无法满足我们的需求，这时候就要用到 EL 的自定义函数了。</p>
<p>创建 EL 自定义函数只需简单 3 步就可以轻松完成了。</p>
<p>1、新建一个类：</p>
<pre><code class="java">package me.zhangqian.util;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public final class DateTimeFormat {

	private static SimpleDateFormat format;
	
	/**
	 * 将日期和时间格式化为字符串
	 * @param date 需要格式化的日期和时间
	 * @param pattern 日期和时间的格式
	 * @return 格式化后的字符串
	 */
	public static String date2str(Date date, String pattern) {
		if (date == null) date = new Date();
		format = new SimpleDateFormat(pattern, Locale.US);
		return format.format(date);
	}
}</code></pre>
<p>2、在/WEB-INF目录下新建一个 tld 文件：</p>
<pre><code class="tld">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;taglib version=&quot;2.1&quot; xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot;
 xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd&quot;&gt;
 &lt;tlib-version&gt;1.0&lt;/tlib-version&gt;
 &lt;short-name&gt;format&lt;/short-name&gt;
 &lt;function&gt;
 	&lt;description&gt;格式化日期和时间&lt;/description&gt;
 	&lt;name&gt;date2str&lt;/name&gt;
 	&lt;function-class&gt;me.zhangqian.util.DateTimeFormat&lt;/function-class&gt;
 	&lt;!-- 方法 --&gt;
 	&lt;function-signature&gt;
 		java.lang.String date2str(java.util.Date, java.lang.String)
 	&lt;/function-signature&gt;
 &lt;/function&gt;
&lt;/taglib&gt;</code></pre>
<p>3、将 tld 文件引入到要使用的 jsp 页面，并进行使用：</p>
<pre><code class="java">&lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=utf-8&quot; pageEncoding=&quot;UTF-8&quot; %&gt;
&lt;%@ taglib prefix=&quot;bean&quot; uri=&quot;http://struts.apache.org/tags-bean&quot; %&gt;
&lt;%@ taglib prefix=&quot;html&quot; uri=&quot;http://struts.apache.org/tags-html&quot; %&gt;
&lt;%@ taglib prefix=&quot;logic&quot; uri=&quot;http://struts.apache.org/tags-logic&quot; %&gt;
&lt;%@ taglib uri=&quot;http://java.sun.com/jstl/core_rt&quot; prefix=&quot;c&quot;%&gt;
&lt;%@ taglib prefix=&quot;format&quot; uri=&quot;/WEB-INF/datetimeformat.tld&quot; %&gt;
&lt;c:set var=&quot;date&quot; value=&quot;&lt;%= new java.util.Date()%&gt;&quot;/&gt;
${format:date2str(date,'MMMM dd, yyyy')}</code></pre>]]></content><url>http://zhangqian.me/blogs/IT/{$LogUrlHtml}</url></log><log><id>238</id><title><![CDATA[借钱很难]]></title><time>2010-6-18 13:41:16</time><category>我的日记</category><content><![CDATA[<p>家里盖房子，工程现急用钱（问我要3000元），我也仅剩2000元了。亲戚们没有去指望，父亲住院时就没人愿意借给我钱，现在父亲不在了，更没有什么感情了；所以只好向关系好点的朋友开口了，给的答复却都一样&ldquo;没钱！&rdquo;</p>
<p>确实，对于像我这个年纪的人，即使已经工作了，大多也是赚多少花多少，根本不会有存款。很少会有人像我这样，为了省钱走半小时以上的路程去上班，为了省钱从来不吃早饭，为了省钱每吨饭除了4.5块的面还是4.5块的面，甚至为了省钱把烟也戒了。</p>
<p>朋友们向我借钱时，我总是傻乎乎的报一下我的家底，对方如果给我一个还钱的期限（如：我肯某某某的时候还你钱），尽管这个还钱的期限没有任何意义，我便会把钱借出去，半年、一年也要不回来。在现在急需用钱的这种情况下，还是一而再再而三的拖延下去。人家说没钱还，我也不能硬要，只好自己厚着脸皮去借钱了。</p>
<p>别人向我借钱就特别容易，我向别人借钱就如此难...？</p>
<p>最后，感谢一下我的好朋友刘晨军、郭伟，谢谢你们对我的关心和帮助。</p>]]></content><url>http://zhangqian.me/blogs/diary/{$LogUrlHtml}</url></log><log><id>237</id><title><![CDATA[真正的适合个人博客的域名]]></title><time>2010-6-17 13:17:00</time><category>维护手册</category><content><![CDATA[<p>没错，我的博客启用了新的域名：<a href="http://zhangqian.me">zhangqian.me</a>！</p>
<p>为什么选择.me域名？me就是我，而且.me域名是一种新推出的域名，所以资源非常多，更重要的是价格也比较合适，<a href="http://www.godaddy.com">godaddy</a> 的注册价格是$8.99/首年，折合人民币60元左右。查了一下<a target="_blank" href="http://www.net.cn">万网</a>的注册价格为 320元/年。</p>
<p>第一次在 godaddy 购买域名，是通过 <a href="http://www.alipay.com">alipay</a> 支付的，从购买到解析没有遇到什么问题。现在已经把旧的域名做了301重定向，在谷歌网站管理员工具中也做了相应的调整，应该很快谷歌中就会重新索引，之前的域名 xixuyishi.com 还将继续使用。</p>
<p><strong>望交换了友情链接的朋友对链接更新一下。</strong></p>]]></content><url>http://zhangqian.me/blogs/{$LogUrlAsp}</url></log><log><id>236</id><title><![CDATA[Win7操作系统搜索功能不可用的修复方法]]></title><time>2010-6-10 22:20:20</time><category>IT知识堂</category><content><![CDATA[<p>可能遇到此问题的朋友并不多，我是这么认为的。</p>
<p>前几个月我就发现我的电脑中不可以使用搜索功能，由于没有对搜索功能有太大的需求，在Google中查找了很久后没找到答案，类似的问题也不多，我便以为可能是电脑一时的问题，或者Win7的搜索就有Bug，于是便放弃了。但随着电脑中的学习资料的增加，想要找特定的资料时由于文件名的命名都是以01、02这样的数字开头的，这样之前使用按文件名排序的功能也无法将同类的资料很好的排列出来了。只好再继续搜索解决方法了，最后终于找到了解决方法。但是通过一个非常不&ldquo;主流&rdquo;的关键字找不到，所以特写此文，希望可以帮到有需要的朋友:)</p>
<p>主要是对注册表的修复，所以直接上附件了：<a target="_blank" href="http://xixuyishi.com/uploadFiles/201006/20100610f8xvsn.rar">修复Windows 7搜索功能</a></p>
<p>如果不想下载附件的朋友可以继续往下看，下面有注册表的修改方法。</p>
<p>按键盘win+r以调出运行对话框，输入regedit打开注册表，然后找开 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace ，根据下面的信息检查你的注册表是否正确（以下的注册表项是与Win7搜索功能相关的）</p>
<pre><code class="reg">Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{04731B67-D933-450a-90E6-4ACD2E9408FE}]
@=&quot;CLSID_SearchFolder&quot;

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{4336a54d-038b-4685-ab02-99bb52d3fb8b}]
@=&quot;Public folder&quot;

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{daf95313-e44d-46af-be1b-cbacea2c3065}]
@=&quot;CLSID_StartMenuProviderFolder&quot;</code></pre>
<p>以上是注册表文件的代码，你可以根据内容自行修改，也可以下载前面提供的附件。如果上面的已经修改完了，那么我们继续吧！</p>
<p>这些项目和值都比较长，所以建议直接下载附件或者将下面的内容复制一下，然后自己创建一个.reg的注册表文件，导入即可。</p>
<pre><code class="reg">;04731B67-D933-450a-90E6-4ACD2E9408FE.reg
;==========================================================
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{04731B67-D933-450a-90E6-4ACD2E9408FE}]
@=&quot;CLSID_SearchFolder&quot;
&quot;LocalizedString&quot;=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,\
  6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,\
  00,5c,00,53,00,65,00,61,00,72,00,63,00,68,00,46,00,6f,00,6c,00,64,00,65,00,\
  72,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,33,00,30,00,35,00,32,00,33,00,00,\
  00

[HKEY_CLASSES_ROOT\CLSID\{04731B67-D933-450a-90E6-4ACD2E9408FE}\DefaultIcon]
@=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,\
  00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,53,00,\
  65,00,61,00,72,00,63,00,68,00,46,00,6f,00,6c,00,64,00,65,00,72,00,2e,00,64,\
  00,6c,00,6c,00,2c,00,2d,00,33,00,32,00,33,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{04731B67-D933-450a-90E6-4ACD2E9408FE}\InProcServer32]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,53,00,65,00,\
  61,00,72,00,63,00,68,00,46,00,6f,00,6c,00,64,00,65,00,72,00,2e,00,64,00,6c,\
  00,6c,00,00,00
&quot;ThreadingModel&quot;=&quot;Apartment&quot;

[HKEY_CLASSES_ROOT\CLSID\{04731B67-D933-450a-90E6-4ACD2E9408FE}\ShellFolder]
&quot;Attributes&quot;=dword:20180000

;4336a54d-038b-4685-ab02-99bb52d3fb8b.reg
;==========================================================

[HKEY_CLASSES_ROOT\CLSID\{4336a54d-038b-4685-ab02-99bb52d3fb8b}]
@=&quot;Public Folder&quot;
&quot;LocalizedString&quot;=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,\
  6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,\
  00,5c,00,73,00,68,00,65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,\
  2c,00,2d,00,39,00,31,00,31,00,33,00,00,00
&quot;SortOrderIndex&quot;=dword:0000004c

[HKEY_CLASSES_ROOT\CLSID\{4336a54d-038b-4685-ab02-99bb52d3fb8b}\InProcServer32]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
  64,00,6f,00,63,00,76,00,77,00,2e,00,64,00,6c,00,6c,00,00,00
&quot;ThreadingModel&quot;=&quot;Apartment&quot;

[HKEY_CLASSES_ROOT\CLSID\{4336a54d-038b-4685-ab02-99bb52d3fb8b}\Instance]
&quot;CLSID&quot;=&quot;{F3364BA0-65B9-11CE-A9BA-00AA004AE837}&quot;

[HKEY_CLASSES_ROOT\CLSID\{4336a54d-038b-4685-ab02-99bb52d3fb8b}\Instance\InitPropertyBag]
&quot;TargetKnownFolder&quot;=&quot;{DFDF76A2-C82A-4D63-906A-5644AC457385}&quot;
&quot;Attributes&quot;=&quot;0x00000011&Prime;
&quot;DescriptionID&quot;=&quot;0x3&Prime;

[HKEY_CLASSES_ROOT\CLSID\{4336a54d-038b-4685-ab02-99bb52d3fb8b}\ShellFolder]
&quot;Attributes&quot;=dword:f094010d
&quot;WantsFORPARSING&quot;=&quot;&quot;

;daf95313-e44d-46af-be1b-cbacea2c3065.reg
;==========================================================

[HKEY_CLASSES_ROOT\CLSID\{daf95313-e44d-46af-be1b-cbacea2c3065}]
@=&quot;CLSID_StartMenuProviderFolder&quot;

[HKEY_CLASSES_ROOT\CLSID\{daf95313-e44d-46af-be1b-cbacea2c3065}\DefaultIcon]
@=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,\
  00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,53,00,\
  65,00,61,00,72,00,63,00,68,00,46,00,6f,00,6c,00,64,00,65,00,72,00,2e,00,64,\
  00,6c,00,6c,00,2c,00,2d,00,33,00,32,00,33,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{daf95313-e44d-46af-be1b-cbacea2c3065}\InProcServer32]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,53,00,65,00,\
  61,00,72,00,63,00,68,00,46,00,6f,00,6c,00,64,00,65,00,72,00,2e,00,64,00,6c,\
  00,6c,00,00,00
&quot;ThreadingModel&quot;=&quot;Both&quot;

[HKEY_CLASSES_ROOT\CLSID\{daf95313-e44d-46af-be1b-cbacea2c3065}\ShellFolder]
&quot;Attributes&quot;=dword:20180000</code></pre>
<p><span style="color: #ff0000">注：文件导入的时候可能会提示&ldquo;无法导入&rdquo;的错误信息，你可以在安全模式下修改。也可以不用理会，没有导入的项目说明是已经存在并且使用中的项目，所以不会产生影响。</span></p>]]></content><url>http://zhangqian.me/blogs/IT/{$LogUrlHtml}</url></log><log><id>235</id><title><![CDATA[使用JAVA请求需要Basic身份验证的网页]]></title><time>2010-6-7 21:03:41</time><category>IT知识堂</category><content><![CDATA[<p>通过JAVA抓取页面时，有些页面会返回401（Unauthorized）响应状态码和www-authenticate响应头来要求客户端进行身份认证。这种认证有两种方式：BASIC和DIGEST，BASIC验证要求客户端对用户名和密码进行BASE64编码后传送给服务器。DIGEST的认证方式的细节比较复杂，会经过一系列的加密，所以很难被破译。</p>
<p>JAVA提供一个用于启用身份认证的类，可以支持HTTP协议中的多个认证方式，这个类是<strong>java.net.Authenticator</strong>，使用方法如下：</p>
<pre><code class="java">package com.xixuyishi;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Authenticator;
import java.net.PasswordAuthentication;
import java.net.URL;

public class RunHttpSpnego {

	static final String kuser = &quot;username&quot;; // 用户名
	static final String kpass = &quot;password&quot;; // 密码
	static class MyAuthenticator extends Authenticator {
		
		@Override
		public PasswordAuthentication getPasswordAuthentication() {
			return (new PasswordAuthentication(kuser, kpass.toCharArray()));
		}
	}

	public static void main(String[] args) throws Exception {
		Authenticator.setDefault(new MyAuthenticator());
		URL url = new URL(args[0]);
		InputStream ins = url.openConnection().getInputStream();
		BufferedReader reader = new BufferedReader(new InputStreamReader(ins));
		String str;
		while ((str = reader.readLine()) != null)
			System.out.println(str);
	}
}</code></pre>
<p>只需要创建一个继续自Authenticator的类，并且重写其中的getPasswordAuthentication()方法，将用户名和密码放入方法中，这样在需要使用身份认证的地方实现这个类就可以了。</p>]]></content><url>http://zhangqian.me/blogs/IT/{$LogUrlHtml}</url></log><log><id>234</id><title><![CDATA[日记一则 10年5月1日]]></title><time>2010-5-1 22:50:50</time><category>我的日记</category><content><![CDATA[<p>感谢朋友们对我的关心。</p>
<p>房子已经上了梁了。原本打算只上梁就打算完工，但如果以后再动工的话会有很多麻烦，农村里有些事情很复杂，也会产生一些不必要的花销，所以想要尽量把房子盖好，能够住人就可以了，不需装潢。</p>
<p>昨天把安装铝合金门窗的活计揽了出去。原本打算想要装平开窗，但考虑到平开窗开扇有限制，便定了装抽拉窗，中空玻璃的那种，每平方米是225元。颜色是白色的，现在又考虑到怕褪色，又不愿意安了，但是已经交了1000元的订金。其实不是很愿意让现在的这家做，据了解，这家做出来的质量不是特别好，等再和那边商议看吧。如果有懂铝合金的朋友给我点参考:)</p>
<p>这段时间白天有很多杂乱的事情要做，晚上会用来学习j2me，j2me了解完后会再去了解一下j2ee，反正趁着不能出去打工的机会狠狠的学习吧。</p>]]></content><url>http://zhangqian.me/blogs/diary/{$LogUrlHtml}</url></log><log><id>233</id><title><![CDATA[日记一则 10年3月27日]]></title><time>2010-3-27 22:38:26</time><category>我的日记</category><content><![CDATA[<p>有相当长的一段时间没有更新博客了，有很多朋友关切的发来信息问候，在此感谢朋友们对我的关心！</p>
<p>2010年年初就开始忙着盖房子了，后天就准备开始垒墙，这两天每天都很累，所以晚上除了看看电影，不会做其他事。至于为什么盖房子？我相信一直关注我的朋友应该会有所了解。父亲在去世时把砖和钢筋都买下了，就是为了把家里的土房重建了，但父亲不幸去世了。砖和钢筋都不能放的时间太长，怕有损耗，因此，盖房子成了我今年必须完的一件事。</p>
<p>盖房子需要花多少钱呢？我家从北至南是18.2米，房子的内径准备盖5.5米，一共是4间房，2套家。垒墙和打顶用水泥、石粉和砂子。具体多少钱我并不清楚，而且我也并没有太多的钱。听一些长辈说，只把房子建成来，不装修、不贴瓷砖之类的，差不多要花15000左右。我现在手头上也只有不到5000块钱，借出去有8000多块。可能的话我再问朋友或者亲戚借点，或者盖房子所需的工钱可以暂时欠一部分，眼下只能这样。而且借出去的钱也不好要，有个同学问我借了2800多元，但我现在联系不上他。年初时给他去过一次电话，他说钱可以马上还上，但现在还没有任何音信。听和他在一起的朋友说，一直躲着我......</p>
<p>PS：谷歌真的退出中国了，今天才发现，访问<a href="http://www.gogole.cn">www.gogole.cn</a>时会自动跳转到<a href="http://www.google.com.hk">www.google.com.hk</a>，可见谷歌中国已经将服务器迁至香港了，很庆幸中国用户还可以继续访问。更详细的情况可见&ldquo;<a href="http://www.google.com/press/new-approach-to-china/update.html">关于谷歌中国的最新声明</a>&rdquo;。</p>]]></content><url>http://zhangqian.me/blogs/diary/{$LogUrlHtml}</url></log><log><id>232</id><title><![CDATA[童年趣事之垒旺火]]></title><time>2010-2-28 21:30:12</time><category>我的日记</category><content><![CDATA[<p>今天是农历正月十五元宵节，是中国民俗传统节日。</p>
<p>元宵节习俗在全国各地也不尽相同，我们这里元宵节给我印象最深的就是&ldquo;垒旺火&rdquo;！以此来祝愿新的一年&ldquo;旺气冲天&rdquo;。</p>
<p>之所以写篇文章的原因是因为今天一整天下雪，村里的街上都没有一堆旺火，所以回味一下垒旺火的美好回忆！</p>
<p>儿时，元宵节是我们最开心的节日之一，左邻右舍的人们聚集到一堆旺火前，放鞭炮、烤&ldquo;元宝（形状像元宝的面食）&rdquo;。</p>
<p>旺火是我和一条巷子里的儿时的玩伴垒的！</p>
<p>正月十五下午4点左右，我和玩伴便去邻居家里&ldquo;借炭&rdquo;。我们去取炭时并不会去找大人，只是到各家的炭窑子里偷一两块就往出跑，可能那时候太顽皮了！记得有一年，我们还拿着捡来的破盆子，挨家挨户的在大门口一边敲打，一边偷炭！</p>
<p>炭准备好了，我们便开始垒了。</p>
<p>首先用小块的炭在顶层垒成一个大的圆形，然后将一些柴火和木块放到圈内，然后在垒第二层......直至垒成一个锥形，然后再在顶部放一块大的炭块。这样旺火就垒好了。</p>
<p>旺火垒好后，太阳也已经落山了。</p>
<p>这时旺火旁已经聚集了左邻右舍的叔叔阿姨们，人们都把各家的鞭炮和&ldquo;元宝&rdquo;拿出来，将各家的&ldquo;元宝&rdquo;和&ldquo;毛篮（这个读音，但不肯定是这两个字）&rdquo;放到旺火上烤干，开始享受&ldquo;旺气&rdquo;。</p>
<p>注：&ldquo;元宝&rdquo;和&ldquo;毛篮&rdquo;分别是样子像元宝和篮子的面食，春节前每家都会做，&ldquo;元宝&rdquo;是男孩子吃的，&ldquo;毛篮&rdquo;是女孩子吃的，而且必须正月十五这天用火烤过后才可以吃。这是我们村的节俗。</p>]]></content><url>http://zhangqian.me/blogs/diary/{$LogUrlHtml}</url></log><log><id>231</id><title><![CDATA[2010年人口普查，妹妹的户口有了着落]]></title><time>2010-2-9 21:32:46</time><category>我的日记</category><content><![CDATA[<p>父亲在世时虽然缴了罚款，但出于种种顾虑，一直没有给妹妹办理落户手续。妹妹的户口也是父亲过世后我一直很头疼的一件事。父亲去世后不久，我在一个很少开户的柜子里翻到了妹妹的出生证明，便多次到村委会询问办理落户的情况，但村委会也不知道具体该怎么办理，便一直拖到现在。</p>
<p>前几天听村里的广播吆喝：1月12日要进行人口普查，没有办理户口的在5号到10号去大队进行登记。之前听一些朋友说人口普查时办理落户手续很好办理，还可能不收费，所以也想趋着这10年一次的人口普查给妹妹把户口办理了，便拿着出生证明去大队进行了登记。今天我又去大队询问具体情况，副村长说缴了罚款便可以办理了，我可以直接到董村（镇）派出所去办理手续。村里人都知道我家里的情况，村长便开了一个证明，希望可以少收些罚款。</p>
<p>下午2点左右我便带着户口薄、妹妹的出生证明和大队开的证明赶到了镇里面。到了派出所已经3点了，可是派出所的大门还是紧锁着，一直等到4点派出所才开始工作。给办理落户手续的是董村镇派出所的所长，我把证明和资料交上去后，他又打电话向村长证实了一下情况。然后对我说：&ldquo;可以办理，但要缴罚款（我想这个罚款可能是社会抚养费），每年60元，1995年出生到现在应该缴900多元的罚款。&rdquo;，我向所长说了一下我的家庭困难，是否可以减少一些，他说可以，问我身上拿了多少钱。我当时一共拿的1000元，姐姐说1000左右就办了吧，但我当时肯定说多少他要多少，所以我便告诉他我没带钱，是先过来问一下看合适不合适。所以后来又告诉我可以收700元，我便假装回去取钱。</p>
<p>回家的路上看到郭伟（我的好朋友）在家，便去他家里坐了坐，和他说了我来办户口的事情。他爸爸认识的人多，所以他就让他爸爸和我一块去看能不能再少罚一些钱。我和郭伟爸爸到了派出所后，他爸给了所长一盒烟，示意所长再少要一些罚款。俗话说&ldquo;拿人钱财，替人消灾&rdquo;，所长说可以收600元。跟政府的人打交道，人家说多少就是多少了，不像菜市场买菜，可以讨价还价，我们也便不好再说什么，只好定下600元了。</p>
<p>缴了钱后，很快所长便示意电脑操作员将妹妹的户口录入了&ldquo;人口档案管理系统&rdquo;，2分钟后，妹妹的户口便办理好了。</p>
<p>拿到妹妹的户口，心里很高兴，一件让我头疼的事情终于办完了。不过也很心疼花了的钱，对于我现在的情况来说600块钱也不是小数目。不过事情终于办成了，花钱也就花了吧，国情就是这样。</p>
<p><span style="color: #ff0000">在政府部门工作真好，有头、有脸、有钱赚！</span></p>]]></content><url>http://zhangqian.me/blogs/diary/{$LogUrlHtml}</url></log><log><id>230</id><title><![CDATA[谷歌将继续留在中国]]></title><time>2010-1-23 21:59:49</time><category>网事随风</category><content><![CDATA[<p>不多置评了，不论谷歌之前发布&ldquo;<a href="http://www.xixuyishi.com/blogs/net/shut-down-google-cn.html">可能撤离中国办事处以及关闭Google.cn</a>&rdquo;是炒作，还是确有什么难言之隐，但终究结果谷歌还是决定继续留在中国，我很高兴，我相信许多和我一样喜欢使用谷歌搜索的网民都很高兴。</p>
<p>谷歌现在已经在搜索&ldquo;谷歌&rdquo;这个关键字的时候，在搜索页面添加了AdWords&ldquo;<a href="http://googlechinablog.com/2010/01/blog-post_19.html">谷歌官方：澄清不实的传言</a>&rdquo;。</p>
<p>看来谷歌留意已决，很高兴可以继续使用谷歌中国提供的各项服务:)</p>]]></content><url>http://zhangqian.me/blogs/{$LogUrlAsp}</url></log><log><id>229</id><title><![CDATA[互联网界的悲哀——谷歌将撤离中国]]></title><time>2010-1-14 0:04:09</time><category>网事随风</category><content><![CDATA[<p>今天看到关于&ldquo;Google欲关闭谷歌中国&rdquo;的新闻，很惊讶，同时也感到非常惋惜。</p>
<p>很多网友可能认为百度的搜索结果很符合用户体验，但如果你不要夹杂任何个人排斥谷歌的心情来使用一下谷歌，你便会很快发现，谷歌的搜索结果更加适合人们的需要。</p>
<p>在还不知道谷歌时，我一直使用百度，而且也并没有发现什么问题，只是感觉广告特别多，不过这个影响并不是很大，因为我可以根据提示来区别是否是广告，也可以根据抓取的网页描述来判断是否是我想要的信息。直至使用谷歌，自此就不再使用百度了，甚至昨天的百度被黑一事也是到下午才听朋友说起。</p>
<p>百度的搜索结果很明显是人为干预的，大家可以试着在百度以中搜索一些贴吧的名字，在搜索结果中第一位会是百度贴吧的链接，在相应的网页描述中会显示贴吧的一些基本信息，而这样形式的网页描述，是任何网站都不可能通过相应的SEO方法来产生的，只能说明一个问题：百度人才设置了对百度贴吧的搜索。</p>
<p>抛掉人为干预这一项，我想大部分网友已经发现，在谷歌搜索一些问题的解决方法时，往往在搜索结果第一位的会是百度知道的链接，百度知道也确实可以帮助我们解决很多问题。而在百度搜索无论任何关键词，大部分都会将百度自身的产品放到搜索结果的前面，而不考虑是否符合用户的需求，甚至在搜索结果前面的位置不会出现任何谷歌产品中相关的搜索链接。鄙视一下百度的不谷歌！</p>
<p>如果谷歌真的退出了，那将是互联网界的一大损失和悲哀，真希望谷歌可以坚持下去！</p>
<p>其实在三个月前就看到有关于谷歌欲关闭<a href="http://www.google.cn">Google.cn</a>的新闻，不过随即官方即否认了这一谣传，当时的心情真是先悲后喜，不过这次看来是真的了，以下是谷歌官方发布的消息全文翻译(<a href="http://googleblog.blogspot.com/2010/01/new-approach-to-china.html">原文地址</a>)：</p>
<div class="Quote">
<h4>新的中国策略</h4>
<p>就象其他许多知名组织一样，谷歌也会经常面临不同程度的网络袭击。在去年12月中旬，我们侦测到了一次来自中国、针对公司基础架构的高技术、有针对性的攻击，它导致我们的知识产权被窃。不过，事态很快变得明了，这个起初看似独立的安全事件（尽管很严重）其实背后大有不同。</p>
<p>首先，并不是只有谷歌受到了攻击。我们在调查中发现，至少20家、涵盖领域广阔的大型公司都成为相似的攻击目标，这些公司隶属于互联网、金融、技术、媒体和化学行业。我们现在正在向这些公司通报情况，并与美国相关政府部门展开合作。</p>
<p>第二，我们有证据显示，攻击者的首要目标是进入中国人权活动人士的Gmail账户。我们迄今为止的调查结果让我们相信，这些攻击没有达到预期目标。只有两个Gmail账户被进入，而且其活动仅限于帐户信息，比如帐户何时创建、以及邮件标题，具体邮件内容未被染指。</p>
<p>第三，在与谷歌受攻击无关的整体调查中，我们发现数十个在美国、中国及欧洲的中国人权活动人士Gmail帐户经常被第三方侵入。入侵这些帐户并非经由谷歌的任何安全漏洞，而很可能是通过在用户电脑上放置网络钓鱼或恶意软件。</p>
<p>我们已经运用从这些袭击中获得的信息改进了基础设施和网络结构，加大对公司和客户的安全保障。对个人用户而言，我们建议大家使用可靠的杀毒和反间谍软件，安装操作系统的补丁并升级网络浏览器。在点击即时信息和邮件中显示的链接、或被要求在网上提供诸如密码等个人信息时永远要保持警惕。你可以点击这里阅读谷歌提供的网络安全建议。希望更多了解此类袭击的人士可以阅读美国政府提供的报告、纳特&bull;维伦纽夫(Nart Villeneuve)的博客以及有关间谍网络幽灵网(GhostNet)的报导。</p>
<p>我们采取了非常规手段与大家共享这些网络攻击信息，其原因并不只是我们发现了其中的安全和人权问题，而是因为这些信息直指言论自由这一全球更重大议题的核心。在过去20年中，中国的经济改革和中国人的创业精神让上亿中国人摆脱了贫困。事实上，这个伟大的国家是当今世界许多经济成就和发展的核心。</p>
<p>我们在2006年1月在中国推出了Google.cn，因为我们相信为中国人拓展信息获取、加大互联网开放的裨益超过了我们因在网络审查上做出让步而带来的不悦。当时我们明确表示，我们将在中国仔细监控搜索结果，并在服务中包括新的法律法规；如果我们认定自己无法实现上述目标，那么我们将不会犹豫重新考虑我们的中国策略。</p>
<p>这些攻击和攻击所揭示的监视行为，以及在过去一年试图进一步限制网络言论自由的行为使得谷歌得出这样一个结论，那就是我们应该评估中国业务运营的可行性。公司已经决定不愿再对Google.cn上的搜索结果进行内容审查，因此，未来几周，公司和中国政府将讨论在什么样的基础上我们能够在法律框架内运营未经过滤的搜索引擎，如果确有这种可能。我们认识到，这很可能意味着公司将不得不关闭Google.cn，以及我们在中国的办公室。</p>
<p>做出重新评估我们在华业务的决定是异常艰难的，而且我们知道这可能带来非常深远的影响。我们希望说明的一点是，该决定是由公司在美国的管理团队做出的，而为Google.cn今日成功而付出了无比巨大努力的中国团队对此毫不知情，也未曾参与。我们决心以负责任的方式来解决任何可能随之产生的难题。</p>
</div>]]></content><url>http://zhangqian.me/blogs/net/{$LogUrlHtml}</url></log><log><id>228</id><title><![CDATA[记忆中的父亲（一）]]></title><time>2009-12-27 22:18:48</time><category>我的日记</category><content><![CDATA[<p class="MsoNormal"><span style="font-family:宋体;mso-ascii-font-family:Calibri;&#xd;&#xa;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:&#xd;&#xa;minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">我已将近一年没有见到过父亲了，虽然一年的时间并不算长，但一想到从今以后再也无法看到父亲那和蔼可亲的面容，我的心中就一阵酸楚，眼眶中充满了泪水！我记忆中有关父亲的片断很零乱，却很深刻，在我的脑海中可以看到父亲清晰而又遥远的身影，父亲说话的声音、语气，生气或者开心时的神态，生活中的每一个习惯都历历在目，但我害怕随着时间的流逝而渐渐忘却这个我一辈子都无法忘记的人，所以我要将在关于父亲的种种记忆用文字记录下来，以此来缅怀我永远深爱着的父亲！</span></p>
<p class="MsoNormal"><span style="font-family:宋体;mso-ascii-font-family:Calibri;&#xd;&#xa;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:&#xd;&#xa;minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">世界上最痛苦的事情莫过于失去亲人。</span></p>
<p class="MsoNormal"><span style="font-family:宋体;mso-ascii-font-family:Calibri;&#xd;&#xa;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:&#xd;&#xa;minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">母亲的离开并没有让我表现的太过伤心，因为母亲离开的时候我还小，不怎么懂事。而母亲也是以回老家看看的理由走的，到我上初中前，我一直希望母亲实现他的诺言：回来时给我带很多很多好吃的、很多很多漂亮的衣服、很多很多好玩的玩具。就这么一直希望着，直到慢慢忘却、破碎！</span></p>
<p class="MsoNormal"><span style="font-family:宋体;mso-ascii-font-family:Calibri;&#xd;&#xa;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:&#xd;&#xa;minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">母亲已经不值得我有什么怀念的，毕竟她还在这个世上，起码我有见到母亲的机会，虽然机会很渺茫。但母亲离开后我多么想大声的喊一声&ldquo;妈妈！&rdquo;，&ldquo;妈妈&rdquo;这个词多么陌生啊，有</span><span lang="EN-US">10</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;&#xd;&#xa;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:&#xd;&#xa;minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">年的时间我没有喊过&ldquo;妈妈&rdquo;。&ldquo;世上只有妈妈好，有妈的孩子像块宝，投进妈妈的怀抱，幸福享不了！世上只有妈妈好，没妈的孩子像根草，离开妈妈的怀抱，幸福哪里找？&rdquo;这首儿歌我一直不敢唱出来，有母亲的孩子体会不到那种感受。</span></p>
<p class="MsoNormal"><span style="font-family:宋体;mso-ascii-font-family:Calibri;&#xd;&#xa;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:&#xd;&#xa;minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"><a href="http://www.xixuyishi.com/blogs/diary/000165.asp">父亲的离逝</a>对我的打击很大，我怎么也不愿意相信，这个在我心里最坚强的人居然这么突然、这么匆忙的离开了，老天对我真的很不公平。在这个世界里我将再也无法看到父亲，再也无法听到父亲说话的声音，再也无法握着父亲粗糙的手，再也无法</span><span lang="EN-US">&hellip;&hellip;.</span><span style="font-family:宋体;mso-ascii-font-family:Calibri;&#xd;&#xa;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:&#xd;&#xa;minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">这就是失去一个亲人的痛苦所在。我多么想再一次在父亲的脸颊上吻一下，多么想再一次握着父亲的手，多么想再一次为父亲洗一次脚，多么想再一次喊一声&ldquo;爸爸&rdquo;！</span>&nbsp;</p>]]></content><url>http://zhangqian.me/blogs/diary/{$LogUrlHtml}</url></log><log><id>226</id><title><![CDATA[日记一则 09年12月8日]]></title><time>2009-12-8 22:28:03</time><category>我的日记</category><content><![CDATA[<p>妹妹前两天请假回家了，今天就要走。</p>
<p>我和妹妹如同和父亲之间一样，好像很陌生，平时基本不怎么说话。其实我不想这样，我和妹妹说话时她只是&ldquo;哦&rdquo;的一声回答，不会多说一个字，让我很心酸。</p>
<p>今天早上姐姐带着我外甥在我没起床前就来到我家了，可能是因为妹妹要走的缘故，外甥也想来看看他的小姨:)。妹妹回来的时候，这个小家伙一家我家家门，嘴一嘟就委屈的哭了起来，并跑到妹妹那里去告状，说我打他了。这可能是小孩子讨人喜欢的一种方法:)</p>
<p>我刚给姐姐去开了门，姐夫就打电话来说让我今天和他一块去市里面跑车（拉尿素），因为我在家里很闲，所以没好意思推辞。我没有吃早饭的习惯，所以早饭也没吃就出发了。这一天把我累的，一共装了21吨的化肥，从忻州市里面开车拉到原平，花了一整天的时间，中午饭也没吃，到了晚上7点才吃的我今天的第一顿饭。很长时间没有干过重活了，自从做了IT这行业，就没有怎么受过苦，除了每天秋收会忙活1、2天，基本每天都是坐着，猛的这么活动一次还真受不了。姐夫说可能明天还要去，但愿不要再叫我了。</p>
<p>虽然看似我每天都是闲着的，其实我有一些自己的想法，最主要的是在做一些网站和学习，但这个跟他们没法说，他们也不懂。但并非就忙的抽不出时间，如果真有急事，我是随时可以走开的，姐夫应该不会看我每天闲着就拉我去做苦力吧:(。</p>]]></content><url>http://zhangqian.me/blogs/diary/{$LogUrlHtml}</url></log><log><id>225</id><title><![CDATA[Akismet（防Spam垃圾留言）的ASP类]]></title><time>2009-12-7 21:49:54</time><category>IT知识堂</category><content><![CDATA[<p>今天将原来的<a href="http://www.xixuyishi.com/blogs/?show=log&amp;logid=94">日志评论审核机制</a>换成了Akismet识别的方式。</p>
<p><a href="http://akismet.com/">Akismet</a>是<a href="http://wordpress.org">WordPress</a>中的一个优秀的防止Spam的插件，使用Akismet必须要去申请一个WordPress的Key，这个Key只要注册WordPress官方的用户就可以免费得到。但并不是只可以在WordPress中使用，只要你去阅读Akismet的API，你就可以整合到其他的博客程序中了。我这里提供一个Akismet的ASP类和一些API说明，想在自己的ASP程序中整合的话不妨看一看。</p>
<p>请先<a href="http://www.xixuyishi.com/UploadFiles/other/akismet.class.rar">下载Akismet（ASP）</a>，废话不多说了，先看一段下面的代码：</p>
<pre><code class="vb">Set SpamSentinel = New Akismet
SpamSentinel.initialize &quot;你的API Key&quot;,&quot;你的博客地址（格式：http://www.xixuyishi.com/）&quot;
SpamSentinel.setPermalink &quot;评论提交后相对应的日志url&quot;
SpamSentinel.setCommentType &quot;comment&quot;
SpamSentinel.setCommentAuthor &quot;评论用户名&quot;
SpamSentinel.setCommentAuthorEmail &quot;评论者邮箱&quot;
SpamSentinel.setCommentAuthorUrl &quot;评论者网址&quot;
SpamSentinel.setCommentContent &quot;评论者内容&quot;
isSpam = SpamSentinel.isSpam()	'调用isSpam()方法来判断是否为Spam，如果是则返回True
Set SpamSentinel = Nothing</code></pre>
<p>最后，你可以根据 isSpam 这个变量返回的值来执行相应的操作。</p>
<p>我的这个类中，在类初始化函数中自动获取了用户的IP，你也可以自己来写一个函数，然后在调用类的时候来指定IP地址。类中&ldquo;submitSpam()&rdquo;函数是用来向Akismet报道一个Spam，报告后要通过审核，所以并不是会立即生效，所以你也可以在自己的程序中加入相应的屏蔽操作。&ldquo;submitHam()&rdquo;函数是来向Akismet说明提交的是一个标记错误的Spam，也要经过相应的审核。</p>
<p>PS，发现做为一个网民，不翻墙不行，所以今天下载了最新的Tor，终于又可以顺利的翻墙了:)</p>]]></content><url>http://zhangqian.me/blogs/IT/{$LogUrlHtml}</url></log><log><id>224</id><title><![CDATA[让IIS 7显示ASP的详细错误信息]]></title><time>2009-11-13 21:34:57</time><category>IT知识堂</category><content><![CDATA[<p>由于要调试一些ASP程序，所以今天安装了IIS，安装时要注意展开&ldquo;Internet 信息服务&rdquo;&mdash;&mdash;&ldquo;万维网服务&rdquo;&mdash;&mdash;&ldquo;应用程序开发功能&rdquo;，在里面勾选&ldquo;ASP&rdquo;选项，IIS 7默认安装是不启用ASP的。</p>
<p>安装完成后调试页面时，当ASP代码出现问题后不会提示详细的错误信息，无论什么样的代码错误，只显示&ldquo;500 - 内部服务器错误。&rdquo;。因为IIS 7.5和IIS 6的管理方式完全不同，所以也无从下手，不知道在哪里设置显示详细错误信息，所以就去网上搜索相关的问题。</p>
<p>看来有很多网友也遇到这个问题了，解决方法很简单：</p>
<p>打开Internet 信息服务（IIS）管理器（运行&mdash;&mdash;inetmgr），然后双击&ldquo;ASP&rdquo;打开属性页，如图一</p>
<p style="text-align: center"><a target="_blank" href="http://www.xixuyishi.com/uploadFiles/200911/20091113hcj3te.jpg"><img border="0" alt="Internet 信息服务（IIS）管理器" src="/uploadFiles/200911/20091113vrofid.gif" /><br />
图一（Internet 信息服务（IIS）管理器）</a></p>
<p style="text-align: left">然后展开&ldquo;调试属性&rdquo;，将&ldquo;将错误发送到浏览器&rdquo;的值改为&ldquo;True&rdquo;，然后点击右侧的&ldquo;应用&rdquo;以保存设置。如图二</p>
<p style="text-align: center"><a target="_blank" href="http://www.xixuyishi.com/uploadFiles/200911/200911138b2ap6.jpg"><img title="&ldquo;ASP&rdquo;属性页" border="0" alt="&ldquo;ASP&rdquo;属性页" src="/uploadFiles/200911/20091113u30jsj.gif" /><br />
图二（&ldquo;ASP&rdquo;属性页）</a></p>
<p>最后双击打开&ldquo;错误页&rdquo;属性页，然后点击右侧的&ldquo;编辑功能设置&rdquo;，选择&ldquo;详细错误(D)&rdquo;。如图三</p>
<p style="text-align: center"><a target="_blank" href="http://www.xixuyishi.com/uploadFiles/200911/20091113xkgvzf.jpg"><img border="0" alt="编辑错误页设置" src="/uploadFiles/200911/20091113k8ex46.gif" /><br />
图三（编辑错误页设置）</a></p>
<p>&nbsp;</p>
<p>最后只需要在IE的&ldquo;Internet 选项&rdquo;中将&ldquo;显示友好 HTTP 错误信息&rdquo;勾选掉，这样就可以显示ASP的详细错误信息了。</p>
<p style="text-align: left">确实，这样设置后IIS就已经设置好了，可是还有的网友显示&ldquo;无法显示页面，因为发生内部服务器错误。&rdquo;的提示，其实这是在你调试的网站的根目录下有一个名为&ldquo;web.config&rdquo;的文件，原来是这个文件在做怪，只要将其删除就就可以了。</p>
<p style="text-align: left">这个问题让我足足费了3个小时的时间，可网上没有任何这种解决方法的资料，所以记录下来以便以后使用，也希望可以帮到遇到同样问题的朋友。</p>]]></content><url>http://zhangqian.me/blogs/IT/{$LogUrlHtml}</url></log></logs>