<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>Border's Log</title>
    <description></description>
    <link>http://border.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>dom4j解析特殊字符出错</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/133868" style="color:red;">http://border.javaeye.com/blog/133868</a>&nbsp;
          发表时间: 2007年10月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          用DocumentHelper.parseText(text)解析的时候，text里面有些特殊字符，比如\0x07, \0x13，这些，就报异常。有什么办法处理嘛？
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/133868#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 20 Oct 2007 22:36:11 +0800</pubDate>
        <link>http://border.javaeye.com/blog/133868</link>
        <guid>http://border.javaeye.com/blog/133868</guid>
      </item>
      <item>
        <title>如何通过Java调用Servlet中的doPost()方法</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/123274" style="color:red;">http://border.javaeye.com/blog/123274</a>&nbsp;
          发表时间: 2007年09月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          要通过客户段的Java Application去调用Server的Servlet，<br /><br />我是怎么写的，但是奇怪的是有的时候可以调用，但是有的时候就调用不到。<br />麻烦各位帮我看看：<br /><br /><pre name="code" class="java">
			urlCach = new URL("http://192.168.0.88:8080/servlet/SMS");
			urlconCach = urlCach.openConnection();
			urlconCach.setDoOutput(true);
			CachWriter = new OutputStreamWriter(urlconCach.getOutputStream(),
					"GB2312");
			CachWriter.write(XMLToString(document));
			CachWriter.flush();
			CachWriter.close();

			inReader2 = new InputStreamReader(urlconCach.getInputStream(), "GB2312");
			inReader2.close();
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/123274#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 12 Sep 2007 14:13:32 +0800</pubDate>
        <link>http://border.javaeye.com/blog/123274</link>
        <guid>http://border.javaeye.com/blog/123274</guid>
      </item>
      <item>
        <title>『Java 』zip文件下载</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/121531" style="color:red;">http://border.javaeye.com/blog/121531</a>&nbsp;
          发表时间: 2007年09月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <br />zip文件下载<br /><br clear="all" />&nbsp;&nbsp;&nbsp; /**<br />&nbsp;&nbsp;&nbsp; &nbsp;* 从srcUrlStr下载zip文件保存到descFilePath路径下<br />&nbsp;&nbsp;&nbsp; &nbsp;* @param srcUrlStr<br />&nbsp;&nbsp;&nbsp; &nbsp;* @param descFilePath<br />&nbsp;&nbsp;&nbsp; &nbsp;* @param timeout<br />&nbsp;&nbsp;&nbsp; &nbsp;* @return Boolean true:ok flase:Error<br />&nbsp;&nbsp;&nbsp; &nbsp;*/ <br />&nbsp;&nbsp;&nbsp; public static Boolean DownloadZip(String srcUrlStr, String descFilePath,<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int timeout) throws IOException {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; URL url = null;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; URLConnection urlcon = null;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ZipInputStream zipis = null; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ZipOutputStream zipos = null;<br /><br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; url = new URL(srcUrlStr);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; urlcon = url.openConnection();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int length = urlcon.getContentLength();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; urlcon.setReadTimeout (timeout);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; zipis = new ZipInputStream(urlcon.getInputStream());<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ZipEntry zipEntry = zipis.getNextEntry();<br /><br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; File f = new File(descFilePath);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; zipos = new ZipOutputStream(new FileOutputStream(f)); <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; zipos.setMethod(ZipOutputStream.DEFLATED);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; zipos.putNextEntry(zipEntry);<br /><br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int len = (length &gt; 100000) ? 100000 : length;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; byte[] bArray = new byte[len];<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int retVal = 0;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while ((retVal = zipis.read(bArray, 0, len)) != -1) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; zipos.write(bArray, 0, retVal);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; zipis.close();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; zipos.flush ();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; zipos.close();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return true;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch (IOException ioe) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println("DownloadZip Err " + ioe.getMessage());<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } finally { <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (null != zipis) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; zipis.close();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (null != zipos) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; zipos.close();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br /><br /><br /><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.borderj.cn" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">www.borderj.cn</a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/121531#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 06 Sep 2007 19:14:57 +0800</pubDate>
        <link>http://border.javaeye.com/blog/121531</link>
        <guid>http://border.javaeye.com/blog/121531</guid>
      </item>
      <item>
        <title>『互联网』MoodMill 支持国际话supporting the international character</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119122" style="color:red;">http://border.javaeye.com/blog/119122</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp; 今天收到<a href="http://www.moodmill.com" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">MoodMill</a>老大<span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;">  <span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><a href="http://www.moodmill.com/citizen/fekimoki/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank"> Felix Widjaja</a>的来信，说已经支持国际话，以前只是</span></span></span> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><font face="Helvetica">javascript 出了个Bug。要是你所关注或感兴趣的项目在体验的时候发现Bug或功能上的缺陷应该早早提出来，这样有助产品的完善。 <br /><br /></font><span style="color: rgb(153, 51, 153);">Hello,</span><br style="color: rgb(153, 51, 153);" /><div style="color: rgb(153, 51, 153);">Just want to inform you that MoodMill now supporting the international character support. <font face="Helvetica"> Chinese, Russian, Japanese, Arabian, etc.&nbsp;</font></div><div style="color: rgb(153, 51, 153);"><font face="Helvetica">It was a javascript bug.&nbsp;</font></div><div style="color: rgb(153, 51, 153);"><font face="Helvetica">  Just make sure you HARD REFRESH the browser cache. ctrl-F5 on Windows; cmd-shift-r on Apple, to refresh the javascript file.</font></div><div style="color: rgb(153, 51, 153);"><font face="Helvetica">Hope to see you soon again at MoodMill, sorry again for the&nbsp; <font face="Geneva">inconvenience. Thank you very much for using MoodMill service.</font></font></div><div style="color: rgb(153, 51, 153);"><br /></div><div style="color: rgb(153, 51, 153);">PS. Please email me to inform any problems you might have on using MoodMill. </div><div style="color: rgb(153, 51, 153);"><br /></div><font face="Helvetica" style="color: rgb(153, 51, 153);">&nbsp;</font><br style="color: rgb(153, 51, 153);" /><div> <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; color: rgb(153, 51, 153); font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; font-family: Geneva; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <span style="border-collapse: separate; border-spacing: 0px; font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">  <div style="margin: 0px; font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;">  <span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;">Cheers,&nbsp;</span></span></span></span></span></span></span></span></span>  </div><div style="margin: 0px; font-family: Helvetica;"><br /></div><div style="margin: 0px; font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;">  <span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;">  Felix Widjaja</span></span></span></span></span></span></span></span></span></div><div><font face="Geneva">MoodMill founder,</font></div><div style="margin: 0px; font-family: Helvetica;"><br /></div><div style="margin: 0px; font-family: Helvetica;">  <span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;">  <span style="font-family: Helvetica;"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;">Stucel. - Web Design &amp; Consulting</span></span></span></span></span></span></span></span></span></div> </span> </span></span></span></span></span></span></span></span></span><div><br /></div><font face="Helvetica"><span style="font-family: Helvetica;">m!</span></font><font face="Helvetica"><span style="font-family: Helvetica;">&nbsp;+62 856 8099334 </span></font><div style="margin: 0px;"><font face="Helvetica"><span style="font-family: Helvetica;">p! +62 21 99137775</span></font></div></span><div style="margin: 0px; color: rgb(153, 51, 153);"><font face="Helvetica">  <span style="font-family: Helvetica;">e!&nbsp;</span></font><a href="mailto:felix@stucel.com" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank"><font face="Helvetica"><span style="font-family: Helvetica;">  <span style="font-family: Helvetica;"><span style="font-family: Helvetica;">felix@stucel.com</span></span></span></font></a></div><div style="margin: 0px; color: rgb(153, 51, 153);"><font face="Helvetica"><span style="font-family: Helvetica;">  w!&nbsp;</span></font><a href="http://www.stucel.com/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank"><font face="Helvetica"><span style="font-family: Helvetica;"><span style="font-family: Helvetica;"> <span style="font-family: Helvetica;"> www.stucel.com</span></span></span></font></a></div><br /></span></span></span> </div><br clear="all" /><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank"> www.borderj.cn</a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">borderj@live.com </a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119122#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:17 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119122</link>
        <guid>http://border.javaeye.com/blog/119122</guid>
      </item>
      <item>
        <title>『Hacker』久违的phrack杂志又回来了</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119123" style="color:red;">http://border.javaeye.com/blog/119123</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          by axis<br />2007-05-27<br /><a href="http://www.ph4nt0m.org">http://www.ph4nt0m.org</a><br /><br />    久违的phrack杂志又回来了，在FD上发表了第64期。phrack 63之后，迫于美国政府的压力phrack杂志被迫关门，现在，似乎换了个地方重生了。<br />    <a href="http://phrack.ru">http://phrack.ru </a><br /><br />    看到intro中的这段话，非常激动啊：<br /><span style="font-weight: bold;">No, nothing is or was ever lost. Things change, security becomes a business, some hackers sell exploits, others post for fame, but Phrack is here, totally free, for the community. No business, no industry, no honey, baby. Only FREEDOM and KNOWLEDGE.</span> <br /><br />    这也正是幻影提倡的精神！<br /><br />    No, Phrack is not dead. And will never die.<br />Long live to PHRACK. <br /><br />    向phrack致敬！<br clear="all" /><br /><a href="http://www.pkblogs.com/pstgroup/2007/05/newsphrack-64-out.html"> 来源</a>：<a href="http://www.pkblogs.com/pstgroup/2007/05/newsphrack-64-out.html">http://www.pkblogs.com/pstgroup/2007/05/newsphrack-64-out.html</a><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn</a><br />MSN:&nbsp;&nbsp;  <a href="mailto:borderj@live.com">borderj@live.com</a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119123#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:16 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119123</link>
        <guid>http://border.javaeye.com/blog/119123</guid>
      </item>
      <item>
        <title>『Linux』Unix体验中心（Unix-Center.Net）(宣传)</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119124" style="color:red;">http://border.javaeye.com/blog/119124</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          尊敬的会员：<br /> <br /> 感谢您注册成为Unix体验中心（Unix-Center.Net）的会员。本电子邮件的目的是向所有的注册会员通报Unix体验中心目前的情况，并且希望能够在各位的帮助和支持下越办越好。<br /> <br /> 1. 我们需要您的帮助<br /> <br /> Unix体验中心迫切需要解决的问题是每个注册会员的存储配额问题。目前我们给每个注册会员的存储配额是20 MB，不足以支持各位在Unix体验中心的服务器上编译运行较大的应用程序，或者对大量的数据进行处理。我们已经计划将每个注册会员的存储配额调整到 100 MB，但是我们需要您的支持才能够做到这一点 －－ 这样的支持对于您来说也许仅仅是举手之劳。<br /> <br /> 我们需要您帮忙的，是在2007年6 月间至少登录我们的T1000和X4100服务器各两次（是的，登录T1000服务器两次，然后登录X4100服务器两次）。如果您愿意这样作的话，我们 鼓励您现在就动手登录我们的服务器。这只需要占用您两分钟的时间，有可能仅仅是一分钟，但是您已经在用实际行动来支持我们升级存储服务器的计划了。如果有 30％的注册会员愿意这么做的话，我们将于2007年7 月底之前部署一台存储服务器，并将所有注册会员的存储配额调整为100 MB。<br /> <br /> 为什么需要这么作呢？因为您的使用就是对我们的最大支持！如果我们提供了这样的服务却没有人来使用的话，我们就会失去前进的动力。<br /> <br /> 2. Unix体验中心现有的服务<br /> <br /> Unix体验中心(Unix-Center.Net)的目标是为研究、学习和使用各种版本的Unix和类Unix操作系统的教师、学生和工程技术人员提供 一个体验和测试各种版本的Unix和类Unix系统的软硬件平台。本站的注册用户可以通过SSH远程登录进入多个不同的系统，享受该系统上普通用户的所有 权限，学习和使用各种版本的Unix和类Unix操作系统的常用命令和功能。开发人员更可以将自己正在开发的应用程序上载到Unix体验中心的服务器，在 不同的软硬件平台上编译和运行，充分体验多处理器、多核、多线程的高性能计算的乐趣。<br /> <br /> 目前Unix体验中心一共有九台服务器对外开放，包括一台Sun Fire T1000，一台Sun Fire X4100，四台DELL PowerEdge 860，以及三台龙芯福珑计算机。这些服务器覆盖了UltraSparc T1、x86/x64和MIPS等多种不同的硬件类型。我们正在提供的操作系统包括Solaris 10 for Sparc，Solaris 10 for x86/x64，Fedora Core 6，Ubuntu 6.10，FreeBSD 6.2以及Debian Linux for MIPS。<br /> <br /> 此外，我们还有一台额外的服务器提供Web服务，包括Unix体验中心的主页和论坛。Unix体验中心的主页提供了一批起步性的教程，可以解决您在尽情体 验不同种类的Unix/Linux系统的过程中遇到的常见问题。Unix体验中心的论坛则为您提供了一个与其他注册用户相互交流的园地，您可以在这里将您 的心得体会与他人分享，也可以向他人请教您在学习和开发中遇到的各种问题。<br /> <br /> 在存储服务器到位的前提下，我们还将推出mysql.unix-center.net和my.unix-center.net两项服务。在这两项服务的基础上，注册用户将可以利用Unix体验中心提供的服务器测试B/S应用。<br /> <br /> 3. Unix体验中心会员回报计划<br /> <br /> 为了感谢各位Unix/Linux爱好者对本站的支持，本站将从2007年6月30日之前注册的网友中随机选取幸运网友1500名。所有的幸运网友都会收 到本站赠送的《为什么时光不能够倒流》一书。我们已经于2007年3 月30日寄出了第一批100本书，还剩下1400本书将于2007年7 月全部寄出。<br /> <br /> 此外，我们还与Sun 中国软件技术中心展开合作。Sun 中国软件技术中心将为Unix体验中心提供一批Sun Studio集成开发环境的教程以及一个在线测验，学习这些教程并且通过测验的注册用户将获得由Sun 中国软件技术中心赠送的价值人民币50元的手机充值卡。我们的计划是在2007年6 月间向Unix体验中心的注册用户送出1000张手机充值卡。<br /> <br /> 目前Unix体验中心的总注册用户少于两万，而在2007年6 月间我们将送出的礼物超过2000份，超过注册人数的10%。也就是说，只要你参与了我们的活动，就有机会获得我们送出的各种礼物！<br /> <br /> 4. 关于公共资源的使用规则<br /> <br /> 本站是一个不以盈利为目的的公益性技术社区。本站所有服务器均为本站全体注册网友的公共资源，希望能够得到全体网友的关心的爱护。请各位网友不要进行任何 未经许可的针对本站任何服务器的压力测试或者是安全测试，或者是利用本站的服务器进行针对其他计算机或者服务器的压力测试或者是安全测试。如果您不小心发 现了本站任何服务器的管理员密码或者是系统漏洞，请您尽快与本站的系统管理员联系。<br /> <br /> 中国是一个发展中国家，我们有很多教师、学生和工程人员希望能够学习 Unix/Linux系统，却又苦于没有合适的环境和条件。本站存在的目的，就是给这些 爱好Unix/Linux的人一个学习和练习的条件，希望您能够支持我们的行动。 <br /> <br /> 感谢您对Unix体验中心的支持<br /> <br /> Unix体验中心（Unix-Center.Net）<br /> <a href="http://www.unix-center.net/" target="_blank">http://www.unix-center.net/</a><br /> 2007年6 月1 日<br clear="all" /><br /><a href="http://www.unix-center.net/?p=41">From</a>: <a href="http://www.unix-center.net/?p=41">http://www.unix-center.net/?p=41</a><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn </a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com">borderj@live.com</a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119124#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:15 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119124</link>
        <guid>http://border.javaeye.com/blog/119124</guid>
      </item>
      <item>
        <title>『Linux』如何在Gaim中使用Gtalk</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119125" style="color:red;">http://border.javaeye.com/blog/119125</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>Google Talk使用了Jabber协议，因此linuxfans可以很轻松地使用google的服务,设置如下:</p> <p>登入选项<br /> 协议：Jabber<br /> 用户名:gmail邮箱前缀<br /> 服务器:<a href="http://gmail.com">gmail.com</a><br /> 资源：google talk<br /> 密码：gmail邮箱密码</p> <p>显示主要选项：<br /> Jabber选项<br /> 选中"若可用则使用tls和允许在不加密流上的纯文本验证<br /> 端口:5222<br /> 连接服务器： <a href="http://talk.google.com">talk.google.com</a> <br /></p><br />当然也可以在你的blog中嵌套<a href="http://gmodules.com/ig/creator?url=http://www.google.com/ig/modules/googletalk.xml&amp;synd=open&amp;w=200&amp;h=350&amp;title=Google+Talk&amp;border=%2523ffffff%257C3px%252C1px+solid+%2523999999"> Google Gadget</a> 不用安装软件就可以轻松的交流.<br /><br /><br clear="all" />&nbsp;<br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn</a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com">borderj@live.com</a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119125#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:14 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119125</link>
        <guid>http://border.javaeye.com/blog/119125</guid>
      </item>
      <item>
        <title>『Linux』学习使用Bash Shell 快捷键(转)</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119126" style="color:red;">http://border.javaeye.com/blog/119126</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h3 class="entry-header">文章来自：<a href="http://www.dbanotes.net/techmemo/shell_shortcut.html">http://www.dbanotes.net/techmemo/shell_shortcut.html</a><br /><a href="http://www.dbanotes.net/techmemo/shell_shortcut.html"></a></h3> <h3 class="entry-header"><a href="http://www.dbanotes.net/techmemo/shell_shortcut.html">作者：<a href="http://www.dbanotes.net/">Fenng</a> | <a href="http://translate.google.com/translate?langpair=zh-CN%7Cen&amp;hl=zh-CN&amp;ie=UTF8&amp;u=http%3A//www.dbanotes.net/techmemo/shell_shortcut.html" class="English" target="_blank"> English Version</a>   【可以任意转载, 转载时请务必以超链接形式标明文章原始出处和作者信息及<a href="http://creativecommons.org/licenses/by-sa/2.5/deed.zh">本声明</a>】<br /> 网址：<a href="http://www.dbanotes.net/techmemo/shell_shortcut.html" class="permalink">http://www.dbanotes.net/techmemo/shell_shortcut.html</a> <br /><br /> </a></h3>                                                     <div class="entry-body">                            <p>这篇 <a href="http://www.pkblogs.com/linuxhelp/2005/08/bash-shell-shortcuts.html">Bash Shell Shortcuts</a> 的快捷键总结的非常好。值得学习。下面内容大多数是拷贝粘贴与总结.</p>  <h4><acronym title="Control">CTRL</acronym> 键相关的快捷键:</h4>  <pre>Ctrl + a - Jump to the start of the line<br />Ctrl + b - Move back a char<br />Ctrl + c - Terminate the command  //用的最多了吧?<br />Ctrl + d - Delete from under the cursor<br />Ctrl + e - Jump to the end of the line<br />Ctrl + f - Move forward a char <br />Ctrl + k - Delete to EOL<br />Ctrl + l - Clear the screen  //清屏，类似 clear 命令<br />Ctrl + r - Search the history backwards  //查找历史命令<br />Ctrl + R - Search the history backwards with multi occurrence<br />Ctrl + u - Delete backward from cursor // 密码输入错误的时候比较有用 <br />Ctrl + xx - Move between EOL and current cursor position<br />Ctrl + x @ - Show possible hostname completions <br />Ctrl + z - Suspend/ Stop the command<br />补充:<br />Ctrl + h - 删除当前字符<br />Ctrl + w - 删除最后输入的单词 </pre>  <h4>ALT 键相关的快捷键:</h4> 平时很少用。有些和远程登陆工具冲突。 <pre>Alt + &lt; - Move to the first line in the history<br />Alt + &gt; - Move to the last line in the history<br />Alt + ? - Show current completion list<br />Alt + * - Insert all possible completions<br />Alt + / - Attempt to complete filename <br />Alt + . - Yank last argument to previous command<br />Alt + b - Move backward<br />Alt + c - Capitalize the word<br />Alt + d - Delete word<br />Alt + f - Move forward<br />Alt + l - Make word lowercase<br />Alt + n - Search the history forwards non-incremental <br />Alt + p - Search the history backwards non-incremental<br />Alt + r - Recall command<br />Alt + t - Move words around<br />Alt + u - Make word uppercase<br />Alt + back-space - Delete backward from cursor <br />// SecureCRT 如果没有配置好，这个就很管用了。 </pre>  <h4>其他特定的键绑定:</h4> 输入 bind -P 可以查看所有的键盘绑定。这一系列我觉得更为实用。 <pre>Here "2T" means Press TAB twice<br />$ 2T - All available commands(common) //命令行补全，我认为是 Bash 最好用的一点 <br />$ (string)2T - All available commands starting with (string)<br />$ /2T - Entire directory structure including Hidden one <br />$ ./2T - Only Sub Dirs inside including Hidden one<br />$ *2T - Only Sub Dirs inside without Hidden one<br />$ ~2T - All Present Users on system from "/etc/passwd" //第一次见到，很好用<br />$ $2T - All Sys variables //写Shell脚本的时候很实用 <br />$ @2T - Entries from "/etc/hosts"  //第一次见到<br />$ =2T - Output like ls or dir //好像还不如 ls 快捷<br />补充:<br />Esc + T - 交换光标前面的两个单词</pre>  <p>很多来自GNU 的 <a href="http://tiswww.case.edu/%7Echet/readline/rltop.html">readline</a> 库。<a href="http://www.bigsmoke.us/readline/shortcuts">另外一份总结</a>也很好</p>  <p>记忆是所有技术人员的敌人。一次要把所有的都记住是不可能的。针对自己的使用习惯，对少数快捷键反复使用，短期内就会有效果。</p>  <p>你还知道那些好用的快捷键 ? 补充一下 ? </p>  <p>--EOF--</p>                            </div><br clear="all" /><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn</a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com">borderj@live.com</a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119126#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:13 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119126</link>
        <guid>http://border.javaeye.com/blog/119126</guid>
      </item>
      <item>
        <title>『Python』介绍Python IDE</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119127" style="color:red;">http://border.javaeye.com/blog/119127</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <br clear="all" />&nbsp;&nbsp; 目前比较流行的Python IDE的<a href="http://blog.showmedo.com/2007/04/04/get-going-with-python-2-python-development-environments-ides-part-2/">介绍</a>，还有<a href="http://showmedo.com/videos/python">视频</a> ，还有个<a href="http://www.djangoproject.com/"> Django</a> 的<a href="http://showmedo.com/videos/video?name=stoops010&amp;fromSeriesID=69">视频</a>。<br /><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn</a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com">borderj@live.com </a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119127#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:12 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119127</link>
        <guid>http://border.javaeye.com/blog/119127</guid>
      </item>
      <item>
        <title>The world's best browse safari3</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119128" style="color:red;">http://border.javaeye.com/blog/119128</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp; <a href="http://apple.com">Apple</a>的<a href="http://www.apple.com/confirm/safari/thankyou.html">safari3</a> 浏览器开始公测，号称"The world&#39;s best browse"，同时出了Windows版的，下了个看看，结果没过1分钟就删掉了。对中文支持的太差的。没有见过这么差的产品，还说"The world&#39;s best browse. Now on windows, too". <br clear="all" /><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn</a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com">borderj@live.com</a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119128#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:11 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119128</link>
        <guid>http://border.javaeye.com/blog/119128</guid>
      </item>
      <item>
        <title>『FreeDom 』向微软说不！——反对微软办公(Microsoft Office)文件格式成为ISO标准</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119129" style="color:red;">http://border.javaeye.com/blog/119129</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <br />From: <a href="http://software.solidot.org/article.pl?sid=07/08/31/0621234">http://software.solidot.org/article.pl?sid=07/08/31/0621234</a><br /><br clear="all" /><a href="http://moses.mason.googlepages.com/">Moses</a> 写道 "反对 M$ Office 格式成为 ISO 标准的理由:  <ol><li>现在已有一个称为开放文本格式（Open Document Format，ODF)的ISO26300 文件格式标准。设立双重标准会令业界、政府及各国公民增添运作成本、疑虑及困惑；</li><li>现在并没有被证明可使用OOXML格式的软件：Microsoft Office 2007只能储存特别版本的OOXML格式，而这种特别格式并不符合原有的OOXML 格式；</li><li>OOXML的规格文件中欠缺了重要的信息，例如如何实现标准中的autoSpaceolkeWord95或useWord97olneBreakRules； </li><li>提案中提到的例子超过10%不是有效的XML；</li><li>该标准并没有保证任何人均可以在不用支付微软的专利特许费用，以及免于被微软专利侵权索赔的情况下，编写一个完全或部分实现OOXML的软件；</li><li>提案中的标准，与其他ISO标准有相冲突的地方，如ISO8601（表示日期及时间之格式），ISO 639（为语言订定的语言代码）或ISO/IEC 10118-3（加密散列）；</li><li>该标准在电子数据表（Spredsheet ）文档格式中有一个严重错误，令软件无法输入任何1900年之前的日期。同样的错误除了影响OOXML 格式，并同时影响以下的软件的版本：如Microsoft Excel 2000、XP、2003、2007； </li><li>该项提案中的标准并没有咨询所有与文件格式标准有关的利益团体（包括生产商、卖家、买家、使用者及管理者）的经验及专业意见，而是只由微软单方面设立。</li></ol> 你可以到 <a href="http://www.noooxml.org/petition-hans">www.noooxml.org</a> 提交你的反对签名."<br /><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn</a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119129#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:11 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119129</link>
        <guid>http://border.javaeye.com/blog/119129</guid>
      </item>
      <item>
        <title>『Hacker』 一行代码就可让IE6崩溃</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119130" style="color:red;">http://border.javaeye.com/blog/119130</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <br />       一位日本博客发现只要<a href="http://immike.net/blog/2007/08/06/single-line-of-html-crashes-ie-6/">一行简单的HTML和CSS代码就可让IE 6崩溃</a>：<br />&nbsp;&nbsp;&nbsp;&nbsp; <i><span style="font-style: italic;"><br />&nbsp;&nbsp;&nbsp;<span style="color: rgb(153, 51, 153);"> </span> </span><span style="color: rgb(153, 51, 153);">&lt;style&gt;*{position:relative}&lt;/style&gt;&lt;table&gt;&lt;input&gt;&lt;/table&gt;  </span></i><br /><br />如果你很勇敢，可点击<a href="http://immike.net/scripts/ie_crash.html">这个网址</a>试一下。Firefox，Safari和Opera能正常渲染这段代码，但IE6则会产生致命的错误。<br /><br />From： <a href="http://software.solidot.org/software/07/08/07/0923242.shtml"> http://software.solidot.org/software/07/08/07/0923242.shtml</a><br clear="all" /><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn</a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com">borderj@live.com</a><br /><br /> &nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119130#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:11 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119130</link>
        <guid>http://border.javaeye.com/blog/119130</guid>
      </item>
      <item>
        <title>『Java』常见术语扫描JTA，JMS，J2EE，</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119131" style="color:red;">http://border.javaeye.com/blog/119131</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1. JTA (Java Transaction API）JAVA 事务服务<br />确保"同时成功则成功，任何一个失败则失败"的一种机制。一个事务往往包括三种动作行为：开始事务 （Begin Transaction），提交事务（Commit）和回滚（Rollback）。从开始事务到提交事务过程中所发生的一切数据库修改要么同时成功（被 Commit，固化在数据库中），要么一个失败，大家同时回复原有状态（Rollback，数据库回复到事务开始时的状态）。<br /><br />2. 什么是JMS （ Java Message Service）JAVA消息服务<br />主要实现各个应用程序之间的通讯。包括点对点和广播。<br /><br />3.什么是JNDI （ Java Naming & Directory Interface）JAVA命名目录服务<br />主要提供的功能是：提供一个目录系统，让其它各地的应用程序在其上面留下自己的索引，从而满足快速查找和定位分布式应用程序的功能。通俗的说就是：用于定位查找服务对象，是J2EE体系的标准服务。<br /><br />4. 什么是JAF （Java Action FrameWork） JAVA安全认证框架<br />提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。<br /><br />5. SOAP 即简单对象访问协议(Simple Object Access Protocol)，它是用于交换 XML编码信息的轻量级协议。<br /><br /><br />--<br />Blog: www.borderj.cn<br />MSN: borderj@live.com<br /><br />Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119131#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:10 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119131</link>
        <guid>http://border.javaeye.com/blog/119131</guid>
      </item>
      <item>
        <title>『Emacs 』Emacs中的正则表达式语法</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119132" style="color:red;">http://border.javaeye.com/blog/119132</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <br />From： <a href="http://bennyni.yculblog.com/post.1574745.html">http://bennyni.yculblog.com/post.1574745.html</a><br /><br clear="all" /><font color="#0000ff">网友翻译自info，特别注意的是lisp中的 \ 要写成 \ \，为这事我纳闷了老半天，就说怎么看不懂别人的那是啥意思了</font> <br /> <br /> * 正则表达式语法<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 正则表达式(regular expressions, 缩写为regexp)是由几个特殊字符和一些普通<br /> &nbsp; 字符组成，一个普通字符就是一个简单的正则表达式，仅仅可以匹配与自己相同的字<br /> &nbsp; 符。而特殊字符包括"$"，"^"，"."，"*"，"+"，"?"，"["，"]"以<br /> &nbsp; 及"\"。除非在一个字符前面有"\"，否则正则表达式中出现的任何其他字符都是<br /> &nbsp; 普通字符，（当你在 Lisp 程序中使用正则表达式时，每一个"\"都必须写成两个，，<br /> &nbsp; 因为需要对字符串中的"\"转义，请看下面的例子。）<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例如，"f"不是特殊字符，是普通字符，因此"f"是一个正则表达式，它仅仅<br /> &nbsp; 匹配串"f"。（不匹配"ff"。）同样"o"是仅匹配串"o"的正则表达式。（当不<br /> &nbsp; 区分大小写时，前面的两个式子也匹配"F"和"O"，而实际上，一般认为它们是<br /> &nbsp; "同样的串"，并不是因为例外。）<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 两个任意的表达式 A 和 B 可以连接，其结果是能够匹配以 A 开始，其余部分是<br /> &nbsp; B 的字符串的表达式。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 举个简单的例子，我们将表达式"f"和"o"连接，得到表达式"fo"，仅匹配<br /> &nbsp; 串"fo"，很简单的。想做些不简单的，需要使用特殊字符。下面介绍这些特殊字符。<br /> <br /> ** 特殊字符<br /> <br /> *** ". (Period)"<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配除了换行符(newline)之外任何单个字符的特殊字符。通过"连接"，可以得<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 到如"a.b"的表达式，匹配所有的以"a"开始，以"b"结束的三个字符的字符<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 串。<br /> <br /> *** "*"<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 自身不构成表达式的部分，作为后缀操作符，表示某个前导表达式可以任意<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 次重复。比如，"o*"匹配任意个"o"连成的串（包括空串）。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "*"总是作用于"最少的"可能的前导表达式。于是，"fo*"中，可以重复的<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是"o"，而不是"fo"，匹配形如"f", "fo", "foo"的串等等。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配程序以迅速且尽可能多的找到重复部分来处理带"*"的结构。然后继续其他<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 部分的处理。如果失败了，为了使剩余的部分能够尽可能的匹配，匹配程序会回<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 退，释放一些已经由"*"匹配的结构。例如，在使用"ca*ar"来匹配串<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "caaar"时，"a*"首先试图匹配全部的三个"a"；但余下的部分是"ar"，<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不能匹配"r"，失败；接着选择用"a*"匹配两个"a"，成功。<br /> <br /> *** "+"<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 和"*"相似的后缀操作符，它表示前导表达式要至少出现一次。例如，"ca+r"匹<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 配串"car"和"caaaar"，但不能匹配"cr"。<br /> <br /> *** "?"<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 也是一个和"*"相似的操作符，它表示前导表达式至多出现一次。例如，<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "ca?r"仅仅匹配"car"或"cr"。<br /> <br /> *** "*?, +?, ??"<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是前面几个操作符的非贪心(non-greedy)的变体。正常的"*"， "+"， "?"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 操作符是"贪心的(greedy)"，只要总体上能够匹配，这些操作符总是尽可能多<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 的匹配。当紧跟着"?"时，则是非贪心的：将尽可能少的匹配。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "ab*"和"ab*?"都能匹配串"a"和"abbbb"；但如果你试图用它们来匹配<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "abbbb"时，"ab*"将匹配全部（最长有效匹配），而"ab*?"将仅仅匹配<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "a"（最短有效匹配）。<br /> <br /> *** "\{N\}"<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指定重复次数为 N 的后缀操作符，前导表达式必须恰好出现 N 次。例如<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "x\{4\}"仅匹配串"xxxx"。<br /> <br /> *** "\{N,M\}"<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指定重复次数在N和M之间的后缀操作符，就是说它的前导表达式的出现次数至少<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是N 但不能超过 M。如果省略 M，表示没有上限，但它的前导表达式至少出现 N<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 次。"\{0,1\}"等于"?"。"\{0,\}"等于"*"。"\{1,\}"等于"+"。<br /> <br /> *** "[ ... ]"<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 字符集，以"["开始以"]"结束。最简单的例子，在两个方括号中间的字符就<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是这个集合所能匹配的全部。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所以，"[ad]"仅匹配一个"a"或一个"d"，"[ad]*"匹配所有仅由"a"和<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "d"构成的串（和空串）。"c[ad]*r"匹配"cr"，"car"， "cdr"，<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "caddaar"，等等。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 也可以用一个"-"放在一个开始字符和一个结束字符的中间，表示字符集中字符<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 的范围。"[a-z]"匹配所有小写 ASCII 字母。范围可以和单独的字符自由的组<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 合在一起，比如"[a-z$%.]"，匹配了任意的小写字母，或"$"，"%"，以及<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "."。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注意，通常在字符集中的特殊字符不再特殊，而在字符集中的"]"，"-"和<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "^"却是特殊字符。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果想在字符集中包括字符"]"，必须放在第一个字符位置。例如，"[]a]"匹<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 配"]"或"a"。想包括"-"，要在第一个或最后一个位置，或在一个范围的后<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 面，如"[]-]"匹配"]"和"-"。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果想在字符集中包括字符"^"，不可以放在第一个位置。（在开始位置，它会<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 把这个字符集取补——看下面。）<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当不区分大小写使用范围时，表示范围的两个字符或者都是大写、或者都是小写、<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 或者都不是字母。混合大小写的范围如"A-z"意思不明确，不被接受，或许在将<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 来的 Emacs 中会被改变。<br /> <br /> *** "[^ ... ]"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "[^"表示"补集合"，匹配的字符是除掉指定的字符外其他所有的字符。如，<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "[^a-z0-9A-Z]"匹配除掉ASCII字母和数字的所有字符。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当"^"在字符集中第一个时，被看作是特殊字符。而跟在"^"后面的字符被看<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 作是第一个字符（就是说，此处的"-"和"]"将不是特殊的）。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个补集合可以匹配换行符，除非换行符被指定为补集合中的一个字符。这不同<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 于某些象"grep"的程序对正则表达式的处理。<br /> <br /> *** "^"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 仅仅匹配在文本中行首的那个空串的特殊字符。就是说，"^foo"匹配在行首的<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "foo"。<br /> <br /> *** "$"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 和"^"相似，但仅匹配行尾的空串。因此"x+$"匹配在行尾的一个或多个"x"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 的串。<br /> <br /> *** "\"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有两个作用：引用特殊字符（包括"\"）；产生附加的特殊结构。<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 因为"\"引用特殊字符，"$"是一个仅匹配"$"的表达式，"\["是一个仅<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配"["的表达式，等等。<br /> <br /> ** 关于反斜线<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注意：为兼容性考虑，特殊字符，如果在其没有意义的上下文中，将被当作普通<br /> &nbsp; 字符。比如："*foo"中把"*"当作普通字符，因为在它前面没有可以作用的前导表<br /> &nbsp; 达式。很少有人会根据这条规则去实践；无论如何，在任何地方都加上引用会更好些。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于大多数情况，"\"后接任何字符仅仅匹配那个字符。然而，有几个例外：<br /> &nbsp; 以"\"开始的两字符序列会有特殊的意思。其中的第二个字符往往是普通字符。下<br /> &nbsp; 面是"\"的结构表。<br /> <br /> *** "\|"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指定一个选择。中间有一个"\|"的两个正则表达式 A 和 B，形成了一个可以匹<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 配 A 或 B 的文本。它首先试图用 A 匹配，如果失败再用 B 去试。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 由此，"foo\|bar"仅匹配"foo"或"bar"。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "\|"作用于两边最长的可能的表达式。仅由"\( ... \)"括起来才可以限制<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "\|"的分组能力。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Emacs 有全面的回退功能，以处理"\|"的多种的用途。<br /> <br /> *** "\( ... \)"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 分组结构，有三个功能：<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.围住"\|"的选择项，以实现别的操作。例如"\(foo\|bar\)x"匹配<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "foox"或"barx"。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.围住复杂的表达式以实现后缀操作符（如"*""+"和"?"）的操作。例如<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "ba\(na\)*"匹配如"bananana"等，有任意个（零或更多）的"na"串。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.记录一个已匹配的子串用作后面的参考引用。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最后一个应用并不是括号的分组功能思想的结果；这个分开的特点是给同样的<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "\( ... \)"结构赋予的第二种含义。在实际应用中，这两种含义通常不会发生<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 冲突。当发生冲突的时候，可以使用"谨慎的"分组("shy" group)。<br /> <br /> *** "\(?: ... \)"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "谨慎的"分组("shy" group)，这个分组不记录匹配的子串；你不能用"\D"来<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 引用。这在机械的结合正则表达式的时候有用，这样，你可以为语法目的加入分<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 组，而不用干涉使用者写的分组的个数。<br /> <br /> *** "\D"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配和"\( ... \)"结构第 D 次出现时所匹配的同样的文本。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在"\( ... \)"结构结束之后，匹配程序保存被这个结构匹配的文本（的开始和<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 结束）；之后的正则表达式中，你可以使用"\"跟着一个数字 D 来表示"匹配<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 和'\( ... \)'结构第 D 次出现时所匹配的同样的文本。"<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 正则表达式中前九个出现的"\( ... \)"结构，按正则表达式中左括号出现的次<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 序从 1 到 9 赋值。因此可以用""到""来引用相应的"\( ... \)"结构。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例如，"\(.*\)"匹配任何有完全相同的两部分而无换行符的串。"\(.*\)"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配前一半，可以是任意的串，""匹配后面的，但必须和前面的完全相同。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果一个特定的"\( ... \)"结构匹配了多次（比如后面有一个"*"，这很显<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 然），那么仅记录最后一次的匹配。<br /> <br /> *** "\`"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配空串，但仅是接在缓冲区的开始处的。<br /> <br /> *** "\&#39;"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配空串，但仅是接在缓冲区的尾部的。<br /> <br /> *** "\="<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配空串，但仅在"点(point)"处的。<br /> <br /> *** "\b"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配空串，但仅在一个词的开始或者结尾的。例如，"\bfoo\b"匹配任何作为单<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 独的词出现的"foo"。"\bballs?\b"匹配作为单独的词出现的"ball"或<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "balls"。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在缓冲区的开始和结束位置时，"\b"不考虑紧接其前的文本是什么。<br /> <br /> *** "\B"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配空串，但不在词的开始或结尾处。<br /> <br /> *** "\&lt;"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配空串，但仅在词的开始处。仅当一个构成词的字符在缓冲区开始处时"\&lt;"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配缓冲区开始处的空串。<br /> <br /> *** "\&gt;"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配空串，但仅在词的结尾处。仅当缓冲区尾部有构成词的字符时"\&gt;"匹配缓<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 冲区尾部的空串。<br /> <br /> *** "\w"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配任何构成词的字符。由语法表决定这些字符是什么。<br /> <br /> *** "\W"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配任何非构成词的字符。<br /> <br /> *** "\sC"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配任何语法是 C 的字符。这里 C 是一个指定特定语法类的字符：如"w"为词<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 的构成字符，"-"或" "为空白，"."为普通标点符号，等等。<br /> <br /> *** "\SC"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配任何字符不属于语法 C。<br /> <br /> *** "\cC"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配任何属于种类 C 的字符。例如，"\cc"匹配汉字，"\cg"匹配希腊字符等。<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果想了解已知种类，用"M-x describe-categories &lt;RET&gt;"。<br /> <br /> *** "\CC"<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配所有不属于种类C的字符。<br /> <br /> &nbsp;&nbsp;&nbsp; 属于词和语法的结构是由语法表的设置来控制的。<br /> <br /> ** 例<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下面是一个复杂的正则表达式，存储在"sentence-end"，Emacs 将其用于识<br /> &nbsp;&nbsp;&nbsp; 别句子的结束以及后面的任何空白。其中以 Lisp 语法区分了空白符和制表符。在<br /> &nbsp;&nbsp;&nbsp; Lisp 语法中，串常量用双引号括起来。"\""表示双引号是表达式的一部分，<br /> &nbsp;&nbsp;&nbsp; "\"表示反斜扛是表达式的一部分，"\t"表示制表符，"\n"表示换行。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "[.?!][]\"&#39;)]*\($\| $\|\t\|&nbsp; \)[ \t\n]*"<br /> <br /> &nbsp;&nbsp;&nbsp; 其中包含四个连续的部分：匹配句号(".")、"?"或"!"的字符集；匹配右方括<br /> &nbsp;&nbsp;&nbsp; 号、右(单/双)引号的字符集的任意次重复的部分；在"反斜线括号"部分中，匹配<br /> &nbsp;&nbsp;&nbsp; 行尾、行尾空白、制表符或两个空格的可选集合；以及一个任意次匹配空白的字符<br /> &nbsp;&nbsp;&nbsp; 集。<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在增量搜索中，要用 &lt;TAB&gt; 输入制表符，"C-j"输入换行符。也可以使用单<br /> &nbsp;&nbsp;&nbsp; 独的反斜线，不用象 Lisp 串中那样写成两个。<br /> <br /> <br /> Author: Wang Chunyu &lt;<a href="mailto:dddkk@sina.com">dddkk@sina.com</a>&gt;<br /> Create: "2002-04-20"<br /> <br /> Local Variables:<br /> mode: outline<br /> fill-column: 76<br /> End:<br /> <br /> $Id: intro-regexp,v 1.4 2002/05/09 7:08:47 spr Exp $<br /><br /><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn</a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119132#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:10 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119132</link>
        <guid>http://border.javaeye.com/blog/119132</guid>
      </item>
      <item>
        <title>『Java』一个简单的蜘蛛（Java Spider）</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119133" style="color:red;">http://border.javaeye.com/blog/119133</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <br clear="all" />一个简单的java蜘蛛， 通过流的到网站的信息，没有对Html进行分析，等有时间了再完善。<br /><br /><span style="color: rgb(153, 51, 153);">package cn.border.spider;</span><br style="color: rgb(153, 51, 153);" /><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);"> import java.io.BufferedReader;</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">import java.io.InputStream;</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);"> import java.io.InputStreamReader;</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">import java.net.HttpURLConnection;</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);"> import java.net.URL;</span><br style="color: rgb(153, 51, 153);" /><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">public class HttpUserAgentTest {</span><br style="color: rgb(153, 51, 153);" /><br style="color: rgb(153, 51, 153);" /> <span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp; /**</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp; * @param args</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);"> &nbsp;&nbsp;&nbsp;&nbsp; * @throws Exception </span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp; */</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp; public static void main(String[] args) throws Exception { </span><br style="color: rgb(153, 51, 153);" /><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; URL url = new URL("<a href="http://www.borderj.cn">http://www.borderj.cn</a>");</span> <br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpURLConnection httpConnection = (HttpURLConnection) url</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .openConnection();</span><br style="color: rgb(153, 51, 153);" /><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置User-Agent</span><br style="color: rgb(153, 51, 153);" /> <span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; httpConnection.setRequestProperty("User-Agent",</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "BorderSpider ( <a href="Http://www.borderj.cn)">Http://www.borderj.cn)</a>");</span><br style="color: rgb(153, 51, 153);" /><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //获得输入流</span><br style="color: rgb(153, 51, 153);" /> <span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InputStream input = httpConnection.getInputStream();</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InputStreamReader inReader = new InputStreamReader(input, "utf-8");//获得链接该类的流 </span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedReader reader = new BufferedReader(inReader);</span><br style="color: rgb(153, 51, 153);" /><br style="color: rgb(153, 51, 153);" /> <span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int retVal = 0;</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char[] cString = new char[1000];</span><br style="color: rgb(153, 51, 153);" /> <span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int len = 1000;</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String getString = "";</span><br style="color: rgb(153, 51, 153);" /> <br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while ((retVal = reader.read(cString, 0, len)) != -1) {</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getString += String.valueOf(cString, 0, retVal);</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(getString);</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">&nbsp;&nbsp;&nbsp; }</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">}</span> <br /><br /><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn</a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com">borderj@live.com</a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119133#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:10 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119133</link>
        <guid>http://border.javaeye.com/blog/119133</guid>
      </item>
      <item>
        <title>『Linux 』su 与sudo</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119134" style="color:red;">http://border.javaeye.com/blog/119134</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <br clear="all" />&nbsp;&nbsp;&nbsp; 今天在看<a href="http://www.worldofvishnu.com/tech/hack-the-computers-in-your-lan/">arp，TCP劫持</a>时，要修改ip_forward，但是在执行时发现：<br /><br /><div style="margin-left: 40px;"><span style="color: rgb(153, 51, 153);">border@ubuntu :~$ sudo echo 1 &gt; /proc/sys/net/ipv4/ip_forward</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">bash: /proc/sys/net/ipv4/ip_forward: Permission denied</span><br /></div><br />但是通过 su切换到root就没有问题。 <br /><br /><div style="margin-left: 40px;"><span style="color: rgb(153, 51, 153);">border@ubuntu:~$ su</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">Password: </span><br style="color: rgb(153, 51, 153);" /> <span style="color: rgb(153, 51, 153);">root@ubuntu:/home/border# sudo echo 1 &gt; /proc/sys/net/ipv4/ip_forward</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">root@ubuntu:/home/border# cat /proc/sys/net/ipv4/ip_forward </span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">1</span><br style="color: rgb(153, 51, 153);" /><span style="color: rgb(153, 51, 153);">root@ubuntu:/home/border# </span><br /></div><br />&nbsp;&nbsp;&nbsp; 比较疑惑，就查了查资料： <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在<a href="http://marc.abramowitz.info/archives/2006/05/17/su-su-sudo-oh-no/">这里</a>也发现了同样的问题，刚开始<a href="http://marc.abramowitz.info/archives/2006/05/17/su-su-sudo-oh-no/">Marc</a>以为是shell内置函数的问题，但是在评论的Jan否认了这个，并给了个例子： <br /><br /><p style="margin-left: 40px; color: rgb(153, 51, 153);">sudo /bin/echo 1 &gt; /root/test</p> <p style="margin-left: 40px; color: rgb(153, 51, 153);">doesn't work either while</p> <p style="margin-left: 40px; color: rgb(153, 51, 153);">sudo sh -c "/bin/echo 1 &gt; /root/test"</p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jan认为是在重定向前有root的权限，但是在重定后就没有root的权限，所以出错。（感觉自己写的好绕）<br /><br />源文：<br /><br /><div class="commenttext" style="color: rgb(153, 51, 153);"> <p style="margin-left: 40px;">I think the problem is not that echo is a shell builtin but rather that the file you're trying to redirect to is being opend by the shell before the sudo is executed and therefore the command fails because user "marc" doesn't have write permissions on the file.</p> <p style="margin-left: 40px;">sudo /bin/echo 1 &gt; /root/test</p> <p style="margin-left: 40px;">doesn't work either while</p> <p style="margin-left: 40px;">sudo sh -c "/bin/echo 1 &gt; /root/test"</p> <p style="margin-left: 40px;">does as you have already noted.</p> </div><br />参考： <a href="http://marc.abramowitz.info/archives/2006/05/17/su-su-sudo-oh-no/">http://marc.abramowitz.info/archives/2006/05/17/su-su-sudo-oh-no/</a><br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.worldofvishnu.com/tech/hack-the-computers-in-your-lan/"> http://www.worldofvishnu.com/tech/hack-the-computers-in-your-lan/</a><br /><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn</a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com">borderj@live.com</a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119134#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:09 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119134</link>
        <guid>http://border.javaeye.com/blog/119134</guid>
      </item>
      <item>
        <title>『Java』通过Scanner来输入字符串</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119135" style="color:red;">http://border.javaeye.com/blog/119135</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp; <a href="http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/util/Scanner.html">Scanner </a>一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器。<br /><br style="color: rgb(102, 51, 102);" /><span style="color: rgb(102, 51, 102);">package cn.border.test;</span><br style="color: rgb(102, 51, 102);" /><br style="color: rgb(102, 51, 102);" /> <span style="color: rgb(102, 51, 102);">import java.util.Scanner;</span><br style="color: rgb(102, 51, 102);" /><span style="color: rgb(102, 51, 102);">public class ReadStr{</span><br style="color: rgb(102, 51, 102);" /><span style="color: rgb(102, 51, 102);"> &nbsp;</span><br style="color: rgb(102, 51, 102);" /><span style="color: rgb(102, 51, 102);">&nbsp;&nbsp;&nbsp; /**</span><br style="color: rgb(102, 51, 102);" /><span style="color: rgb(102, 51, 102);">&nbsp;&nbsp;&nbsp;&nbsp; * @param args</span><br style="color: rgb(102, 51, 102);" /> <span style="color: rgb(102, 51, 102);">&nbsp;&nbsp;&nbsp;&nbsp; */</span><br style="color: rgb(102, 51, 102);" /><span style="color: rgb(102, 51, 102);">&nbsp;&nbsp;&nbsp; public static void main(String[] args) {</span><br style="color: rgb(102, 51, 102);" /> <span style="color: rgb(102, 51, 102);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Scanner sc= new Scanner(<a href="http://System.in">System.in</a>);</span><br style="color: rgb(102, 51, 102);" /><span style="color: rgb(102, 51, 102);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println ("Input the number:"); //输入数字</span><br style="color: rgb(102, 51, 102);" /><span style="color: rgb(102, 51, 102);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String str= sc.next();</span><br style="color: rgb(102, 51, 102);" /><span style="color: rgb(102, 51, 102);"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(str);</span><br style="color: rgb(102, 51, 102);" /><span style="color: rgb(102, 51, 102);">&nbsp;&nbsp;&nbsp; }</span><br style="color: rgb(102, 51, 102);" /><span style="color: rgb(102, 51, 102);">}</span><br style="color: rgb(102, 51, 102);" /> <br />参考：<a href="http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/util/Scanner.html">http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/util/Scanner.html</a><br clear="all" /><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn"> www.borderj.cn</a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com">borderj@live.com</a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119135#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:09 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119135</link>
        <guid>http://border.javaeye.com/blog/119135</guid>
      </item>
      <item>
        <title>『Hack 』Tcpdump的使用</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119136" style="color:red;">http://border.javaeye.com/blog/119136</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          From: <a href="http://www.xfocus.net/articles/200105/172.html">http://www.xfocus.net/articles/200105/172.html</a><br clear="all" />来源：<a href="http://www.china-pub.com/computers/emook/0424/info.htm" target="_blank">http://www.china-pub.com/computers/emook/0424/info.htm </a><br /> 作者：李国莉　<br /> <br /> <br /> tcpdump采用命令行方式，它的命令格式为：<br /> 　　tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]<br /> 　　　　　　　　　　[ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]<br /> 　　　　　　　　　　[ -T 类型 ] [ -w 文件名 ] [表达式 ]<br /> <br /> 　　1. tcpdump的选项介绍<br /> 　　　-a 　　　将网络地址和广播地址转变成名字；<br /> 　　　-d 　　　将匹配信息包的代码以人们能够理解的汇编格式给出；<br /> 　　　-dd 　　　将匹配信息包的代码以c语言程序段的格式给出；<br /> 　　　-ddd 　　　将匹配信息包的代码以十进制的形式给出；<br /> 　　　-e 　　　在输出行打印出数据链路层的头部信息；<br /> 　　　-f 　　　将外部的Internet地址以数字的形式打印出来；<br /> 　　　-l 　　　使标准输出变为缓冲行形式；<br /> 　　　-n 　　　不把网络地址转换成名字；<br /> 　　　-t 　　　在输出的每一行不打印时间戳；<br /> 　　　-v 　　　输出一个稍微详细的信息，例如在ip包中可以包括ttl和服务类型的信息；<br /> 　　　-vv 　　　输出详细的报文信息；<br /> 　　　-c 　　　在收到指定的包的数目后，tcpdump就会停止；<br /> 　　　-F 　　　从指定的文件中读取表达式,忽略其它的表达式；<br /> 　　　-i 　　　指定监听的网络接口；<br /> 　　　-r 　　　从指定的文件中读取包(这些包一般通过-w选项产生)；<br /> 　　　-w 　　　直接将包写入文件中，并不分析和打印出来；<br /> 　　　-T 　　　将监听到的包直接解释为指定的类型的报文，常见的类型有rpc （远程过程<br />  调用）和snmp（简单　　　　　　　网络管理协议；）<br /> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可以使用windump -D 列出当前系统中所有的网络设备接口<br /><div style="margin-left: 40px;">F:\&gt;windump -D<br /> 1.\Device\NPF_GenericDialupAdapter (Generic dialup adapter)<br /> 2.\Device\NPF_{4B1F3F27-151D-423B-AE5A-6032AD4F47AF} (SiS NIC SISNIC (Microsoft&#39;s Packet Scheduler)<br /> )<br /></div> 　　2. tcpdump的表达式介绍<br /> 　　　表达式是一个正则表达式，tcpdump利用它作为过滤报文的条件，如果一个报文满足表<br /> 达式的条件，则这个报文将会被捕获。如果没有给出任何条件，则网络上所有的信息包将会<br /> 被截获。<br /> 　　　在表达式中一般如下几种类型的关键字，一种是关于类型的关键字，主要包括host，<br /> net，port, 例如 host 210.27.48.2，指明 210.27.48.2是一台主机，net <a href="http://202.0.0.0">202.0.0.0</a> 指明<br />  202.0.0.0是一个网络地址，port 23 指明端口号是23。如果没有指定类型，缺省的类型是<br /> host.<br /> 　　　第二种是确定传输方向的关键字，主要包括src , dst ,dst or src, dst and src ,<br /> 这些关键字指明了传输的方向。举例说明，src <a href="http://210.27.48.2">210.27.48.2</a> ,指明ip包中源地址是210.27.<br /> 48.2 , dst net <a href="http://202.0.0.0">202.0.0.0</a> 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字，则<br /> 缺省是src or dst关键字。<br /> 　　　第三种是协议的关键字，主要包括fddi,ip ,arp,rarp,tcp,udp等类型。Fddi指明是在<br /> FDDI(分布式光纤数据接口网络)上的特定的网络协议，实际上它是"ether"的别名，fddi和e<br /> ther具有类似的源地址和目的地址，所以可以将fddi协议包当作ether的包进行处理和分析。<br /> 其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议，则tcpdump将会<br /> 监听所有协议的信息包。<br /> 　　　除了这三种类型的关键字之外，其他重要的关键字如下：gateway, broadcast,less,<br /> greater,还有三种逻辑运算，取非运算是 &#39;not &#39; &#39;! &#39;, 与运算是&#39;and&#39;,&#39;&amp;&amp;&#39;;或运算 是&#39;o<br /> r&#39; ,&#39;||&#39;；<br /> 　　　这些关键字可以组合起来构成强大的组合条件来满足人们的需要，下面举几个例子来<br /> 说明。<br /> 　　　(1)想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包：<br /> 　　　　#tcpdump host <a href="http://210.27.48.1">210.27.48.1</a> <br /> 　　　(2) 想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信，使用命令<br /> ：（在命令行中适用　　　括号时，一定要<br /> 　　　　#tcpdump host <a href="http://210.27.48.1">210.27.48.1</a> and \ (<a href="http://210.27.48.2">210.27.48.2</a> or <a href="http://210.27.48.3">210.27.48.3</a> \) <br /> 　　　(3) 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包<br /> ，使用命令：<br /> 　　　　#tcpdump ip host <a href="http://210.27.48.1">210.27.48.1</a> and ! <a href="http://210.27.48.2">210.27.48.2</a><br /> 　　　(4)如果想要获取主机210.27.48.1接收或发出的telnet包，使用如下命令：<br /> 　　　　#tcpdump tcp port 23 host <a href="http://210.27.48.1">210.27.48.1</a> <br /> <br /> 　　3. tcpdump 的输出结果介绍<br /> 　　　下面我们介绍几种典型的tcpdump命令的输出信息<br /> 　　　(1) 数据链路层头信息<br /> 　　　使用命令#tcpdump --e host ice<br /> 　　　ice 是一台装有linux的主机，她的MAC地址是0：90：27：58：AF：1A<br /> 　　　H219是一台装有SOLARIC的SUN工作站，它的MAC地址是8：0：20：79：5B：46；上一条<br /> 命令的输出结果如下所示：<br /> 21:50:12.847509 eth0 &lt; 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 &gt; ice.<br /> telne<br /> t 0:0(0) ack 22535 win 8760 (DF)<br /> 　　分析：21：50：12是显示的时间， 847509是ID号，eth0 &lt;表示从网络接口eth0 接受该<br /> 数据包，eth0 &gt;表示从网络接口设备发送数据包, 8:0:20:79:5b:46是主机H219的MAC地址,它<br /> 表明是从源地址H219发来的数据包. 0:90:27:58:af:1a是主机ICE的MAC地址,表示该数据包的<br /> 目的地址是ICE . ip 是表明该数据包是IP数据包,60 是数据包的长度, h219.33357 &gt; ice.<br /> telnet 表明该数据包是从主机H219的33357端口发往主机ICE的TELNET(23)端口. ack 22535<br />  表明对序列号是222535的包进行响应. win 8760表明发送窗口的大小是8760.<br /> <br /> 　　(2) ARP包的TCPDUMP输出信息<br /> 　　　使用命令#tcpdump arp <br /> 　　　得到的输出结果是：<br /> 　　22:32:42.802509 eth0 &gt; arp who-has route tell ice (0:90:27:58:af:1a)<br /> 　　22:32:42.802902 eth0 &lt; arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af<br /> :1a)<br /> 　　分析: 22:32:42是时间戳, 802509是ID号, eth0 &gt;表明从主机发出该数据包, arp表明是<br /> ARP请求包, who-has route tell ice表明是主机ICE请求主机ROUTE的MAC地址。 0:90:27:5<br /> 8:af:1a是主机ICE的MAC地址。<br /> <br /> 　　(3) TCP包的输出信息<br /> 　　　用TCPDUMP捕获的TCP包的一般输出信息是：<br /> 　　src &gt; dst: flags data-seqno ack window urgent options<br /> 　　src &gt; dst:表明从源地址到目的地址, flags是TCP包中的标志信息,S 是SYN标志, F (F<br /> IN), P (PUSH) , R (RST) "." (没有标记); data-seqno是数据包中的数据的顺序号, ack是<br /> 下次期望的顺序号, window是接收缓存的窗口大小, urgent表明数据包中是否有紧急指针. <br /> Options是选项.<br /> <br /> 　　(4) UDP包的输出信息<br /> 　　　用TCPDUMP捕获的UDP包的一般输出信息是：<br /> 　　route.port1 &gt; ice.port2: udp lenth<br /> 　　UDP十分简单，上面的输出行表明从主机ROUTE的port1端口发出的一个UDP数据包到主机<br /> ICE的port2端口，类型是UDP， 包的长度是lenth<br /><br /><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn</a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com">borderj@live.com</a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119136#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:08 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119136</link>
        <guid>http://border.javaeye.com/blog/119136</guid>
      </item>
      <item>
        <title>『3D 』开源的 3D 软件 Blender</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119137" style="color:red;">http://border.javaeye.com/blog/119137</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span class="postbody">&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.blender.org/">Blender</a> 是开源的3D软件。主要用于建模、动画、渲染、影视后期制作、交互式媒体制作及回放。它遵循GNU Public License，可在大多数主流操作系统上运行(包括windows, linux, Unix, </span>Mac OS X ... all major operating systems  <span class="postbody">)。 <br /><br />&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://blender.org">Blender</a> 是用</span>C/C++开发的，不过最喜欢的还是它的脚本Python。<br /><br clear="all" /><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn</a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com"> borderj@live.com</a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119137#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:07 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119137</link>
        <guid>http://border.javaeye.com/blog/119137</guid>
      </item>
      <item>
        <title>『Emacs 』在Ubuntu通过CVS安装Emacs23</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119138" style="color:red;">http://border.javaeye.com/blog/119138</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          来自: <a href="http://blog.csdn.net/horsefaced/archive/2007/01/14/1482693.aspx">http://blog.csdn.net/horsefaced/archive/2007/01/14/1482693.aspx</a><br /><br clear="all" />    本文章是汇总文章，内容都是来自<br /><a href="http://www.pkblogs.com/jasonal/2006/05/getting-cvs-emacs-23.html"> http://www.pkblogs.com/jasonal/2006/05/getting-cvs-emacs-23.html</a><br />与<br /><a href="http://www.dirk.sh/diary/install_emacs_23_in_ubuntu_610">http://www.dirk.sh/diary/install_emacs_23_in_ubuntu_610</a>，因为这两个BLOG中各有自己的问题，所以再写一汇总的，一次解决掉 <br /><br />1、 如果你没有CVS的话，<div style="border: 0.5pt solid windowtext; padding: 4px 5.4pt; background: rgb(230, 230, 230) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 95%;"> <div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: rgb(0, 0, 0);">sudo&nbsp;apt-get&nbsp;install&nbsp;cvs&nbsp;&nbsp;&nbsp; </span>用来安装cvs</div></div><br />2、用&nbsp;<div style="border: 0.5pt solid windowtext; padding: 4px 5.4pt; background: rgb(230, 230, 230) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 95%;"> <div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: rgb(0, 0, 0);">cvs&nbsp;-z3&nbsp;-d</span><span style="color: rgb(128, 0, 0);">:pserver:anonymous</span><span style="color: rgb(0, 0, 0);"> @cvs</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">savannah</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">gnu</span><span style="color: rgb(0, 0, 0);"> .</span><span style="color: rgb(0, 0, 0);">org:</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">sources</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);"> emacs&nbsp;co&nbsp;-r&nbsp;emacs-unicode-</span><span style="color: rgb(0, 0, 0);">2</span><span style="color: rgb(0, 0, 0);">&nbsp;emacs</span></div></div>从cvs服务器上得到最新的emacs<br /><br />3、 安装如下的包<br /><div style="border: 0.5pt solid windowtext; padding: 4px 5.4pt; background: rgb(230, 230, 230) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 95%;"> <div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: rgb(0, 0, 0);">sudo&nbsp;apt-get&nbsp;build-dep&nbsp;emacs21<br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /> sudo&nbsp;apt-get&nbsp;install&nbsp;xserver-xorg-dev<br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />sudo&nbsp;apt-get&nbsp;install&nbsp;xorg-dev<br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /> sudo&nbsp;apt-get&nbsp;install&nbsp;libncurses5<br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />sudo&nbsp;apt-get&nbsp;install&nbsp;libncurses5-dev<br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /> sudo&nbsp;apt-get&nbsp;install&nbsp;libidl-dev<br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />sudo&nbsp;apt-get&nbsp;install&nbsp;libgtk2</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);"> 0</span><span style="color: rgb(0, 0, 0);">-dev</span></div></div><br />4、 开始编译emacs啦，大家慢慢等哦<br /><div style="border: 0.5pt solid windowtext; padding: 4px 5.4pt; background: rgb(230, 230, 230) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 95%;"> <div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: rgb(0, 0, 0);">./</span><span style="color: rgb(0, 0, 0);">configure&nbsp;--enable-font-backend&nbsp;--with-xft&nbsp;--with-freetype&nbsp;--with-gtk <br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />make&nbsp;bootstrap<br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /> make</span></div></div><br />5、 编译完后，用 src/emacs试一下，没有问题了再运行<br /><div style="border: 0.5pt solid windowtext; padding: 4px 5.4pt; background: rgb(230, 230, 230) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 95%;"> <div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: rgb(0, 0, 0);">sudo&nbsp;make&nbsp;install</span></div></div><br />6、 好了，这下都OK啦。谢谢摘要中的两位BLOG作者，大家多多去他们那儿看看哦。 <br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /><br /><br />7.&nbsp; 配置文件可以参考<a href="http://www.pkblogs.com/borderjs/2007/08/emacsemacs.html">『Emacs』我的.emacs文件</a><span style="text-decoration: underline;"> <br /><br /><br /></span>-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn</a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com">borderj@live.com</a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119138#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:06 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119138</link>
        <guid>http://border.javaeye.com/blog/119138</guid>
      </item>
      <item>
        <title>『Other』 诺基亚免费更换4600万手机电池</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119139" style="color:red;">http://border.javaeye.com/blog/119139</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 诺基亚承认由松下生产的4600万块BL-5C型手机电池存在过热的威胁，<a href="http://news.yahoo.com/s/nm/20070815/tc_nm/nokia_batteries_dc">宣布提供免费更换</a>，松下公司将支付其中一部分费用。电池的生产日期从2005年12月到2006年11月，诺基亚表示从全球收到了约100起过热事故报告，没有出现严重的人员受伤报告。可以登录<a href="https://www.nokia.com/batteryreplacement/en/"> 诺基亚网站</a>检查自己的手机型号是否在上面。<br clear="all" /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PS: 也查了下我的手机发现，可以更换，嘿嘿。提示信息如下：<br /><br />""<br /><h2 style="color: rgb(204, 51, 204);">Product Advisory: Nokia BL-5C battery</h2><br style="color: rgb(204, 51, 204);" /><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);">您的电池可以置换 </span><br style="color: rgb(204, 51, 204);" /><br style="color: rgb(204, 51, 204);" /> <p><span style="color: rgb(204, 51, 204);">请您填写下列联系方式。  我们会邮寄给您一块置换电池，并告知如何归还您的旧电池。为了确保妥善地处理旧电池，所有收到置换电池的用户须同意将旧电池放在寄去的信封内归还。</span> </p><br />""<br /><br />From: <a href="http://hardware.solidot.org/article.pl?sid=07/08/15/0557236">http://hardware.solidot.org/article.pl?sid=07/08/15/0557236 </a><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn</a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com">borderj@live.com</a><br /><br />&nbsp;&nbsp;Border
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119139#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:05 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119139</link>
        <guid>http://border.javaeye.com/blog/119139</guid>
      </item>
      <item>
        <title>『Ubuntu&amp;Linux 』支持NTFS读写</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119140" style="color:red;">http://border.javaeye.com/blog/119140</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp; 使用ntfs-3g可以在ntfs分区上无限制的新建、删除文件!<br clear="all" /><br />Ubuntu 6.10 (edgy)源 :<br /><span style="color: rgb(204, 51, 204);"> deb <a href="http://ubuntu.cn99.com/ubuntu/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">http://ubuntu.cn99.com/ubuntu/</a> edgy main restricted universe multiverse</span><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);"> deb <a href="http://ubuntu.cn99.com/ubuntu/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">http://ubuntu.cn99.com/ubuntu/</a> edgy-updates main restricted universe multiverse</span><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);"> deb <a href="http://ubuntu.cn99.com/ubuntu/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">http://ubuntu.cn99.com/ubuntu/</a> edgy-security main restricted universe multiverse</span><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);"> deb <a href="http://ubuntu.cn99.com/ubuntu/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">http://ubuntu.cn99.com/ubuntu/</a> edgy-backports main restricted universe multiverse</span><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);"> deb <a href="http://ubuntu.cn99.com/ubuntu-cn/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">http://ubuntu.cn99.com/ubuntu-cn/</a> edgy main restricted universe multiverse</span><br style="color: rgb(204, 51, 204);" />  <br style="color: rgb(204, 51, 204);" /><span style="color: rgb(204, 51, 204);"> deb-src <a href="http://ubuntu.cn99.com/ubuntu/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">http://ubuntu.cn99.com/ubuntu/</a> edgy main restricted universe multiverse</span><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);"> deb-src <a href="http://ubuntu.cn99.com/ubuntu/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">http://ubuntu.cn99.com/ubuntu/</a> edgy-updates main restricted universe multiverse</span><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);"> deb-src <a href="http://ubuntu.cn99.com/ubuntu/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">http://ubuntu.cn99.com/ubuntu/</a> edgy-security main restricted universe multiverse</span><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);"> deb-src <a href="http://ubuntu.cn99.com/ubuntu/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">http://ubuntu.cn99.com/ubuntu/</a> edgy-backports main restricted universe multiverse<br /><br /></span> <span style="background-color: rgb(255, 255, 255);"> 1. 安装</span><br /> &nbsp;&nbsp;&nbsp;&nbsp;  <span style="color: rgb(204, 51, 204);">border@ubuntu:~$ sudo apt-get install ntfs-3g</span><span style="color: rgb(204, 51, 204);"><br /> 2. 配置：<br /> &nbsp;&nbsp;&nbsp; <span style="color: rgb(204, 51, 204);">border@ubuntu:~$ sudo gedit /etc/fstab </span><span style="color: rgb(204, 51, 204);">sudo gedit /etc/fstab</span><br /> &nbsp;&nbsp;&nbsp; 找到其中的你需要开启读写的ntfs分区那一行，原先的"ntfs"改为"ntfs-3g" ，如果要全部开启，则替&nbsp; 换所有"ntfs"为"ntfs-3g"，保存退出<br /> &nbsp;&nbsp; <span style="color: rgb(204, 51, 204);"> border@ubuntu :~$ </span><span style="color: rgb(204, 51, 204);">sudo gedit /etc/modules</span><br /> &nbsp;&nbsp; 在文件的末尾添加一行（如果有则不用增加:-） <br /> &nbsp;&nbsp;&nbsp; <span style="color: rgb(204, 51, 204);">fuse</span><br /><p>3. 重启即可或者如果想要立即测试：<br /><span style="color: rgb(204, 51, 204);">  border@ubuntu:~$ sudo modprobe fuse</span><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);">border@ubuntu:~$ sudo umount -a</span><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);">umount: /dev: 设备忙</span><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);">umount: /proc/bus/usb: 设备忙</span><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);">umount: /var/run: 设备忙</span><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);">umount: /sys: 设备忙</span><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);">umount: /: 设备忙</span><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);">border@ubuntu:~$ sudo mount -a</span><span style="color: rgb(204, 51, 204);">&nbsp;&nbsp; </span><span style="color: rgb(204, 51, 204);"></span></p><p>4.&nbsp; 手动加载ntfs模块<span style="color: rgb(204, 51, 204);"> </span><span style="color: rgb(204, 51, 204);"></span><span style="color: rgb(204, 51, 204);"><br style="color: rgb(204, 51, 204);" /><span style="color: rgb(204, 51, 204);">border@ubuntu:~$ sudo mount -t ntfs-3g /dev/sda1 /mnt/usb1 -o charset=gbk </span><br style="color: rgb(204, 51, 204);" /></span><span style="color: rgb(204, 51, 204);"><br /></span></p>参考: <a href="http://blog.dukuai.com/index.php/uid-298823-action-viewspace-itemid-464890">http://blog.dukuai.com/index.php/uid-298823-action-viewspace-itemid-464890 </a><br /><br />-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">www.borderj.cn</a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank"> borderj@live.com</a><br /><br />&nbsp;&nbsp;Border</span>
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119140#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:04 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119140</link>
        <guid>http://border.javaeye.com/blog/119140</guid>
      </item>
      <item>
        <title>『MySql 』编码设置</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119141" style="color:red;">http://border.javaeye.com/blog/119141</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span id="ctl00_MainContentPlaceholder_ctl00_ctl00_lblEntry">MySQL 4.1的字符集支持(Character Set Support)有两个方面：字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server)，数据库(database)，数据表(table)和连接(connection)。 <br /><br />查看系统的字符集和排序方式的设定可以通过下面的<span style="color: rgb(204, 51, 204);">两条命令</span>或<span style="color: rgb(204, 51, 204);">mysql&gt; status</span> 。 <br /><br /><span style="color: rgb(204, 51, 204);"> mysql&gt; SHOW VARIABLES LIKE &#39;character_set_%&#39;; </span><br />+--------------------------+----------------------------+ <br />| Variable_name | Value | <br />+--------------------------+----------------------------+ <br /> | character_set_client | latin1 | <br />| character_set_connection | latin1 | <br />| character_set_database | latin1 | <br />| character_set_results | latin1 | <br />| character_set_server | latin1 | <br />| character_set_system | utf8 |  <br />| character_sets_dir | /usr/share/mysql/charsets/ | <br />+--------------------------+----------------------------+ <br />7 rows in set (0.00 sec) <br /><br /><span style="color: rgb(204, 51, 204);">mysql&gt; SHOW VARIABLES LIKE &#39;collation_%&#39;;  </span><br />+----------------------+-------------------+ <br />| Variable_name | Value | <br />+----------------------+-------------------+ <br />| collation_connection | latin1_swedish_ci | <br />| collation_database | latin1_swedish_ci |  <br />| collation_server | latin1_swedish_ci | <br />+----------------------+-------------------+ <br />3 rows in set (0.00 sec) <br /><br />上面列出的值就是系统的默认值。(很奇怪系统怎么默认是latin1的瑞典语排序方式)... <br /><br />当我们按照原来的方式通过PHP存取MySQL数据库时，就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询，你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句：  </span><br /><span id="ctl00_MainContentPlaceholder_ctl00_ctl00_lblEntry"><br />1.&nbsp;<span style="color: rgb(153, 51, 153);"> <span style="color: rgb(204, 51, 204);">SET NAMES &#39;utf8&#39;; </span></span><br style="color: rgb(204, 51, 204);" /> <br style="color: rgb(204, 51, 204);" /><span style="color: rgb(204, 51, 204);">它相当于下面的三句指令： </span><br style="color: rgb(204, 51, 204);" /><span style="color: rgb(204, 51, 204);">SET character_set_client = utf8; </span><br style="color: rgb(204, 51, 204);" /> <span style="color: rgb(204, 51, 204);">SET character_set_results = utf8; </span><br style="color: rgb(204, 51, 204);" /><span style="color: rgb(153, 51, 153);"><span style="color: rgb(204, 51, 204);">SET character_set_connection = utf8; </span> </span><br /><br /></span><span id="ctl00_MainContentPlaceholder_ctl00_ctl00_lblEntry">2. 创建数据库 <br /><span style="color: rgb(204, 51, 204);">mysql&gt; create database name character set utf8; </span><br /><br />3. </span><span id="ctl00_MainContentPlaceholder_ctl00_ctl00_lblEntry"> 创建表<br /></span><span id="ctl00_MainContentPlaceholder_ctl00_ctl00_lblEntry" style="color: rgb(204, 51, 204);">CREATE TABLE `type` ( <br />`id` int(10) unsigned NOT NULL auto_increment, <br />`flag_deleted` enum(&#39;Y&#39;,&#39;N&#39;) character set utf8 NOT NULL default &#39;N&#39;,  <br />`flag_type` int(5) NOT NULL default &#39;0&#39;, <br />`type_name` varchar(50) character set utf8 NOT NULL default &#39;&#39;, <br />PRIMARY KEY (`id`) <br />)&nbsp; DEFAULT CHARSET=utf8; <br /><br /><span style="color: rgb(0, 0, 0);"> 4. </span></span><span id="ctl00_MainContentPlaceholder_ctl00_ctl00_lblEntry"><span style="color: rgb(0, 0, 0);">修改数据库成utf8的.<br /></span></span><span id="ctl00_MainContentPlaceholder_ctl00_ctl00_lblEntry" style="color: rgb(204, 51, 204);"> mysql&gt; alter database name character set utf8; </span><br /><span id="ctl00_MainContentPlaceholder_ctl00_ctl00_lblEntry"><span style="color: rgb(0, 0, 0);"><br />5. </span><span id="ctl00_MainContentPlaceholder_ctl00_ctl00_lblEntry"> 修改表默认用utf8.<br /></span><span id="ctl00_MainContentPlaceholder_ctl00_ctl00_lblEntry" style="color: rgb(204, 51, 204);">mysql&gt; alter table type character set utf8; </span><br /><span id="ctl00_MainContentPlaceholder_ctl00_ctl00_lblEntry"> <br clear="all" /></span>6. <span id="ctl00_MainContentPlaceholder_ctl00_ctl00_lblEntry">修改字段用utf8<br /></span><span id="ctl00_MainContentPlaceholder_ctl00_ctl00_lblEntry" style="color: rgb(204, 51, 204);">mysql&gt; alter table type modify type_name varchar(50) CHARACTER SET utf8;  <br /><br /><span style="color: rgb(0, 0, 0);">参考：<a href="http://xyfxh.spaces.live.com/Blog/cns!4EFEB1E6EFF8C824!151.entry">http://xyfxh.spaces.live.com/Blog/cns!4EFEB1E6EFF8C824!151.entry</a></span><br /></span><span id="ctl00_MainContentPlaceholder_ctl00_ctl00_lblEntry"> <br /></span>-- <br />Blog:&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.borderj.cn">www.borderj.cn</a><br />MSN:&nbsp;&nbsp; <a href="mailto:borderj@live.com">borderj@live.com</a><br /><br />&nbsp;&nbsp;Border</span>
          <br/>
          <span style="color:red;">
            <a href="http://border.javaeye.com/blog/119141#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 31 Aug 2007 19:15:03 +0800</pubDate>
        <link>http://border.javaeye.com/blog/119141</link>
        <guid>http://border.javaeye.com/blog/119141</guid>
      </item>
      <item>
        <title>『Emacs 』发现python-mode文档注释一个Bug</title>
        <author>border</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://border.javaeye.com">border</a>&nbsp;
          链接：<a href="http://border.javaeye.com/blog/119142" style="color:red;">http://border.javaeye.com/blog/119142</a>&nbsp;
          发表时间: 2007年08月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <br clear="all" /><font>在看<a href="http://code.google.com/p/thumbpy/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">thumbpy</a> 的时候，发现python-mode不能正常解析"""&nbsp; 和 &#39