﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-Treacle</title><link>http://www.blogjava.net/Blake/</link><description>Java Toxication!</description><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 01:05:54 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 01:05:54 GMT</pubDate><ttl>60</ttl><item><title>网站上看所有央视的直播及奥运比赛</title><link>http://www.blogjava.net/Blake/archive/2008/07/03/212225.html</link><dc:creator>Blake HAN</dc:creator><author>Blake HAN</author><pubDate>Wed, 02 Jul 2008 16:41:00 GMT</pubDate><guid>http://www.blogjava.net/Blake/archive/2008/07/03/212225.html</guid><wfw:comment>http://www.blogjava.net/Blake/comments/212225.html</wfw:comment><comments>http://www.blogjava.net/Blake/archive/2008/07/03/212225.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Blake/comments/commentRss/212225.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Blake/services/trackbacks/212225.html</trackback:ping><description><![CDATA[
		<p>辛苦了半年，央视的全新网络电视社区——央视网络电视台终于上线了。大家可以在其中看到所有央视频道的网络直播。欧洲杯期间全程直播了所有的比赛。<br />也许我应该早些告诉大家，不过咱不还有奥运会么。<img height="20" src="http://www.blogjava.net/Emoticons/QQ/14.gif" width="20" border="0" /><br />有兴趣的朋友可以访问 <a href="http://www.cctvolympics.com">www.cctvolympics.com</a> 参观一下。<br /><br />另帮公司做下招聘，有Flex项目经验，愿意到北京、上海发展的兄弟们可以将简历给我……</p>
		<p>
				<img src="http://www.blogjava.net/images/blogjava_net/Blake/1665/r_%e5%a4%ae%e8%a7%86%e7%bd%91%e7%bb%9c%e7%94%b5%e5%8f%b0.PNG" />
		</p>
<img src ="http://www.blogjava.net/Blake/aggbug/212225.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Blake/" target="_blank">Blake HAN</a> 2008-07-03 00:41 <a href="http://www.blogjava.net/Blake/archive/2008/07/03/212225.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>许久未来了</title><link>http://www.blogjava.net/Blake/archive/2008/07/03/212222.html</link><dc:creator>Blake HAN</dc:creator><author>Blake HAN</author><pubDate>Wed, 02 Jul 2008 16:30:00 GMT</pubDate><guid>http://www.blogjava.net/Blake/archive/2008/07/03/212222.html</guid><wfw:comment>http://www.blogjava.net/Blake/comments/212222.html</wfw:comment><comments>http://www.blogjava.net/Blake/archive/2008/07/03/212222.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Blake/comments/commentRss/212222.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Blake/services/trackbacks/212222.html</trackback:ping><description><![CDATA[离开Java世界好多年了，也忘记这个blog很久了。今天突然看见Gmail中有人对某篇文章发表了评论才想起自己原来还有这么一块空间。<br />仔细回味了当年的文章和上传的文件，猛然意识到如今的自己再也不算标准的技术人才了。远离了曾最喜爱的编辑器，天天被邮件埋没和客户做不知所谓的讨论，这算是人类的进步还是衰退呢。。<img height="20" src="http://www.blogjava.net/Emoticons/QQ/noidea.gif" width="20" border="0" /><img src ="http://www.blogjava.net/Blake/aggbug/212222.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Blake/" target="_blank">Blake HAN</a> 2008-07-03 00:30 <a href="http://www.blogjava.net/Blake/archive/2008/07/03/212222.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些有趣的网站</title><link>http://www.blogjava.net/Blake/archive/2005/09/08/12447.html</link><dc:creator>Blake HAN</dc:creator><author>Blake HAN</author><pubDate>Thu, 08 Sep 2005 09:07:00 GMT</pubDate><guid>http://www.blogjava.net/Blake/archive/2005/09/08/12447.html</guid><wfw:comment>http://www.blogjava.net/Blake/comments/12447.html</wfw:comment><comments>http://www.blogjava.net/Blake/archive/2005/09/08/12447.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Blake/comments/commentRss/12447.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Blake/services/trackbacks/12447.html</trackback:ping><description><![CDATA[http://www.virtualbartender.beer.com/beer_usa.htm
<img src ="http://www.blogjava.net/Blake/aggbug/12447.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Blake/" target="_blank">Blake HAN</a> 2005-09-08 17:07 <a href="http://www.blogjava.net/Blake/archive/2005/09/08/12447.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Google网页快照浏览方法</title><link>http://www.blogjava.net/Blake/archive/2005/09/07/12301.html</link><dc:creator>Blake HAN</dc:creator><author>Blake HAN</author><pubDate>Wed, 07 Sep 2005 03:21:00 GMT</pubDate><guid>http://www.blogjava.net/Blake/archive/2005/09/07/12301.html</guid><wfw:comment>http://www.blogjava.net/Blake/comments/12301.html</wfw:comment><comments>http://www.blogjava.net/Blake/archive/2005/09/07/12301.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Blake/comments/commentRss/12301.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Blake/services/trackbacks/12301.html</trackback:ping><description><![CDATA[方法一：
如何跳过ISP对URL的过滤呢？非常简单把最后的ie=UTF-8这个参数提到q=cache前面来,这样就不存在?q=cache这个字符串了修改后的连接如下：
http://216.239.51.100/search?ie=UTF-8&q=ca....org/+&hl=zh-CN

怎么样？可以用吧。Enjoy it! 如果还用不了,还有一个办法

http://216.239.51.100/search?q=cache:TOMcQ...=zh-CN&ie=UTF-8

把语言改为en 或jp就行 hl=en 有时候可能要多刷几下。

办法二:
http://www.google.com/custom?q=%s

办法三:
www.myway.com是一个用google引擎的模仿yahoo的网站，可以看snapshot的

办法四:
http://216.239.33.102/webhp?hl=zh-CN&ie=UTF-8

办法五:
http://google.7766.org<img src ="http://www.blogjava.net/Blake/aggbug/12301.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Blake/" target="_blank">Blake HAN</a> 2005-09-07 11:21 <a href="http://www.blogjava.net/Blake/archive/2005/09/07/12301.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>立志做木匠……</title><link>http://www.blogjava.net/Blake/archive/2005/09/02/11807.html</link><dc:creator>Blake HAN</dc:creator><author>Blake HAN</author><pubDate>Fri, 02 Sep 2005 01:53:00 GMT</pubDate><guid>http://www.blogjava.net/Blake/archive/2005/09/02/11807.html</guid><wfw:comment>http://www.blogjava.net/Blake/comments/11807.html</wfw:comment><comments>http://www.blogjava.net/Blake/archive/2005/09/02/11807.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Blake/comments/commentRss/11807.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Blake/services/trackbacks/11807.html</trackback:ping><description><![CDATA[准备买齐木匠工具开始做模型……<br>
<br>
收集一些有用的链接先—<br>
http://www.chinahobby.com/moji/lecture01_01.htm<br>
http://tomoyasu.exblog.jp/pg/blog.asp?eid=c0053176&amp;iid=3&amp;acv=&amp;dif=&amp;opt=2&amp;srl=642068&amp;dte=2005%2D02%2D11+05%3A26%3A52%2E000<br>
http://www.copyship.com/BBS/BBS_1024/bbs_index.asp<br>
<img src ="http://www.blogjava.net/Blake/aggbug/11807.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Blake/" target="_blank">Blake HAN</a> 2005-09-02 09:53 <a href="http://www.blogjava.net/Blake/archive/2005/09/02/11807.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用GOOGLE你瞬间成为黑客</title><link>http://www.blogjava.net/Blake/archive/2005/08/05/9390.html</link><dc:creator>Blake HAN</dc:creator><author>Blake HAN</author><pubDate>Fri, 05 Aug 2005 06:21:00 GMT</pubDate><guid>http://www.blogjava.net/Blake/archive/2005/08/05/9390.html</guid><wfw:comment>http://www.blogjava.net/Blake/comments/9390.html</wfw:comment><comments>http://www.blogjava.net/Blake/archive/2005/08/05/9390.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Blake/comments/commentRss/9390.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Blake/services/trackbacks/9390.html</trackback:ping><description><![CDATA[<span style="font-size: 9pt;">以下在HACK搜索界绝对是经典中之经典！：<br><br><br>google 
hacking其实并算不上什么新东西,当时并没有重视这种技术,认为webshell什么的,并无太大实际用途.google hacking其实并非 
<br><br>如此简单... <br><br>google hacking的简单实现 
<br>使用google中的一些语法可以提供给我们更多的信息(当然也提供给那些习惯攻击的人更多他们所想要的.),下面就来介绍一些常用的语法. 
<br>intext: 
<br>这个就是把网页中的正文内容中的某个字符做为搜索条件.例如在google里输入:intext:动网.将返回所有在网页正文部分包含"动网"的网页 
<br><br>.allintext:使用方法和intext类似. <br><br>intitle: 
<br>和上面那个intext差不多,搜索网页标题中是否有我们所要找的字符.例如搜索:intitle:安全天使.将返回所有网页标题中包含"安全天使"的网 
<br><br>页.同理allintitle:也同intitle类似. <br><br>cache: 
<br>搜索google里关于某些内容的缓存,有时候也许能找到一些好东西哦. <br><br>define: 
<br>搜索某个词语的定义,搜索:define:hacker,将返回关于hacker的定义. <br><br>filetype: 
<br>这个我要重点推荐一下,无论是撒网式攻击还是我们后面要说的对特勘杲行畔⑹占夹枰玫秸飧?搜索指定类型的文件.例如输入 
<br><br>:filetype:doc.将返回所有以doc结尾的文件URL.当然如果你找.bak、.mdb或.inc也是可以的,获得的信息也许会更丰富 
<br><br>info: <br>查找指定站点的一些基本信息. <br><br>inurl: 
<br>搜索我们指定的字符是否存在于URL中.例如输入:inurl:admin,将返回N个类似于这样的连接:<a href="http://www.xxx.com/xxx/admin" target="_blank">http://www.xxx.com/xxx/admin</a>,用来找管理员登 
<br><br>陆的URL不错.allinurl也同inurl类似,可指定多个字符. <br><br>link: <br>例如搜索:inurl:<a href="http://www.4ngel.net/" target="_blank">www.4ngel.net</a>可以返回所有和<a href="http://www.4ngel.net/" target="_blank">www.4ngel.net</a>做了链接的URL. 
<br><br>site: <br>这个也很有用,例如:site:<a href="http://www.4ngel.net./" target="_blank">www.4ngel.net.</a>将返回所有和4ngel.net这个站有关的URL. 
<br><br><br>对了还有一些*作符也是很有用的: <br>+ 把google可能忽略的字列如查询范围 <br>- 把某个字忽略 <br>~ 同意词 
<br>. 单一的通配符 <br>* 通配符，可代表多个字母 <br>"" 精确查询 <br><br>下面开始说说实际应用 
<br><br>以下内容均在google上搜索,对于一个居心叵测的攻击者来说,可能他最感兴趣的就是密码文件了.而google正因为其强大的搜索能力往往会 
<br><br>把一些敏感信息透露给他们.用google搜索以下内容: <br>intitle:"index of" etc 
<br>intitle:"Index of" .sh_history <br>intitle:"Index of" .bash_history 
<br>intitle:"index of" passwd <br>intitle:"index of" people.lst 
<br>intitle:"index of" pwd.db <br>intitle:"index of" etc/shadow 
<br>intitle:"index of" spwd <br>intitle:"index of" master.passwd 
<br>intitle:"index of" htpasswd <br>"# -FrontPage-" inurl:service.pwd 
<br>有时候因为各种各样的原因一些重要的密码文件被毫无保护的暴露在网络上,如果被别有用心的人获得,那么危害是很大的 
<br><br><br>同样可以用google来搜索一些具有漏洞的程序,例如ZeroBoard前段时间发现个文件代码泄露漏洞,可以用google来找网上使用这套程序的站 
<br><br>点: <br>intext:ZeroBoard filetype:php <br>或者使用: 
<br>inurlutlogin.php?_zb_path= site:.jp 
<br>来寻找我们所需要的页面.phpmyadmin是一套功能强大的数据库*作软件,一些站点由于配置失误,导致我们可以不使用密码直接对phpmyadmin进 
<br><br>行*作.我们可以用google搜索存在这样漏洞的程序URL: <br>intitle:phpmyadmin intext:Create new 
database <br><br>还记<a href="http://www.xxx.com/_vti_bin/..%5" target="_blank">http://www.xxx.com/_vti_bin/..%5</a> ... 
ystem32/cmd.exe?dir吗?用google找找，你也许还可以找到很多 <br><br>古董级的机器。同样我们可以用这个找找有其他cgi漏洞的页面。 
<br>allinurl：winnt system32 
<br><br>前面已经简单的说过可以用google来搜索数据库文件,用上一些语法来精确查找能够获得更多东西(access的数据库,mssql、mysql的连接文件 
<br><br>等等).举个例子示例一下: <br>allinurl:bbs data <br>filetype:mdb inurl:database 
<br>filetype:inc conn <br>inurl:data filetype:mdb <br>intitle:"index of" data 
//在一些配置不正确的apache+win32的服务器上经常出现这种情况,和上面的原理一样,我们还可以用google来找后 <br><br>台. 
<br><br><br>利用google完全是可以对一个站点进行信息收集和渗透的，下面我们用google对特定站点进行一次测试。 
<br>首先用google先看这个站点的一些基本情况(一些细节部分就略去了): <br>site:xxxx.com 
<br>从返回的信息中，找到几个该校的几个系院的域名： <br><a href="http://a1.xxxx.com/" target="_blank">http://a1.xxxx.com</a> <br><a href="http://a2.xxxx.com/" target="_blank">http://a2.xxxx.com</a> <br><a href="http://a3.xxxx.com/" target="_blank">http://a3.xxxx.com</a> <br><a href="http://a4.xxxx.com/" target="_blank">http://a4.xxxx.com</a> 
<br>顺便ping了一下，应该是在不同的服务器.学校一般都会有不少好的资料，先看看有什么好东西没 <br><br>site:xxxx.com 
filetype:doc <br>得到N个不错的doc。 <br><br>先找找网站的管理后台地址： <br>site:xxxx.com intext:管理 
<br>site:xxxx.com inurl:login <br>site:xxxx.com intitle:管理 <br>超过获得2个管理后台地址： 
<br><a href="http://a2.xxxx.com/sys/admin_login.asp" target="_blank">http://a2.xxxx.com/sys/admin_login.asp</a> <br><a href="http://a3.xxxx.com:88/_admin/login_in.asp" target="_blank">http://a3.xxxx.com:88/_admin/login_in.asp</a> 
<br><br>还算不错，看看服务器上跑的是什么程序： <br>site:a2.xxxx.com filetype:asp 
<br>site:a2.xxxx.com filetype:php <br>site:a2.xxxx.com filetype:aspx 
<br>site:a3.xxxx.com filetype:asp <br>site:....... <br>...... 
<br>a2服务器用的应该是IIS，上面用的是asp的整站程序，还有一个php的论坛 
<br>a3服务器也是IIS，aspx+asp。web程序都应该是自己开发的。有论坛那就看看能不能遇见什么公共的FTP帐号什么的： 
<br>site:a2.xxxx.com intext:ftp://*:* <br>没找到什么有价值的东西。再看看有没有上传一类的漏洞： 
<br>site:a2.xxxx.com inurl:file <br>site:a3.xxxx.com inurl:load 
<br>在a2上发现一个上传文件的页面： <br><a href="http://a2.xxxx.com/sys/uploadfile.asp" target="_blank">http://a2.xxxx.com/sys/uploadfile.asp</a> <br>用IE看了一下，没权限访问。试试注射， 
<br>site:a2.xxxx.com filetype:asp 
<br>得到N个asp页面的地址，体力活就让软件做吧，这套程序明显没有对注射做什么防范，dbowner权限，虽然不高但已足矣，back a shell不太喜 
<br><br>欢，而且看起来数据库的个头就不小，直接把web管理员的密码暴出来再说，MD5加密过。一般学校的站点的密码都比较有规律，通常都是域名+ 
<br><br>电话一类的变形，用google搞定吧。 <br>site:xxxx.com //得到N个二级域名 <br>site:xxxx.com 
intext:*@xxxx.com //得到N个邮件地址，还有邮箱的主人的名字什么的 <br>site:xxxx.com intext:电话 //N个电话 
<br>把什么的信息做个字典吧，挂上慢慢跑。过了一段时间就跑出4个帐号，2个是学生会的，1个管理员，还有一个可能是老师的帐号。登陆上去： 
<br>name：网站管理员 <br>pass：a2xxxx7619 //说了吧，就是域名+4个数字 
<br>要再怎么提权那就不属于本文讨论访问了，呵呵，到此为止。 <br><br><br>这段时间在国外的一些google 
hack的研究站点看了看，其实也都差不多是一些基本语法的灵活运用，或者配合某个脚本漏洞，主要还是靠 <br><br>个人的灵活思维。国外对于google 
hack方面的防范也并不是很多，所以大家还是点到为止，不要去搞破坏拉，呵呵。对于一些在win上跑 
<br>apache的网管们应该多注意一下这方面，一个intitle:index of就差不多都出来了 <br>1.查找利用php webshell 
<br><br>intitle:"php shell*" "Enable stderr" filetype:php <br><br>(注: 
intitle—网页标题 Enable stderr—UNIX标准输出和标准错误的缩写filetype—文件类型)。搜索结果中，你能找到很多直接在机器上执 
<br><br>行命令的web 
shell来。如果找到的PHPSHELL不会利用，如果你不熟悉UNIX，可以直接看看LIST，这里就不详细说了，有很多利用价值。要说明 
<br><br>的是，我们这里搜索出来的一些国外的PHPSHELL上都要使用UNIX命令，都是system调用出来的函数(其实用百度及其他搜索引擎都可以，只是填 
<br><br>写搜索的内容不同)。这个PHPWEBSHELL是可以直接Echo(Unix常用命令)。一句话就把首页搞定了: <br><br><br>echo 
"召唤" &gt; index.jsp <br><br><br>现在看看首页，已经被我们改成: "召唤" 了。 
<br><br>我们也可以用WGET上传一个文件上去(比如你要替换的叶子吧)。然后execute Command输入 cat file &gt; 
index.html or echo "" &gt; file <br><br>echo "test" &gt;&gt; file 
<br><br>这样一条条打出来，站点首页就成功被替换了。同样的也可以 <br><br><br>uname -a;cat /etc/passwd 
<br><br>不过有点要注意，有些WEBSHELL程序有问题，执行不了的， <br><br>2.搜索INC敏感信息 
<br><br>在google的搜索框中填入: <br><br>Code: <br><br>.org filetype:inc</span> <br>
<br>
<br>
<hr style="width: 100%; height: 2px;"><span style="font-size: 9pt;">在搜索框上输入： "index of/ " 　inurl:lib<br>
再按搜索你将进入许多图书馆，并且一定能下载自己喜欢的书籍。 google特别搜索代码^_^<br>
在搜索框上输入： "index of/ " 　inurl:lib<br>
再按搜索你将进入许多图书馆，并且一定能下载自己喜欢的书籍。 <br>
<br>
在搜索框上输入： index of /" 　cnki<br>
再按搜索你就可以找到许多图书馆的CNKI、VIP、超星等入口！<br>
<br>
在搜索框上输入：　"index of /" 　ppt<br>
再按搜索你就可以突破网站入口下载powerpint作品！<br>
<br>
在搜索框上输入： "index of /" 　mp3<br>
再按搜索你就可以突破网站入口下载mp3、rm等影视作品！<br>
<br>
在搜索框上输入：　"index of /" 　swf<br>
再按搜索你就可以突破网站入口下载flash作品！<br>
<br>
在搜索框上输入： "index of /" 　要下载的软件名<br>
再按搜索你就可以突破网站入口下载软件！<br>
<br>
<br>
inurl:"ViewerFrame?Mode="</span>
<img src ="http://www.blogjava.net/Blake/aggbug/9390.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Blake/" target="_blank">Blake HAN</a> 2005-08-05 14:21 <a href="http://www.blogjava.net/Blake/archive/2005/08/05/9390.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网络经典命令行</title><link>http://www.blogjava.net/Blake/archive/2005/08/04/9161.html</link><dc:creator>Blake HAN</dc:creator><author>Blake HAN</author><pubDate>Thu, 04 Aug 2005 01:46:00 GMT</pubDate><guid>http://www.blogjava.net/Blake/archive/2005/08/04/9161.html</guid><wfw:comment>http://www.blogjava.net/Blake/comments/9161.html</wfw:comment><comments>http://www.blogjava.net/Blake/archive/2005/08/04/9161.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Blake/comments/commentRss/9161.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Blake/services/trackbacks/9161.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 网络经典命令行(1) FOR Windows 2k/2003 Server 1.最基本，最常用的，测试物理网络的 ping 192.168.10.88 －t ，参数－t是等待用户去中断测试 2.查看DNS、IP、Mac等 A.Win98：winipcfg B.Win2000以上：Ipconfig/all C.NSLOOKUP：如查看河北的DNS C:\&gt;nslookup Default Se...&nbsp;&nbsp;<a href='http://www.blogjava.net/Blake/archive/2005/08/04/9161.html'>阅读全文</a><img src ="http://www.blogjava.net/Blake/aggbug/9161.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Blake/" target="_blank">Blake HAN</a> 2005-08-04 09:46 <a href="http://www.blogjava.net/Blake/archive/2005/08/04/9161.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一款好用的图形转换软件</title><link>http://www.blogjava.net/Blake/archive/2005/07/06/7209.html</link><dc:creator>Blake HAN</dc:creator><author>Blake HAN</author><pubDate>Wed, 06 Jul 2005 08:46:00 GMT</pubDate><guid>http://www.blogjava.net/Blake/archive/2005/07/06/7209.html</guid><wfw:comment>http://www.blogjava.net/Blake/comments/7209.html</wfw:comment><comments>http://www.blogjava.net/Blake/archive/2005/07/06/7209.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/Blake/comments/commentRss/7209.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Blake/services/trackbacks/7209.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 今天无意中发现了一款好用的图形转换软件，可以把图片转成HTML和TXT。这里下载P {FONT-SIZE: 8pt; FONT-FAMILY: "宋体"}A:link {COLOR: #cccccc; TEXT-DECORATION: none}A:visited {TEXT-DECORATION: none}A:active {TEXT-DECORATION: none}A:ho...&nbsp;&nbsp;<a href='http://www.blogjava.net/Blake/archive/2005/07/06/7209.html'>阅读全文</a><img src ="http://www.blogjava.net/Blake/aggbug/7209.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Blake/" target="_blank">Blake HAN</a> 2005-07-06 16:46 <a href="http://www.blogjava.net/Blake/archive/2005/07/06/7209.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Five words per week, we are on the right track. [2005-07-01]</title><link>http://www.blogjava.net/Blake/archive/2005/07/01/6991.html</link><dc:creator>Blake HAN</dc:creator><author>Blake HAN</author><pubDate>Fri, 01 Jul 2005 05:54:00 GMT</pubDate><guid>http://www.blogjava.net/Blake/archive/2005/07/01/6991.html</guid><wfw:comment>http://www.blogjava.net/Blake/comments/6991.html</wfw:comment><comments>http://www.blogjava.net/Blake/archive/2005/07/01/6991.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Blake/comments/commentRss/6991.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Blake/services/trackbacks/6991.html</trackback:ping><description><![CDATA[<font size="-1"><font face="Verdana"><b>generosity</b><br>
Function: noun<br>
Inflected Form(s): plural -ties<br>
1 a : the quality or fact of being generous (质量或者)<br>
&nbsp;&nbsp; b : a generous act (大方的行为)<br>
2 : ABUNDANCE (丰富)<br>
<br>
Example: Thank you for your <b>generosity</b>.<br>
</font></font>
<hr size="2" width="100%"><font size="-1"><font face="Verdana"><b>desperately</b><br>
Function: adjective<br>
Etymology: Latin desperatus, past participle of desperare<br>
1 a : having lost hope (失去希望地)<br>
&nbsp;&nbsp; &lt;a desperate spirit crying for relief&gt; <br>
&nbsp;&nbsp; b : giving no ground for hope <br>
&nbsp;&nbsp; &lt;the outlook was desperate&gt;<br>
2 a : moved by despair <br>
&nbsp;&nbsp; &lt;victims made desperate by abuse&gt; <br>
&nbsp;&nbsp; b : involving or employing extreme measures in an attempt to escape
defeat or frustration <br>
&nbsp;&nbsp; &lt;made a desperate leap for the rope&gt;<br>
3 : suffering extreme need or anxiety (渴望得到痛苦的尽头)<br>
&nbsp;&nbsp; &lt;desperate for money&gt;<br>
4 : involving extreme danger or possible disaster (及其的危险或可能有灾难的)<br>
&nbsp;&nbsp; &lt;a desperate situation&gt;<br>
5 : of extreme intensity (及其的强烈)<br>
6 : SHOCKING, OUTRAGEOUS<br>
<br>
Example: I am <b>desperately</b> hard up.<br>
</font></font>
<hr size="2" width="100%"><font size="-1"><font face="Verdana"><b>lump</b><br>
Function: noun<br>
Etymology: Middle English<br>
1 : a piece or mass of indefinite size and shape (一块不定大小不定形状的东西)<br>
2 a : AGGREGATE, TOTALITY (总数)<br>
&nbsp;&nbsp; &lt;taken in the lump&gt; <br>
&nbsp;&nbsp; b : MAJORITY<br>
3 : PROTUBERANCE; especially : an abnormal swelling (瘤，异常的肿块)<br>
4 : a person who is heavy and awkward; also : one who is stupid or dull
(笨重的人)<br>
5 plural a : BEATINGS, BRUISES (打，瘀伤)<br>
&nbsp;&nbsp; &lt;had taken a lot of lumps growing up in the city&gt; <br>
&nbsp;&nbsp; b : DEFEAT, LOSS (击败)<br>
&nbsp;&nbsp; &lt;can cheerfully take his lumps on losers, because the payout is
big on the winners -- Martin Mayer&gt;<br>
<br>
Example: The words <b>lumped</b> in her throat.<br>
</font></font>
<hr size="2" width="100%"><font size="-1"><font face="Verdana"><b>throat</b><br>
1 a (1) : the part of the neck in front of the spinal column
(脊椎骨前面脖子的部分)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (2) : the passage through the neck to the stomach and lungs
(从脖子到胃和肺的通道)<br>
&nbsp;&nbsp; b (1) : VOICE <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (2) : the seat of the voice<br>
2 : something resembling the throat especially in being an entrance, a
passageway, a constriction, or a narrowed part: as <br>
&nbsp;&nbsp; a : the orifice of a tubular organ especially of a plant <br>
&nbsp;&nbsp; b : the opening in the vamp of a shoe at the instep <br>
&nbsp;&nbsp; c : the part of a tennis racket that connects the head with the shaft<br>
3 : the curved part of an anchor's arm where it joins the shank<br>
<br>
Example: The words lumped in her <b>throat</b>.<br>
</font></font>
<hr size="2" width="100%"><font size="-1"><font face="Verdana"><b>cousin</b><br>
Function: noun<br>
Etymology: Middle English cosin, from Old French, from Latin
consobrinus, from com- + sobrinus second cousin, from soror sister --
more at SISTER<br>
1 a : a child of one's uncle or aunt (叔叔或者阿姨的孩子)<br>
&nbsp;&nbsp; b : a relative descended from one's grandparent or more remote
ancestor by two or more steps and in a different line <br>
&nbsp;&nbsp; c : KINSMAN, RELATIVE (有亲戚关系的人)<br>
&nbsp;&nbsp; &lt;a distant cousin&gt;<br>
2 : one associated with or related to another : COUNTERPART<br>
3 -- used as a title by a sovereign in addressing a nobleman<br>
4 : a person of a race or people ethnically or culturally related
&lt;our English cousins&gt;<br>
<br>
Example: I have many </font></font><font size="-1"><font face="Verdana"><b>cousins</b>.</font></font>
<P><span class="technoratitag">Technorati Tags: <a href="http://www.technorati.com/tags/English" rel="tag">English</a></span> <a href="http://www.technorati.com/cosmos/search.html?rank=links&url=http://www.blogjava.net/blake/archive/2005/07/01/6991.html"><img src="http://www.blogjava.net/images/blogjava_net/blake/Misc/bubble_h17.gif" border="0"/></a> <a href="http://www.technorati.com/ping.html?url=http://www.blogjava.net/blake/archive/2005/07/01/6991.html"><img src="http://www.blogjava.net/images/blogjava_net/blake/Misc/refresh.gif" border="0" alt="Ping Technorati"/></a></P><img src ="http://www.blogjava.net/Blake/aggbug/6991.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Blake/" target="_blank">Blake HAN</a> 2005-07-01 13:54 <a href="http://www.blogjava.net/Blake/archive/2005/07/01/6991.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Five words per week, we are on the right track. [2005-06-24]</title><link>http://www.blogjava.net/Blake/archive/2005/06/24/6657.html</link><dc:creator>Blake HAN</dc:creator><author>Blake HAN</author><pubDate>Fri, 24 Jun 2005 02:21:00 GMT</pubDate><guid>http://www.blogjava.net/Blake/archive/2005/06/24/6657.html</guid><wfw:comment>http://www.blogjava.net/Blake/comments/6657.html</wfw:comment><comments>http://www.blogjava.net/Blake/archive/2005/06/24/6657.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Blake/comments/commentRss/6657.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Blake/services/trackbacks/6657.html</trackback:ping><description><![CDATA[<div><font face="Verdana" size="2"><strong>crestfallen</strong></font></div>
<div><font face="Verdana" size="2">crest(鸟冠) + fallen(下垂)</font></div>
<div><font face="Verdana" size="2">Pronunciation: 'krest-"fo-l&amp;n<br>Function: adjective<br>1 : having a drooping crest or hanging head&nbsp; (鸟冠耷拉下来，垂着头)<br>2 : feeling shame or humiliation : DEJECTED (感到羞愧或耻辱)</font></div>
<div><font face="Verdana" size="2"></font>&nbsp;</div>
<div><font face="Verdana" size="2">Example: Their opponents came away totally <strong>crestfallen</strong>, their 40th match in the global event ending in the worst possible fashion. </font></div><font face="Verdana" size="2">
<div>
<hr>
</div>
<div><strong>gander</strong></div>
<div>Pronunciation: 'gan-d&amp;r<br>Function: noun<br>Etymology: Middle English, from Old English gandra; akin to Old English gOs goose<br>1 : the adult male goose (成年的雄鹅)<br>2 : SIMPLETON (呆瓜，呆鹅)</div>
<div><br>Function: noun<br>Etymology: from the outstretched neck of a person craning to look at something (像鹅那样升长脖子去看东西)<br>: LOOK, GLANCE&nbsp; (看，暼)</div>
<div>&nbsp;&nbsp;&nbsp; &lt;<em>take a <strong>gander</strong></em>&gt;</div>
<div>&nbsp;</div>
<div>Example: He took another <strong>gander</strong> at the engine</div>
<div>
<hr>
</div>
<div><strong>sheepish</strong></div>
<div>Pronunciation: 'shE-pish<br>Function: adjective<br>1 : resembling a sheep in meekness, stupidity, or timidity (像绵羊一样温顺，愚蠢或胆怯)<br>2 : affected by or showing embarrassment caused by consciousness of a fault (由于过失而导致/显露的尴尬)</div>
<div>&nbsp;&nbsp;&nbsp; &lt;<em>a <strong>sheepish</strong> grin</em>&gt; 苦笑</div>
<div>&nbsp;</div>
<div>Example:&nbsp;sb. looked properly&nbsp;<strong>sheepish</strong>.</div>
<div>
<hr>
</div>
<div><strong>bovine</strong></div>
<div>Pronunciation: 'bO-"vIn, -"vEn<br>Function: adjective<br>Etymology: Late Latin bovinus, from Latin bov-, bos ox, cow -- more at COW<br>1 : of, relating to, or resembling bovines and especially the ox or cow (像牛的，尤其是)<br>2 : having qualities (as placidity or dullness) (有质量的-平静的或迟钝的)</div>
<div>&nbsp;</div>
<div><!--StartFragment -->&nbsp;Function: <i>noun</i><br><b>:</b> any of a subfamily (Bovinae) of <a href="http://www.m-w.com/cgi-bin/dictionary?book=Dictionary&amp;va=bovids">bovids</a> including oxen, bison, buffalo, and their close relatives (牛科的亚科)</div>
<div>&nbsp;</div>
<div>Example: Her <strong>bovine</strong> face gave no response.</div>
<div>
<hr>
</div>
<div><strong>turkey</strong></div>
<div>Pronunciation: 't&amp;r-kE<br>Function: noun<br>Inflected Form(s): plural turkeys<br>Etymology:
Turkey, country in western Asia and southeastern Europe; from confusion
with the guinea fowl, supposed to be imported from Turkish territory<br>1
plural also turkey : a large No. American gallinaceous bird (Meleagris
gallopavo) that is domesticated in most parts of the world (火鸡)<br>2 : FAILURE, FLOP; especially : a theatrical production that has failed (失败)<br>3 : three successive strikes in bowling (保龄球三次大满贯)<br>4 : a stupid, foolish, or inept person (愚蠢的或无能的人)</div>
<div>&nbsp;</div>
<div>Turkey 土耳其</div>
<div>&nbsp;</div>
<div>Example: Gary wants to quit smoking. As of this moment&nbsp;he is going cold <strong>trunkey</strong>.</div></font>
<P><span class="technoratitag">Technorati Tags: <a href="http://www.technorati.com/tags/English" rel="tag">English</a></span> <a href="http://www.technorati.com/cosmos/search.html?rank=links&url=http://www.blogjava.net/blake/archive/2005/06/24/6657.html"><img src="http://www.blogjava.net/images/blogjava_net/blake/Misc/bubble_h17.gif" border="0"/></a> <a href="http://www.technorati.com/ping.html?url=http://www.blogjava.net/blake/archive/2005/06/24/6657.html"><img src="http://www.blogjava.net/images/blogjava_net/blake/Misc/refresh.gif" border="0" alt="Ping Technorati"/></a></P><img src ="http://www.blogjava.net/Blake/aggbug/6657.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Blake/" target="_blank">Blake HAN</a> 2005-06-24 10:21 <a href="http://www.blogjava.net/Blake/archive/2005/06/24/6657.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>&lt;image src='http://www.blogjava.net/images/blogjava_net/blake/Misc/ruby.gif'/&gt;Get total lines of files</title><link>http://www.blogjava.net/Blake/archive/2005/06/18/6311.html</link><dc:creator>Blake HAN</dc:creator><author>Blake HAN</author><pubDate>Sat, 18 Jun 2005 04:24:00 GMT</pubDate><guid>http://www.blogjava.net/Blake/archive/2005/06/18/6311.html</guid><wfw:comment>http://www.blogjava.net/Blake/comments/6311.html</wfw:comment><comments>http://www.blogjava.net/Blake/archive/2005/06/18/6311.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/Blake/comments/commentRss/6311.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Blake/services/trackbacks/6311.html</trackback:ping><description><![CDATA[<P><FONT face=Arial size=2>This is one small tools to get the total file line number of on folder.</FONT></P>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">&nbsp;1</SPAN><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">POST_FIX&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">&nbsp;%w{java&nbsp;jsp&nbsp;html&nbsp;xml&nbsp;properties}<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;2</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>EXCLUDE_DIR&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">&nbsp;%w{CVS}<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;3</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>$displayStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">"</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">&nbsp;4</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">$fileReg&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">"</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">&nbsp;5</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">$dirReg&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">\\.|\\.\\.|"<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;6</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">&nbsp;7</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">def&nbsp;sumLine(fileName)<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;8</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;file&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">&nbsp;open&nbsp;fileName<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;9</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;begin<BR></SPAN><SPAN style="COLOR: #008080">10</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">while</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">&nbsp;file.gets()<BR></SPAN><SPAN style="COLOR: #008080">11</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">end</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080"><FONT face=Arial size=2>12</FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;ensure<BR></SPAN><SPAN style="COLOR: #008080">13</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;file.close<BR></SPAN><SPAN style="COLOR: #008080">14</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">end</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080"><FONT face=Arial size=2>15</FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;$.<BR></SPAN><SPAN style="COLOR: #008080">16</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">end</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080"><FONT face=Arial size=2>17</FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">18</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>def&nbsp;iteDir(name,&nbsp;level</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">0</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">)<BR></SPAN><SPAN style="COLOR: #008080">19</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;lines&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">20</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;dir&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">&nbsp;Dir.open&nbsp;name<BR></SPAN><SPAN style="COLOR: #008080">21</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;rex&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">/\</SPAN><SPAN style="COLOR: #000000">.&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">java</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">$|</SPAN><SPAN style="COLOR: #000000">\</SPAN><SPAN style="COLOR: #000000">.jsp$|</SPAN><SPAN style="COLOR: #000000">\</SPAN><SPAN style="COLOR: #000000">.html$</SPAN><SPAN style="COLOR: #000000">/</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080"><FONT face=Arial size=2>22</FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;begin<BR></SPAN><SPAN style="COLOR: #008080">23</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;dir.</SPAN><SPAN style="COLOR: #0000ff">each</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">do</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">&nbsp;|fileName|<BR></SPAN><SPAN style="COLOR: #008080">24</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileName&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;dir.path&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">/'&nbsp;+&nbsp;fileName</SPAN></FONT></FONT><SPAN style="COLOR: #008000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">25</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;File.ftype(fileName)&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">~&nbsp;</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">directory</SPAN><SPAN style="COLOR: #000000">/</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">26</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">not</SPAN><SPAN style="COLOR: #000000">&nbsp;fileName&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">~&nbsp;Regexp.</SPAN><SPAN style="COLOR: #0000ff">new</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">($dirReg)<BR></SPAN><SPAN style="COLOR: #008080">27</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lines&nbsp;</SPAN><SPAN style="COLOR: #000000">+=</SPAN><SPAN style="COLOR: #000000">&nbsp;iteDir(fileName,&nbsp;level</SPAN><SPAN style="COLOR: #000000">+</SPAN><SPAN style="COLOR: #000000">1</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">)<BR></SPAN><SPAN style="COLOR: #008080">28</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">else</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">29</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">next</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">30</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">end</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">31</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif&nbsp;fileName&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">~&nbsp;Regexp.</SPAN><SPAN style="COLOR: #0000ff">new</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">($fileReg)<BR></SPAN><SPAN style="COLOR: #008080">32</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lines&nbsp;</SPAN><SPAN style="COLOR: #000000">+=</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">&nbsp;sumLine(fileName)<BR></SPAN><SPAN style="COLOR: #008080">33</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">end</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">34</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">end</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080"><FONT face=Arial size=2>35</FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;ensure<BR></SPAN><SPAN style="COLOR: #008080">36</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;dir.close<BR></SPAN><SPAN style="COLOR: #008080">37</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">end</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">38</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;str&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">"</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">39</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">for</SPAN><SPAN style="COLOR: #000000">&nbsp;i&nbsp;in&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">..(level</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">1</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">)<BR></SPAN><SPAN style="COLOR: #008080">40</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;</SPAN><SPAN style="COLOR: #000000">+=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">\t|"</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">41</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">end</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">42</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;level&nbsp;!</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">0</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">43</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;</SPAN><SPAN style="COLOR: #000000">+=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">---"</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">44</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">end</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">45</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;$displayStr&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">#{str}#{name}\t#{lines}&nbsp;lines\n#{$displayStr}"</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">46</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">&nbsp;&nbsp;lines<BR></SPAN><SPAN style="COLOR: #008080">47</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">end</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080"><FONT face=Arial size=2>48</FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">49</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>POST_FIX.</SPAN><SPAN style="COLOR: #0000ff">each</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">do</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">&nbsp;|postfix|<BR></SPAN><SPAN style="COLOR: #008080">50</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;$fileReg&nbsp;</SPAN><SPAN style="COLOR: #000000">+=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">\.#{postfix}$|"</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">51</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">end</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">52</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>$fileReg&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">&nbsp;$fileReg.chop<BR></SPAN><SPAN style="COLOR: #008080">53</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">54</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>EXCLUDE_DIR.</SPAN><SPAN style="COLOR: #0000ff">each</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">do</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">&nbsp;|excludeDir|<BR></SPAN><SPAN style="COLOR: #008080">55</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;$dirReg&nbsp;</SPAN><SPAN style="COLOR: #000000">+=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">^#{excludeDir}$|"</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">56</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">end</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">57</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>$dirReg&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">&nbsp;$dirReg.chop<BR></SPAN><SPAN style="COLOR: #008080">58</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">59</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>print&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Total&nbsp;#{iteDir(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">E:</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">_MyWorkSpace</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">IDEA_Proj</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)}&nbsp;lines\n"</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">60</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">print&nbsp;$displayStr</SPAN></FONT></FONT></DIV></DIV><BR><FONT face=Arial size=2><STRONG><FONT color=#ff0000>Keystone:<BR></FONT></STRONG>&nbsp;&nbsp;&nbsp;1. Ruby I/O access. Dir and File<BR>&nbsp;&nbsp;&nbsp;2. Regexp &amp; String -&gt; Regexp<BR>&nbsp;&nbsp;&nbsp;3. Some kinds of variables<BR>&nbsp;&nbsp;&nbsp;4. Array operation</FONT> 
<P><SPAN class=technoratitag>Technorati Tags: <A href="http://www.technorati.com/tags/Ruby" rel=tag>Ruby</A></SPAN> <A href="http://www.technorati.com/cosmos/search.html?rank=links&amp;url=http://www.blogjava.net/blake/archive/2005/06/17/6311.html"><IMG src="http://www.blogjava.net/images/blogjava_net/blake/Misc/bubble_h17.gif" border=0></A> <A href="http://www.technorati.com/ping.html?url=http://www.blogjava.net/blake/archive/2005/06/17/6311.html"><IMG alt="Ping Technorati" src="http://www.blogjava.net/images/blogjava_net/blake/Misc/refresh.gif" border=0></A></P><img src ="http://www.blogjava.net/Blake/aggbug/6311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Blake/" target="_blank">Blake HAN</a> 2005-06-18 12:24 <a href="http://www.blogjava.net/Blake/archive/2005/06/18/6311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Language Oriented Programming 面向语言编程</title><link>http://www.blogjava.net/Blake/archive/2005/06/17/6285.html</link><dc:creator>Blake HAN</dc:creator><author>Blake HAN</author><pubDate>Fri, 17 Jun 2005 05:31:00 GMT</pubDate><guid>http://www.blogjava.net/Blake/archive/2005/06/17/6285.html</guid><wfw:comment>http://www.blogjava.net/Blake/comments/6285.html</wfw:comment><comments>http://www.blogjava.net/Blake/archive/2005/06/17/6285.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Blake/comments/commentRss/6285.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Blake/services/trackbacks/6285.html</trackback:ping><description><![CDATA[<FONT face=Arial size=2>你还在使用Java吗？还在研究.Net吗？在你忙于此的时候，一种新的技术又诞生了，完全打破了传统编程的格局。这就是<A href="http://www.onboard.jetbrains.com/is1/articles/04/10/lop/">LOP(Language Oriented Programming)</A>。这项技术是由<A href="http://www.jetbrains.com/">JetBrains</A>的CEO <A href="http://www.sergeydmitriev.com/">Sergey Dmitive</A>提出的。他认为现在的编程模式还停留在石器时代，OO只是我们的石斧，提供给我们足够的帮助，但是他将会在最困难的问题面前土崩瓦解。于是，他便提出了伟大的LOP。<BR>LOP放弃了传统的基于文本的语言，用创造新的语言来代替类库，可以和编辑器所整合，并且每个程序员都可以创造自己的语言。<BR>也许你对LOP并不屑一顾，但著名的<A href="http://martinfowler.com/">Martin Flower</A>却对此饶有兴趣，并写了<A href="http://www.martinfowler.com/articles/languageWorkbench.html">Language Workbenches</A>和<A href="http://www.martinfowler.com/articles/mpsAgree.html">A Language Workbench in Action - MPS</A>两部著作。<BR>今天，JetBrain终于发布了支持LOP的<A href="http://www.jetbrains.com/idea/">IDEA</A>插件<A href="http://www.jetbrains.com/mps/">MPS(Meta Programming System)</A>&nbsp;<A href="http://www.jetbrains.net/confluence/display/MPS">download</A>。虽然这只是一个原形，但给人的感觉却是非常震撼的。<A href="http://www.martinfowler.com/articles/languageWorkbench.html">这里</A>是一个Hello World的教程。<BR>今后软件行业将会如何？什么才是未来的趋势？在未来的5年里我们会用language workbenches编程吗？<BR>Let's go and see. </FONT>
<P><SPAN class=technoratitag>Technorati Tags: <A href="http://www.technorati.com/tags/LOP" rel=tag>LOP</A></SPAN> <A href="http://www.technorati.com/cosmos/search.html?rank=links&amp;url=http://www.blogjava.net/blake/archive/2005/06/17/6285.html"><IMG src="http://www.blogjava.net/images/blogjava_net/blake/Misc/bubble_h17.gif" border=0></A> <A href="http://www.technorati.com/ping.html?url=http://www.blogjava.net/blake/archive/2005/06/17/6285.html"><IMG alt="Ping Technorati" src="http://www.blogjava.net/images/blogjava_net/blake/Misc/refresh.gif" border=0></A></P><img src ="http://www.blogjava.net/Blake/aggbug/6285.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Blake/" target="_blank">Blake HAN</a> 2005-06-17 13:31 <a href="http://www.blogjava.net/Blake/archive/2005/06/17/6285.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Five words per week, we are on the right track! [2005-06-17]</title><link>http://www.blogjava.net/Blake/archive/2005/06/17/6266.html</link><dc:creator>Blake HAN</dc:creator><author>Blake HAN</author><pubDate>Fri, 17 Jun 2005 03:12:00 GMT</pubDate><guid>http://www.blogjava.net/Blake/archive/2005/06/17/6266.html</guid><wfw:comment>http://www.blogjava.net/Blake/comments/6266.html</wfw:comment><comments>http://www.blogjava.net/Blake/archive/2005/06/17/6266.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Blake/comments/commentRss/6266.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Blake/services/trackbacks/6266.html</trackback:ping><description><![CDATA[<DIV><FONT face=Verdana size=2><STRONG>undertaker</STRONG></FONT></DIV>
<DIV><FONT face=Verdana size=2>Pronunciation: "&amp;n-d&amp;r-'tA-k&amp;r, 2 is '&amp;n-d&amp;r-"<BR>Function: noun<BR>1 : one that undertakes : one that takes the risk and management of business : ENTREPRENEUR (企业家)<BR>2 : one whose business is to prepare the dead for burial and to arrange and manage funerals (殡仪事务承办人)<BR>3 : an Englishman taking over forfeited lands in Ireland in the 16th and 17th centuries (在16-17世纪接管爱尔兰土地的英国人)</FONT></DIV>
<DIV><FONT face=Verdana size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Verdana size=2><EM>Example:</EM> Leno is the <STRONG>undertaker</STRONG> of Augmentum.</FONT></DIV>
<DIV>
<HR>
</DIV>
<DIV><FONT face=Verdana size=2><STRONG>merely</STRONG></FONT></DIV>
<DIV><FONT face=Verdana size=2>- mere·ly adverb</FONT></DIV>
<DIV><FONT face=Verdana size=2>Main Entry: mere</FONT><FONT face=Verdana size=2><BR>Pronunciation: 'mir<BR>Function: adjective<BR>Inflected Form(s): superlative <FONT color=#ff0000>mer·est<BR></FONT>Etymology: Middle English, from Latin merus; akin to Old English Amerian to purify and perhaps to Greek marmairein to sparkle -- more at MORN<BR>1 : having no admixture : PURE (纯净的)<BR>2 obsolete : being nothing less than : ABSOLUTE (不少于的)<BR>3 : being nothing more than (不多于的)</FONT></DIV>
<DIV><FONT face=Verdana size=2>&nbsp;&nbsp;&nbsp; &lt;<EM>a mere mortal</EM>&gt;</FONT></DIV>
<DIV><FONT face=Verdana size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Verdana size=2><EM>Example:</EM> That was <STRONG>merely</STRONG> a guess of mine.</FONT></DIV><FONT face=Verdana size=2>
<DIV>
<HR>
</DIV>
<DIV><STRONG>bereaved</STRONG></DIV>
<DIV>Pronunciation: bi-'rEvd<BR>Function: adjective<BR>: suffering the death of a loved one (丧失所爱人的)</DIV>
<DIV>&nbsp;</DIV>
<DIV>Function: noun<BR>Inflected Form(s): plural <FONT color=#ff0000>bereaved</FONT><BR>: one who is bereaved (丧失亲友的人)</DIV>
<DIV>&nbsp;</DIV>
<DIV><EM>Example:</EM> If somebody is <STRONG>bereaved</STRONG><EM>(adj)</EM>, he is <STRONG>bereaved</STRONG><EM>(noun)</EM>.</DIV>
<DIV>
<HR>
</DIV>
<DIV><STRONG>plenty</STRONG></DIV>
<DIV>Pronunciation: 'plen-tE<BR>Function: noun<BR>Etymology: Middle English plente, from Old French plenté, from Late Latin plenitat-, plenitas, from Latin, fullness, from plenus full -- more at FULL<BR>1&nbsp; a : a full or more than adequate amount or supply (足够的数量或供给)</DIV>
<DIV>&nbsp;&nbsp;&nbsp; <EM>&lt;had plenty of time to finish the job&gt; </EM></DIV>
<DIV>&nbsp;&nbsp;&nbsp; b : a large number or amount (很大的数量)</DIV>
<DIV>&nbsp;&nbsp;&nbsp; <EM>&lt;in plenty of trouble&gt;<BR></EM>2 : the quality or state of being copious : PLENTIFULNESS (很好的质量或者形式)</DIV>
<DIV>&nbsp;</DIV>
<DIV><EM>Example:</EM> We spent <STRONG>plenty</STRONG> of time on performance tuning.</DIV>
<DIV>
<HR>
</DIV>
<DIV><STRONG>ought</STRONG></DIV>
<DIV>Pronunciation: 'ot<BR>Function: verbal auxiliary<BR>Etymology: Middle English oughte (1st &amp; 3d sing. present indic.), from oughte, 1st &amp; 3d singular past indicative &amp; subjunctive of owen to own, owe -- more at OWE<BR>-- used to express obligation <EM>&lt;ought to pay our debts&gt;</EM>, advisability <EM>&lt;ought to take care of yourself&gt;</EM>, natural expectation <EM>&lt;ought to be here by now&gt;</EM>, or logical consequence <EM>&lt;the result ought to be infinity&gt; </EM>(应该的)</DIV>
<DIV>&nbsp;</DIV>
<DIV><EM>Example:</EM> We <STRONG>ought</STRONG> to release our project&nbsp;next weekend.</DIV></FONT>
<P><SPAN class=technoratitag>Technorati Tags: <A href="http://www.technorati.com/tags/English" rel=tag>English</A></SPAN> <A href="http://www.technorati.com/cosmos/search.html?rank=links&amp;url=http://www.blogjava.net/blake/archive/2005/06/17/6266.html"><IMG src="http://www.blogjava.net/images/blogjava_net/blake/Misc/bubble_h17.gif" border=0></A> <A href="http://www.technorati.com/ping.html?url=http://www.blogjava.net/blake/archive/2005/06/17/6266.html"><IMG alt="Ping Technorati" src="http://www.blogjava.net/images/blogjava_net/blake/Misc/refresh.gif" border=0></A></P><img src ="http://www.blogjava.net/Blake/aggbug/6266.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Blake/" target="_blank">Blake HAN</a> 2005-06-17 11:12 <a href="http://www.blogjava.net/Blake/archive/2005/06/17/6266.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>&lt;image src='http://www.blogjava.net/images/blogjava_net/blake/Misc/ruby.gif'/&gt;Use Ruby send email</title><link>http://www.blogjava.net/Blake/archive/2005/06/16/6232.html</link><dc:creator>Blake HAN</dc:creator><author>Blake HAN</author><pubDate>Thu, 16 Jun 2005 11:38:00 GMT</pubDate><guid>http://www.blogjava.net/Blake/archive/2005/06/16/6232.html</guid><wfw:comment>http://www.blogjava.net/Blake/comments/6232.html</wfw:comment><comments>http://www.blogjava.net/Blake/archive/2005/06/16/6232.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Blake/comments/commentRss/6232.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Blake/services/trackbacks/6232.html</trackback:ping><description><![CDATA[<FONT face=Arial size=2>Today I'll show you how to send email with Ruby:<BR><BR></FONT>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><FONT size=2><FONT face=Arial><SPAN style="COLOR: #008080">&nbsp;1</SPAN>&nbsp;<SPAN style="COLOR: #000000">require&nbsp;</SPAN><SPAN style="COLOR: #008000">'</SPAN><SPAN style="COLOR: #008000">net/smtp'</SPAN></FONT></FONT><SPAN style="COLOR: #008000"><BR></SPAN><FONT size=2><FONT face=Arial><SPAN style="COLOR: #008080">&nbsp;2</SPAN>&nbsp;<SPAN style="COLOR: #008000"></SPAN><SPAN style="COLOR: #000000">SMTP_HOST&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN></FONT></FONT><FONT size=2><FONT face=Arial><SPAN style="COLOR: #000000">192.168.60.99"<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;3</SPAN>&nbsp;<SPAN style="COLOR: #000000"></SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT size=2><FONT face=Arial><SPAN style="COLOR: #008080">&nbsp;4</SPAN>&nbsp;<SPAN style="COLOR: #000000"></SPAN><SPAN style="COLOR: #000000">def&nbsp;send(from,&nbsp;</SPAN><SPAN style="COLOR: #0000ff">to</SPAN></FONT></FONT><FONT size=2><FONT face=Arial><SPAN style="COLOR: #000000">,&nbsp;subject,&nbsp;msg)<BR></SPAN><SPAN style="COLOR: #008080">&nbsp;5</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;mail&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">To:&nbsp;#{to}\r\n</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT size=2><FONT face=Arial><SPAN style="COLOR: #008080">&nbsp;6</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">From:&nbsp;#{from}\r\n</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT size=2><FONT face=Arial><SPAN style="COLOR: #008080">&nbsp;7</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Subject:&nbsp;#{subject}\r\n</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT size=2><FONT face=Arial><SPAN style="COLOR: #008080">&nbsp;8</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">\r\n</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">+</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT size=2><FONT face=Arial><SPAN style="COLOR: #008080">&nbsp;9</SPAN>&nbsp;</FONT></FONT><FONT size=2><FONT face=Arial><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg<BR></SPAN><SPAN style="COLOR: #008080">10</SPAN>&nbsp;</FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT size=2><FONT face=Arial><SPAN style="COLOR: #008080">11</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;Net::SMTP.start(SMTP_HOST)&nbsp;</SPAN><SPAN style="COLOR: #0000ff">do</SPAN></FONT></FONT><FONT size=2><FONT face=Arial><SPAN style="COLOR: #000000">&nbsp;|smtp|<BR></SPAN><SPAN style="COLOR: #008080">12</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;smtp.send_mail(mail,&nbsp;from,&nbsp;</SPAN><SPAN style="COLOR: #0000ff">to</SPAN></FONT></FONT><FONT size=2><FONT face=Arial><SPAN style="COLOR: #000000">)<BR></SPAN><SPAN style="COLOR: #008080">13</SPAN>&nbsp;<SPAN style="COLOR: #000000">&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">end</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT size=2><FONT face=Arial><SPAN style="COLOR: #008080">14</SPAN>&nbsp;<SPAN style="COLOR: #000000"></SPAN><SPAN style="COLOR: #0000ff">end</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT size=2><FONT face=Arial><SPAN style="COLOR: #008080">15</SPAN>&nbsp;</FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT size=2><FONT face=Arial><SPAN style="COLOR: #008080">16</SPAN>&nbsp;<SPAN style="COLOR: #000000">from&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">blake@192.168.60.99"</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR></SPAN><FONT size=2><FONT face=Arial><SPAN style="COLOR: #008080">17</SPAN>&nbsp;<SPAN style="COLOR: #000000"></SPAN><SPAN style="COLOR: #0000ff">to</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;[</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">blake@192.168.60.99</SPAN><SPAN style="COLOR: #000000">"</SPAN></FONT></FONT><FONT size=2><FONT face=Arial><SPAN style="COLOR: #000000">]<BR></SPAN><SPAN style="COLOR: #008080">18</SPAN>&nbsp;<SPAN style="COLOR: #000000">send(from,&nbsp;</SPAN><SPAN style="COLOR: #0000ff">to</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">test</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,&nbsp;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">Just&nbsp;a&nbsp;test!\ntest</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">)</SPAN></FONT></FONT></DIV></DIV><BR><FONT face=Arial size=2><STRONG><EM><FONT color=#ff0000>Notice:</FONT></EM></STRONG><BR>1. '<STRONG>mail</STRONG>' is the email body, it use <FONT style="BACKGROUND-COLOR: #ffff00">"\r\n"</FONT> to separate the mail header and mail context. So if you only want to send context without header, you should write: "mail = "\r\n" + msg". Otherwise your email will lost the context.</FONT> 
<P><SPAN class=technoratitag>Technorati Tags: <A href="http://www.technorati.com/tags/Ruby" rel=tag>Ruby</A></SPAN> <A href="http://www.technorati.com/cosmos/search.html?rank=links&amp;url=http://www.blogjava.net/blake/archive/2005/06/16/6232.html"><IMG src="http://www.blogjava.net/images/blogjava_net/blake/Misc/bubble_h17.gif" border=0></A> <A href="http://www.technorati.com/ping.html?url=http://www.blogjava.net/blake/archive/2005/06/16/6232.html"><IMG alt="Ping Technorati" src="http://www.blogjava.net/images/blogjava_net/blake/Misc/refresh.gif" border=0></A></P><img src ="http://www.blogjava.net/Blake/aggbug/6232.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Blake/" target="_blank">Blake HAN</a> 2005-06-16 19:38 <a href="http://www.blogjava.net/Blake/archive/2005/06/16/6232.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ruby概述</title><link>http://www.blogjava.net/Blake/archive/2005/06/16/6221.html</link><dc:creator>Blake HAN</dc:creator><author>Blake HAN</author><pubDate>Thu, 16 Jun 2005 09:04:00 GMT</pubDate><guid>http://www.blogjava.net/Blake/archive/2005/06/16/6221.html</guid><wfw:comment>http://www.blogjava.net/Blake/comments/6221.html</wfw:comment><comments>http://www.blogjava.net/Blake/archive/2005/06/16/6221.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Blake/comments/commentRss/6221.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Blake/services/trackbacks/6221.html</trackback:ping><description><![CDATA[<FONT face=Arial><FONT size=2>&nbsp;</FONT><FONT size=2>Ruby是面向对象的编程语言，她追求的是“简便快捷的面向对象编程”。Ruby是解释型语言，因此不需编译即可快捷地编程。同时Ruby具有类似 Perl的强大的文本处理功能，她可并不只是个玩具，您可以用她来进行实用的编程。此外，您还可以很方便地使用C语言来扩展Ruby的功能，因此可以把她当作各种库的前端来使用。</FONT></FONT> 
<DIV class=body>
<DIV class=section>
<P><FONT face=Arial size=2>若您曾经“想要一种简单的面向对象的语言”，或者认为“Perl的功能虽然好用，但它的语法真让人受不了”，又或者觉得“lisp系列语言的思想不错，但到处都是括号真让人讨厌，最起码算式应该按照通常的样式书写”。那么，Ruby或许能让您满意。</FONT></P>
<P><FONT face=Arial size=2>归纳以来，Ruby有以下优点。</FONT></P>
<DL>
<DT><FONT face=Arial size=2><STRONG>解释器</STRONG></FONT> 
<DD><FONT face=Arial size=2>Ruby是解释型语言，其程序无需编译即可轻松执行。</FONT> 
<DT><FONT face=Arial size=2><STRONG>变量无类型</STRONG></FONT> 
<DD><FONT face=Arial size=2>Ruby的变量没有类型，因此不必为静态的类型匹配而烦恼。相应地，错误检查功能也变弱了。</FONT> 
<DT><FONT face=Arial size=2><STRONG>不需要变量声明</STRONG></FONT> 
<DD><FONT face=Arial size=2>所有变量均无需声明即可立即使用。另外，<FONT style="BACKGROUND-COLOR: #ffff00">从变量名即可判断出是何种变量</FONT>（局部变量，全局变量，实例变量）。</FONT> 
<DT><FONT face=Arial size=2><STRONG>语法简单</STRONG></FONT> 
<DD><FONT face=Arial size=2>语法比较简单，类似Algol系语法。</FONT> 
<DT><FONT face=Arial size=2><STRONG>不需要内存管理</STRONG></FONT> 
<DD><FONT face=Arial size=2>具有垃圾回收（Garbage Collect，GC）功能，能自动回收不再使用的对象。</FONT> 
<DT><FONT face=Arial size=2><STRONG>一切都是对象</STRONG></FONT> 
<DD><FONT face=Arial size=2>Ruby从一开始就被设计成纯粹的面向对象语言，因此以整数等基本数据类型为首的所有东西都是对象，它们都有发送信息的统一接口。<EM><FONT color=#008000>（这方面连Java都不如Ruby）</FONT></EM></FONT> 
<DT><FONT face=Arial size=2><STRONG>类，继承，方法</STRONG></FONT> 
<DD><FONT face=Arial size=2>Ruby当然具有面向对象语言的基本功能。</FONT> 
<DT><FONT face=Arial size=2><STRONG>特殊方法</STRONG></FONT> 
<DD><FONT face=Arial size=2>可向某对象添加方法。例如，可以把GUI按钮被按下时的动作作为方法记述下来，还可以用它来进行原型库（prototypebase）的面向对象编程（有人这么干吧）。</FONT> 
<DT><FONT face=Arial size=2><STRONG>用模块进行混合插入（Mixin）</STRONG></FONT> 
<DD><FONT face=Arial size=2>Ruby故意舍弃了多重继承，但拥有混合插入功能。使用模块来超越类的界限来共享数据和方法等。</FONT> 
<DT><FONT face=Arial size=2><STRONG>迭代器</STRONG></FONT> 
<DD><FONT face=Arial size=2>该功能可以将循环抽象化。</FONT> 
<DT><FONT face=Arial size=2><STRONG>闭包</STRONG></FONT> 
<DD><FONT face=Arial size=2>可以将某过程片段对象化。对象化后的该过程片段就称作闭包。</FONT> 
<DT><FONT face=Arial size=2><STRONG>功能强大的字符串操作／正则表达式</STRONG></FONT> 
<DD><FONT face=Arial size=2>以Perl为样板创造出了功能强大的字符串操作和正则表达式检索功能。</FONT> 
<DT><FONT face=Arial size=2><STRONG>拥有超长整数</STRONG></FONT> 
<DD><FONT face=Arial size=2>添加超长整数功能后，可以计算非常大的整数。例如计算400的阶乘也轻而易举。</FONT> 
<DT><FONT face=Arial size=2><STRONG>具有错误处理功能</STRONG></FONT> 
<DD><FONT face=Arial size=2>错误处理功能可以使您编写代码处理出错情况。</FONT> 
<DT><FONT face=Arial size=2><STRONG>可以直接访问OS</STRONG></FONT> 
<DD><FONT face=Arial size=2>Ruby可以使用（UNIX的）绝大部分的系统调用。单独使用Ruby也可以进行系统编程。</FONT> 
<DT><FONT face=Arial size=2><STRONG>动态加载</STRONG></FONT> 
<DD><FONT face=Arial size=2>若OS支持的话，可以在运行时读入对象文件。</FONT></DD></DL>
<P><FONT face=Arial size=2>但Ruby也有下列缺点。</FONT></P>
<UL>
<LI><FONT face=Arial size=2>因为Ruby是解释型语言，所以速度较慢</FONT> 
<LI><FONT face=Arial size=2>静态检查比较少</FONT></LI></UL></DIV></DIV>
<P><SPAN class=technoratitag>Technorati Tags: <A href="http://www.technorati.com/tags/Ruby" rel=tag>Ruby</A></SPAN> <A href="http://www.technorati.com/cosmos/search.html?rank=links&amp;url=http://www.blogjava.net/blake/archive/2005/06/16/6221.html"><IMG src="http://www.blogjava.net/images/blogjava_net/blake/Misc/bubble_h17.gif" border=0></A> <A href="http://www.technorati.com/ping.html?url=http://www.blogjava.net/blake/archive/2005/06/16/6221.html"><IMG alt="Ping Technorati" src="http://www.blogjava.net/images/blogjava_net/blake/Misc/refresh.gif" border=0></A></P><img src ="http://www.blogjava.net/Blake/aggbug/6221.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Blake/" target="_blank">Blake HAN</a> 2005-06-16 17:04 <a href="http://www.blogjava.net/Blake/archive/2005/06/16/6221.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>