<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>King&#039;s Weblog &#187; 文字</title>
	<atom:link href="http://welog.org/blog/category/word/feed" rel="self" type="application/rss+xml" />
	<link>http://welog.org</link>
	<description>专注于Java、Web技术、开源项目的学习、开发及应用,倡导技术改善应用的理念.</description>
	<lastBuildDate>Wed, 09 Dec 2009 08:22:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>I am back</title>
		<link>http://welog.org/blog/744</link>
		<comments>http://welog.org/blog/744#comments</comments>
		<pubDate>Wed, 09 Dec 2009 04:30:12 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://welog.org/?p=744</guid>
		<description><![CDATA[Bloging是一种态度，但停下来久了，就提不起精神整理思绪，很多时候写了一半的内容都烂在了后台&#8230;而停下来越久，就越难开始，还好有Twitter, Google Reader,FriendFeed,Facebook等众多优秀的网络工具(虽然要翻山越岭)，还能感觉到自己在网络上继续活着,并活跃着&#8230;&#8230;. Twitter地址: @kings]]></description>
			<content:encoded><![CDATA[<p>Bloging是一种态度，但停下来久了，就提不起精神整理思绪，很多时候写了一半的内容都烂在了后台&#8230;而停下来越久，就越难开始，还好有Twitter, Google Reader,FriendFeed,Facebook等众多优秀的网络工具(虽然要翻山越岭)，还能感觉到自己在网络上继续活着,并活跃着&#8230;&#8230;. </p>
<p>Twitter地址: @kings</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/744/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>WordCamp China 2008</title>
		<link>http://welog.org/blog/739</link>
		<comments>http://welog.org/blog/739#comments</comments>
		<pubDate>Sat, 20 Sep 2008 04:20:01 +0000</pubDate>
		<dc:creator>maxbaifan</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[WordCamp China 2008]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[上海]]></category>

		<guid isPermaLink="false">http://welog.org/?p=739</guid>
		<description><![CDATA[备受大家关注的WordCamp China 2008今天已经在北京举行, 可以通过WordCamp 的最新更新页面 即时了解现场情况。会议将围绕WordPress、独立Blogger等相关主题安排精彩的演讲和讨论，给 WordPress的用户和开发者提供一个交流的机会。如不出问题明天我将会在上海的分会场通过Twitter直播会场的情况，当然有认识的Blogger可以交流看法和意见。]]></description>
			<content:encoded><![CDATA[<p><a href="http://china.wordcamp.org/files/2008/09/wcc_sh_200_round.png"><img class="alignnone" title="WordCamp China 2008" src="http://china.wordcamp.org/files/2008/09/wcc_sh_200_round.png" alt="" width="200" height="200" /></a></p>
<p>备受大家关注的<a href="http://china.wordcamp.org/" target="_blank">WordCamp China 2008</a>今天已经在北京举行, 可以通过WordCamp 的最新更新<a href="http://search.twitter.com/search?q=WordCamp" target="_blank">页面 </a>即时了解现场情况。会议将围绕WordPress、独立Blogger等相关主题安排精彩的演讲和讨论，给 WordPress的用户和开发者提供一个交流的机会。如不出问题明天我将会在上海的分会场通过<a href="http://twitter.com/kings" target="_blank">Twitter</a>直播会场的情况，当然有认识的Blogger可以交流看法和意见。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/739/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Google Chrome</title>
		<link>http://welog.org/blog/737</link>
		<comments>http://welog.org/blog/737#comments</comments>
		<pubDate>Wed, 03 Sep 2008 05:06:22 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[浏览器]]></category>

		<guid isPermaLink="false">http://welog.org/?p=737</guid>
		<description><![CDATA[Google 如期发布了第一个Bate版浏览器Chrome,虽然早在上个月就目睹了Chrome的界面,没想到会这么快就出了Bate版。这的确算是一个Bate版,除了一些基本功能之外，维持了Google一贯简洁的风格。对于开发者也比较友好，提供了javasicrip 控制台方便用户调试和管理。 虽然Chrome可以很容易把IE或者Firefox所有的记录都调用过来，包括访问历史、书签，但我还是会坚持Firefox，很多Web应用都依赖Firefox的插件，而这一点目前还是Chrome欠缺的。当然有竞争才会有更好的改变，这么来看是件好事！]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/JGmO7Oximw8&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/JGmO7Oximw8&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object><br />
Google 如期发布了第一个Bate版浏览器<a href="http://www.google.com/chrome/index.html">Chrome</a>,虽然早在上个月就目睹了Chrome的界面,没想到会这么快就出了Bate版。这的确算是一个Bate版,除了一些<a href="http://www.google.com/chrome/intl/zh-CN/features.html">基本功能</a>之外，维持了Google一贯简洁的风格。对于开发者也比较友好，提供了javasicrip 控制台方便用户调试和管理。<br />
   虽然Chrome可以很容易把IE或者Firefox所有的记录都调用过来，包括访问历史、书签，但我还是会坚持Firefox，很多Web应用都依赖Firefox的插件，而这一点目前还是Chrome欠缺的。当然有竞争才会有更好的改变，这么来看是件好事！</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/737/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>奥运</title>
		<link>http://welog.org/blog/734</link>
		<comments>http://welog.org/blog/734#comments</comments>
		<pubDate>Fri, 08 Aug 2008 03:58:55 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[奥运]]></category>
		<category><![CDATA[奥运直播表]]></category>

		<guid isPermaLink="false">http://welog.org/blog/734</guid>
		<description><![CDATA[记录一下。没超出预期，烟火太烧钱了&#8230;&#8230; 还是享受接下来的赛事吧,这里(CCTV的奥运赛频道)这里(Google Maps上的北京2008奥运会). 以下是awflasher 同学整理的赛事直播表，感谢他整理!! 8月8日 周五 20:00 第29届奥林匹克运动会开幕式 CCTV1,2,奥运（高清） 8月9日 周六 8:34 女子10米气步枪资格赛 &#8212; 高清 9:00 女篮预赛第1场A组(白俄罗斯vs澳大利亚) &#8212; CCTV2 10:00 女排预赛A组第1场 &#8212; CCTV2 10:00 女子举重48公斤级决赛 &#8212; 奥运、高清 10:30 女子10米气步枪决赛 &#8212; CCTV1 11:40 男子公路自行车赛决赛 &#8212; 高清 12:00 体操男子资格赛：第一场 &#8212; CCTV2 12:30 女排B组第1场(阿尔及利亚vs巴西) &#8212; 奥运、高清 13:20 女子佩剑个人1/4决赛 &#8212; CCTV1 13:50 赛艇女子单人双浆6场预赛 &#8212; CCTV1 14:00 女排预赛A组第3场 &#8212; [...]]]></description>
			<content:encoded><![CDATA[<p>记录一下。<br />没超出预期，烟火太烧钱了&#8230;&#8230;</p>
<p>还是享受接下来的赛事吧,<a href="http://2008.cctv.com/">这里</a>(CCTV的奥运赛频道)<a href="http://www.google.cn/landing/summergames2008/">这里</a>(Google Maps上的北京2008奥运会).</p>
<p>以下是<a href="http://www.awflasher.com">awflasher</a> 同学整理的赛事直播表，感谢他整理!!<br />
<h3>8月8日 周五</h3>
<blockquote><p>20:00 第29届奥林匹克运动会开幕式 CCTV1,2,奥运（高清）</p>
</blockquote>
<h3>8月9日 周六</h3>
<blockquote><p>8:34 女子10米气步枪资格赛 &#8212; 高清 <br />9:00 女篮预赛第1场A组(白俄罗斯vs澳大利亚) &#8212; CCTV2 <br />10:00 女排预赛A组第1场 &#8212; CCTV2 <br />10:00 女子举重48公斤级决赛 &#8212; 奥运、高清 <br />10:30 女子10米气步枪决赛 &#8212; CCTV1 <br />11:40 男子公路自行车赛决赛 &#8212; 高清 <br />12:00 体操男子资格赛：第一场 &#8212; CCTV2 <br />12:30 女排B组第1场(阿尔及利亚vs巴西) &#8212; 奥运、高清 <br />13:20 女子佩剑个人1/4决赛 &#8212; CCTV1 <br />13:50 赛艇女子单人双浆6场预赛 &#8212; CCTV1 <br />14:00 女排预赛A组第3场 &#8212; CCTV2 <br />14:02 男子公路自行车赛决赛 &#8212; 高清 <br />14:30 女篮B组第3场(西班牙vs中国) &#8212; 奥运频道 <br />15:00 男子10米气手枪决赛 &#8212; CCTV1、高清 <br />15:22 男子公路自行车赛决赛 &#8212; 高清 <br />16:00 男子体操资格赛 &#8212; CCTV1、高清 <br />16:00 公路自行车男子决赛:选出发+冲刺 &#8212; CCTV2 <br />16:15 开幕式录像 &#8212; 奥运频道 <br />18:00 柔道女子48公斤级、男子60公斤级决赛 &#8212; CCTV2、高清 <br />19:00 女佩个人半决赛&#8211;决赛 &#8212; 奥运频道 <br />19:45 女足预赛(加拿大vs中国) &#8212; 奥运频道 <br />20:00 女篮预赛(美国VS捷克) &#8212; CCTV2 <br />20:00 女排预赛A组第2场(中国VS委内瑞拉) &#8212; CCTV1 <br />20:00 女子佩剑铜牌、金牌决赛 &#8212; 高清 <br />21:00 男沙预赛F组第6场 &#8212; 奥运频道 <br />22:00 女排预赛B组第3场 &#8212; CCTV2
</p>
<p>【9日 金牌预测 7枚 】</p>
<p>首金将在今天出现&#8212;女子10米气步枪。不过，由于女子48公斤级决赛亦在上午进行，因此也是首金的潜在诞生地。除此之外，中国选手有望在女子佩剑、女子48公斤级柔道、男子10米气手枪等项目上冲击金牌和奖牌。 </p>
<p>【选手推介】</p>
<p> 女子射击10米气步枪&#8212;-杜丽、赵颖慧 <br />女子举重48公斤级&#8212;-陈燮霞、王明娟、杨炼 <br />男子射击10米气手枪&#8212;-谭宗亮、宠伟 <br />女子个人佩剑&#8212;-谭雪、包盈盈 <br />女子柔道48公斤级&#8212;-吴树根、高峰 </p>
</blockquote>
<h3>8月10日 周日 </h3>
<blockquote><p>09:00 男篮第1场B组(俄罗斯vs伊朗) &#8212; CCTV2 <br />09:00 男沙预赛 &#8212; 奥运频道 <br />09:58 男子400米个人混合泳决赛 &#8212; 高清 <br />10:00 游泳决赛 &#8212; CCTV1 <br />10:00 体操女子资格赛(中国队) &#8212; 奥运频道 <br />10:30 女子曲棍球预赛（中国VS新西兰） &#8212; CCTV2 <br />12:00 射箭女团1/4决 &#8212; CCTV2 <br />12:00 女子10米气手枪决赛 &#8212; 奥运、高清 <br />12:30 中国男排或录播男篮(安哥拉 资格赛队B) &#8212; CCTV1 <br />13:30 拳击 &#8212; CCTV2 <br />13:30 女子体操资格赛第2场 &#8212; 奥运频道 <br />14:00 公路自行车发车,水球(塞尔维亚vs德国) &#8212; CCTV2 <br />14:30 女子跳水双人3米板决赛 &#8212; CCTV1、高清 <br />15:00 男子飞碟多项决赛 &#8212; 奥运频道 <br />15:20 赛艇男轻双双、男轻四单、女轻四双预赛 &#8212; CCTV1 <br />15:30 女子举重53公斤级决赛 &#8212; CCTV2、高清 <br />16:00 射箭女子团体半决赛、决赛 &#8212; 奥运频道 <br />16:45 男篮预赛第4场A组(立陶宛VS阿根廷) &#8212; CCTV1 <br />17:00 男足预赛4选1,女子体操资格赛 &#8212; CCTV2 <br />17:20 射箭女子团体决赛 &#8212; 高清 <br />18:00 柔道女子52公斤、男子66公斤级决赛 &#8212; CCTV2 <br />19:00 男子举重56公斤级A组决赛 &#8212; 高清 <br />19:45 男足预赛(意大利vs韩国) &#8212; CCTV2 <br />19:45 男足预赛(比利时VS中国) &#8212; 奥运频道 <br />19:55 男子举重56公斤级决赛 &#8212; CCTV1 <br />20:00 男子排球预赛：中国VS保加利亚 &#8212; CCTV2 <br />20:10 男子个人重剑铜牌-决赛 &#8212; CCTV1、高清 <br />22:15 男篮预赛第6场B组(中国vs美国) &#8212; CCTV2
</p>
<p>【10日 金牌预测 14枚 】</p>
<p>今天共7个项目14场决赛。中国军团有望在女子双人3米跳板跳水、女子柔道52公斤级、妇子射箭等项目上冲击金牌或奖牌。 </p>
<p>【选手推介】</p>
<p> 女子跳水双人3米跳板&#8212;-郭晶晶、吴敏霞 <br />男子个人重剑&#8212;-王磊 <br />女子射箭团体&#8212;-中国女子射箭队 <br />女子10米气手枪&#8212;-任洁、郭文珺 <br />女子举重53公斤级&#8212;-邱红霞、李萍 <br />男子举重56公斤级&#8212;-李争、吴美锦 <br />女子柔道52公斤级&#8212;-冼东妹 </p>
</blockquote>
<h3>8月11日 周一 </h3>
<blockquote><p>08:30 男子曲棍球预赛(德国VS中国) &#8212; 奥运、高清 <br />09:00 女篮预赛第7场B组(新西兰vs资格赛队E) &#8212; CCTV2 <br />10:00 女子100米仰游半决赛 &#8212; CCTV1、高清 <br />10:00 羽球女子双打1/4决赛 &#8212; 奥运频道 <br />11:00 女沙预赛 &#8212; CCTV2 <br />12:00 女排预赛B组第5场、网球男单第一轮 &#8212; CCTV2 <br />12:00 男子10米气步枪决赛、羽毛球、女子个人花剑1/4决赛 &#8212; 奥运、高清 <br />12:30 女排预赛A组第4场、备播直播网球女双第一轮(中国)跳水男双10米台决赛 &#8212; CCTV1 <br />14:30 女子预赛A组、射箭男团 &#8212; CCTV1 <br />14:30 女排预赛B组第6场、网球重要比赛 &#8212; CCTV2 <br />14:30 女子飞碟多项决赛 &#8212; 奥运频道 <br />14:30 男子双人10米台决赛 &#8212; 高清 <br />15:30 女子举重58公斤级决赛 &#8212; 奥运、高清 <br />15:30 射箭男团决赛 &#8212; 奥运频道 <br />15:45 1/4决赛(中国队) &#8212; CCTV1 <br />16:00 激流皮划艇,插播拳击录像 &#8212; CCTV2 <br />16:45 女篮预赛第10场B组 &#8212; CCTV1 <br />17:20 男举62公斤级A组 &#8212; 奥运频道 <br />17:20 男子团体射箭决赛 &#8212; 高清 <br />18:00 柔道女57,男73决赛 &#8212; CCTV2 <br />19:00 男子举重62公斤级决赛 &#8212; 奥运频道 <br />19:00 羽毛球 &#8212; 奥运频道 <br />19:31 女子个人花剑半决赛 &#8212; 高清 <br />20:00 女子篮球预赛(中国VS美国) &#8212; CCTV2 <br />20:00 女子排球预赛A组第5场(中国VS波兰) &#8212; CCTV1 <br />20:10 女子个人花剑3-4名决赛 &#8212; 高清 <br />20:40 女子个人花剑决赛 &#8212; 高清 <br />22:00 女排预赛A组第6场 &#8212; CCTV2 <br />22:15 女篮预赛第12场A组 &#8212; CCTV2
</p>
<p>【11日 金牌预测 13枚 】</p>
<p>今天共6个项目13场决赛。中国选手有望在男子双人10米跳台跳水、男子10米气步枪等项目上冲击金牌或奖牌。 </p>
<p>【选手推介】</p>
<p> 男子10米气步枪&#8212;-朱启南、曹逸飞 <br />男子跳水双人10米跳台&#8212;-林跃、火亮 <br />女子飞碟多向&#8212;-刘英姿 <br />女子举重58公斤级&#8212;-陈艳青、邱红梅 <br />男子举重62公斤级&#8212;-张湘翔、张杰 <br />女子柔道57公斤级&#8212;-许岩 </p>
</blockquote>
<h3>8月12日 周二 </h3>
<blockquote><p>08:30 体操男子团体决赛 &#8212; 奥运频道 <br />08:30 备播直播：女曲（阿根廷vs英国） &#8212; CCTV2 <br />09:00 男篮预赛（伊朗vs立陶宛） &#8212; CCTV2 <br />10:00 游泳决赛 &#8212; CCTV1 <br />10:00 备播直播：男排预赛 &#8212; CCTV2 <br />10:00 体操男团决赛 &#8212; 奥运、高清 <br />11:00 女沙预赛 &#8212; CCTV2 <br />12:00 羽球男子单打、双打、混双前16名比赛 &#8212; 奥运频道 <br />12:00 男子50米手枪慢射决赛 &#8212; CCTV2 <br />12:30 男排预赛A组第4场 &#8212; CCTV1 <br />12:40 女沙预赛或女曲（阿根廷vs英国） &#8212; CCTV2 <br />13:30 男篮预赛（俄罗斯vs资格赛球队A） &#8212; 奥运频道 <br />14:00 备播直播：男手（中国vs法国） &#8212; 奥运频道 <br />14:30 跳水女双10米台决赛、羽毛球混双/男单/男双三项选一场(中国) &#8212; CCTV1、高清 <br />15:00 男子飞碟双多项决赛 &#8212; CCTV2 <br />15:30 女子举重63公斤级A组、皮划艇激流男子单人皮划艇决赛 &#8212; 奥运、高清 <br />16:45 男篮预赛第10场A组(中国VS西班牙) &#8212; CCTV1 <br />17:00 女子垒球预赛（中国VS荷兰） &#8212; CCTV2 <br />17:20 男子摔跤古典式55公斤级决赛、皮划艇激流男子单人皮划艇决赛、男子摔跤古典式60公斤级决赛 &#8212; 奥运、高清 <br />18:00 柔道女子63公斤级、男子81公斤级决赛 &#8212; CCTV2、高清 <br />19:00 男子举重69公斤级A组 &#8212; 奥运频道 <br />19:45 女足预赛(中国VS阿根廷)、男子个人佩剑决赛、游泳预赛 &#8212; CCTV1 <br />20:00 男篮预赛第11场A组（安哥拉vs美国） &#8212; CCTV2 <br />20:10 男子击剑个个佩剑决赛 &#8212; 高清 <br />20:30 女曲预赛A组(中国vs南非)、羽毛球(中国) &#8212; 奥运频道 <br />22:15 男子篮球预赛（阿根廷VS澳大利亚）&#8211; CCTV2
</p>
<p>【12日 金牌预测 19枚 】</p>
<p>今天共9个项目19场决赛。中国选手有望在女子双人10米跳台跳水、体操男子团体、举重男子69公斤级等项目上冲击金牌或奖牌。 </p>
<p>【选手推介】</p>
<p> 男子体操团体&#8212;中国男子休操队 <br />男子50米手枪慢射&#8212;-林忠仔、谭宗亮 <br />男子飞碟双多向&#8212;-胡斌渊 <br />女子跳水双人10米跳台&#8212;-陈若琳、王鑫 <br />女子柔道63公斤级&#8212;-徐玉华 <br />男子举重69公斤级&#8212;-廖辉、张国政、石智勇 <br />女子举重63公斤级&#8212;-刘海霞 </p>
</blockquote>
<h3>8月13日 周三 </h3>
<blockquote><p>08:30 12日男篮预赛第12场B组(阿根廷vs澳大利亚) &#8212; 奥运频道 <br />09:00 12日未播羽毛球（中国） &#8212; CCTV1 <br />09:59 男子100米自由泳半决赛、女子200米自由泳决赛、男子200米蝶泳决赛、 <br />女子200米蝶泳半决赛、男子200米蛙泳半决赛、女子200米个人混合决赛、 <br />男子4*200米自由泳接力赛 &#8212; 高清 <br />10:00 羽球女双半决赛、女单、男双1/4决赛 &#8212; CCTV2 <br />10:00 游泳决赛 &#8212; CCTV1 <br />10:15 体操女子团体决赛 &#8212; 奥运频道 <br />12:30 男子个人花剑1/4决赛 &#8212; CCTV1 <br />12:30 女排预赛第7场B组 &#8212; 奥运频道 <br />13:00 男曲预赛（中国vs韩国）、女子沙滩排球预赛E组 <br />14:30 男子跳水双人3米板决赛 &#8212; CCTV1、高清 <br />14:30 女排预赛第9组A组 &#8212; CCTV2 <br />15:00 女子25米运动手枪决赛 &#8212; 奥运频道 <br />15:30 女子举重69公斤级A组、皮划艇激流女子单人预赛、男子双人皮划艇预赛&#8211;奥运、高清 <br />15:45 备播直播：女手（中国vs安哥拉） &#8212; CCTV2 <br />16:00 女子个人重剑1/4决赛 &#8212; CCTV1 <br />16:00 网球 &#8212; CCTV2 <br />16:45 女篮预赛第16场A组(中国VS新西兰) &#8212; CCTV1 <br />17:20 男子摔跤古典式66公斤级决赛 &#8212; 高清 <br />18:00 沙滩排球 &#8212; CCTV2 <br />18:00 女子柔道70公斤级、男子柔道90公斤级 &#8212; 高清 <br />18:30 男子个人花剑半决赛2场、男子古典式75公斤级决赛 &#8212; CCTV1 <br />18:30 羽球女双决赛、女单、男双1/4决赛 &#8212; 奥运频道 <br />19:00 柔道女子70公斤、男子90公斤级决赛 &#8212; CCTV2 <br />19:31 女子个人重剑半决赛 &#8212; 高清 <br />19:45 男子足球预赛（中国VS巴西） &#8212; 奥运频道 <br />20:00 女子排球预赛第8场B组(中国VS古巴) &#8212; CCTV1 <br />20:00 女篮预赛（澳大利亚vs韩国） &#8212; CCTV2 <br />20:00 男子个人花剑3-4名决赛 &#8212; 高清 <br />20:30 女子个人重剑3-4名决赛 &#8212; 高清 <br />21:00 男子个人花剑决赛 高清 <br />21:30 重剑女子个人决赛 &#8212; CCTV1、高清 <br />22:00 乒乓球 &#8212; CCTV2
</p>
<p>【13日 金牌预测 14枚 】</p>
<p>今天共14场决赛。中国选手将在跳水、柔道、射箭等项目上向金牌或奖牌发起冲击。 </p>
<p>【选手推介】</p>
<p> 女子25米运动手枪&#8212;-陈颖 <br />女子体操团体&#8212;-中国女子体操队 <br />男子跳水双人3米跳板&#8212;-王峰、秦凯 <br />女子举重69公斤级&#8212;-刘春红 <br />男子摔跤古典式66公斤级&#8212;-李岩岩 <br />男子举重77公斤级&#8212;-李宏利 <br />男子个人花剑&#8212;-雷声 <br />女子柔道70公斤级&#8212;-王娟 <br />女子个人重剑&#8212;-仲维萍、李娜 </p>
</blockquote>
<h3>8月14日 周四 </h3>
<blockquote><p>08:30 女子曲棍球预赛A组(中国VS荷兰) &#8212; 奥运频道 <br />09:00 男篮预赛第13场A组(资格赛队Bvs西班牙) &#8212; CCTV2 <br />09:59 男子200米蛙泳决赛、女子100米自由泳半决赛、男子200米仰泳半决赛、 <br />女子200米蝶泳决赛、男子100米自由泳决赛、女子200米蛙泳半决赛、 <br />男子200米个人混合泳半决赛、女子4*200米自由泳接力决赛 &#8212; 高清 <br />10:00 羽球男单、混双1/4决赛 &#8212; CCTV2 <br />10:00 游泳4项决赛 &#8212; CCTV1 <br />11:00 体操男子个人全能决赛 &#8212; 奥运频道 <br />12:30 女子50米步枪三姿决赛 &#8212; CCTV1、高清 <br />13:00 乒乓球男、女团体第2轮 &#8212; CCTV1 <br />14:30 乒乓球团体第2轮(中国队) &#8212; CCTV1 <br />14:30 男篮预赛第15场B组(中国VS安哥拉) &#8212; 奥运频道 <br />15:00 女子飞碟双向决赛 &#8212; CCTV2、高清 <br />16:00 女垒预赛（中国vs澳大利亚） &#8212; CCTV1 <br />16:30 男手（中国vs西班牙） &#8212; CCTV2 <br />16:40 激流皮划艇男双人、女单人决定 &#8212; 奥运频道 <br />17:00 女子射箭个人半决赛、决赛 &#8212; CCTV1 <br />17:20 男子摔跤古典式84公斤级决赛 &#8212; 高清 <br />18:00 赛艇半决赛 &#8212; CCTV1 <br />18:00 女子佩剑团体铜牌（中国队） &#8212; CCTV2、高清 <br />18:30 羽球男单、混双1/4决赛 &#8212; 奥运频道 <br />19:00 女子佩剑团体决赛 &#8212; CCTV2、高清 <br />20:00 男篮预赛第17场A组(美国VS资格赛球队C) &#8212; CCTV2、高清 <br />20:00 乒乓球男团、女团小组赛第3轮 &#8212; CCTV1 <br />21:30 网球女双1/4决赛、备播直播：马术团体盛装舞步第二天决赛 &#8212; CCTV2
</p>
<p>【14日 金牌预测 17枚 】</p>
<p>今天共9个项目17场决赛。中国选手有望过入女子的射击、射箭、柔道、佩剑、单人皮划艇、200米蝶泳和男子体操全能、双人皮划艇等项目的决赛上冲击金牌或奖牌。 </p>
<p>【选手推介】</p>
<p> 女子50米步枪3*20&#8212;-杜丽、武柳希 <br />女子飞碟双向&#8212;-魏宁 <br />女子团体佩剑&#8212;-中国女子佩剑队 <br />女子柔道78公斤级&#8212;-杨秀丽、刘霞 <br />体操男子个人全能&#8212;-杨威 <br />男子双人皮划艇&#8212;-胡海明、舒俊榕 <br />女子单人皮划艇&#8212;-李晶晶 </p>
</blockquote>
<h3>8月15日 周五 </h3>
<blockquote><p>08:30 男篮预赛第18场B组 &#8212; CCTV2 <br />08:30 男子曲棍球预赛（中国VS西班牙） &#8212; 奥运、高清 <br />09:00 女子沙滩排球前16名复赛 &#8212; CCTV1 <br />09:00 备播直播：女手(哈萨克斯坦vs中国) &#8212; 奥运频道 <br />10:00 羽毛球男单、男双半决赛 &#8212; CCTV2 <br />10:00 游泳4项决赛 &#8212; CCTV1 <br />10:00 男子50米自由泳半决赛、女子200米蛙泳决赛、男子200米仰泳决赛、女子200米仰泳半决赛、女子100米自由泳决赛、男子200米个人混合泳决赛 &#8212; 高清 <br />11:15 体操女子个人全能决赛 &#8212; 奥运、高清 <br />11:30 男子50米步枪卧射决赛 &#8212; CCTV1 <br />12:30 女排预赛第10场A组 &#8212; CCTV1 <br />14:00 男子团体重剑半决赛 &#8212; CCTV2 <br />14:30 乒乓球女子团体半决赛第一场 &#8212; CCTV1 <br />14:30 女排预赛第12场B组 &#8212; 奥运频道 <br />15:30 女子举重75公斤级决赛 &#8212; CCTV2、高清 <br />16:00 网球女子双打半决赛、女垒(中国vs加拿大)、女沙前16名复赛(中国队) &#8212; 奥运频道 <br />16:45 女子篮球预赛(中国VS马里) &#8212; CCTV1 <br />17:04 射箭男子半决赛、三四名比赛、决赛 &#8212; CCTV2、高清 <br />18:00 拳击60公斤级预赛（中国）、柔道女78公斤以上级、男100公斤以上级决赛、男举85公斤级决赛 &#8212; CCTV2 <br />18:30 羽毛球女子双打决赛 &#8212; 高清 <br />19:30 乒乓球女子团体半决赛第二场、女排预赛A组(中国vs美国) &#8212; 奥运频道 <br />19:50 羽球女双3-4名、决赛、男单半决赛 &#8212; CCTV1 <br />20:00 备播直播：女排预赛A组 &#8212; CCTV2 <br />21:00 女足1/4决赛 &#8212; 奥运频道 <br />22:15 女篮预赛 &#8212; CCTV2
</p>
<p>【15日 金牌预测 16枚 】</p>
<p>今天共有10个项目的16场决赛。中国选手将在女子的体操个人全能、羽毛球双打、200米蛙泳、柔道78公斤级和男子50米步枪卧射比赛中向金牌或奖牌发起冲击。 </p>
<p>【选手推介】</p>
<p> 男子举重85公斤级——陆永 <br />女子羽毛球双打——杨维、张洁雯；杜婧、于洋；魏铁力、张亚雯 <br />体操女子个人全能——江钰源 <br />女子柔道78公斤以上级——佟文、刘欢缘 <br />8月16日 周六 <br />08:30 15日女排或女蓝（中国队） &#8212; CCTV2 <br />09:00 男子20公里竞走决赛 &#8212; CCTV1、高清 <br />09:00 女子团体花剑前16淘汰赛 &#8212; CCTV2 <br />09:00 男篮预赛第19场(资格赛队C vs 安哥拉) &#8212; 奥运频道 <br />10:00 男子排球预赛B组（中国VS美国） &#8212; CCTV2 <br />10:00 羽球女单、男双三四名决赛、女单决赛 &#8212; 奥运、高清 <br />10:00 游泳4项决赛 &#8212; CCTV1 <br />10:50 田径女子100米第一轮 &#8212; CCTV1 <br />12:00 男子25米手枪速射决赛 &#8212; CCTV2 <br />12:30 田径男子铁饼及极赛、女子400米第一轮 &#8212; CCTV1 <br />12:40 15日网球男单半决赛 &#8212; CCTV2 <br />13:30 女垒（中国vs日本） &#8212; CCTV1 <br />14:30 男篮预赛第21场A组 &#8212; CCTV1 <br />14:30 乒乓球男子团体半决赛第1场 &#8212; 奥运频道 <br />15:00 男子飞碟双向决赛 &#8212; CCTV2、高清 <br />16:00 赛艇决赛、女子双人双桨决赛 &#8212; CCTV1 <br />16:00 蹦床男、女资格赛 &#8212; CCTV2 <br />16:45 男篮预赛第22场A组（伊朗vs阿根廷） &#8212; CCTV2、高清 <br />17:40 摔跤女子自由式48公斤级、55公斤级决赛 &#8212; CCTV1 <br />18:00 场地自行车男子记分赛,决赛、男手预赛(中国队) &#8212; CCTV1 <br />18:30 羽毛球中国混双半决赛 &#8212; CCTV2 <br />18:31 羽毛球男子双打决赛 &#8212; 高清 <br />19:00 女子举重75公斤级以上级决赛 &#8212; CCTV2 <br />19:30 乒乓球男团半决赛、羽毛球男双决赛、男单铜牌、女单决赛、女曲(中国vs韩国) &#8212; 奥运频道 <br />20:00 男篮预赛(中国VS资格赛球队B)、田径男子100米决赛 &#8212; CCTV1 <br />21:00 击剑女花团体决赛 &#8212; CCTV2 <br />22:15 男子篮球预赛（西班牙VS美国） &#8212; CCTV2
</p>
<p>【16日 金牌预测 30枚 】</p>
<p>今天共有11个项目的30场决赛。中国选手有望在羽毛球女子单打、女子铅球等项目上向金牌或奖牌发起冲击。 </p>
<p>【选手推介】</p>
<p> 女子羽毛球单打——谢杏芳、张宁、卢兰、朱琳 <br />女子赛艇双人双浆——李勤、田靓 <br />女子摔跤自由式48公斤级——任雪层、黎笑媚 <br />女子举重75公斤以上级——穆爽爽 <br />男子25米手枪速射——张鹏辉 <br />男子羽毛球双打——蔡赟、付海峰；郭振东、谢中博 <br />女子摔跤自由式55公斤级——许莉 </p>
</blockquote>
<h3>8月17日 周日 </h3>
<blockquote><p>07:30 女子马拉松决赛 &#8212; CCTV2、高清 <br />09:30 女子垒球预赛（中国VS中国台北） &#8212; 奥运频道 <br />10:00 男子1500米自由泳决赛、女子50米自由泳决赛、女子4*100米个人混合泳接力决赛、男子4*100米个人混合泳接力决赛 &#8212; CCTV1、高清 <br />10:00 16日棒球(中国vs荷兰) &#8212; CCTV2 <br />11:00 女子沙滩排球1/4决赛（中国） &#8212; 奥运频道 <br />11:02 女子马拉松决赛 &#8212; 高清 <br />11:15 女子篮球预赛（澳大利亚VS俄罗斯） &#8212; CCTV2 <br />12:00 16日男篮预赛第24场B组 &#8212; 奥运频道 <br />12:30 16日网球女单决赛 &#8212; CCTV1 <br />13:30 男子50米步枪三姿决赛 &#8212; 奥运、高清 <br />14:30 女排预赛A组第15场 &#8212; CCTV1 <br />14:30 女蓝预赛第27场A组 &#8212; CCTV2 <br />14:30 乒乓球女团三四名决赛 &#8212; 奥运频道 <br />15:30 女子赛艇轻量级双人双桨 &#8212; 高清 <br />15:50 男子赛艇轻量级双人双桨决赛 &#8212; 高清 <br />16:00 赛艇7项决赛 &#8212; 奥运频道 <br />16:00 网球女双决赛 &#8212; CCTV1 <br />16:10 男子赛艇轻量级四人单桨决赛 &#8212; 高清 <br />16:30 女手（中国vs法国） &#8212; CCTV2 <br />16:30 女子赛艇四人双桨决赛 &#8212; 高清 <br />16:50 男子赛艇四人双桨决赛 &#8212; 高清 <br />17:10 女子赛艇八人单桨决赛 &#8212; 高清 <br />17:30 男子赛艇八人单桨决赛 &#8212; 高清 <br />17:45 摔跤自由式女63公斤级、72公斤级决赛、场地自行车 &#8212; CCTV1 <br />18:00 体操4个单项决赛 &#8212; 奥运、高清 <br />18:30 羽毛球混双三四名比赛、决赛 &#8212; CCTV2、高清 <br />19:50 乒乓球女团决赛、羽毛球男单决赛 &#8212; CCTV1 <br />20:30 跳水女子单人3米板决赛、田径决赛 &#8212; 奥运频道 <br />22:00 女排（中国vs日本） &#8212; CCTV2 <br />22:15 备播直播：女篮预赛（新西兰vs美国） &#8212; CCTV2
</p>
<p>【17日 金牌预测 34枚 】</p>
<p>今天是产生金牌最多的一天。中国选手将在体操、羽毛球、乒乓球、跳水、射击、赛艇等几个项目上向大约10枚金牌发起冲击。 </p>
<p>【选手推介】</p>
<p> 男子50米步枪3×40——贾占波 <br />女子马拉松——周春秀 <br />男子赛艇轻量级四人单浆——黄钟鸣、田军、吴崇魁、张林 <br />女子摔跤自由式63公斤级——景瑞雪、许海燕 <br />女子摔跤自由式72公斤级——王旭 <br />网球女子双打——郑洁、晏紫 <br />羽毛球混双——郑波、高崚；何汉斌、于洋 <br />男子羽毛球单打——林丹、鲍春来、陈金 <br />女子跳水3米板——郭晶晶、吴敏霞 <br />乒乓球女子团体——中国女子乒乓球队 <br />体操男子鞍马——肖钦 <br />体操女子跳马——程菲 <br />女子自由体操——程菲 </p>
</blockquote>
<h3>8月18日 周一 </h3>
<blockquote><p>8:30 女曲预赛B组（德国vs日本） &#8212; CCTV2 <br />09:00 田径预赛 &#8212; CCTV1 <br />09:00 男篮预赛第25场A组（伊朗vs资格赛队A） &#8212; 奥运频道 <br />10:00 女子铁人三项决赛 &#8212; CCTV2、高清 <br />11:00 男沙1/4决赛一场 &#8212; 奥运频道 <br />12:00 女子垒球预赛（中国VS美国） &#8212; 奥运频道 <br />12:30 男排预赛第13场B组(德国vs巴西) &#8212; CCTV1、高清 <br />12:30 男篮预赛第26场B组 &#8212; CCTV2 <br />14:30 男篮预赛第27场B组(中国VS资格赛队) &#8212; CCTV1、高清 <br />14:30 男排预赛第15场A组 &#8212; CCTV2 <br />14:30 乒乓球男团三四名决赛 &#8212; 奥运频道 <br />16:00 男手(中国vs克罗地亚)或花样游泳预赛双人技术自选 &#8212; CCTV2 <br />16:30 场地自行车2项决赛，1/4决赛 &#8212; CCTV1、高清 <br />16:45 男篮预赛（安哥拉vs西班牙） &#8212; 奥运频道 <br />18:00 体操3个单项决赛、蹦床女单决赛 &#8212; CCTV2、高清 <br />19:30 乒乓球男团决赛、男篮预赛(美国vs资格队) &#8212; 奥运、高清 <br />20:00 田径6项决赛 &#8212; CCTV1 <br />21:00 男子沙排1/4决赛 &#8212; CCTV2 <br />22:15 男子篮球预赛(阿根廷VS俄罗斯) &#8212; CCTV2
</p>
<p>【18日 金牌预测 18枚 】</p>
<p>今天共有8个项目的18场决赛。中国选手有望在乒乓球男子团体、男子吊环、男子跳马、女子高低杠等项目上向金牌或奖牌发起冲击。备受关注的刘翔也会首次亮相，参加11点10分开始的男子110米栏第一轮预赛。 </p>
<p>【选手推介】</p>
<p> 乒乓球男子团体——中国男子乒乓球队 <br />体操男子吊环——陈一冰 <br />体操女子高低杠——何可欣、杨伊琳 <br />体操男子跳马——李小鹏 <br />女子蹦床——黄珊汕 </p>
</blockquote>
<h3>8月19日 周二 </h3>
<blockquote><p>08:30 男曲预赛B组(荷兰vs巴基斯坦) &#8212; CCTV2 <br />08:30 18日女足半决赛1场 &#8212; 奥运频道 <br />09:00 女子沙排半决赛2场 &#8212; CCTV1、高清 <br />10:00 女子排球1/4决赛 &#8212; CCTV2 <br />10:00 跳水男子单人3米板半决赛 &#8212; 奥运频道 <br />11:00 男子铁人三项决赛 &#8212; CCTV1、高清 <br />12:00 女子手球1/4决赛 &#8212; CCTV2 <br />12:00 女子排球1/4决赛 &#8212; 奥运、高清 <br />14:00 18日马术团体障碍赛决赛 &#8212; CCTV2 <br />14:30 女子篮球1/4决赛1场 &#8212; CCTV1、高清 <br />15:00 花样游泳预赛(双人自由自选) &#8212; CCTV2 <br />15:00 乒乓球男、女单第1轮、场地自行车 &#8212; 奥运频道 <br />16:30 女子场地自行车争先赛半决赛第1组 &#8212; 高清 <br />16:40 男子场地自行车争先赛半决赛第1组 &#8212; 高清 <br />16:45 女子篮球1/4决赛1场 &#8212; CCTV1 <br />16:50 男子场地自行车争先赛9-12名名次赛 &#8212; 高清 <br />16:55 女子场地自行车争先赛半决赛第2组 &#8212; 高清 <br />17:05 男子场地自行车争先赛半决赛第2组 &#8212; 高清 <br />17:10 皮划艇男子500米双人划艇预赛、皮划艇男子单人500米划艇预赛 &#8212; CCTV2 <br />17:15 女子场地自行车争先赛9-12名名次赛 &#8212; 高清 <br />17:21 男子摔跤自由式55公斤级决赛 &#8212; 高清 <br />17:31 男子场地自行车麦迪逊赛决赛 &#8212; 高清 <br />18:00 男足半决赛1场 &#8212; CCTV2 <br />18:00 体操男子双杠决赛、体操女子平衡木决赛、体操男子单杠决赛 &#8212; 奥运、高清 <br />19:00 拳击48公斤级1/4决赛4场 &#8212; CCTV2 <br />20:00 女排1/4决赛1场 &#8212; CCTV2 <br />20:15 蹦床男子单人决赛 &#8212; CCTV1 <br />20:30 跳水男子单人3米板决赛 &#8212; 奥运、高清 <br />20:45 田径4项决赛 &#8212; CCTV1 <br />21:41 男子400米半决赛 &#8212; 高清 <br />22:00 女排1/4决赛1场 &#8212; CCTV2 <br />22:10 田径女子400米决赛 &#8212; 高清
</p>
<p>【19日 金牌预测 20枚 】</p>
<p>今天共有9个项目的20场决赛。中国选手有望在体操男子单杠、男子双杠、女子平衡木、跳水男子单人3米板、女子单人艇激光雷迪尔级、蹦床男子个人等项目上向金牌或奖牌发起冲击。 </p>
<p>【选手推介】</p>
<p> 体操男子双杠——杨威、李小烹、黄旭 <br />男子蹦床——叶帅 <br />男子跳水3米板——王峰、何冲 <br />女子单人艇激光雷迪尔级——徐莉佳 </p>
</blockquote>
<h3>8月20日 周三 </h3>
<blockquote><p>09:00 男子沙排半决赛2场 &#8212; CCTV2 <br />09:00 游泳女子10公里马拉松游泳决赛 &#8212; 高清 <br />10:00 男子排球1/4决赛1场 &#8212; CCTV1 <br />10:00 乒乓球女单第二轮 &#8212; 奥运频道 <br />11:00 19日马术个人盛装舞步决赛 &#8212; CCTV2 <br />12:00 男子排球1/4决赛1场 &#8212; 奥运、高清 <br />12:30 女垒半决赛种子3-种子4 &#8212; CCTV1 <br />13:00 男子水球1/4决赛1场 &#8212; CCTV2 <br />14:15 男手1/4决赛1场 &#8212; CCTV2 <br />14:30 男子篮球1/4决赛1场 &#8212; 奥运频道 <br />15:00 花样游泳决赛(双人自由自选) &#8212; CCTV1、高清 <br />16:00 皮划艇男子1000米双人划艇半决赛、男子1000米四人皮划艇半决赛、前四项皮划艇 &#8212; CCTV1 <br />16:45 男子篮球1/4决赛1场 &#8212; 奥运频道 <br />17:00 跆拳道女子49公斤以下级半决赛 &#8212; CCTV1 <br />17:00 女垒铜牌（中国）&#8211; CCTV2 <br />17:00 男子摔跤自由式66公斤级决赛 &#8212; 高清 <br />17:30 19日场地自行车男、女争先赛决赛(3组比赛缩编) &#8212; CCTV1 <br />17:30 跆拳道男子58公斤以下级半决赛 &#8212; 高清 <br />17:56 男子摔跤自由式74公斤级决赛 &#8212; 高清 <br />18:00 备播直播：女曲半决赛(中国)、女垒 &#8212; CCTV2 <br />19:00 棒球（中国队） &#8212; CCTV2 <br />19:10 田径女子链球决赛 &#8212; 高清 <br />20:00 男子排球1/4决赛1场 &#8212; CCTV2 <br />20:00 跆拳道女子49公斤以下级决赛 &#8212; CCTV1 <br />20:00 男子篮球1/4决赛1场 &#8212; 奥运频道 <br />20:11 田径决赛 &#8212; CCTV1 <br />20:45 跆拳道男子58公斤以下级决赛 &#8212; 高清 <br />21:30 田径男子110米栏半决赛 &#8212; 高清 <br />21:55 田径女子200米半决赛 &#8212; 高清 <br />22:15 男子篮球1/4决赛1场 &#8212; CCTV2 <br />22:20 田径男子200米决赛 &#8212; 高清
</p>
<p>【20日 金牌预测 11枚 】</p>
<p>今天的奖牌分散在6个项目中，分别为田径3枚，自由式摔跤2枚，女子10公里马拉松游泳1枚，花样游泳1枚，跆拳道2枚和帆船2枚。 </p>
<p>【选手推介】</p>
<p> 男子帆板尼尔级——周元国 <br />女子帆板尼尔级——殷剑 <br />女子跆拳道49公斤以下级——吴静钰 </p>
</blockquote>
<h3>8月21日 周四 （110米栏决赛） </h3>
<blockquote><p>09:00 女子20公里竞走决赛、插播田径 &#8212; CCTV1、高清 <br />09:00 女子沙滩排球铜牌战 &#8212; CCTV2 <br />09:00 20日22:00男排1/4决赛 &#8212; 奥运频道 <br />10:00 乒乓球女单第4轮1场（中国） &#8212; CCTV2 <br />10:00 跳水女子单人10米台半决赛 &#8212; 奥运频道 <br />10:30 小轮车男、女竞速半决赛 &#8212; CCTV1 <br />10:51 男子10公里马拉松游泳决赛 &#8212; 高清 <br />11:00 女子沙排决赛 &#8212; CCTV2 <br />11:00 小轮车男子、女子竞速决赛 &#8212; CCTV1、高清 <br />11:05 男子10公里马拉松游泳决赛 &#8212; 高清 <br />11:20 女子小轮车竞速决赛 &#8212; 高清 <br />11:25 男子10公里马拉松游泳决赛 &#8212; 高清 <br />12:30 女子排球半决赛第1场(中国队) &#8212; CCTV2、高清 <br />12:40 20日体操表演 &#8212; CCTV1 <br />13:00 乒乓球男单第3轮 &#8212; 奥运频道 <br />15:00 跆拳道女子57公斤以下级1/4决赛 &#8212; CCTV1、高清 <br />15:00 男曲9-10名排名赛 &#8212; CCTV2 <br />16:00 皮划艇男子500米双人皮艇、男子500米双人划艇、女子500米双人皮艇半决赛 &#8211;CCTV1 <br />16:00 乒乓球男单第3轮1场 &#8212; 奥运频道 <br />16:00 跆拳道男子68公斤以下级1/4决赛 &#8212; 高清 <br />16:20 女手5-8名排名赛2场 &#8212; CCTV2 <br />17:00 女子水球铜牌战 &#8212; CCTV1 <br />17:20 男子摔跤自由式84公斤级决赛 &#8212; 高清 <br />18:00 乒乓球女单1/4决赛2场 &#8212; 奥运频道 <br />18:15 男子摔跤自由式96公斤级决赛 &#8212; 高清 <br />18:20 男子摔跤自由式96公斤级决赛、男子自由式84公斤级决赛 &#8212; CCTV1 <br />18:20 女子水球决赛 &#8212; CCTV2 <br />19:10 男子摔跤自由式120公斤级决赛 &#8212; 高清 <br />19:21 田径女子标枪决赛、男子三级跳远决赛、男子400米决赛、女子200米决赛、男子110米栏决赛 &#8212; 高清 <br />20:00 田径 &#8212; CCTV1 <br />20:00 女子排球半决赛第2场 &#8212; CCTV2 <br />20:00 跳水女子单人10米台决赛 &#8212; 奥运频道 <br />21:10 乒乓球男单第4轮（中国） &#8212; 奥运频道 <br />22:15 女子篮球半决赛第2场 &#8212; CCTV2
</p>
<p>【21日 金牌预测 23枚 】</p>
<p>今天共有13个项目的23场决赛。中国选手有望在田径、跳水、跆拳道等几个项目上有实力冲击向金牌或奖牌。 </p>
<p>【选手推介】</p>
<p>男子田径110栏——刘翔 <br />女子跳水10米台——陈若琳、王鑫 </p>
</blockquote>
<h3>8月22日 周五 </h3>
<blockquote><p>07:30 男子50公里竞走决赛、田径 &#8212; CCTV2、高清 <br />08:30 21日女垒决赛 &#8212; CCTV2 <br />09:00 男子沙滩排球铜牌战 &#8212; CCTV1 <br />10:00 21日男子现代五项 &#8212; CCTV1 <br />10:00 乒乓球女单半决赛2场 &#8212; 奥运频道 <br />11:00 男子沙排决赛 &#8212; CCTV1、高清 <br />11:30 男子水球半决赛 &#8212; CCTV2 <br />11:50 男子50公里竞走决赛 <br />12:30 21日20:00女篮半决赛 &#8212; CCTV1 <br />12:30 男子排球半决赛第1场 &#8212; CCTV2、高清 <br />13:30 乒乓球男单1/4决赛4场 &#8212; 奥运频道 <br />14:30 女曲5-6名决赛 &#8212; CCTV2 <br />15:00 花样游泳预赛(团体技术自选)、皮划艇女子500米四人皮艇决赛、男子1000米双人皮艇决赛、男子1000米双人划艇决赛、男子1000米四人皮艇决赛、男子1000米单人皮艇决赛、男子1000米单人划艇决赛、拳击半决赛 &#8212; CCTV1、高清 <br />16:00 女子山地自行车越野决赛 &#8212; CCTV2、高清 <br />17:00 21日女手半决赛2场 &#8212; CCTV1 <br />17:00 21日马术个人障碍赛决赛 &#8212; CCTV2 <br />18:00 女曲铜牌战 &#8212; CCTV2 <br />19:00 拳击48公斤级半决赛2场 &#8212; 奥运频道、高清 <br />19:30 乒乓球女单三四名比赛 &#8212; 奥运频道 <br />20:00 田径 &#8212; CCTV1 <br />20:00 男子篮球半决赛第1场 &#8212; CCTV2 <br />20:00 女子现代五项跑步决赛 &#8212; 高清 <br />20:30 乒乓球女单决赛 &#8212; 奥运、高清 <br />21:30 男排半决赛第2场 &#8212; 奥运频道 <br />21:45 田径男子十项全能1500米决赛 &#8212; 高清 <br />22:10 田径男子4*100米接力决赛 &#8212; 高清 <br />22:15 男子篮球半决赛第2场 &#8212; CCTV2
</p>
<p>【22日 金牌预测 20枚 】</p>
<p>今天田径独占7枚金牌，皮华艇/静水紧随其后，贡献6金。余下的项目中除跆拳道将产生2枚金牌外，山地自行车、曲棍球、现代五项、乒乓球和沙滩排球都只诞生1枚金牌。 </p>
<p>【选手推介】</p>
<p> 乒乓球女子单打——张怡宁、郭跃、王楠 <br />500米女子四人皮艇——王凤、何静、于腊梅、杨雅莉 </p>
</blockquote>
<h3>8月23日 周六 </h3>
<blockquote><p>08:30 22日男排半决赛 &#8212; CCTV2 <br />10:00 跳水男子单人10米台半决赛 &#8212; CCTV1、高清 <br />10:00 乒乓球男子单打半决赛2场 &#8212; 奥运频道 <br />12:00 备播直播：男足决赛 &#8212; CCTV2,奥运,高清 <br />12:30 女排铜牌战 &#8212; CCTV2、奥运 <br />15:00 花样游泳决赛(团体自由自选) &#8212; CCTV1、高清 <br />15:00 跆拳道女67以上、男80上级1/4决赛、半决赛 &#8212; 奥运频道 <br />15:45 女手决赛 &#8212; CCTV2 <br />16:00 皮划艇男子500米单人皮艇决赛、男子500米单人划艇决赛、女子500米单 <br />人皮艇决赛、男子500米双人皮艇决赛、男子500米双人划艇决赛、女子 <br />500米双人皮艇决赛 &#8211;CCTV1 <br />16:09 22日棒球半决赛 &#8212; 高清 <br />17:00 22日女曲决赛 &#8212; CCTV1 <br />18:00 艺术体操个人全能决赛 &#8212; CCTV2、高清 <br />19:30 乒乓球男单半决赛 &#8212; 奥运频道 <br />20:00 女子排球决赛（中国队） &#8212; CCTV1、2 <br />20:00 男子10米跳台决赛 &#8212; 高清 <br />20:30 乒乓球男单决赛 &#8212; 奥运频道 <br />21:21 拳击男子重量级91公斤级决赛 &#8212; 高清 <br />21:30 田径 &#8212; 奥运频道 <br />22:00 女子篮球决赛 &#8212; CCTV2
</p>
<p>【23日 金牌预测 31枚 】</p>
<p>今天共有15个项目的31场决赛。中国选手在乒乓球、跳水等几个项目上有实力冲击金牌或奖牌。 </p>
<p>【选手推介】</p>
<p> 乒乓球男子单打——王励勤、王皓、马琳 <br />男子500米双人划艇——杨文军、孟关良 <br />男子500米单人划艇——杨文军 <br />女子500米单人皮艇——钟红燕 <br />女子排球——中国女子排球队 <br />男子跳水10米台——周吕鑫、林跃、火亮 <br />女子跆拳道67公斤以上级——陈中 </p>
</blockquote>
<h3>8月24日 周日 </h3>
<blockquote><p>07:30 男子马拉松决赛 &#8212; CCTV2、高清 <br />11:00 艺术体操集体决赛 &#8212; CCTV2 <br />12:00 男篮铜牌战 &#8212; CCTV2 <br />12:00 男子排球决赛 &#8212; 奥运、高清 <br />13:30 拳击6项决赛 &#8212; CCTV1 <br />13:30 拳击男子轻重量级48公斤级决赛 &#8212; 高清 <br />14:06 拳击男子最轻重量级54公斤级决赛 &#8212; 高清 <br />14:30 男子篮球决赛 &#8212; 奥运、高清 <br />15:45 男子手球决赛 &#8212; CCTV2 <br />16:26 拳击男子超重量级91公斤级以上决赛 &#8212; 高清 <br />20:00 闭幕式 &#8212; CCTV1,奥运,高清
</p>
<p>【24日 金牌预测 6枚 】</p>
<p>当天有6项决赛。中国选手在男子拳击48公斤级、男子拳击69公斤级等几个项目上有实力冲击奖牌。第29届奥运会也会在这一天结束，<strong>但是奥林匹克精神仍将继续</strong>。 </p>
<p>【选手推介】</p>
<p> 男子拳击48公斤级——邹市明 <br />男子拳击69公斤级——哈那提</p>
</blockquote>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/734/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2008-7-11</title>
		<link>http://welog.org/blog/733</link>
		<comments>http://welog.org/blog/733#comments</comments>
		<pubDate>Fri, 11 Jul 2008 16:21:33 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Google AdSense]]></category>
		<category><![CDATA[恢复]]></category>
		<category><![CDATA[申诉]]></category>

		<guid isPermaLink="false">http://welog.org/?p=733</guid>
		<description><![CDATA[今天收到了Google发来的Google AdSense帐号恢复邮件，耗时三个多月，从三月份到现在其间共发了三封申诉信算没有白写。不管出于何种原因或者Google AdSense的政策改善恢复了我的帐号，也能说明Google对于用户的申诉认真对待了，用户还是有解释权且还算能公正对待吧，这比恢复帐号更让人鼓舞不是吗？ 自做GG广告已经两年多了，收到过三次付款。今年三月份因为无效点击被Google停止了帐号，其中还有因为错过西联汇款而被返回的一笔广告收入(恢复帐号很大原因也许就在这错过的汇款)。 当然，发生被停号的确是存在有无效点击的原因，因为三月份有一天的点击记录达到了13%。也就是这次高点击率之后的几天里Google AdSense被停止帐号的，由于Google广告发布政策及众多倒在乱刀下的AdSense用户申诉的经验看，能够恢复帐号的可能性很低。但没有人为去作弊而出现这种无效点击是用户无法控制的，抱着这种想法给Google AdSense小组写了封申诉信，并提供了服务器的LOG信息及可疑的IP记录。 当然可能最重要的一个信息是在停号的上个月因为我没有及时提取西联汇款而被返回的款项；这表示在这之前Goolge已经审核并支付了款项，证明在这段时间里我的帐户没有无效点击或作弊的情况，即使停止我的帐号这笔款也应该支付。现在还不清楚这笔收入能不能收回，既然恢复了我的帐号按西联退回的记录Google没有理由也借口不返还我的这部分收入吧? 附上Google的恢复帐号邮件内容，为和我有同样遭遇的Google AdSense用户一个借鉴作用吧，虽然并不一定有用。 您好！ 感谢您说明自己的情况。我们审核了您的情况并立即恢复了您的帐户。请注意，由于我们的服务器需要收到更新通知才能重新对您的网站投放广告，因此您可能需要最多 48 小时才会看到广告。请您在以后务必密切小心关注您的网站，避免以后出现类似的无效点击现象。 以下提供一些简短的指南供您参考，便于您以后杜绝无效点击： 对于网站发布商来说，点击自己网页上的广告或鼓励他人点击，都违反了我们的计划政策。另外，我们也禁止使用漫游器或脚本等自动点击技术。 如果您希望访问某个广告的目标网址以查看其内容或将其加入过滤列表，可以使用 AdSense 预览工具。该工具可通过以下网址获得： https://www.google.com/support/adsense/bin/topic.py?topic=160 Google AdSense 预览工具是对 Windows Internet Explorer 6.x 右键点击菜单的补充，利用它您可以预览展示在任何网页的广告。预览工具中的点击次数和展示次数不会计入广告客户的帐户。您可以通过点击广告到达其目标网站，而不用担心会在自己帐户中产生无效点击，并且您的测试点击也不会增加广告客户的费用。 如果您希望了解查看 Google 广告网址的详情，请访问我们的支持中心：https://www.google.com/support/adsense/bin/answer.py?answer=9876 。 此外，请务必仔细阅读并遵守我们的条款与计划政策： https://www.google.com/adsense/terms https://www.google.com/adsense/policies 最后，您可以访问我们的支持中心，获得有关如何使您的帐户保持良好信誉的建议和指南，网址为：https://www.google.com/support/adsense/bin/answer.py?answer=23921 。 Google AdSense 小组敬上]]></description>
			<content:encoded><![CDATA[<p>    今天收到了Google发来的Google AdSense帐号恢复邮件，耗时三个多月，从三月份到现在其间共发了三封申诉信算没有白写。不管出于何种原因或者Google AdSense的政策改善恢复了我的帐号，也能说明Google对于用户的申诉认真对待了，用户还是有解释权且还算能公正对待吧，这比恢复帐号更让人鼓舞不是吗？<br />
    自做GG广告已经两年多了，收到过三次付款。今年三月份因为无效点击被Google停止了帐号，其中还有因为错过西联汇款而被返回的一笔广告收入(恢复帐号很大原因也许就在这错过的汇款)。<br />
    当然，发生被停号的确是存在有无效点击的原因，因为三月份有一天的点击记录达到了13%。也就是这次高点击率之后的几天里Google AdSense被停止帐号的，由于Google广告发布政策及众多倒在乱刀下的AdSense用户申诉的经验看，能够恢复帐号的可能性很低。但没有人为去作弊而出现这种无效点击是用户无法控制的，抱着这种想法给Google AdSense小组写了封申诉信，并提供了服务器的LOG信息及可疑的IP记录。<br />
   当然可能最重要的一个信息是在停号的上个月因为我没有及时提取西联汇款而被返回的款项；这表示在这之前Goolge已经审核并支付了款项，证明在这段时间里我的帐户没有无效点击或作弊的情况，即使停止我的帐号这笔款也应该支付。现在还不清楚这笔收入能不能收回，既然恢复了我的帐号按西联退回的记录Google没有理由也借口不返还我的这部分收入吧?<br />
    附上Google的恢复帐号邮件内容，为和我有同样遭遇的Google AdSense用户一个借鉴作用吧，虽然并不一定有用。</p>
<blockquote><p>
您好！<br />
感谢您说明自己的情况。我们审核了您的情况并立即恢复了您的帐户。请注意，由于我们的服务器需要收到更新通知才能重新对您的网站投放广告，因此您可能需要最多 48 小时才会看到广告。请您在以后务必密切小心关注您的网站，避免以后出现类似的无效点击现象。</p>
<p>以下提供一些简短的指南供您参考，便于您以后杜绝无效点击：</p>
<p>对于网站发布商来说，点击自己网页上的广告或鼓励他人点击，都违反了我们的计划政策。另外，我们也禁止使用漫游器或脚本等自动点击技术。</p>
<p>如果您希望访问某个广告的目标网址以查看其内容或将其加入过滤列表，可以使用 AdSense 预览工具。该工具可通过以下网址获得：</p>
<p>https://www.google.com/support/adsense/bin/topic.py?topic=160</p>
<p>Google AdSense 预览工具是对 Windows Internet Explorer 6.x 右键点击菜单的补充，利用它您可以预览展示在任何网页的广告。预览工具中的点击次数和展示次数不会计入广告客户的帐户。您可以通过点击广告到达其目标网站，而不用担心会在自己帐户中产生无效点击，并且您的测试点击也不会增加广告客户的费用。</p>
<p>如果您希望了解查看 Google 广告网址的详情，请访问我们的支持中心：https://www.google.com/support/adsense/bin/answer.py?answer=9876 。</p>
<p>此外，请务必仔细阅读并遵守我们的条款与计划政策：</p>
<p>https://www.google.com/adsense/terms</p>
<p>https://www.google.com/adsense/policies</p>
<p>最后，您可以访问我们的支持中心，获得有关如何使您的帐户保持良好信誉的建议和指南，网址为：https://www.google.com/support/adsense/bin/answer.py?answer=23921 。</p>
<p>Google AdSense 小组敬上
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/733/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>2008-7-1</title>
		<link>http://welog.org/blog/732</link>
		<comments>http://welog.org/blog/732#comments</comments>
		<pubDate>Tue, 01 Jul 2008 15:35:29 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://welog.org/?p=732</guid>
		<description><![CDATA[扯谈的发布会，说的什么已经不太重要了，反正都是那一套，听着麻木了。 1 2和3 4相对比，谁更可信大家心里自有自己的答案。 只是这次形式的发展真被某网友不幸言中了： 一、公安局会介入调查该事件，是当地公安机关还是异地公安机关不好说； 二、调查结果是该女生之死与当地特权阶层无瓜葛，比如属于她考试后到河边怀疑人生不小心溺水身亡； 三、在“6·28”打砸抢事件中触犯法律的不法之徒将被绳之以法。 四、貌似瓮中之鳖好抓，实则不然。]]></description>
			<content:encoded><![CDATA[<p>扯谈的发布会，说的什么已经不太重要了，反正都是那一套，听着麻木了。<br />
<a href="https://www.zuola.com/weblog/?p=1065">1</a> <a href="http://showshare.spaces.live.com/blog/cns%21AA183EA72E3F7BD8%211175.entry">2</a>和<a href="http://www.chinanews.com.cn/shipin/2008-07-01/news4157.html">3</a> <a href="http://news.ifeng.com/mainland/200807/0701_17_626485.shtml"> 4</a>相对比，谁更可信大家心里自有自己的答案。<br />
只是这次形式的发展真被某网友不幸言中了：</p>
<blockquote><p>一、公安局会介入调查该事件，是当地公安机关还是异地公安机关不好说；<br />
二、调查结果是该女生之死与当地特权阶层无瓜葛，比如属于她考试后到河边怀疑人生不小心溺水身亡；<br />
三、在“6·28”打砸抢事件中触犯法律的不法之徒将被绳之以法。<br />
四、貌似瓮中之鳖好抓，实则不然。</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/732/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>2008-5-18</title>
		<link>http://welog.org/blog/728</link>
		<comments>http://welog.org/blog/728#comments</comments>
		<pubDate>Sun, 18 May 2008 14:41:56 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[默哀]]></category>

		<guid isPermaLink="false">http://welog.org/?p=728</guid>
		<description><![CDATA[国务院公告：为表达全国各族人民对四川汶川大地震遇难同胞的深切哀悼，国务院决定，2008年5月19日至21日为全国哀悼日。在此期间，全国和各驻外机构下半旗志哀，停止公共娱乐活动，外交部和我国驻外使领馆设立吊唁簿。5月19日14时28分起，全国人民默哀3分钟，届时汽车、火车、舰船鸣笛，防空警报鸣响。 北京奥组委决定：5月12日，四川汶川等地发生大地震造成重大人员伤亡，为表达对在地震中遇难同胞的深切哀悼。北京奥组委决定，5月19日至21日，奥运圣火在境内的传递活动暂停三天。具体的传递安排稍后将公布。 这应该我在2008年听到的最令人宽慰的决定，遇难的同胞们，你们可以安息了!!!!!!!!!]]></description>
			<content:encoded><![CDATA[<p><strong>国务院公告：</strong>为表达全国各族人民对四川汶川大地震遇难同胞的深切哀悼，国务院决定，2008年5月19日至21日为全国哀悼日。在此期间，全国和各驻外机构下半旗志哀，停止公共娱乐活动，外交部和我国驻外使领馆设立吊唁簿。5月19日14时28分起，全国人民默哀3分钟，届时汽车、火车、舰船鸣笛，防空警报鸣响。 </p>
<p><strong>北京奥组委决定：</strong>5月12日，四川汶川等地发生大地震造成重大人员伤亡，为表达对在地震中遇难同胞的深切哀悼。北京奥组委决定，5月19日至21日，奥运圣火在境内的传递活动暂停三天。具体的传递安排稍后将公布。</p>
<p>这应该我在2008年听到的最令人宽慰的决定，遇难的同胞们，你们可以安息了!!!!!!!!!</p>
<p><img src="http://welog.org/wp-content/uploads/2008/05/donate_to_redcross_468x90_r.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/728/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>急需 260 万顶帐篷</title>
		<link>http://welog.org/blog/730</link>
		<comments>http://welog.org/blog/730#comments</comments>
		<pubDate>Sun, 18 May 2008 12:49:19 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[抗震救灾]]></category>

		<guid isPermaLink="false">http://welog.org/?p=730</guid>
		<description><![CDATA[今天早些时候，谷歌接到来自四川震区政府和摄制组的求助信息，由于一直下雨，绵阳北川地区的大量灾民情况非常堪忧，现在急需可以让灾民避雨的 60 万顶帐篷！根据下午四川政府最新发布的信息，全省急需帐篷总共 260 万顶！ 借助网络的力量，让更多的人了解灾区的求助信息，协助灾区的同胞最大限度地得到帮助，是我们AdSense义不容辞的责任。为此，我们恳请广大发布商在看到这一消息时，立即在您的网站上帮助发布这一信息，使得我们灾区同胞能够少度过一个冰冷潮湿的夜晚，多一份温暖。 一个网站的力量有限，联合起来力量无穷。您的帮助和努力对灾区人民是莫大的帮助，希望所有的发布商和我们一起，充分发挥我们手中互联网的力量，为抗震救灾出一份力！ 我们今后还会不断发布来自灾区的求助信息，如果您愿意和我们携手帮助灾区同胞抗震救灾，重建家园，请您注册 AdSense 抗震爱心联盟（已更新，无须注册 Google 帐户） http://spreadsheets.google.com/viewform?key=pF9nwjnOxK2rSsfMdJagJXg，我们会在需要的时候第一时间与您联络。 最后，我们对您的帮助表示由衷的敬佩和感谢！]]></description>
			<content:encoded><![CDATA[<p>今天早些时候，谷歌接到来自四川震区政府和摄制组的求助信息，由于一直下雨，绵阳北川地区的大量灾民情况非常堪忧，现在急需可以让灾民避雨的 60 万顶帐篷！根据下午四川政府最新发布的信息，全省急需帐篷总共 260 万顶！</p>
<p>借助网络的力量，让更多的人了解灾区的求助信息，协助灾区的同胞最大限度地得到帮助，是我们AdSense义不容辞的责任。为此，我们恳请广大发布商在看到这一消息时，立即在您的网站上帮助发布这一信息，使得我们灾区同胞能够少度过一个冰冷潮湿的夜晚，多一份温暖。</p>
<p>一个网站的力量有限，联合起来力量无穷。您的帮助和努力对灾区人民是莫大的帮助，希望所有的发布商和我们一起，充分发挥我们手中互联网的力量，为抗震救灾出一份力！</p>
<p>我们今后还会不断发布来自灾区的求助信息，如果您愿意和我们携手帮助灾区同胞抗震救灾，重建家园，请您注册 AdSense 抗震爱心联盟（已更新，无须注册 Google 帐户） http://spreadsheets.google.com/viewform?key=pF9nwjnOxK2rSsfMdJagJXg，我们会在需要的时候第一时间与您联络。</p>
<p>最后，我们对您的帮助表示由衷的敬佩和感谢！</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/730/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网上关注汶川地震指南</title>
		<link>http://welog.org/blog/726</link>
		<comments>http://welog.org/blog/726#comments</comments>
		<pubDate>Thu, 15 May 2008 01:58:45 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[汶川]]></category>

		<guid isPermaLink="false">http://welog.org/?p=726</guid>
		<description><![CDATA[天气：中央气象台、天气在线 地图：“地震形势图”（Google），位置地标和地震形势地标(GoogleEarth) 地震信息：地震数据共享中心（可通过twitter获取信息）、中国地震局、全球最近7天地震信息 专题报导：四川在线、新华网、腾讯网、新浪网、搜狐网、网易网、中华网、TOM网、凤凰网 网友讨论：天涯汶川地震讨论区、天涯地震吧、百度地震吧、百度汶川吧、百度四川吧、百度都江堰吧、百度汶川地震祈福吧、百度汶川地震寻人吧 迷你博客：饭否直播(手机版)、jiwai.de 电视直播：CCTV新闻频道、四川卫视 搜救资料：《城市灾难搜救火线手册》(PDF,线上版)、地震中逃生十大法则、如何对地震预防自救、实用避震手册、地震应急手册 民间活动：多背1kg、牛博网、NGO救援联合行动信息汇总 背景资料：阿坝州汶川县情况、汶川县_百度百科资料 收音频率：成 都市FM103.7，AM639，攀枝花FM101.4，AM981德阳市FM88.4绵阳市FM95.1，广元市FM91.0，AM981，内江市 FM82.2，乐山市FM92.1，AM1008。巴中市FM93.2，阿坝藏族羌族自治州AM639，甘孜藏族自治州91.3，AM981，凉山彝族自 治州AM981。 募捐资料：易宝捐款、淘宝网友捐款（支付宝） 、腾讯网友捐款（财富通） 、中国扶贫基金会募捐、日本网友募捐、捐款情况汇总]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000"><span style="color: #000000"><strong>天气：</strong></span><a href="http://www.weather.com.cn/special/earthquake/1/" target="_blank">中央气象台</a><span style="color: #000000">、</span><a href="http://www.t7online.com/Sichuan.htm" target="_blank">天气在线</a></span></p>
<p><strong>地图：</strong><a href="http://ditu.google.com/maps/ms?hl=zh-CN&amp;ie=UTF8&amp;oe=UTF8&amp;msa=0&amp;msid=105498083399349668294.00044d0490f73e7f5c173&amp;mid=1210583203" target="_blank"><strong>“</strong>地震形势图”</a>（Google），<a href="http://earthquake.usgs.gov/eqcenter/recenteqsww/Quakes/us2008ryan.kml" target="_blank">位置地标</a>和<a href="http://earthquake.usgs.gov/eqcenter/catalogs/eqs7day-age.kmz" target="_blank">地震形势地标</a>(GoogleEarth)</p>
<p><strong>地震信息：</strong><a href="http://data.earthquake.cn/" target="_blank">地震数据共享中心</a>（可通过<a href="https://twitter.com/earthquake_cn" target="_blank">twitter</a>获取信息）、<a href="http://www.cea.gov.cn/" target="_blank">中国地震局</a>、<a href="http://earthquake.usgs.gov/eqcenter/recenteqsww/" target="_blank">全球最近7天地震信息</a></p>
<p><strong>专题报导：</strong><a href="http://www.scol.com.cn/nsichuan/ztxw/2008512172745.htm" target="_blank">四川在线</a>、<a href="http://www.xinhuanet.com/politics/kzjz/" target="_blank">新华网</a>、<a href="http://news.qq.com/zt/2008/dizhen/" target="_blank">腾讯网</a>、<a href="http://news.sina.com.cn/z/08earthquake/index.shtml" target="_blank">新浪网</a>、<a href="http://news.sohu.com/s2008/dizhen/" target="_blank">搜狐网</a>、<a href="http://news.163.com/special/00012MS5/sichuan0512.html" target="_blank">网易网</a>、<a href="http://news.china.com/zh_cn/focus/2008dizhen/" target="_blank">中华网</a>、<a href="http://news.tom.com/2008/wenchuan/index.html" target="_blank">TOM网</a>、<a href="http://news.ifeng.com/special/0512earthquake/" target="_blank">凤凰网</a></p>
<p><strong>网友讨论：</strong><a href="http://cache.tianya.cn/publicforum/articleslist/0/help.shtml" target="_blank">天涯汶川地震讨论区</a><strong>、</strong><a href="http://laiba.tianya.cn/laiba/Community?cmm=281" target="_blank">天涯地震吧</a>、<a href="http://tieba.baidu.com/f?kw=%B5%D8%D5%F0" target="_blank">百度地震吧</a>、<a href="http://www.kuangfeng.cn/f?kw=%E3%EB%B4%A8&amp;frs=yqtb" target="_blank"><span style="color: #261cdc">百度汶川吧</span></a>、<a href="http://www.kuangfeng.cn/f?kw=%CB%C4%B4%A8&amp;frs=yqtb" target="_blank"><span style="color: #261cdc">百度四川吧</span></a>、<a href="http://www.kuangfeng.cn/f?kw=%B6%BC%BD%AD%D1%DF&amp;frs=yqtb" target="_blank"><span style="color: #261cdc">百度都江堰吧</span></a>、<a href="http://www.kuangfeng.cn/f?kw=%E3%EB%B4%A8%B5%D8%D5%F0%C6%ED%B8%A3&amp;frs=yqtb" target="_blank"><span style="color: #261cdc">百度汶川地震祈福吧</span></a>、<a href="http://www.kuangfeng.cn/f?kw=%E3%EB%B4%A8%B5%D8%D5%F0%D1%B0%C8%CB&amp;frs=yqtb" target="_blank"><span style="color: #261cdc">百度汶川地震寻人吧</span></a></p>
<p><strong>迷你博客：</strong><a href="http://fanfou.com/hxsazhibo" target="_blank">饭否直播</a>(<a href="http://m.fanfou.com/browse/1" target="_blank">手机版</a>)、<a href="http://jiwai.de/t/%E5%9C%B0%E9%9C%87/" target="_blank">jiwai.de</a></p>
<p><strong>电视直播：</strong><a href="http://www.8000tv.com/html/60/107/152.htm" target="_blank">CCTV新闻频道</a>、<a href="http://www.8000tv.com/html/60/142/670.htm" target="_blank">四川卫视</a></p>
<p><a href="http://www.kuangfeng.cn/f?kw=%E3%EB%B4%A8%B5%D8%D5%F0%D1%B0%C8%CB&amp;frs=yqtb" target="_blank"> </a></p>
<p><strong>搜救资料：</strong><a href="http://innobook.googlecode.com/files/Earthquake_Search_Strategy_and_Tactics_Yeeyan.pdf" target="_blank"><strong>《城市灾难搜救火线手册》</strong></a>(PDF,<a href="http://www.yeeyan.com/articles/view/zww/7740" target="_blank">线上版</a>)、<a href="http://news.163.com/08/0512/15/4BOLQHFQ0001124J.html" target="_blank">地震中逃生十大法则</a>、<a href="http://news.21cn.com/cartoon/life/2005/11/29/2379548.shtml" target="_blank">如何对地震预防自救</a>、<a href="http://news.sohu.com/s2006/sybzsc/" target="_blank">实用避震手册</a>、<a href="http://news.qq.com/zt/2008/dizhen/fangzaisc.htm" target="_blank">地震应急手册</a></p>
<p><strong>民间活动：</strong><a href="http://dizhen.1kg.org/events/" target="_blank">多背1kg</a>、<a href="http://www.bullog.cn/blogs/liuyanban/archives/136782.aspx" target="_blank">牛博网</a>、<a href="http://www.ngocn.org/bbs/viewthread.php?tid=9706&amp;extra=page%3D1" target="_blank">NGO救援联合行动信息汇总</a></p>
<p class="desc"><strong><span><span style="color: #000000">背景资料：</span></span></strong><a href="http://news.qq.com/a/20080512/003383.htm" target="_blank">阿坝州汶川县情况</a>、<a href="http://bk.baidu.com/view/960916.htm" target="_blank">汶川县_百度百科资料</a></p>
<p class="desc"><strong>收音频率：</strong>成 都市FM103.7，AM639，攀枝花FM101.4，AM981德阳市FM88.4绵阳市FM95.1，广元市FM91.0，AM981，内江市 FM82.2，乐山市FM92.1，AM1008。巴中市FM93.2，阿坝藏族羌族自治州AM639，甘孜藏族自治州91.3，AM981，凉山彝族自 治州AM981。</p>
<p><strong>募捐资料：</strong><a href="http://www.yeepay.com/mlove/" target="_blank">易宝捐款</a>、<a href="http://www.taobao.com/cn/theme/site/scdz_080512.php" target="_blank">淘宝网友捐款（支付宝）</a> 、<a href="http://gongyi.qq.com/juanzeng/llj_dizhen.htm" target="_blank">腾讯网友捐款（财富通）</a> 、<a href="http://news.sina.com.cn/c/2008-05-12/230015524111.shtml" target="_blank">中国扶贫基金会募捐</a>、<a href="http://volunteer.yahoo.co.jp/donation/detail/1301007/index.html" target="_blank">日本网友募捐</a>、<a href="http://finance.sina.com.cn/blank/zzqyxd.shtml" target="_blank">捐款情况汇总</a></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/726/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>全国各地部分红十字会及采血地点联系方式</title>
		<link>http://welog.org/blog/725</link>
		<comments>http://welog.org/blog/725#comments</comments>
		<pubDate>Wed, 14 May 2008 03:39:16 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://welog.org/?p=725</guid>
		<description><![CDATA[北京 北京市北三环中路 37 号血液中心内 100088 金辉 康青、李涛 010-62381118 (fax ：82025954) 北京市流动采血车地点分布：城乡贸易中心、翠微大厦、万通商场、西单文化广场、百盛商场、三友商场、王府井、北京站、蓝岛大厦、国展家乐福、地坛、海龙商厦、颐和园、电力医院、马连道家乐福。 天津 天津市和平区陕西路 16 号 300020 张红梅 梁潇 022-27306904 (fax ：27300121) 天津市流动采血车地点分布：东站前广场、劝业场门前(大铜钱)胜利广场(华纳影城对面)、东北角金摇篮商厦。 江苏 南京市中央路 42 号 210008 孙仁静 辛晋宁 025-57714527 (fax ：57714527) 南京市流动采血车地点分布：南京市红十字会血液中心献血点(每日)、夫子庙献血点(每日)、南京市新街口商店(每日)、中央商场献血点(不定期)、南京长途汽车客运站献血点(不定期)、南京市新华书店献血点(不定期)。 无锡市 地址：无锡市后西溪21号 0510-2707192 徐州市 地址：徐州市立达路 0516-5583129 常州市 地址：常州市红梅南京37号 0519-815535、8155025 苏州市 地址：苏州市体育场路9号 0512-65234329 南通市 地址：南通市青年中路65号 0513-5512483 连云港 地址：连云港市苍梧路20号 0518-5820173 淮安市 地址：淮安市工农路20号 0517-3942391 盐城市 [...]]]></description>
			<content:encoded><![CDATA[<p>北京<br />
北京市北三环中路 37 号血液中心内<br />
100088<br />
金辉<br />
康青、李涛<br />
010-62381118<br />
(fax ：82025954)</p>
<p>北京市流动采血车地点分布：城乡贸易中心、翠微大厦、万通商场、西单文化广场、百盛商场、三友商场、王府井、北京站、蓝岛大厦、国展家乐福、地坛、海龙商厦、颐和园、电力医院、马连道家乐福。<br />
天津<br />
天津市和平区陕西路 16 号<br />
300020<br />
张红梅<br />
梁潇<br />
022-27306904<br />
(fax ：27300121)</p>
<p>天津市流动采血车地点分布：东站前广场、劝业场门前(大铜钱)胜利广场(华纳影城对面)、东北角金摇篮商厦。</p>
<p>江苏 南京市中央路 42 号 210008 孙仁静 辛晋宁 025-57714527<br />
(fax ：57714527)</p>
<p>南京市流动采血车地点分布：南京市红十字会血液中心献血点(每日)、夫子庙献血点(每日)、南京市新街口商店(每日)、中央商场献血点(不定期)、南京长途汽车客运站献血点(不定期)、南京市新华书店献血点(不定期)。</p>
<p>无锡市 地址：无锡市后西溪21号 0510-2707192</p>
<p>徐州市 地址：徐州市立达路 0516-5583129</p>
<p>常州市 地址：常州市红梅南京37号<br />
0519-815535、8155025</p>
<p>苏州市<br />
地址：苏州市体育场路9号 0512-65234329</p>
<p>南通市 地址：南通市青年中路65号 0513-5512483</p>
<p>连云港 地址：连云港市苍梧路20号 0518-5820173</p>
<p>淮安市 地址：淮安市工农路20号 0517-3942391</p>
<p>盐城市 地址：盐城市通榆中路41号 0515-8335631</p>
<p>扬州市 地址：扬州市文昌中路136号 0514-7363301</p>
<p>镇江市 地址：镇江市将军巷11号 0511-5017507</p>
<p>泰州市 地址：泰州市海陵南路366号 0523-6850925</p>
<p>宿迁市 地址：宿迁市人民大道3号 0527-4389320</p>
<p>上海 上海市北京西路 1400 弄 19 号 200040 孙红英 张瑾 021-62478117<br />
(fax:62896105)</p>
<p>上海市流动采血车地点分布：豫园商城、人民广场、南京路步行街、淮海路华亭伊势丹广场、徐家汇六百广场、天山电影院、静安公园、第一百货沪西店、闸北公园、新凯福广场、五角场华联商厦、华灵路样样红酒店、华联商厦、浦东时代广场。<br />
上海市固定采血点地点分布：<br />
中心采血点 地址：上海市长宁区虹桥路1191号 021-62758027转2020<br />
黄浦采血点 地址：上海市黄浦区成都北路408号 021-63273975<br />
杨浦采血点 地址：上海市杨浦区通北路540号 021-65452945<br />
浦东采血点 地址：上海儿童医学中心内(东方路1678号) 021-58818448<br />
七宝采血点 地址：七莘路3155号 021-64196727</p>
<p>重庆 重庆市学田湾正街 69 号 400015 赵幼渝 陈榜霞 023-63624507<br />
(fax ：63859905)<br />
重庆市部分红十字会地点分布：<br />
渝中区红十字会 地址：渝中区管家巷9号 023-63765149<br />
江北区红十字会 地址：江北区建东一村35号 023-67721904<br />
沙坪坝区红十字会 地址：沙区天星桥凤天大道8号 023-65368147<br />
九龙坡区红十字会 地址：九龙坡区民康医院4楼 023-68825671</p>
<p>四川 成都市文庙西街 80 号 610041 丁地禄 李廷辉 028-86116139<br />
(fax ：86157799)<br />
四川省部分红十字会地点分布：<br />
四川省红十字会 地址：成都市文庙西街80号 028-86138841<br />
成都市红十字会 地址：成都市大慈寺路17号商会大厦市红十字会 028-86658913<br />
绵阳市红十字会 地址：绵阳市南河路10号市红十字会 0816-2210512<br />
德阳市红十字会 地址：德阳市庐山路翠湖街市卫生内市红十字会 0838-2515817<br />
达州市红十字会 地址：达州市文华街62号市政府院内市红十字会 0818-2106027<br />
雅安市红十字会 地址：雅安市雨城区小北街25号市红十字会 0835-2241579</p>
<p>广东 广州市先烈南路 17 号 510060 徐青 徐青 020-83809479<br />
(fax ：83809479)<br />
广州市采血点地点分布：广州血液中心(广州市麓苑路31号)(020-83595569)、天河献血站(天河体育中心西南角、流行前线地铁出入口)<br />
深圳市流动采血车地点分布:华强北路(女人世界)、南山区桃园路姐妹购物城<br />
深圳市集体捐血点地点分布:深圳市血液中心(电话0755－83321999)、宝安区血站(电话0755－27789689)、龙岗区血站(电话0755－84819120)<br />
深圳市固定捐血点地点分布:深圳市血液中心、红十字会桂园路捐血站、红十字会(深南东路门诊部)<br />
湛江市流动采血车地点分布：赤坎区南华广场北面、霞山区广百门前(每天9：00&#8211;17：00)<br />
湛江市固定捐血点地点分布：霞山区绿塘路131号(2309102、时间：周一至周五8：00-16：00)、赤坎区幸福路67号(3214005)<br />
茂名市采血点地点分布：<br />
茂名市区中行采血点 地址：茂名市明湖商场斜对面<br />
高州市区广场采血点 地址：人民会堂门前（电话0668－3686287）<br />
化州市区流动采血点 地址：化州市区橘城中路上街垌30米街入口处<br />
电白县城流动采血点 地址：电白县水东镇中心台水东湾大酒店门前</p>
<p>湖南 长沙市金星大道卫技人员新村内湖南分库 410008 何一平 张赞 、梁柯 0731-8629595<br />
(fax ： 4471082)<br />
湖南省部分市州红十字会联系方式：<br />
岳阳市红十字会 负责人：陈振富 0730－8219043<br />
长沙市红十字会 负责人：李红卫 0731－4110371<br />
湘潭市红十字会 负责人：侯果君 0732－8264275<br />
株洲市红十字会 负责人：雷新力 0733－8481794<br />
衡阳市红十字会 负责人：罗衡林 0734－8221076<br />
常德市红十字会 负责人：王定会 0736－7705013</p>
<p>浙江 杭州市秋涛北路 324 号 310020 朱春美 朱春美 0571-86461999<br />
(fax ：86466692)<br />
浙江省部分红十字会地点分布：<br />
杭州市红十字会 地址：杭州市孝女路2号 0571-87083005<br />
湖州市红十字会 地址：湖州市广场后路67号 0572-2212751<br />
嘉兴市红十字会 地址：嘉兴市勤俭路635号 0573-2085954<br />
宁波市红十字会 地址：宁波市永丰路37号 0574-87270021<br />
绍兴市红十字会 地址：绍兴市环山路6号 0575-5161044<br />
台州市红十字会 地址：台州市开发区东海大道539号 0576-8536231</p>
<p>河南 郑州市政七街 32 号 450008 张书环 文美英 0371-65942847<br />
(fax ：65935375 )<br />
河南省部分红十字会地点分布：<br />
河南省红十字会 地址：河南郑州市纬五路东45号 0371-5955321<br />
濮阳市红十字中心血站 地址：濮阳市石化路北 0393-4411354<br />
开封市红十字会医院 地址：开封市河道街85号 0378—5958812转2206<br />
安阳市红十字会 地址：河南省安阳市北关区东风路25号 0372-5918897</p>
<p>江西 江西南昌省政府大院西二路 10 号 2 楼 330046 皮瑛 施小琴 0791-6251783<br />
(fax ： 6256616)<br />
江西省部分红十字会及血站地点分布：<br />
江西省红十字会 地址：南昌市省政府大院西二路药检大楼二楼 0791-6251783、6250075<br />
九江市中心血站 地址：九江市滨湖路7号九江卫生局 0792-8228592<br />
赣州市中心血站 地址：江西省赣州市文明大道24号 0797—8117397<br />
南昌市血站固定献血点 地址：1、中山路国盛广场(欧式长廊前)， 2、万寿宫商城前， 3、胜利路步行街名秀服饰广场前(工商银行旁边)。<br />
上饶市固定献血点 地址：1、上饶市水晶宫献血屋，2、上饶市赣东北献血屋，3、上饶市师院献血屋，4、上饶市人民广场献血车。</p>
<p>河北<br />
石家庄市和平西路 299 号血液中心内<br />
050071<br />
宋振江<br />
王燕京<br />
0311-87819995<br />
(fax ：7046792 )</p>
<p>河北省部分红十字会及血站地点分布：<br />
秦皇岛市红十字中心血站 地址：秦皇岛市海港区北环路15号 0335-3061146<br />
承德市中心血站 地址：承德市双桥区西大街下营房马架沟 0314-2181161<br />
保定市血站　 地址：保定市红旗路38号 0312-5020860<br />
张家口市中心血站　 地址：张家口市桥西区长青路55号　 0313-2027024<br />
唐山市中心血站　 地址：唐山市文化路康庄道1号　 0315-2828377<br />
廊坊市中心血站　 地址：廊坊市曙光道5号　 0316-2115067</p>
<p>山西<br />
太原市东华门 23 号<br />
030013<br />
左彤<br />
孙建伟<br />
0351-3580435<br />
(fax ： 3580815)</p>
<p>山西省部分红十字会及血站地点分布：<br />
太原市流动采血车 地址：影都献血屋(影都电影院门前)，南宫献血屋(迎泽大街南宫门前)，美特好献血屋(建设路美特好超市)，千峰献血车(千峰宾馆门前)，华都献血车(华都商厦门前)<br />
晋城市流动采血车 地址：晋城市工行门前(13111268811)，高平望云广场，阳城县府前广场<br />
大同红十字中心血站 地址：大同市新建南路45号(0352－5392000)</p>
<p>内蒙古<br />
内蒙古呼和浩特市昭乌达路桥靠西街 15 号<br />
010010<br />
于爱和<br />
李文荣<br />
0471-4939691<br />
(fax ： 4967401)</p>
<p>内蒙古部分血站地点分布：<br />
包头市中心血站 地址：包头市昆区乌兰道33号 0472－2120293 2126513<br />
赤峰市中心血站 地址：赤峰市红山区新华路南段 0476-8344268<br />
呼伦贝尔盟红十字中心血站 地址：内蒙古呼伦贝尔盟海拉尔市胜利大街31号 0470 0470-8224827<br />
兴安盟红十字会中心血站 地址：内蒙古兴安盟乌兰浩特市五一路 0482 0482-8218027<br />
哲里木盟中心血站 地址：内蒙古哲里木盟通辽市新兴大街98号 0475 0475-8239682<br />
乌兰察布盟中心血站 地址：内蒙古乌兰察布盟集宁市解放路107号 0474 0474-8222610</p>
<p>辽宁<br />
沈阳市和平区砂阳路 278 号<br />
110005<br />
冷福林<br />
冷福林<br />
024-23395980<br />
(fax ：23448155)</p>
<p>辽宁省部分红十字会及血站地点分布：<br />
沈阳市流动采血车 和平区：太原南街招商银行门前；沈河区：中街商业城门前；沈阳市皇姑区：长江街百胜购物中心门前；大东区：采血车停在沃尔玛门前；铁西区：铁西采血屋在铁西区新华街十马路。<br />
大连市流动采血车 开发区昌临商厦；大商丰源酒店；黑石礁新玛特；家乐福<br />
鞍山市红十字中心血站 地址：鞍山市铁东区烈士山街12号 0412-2233225<br />
抚顺市中心血站 地址：抚顺市新抚区梅河路67号 0413-7676348<br />
中国红十字会本溪血液中心 地址：本溪市明山区高光街50号 0414-3868992<br />
丹东市中心血站 地址：丹东市振兴区春五路27号 0415-6161944</p>
<p>吉林<br />
长春市人民大街 54 号<br />
130051<br />
于立敏<br />
李磊<br />
0431-8906590<br />
(fax ： 8919277)</p>
<p>吉林省部分红十字会及血站地点分布： 吉林市中心血站 地址：吉林市昆明街49-1号 0341-2033369<br />
四平市中心血站 地址：四平市新华大街 0434-3222449<br />
通化市中心血站 地址：通化市华昌胡同3号 0433-3215875<br />
白城市红十字中心血站 地址：白城市金辉南街47号 0436-3231808<br />
辽源市红十字中心血站 地址：辽源市新兴大街150号 0437-3224371<br />
松原市红十字会血站 地址：松原市文化路 0438-3130072</p>
<p>黑龙江<br />
哈尔滨市南岗区十字街 33 号<br />
150008<br />
栾淑琴<br />
王晓琳<br />
0451-82766523<br />
(fax ：82713508)</p>
<p>黑龙江部分血站地点分布：<br />
哈尔滨市红十字中心血站 地址：黑龙江哈尔滨市太平区卫星路28号 0451-7695669转3421<br />
哈尔滨市区采血点 地址：中央大街、南岗博物馆、学府路服装城、动力区政府广场、香坊通乡商场。<br />
齐齐哈尔市红十字中心血站 地址：黑龙江齐齐哈尔市建华区兴隆街55号 0452-2425674<br />
牡丹江市中心血站 地址：黑龙江牡丹江市东安区牡丹江市景福街1号 0453-6233619<br />
佳木斯市红十字中心血站 地址：黑龙江佳木斯市向阳区长安路622号 0454-8224732<br />
鹤岗市红十字中心血站 地址：黑龙江鹤岗市工农区西解放路23号 0454-3236703<br />
鸡西市中心血站 地址：黑龙江鸡西市鸡冠区富强路2号 0453-2377104</p>
<p>安徽<br />
合肥长江中路 221 号<br />
230001<br />
张林瑞<br />
杨皖莉<br />
0551-2611661<br />
(fax ：2601935)</p>
<p>安徽省部分红十字会及血站地点分布：<br />
蚌埠市中心血站 地址：蚌埠市南山路103号 (0552)2048407<br />
芜湖市中心血站 地址：芜湖市渡春路2号 (0553)3838481<br />
淮南市中心血站 地址：淮南市田家庵区人民北路 (0554)3622840<br />
马鞍山市中心血站 地址：马鞍山市湖北路 (0555)473221<br />
安庆市红十字中心血站 地址：安庆市市府路3号 (0556)5544714<br />
滁州市中心血站 地址：滁州市南谯路2号 (0550)3023916</p>
<p>福建<br />
福州市湖东路 151 号 2 层<br />
350003<br />
洪月榕<br />
洪月榕<br />
0591-7841850<br />
(fax ：7835854)</p>
<p>福建省部分血站地点分布：<br />
福州市中心血站 地址：福建福州市台江区台江区金屏当59号 0591 0591-3332781<br />
厦门市中心血站 地址：福建厦门市开元区湖滨南路西路121号 0592 0592-2211221<br />
泉州市中心血站 地址：福建泉州市鲤城区商业城 0595-2204671<br />
龙岩地区中心血站 地址：福建龙岩地区龙岩市九一北路105号 0597-2205035 0597-2202794</p>
<p>山东<br />
济南市历下区朝山街 21 号<br />
250011<br />
王书华<br />
潘利昕、卢朝霞<br />
0531-2957999<br />
(fax ： 2957315)</p>
<p>山东省部分红十字会及血站地点分布：<br />
青岛市红十字会中心血站 地址：青岛市隆德路九号 (0532)5825647<br />
威海市中心血站 地址：威海市宝泉路5号 (0896)5226282<br />
烟台市中心血站 地址：烟台市芝罘区崇实街15号 (0535)6211556<br />
济南市中心血站 地址：济南市经六路纬三路127号 (0531)7934847<br />
潍坊市中心血站 地址：潍坊市奎文区院校街1号 (0536)8236143<br />
淄博市中心血站 地址：淄博市人民西路55号 (0533)3183360</p>
<p>湖北<br />
武汉市武昌水果湖洪山侧路 63 号<br />
430071<br />
高民主<br />
李政权、 杨钢<br />
027-87327540<br />
(fax ：87325268)</p>
<p>湖北省部分血站地点分布：<br />
武汉市中心血站 湖北武汉市乔口区宝丰街宝丰一路8号 0027-83645209<br />
黄石市中心血站 湖北黄石市下陆区杭州西路 0714 0714-6351444<br />
十堰市中心血站 湖北十堰市茅箭区朝阳路15号 0719-6666365<br />
宜昌市红十字中心血站 湖北宜昌市西陵区绿萝路4号 0717-6448471<br />
荆门市红十字中心血站 湖北荆门市金虾路65号</p>
<p>广西<br />
广西南宁市新竹路 20 号 6 楼<br />
530022<br />
龙军胜<br />
杨梅梅<br />
0771-5891561<br />
(fax ： 5860326)</p>
<p>广西省部分血站地点分布：<br />
桂林市中心血站 桂林市铁西小区 (0773)3833412<br />
玉林地区中心血站 玉林地区万花路 (0775)2826029<br />
贵港市血站 贵城镇中山南路 (0775)4215618<br />
梧州市中心血站 梧州市步埠路109号 (0774)388308 20356191<br />
全州市血站 全州镇凤坡路 (0773)4815147<br />
北海市中心血站 北海市北部湾西路卫生局办公楼 0779-3058841</p>
<p>海南<br />
海口市流芳路 8 号</p>
<p>文键夫<br />
文键夫<br />
0898-65331817<br />
(fax ：65304627)</p>
<p>海南省红十字会地点分布：<br />
海南省红十字会 海南海口市振东区五公祠后路8号 0898-5331824 0898-5333169</p>
<p>贵州<br />
贵阳市省政府大院 8 号楼<br />
550004<br />
张林<br />
杨梅<br />
0851-6892009<br />
(fax ： 6857817)</p>
<p>贵州省部分血站地点分布：<br />
仁怀市单柔血浆站 仁怀市兴农巷 0852-2225933<br />
毕节地区中心血站 毕节市郭家湾 0857-231512<br />
六盘水市中心血站 六盘水市中心血站 0858-8692312<br />
余庆县血站 贵州遵义地区余庆县北街 0852-6620162<br />
铜仁地区中心血站 贵州铜仁地区铜仁市北关路 0856-6229244<br />
余庆县血站 贵州遵义地区余庆县北街 0852-6620162</p>
<p>陕西<br />
西安市未央路 123 号<br />
710016<br />
刘耀堂<br />
陈志超、崔岚<br />
029&#8211;86527782<br />
(fax ：86527782)</p>
<p>山西省部分血站地点分布：<br />
西安市中心血站 陕西西安市雁塔区朱雀大街189号 029 5251585<br />
宝鸡市中心血站 宝鸡市清姜路45号 0917 3319810<br />
榆林地区中心血站 榆林市榆阳西路 0912 3284923<br />
安康地区中心血站 安康市金州路85号 0915 3212546</p>
<p>临潼县血站 陕西西安市临潼县秦陵北路 029-3812010<br />
商州市血站 陕西商洛地区商州市北新街90号 0914-2313972</p>
<p>甘肃<br />
甘肃省兰州市畅家巷 77 号<br />
730046<br />
阎曦晓<br />
贾伍亮<br />
0931-8735130<br />
(fax ：8735130)</p>
<p>甘肃省部分血站地点分布：<br />
白银市红十字血站 甘肃白银市白银区纺织西路5号 0943-6223424<br />
定西地区红十字中心血站 甘肃定西地区定西县镇龙路 0932-6213146<br />
平凉地区中心血站 甘肃平凉地区平凉市南环路1号 0933-8215577<br />
金昌市血站 甘肃金昌市金川县新华西路 0935-8216718<br />
张掖地区中心血站 甘肃张掖地区张掖市南环路59号 0936-8214450<br />
酒泉地区中心血站 甘肃酒泉市东大街86号 0937-2615154</p>
<p>新疆<br />
乌鲁木齐市延安路 123 号<br />
830001<br />
刘芳<br />
茹克亚<br />
0991-2572811<br />
(fax ：2565243)</p>
<p>新疆部分红十字会及血站分布：<br />
乌鲁木齐市红十字中心血站 乌鲁木齐市沙依巴克区西北路228号 0991-4812719<br />
哈密地区红十字会中心血站 哈密地区哈密市建国北路92号 0902-2231196<br />
昌吉州红十字会中心血站 昌吉回族自治州昌吉市南公园西路2号 0994-2342804<br />
巴州红十字中心血站 巴音郭楞蒙古自治州库尔勒市新城区 0996-2155070<br />
阿克苏地区红十字会中心血站 阿克苏地区阿克苏市团结路64-3号 0997-2122021<br />
喀什地区红十字中心血站 喀什地区喀什市色满路311号 0998-2826320</p>
<p>青海<br />
青海省西宁市西大街 12 号<br />
810000<br />
李玉宁<br />
高金龙、王锦国<br />
0971-8525040<br />
(fax ：8252292)</p>
<p>青海省部分红十字会地点分布：<br />
平安县红十字会 平安县海东路183号 (0972)613128<br />
青海省红十字会 西宁市西大街66号 0971－8222177</p>
<p>云南 昆明市高新区科泰路 36 号 650021 周翔 太昶 、段蓉 0871-8351111<br />
( fax ：8327825)<br />
云南省部分红十字会及血站地点分布：<br />
云南省红十字会 昆明市关上中路85号政通大厦7楼 0871-7196666、7195099<br />
昆明市中心血站 云南昆明市盘龙区双龙新村243号 0871-3167865</p>
<p>宁夏<br />
银川市解放西街 101 号<br />
750001<br />
魏华<br />
郭秋沙<br />
0951-5046999<br />
(fax ：5065992)</p>
<p>宁夏部分红十字会地点分布：<br />
宁夏红十字会中心血站 宁夏银川市城区民族北街150号 0951-6014924<br />
宁夏石嘴山市红十字会中心血站 宁夏石嘴山市大武口区永乐北路16号 0952-2016433</p>
<p>中国台湾部分地区捐血中心地点分布：<br />
台北捐血中心 台北市北投区立德路123号(捷运忠义站、和信医院旁) (02)2897-1600<br />
新竹捐血中心 新竹县竹北市光明十一路215巷8号 (03)551-7113<br />
台中捐血中心 台中市台中港路三段124-30号(东大企研所斜对面) (04)246-12345<br />
台南捐血中心 台南市永福路一段85号 06-2131212<br />
高雄捐血中心 高雄市楠梓区高楠公路1837号 07-3641832<br />
花莲捐血中心 花莲县花莲市节约街13号 03-8330770</p>
<p>香港部分血站地点分布：<br />
沙田捐血站 沙田正街1号A，香港红十字会白普理沙田中心一楼A (852)2603 0100<br />
京士柏总部捐血站 油麻地京士柏道15号，近卫理道。 (852)2710 1202<br />
铜锣湾捐血站<br />
铜锣湾轩尼诗道505号电业城三楼,铜锣湾地铁站B出口 (852)2834 2084<br />
荃湾捐血站 大河道8号，近荃湾地铁站A出口 (852)2414 2378<br />
旺角捐血站 旺角西洋菜街南2号A银城广场三楼。旺角地铁站 E2 出口 (852)2770 5930<br />
中环捐血站 中环德辅道中77号恒生大厦地下 (852)2526 1420</p>
<p>澳门捐血中心：<br />
澳门卫生司捐血中心 澳门士多纽拜斯大马路49号地下AB (853)573976</p>
<p>Via:http://www.hecaitou.net/?p=2984</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/725/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>伸出你的援助之手!</title>
		<link>http://welog.org/blog/724</link>
		<comments>http://welog.org/blog/724#comments</comments>
		<pubDate>Tue, 13 May 2008 16:16:13 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[地震]]></category>
		<category><![CDATA[灾难]]></category>
		<category><![CDATA[生命]]></category>

		<guid isPermaLink="false">http://welog.org/?p=724</guid>
		<description><![CDATA[这是网友收集的一些捐款的方式和渠道,希望大家踊跃奉献爱心 同时提醒大家都通过正规的渠道捐款,不要向不明的短信及帐号捐款! 淘宝网-早一点到达,多一分希望 联合 李连杰壹基金携手爱心网站发起的共同捐赠 网站地址:http://www.taobao.com/cn/theme/site/scdz_080512.php ——————————————- 腾讯公益慈善基金会联合中国红十字总会李连杰壹基金计划为5.12四川地震紧急募捐 地址:http://gongyi.qq.com/juanzeng/llj_dizhen.htm ——————————————- 手机捐款 通过短信捐款:中国移动、中国联通手机用户以及中国电信、中国网通小灵通用户均可编辑短信1或2,发送至1069999301,即向“红十字救援行动”捐款1元钱或2元钱. 　　通过短信咨询:中国移 动、中国联通手机用户以及中国电信、中国网通小灵通用户均可编辑短信“中国红十字会”,发送至12114,即可了解中国红十字会有关情况. 中国红十字基金会捐款方式 开户单位:中国红十字会总会 人民币开户行:中国工商银行北京分行东四南支行 人民币账号:0200001009014413252 外币开户行:中信银行酒仙桥支行 外币账号:7112111482600000209 热线电话:(8610)65139999 邮局汇款: 地址:北京市东城区北新桥三条8号 邮编:100007 网上捐款 陆中国红十字会总会网站:www.redcross.org.cn,点击捐款热线栏目进行在线捐款. (通过银行、邮局和网上捐款在捐款时请注明捐款人姓名、通信地址、捐款意向如:四川地震捐款等信息,以便邮寄捐赠收据和感谢信) 中国红十字基金会同时也接受社会各界捐赠 地址: 北京市东城区东单北大街干面胡同53号 邮编:100010 ——————————————- 银行汇款: 户名: 中国红十字基金会 开户银行: 中国银行北京分行 账号: 800100921908091001 ——————————————- 开户银行:中国工商银行北京东四南支行 账号:0200001019014483874 ——————————————- 开户银行:中国建设银行北京朝内大街支行 账号:11001070300059000427 ——————————————- 外币开户银行:中国银行 账号: 800100086608091014 无需留言，请行动！言语也好，金钱等各种形式也好，有钱出钱，有力出力，给灾区的同胞送去一点慰藉。 人类在自然灾害面前显得非常渺小，生命也显得非常脆弱。只是为什么我们学校和医院容易倒塌?我们的房子是什么结构？什么时候学校、医院的建筑才能比政府、银行的建筑更加坚固？为什么这么大范围的地震一点都没有预测到？用于地震研究的经费到底都拿去做什么了？ 大家都行动起来，不管是用什么方式，我相信再大的坎也能迈过去的。多灾多难的中国人民，多灾多难的2008，希望经快好转,希望被困的人们能够尽快被救出,也希望那些遭受如此灾难的人可以振作起来,我们的心永远与你们连在一起&#8230;&#8230;.]]></description>
			<content:encoded><![CDATA[<p>这是网友收集的一些捐款的方式和渠道,希望大家踊跃奉献爱心<br />
同时提醒大家都通过正规的渠道捐款,不要向不明的短信及帐号捐款!</p>
<p>淘宝网-早一点到达,多一分希望 联合 李连杰壹基金携手爱心网站发起的共同捐赠<br />
网站地址:http://www.taobao.com/cn/theme/site/scdz_080512.php<br />
——————————————-<br />
腾讯公益慈善基金会联合中国红十字总会李连杰壹基金计划为5.12四川地震紧急募捐<br />
地址:http://gongyi.qq.com/juanzeng/llj_dizhen.htm<br />
——————————————-<br />
手机捐款</p>
<p>    通过短信捐款:中国移动、中国联通手机用户以及中国电信、中国网通小灵通用户均可编辑短信1或2,发送至1069999301,即向“红十字救援行动”捐款1元钱或2元钱.<br />
    　　通过短信咨询:中国移 动、中国联通手机用户以及中国电信、中国网通小灵通用户均可编辑短信“中国红十字会”,发送至12114,即可了解中国红十字会有关情况. </p>
<p>中国红十字基金会捐款方式</p>
<p>    开户单位:中国红十字会总会<br />
    人民币开户行:中国工商银行北京分行东四南支行<br />
    人民币账号:0200001009014413252<br />
    外币开户行:中信银行酒仙桥支行<br />
    外币账号:7112111482600000209<br />
    热线电话:(8610)65139999<br />
    邮局汇款:<br />
    地址:北京市东城区北新桥三条8号<br />
    邮编:100007</p>
<p>网上捐款</p>
<p>    陆中国红十字会总会网站:www.redcross.org.cn,点击捐款热线栏目进行在线捐款.<br />
    (通过银行、邮局和网上捐款在捐款时请注明捐款人姓名、通信地址、捐款意向如:四川地震捐款等信息,以便邮寄捐赠收据和感谢信)</p>
<p>中国红十字基金会同时也接受社会各界捐赠</p>
<p>    地址: 北京市东城区东单北大街干面胡同53号<br />
    邮编:100010<br />
    ——————————————-<br />
    银行汇款:<br />
    户名: 中国红十字基金会<br />
    开户银行: 中国银行北京分行<br />
    账号: 800100921908091001<br />
    ——————————————-<br />
    开户银行:中国工商银行北京东四南支行<br />
    账号:0200001019014483874<br />
    ——————————————-<br />
    开户银行:中国建设银行北京朝内大街支行<br />
    账号:11001070300059000427<br />
    ——————————————-<br />
    外币开户银行:中国银行<br />
    账号: 800100086608091014</p>
<p><strong>无需留言，请行动！言语也好，金钱等各种形式也好，有钱出钱，有力出力，给灾区的同胞送去一点慰藉。</strong></p>
<p>人类在自然灾害面前显得非常渺小，生命也显得非常脆弱。只是为什么我们学校和医院容易倒塌?我们的房子是什么结构？什么时候学校、医院的建筑才能比政府、银行的建筑更加坚固？为什么这么大范围的地震一点都没有预测到？用于地震研究的经费到底都拿去做什么了？<br />
大家都行动起来，不管是用什么方式，我相信再大的坎也能迈过去的。多灾多难的中国人民，多灾多难的2008，希望经快好转,希望被困的人们能够尽快被救出,也希望那些遭受如此灾难的人可以振作起来,我们的心永远与你们连在一起&#8230;&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/724/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>留法学生李洹在巴黎游行集会上演讲(全文)</title>
		<link>http://welog.org/blog/722</link>
		<comments>http://welog.org/blog/722#comments</comments>
		<pubDate>Mon, 21 Apr 2008 05:25:24 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[奥运]]></category>
		<category><![CDATA[李洹]]></category>

		<guid isPermaLink="false">http://welog.org/?p=722</guid>
		<description><![CDATA[女士们，先生们，亲爱的中法朋友们，你们好！ 我想首先感谢巴黎人民和巴黎市警察局给了我们今天这次机会让我们聚集于此。这是罕见的一次，也是欧洲和法国历史上最大的华人集会。 我想代表从别的城市，乘坐大巴、火车和汽车，从几百公里以外自费赶来的朋友们说几句话。很多朋友没有能与我们相聚于此，但是我想替他们表达他们与我们一样的对中国、对法国、对法国人民，以及对中法友谊的关注。 在这次对中国的妖魔化的扭曲报道事件中，我们，全世界的中国留学生，我们感觉很痛，我们的感情受到了伤害，但是我们不怪法国人民，因为造成这样结果的责任人不是你们，而是一些不负责任的媒体和职业煽动家。 像所有行业一样，记者和媒体有自己要遵守的职业道德。媒体要求公正，客观，对所报道内容的核实，以及评论的适中。无论如何，也不能诽谤和诬蔑，没有证据地责难，扭曲事实。 在对最近发生的事情报道中，一些记者超出了他们原本的报道角色，完全变成了自认为拥有绝对真理的批判家，甚至把事件可笑地简单化。一个弱小而善良的受害者和一个巨大而残忍的暴徒。他们的角色从一开始就这样人为地被分配好了。 然后，记者们找寻各种方式和手段来证明这两个角色。比如说，选择性的阐述历史，认为中国的革命对中国不可分割的一部分是“侵略”，而故意不说 95%受煎熬的藏人的黑暗的政教合一，把尼泊尔的警察当成是中国警察，用几十年前的照片来说今天的事情，传播根本没有验证的信息，比如根本没有可信度的所谓死亡人数，以及选用一些别有用心的人的口述。 那些外国游客的描述，和他们拍到的视频让我们看到暴徒对无故路人进行令人发指的暴力，没有一个媒体说这是对无辜者的施暴。更有甚者，一些不负责任的媒体制造并强迫人们接受一个根本没有任何可信和公正证据的“血腥镇压”的假设。 媒体很少邀请中国人在节目中阐述他们的观点，即使有也是把他放在被告的位置上，而另一方的则是在数量上几倍于他的“法官”。是，你可以批评中国政府在一段时间里不允许记者入藏，但是不能捏造不知道的事情 这种处理西藏暴乱信息的方式，是一种媒体暴力，一种意识形态的欺骗行为，一种话语权的霸权，一种扭曲事实的宣传，一种无耻的欺骗。 首先受害者是法国人民，他们是多么的具有怜悯心和博爱，他们相信媒体，可不幸的是，他们被操纵和欺骗了。 西方的信息模式本来还是人们的一种效仿模式，它现在不再是了。没有人有权力操纵大众舆论，不能在中国，也不能在世界上任何地方。这是在所谓言论自由模式中的另一种压制言论自由的方式。 还有一些作为法国精英的政客的思维惰性，让我们无比震惊。 所谓人权，对某些人来说是圣战的号角，和一切有政治目的不负责任的煽动的盾牌，比如说对于罗伯特.梅纳尔(“无疆界记者”组织主席)。为什么此人在官塔那摩监狱里的酷刑不断重复，在伊拉克人被美军士兵侮辱的时候消失了？ 这是不是一种选择性的失明呢？ 联合国教科文组织终止了对“无疆界记者”的支持，在一份公告中，联合国教科文组织解释说，无疆界记者多次在无客观所言地报道某些国家的过程中丧失了记者职业道德。 为什么呢？ 从互联网上，同时也是我们的罗伯特先生承认的信息中，我们了解到“无疆界记者”的财政支持是源于一些与美国中央情报关系密切的组织。 我们，海外的中国学生，我们很心痛，我们的感情受到了伤害，但是我们并不怨恨法国人。 我们是两个截然不同的世界之间经验与信息交换的桥梁，我们也是这场文化、思想，尤其是政治冲突最先的受害者。 在国内的中国人非常相信我们这些留学生对国外的见解。他们对于国外的认识和印象取决于这个留学生群体的感觉。 面对捏造或者说传递虚假消息的西方媒体的指责，我们这些学生中的很多人开始反击，在互联网上辩论并呼唤报道的真实性。我们都注意到，被某些媒体 “喂饱了” 的有些法国人对于中国有着很深的偏见。 在抵制奥运，抵制中国，所谓自由西藏的叫喊声中，中国人民对西方世界的审视和不信任正在增长。中国政府的努力还远没有达到尽善尽美的地步，说它是世界上最完善的和说它是世界上最差的同样可笑。但我们这一代，我们这些20岁到30岁的年轻人，从我们年幼时起，我们就一直生活在中国生活水平不断提高及自由度不断开放的环境中。 我们很惊讶，在这一切都向好的方面发展的时刻，在这个我们生活比以前更好的时候，国外才有越来越多的人想把我们从所谓的 “世界上最大的独裁”中 “ 拯救 ” 出来！我想问，你们以前在哪儿？我们这些在西方求学的中国人，我们对未来充满了自信。的确，中国还有很多事情要做，而我们，我们中国人，更是对这些进步的实现有着前所未有的信心。 中国有另一种文化，另一种历史，另一个体积。社会学不是一种像数学精确的科学。在这方面，要成为一种 “普遍的典范” 有太多的变数。 来中国吧！来看看一个真实的，完整的中国，一个很多西方媒体不会展现给你们的中国，来西藏吧！ 用你们的眼睛来见证那个所谓的“文化灭绝” ，是否这种灭绝真的存在，是否藏语正在 “消失”，那些喇嘛们是不是可以自由的信仰他们的宗教，西藏人是不是比在达赖的神权统治下过得更好！和那些上了年纪的西藏人聊聊，谈谈他们永远无法忘记的 “ 佛教天堂 ”。 我们需要直接的交流，更多的知识交换，我们会继续对此作出贡献！ 我们中国留学生支持奥运，支持奥运在中国举行，这个占人类五分之一人口的国家有资格承办奥运会。 奥运是属于谁的？奥运是属于您的，属于我的，属于我们的，属于我们大家，属于全世界的人民。这不是一场政治游戏。亲爱的政客们，反对中国的那些政治势力的走卒们，请停止你们对于奥运的污染。 中国作为东道主国家，想为全世界人民送上一份最好的礼物。成千上万的中国人呕心沥血多年，就是为了这一天。他们正敞开怀抱欢迎世界各国的人们。 当奥运圣火在世界各地传递的时候，所传达的是同一条信息，那就是欢迎你们的到来，中国人民期待和你们一起庆祝这个充满人性关爱的盛会。 当有些媒体提到，这次圣火传递失败是给中国的一记耳光。当代表着爱与和平的圣火，受到一些专门抗议者的侮辱行径时，我认为这确实是一记耳光，但不是给中国的，而是给中国人民的，给法国人民的，给全世界所有热爱奥运的人民的。 很多法国人似乎对中国有一种恐惧，这种恐惧来自于对中国的无知。这也是为什么我们希望你们可以直接和我们沟通，通过我们，热爱并希望巩固中法友谊的桥梁，来进一步了解中国。 中国和她的文化注定了我们爱好和平的本质。自秦朝统一六国后，中国从此结束了原来分裂的状态，成为一个完整独立的国家。我们便属于一个大家庭。 我认为这是一个具有5000年历史的文化的高度。这会令人担忧？但是文化是鲜活的具有生命力的。当你们在中国饭店使用筷子的时候，中国文化正向你们充分地展开它的怀抱。 妖魔化中国只会让中国人愈发远离西方世界，只会加剧人民间的距离。 请让我们好好沟通！ 我们想给你们其他一个信息。我们中国留学生，非常诚恳地希望中法人民之间不要有敌对情绪，因为不管怎样这都是不理性的，也是没用的。了解两种不同文化的我们，希望成为这两国人民的一座桥梁，一个信息沟通点。我们向你们诉说的是中国人民的真实想法和感受，我们同时也会传达法国人民对中国善意的关注。请相信我，这座桥，将会前所未有的坚固，特别是在这种极度令人遗憾的现状下。 我亲爱的法国朋友们，我们热烈欢迎你们所有人的到来，甚至那些想“在北京制造混乱”(一个欧洲议会议员的言论)的人。我们将会帮助他们找到一个好的保险公司，为他们提供一种包括所有民事责任的保险。 [...]]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/2ItYVLK8vPI&#038;hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/2ItYVLK8vPI&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<blockquote><p>
女士们，先生们，亲爱的中法朋友们，你们好！</p>
<p>我想首先感谢巴黎人民和巴黎市警察局给了我们今天这次机会让我们聚集于此。这是罕见的一次，也是欧洲和法国历史上最大的华人集会。</p>
<p>我想代表从别的城市，乘坐大巴、火车和汽车，从几百公里以外自费赶来的朋友们说几句话。很多朋友没有能与我们相聚于此，但是我想替他们表达他们与我们一样的对中国、对法国、对法国人民，以及对中法友谊的关注。</p>
<p>在这次对中国的妖魔化的扭曲报道事件中，我们，全世界的中国留学生，我们感觉很痛，我们的感情受到了伤害，但是我们不怪法国人民，因为造成这样结果的责任人不是你们，而是一些不负责任的媒体和职业煽动家。</p>
<p>像所有行业一样，记者和媒体有自己要遵守的职业道德。媒体要求公正，客观，对所报道内容的核实，以及评论的适中。无论如何，也不能诽谤和诬蔑，没有证据地责难，扭曲事实。</p>
<p>在对最近发生的事情报道中，一些记者超出了他们原本的报道角色，完全变成了自认为拥有绝对真理的批判家，甚至把事件可笑地简单化。一个弱小而善良的受害者和一个巨大而残忍的暴徒。他们的角色从一开始就这样人为地被分配好了。</p>
<p>然后，记者们找寻各种方式和手段来证明这两个角色。比如说，选择性的阐述历史，认为中国的革命对中国不可分割的一部分是“侵略”，而故意不说 95%受煎熬的藏人的黑暗的政教合一，把尼泊尔的警察当成是中国警察，用几十年前的照片来说今天的事情，传播根本没有验证的信息，比如根本没有可信度的所谓死亡人数，以及选用一些别有用心的人的口述。</p>
<p>那些外国游客的描述，和他们拍到的视频让我们看到暴徒对无故路人进行令人发指的暴力，没有一个媒体说这是对无辜者的施暴。更有甚者，一些不负责任的媒体制造并强迫人们接受一个根本没有任何可信和公正证据的“血腥镇压”的假设。</p>
<p>媒体很少邀请中国人在节目中阐述他们的观点，即使有也是把他放在被告的位置上，而另一方的则是在数量上几倍于他的“法官”。是，你可以批评中国政府在一段时间里不允许记者入藏，但是不能捏造不知道的事情</p>
<p>这种处理西藏暴乱信息的方式，是一种媒体暴力，一种意识形态的欺骗行为，一种话语权的霸权，一种扭曲事实的宣传，一种无耻的欺骗。</p>
<p>首先受害者是法国人民，他们是多么的具有怜悯心和博爱，他们相信媒体，可不幸的是，他们被操纵和欺骗了。</p>
<p>西方的信息模式本来还是人们的一种效仿模式，它现在不再是了。没有人有权力操纵大众舆论，不能在中国，也不能在世界上任何地方。这是在所谓言论自由模式中的另一种压制言论自由的方式。</p>
<p>还有一些作为法国精英的政客的思维惰性，让我们无比震惊。</p>
<p>所谓人权，对某些人来说是圣战的号角，和一切有政治目的不负责任的煽动的盾牌，比如说对于罗伯特.梅纳尔(“无疆界记者”组织主席)。为什么此人在官塔那摩监狱里的酷刑不断重复，在伊拉克人被美军士兵侮辱的时候消失了？ 这是不是一种选择性的失明呢？</p>
<p>联合国教科文组织终止了对“无疆界记者”的支持，在一份公告中，联合国教科文组织解释说，无疆界记者多次在无客观所言地报道某些国家的过程中丧失了记者职业道德。</p>
<p>为什么呢？</p>
<p>从互联网上，同时也是我们的罗伯特先生承认的信息中，我们了解到“无疆界记者”的财政支持是源于一些与美国中央情报关系密切的组织。</p>
<p>我们，海外的中国学生，我们很心痛，我们的感情受到了伤害，但是我们并不怨恨法国人。</p>
<p>我们是两个截然不同的世界之间经验与信息交换的桥梁，我们也是这场文化、思想，尤其是政治冲突最先的受害者。</p>
<p>在国内的中国人非常相信我们这些留学生对国外的见解。他们对于国外的认识和印象取决于这个留学生群体的感觉。</p>
<p>面对捏造或者说传递虚假消息的西方媒体的指责，我们这些学生中的很多人开始反击，在互联网上辩论并呼唤报道的真实性。我们都注意到，被某些媒体 “喂饱了” 的有些法国人对于中国有着很深的偏见。</p>
<p>在抵制奥运，抵制中国，所谓自由西藏的叫喊声中，中国人民对西方世界的审视和不信任正在增长。中国政府的努力还远没有达到尽善尽美的地步，说它是世界上最完善的和说它是世界上最差的同样可笑。但我们这一代，我们这些20岁到30岁的年轻人，从我们年幼时起，我们就一直生活在中国生活水平不断提高及自由度不断开放的环境中。</p>
<p>我们很惊讶，在这一切都向好的方面发展的时刻，在这个我们生活比以前更好的时候，国外才有越来越多的人想把我们从所谓的 “世界上最大的独裁”中 “ 拯救 ” 出来！我想问，你们以前在哪儿？我们这些在西方求学的中国人，我们对未来充满了自信。的确，中国还有很多事情要做，而我们，我们中国人，更是对这些进步的实现有着前所未有的信心。</p>
<p>中国有另一种文化，另一种历史，另一个体积。社会学不是一种像数学精确的科学。在这方面，要成为一种 “普遍的典范” 有太多的变数。</p>
<p>来中国吧！来看看一个真实的，完整的中国，一个很多西方媒体不会展现给你们的中国，来西藏吧！ 用你们的眼睛来见证那个所谓的“文化灭绝” ，是否这种灭绝真的存在，是否藏语正在 “消失”，那些喇嘛们是不是可以自由的信仰他们的宗教，西藏人是不是比在达赖的神权统治下过得更好！和那些上了年纪的西藏人聊聊，谈谈他们永远无法忘记的 “ 佛教天堂 ”。 我们需要直接的交流，更多的知识交换，我们会继续对此作出贡献！</p>
<p>我们中国留学生支持奥运，支持奥运在中国举行，这个占人类五分之一人口的国家有资格承办奥运会。</p>
<p>奥运是属于谁的？奥运是属于您的，属于我的，属于我们的，属于我们大家，属于全世界的人民。这不是一场政治游戏。亲爱的政客们，反对中国的那些政治势力的走卒们，请停止你们对于奥运的污染。</p>
<p>中国作为东道主国家，想为全世界人民送上一份最好的礼物。成千上万的中国人呕心沥血多年，就是为了这一天。他们正敞开怀抱欢迎世界各国的人们。</p>
<p>当奥运圣火在世界各地传递的时候，所传达的是同一条信息，那就是欢迎你们的到来，中国人民期待和你们一起庆祝这个充满人性关爱的盛会。</p>
<p>当有些媒体提到，这次圣火传递失败是给中国的一记耳光。当代表着爱与和平的圣火，受到一些专门抗议者的侮辱行径时，我认为这确实是一记耳光，但不是给中国的，而是给中国人民的，给法国人民的，给全世界所有热爱奥运的人民的。</p>
<p>很多法国人似乎对中国有一种恐惧，这种恐惧来自于对中国的无知。这也是为什么我们希望你们可以直接和我们沟通，通过我们，热爱并希望巩固中法友谊的桥梁，来进一步了解中国。</p>
<p>中国和她的文化注定了我们爱好和平的本质。自秦朝统一六国后，中国从此结束了原来分裂的状态，成为一个完整独立的国家。我们便属于一个大家庭。</p>
<p>我认为这是一个具有5000年历史的文化的高度。这会令人担忧？但是文化是鲜活的具有生命力的。当你们在中国饭店使用筷子的时候，中国文化正向你们充分地展开它的怀抱。</p>
<p>妖魔化中国只会让中国人愈发远离西方世界，只会加剧人民间的距离。</p>
<p>请让我们好好沟通！</p>
<p>我们想给你们其他一个信息。我们中国留学生，非常诚恳地希望中法人民之间不要有敌对情绪，因为不管怎样这都是不理性的，也是没用的。了解两种不同文化的我们，希望成为这两国人民的一座桥梁，一个信息沟通点。我们向你们诉说的是中国人民的真实想法和感受，我们同时也会传达法国人民对中国善意的关注。请相信我，这座桥，将会前所未有的坚固，特别是在这种极度令人遗憾的现状下。</p>
<p>我亲爱的法国朋友们，我们热烈欢迎你们所有人的到来，甚至那些想“在北京制造混乱”(一个欧洲议会议员的言论)的人。我们将会帮助他们找到一个好的保险公司，为他们提供一种包括所有民事责任的保险。</p>
<p>让我们北京见吧，亲爱的朋友们！</p>
<p>谢谢，非常感谢！
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/722/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>2008-02-25</title>
		<link>http://welog.org/blog/718</link>
		<comments>http://welog.org/blog/718#comments</comments>
		<pubDate>Mon, 25 Feb 2008 15:59:59 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://welog.org/blog/718</guid>
		<description><![CDATA[国务院新闻办网络局副局长彭波：中国互联网将很好很强大 -_-!!! # “明天中国的互联网，一定会很美很绿色、很棒很健康、很好很强大!” &#8212;&#8212;-国务院新闻办网络新闻局副局长彭波 #]]></description>
			<content:encoded><![CDATA[<ul>
<li>国务院新闻办网络局副局长彭波：中国互联网将很好很强大 -_-!!! <a href="http://twitter.com/kings/statuses/754109242">#</a></li>
<li>“明天中国的互联网，一定会很美很绿色、很棒很健康、很好很强大!”<br />
&#8212;&#8212;-国务院新闻办网络新闻局副局长彭波 <a href="http://twitter.com/kings/statuses/754110632">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/718/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2008-02-02</title>
		<link>http://welog.org/blog/716</link>
		<comments>http://welog.org/blog/716#comments</comments>
		<pubDate>Sat, 02 Feb 2008 15:59:59 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://welog.org/blog/716</guid>
		<description><![CDATA[微软购雅虎-死路一条&#8230;. #]]></description>
			<content:encoded><![CDATA[<ul>
<li>微软购雅虎-死路一条&#8230;. <a href="http://twitter.com/kings/statuses/668368372">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/716/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2008-01-31</title>
		<link>http://welog.org/blog/715</link>
		<comments>http://welog.org/blog/715#comments</comments>
		<pubDate>Thu, 31 Jan 2008 15:59:59 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://welog.org/blog/715</guid>
		<description><![CDATA[Prologue is a new WordPress theme that’s probably best described as a group Twitter, ideally for 3-15 people to let each other know what &#8230; #]]></description>
			<content:encoded><![CDATA[<ul>
<li>Prologue is a new WordPress theme that’s probably best described as a group Twitter, ideally for 3-15 people to let each other know what &#8230; <a href="http://twitter.com/kings/statuses/662099152">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/715/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2008-01-24</title>
		<link>http://welog.org/blog/714</link>
		<comments>http://welog.org/blog/714#comments</comments>
		<pubDate>Thu, 24 Jan 2008 15:59:59 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://welog.org/blog/714</guid>
		<description><![CDATA[&#34;WordPress获2950万美元风险投资&#34; 这应该不是第一次吧？ #]]></description>
			<content:encoded><![CDATA[<ul>
<li>&quot;WordPress获2950万美元风险投资&quot; 这应该不是第一次吧？ <a href="http://twitter.com/kings/statuses/635015922">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/714/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>2008-01-23</title>
		<link>http://welog.org/blog/713</link>
		<comments>http://welog.org/blog/713#comments</comments>
		<pubDate>Wed, 23 Jan 2008 15:59:59 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://welog.org/blog/713</guid>
		<description><![CDATA[TwitterFox 用起来还是不错的&#8230; # Aether : 我的ruby on rails版Avalon_Live还没成型,只建了个框架。成型可能要到年后了&#8230;&#8230; # Jaxer is the recently released Aptana Ajax Server delivering an end-to-end Ajax solution. Jaxer is free and open-source (just like Aptan &#8230; # Jaxer，号称“世界上第一个真正的ajax服务器”，支持用前端技术和框架做服务器端开发，而且前后端的js程序是“非隔离”的。http://www.aptana.com/jaxer # 视频在这里 # 看来想用ROR来实现Avalon，对于我来说困难还是很大的。还好热情依旧&#8230;.. #]]></description>
			<content:encoded><![CDATA[<ul>
<li>TwitterFox 用起来还是不错的&#8230; <a href="http://twitter.com/kings/statuses/630241832">#</a></li>
<li>Aether : 我的ruby on rails版Avalon_Live还没成型,只建了个框架。成型可能要到年后了&#8230;&#8230; <a href="http://twitter.com/kings/statuses/630346332">#</a></li>
<li>Jaxer is the recently released Aptana Ajax Server delivering an end-to-end Ajax solution. Jaxer is free and open-source (just like Aptan &#8230; <a href="http://twitter.com/kings/statuses/630480092">#</a></li>
<li>Jaxer，号称“世界上第一个真正的ajax服务器”，支持用前端技术和框架做服务器端开发，而且前后端的js程序是“非隔离”的。http://www.aptana.com/jaxer <a href="http://twitter.com/kings/statuses/630518752">#</a></li>
<li><a href="http://www.aptana.tv/movies/jaxer/PlayQTFlash.html?movie=Studio11Overview&amp;width=975&amp;height=750">视频在这里</a> <a href="http://twitter.com/kings/statuses/630521192">#</a></li>
<li>看来想用ROR来实现Avalon，对于我来说困难还是很大的。还好热情依旧&#8230;.. <a href="http://twitter.com/kings/statuses/632545732">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/713/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2008-01-22</title>
		<link>http://welog.org/blog/712</link>
		<comments>http://welog.org/blog/712#comments</comments>
		<pubDate>Tue, 22 Jan 2008 15:59:59 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://welog.org/blog/712</guid>
		<description><![CDATA[珍惜除夕,远离国足&#8230;&#8230; # “在这样一个依靠裸体和尸体吸引公众眼球的媒体时代，我们始终坚持着以善意解读新闻，以健康的方式给受众带去积极的影响……” # 今天是黑色星期二&#8230;&#8230;&#8230;&#8230; # 在海内扫了一眼，实名后谁也不认识谁了。还是网名比较亲切一些.. # 真冷，房间里的空调好像坏了&#8230; -_-!! #]]></description>
			<content:encoded><![CDATA[<ul>
<li>珍惜除夕,远离国足&#8230;&#8230; <a href="http://twitter.com/kings/statuses/626464012">#</a></li>
<li>“在这样一个依靠裸体和尸体吸引公众眼球的媒体时代，我们始终坚持着以善意解读新闻，以健康的方式给受众带去积极的影响……” <a href="http://twitter.com/kings/statuses/626539342">#</a></li>
<li>今天是黑色星期二&#8230;&#8230;&#8230;&#8230; <a href="http://twitter.com/kings/statuses/626852082">#</a></li>
<li>在海内扫了一眼，实名后谁也不认识谁了。还是网名比较亲切一些.. <a href="http://twitter.com/kings/statuses/626870152">#</a></li>
<li>真冷，房间里的空调好像坏了&#8230; -_-!! <a href="http://twitter.com/kings/statuses/627860742">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/712/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2008-01-21</title>
		<link>http://welog.org/blog/711</link>
		<comments>http://welog.org/blog/711#comments</comments>
		<pubDate>Mon, 21 Jan 2008 15:59:59 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://welog.org/blog/711</guid>
		<description><![CDATA[今天公司的网络真慢，受不了&#8230;. #]]></description>
			<content:encoded><![CDATA[<ul>
<li>今天公司的网络真慢，受不了&#8230;. <a href="http://twitter.com/kings/statuses/621948572">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/711/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2008-01-19</title>
		<link>http://welog.org/blog/710</link>
		<comments>http://welog.org/blog/710#comments</comments>
		<pubDate>Sat, 19 Jan 2008 15:59:59 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://welog.org/blog/710</guid>
		<description><![CDATA[花了一晚上的时间整理了下Avalon思路，被步确定了模型，现在很兴奋。但&#8230;是否应该要引入其它的功能呢？ # 花了一晚上的时间整理了下Avalon思路，被步确定了模型，现在很兴奋。 # 但&#8230;是否应该要引入其它的功能呢？ # http://www.yobo.com/song/view/321752 # 看来还是有必要选择OpenID做为登陆入口&#8230; # DreamHost这次自动扣款的错误实在让我有点失望，虽然退回了。但还是将信用卡帐号DreamHost中删除了,别到时再乱扣款&#8230; #]]></description>
			<content:encoded><![CDATA[<ul>
<li>花了一晚上的时间整理了下Avalon思路，被步确定了模型，现在很兴奋。但&#8230;是否应该要引入其它的功能呢？ <a href="http://twitter.com/kings/statuses/616037032">#</a></li>
<li>花了一晚上的时间整理了下Avalon思路，被步确定了模型，现在很兴奋。 <a href="http://twitter.com/kings/statuses/616037462">#</a></li>
<li>但&#8230;是否应该要引入其它的功能呢？ <a href="http://twitter.com/kings/statuses/616037752">#</a></li>
<li><a href="http://www.yobo.com/song/view/321752" rel="nofollow">http://www.yobo.com/song/view/321752</a> <a href="http://twitter.com/kings/statuses/616060732">#</a></li>
<li>看来还是有必要选择OpenID做为登陆入口&#8230; <a href="http://twitter.com/kings/statuses/617127322">#</a></li>
<li>DreamHost这次自动扣款的错误实在让我有点失望，虽然退回了。但还是将信用卡帐号DreamHost中删除了,别到时再乱扣款&#8230; <a href="http://twitter.com/kings/statuses/617237092">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/710/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>2008-01-18</title>
		<link>http://welog.org/blog/708</link>
		<comments>http://welog.org/blog/708#comments</comments>
		<pubDate>Fri, 18 Jan 2008 15:59:59 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://welog.org/blog/708</guid>
		<description><![CDATA[我又一次站在了十字路口&#8230;&#62;_&#60; # 这么多网站开始支持OpenID，看来OpenID离普及不远了.. #]]></description>
			<content:encoded><![CDATA[<ul>
<li>我又一次站在了十字路口&#8230;&gt;_&lt; <a href="http://twitter.com/kings/statuses/611915582">#</a></li>
<li>这么多网站开始支持OpenID，看来OpenID离普及不远了.. <a href="http://twitter.com/kings/statuses/612838322">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/708/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MacBook Air</title>
		<link>http://welog.org/blog/706</link>
		<comments>http://welog.org/blog/706#comments</comments>
		<pubDate>Fri, 18 Jan 2008 04:16:00 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Macbook Air]]></category>

		<guid isPermaLink="false">http://welog.org/blog/706</guid>
		<description><![CDATA[MacBook Air 很酷,很薄,很贵&#8230;&#8230;.]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/0EvS09aeVjQ&#038;rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/0EvS09aeVjQ&#038;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object><br />
<a href="http://www.apple.com.cn/macbookair/">MacBook Air</a> 很酷,很薄,很贵&#8230;&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/706/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2008-01-17</title>
		<link>http://welog.org/blog/707</link>
		<comments>http://welog.org/blog/707#comments</comments>
		<pubDate>Thu, 17 Jan 2008 15:59:59 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://welog.org/blog/707</guid>
		<description><![CDATA[SUN 以10亿美元收购了 MySQL&#8230;.. # Oracle成功收购BEA VS Sun 收购 Mysql.. 有点意思 # MacBook Air 太酷了&#8230; [口水] # 终于将Mysql数据库乱码问题解决了&#8230; # 下一步：将Avalon的各部分功能加上去 #]]></description>
			<content:encoded><![CDATA[<ul>
<li>SUN 以10亿美元收购了 MySQL&#8230;.. <a href="http://twitter.com/kings/statuses/607857652">#</a></li>
<li>Oracle成功收购BEA  VS Sun 收购 Mysql.. 有点意思 <a href="http://twitter.com/kings/statuses/608051212">#</a></li>
<li>MacBook Air 太酷了&#8230; [口水] <a href="http://twitter.com/kings/statuses/608186272">#</a></li>
<li>终于将Mysql数据库乱码问题解决了&#8230; <a href="http://twitter.com/kings/statuses/608649862">#</a></li>
<li>下一步：将Avalon的各部分功能加上去 <a href="http://twitter.com/kings/statuses/608879302">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/707/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2008-01-16</title>
		<link>http://welog.org/blog/705</link>
		<comments>http://welog.org/blog/705#comments</comments>
		<pubDate>Wed, 16 Jan 2008 15:59:59 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://welog.org/blog/705</guid>
		<description><![CDATA[折腾关天，数据库还是乱码&#8230;. -_-!! #]]></description>
			<content:encoded><![CDATA[<ul>
<li>折腾关天，数据库还是乱码&#8230;. -_-!! <a href="http://twitter.com/kings/statuses/603701492">#</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/705/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby</title>
		<link>http://welog.org/blog/611</link>
		<comments>http://welog.org/blog/611#comments</comments>
		<pubDate>Thu, 29 Nov 2007 06:23:42 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[安装]]></category>
		<category><![CDATA[环境]]></category>

		<guid isPermaLink="false">http://welog.org/blog/611</guid>
		<description><![CDATA[1. 修改 yum server ，指到国内Linuxsir的 server vi /etc/yum.repos.d/fedora.repo baseurl 改成 baseurl=ftp://ftp.fedora.cn/pub/fedora-cn/linux/7/i386/RPMS/ 修改freshrpms的yum repo文件（如/etc/yum.repos.d/freshrpms.repo) 2. 安裝gcc complier 输入gcc ，看你有没有装好 gcc compiler ，如果没有，如下 yum install gcc* 3. 安装 MySQL yum install mysql-server 开始安装 1. 安装 Ruby 以及 Ruby 的 MySQL Driver yum install ruby ruby-libs ruby-devel ruby-rdoc ruby-mysql ruby-irb 2. 安装 Ruby Gems yum install rubygems 3. [...]]]></description>
			<content:encoded><![CDATA[<p>1. 修改 yum server ，指到国内Linuxsir的 server</p>
<p>    vi /etc/yum.repos.d/fedora.repo<br />
    baseurl 改成<br />
    baseurl=ftp://ftp.fedora.cn/pub/fedora-cn/linux/7/i386/RPMS/</p>
<p>    修改freshrpms的yum repo文件（如/etc/yum.repos.d/freshrpms.repo)</p>
<p>2. 安裝gcc complier<br />
输入gcc ，看你有没有装好 gcc compiler ，如果没有，如下</p>
<p>    yum install gcc* </p>
<p>3. 安装 MySQL</p>
<p>    yum install mysql-server</p>
<p>开始安装<br />
1. 安装 Ruby 以及 Ruby 的 MySQL Driver</p>
<p>    yum install ruby ruby-libs ruby-devel ruby-rdoc ruby-mysql ruby-irb</p>
<p>2. 安装 Ruby Gems<br />
    yum install rubygems<br />
3. 安装 Rails</p>
<p>    gem i rails -y </p>
<p>4. 安装 Mongrel</p>
<p>    gem i mongrel</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/611/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>十一月二十一</title>
		<link>http://welog.org/blog/609</link>
		<comments>http://welog.org/blog/609#comments</comments>
		<pubDate>Wed, 21 Nov 2007 12:31:31 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[工作]]></category>

		<guid isPermaLink="false">http://welog.org/blog/609</guid>
		<description><![CDATA[昨天太近，明天太远。我有着一样的共鸣。 也许我们都在为了昨天的遗憾而遗憾着，为明天的焦虑而焦虑着。 让一切自然的发生，几个月的酝酿，再回头去看这段过程，虽然充满悬念，但却击打着我的心。 我承认有些变化我还不能完全适应，所以我还有很多东西要去学习。 是的。我要去多学一些，以前自以为不错的那点小本事是无法适应现在的发展形势的。 新的开始，新的挑战。为了我想做的事情，必须要提升自己的能力，让我能做更多的事情。 光是空想，是没有意义的。 算来今天正好是我来公司整整一年时间，纪念一下&#8230;.]]></description>
			<content:encoded><![CDATA[<p>昨天太近，明天太远。我有着一样的共鸣。<br />
也许我们都在为了昨天的遗憾而遗憾着，为明天的焦虑而焦虑着。<br />
让一切自然的发生，几个月的酝酿，再回头去看这段过程，虽然充满悬念，但却击打着我的心。<br />
我承认有些变化我还不能完全适应，所以我还有很多东西要去学习。<br />
是的。我要去多学一些，以前自以为不错的那点小本事是无法适应现在的发展形势的。<br />
新的开始，新的挑战。为了我想做的事情，必须要提升自己的能力，让我能做更多的事情。<br />
光是空想，是没有意义的。</p>
<p>算来今天正好是我来公司整整一年时间，纪念一下&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/609/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>贴图，说两句&#8230;.</title>
		<link>http://welog.org/blog/610</link>
		<comments>http://welog.org/blog/610#comments</comments>
		<pubDate>Thu, 18 Oct 2007 08:53:46 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[GFW]]></category>
		<category><![CDATA[Youtube]]></category>

		<guid isPermaLink="false">http://welog.org/blog/610</guid>
		<description><![CDATA[当Flickr和Blogspot突然能访问的时候，当Zuola同学的BLOG被拉出来放风的时候，Youtube就倒下了&#8230;&#8230;&#8230; 一,二,三,四。]]></description>
			<content:encoded><![CDATA[<p><img src="http://photo5.yupoo.com/20071018/163635_589561459.jpg" alt="................" /></p>
<p>当Flickr和Blogspot突然能访问的时候，当Zuola同学的<a href="https://www.zuola.com/weblog/?p=895">BLOG</a>被拉出来放风的时候，Youtube就倒下了&#8230;&#8230;&#8230;<br />
<a href="http://www.williamlong.info/archives/1100.html">一</a>,<a href="http://www.williamlong.info/archives/1099.html">二</a>,<a href="http://www.wappblog.com/50226711/youtubeeeae_121821.php">三</a>,<a href="http://www.awflasher.com/blog/archives/1088">四</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/610/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress 2.3错误解决</title>
		<link>http://welog.org/blog/607</link>
		<comments>http://welog.org/blog/607#comments</comments>
		<pubDate>Sat, 29 Sep 2007 02:00:17 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[tags]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[升级]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[问题]]></category>

		<guid isPermaLink="false">http://welog.org/blog/607</guid>
		<description><![CDATA[1、修改并Hack了模板中的部分代码。忘了备份archives、About及Links中的内容了，以后一定要记住升级前做好备份工作，浪费时间不是。 2、自动保存总是出现以下错误： WordPress database error: [Table ‘xxxx.wp_post2cat’ doesn’t exist] SELECT cat_ID AS ID, MAX(post_modified) AS last_mod FROM `wp_posts` p LEFT JOIN `wp_post2cat` pc ON p.ID = pc.post_id LEFT JOIN `wp_categories` c ON pc.category_id = c.cat_ID WHERE post_status = &#8216;publish&#8217; GROUP BY cat_ID 网上的朋友都说问题出在程序本身，但在我Deactivate所有插件后自动保存问题就解决了。通过排查找到了问题根源在Google Sitemap这个插件，Deactivate它问题解决。 3、Tags:还没找到解决的办法，继续等待官方的解决方案。]]></description>
			<content:encoded><![CDATA[<p>1、修改并Hack了模板中的部分代码。忘了备份archives、About及Links中的内容了，以后一定要记住升级前做好备份工作，浪费时间不是。<br />
2、自动保存总是出现以下错误：<br />
<em>WordPress database error: [Table ‘xxxx.wp_post2cat’ doesn’t exist]<br />
SELECT cat_ID AS ID, MAX(post_modified) AS last_mod FROM `wp_posts` p LEFT JOIN `wp_post2cat` pc ON p.ID = pc.post_id LEFT JOIN `wp_categories` c ON pc.category_id = c.cat_ID WHERE post_status = &#8216;publish&#8217; GROUP BY cat_ID</em><br />
网上的朋友都说问题出在程序本身，但在我Deactivate所有插件后自动保存问题就解决了。通过排查找到了问题根源在Google Sitemap这个插件，Deactivate它问题解决。<br />
3、Tags:还没找到解决的办法，继续等待官方的解决方案。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/607/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>续费小记及Dreamhost促销</title>
		<link>http://welog.org/blog/606</link>
		<comments>http://welog.org/blog/606#comments</comments>
		<pubDate>Fri, 28 Sep 2007 03:13:23 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[续费]]></category>

		<guid isPermaLink="false">http://welog.org/blog/606</guid>
		<description><![CDATA[时间过的真快，一年前的9月24日，我开始把Blog迁移到 Dreamhost上。一转眼已经过去一年了，考虑Dreamhost这一年来在使用中的感受还算满意。加之这一年因为有了这么个主机学到了不少东西，决定再继续一年Dreamhost。 看看入住Dreamhost一年空间及Blog的一些数据: Blog的访问量不是很大，PV每月超过5万左右 ; Disk Usage: 5% of 249.2 GB（这么大的空间接下来我要放些什么呢？又或者你正好需要可以联系我） Bandwidth Usage:12% of 4896 GB; 从Dreamhost得到的推荐费是$23 (当是创建的优惠码是:KINGWANG，不是查看了数据都忘记创建的优惠码了) ; FeedBurner被和谐，显示的订阅数量大减; Goolge广告的收益，暂时保密。 分享了部分空间给三位网友及自己另外搭建的几个站。 去年花费的成本是$24, 现在续费要加$96.24。 总的来说还是满意的，和国内同等类型的主机相比Dreamhost性价比还是很高；加上Dreamhost给每个用户一个Unix Shell，这也许是我续费的最大诱因。哈哈 而更BT的是Dreamhost为了十周年纪念推出了一款促销主机: # 500 GB Disk Storage (500 GB 主机空间，每周自动增加2G) # 5 TB Monthly Bandwidth (每月5TB 流量，每周自动增加40G) # 支持无限数量邮箱 # 支持无限数量shell和ftp帐号 # 支持ROR/CGI/SSI # 支持php4/php5 # 免费提供一个顶级域名 # 一键安装WordPress, phpBB, [...]]]></description>
			<content:encoded><![CDATA[<p>时间过的真快，一年前的9月24日，我开始把Blog迁移到 Dreamhost上。一转眼已经过去一年了，考虑Dreamhost这一年来在使用中的感受还算满意。加之这一年因为有了这么个主机学到了不少东西，决定再继续一年Dreamhost。<br />
<strong>看看入住Dreamhost一年空间及Blog的一些数据:</strong><br />
Blog的访问量不是很大，PV每月超过5万左右 ;<br />
Disk Usage:  5% of 249.2 GB（这么大的空间接下来我要放些什么呢？又或者你正好需要可以联系我）<br />
Bandwidth Usage:12% of 4896 GB;<br />
从Dreamhost得到的推荐费是$23 (当是创建的优惠码是:<strong>KINGWANG</strong>，不是查看了数据都忘记创建的优惠码了) ;<br />
FeedBurner被和谐，显示的订阅数量大减;<br />
Goolge广告的收益，暂时保密。<br />
分享了部分空间给三位网友及自己另外搭建的几个站。<br />
去年花费的成本是$24, 现在续费要加$96.24。</p>
<p>总的来说还是满意的，和国内同等类型的主机相比Dreamhost性价比还是很高；加上Dreamhost给每个用户一个Unix Shell，这也许是我续费的最大诱因。哈哈<br />
<strong>而更BT的是Dreamhost为了十周年纪念推出了一款促销主机:</strong><br />
# <a href="http://www.dreamhost.com/hosting.html">500 GB Disk Storage</a> (500 GB 主机空间，每周自动增加2G)<br />
# 5 TB Monthly Bandwidth (每月5TB 流量，每周自动增加40G)<br />
# 支持无限数量邮箱<br />
# 支持无限数量shell和ftp帐号<br />
# 支持ROR/CGI/SSI<br />
# 支持php4/php5<br />
# 免费提供一个顶级域名<br />
# 一键安装WordPress, phpBB, Advanced Poll, ZenCart, MediaWiki, Joomla, Gallery, WebCalendar</p>
<p>比我去年够买主机是的空间和流量都大了N倍，而一年后的价格同样是$119.40，Dreamhost怎么就不考虑一下续费用户的感受呢？<br />
有兴趣的可以去<a href="http://www.dreamhost.com/">看看</a>，当然这里所有的空间都是用信用卡或paypal支付，如果你需要注册也可以使用我创建的最高折扣$97优惠码：<strong>KINGWANG</strong>，(Promo Code or email of who referred you:[<strong>KINGWANG</strong>])而我可以从中得到$2的推荐费。关于Dreamhost的推荐费的机制可以参考<a href="http://blog.oasisfeng.com/2006/09/13/dreamhost-promo-code-details/">《详解DreamHost的营销模式》</a>;其实这个引荐费也没多大意义了，要想通过这个东西来把第二年的费用赚出来也是有可能的，但建立BLOG的本意应该不是如些吧？</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/606/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>2007中文网志年会</title>
		<link>http://welog.org/blog/604</link>
		<comments>http://welog.org/blog/604#comments</comments>
		<pubDate>Tue, 25 Sep 2007 01:46:57 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[cnbloggercon]]></category>
		<category><![CDATA[cnbloggercon2007]]></category>
		<category><![CDATA[中文网志年会]]></category>

		<guid isPermaLink="false">http://welog.org/blog/604</guid>
		<description><![CDATA[去年没能参加，今年一定不能错过了&#8230;..]]></description>
			<content:encoded><![CDATA[<p><a href="http://events.cnbloggercon.org/event/cnbloggercon2007/" title="中文网志年会 Chinese Blogger Conference 2007"><img src="http://events.cnbloggercon.org/event/cnbloggercon2007/badge_image?user_id=king&#038;type=2" /></a><br />
去年没能参加，今年一定不能错过了&#8230;..</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/604/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>做习题</title>
		<link>http://welog.org/blog/599</link>
		<comments>http://welog.org/blog/599#comments</comments>
		<pubDate>Sat, 01 Sep 2007 06:41:20 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[上海]]></category>
		<category><![CDATA[游戏]]></category>

		<guid isPermaLink="false">http://welog.org/blog/599</guid>
		<description><![CDATA[答题对我来说真是件痛苦的事，又因为这段时间忙得我到了晚上睡觉脑子还是代码。但看着小没那充满期待又好奇的眼神；看在Haagen-Dazs的份上我勉强完成这20度难题吧。不过知道大家都很忙，我就不给你们添乱了，游戏在我这个点上到头了。哈哈 1、你认为分手后的男女朋友还能做普通朋友吗？ 我看不可能吧，除非这两个人没有感情。即使做普通朋友那也是N年之后的事了，这不是分手时需要考虑的。。 2、你怎么知道自己喜欢一个人？ 做一些之前打死也不会做的事。 3、你最希望从朋友（不包括爱人）那里得到的是什么？ 鼓励和关心吧应该 4、最想去哪个地方？为什么？ 希腊。不光是因为有爱琴海，蓝天白云、碧海细沙。在众神及众英雄们的消失地方睡个懒觉不知道会是什么感觉。 内蒙古。 掏个狼崽回家养养。 5、最受不了自己的哪个缺点？ 老把责任往自己身上揽，又缺乏行动力. 6、推荐一家你认为好吃又实惠的美食店。 张江地铁口对面的那什么什么小吃店,味美价廉，童叟无欺。 7、最近最快乐的事情是什么？ 工作不断进入状态，忘了不该记住的事。 8、你最喜欢的狗狗是什么？ 猫狗大战中的那个应该叫比格犬吧。 9、相信因为爱好而结识的友情么？ 当然，所谓物以类聚，那个什么味相投嘛。 10、说出点你名的人的3个优点（不可删除题） 幽默，开朗，热心。你点我名我看就冲这道题来着吧. 11、最想珍惜的人/事是什么？ 家人/友情，家人是唯一的避风港。友情是精神世界的沟通枢纽。 12、在烦闷的时候你如何排解？ 沉思，自我调节。 13、什么样的异性会比较容易吸引你？ 对我施予关爱和支持的人。 14、对于一些自己不能认同的观念，有什么看法，或者说你的反应是什么？ 如果是自己在意的人先保持沉默，给自己几秒种时间；如果无所谓之人，就随他去吧。 15、目前最大的愿望是什么？ 戒除惰性和时间来场赛跑。 16、你最受不了什么样的男人和女人？ 鼓弄风骚的女人及没有自信的男人 17、最想要的生日礼物是什么？ 应该是我能感觉到的且是对方发自内心送出的礼物。 18、请推荐一本最近你认为最棒的书，以及理由。 人生的醒悟：能让自己静下来。 活着：80年代以后的人应该看一下这本书。 19、如果有来生，你想变成什么？ 还是人吧，最起码能感觉到酸甜苦辣来着。 20、blog对于你来说最大的意义是？ 表达和分享吧，可我这里都快荒废了。 原来答题真累。。。。。。]]></description>
			<content:encoded><![CDATA[<p>    答题对我来说真是件痛苦的事，又因为这段时间忙得我到了晚上睡觉脑子还是代码。但看着<a href="http://www.bulaoge.com/?vivian">小没</a>那充满期待又好奇的眼神；看在Haagen-Dazs的份上我勉强完成这20度难题吧。不过知道大家都很忙，我就不给你们添乱了，游戏在我这个点上到头了。哈哈<br />
    <strong>1、你认为分手后的男女朋友还能做普通朋友吗？</strong><br />
    我看不可能吧，除非这两个人没有感情。即使做普通朋友那也是N年之后的事了，这不是分手时需要考虑的。。<br />
    <strong>2、你怎么知道自己喜欢一个人？</strong><br />
    做一些之前打死也不会做的事。<br />
    <strong>3、你最希望从朋友（不包括爱人）那里得到的是什么？</strong><br />
    鼓励和关心吧应该<br />
    <strong>4、最想去哪个地方？为什么？</strong><br />
    希腊。不光是因为有爱琴海，蓝天白云、碧海细沙。在众神及众英雄们的消失地方睡个懒觉不知道会是什么感觉。<br />
    内蒙古。 掏个狼崽回家养养。<br />
    <strong>5、最受不了自己的哪个缺点？</strong><br />
    老把责任往自己身上揽，又缺乏行动力.<br />
    <strong>6、推荐一家你认为好吃又实惠的美食店。</strong><br />
    张江地铁口对面的那什么什么小吃店,味美价廉，童叟无欺。<br />
    <strong>7、最近最快乐的事情是什么？</strong><br />
    工作不断进入状态，忘了不该记住的事。<br />
    <strong>8、你最喜欢的狗狗是什么？</strong><br />
    猫狗大战中的那个应该叫比格犬吧。<br />
    <strong>9、相信因为爱好而结识的友情么？</strong><br />
    当然，所谓物以类聚，那个什么味相投嘛。<br />
    <strong>10、说出点你名的人的3个优点（不可删除题）</strong><br />
    幽默，开朗，热心。你点我名我看就冲这道题来着吧.<br />
    <strong>11、最想珍惜的人/事是什么？</strong><br />
    家人/友情，家人是唯一的避风港。友情是精神世界的沟通枢纽。<br />
    <strong>12、在烦闷的时候你如何排解？</strong><br />
    沉思，自我调节。<br />
    <strong>13、什么样的异性会比较容易吸引你？</strong><br />
    对我施予关爱和支持的人。<br />
    <strong>14、对于一些自己不能认同的观念，有什么看法，或者说你的反应是什么？</strong><br />
    如果是自己在意的人先保持沉默，给自己几秒种时间；如果无所谓之人，就随他去吧。<br />
    <strong>15、目前最大的愿望是什么？</strong><br />
    戒除惰性和时间来场赛跑。<br />
    <strong>16、你最受不了什么样的男人和女人？</strong><br />
    鼓弄风骚的女人及没有自信的男人<br />
    <strong>17、最想要的生日礼物是什么？</strong><br />
    应该是我能感觉到的且是对方发自内心送出的礼物。<br />
    <strong>18、请推荐一本最近你认为最棒的书，以及理由。</strong><br />
    人生的醒悟：能让自己静下来。<br />
    活着：80年代以后的人应该看一下这本书。<br />
    <strong>19、如果有来生，你想变成什么？</strong><br />
    还是人吧，最起码能感觉到酸甜苦辣来着。<br />
    <strong>20、blog对于你来说最大的意义是？</strong><br />
    表达和分享吧，可我这里都快荒废了。</p>
<p>    原来答题真累。。。。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/599/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>上帝的即时信息</title>
		<link>http://welog.org/blog/598</link>
		<comments>http://welog.org/blog/598#comments</comments>
		<pubDate>Wed, 22 Aug 2007 07:53:47 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Performancing]]></category>
		<category><![CDATA[工作]]></category>
		<category><![CDATA[忙]]></category>

		<guid isPermaLink="false">http://welog.org/blog/598</guid>
		<description><![CDATA[上帝：你好，你是不是呼叫我？ 我：呼叫你？没有啊，你是谁？ 上帝：我是上帝。我听到你的祷告，你希望我们能聊一下。 我：是啊，我确实在祷告——这能让我心情舒服一点。但我现在确实很忙，我正在处理某件事情。 上帝：你究竟在忙些什么？蚂蚁也跟你一样忙碌。 我：我也不知道自己在忙什么？我就是找不到一点空闲时间。生活变得如此匆忙，每一分每一秒都显得那么急促。 上帝：是的。做事情只能让你变得忙碌，效率才能让你获得结果。做事情花费时间，而效率却能帮你节省时间。 我：这我都懂，可我就是摸不着头绪。顺便提一下，我并不希望你用即时信息不断地干扰我的工作。 上帝：我觉得有必要向你阐明一些事情以帮助你摆脱跟时间无休止的斗争。在这个网络时代，我选择了让你觉得舒适的沟通方式来跟你交流。 我：好吧。那你能告诉我么，为什么现在生活变得如此复杂？ 上帝：停止分析生活吧，你只需生活在其中，是分析让你把生活变得如此复杂。 我：为什么我们经常不开心？ 上帝：你的今天是你昨天担心的明天。你经常忧心忡忡，因为你不能停止分析生活，担心已经成为你的习惯，你为此不开心。 我：那怎样才能不担心，毕竟生活中有这么多不确定性。 上帝：不确定性是无法避免的，但是我们可以选择是否去担心它。 我：虽然是这样，但是不确定性会给我们带来很多痛苦。 上帝：痛苦是不可避免的，但我们可以选择是否去承受它。 我：既然承受痛苦可以成为一种选择，那为什么优秀的人总是选择去承受痛苦？ 上帝：真金不怕火炼。优秀的人总是历经考验，但这并不意味着你因此必须承受痛苦。因为有了这些磨练，他们的生活应该变得更好，而不是更痛苦。 我：你的意思是说这些经历有价值？ 上帝：是的。在日常生活中，经历是一个严厉的老师。她总是先给你考验然后再告诉你人生的道理。 我：可是我们为什么必须经受这些考验？为什么我不能远离这些烦人的问题？ 上帝：问题总是有针对性地设置障碍，但是它能为你提供有益的经验。它能提升你的精神，提升你从奋斗和忍耐中获得的内在力量，这些都不是你远离问题能够获得的。 我：恕我直言，深陷在问题的泥淖中，我们常不知道该往哪里走。 上帝：如果往外看，你将不会知道你该往哪里走，那就看看你的内心吧。往外看，你只会无止境地梦想着能得到什么；往内心里看，你才能有所顿悟。眼睛让你看到景象，心灵让你富有远见卓识。 我：有时候不能够较快获得成功比朝正确方向前进更让我们受伤，我应该怎样做？ 上帝：成功是别人定义的，满不满意却由自己内心决定。知道前方的道路比盲目往前冲更让人舒服和满意。你带着指南针工作，让别人带着时钟工作吧。 我：在艰难的时期，怎样才能保持激情？ 上帝：经常回头看看你已经走了多远而不是整天忧心你还要走多远；经常庆幸你正在获得的而不是懊悔你正在失去的。 我：人们有哪些事情让你感到惊讶？ 上帝：当承受失败和痛苦时，他们问：“为什么是我？”当他们获得成功时，他们从不问：“为什么是我？”每个人都希望真理站在他们一边，却没有人想站在真理的一边。 我：有时候我问自己是谁，为什么会在这里？我百思不得其解。 上帝：不要试图找出你是谁，而是确定你要成为谁；不要试图回答你为什么会在这里，而是确立你的目标。生活不是一个寻找的过程而是一个创造的过程。 我：我怎样才能获得最好的生活？ 上帝：不带悔意地面对你的过去；充满自信地把握你的现在；毫不畏惧地迎接你的未来。 我：最后一个问题。有时候我觉得我的祷告都没有得到答复。 上帝：恩，其实所有的祷告都有答复，有时候答案可能就是一个简单的“不”字。 我：很感谢能跟你这么愉快地聊天。 上帝：不客气。记住：坚持你的信仰，扔掉你的恐惧。不要相信你所怀疑的但怀疑你所相信的。生活是一个谜语而不是有待解决的问题。相信我，生活是很美好的，前提是你必须知道怎样生活。 Via:上帝的即时信息 Powered by ScribeFire.]]></description>
			<content:encoded><![CDATA[<p>上帝：你好，你是不是呼叫我？<br />
我：呼叫你？没有啊，你是谁？<br />
上帝：我是上帝。我听到你的祷告，你希望我们能聊一下。<br />
我：是啊，我确实在祷告——这能让我心情舒服一点。但我现在确实很忙，我正在处理某件事情。<br />
上帝：你究竟在忙些什么？蚂蚁也跟你一样忙碌。<br />
我：我也不知道自己在忙什么？我就是找不到一点空闲时间。生活变得如此匆忙，每一分每一秒都显得那么急促。<br />
上帝：是的。做事情只能让你变得忙碌，效率才能让你获得结果。做事情花费时间，而效率却能帮你节省时间。<br />
我：这我都懂，可我就是摸不着头绪。顺便提一下，我并不希望你用即时信息不断地干扰我的工作。<br />
上帝：我觉得有必要向你阐明一些事情以帮助你摆脱跟时间无休止的斗争。在这个网络时代，我选择了让你觉得舒适的沟通方式来跟你交流。<br />
我：好吧。那你能告诉我么，为什么现在生活变得如此复杂？<br />
上帝：停止分析生活吧，你只需生活在其中，是分析让你把生活变得如此复杂。<br />
我：为什么我们经常不开心？<br />
上帝：你的今天是你昨天担心的明天。你经常忧心忡忡，因为你不能停止分析生活，担心已经成为你的习惯，你为此不开心。<br />
我：那怎样才能不担心，毕竟生活中有这么多不确定性。<br />
上帝：不确定性是无法避免的，但是我们可以选择是否去担心它。<br />
我：虽然是这样，但是不确定性会给我们带来很多痛苦。<br />
上帝：痛苦是不可避免的，但我们可以选择是否去承受它。<br />
我：既然承受痛苦可以成为一种选择，那为什么优秀的人总是选择去承受痛苦？<br />
上帝：真金不怕火炼。优秀的人总是历经考验，但这并不意味着你因此必须承受痛苦。因为有了这些磨练，他们的生活应该变得更好，而不是更痛苦。<br />
我：你的意思是说这些经历有价值？<br />
上帝：是的。在日常生活中，经历是一个严厉的老师。她总是先给你考验然后再告诉你人生的道理。<br />
我：可是我们为什么必须经受这些考验？为什么我不能远离这些烦人的问题？<br />
上帝：问题总是有针对性地设置障碍，但是它能为你提供有益的经验。它能提升你的精神，提升你从奋斗和忍耐中获得的内在力量，这些都不是你远离问题能够获得的。<br />
我：恕我直言，深陷在问题的泥淖中，我们常不知道该往哪里走。<br />
上帝：如果往外看，你将不会知道你该往哪里走，那就看看你的内心吧。往外看，你只会无止境地梦想着能得到什么；往内心里看，你才能有所顿悟。眼睛让你看到景象，心灵让你富有远见卓识。<br />
我：有时候不能够较快获得成功比朝正确方向前进更让我们受伤，我应该怎样做？<br />
上帝：成功是别人定义的，满不满意却由自己内心决定。知道前方的道路比盲目往前冲更让人舒服和满意。你带着指南针工作，让别人带着时钟工作吧。<br />
我：在艰难的时期，怎样才能保持激情？<br />
上帝：经常回头看看你已经走了多远而不是整天忧心你还要走多远；经常庆幸你正在获得的而不是懊悔你正在失去的。<br />
我：人们有哪些事情让你感到惊讶？<br />
上帝：当承受失败和痛苦时，他们问：“为什么是我？”当他们获得成功时，他们从不问：“为什么是我？”每个人都希望真理站在他们一边，却没有人想站在真理的一边。<br />
我：有时候我问自己是谁，为什么会在这里？我百思不得其解。<br />
上帝：不要试图找出你是谁，而是确定你要成为谁；不要试图回答你为什么会在这里，而是确立你的目标。生活不是一个寻找的过程而是一个创造的过程。<br />
我：我怎样才能获得最好的生活？<br />
上帝：不带悔意地面对你的过去；充满自信地把握你的现在；毫不畏惧地迎接你的未来。</p>
<p>我：最后一个问题。有时候我觉得我的祷告都没有得到答复。</p>
<p>上帝：恩，其实所有的祷告都有答复，有时候答案可能就是一个简单的“不”字。</p>
<p>我：很感谢能跟你这么愉快地聊天。</p>
<p>上帝：不客气。记住：坚持你的信仰，扔掉你的恐惧。不要相信你所怀疑的但怀疑你所相信的。生活是一个谜语而不是有待解决的问题。相信我，生活是很美好的，前提是你必须知道怎样生活。</p>
<p>Via:<a href="http://chn.blogbeta.com/296.html">上帝的即时信息</a></p>
<p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/598/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>八月十二</title>
		<link>http://welog.org/blog/597</link>
		<comments>http://welog.org/blog/597#comments</comments>
		<pubDate>Sun, 12 Aug 2007 15:54:13 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Hongkong]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://welog.org/blog/597</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><embed src="http://www.box.net/static/flash/box_explorer.swf?widgetHash=7o4jdegzqs&#038;v=1" width="400" height="150" wmode="transparent" type="application/x-shockwave-flash"></embed></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/597/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>八月八</title>
		<link>http://welog.org/blog/596</link>
		<comments>http://welog.org/blog/596#comments</comments>
		<pubDate>Wed, 08 Aug 2007 15:11:44 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[归来]]></category>
		<category><![CDATA[感冒]]></category>
		<category><![CDATA[香港]]></category>

		<guid isPermaLink="false">http://welog.org/blog/596</guid>
		<description><![CDATA[拖着沉重的身体进入香港国际机场的候机室，头痛嗓子痛外加发烧，整个人像散架了一样。 看来HongKong真不是我的福地，刚来时被折腾得就差没送去隔离，想不到这回来了还要经受一次考验。 我需要休息&#8230;&#8230;&#8230;&#8230;.]]></description>
			<content:encoded><![CDATA[<p>拖着沉重的身体进入香港国际机场的候机室，头痛嗓子痛外加发烧，整个人像散架了一样。<br />
看来HongKong真不是我的福地，刚来时被折腾得就差没送去隔离，想不到这回来了还要经受一次考验。<br />
我需要休息&#8230;&#8230;&#8230;&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/596/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>冷思考</title>
		<link>http://welog.org/blog/593</link>
		<comments>http://welog.org/blog/593#comments</comments>
		<pubDate>Fri, 03 Aug 2007 15:49:26 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Hongkong]]></category>
		<category><![CDATA[心情]]></category>

		<guid isPermaLink="false">http://welog.org/blog/593</guid>
		<description><![CDATA[每个人都会有自己认为的理想生活,而理想又是最终没有可以得到检验标准的生活。然我们的个性和自由的性情在这其间被毁灭了，热情被职业化的训练所磨灭了，而留给我们的性格变异，让我们只能面对技术和冷漠的面孔，心灵被技术和职业化训练丧失了人性。 如何在争取与放弃中寻找平衡，让激进的心平静下来呢？]]></description>
			<content:encoded><![CDATA[<p>每个人都会有自己认为的理想生活,而理想又是最终没有可以得到检验标准的生活。然我们的个性和自由的性情在这其间被毁灭了，热情被职业化的训练所磨灭了，而留给我们的性格变异，让我们只能面对技术和冷漠的面孔，心灵被技术和职业化训练丧失了人性。<br />
如何在争取与放弃中寻找平衡，让激进的心平静下来呢？</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/593/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>八月一</title>
		<link>http://welog.org/blog/589</link>
		<comments>http://welog.org/blog/589#comments</comments>
		<pubDate>Wed, 01 Aug 2007 15:53:13 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[清理]]></category>

		<guid isPermaLink="false">http://welog.org/blog/589</guid>
		<description><![CDATA[总算能静下心来做点自己的事了，晚上花了三个小时的时间将Blog重新做了一次调整，从后台的数据到Style整个做了一次大清理。 Akismet 已经帮助您的 blog 清除了24,039条垃圾评论。需要审核评论1740。这些制造垃圾的Spamman真该拉出去暴晒一顿，如果不是有所准备我得抓狂了，非得将整个数据库清空才能彻底解决问题。 Style只完成了60%，细节部分还得花点时间修改。项目按原计划再进行着，只是为什么我只把它当成一份工作，而没有了当初那份热情呢？ 算了，消灭这些可恶的Spam我还是洗洗睡去吧&#8230;..]]></description>
			<content:encoded><![CDATA[<p>总算能静下心来做点自己的事了，晚上花了三个小时的时间将Blog重新做了一次调整，从后台的数据到Style整个做了一次大清理。<br />
<strong>Akismet 已经帮助您的 blog 清除了24,039条垃圾评论。需要审核评论1740</strong>。这些制造垃圾的Spamman真该拉出去暴晒一顿，如果不是有所准备我得抓狂了，非得将整个数据库清空才能彻底解决问题。<br />
Style只完成了60%，细节部分还得花点时间修改。项目按原计划再进行着，只是为什么我只把它当成一份工作，而没有了当初那份热情呢？<br />
算了，消灭这些可恶的Spam我还是洗洗睡去吧&#8230;..</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/589/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>七月二十</title>
		<link>http://welog.org/blog/586</link>
		<comments>http://welog.org/blog/586#comments</comments>
		<pubDate>Fri, 20 Jul 2007 15:49:15 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Hongkong]]></category>
		<category><![CDATA[震撼]]></category>

		<guid isPermaLink="false">http://welog.org/blog/586</guid>
		<description><![CDATA[震撼人心的力量![YouTube] 让我先静一静&#8230;&#8230;&#8230;&#8230;&#8230;..]]></description>
			<content:encoded><![CDATA[<p><object width="400" height="350"><param name="movie" value="http://www.tudou.com/v/Ibd8im6K4uM"></param><embed src="http://www.tudou.com/v/Ibd8im6K4uM" type="application/x-shockwave-flash" width="400" height="350" allowFullScreen="true" wmode="opaque"></embed></object><br />
震撼人心的力量![<a href="http://www.youtube.com/watch?v=nHYYz_mGP1U">YouTube</a>]<br />
让我先静一静&#8230;&#8230;&#8230;&#8230;&#8230;..</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/586/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>七月十八</title>
		<link>http://welog.org/blog/585</link>
		<comments>http://welog.org/blog/585#comments</comments>
		<pubDate>Wed, 18 Jul 2007 02:43:40 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[GFW]]></category>
		<category><![CDATA[Hongkong]]></category>

		<guid isPermaLink="false">http://welog.org/blog/585</guid>
		<description><![CDATA[可恶的GFW，太多优秀的服务都被它合谐了。Flickr在内地还是显示不了，马云同学的中国雅虎跟Flickr不沾边也别指望他了。 看来只能用特别的方法解决问题了，唉，有了GFW，做中国的网民的网络生活越发暗淡了!!!!!! 香江夜景，的确很美。]]></description>
			<content:encoded><![CDATA[<p>可恶的GFW，太多优秀的服务都被它合谐了。Flickr在内地还是显示不了，马云同学的中国雅虎跟Flickr不沾边也别指望他了。<br />
看来只能用特别的方法解决问题了，唉，有了GFW，做中国的网民的网络生活越发暗淡了!!!!!!<br />
<img src="http://imgred.com/http://69.147.123.56/1225/842435888_0d7878a474.jpg" width="450" height="300" alt="内地能看到图片的同学请举手" /><br />
香江夜景，的确很美。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/585/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>七月十七</title>
		<link>http://welog.org/blog/584</link>
		<comments>http://welog.org/blog/584#comments</comments>
		<pubDate>Tue, 17 Jul 2007 03:23:42 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[商业化]]></category>
		<category><![CDATA[思考]]></category>

		<guid isPermaLink="false">http://welog.org/blog/584</guid>
		<description><![CDATA[一个项目在起步阶段，制定合理的目标是很重要的，别冲动的认为会成为谁又或代替谁。一开始就过于商业化的项目，只有死路一条。如果真想做些事，还是和商业化保持距离吧，当然如果你只是为了圈钱，哪另说&#8230;&#8230;&#8230;]]></description>
			<content:encoded><![CDATA[<p>一个项目在起步阶段，制定合理的目标是很重要的，别冲动的认为会成为谁又或代替谁。一开始就过于商业化的项目，只有死路一条。如果真想做些事，还是和商业化保持距离吧，当然如果你只是为了圈钱，哪另说&#8230;&#8230;&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/584/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>七月十五</title>
		<link>http://welog.org/blog/583</link>
		<comments>http://welog.org/blog/583#comments</comments>
		<pubDate>Sun, 15 Jul 2007 09:17:08 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Wp]]></category>

		<guid isPermaLink="false">http://welog.org/blog/583</guid>
		<description><![CDATA[来这边有一段日子了，连续二周满负荷运转，明显感到力不从心了；加上昨天的蓝球赛太投入，早上爬起来全身像散架一样，累个半死。还好项目上有了点起色，努力没有白费；大部分的工作及难题已基本搞定，等着测试组进行最后一轮的内部测试。之后我就可以好好休息段时间，好好感受一下迷人的香江夜景，说实话来了这么久除了工作还真没好好体验这边的生活。前段时间ZUOLA来这边我因为工作也没有时间联系他，现在他好像回内地了。嗯，先配备好装备，等这段结束了亲身去体验一下这个被誉为“国际金融中心”的大都市，看是否能找到让自己留下来的理由。听说这里碰到明星的概率比在北京碰到官员的机率都高，虽然我不是追星族，但也不排斥被我撞见一二个，有需要签名的同学现在可以预定了 &#8230;.. 说到球赛，周六下午被同事拉出去在三十多度的高温下打了场畅快淋漓的蓝球比赛，虽然最后我们以16分的落差输了这场比赛，虽然我撕破了二个同事的上衣才拿到了可怜的6分。但我找到了一种感觉(决对不是撕衣服的感觉)，相信下次再战的时候不会只是可怜的6分，只是你们再战时一定要记得穿件结实点的球衣，下次可能就不是上衣了。 今天把WP更新到了2.2.3的最新版，厌恶WP每次更新的烦琐。原本打算重新收拾一下，但刚才更新时丢了不少资料，搞得我现在一点心情都没了。就让我再找个偷懒的理由，忙完这阵再收拾吧。阅读完300多个FEED，完成这个POST还是准备去看看那个恨铁不成钢的中国队在亚洲杯中的表现吧。 BTW：对了，忘了说个事。昨晚Gtalk上和IPANG聊天时提到了ZOLA，想起来前段时间他们在BLOG中吵架的事。我还以为他们早合解了，有时候我们都太较真了，其实没必要把时间花在这些无聊的争执上，非要分个高下谁才比谁更厉害吗？就像Aether所说的&#8221;劝说或者说服一个成年人都是非常可怕的事情，就像郑渊洁的童话就从小告诉我们的那样，绝大部分成年人都是顽固的、不可救药、不可劝说的&#8221;，的确如此，我又何尝不是这样呢。算了，收拾一下看比赛去吧。]]></description>
			<content:encoded><![CDATA[<p>来这边有一段日子了，连续二周满负荷运转，明显感到力不从心了；加上昨天的蓝球赛太投入，早上爬起来全身像散架一样，累个半死。还好项目上有了点起色，努力没有白费；大部分的工作及难题已基本搞定，等着测试组进行最后一轮的内部测试。之后我就可以好好休息段时间，好好感受一下迷人的香江夜景，说实话来了这么久除了工作还真没好好体验这边的生活。前段时间ZUOLA来这边我因为工作也没有时间联系他，现在他好像回内地了。嗯，先配备好装备，等这段结束了亲身去体验一下这个被誉为“国际金融中心”的大都市，看是否能找到让自己留下来的理由。听说这里碰到明星的概率比在北京碰到官员的机率都高，虽然我不是追星族，但也不排斥被我撞见一二个，有需要签名的同学现在可以预定了 <img src='http://welog.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> &#8230;..<br />
说到球赛，周六下午被同事拉出去在三十多度的高温下打了场畅快淋漓的蓝球比赛，虽然最后我们以16分的落差输了这场比赛，虽然我撕破了二个同事的上衣才拿到了可怜的6分。但我找到了一种感觉(决对不是撕衣服的感觉)，相信下次再战的时候不会只是可怜的6分，只是你们再战时一定要记得穿件结实点的球衣，下次可能就不是上衣了。<br />
今天把WP更新到了2.2.3的最新版，厌恶WP每次更新的烦琐。原本打算重新收拾一下，但刚才更新时丢了不少资料，搞得我现在一点心情都没了。就让我再找个偷懒的理由，忙完这阵再收拾吧。阅读完300多个FEED，完成这个POST还是准备去看看那个恨铁不成钢的中国队在亚洲杯中的表现吧。<br />
BTW：对了，忘了说个事。昨晚Gtalk上和IPANG聊天时提到了ZOLA，想起来前段时间他们在BLOG中吵架的事。我还以为他们早合解了，有时候我们都太较真了，其实没必要把时间花在这些无聊的争执上，非要分个高下谁才比谁更厉害吗？就像<a href="http://woooh.com/2007/07/14">Aether</a>所说的&#8221;劝说或者说服一个成年人都是非常可怕的事情，就像郑渊洁的童话就从小告诉我们的那样，绝大部分成年人都是顽固的、不可救药、不可劝说的&#8221;，的确如此，我又何尝不是这样呢。算了，收拾一下看比赛去吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/583/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>六三0</title>
		<link>http://welog.org/blog/582</link>
		<comments>http://welog.org/blog/582#comments</comments>
		<pubDate>Sat, 30 Jun 2007 15:50:31 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Hongkong]]></category>
		<category><![CDATA[七一]]></category>

		<guid isPermaLink="false">http://welog.org/blog/582</guid>
		<description><![CDATA[这边随着七一的临近，到处都是庆祝的喜庆。电视里也到处充斥着回归十周年庆祝的节目，无非都是一些讴歌十年水乳交融的报道。懒得去理会这些事，关了电视打开电脑继续做自己的事。 十年一回首，倒让我想起自己，这个说长不长，说短不短的十年，给我留下了太多太多的回忆，有些深藏心底时常想起，有些也许尘封永不再提。(待续&#8230;)]]></description>
			<content:encoded><![CDATA[<p>这边随着七一的临近，到处都是庆祝的喜庆。电视里也到处充斥着回归十周年庆祝的节目，无非都是一些讴歌十年水乳交融的报道。懒得去理会这些事，关了电视打开电脑继续做自己的事。<br />
十年一回首，倒让我想起自己，这个说长不长，说短不短的十年，给我留下了太多太多的回忆，有些深藏心底时常想起，有些也许尘封永不再提。(待续&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/582/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>六一九</title>
		<link>http://welog.org/blog/580</link>
		<comments>http://welog.org/blog/580#comments</comments>
		<pubDate>Tue, 19 Jun 2007 18:50:40 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Hongkong]]></category>

		<guid isPermaLink="false">http://welog.org/blog/580</guid>
		<description><![CDATA[2:46分，离开办公室。工作方式变化很大，慢慢适应吧&#8230;&#8230;.回去洗洗睡了，希望在这个城市能让我睡个好觉&#8230;&#8230;&#8230;.]]></description>
			<content:encoded><![CDATA[<p>2:46分，离开办公室。工作方式变化很大，慢慢适应吧&#8230;&#8230;.回去洗洗睡了，希望在这个城市能让我睡个好觉&#8230;&#8230;&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/580/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>顺利到达&#8230;&#8230;</title>
		<link>http://welog.org/blog/579</link>
		<comments>http://welog.org/blog/579#comments</comments>
		<pubDate>Tue, 19 Jun 2007 03:56:39 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Hongkong]]></category>
		<category><![CDATA[端午节]]></category>

		<guid isPermaLink="false">http://welog.org/blog/579</guid>
		<description><![CDATA[顺利到达HongKong,下了飞机的第一感觉像从一个世界换到了另一个世界，一切都是那么新奇。 同事：有什么感受，有没有想留下的欲望呢？ 我：这次我糊里糊涂地就来了，心情是复杂的，还没来得及感受呢，不如作井观天，盲人摸象先。 同事：听他们说了你的事了，不要为明天忧虑，天上的飞鸟，不耕种也不收获，上天尚且要养活它，田野里的百合花，从不忧虑它能不能开花，是不是可以开得和其它一样美，但是它就自然的开花了，开得比所罗门皇冠上的珍珠还美。你呢，忧虑什么呢？ 人比飞鸟和百合花贵重多了，上帝会弃你不顾吗？ 我：&#8230;&#8230;&#8230;&#8230;&#8230;..不用才来就和我说这么有哲理的话吧？你这不是让我有距离感嘛，就还剩那么点欲望也被你抹去了!!!!!! 这些先不说了，下午同事陪我一起去补办入境手续，在还没被遣送回去的前提下，一切都安定下来后再慢慢理理我的思绪吧。 PS：如果今天不是香港的端午节法定假日，我都忘了今天这个日子了，可以想像这段时间我日子过的&#8230;&#8230;.. 节日快乐大家!!!!!!去年的今天我在哪？]]></description>
			<content:encoded><![CDATA[<p>顺利到达HongKong,下了飞机的第一感觉像从一个世界换到了另一个世界，一切都是那么新奇。<br />
同事：有什么感受，有没有想留下的欲望呢？<br />
我：这次我糊里糊涂地就来了，心情是复杂的，还没来得及感受呢，不如作井观天，盲人摸象先。<br />
同事：听他们说了你的事了，不要为明天忧虑，天上的飞鸟，不耕种也不收获，上天尚且要养活它，田野里的百合花，从不忧虑它能不能开花，是不是可以开得和其它一样美，但是它就自然的开花了，开得比所罗门皇冠上的珍珠还美。你呢，忧虑什么呢？ 人比飞鸟和百合花贵重多了，上帝会弃你不顾吗？<br />
我：&#8230;&#8230;&#8230;&#8230;&#8230;..不用才来就和我说这么有哲理的话吧？你这不是让我有距离感嘛，就还剩那么点欲望也被你抹去了!!!!!!<br />
这些先不说了，下午同事陪我一起去补办入境手续，在还没被遣送回去的前提下，一切都安定下来后再慢慢理理我的思绪吧。<br />
PS：如果今天不是香港的端午节法定假日，我都忘了今天这个日子了，可以想像这段时间我日子过的&#8230;&#8230;.. 节日快乐大家!!!!!!去年的今天我在哪？</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/579/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>放逐</title>
		<link>http://welog.org/blog/578</link>
		<comments>http://welog.org/blog/578#comments</comments>
		<pubDate>Sun, 17 Jun 2007 04:01:53 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Hongkong]]></category>
		<category><![CDATA[人生]]></category>

		<guid isPermaLink="false">http://welog.org/blog/578</guid>
		<description><![CDATA[在人的一生中，很多时候有些地方，值得你去追逐、牵挂的，可能是一个普通得不能再普通的人。这个人注定只有对你来说是最重要的，你为她放弃和付出的东西有多少，你认为有很多，多到说不出，但突然觉得又很少，少到她做个决定的勇气都没有&#8230;&#8230;. 怀揣着的是对梦想的追逐，手里握紧的是一张单程机票，身后的背包里装的是下一站的地图，希望它不会让我迷失。继续上路的理由是这个城市不属于我，也不知道继续下去应该怎样去选择自己的生活。假如有这样一种选择，在温暖平淡的幸福中的你，可以和她一起走向绚烂光彩。但又觉得这个想法太过自私，你不可以要求你深爱的人放弃她的所有追求，来和你追寻这样一个不属于她的梦。当然如果她足够爱你的话，你也就是她追逐的梦想。那她，同样也应该是你追逐的梦想吧？ 只是，这样的梦想，你可以为她放弃吗？你当然说可以，原本梦想对自己来说只是梦想，如果你对她来说是全部。就算你没了梦想还可以有她，而如果她没有了你就等于失去了全部。但是没有梦想的你还是她那个深爱的人吗？而这时候的你是不是也会失去包括她在内的全部呢？ 如些，为你让步不再给你束缚，我选择放逐。感叹的只是这人生什么是属于你的，什么是不属于你的？是脚在寻找一双鞋子，还是一双鞋子在寻找你的脚？是一只鸟在寻找一个笼子，还是一个笼子在寻找一只鸟？]]></description>
			<content:encoded><![CDATA[<p>    在人的一生中，很多时候有些地方，值得你去追逐、牵挂的，可能是一个普通得不能再普通的人。这个人注定只有对你来说是最重要的，你为她放弃和付出的东西有多少，你认为有很多，多到说不出，但突然觉得又很少，少到她做个决定的勇气都没有&#8230;&#8230;.<br />
    怀揣着的是对梦想的追逐，手里握紧的是一张单程机票，身后的背包里装的是下一站的地图，希望它不会让我迷失。继续上路的理由是这个城市不属于我，也不知道继续下去应该怎样去选择自己的生活。假如有这样一种选择，在温暖平淡的幸福中的你，可以和她一起走向绚烂光彩。但又觉得这个想法太过自私，你不可以要求你深爱的人放弃她的所有追求，来和你追寻这样一个不属于她的梦。当然如果她足够爱你的话，你也就是她追逐的梦想。那她，同样也应该是你追逐的梦想吧？<br />
     只是，这样的梦想，你可以为她放弃吗？你当然说可以，原本梦想对自己来说只是梦想，如果你对她来说是全部。就算你没了梦想还可以有她，而如果她没有了你就等于失去了全部。但是没有梦想的你还是她那个深爱的人吗？而这时候的你是不是也会失去包括她在内的全部呢？<br />
如些，为你让步不再给你束缚，我选择放逐。感叹的只是这人生什么是属于你的，什么是不属于你的？是脚在寻找一双鞋子，还是一双鞋子在寻找你的脚？是一只鸟在寻找一个笼子，还是一个笼子在寻找一只鸟？</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/578/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Protected: 一切只是过程而已</title>
		<link>http://welog.org/blog/577</link>
		<comments>http://welog.org/blog/577#comments</comments>
		<pubDate>Sat, 02 Jun 2007 04:10:33 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Hongkong]]></category>

		<guid isPermaLink="false">http://welog.org/blog/577</guid>
		<description><![CDATA[There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[<form action="http://welog.org/wp-pass.php" method="post">
<p>This post is password protected. To view it please enter your password below:</p>
<p><label for="pwbox-577">Password:<br />
<input name="post_password" id="pwbox-577" type="password" size="20" /></label><br />
<input type="submit" name="Submit" value="Submit" /></p></form>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/577/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>看了这些还能说什么呢？</title>
		<link>http://welog.org/blog/576</link>
		<comments>http://welog.org/blog/576#comments</comments>
		<pubDate>Wed, 30 May 2007 03:04:37 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[家庭]]></category>
		<category><![CDATA[教育]]></category>

		<guid isPermaLink="false">http://welog.org/blog/576</guid>
		<description><![CDATA[早上从电视上看到的新闻，就是最近网络上的一段学生侮辱老师的新闻。刚刚想起来搜索到了这段 视频。 看到这些还能说什么呢？是教育出问题了吗？还是社会环境和家庭教育的造成的呢？&#8230;&#8230;&#8230;&#8230;&#8230;.]]></description>
			<content:encoded><![CDATA[<p>早上从电视上看到的新闻，就是最近网络上的一段学生侮辱老师的新闻。刚刚想起来搜索到了这段 <a href="http://www.youtube.com/watch?v=kFlMK2dcMwM">视频</a>。<br />
看到这些还能说什么呢？是教育出问题了吗？还是社会环境和家庭教育的造成的呢？&#8230;&#8230;&#8230;&#8230;&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/576/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google恶意软件警告</title>
		<link>http://welog.org/blog/574</link>
		<comments>http://welog.org/blog/574#comments</comments>
		<pubDate>Fri, 25 May 2007 06:47:51 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[adsense]]></category>
		<category><![CDATA[Feed]]></category>
		<category><![CDATA[Feedburner]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://welog.org/blog/574</guid>
		<description><![CDATA[之前传言的Google 收购 Feedburner? 的消息被证实了，以$100 Million美金 (多是现金) 拿下了,Goolge的触角又前进了一步，看来不久Google Adsense for feeds就将借着Feedburner平台直接上线了。就是不知道被Adsense卡嚓掉的用户是否会受牵连，那样就又少了一个赚钱的渠道&#8230;.. Feedburner：$100 Million Payday For Feedburner &#8211; This Deal Is Confirmed。 另外stopbadware.org早有听过了，不过从Google上发现这样的警告页面还是第一次，留照。]]></description>
			<content:encoded><![CDATA[<p>之前传言的<a href="http://welog.org/blog/573">Google 收购 Feedburner?</a> 的消息被<a href="http://www.techcrunch.com/2007/05/23/100-million-payday-for-feedburner-this-deal-is-confirmed/">证实</a>了，以$100 Million美金 (多是现金) 拿下了,Goolge的触角又前进了一步，看来不久Google Adsense for feeds就将借着Feedburner平台直接上线了。就是不知道被Adsense卡嚓掉的用户是否会受牵连，那样就又少了一个赚钱的渠道&#8230;..<br />
<strong>Feedburner：$100 Million Payday For Feedburner &#8211; This Deal Is Confirmed。</strong></p>
<p>另外stopbadware.org早有听过了，不过从Google上发现这样的警告页面还是第一次，留照。<br />
<img src='http://welog.org/wp-content/uploads/2007/05/googlestopbadware.jpg' alt='恶意软件警告' /></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/574/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google收购Feedburner？</title>
		<link>http://welog.org/blog/573</link>
		<comments>http://welog.org/blog/573#comments</comments>
		<pubDate>Sat, 19 May 2007 08:58:47 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Feedburner]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://welog.org/blog/573</guid>
		<description><![CDATA[虽然只是传言，虽然传言还未得到FeedBurner或Google官方的确认。但如果成功收购对于Blogger们是一个大好消息，当然国内的blogger们就要有所担心了。Google的目的很明显，收购FeedBurner后加上自有的Google Reader不仅可以得到更多的Rss Feed的分析数据,在Rss广告中市场也是占尽了优势。 而FeedBurner也在这几天推出了多语言版（进入FeedBurner首页后点“languages”，就可以选择简体中文。），这不知道是巧合的国际化还是FeedBurner的收购策略呢？拭目以待吧&#8230;&#8230;. 相关连接:1、Google收购FeedBurner, Feedsky的天空不再寂寞 2、FeedBurner将被Google收购? 3、今日最大传闻：Google收购FeedBurner]]></description>
			<content:encoded><![CDATA[<p>虽然只是传言，虽然传言还未得到FeedBurner或Google官方的确认。但如果成功收购对于Blogger们是一个大好消息，当然国内的blogger们就要有所担心了。Google的目的很明显，收购FeedBurner后加上自有的Google Reader不仅可以得到更多的Rss Feed的分析数据,在Rss广告中市场也是占尽了优势。<br />
而FeedBurner也在这几天推出了多语言版（进入FeedBurner首页后点“languages”，就可以选择简体中文。），这不知道是巧合的国际化还是FeedBurner的收购策略呢？拭目以待吧&#8230;&#8230;.</p>
<p>相关连接:1、<a href="http://www.mobinode.com/chinese/?p=22">Google收购FeedBurner, Feedsky的天空不再寂寞</a><br />
            2、<a href="http://www.williamlong.info/archives/896.html">FeedBurner将被Google收购?</a><br />
            3、<a href="http://webleon.org/2007/05/googlefeedburner.html">今日最大传闻：Google收购FeedBurner</a></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/573/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress 2.2</title>
		<link>http://welog.org/blog/572</link>
		<comments>http://welog.org/blog/572#comments</comments>
		<pubDate>Fri, 18 May 2007 02:53:17 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[心态]]></category>

		<guid isPermaLink="false">http://welog.org/blog/572</guid>
		<description><![CDATA[WordPress 2.2前天已经正式发布，这周得好好整理一下这里。 项目也进入了收尾阶段，很多想法都因为找到了一个合适的理由和借口而没有及时记录下来，再回想时只剩下残存的记忆。 而烦闷和沮丧的心情就如今天的天气，闷得发慌。是心态变了，还是原本就是无来由的自已在压抑自己。 快点静下来吧&#8230;&#8230;..]]></description>
			<content:encoded><![CDATA[<p><a href="http://wordpress.org/download/release-archive/" rel="external" target="_blank" class="blines3" title="Link outside of this blog">WordPress 2.2</a>前天已经正式发布，这周得好好整理一下这里。<br />
项目也进入了收尾阶段，很多想法都因为找到了一个合适的理由和借口而没有及时记录下来，再回想时只剩下残存的记忆。<br />
而烦闷和沮丧的心情就如今天的天气，闷得发慌。是心态变了，还是原本就是无来由的自已在压抑自己。<br />
快点静下来吧&#8230;&#8230;..</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/572/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Naked Day</title>
		<link>http://welog.org/blog/571</link>
		<comments>http://welog.org/blog/571#comments</comments>
		<pubDate>Thu, 05 Apr 2007 01:52:59 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://welog.org/blog/571</guid>
		<description><![CDATA[支持 Web standard 支持 CSS Naked Day，由于blog采用了Web standard，所以即便去掉样式表结构还是很清楚的。裸奔的感觉真爽:P]]></description>
			<content:encoded><![CDATA[<p>支持 Web standard 支持 <a href="http://naked.dustindiaz.com/">CSS Naked Day</a>，由于blog采用了Web standard，所以即便去掉样式表结构还是很清楚的。裸奔的感觉真爽:P</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/571/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 2.1.3 &amp; 2.0.10</title>
		<link>http://welog.org/blog/570</link>
		<comments>http://welog.org/blog/570#comments</comments>
		<pubDate>Wed, 04 Apr 2007 08:09:20 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[谷歌]]></category>
		<category><![CDATA[输入法]]></category>

		<guid isPermaLink="false">http://welog.org/blog/570</guid>
		<description><![CDATA[防止 XSS及XML-RPC的安全漏洞，WordPress 2.1.3和 2.0.10 同時登场，这应该也是WordPress2.2于4月23日发布前WordPress 2.1.x系列中的最后一个版本，官方建意所有玩家更新。 每次更新都是烦人的事情，所以偷懒一次等2.2出来后再升级吧。 WordPress 2.1.3 下载 WordPress 2.0.10 下载 PS:Google今天发布了中文拼音输入法系统：谷歌拼音输入法。 10M的容量，好一个庞然大物，原本以为这个输入法会很小。还没来得及试用&#8230;&#8230;.. PS:FeedSky的话题广告验证:0dadb542]]></description>
			<content:encoded><![CDATA[<p>防止 XSS及XML-RPC的安全漏洞，WordPress 2.1.3和 2.0.10 同時<a href="http://wordpress.org/development/2007/04/wordpress-213-and-2010/">登场</a>，这应该也是WordPress2.2于4月23日发布前WordPress 2.1.x系列中的最后一个版本，官方建意所有玩家更新。<br />
每次更新都是烦人的事情，所以偷懒一次等2.2出来后再升级吧。<br />
<a href="http://wordpress.org/download/">WordPress 2.1.3 下载</a><br />
<a href="http://wordpress.org/download/release-archive/">WordPress 2.0.10 下载</a></p>
<p>PS:Google今天发布了中文拼音输入法系统：<a href="http://tools.google.com/pinyin/index.html">谷歌拼音输入法</a>。<br />
10M的容量，好一个庞然大物，原本以为这个输入法会很小。还没来得及试用&#8230;&#8230;..</p>
<p>PS:FeedSky的话题广告验证:0dadb542</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/570/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>重庆钉子户事件现场</title>
		<link>http://welog.org/blog/569</link>
		<comments>http://welog.org/blog/569#comments</comments>
		<pubDate>Thu, 29 Mar 2007 02:40:41 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[blogger]]></category>
		<category><![CDATA[Zula]]></category>
		<category><![CDATA[钉子户]]></category>

		<guid isPermaLink="false">http://welog.org/blog/569</guid>
		<description><![CDATA[同时也看到非典型愤青zola同学亲身前往重庆九龙坡，查访这个史上最牛&#8221;钉子户&#8221;去了。虽然不是最早，但开创了一位独立Blogger独立调查新闻的先河,也会让那些新闻记录汗颜。媒体上很多相关的报到都不见了,希望zola能给我们带来这次事件更多有价值的消息，同时一定要注意人身安全。这里有捐赠方法。 以下转自ZoLa的文章，让文字无处不在。 在我的新闻敏感性和企图一夜成名的欲望的驱动下，我星期一中午喝完朋友雄的喜酒后，到娄底市转(A73)火车到贵阳市，然后从贵阳市转火车 (5608)到 重庆市，星期三的凌晨终于像一颗疯狂的石头一样滚到了重庆，准备利用私人BLOG来报道重庆九龙坡区杨家坪的”最牛钉子户”事件。 众所周知，这种涉及官方政府的新闻肯定会有一些报道不能面世，或者新闻稿件被不知名的”相关部门”的要求下删除。之前在新浪有一个BLOG在全程 24小时报道，但后来那个BLOG消失了。所以我意识到这是一次机会，我决定千里迢迢来重庆明查暗访，企图了解多方观点。这也许是一个于公于私都非常有益的举动。于公，可以让更多的人了解到政府是不是依法办事的政府，拆迁户的户主吴苹和杨武是不是守法的公民；于私，如果我因此花上几天时间加上几百块钱路费而名声大振的话，我将来可以有更多的社会资源用来成就一番事业。如果你能理解，请留言支持我。 从重庆火车站坐207到达杨家坪站，然后去吃米粉，顺便和米粉店老板交流了一下。米粉店老板所了解到的是，据说吴苹他们索价2000万，房地产管理局在报纸上说”不会接受漫天要价”，米粉店老板认为钉子户的户主做得太过份了。我吃完又麻又辣的米粉后，在他们指的方向下继续找”钉子”，结果碰到一个正拿着报纸去上班的男青年，他说让我跟他走就行。我询问他的看法，他表示支持吴苹和杨武，他还告诉我，吴苹他们的父辈是人大代表。快到钉子户大坑的时候，他指给我看透过房子与房子之间的空隙看到的杨武的房子顶上的国旗，然后他就与我分手了。我于是找制高点拍摄这一奇景，结果发现旁边有一个轻轨站台，叫杨家坪站。重庆没有地下铁，只有这种”地上铁”，叫轻轨。我登上站台后才发现，杨武之所以在自家房顶上放一个写着”公民的合法私有财产不受侵犯”的白条幅，是因为这个白色条幅会让来来往往的轻轨乘客看到，并且许多乘客在站台上以那个房子为背景用手机拍照留念。这也就是重庆钉子户之所以声名远扬的重要因素之一。并且这块区域是一个黄金区域，附近有一个步行街，轻轨站也带来许多人流，这块区域更显得寸土寸金了。谁都知道，在上海、北京、广州和深圳等有地铁的城市，拥有地铁站出口的便利的商品房就会特别贵。 我从站台上拍了几张照片后，然后绕到工地的围墙的大门口附近，也就是杨武的房子背向的那边。门口紧闭着，门内有六七个穿保安制服的人在里面聊天。门上面有一块牌子，上面写着”施工场地，为了您的安全，未经引领允许，不得进入”，我转了一圈，可能是去得太早的缘故，没有发现记者蹲守。然后我买了四份不同的报纸，找了一个地方坐下来慢慢看，结果没有发现与”最牛钉子户”的报道，旁边有人告诉我，昨天的报纸就有报导。后来，来了一个五六十多岁的老人，我以为他也想看报纸，我就把另一份报纸递给他，他没看，于是我问他知不知钉子户的事，想不到他居然不正面回答我，而是说了一句很让我震撼的话：” 啥子钉子户哦，那是当官的给他们起的名字！” 这让我很惊奇，我于是掏出手机打开录音功能，我求他再说一次以便我将这么深刻的说法放到网上给人听听，可是他说，录音我就不讲了，然后告诉我”他们只是维权”就走开了。原来他们以为我是记者了。后来，又来了一位抱着孙子的退休教师，她告诉我，吴苹他们没有什么背景，长辈不是人大代表，杨武的儿子在读书（应朋友们提醒，已经隐去儿子的相关介绍，请转载的朋友相应改动一下）”。杨武一家在那里开火锅店是开得最早的，生意是最好的，他们没有开价2000万，他们的房子被估价250万，房地产开发商加100万价，共是愿意支付350万给钉子户，但他们只要求”原地点，原面积，原朝向”的房子，他们不要钱。她还告诉我，她说她以前在铁马集团的房子也是被恐吓下拆迁的，当时是”工人下岗、干部撤职”的行政手段让他们屈服的，杨武他们之所以敢硬颈，就是因为他们是个体户，不受体制内的胁迫。 后来，我再到杨家坪站台上时，发现有些人在讨论”钉子户”，我于是站在旁边听。原来是两个有类似遭遇的人在诉说，一个是64岁的渝中区的老太，她的有房产证的房子在渝中区化新村的房子被要求以低于市场价3000元/平800元的2200元/平的补偿价拆掉，安置房却是比补偿价还要贵的尾房；另一位先生是戴军功章的48岁的陈先生，来自珠海。他的八层楼的房子在哄骗和毒打后被拆掉了，还有集资款被吞了，上访到北京，被一封”来事项转送告知单”推到广东省信访局，广东省信访局开了介绍信到”珠海市信访局”，结果珠海市信访局连信封都不打开，看都不看就报警了，他只好离开。他看到凤凰卫视报道了”重庆钉子户”，所以赶过来看能不能守到记者让记者报道一下。他们问我是不是记者，我说我不是，我只是弄了一个个人网站，我的网站的内容不会被删除。我说我想看一下相关资料，于是，陈先生带我去他那里拿U盘里的资料，然后刘奶奶也说要我去化龙桥看一下，看能不能也报道一下。于是刘老太和我一起去陈生下塌的地方，拿了一些资料，看了一些照片，我决定帮他发在我的网站上，利用SEO技术让更多的人知道这些事情。我拿了资料要走的时候，陈生掏出几百块钱塞给我，说是给我的路费。我从来没有见过这种场面，我从来没有想过帮人家发稿子就能拿钱，我坚持不要，我说我只是出于正义感而帮你，也不一定有什么效果，我说你要感谢我，就请我吃饭吧。他同意了。其实，我的真实想法是，我若收了他的钱，那我和蓝成长有什么区别？收了第一次辛苦费，也许我还会去收第二次，这会离我展现正义感的初衷会越来越远。 告别了陈生，我和老太坐车去化龙桥。我接到陈生的电话，说是要帮我订一个房间，我也就心安理得的接受。反正我也要在九龙坡呆几天报道钉子户的事件。 在车上遇到一位中年教师，他用普通话告诉我，钉子户确实没有背景，但他们抓住了政府的软肋。这件事的关键的关键是，地产商还没有获得所有拆迁户的同意就擅自破土动工，政府监管失职；还有就是，九龙坡区没有一块绿地，这块地在规划中是公园，但政府卖给房地产开发商建造商品房，这是政府不对。这才是19号下判决，本应该在22日的时候就拆除，但至今仍未拆除的真正原因，这里面有内幕交易。他还说，并且还有搞笑的不合理的地方是，本来是房地产商应该上法院告杨武吴苹夫妇，但居然原告是九龙坡房管局。也就是说，本来是房子可卖可不卖的民事纠纷变成了行政诉讼。 到了化龙桥，那里一片狼籍，很多信宅楼都空了，还有百分之十的住户由于无处可去而不得不留在那里，都是一些老头老太，他们”摆开龙门阵”，跟我讲，政府用 “吓哄骗”的手段让他们服从，而且有不戴肩章的穿制服的人打人，不按市场价给补偿，安置房又是旧房。他们说他们的声音无法发出，所以希望我写写放在网上。我拍了一些照片 精彩图片我稍候去网吧上传。我先用GPRS上网发了文字再说。欢迎转载，本站所有文章不制止商业转载，只需署名和注明出处。推荐使用标题：最牛网志作者Zola暗访最牛”钉子户”。欢迎关注本站的后续报道。]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/q-m0b5I0zKc"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/q-m0b5I0zKc" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object><br />
同时也看到非典型愤青<a href="http://www.zuola.com/weblog">zola</a>同学亲身前往重庆九龙坡，查访这个<a href="http://www.google.cn/search?complete=1&#038;hl=zh-CN&#038;newwindow=1&#038;client=firefox-a&#038;rls=org.mozilla%3Azh-CN%3Aofficial&#038;hs=ij4&#038;q=%E9%87%8D%E5%BA%86%E9%92%89%E5%AD%90%E6%88%B7&#038;btnG=Google+%E6%90%9C%E7%B4%A2&#038;meta=">史上最牛&#8221;钉子户&#8221;</a>去了。虽然不是最早，但开创了一位独立Blogger独立调查新闻的先河,也会让那些新闻记录汗颜。媒体上很多相关的报到都不见了,希望zola能给我们带来这次事件更多有价值的消息，同时<strong>一定要注意人身安全</strong>。这里有<a href="http://www.zuola.com/weblog/?p=752">捐赠</a>方法。</p>
<p><strong>以下转自ZoLa的文章，让文字无处不在。</strong><br />
在我的新闻敏感性和企图一夜成名的欲望的驱动下，我星期一中午喝完朋友雄的喜酒后，到娄底市转(A73)火车到贵阳市，然后从贵阳市转火车 (5608)到 重庆市，星期三的凌晨终于像一颗疯狂的石头一样滚到了重庆，准备利用私人BLOG来报道重庆九龙坡区杨家坪的”最牛钉子户”事件。</p>
<p>众所周知，这种涉及官方政府的新闻肯定会有一些报道不能面世，或者新闻稿件被不知名的”相关部门”的要求下删除。之前在新浪有一个BLOG在全程 24小时报道，但后来那个BLOG消失了。所以我意识到这是一次机会，我决定千里迢迢来重庆明查暗访，企图了解多方观点。这也许是一个于公于私都非常有益的举动。于公，可以让更多的人了解到政府是不是依法办事的政府，拆迁户的户主吴苹和杨武是不是守法的公民；于私，如果我因此花上几天时间加上几百块钱路费而名声大振的话，我将来可以有更多的社会资源用来成就一番事业。如果你能理解，请留言支持我。</p>
<p>从重庆火车站坐207到达杨家坪站，然后去吃米粉，顺便和米粉店老板交流了一下。米粉店老板所了解到的是，据说吴苹他们索价2000万，房地产管理局在报纸上说”不会接受漫天要价”，米粉店老板认为钉子户的户主做得太过份了。我吃完又麻又辣的米粉后，在他们指的方向下继续找”钉子”，结果碰到一个正拿着报纸去上班的男青年，他说让我跟他走就行。我询问他的看法，他表示支持吴苹和杨武，他还告诉我，吴苹他们的父辈是人大代表。快到钉子户大坑的时候，他指给我看透过房子与房子之间的空隙看到的杨武的房子顶上的国旗，然后他就与我分手了。我于是找制高点拍摄这一奇景，结果发现旁边有一个轻轨站台，叫杨家坪站。重庆没有地下铁，只有这种”地上铁”，叫轻轨。我登上站台后才发现，杨武之所以在自家房顶上放一个写着”公民的合法私有财产不受侵犯”的白条幅，是因为这个白色条幅会让来来往往的轻轨乘客看到，并且许多乘客在站台上以那个房子为背景用手机拍照留念。这也就是重庆钉子户之所以声名远扬的重要因素之一。并且这块区域是一个黄金区域，附近有一个步行街，轻轨站也带来许多人流，这块区域更显得寸土寸金了。谁都知道，在上海、北京、广州和深圳等有地铁的城市，拥有地铁站出口的便利的商品房就会特别贵。</p>
<p>我从站台上拍了几张照片后，然后绕到工地的围墙的大门口附近，也就是杨武的房子背向的那边。门口紧闭着，门内有六七个穿保安制服的人在里面聊天。门上面有一块牌子，上面写着”施工场地，为了您的安全，未经引领允许，不得进入”，我转了一圈，可能是去得太早的缘故，没有发现记者蹲守。然后我买了四份不同的报纸，找了一个地方坐下来慢慢看，结果没有发现与”最牛钉子户”的报道，旁边有人告诉我，昨天的报纸就有报导。后来，来了一个五六十多岁的老人，我以为他也想看报纸，我就把另一份报纸递给他，他没看，于是我问他知不知钉子户的事，想不到他居然不正面回答我，而是说了一句很让我震撼的话：” 啥子钉子户哦，那是当官的给他们起的名字！” 这让我很惊奇，我于是掏出手机打开录音功能，我求他再说一次以便我将这么深刻的说法放到网上给人听听，可是他说，录音我就不讲了，然后告诉我”他们只是维权”就走开了。原来他们以为我是记者了。后来，又来了一位抱着孙子的退休教师，她告诉我，吴苹他们没有什么背景，长辈不是人大代表，杨武的儿子在读书（应朋友们提醒，已经隐去儿子的相关介绍，请转载的朋友相应改动一下）”。杨武一家在那里开火锅店是开得最早的，生意是最好的，他们没有开价2000万，他们的房子被估价250万，房地产开发商加100万价，共是愿意支付350万给钉子户，但他们只要求”原地点，原面积，原朝向”的房子，他们不要钱。她还告诉我，她说她以前在铁马集团的房子也是被恐吓下拆迁的，当时是”工人下岗、干部撤职”的行政手段让他们屈服的，杨武他们之所以敢硬颈，就是因为他们是个体户，不受体制内的胁迫。</p>
<p>后来，我再到杨家坪站台上时，发现有些人在讨论”钉子户”，我于是站在旁边听。原来是两个有类似遭遇的人在诉说，一个是64岁的渝中区的老太，她的有房产证的房子在渝中区化新村的房子被要求以低于市场价3000元/平800元的2200元/平的补偿价拆掉，安置房却是比补偿价还要贵的尾房；另一位先生是戴军功章的48岁的陈先生，来自珠海。他的八层楼的房子在哄骗和毒打后被拆掉了，还有集资款被吞了，上访到北京，被一封”来事项转送告知单”推到广东省信访局，广东省信访局开了介绍信到”珠海市信访局”，结果珠海市信访局连信封都不打开，看都不看就报警了，他只好离开。他看到凤凰卫视报道了”重庆钉子户”，所以赶过来看能不能守到记者让记者报道一下。他们问我是不是记者，我说我不是，我只是弄了一个个人网站，我的网站的内容不会被删除。我说我想看一下相关资料，于是，陈先生带我去他那里拿U盘里的资料，然后刘奶奶也说要我去化龙桥看一下，看能不能也报道一下。于是刘老太和我一起去陈生下塌的地方，拿了一些资料，看了一些照片，我决定帮他发在我的网站上，利用SEO技术让更多的人知道这些事情。我拿了资料要走的时候，陈生掏出几百块钱塞给我，说是给我的路费。我从来没有见过这种场面，我从来没有想过帮人家发稿子就能拿钱，我坚持不要，我说我只是出于正义感而帮你，也不一定有什么效果，我说你要感谢我，就请我吃饭吧。他同意了。其实，我的真实想法是，我若收了他的钱，那我和蓝成长有什么区别？收了第一次辛苦费，也许我还会去收第二次，这会离我展现正义感的初衷会越来越远。</p>
<p>告别了陈生，我和老太坐车去化龙桥。我接到陈生的电话，说是要帮我订一个房间，我也就心安理得的接受。反正我也要在九龙坡呆几天报道钉子户的事件。</p>
<p>在车上遇到一位中年教师，他用普通话告诉我，钉子户确实没有背景，但他们抓住了政府的软肋。这件事的关键的关键是，地产商还没有获得所有拆迁户的同意就擅自破土动工，政府监管失职；还有就是，九龙坡区没有一块绿地，这块地在规划中是公园，但政府卖给房地产开发商建造商品房，这是政府不对。这才是19号下判决，本应该在22日的时候就拆除，但至今仍未拆除的真正原因，这里面有内幕交易。他还说，并且还有搞笑的不合理的地方是，本来是房地产商应该上法院告杨武吴苹夫妇，但居然原告是九龙坡房管局。也就是说，本来是房子可卖可不卖的民事纠纷变成了行政诉讼。</p>
<p>到了化龙桥，那里一片狼籍，很多信宅楼都空了，还有百分之十的住户由于无处可去而不得不留在那里，都是一些老头老太，他们”摆开龙门阵”，跟我讲，政府用 “吓哄骗”的手段让他们服从，而且有不戴肩章的穿制服的人打人，不按市场价给补偿，安置房又是旧房。他们说他们的声音无法发出，所以希望我写写放在网上。我拍了一些照片</p>
<p>精彩图片我稍候去网吧上传。我先用GPRS上网发了文字再说。欢迎转载，本站所有文章不制止商业转载，只需署名和注明出处。推荐使用标题：最牛网志作者Zola暗访最牛”钉子户”。欢迎关注本站的后续报道。 </p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/569/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>百度日本上线</title>
		<link>http://welog.org/blog/568</link>
		<comments>http://welog.org/blog/568#comments</comments>
		<pubDate>Thu, 22 Mar 2007 02:40:14 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[baidu]]></category>
		<category><![CDATA[日本]]></category>
		<category><![CDATA[百度]]></category>

		<guid isPermaLink="false">http://welog.org/blog/568</guid>
		<description><![CDATA[百度日本站正式上线，搜了几个符合日本特色的词汇，本地化相当到位。不知道这次百度提供的富有日本特色的搜索服务在国内会不会被Block掉，面对这样的情况，我倒要看看这次“GFW”做何反应。]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.baidu.jp">百度日本站</a>正式上线，搜了几个符合日本特色的词汇，本地化相当到位。不知道这次百度提供的富有日本特色的搜索服务在国内会不会被Block掉，面对这样的情况，我倒要看看这次“GFW”做何反应。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/568/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>招聘: 网站和数据库开发工程师</title>
		<link>http://welog.org/blog/566</link>
		<comments>http://welog.org/blog/566#comments</comments>
		<pubDate>Fri, 16 Mar 2007 05:20:20 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[.Net，程序员]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[招聘]]></category>

		<guid isPermaLink="false">http://welog.org/blog/566</guid>
		<description><![CDATA[目前公司已结束项目需求分析和底层架构以及逻辑设计，下面的工作主要集中在代码和前台设计方面，尝试用BLOG招聘的方式看是否有更好的效果。如果你对以下的工作有兴趣，欢迎和我们取得联系: 1. 围绕.Net/JavaScript/Sql Server的网站程序员; @本科及以上学历，计算机相关专业； @精通ASP.NET, 熟悉HTML/JavaScript/XML,熟悉html控件、web服务器控件和用户控件等。 @熟悉C#开发语言, 熟练使用visual studio 2005,对页面代码比较熟悉。 @对WEB2.0有较深见解，熟悉多层和分布式开发，多线程编程。 2. 围绕.Net/Sql Server/WebService/XML的网站数据库开发; @计算机相关专业本科及以上学历； @有网站后台数据库开发经验，熟悉ASP.NET、XML语言； @精通Sql Server 2000/2005的体系架构、内部运行机制和操作；熟悉网站后台数据库结构。 @熟练编写存储过程、触发器等，有数据库性能和安全方面的知识，有Sql Server数据库管理经验。 @了解XML，WebService，Remoting等技术； @具有强烈的责任感和集体荣誉感，自学能力强；良好的团队协作精神和高度工作热情； @最好有互联网应用项目开发经验者。 有兴趣或者问题请email至：zhuobinxj[at]gmail.com，你可以用任何方式介绍自己。 欢迎转载。谢谢！]]></description>
			<content:encoded><![CDATA[<p>目前公司已结束项目需求分析和底层架构以及逻辑设计，下面的工作主要集中在代码和前台设计方面，尝试用BLOG招聘的方式看是否有更好的效果。如果你对以下的工作有兴趣，欢迎和我们取得联系:<br />
<strong>1. 围绕.Net/JavaScript/Sql Server的网站程序员;</strong><br />
@本科及以上学历，计算机相关专业；<br />
@精通ASP.NET, 熟悉HTML/JavaScript/XML,熟悉html控件、web服务器控件和用户控件等。<br />
@熟悉C#开发语言, 熟练使用visual studio 2005,对页面代码比较熟悉。<br />
@对WEB2.0有较深见解，熟悉多层和分布式开发，多线程编程。</p>
<p><strong>2. 围绕.Net/Sql Server/WebService/XML的网站数据库开发;</strong><br />
@计算机相关专业本科及以上学历；<br />
@有网站后台数据库开发经验，熟悉ASP.NET、XML语言；<br />
@精通Sql Server 2000/2005的体系架构、内部运行机制和操作；熟悉网站后台数据库结构。<br />
@熟练编写存储过程、触发器等，有数据库性能和安全方面的知识，有Sql Server数据库管理经验。<br />
@了解XML，WebService，Remoting等技术；<br />
@具有强烈的责任感和集体荣誉感，自学能力强；良好的团队协作精神和高度工作热情；<br />
@最好有互联网应用项目开发经验者。</p>
<p><strong>有兴趣或者问题请email至：zhuobinxj[at]gmail.com，你可以用任何方式介绍自己。</strong></p>
<p>欢迎转载。谢谢！</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/566/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>浏览器被无耻的Vnet劫持!!!</title>
		<link>http://welog.org/blog/561</link>
		<comments>http://welog.org/blog/561#comments</comments>
		<pubDate>Tue, 27 Feb 2007 02:36:33 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[OpenDns]]></category>
		<category><![CDATA[上海电信]]></category>
		<category><![CDATA[流氓]]></category>

		<guid isPermaLink="false">http://welog.org/blog/561</guid>
		<description><![CDATA[昨晚还在新闻上听到国家是如何如何反对流氓及流氓软件的，其实最流氓的就是可恶的上海电信。这几天访问任何网站(我是上海Adsl用户)，都被一个域名为Vnet .cn的网站劫持，且和以往不同的是它还可以自动加入关键词做为搜索结果页。这难道不是流氓行为？整&#8230;&#8230;治口号而已。 这里是个解决办法，虽然不是很方便。 还有一种方法就是直接使用OpenDNS：想使用OpenDNS的服务非常简单，只需要将你现在的DNS换为如下两个地址就行了，安全如否还没感觉到，大家如果出现和我一样的情况可以谨慎选择。无奈&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;Shit!!!! * 208.67.222.222 * 208.67.220.220]]></description>
			<content:encoded><![CDATA[<p>昨晚还在新闻上听到国家是如何如何反对流氓及流氓软件的，其实最流氓的就是<strong>可恶的上海电信</strong>。这几天访问任何网站(我是上海Adsl用户)，都被一个域名为<strong>Vnet .cn</strong>的网站劫持，且和以往不同的是<strong>它</strong>还可以自动加入关键词做为搜索结果页。这难道不是流氓行为？整&#8230;&#8230;治口号而已。<br />
<a href="http://ido.3mt.com.cn/Article/200611/show545631c7p1.html">这里</a>是个解决办法，虽然不是很方便。<br />
还有一种方法就是直接使用OpenDNS：想使用OpenDNS的服务非常简单，只需要将你现在的DNS换为如下两个地址就行了，安全如否还没感觉到，大家如果出现和我一样的情况可以谨慎选择。无奈&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;Shit!!!!<br />
    * 208.67.222.222<br />
    * 208.67.220.220</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/561/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flickr强制使用Yahoo ID登陆</title>
		<link>http://welog.org/blog/560</link>
		<comments>http://welog.org/blog/560#comments</comments>
		<pubDate>Wed, 31 Jan 2007 02:17:43 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[整合]]></category>
		<category><![CDATA[霸王条款]]></category>

		<guid isPermaLink="false">http://welog.org/blog/560</guid>
		<description><![CDATA[刚收到一封Flickr mail,大意就是以后用户登陆Flickr就得直接使用Yahoo的ID登陆或者重新注册Yahoo！ID登陆，了。自从Flickr被yahoo!收购后就提出了帐户整合的说明，也就是说用户可以在2006年之前将flickr帐户和自己的yahoo!帐户整合，如果在这期间不进行整合,flickr将强制该用户创建yahoo!帐号再进行整合，不然将无法再继续使用flickr的服务。而如果用户选择yahoo!帐号自杀的话，那么该flickr帐号下的所有图片也将跟着帐号一起消失！的确，用这样的方式整合Flickr用户对yahoo!而言可能会增加一定的Yahoo用户和流量，但同时也深深伤害了众多Flickr用户的感情，而且这种对于整合对于品牌的影响几乎是不可挽回的。想想用户为了享受Flickr的服务而被迫去注册一个yahoo!帐号，其用途仅仅用来登陆flickr，不是很可笑吗？就像当年Sohu收购ChinaRen一样，用的也是同样的手法，收购之后的ChinaRen也同样被整合进了Sohu，不再接受用户注册，强制新用户使用或注册Sohu帐号。然而Sohu除了得到点用户和流量之外得到什么了呢？ 虽然Flickr的服务的确很好，但如果Yahoo！用这种霸王条款强制用户做自己不喜欢的事，那么我只能说Goodbye Flickr。]]></description>
			<content:encoded><![CDATA[<p>刚收到一封Flickr mail,大意就是以后用户登陆Flickr就得直接使用Yahoo的ID登陆或者重新注册Yahoo！ID登陆，了。自从<a href="http://Flickr.com">Flickr</a>被yahoo!收购后就提出了<a href="http://www.flickr.com/help/signin/#100">帐户整合的说明</a>，也就是说用户可以在2006年之前将flickr帐户和自己的yahoo!帐户整合，如果在这期间不进行整合,flickr将强制该用户创建yahoo!帐号再进行整合，不然将无法再继续使用flickr的服务。而如果用户选择yahoo!帐号自杀的话，那么该flickr帐号下的所有图片也将跟着帐号一起消失！的确，用这样的方式整合Flickr用户对yahoo!而言可能会增加一定的Yahoo用户和流量，但同时也深深伤害了众多Flickr用户的感情，而且这种对于整合对于品牌的影响几乎是不可挽回的。想想用户为了享受Flickr的服务而被迫去注册一个yahoo!帐号，其用途仅仅用来登陆flickr，不是很可笑吗？就像当年Sohu收购ChinaRen一样，用的也是同样的手法，收购之后的ChinaRen也同样被整合进了Sohu，不再接受用户注册，强制新用户使用或注册Sohu帐号。然而Sohu除了得到点用户和流量之外得到什么了呢？<br />
虽然Flickr的服务的确很好，但如果Yahoo！用这种霸王条款强制用户做自己不喜欢的事，那么我只能说Goodbye Flickr。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/560/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>遭遇拙劣的skype骗局</title>
		<link>http://welog.org/blog/559</link>
		<comments>http://welog.org/blog/559#comments</comments>
		<pubDate>Mon, 29 Jan 2007 05:40:46 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[生活]]></category>
		<category><![CDATA[Skype]]></category>
		<category><![CDATA[骗局]]></category>

		<guid isPermaLink="false">http://welog.org/blog/559</guid>
		<description><![CDATA[虽然我早就有了Skype帐号，但我很少使用，原本开的IM工具就够多的了。上周公司要开个网络音频会议才从硬盘里找出Skype安装上了。今天早上上班，skype上弹出一条中奖信息，还以为今天是我的幸运日，中了此等大奖。 尊敬的skype用户您好: 为了回报广大skype用户长期以来对全国skype网络科技有限公司的厚爱支持! 本公司决定在黄金期与索尼赞助商举办有奖活动 , 恭喜! 您已被系统随机抽选为今日用户, 尊敬的用户您将可获得是由索尼公司送出惊喜奖金 ￥28000 RMB 以及索尼A系列笔记本电脑一部。（支持全国联保 价值 ￥1,6888 RMB ）请您登陆Skype本次活动官方网站: http://skyqetom.com/skypef/ 办理领取!请您切记您的(验证代码:588) 活动详情咨询客服热线: 089-868318066 全国skype网络科技有限公司 2007年1月29日 打开网址看了看，眨看还真像那么回事。但仔细看一下这个网址是&#8221;skyqetom&#8221;而不是&#8221;skypetom“，Skype没理由因为这样的活动而改标识吧。而所谓的咨询热线，089这样的区号根本就是不存在的，从号码的尾数说明些区号为 0898（海口）。而中奖要支付奖金的汇费、奖品的邮寄快递费用以及办理领取奖金奖品的工本费用管理费用等等，就是没提到个人所得税，同时汇款却要汇到私人账户上&#8230;&#8230;哈哈，又是一个骗局，只是将我们经常在手机上收到的垃圾短信转移到了网上即所谓的&#8221;钓鱼网站&#8220;。我还故意打了个电话过去，接电话的人相当的专业，的确有点客服的素质。只是问他电话怎么是海口的时候，他就直接把电话挂断了。哈哈 不能不说这些骗子很聪明，注册一个很容易搞糊涂的skyqetom域名，同时又将区号上做障眼法。故意将区号最后一位放在了后面，以免让人一看区号就知道是沿海一带(骗子多发地)，容易引起警觉。这个域名的申请人及信息可以查看这里。 后来去Skype中文唯一官网Tom查看了一下，原来这样的骗局早就已经有了，且官网还贴出了防骗公告。只是不知道像今天给我发信息的这个几个网站早就已经列在黑名单上了，怎么这么长时间了还在继续行骗呢？这个域名是在XINNETDNS.COM注册的，信产部不是有备案吗？不是有网络警察吗？出现这样的虚假信息也没人管？人都哪去了？ 而更为搞笑的是，就在收到这条信息后不到一个小时，又连续收到了三条内容不同的Skype中奖信息，我也懒得理会了，手段都差不多了。 我把这些发信息的地址记录下来，让他们无处藏身。 1、http://skypen.0055.cn 电话:08-982396611-0000 2、http://skyqetom.com/skypef 电话:089-868318066 3、http://skypen.0807.net 电话:08-982392008-2222 这年头“钓鱼网站”也出现了“瓶颈”，精心设计的骗局由于同行太多而自动暴露。虽然这个骗术不算高明，大多数有理性的人是不会被这种小技量骗到的，不过也可能会有人上当。现金和笔记本再加上不“系统提示”还是很诱人的。接近年关骗子比较猖獗,所以还是提醒大家“天上不会掉馅饼，不要贪图小便宜。”其实仔细看看这些网站，很容易发现漏洞百出！]]></description>
			<content:encoded><![CDATA[<p>虽然我早就有了Skype帐号，但我很少使用，原本开的IM工具就够多的了。上周公司要开个网络音频会议才从硬盘里找出Skype安装上了。今天早上上班，skype上弹出一条中奖信息，还以为今天是我的幸运日，中了此等大奖。<br />
<code>尊敬的skype用户您好:<br />
               为了回报广大skype用户长期以来对全国skype网络科技有限公司的厚爱支持! 本公司决定在黄金期与索尼赞助商举办有奖活动 , 恭喜! 您已被系统随机抽选为今日用户,<br />
尊敬的用户您将可获得是由索尼公司送出惊喜奖金 ￥28000 RMB 以及索尼A系列笔记本电脑一部。（支持全国联保 价值 ￥1,6888 RMB ）请您登陆Skype本次活动官方网站: http://skyqetom.com/skypef/ 办理领取!请您切记您的(验证代码:588)<br />
活动详情咨询客服热线: 089-868318066<br />
全国skype网络科技有限公司<br />
2007年1月29日<br />
</code><br />
打开网址看了看，眨看还真像那么回事。但仔细看一下这个网址是&#8221;skyqetom&#8221;而不是&#8221;skypetom“，Skype没理由因为这样的活动而改标识吧。而所谓的咨询热线，089这样的区号根本就是不存在的，从号码的尾数说明些区号为 0898（海口）。而中奖要支付奖金的汇费、奖品的邮寄快递费用以及办理领取奖金奖品的工本费用管理费用等等，就是没提到个人所得税，同时汇款却要汇到私人账户上&#8230;&#8230;哈哈，又是一个骗局，只是将我们经常在手机上收到的垃圾短信转移到了网上即所谓的&#8221;<strong>钓鱼网站</strong>&#8220;。我还故意打了个电话过去，接电话的人相当的专业，的确有点客服的素质。只是问他电话怎么是海口的时候，他就直接把电话挂断了。哈哈<br />
不能不说这些骗子很聪明，注册一个很容易搞糊涂的skyqetom域名，同时又将区号上做障眼法。故意将区号最后一位放在了后面，以免让人一看区号就知道是沿海一带(骗子多发地)，容易引起警觉。这个域名的申请人及信息可以<a href="http://panda.www.net.cn/cgi-bin/Whois.cgi?domain=skyqetom&#038;com=yes&#038;referer=">查看这里</a>。<br />
后来去Skype中文唯一官网<a href="http://skype.tom.com">Tom</a>查看了一下，原来这样的骗局早就已经有了，且官网还贴出了<a href="http://skype.tom.com/gonggao.htm">防骗公告</a>。只是不知道像今天给我发信息的这个几个网站早就已经列在黑名单上了，怎么这么长时间了还在继续行骗呢？这个域名是在XINNETDNS.COM注册的，信产部不是有备案吗？不是有网络警察吗？出现这样的虚假信息也没人管？人都哪去了？</p>
<p>而更为搞笑的是，就在收到这条信息后不到一个小时，又连续收到了三条内容不同的Skype中奖信息，我也懒得理会了，手段都差不多了。<br />
我把这些发信息的地址记录下来，让他们无处藏身。<br />
1、<strong>http://skypen.0055.cn    电话:08-982396611-0000</strong><br />
2、<strong>http://skyqetom.com/skypef   电话:089-868318066</strong><br />
3、<strong>http://skypen.0807.net    电话:08-982392008-2222 </strong><br />
这年头“钓鱼网站”也出现了“瓶颈”，精心设计的骗局由于同行太多而自动暴露。虽然这个骗术不算高明，大多数有理性的人是不会被这种小技量骗到的，不过也可能会有人上当。现金和笔记本再加上不“<strong>系统提示</strong>”还是很诱人的。接近年关骗子比较猖獗,所以还是<strong>提醒大家</strong>“<strong>天上不会掉馅饼，不要贪图小便宜。</strong>”其实仔细看看这些网站，很容易发现漏洞百出！</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/559/feed</wfw:commentRss>
		<slash:comments>180</slash:comments>
		</item>
		<item>
		<title>有关于Google及Yahoo二三事</title>
		<link>http://welog.org/blog/548</link>
		<comments>http://welog.org/blog/548#comments</comments>
		<pubDate>Mon, 08 Jan 2007 07:26:08 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[Web Service]]></category>
		<category><![CDATA[文字]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://welog.org/blog/548</guid>
		<description><![CDATA[自从地震后我的DH空间还在继续抽风,登陆后台奇慢，折腾几次更新日志的心情全无(2006年总结也是一拖再拖，还好理论上的春节还早，所以还有时间来慢慢总结及计划一下我的2007)。好在前段时间通过代理将Bloglines的OPML转入了Google Reader，让我能及时了解订阅的BLOGGER更新的信息。而改版后的Google Reader方便了许多，速度也比Bloglines快，只是使用习惯上还得熟悉段时间。同时Google Reader还新增了一个Trend(阅读趋势分析)功能，它可以看到最近 30 天的订阅内容阅读情况，分析出一周之内的阅读分布，同时还能详细统计到一天24小时内的阅读情况。如果无意外，近后RSS阅读器就选它了。其次就是Google 的 Blogger 开始支持域名绑定功能，登录新版blogger.com后在&#8221;设置&#8221;"发布&#8221;中，增加了&#8221;自定义域&#8221;功能，在文本框中输入自己的域名-&#8221;保存设置&#8221;，将域名CNAME记录解析到ghs.google.com即可。同时Google会自动将你XX.blogspot.com内容Redirect到现在的域名上，就连PR不会改变。:D再有就是Yahoo!的风向标，和Google的Trends以及百度指数相似，其中的“流量查询”还是有些新意的，但好像针对的是大型网站，对于流量小的站点没在统计之内，而且统计的范围只局限国内。这里有详细的说明，感兴趣的可以看官可以前方这里 powered by performancing firefox]]></description>
			<content:encoded><![CDATA[<p>自从地震后我的DH空间还在继续抽风,登陆后台奇慢，折腾几次更新日志的心情全无(2006年总结也是一拖再拖，还好理论上的春节还早，所以还有时间来慢慢总结及计划一下我的2007)。好在前段时间通过代理将Bloglines的OPML转入了<b>Google Reader</b>，让我能及时了解订阅的BLOGGER更新的信息。而改版后的<b>Google Reader</b>方便了许多，速度也比Bloglines快，只是使用习惯上还得熟悉段时间。同时<b>Google Reader</b>还新增了一个<a href="http://www.google.com/reader/view/?page=trends">Trend</a>(阅读趋势分析)功能，它可以看到最近 30 天的订阅内容阅读情况，分析出一周之内的阅读分布，同时还能详细统计到一天24小时内的阅读情况。如果无意外，近后RSS阅读器就选它了。<br />其次就是<a target="_blank" href="http://www.google.com/">Google</a> 的 <a target="_blank" href="http://www.blogger.com/">Blogger</a> 开始<a target="_blank" href="http://help.blogger.com/bin/answer.py?answer=55373" title="How do I use a custom domain name on my blog?">支持域名绑定功能</a>，登录新版blogger.com后在&#8221;设置&#8221;"发布&#8221;中，增加了&#8221;自定义域&#8221;功能，<span class="fullpost">在文本框中输入自己的域名-&#8221;保存设置&#8221;，将域名CNAME记录解析到ghs.google.com即可。</span>同时Google会自动将你XX.blogspot.com内容Redirect到现在的域名上，就连PR不会改变。:D<br />再有就是<a href="http://www.yahoo.com/">Yahoo!</a>的<a href="http://ysearchblog.cn/2007/01/post_63.html">风向标</a>，和Google的<a href="http://www.google.com/trends">Trends</a>以及百度指数相似，其中的“流量查询”还是有些新意的，但好像针对的是大型网站，对于流量小的站点没在统计之内，而且统计的范围只局限国内。<a href="http://ysearchblog.cn/2007/01/post_63.html">这里</a>有详细的说明，感兴趣的可以看官可以前方<a href="http://buzz.yahoo.com.cn">这里</a></p>
<p class="poweredbyperformancing">powered by <a href="http://performancing.com/firefox">performancing firefox</a></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/548/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>断网的后果&#8230;..</title>
		<link>http://welog.org/blog/544</link>
		<comments>http://welog.org/blog/544#comments</comments>
		<pubDate>Sat, 30 Dec 2006 06:45:31 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[代理]]></category>
		<category><![CDATA[地震]]></category>
		<category><![CDATA[断网]]></category>

		<guid isPermaLink="false">http://welog.org/blog/544</guid>
		<description><![CDATA[自海缆被震断后，所有的国外网站就无法正常访问了，DH的服务无法登陆，也没办法修改DNS，BLOG也不能更新,最惨的是一直使用的Bloglines也不能访问了,平时的信息大部分都是来自这里的RSS源，而我又没有导出OPML，这下整个世界清静了&#8230;..还好Google的服务大部分都能使用，不然真的要抓狂了。通过Gtalk终于得到了几个Public Proxy(22.231.50.97:80(韩国首尔的代理) 韩国青州的210.125.84.16:3124 via:pold 125.243.249.194:8080 via:fenng)上来冒个泡，同时将Bloglines的OPML导出放到Googlereader上来，虽然有点慢，但总比彻底隔绝强。不知道这种悲惨的境况要持续多久，按网通的说法是三星期，希望不要等得太久。 天灾是不可避免，平的世界脆弱的只有几根细细的电缆相联，轻轻的吹动一下联系就断了。唉&#8230;&#8230;]]></description>
			<content:encoded><![CDATA[<p>自海缆被震断后，所有的国外网站就无法正常访问了，DH的服务无法登陆，也没办法修改DNS，BLOG也不能更新,最惨的是一直使用的Bloglines也不能访问了,平时的信息大部分都是来自这里的RSS源，而我又没有导出OPML，这下整个世界清静了&#8230;..还好Google的服务大部分都能使用，不然真的要抓狂了。通过Gtalk终于得到了几个Public Proxy(22.231.50.97:80(韩国首尔的代理) 韩国青州的210.125.84.16:3124 via:<a href="http://plod.popoever.com">pold</a> 125.243.249.194:8080 via:fenng)上来冒个泡，同时将Bloglines的OPML导出放到Googlereader上来，虽然有点慢，但总比彻底隔绝强。不知道这种悲惨的境况要持续多久，按网通的说法是三星期，希望不要等得太久。<br />
天灾是<a href="http://plod.popoever.com/001167.html">不可避免</a>，<a href="http://blog.donews.com/keso/archive/2006/12/28/1104322.aspx">平的世界</a>脆弱的只有几根细细的电缆相联，轻轻的吹动一下联系就断了。唉&#8230;&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/544/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>NetBeans 5.5多国语言版发布</title>
		<link>http://welog.org/blog/535</link>
		<comments>http://welog.org/blog/535#comments</comments>
		<pubDate>Thu, 21 Dec 2006 03:21:49 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Netbeans]]></category>

		<guid isPermaLink="false">http://welog.org/blog/535</guid>
		<description><![CDATA[刚看到一条消息，NetBeans 5.5发布多国语言。而现在的NetBeans在SUN的大力支持下已经不能同日尔语了，从4.1开始全面支持Java平台的应用程序。目前的NetBeans 5.5是一个非常易于使用的开发工具，主要用于Java应用的开发和基于NetBeans平台的客户机应用的开发，最重要的是这些完全免费。 NetBeans 5.5包含多个新的特性：Java Persistence API(持续性应用编程接口)、JAX WS 2.0生产力工具、对Subversion的支持，以及对NetBeans GUI Builder(以往的编码名称为Project Matisse)的强化。 此外，Sun还发布了针对NetBeans 5.5的5个增值软件包。这5个增值软件包分别是：NetBeansEnterprise Pack、NetBeans Mobility Pack、NetBeans Profiler 5.5 Pack，以及对NetBeansVisual Web Pack的技术预览(来自 Sun Java Studio Creator)和NetBeans C/C++ Pack(ß 版)。 NetBeans 5.5 IDE现在提供简体中文，日文和巴西葡萄牙文多国语言包下载． 简体中文下载地址: NetBeans 5.5 IDE SUN官方下载 简体中文的简介: NetBeans 5.5 IDE]]></description>
			<content:encoded><![CDATA[<p>刚看到一条<a href="http://www.blogjava.net/lewhwa/archive/2006/12/20/89147.html">消息</a>，NetBeans 5.5发布多国语言。而现在的NetBeans在SUN的大力支持下已经不能同日尔语了，从4.1开始全面支持Java平台的应用程序。目前的NetBeans 5.5是一个非常易于使用的开发工具，主要用于Java应用的开发和基于NetBeans平台的客户机应用的开发，最重要的是这些完全免费。<br />
NetBeans 5.5包含多个新的特性：Java Persistence API(持续性应用编程接口)、JAX WS 2.0生产力工具、对Subversion的支持，以及对NetBeans GUI Builder(以往的编码名称为Project Matisse)的强化。<br />
此外，Sun还发布了针对NetBeans 5.5的5个增值软件包。这5个增值软件包分别是：<strong>NetBeansEnterprise Pack</strong>、<strong>NetBeans Mobility Pack</strong>、<strong>NetBeans Profiler 5.5 Pack</strong>，以及对<strong>NetBeansVisual Web Pack</strong>的技术预览(来自 Sun Java Studio Creator)和<strong>NetBeans C/C++ Pack</strong>(ß 版)。</p>
<p>NetBeans 5.5 IDE现在提供简体中文，日文和巴西葡萄牙文多国语言包下载．<br />
简体中文下载地址:<a href="http://www.netbeans.info/downloads/all.php?b_id=2323"> NetBeans 5.5 IDE</a> <a href="http://gceclub.sun.com.cn/download.html">SUN官方下载</a><br />
简体中文的简介: <a href="http://www.netbeans.org/products/index_zh_CN.html">NetBeans 5.5 IDE</a></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/535/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网通将开通根域名中国镜像服务器</title>
		<link>http://welog.org/blog/534</link>
		<comments>http://welog.org/blog/534#comments</comments>
		<pubDate>Wed, 20 Dec 2006 06:50:59 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[生活]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ip]]></category>

		<guid isPermaLink="false">http://welog.org/blog/534</guid>
		<description><![CDATA[新浪科技讯12月19日消息,网通集团宣布,已与美国威瑞信(VeriSign)公司达成协议,将开通根域名中国镜像服务器,今后中国网民访问.com以及. net网站时,域名解析将不再由设置在境外的域名服务器提供服务,长期以来在中国访问.com以及.net网站的安全性问题得到了保障,上网速度也将提升. 是好事吗？答:从技术上讲，这么做其实没有任何好处，如果没有GFW的干预基本上也没什么影响。只要封锁国外dns，这样很多代理软件就没法解析ip了。唉，实在没折了，做一下记录，有备无患。]]></description>
			<content:encoded><![CDATA[<p>新浪科技讯12月19日消息,网通集团宣布,已与美国威瑞信(VeriSign)公司达成协议,将开通根域名中国镜像服务器,今后中国网民访问.com以及. net网站时,域名解析将不再由设置在境外的域名服务器提供服务,长期以来在中国访问.com以及.net网站的安全性问题得到了保障,上网速度也将提升.<br />
是好事吗？答:从技术上讲，这么做其实没有任何好处，如果没有GFW的干预基本上也没什么影响。只要封锁国外dns，这样很多代理软件就没法解析ip了。唉，实在没折了，做一下记录，<a href="http://blog.techpush.com/archives/google-ip-address-list/">有备无患</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/534/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>湖南卫视《洞穴之光》</title>
		<link>http://welog.org/blog/529</link>
		<comments>http://welog.org/blog/529#comments</comments>
		<pubDate>Fri, 15 Dec 2006 03:46:42 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[教育]]></category>
		<category><![CDATA[洞穴村落]]></category>
		<category><![CDATA[湖南卫视]]></category>
		<category><![CDATA[独生子女]]></category>

		<guid isPermaLink="false">http://welog.org/blog/529</guid>
		<description><![CDATA[《洞穴之光 一》 《洞穴之光 二》 周一无意间看到湖南卫视推出了一档全新的节目《洞穴之光》——即把几位令家长头疼的孩子带到一个环境艰苦的洞穴村落，真实记录这群让头疼孩子和洞穴孩子们同吃、同住、同学习以此让孩子影响孩子潜移默化的故事……很震撼、很感人，我看到了那些孩子们流下的是绝对真实的感动和悔恨的泪水。 而山里孩子的那种朴实、坚强、懂事、吃苦耐劳的精神让我们更多看到的是困境中人性的美好。同时也突显了另一个问题，还有贫穷落后的山区的人们需要关注，光二万元的资助是解决不了问题了。 找了很久才从网上搜索到二个视频文件，做成TUDOU发上来。希望在关心独生子女问题的同时别忘了还有这些穷苦的大众。]]></description>
			<content:encoded><![CDATA[<p><object width="400" height="350"><param name="movie" value="http://www.tudou.com/v/tH9TeIu1LdY"></param><embed src="http://www.tudou.com/v/tH9TeIu1LdY" type="application/x-shockwave-flash" width="400" height="350"></embed></object><br />
《洞穴之光 一》<br />
<object width="400" height="350"><param name="movie" value="http://www.tudou.com/v/lQDhmo2-vJw"></param><embed src="http://www.tudou.com/v/lQDhmo2-vJw" type="application/x-shockwave-flash" width="400" height="350"></embed></object><br />
《洞穴之光 二》<br />
周一无意间看到湖南卫视推出了一档全新的节目《洞穴之光》——即把几位令家长头疼的孩子带到一个环境艰苦的洞穴村落，真实记录这群让头疼孩子和洞穴孩子们同吃、同住、同学习以此让孩子影响孩子潜移默化的故事……很震撼、很感人，我看到了那些孩子们流下的是绝对真实的感动和悔恨的泪水。<br />
而山里孩子的那种朴实、坚强、懂事、吃苦耐劳的精神让我们更多看到的是困境中人性的美好。同时也突显了另一个问题，还有贫穷落后的山区的人们需要关注，光二万元的资助是解决不了问题了。<br />
<strong>找了很久才从网上搜索到二个视频文件，做成TUDOU发上来。希望在关心独生子女问题的同时别忘了还有这些穷苦的大众。</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/529/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Gmail unavailable</title>
		<link>http://welog.org/blog/526</link>
		<comments>http://welog.org/blog/526#comments</comments>
		<pubDate>Thu, 14 Dec 2006 07:00:49 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[unavailable]]></category>

		<guid isPermaLink="false">http://welog.org/blog/526</guid>
		<description><![CDATA[今天一整天Gmail都无法登陆，搜索一切正常，看来是Goolge在做调整或者功能升级。只是像我这样将所有邮箱都转到Gmail的用户来说就郁闷了，通过POP3及Hotmail也收取不了Gmial的邮件。看来有必要做个折中的选择，虽然 Google中国的症结不在“谷歌”,即使谷歌不太懂中文 也没什么太大关系，最重要的是能访问。 PS:留存一份，以备后用:解决Goolge(Gmail)无法登陆的方法]]></description>
			<content:encoded><![CDATA[<p><img id="image525" src="http://welog.org/wp-content/uploads/2006/12/gmail.PNG" alt="gmail unavailable" /><br />
今天一整天Gmail都无法登陆，搜索一切正常，看来是Goolge在做调整或者功能升级。只是像我这样将所有邮箱都转到Gmail的用户来说就郁闷了，通过POP3及Hotmail也收取不了Gmial的邮件。看来有必要做个折中的选择，虽然 <a href="http://blog.donews.com/aigaogao/archive/2006/12/12/1095170.aspx">Google中国的症结不在“谷歌”</a>,即使<a href="http://blog.devep.net/virushuo/2006/12/11/post_45.html">谷歌不太懂中文 </a>也没什么太大关系，最重要的是能访问。<br />
PS:留存一份，以备后用:<a href="http://www.eos1.cn/web/index.php?option=com_content&#038;task=view&#038;id=86&#038;Itemid=38">解决Goolge(Gmail)无法登陆的方法</a></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/526/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google的纪念logo</title>
		<link>http://welog.org/blog/523</link>
		<comments>http://welog.org/blog/523#comments</comments>
		<pubDate>Tue, 12 Dec 2006 15:48:46 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://welog.org/blog/523</guid>
		<description><![CDATA[爱德华·蒙克（Edvard Munch，1863年12月12日—1944年1月23日），挪威表现主义画家和版画复制匠。他对心理苦闷的强烈的，呼唤式的处理手法对20世纪初德国表现主义的成长起了主要的影响。今天的Google LOGO就是这位印象派画家的代表作[《呐喊》 1893年]，以此纪念他的诞辰。 还有一个就是前天看到ZUOLA写的一篇关于Google Apps中的一个小错误，把＂即时通信＂写成＂即使通信＂。ZUOLA的这篇文章发布时间是2006年十二月11日, 星期一, ( 11:31 pm) ,但直到现在还没有更正过来。这样的小错误谷歌时有发生，充分证明了Google的确不太懂中文，而从这个小细节也能说明Google工作人员用的是拼音输入法。:)]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.google.com/search?q=edvard+munch"><img src=http://www.google.com/logos/edvard_munch.gif alt="Happy Birthday, Edvard Munch!" /></a><br />
<strong>爱德华·蒙克</strong>（Edvard Munch，1863年12月12日—1944年1月23日），挪威表现主义画家和版画复制匠。他对心理苦闷的强烈的，呼唤式的处理手法对20世纪初德国表现主义的成长起了主要的影响。今天的Google LOGO就是这位印象派画家的代表作[<a href="http://zh.wikipedia.org/wiki/爱德华·蒙克">《呐喊》 1893年</a>]，以此纪念他的诞辰。<br />
还有一个就是前天看到<a href="http://www.zuola.com/weblog/?p=655">ZUOLA</a>写的一篇关于Google Apps中的一个小错误，把＂即时通信＂写成＂<strong>即使通信</strong>＂。ZUOLA的这篇文章发布时间是<em>2006年十二月11日, 星期一, ( 11:31 pm) </em>,但直到现在还没有更正过来。这样的小错误<strong>谷歌</strong>时有发生，充分证明了Google的确不太懂中文，而从这个小细节也能说明Google工作人员用的是拼音输入法。:)</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/523/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>J2ME phone applications</title>
		<link>http://welog.org/blog/521</link>
		<comments>http://welog.org/blog/521#comments</comments>
		<pubDate>Mon, 11 Dec 2006 04:14:25 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[Je]]></category>
		<category><![CDATA[mobil]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://welog.org/blog/521</guid>
		<description><![CDATA[这个页面里列出了一些J2ME phone applications，有些同时给出了JAD和JAR包,方便开发用户使用,任何支持J2ME MIDP 2.0的手机或移动设备均可使用它。如果你的手机也支持MIDP 2.0,那么可以试试这些MINI版的WEB应用。:)]]></description>
			<content:encoded><![CDATA[<p><a href="http://mobits.com/jad/">这个页面里</a>列出了一些J2ME phone applications，有些同时给出了JAD和JAR包,方便开发用户使用,任何支持J2ME MIDP 2.0的手机或移动设备均可使用它。如果你的手机也支持MIDP 2.0,那么可以试试这些MINI版的WEB应用。:)</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/521/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SDA575 Rom 升级记录</title>
		<link>http://welog.org/blog/514</link>
		<comments>http://welog.org/blog/514#comments</comments>
		<pubDate>Thu, 30 Nov 2006 10:06:47 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[生活]]></category>
		<category><![CDATA[Rom]]></category>
		<category><![CDATA[升级]]></category>
		<category><![CDATA[手机]]></category>

		<guid isPermaLink="false">http://welog.org/blog/514</guid>
		<description><![CDATA[由于这段时间我的SDA575在使用中一直很慢，所以打算将2003se刷新到WM5上。在各大智能手机BBS上转了一圈，收集了相关软件和资料。刷新工作有点危险性，这里做下刷新记录,以防止&#8221;机毁人伤&#8221;。^_* 准备好数据线，手机要充满电,安装好Microsoft ActiveSync4.2（手机于电脑的同步软件） 1、首先，手机解锁，使用SDA的解锁软件。 2、将原来的SPL=1010064刷到1010109,因为WM5只能运行在1010109SPL值下。所需软件:Patched_RUU.exe，方法：结束wcescomm.exe进程(同步软件进程,一定要关掉，我试了很多次不成功都是因为Microsoft ActiveSync4.2重启),然后运行Patched_RUU.exe，按提示勾上所有的勾一直点下一步。 3、将手机改成superid,改成superid模式即使刷会了也能恢复。所需软件: CID改SuperCID手机同步后,打开SPVServices.exe,出现页面后,点击左侧的CID Tool (Alpha)后会得到一个Set CID 11111111的页面,点击继续。CID change succsee 出来后代表你更新成功了。 4、刷新ROM,这一步是最重要的一部,所需软件MTTY。连上手机数据线,关掉同步软件的进程,打开软件MTTY,选择USB连接。进入软件车键,会出现 Cmd>输入 l F:\WM5.bin(l 是小写的L，后面的路径就是ROM存在你电脑的什么位置)。按下回车键开始刷&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230; 整个过程花了二个多小时就将2003CE刷新到WM5上，一路下来没有出现突发事件&#8230;.。从目前试用来看开机速度比2003CE快不少；以前有射屏的形象刷新后突然没有了，看来这时间花的值得。安装了一些常用的软件，再观察几天，再做其它考虑。]]></description>
			<content:encoded><![CDATA[<p>由于这段时间我的SDA575在使用中一直很慢，所以打算将2003se刷新到WM5上。在各大智能手机BBS上转了一圈，收集了相关软件和资料。刷新工作有点危险性，这里做下刷新记录,以防止&#8221;机毁人伤&#8221;。^_*<br />
准备好数据线，手机要充满电,安装好Microsoft ActiveSync4.2（手机于电脑的同步软件）<br />
1、首先，手机解锁，使用<strong>SDA的解锁</strong>软件。<br />
2、将原来的SPL=1010064刷到1010109,因为WM5只能运行在1010109SPL值下。所需软件:<strong>Patched_RUU.exe</strong>，方法：结束wcescomm.exe进程(同步软件进程,一定要关掉，我试了很多次不成功都是因为Microsoft ActiveSync4.2重启),然后运行Patched_RUU.exe，按提示勾上所有的勾一直点下一步。<br />
3、将手机改成superid,改成superid模式即使刷会了也能恢复。所需软件: <strong>CID改SuperCID</strong>手机同步后,打开SPVServices.exe,出现页面后,点击左侧的CID Tool (Alpha)后会得到一个Set CID 11111111的页面,点击继续。<em>CID change succsee <img src='http://welog.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em>出来后代表你更新成功了。<br />
4、刷新ROM,这一步是最重要的一部,所需软件<strong>MTTY</strong>。连上手机数据线,关掉同步软件的进程,打开软件MTTY,选择USB连接。进入软件车键,会出现 Cmd>输入 l F:\WM5.bin(l 是小写的L，后面的路径就是ROM存在你电脑的什么位置)。按下回车键开始刷&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;</p>
<p>整个过程花了二个多小时就将2003CE刷新到WM5上，一路下来没有出现突发事件&#8230;.。从目前试用来看开机速度比2003CE快不少；以前有射屏的形象刷新后突然没有了，看来这时间花的值得。安装了一些常用的软件，再观察几天，再做其它考虑。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/514/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>有限实名制？</title>
		<link>http://welog.org/blog/480</link>
		<comments>http://welog.org/blog/480#comments</comments>
		<pubDate>Wed, 29 Nov 2006 02:47:51 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[china]]></category>
		<category><![CDATA[实名]]></category>

		<guid isPermaLink="false">http://welog.org/blog/480</guid>
		<description><![CDATA[这篇文章在草稿箱里躺了有一段时间了，之所以没有发出来是因为有那么多头头脑脑叫嚷着要实名制，实名制也只是时间问题了。虽然反对实名制，但生活在这样的一个国度里又能如何呢？有那么多反对的声音又能起到什么作用呢？实名就实名吧，只是希望这种实名不会成为另一堵牢不可破的&#8221;墙&#8221;。早上的时候腾讯弹出了一段信息,我国拟实行网络有限实名制(如下图),何谓有限实名：有限实名，也就是后台实名。当一个用户要到博客网站或BBS网站注册帐号时，需提交身份证、必要的证件和真实姓名等。而在前台，用户可以使用自己喜欢的名称，而不是真实姓名。网民如果没有做危害公众利益、违法国家法律的事，真实姓名属于隐私。而一旦触犯了法律，隐私将不能在成为隐私，会受到监管。。所幸把这篇文章一并发上来吧，在我看来博客应该是一个思想自由的空间，网络实名制会不会影响言论自由并不重要，问题的实质是人感觉言论自由被限制了，总得想着有一双手在掐着你的脖子，感觉决定我们说不说真话,能不能说真话。唉&#8230;&#8230; 中国互联网协会官员确认了这一消息，博客实名制已成定局，这位官员陈述了实名管理的理由：&#8221;博客提供了一个言论自由的平台，但由于约束的缺失，一系列侵权、隐私、责任等纠纷屡见不鲜，尤其是极少数人利用博客的互动性和广泛传播性来扰乱社会秩序，口无遮拦地大发一些缺乏理性的言论，该用实名制来约束这种失范和无序了。&#8221; 这就意味着博客用户必须进行后台的实名登记，就像银行存款必须凭身份证办理一样。真不知道这些有关部站脑子里都装了什么，BBS上出现一些不该出现的文字就用实名制，博客上出现不好的言论，所以通过实名制就可以解决这个问题吗?其实我们对管理者的能力有足够的信心的，即使不实名，如果真的出现某种危害社会行为需要查清幕后者，现代科技已经提供了很多的解决方法，而不必通过实名制。有了这样的技术，管理部门对博客持有更宽容的心态，而不是打算让它“实名”起来,即使是有限实名。]]></description>
			<content:encoded><![CDATA[<p>这篇文章在草稿箱里躺了有一段时间了，之所以没有发出来是因为有那么多头头脑脑叫嚷着要实名制，实名制也只是时间问题了。虽然反对实名制，但生活在这样的一个国度里又能如何呢？有那么多反对的声音又能起到什么作用呢？实名就实名吧，只是希望这种实名不会成为另一堵牢不可破的&#8221;墙&#8221;。早上的时候腾讯弹出了一段信息,<strong>我国拟实行网络有限实名制</strong>(如下图)<img src="http://welog.org/wp-content/uploads/2006/11/shiming.gif" alt="" />,何谓<strong>有限实名</strong>：<em>有限实名，也就是后台实名。当一个用户要到博客网站或BBS网站注册帐号时，需提交身份证、必要的证件和真实姓名等。而在前台，用户可以使用自己喜欢的名称，而不是真实姓名。网民如果没有做危害公众利益、违法国家法律的事，真实姓名属于隐私。而一旦触犯了法律，隐私将不能在成为隐私，会受到监管。</em>。所幸把这篇文章一并发上来吧，在我看来博客应该是一个思想自由的空间，网络实名制会不会影响言论自由并不重要，问题的实质是人感觉言论自由被限制了，总得想着有一双手在掐着你的脖子，感觉决定我们说不说真话,能不能说真话。唉&#8230;&#8230;</p>
<p>中国互联网协会官员确认了这一消息，博客实名制已成定局，这位官员陈述了实名管理的理由：&#8221;博客提供了一个言论自由的平台，但由于约束的缺失，一系列侵权、隐私、责任等纠纷屡见不鲜，尤其是极少数人利用博客的互动性和广泛传播性来扰乱社会秩序，口无遮拦地大发一些缺乏理性的言论，该用实名制来约束这种失范和无序了。&#8221;<br />
这就意味着博客用户必须进行后台的实名登记，就像银行存款必须凭身份证办理一样。真不知道这些有关部站脑子里都装了什么，BBS上出现一些不该出现的文字就用实名制，博客上出现不好的言论，所以通过实名制就可以解决这个问题吗?其实我们对管理者的能力有足够的信心的，即使不实名，如果真的出现某种危害社会行为需要查清幕后者，现代科技已经提供了很多的解决方法，而不必通过实名制。有了这样的技术，管理部门对博客持有更宽容的心态，而不是打算让它“实名”起来,即使是有限实名。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/480/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Delicious奇怪现象</title>
		<link>http://welog.org/blog/499</link>
		<comments>http://welog.org/blog/499#comments</comments>
		<pubDate>Tue, 07 Nov 2006 18:10:37 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[delicious]]></category>
		<category><![CDATA[GFW]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[过滤]]></category>

		<guid isPermaLink="false">http://welog.org/blog/499</guid>
		<description><![CDATA[这几天在使用Delicious添加书签时经常出现&#8221;载入页面时到服务器的连接被重置&#8220;,这种情况时有发生(很少数)，也就没有理会。但通过这二天的观察发现问题似乎不是出在Delicious的服务器或是我的Firefox2.0浏览器上，因为普通的连接添加很顺利，但只要有相对敏感的关键词就会出现重置的现象。 为了更好的说明情况，我拿今天遇到的情况做个例子：我从Bloglines的FEED里看到Gseeker前天写的一篇关于国内三大门户联合封杀Gmail？的文章顺手就准备加到书签里，但提示载入页面时到服务器的连接被重置。现在大家可以添加这篇文章到Delicious试试;如果不出所料应该也会被重置了，反回来再去打开del.icio.us的主站，也会出现一样的情况。和通常的关键词过滤基本相同，需要等待一段时间才能打开网站。我想不通的是这种技术是怎么实现的,理论来说既然被过滤整个页面都会被重置，但这些文章都可以正常访问。难道说还有良性的关键词过滤？只针对特定的网站？（问过一些朋友大多出现这种情况，但不管怎么说Delicious还能正常使用，我们就没事偷着乐吧。有时候做中国的网民真&#8221;幸运&#8221;，为一个暂还没被GFW掉的网站页欢呼雀跃&#8230;&#8230;&#8230;&#8230;.） PS:再来说说国内几家电子邮件服务商联合封杀Gmail的事，（从1、2、3、4可以了解一些相关的情况），如果情况属实(也许是有人利用gmail发送垃圾邮件造成的屏蔽)，这些邮箱的用户也都换成 Gmail吧，我这里还有不少Gmail的邀请。这些服务商不好好去改善自己的服务质量用这种牺牲用户利益的手段去竞争能超过对手吗？只能死得更快些。]]></description>
			<content:encoded><![CDATA[<p>这几天在使用Delicious添加书签时经常出现&#8221;<strong>载入页面时到服务器的连接被重置</strong>&#8220;,这种情况时有发生(很少数)，也就没有理会。但通过这二天的观察发现问题似乎不是出在Delicious的服务器或是我的Firefox2.0浏览器上，因为普通的连接添加很顺利，但只要有相对敏感的关键词就会出现重置的现象。<br />
为了更好的说明情况，我拿今天遇到的情况做个例子：我从Bloglines的FEED里看到Gseeker前天写的一篇关于<a href="http://www.gseeker.com/50226711/eeaeieaeeegmailie_48294.php">国内三大门户联合封杀Gmail？</a>的文章顺手就准备加到书签里，但提示载入页面时到服务器的连接被重置。现在大家可以添加这篇文章到Delicious试试;如果不出所料应该也会被重置了，反回来再去打开del.icio.us的主站，也会出现一样的情况。和通常的关键词过滤基本相同，需要等待一段时间才能打开网站。我想不通的是这种技术是怎么实现的,理论来说既然被过滤整个页面都会被重置，但这些文章都可以正常访问。难道说还有良性的关键词过滤？只针对特定的网站？（问过一些朋友大多出现这种情况，但不管怎么说Delicious还能正常使用，我们就没事偷着乐吧。有时候做中国的网民真&#8221;幸运&#8221;，为一个暂还没被GFW掉的网站页欢呼雀跃&#8230;&#8230;&#8230;&#8230;.）<br />
PS:再来说说国内几家电子邮件服务商联合封杀Gmail的事，（从<a href="http://www.gseeker.com/50226711/eeaeieaeeegmailie_48294.php">1</a>、<a href="http://my.donews.com/srcdoor/2006/11/06/kxfrkozrupjevminjzyphcttswikyljijpzt/">2</a>、<a href="http://justso.blog.com.cn/archives/2006/1806347.shtml">3</a>、<a href="http://blog.taglife.net/2006/11/05/159/">4</a>可以了解一些相关的情况），如果情况属实(也许是有人利用gmail发送垃圾邮件造成的屏蔽)，这些邮箱的用户也都换成 Gmail吧，我这里还有不少Gmail的邀请。这些服务商不好好去改善自己的服务质量用这种牺牲用户利益的手段去竞争能超过对手吗？只能死得更快些。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/499/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Google MP3 Player</title>
		<link>http://welog.org/blog/497</link>
		<comments>http://welog.org/blog/497#comments</comments>
		<pubDate>Sun, 05 Nov 2006 04:27:22 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[文字]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[MP3]]></category>

		<guid isPermaLink="false">http://welog.org/blog/497</guid>
		<description><![CDATA[Gmail除信本身箱很大之外，我想更吸引人的是它可以拿来当网络硬盘。Gmail File Space是我一直在用Firefox插件，今天发现Gmail File Space更新到Gmail File Space (gspace) v0.5.1: ，比前一个版本操作更简单（这里就不过多的介绍了，管方网站有很详细的说明)，有需要的同学可以试试。 另外还有一个发现，发现GMail有一个直接播放音乐的代码，其实我们安装在WP系统中的音乐播放器插件也是这个原理。而有了这段代码就可以直接用GOOGLE的flash播放器直接播放音乐了。并且你还可以用这个代码复制到你的blog上而无需登陆GMail(见下面的播放效果)。这段代码如下：http://mail.google.com/mail/html/audio.swf?audioUrl=MP3_URL,将这段代码最后面的MP3_URL换成音乐地址放到BLOG就OK了，是不是很酷呀。]]></description>
			<content:encoded><![CDATA[<p>Gmail除信本身箱很大之外，我想更吸引人的是它可以拿来当网络硬盘。<a href="http://www.rjonna.com/ext/gspace.php">Gmail File Space</a>是我一直在用Firefox插件，今天发现Gmail File Space更新到<strong>Gmail File Space (gspace) v0.5.1: </strong>，比前一个版本操作更简单（这里就不过多的介绍了，管方网站有很详细的说明)，有需要的同学可以试试。<br />
另外还有一个发现，发现GMail有一个直接播放音乐的代码，其实我们安装在WP系统中的音乐播放器插件也是这个原理。而有了这段代码就可以直接用GOOGLE的flash播放器直接播放音乐了。并且你还可以用这个代码复制到你的blog上而无需登陆GMail(见下面的播放效果)。这段代码如下：http://mail.google.com/mail/html/audio.swf?audioUrl=MP3_URL,将这段代码最后面的MP3_URL换成音乐地址放到BLOG就OK了，是不是很酷呀。<br />
<iframe src="http://mail.google.com/mail/html/audio.swf?audioUrl=http://jannet.myhome.cq.cn/UserBlog/shuima797/2006111202424591.mp3" style="border: 1px solid rgb(170, 170, 170); width: 400px; height: 25px;" id="musicPlayer"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/497/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>第二届”中文网志年会”</title>
		<link>http://welog.org/blog/484</link>
		<comments>http://welog.org/blog/484#comments</comments>
		<pubDate>Sat, 28 Oct 2006 00:47:33 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[生活]]></category>
		<category><![CDATA[cnbloggercon]]></category>
		<category><![CDATA[中文网志年会]]></category>

		<guid isPermaLink="false">http://welog.org/blog/484</guid>
		<description><![CDATA[第二届”中文网志年会“马上就要在杭州开始了，这次很是可惜没能成行。原本安排好的行成到最后不得不取消(郁闷，看来还是Zuola同学比较自由，我也得考虑考虑效仿了),其中原因这里就不说了。不过我会在Skype上观看直播的，虽然不能面对面的和大家交流，讨论，但也算是对年会的支持吧。 相关直播及频道： del.icio.us tag: cnbloggercon Skype 直播频道：A1-28日上午,A2-28日下午,A3-29日上午,A4-29日下午 图片：Yupoo，Flickr]]></description>
			<content:encoded><![CDATA[<p>第二届”<a href="http://www.cnbloggercon.org/">中文网志年会</a>“马上就要在杭州开始了，这次很是可惜没能成行。原本安排好的行成到最后不得不取消(郁闷，看来还是<a href="http://www.zuola.com/weblog/?p=558">Zuola</a>同学比较自由，我也得考虑考虑效仿了),其中原因这里就不说了。不过我会在Skype上观看直播的，虽然不能面对面的和大家交流，讨论，但也算是对年会的支持吧。<br />
相关直播及频道：<br />
del.icio.us tag: <a href="http://del.icio.us/tag/cnbloggercon">cnbloggercon</a><br />
Skype 直播频道：<a href="https://skypecasts.skype.com/skypecasts/skypecast/detailed.html?id_talk=46221">A1-28日上午</a>,<a href="https://skypecasts.skype.com/skypecasts/skypecast/detailed.html?id_talk=46222">A2-28日下午</a>,<a href="https://skypecasts.skype.com/skypecasts/skypecast/detailed.html?id_talk=46229">A3-29日上午</a>,<a href="https://skypecasts.skype.com/skypecasts/skypecast/detailed.html?id_talk=46230">A4-29日下午</a><br />
图片：<a href="http://www.yupoo.com/photos/tags/?tag=cnbloggercon">Yupoo</a>，<a href="http://www.flickr.com/photos/tags/cnbloggercon/">Flickr</a></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/484/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我的生活因Blog而改变</title>
		<link>http://welog.org/blog/476</link>
		<comments>http://welog.org/blog/476#comments</comments>
		<pubDate>Mon, 23 Oct 2006 05:50:45 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[生活]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[cnbloggercon]]></category>
		<category><![CDATA[中文网志年会]]></category>

		<guid isPermaLink="false">http://welog.org/blog/476</guid>
		<description><![CDATA[网络的发展总是出乎你我的想像，两年前，继Email、BBS、QQ(或MSN)之后又出现了新一代的网络交流方式&#8211;BLOG。从此，男男女女老老少少，不约而同地玩起了博客。大家见面的第一句话，由“您吃了吗”改成了“您博了吗”，博客似乎成了我们生活中的不可缺少的一部分。 而我了解blog的时间应该是看到蓝色的梦觉一篇关于Msn Space的介绍开始(时间是2004.12.4),于是便申请了一个用户,而当时的博客与blog的内涵究竟如何，似乎现在也仍旧很难说清，但无论如何，当时的博客还远没有像现在这样流行起来，很多时候，大家只是到blog上随便写点感受，发发牢骚，追忆似水流年。那时的我，对Blog并不感冒，学习之余一心投入到自己架设的网站及游离于几大BBS上,到现在这个用户还只是一篇测试日志及占了一个坑而已:)。 接下来，随着国内BSP的出现众多的BLOG相继涌现；许多人开始了自己的BLOG生涯，带着某种莫名的兴奋，就象当初我们很多人刚刚接触电脑，刚刚知道Internet一样，一切都是那么美好；我也将自己从02年底开始的网站备份到硬盘换上了Z-BLOG开源程序真正开始了我的Blogger生活，一直到现在的welog.org。 如果说BLOG改变了我什么，当然得从阅读方式开始。 在进入Blog以前我的信息源大部分来自传统的新闻报刊及网站媒体，而开始blog之后基本上我所有的信息源都来自自己选择的不受把关人控制的Blogger。他们这些Blogger给这个世界带来的新闻，不再是传统的样式，而带有新闻的更加个性化，地方化或者言论更加自由地表达化，更加多维与多视角的表现生活的方方面面。 因为他们在Post同时，除了写入自己的观点与想法之外，还可以引用其它blogger的想法，这样发散的阅读方式使信息提供者与阅读者共同建构起来的有智慧的系统，它不属于某一个单独的个体，而是公用系统,能让我们在这个系统上对事物了解得更深入更加全面。 在通过这一年多的Blog，我的阅读量增加了许多，每天都通过这些FEED来了解互联网的最新趋势及想法。同时又通过BLOG结实了很多与自己“臭味相投”的朋友，形成了自己的社会化的人际网络；这些人都是因为BLGO认识的，就像Zola所说的“我愿意给他们90%的信任”，而这90%的信任也都是来自他们有血有肉的文字。就像这次中文网志2006（杭州）年会 组织发起的 生活因blog而改变–用创意支持中文网志年会的活动 写下这些文字也许并不是希望得到这张免费的入场卷，更多的是希望能和大家一起交流，交流想法、思想、技术，这应该也是网志年会的初衷吧。 而未来的网络社会是一个无法预知的未来,BLOG思想与Post正在每天刷新着它们的无限可能性，而这正是网络社会给这个世界带来的活力。我想也许是Blog改变了我们，让我们更加有思想有能力去为我们自己的未来负责，但更重要的是这个平台让我们学习了交流、分享与追求。]]></description>
			<content:encoded><![CDATA[<p>网络的发展总是出乎你我的想像，两年前，继Email、BBS、QQ(或MSN)之后又出现了新一代的网络交流方式&#8211;BLOG。从此，男男女女老老少少，不约而同地玩起了博客。大家见面的第一句话，由“您吃了吗”改成了“您博了吗”，博客似乎成了我们生活中的不可缺少的一部分。<br />
而我了解blog的时间应该是看到蓝色的梦觉一篇关于Msn Space的介绍开始(时间是2004.12.4),于是便申请了一个<a href="http://blueclassic.spaces.live.com">用户</a>,而当时的博客与blog的内涵究竟如何，似乎现在也仍旧很难说清，但无论如何，当时的博客还远没有像现在这样流行起来，很多时候，大家只是到blog上随便写点感受，发发牢骚，追忆似水流年。那时的我，对Blog并不感冒，学习之余一心投入到自己架设的网站及游离于几大BBS上,到现在这个用户还只是一篇测试日志及占了一个坑而已:)。<br />
接下来，随着国内BSP的出现众多的BLOG相继涌现；许多人开始了自己的BLOG生涯，带着某种莫名的兴奋，就象当初我们很多人刚刚接触电脑，刚刚知道Internet一样，一切都是那么美好；我也将自己从02年底开始的网站备份到硬盘换上了Z-BLOG开源程序真正开始了我的Blogger生活，一直到现在的welog.org。<br />
如果说BLOG改变了我什么，当然得从阅读方式开始。<br />
在进入Blog以前我的信息源大部分来自传统的新闻报刊及网站媒体，而开始blog之后基本上我所有的信息源都来自自己选择的不受把关人控制的Blogger。他们这些Blogger给这个世界带来的新闻，不再是传统的样式，而带有新闻的更加个性化，地方化或者言论更加自由地表达化，更加多维与多视角的表现生活的方方面面。<br />
因为他们在Post同时，除了写入自己的观点与想法之外，还可以引用其它blogger的想法，这样发散的阅读方式使信息提供者与阅读者共同建构起来的有智慧的系统，它不属于某一个单独的个体，而是公用系统,能让我们在这个系统上对事物了解得更深入更加全面。<br />
在通过这一年多的Blog，我的阅读量增加了许多，每天都通过这些FEED来了解互联网的最新趋势及想法。同时又通过BLOG结实了很多与自己“臭味相投”的朋友，形成了自己的社会化的人际网络；这些人都是因为BLGO认识的，就像Zola所说的“我愿意给他们90%的信任”，而这90%的信任也都是来自他们有血有肉的文字。就像这次<a href="http://www.cnbloggercon.org/">中文网志2006（杭州）年会</a> 组织发起的 <a href="http://www.cnbloggercon.org/blog/archives/2006/10/21/creative-contest/">生活因blog而改变–用创意支持中文网志年会的活动</a> 写下这些文字也许并不是希望得到这张免费的入场卷，更多的是希望能和大家一起交流，交流想法、思想、技术，这应该也是网志年会的初衷吧。</p>
<p>而未来的网络社会是一个无法预知的未来,BLOG思想与Post正在每天刷新着它们的无限可能性，而这正是网络社会给这个世界带来的活力。我想也许是Blog改变了我们，让我们更加有思想有能力去为我们自己的未来负责，但更重要的是这个平台让我们学习了交流、分享与追求。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/476/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Apache Rewrite 静态化问题</title>
		<link>http://welog.org/blog/463</link>
		<comments>http://welog.org/blog/463#comments</comments>
		<pubDate>Thu, 28 Sep 2006 08:03:24 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[开源]]></category>
		<category><![CDATA[文字]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[表态化]]></category>

		<guid isPermaLink="false">http://welog.org/blog/463</guid>
		<description><![CDATA[从Googe上找到的几个Apache Rewrite规则说明，对Apache Rewrite的规则仔细研究一下，因为我从DH开了一个二级域名,放上了sNews程序,利用Apache Rewrite实现了表态化。这时问题出现了，此二级域名下的目录怎么也找不到（如images,lib,css),导致无法打开样式表及图片文件。我试着修改了RewriteCond %{REQUEST_FILENAME} !-d为RewriteCond %{REQUEST_FILENAME} !-f，这样下面的规则全不起作用了，直接重定向到index.php了，不知道这是什么原因，有解吗？ 程序.htaccess如下： php_value session.use_trans_sid 0 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ index.php?category=$1 [L] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-z_]+)/([^/]+) index.php?category=$1&#038;title=$2 [L] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-z_]+)/([^/]+)/([^/]+)/ index.php?category=$1&#038;title=$2&#038;commentspage=$3 [L] #RewriteCond %{REQUEST_FILENAME} !-d #RewriteRule ^([a-z0-9_-]+)/([0-9]+)/ index.php?category=$1 articlespage=$2 [L]]]></description>
			<content:encoded><![CDATA[<p>从Googe上找到的几个<a href="http://www.dedev.com/topic/view/64.html">Apache Rewrite规则说明</a>，对Apache Rewrite的规则仔细研究一下，因为我从DH开了一个<a href="http://welog.org/www.wu.welog.org">二级域名</a>,放上了sNews程序,利用Apache Rewrite实现了表态化。这时问题出现了，此二级域名下的目录怎么也找不到（如images,lib,css),导致无法打开样式表及图片文件。我试着修改了RewriteCond %{REQUEST_FILENAME} !-d为RewriteCond %{REQUEST_FILENAME} !-f，这样下面的规则全不起作用了，直接重定向到index.php了，不知道这是什么原因，有解吗？<br />
程序.htaccess如下：</p>
<p>php_value session.use_trans_sid 0</p>
<p>RewriteEngine On<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule ^(.*)/$ index.php?category=$1 [L]<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule ^([a-z_]+)/([^/]+) index.php?category=$1&#038;title=$2 [L]<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule ^([a-z_]+)/([^/]+)/([^/]+)/ index.php?category=$1&#038;title=$2&#038;commentspage=$3 [L]<br />
#RewriteCond %{REQUEST_FILENAME} !-d<br />
#RewriteRule ^([a-z0-9_-]+)/([0-9]+)/ index.php?category=$1 articlespage=$2 [L]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/463/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>用上dreamhost及WordPress数据库恢复</title>
		<link>http://welog.org/blog/462</link>
		<comments>http://welog.org/blog/462#comments</comments>
		<pubDate>Sun, 24 Sep 2006 06:04:10 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[文字]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://welog.org/blog/462</guid>
		<description><![CDATA[在经过半个多月的折腾，dreamhost空间总算申请下来，导致这种情况的原因是:FAX传输失败。为了安全DH的这种手段是对的，但DH在解决问题上我有所保留。从第一份传真之后邮件回复在一个工作日内开通申请，但直到前天才明确告诉我没有收到FAX，我只能理解为他们工作烦忙吧，虽然等的时间长了点。当然我得特别感谢Thinkevolving,给我提供了临时空间，同时在申请空间也给他添了不少麻烦。谢了:) 因为忙着一些事情及空间问题BLOG断断续续停了二个多月。之前的Blueclasic.net空间停用，启用新域名welog.org，如果不出问题的话，之前完成的项目也会在这几天上线，DH开通了第一件事是转移blog，做下记录。 1.备份原有网站的数据库：操作很简单，进入PhpMyAdmin后选择导出，在表单选择框里选择全部。选择”另存为文件”中的”gzip 压缩”，点击”执行”保存到本地电脑中了。 2. 恢复备份数据库到新的服务器中：进入新服务器的PhpMyAdmin，在Import选项中将刚备份的Gzip包导入数据库中。其中的文件的字符集选择Utf8,点击”执行”即可。 3. 调整链接:因为是导入所以先前备份的数据库中相关的链接指向的还是原有数据，这里解决的方法是打开新数据库PhpMyAdmin,找到”wp_options“表单，点击”浏览”然后按”找到”option_name”键值为”siteurl”及”home”二项，分另编辑将里面的原来网站链接地址改为新的。 4.通过以是的方法顺利的完成了wordpress转移，之前担心的字符集问题在我这里没有发生，不知道是喜是优，希望今后不要因为这个出现大的问题,也附上字符乱码的解决方法吧： MySQL 4.1x 中文乱码问题, LBS转WordPress全攻略. 5.遗留问题：程序是从ZBLOG转换到WordPress的，在之前的转换过程中没有将UBB字符代码转换过来，导致从ZBLOG导过来的文章面目全非（UBB全部显示出来）。GOOGLE一下也没有找到解决的方法，看来是个头痛的问题，不知道哪位有没有好的解决方法。 6.才开始用dreamhost，很多功能设置，得花点时间慢慢研究一下。 dreamhost可以建立promotion code,顺便也建了个promotion code：KINGS。折扣表如下:(图片Vai:桑葚） 如果你是新注册用户，可以在promotion code 一栏内输入KINGWANG,按我的折扣列表如果你申请 Yearly L1型空间，原价：$119.40，现价：$22.40,慎重选择。 这些问题都解决了，BLOG开始正常运做，另外请友链及订阅FEED的同学修改一下地址。]]></description>
			<content:encoded><![CDATA[<p>在经过半个多月的折腾，<a href="http://www.dreamhost.com">dreamhost</a>空间总算申请下来，导致这种情况的原因是:FAX传输失败。为了安全DH的这种手段是对的，但DH在解决问题上我有所保留。从第一份传真之后邮件回复在一个工作日内开通申请，但直到前天才明确告诉我没有收到FAX，我只能理解为他们工作烦忙吧，虽然等的时间长了点。当然我得特别感谢<a href="http://thinkevolving.com">Thinkevolving</a>,给我提供了临时空间，同时在申请空间也给他添了不少麻烦。谢了:)<br />
因为忙着一些事情及空间问题BLOG断断续续停了二个多月。之前的Blueclasic.net空间停用，启用新域名welog.org，如果不出问题的话，之前完成的项目也会在这几天上线，DH开通了第一件事是转移blog，做下记录。<br />
<strong>1.备份原有网站的数据库</strong>：操作很简单，进入PhpMyAdmin后选择导出，在表单选择框里选择全部。选择”另存为文件”中的”gzip 压缩”，点击”执行”保存到本地电脑中了。<br />
<strong>2. 恢复备份数据库到新的服务器中：</strong>进入新服务器的PhpMyAdmin，在<strong>Import</strong>选项中将刚备份的Gzip包导入数据库中。其中的文件的字符集选择<strong>Utf8</strong>,点击”执行”即可。<br />
<strong>3. 调整链接:</strong>因为是导入所以先前备份的数据库中相关的链接指向的还是原有数据，这里解决的方法是打开新数据库PhpMyAdmin,找到”wp_options“表单，点击”浏览”然后按”找到”option_name”键值为”siteurl”及”home”二项，分另编辑将里面的原来网站链接地址改为新的。<br />
4.通过以是的方法顺利的完成了wordpress转移，之前担心的字符集问题在我这里没有发生，不知道是喜是优，希望今后不要因为这个出现大的问题,也附上字符乱码的解决方法吧：<br />
<a rel="bookmark" title="Permanent Link: MySQL 4.1x 中文乱码问题" href="http://yanfeng.org/blog/585/">MySQL 4.1x 中文乱码问题</a>,<br />
<a href="http://www.zuola.com/weblog/?p=355">LBS转WordPress全攻略</a>.<br />
<strong>5.遗留问题：</strong>程序是从ZBLOG转换到WordPress的，在之前的转换过程中没有将UBB字符代码转换过来，导致从ZBLOG导过来的文章面目全非（UBB全部显示出来）。GOOGLE一下也没有找到解决的方法，看来是个头痛的问题，<strike><strong>不知道哪位有没有好的解决方法。<br />
</strong></strike><strong>6.</strong>才开始用<a href="http://www.dreamhost.com">dreamhost</a>，很多功能设置，得花点时间慢慢研究一下。<br />
<a href="http://www.dreamhost.com">dreamhost</a>可以建立promotion code,顺便也建了个promotion code：KINGS。折扣表如下:(图片Vai:<a href="http://yanfeng.org/blog/about">桑葚</a>）<strike><br />
<img width="455" height="325" align="middle" style="width: 455px; height: 325px" src="http://static.flickr.com/80/251046888_dac82b337b.jpg" /><br />
</strike>如果你是新注册用户，可以在promotion code 一栏内输入KINGWANG,按我的折扣列表如果你申请 Yearly L1型空间，原价：$119.40，现价：$22.40,慎重选择。</p>
<p>这些问题都解决了，BLOG开始正常运做，另外请友链及订阅<a href="http://www.welog.org/index.xml">FEED</a>的同学修改一下地址。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/462/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>9-18</title>
		<link>http://welog.org/blog/457</link>
		<comments>http://welog.org/blog/457#comments</comments>
		<pubDate>Mon, 18 Sep 2006 01:06:11 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[生活]]></category>
		<category><![CDATA[9.18]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/457</guid>
		<description><![CDATA[■■永远不能忘却的记忆： 九·一八事变指1931年9月18日在中国东北爆发的一次军事冲突和政治事件。冲突双方是中国东北军和日本关东军。根据冲突爆发的日期，史称“九·一八事变”。由于当时中国东北地区称为满洲，因此日本方面将这次事变称为“满洲事变”。 九·一八事件爆发后，日本与中国之间的矛盾进一步激化，而在日本国内，主战的日本军部地位上升，导致日本走上全面侵华的道路。这次事件爆发后的几年时间内，东北三省全部被日本关东军占领，因此被中国民众视为国耻，直至今日，九月十八日在中国许多非正式场合都被称为“国耻日”。在国际上，这起事件经常被拿来与纳粹德国的国会纵火案相提并论. 相关报道：1 2 3]]></description>
			<content:encoded><![CDATA[<p><img src="http://image2.sina.com.cn/dy/c/2006-09-18/U608P1T1D11035296F21DT20060918080412.jpg" /><br />
<strong><font color="#ff0000">■■永远不能忘却的记忆：<br />
</font>九·一八事变</strong>指<a title="1931年" href="http://demo.thinkevolving.org/wiki/1931å¹´">1931年</a><a title="9月18日" href="http://demo.thinkevolving.org/wiki/9æ18æ¥">9月18日</a>在<a title="中国" href="http://demo.thinkevolving.org/wiki/ä¸­å½">中国</a><a title="东北" href="http://demo.thinkevolving.org/wiki/ä¸å">东北</a>爆发的一次军事冲突和政治事件。冲突双方是<a title="中国" href="http://demo.thinkevolving.org/wiki/ä¸­å½">中国</a><a title="东北军" href="http://demo.thinkevolving.org/wiki/ä¸åå">东北军</a>和<a title="日本" href="http://demo.thinkevolving.org/wiki/æ¥æ¬">日本</a><a title="关东军" href="http://demo.thinkevolving.org/wiki/å³ä¸å">关东军</a>。根据冲突爆发的日期，史称“九·一八事变”。由于当时中国东北地区称为<a title="满洲" href="http://demo.thinkevolving.org/wiki/æ»¡æ´²">满洲</a>，因此日本方面将这次事变称为“<strong>满洲事变</strong>”。</p>
<p>九·一八事件爆发后，日本与中国之间的矛盾进一步激化，而在日本国内，主战的日本军部地位上升，导致日本走上全面侵华的道路。这次事件爆发后的几年时间内，东北三省全部被日本关东军占领，因此被中国民众视为国耻，直至今日，九月十八日在中国许多非正式场合都被称为“<a class="new" title="国耻日" href="http://demo.thinkevolving.org/w/index.php?title=%E5%9B%BD%E8%80%BB%E6%97%A5&#038;action=edit">国耻日</a>”。在国际上，这起事件经常被拿来与<a title="纳粹德国" href="http://demo.thinkevolving.org/wiki/çº³ç²¹å¾·å½">纳粹德国</a>的<a title="国会纵火案" href="http://demo.thinkevolving.org/wiki/å½ä¼çºµç«æ¡">国会纵火案</a>相提并论.</p>
<p>相关报道：<a href="http://news.sohu.com/s2006/jiuyiba75/">1</a> <a href="http://news.163.com/06/0918/05/2R9DQINC0001124J.html">2</a> <a href="http://news.xinhuanet.com/politics/2006-09/18/content_5102034.htm">3</a></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/457/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>最近的行踪</title>
		<link>http://welog.org/blog/439</link>
		<comments>http://welog.org/blog/439#comments</comments>
		<pubDate>Fri, 11 Aug 2006 11:36:40 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[生活]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[近况]]></category>
		<category><![CDATA[进度]]></category>
		<category><![CDATA[项目]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/439</guid>
		<description><![CDATA[又好一段时间没更新了，一直忙着自己的一个项目，不久将正式上线测试。由于对PHP技术了解的不多， 而程序又是建立在PHP+Mysql的架构下，所以一边抱着PHP大全一边写着代码，也是一直没Post的原因，惭愧呀&#8230;&#8230;. 现在项目框架基本成形，目前最大的问题是服务器没有解决，如果服务器在下周能到位将进入第一阶段的测试&#8230;&#8230;]]></description>
			<content:encoded><![CDATA[<p>    又好一段时间没更新了，一直忙着自己的一个项目，不久将正式上线测试。由于对PHP技术了解的不多， 而程序又是建立在PHP+Mysql的架构下，所以一边抱着PHP大全一边写着代码，也是一直没Post的原因，惭愧呀&#8230;&#8230;.<br />
    现在项目框架基本成形，目前最大的问题是服务器没有解决，如果服务器在下周能到位将进入第一阶段的测试&#8230;&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/439/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>2006中文维基年会8月26日在香港举行</title>
		<link>http://welog.org/blog/441</link>
		<comments>http://welog.org/blog/441#comments</comments>
		<pubDate>Fri, 11 Aug 2006 11:36:01 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[文字]]></category>
		<category><![CDATA[年会]]></category>
		<category><![CDATA[维基]]></category>
		<category><![CDATA[香港]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/441</guid>
		<description><![CDATA[会议时间为：8月26日至8月27日 地点：香港中文大學（中大）的校园 报名：报名 2006中文维基年会是由维基媒体基金会中文社群举办的有关中文维基媒体的地区性会议。此次年会为中国大陆、台湾、香港以及全球各地的中文维基参与者提供首次会聚一堂的机会。同时亦作为论坛，让与会者讨论中文维基的各项计划，并藉此向中文地区推广中文维基。 根据维基的新闻稿，维基百科中文版于2002年10月启用，每月增加超过3000条资料。其中，香港地方虽小，但却贡献了其中的13%内容。曾参与编写工作的港人达6000名之多，因此在维基之内也有不少香港的资料。 维基百科作为最成功的网络百科全书，成为科学、文化、政治、经济、社会、历史等等各方面的交流、学习、研究的宝库，但由于种种原因，维基百科的内容引起了很大的争议，现在维基百科已经逐渐调整维护机制，并不是全面开放，自由是相对的，作为中立角色的维基百科承载了各方面巨大的压力。 住宿和就餐的费用都不高，也可以自行安排，但是还有200元的入场费，似乎不太符合这个自由百科全书的特质，不过内地特别是广东的朋友要参与倒是很方便的。 (注：除了报名网址外，其他网址在国内是无法打开的，当然支持喜欢维基百科的朋友总能找到办法的)]]></description>
			<content:encoded><![CDATA[<p>会议时间为：8月26日至8月27日<br />
地点：<a class="extiw" title="zh:香港中文大學" href="http://zh.wikipedia.org/wiki/é¤§"><font color="#0066ff">香港中文大學</font></a>（中大）的校园<br />
报名：<a href="http://cusu.hk/cwmc2006/reg.php" target="_blank"><font color="#0066ff">报名</font></a></p>
<p>2006中文维基年会是由<a class="extiw" title="wikimedia:維基媒體基金會" href="http://wikimediafoundation.org/wiki/éé"><font color="#0066ff">维基媒体基金会</font></a>中文社群举办的有关中文维基媒体的地区性会议。此次年会为中国大陆、台湾、香港以及全球各地的中文维基参与者提供首次会聚一堂的机会。同时亦作为论坛，让与会者讨论中文维基的各项计划，并藉此向中文地区推广中文维基。</p>
<p>根据维基的新闻稿，维基百科中文版于2002年10月启用，每月增加超过3000条资料。其中，香港地方虽小，但却贡献了其中的13%内容。曾参与编写工作的港人达6000名之多，因此在维基之内也有不少香港的资料。</p>
<p><a href="http://zh.wikipedia.org/"><font color="#0066ff">维基百科</font></a>作为最成功的网络百科全书，成为科学、文化、政治、经济、社会、历史等等各方面的交流、学习、研究的宝库，但由于种种原因，维基百科的内容引起了很大的争议，现在维基百科已经逐渐调整维护机制，并不是全面开放，自由是相对的，作为中立角色的维基百科承载了各方面巨大的压力。</p>
<p>住宿和就餐的费用都不高，也可以自行安排，但是还有200元的入场费，似乎不太符合这个自由百科全书的特质，不过内地特别是广东的朋友要参与倒是很方便的。<br />
<strong>(注：除了报名网址外，其他网址在国内是无法打开的，当然支持喜欢维基百科的朋友总能找到办法的)</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/441/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>世界杯在齐祖悲情谢幕下结束了</title>
		<link>http://welog.org/blog/435</link>
		<comments>http://welog.org/blog/435#comments</comments>
		<pubDate>Mon, 10 Jul 2006 12:25:53 +0000</pubDate>
		<dc:creator>King</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/435</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160; 原本这届世界杯随着法国队1:0击败巴西，世界杯似乎变成了欧洲杯，谁能获得最后的冠军已经不重要了。但昨晚的这场比赛虽然猜对了结果，但没想到是以这样的方式。 齐祖的这一顶, 顶出了一张红牌, 顶走了大力神杯,顶走了最有价值球员,顶走了无数球迷的期待&#8230;怎么也想不到经历了多少风风雨雨的齐达内, 在关键时刻竟然没控制住自己的情绪, 难道说所有的球王都要留给我们一种残缺的美？&#160;&#160;&#160;&#160;&#160; 虽然意大利赢得了比赛，但他们还要捧着金杯回家向检察官、法官们申报“特赦”！而齐达内迎来的则是双重的失意，在退役前的最后一场比赛中被红牌罚下。马特拉齐用什么语言激怒了齐达内？使113分钟的大师齐达内变成1秒钟暴徒齐达内？引自flypig的blog。 《纽约时报》世界杯blog这样描述： Break Materazzi reached around and twistedZidane’s nipple! That’s what got Zidane so steamed! Materazzi trickedZidane! Or so it seems from the replay. Can’t be totally sure though. 翻译如下：突发 马特拉奇抓住并拧了一下齐达内的乳头！这让齐达内怒气冲天！马特拉奇耍了奇达内！这可以从录像中看出个大概。但也不是绝对肯定。 以及和skyland.mu聊天时的记录:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; KingWang: 你说昨晚马特拉奇和齐达说了什么让他那么愤怒呢？ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; skyland.mu: &#8220;你就是意大利养的一条忘恩负义的狗&#8221; 无论说了什么，齐祖这样的谢幕是很可惜，很可惜的&#8230;&#8230;&#8230;过了一个月的&#8221;世界杯生活&#8221;, 当世界杯结束了, 得整理一下因为世界杯而耽误的计划.世界杯四年后南非再见。 Technorati Tags: 世界杯, 齐达内]]></description>
			<content:encoded><![CDATA[<p><img src="http://image2.sina.com.cn/2006/p/2006-07-10/U774P427T6D103398F172DT20060710050330.jpg" /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 原本这届世界杯随着法国队1:0击败巴西，世界杯似乎变成了欧洲杯，谁能获得最后的冠军已经不重要了。但昨晚的这场比赛虽然猜对了结果，但没想到是以这样的方式。 齐祖的这一顶, 顶出了一张红牌, 顶走了大力神杯,顶走了最有价值球员,顶走了无数球迷的期待&#8230;怎么也想不到经历了多少风风雨雨的齐达内, 在关键时刻竟然没控制住自己的情绪, 难道说所有的球王都要留给我们一种残缺的美？<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 虽然意大利赢得了比赛，但他们还要捧着金杯回家向检察官、法官们申报“特赦”！而齐达内迎来的则是双重的失意，在退役前的最后一场比赛中被红牌罚下。<span style="font-weight: bold;">马特拉齐</span>用什么语言激怒了齐达内？使113分钟的大师齐达内变成1秒钟暴徒齐达内？<br />引自<a href="http://www.flypig.org/001863.html">flypig的blog</a>。<br />
<blockquote>
<p>《纽约时报》世界杯blog这样描述：</p>
<p>    <strong>Break</strong> Materazzi reached around and twisted<br />Zidane’s nipple! That’s what got Zidane so steamed! Materazzi tricked<br />Zidane! Or so it seems from the replay. Can’t be totally sure though.</p>
<p>翻译如下：<strong>突发</strong> 马特拉奇抓住并拧了一下齐达内的乳头！这让齐达内怒气冲天！马特拉奇耍了奇达内！这可以从录像中看出个大概。但也不是绝对肯定。</p></blockquote>
<div class="chat out">
<div class="chat in"><span class="salutation">以及和</span><span class="salutation">skyland.mu聊天时的记录:<br /></span><span class="salutation">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KingWang: </span>你说昨晚马特拉奇和齐达说了什么让他那么愤怒呢？
<div class="msg 1st"><span class="salutation">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; skyland.mu: </span>&#8220;你就是意大利养的一条忘恩负义的狗&#8221;</div>
</div>
</div>
<p>无论说了什么，齐祖这样的谢幕是很可惜，很可惜的&#8230;&#8230;&#8230;<br />过了一个月的&#8221;世界杯生活&#8221;, 当世界杯结束了, 得整理一下因为世界杯而耽误的计划.<br />世界杯四年后南非再见。</p>
<p>Technorati Tags: <a href="http://technorati.com/tag/%E4%B8%96%E7%95%8C%E6%9D%AF" rel="tag">世界杯</a>, <a href="http://technorati.com/tag/%E9%BD%90%E8%BE%BE%E5%86%85" rel="tag">齐达内</a></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/435/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>这一刻意大利真的被附体了</title>
		<link>http://welog.org/blog/424</link>
		<comments>http://welog.org/blog/424#comments</comments>
		<pubDate>Wed, 05 Jul 2006 08:00:51 +0000</pubDate>
		<dc:creator>maxbaifan</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[生活]]></category>
		<category><![CDATA[世界杯]]></category>
		<category><![CDATA[黄健翔]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e8%bf%99%e4%b8%80%e5%88%bb%e6%84%8f%e5%a4%a7%e5%88%a9%e7%9c%9f%e7%9a%84%e8%a2%ab%e9%99%84%e4%bd%93%e4%ba%86/</guid>
		<description><![CDATA[原本以为这场球打到加时赛时的情况看一定又要面临点球决胜，想不到在最后一刻3号格罗索被黄建祥附体了:),而德国队在最后一刻崩溃了。 可惜的是这场球不是黄建祥解说，不然的话应该更精彩，刘建宏的解说实在不怎么地&#8230;.. PS:Eclipse3.2发布了，点击这里下载，有什么新特性查看这里或这里,不知道这个版本对内存消耗的情况有没有大的改进。]]></description>
			<content:encoded><![CDATA[<p>原本以为这场球打到加时赛时的情况看一定又要面临点球决胜，想不到在最后一刻3号格罗索被黄建祥附体了:),而德国队在最后一刻崩溃了。<br />
可惜的是这场球不是黄建祥解说，不然的话应该更精彩，刘建宏的解说实在不怎么地&#8230;..</p>
<p>PS:Eclipse3.2发布了，点击<a href="http://www.eclipse.org/downloads/" target="_blank">这里</a>下载，有什么新特性查看<a href="http://download2.eclipse.org/eclipse/downloads/drops/R-3.2-200606291905/new_noteworthy/eclipse-news.html" target="_blank" hreflang="en">这里</a>或<a href="http://java.csdn.net/n/20060630/92196.html" target="_blank" hreflang="zh">这里</a>,不知道这个版本对内存消耗的情况有没有大的改进。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/424/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Z-blog转换WP</title>
		<link>http://welog.org/blog/1</link>
		<comments>http://welog.org/blog/1#comments</comments>
		<pubDate>Tue, 04 Jul 2006 10:27:35 +0000</pubDate>
		<dc:creator>maxbaifan</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[z-blog]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[做个记号先]]></description>
			<content:encoded><![CDATA[<p>做个记号先 </p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/1/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>JAVA开源及其它</title>
		<link>http://welog.org/blog/422</link>
		<comments>http://welog.org/blog/422#comments</comments>
		<pubDate>Thu, 18 May 2006 23:57:23 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[开源]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e5%bc%80%e6%ba%90%e5%8f%8a%e5%85%b6%e5%ae%83/</guid>
		<description><![CDATA[因为这二天花了大量的时间在Linux的升级上，没及时整理这次JavaOne的一些资料及新的技术，这篇文章算是补充吧。 1、JAVA开源？仍然是[B]Sun 开放Java的要求及对兼容性的担忧二者间的博弈[/B]。 Java开源早就有这么一说了，虽然在这次JAVAOne大会上SUN承诺开方JAVA源代码，但考虑到兼容性的问题及担忧失去对Java品牌的控制，有可能的选择部分组件成为开放源代码软件。因为开放Sun 的Java应用软件的源代码是开放其全部软件产品源代码的一个步骤，也是增加其软件业务收入战略的一部分。按照这种说法开源的确只是时间问题和如何实现的问题,但几年过去了不还就只是这些个问题吗？ 2、在这次JavaOne大会上sun公司终于发布了[URL=http://java.sun.com/javaee/downloads/index.jsp]javaEE 5.0[/URL]。 Via:[URL=http://java.csdn.net/n/20060517/90558.html]CSDN[/URL] 这个版本算是SUN第一个商业且比较完善的Java EE 5实现吧，特点如下: 简化开发&#8211;对编程模式的重新组织 [B]支持EJB3.0&#8211;POJO[/B] 支持Java Persistence API , ORM更简单 JAX-WS 2.0 以及 JAXB 2.0 使得开发web services 以及SOA应用更加便捷 [URL=https://blueprints.dev.java.net/petstore/index.html]Vai[/URL] [B]JavaServer Faces 1.2&#8211;更简易开发AJAX[/B] [B]效率更高, 同时管理和部署功能更强大[/B] [B]启动速度提高30%, 占用内存减少30%.[/B] web services 效率提高至少5倍. web services 管理更强大 整合了NetBeans以及支持Eclipse plug-in 提供了整合NetBeans的可视化的SOA 开发以及部署 Sun&#8217;s Java System Application Server PE 9.0是完全开源的 更详细的介绍看这里：[URL=http://java.sun.com/developer/technicalArticles/J2EE/intro_ee5/]An Introduction to the [...]]]></description>
			<content:encoded><![CDATA[<p>因为这二天花了大量的时间在Linux的升级上，没及时整理这次JavaOne的一些资料及新的技术，这篇文章算是补充吧。<br />
1、JAVA开源？仍然是[B]Sun 开放Java的要求及对兼容性的担忧二者间的博弈[/B]。<br />
Java开源早就有这么一说了，虽然在这次JAVAOne大会上SUN承诺开方JAVA源代码，但考虑到兼容性的问题及担忧失去对Java品牌的控制，有可能的选择部分组件成为开放源代码软件。因为开放Sun 的Java应用软件的源代码是开放其全部软件产品源代码的一个步骤，也是增加其软件业务收入战略的一部分。按照这种说法开源的确只是时间问题和如何实现的问题,但几年过去了不还就只是这些个问题吗？</p>
<p>2、在这次JavaOne大会上sun公司终于发布了[URL=http://java.sun.com/javaee/downloads/index.jsp]javaEE 5.0[/URL]。 Via:[URL=http://java.csdn.net/n/20060517/90558.html]CSDN[/URL]<br />
这个版本算是SUN第一个商业且比较完善的Java EE 5实现吧，特点如下:<br />
简化开发&#8211;对编程模式的重新组织<br />
[B]支持EJB3.0&#8211;POJO[/B]<br />
支持Java Persistence API , ORM更简单<br />
JAX-WS 2.0 以及 JAXB 2.0 使得开发web services 以及SOA应用更加便捷  [URL=https://blueprints.dev.java.net/petstore/index.html]Vai[/URL]<br />
[B]JavaServer Faces 1.2&#8211;更简易开发AJAX[/B]<br />
[B]效率更高, 同时管理和部署功能更强大[/B]<br />
[B]启动速度提高30%, 占用内存减少30%.[/B]<br />
web services 效率提高至少5倍.<br />
web services 管理更强大<br />
整合了NetBeans以及支持Eclipse plug-in<br />
提供了整合NetBeans的可视化的SOA 开发以及部署<br />
Sun&#8217;s Java System Application Server PE 9.0是完全开源的<br />
更详细的介绍看这里：[URL=http://java.sun.com/developer/technicalArticles/J2EE/intro_ee5/]An Introduction to the Java EE 5 Platform[/URL]</p>
<p>3、Google发布了[URL=http://code.google.com/webtoolkit/]Web Toolkit[/URL]，它是一个基于Java的应用开发框架，可以用Java开发前端应用并将其转换为使用AJAX实现的JavaScript/HTML应用。不错的项目，相信Google结合java的API后Web Toolkit有更多新奇的东西面世,也算是二大公司合作的开始吧&#8230;&#8230;</p>
<p>4、Sun宣布了Operating System Distributor&#8217;s License for Java (DLJ)许可协议，这个许可使得基于OpenSolaris的一些开源操作系统可以合法地分发Java SDK和JRE软件包(包括Debian、Ubuntu、Gentoo&#8230;),现在大家想在Linux上安装JAVA不在需要那么折腾了，一个apt-get install就够定了。可惜发现的晚了半拍，害的我刚花了大半天时间才把Java在Ubuntu上搞定等回过头来才发现有这么大个[URL=http://archive.ubuntu.com/ubuntu/pool/multiverse/s/sun-java5/]包[/URL]，失败(我决定删了重来&#8230;..@&amp;*@&amp;#*&amp;(*!)。<br />
相关信息:[URL=http://www.itweek.co.uk/vnunet/news/2156210/sun-makes-java-license-linux]Sun makes Java licence more Linux friendly[/URL]<br />
<span id="more-422"></span><br />
因为这二天花了大量的时间在Linux的升级上，没及时整理这次JavaOne的一些资料及新的技术，这篇文章算是补充吧。<br />
1、JAVA开源？仍然是[B]Sun 开放Java的要求及对兼容性的担忧二者间的博弈[/B]。<br />
Java开源早就有这么一说了，虽然在这次JAVAOne大会上SUN承诺开方JAVA源代码，但考虑到兼容性的问题及担忧失去对Java品牌的控制，有可能的选择部分组件成为开放源代码软件。因为开放Sun 的Java应用软件的源代码是开放其全部软件产品源代码的一个步骤，也是增加其软件业务收入战略的一部分。按照这种说法开源的确只是时间问题和如何实现的问题,但几年过去了不还就只是这些个问题吗？</p>
<p>2、在这次JavaOne大会上sun公司终于发布了[URL=http://java.sun.com/javaee/downloads/index.jsp]javaEE 5.0[/URL]。 Via:[URL=http://java.csdn.net/n/20060517/90558.html]CSDN[/URL]<br />
这个版本算是SUN第一个商业且比较完善的Java EE 5实现吧，特点如下:<br />
简化开发&#8211;对编程模式的重新组织<br />
[B]支持EJB3.0&#8211;POJO[/B]<br />
支持Java Persistence API , ORM更简单<br />
JAX-WS 2.0 以及 JAXB 2.0 使得开发web services 以及SOA应用更加便捷  [URL=https://blueprints.dev.java.net/petstore/index.html]Vai[/URL]<br />
[B]JavaServer Faces 1.2&#8211;更简易开发AJAX[/B]<br />
[B]效率更高, 同时管理和部署功能更强大[/B]<br />
[B]启动速度提高30%, 占用内存减少30%.[/B]<br />
web services 效率提高至少5倍.<br />
web services 管理更强大<br />
整合了NetBeans以及支持Eclipse plug-in<br />
提供了整合NetBeans的可视化的SOA 开发以及部署<br />
Sun&#8217;s Java System Application Server PE 9.0是完全开源的<br />
更详细的介绍看这里：[URL=http://java.sun.com/developer/technicalArticles/J2EE/intro_ee5/]An Introduction to the Java EE 5 Platform[/URL]</p>
<p>3、Google发布了[URL=http://code.google.com/webtoolkit/]Web Toolkit[/URL]，它是一个基于Java的应用开发框架，可以用Java开发前端应用并将其转换为使用AJAX实现的JavaScript/HTML应用。不错的项目，相信Google结合java的API后Web Toolkit有更多新奇的东西面世,也算是二大公司合作的开始吧&#8230;&#8230;</p>
<p>4、Sun宣布了Operating System Distributor&#8217;s License for Java (DLJ)许可协议，这个许可使得基于OpenSolaris的一些开源操作系统可以合法地分发Java SDK和JRE软件包(包括Debian、Ubuntu、Gentoo&#8230;),现在大家想在Linux上安装JAVA不在需要那么折腾了，一个apt-get install就够定了。可惜发现的晚了半拍，害的我刚花了大半天时间才把Java在Ubuntu上搞定等回过头来才发现有这么大个[URL=http://archive.ubuntu.com/ubuntu/pool/multiverse/s/sun-java5/]包[/URL]，失败(我决定删了重来&#8230;..@&amp;*@&amp;#*&amp;(*!)。<br />
相关信息:[URL=http://www.itweek.co.uk/vnunet/news/2156210/sun-makes-java-license-linux]Sun makes Java licence more Linux friendly[/URL]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/422/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>JavaOne 第一天</title>
		<link>http://welog.org/blog/421</link>
		<comments>http://welog.org/blog/421#comments</comments>
		<pubDate>Tue, 16 May 2006 22:28:31 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[javaOne]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/javaone-%e7%ac%ac%e4%b8%80%e5%a4%a9/</guid>
		<description><![CDATA[[B]James Gosling @ Alumni panel[/B] 今天是JavaOne大会的第一天，虽然不能前去但还是可以从视频里感受一下的，同时你也可以从[URL=http://java.sun.com/javaone/sf/sessions/general/index.jsp]这里[/URL]了解相关牛人的主题演讲！ [B]JavaOne 2006 Welcome [/B] [B]James Gosling @ Alumni panel[/B] 今天是JavaOne大会的第一天，虽然不能前去但还是可以从视频里感受一下的，同时你也可以从[URL=http://java.sun.com/javaone/sf/sessions/general/index.jsp]这里[/URL]了解相关牛人的主题演讲！]]></description>
			<content:encoded><![CDATA[<p>[B]James Gosling @ Alumni panel[/B]</p>
<p>今天是JavaOne大会的第一天，虽然不能前去但还是可以从视频里感受一下的，同时你也可以从[URL=http://java.sun.com/javaone/sf/sessions/general/index.jsp]这里[/URL]了解相关牛人的主题演讲！<br />
<span id="more-421"></span></p>
<p>[B]JavaOne 2006 Welcome<br />
[/B]</p>
<p>[B]James Gosling @ Alumni panel[/B]</p>
<p>今天是JavaOne大会的第一天，虽然不能前去但还是可以从视频里感受一下的，同时你也可以从[URL=http://java.sun.com/javaone/sf/sessions/general/index.jsp]这里[/URL]了解相关牛人的主题演讲！</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/421/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaOne 2006</title>
		<link>http://welog.org/blog/420</link>
		<comments>http://welog.org/blog/420#comments</comments>
		<pubDate>Mon, 15 May 2006 18:27:32 +0000</pubDate>
		<dc:creator>maxbaifan</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[javaOne]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/javaone-2006/</guid>
		<description><![CDATA[JavaOne大会将于明天在美国旧金山的Moscone Center 举行,今年的JavaOne将包含更多的议题以及大量的Open Source的话题，而NetBeans Software Day选择与JavaOne在同一天进行,必然会更加热闹。而企业级开发话题当然是大会的重中之重,如：AJAX, EJB3.0, SOA, Spring Framework，JRuby， JDNC （Java Desktop Network Components）以及 Grid。而在开发工具方面，Sun计划在这次大会上发布Java EE 5 SDK（软件开发工具包）和兼容性测试套件。除此之外，这次大会上Sun同时将会发布下一个Java标准版JAVA6（代号Mustang）及JCP的年度最佳评选，三个JCP标准：<B>EJB3(JSR 220)</B>，[B]JAVA EE(JSR 244)[/B]，[B]动态语言(JSR 292)[/B],从我个人的选择看[B]JAVA EE(JSR 244)[/B]是首选。<br />]]></description>
			<content:encoded><![CDATA[<p>2006年的<a target="_blank" href="http://java.sun.com/javaone/sf/index.jsp">JavaOne</a>大 会将于明天在美国旧金山的Moscone Center 举行,今年的JavaOne将包含更多的议题以及大量的Open Source的话题，而NetBeans Software Day选择与JavaOne在同一天进行,必然会更加热闹。而企业级开发话题当然是大会的重中之重,如：AJAX, EJB3.0, SOA, Spring Framework，JRuby， JDNC （Java Desktop Network Components）以及 Grid。而在开发工具方面，Sun计划在这次大会上发布Java EE 5 SDK（软件开发工具包）和兼容性测试套件。除此之外，这次大会上Sun同时将会发布下一个Java标准版JAVA6（代号Mustang）及JCP的年 度最佳评选，三个JCP标准：<strong>EJB3(JSR 220)</strong>，<strong>JAVA EE(JSR 244)</strong>，<strong>动态语言(JSR 292)</strong>,从我个人的选择看<strong>JAVA EE(JSR 244)</strong>是首选。<br />
而象我这样没有机会去JavaOne的人，可以通过<strong>WebCast</strong>(待更新)来看一些现场的主题演讲。<br />
<br />
<strong>JavaOne的相关资料收集(Sun 官方)</strong><br />
<a target="_blank" href="http://java.sun.com/javaone/sf/index.jsp">JavaOne 2006</a><br />
<a target="_blank" href="http://java.sun.com/javaone/sf/schedule.jsp">JavaOne 2006 日程安排</a><br />
<a target="_blank" href="http://java.sun.com/developer/technicalArticles/JavaOne2006/coolstuff_top10.html">Top 10 Cool Stuff Destinations at the 2006 JavaOne Conference</a><br />
<a target="_blank" href="http://java.sun.com/developer/technicalArticles/JavaOne2006/Top10EnterpriseSessions.html">Top 10 Destinations for Enterprise Developers at the 2006 JavaOne Conference</a><br />
<a target="_blank" href="http://java.sun.com/developer/technicalArticles/JavaOne2006/se_top10.html">Top 10 Java SE Destinations at the 2006 JavaOne Conference</a><br />
<a target="_blank" href="http://java.sun.com/developer/technicalArticles/JavaOne2006/tools_top10.html">Tools: Top 10 Destinations at the 2006 JavaOne Conference</a><br />
<strong>CSDN上的相关报道</strong><br />
<a target="_blank" href="http://java.csdn.net/n/20060512/90308.html">JavaOne 2006 企业开发 Top 10</a><br />
<a target="_blank" href="http://java.csdn.net/n/20060512/90309.html">JavaOne 2006 开发工具 Top 10</a><br />
<a target="_blank" href="http://java.csdn.net/n/20060512/90311.html">JavaOne 2006 最酷应用 Top 10</a><br />
<a target="_blank" href="http://java.csdn.net/n/20060512/90313.html">JavaOne 2006，“JCP 奥斯卡”花落谁家？</a></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/420/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>收到Ubuntu Linux 5.10 光盘</title>
		<link>http://welog.org/blog/417</link>
		<comments>http://welog.org/blog/417#comments</comments>
		<pubDate>Thu, 27 Apr 2006 19:14:37 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e6%94%b6%e5%88%b0ubuntu-linux-510-%e5%85%89%e7%9b%98/</guid>
		<description><![CDATA[这段时间Blog没有更新就是因为在Linux下的一个PHP程序怎么也调试不好，郁闷得不行，来回折腾了几天也没见起色也就没有心情POST，不过还好收到了上个月定的Ubuntu的光盘，满满的一大袋子，总共20张，每份两张光盘。其中 x86 版本 16 份，64/PC 版本 ！看来Ubuntu 得到Mark Shuttleworth 捐赠的一千万美金基金后变得底气十足，这么肆无忌惮的以免费发放 的方式进行推广。想不火都不行呀，既然收到了光盘，当然不能辜负人家的好意，晚上就准备把系统换成Ubuntu，相信这个Debian的变种应该有更好的表现。大家也可以通过[URL=http://shipit.ubuntulinux.org]这里[/URL]免费索取 Ubuntu 光盘，所有费用由基金会承担，另外有需要的朋友([FONT-COLOR=Red]限合肥地区[/FONT-COLOR])可以通过[URL=mailto:maxbaifan@gmail.com]Mail[/URL]联系我Ubuntu CD 二个版本的截图 这段时间Blog没有更新就是因为在Linux下的一个PHP程序怎么也调试不好，郁闷得不行，来回折腾了几天也没见起色也就没有心情POST，不过还好收到了上个月定的Ubuntu的光盘，满满的一大袋子，总共20张，每份两张光盘。其中 x86 版本 16 份，64/PC 版本 ！看来Ubuntu 得到Mark Shuttleworth 捐赠的一千万美金基金后变得底气十足，这么肆无忌惮的以免费发放 的方式进行推广。想不火都不行呀，既然收到了光盘，当然不能辜负人家的好意，晚上就准备把系统换成Ubuntu，相信这个Debian的变种应该有更好的表现。大家也可以通过[URL=http://shipit.ubuntulinux.org]这里[/URL]免费索取 Ubuntu 光盘，所有费用由基金会承担，另外有需要的朋友([FONT-COLOR=Red]限合肥地区[/FONT-COLOR])可以通过[URL=mailto:maxbaifan@gmail.com]Mail[/URL]联系我Ubuntu CD 二个版本的截图。 [CODE_LITE] Ubuntu 是一个完全以 Linux 为基础的操作系统, 可自由的获得，并提供社区和专业的支持。 Ubuntu 宣言: 软件应免费提供，软件工具应能以人们本地语种的形式可用且不牺牲任何功能，人们应拥有定制及改变他们软件的自由，这包括以任何他们认为适宜的方式。 这些自由让 Ubuntu 从根本上与传统的专有软件不同: 不仅仅是你需要的免费工具，你有权利修正你的软件，直到它以你想要方式工作。 Ubuntu 团队对它的使用者公开的承诺: Ubuntu 永远免费, 并且对于 &#34;企业版本&#34; 没有任何额外的费用, 在同样的自由团队上，将最好的工作成果带给每一个人。 Ubuntu 包含了非常好的翻译和容易使用的架构，这些由自由软件社团将不断的提供, 将尽可能的使大多数人方便使用 Ubuntu [...]]]></description>
			<content:encoded><![CDATA[<p><img hspace="0" src="upload/ubuntu.jpg" align="left" border="0" />这段时间Blog没有更新就是因为在Linux下的一个PHP程序怎么也调试不好，郁闷得不行，来回折腾了几天也没见起色也就没有心情POST，不过还好收到了上个月定的Ubuntu的光盘，满满的一大袋子，总共20张，每份两张光盘。其中 x86 版本 16 份，64/PC 版本 ！<br />看来<a href="http://www.ubuntu.com/">Ubuntu</a> 得到Mark Shuttleworth 捐赠的一千万美金基金后变得底气十足，这么肆无忌惮的以免费发放 的方式进行推广。想不火都不行呀，既然收到了光盘，当然不能辜负人家的好意，晚上就准备把系统换成Ubuntu，相信这个Debian的变种应该有更好的表现。<br />大家也可以通过[URL=http://shipit.ubuntulinux.org]这里[/URL]免费索取 Ubuntu 光盘，所有费用由基金会承担，另外有需要的朋友([FONT-COLOR=Red]限合肥地区[/FONT-COLOR])可以通过[URL=mailto:maxbaifan@gmail.com]Mail[/URL]联系我<br /><strong>Ubuntu <acronym title="Compact Disc">CD</acronym> 二个版本的截图</strong><br />
<span id="more-417"></span><br />
<img hspace="0" src="upload/ubuntu.jpg" align="left" border="0" />这段时间Blog没有更新就是因为在Linux下的一个PHP程序怎么也调试不好，郁闷得不行，来回折腾了几天也没见起色也就没有心情POST，不过还好收到了上个月定的Ubuntu的光盘，满满的一大袋子，总共20张，每份两张光盘。其中 x86 版本 16 份，64/PC 版本 ！<br />看来<a href="http://www.ubuntu.com/">Ubuntu</a> 得到Mark Shuttleworth 捐赠的一千万美金基金后变得底气十足，这么肆无忌惮的以免费发放 的方式进行推广。想不火都不行呀，既然收到了光盘，当然不能辜负人家的好意，晚上就准备把系统换成Ubuntu，相信这个Debian的变种应该有更好的表现。<br />大家也可以通过[URL=http://shipit.ubuntulinux.org]这里[/URL]免费索取 Ubuntu 光盘，所有费用由基金会承担，另外有需要的朋友([FONT-COLOR=Red]限合肥地区[/FONT-COLOR])可以通过[URL=mailto:maxbaifan@gmail.com]Mail[/URL]联系我<br /><strong>Ubuntu <acronym title="Compact Disc">CD</acronym> 二个版本的截图。<br /><img hspace="0" src="upload/ubuntu_1.jpg" align="middle" border="0" /></p>
<p><img hspace="0" src="upload/ubuntu_2.jpg" align="middle" border="0" /></strong>
<p>[CODE_LITE] Ubuntu 是一个完全以 Linux 为基础的操作系统, 可自由的获得，并提供社区和专业的支持。 Ubuntu 宣言: 软件应免费提供，软件工具应能以人们本地语种的形式可用且不牺牲任何功能，人们应拥有定制及改变他们软件的自由，这包括以任何他们认为适宜的方式。 这些自由让 Ubuntu 从根本上与传统的专有软件不同: 不仅仅是你需要的免费工具，你有权利修正你的软件，直到它以你想要方式工作。 Ubuntu 团队对它的使用者公开的承诺: Ubuntu 永远免费, 并且对于 &quot;企业版本&quot; 没有任何额外的费用, 在同样的自由团队上，将最好的工作成果带给每一个人。 Ubuntu 包含了非常好的翻译和容易使用的架构，这些由自由软件社团将不断的提供, 将尽可能的使大多数人方便使用 Ubuntu 。 Ubuntu 将有规律和计划的不断发布; 每 6 个月发布一个新版本。你可以使用当前稳定版本或者开发版本。每一种版本的安全升级将支持 18 个月。 Ubuntu 完全忠于自由开源软件的发展; 我们鼓励人们使用自由开源软件 ，改进它和继续传递它。 Ubuntu 对于桌面和服务器都是合适的。当前 Ubuntu 发布版支持 Intel x86 (IBM-compatible PC), AMD64 (Hammer) and PowerPC (Apple iBook and Powerbook, G4 and G5) 架构。 Ubuntu 包含了超过 1,000 种软件, 使用 Linux kernel version 2.6 and Gnome 2.10, 覆盖了所有的桌面应用程序, 包含了文字处理，电子表格， internet 应用程序, web server 软件, email 软件, 开发设计工具, 常用工具, 当然还有一些游戏。 Ubuntu 基金会宣布 Ubuntu 6.04 將在 2006 年四月推出，其中桌面版提供维护支援3年，服务器版本则是5年。 [/CODE_LITE] </p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/417/feed</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Get Your Free NetBeans worldTour CD</title>
		<link>http://welog.org/blog/26</link>
		<comments>http://welog.org/blog/26#comments</comments>
		<pubDate>Wed, 05 Apr 2006 14:38:51 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Netbeans]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/get-your-free-netbeans-worldtour-cd/</guid>
		<description><![CDATA[在JavaOne 2006 May 16 &#8211; 19, 2006]及netbeans 2006 May 15, 2006快召开之际,Netbeans官方放出了Order Your Free NetBeans worldTour CD.你只要简单的填写相关的表单就能得到NetBeans worldTour的免费光盘,其中包括:NetBeans IDE 5.0 , NetBeans Mobility Pack 5.0, NetBeans Profiler 5.0 和Sun Java System Application Server 8.2 版. 见意有需要的用户申请,对于非技术类的用户这张光盘对你没有任何作用. PS:如果NetBeans能连同光盘和worldTour T-shirt一起寄给我多好呀!^_*]]></description>
			<content:encoded><![CDATA[<p>在<a href="http://java.sun.com/javaone/sf/index.jsp">JavaOne 2006</a> May 16 &#8211; 19, 2006]及<a href="http://www.netbeans.org/community/articles/javaone/2006/nb-day.htm">netbeans 2006</a> May 15, 2006快召开之际,Netbeans官方放出了<a href="http://www.netbeans.org/about/cd-form.html">Order Your Free NetBeans worldTour CD</a>.你只要简单的填写相关的表单就能得到<a href="http://www.netbeans.org/community/articles/worldtour/index.html">NetBeans worldTour</a>的免费光盘,其中包括:NetBeans IDE 5.0 , NetBeans Mobility Pack 5.0, NetBeans Profiler 5.0 和Sun Java System Application Server 8.2 版.<br />
<strong>见意有需要的用户申请,对于非技术类的用户这张光盘对你没有任何作用.</strong><br />
<img src="http://www.netbeans.org/images/articles/worldtour/special.gif" alt="" /><br />
PS:如果NetBeans能连同光盘和worldTour T-shirt一起寄给我多好呀!^_*</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/26/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>愚人节</title>
		<link>http://welog.org/blog/24</link>
		<comments>http://welog.org/blog/24#comments</comments>
		<pubDate>Sat, 01 Apr 2006 14:53:12 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e6%84%9a%e4%ba%ba%e8%8a%82/</guid>
		<description><![CDATA[花了一个晚上的时间将SUSE 10.01下载安装并调试完成,一看时间这都快8点了*_*,今天是4.1,应该会看到很多的关于愚人节的新闻,不过POST这篇文章后就不管我的事了,想整我的兄弟姐妹们就免了,这个愚人节我将会在睡梦中度过&#8230;..哈哈哈哈 PS:说明一下图片来源,[URL=http://chatfu.com]Chatfu[/URL]它可以把你的对话转换成卡通的形式，非常有趣,见上图。愚人节送上听了整晚的一张[URL=http://www.box.net/public/jjg0stgikh]专辑[/URL]吧,祝大家愚人节不要被整&#8230;&#8230; 花了一个晚上的时间将SUSE 10.01下载安装并调试完成,一看时间这都快8点了*_*,今天是4.1,应该会看到很多的关于愚人节的新闻,不过POST这篇文章后就不管我的事了,想整我的兄弟姐妹们就免了,这个愚人节我将会在睡梦中度过&#8230;..哈哈哈哈 PS:说明一下图片来源,[URL=http://chatfu.com]Chatfu[/URL]它可以把你的对话转换成卡通的形式，非常有趣,见上图。愚人节送上听了整晚的一张[URL=http://www.box.net/public/jjg0stgikh]专辑[/URL]吧,祝大家愚人节不要被整&#8230;&#8230;]]></description>
			<content:encoded><![CDATA[<p>花了一个晚上的时间将SUSE 10.01下载安装并调试完成,一看时间这都快8点了*_*,今天是4.1,应该会看到很多的关于愚人节的新闻,不过POST这篇文章后就不管我的事了,想整我的兄弟姐妹们就免了,这个愚人节我将会在睡梦中度过&#8230;..哈哈哈哈<br />
<img src='http://chatfu.com/images/chats/b9/4c/be/fe/57382/frame0.jpg' alt='知道今天什么日子吗?' /><br />
PS:说明一下图片来源,[URL=http://chatfu.com]Chatfu[/URL]它可以把你的对话转换成卡通的形式，非常有趣,见上图。愚人节送上听了整晚的一张[URL=http://www.box.net/public/jjg0stgikh]专辑[/URL]吧,祝大家愚人节不要被整&#8230;&#8230;<br />
<span id="more-24"></span><br />
花了一个晚上的时间将SUSE 10.01下载安装并调试完成,一看时间这都快8点了*_*,今天是4.1,应该会看到很多的关于愚人节的新闻,不过POST这篇文章后就不管我的事了,想整我的兄弟姐妹们就免了,这个愚人节我将会在睡梦中度过&#8230;..哈哈哈哈<br />
PS:说明一下图片来源,[URL=http://chatfu.com]Chatfu[/URL]它可以把你的对话转换成卡通的形式，非常有趣,见上图。愚人节送上听了整晚的一张[URL=http://www.box.net/public/jjg0stgikh]专辑[/URL]吧,祝大家愚人节不要被整&#8230;&#8230;<br />
<img src='http://chatfu.com/images/chats/b9/4c/be/fe/57382/frame0.jpg' alt='知道今天什么日子吗?' /><br />
<img src='http://chatfu.com/images/chats/b9/4c/be/fe/57382/frame1.jpg' alt='不知道!' /><br />
<img src='http://chatfu.com/images/chats/b9/4c/be/fe/57382/frame2.jpg' alt='什么?不知道?' /><br />
<img src='http://chatfu.com/images/chats/b9/4c/be/fe/57382/frame3.jpg' alt='是的......' /><br />
<img src='http://chatfu.com/images/chats/b9/4c/be/fe/57382/frame4.jpg' alt='那你被整了吗?' /><br />
<img src='http://chatfu.com/images/chats/b9/4c/be/fe/57382/frame5.jpg' alt='......' /><br />
<img src='http://chatfu.com/images/chats/b9/4c/be/fe/57382/frame6.jpg' alt='那你整人了吗?' /><br />
<img src='http://chatfu.com/images/chats/b9/4c/be/fe/57382/frame7.jpg' alt='......' /><br />
<img src='http://chatfu.com/images/chats/b9/4c/be/fe/57382/frame8.jpg' alt='现在知道是什么日子了吗?' /><br />
<img src='http://chatfu.com/images/chats/b9/4c/be/fe/57382/frame9.jpg' alt='Oh明白了.' /></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/24/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CC China 2.5协议发布</title>
		<link>http://welog.org/blog/22</link>
		<comments>http://welog.org/blog/22#comments</comments>
		<pubDate>Sat, 01 Apr 2006 05:47:51 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/cc-china-25%e5%8d%8f%e8%ae%ae%e5%8f%91%e5%b8%83/</guid>
		<description><![CDATA[[URL=http://wikinews.cnblog.org/wiki/CC_China_2.5åè®®æ­£å¼åå¸]CC China 2.5协议正式发布 &#8211; Wikinews[/URL]cc china 2.5经过几个月的[URL=tp://groups.google.com/group/ccchina?lnk=li]开放讨论[/URL]，以及召开了一场CC协议草案讨论会，终于发布了,[B][FONT-COLOR=Red]希望大都能自觉遵守[/FONT-COLOR][/B]. 知识共享(Creative Commons)组织简称CC，是劳伦斯·莱斯格在2001年创办的一个非营利机构。该组织的主要宗旨是增加创意作品的流通可及性，作为其他人据以创作及共享的基础，并寻找适当的法律以确保上述理念。 根据知识共享组织的要求，由于不同司法管辖区的法律体制和制作权法不同，因此在不同司法管辖区需要根据原始协议进行本地化以切和当地的法律要求。 知识共享协议允许作者选择不同的授权条款，指定四种条件并作出6种不同的组合来为作品授权： CC的标志姓名标示 ([B]by[/B]) 非商业性 ([B]nc[/B]) 禁止改作 ([B]nd[/B]) 相同方式分享 ([B]sa[/B]) 目前, 知识共享协议在Blog中使用最为普遍，几乎成为Blog版权的代名词。 [B]CC China2.5与CC China1.0的比较：[/B] CC China2.5 署名。你必须按照作者或者许可人指定的方式对作品进行署名。 CC China1.0 署名。你必须明确标明作者的名字。 相关链接： [URL=http://creativecommons.org/license]CC China 2.5版权生成器[/URL] [URL=http://cn.creativecommons.org/]CC China官方网站[/URL] [URL=http://www.creativecommons.org/]知识共享(CC)组织[/URL] [URL=http://wikinews.cnblog.org/wiki/CC_China_2.5åè®®æ­£å¼åå¸]CC China 2.5协议正式发布 &#8211; Wikinews[/URL]cc china 2.5经过几个月的[URL=tp://groups.google.com/group/ccchina?lnk=li]开放讨论[/URL]，以及召开了一场CC协议草案讨论会，终于发布了,[B][FONT-COLOR=Red]希望大都能自觉遵守[/FONT-COLOR][/B]. 知识共享(Creative Commons)组织简称CC，是劳伦斯·莱斯格在2001年创办的一个非营利机构。该组织的主要宗旨是增加创意作品的流通可及性，作为其他人据以创作及共享的基础，并寻找适当的法律以确保上述理念。 根据知识共享组织的要求，由于不同司法管辖区的法律体制和制作权法不同，因此在不同司法管辖区需要根据原始协议进行本地化以切和当地的法律要求。 知识共享协议允许作者选择不同的授权条款，指定四种条件并作出6种不同的组合来为作品授权： CC的标志姓名标示 ([B]by[/B]) 非商业性 ([B]nc[/B]) 禁止改作 ([B]nd[/B]) 相同方式分享 [...]]]></description>
			<content:encoded><![CDATA[<p>[URL=http://wikinews.cnblog.org/wiki/CC_China_2.5åè®®æ­£å¼åå¸]CC China 2.5协议正式发布 &#8211; Wikinews[/URL]cc china 2.5经过几个月的[URL=tp://groups.google.com/group/ccchina?lnk=li]开放讨论[/URL]，以及召开了一场CC协议草案讨论会，终于发布了,[B][FONT-COLOR=Red]希望大都能自觉遵守[/FONT-COLOR][/B].</p>
<p>知识共享(Creative Commons)组织简称CC，是劳伦斯·莱斯格在2001年创办的一个非营利机构。该组织的主要宗旨是增加创意作品的流通可及性，作为其他人据以创作及共享的基础，并寻找适当的法律以确保上述理念。</p>
<p>根据知识共享组织的要求，由于不同司法管辖区的法律体制和制作权法不同，因此在不同司法管辖区需要根据原始协议进行本地化以切和当地的法律要求。<br />
知识共享协议允许作者选择不同的授权条款，指定四种条件并作出6种不同的组合来为作品授权：</p>
<p>CC的标志姓名标示 ([B]by[/B])<br />
非商业性 ([B]nc[/B])<br />
禁止改作 ([B]nd[/B])<br />
相同方式分享 ([B]sa[/B]) </p>
<p>目前, 知识共享协议在Blog中使用最为普遍，几乎成为Blog版权的代名词。<br />
[B]CC China2.5与CC China1.0的比较：[/B]<br />
CC China2.5 署名。你必须按照作者或者许可人指定的方式对作品进行署名。<br />
CC China1.0 署名。你必须明确标明作者的名字。</p>
<p>相关链接：<br />
[URL=http://creativecommons.org/license]CC China 2.5版权生成器[/URL]<br />
[URL=http://cn.creativecommons.org/]CC China官方网站[/URL]<br />
[URL=http://www.creativecommons.org/]知识共享(CC)组织[/URL]<br />
<span id="more-22"></span><br />
[URL=http://wikinews.cnblog.org/wiki/CC_China_2.5åè®®æ­£å¼åå¸]CC China 2.5协议正式发布 &#8211; Wikinews[/URL]cc china 2.5经过几个月的[URL=tp://groups.google.com/group/ccchina?lnk=li]开放讨论[/URL]，以及召开了一场CC协议草案讨论会，终于发布了,[B][FONT-COLOR=Red]希望大都能自觉遵守[/FONT-COLOR][/B].</p>
<p>知识共享(Creative Commons)组织简称CC，是劳伦斯·莱斯格在2001年创办的一个非营利机构。该组织的主要宗旨是增加创意作品的流通可及性，作为其他人据以创作及共享的基础，并寻找适当的法律以确保上述理念。</p>
<p>根据知识共享组织的要求，由于不同司法管辖区的法律体制和制作权法不同，因此在不同司法管辖区需要根据原始协议进行本地化以切和当地的法律要求。<br />
知识共享协议允许作者选择不同的授权条款，指定四种条件并作出6种不同的组合来为作品授权：</p>
<p>CC的标志姓名标示 ([B]by[/B])<br />
非商业性 ([B]nc[/B])<br />
禁止改作 ([B]nd[/B])<br />
相同方式分享 ([B]sa[/B]) </p>
<p>目前, 知识共享协议在Blog中使用最为普遍，几乎成为Blog版权的代名词。<br />
[B]CC China2.5与CC China1.0的比较：[/B]<br />
CC China2.5 署名。你必须按照作者或者许可人指定的方式对作品进行署名。<br />
CC China1.0 署名。你必须明确标明作者的名字。</p>
<p>相关链接：<br />
[URL=http://creativecommons.org/license]CC China 2.5版权生成器[/URL]<br />
[URL=http://cn.creativecommons.org/]CC China官方网站[/URL]<br />
[URL=http://www.creativecommons.org/]知识共享(CC)组织[/URL]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/22/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Netbeans 5.0 Plugin Development Support Updated</title>
		<link>http://welog.org/blog/405</link>
		<comments>http://welog.org/blog/405#comments</comments>
		<pubDate>Thu, 09 Mar 2006 22:51:49 +0000</pubDate>
		<dc:creator>maxbaifan</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/netbeans-50-plugin-development-support-updated/</guid>
		<description><![CDATA[一直在试用Netbeans 5，感觉Matisse对于Layout的智能化处理的确让如今的NetBenas的界面设计，较之前的版有了质的飞跃，而且NetBeans在所见即所得开发方面的确下了很大功夫，也取得了很大的进步。目前Netbeans 5又做了一次大的更新Update 1,功能上也有不少改善，从下面的图中可以更直观的看到更新的内容！ 以下为相相关的特性： * New Sample App. * Target JDK for building NBM project. * Allow NBM Project Rename/Move/Copy/Delete. * Libraries node for NBM project. * New File Templates - Java Help. Creates all files needed for building a JavaHelp help set. - Module Installer. Creates an installer class for a module. - [...]]]></description>
			<content:encoded><![CDATA[<p>一直在试用Netbeans 5，感觉Matisse对于Layout的智能化处理的确让如今的NetBenas的界面设计，较之前的版有了质的飞跃，而且NetBeans在所见即所得开发方面的确下了很大功夫，也取得了很大的进步。目前Netbeans 5又做了一次大的更新Update 1,功能上也有不少改善，从下面的图中可以更直观的看到更新的内容！</p>
<p>以下为相相关的特性：<br />
* New Sample App.<br />
* Target JDK for building NBM project.<br />
* Allow NBM Project Rename/Move/Copy/Delete.<br />
* Libraries node for NBM project.<br />
* New File Templates<br />
- Java Help. Creates all files needed for building a JavaHelp help set.<br />
- Module Installer. Creates an installer class for a module.<br />
- Update Center. Links to a published update center descriptor.<br />
- Option Panel. Adds to the Options dialog.<br />
* Create NBMs&#8217; action for module suites.<br />
更多内容看 <a target="_blank" href="http://www.netbeans.org/source/browse/~checkout~/apisupport/project/javahelp/org/netbeans/modules/apisupport/project/docs/about/whats_new_50update1.html">这里 </a>及 <a href="http://apisupport.netbeans.org/50u1-testing-program.html">How to install update</a></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/405/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>和谐</title>
		<link>http://welog.org/blog/404</link>
		<comments>http://welog.org/blog/404#comments</comments>
		<pubDate>Tue, 07 Mar 2006 04:18:19 +0000</pubDate>
		<dc:creator>maxbaifan</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%92%8c%e8%b0%90/</guid>
		<description><![CDATA[很有创意的几幅图片，两会还在继续这些图片代表了很多人的声音，不得不说 创意真好 和谐 和：禾+口，人人有饭吃 谐：言+皆，人人能说话 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; PS:这几天没什么心情Post,推荐首反复听了二天吉他曲:Steve vai &#8211; for the love of god很有震撼力的一首曲子，有种说不出的感觉，调高你的音量听吧,你应该能感觉到&#8230;&#8230; 人类的灵魂，其实是无意识的载体，只是我们，被赋予主宰意识的权利。当记忆不断被层层叠加，到最后，谁又会真正记得谁呢？]]></description>
			<content:encoded><![CDATA[<p>很有创意的几幅图片，两会还在继续这些图片代表了很多人的声音，不得不说 <a href="http://www.mindmeters.com/showlog.asp?log_id=2105">创意真好</a><br />
和谐<br />
和：禾+口，人人有饭吃<br />
谐：言+皆，人人能说话<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
PS:这几天没什么心情Post,推荐首反复听了二天吉他曲:Steve vai &#8211; for the love of god很有震撼力的一首曲子，有种说不出的感觉，调高你的音量听吧,你应该能感觉到&#8230;&#8230;<br />
人类的灵魂，其实是无意识的载体，只是我们，被赋予主宰意识的权利。当记忆不断被层层叠加，到最后，谁又会真正记得谁呢？</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/404/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>New Style For Z-blog Release</title>
		<link>http://welog.org/blog/403</link>
		<comments>http://welog.org/blog/403#comments</comments>
		<pubDate>Sat, 04 Mar 2006 00:36:40 +0000</pubDate>
		<dc:creator>maxbaifan</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/new-style-for-z-blog-release/</guid>
		<description><![CDATA[这个样式在Z-BLOG官方论坛已经发布了，所以就没在这里发出来，看到还有人需要放在这儿吧！ 下载后解压上传覆盖文件，再重建就OK了，当然相关的内容到模板中修改，模板分栏处都有标注。目前在IE6.0、Firefox1.5.1、Flock0.5.10下测试正常，Opera下未知,有什么问题请留言! &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; 下载地址:URL 这个样式在Z-BLOG官方论坛已经发布了，所以就没在这里发出来，看到还有人需要放在这儿吧！ 下载后解压上传覆盖文件，再重建就OK了，当然相关的内容到模板中修改，模板分栏处都有标注。目前在IE6.0、Firefox1.5.1、Flock0.5.10下测试正常，Opera下未知,有什么问题请留言! &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; 下载地址:New Style For Z-blog]]></description>
			<content:encoded><![CDATA[<p>这个样式在Z-BLOG官方论坛已经发布了，所以就没在这里发出来，看到还有人需要放在这儿吧！<br />
下载后解压上传覆盖文件，再重建就OK了，当然相关的内容到模板中修改，模板分栏处都有标注。目前在IE6.0、Firefox1.5.1、Flock0.5.10下测试正常，Opera下未知,有什么问题请留言!<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
下载地址:<a href="http://www.zblogger.net/bbs/images/upload/2006/02/28/224839.rar">URL</a><br />
这个样式在Z-BLOG官方论坛已经发布了，所以就没在这里发出来，看到还有人需要放在这儿吧！<br />
下载后解压上传覆盖文件，再重建就OK了，当然相关的内容到模板中修改，模板分栏处都有标注。目前在IE6.0、Firefox1.5.1、Flock0.5.10下测试正常，Opera下未知,有什么问题请留言!<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
下载地址:<a href="http://www.zblogger.net/bbs/images/upload/2006/02/28/224839.rar">New Style For Z-blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/403/feed</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>FreeBSD和SourceForge又被封了!</title>
		<link>http://welog.org/blog/398</link>
		<comments>http://welog.org/blog/398#comments</comments>
		<pubDate>Wed, 01 Mar 2006 00:32:00 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/freebsd%e5%92%8csourceforge%e5%8f%88%e8%a2%ab%e5%b0%81%e4%ba%86/</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160;&#160; 今天发现FreeBSD和SourceForge再一次被封,我不知道为什么要封这样的二个优秀的专业技术站点。影象中sf.net被封过二次，春节期间sf.net又被关进小黑屋，不过很快就又解封了。不知道是不是没有像雅虎之流达成某种妥协，sf.net又再次被拉进了小黑屋。今天为了下载一个开源工具，折腾了我半个小时，也没能下载下来(国外的代理也很难找到能用的)。这次封得很彻底，镜像地址也全部被列入N层过滤之类(估计所谓的国家自主研发，具有自主知识产权的系统，麒麟派上用场了)，多么纯净过滤功能，即安全又卫生,从此天下太平了-_-&#160;&#160;&#160;&#160;&#160;&#160; 俗话说得好敢入乡不随俗，就是这种下场。不过还是希望这是暂时性的，也希望GFW严重考虑一下，这对国内的软件发展不是什么兴事，对于技术人员来说这损失太大了~~~~~~ [FONT-COLOR=Red]UPDATE:其实大家都不想有这事发生，我也希望这是区域性的网络问题，但在发这篇文章之前下载Twiki程序时就验证了。见于Legend的评论[/FONT-COLOR][CODE_LITE]legend 2006-2-28 21:26:28 拜托楼主没有调查就不要轻易下结论，扣大帽子、危言耸听。只是你区域网络问题而已，我这里是正常的。不要什么屎盆子鸟盆子都往伟大的长城上扣。[/CODE_LITE][FONT-COLOR=Red]有必要作下说明!1、访问sf.net页面显示DNS错误，通过IP地址也显示DNS错误。2、而通过代理可以打开页面但程序下载不了（这不是通常的封锁IP地址，而是路由器过滤封锁）。3、通过GOOGEL搜索SF.net出现五秒钟后就提示“DNS错误”。再访问Google也提示“DNS错误”，这是被过滤信息的通常表现。这些应该能证明不是区域网络问题了，而我只是出于对软件开发人员失去这样的专业网站的一点想法，没有扣大帽子，更没有危言耸听&#8230;..[/FONT-COLOR] &#160;&#160;&#160;&#160;&#160;&#160; 今天发现FreeBSD和SourceForge再一次被封,我不知道为什么要封这样的二个优秀的专业技术站点。影象中sf.net被封过二次，春节期间sf.net又被关进小黑屋，不过很快就又解封了。不知道是不是没有像雅虎之流达成某种妥协，sf.net又再次被拉进了小黑屋。今天为了下载一个开源工具，折腾了我半个小时，也没能下载下来(国外的代理也很难找到能用的)。这次封得很彻底，镜像地址也全部被列入N层过滤之类(估计所谓的国家自主研发，具有自主知识产权的系统，麒麟派上用场了)，多么纯净过滤功能，即安全又卫生,从此天下太平了-_-&#160;&#160;&#160;&#160;&#160;&#160; 俗话说得好敢入乡不随俗，就是这种下场。不过还是希望这是暂时性的，也希望GFW严重考虑一下，这对国内的软件发展不是什么兴事，对于技术人员来说这损失太大了~~~~~~ [FONT-COLOR=Red]UPDATE:其实大家都不想有这事发生，我也希望这是区域性的网络问题，但在发这篇文章之前下载Twiki程序时就验证了。见于Legend的评论[/FONT-COLOR][CODE_LITE]legend 2006-2-28 21:26:28 拜托楼主没有调查就不要轻易下结论，扣大帽子、危言耸听。只是你区域网络问题而已，我这里是正常的。不要什么屎盆子鸟盆子都往伟大的长城上扣。[/CODE_LITE][FONT-COLOR=Red]有必要作下说明!1、访问sf.net页面显示DNS错误，通过IP地址也显示DNS错误。2、而通过代理可以打开页面但程序下载不了（这不是通常的封锁IP地址，而是路由器过滤封锁）。3、通过GOOGEL搜索SF.net出现五秒钟后就提示“DNS错误”。再访问Google也提示“DNS错误”，这是被过滤信息的通常表现。这些应该能证明不是区域网络问题了，而我只是出于对软件开发人员失去这样的专业网站的一点想法，没有扣大帽子，更没有危言耸听&#8230;..[/FONT-COLOR]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天发现FreeBSD和SourceForge再一次被封,我不知道为什么要封这样的二个优秀的专业技术站点。影象中sf.net被封过二次，春节期间sf.net又被关进<b>小黑屋</b>，不过很快就又解封了。不知道是不是没有像雅虎之流达成某种妥协，sf.net又再次被拉进了<b>小黑屋。</b>今天为了下载一个开源工具，折腾了我半个小时，也没能下载下来(国外的代理也很难找到能用的)。这次封得很彻底，镜像地址也全部被列入N层过滤之类(估计所谓的国家自主研发，具有自主知识产权的系统，<b>麒麟</b>派上用场了)，多么纯净过滤功能，即安全又卫生,从此天下太平了-_-<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 俗话说得好敢入乡不随俗，就是这种下场。不过还是希望这是暂时性的，也希望GFW严重考虑一下，这对国内的软件发展不是什么兴事，对于技术人员来说这损失太大了~~~~~~</p>
<p>[FONT-COLOR=Red]UPDATE:其实大家都不想有这事发生，我也希望这是区域性的网络问题，但在发这篇文章之前下载Twiki程序时就验证了。见于Legend的评论[/FONT-COLOR][CODE_LITE]legend 2006-2-28 21:26:28<br />
拜托楼主没有调查就不要轻易下结论，扣大帽子、危言耸听。只是你区域网络问题而已，我这里是正常的。不要什么屎盆子鸟盆子都往伟大的长城上扣。[/CODE_LITE][FONT-COLOR=Red]有必要作下说明!1、访问sf.net页面显示DNS错误，通过IP地址也显示DNS错误。2、而通过代理可以打开页面但程序下载不了（这不是通常的封锁IP地址，而是路由器过滤封锁）。3、通过GOOGEL搜索SF.net出现五秒钟后就提示“DNS错误”。再访问Google也提示“DNS错误”，这是被过滤信息的通常表现。这些应该能证明不是区域网络问题了，而我只是出于对软件开发人员失去这样的专业网站的一点想法，没有扣大帽子，更没有危言耸听&#8230;..[/FONT-COLOR]<br />
<span id="more-398"></span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天发现FreeBSD和SourceForge再一次被封,我不知道为什么要封这样的二个优秀的专业技术站点。影象中sf.net被封过二次，春节期间sf.net又被关进<b>小黑屋</b>，不过很快就又解封了。不知道是不是没有像雅虎之流达成某种妥协，sf.net又再次被拉进了<b>小黑屋。</b>今天为了下载一个开源工具，折腾了我半个小时，也没能下载下来(国外的代理也很难找到能用的)。这次封得很彻底，镜像地址也全部被列入N层过滤之类(估计所谓的国家自主研发，具有自主知识产权的系统，<b>麒麟</b>派上用场了)，多么纯净过滤功能，即安全又卫生,从此天下太平了-_-<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 俗话说得好敢入乡不随俗，就是这种下场。不过还是希望这是暂时性的，也希望GFW严重考虑一下，这对国内的软件发展不是什么兴事，对于技术人员来说这损失太大了~~~~~~<br />
[FONT-COLOR=Red]UPDATE:其实大家都不想有这事发生，我也希望这是区域性的网络问题，但在发这篇文章之前下载Twiki程序时就验证了。见于Legend的评论[/FONT-COLOR][CODE_LITE]legend 2006-2-28 21:26:28<br />
拜托楼主没有调查就不要轻易下结论，扣大帽子、危言耸听。只是你区域网络问题而已，我这里是正常的。不要什么屎盆子鸟盆子都往伟大的长城上扣。[/CODE_LITE][FONT-COLOR=Red]有必要作下说明!1、访问sf.net页面显示DNS错误，通过IP地址也显示DNS错误。2、而通过代理可以打开页面但程序下载不了（这不是通常的封锁IP地址，而是路由器过滤封锁）。3、通过GOOGEL搜索SF.net出现五秒钟后就提示“DNS错误”。再访问Google也提示“DNS错误”，这是被过滤信息的通常表现。这些应该能证明不是区域网络问题了，而我只是出于对软件开发人员失去这样的专业网站的一点想法，没有扣大帽子，更没有危言耸听&#8230;..[/FONT-COLOR]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/398/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Thinking in Java, 4th edition</title>
		<link>http://welog.org/blog/397</link>
		<comments>http://welog.org/blog/397#comments</comments>
		<pubDate>Mon, 27 Feb 2006 07:24:46 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/thinking-in-java-4th-edition/</guid>
		<description><![CDATA[Java编程思想第四版（Thinking in Java, 4th edition）Publisher: Prentice Hall PTR; 4 edition (February 15, 2006) ISBN: 0131872486学Java的大概没有人没看过这本经典书籍,现在出到第四版，Amazon目前开始接受预定,国内还不知道什么时候会有胶印版本。大概的看了一下，感觉这一版改动的比较多，很多内容和示范代码都改写过，当然就是增加J2SE 5.0/6.0（beta）新功能及新特性！有兴趣的朋友可以关注一下Bruce Eckel 的Blog中写了一篇名为 Where is Thinking in Java, 4th Edition? 的文章向读者介绍了TIJ 4th的写作进展和感言。Burce Erkel&#8217;s mindview上提供前7个章节的pdf格式样书下载。 Java编程思想第四版（Thinking in Java, 4th edition）Publisher: Prentice Hall PTR; 4 edition (February 15, 2006) ISBN: 0131872486学Java的大概没有人没看过这本经典书籍,现在出到第四版，Amazon目前开始接受预定,国内还不知道什么时候会有胶印版本。大概的看了一下，感觉这一版改动的比较多，很多内容和示范代码都改写过，当然就是增加J2SE 5.0/6.0（beta）新功能及新特性！有兴趣的朋友可以关注一下Bruce Eckel 的Blog中写了一篇名为 Where is Thinking in Java, 4th Edition? 的文章向读者介绍了TIJ [...]]]></description>
			<content:encoded><![CDATA[<p><img width="113" height="136" align="left" alt="" src="/upload/java4-front-500.jpg" />Java编程思想第四版（Thinking in Java, 4th edition）<br />Publisher: Prentice Hall PTR; 4 edition (February 15, 2006) <br />ISBN: 0131872486<br />学Java的大概没有人没看过这本经典书籍,现在出到第四版，Amazon目前开始接受预定,国内还不知道什么时候会有胶印版本。大概的看了一下，感觉这一版改动的比较多，很多内容和示范代码都改写过，当然就是增加J2SE 5.0/6.0（beta）新功能及新特性！有兴趣的朋友可以关注一下<a href="http://www.bruceeckel.com/">Bruce Eckel</a> 的<a href="http://www.artima.com/weblogs/index.jsp?blogger=beckel">Blog</a>中写了一篇名为 <a href="http://www.artima.com/weblogs/viewpost.jsp?thread=112552">Where is Thinking in Java, 4th Edition?</a> 的文章向读者介绍了TIJ 4th的写作进展和感言。<br /><a href="http://mindview.net/Books/TIJ4">Burce Erkel&#8217;s mindview</a>上提供前7个章节的pdf格式<a href="http://www.pythoncriticalmass.com/TIJ4/BookSampleDownload.php">样书下载</a>。<br />
<span id="more-397"></span><br />
<img width="113" height="136" align="left" alt="" src="/upload/java4-front-500.jpg" />Java编程思想第四版（Thinking in Java, 4th edition）<br />Publisher: Prentice Hall PTR; 4 edition (February 15, 2006) <br />ISBN: 0131872486<br />学Java的大概没有人没看过这本经典书籍,现在出到第四版，Amazon目前开始接受预定,国内还不知道什么时候会有胶印版本。大概的看了一下，感觉这一版改动的比较多，很多内容和示范代码都改写过，当然就是增加J2SE 5.0/6.0（beta）新功能及新特性！有兴趣的朋友可以关注一下<a href="http://www.bruceeckel.com/">Bruce Eckel</a> 的<a href="http://www.artima.com/weblogs/index.jsp?blogger=beckel">Blog</a>中写了一篇名为 <a href="http://www.artima.com/weblogs/viewpost.jsp?thread=112552">Where is Thinking in Java, 4th Edition?</a> 的文章向读者介绍了TIJ 4th的写作进展和感言。<br /><a href="http://mindview.net/Books/TIJ4">Burce Erkel&#8217;s mindview</a>上提供前7个章节的pdf格式<a href="http://www.pythoncriticalmass.com/TIJ4/BookSampleDownload.php">样书下载</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/397/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>New style for Z-blog</title>
		<link>http://welog.org/blog/396</link>
		<comments>http://welog.org/blog/396#comments</comments>
		<pubDate>Mon, 27 Feb 2006 05:55:29 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/new-style-for-z-blog/</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160;&#160;&#160; 这段时间因为忙于个种琐事，Blog的样式断断续续的做了一些调整,目前这个样子也基本成形，这次的模板文件被改得面目全非,这里得做一下记录,以备后用！ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 参考了[URL=http://woooh.com]Drunk Dream[/URL]将样式改成了三分栏的布局，主要是二分栏右侧链接过于冗长，而三分栏 的布局相对紧凑，便于访问者浏览。 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 调整了文章模块(template:pagebar)将他放到了左边，这样更合适860宽度的显示效果，divToolbar模块放置基本的网站信息，divSidebar功能模块加入了Delicious网摘及Douban读书记录！ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 删除了日历模块，这个模块经常出现乱码的问题(不知道是程序问题还是没有修改好),删除了Tag列表显示，在TagCloud 内有完整的显示,我对所谓的Tag不是太&#8221;感冒&#8221;！对评论模块做了比较大的调整，奇怪的是在模板里直接加入中文字符，显示出来的全是乱码，之后只好在语言中定义这些字符，以前版本中好像没有这个问题，有待解决。 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 样式在IE6.0、Firefox1.5.1、Flock0.5.10下测试正常,Opera8.0下目前未知，使用Opera朋友通知一下。 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; BTW:修改的过程中发现主机和域名存在诸多问题，不能转发,同时在线超过40人就挂了，二级域名blueclassic.net尽然显示未备案的信息,询问空间商得到的是这个二级域名没有备案记录,查询了一下备案号，信产部还真看得起我，一个域名给我了二个备案号,且我的记录里这个二级域名早就加入进去了,出现这样的问题我不知道空间商应该做何解释？唉，我也懒得去听这种解释，空间快到期了，准备更换主机。 &#160;&#160;&#160;&#160;&#160;&#160;&#160; 这段时间因为忙于个种琐事，Blog的样式断断续续的做了一些调整,目前这个样子也基本成形，这次的模板文件被改得面目全非,这里得做一下记录,以备后用！ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 参考了[URL=http://woooh.com]Drunk Dream[/URL]将样式改成了三分栏的布局，主要是二分栏右侧链接过于冗长，而三分栏 的布局相对紧凑，便于访问者浏览。 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 调整了文章模块(template:pagebar)将他放到了左边，这样更合适860宽度的显示效果，divToolbar模块放置基本的网站信息，divSidebar功能模块加入了Delicious网摘及Douban读书记录！ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 删除了日历模块，这个模块经常出现乱码的问题(不知道是程序问题还是没有修改好),删除了Tag列表显示，在TagCloud 内有完整的显示,我对所谓的Tag不是太&#8221;感冒&#8221;！对评论模块做了比较大的调整，奇怪的是在模板里直接加入中文字符，显示出来的全是乱码，之后只好在语言中定义这些字符，以前版本中好像没有这个问题，有待解决。 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 样式在IE6.0、Firefox1.5.1、Flock0.5.10下测试正常,Opera8.0下目前未知，使用Opera朋友通知一下。 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; BTW:修改的过程中发现主机和域名存在诸多问题，不能转发,同时在线超过40人就挂了，二级域名blueclassic.net尽然显示未备案的信息,询问空间商得到的是这个二级域名没有备案记录,查询了一下备案号，信产部还真看得起我，一个域名给我了二个备案号,且我的记录里这个二级域名早就加入进去了,出现这样的问题我不知道空间商应该做何解释？唉，我也懒得去听这种解释，空间快到期了，准备更换主机。]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这段时间因为忙于个种琐事，Blog的样式断断续续的做了一些调整,目前这个样子也基本成形，这次的模板文件被改得面目全非,这里得做一下记录,以备后用！<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 参考了[URL=http://woooh.com]Drunk Dream[/URL]将样式改成了三分栏的布局，主要是二分栏右侧链接过于冗长，而三分栏 的布局相对紧凑，便于访问者浏览。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 调整了文章模块(<b>template:pagebar</b>)将他放到了左边，这样更合适860宽度的显示效果，<b>divToolbar</b>模块放置基本的网站信息，<b>divSidebar</b>功能模块加入了<a href="http://www.del.icio.us/airblue">Delicious</a>网摘及<a href="http://www.douban.com">Douban</a>读书记录！<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 删除了日历模块，这个模块经常出现乱码的问题(不知道是程序问题还是没有修改好),删除了Tag列表显示，在<a href="http://www,blueclassic.net/tags.asp">TagCloud </a>内有完整的显示,我对所谓的Tag不是太&#8221;感冒&#8221;！对评论模块做了比较大的调整，奇怪的是在模板里直接加入中文字符，显示出来的全是乱码，之后只好在语言中定义这些字符，以前版本中好像没有这个问题，有待解决。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 样式在IE6.0、Firefox1.5.1、Flock0.5.10下测试正常,Opera8.0下目前未知，使用Opera朋友通知一下。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BTW:修改的过程中发现主机和域名存在诸多问题，不能转发,同时在线超过40人就挂了，二级域名blueclassic.net尽然显示未备案的信息,询问空间商得到的是这个二级域名没有备案记录,查询了一下备案号，信产部还真看得起我，一个域名给我了二个备案号,且我的记录里这个二级域名早就加入进去了,出现这样的问题我不知道空间商应该做何解释？唉，我也懒得去听这种解释，空间快到期了，准备更换主机。<br />
<span id="more-396"></span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这段时间因为忙于个种琐事，Blog的样式断断续续的做了一些调整,目前这个样子也基本成形，这次的模板文件被改得面目全非,这里得做一下记录,以备后用！<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 参考了[URL=http://woooh.com]Drunk Dream[/URL]将样式改成了三分栏的布局，主要是二分栏右侧链接过于冗长，而三分栏 的布局相对紧凑，便于访问者浏览。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 调整了文章模块(<b>template:pagebar</b>)将他放到了左边，这样更合适860宽度的显示效果，<b>divToolbar</b>模块放置基本的网站信息，<b>divSidebar</b>功能模块加入了<a href="http://www.del.icio.us/airblue">Delicious</a>网摘及<a href="http://www.douban.com">Douban</a>读书记录！<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 删除了日历模块，这个模块经常出现乱码的问题(不知道是程序问题还是没有修改好),删除了Tag列表显示，在<a href="http://www,blueclassic.net/tags.asp">TagCloud </a>内有完整的显示,我对所谓的Tag不是太&#8221;感冒&#8221;！对评论模块做了比较大的调整，奇怪的是在模板里直接加入中文字符，显示出来的全是乱码，之后只好在语言中定义这些字符，以前版本中好像没有这个问题，有待解决。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 样式在IE6.0、Firefox1.5.1、Flock0.5.10下测试正常,Opera8.0下目前未知，使用Opera朋友通知一下。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BTW:修改的过程中发现主机和域名存在诸多问题，不能转发,同时在线超过40人就挂了，二级域名blueclassic.net尽然显示未备案的信息,询问空间商得到的是这个二级域名没有备案记录,查询了一下备案号，信产部还真看得起我，一个域名给我了二个备案号,且我的记录里这个二级域名早就加入进去了,出现这样的问题我不知道空间商应该做何解释？唉，我也懒得去听这种解释，空间快到期了，准备更换主机。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/396/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Java Platform,Standard Edition 6 Beta</title>
		<link>http://welog.org/blog/393</link>
		<comments>http://welog.org/blog/393#comments</comments>
		<pubDate>Tue, 21 Feb 2006 01:52:05 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java-platformstandard-edition-6-beta/</guid>
		<description><![CDATA[Sun Microsystems 发布了 Java Platform, Standard Edition 6 (Java SE 6) 的Beta版本。也就是Mustang的Beta版本。&#8221;相信这个版本在功能及易用性上应该有不小的改进。&#8221; Sun发言人提到,通过扩展对脚本语言以及web service的支持，Java SE 6已经成为了下一代WEB 2.0应用的平台，现在我们发布Beta版本，让广大开发者进行测试。” Jeff Jackson 提到。“同时希望开发者们尽早测试，并将bug反馈给我们”。 Java SE 6支持JAX-WS 2.0 和 JAXB 2.0，提供对程序进行监测和管理的工具，提供对DTrace的扩展支持。 同时SUN提到：Java SE6对桌面程序的效率将有显著的提高，这无疑是非常让人期待的。&#8221;希望所谓的SE6的桌面程序不是在炒作而已，必尽桌面MS是老大。不过Mustang的新特性还是很值得我们期待的，等下载测试后再发表意见！下载(Java SE 6)Beta版在here New Security features and enhancements: 1. Native platform GSS/Kerberos integration 2. Java Authentication and Authorization Service (JAAS) login module that employs LDAP authentication 3. [...]]]></description>
			<content:encoded><![CDATA[<p>Sun Microsystems 发布了 Java Platform, Standard Edition 6 (Java SE 6)<br />
的Beta版本。也就是Mustang的Beta版本。&#8221;相信这个版本在功能及易用性上应该有不小的改进。&#8221;<br />
Sun发言人提到,通过扩展对脚本语言以及web service的支持，Java SE 6已经成为了下一代WEB<br />
2.0应用的平台，现在我们发布Beta版本，让广大开发者进行测试。” Jeff Jackson<br />
提到。“同时希望开发者们尽早测试，并将bug反馈给我们”。<br />
Java SE 6支持JAX-WS 2.0 和 JAXB 2.0，提供对程序进行监测和管理的工具，提供对DTrace的扩展支持。<br />
同时SUN提到：Java SE6对桌面程序的效率将有显著的提高，这无疑是非常让人期待的。&#8221;希望所谓的SE6的桌面程序不是在炒作而已，必尽桌面MS是老大。不过Mustang的新特性还是很值得我们期待的，等下载测试后再发表意见！下载(Java SE 6)Beta版在<a href="http://java.sun.com/javase/6/download.jsp">here</a><br />
New Security features and enhancements:<br />
1. Native platform GSS/Kerberos integration<br />
2. Java Authentication and Authorization Service (JAAS) login module that employs LDAP authentication<br />
3. New Smart Card I/O API<br />
Integrated Web Services:<br />
1. &nbsp;&nbsp; New API for XML digital signature services for secure web services<br />
2. &nbsp;&nbsp; New Client and Core Java Architecture for XML-Web Services (JAX-WS) 2.0 APIs<br />
3. &nbsp;&nbsp; New support for Java Architecture for XML Binding (JAXB) 2.0<br />
Enhanced Management &amp; Serviceability:<br />
1. Improved JMX Monitoring API<br />
2. Runtime Support for dTrace (Solaris 10 and future Solaris OS releases only)<br />
3. New custom deployment facilities<br />
Increased Developer Productivity:<br />
1. Improved memory usage analysis and leak detection<br />
2. Significant library improvements<br />
3. Improvements to the Java Platform Debug Architecture (JPDA) &amp; JVM Tool Interface<br />
Improved User Experience:<br />
1. Look and feel updates to better match underlying platforms<br />
2. Improved desktop performance and integration<br />
3. Enhanced internationalization support<br />
<br />Technorati Tags: <a href="http://technorati.com/tag/java" rel="tag">java</a>, <a href="http://technorati.com/tag/se6" rel="tag">se6</a>, <a href="http://technorati.com/tag/Beta" rel="tag">Beta</a>, <a href="http://technorati.com/tag/Mustang" rel="tag">Mustang</a><br />
<span id="more-393"></span><br />
Sun Microsystems 发布了 Java Platform, Standard Edition 6 (Java SE 6)<br />
的Beta版本。也就是Mustang的Beta版本。&#8221;相信这个版本在功能及易用性上应该有不小的改进。&#8221;<br />
Sun发言人提到,通过扩展对脚本语言以及web service的支持，Java SE 6已经成为了下一代WEB<br />
2.0应用的平台，现在我们发布Beta版本，让广大开发者进行测试。” Jeff Jackson<br />
提到。“同时希望开发者们尽早测试，并将bug反馈给我们”。<br />
Java SE 6支持JAX-WS 2.0 和 JAXB 2.0，提供对程序进行监测和管理的工具，提供对DTrace的扩展支持。<br />
同时SUN提到：Java SE6对桌面程序的效率将有显著的提高，这无疑是非常让人期待的。&#8221;希望所谓的SE6的桌面程序不是在炒作而已，必尽桌面MS是老大。不过Mustang的新特性还是很值得我们期待的，等下载测试后再发表意见！下载(Java SE 6)Beta版在<a href="http://java.sun.com/javase/6/download.jsp">here</a><br />
New Security features and enhancements:<br />
1. Native platform GSS/Kerberos integration<br />
2. Java Authentication and Authorization Service (JAAS) login module that employs LDAP authentication<br />
3. New Smart Card I/O API<br />
Integrated Web Services:<br />
1. &nbsp;&nbsp; New API for XML digital signature services for secure web services<br />
2. &nbsp;&nbsp; New Client and Core Java Architecture for XML-Web Services (JAX-WS) 2.0 APIs<br />
3. &nbsp;&nbsp; New support for Java Architecture for XML Binding (JAXB) 2.0<br />
Enhanced Management &amp; Serviceability:<br />
1. Improved JMX Monitoring API<br />
2. Runtime Support for dTrace (Solaris 10 and future Solaris OS releases only)<br />
3. New custom deployment facilities<br />
Increased Developer Productivity:<br />
1. Improved memory usage analysis and leak detection<br />
2. Significant library improvements<br />
3. Improvements to the Java Platform Debug Architecture (JPDA) &amp; JVM Tool Interface<br />
Improved User Experience:<br />
1. Look and feel updates to better match underlying platforms<br />
2. Improved desktop performance and integration<br />
3. Enhanced internationalization support<br />
<br />Technorati Tags: <a href="http://technorati.com/tag/java" rel="tag">java</a>, <a href="http://technorati.com/tag/se6" rel="tag">se6</a>, <a href="http://technorati.com/tag/Beta" rel="tag">Beta</a>, <a href="http://technorati.com/tag/Mustang" rel="tag">Mustang</a></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/393/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Java SE 7的开发进度</title>
		<link>http://welog.org/blog/388</link>
		<comments>http://welog.org/blog/388#comments</comments>
		<pubDate>Sun, 12 Feb 2006 04:39:18 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java-se-7%e7%9a%84%e5%bc%80%e5%8f%91%e8%bf%9b%e5%ba%a6/</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160;&#160;&#160; Ray Gans写了一篇关于 Mustang (Java SE 6)和 Dolphin (Java SE 7) 当前开发进度和未来计划的文章 . JSR-270专家组已经发布了 Mustang特性的草稿. Mustang的beta版有望在2月放出. Dolphin则准备在2006年春季开始开发,开发期间每星期提供开发中的源代码和二进制文件. Mustang的beta2将在2006年夏季发放,秋季推出正式版. Dolphin的正式版则要等到 2008年了.(via:solidot) &#160;&#160;&#160;&#160;&#160;&#160;&#160; Ray Gans写了一篇关于 Mustang (Java SE 6)和 Dolphin (Java SE 7) 当前开发进度和未来计划的文章 . JSR-270专家组已经发布了 Mustang特性的草稿. Mustang的beta版有望在2月放出. Dolphin则准备在2006年春季开始开发,开发期间每星期提供开发中的源代码和二进制文件. Mustang的beta2将在2006年夏季发放,秋季推出正式版. Dolphin的正式版则要等到 2008年了.(via:solidot)]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ray Gans写了一篇关于 <a href="https://mustang.dev.java.net/">Mustang</a> (<a href="http://java.sun.com/">Java</a> SE 6)和 <a href="https://dolphin.dev.java.net/">Dolphin</a> (Java SE 7) 当前开发进度和未来计划的<a href="http://weblogs.java.net/blog/ray_gans/archive/2006/01/where_we_are_wi.html">文章</a> .   <a href="http://www.jcp.org/en/jsr/detail?id=270">JSR-270</a>专家组已经发布了 Mustang特性的草稿. Mustang的beta版有望在2月放出. Dolphin则准备在2006年春季开始开发,开发期间每星期提供开发中的源代码和二进制文件. Mustang的beta2将在2006年夏季发放,秋季推出正式版. Dolphin的正式版则要等到 2008年了.(via:<a href="http://solidot.org/">solidot</a>)<br />
<span id="more-388"></span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ray Gans写了一篇关于 <a href="https://mustang.dev.java.net/">Mustang</a> (<a href="http://java.sun.com/">Java</a> SE 6)和 <a href="https://dolphin.dev.java.net/">Dolphin</a> (Java SE 7) 当前开发进度和未来计划的<a href="http://weblogs.java.net/blog/ray_gans/archive/2006/01/where_we_are_wi.html">文章</a> .   <a href="http://www.jcp.org/en/jsr/detail?id=270">JSR-270</a>专家组已经发布了 Mustang特性的草稿. Mustang的beta版有望在2月放出. Dolphin则准备在2006年春季开始开发,开发期间每星期提供开发中的源代码和二进制文件. Mustang的beta2将在2006年夏季发放,秋季推出正式版. Dolphin的正式版则要等到 2008年了.(via:<a href="http://solidot.org/">solidot</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/388/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WebWork2.2 Released!</title>
		<link>http://welog.org/blog/377</link>
		<comments>http://welog.org/blog/377#comments</comments>
		<pubDate>Thu, 12 Jan 2006 21:22:56 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/webwork22-released/</guid>
		<description><![CDATA[&#160;WebWork2.2新版本于昨天发布，更新了很多特性及功能支持，这个版本非常值得我们期待,大家去WebWork中文站点下载吧&#8230;OpenSymphony 和 WebWork 团队自豪的公告 WebWork 2.2 的发布 (download now). 这次发布对WebWork来说是最重要的发布,这么说的理由如下(full release notes): 对Java 5标注和泛型的全面支持 丰富的AJAX 支持，使用了 DWR 和 Dojo 新的 QuickStart 工具让开发比以前更容易 大量的文档，超过900页（PDF文档）! 使用AJAX或者普通的JavaScript进行客户端校验 Continuations 的内建支持 对几个流行Portlet服务器的 JSR168/Portlet 支持，包括 Pluto 丰富的界面模板框架，包括对JSP,FreeMarker,Velocity的本地支持 对 Spring 和 Pico IOC 容器的本地支持 更智能的错误报告 开发模式改进了错误报告使开发程序更加容易。 简单的标签语法 高级数据绑定框架可以和任何对象协作，包括 domain 对象 这次发布是WebWork历史上的一个重要的里程碑: 是最后一次使用WebWork和OpenSymphony名字的主要发布. 虽然小的发行版本还会继续进行（包括 2.2.x和2.1.x),但是所有主要的工作将转向 Struts Action Framework 2.0 版本. 你可以把 WebWork 2.2 [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;WebWork2.2新版本于昨天发布，更新了很多特性及功能支持，这个版本非常值得我们期待,大家去<a href="http://webwork.javascud.org/">WebWork中文站点</a>下载吧&#8230;<br /><a href="http://www.opensymphony.com/">OpenSymphony</a> 和 <a href="http://www.opensymphony.com/webwork">WebWork</a> 团队自豪的公告 WebWork 2.2 的发布 (<a href="http://www.opensymphony.com/webwork/download.action">download now</a>). 这次发布对WebWork来说是最重要的发布,这么说的理由如下(<a href="http://www.opensymphony.com/webwork/wikidocs/WebWork%202.2.html">full release notes</a>): </p>
<ul>
<li>对Java 5标注和泛型的全面支持 </li>
<li>丰富的AJAX 支持，使用了 <a href="http://getahead.ltd.uk/dwr">DWR</a> 和 <a href="http://dojotoolkit.org/">Dojo</a> </li>
<li>新的 QuickStart 工具让开发比以前更容易 </li>
<li>大量的文档，超过900页（PDF文档）! </li>
<li>使用AJAX或者普通的JavaScript进行客户端校验 </li>
<li>Continuations 的内建支持 </li>
<li>对几个流行Portlet服务器的 JSR168/Portlet 支持，包括 Pluto </li>
<li>丰富的界面模板框架，包括对JSP,FreeMarker,Velocity的本地支持 </li>
<li>对 Spring 和 Pico IOC 容器的本地支持 </li>
<li>更智能的错误报告 </li>
<li>开发模式改进了错误报告使开发程序更加容易。 </li>
<li>简单的标签语法 </li>
<li>高级数据绑定框架可以和任何对象协作，包括 domain 对象 </li>
</ul>
<p>这次发布是WebWork历史上的一个重要的里程碑: 是最后一次使用WebWork和OpenSymphony名字的主要发布. 虽然小的发行版本还会继续进行（包括 2.2.x和2.1.x),但是所有主要的工作将转向 <a href="http://struts.apache.org/struts-action/index.html">Struts Action Framework</a> 2.0 版本. 你可以把 WebWork 2.2 当作一个Struts Action Framework 2.0 的早期预览版本使用, 但是你也期望很多其他的重大的改进被增加到新的版本中.</p>
<p>感谢整个的 <a href="http://www.opensymphony.com/webwork/members.action">WebWork team</a> 的努力的工作, 特别是在最后几个星期里作出的令人惊异的工作( during these last few weeks as the final touches were put in place ).</p>
<p><strong>开始使用</strong><br />我们认为开始使用任何技术最好的方式就是立刻试用它. 这也就是为什么我们把WebWork做成一个非常容易开始进行WEB开发的平台的原因. 你可以使用 QuickStart 功能 (阅读 QuickStart 的文档来了解你如何在你的项目中使用这个重要的工具):</p>
<ul>
<li>在Webwork的根目录下打开一个命令行窗口 </li>
<li>使用 Java 5 JDK, 执行: <strong>java -jar webwork-2.2.jar quickstart:showcase</strong> </li>
<li>打开浏览器,访问: <strong>http://localhost:8080/showcase</strong> </li>
<li>自由编辑任何源码 (.java, .jsp, 等等) 位于目录: <strong>webapps/showcase</strong> </li>
<li>刷新浏览器可以看到立刻的改变 </li>
</ul>
<p><span id="more-377"></span></p>
<p>&nbsp;WebWork2.2新版本于昨天发布，更新了很多特性及功能支持，这个版本非常值得我们期待,大家去<a href="http://webwork.javascud.org/">WebWork中文站点</a>下载吧&#8230;<br /><a href="http://www.opensymphony.com/">OpenSymphony</a> 和 <a href="http://www.opensymphony.com/webwork">WebWork</a> 团队自豪的公告 WebWork 2.2 的发布 (<a href="http://www.opensymphony.com/webwork/download.action">download now</a>). 这次发布对WebWork来说是最重要的发布,这么说的理由如下(<a href="http://www.opensymphony.com/webwork/wikidocs/WebWork%202.2.html">full release notes</a>): </p>
<ul>
<li>对Java 5标注和泛型的全面支持 </li>
<li>丰富的AJAX 支持，使用了 <a href="http://getahead.ltd.uk/dwr">DWR</a> 和 <a href="http://dojotoolkit.org/">Dojo</a> </li>
<li>新的 QuickStart 工具让开发比以前更容易 </li>
<li>大量的文档，超过900页（PDF文档）! </li>
<li>使用AJAX或者普通的JavaScript进行客户端校验 </li>
<li>Continuations 的内建支持 </li>
<li>对几个流行Portlet服务器的 JSR168/Portlet 支持，包括 Pluto </li>
<li>丰富的界面模板框架，包括对JSP,FreeMarker,Velocity的本地支持 </li>
<li>对 Spring 和 Pico IOC 容器的本地支持 </li>
<li>更智能的错误报告 </li>
<li>开发模式改进了错误报告使开发程序更加容易。 </li>
<li>简单的标签语法 </li>
<li>高级数据绑定框架可以和任何对象协作，包括 domain 对象 </li>
</ul>
<p>这次发布是WebWork历史上的一个重要的里程碑: 是最后一次使用WebWork和OpenSymphony名字的主要发布. 虽然小的发行版本还会继续进行（包括 2.2.x和2.1.x),但是所有主要的工作将转向 <a href="http://struts.apache.org/struts-action/index.html">Struts Action Framework</a> 2.0 版本. 你可以把 WebWork 2.2 当作一个Struts Action Framework 2.0 的早期预览版本使用, 但是你也期望很多其他的重大的改进被增加到新的版本中.</p>
<p>感谢整个的 <a href="http://www.opensymphony.com/webwork/members.action">WebWork team</a> 的努力的工作, 特别是在最后几个星期里作出的令人惊异的工作( during these last few weeks as the final touches were put in place ).</p>
<p><strong>开始使用</strong><br />我们认为开始使用任何技术最好的方式就是立刻试用它. 这也就是为什么我们把WebWork做成一个非常容易开始进行WEB开发的平台的原因. 你可以使用 QuickStart 功能 (阅读 QuickStart 的文档来了解你如何在你的项目中使用这个重要的工具):</p>
<ul>
<li>在Webwork的根目录下打开一个命令行窗口 </li>
<li>使用 Java 5 JDK, 执行: <strong>java -jar webwork-2.2.jar quickstart:showcase</strong> </li>
<li>打开浏览器,访问: <strong>http://localhost:8080/showcase</strong> </li>
<li>自由编辑任何源码 (.java, .jsp, 等等) 位于目录: <strong>webapps/showcase</strong> </li>
<li>刷新浏览器可以看到立刻的改变 </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/377/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>百度的&#8221;国学&#8221;</title>
		<link>http://welog.org/blog/375</link>
		<comments>http://welog.org/blog/375#comments</comments>
		<pubDate>Thu, 12 Jan 2006 03:45:26 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e7%99%be%e5%ba%a6%e7%9a%84%e5%9b%bd%e5%ad%a6/</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160;&#160;&#160; Google发布中文版&#8220;学术搜索&#8221;, 搜索的范围很广，除了普通的网页外还包括论文、书籍、预稿、摘要以及技术报告等,搜索结果中可以列出文章的不同版本、出版社以及被其他文章所引用的次数等。这为各领域的图书搜集检索提供了较大的方便，它可以自动帮你更正搜索信息，这样即使在你不知道要找东西的正确拼法， google也能帮上你的忙。&#160;&#160;&#160;&#160;&#160;&#160; google 有了专门的图书搜索和学术搜索后，百度于上周也推出一个国学搜索，总让人感觉有抄袭之嫌,但是不管他抄袭如否，推出这样有针对性的国学搜索对大家来说是一件好事,对互联网检索也提供了方便。尽管在功能和文章质量上还有很多要改进的，但出于其名称&#8220;百度国学&#8221;来说，还是希望百度能做到于其相称的东西来。最起码要保持古书的原汁源味，不要到时候从百度出来的&#34;国学&#34;是另一种味道是不是有点篡改历史之嫌呢(夸张一点-_-)。 &#160;&#160;&#160;&#160;&#160;&#160;&#160; Google发布中文版&#8220;学术搜索&#8221;, 搜索的范围很广，除了普通的网页外还包括论文、书籍、预稿、摘要以及技术报告等,搜索结果中可以列出文章的不同版本、出版社以及被其他文章所引用的次数等。这为各领域的图书搜集检索提供了较大的方便，它可以自动帮你更正搜索信息，这样即使在你不知道要找东西的正确拼法， google也能帮上你的忙。&#160;&#160;&#160;&#160;&#160;&#160; google 有了专门的图书搜索和学术搜索后，百度于上周也推出一个国学搜索，总让人感觉有抄袭之嫌,但是不管他抄袭如否，推出这样有针对性的国学搜索对大家来说是一件好事,对互联网检索也提供了方便。尽管在功能和文章质量上还有很多要改进的，但出于其名称&#8220;百度国学&#8221;来说，还是希望百度能做到于其相称的东西来。最起码要保持古书的原汁源味，不要到时候从百度出来的&#34;国学&#34;是另一种味道是不是有点篡改历史之嫌呢(夸张一点-_-)。]]></description>
			<content:encoded><![CDATA[<p><img width="275" height="110" align="left" alt="" src="http://scholar.google.com/intl/zh-CN/images/scholar_logo.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Google发布中文版&ldquo;<a href="http://scholar.google.com">学术搜索</a>&rdquo;, 搜索的范围很广，除了普通的网页外还包括论文、书籍、预稿、摘要以及技术报告等,搜索结果中可以列出文章的不同版本、出版社以及被其他文章所引用的次数等。这为各领域的图书搜集检索提供了较大的方便，它可以自动帮你更正搜索信息，这样即使在你不知道要找东西的正确拼法， google也能帮上你的忙。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; google 有了专门的<a href="http://print.google.com/">图书搜索</a>和<a href="http://scholar.google.com/">学术搜索</a>后，百度于上周也推出一个<a href="http://guoxue.baidu.com/">国学搜索</a>，总让人感觉有抄袭之嫌,但是不管他抄袭如否，推出这样有针对性的国学搜索对大家来说是一件好事,对互联网检索也提供了方便。尽管在功能和文章质量上还有很多要改进的，但出于其名称&ldquo;百度国学&rdquo;来说，还是希望百度能做到于其相称的东西来。最起码要保持古书的原汁源味，不要到时候从百度出来的&quot;国学&quot;是另一种味道是不是有点篡改历史之嫌呢(夸张一点-_-)。<br />
<span id="more-375"></span><br />
<img width="275" height="110" align="left" src="http://scholar.google.com/intl/zh-CN/images/scholar_logo.gif" alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Google发布中文版&ldquo;<a href="http://scholar.google.com">学术搜索</a>&rdquo;, 搜索的范围很广，除了普通的网页外还包括论文、书籍、预稿、摘要以及技术报告等,搜索结果中可以列出文章的不同版本、出版社以及被其他文章所引用的次数等。这为各领域的图书搜集检索提供了较大的方便，它可以自动帮你更正搜索信息，这样即使在你不知道要找东西的正确拼法， google也能帮上你的忙。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; google 有了专门的<a href="http://print.google.com/">图书搜索</a>和<a href="http://scholar.google.com/">学术搜索</a>后，百度于上周也推出一个<a href="http://guoxue.baidu.com/">国学搜索</a>，总让人感觉有抄袭之嫌,但是不管他抄袭如否，推出这样有针对性的国学搜索对大家来说是一件好事,对互联网检索也提供了方便。尽管在功能和文章质量上还有很多要改进的，但出于其名称&ldquo;百度国学&rdquo;来说，还是希望百度能做到于其相称的东西来。最起码要保持古书的原汁源味，不要到时候从百度出来的&quot;国学&quot;是另一种味道是不是有点篡改历史之嫌呢(夸张一点-_-)。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/375/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gmail 这是怎么了？</title>
		<link>http://welog.org/blog/373</link>
		<comments>http://welog.org/blog/373#comments</comments>
		<pubDate>Sun, 08 Jan 2006 18:42:23 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/gmail-%e8%bf%99%e6%98%af%e6%80%8e%e4%b9%88%e4%ba%86%ef%bc%9f/</guid>
		<description><![CDATA[gmailmap Originally uploaded by King Wang 今天早上打开Gmail收邮件，但总是出现“[B]抱歉，系统无法执行您的操作。请几秒钟后重试[/B]”,一开始以为是我网速的影响。但等我好不容易登陆上去后，就出现了图片中的这些乱码(这些乱码只是邮上方的几封邮件出问题，下面的正常显示),查看了一下乱码部分的邮件，好像没有什么垃圾文件破坏呀！重新登陆了几次情况依旧，而在IE下根本就打不开Gmail。不知道是不是Gmail在调整或是在升级，奇怪的是怎么正好我急需收一封邮件时出这样的问题呢？郁闷&#8230;&#8230;回头再看看是什么原因吧，先闪！ [B]Update:[/B]问题还是存在，可能和我的网络有关，在别处可以正常登陆。继续郁闷&#8230;.. gmailmap Originally uploaded by King Wang 今天早上打开Gmail收邮件，但总是出现“[B]抱歉，系统无法执行您的操作。请几秒钟后重试[/B]”,一开始以为是我网速的影响。但等我好不容易登陆上去后，就出现了图片中的这些乱码(这些乱码只是邮上方的几封邮件出问题，下面的正常显示),查看了一下乱码部分的邮件，好像没有什么垃圾文件破坏呀！重新登陆了几次情况依旧，而在IE下根本就打不开Gmail。不知道是不是Gmail在调整或是在升级，奇怪的是怎么正好我急需收一封邮件时出这样的问题呢？郁闷&#8230;&#8230;回头再看看是什么原因吧，先闪！ [B]Update:[/B]问题还是存在，可能和我的网络有关，在别处可以正常登陆。继续郁闷&#8230;..]]></description>
			<content:encoded><![CDATA[<div> <a href="http://www.flickr.com/photos/airblue/83656244/" title="photo sharing"><img src="http://static.flickr.com/41/83656244_bd3849bb5a_m.jpg" alt="" /></a>  </br><a href="http://www.flickr.com/photos/airblue/83656244/">gmailmap</a><br />
  Originally uploaded by <a href="http://www.flickr.com/people/airblue/">King Wang</a> </div>
<p>今天早上打开Gmail收邮件，但总是出现“[B]抱歉，系统无法执行您的操作。请几秒钟后重试[/B]”,一开始以为是我网速的影响。但等我好不容易登陆上去后，就出现了图片中的这些乱码(这些乱码只是邮上方的几封邮件出问题，下面的正常显示),查看了一下乱码部分的邮件，好像没有什么垃圾文件破坏呀！重新登陆了几次情况依旧，而在IE下根本就打不开Gmail。不知道是不是Gmail在调整或是在升级，奇怪的是怎么正好我急需收一封邮件时出这样的问题呢？郁闷&#8230;&#8230;回头再看看是什么原因吧，先闪！<br />
[B]Update:[/B]问题还是存在，可能和我的网络有关，在别处可以正常登陆。继续郁闷&#8230;..<br />
<span id="more-373"></span></p>
<div> <a href="http://www.flickr.com/photos/airblue/83656244/" title="photo sharing"><img src="http://static.flickr.com/41/83656244_bd3849bb5a_m.jpg" alt="" /></a> </br> <a href="http://www.flickr.com/photos/airblue/83656244/">gmailmap</a><br />
  Originally uploaded by <a href="http://www.flickr.com/people/airblue/">King Wang</a> </div>
<p>今天早上打开Gmail收邮件，但总是出现“[B]抱歉，系统无法执行您的操作。请几秒钟后重试[/B]”,一开始以为是我网速的影响。但等我好不容易登陆上去后，就出现了图片中的这些乱码(这些乱码只是邮上方的几封邮件出问题，下面的正常显示),查看了一下乱码部分的邮件，好像没有什么垃圾文件破坏呀！重新登陆了几次情况依旧，而在IE下根本就打不开Gmail。不知道是不是Gmail在调整或是在升级，奇怪的是怎么正好我急需收一封邮件时出这样的问题呢？郁闷&#8230;&#8230;回头再看看是什么原因吧，先闪！<br />
[B]Update:[/B]问题还是存在，可能和我的网络有关，在别处可以正常登陆。继续郁闷&#8230;..</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/373/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>The Anti Blog Is Gone</title>
		<link>http://welog.org/blog/370</link>
		<comments>http://welog.org/blog/370#comments</comments>
		<pubDate>Wed, 04 Jan 2006 20:06:52 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/the-anti-blog-is-gone/</guid>
		<description><![CDATA[从Keso大哥的订阅中看到这篇文章[URL=http://www.zonaeuropa.com/200512brief.htm#100]The Anti Blog Is Gone[/URL]关于Anti博客这次被封后的一点[URL=http://www.zonalatina.com/mranti/anti.htm]消息[/URL]，2005的岁未Anti的博客又一次被封,这已是2005年的第二次。相比之前这次没有太多的声音，也许大家已经习惯了这种声音(2005年听得还不够多吗)这种结果也是大家早就意料之中的事，早在Anti从blog-city转移到msn就想到了，只是没想到这次只把Anti一个人揪出来了，感叹微软的公关能力&#8230;&#8230;就说这么多!!! [B]以下转自Anti(1/4/2006)部分日志:[/B] [CODE_LITE] 长城长，长不过生命；长城硬，硬不过意志。一切都要有还的那天，我坚信。 说话受阻，恰恰是倾听的好时候。我和几个朋友仔细谈了未来，谈了互联网的明天。其实真好，2005年我一路博客向前，却很少驻足观察周围的朋友。安猪的多背一公斤，杨波的豆瓣，一些开源计划，google的一些最新服务，这些出色的基于社会网络的分布式WEB应用，都给了失声的我很大启发。 消沉了好几天，其实是我疗伤的时间。2006年我会重新出发，恢复http://anti.blog-city.com的博客更新，国内朋友可以用Rss 软件订阅：http://feeds.feedburner.com/blog-city/anti，或者直接发邮件给 antisblog@gmail.com订阅，我会把每篇博客都发送给订户。希望大家能帮我在你们的博客上面发布这些订阅方法。 这种博客写作方式会更加小众化。2006年，我只给我的朋友写博客，只给真心订阅的人写博客。告别喧嚣的2005，我希望能在2006年做一些踏实的事情。例如，把原来的AEB（安替英文博客）正式转变成Chinathinkbase.com（中国思想资料库），全力完善这个项目。我也可能会做一些基于社会网络的web应用（当然包括完善那个书的程序和想法）。我希望我能从2005年的博客安替，变成2006年的程序员安替。 冬夜漫长，我们要做好长征的准备。2006，我们并不会胜利，但我们会更加踏实。 [/CODE_LITE] 从Keso大哥的订阅中看到这篇文章[URL=http://www.zonaeuropa.com/200512brief.htm#100]The Anti Blog Is Gone[/URL]关于Anti博客这次被封后的一点[URL=http://www.zonalatina.com/mranti/anti.htm]消息[/URL]，2005的岁未Anti的博客又一次被封,这已是2005年的第二次。相比之前这次没有太多的声音，也许大家已经习惯了这种声音(2005年听得还不够多吗)这种结果也是大家早就意料之中的事，早在Anti从blog-city转移到msn就想到了，只是没想到这次只把Anti一个人揪出来了，感叹微软的公关能力&#8230;&#8230;就说这么多!!! [B]以下转自Anti(1/4/2006)部分日志:[/B] [CODE_LITE] 长城长，长不过生命；长城硬，硬不过意志。一切都要有还的那天，我坚信。 说话受阻，恰恰是倾听的好时候。我和几个朋友仔细谈了未来，谈了互联网的明天。其实真好，2005年我一路博客向前，却很少驻足观察周围的朋友。安猪的多背一公斤，杨波的豆瓣，一些开源计划，google的一些最新服务，这些出色的基于社会网络的分布式WEB应用，都给了失声的我很大启发。 消沉了好几天，其实是我疗伤的时间。2006年我会重新出发，恢复http://anti.blog-city.com的博客更新，国内朋友可以用Rss 软件订阅：http://feeds.feedburner.com/blog-city/anti，或者直接发邮件给 antisblog@gmail.com订阅，我会把每篇博客都发送给订户。希望大家能帮我在你们的博客上面发布这些订阅方法。 这种博客写作方式会更加小众化。2006年，我只给我的朋友写博客，只给真心订阅的人写博客。告别喧嚣的2005，我希望能在2006年做一些踏实的事情。例如，把原来的AEB（安替英文博客）正式转变成Chinathinkbase.com（中国思想资料库），全力完善这个项目。我也可能会做一些基于社会网络的web应用（当然包括完善那个书的程序和想法）。我希望我能从2005年的博客安替，变成2006年的程序员安替。 冬夜漫长，我们要做好长征的准备。2006，我们并不会胜利，但我们会更加踏实。 [/CODE_LITE]]]></description>
			<content:encoded><![CDATA[<p>从Keso大哥的订阅中看到这篇文章[URL=http://www.zonaeuropa.com/200512brief.htm#100]The Anti Blog Is Gone[/URL]关于Anti博客这次被封后的一点[URL=http://www.zonalatina.com/mranti/anti.htm]消息[/URL]，2005的岁未Anti的博客又一次被封,这已是2005年的第二次。相比之前这次没有太多的声音，也许大家已经习惯了这种声音(2005年听得还不够多吗)这种结果也是大家早就意料之中的事，早在Anti从blog-city转移到msn就想到了，只是没想到这次只把Anti一个人揪出来了，感叹微软的公关能力&#8230;&#8230;就说这么多!!!<br />
[B]以下转自Anti(1/4/2006)部分日志:[/B]<br />
[CODE_LITE]<br />
长城长，长不过生命；长城硬，硬不过意志。一切都要有还的那天，我坚信。<br />
说话受阻，恰恰是倾听的好时候。我和几个朋友仔细谈了未来，谈了互联网的明天。其实真好，2005年我一路博客向前，却很少驻足观察周围的朋友。安猪的多背一公斤，杨波的豆瓣，一些开源计划，google的一些最新服务，这些出色的基于社会网络的分布式WEB应用，都给了失声的我很大启发。<br />
消沉了好几天，其实是我疗伤的时间。2006年我会重新出发，恢复http://anti.blog-city.com的博客更新，国内朋友可以用Rss 软件订阅：http://feeds.feedburner.com/blog-city/anti，或者直接发邮件给 antisblog@gmail.com订阅，我会把每篇博客都发送给订户。希望大家能帮我在你们的博客上面发布这些订阅方法。<br />
这种博客写作方式会更加小众化。2006年，我只给我的朋友写博客，只给真心订阅的人写博客。告别喧嚣的2005，我希望能在2006年做一些踏实的事情。例如，把原来的AEB（安替英文博客）正式转变成Chinathinkbase.com（中国思想资料库），全力完善这个项目。我也可能会做一些基于社会网络的web应用（当然包括完善那个书的程序和想法）。我希望我能从2005年的博客安替，变成2006年的程序员安替。<br />
冬夜漫长，我们要做好长征的准备。2006，我们并不会胜利，但我们会更加踏实。<br />
[/CODE_LITE]<br />
<span id="more-370"></span><br />
从Keso大哥的订阅中看到这篇文章[URL=http://www.zonaeuropa.com/200512brief.htm#100]The Anti Blog Is Gone[/URL]关于Anti博客这次被封后的一点[URL=http://www.zonalatina.com/mranti/anti.htm]消息[/URL]，2005的岁未Anti的博客又一次被封,这已是2005年的第二次。相比之前这次没有太多的声音，也许大家已经习惯了这种声音(2005年听得还不够多吗)这种结果也是大家早就意料之中的事，早在Anti从blog-city转移到msn就想到了，只是没想到这次只把Anti一个人揪出来了，感叹微软的公关能力&#8230;&#8230;就说这么多!!!<br />
[B]以下转自Anti(1/4/2006)部分日志:[/B]<br />
[CODE_LITE]<br />
长城长，长不过生命；长城硬，硬不过意志。一切都要有还的那天，我坚信。<br />
说话受阻，恰恰是倾听的好时候。我和几个朋友仔细谈了未来，谈了互联网的明天。其实真好，2005年我一路博客向前，却很少驻足观察周围的朋友。安猪的多背一公斤，杨波的豆瓣，一些开源计划，google的一些最新服务，这些出色的基于社会网络的分布式WEB应用，都给了失声的我很大启发。<br />
消沉了好几天，其实是我疗伤的时间。2006年我会重新出发，恢复http://anti.blog-city.com的博客更新，国内朋友可以用Rss 软件订阅：http://feeds.feedburner.com/blog-city/anti，或者直接发邮件给 antisblog@gmail.com订阅，我会把每篇博客都发送给订户。希望大家能帮我在你们的博客上面发布这些订阅方法。<br />
这种博客写作方式会更加小众化。2006年，我只给我的朋友写博客，只给真心订阅的人写博客。告别喧嚣的2005，我希望能在2006年做一些踏实的事情。例如，把原来的AEB（安替英文博客）正式转变成Chinathinkbase.com（中国思想资料库），全力完善这个项目。我也可能会做一些基于社会网络的web应用（当然包括完善那个书的程序和想法）。我希望我能从2005年的博客安替，变成2006年的程序员安替。<br />
冬夜漫长，我们要做好长征的准备。2006，我们并不会胜利，但我们会更加踏实。<br />
[/CODE_LITE]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/370/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Java API Design Guidelines</title>
		<link>http://welog.org/blog/367</link>
		<comments>http://welog.org/blog/367#comments</comments>
		<pubDate>Wed, 04 Jan 2006 05:46:41 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java-api-design-guidelines/</guid>
		<description><![CDATA[[URL=http://www.artima.com]artima[/URL]前几天有一篇文章[URL=http://www.artima.com/weblogs/viewpost.jsp?thread=142428]Java API Design Guidelines[/URL]提到了通过API设计指南writing APIs。它主要谈论 [B]1. Design to evolve. 2. Correctness, then simplicity, then efficiency. 3. Interfaces are overvalued. 4. Be careful with packages. 5. Read Effective Java.[/B] [B]API design goals[/B] What should the design goals of your API be? Apart from compatibility, the following goals from Elliotte&#8217;s presentation seem like an excellent set: It [...]]]></description>
			<content:encoded><![CDATA[<p>[URL=http://www.artima.com]artima[/URL]前几天有一篇文章[URL=http://www.artima.com/weblogs/viewpost.jsp?thread=142428]Java API Design Guidelines[/URL]提到了通过API设计指南writing APIs。它主要谈论<br />
[B]1.  Design to evolve.<br />
2.  Correctness, then simplicity, then efficiency.<br />
3.  Interfaces are overvalued.<br />
4.  Be careful with packages.<br />
5.  Read Effective Java.[/B]</p>
<p>[B]API design goals[/B]<br />
     What should the design goals of your API be? Apart from compatibility, the following goals from Elliotte&#8217;s presentation seem like an excellent set:<br />
     It must be absolutely correct. In the case of XOM, this meant that the API could never produce malformed XML documents no matter what the caller did. For the JMX API, for example, it means that you can never get the MBean Server into an inconsistent state by registering strange MBeans in it or using funny ObjectNames or performing several operations concurrently.<br />
     It must be easy to use. This is hard to quantify. A good way to get an idea is to write lots of example code. Are there groups of operations that you keep having to repeat? Do you have to keep looking up your own API because you forget what things are called? Are there cases where the API doesn&#8217;t do what you might expect?<br />
It must be easy to learn. This overlaps considerably with ease of use. But there are some obvious principles to make learning easier. The smaller the API, the less there is to learn. Documentation should include examples. Where appropriate, the API should look like familiar APIs.<br />
     It must be fast enough. Elliotte was careful to put this in the list after the above items. Make sure the API is simple and correct. Then think about performance. You might be inclined to make API changes because the original API could only be implemented in an inefficient way. By all means change it to allow a more efficient implementation, provided you don&#8217;t compromise correctness or simplicity. Don&#8217;t rely on your intuition to know what performs well. Measure. Then tweak the API if you&#8217;ve determined that it really matters.<br />
     It must be small enough. This covers the size of the compiled code and especially the amount of memory it needs as it runs. The same principles as for speed apply. Make it simple and correct first; measure; and only then think about tweaking the API. </p>
<p>http://www.artima.com/weblogs/viewpost.jsp?thread=142428</p>
<p>http://openide.netbeans.org/tutorial/api-design.html</p>
<p><span id="more-367"></span><br />
[URL=http://www.artima.com]artima[/URL]前几天有一篇文章[URL=http://www.artima.com/weblogs/viewpost.jsp?thread=142428]Java API Design Guidelines[/URL]提到了通过API设计指南writing APIs。它主要谈论<br />
[B]1. Design to evolve.<br />
2.Correctness, then simplicity, then efficiency.<br />
3.Interfaces are overvalued.<br />
4.Be careful with packages.<br />
5.Read Effective Java.[/B]</p>
<p>[B]API design goals[/B]<br />
     What should the design goals of your API be? Apart from compatibility, the following goals from Elliotte&#8217;s presentation seem like an excellent set:<br />
     It must be absolutely correct. In the case of XOM, this meant that the API could never produce malformed XML documents no matter what the caller did. For the JMX API, for example, it means that you can never get the MBean Server into an inconsistent state by registering strange MBeans in it or using funny ObjectNames or performing several operations concurrently.<br />
     It must be easy to use. This is hard to quantify. A good way to get an idea is to write lots of example code. Are there groups of operations that you keep having to repeat? Do you have to keep looking up your own API because you forget what things are called? Are there cases where the API doesn&#8217;t do what you might expect?<br />
It must be easy to learn. This overlaps considerably with ease of use. But there are some obvious principles to make learning easier. The smaller the API, the less there is to learn. Documentation should include examples. Where appropriate, the API should look like familiar APIs.<br />
     It must be fast enough. Elliotte was careful to put this in the list after the above items. Make sure the API is simple and correct. Then think about performance. You might be inclined to make API changes because the original API could only be implemented in an inefficient way. By all means change it to allow a more efficient implementation, provided you don&#8217;t compromise correctness or simplicity. Don&#8217;t rely on your intuition to know what performs well. Measure. Then tweak the API if you&#8217;ve determined that it really matters.<br />
     It must be small enough. This covers the size of the compiled code and especially the amount of memory it needs as it runs. The same principles as for speed apply. Make it simple and correct first; measure; and only then think about tweaking the API. </p>
<p>http://www.artima.com/weblogs/viewpost.jsp?thread=142428</p>
<p>http://openide.netbeans.org/tutorial/api-design.html</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/367/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New features added to Servlet 2.5</title>
		<link>http://welog.org/blog/365</link>
		<comments>http://welog.org/blog/365#comments</comments>
		<pubDate>Tue, 03 Jan 2006 05:16:43 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/new-features-added-to-servlet-25/</guid>
		<description><![CDATA[Servlets 2.5 has maintenance release contains several important features included. The major would be JSE 5.0 as minimal platform requirement. This dependency makes you to shift towards Tiger. The major [URL=http://www.javaworld.com/javaworld/jw-01-2006/jw-0102-servlet-p3.html]list[/URL] includes [B] * A new dependency on J2SE 5.0 * Support for annotations * Several web.xml conveniences * A handful of removed restrictions * [...]]]></description>
			<content:encoded><![CDATA[<p>Servlets 2.5 has maintenance release contains several important features included. The major would be JSE 5.0 as minimal platform requirement. This dependency makes you to shift towards Tiger. The major [URL=http://www.javaworld.com/javaworld/jw-01-2006/jw-0102-servlet-p3.html]list[/URL] includes<br />
[B]<br />
    * A new dependency on J2SE 5.0<br />
    * Support for annotations<br />
    * Several web.xml conveniences<br />
    * A handful of removed restrictions<br />
    * Some edge case clarifications<br />
[/B]<br />
There are few others features in pending/ wish list phase which will be coming in upcoming releases.<br />
<span id="more-365"></span><br />
Servlets 2.5 has maintenance release contains several important features included. The major would be JSE 5.0 as minimal platform requirement. This dependency makes you to shift towards Tiger. The major [URL=http://www.javaworld.com/javaworld/jw-01-2006/jw-0102-servlet-p3.html]list[/URL] includes<br />
[B]<br />
    * A new dependency on J2SE 5.0<br />
    * Support for annotations<br />
    * Several web.xml conveniences<br />
    * A handful of removed restrictions<br />
    * Some edge case clarifications<br />
[/B]<br />
There are few others features in pending/ wish list phase which will be coming in upcoming releases.</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/365/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2005</title>
		<link>http://welog.org/blog/363</link>
		<comments>http://welog.org/blog/363#comments</comments>
		<pubDate>Sun, 01 Jan 2006 06:21:38 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/2005/</guid>
		<description><![CDATA[这几天一直在外地，原本打算通过WAP上来看看的，但总是出现500错误，不知道是不是我的空间不支持又或是什么原因(待检查)。下午赶回来一打开手机收到一堆新年问候短信时我知道2005年就快结束了，而这即将失去的2005对我来说注定是没有太多记忆的一年，但不管怎么说留下点东西算是自己的一段记忆也罢。 这一年离开了大学，没有去找工作而是抱着一堆书来弥补大学里没有学到的东西，不知道这算不算是一种悲哀。当朋友问准备做点什么的时候，总有一种惶恐。因为自己的人生道路还不明朗，我不知道明天会在哪里，所以也就没办法回答，人一旦选择了就不要后悔，一旦开始后悔，那么只能让你更加后悔，选择了，那么就是正确的。 好在这一年中让我通过blog我获得了很多，新的技术，新的知识，新的视野当然还通过它结织了许多朋友，让我有动力去学习、去思考。同时也有勇气去直面自己，这可能是最幸运的事了，也是这一年最大的收获。 2005年就这样过去了，虽然没选择上工作，但这段时间认真阅读过的书籍比之去年多了许多；这算不算是一种收获呢？而即将到来的2006年才将是我新的开始，我来了2006&#8230;&#8230;. PS:对了，差点忘了，新年祝福是不能少的:)。 [FONT-COLOR=red]在此，我谨代表中共中央、国务院、全国各族人民、广大工人、农民、知识分子、干部、人民解放军指战员、武警官兵、公安干警、各民主党派、全国工商联、人民团体、香港特别行政区同胞、澳门特别行政区同胞、台湾同胞、海外侨胞向大家表示节日的问候。[/FONT-COLOR] [B]祝大家： 　　运气像曾庆一样红！ 　　做人像吴官一样正！ 　　家庭像贾春一样旺！ 　　生活像温家一样饱！ 　　事业象老罗一样干！ 　　恋情像李长一样春！ 　　打牌像锦涛一样胡！ [/B] 这几天一直在外地，原本打算通过WAP上来看看的，但总是出现500错误，不知道是不是我的空间不支持又或是什么原因(待检查)。下午赶回来一打开手机收到一堆新年问候短信时我知道2005年就快结束了，而这即将失去的2005对我来说注定是没有太多记忆的一年，但不管怎么说留下点东西算是自己的一段记忆也罢。 这一年离开了大学，没有去找工作而是抱着一堆书来弥补大学里没有学到的东西，不知道这算不算是一种悲哀。当朋友问准备做点什么的时候，总有一种惶恐。因为自己的人生道路还不明朗，我不知道明天会在哪里，所以也就没办法回答，人一旦选择了就不要后悔，一旦开始后悔，那么只能让你更加后悔，选择了，那么就是正确的。 好在这一年中让我通过blog我获得了很多，新的技术，新的知识，新的视野当然还通过它结织了许多朋友，让我有动力去学习、去思考。同时也有勇气去直面自己，这可能是最幸运的事了，也是这一年最大的收获。 2005年就这样过去了，虽然没选择上工作，但这段时间认真阅读过的书籍比之去年多了许多；这算不算是一种收获呢？而即将到来的2006年才将是我新的开始，我来了2006&#8230;&#8230;. PS:对了，差点忘了，新年祝福是不能少的:)。 [FONT-COLOR=red]在此，我谨代表中共中央、国务院、全国各族人民、广大工人、农民、知识分子、干部、人民解放军指战员、武警官兵、公安干警、各民主党派、全国工商联、人民团体、香港特别行政区同胞、澳门特别行政区同胞、台湾同胞、海外侨胞向大家表示节日的问候。[/FONT-COLOR] [B]祝大家： 　　运气像曾庆一样红！ 　　做人像吴官一样正！ 　　家庭像贾春一样旺！ 　　生活像温家一样饱！ 　　事业象老罗一样干！ 　　恋情像李长一样春！ 　　打牌像锦涛一样胡！ [/B]]]></description>
			<content:encoded><![CDATA[<p>这几天一直在外地，原本打算通过WAP上来看看的，但总是出现500错误，不知道是不是我的空间不支持又或是什么原因(待检查)。下午赶回来一打开手机收到一堆新年问候短信时我知道2005年就快结束了，而这即将失去的2005对我来说注定是没有太多记忆的一年，但不管怎么说留下点东西算是自己的一段记忆也罢。<br />
    这一年离开了大学，没有去找工作而是抱着一堆书来弥补大学里没有学到的东西，不知道这算不算是一种悲哀。当朋友问准备做点什么的时候，总有一种惶恐。因为自己的人生道路还不明朗，我不知道明天会在哪里，所以也就没办法回答，人一旦选择了就不要后悔，一旦开始后悔，那么只能让你更加后悔，选择了，那么就是正确的。<br />
好在这一年中让我通过blog我获得了很多，新的技术，新的知识，新的视野当然还通过它结织了许多朋友，让我有动力去学习、去思考。同时也有勇气去直面自己，这可能是最幸运的事了，也是这一年最大的收获。<br />
    2005年就这样过去了，虽然没选择上工作，但这段时间认真阅读过的书籍比之去年多了许多；这算不算是一种收获呢？而即将到来的2006年才将是我新的开始，我来了2006&#8230;&#8230;.</p>
<p>    PS:对了，差点忘了，新年祝福是不能少的:)。<br />
      [FONT-COLOR=red]在此，我谨代表中共中央、国务院、全国各族人民、广大工人、农民、知识分子、干部、人民解放军指战员、武警官兵、公安干警、各民主党派、全国工商联、人民团体、香港特别行政区同胞、澳门特别行政区同胞、台湾同胞、海外侨胞向大家表示节日的问候。[/FONT-COLOR]<br />
[B]祝大家：<br />
　　运气像曾庆一样红！<br />
　　做人像吴官一样正！<br />
　　家庭像贾春一样旺！<br />
　　生活像温家一样饱！<br />
　　事业象老罗一样干！<br />
　　恋情像李长一样春！<br />
　　打牌像锦涛一样胡！<br />
[/B]<br />
<span id="more-363"></span><br />
这几天一直在外地，原本打算通过WAP上来看看的，但总是出现500错误，不知道是不是我的空间不支持又或是什么原因(待检查)。下午赶回来一打开手机收到一堆新年问候短信时我知道2005年就快结束了，而这即将失去的2005对我来说注定是没有太多记忆的一年，但不管怎么说留下点东西算是自己的一段记忆也罢。<br />
    这一年离开了大学，没有去找工作而是抱着一堆书来弥补大学里没有学到的东西，不知道这算不算是一种悲哀。当朋友问准备做点什么的时候，总有一种惶恐。因为自己的人生道路还不明朗，我不知道明天会在哪里，所以也就没办法回答，人一旦选择了就不要后悔，一旦开始后悔，那么只能让你更加后悔，选择了，那么就是正确的。<br />
好在这一年中让我通过blog我获得了很多，新的技术，新的知识，新的视野当然还通过它结织了许多朋友，让我有动力去学习、去思考。同时也有勇气去直面自己，这可能是最幸运的事了，也是这一年最大的收获。<br />
    2005年就这样过去了，虽然没选择上工作，但这段时间认真阅读过的书籍比之去年多了许多；这算不算是一种收获呢？而即将到来的2006年才将是我新的开始，我来了2006&#8230;&#8230;.</p>
<p>    PS:对了，差点忘了，新年祝福是不能少的:)。<br />
      [FONT-COLOR=red]在此，我谨代表中共中央、国务院、全国各族人民、广大工人、农民、知识分子、干部、人民解放军指战员、武警官兵、公安干警、各民主党派、全国工商联、人民团体、香港特别行政区同胞、澳门特别行政区同胞、台湾同胞、海外侨胞向大家表示节日的问候。[/FONT-COLOR]<br />
[B]祝大家：<br />
　　运气像曾庆一样红！<br />
　　做人像吴官一样正！<br />
　　家庭像贾春一样旺！<br />
　　生活像温家一样饱！<br />
　　事业象老罗一样干！<br />
　　恋情像李长一样春！<br />
　　打牌像锦涛一样胡！<br />
[/B]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/363/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>寻找king wang</title>
		<link>http://welog.org/blog/360</link>
		<comments>http://welog.org/blog/360#comments</comments>
		<pubDate>Tue, 27 Dec 2005 01:45:04 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%af%bb%e6%89%beking-wang/</guid>
		<description><![CDATA[&#160;&#160;&#160; 好多天这里面都没有更新了,king wang这小子这几天是不是走桃花运了？根据俺对他的了解应该错不了，因为他看到美妞那腿就不是自个的了，可能是女朋友从遥远的地方杀过来了（怎一个爽字了得）！但由于专业关系俺不能在这里给你们写一些专业性的东西，只能向你们报告一个喜迅让大家也乐呵乐呵．．．小道消息：他要结婚了！]]></description>
			<content:encoded><![CDATA[<p><span id="more-360"></span></p>
<p><font face="Courier New" size="4">&nbsp;&nbsp;&nbsp; 好多天这里面都没有更新了,king wang这小子这几天是不是走桃花运了？根据俺对他的了解应该错不了，因为他看到美妞那腿就不是自个的了，可能是女朋友从遥远的地方杀过来了（怎一个爽字了得）！但由于专业关系俺不能在这里给你们写一些专业性的东西，只能向你们报告一个喜迅让大家也乐呵乐呵．．．小道消息：他要结婚了！</font></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/360/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>注册了个Blogger的帐号</title>
		<link>http://welog.org/blog/358</link>
		<comments>http://welog.org/blog/358#comments</comments>
		<pubDate>Sun, 25 Dec 2005 23:46:56 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e6%b3%a8%e5%86%8c%e4%ba%86%e4%b8%aablogger%e7%9a%84%e5%b8%90%e5%8f%b7/</guid>
		<description><![CDATA[[B]Update:[/B][FONT-COLOR=red]测试了一下，这个空间只是普通的空间且不能通过FTP增加目录，可能是我的网速问题。适合转发，用在Blogger上目前看还比较理想 [B]Do you support CGI, PHP or MySQL?[/B] No. We currently don&#8217;t support CGI, PHP, or MySQL.[/FONT-COLOR] 因为知道blogger的托管服务器Blogspot在国内被封，所以也就没考虑过要注册这么个blogger的用户。记得当时在还不知道博客谓何物的时候在MSN里注册了一个用户但也一直没有用过，现在连用户名和密码都忘了(我想很多Msn的博友就是这么开始博客的)。原因很简单，放在别人的服务器上不安心，总决得被人剥削的感觉(其实也没那么严重)，还是自己能自由管理的来得舒坦。其实反过来想想，自己花银子买的空间又如何呢，在伟大的“防火墙”面前你只能浮首称臣。像blogger、blog-city这么好的BSP可惜我们用不上，的确是很遗憾的事。哈哈，如此久而久之就养成了一种反叛的心理，越是深藏在&#8221;防火墙&#8221;下的见不得光的东西就越能激发我们&#8221;偷窥&#8221;的心理。所以就出现了各种满足&#8221;偷窥&#8221;心理的方法,就像我注册这个blogger的用户一样，原本我不需要有这样的一个ID，但在这种心理下中文blog又增加了[URL=http://king.sitesled.com/]King&#8217;s Weblog[/URL]这样的一个用户:)，Blogger真的很好用，不过目前我还没想出来这个ID做什么用(说不定哪天这个服务器也被K了)。 各位应该都在跃跃欲试了吧，那么就提供一下Koso大哥提供这个方法吧，还有100M的免费空间用，爽. [B]你可以利用Blogger的FTP发布功能，把blog发布到一个第三方的服务器上。SiteSled是一个免费虚拟主机服务，提供100M免费空间。申请后，你可以得到一个username.sitesled.com的域名，并可以FTP上传文件。注册及发布blog的方法如下：[/B] 到这里来：http://www.sitesled.com/ 注册一个账号，一定要填写正确的邮件地址，收到确认邮件之后到邮箱中打开，确认，这些就不多说了。 然后，注意，邮件中有这样一段： Once you have validated your account following the steps above, you will be able to use the following information to FTP your files to your account. Ftp Server Address: ftp.sitesled.com Username: [...]]]></description>
			<content:encoded><![CDATA[<p>[B]Update:[/B][FONT-COLOR=red]测试了一下，这个空间只是普通的空间且不能通过FTP增加目录，可能是我的网速问题。适合转发，用在Blogger上目前看还比较理想<br />
[B]Do you support CGI, PHP or MySQL?[/B]<br />
No. We currently don&#8217;t support CGI, PHP, or MySQL.[/FONT-COLOR]<br />
因为知道blogger的托管服务器Blogspot在国内被封，所以也就没考虑过要注册这么个blogger的用户。记得当时在还不知道博客谓何物的时候在MSN里注册了一个用户但也一直没有用过，现在连用户名和密码都忘了(我想很多Msn的博友就是这么开始博客的)。原因很简单，放在别人的服务器上不安心，总决得被人剥削的感觉(其实也没那么严重)，还是自己能自由管理的来得舒坦。其实反过来想想，自己花银子买的空间又如何呢，在伟大的“防火墙”面前你只能浮首称臣。像blogger、blog-city这么好的BSP可惜我们用不上，的确是很遗憾的事。哈哈，如此久而久之就养成了一种反叛的心理，越是深藏在&#8221;防火墙&#8221;下的见不得光的东西就越能激发我们&#8221;偷窥&#8221;的心理。所以就出现了各种满足&#8221;偷窥&#8221;心理的方法,就像我注册这个blogger的用户一样，原本我不需要有这样的一个ID，但在这种心理下中文blog又增加了[URL=http://king.sitesled.com/]King&#8217;s Weblog[/URL]这样的一个用户:)，Blogger真的很好用，不过目前我还没想出来这个ID做什么用(说不定哪天这个服务器也被K了)。<br />
各位应该都在跃跃欲试了吧，那么就提供一下Koso大哥提供这个方法吧，还有100M的免费空间用，爽.<br />
[B]你可以利用Blogger的FTP发布功能，把blog发布到一个第三方的服务器上。SiteSled是一个免费虚拟主机服务，提供100M免费空间。申请后，你可以得到一个username.sitesled.com的域名，并可以FTP上传文件。注册及发布blog的方法如下：[/B]</p>
<p>    到这里来：http://www.sitesled.com/</p>
<p>    注册一个账号，一定要填写正确的邮件地址，收到确认邮件之后到邮箱中打开，确认，这些就不多说了。<br />
    然后，注意，邮件中有这样一段：<br />
    Once you have validated your account following the<br />
    steps above, you will be able to use the following information<br />
    to FTP your files to your account.<br />
    Ftp Server Address: ftp.sitesled.com<br />
    Username: ***<br />
    Password: ******<br />
    这个时候回到 http://www.blogger.com/<br />
    登陆你的blogger帐号，进入控制面板，更改设置，在&#8221;发布&#8221;选项卡中点击FTP的超级链接，在这里的</p>
<p>    FTP服务器:<br />
    就输入ftp.sitesled.com<br />
    BLOG URL:<br />
    http://***.sitesled.com (***就是你注册的帐号，目前好像用户比较少，可以抢注很多短一些的）<br />
    FTP路径:<br />
    直接填入 / 即可<br />
    blog文件名<br />
    index.html<br />
    FTP用户名和密码在邮件中写的很清楚了。<br />
    所以，根本不需要到sitesled这个网站进行任何操作就可以给Blogger一个可以在国内访问的域名。方法就是利用了Blogger程序内建的ftp<br />
<span id="more-358"></span><br />
[B]Update:[/B][FONT-COLOR=red]测试了一下，这个空间只是普通的空间且不能通过FTP增加目录，可能是我的网速问题。适合转发，用在Blogger上目前看还比较理想<br />
[B]Do you support CGI, PHP or MySQL?[/B]<br />
No. We currently don&#8217;t support CGI, PHP, or MySQL.[/FONT-COLOR]<br />
因为知道blogger的托管服务器Blogspot在国内被封，所以也就没考虑过要注册这么个blogger的用户。记得当时在还不知道博客谓何物的时候在MSN里注册了一个用户但也一直没有用过，现在连用户名和密码都忘了(我想很多Msn的博友就是这么开始博客的)。原因很简单，放在别人的服务器上不安心，总决得被人剥削的感觉(其实也没那么严重)，还是自己能自由管理的来得舒坦。其实反过来想想，自己花银子买的空间又如何呢，在伟大的“防火墙”面前你只能浮首称臣。像blogger、blog-city这么好的BSP可惜我们用不上，的确是很遗憾的事。哈哈，如此久而久之就养成了一种反叛的心理，越是深藏在&#8221;防火墙&#8221;下的见不得光的东西就越能激发我们&#8221;偷窥&#8221;的心理。所以就出现了各种满足&#8221;偷窥&#8221;心理的方法,就像我注册这个blogger的用户一样，原本我不需要有这样的一个ID，但在这种心理下中文blog又增加了[URL=http://king.sitesled.com/]King&#8217;s Weblog[/URL]这样的一个用户:)，Blogger真的很好用，不过目前我还没想出来这个ID做什么用(说不定哪天这个服务器也被K了)。<br />
各位应该都在跃跃欲试了吧，那么就提供一下Koso大哥提供这个方法吧，还有100M的免费空间用，爽.<br />
[B]你可以利用Blogger的FTP发布功能，把blog发布到一个第三方的服务器上。SiteSled是一个免费虚拟主机服务，提供100M免费空间。申请后，你可以得到一个username.sitesled.com的域名，并可以FTP上传文件。注册及发布blog的方法如下：[/B]</p>
<p>    到这里来：http://www.sitesled.com/</p>
<p>    注册一个账号，一定要填写正确的邮件地址，收到确认邮件之后到邮箱中打开，确认，这些就不多说了。<br />
    然后，注意，邮件中有这样一段：<br />
    Once you have validated your account following the<br />
    steps above, you will be able to use the following information<br />
    to FTP your files to your account.<br />
    Ftp Server Address: ftp.sitesled.com<br />
    Username: ***<br />
    Password: ******<br />
    这个时候回到 http://www.blogger.com/<br />
    登陆你的blogger帐号，进入控制面板，更改设置，在&#8221;发布&#8221;选项卡中点击FTP的超级链接，在这里的</p>
<p>    FTP服务器:<br />
    就输入ftp.sitesled.com<br />
    BLOG URL:<br />
    http://***.sitesled.com (***就是你注册的帐号，目前好像用户比较少，可以抢注很多短一些的）<br />
    FTP路径:<br />
    直接填入 / 即可<br />
    blog文件名<br />
    index.html<br />
    FTP用户名和密码在邮件中写的很清楚了。<br />
    所以，根本不需要到sitesled这个网站进行任何操作就可以给Blogger一个可以在国内访问的域名。方法就是利用了Blogger程序内建的ftp</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/358/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>JavaPolis 2005</title>
		<link>http://welog.org/blog/352</link>
		<comments>http://welog.org/blog/352#comments</comments>
		<pubDate>Mon, 19 Dec 2005 21:22:38 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/javapolis-2005/</guid>
		<description><![CDATA[欧洲最大的Java盛会，JavaPolis 2005在14日&#8211;16日举办完毕，这次的会议可谓盛况空前，共有世界各地的上千人参加了大会，可以到它的[URL=http://www.javapolis.com/confluence/display/JP05/Home]官方网站[/URL]上看许多会议的图片。 JavaPolis是一个民间组织举办的Java研讨会，这个民间组织叫BeJUG &#8211; Belgian Java User Group，它是全欧洲人气最旺的一个Java社群。（BTW：北京的BJUG在所有JUG中也排名前50） JavaPolis 从2002年开始，至今已经举办了四届，举办地都在比利时安特卫普，每次会议都有许多Java界重量级的公司和大师在这里发表演讲，內容精彩程度不亚于 JavaOne。特别是相对于官方色彩浓厚的JavaOne，在演讲主题上，Open Source的部份占的比较多。 在本次JavaPolis大会上，还进行了[URL=hhttp://www.radrace.org/en/index.html]RAD Race[/URL]竞赛，有13个公司派出了14个队伍参赛，最后前三名是：AXI，Oracle和LogicaCMG。 欧洲最大的Java盛会，JavaPolis 2005在14日&#8211;16日举办完毕，这次的会议可谓盛况空前，共有世界各地的上千人参加了大会，可以到它的[URL=http://www.javapolis.com/confluence/display/JP05/Home]官方网站[/URL]上看许多会议的图片。 JavaPolis是一个民间组织举办的Java研讨会，这个民间组织叫BeJUG &#8211; Belgian Java User Group，它是全欧洲人气最旺的一个Java社群。（BTW：北京的BJUG在所有JUG中也排名前50） JavaPolis 从2002年开始，至今已经举办了四届，举办地都在比利时安特卫普，每次会议都有许多Java界重量级的公司和大师在这里发表演讲，內容精彩程度不亚于 JavaOne。特别是相对于官方色彩浓厚的JavaOne，在演讲主题上，Open Source的部份占的比较多。 在本次JavaPolis大会上，还进行了[URL=hhttp://www.radrace.org/en/index.html]RAD Race[/URL]竞赛，有13个公司派出了14个队伍参赛，最后前三名是：AXI，Oracle和LogicaCMG。]]></description>
			<content:encoded><![CDATA[<p>欧洲最大的Java盛会，JavaPolis 2005在14日&#8211;16日举办完毕，这次的会议可谓盛况空前，共有世界各地的上千人参加了大会，可以到它的[URL=http://www.javapolis.com/confluence/display/JP05/Home]官方网站[/URL]上看许多会议的图片。</p>
<p>JavaPolis是一个民间组织举办的Java研讨会，这个民间组织叫BeJUG &#8211; Belgian Java User Group，它是全欧洲人气最旺的一个Java社群。（BTW：北京的BJUG在所有JUG中也排名前50）<br />
JavaPolis 从2002年开始，至今已经举办了四届，举办地都在比利时安特卫普，每次会议都有许多Java界重量级的公司和大师在这里发表演讲，內容精彩程度不亚于 JavaOne。特别是相对于官方色彩浓厚的JavaOne，在演讲主题上，Open Source的部份占的比较多。</p>
<p>在本次JavaPolis大会上，还进行了[URL=hhttp://www.radrace.org/en/index.html]RAD Race[/URL]竞赛，有13个公司派出了14个队伍参赛，最后前三名是：AXI，Oracle和LogicaCMG。<br />
<span id="more-352"></span><br />
欧洲最大的Java盛会，JavaPolis 2005在14日&#8211;16日举办完毕，这次的会议可谓盛况空前，共有世界各地的上千人参加了大会，可以到它的[URL=http://www.javapolis.com/confluence/display/JP05/Home]官方网站[/URL]上看许多会议的图片。</p>
<p>JavaPolis是一个民间组织举办的Java研讨会，这个民间组织叫BeJUG &#8211; Belgian Java User Group，它是全欧洲人气最旺的一个Java社群。（BTW：北京的BJUG在所有JUG中也排名前50）</p>
<p>JavaPolis 从2002年开始，至今已经举办了四届，举办地都在比利时安特卫普，每次会议都有许多Java界重量级的公司和大师在这里发表演讲，內容精彩程度不亚于 JavaOne。特别是相对于官方色彩浓厚的JavaOne，在演讲主题上，Open Source的部份占的比较多。</p>
<p>在本次JavaPolis大会上，还进行了[URL=hhttp://www.radrace.org/en/index.html]RAD Race[/URL]竞赛，有13个公司派出了14个队伍参赛，最后前三名是：AXI，Oracle和LogicaCMG。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/352/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax in Struts初试</title>
		<link>http://welog.org/blog/346</link>
		<comments>http://welog.org/blog/346#comments</comments>
		<pubDate>Wed, 14 Dec 2005 22:45:36 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/ajax-in-struts%e5%88%9d%e8%af%95/</guid>
		<description><![CDATA[[IMG]upload/sun.gif[/IMG] 近段时间一直在研究Ajax和Struts的应用，苦于没有高手指导,只能独自一人一步步的尝试，可能转了不少的圈。 此文主要是解释一下我是怎么利用Ajax在Struts上的应用,有不足的地方高手指点。 这里建立一种基于Struts的Web应用，由于Struts没有AJAX支持,必须自己增加。而由于AJAX是没有框架而是动态使用Javascript和Dhtml,它很容易与Struts的组合。 相关代码如下&#8230;. [IMG]upload/sun.gif[/IMG] 近段时间一直在研究Ajax和Struts的应用，苦于没有高手指导,只能独自一人一步步的尝试，可能转了不少的圈。 此文主要是解释一下我是怎么利用Ajax在Struts上的应用,有不足的地方高手指点。 这里建立一种基于Struts的Web应用，由于Struts没有AJAX支持,必须自己增加。而由于AJAX是没有框架而是动态使用Javascript和Dhtml,它很容易与Struts的组合。 相关代码如下&#8230;. [CODE_LITE] &#8230; -First choose above- &#8230; [/CODE_LITE] [B]Javascript 如下:[/B] [CODE_LITE] var req; /* * 由第二个options得到Struts动作 */ function retrieveRassen(){ firstBox = document.getElementById(&#8216;firstBox&#8217;); //Nothing selected if(firstBox.selectedIndex==0){ return; } selectedOption = firstBox.options[firstBox.selectedIndex].value; url=&#8221;retrieveSecondOptionsAjaxAction.do?selectedOption=&#8221;+selectedOption; //Do the Ajax call if (window.XMLHttpRequest){ // Non-IE browsers req = new XMLHttpRequest(); req.onreadystatechange = [...]]]></description>
			<content:encoded><![CDATA[<p>[IMG]upload/sun.gif[/IMG]<br />
近段时间一直在研究Ajax和Struts的应用，苦于没有高手指导,只能独自一人一步步的尝试，可能转了不少的圈。<br />
此文主要是解释一下我是怎么利用Ajax在Struts上的应用,有不足的地方高手指点。<br />
这里建立一种基于Struts的Web应用，由于Struts没有AJAX支持,必须自己增加。而由于AJAX是没有框架而是动态使用Javascript和Dhtml,它很容易与Struts的组合。<br />
相关代码如下&#8230;.<br />
<span id="more-346"></span><br />
[IMG]upload/sun.gif[/IMG]<br />
近段时间一直在研究Ajax和Struts的应用，苦于没有高手指导,只能独自一人一步步的尝试，可能转了不少的圈。<br />
此文主要是解释一下我是怎么利用Ajax在Struts上的应用,有不足的地方高手指点。<br />
这里建立一种基于Struts的Web应用，由于Struts没有AJAX支持,必须自己增加。而由于AJAX是没有框架而是动态使用Javascript和Dhtml,它很容易与Struts的组合。<br />
相关代码如下&#8230;.<br />
[CODE_LITE]<br />
&#8230;</p>
<tr>
<td><label for="first"></label></td>
<td>
    <!--On change the function retrieveSecondOptions() is called to populate the second box --></p>
</td>
</tr>
<tr>
<td><label for="second"></label></td>
<td>
<p>      -First choose above-</p>
</td>
</tr>
<p>&#8230;<br />
[/CODE_LITE]<br />
[B]Javascript 如下:[/B]<br />
[CODE_LITE]</p>
<p> var req;<br />
 /*<br />
  * 由第二个options得到Struts动作<br />
  */<br />
 function retrieveRassen(){</p>
<p>    firstBox = document.getElementById(&#8216;firstBox&#8217;);</p>
<p>    //Nothing selected<br />
    if(firstBox.selectedIndex==0){<br />
      return;<br />
    }<br />
    selectedOption = firstBox.options[firstBox.selectedIndex].value;<br />
    url=&#8221;retrieveSecondOptionsAjaxAction.do?selectedOption=&#8221;+selectedOption;</p>
<p>    //Do the Ajax call<br />
    if (window.XMLHttpRequest){ // Non-IE browsers<br />
      req = new XMLHttpRequest();<br />
      req.onreadystatechange = populateRassen;<br />
      try {<br />
      	req.open(&#8220;GET&#8221;, url, true); //was get<br />
      } catch (e) {<br />
         alert(&#8220;Cannot connect to server);<br />
      }<br />
      req.send(null);<br />
    } else if (window.ActiveXObject) { // IE<br />
      req = new ActiveXObject(&#8220;Microsoft.XMLHTTP&#8221;);<br />
      if (req) {<br />
        req.onreadystatechange = populateSecondBox;<br />
        req.open(&#8220;GET&#8221;, url, true);<br />
        req.send();<br />
      }<br />
    }<br />
  }</p>
<p>  //Callback function<br />
  function populateSecondBox(){<br />
  	document.getElementById(&#8216;rassen&#8217;).options.length = 0;</p>
<p>    if (req.readyState == 4) { // Complete<br />
      if (req.status == 200) { // OK response<br />
         textToSplit = req.responseText<br />
         if(textToSplit == &#8217;803&#8242;){alert(&#8220;No select option available on the server&#8221;)}<br />
          //Split the document<br />
          returnElements=textToSplit.split(&#8220;||&#8221;)</p>
<p>          //Process each of the elements<br />
          for ( var i=0; i<br />
[/CODE_LITE]<br />
接下来必须实施Struts行为..<br />
[CODE_LITE]<br />
package nl.company.action;</p>
<p>import org.apache.log4j.Logger;</p>
<p>import org.apache.struts.action.Action;<br />
import org.apache.struts.action.ActionError;<br />
import org.apache.struts.action.ActionErrors;<br />
import org.apache.struts.action.ActionForm;<br />
import org.apache.struts.action.ActionForward;<br />
import org.apache.struts.action.ActionMapping;</p>
<p>import nl.company.*<br />
import java.io.*<br />
import java.util.List;</p>
<p>import javax.servlet.ServletException;<br />
import javax.servlet.http.HttpServletRequest;<br />
import javax.servlet.http.HttpServletResponse;</p>
<p>public class RetrieveSecondOptionsAjaxAction extends Action<br />
  {<br />
    public ActionForward execute(ActionMapping mapping, ActionForm form,<br />
        HttpServletRequest request, HttpServletResponse response)<br />
        throws IOException, ServletException<br />
      {<br />
        Logger logger = Logger.getLogger(getClass());<br />
        logger.info(<br />
            &#8220;==========================================================&#8221;);<br />
        logger.info(&#8220;Starting in RetrieveSecondOptionsAjaxAction&#8221;);</p>
<p>        String optionSelected = request.getParameter(&#8220;optionSelected&#8221;);</p>
<p>        //Check of het soortId wel correct is<br />
        if (ValidationSupport.isEmptyString(selectedOption))<br />
          {<br />
            logger.debug(&#8220;No selected option supplied&#8221;);</p>
<p>            PrintWriter out = response.getWriter();<br />
            out.print(&#8220;803&#8243;);<br />
          }<br />
        else<br />
          {<br />
            List options = getSecondOptions(selectedOption);<br />
            String outLine = makeOutputString(options);<br />
            out.print(outLine);<br />
          }<br />
      }<br />
      return null;<br />
  }<br />
[/CODE_LITE]<br />
这里是个比较简单的Ajax在Struts上的应用，不过还是调试了关天才看到结果。汗</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/346/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Java Podcasting&#8230;</title>
		<link>http://welog.org/blog/344</link>
		<comments>http://welog.org/blog/344#comments</comments>
		<pubDate>Tue, 13 Dec 2005 03:29:06 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java-podcasting/</guid>
		<description><![CDATA[一个非常好的关于JAVA的Podcast([URL=http://www.javaposse.com]javaposse[/URL])，这样关于JAVA的最新信息就不用费神地游走各大网页得到了。好东西，即可以学习口语又能得到自己关心的东西&#8230;.Oh&#8230;看来说的比写的要更精彩，且他们是三个人一起解说，对相关的问题也做了一些讨论和分析，相当的精彩&#8230;&#8230; [FONT-COLOR=red]PS:国内专业类的播客还是不多见，目前我所了解的只有[URL=http://www.antiwave.net/]反波[/URL]、[URL=http://podcast.bokee.com/muzimei.html]木子美[/URL](未成年人禁入)&#8230;..路过的朋友还知道哪些Podcast吗？不妨给我推荐一下.[/FONT-COLOR] 一个非常好的关于JAVA的Podecast([URL=http://www.javaposse.com]javaposse[/URL])，这样关于JAVA的最新信息就不用费神地游走各大网页得到了。好东西，即可以学习口语又能得到自己关心的东西&#8230;.Oh&#8230;看来说的比写的要更精彩，且他们是三个人一起解说，对相关的问题也做了一些讨论和分析，相当的精彩&#8230;&#8230; [FONT-COLOR=red]PS:国内专业类的播客还是不多见，目前我所了解的只有[URL=http://www.antiwave.net/]反波[/URL]、[URL=http://podcast.bokee.com/muzimei.html]木子美[/URL](未成年人禁入)&#8230;..路过的朋友还知道哪些Podcast吗？不妨给我推荐一下.[/FONT-COLOR]]]></description>
			<content:encoded><![CDATA[<p>一个非常好的关于JAVA的Podcast([URL=http://www.javaposse.com]javaposse[/URL])，这样关于JAVA的最新信息就不用费神地游走各大网页得到了。好东西，即可以学习口语又能得到自己关心的东西&#8230;.Oh&#8230;看来说的比写的要更精彩，且他们是三个人一起解说，对相关的问题也做了一些讨论和分析，相当的精彩&#8230;&#8230;<br />
[FONT-COLOR=red]PS:国内专业类的播客还是不多见，目前我所了解的只有[URL=http://www.antiwave.net/]反波[/URL]、[URL=http://podcast.bokee.com/muzimei.html]木子美[/URL](未成年人禁入)&#8230;..路过的朋友还知道哪些Podcast吗？不妨给我推荐一下.[/FONT-COLOR]<br />
<span id="more-344"></span><br />
一个非常好的关于JAVA的Podecast([URL=http://www.javaposse.com]javaposse[/URL])，这样关于JAVA的最新信息就不用费神地游走各大网页得到了。好东西，即可以学习口语又能得到自己关心的东西&#8230;.Oh&#8230;看来说的比写的要更精彩，且他们是三个人一起解说，对相关的问题也做了一些讨论和分析，相当的精彩&#8230;&#8230;<br />
[FONT-COLOR=red]PS:国内专业类的播客还是不多见，目前我所了解的只有[URL=http://www.antiwave.net/]反波[/URL]、[URL=http://podcast.bokee.com/muzimei.html]木子美[/URL](未成年人禁入)&#8230;..路过的朋友还知道哪些Podcast吗？不妨给我推荐一下.[/FONT-COLOR]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/344/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Java Tips Update</title>
		<link>http://welog.org/blog/337</link>
		<comments>http://welog.org/blog/337#comments</comments>
		<pubDate>Tue, 06 Dec 2005 22:47:50 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java-tips-update/</guid>
		<description><![CDATA[Java tips网站又更新一批新的API,记录一下(参见[URL=http://www.blueclassic.net/post/An_Emerging_website.html]Java-Tips[/URL])！ Java SE Tips / java.lang How to print classpath Java tips网站又更新一批新的API,记录一下(参见[URL=http://www.blueclassic.net/post/An_Emerging_website.html]Java-Tips[/URL])！ Java SE Tips / java.lang How to print classpath Java SE Tips / java.awt.print How to display a Print Dialog in an applicationHow to display the page format dialogHow to print pages with different formats Java SE Tips / java.applet&#160; What is [...]]]></description>
			<content:encoded><![CDATA[<p>Java tips网站又更新一批新的API,记录一下(参见[URL=http://www.blueclassic.net/post/An_Emerging_website.html]Java-Tips[/URL])！ <br /><strong>Java SE Tips / java.lang<br /></strong></p>
<ul>
<li><a href="http://www.java-tips.org/content/view/807/2/"><font color="#808080">How to print classpath </font></a></li>
</ul>
<p><span id="more-337"></span><br />
Java tips网站又更新一批新的API,记录一下(参见[URL=http://www.blueclassic.net/post/An_Emerging_website.html]Java-Tips[/URL])！ <br /><strong>Java SE Tips / java.lang<br /></strong>     <a href="http://www.java-tips.org/content/view/807/2/"><font color="#808080">How to print classpath </font></a></p>
<ul> </ul>
<p>    <strong>Java SE Tips / java.awt.print<font color="#808080"><br /></font></strong> <a href="http://www.java-tips.org/content/view/744/2/"><font color="#808080">How to display a Print Dialog in an application</font></a><br /><a href="http://www.java-tips.org/content/view/745/2/"><font color="#808080">How to display the page format dialog</font></a><br /><a href="http://www.java-tips.org/content/view/746/2/"><font color="#808080">How to print pages with different formats </font></a></p>
<ul> </ul>
<p>        <strong>Java SE Tips / java.applet</strong>&nbsp;</p>
<ul>
<li><a href="http://www.java-tips.org/content/view/776/2/"><font color="#808080">What is a Java Applet </font></a></li>
</ul>
<p>        <strong>Java SE Tips / java.beans</strong>&nbsp;</p>
<ul>
<li><a href="http://www.java-tips.org/content/view/747/2/"><font color="#808080">How to serialize a bean to XML </font></a></li>
<li><a href="http://www.java-tips.org/content/view/748/2/"><font color="#808080">How to deserialize a bean from XML </font></a></li>
<li><a href="http://www.java-tips.org/content/view/749/2/"><font color="#808080">How to get and set the Property of a Bean </font></a></li>
<li><a href="http://www.java-tips.org/content/view/750/2/"><font color="#808080">How to list names of the properties of a Bean </font></a></li>
</ul>
<p>        <strong>Java SE Tips / javax.swing</strong>&nbsp;</p>
<ul>
<li><a href="http://www.java-tips.org/content/view/756/2/"><font color="#808080">How to make your own animation from a series of images </font></a></li>
<li><a href="http://www.java-tips.org/content/view/757/2/"><font color="#808080">How to copy selected text from one text area to another </font></a></li>
<li><a href="http://www.java-tips.org/content/view/758/2/"><font color="#808080">Two examples illustrating the usage of JFrame and JPanel classes </font></a></li>
<li><a href="http://www.java-tips.org/content/view/759/2/"><font color="#808080">How to program a panel that handles its own mouse events </font></a></li>
<li><a href="http://www.java-tips.org/content/view/760/2/"><font color="#808080">How to use menus in Swing applications </font></a></li>
<li><a href="http://www.java-tips.org/content/view/761/2/"><font color="#808080">How to use popup menus in Swing applications </font></a></li>
<li><a href="http://www.java-tips.org/content/view/762/2/"><font color="#808080">How to change the look and feel of Swing applications </font></a></li>
<li><a href="http://www.java-tips.org/content/view/763/2/"><font color="#808080">How to create a virtual desktop in your application </font></a></li>
<li><a href="http://www.java-tips.org/content/view/764/2/"><font color="#808080">How to align your components in horizontal or vertical layout </font></a></li>
<li><a href="http://www.java-tips.org/content/view/765/2/"><font color="#808080">How to create fancy buttons in your application </font></a></li>
</ul>
<p>        <strong>Java SE Tips / java.util.zip</strong>&nbsp;</p>
<ul>
<li><a href="http://www.java-tips.org/content/view/600/2/"><font color="#808080">How to extract file/files from a zip file </font></a></li>
<li><a href="http://www.java-tips.org/content/view/601/2/"><font color="#808080">How to read files within a zip file </font></a></li>
</ul>
<p>        <strong>Java SE Tips / java.io</strong>&nbsp;</p>
<ul>
<li><a href="http://www.java-tips.org/content/view/599/2/"><font color="#808080">How to get the list of specific file types in a directory </font></a></li>
</ul>
<p>        <strong>Java ME Tips / MIDP</strong>&nbsp;</p>
<ul>
<li><a href="http://www.java-tips.org/content/view/617/39/"><font color="#808080">How to install a J2ME aplication on a mobile device </font></a></li>
<li><a href="http://www.java-tips.org/content/view/751/39/"><font color="#808080">Displaying an Alert on mobile screen </font></a></li>
<li><a href="http://www.java-tips.org/content/view/752/39/"><font color="#808080">How to play sound on mobile phone </font></a></li>
<li><a href="http://www.java-tips.org/content/view/753/39/"><font color="#808080">How to implement networking on mobile devices </font></a></li>
<li><a href="http://www.java-tips.org/content/view/754/39/"><font color="#808080">Record Management System for storing/retrieving data on mobile </font></a></li>
<li><a href="http://www.java-tips.org/content/view/755/39/"><font color="#808080">Displaying images on mobile device </font></a></li>
</ul>
<p>        <strong>Java EE Tips / javax.servlet</strong>&nbsp;</p>
<ul>
<li><a href="http://www.java-tips.org/content/view/777/40/"><font color="#808080">What is a Java Servlet </font></a></li>
</ul>
<p>        <strong>Other API Tips / JavaMail</strong>&nbsp;</p>
<ul>
<li><a href="http://www.java-tips.org/content/view/616/29/"><font color="#808080">How to send an email with a file attachment </font></a></li>
</ul>
<p>        <strong>Other API Tips / JDBC</strong></p>
<ul>
<li><a href="http://www.java-tips.org/content/view/615/29/"><font color="#808080">How to connect to Microsoft SQL server with Type 4 JDBC driver </font></a></li>
<li><a href="http://www.java-tips.org/content/view/809/29/"><font color="#808080">How to connect Oracle Server using JDBC </font></a></li>
<li><a href="http://www.java-tips.org/content/view/808/29/"><font color="#808080">How to connect MySql Server using JDBC </font></a></li>
</ul>
<p>        <strong>Other API Tips / JDOM</strong></p>
<ul>
<li><a href="http://www.java-tips.org/content/view/810/29/"><font color="#808080">Creating a new document with JDOM </font></a></li>
<li><a href="http://www.java-tips.org/content/view/811/29/"><font color="#808080">Reading a document from XML file with SAX </font></a></li>
<li><a href="http://www.java-tips.org/content/view/812/29/"><font color="#808080">Reading a document from XML file with DOM </font></a></li>
<li><a href="http://www.java-tips.org/content/view/813/29/"><font color="#808080">Writing a JDOM tree with XMLOutputter </font></a></li>
<li><a href="http://www.java-tips.org/content/view/814/29/"><font color="#808080">Navigating the JDOM tree </font></a></li>
<li><a href="http://www.java-tips.org/content/view/815/29/"><font color="#808080">Handling element attributes with JDOM </font></a></li>
<li><a href="http://www.java-tips.org/content/view/816/29/"><font color="#808080">Dealing with mixed content (whitespace, comments, text, child elements, and more) </font></a></li>
<li><a href="http://www.java-tips.org/content/view/817/29/"><font color="#808080">Converting from JDOM to DOM </font></a></li>
<li><a href="http://www.java-tips.org/content/view/818/29/"><font color="#808080">Converting from DOM to JDOM </font></a></li>
<li><a href="http://www.java-tips.org/content/view/819/29/"><font color="#808080">Converting from JDOM to SAX (supported in JDOM 1.9) </font></a></li>
</ul>
<p>        <strong>Other API Tips / JFreeChart</strong>&nbsp;</p>
<ul>
<li><a href="http://www.java-tips.org/content/view/602/29/"><font color="#808080">I&#8217;m getting classpath errors (NoClassDefFoundException etc.), can you help me? </font></a></li>
<li><a href="http://www.java-tips.org/content/view/603/29/"><font color="#808080">I can&#8217;t find the source code for classes in the org.jfree.ui package. Where are they? </font></a></li>
<li><a href="http://www.java-tips.org/content/view/604/29/"><font color="#808080">Can I use JFreeChart in an applet? </font></a></li>
<li><a href="http://www.java-tips.org/content/view/605/29/"><font color="#808080">Can I use JFreeChart in a commercial application? Do I need to pay a fee? </font></a></li>
<li><a href="http://www.java-tips.org/content/view/606/29/"><font color="#808080">Does JFreeChart support real-time charting? </font></a></li>
<li><a href="http://www.java-tips.org/content/view/607/29/"><font color="#808080">How can I set my own colors for each series in my chart? </font></a></li>
<li><a href="http://www.java-tips.org/content/view/608/29/"><font color="#808080">The y-axis on my chart shows decimal fractions. How can i display only integral values? </font></a></li>
<li><a href="http://www.java-tips.org/content/view/609/29/"><font color="#808080">The Unicode characters in my chart title aren&#8217;t being displayed properly. What is going wrong? </font></a></li>
<li><a href="http://www.java-tips.org/content/view/610/29/"><font color="#808080">I see that JFreeChart can export to JPEG and PNG format &#8211; which is better? </font></a></li>
<li><a href="http://www.java-tips.org/content/view/611/29/"><font color="#808080">My web application runs fine on Windows, but does not work on Unix/Linux. What is the problem? </font></a></li>
</ul>
<p>        <strong>Other API Tips / Ant</strong>&nbsp;</p>
<ul>
<li><a href="http://www.java-tips.org/content/view/613/29/"><font color="#808080">How to use Ant task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/614/29/"><font color="#808080">How to use AntCall task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/618/29/"><font color="#808080">How to use AntStructure task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/619/29/"><font color="#808080">How to use Apply/ExecOn task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/620/29/"><font color="#808080">How to use Available task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/621/29/"><font color="#808080">How to use Basename task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/622/29/"><font color="#808080">How to use BuildNumber task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/623/29/"><font color="#808080">How to use GUnzip/BUnzip2 task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/624/29/"><font color="#808080">How to use GZip/BZip2 task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/625/29/"><font color="#808080">How to use Checksum task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/626/29/"><font color="#808080">How to use Chmod task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/627/29/"><font color="#808080">How to use Concat task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/628/29/"><font color="#808080">How to use Condition task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/629/29/"><font color="#808080">How to use Copy task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/631/29/"><font color="#808080">How to use Cvs task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/632/29/"><font color="#808080">How to use CvsChangeLog task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/633/29/"><font color="#808080">How to use CvsVersion task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/634/29/"><font color="#808080">How to use CvsPass task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/635/29/"><font color="#808080">How to use CvsTagDiff task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/636/29/"><font color="#808080">How to use DefaultExcludes task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/637/29/"><font color="#808080">How to use Delete task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/638/29/"><font color="#808080">How to use DependSet task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/639/29/"><font color="#808080">How to use Dirname task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/640/29/"><font color="#808080">How to use Ear task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/641/29/"><font color="#808080">How to use Echo task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/642/29/"><font color="#808080">How to use Exec task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/643/29/"><font color="#808080">How to use Fail task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/644/29/"><font color="#808080">How to use Filter task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/645/29/"><font color="#808080">How to use FixCRLF task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/646/29/"><font color="#808080">How to use GenKey task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/647/29/"><font color="#808080">How to use Get task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/648/29/"><font color="#808080">How to use Import task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/649/29/"><font color="#808080">How to use Input task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/650/29/"><font color="#808080">How to use Jar task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/651/29/"><font color="#808080">How to use Java task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/652/29/"><font color="#808080">How to use Javac task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/653/29/"><font color="#808080">How to use Javadoc/Javadoc2 task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/654/29/"><font color="#808080">How to use Length task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/655/29/"><font color="#808080">How to use LoadFile task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/656/29/"><font color="#808080">How to use LoadProperties task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/657/29/"><font color="#808080">How to use Mail task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/658/29/"><font color="#808080">How to use MacroDef task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/659/29/"><font color="#808080">How to use Manifest task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/660/29/"><font color="#808080">How to use Mkdir task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/661/29/"><font color="#808080">How to use Move task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/662/29/"><font color="#808080">How to use Nice task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/663/29/"><font color="#808080">How to use Parallel task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/664/29/"><font color="#808080">How to use Patch task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/665/29/"><font color="#808080">How to use Pathconvert task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/666/29/"><font color="#808080">How to use PreSetDef task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/667/29/"><font color="#808080">How to use Property task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/668/29/"><font color="#808080">How to use Record task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/669/29/"><font color="#808080">How to use Replace task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/670/29/"><font color="#808080">How to use Rmic task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/671/29/"><font color="#808080">How to use Sequential task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/672/29/"><font color="#808080">How to use SignJar task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/673/29/"><font color="#808080">How to use Sleep task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/674/29/"><font color="#808080">How to use Sql task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/676/29/"><font color="#808080">How to use Sync task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/677/29/"><font color="#808080">How to use Tar task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/678/29/"><font color="#808080">How to use Taskdef task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/679/29/"><font color="#808080">How to use Touch task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/680/29/"><font color="#808080">How to use Tstamp task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/681/29/"><font color="#808080">How to use Typedef task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/682/29/"><font color="#808080">How to use Unjar/Untar/Unwar/Unzip task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/683/29/"><font color="#808080">How to use Uptodate task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/684/29/"><font color="#808080">How to use Waitfor task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/685/29/"><font color="#808080">How to use War task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/686/29/"><font color="#808080">How to use XmlProperty task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/687/29/"><font color="#808080">How to use Xslt/Style task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/688/29/"><font color="#808080">How to use Zip task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/689/29/"><font color="#808080">How to use .NET tasks </font></a></li>
<li><a href="http://www.java-tips.org/content/view/690/29/"><font color="#808080">How to use ANTLR task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/691/29/"><font color="#808080">How to use Attrib task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/692/29/"><font color="#808080">How to use Cab task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/693/29/"><font color="#808080">How to use Chgrp task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/694/29/"><font color="#808080">How to use Chown task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/695/29/"><font color="#808080">How to use ClearCase tasks </font></a></li>
<li><a href="http://www.java-tips.org/content/view/696/29/"><font color="#808080">How to use Continuus Support tasks </font></a></li>
<li><a href="http://www.java-tips.org/content/view/697/29/"><font color="#808080">How to use Depend task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/698/29/"><font color="#808080">How to use EJB tasks </font></a></li>
<li><a href="http://www.java-tips.org/content/view/699/29/"><font color="#808080">How to use Echoproperties task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/700/29/"><font color="#808080">How to use FTP task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/701/29/"><font color="#808080">How to use IContract task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/702/29/"><font color="#808080">How to use Jarlib-available task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/703/29/"><font color="#808080">How to use Jarlib-display task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/704/29/"><font color="#808080">How to use Jarlib-manifest task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/705/29/"><font color="#808080">How to use Jarlib-resolve task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/706/29/"><font color="#808080">How to use JavaCC task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/707/29/"><font color="#808080">How to use Javah task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/708/29/"><font color="#808080">How to use JspC task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/709/29/"><font color="#808080">How to use JDepend task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/710/29/"><font color="#808080">How to use JJDoc task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/711/29/"><font color="#808080">How to use JJTree task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/713/29/"><font color="#808080">How to use JUnit task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/714/29/"><font color="#808080">How to use JUnitReport task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/715/29/"><font color="#808080">How to use Native2Ascii task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/716/29/"><font color="#808080">How to use NetRexxC task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/718/29/"><font color="#808080">How to use Pvcs task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/719/29/"><font color="#808080">How to use ReplaceRegExp task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/720/29/"><font color="#808080">How to use RExec task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/721/29/"><font color="#808080">How to use Rpm task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/722/29/"><font color="#808080">How to use ServerDeploy tasks </font></a></li>
<li><a href="http://www.java-tips.org/content/view/723/29/"><font color="#808080">How to use Scp task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/724/29/"><font color="#808080">How to use Script task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/725/29/"><font color="#808080">How to use Scriptdef task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/726/29/"><font color="#808080">How to use Sound task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/727/29/"><font color="#808080">How to use Splash task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/728/29/"><font color="#808080">How to use SshExec task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/729/29/"><font color="#808080">How to use Stylebook task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/730/29/"><font color="#808080">How to use Symlink task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/731/29/"><font color="#808080">How to use Telnet task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/732/29/"><font color="#808080">How to use Test task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/733/29/"><font color="#808080">How to use Translate task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/734/29/"><font color="#808080">How to use XMLValidate task </font></a></li>
<li><a href="http://www.java-tips.org/content/view/735/29/"><font color="#808080">How do I get system time </font></a></li>
<li><a href="http://www.java-tips.org/content/view/736/29/"><font color="#808080">How to include C/C++ code compile/link in Ant build </font></a></li>
<li><a href="http://www.java-tips.org/content/view/737/29/"><font color="#808080">How I can pass a string from my ant task to a build.xml </font></a></li>
<li><a href="http://www.java-tips.org/content/view/738/29/"><font color="#808080">How can I test for JVM versions </font></a></li>
<li><a href="http://www.java-tips.org/content/view/739/29/"><font color="#808080">How to delete content of directory without deleting the directory itself </font></a></li>
<li><a href="http://www.java-tips.org/content/view/740/29/"><font color="#808080">How do I access environment variables within Ant </font></a></li>
<li><a href="http://www.java-tips.org/content/view/741/29/"><font color="#808080">What is Apache Ant </font></a></li>
<li><a href="http://www.java-tips.org/content/view/742/29/"><font color="#808080">What does Ant mean? </font></a></li>
<li><a href="http://www.java-tips.org/content/view/743/29/"><font color="#808080">History of Ant </font></a></li>
</ul>
<p>        <strong>New Categories in Java Applications Section</strong>&nbsp;</p>
<ul>
<li><a href="http://www.java-tips.org/content/category/8/108/44/"><font color="#808080">Download Manager </font></a></li>
</ul>
<p>        <strong>New Categories in Java Libraries Section</strong>&nbsp;</p>
<ul>
<li><a href="http://www.java-tips.org/content/category/9/109/45/"><font color="#808080">Genetic Algorithms </font></a></li>
<li><a href="http://www.java-tips.org/content/category/9/110/45/"><font color="#808080">Neural Networks </font></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/337/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SUN将对所有收费软件都免费！</title>
		<link>http://welog.org/blog/333</link>
		<comments>http://welog.org/blog/333#comments</comments>
		<pubDate>Sat, 03 Dec 2005 18:24:06 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/sun%e5%b0%86%e5%af%b9%e6%89%80%e6%9c%89%e6%94%b6%e8%b4%b9%e8%bd%af%e4%bb%b6%e9%83%bd%e5%85%8d%e8%b4%b9%ef%bc%81/</guid>
		<description><![CDATA[SunMicrosystems今日宣布，将其捆绑很多软件全部免费提供给客户下载(包括Java Enterprise System、Sun N1管理软件以及开发工具等都将免费)。Sun希望能够借此举措推动公司商业模式的全面增长，为公司赢得更多的利润。一年前，Sun开始免费提供其Solaris版的Unix操作系统。当然你还是要对其服务以及技术支持支付费用，而这些方面正是Sun要积极推动并促进营收的目标。 更多细节请[URL=http://news.com.com/Sun+to+offer+more+free+software/2100-7344_3-5976796.html]访问[/URL].. SunMicrosystems今日宣布，将其捆绑很多软件全部免费提供给客户下载(包括Java Enterprise System、Sun N1管理软件以及开发工具等都将免费)。Sun希望能够借此举措推动公司商业模式的全面增长，为公司赢得更多的利润。一年前，Sun开始免费提供其Solaris版的Unix操作系统。当然你还是要对其服务以及技术支持支付费用，而这些方面正是Sun要积极推动并促进营收的目标。 更多细节请[URL=http://news.com.com/Sun+to+offer+more+free+software/2100-7344_3-5976796.html]访问[/URL]..]]></description>
			<content:encoded><![CDATA[<p>SunMicrosystems今日宣布，将其捆绑很多软件全部免费提供给客户下载(包括Java Enterprise System、Sun N1管理软件以及开发工具等都将免费)。Sun希望能够借此举措推动公司商业模式的全面增长，为公司赢得更多的利润。一年前，Sun开始免费提供其Solaris版的Unix操作系统。当然你还是要对其服务以及技术支持支付费用，而这些方面正是Sun要积极推动并促进营收的目标。<br />
更多细节请[URL=http://news.com.com/Sun+to+offer+more+free+software/2100-7344_3-5976796.html]访问[/URL]..<br />
<span id="more-333"></span><br />
SunMicrosystems今日宣布，将其捆绑很多软件全部免费提供给客户下载(包括Java Enterprise System、Sun N1管理软件以及开发工具等都将免费)。Sun希望能够借此举措推动公司商业模式的全面增长，为公司赢得更多的利润。一年前，Sun开始免费提供其Solaris版的Unix操作系统。当然你还是要对其服务以及技术支持支付费用，而这些方面正是Sun要积极推动并促进营收的目标。<br />
更多细节请[URL=http://news.com.com/Sun+to+offer+more+free+software/2100-7344_3-5976796.html]访问[/URL]..</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/333/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebWork加入Struts~~</title>
		<link>http://welog.org/blog/329</link>
		<comments>http://welog.org/blog/329#comments</comments>
		<pubDate>Wed, 30 Nov 2005 01:17:56 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/webwork%e5%8a%a0%e5%85%a5struts/</guid>
		<description><![CDATA[Webwork 的开发者Patrick Lightbody 在他的Blog里宣布，WebWork 将会逐渐整合进Struts并将成为&#8221;Struts Action Framework 2.0&#8243;。这对于Struts开发者来说，是一个好消息。 Webwork 的开发者Patrick Lightbody 在他的Blog里宣布，WebWork 将会逐渐整合进Struts并将成为&#8221;Struts Action Framework 2.0&#8243;。这对于Struts开发者来说，是一个好消息。 下面刚看到的一此评论： [CODE_LITE]Patrick Lightbody from WebWorks said: Yes, it&#8217;s true. The WebWork development team (Jason and I) have been working with the Struts development team (Don Brown and Ted Husted) and have come to the conclusion that the best thing [...]]]></description>
			<content:encoded><![CDATA[<p>Webwork 的开发者Patrick Lightbody 在他的Blog里宣布，WebWork 将会逐渐整合进Struts并将成为&#8221;Struts Action Framework 2.0&#8243;。这对于Struts开发者来说，是一个好消息。<br />
<span id="more-329"></span><br />
Webwork 的开发者Patrick Lightbody 在他的Blog里宣布，WebWork 将会逐渐整合进Struts并将成为&#8221;Struts Action Framework 2.0&#8243;。这对于Struts开发者来说，是一个好消息。<br />
下面刚看到的一此评论：<br />
[CODE_LITE]Patrick Lightbody from WebWorks said:<br />
 Yes, it&#8217;s true. The WebWork development team (Jason and I) have been working with the Struts development team (Don Brown and Ted Husted) and have come to the conclusion that the best thing for Java community would be to merge WebWork in to Struts.</p>
<p>Read Ted&#8217;s email here, but the gist of it is this: WebWork is a great technology, and Struts is a great community. It&#8217;s a perfect match and bringing the two together will only be better for WebWork and Struts users alike.[/CODE_LITE]<br />
而Ted Husted 也在他的站点上提供了更进一步细节:<br />
[CODE_LITE]We would to amend the Struts Ti sandbox proposal to provide for<br />
merging WebWork 2.2 into our codebase. The WebWork merger would be Ti<br />
phase 1. Much of the work now proposed for Ti would become phase 2.</p>
<p>* Ti phase 1 = WebWork 2.2 + Struts 1.x compatibility library and<br />
migration tools<br />
* Ti phase 2 = phase 1 + Commons Chain integration + Beehive&#8217;s Page<br />
Flow + simplified annotations + quick development mode</p>
<p>When the Ti phase 1 has coalesced and is providing a high degree of<br />
Struts 1.x compatibility, our intention would be to propose Ti as a<br />
Struts Action Framework 2.x candidate. Until that time, we would<br />
continue to consider Ti a &#8220;next generation&#8221; proposal and, pending a<br />
decison by the PMC, avoid attaching the 2.x label to Ti.[/CODE_LITE]<br />
全新的 Struts Ti 将以WebWork为Core，完全向后兼容Struts 1.x并集成Apache Beehive Page Flow，并使用 java 5 的annotations代替繁杂的配置文件，目标是如Ruby on Rails、NanoWeb一样快捷简单。</p>
<p>而Lightbody也进一步澄清在这个事件的疑问:<br />
[CODE_LITE]There will likely need to be more backwards compatibility work for Struts than WebWork, [B]since the hope is to start with WebWork and add features related to Struts[/B], not the other way around.[/CODE_LITE]<br />
这样的整合是开发者很高兴看到的，Struts的人气+WebWork的技术，我们还是做好准备下一个新技术的诞生吧!</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/329/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java11月排行榜居首位</title>
		<link>http://welog.org/blog/327</link>
		<comments>http://welog.org/blog/327#comments</comments>
		<pubDate>Mon, 28 Nov 2005 22:08:33 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java11%e6%9c%88%e6%8e%92%e8%a1%8c%e6%a6%9c%e5%b1%85%e9%a6%96%e4%bd%8d/</guid>
		<description><![CDATA[根据TIOBE程序员社区公布的11程序语言排行,Java 语言相关的项目数量首次超过了 C++ ，并成为了No.1；而PHP即将超过C++成为了排行榜的老三！这个排行榜每月更新一次，其排名顺序按照世界范围内的技术工程师、讲师、第三方厂商的调查依据，并查询了目前流行的搜索引擎：Google,MSN,Yahoo，结合前两者的数据计算后得出的。根据TIOBE的观点，此排行榜是被程序员们用来检查自己的程序技能是否过时，或者作为建立新的软件系统时进行参考之依据，并非意味着哪种语言是最好的。相信大多数程序员都是为了此目地。 根据TIOBE程序员社区公布的11程序语言排行,Java 语言相关的项目数量首次超过了 C++ ，并成为了No.1；而PHP即将超过C++成为了排行榜的老三！这个排行榜每月更新一次，其排名顺序按照世界范围内的技术工程师、讲师、第三方厂商的调查依据，并查询了目前流行的搜索引擎：Google,MSN,Yahoo，结合前两者的数据计算后得出的。根据TIOBE的观点，此排行榜是被程序员们用来检查自己的程序技能是否过时，或者作为建立新的软件系统时进行参考之依据，并非意味着哪种语言是最好的。相信大多数程序员都是为了此目地。1。世界前20位语言排行榜： 2。世界前10位语言在前五年内长期发展趋势图： 3。世界前30-50位语言排行榜： 图示说明：&#160;&#160;&#160;&#160;* (Position)：此列表明当前语言与去年位置的变化。&#160;&#160;&#160;&#160;* Ratings：在查询搜索引擎计算排名顺序时使用了 &#8216;+&#34;&#60;language&#62; programming&#34; -tv -channel&#8217;公式，对上12个月内Google，MSN，Yahoo！和Google新闻组的数据进行查询。注意此公式应用于标准的Google web点击率、标准的MSN web点击率、标准的Yahoo！web点击率和标准的Google新闻组点击率。这里的&#8220;标准&#8221;意味着一次对前50位语言web点击率总和的查询是均匀分布的，即保证了排名的相对公正性和科学性。&#160;&#160;&#160;&#160;* (Ratings)： 此列表明当前语言在上12个月内的排名变化。&#160;&#160;&#160;&#160;* Status：带有&#8220;A&#8221;的程序语言被认为是主流语言。&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 带有&#8220;A-&#8221;和&#8220;A&#8211;&#8221;表示程序语言位于&#8220;A&#8221;和&#8220;B&#8221;之间。&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 从支持能力的观点看，尽量在工业的、任务危机的软件系统中使用带有&#8220;A&#8221;的主流程 序语言。&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 如果某种语言在上3个月内具有超过0.7%的增长率，则此语言将获得&#8220;A&#8221;状态。上两个月内具有超过0.7%的增长率的程序语言相应的将获得&#8220;A&#8211;&#8221;和&#8220;A-&#8221;状态。]]></description>
			<content:encoded><![CDATA[<p>根据TIOBE程序员社区公布的11程序语言排行,Java 语言相关的项目数量首次超过了 C++ ，并成为了No.1；而PHP即将超过C++成为了排行榜的老三！这个排行榜每月更新一次，其排名顺序按照世界范围内的技术工程师、讲师、第三方厂商的调查依据，并查询了目前流行的搜索引擎：Google,MSN,Yahoo，结合前两者的数据计算后得出的。根据TIOBE的观点，此排行榜是被程序员们用来检查自己的程序技能是否过时，或者作为建立新的软件系统时进行参考之依据，并非意味着哪种语言是最好的。相信大多数程序员都是为了此目地。<br />
<span id="more-327"></span><br />
根据TIOBE程序员社区公布的11程序语言排行,Java 语言相关的项目数量首次超过了 C++ ，并成为了No.1；而PHP即将超过C++成为了排行榜的老三！这个排行榜每月更新一次，其排名顺序按照世界范围内的技术工程师、讲师、第三方厂商的调查依据，并查询了目前流行的搜索引擎：Google,MSN,Yahoo，结合前两者的数据计算后得出的。根据TIOBE的观点，此排行榜是被程序员们用来检查自己的程序技能是否过时，或者作为建立新的软件系统时进行参考之依据，并非意味着哪种语言是最好的。相信大多数程序员都是为了此目地。<br />1。世界前20位语言排行榜：</p>
<p><img alt="" src="http://images.csdn.net/20051128/2005_11_25_104159_ccyqPFcFFs.jpg" width="400" border="0" /><br /><img alt="" src="http://images.csdn.net/20051128/2005_11_25_104206_scDpPaCkWo.jpg" width="400" border="0" /></p>
<p>2。世界前10位语言在前五年内长期发展趋势图：</p>
<p><img alt="" src="http://images.csdn.net/20051128/2005_11_25_112025_FyhUVRBDYn.jpg" width="400" border="0" /></p>
<p>3。世界前30-50位语言排行榜：</p>
<p><img alt="" src="http://images.csdn.net/20051128/2005_11_25_104212_fyLjnFxVAM.jpg" border="0" /></p>
<p><img alt="image" src="http://images.csdn.net/20051128/2005_11_25_104218_iJOANMNmFu.jpg" border="0" /></p>
<p><img alt="image" src="http://images.csdn.net/20051128/2005_11_25_104224_gknaHBuewV.jpg" border="0" /></p>
<p>图示说明：<br />&nbsp;&nbsp;&nbsp;&nbsp;* (Position)：此列表明当前语言与去年位置的变化。<br />&nbsp;&nbsp;&nbsp;&nbsp;* Ratings：在查询搜索引擎计算排名顺序时使用了 &#8216;+&quot;&lt;language&gt; programming&quot; -tv -channel&#8217;公式，对上12个月内Google，MSN，Yahoo！和Google新闻组的数据进行查询。注意此公式应用于标准的Google web点击率、标准的MSN web点击率、标准的Yahoo！web点击率和标准的Google新闻组点击率。这里的&ldquo;标准&rdquo;意味着一次对前50位语言web点击率总和的查询是均匀分布的，即保证了排名的相对公正性和科学性。<br />&nbsp;&nbsp;&nbsp;&nbsp;* (Ratings)： 此列表明当前语言在上12个月内的排名变化。<br />&nbsp;&nbsp;&nbsp;&nbsp;* Status：带有&ldquo;A&rdquo;的程序语言被认为是主流语言。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 带有&ldquo;A-&rdquo;和&ldquo;A&#8211;&rdquo;表示程序语言位于&ldquo;A&rdquo;和&ldquo;B&rdquo;之间。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从支持能力的观点看，尽量在工业的、任务危机的软件系统中使用带有&ldquo;A&rdquo;的主流程 序语言。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果某种语言在上3个月内具有超过0.7%的增长率，则此语言将获得&ldquo;A&rdquo;状态。上两个月内具有超过0.7%的增长率的程序语言相应的将获得&ldquo;A&#8211;&rdquo;和&ldquo;A-&rdquo;状态。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/327/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>J2SE6 (Mustang)实现System Tray / Taskbar</title>
		<link>http://welog.org/blog/325</link>
		<comments>http://welog.org/blog/325#comments</comments>
		<pubDate>Sun, 27 Nov 2005 23:20:10 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/j2se6-mustang%e5%ae%9e%e7%8e%b0system-tray-taskbar/</guid>
		<description><![CDATA[[IMG]http://java.sun.com/developer/technicalArticles/J2SE/Desktop/mustang/systemtray/windowsTray.gif[/IMG] [I]Figure 1. Windows System Tray[/I] 现在Java 2平台标准版6.0版本(Mustang) 能让你通过java.awt包的二个类(SystemTray 和TrayIcon)来访问系统托盘。这些类给你能力增加图表, popup 菜单, 和floating 技巧功能来访问系统托盘。 [IMG]http://java.sun.com/developer/technicalArticles/J2SE/Desktop/mustang/systemtray/windowsTray.gif[/IMG]Enables System Tray / Taskbar [I]Figure 1. Windows System Tray[/I] 现在J2se标准6.0版本(Mustang)能让你通过java.awt包的二个类(SystemTray 和TrayIcon)来访问系统托盘。这些类给你能力增加图表, popup 菜单, 和floating 技巧功能来访问系统托盘。 [IMG]http://java.sun.com/developer/technicalArticles/J2SE/Desktop/mustang/systemtray/linuxTray.gif[/IMG] [I]Figure 2. Linux System Tray [/I] Java.awt.SystemTray 组代表桌面系统托盘。你能通过静态SystemTray.getSystemTray()方法来访问系统托 。当然，在作用之前你得检查托盘是否支持静态SystemTray.isSupported()方法。如果系统托盘不存在或不支持这个平台又或者这种应用试图访问getSystemTray()的情况下, 它将抛出java.lang.UnsupportedOperationException 。 更多的细节请[URL=http://java.sun.com/developer/technicalArticles/J2SE/Desktop/mustang/systemtray/]访问这里[/URL]]]></description>
			<content:encoded><![CDATA[<p>[IMG]http://java.sun.com/developer/technicalArticles/J2SE/Desktop/mustang/systemtray/windowsTray.gif[/IMG]<br />
[I]Figure 1. Windows System Tray[/I]<br />
现在Java 2平台标准版6.0版本(Mustang) 能让你通过java.awt包的二个类(SystemTray 和TrayIcon)来访问系统托盘。这些类给你能力增加图表, popup 菜单, 和floating 技巧功能来访问系统托盘。<br />
<span id="more-325"></span><br />
[IMG]http://java.sun.com/developer/technicalArticles/J2SE/Desktop/mustang/systemtray/windowsTray.gif[/IMG]Enables System Tray / Taskbar<br />
[I]Figure 1. Windows System Tray[/I]<br />
现在J2se标准6.0版本(Mustang)能让你通过java.awt包的二个类(SystemTray 和TrayIcon)来访问系统托盘。这些类给你能力增加图表, popup 菜单, 和floating 技巧功能来访问系统托盘。<br />
[IMG]http://java.sun.com/developer/technicalArticles/J2SE/Desktop/mustang/systemtray/linuxTray.gif[/IMG]<br />
[I]Figure 2. Linux System Tray [/I]<br />
Java.awt.SystemTray 组代表桌面系统托盘。你能通过静态SystemTray.getSystemTray()方法来访问系统托<br />
。当然，在作用之前你得检查托盘是否支持静态SystemTray.isSupported()方法。如果系统托盘不存在或不支持这个平台又或者这种应用试图访问getSystemTray()的情况下, 它将抛出java.lang.UnsupportedOperationException 。<br />
更多的细节请[URL=http://java.sun.com/developer/technicalArticles/J2SE/Desktop/mustang/systemtray/]访问这里[/URL]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/325/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JDK 7 征求您的宝贵意见!</title>
		<link>http://welog.org/blog/324</link>
		<comments>http://welog.org/blog/324#comments</comments>
		<pubDate>Sat, 26 Nov 2005 23:36:01 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/jdk-7-%e5%be%81%e6%b1%82%e6%82%a8%e7%9a%84%e5%ae%9d%e8%b4%b5%e6%84%8f%e8%a7%81/</guid>
		<description><![CDATA[Sun公司正在开始Java Standard Edition (JDK) 7 的实施计划工作。为了更充分和有效地听取广大中国Java用户对JDK特性的需求并将其纳入JDK 7 的计划中，J2SE中国工程研发组准备了下面一系列针对J2SE各个方面的问题。希望能够通过这些问题得到中国Java用户对JDK的一些直接反馈和建议。 [FONT-COLOR=Red]不知道这次是SUN正的重视市场还是在做绣，我们拭目以待！等会仔细看看发布上来~~~[/FONT-COLOR] 请您将此调查问卷通过电子邮件寄回到ecommunity@prc.sun.com，即可收到我们寄送的一份精美礼品。 此调查问卷的电子版可以从http://gceclub.sun.com.cn/event/survey.txt下载。 Sun公司正在开始Java Standard Edition (JDK) 7 的实施计划工作。为了更充分和有效地听取广大中国Java用户对JDK特性的需求并将其纳入JDK 7 的计划中，J2SE中国工程研发组准备了下面一系列针对J2SE各个方面的问题。希望能够通过这些问题得到中国Java用户对JDK的一些直接反馈和建议。 [FONT-COLOR=Red]不知道这次是SUN正的重视市场还是在做绣，我们拭目以待！等会仔细看看发布上来~~~[/FONT-COLOR] 请您将此调查问卷通过电子邮件寄回到ecommunity@prc.sun.com，即可收到我们寄送的一份精美礼品。 此调查问卷的电子版可以从http://gceclub.sun.com.cn/event/survey.txt下载。]]></description>
			<content:encoded><![CDATA[<p>Sun公司正在开始Java Standard Edition (JDK) 7 的实施计划工作。为了更充分和有效地听取广大中国Java用户对JDK特性的需求并将其纳入JDK 7 的计划中，J2SE中国工程研发组准备了下面一系列针对J2SE各个方面的问题。希望能够通过这些问题得到中国Java用户对JDK的一些直接反馈和建议。<br />
[FONT-COLOR=Red]不知道这次是SUN正的重视市场还是在做绣，我们拭目以待！等会仔细看看发布上来~~~[/FONT-COLOR]</p>
<p>请您将此调查问卷通过电子邮件寄回到ecommunity@prc.sun.com，即可收到我们寄送的一份精美礼品。<br />
此调查问卷的电子版可以从http://gceclub.sun.com.cn/event/survey.txt下载。<br />
<span id="more-324"></span><br />
Sun公司正在开始Java Standard Edition (JDK) 7 的实施计划工作。为了更充分和有效地听取广大中国Java用户对JDK特性的需求并将其纳入JDK 7 的计划中，J2SE中国工程研发组准备了下面一系列针对J2SE各个方面的问题。希望能够通过这些问题得到中国Java用户对JDK的一些直接反馈和建议。<br />
[FONT-COLOR=Red]不知道这次是SUN正的重视市场还是在做绣，我们拭目以待！等会仔细看看发布上来~~~[/FONT-COLOR]</p>
<p>请您将此调查问卷通过电子邮件寄回到ecommunity@prc.sun.com，即可收到我们寄送的一份精美礼品。<br />
此调查问卷的电子版可以从http://gceclub.sun.com.cn/event/survey.txt下载。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/324/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>禽流感(H5N1)相关防范知识</title>
		<link>http://welog.org/blog/323</link>
		<comments>http://welog.org/blog/323#comments</comments>
		<pubDate>Sat, 26 Nov 2005 00:14:21 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e7%a6%bd%e6%b5%81%e6%84%9fh5n1%e7%9b%b8%e5%85%b3%e9%98%b2%e8%8c%83%e7%9f%a5%e8%af%86/</guid>
		<description><![CDATA[(萨斯)还记忆犹新，现在又来了个禽流感。人类的确是越来越不堪一击了,从PLOD那看到禽流感PPT材料，大家有必要一阅，提高防范意识(全国有三例恶性安徽就有二例)。官方处理每次事件总是避免不了慢处理的弊病,也许这已成为一种习惯了。就像这次的[URL=http://www.xinhuanet.com/society/zt051124/]松花江水污染[/URL]问题，不想做过多的评论。只是希望在经过一次次的事件后能形成一个完善快速的应急机制，不过相比萨斯这次的禽流感疫情还算透明,这是我们希望看到的&#8230;.. PLOD提供的PPT文档：[URL=http://plod.popoever.com/upfiles/doc/051124/bird_flu_manual.rar]禽流感的介绍及预防[/URL] 解压密码: [FONT-COLOR=Red]plod.popoever.com[/FONT-COLOR] [FLASH=600,400,True]upload/qinliougan.swf[/FLASH] (萨斯)还记忆犹新，现在又来了个禽流感。人类的确是越来越不堪一击了,从PLOD那看到禽流感PPT材料，大家有必要一阅，提高防范意识(全国有三例恶性安徽就有二例)。官方处理每次事件总是避免不了慢处理的弊病,也许这已成为一种习惯了。就像这次的[URL=http://www.xinhuanet.com/society/zt051124/]松花江水污染[/URL]问题，不想做过多的评论。只是希望在经过一次次的事件后能形成一个完善快速的应急机制，不过相比萨斯这次的禽流感疫情还算透明,这是我们希望看到的&#8230;.. PLOD提供的PPT文档：[URL=http://plod.popoever.com/upfiles/doc/051124/bird_flu_manual.rar]禽流感的介绍及预防[/URL] 解压密码: [FONT-COLOR=Red]plod.popoever.com[/FONT-COLOR] [B]有关资料来自中国疾病预防控制中心。[/B]　　 　　[CODE_LITE]禽流感是由A型流感病毒引起的一种禽类传染病。禽流感病毒感染后可以表现为轻度的呼吸道症状、消化道症状，死亡率较低；或表现为较严重的全身性、出血性、败血性症状，死亡率较高。这种症状上的不同，主要是由禽流感病毒的毒力所决定的。 　　　　 　　什么是高致病性禽流感？ 　　　　 　　根据禽流感病毒致病性和毒力的不同，可以将禽流感分为高致病性禽流感、低致病性禽流感和无致病性禽流感。禽流感病毒有不同的亚型，由H5和H7亚型毒株（以H5N1和H7N7为代表）所引起的疾病称为高致病性禽流感（HPAI），最近国内外由H5N1亚型引起的禽流感即为高致病性禽流感，其发病率和死亡率都很高，危害巨大。 　　　　 　　禽流感是否列入一类传染病？ 　　　　 　　世界动物卫生组织（OIE）将高致病性禽流感列为A类传染病，我国将高致病性禽流感列入一类动物疫病病种名录。 　　　　 　　禽流感是一种新病吗？ 　　　　 　　禽流感不是一种新病，1878年首次报道了意大利鸡群暴发一种严重的疾病，当时称为鸡瘟。1955年才证实这种鸡瘟病毒实际上是A型禽流感病毒，1981年在第一次国际禽流感会议上正式命名为禽流感。现已证实禽流感病毒广泛分布于世界范围内的许多家禽，包括鸡、火鸡、珍珠鸡、石鸡、鹧鸪、鸵鸟、鸭、雉、鹌鹑、鸽、鹅和野禽（鸭、鹅、燕鸥、天鹅、鹭、海鸠、海鹦和鸥等）。其中，禽流感对家养的鸡和火鸡危害最为严重。近几年来，感染鸭也出现大批死亡。 　　　　 　　禽流感的历史如何？ 　　　　 　　1878年，禽流感在意大利首次暴发，人们开始认识这种极具杀伤力的传染病。此后一个多世纪，禽流感病毒不断地侵袭整个世界。特别是从上世纪90年代后期起，禽流感在欧亚大陆的暴发日趋频繁。这种病毒的肆虐不但给许多国家的家禽养殖业带来了沉重打击，同时也向人类的健康提出了新的严峻挑战。 　　　　 　　在有记载的禽病史上，在美洲、欧洲、亚洲、非洲、大洋洲的许多国家和地区都曾发生过禽流感疫情。 　　　　 　　20世纪90年代以前，暴发了8次禽流感，分别为苏格兰H5N1（1959年）、英国H7N3（1967年）、澳大利亚H7N7（1975年）、英国H5N2（1979年）、冰岛H5N8（1983年）、美国H5N2（1983年）、冰岛H5N1（1991年）等。 　　　　 　　此后，又暴发了4次禽流感，分别为澳大利亚H7N3和H7N7、巴基斯坦H7N3、墨西哥H5N2、意大利H7N1。 　　　　 　　禽流感的危害严重吗？ 　　　　 　　禽流感可以造成巨大的经济损失。 　　　　 　　1983—1984年在美国宾夕法尼亚和弗吉尼亚禽流感暴发造成4000万美元的损失。 　　　　 　　1994年墨西哥暴发的禽流感比1983年美国宾夕法尼亚州暴发的禽流感更复杂、更令人难忘。墨西哥在1981—1982年进行全国家禽的血清学调查中未发现禽流感病毒的感染，1994年5月发现了低致病力H5N2的流行，1995年1月突然变成高致病力毒株，并在普埃布拉州和克雷塔罗州流行，并迅速波及12个州。为了控制疫情，淘汰了1800万只鸡，封锁了3200万只鸡，对1.3亿万只鸡紧急接种疫苗，直接经济损失达10亿美元。 　　　　 　　1997年和2001年香港暴发的禽流感，特区政府先后耗资1.8亿港元，两次共扑杀了270万只鸡。 　　　　 　　2003年荷兰的禽流感是波及最广的暴发。2003年2月底，荷兰的6个农场暴发禽流感，到3月3日，有禽流感疫情的农场升至13家，是由高致病力毒株（H7N7）引起。此次疫情共有约900个农场内的1400万只家禽被隔离，1800多万只病鸡被宰杀。 　　　　 　　去年在亚洲多国发生的禽流感，导致近2亿只家禽被扑杀，给这些国家的养禽业造成了巨大经济损失。[/CODE_LITE]]]></description>
			<content:encoded><![CDATA[<p>(萨斯)还记忆犹新，现在又来了个禽流感。人类的确是越来越不堪一击了,从PLOD那看到禽流感PPT材料，大家有必要一阅，提高防范意识(全国有三例恶性安徽就有二例)。官方处理每次事件总是避免不了慢处理的弊病,也许这已成为一种习惯了。就像这次的[URL=http://www.xinhuanet.com/society/zt051124/]松花江水污染[/URL]问题，不想做过多的评论。只是希望在经过一次次的事件后能形成一个完善快速的应急机制，不过相比萨斯这次的禽流感疫情还算透明,这是我们希望看到的&#8230;..</p>
<p>PLOD提供的PPT文档：[URL=http://plod.popoever.com/upfiles/doc/051124/bird_flu_manual.rar]禽流感的介绍及预防[/URL]<br />
解压密码: [FONT-COLOR=Red]plod.popoever.com[/FONT-COLOR]<br />
<span id="more-323"></span><br />
[FLASH=600,400,True]upload/qinliougan.swf[/FLASH]<br />
(萨斯)还记忆犹新，现在又来了个禽流感。人类的确是越来越不堪一击了,从PLOD那看到禽流感PPT材料，大家有必要一阅，提高防范意识(全国有三例恶性安徽就有二例)。官方处理每次事件总是避免不了慢处理的弊病,也许这已成为一种习惯了。就像这次的[URL=http://www.xinhuanet.com/society/zt051124/]松花江水污染[/URL]问题，不想做过多的评论。只是希望在经过一次次的事件后能形成一个完善快速的应急机制，不过相比萨斯这次的禽流感疫情还算透明,这是我们希望看到的&#8230;..</p>
<p>PLOD提供的PPT文档：[URL=http://plod.popoever.com/upfiles/doc/051124/bird_flu_manual.rar]禽流感的介绍及预防[/URL]<br />
解压密码: [FONT-COLOR=Red]plod.popoever.com[/FONT-COLOR]</p>
<p>[B]有关资料来自中国疾病预防控制中心。[/B]　　<br />
　　[CODE_LITE]禽流感是由A型流感病毒引起的一种禽类传染病。禽流感病毒感染后可以表现为轻度的呼吸道症状、消化道症状，死亡率较低；或表现为较严重的全身性、出血性、败血性症状，死亡率较高。这种症状上的不同，主要是由禽流感病毒的毒力所决定的。<br />
　　　　<br />
　　什么是高致病性禽流感？<br />
　　　　<br />
　　根据禽流感病毒致病性和毒力的不同，可以将禽流感分为高致病性禽流感、低致病性禽流感和无致病性禽流感。禽流感病毒有不同的亚型，由H5和H7亚型毒株（以H5N1和H7N7为代表）所引起的疾病称为高致病性禽流感（HPAI），最近国内外由H5N1亚型引起的禽流感即为高致病性禽流感，其发病率和死亡率都很高，危害巨大。<br />
　　　　<br />
　　禽流感是否列入一类传染病？<br />
　　　　<br />
　　世界动物卫生组织（OIE）将高致病性禽流感列为A类传染病，我国将高致病性禽流感列入一类动物疫病病种名录。<br />
　　　　<br />
　　禽流感是一种新病吗？<br />
　　　　<br />
　　禽流感不是一种新病，1878年首次报道了意大利鸡群暴发一种严重的疾病，当时称为鸡瘟。1955年才证实这种鸡瘟病毒实际上是A型禽流感病毒，1981年在第一次国际禽流感会议上正式命名为禽流感。现已证实禽流感病毒广泛分布于世界范围内的许多家禽，包括鸡、火鸡、珍珠鸡、石鸡、鹧鸪、鸵鸟、鸭、雉、鹌鹑、鸽、鹅和野禽（鸭、鹅、燕鸥、天鹅、鹭、海鸠、海鹦和鸥等）。其中，禽流感对家养的鸡和火鸡危害最为严重。近几年来，感染鸭也出现大批死亡。<br />
　　　　<br />
　　禽流感的历史如何？<br />
　　　　<br />
　　1878年，禽流感在意大利首次暴发，人们开始认识这种极具杀伤力的传染病。此后一个多世纪，禽流感病毒不断地侵袭整个世界。特别是从上世纪90年代后期起，禽流感在欧亚大陆的暴发日趋频繁。这种病毒的肆虐不但给许多国家的家禽养殖业带来了沉重打击，同时也向人类的健康提出了新的严峻挑战。<br />
　　　　<br />
　　在有记载的禽病史上，在美洲、欧洲、亚洲、非洲、大洋洲的许多国家和地区都曾发生过禽流感疫情。<br />
　　　　<br />
　　20世纪90年代以前，暴发了8次禽流感，分别为苏格兰H5N1（1959年）、英国H7N3（1967年）、澳大利亚H7N7（1975年）、英国H5N2（1979年）、冰岛H5N8（1983年）、美国H5N2（1983年）、冰岛H5N1（1991年）等。<br />
　　　　<br />
　　此后，又暴发了4次禽流感，分别为澳大利亚H7N3和H7N7、巴基斯坦H7N3、墨西哥H5N2、意大利H7N1。<br />
　　　　<br />
　　禽流感的危害严重吗？<br />
　　　　<br />
　　禽流感可以造成巨大的经济损失。<br />
　　　　<br />
　　1983—1984年在美国宾夕法尼亚和弗吉尼亚禽流感暴发造成4000万美元的损失。<br />
　　　　<br />
　　1994年墨西哥暴发的禽流感比1983年美国宾夕法尼亚州暴发的禽流感更复杂、更令人难忘。墨西哥在1981—1982年进行全国家禽的血清学调查中未发现禽流感病毒的感染，1994年5月发现了低致病力H5N2的流行，1995年1月突然变成高致病力毒株，并在普埃布拉州和克雷塔罗州流行，并迅速波及12个州。为了控制疫情，淘汰了1800万只鸡，封锁了3200万只鸡，对1.3亿万只鸡紧急接种疫苗，直接经济损失达10亿美元。<br />
　　　　<br />
　　1997年和2001年香港暴发的禽流感，特区政府先后耗资1.8亿港元，两次共扑杀了270万只鸡。<br />
　　　　<br />
　　2003年荷兰的禽流感是波及最广的暴发。2003年2月底，荷兰的6个农场暴发禽流感，到3月3日，有禽流感疫情的农场升至13家，是由高致病力毒株（H7N7）引起。此次疫情共有约900个农场内的1400万只家禽被隔离，1800多万只病鸡被宰杀。<br />
　　　　<br />
　　去年在亚洲多国发生的禽流感，导致近2亿只家禽被扑杀，给这些国家的养禽业造成了巨大经济损失。[/CODE_LITE]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/323/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sun为Java Studio Creator制作的Falsh Demo</title>
		<link>http://welog.org/blog/322</link>
		<comments>http://welog.org/blog/322#comments</comments>
		<pubDate>Fri, 25 Nov 2005 09:29:41 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/sun%e4%b8%bajava-studio-creator%e5%88%b6%e4%bd%9c%e7%9a%84falsh-demo/</guid>
		<description><![CDATA[[IMG=400,300,title]http://developers.sun.com/prodtech/javatools/jscreator/reference/quicktour/img5.jpg[/IMG] 今天从SUN的网站上看到了关于Java Studio Creator的Flash Domo。从这个FLASH看的确很酷，同时它也正在诱惑我下载,不过昨晚的Solaris 10没有安装成功加上手头上一些事情没有忙完，等这些都结束了，一定得下载。如果真如他的DOMO上介绍的那样&#8230;.. [IMG=400,300,title]http://developers.sun.com/prodtech/javatools/jscreator/reference/quicktour/img5.jpg[/IMG] 今天从SUN的网站上看到了关于Java Studio Creator的Flash Domo。从这个FLASH看的确很酷，同时它也正在诱惑我下载,不过昨晚的Solaris 10没有安装成功加上手头上一些事情没有忙完，等这些都结束了，一定得下载。如果真如他的DOMO上介绍的那样&#8230;.. 它集成了JSF (Java Server Faces) 。其它的特色包括Drag and Drop,数据库连接, 服务器管理, 和JSP编辑。它有标准 HTML支持,和我们在DW编辑网页一样所见即所得。按DOMO上的演示基本和Visual Studio差不多了,让我感觉软件越发展越傻瓜化了，这恐怕就是人为什么越变越懒的原因&#8230;..哈哈 这个FLASH演示在这里:[URL=http://developers.sun.com/prodtech/javatools/jscreator/reference/quicktour/2/flash/index.html]Domo[/URL] 可在从这里下载：[URL=http://developers.sun.com/prodtech/javatools/free/index.html]Java Studio Creator[/URL] 今天修改了一下BLOG的样式（晕,都是零晨2:30了),从昨晚10点钟就开始折腾这个样式，一直到现在还有很多细部没有修改好！先到这里吧，有时间再花点时间将首页及内页的时间显示修改一下，CSS还是很不熟悉&#8230;&#8230;]]></description>
			<content:encoded><![CDATA[<p>[IMG=400,300,title]http://developers.sun.com/prodtech/javatools/jscreator/reference/quicktour/img5.jpg[/IMG]<br />
今天从SUN的网站上看到了关于Java Studio Creator的Flash Domo。从这个FLASH看的确很酷，同时它也正在诱惑我下载,不过昨晚的Solaris 10没有安装成功加上手头上一些事情没有忙完，等这些都结束了，一定得下载。如果真如他的DOMO上介绍的那样&#8230;..<br />
<span id="more-322"></span><br />
[IMG=400,300,title]http://developers.sun.com/prodtech/javatools/jscreator/reference/quicktour/img5.jpg[/IMG]<br />
今天从SUN的网站上看到了关于Java Studio Creator的Flash Domo。从这个FLASH看的确很酷，同时它也正在诱惑我下载,不过昨晚的Solaris 10没有安装成功加上手头上一些事情没有忙完，等这些都结束了，一定得下载。如果真如他的DOMO上介绍的那样&#8230;..<br />
它集成了JSF (Java Server Faces) 。其它的特色包括Drag and Drop,数据库连接, 服务器管理, 和JSP编辑。它有标准 HTML支持,和我们在DW编辑网页一样所见即所得。按DOMO上的演示基本和Visual Studio差不多了,让我感觉软件越发展越傻瓜化了，这恐怕就是人为什么越变越懒的原因&#8230;..哈哈</p>
<p>这个FLASH演示在这里:[URL=http://developers.sun.com/prodtech/javatools/jscreator/reference/quicktour/2/flash/index.html]Domo[/URL]<br />
可在从这里下载：[URL=http://developers.sun.com/prodtech/javatools/free/index.html]Java Studio Creator[/URL]</p>
<p>今天修改了一下BLOG的样式（晕,都是零晨2:30了),从昨晚10点钟就开始折腾这个样式，一直到现在还有很多细部没有修改好！先到这里吧，有时间再花点时间将首页及内页的时间显示修改一下，CSS还是很不熟悉&#8230;&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/322/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Notebook of $100!!!</title>
		<link>http://welog.org/blog/317</link>
		<comments>http://welog.org/blog/317#comments</comments>
		<pubDate>Sat, 19 Nov 2005 06:20:19 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/notebook-of-100/</guid>
		<description><![CDATA[[img]upload/laptop-side.jpg[/img] 刚从[URL=http://www.icebin.net/post/407.html]IceBin&#8217;s[/URL]看到[URL=http://laptop.media.mit.edu/]MIT多媒体实验室尼戈罗庞帝的100美元笔记本终于正式发布了[/URL]，这个[URL=http://news.chinabyte.com/216/2138716.shtml]消息[/URL]是“尼氏今年一月在达沃斯世界经济论坛上首次提出“每个儿童拥有笔记本”计划(One Laptop Per Child)。他说，麻省理工和他的非营利集团正在和巴西、中国、泰国、埃及和南非这五国讨论向儿童发放1500万套测试系统。” [img]upload/laptop-side.jpg[/img] 刚从[URL=http://www.icebin.net/post/407.html]IceBin&#8217;s[/URL]看到[URL=http://laptop.media.mit.edu/]MIT多媒体实验室尼戈罗庞帝的100美元笔记本终于正式发布了[/URL]，这个[URL=http://news.chinabyte.com/216/2138716.shtml]消息[/URL]是“尼氏今年一月在达沃斯世界经济论坛上首次提出“每个儿童拥有笔记本”计划(One Laptop Per Child)。他说，麻省理工和他的非营利集团正在和巴西、中国、泰国、埃及和南非这五国讨论向儿童发放1500万套测试系统。” [FONT-COLOR=Gray]100美元电脑的设计方案是:500MHz处理器、1GB内存和创新的双模式显示—既有全色彩显示模式，也有阳光下可读的黑白显示模式。尼氏说，显示器使电脑看上去像本电子书，又像是电脑。 　　该笔记本的电源可用市电、电池，或用连接在电脑上的发条曲轴，因为许多国家的边远地区没有电力。 　　机器将用Linux版操作系统，还有一些应用软件，其中有些是麻省理工的研究人员开发的，还有一些农村用特殊软件。 　　在连接方面，新系统将具Wi-Fi和手机连接能力，还有4个USB端口，还内置了P to P功能的“Mesh网络”，它可使用户共享单一的互联网连接。[/FONT-COLOR] [IMG]http://cn.engadget.com/images/2005/09/100note.jpg[/IMG] [IMG]http://cn.engadget.com/images/2005/11/laptop-crank.jpg[/IMG] 更多图片你可以看[[URL=http://cn.engadget.com/2005/11/17/MIT-100-usd-Laptop-Launch/]1[/URL]][[URL=http://laptop.media.mit.edu/news.html]2[/URL]][[URL=http://www.itu.int/wsis/plib/detail.asp?y=2005&#38;n=6265]3[/URL]]。 PS:问题是经济上是否可行？起码在中国，政府会为每个买不起电脑的孩子出800元钱吗？政府和孩子们会接受用Linux的电脑吗？从[URL=http://solidot.org/article.php/2005111616145030]Solidot[/URL]的这篇文章中大家应该也能知道政府是个什么态度!!!我当时就想过大家不用的586、PII等电脑其实捐到有的地方的中学，是非常好的教学工具。但是收集上来重新装系统，如果不想盗版，微软又不赞助的话，只能装LINUX了。而这个其实对教学来说更好，减少了很多游戏等对孩子的干扰。 就实用技能来说，用这样的电脑3年，他们能到任何地方找到一份谋生的工作。]]></description>
			<content:encoded><![CDATA[<p>[img]upload/laptop-side.jpg[/img]<br />
刚从[URL=http://www.icebin.net/post/407.html]IceBin&#8217;s[/URL]看到[URL=http://laptop.media.mit.edu/]MIT多媒体实验室尼戈罗庞帝的100美元笔记本终于正式发布了[/URL]，这个[URL=http://news.chinabyte.com/216/2138716.shtml]消息[/URL]是“尼氏今年一月在达沃斯世界经济论坛上首次提出“每个儿童拥有笔记本”计划(One Laptop Per Child)。他说，麻省理工和他的非营利集团正在和巴西、中国、泰国、埃及和南非这五国讨论向儿童发放1500万套测试系统。”<br />
<span id="more-317"></span><br />
[img]upload/laptop-side.jpg[/img]<br />
刚从[URL=http://www.icebin.net/post/407.html]IceBin&#8217;s[/URL]看到[URL=http://laptop.media.mit.edu/]MIT多媒体实验室尼戈罗庞帝的100美元笔记本终于正式发布了[/URL]，这个[URL=http://news.chinabyte.com/216/2138716.shtml]消息[/URL]是“尼氏今年一月在达沃斯世界经济论坛上首次提出“每个儿童拥有笔记本”计划(One Laptop Per Child)。他说，麻省理工和他的非营利集团正在和巴西、中国、泰国、埃及和南非这五国讨论向儿童发放1500万套测试系统。”</p>
<p>[FONT-COLOR=Gray]100美元电脑的设计方案是:500MHz处理器、1GB内存和创新的双模式显示—既有全色彩显示模式，也有阳光下可读的黑白显示模式。尼氏说，显示器使电脑看上去像本电子书，又像是电脑。<br />
　　该笔记本的电源可用市电、电池，或用连接在电脑上的发条曲轴，因为许多国家的边远地区没有电力。<br />
　　机器将用Linux版操作系统，还有一些应用软件，其中有些是麻省理工的研究人员开发的，还有一些农村用特殊软件。<br />
　　在连接方面，新系统将具Wi-Fi和手机连接能力，还有4个USB端口，还内置了P to P功能的“Mesh网络”，它可使用户共享单一的互联网连接。[/FONT-COLOR]</p>
<p>[IMG]http://cn.engadget.com/images/2005/09/100note.jpg[/IMG]<br />
[IMG]http://cn.engadget.com/images/2005/11/laptop-crank.jpg[/IMG]<br />
更多图片你可以看[[URL=http://cn.engadget.com/2005/11/17/MIT-100-usd-Laptop-Launch/]1[/URL]][[URL=http://laptop.media.mit.edu/news.html]2[/URL]][[URL=http://www.itu.int/wsis/plib/detail.asp?y=2005&amp;n=6265]3[/URL]]。</p>
<p>PS:问题是经济上是否可行？起码在中国，政府会为每个买不起电脑的孩子出800元钱吗？政府和孩子们会接受用Linux的电脑吗？从[URL=http://solidot.org/article.php/2005111616145030]Solidot[/URL]的这篇文章中大家应该也能知道政府是个什么态度!!!我当时就想过大家不用的586、PII等电脑其实捐到有的地方的中学，是非常好的教学工具。但是收集上来重新装系统，如果不想盗版，微软又不赞助的话，只能装LINUX了。而这个其实对教学来说更好，减少了很多游戏等对孩子的干扰。 就实用技能来说，用这样的电脑3年，他们能到任何地方找到一份谋生的工作。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/317/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Writing Obfuscated Code Using Java Generics</title>
		<link>http://welog.org/blog/316</link>
		<comments>http://welog.org/blog/316#comments</comments>
		<pubDate>Sat, 19 Nov 2005 05:49:53 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/writing-obfuscated-code-using-java-generics/</guid>
		<description><![CDATA[[img]upload/sun.gif[/img] 我们先从一个简单的例子开始。 import java.util.Collection; public class TestType { public static Collection myMethod(Collection a) { return a; } public static void main(String &#8230; args) { System.out.println(myMethod(&#8220;Hello World&#8221;)); } } [img]upload/sun.gif[/img] 我们先从一个简单的例子开始。 import java.util.Collection; public class TestType { public static Collection myMethod(Collection a) { return a; } public static void main(String &#8230; args) { System.out.println(myMethod(&#8220;Hello World&#8221;)); } [...]]]></description>
			<content:encoded><![CDATA[<p>[img]upload/sun.gif[/img]<br />
我们先从一个简单的例子开始。<br />
import java.util.Collection;<br />
public class TestType {<br />
  public static  Collection myMethod(Collection a) {<br />
    return a;<br />
  }<br />
  public static void main(String &#8230; args) {<br />
    System.out.println(myMethod(&#8220;Hello World&#8221;));<br />
  }<br />
}<br />
<span id="more-316"></span><br />
[img]upload/sun.gif[/img]<br />
我们先从一个简单的例子开始。<br />
import java.util.Collection;<br />
public class TestType {<br />
  public static  Collection myMethod(Collection a) {<br />
    return a;<br />
  }<br />
  public static void main(String &#8230; args) {<br />
    System.out.println(myMethod(&#8220;Hello World&#8221;));<br />
  }<br />
}<br />
[I]Note:[/I]<br />
·1.这个[I]import[/I]很明显地不需要被声明,但在这里它被增加了。<br />
·2.是, 这个代码可以编写并被运行。</p>
<p>我们能从这个简单的例子中学会什么:<br />
·1.是的, 你能使用任一个合法的标识符作为型名字;不需要插入泛味的SUN规定T, K &amp; v。<br />
·2.别使用一个现有类名字当型标识符。它可能严重影响你的代码。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/316/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>善用QQ远程控制!</title>
		<link>http://welog.org/blog/315</link>
		<comments>http://welog.org/blog/315#comments</comments>
		<pubDate>Fri, 18 Nov 2005 06:13:52 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%96%84%e7%94%a8qq%e8%bf%9c%e7%a8%8b%e6%8e%a7%e5%88%b6/</guid>
		<description><![CDATA[虽然现在很少用到QQ,不因为别的,实在受不了QQ那庞大的身躯及忍无可忍的登陆速度!但QQ提供的远程控制功能还是能很方便的帮你解决问题,虽然也可以使用WINDOWS的桌面软件或其它的控制软件,都没有这个来得方便!早上远在福州的朋友发来求救短信:报告电脑中了很严重的病毒,让我帮之解决!为了不多浪费口水就想起了QQ的这个远程控制功能,非常方便就直接控制起他的电脑.在经过一段斗争后,最终帮他清除了那台中了[URL=http://it.rising.com.cn/antivirus/viruslore/virus071.htm]十月病毒排[/URL]行10名中的前五位&#8230;汗(他的电脑也可以进入10月中毒最多的电脑了)!在朋友感激的表情中狠他安全措施严重不到位，之后帮他打上补定整理一下电脑收工&#8230;. 问题虽然解决了,但发现自己对很多常用的计算机端口的用途都忘记了，Google了一下找到了一份完整的计算机端口详细介绍，收藏在这里以备后用!~~~~~ 虽然现在很少用到QQ,不因为别的,实在受不了QQ那庞大的身躯及忍无可忍的登陆速度!但QQ提供的远程控制功能还是能很方便的帮你解决问题,虽然也可以使用WINDOWS的桌面软件或其它的控制软件,都没有这个来得方便!早上远在福州的朋友发来求救短信:报告电脑中了很严重的病毒,让我帮之解决!为了不多浪费口水就想起了QQ的这个远程控制功能,非常方便就直接控制起他的电脑,倒让朋友一头雾水．在经过一段斗争后,最终帮他清除了那台中了[URL=http://it.rising.com.cn/antivirus/viruslore/virus071.htm]十月病毒排[/URL]行10名中的前五位&#8230;汗(他的电脑也可以进入10月中毒最多的电脑了)!在朋友感激的表情中狠批他安全措施严重不到位，之后帮他打上补定整理一下电脑收工&#8230;. 问题虽然解决了,但发现自己对很多常用的计算机端口的用途都忘记了，Google了一下找到了一份完整的计算机端口详细介绍，收藏在这里以备后用!~~~~~ 计算机端口介绍 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 端口：0 服务：Reserved 说明：通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口，当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描，使用IP地址为0.0.0.0，设置ACK位并在以太网层广播。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 端口：1 服务：tcpmux 说明：这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者，默认情况下tcpmux在这种系统中被打开。Irix机器在发布是含有几个默认的无密码的帐户，如：IP、GUEST UUCP、NUUCP、DEMOS 、TUTOR、DIAG、OUTOFBOX等。许多管理员在安装后忘记删除这些帐户。因此HACKER在INTERNET上搜索tcpmux并利用这些帐户。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 端口：7 服务：Echo 说明：能看到许多人搜索Fraggle放大器时，发送到X.X.X.0和X.X.X.255的信息。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 端口：19 服务：Character Generator 说明：这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时会发送含有垃圾字符的数据流直到连接关闭。HACKER利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。同样Fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包，受害者为了回应这些数据而过载。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 端口：21 服务：FTP 说明：FTP服务器所开放的端口，用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 端口：22 服务：Ssh 说明：PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点，如果配置成特定的模式，许多使用RSAREF库的版本就会有不少的漏洞存在。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 端口：23 服务：Telnet 说明：远程登录，入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术，入侵者也会找到密码。木马Tiny Telnet Server就开放这个端口。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 端口：25 服务：SMTP 说明：SMTP服务器所开放的端口，用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭，他们需要连接到高带宽的E-MAIL服务器上，将简单的信息传递到不同的地址。木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 端口：31 服务：MSG Authentication [...]]]></description>
			<content:encoded><![CDATA[<p>虽然现在很少用到QQ,不因为别的,实在受不了QQ那庞大的身躯及忍无可忍的登陆速度!但QQ提供的远程控制功能还是能很方便的帮你解决问题,虽然也可以使用WINDOWS的桌面软件或其它的控制软件,都没有这个来得方便!早上远在福州的朋友发来求救短信:报告电脑中了很严重的病毒,让我帮之解决!为了不多浪费口水就想起了QQ的这个远程控制功能,非常方便就直接控制起他的电脑.在经过一段斗争后,最终帮他清除了那台中了[URL=http://it.rising.com.cn/antivirus/viruslore/virus071.htm]十月病毒排[/URL]行10名中的前五位&#8230;汗(他的电脑也可以进入10月中毒最多的电脑了)!在朋友感激的表情中狠他安全措施严重不到位，之后帮他打上补定整理一下电脑收工&#8230;.<br />
问题虽然解决了,但发现自己对很多常用的计算机端口的用途都忘记了，Google了一下找到了一份完整的计算机端口详细介绍，收藏在这里以备后用!~~~~~<br />
<span id="more-315"></span><br />
虽然现在很少用到QQ,不因为别的,实在受不了QQ那庞大的身躯及忍无可忍的登陆速度!但QQ提供的远程控制功能还是能很方便的帮你解决问题,虽然也可以使用WINDOWS的桌面软件或其它的控制软件,都没有这个来得方便!早上远在福州的朋友发来求救短信:报告电脑中了很严重的病毒,让我帮之解决!为了不多浪费口水就想起了QQ的这个远程控制功能,非常方便就直接控制起他的电脑,倒让朋友一头雾水．在经过一段斗争后,最终帮他清除了那台中了[URL=http://it.rising.com.cn/antivirus/viruslore/virus071.htm]十月病毒排[/URL]行10名中的前五位&#8230;汗(他的电脑也可以进入10月中毒最多的电脑了)!在朋友感激的表情中狠批他安全措施严重不到位，之后帮他打上补定整理一下电脑收工&#8230;.<br />
问题虽然解决了,但发现自己对很多常用的计算机端口的用途都忘记了，Google了一下找到了一份完整的计算机端口详细介绍，收藏在这里以备后用!~~~~~</p>
<p>计算机端口介绍<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：0<br />
服务：Reserved<br />
说明：通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口，当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描，使用IP地址为0.0.0.0，设置ACK位并在以太网层广播。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>端口：1<br />
服务：tcpmux<br />
说明：这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者，默认情况下tcpmux在这种系统中被打开。Irix机器在发布是含有几个默认的无密码的帐户，如：IP、GUEST UUCP、NUUCP、DEMOS 、TUTOR、DIAG、OUTOFBOX等。许多管理员在安装后忘记删除这些帐户。因此HACKER在INTERNET上搜索tcpmux并利用这些帐户。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：7<br />
服务：Echo<br />
说明：能看到许多人搜索Fraggle放大器时，发送到X.X.X.0和X.X.X.255的信息。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：19<br />
服务：Character Generator<br />
说明：这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时会发送含有垃圾字符的数据流直到连接关闭。HACKER利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。同样Fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包，受害者为了回应这些数据而过载。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：21<br />
服务：FTP<br />
说明：FTP服务器所开放的端口，用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：22<br />
服务：Ssh<br />
说明：PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点，如果配置成特定的模式，许多使用RSAREF库的版本就会有不少的漏洞存在。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：23<br />
服务：Telnet<br />
说明：远程登录，入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术，入侵者也会找到密码。木马Tiny Telnet Server就开放这个端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：25<br />
服务：SMTP<br />
说明：SMTP服务器所开放的端口，用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭，他们需要连接到高带宽的E-MAIL服务器上，将简单的信息传递到不同的地址。木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：31<br />
服务：MSG Authentication<br />
说明：木马Master Paradise、Hackers Paradise开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：42<br />
服务：WINS Replication<br />
说明：WINS复制<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：53<br />
服务：Domain Name Server（DNS）<br />
说明：DNS服务器所开放的端口，入侵者可能是试图进行区域传递（TCP），欺骗DNS（UDP）或隐藏其他的通信。因此防火墙常常过滤或记录此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：67<br />
服务：Bootstrap Protocol Server<br />
说明：通过DSL和Cable modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址。HACKER常进入它们，分配一个地址把自己作为局部路由器而发起大量中间人（man-in-middle）攻击。客户端向68端口广播请求配置，服务器向67端口广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的IP地址。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：69<br />
服务：Trival File Transfer<br />
说明：许多服务器与bootp一起提供这项服务，便于从系统下载启动代码。但是它们常常由于错误配置而使入侵者能从系统中窃取任何 文件。它们也可用于系统写入文件。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：79<br />
服务：Finger Server<br />
说明：入侵者用于获得用户信息，查询操作系统，探测已知的缓冲区溢出错误，回应从自己机器到其他机器Finger扫描。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：80<br />
服务：HTTP<br />
说明：用于网页浏览。木马Executor开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：99<br />
服务：Metagram Relay<br />
说明：后门程序ncx99开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：102<br />
服务：Message transfer agent(MTA)-X.400 over TCP/IP<br />
说明：消息传输代理。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：109<br />
服务：Post Office Protocol -Version3<br />
说明：POP3服务器开放此端口，用于接收邮件，客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交 换缓冲区溢出的弱点至少有20个，这意味着入侵者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：110<br />
服务：SUN公司的RPC服务所有端口<br />
说明：常见RPC服务有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：113<br />
服务：Authentication Service<br />
说明：这是一个许多计算机上运行的协议，用于鉴别TCP连接的用户。使用标准的这种服务可以获得许多计算机的信息。但是它可作为许多服务的记录器，尤其是FTP、POP、IMAP、SMTP和IRC等服务。通常如果有许多客户通过防火墙访问这些服务，将会看到许多这个端口的连接请求。记住，如果阻断这个端口客户端会感觉到在防火墙另一边与E-MAIL服务器的缓慢连接。许多防火墙支持TCP连接的阻断过程中发回RST。这将会停止缓慢的连接。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：119<br />
服务：Network News Transfer Protocol<br />
说明：NEWS新闻组传输协议，承载USENET通信。这个端口的连接通常是人们在寻找USENET服务器。多数ISP限制，只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子，访问被限制的新闻组服务器，匿名发帖或发送SPAM。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：135<br />
服务：Location Service<br />
说明：Microsoft在这个端口运行DCE RPC end-point mapper为它的DCOM服务。这与UNIX 111端口的功能很相似。使用DCOM和RPC的服务利用计算机上的end-point mapper注册它们的位置。远端客户连接到计算机时，它们查找end-point mapper找到服务的位置。HACKER扫描计算机的这个端口是为了找到这个计算机上运行Exchange Server吗？什么版本？还有些DOS攻击直接针对这个端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：137、138、139<br />
服务：NETBIOS Name Service<br />
说明：其中137、138是UDP端口，当通过网上邻居传输文件时用这个端口。而139端口：通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINS Regisrtation也用它。<br />
端口：143<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
服务：Interim Mail Access Protocol v2<br />
说明：和POP3的安全问题一样，许多IMAP服务器存在有缓冲区溢出漏洞。记住：一种LINUX蠕虫（admv0rm）会通过这个端口繁殖，因此许多这个端口的扫描来自不知情的已经被感染的用户。当REDHAT在他们的LINUX发布版本中默认允许IMAP后，这些漏洞变的很流行。这一端口还被用于IMAP2，但并不流行。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：161<br />
服务：SNMP<br />
说明：SNMP允许远程管理设备。所有配置和运行信息的储存在数据库中，通过SNMP可获得这些信息。许多管理员的错误配置将被暴露在Internet。Cackers将试图使用默认的密码public、private访问系统。他们可能会试验所有可能的组合。SNMP包可能会被错误的指向用户的网络。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：177<br />
服务：X Display Manager Control Protocol<br />
说明：许多入侵者通过它访问X-windows操作台，它同时需要打开6000端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：389<br />
服务：LDAP、ILS<br />
说明：轻型目录访问协议和NetMeeting Internet Locator Server共用这一端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：443<br />
服务：Https<br />
说明：网页浏览端口，能提供加密和通过安全端口传输的另一种HTTP。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：456<br />
服务：[NULL]<br />
说明：木马HACKERS PARADISE开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：513<br />
服务：Login,remote login<br />
说明：是从使用cable modem或DSL登陆到子网中的UNIX计算机发出的广播。这些人为入侵者进入他们的系统提供了信息。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：544<br />
服务：[NULL]<br />
说明：kerberos kshell<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：548<br />
服务：Macintosh,File Services(AFP/IP)<br />
说明：Macintosh,文件服务。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：553<br />
服务：CORBA IIOP （UDP）<br />
说明：使用cable modem、DSL或VLAN将会看到这个端口的广播。CORBA是一种面向对象的RPC系统。入侵者可以利用这些信息进入系统。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：555<br />
服务：DSF<br />
说明：木马PhAse1.0、Stealth Spy、IniKiller开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：568<br />
服务：Membership DPA<br />
说明：成员资格 DPA。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：569<br />
服务：Membership MSN<br />
说明：成员资格 MSN。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：635<br />
服务：mountd<br />
说明：Linux的mountd Bug。这是扫描的一个流行BUG。大多数对这个端口的扫描是基于UDP的，但是基于TCP的mountd有所增加（mountd同时运行于两个端口）。记住mountd可运行于任何端口（到底是哪个端口，需要在端口111做portmap查询），只是Linux默认端口是635，就像NFS通常运行于2049端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：636<br />
服务：LDAP<br />
说明：SSL（Secure Sockets layer）<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：666<br />
服务：Doom Id Software<br />
说明：木马Attack FTP、Satanz Backdoor开放此端口<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：993<br />
服务：IMAP<br />
说明：SSL（Secure Sockets layer）<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1001、1011<br />
服务：[NULL]<br />
说明：木马Silencer、WebEx开放1001端口。木马Doly Trojan开放1011端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1024<br />
服务：Reserved<br />
说明：它是动态端口的开始，许多程序并不在乎用哪个端口连接网络，它们请求系统为它们分配下一个闲置端口。基于这一点分配从端口1024开始。这就是说第一个向系统发出请求的会分配到1024端口。你可以重启机器，打开Telnet，再打开一个窗口运行natstat -a 将会看到Telnet被分配1024端口。还有SQL session也用此端口和5000端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1025、1033<br />
服务：1025：network blackjack 1033：[NULL]<br />
说明：木马netspy开放这2个端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1080<br />
服务：SOCKS<br />
说明：这一协议以通道方式穿过防火墙，允许防火墙后面的人通过一个IP地址访问INTERNET。理论上它应该只允许内部的通信向外到达INTERNET。但是由于错误的配置，它会允许位于防火墙外部的攻击穿过防火墙。WinGate常会发生这种错误，在加入IRC聊天室时常会看到这种情况。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1170<br />
服务：[NULL]<br />
说明：木马Streaming Audio Trojan、Psyber Stream Server、Voice开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1234、1243、6711、6776<br />
服务：[NULL]<br />
说明：木马SubSeven2.0、Ultors Trojan开放1234、6776端口。木马SubSeven1.0/1.9开放1243、6711、6776端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1245<br />
服务：[NULL]<br />
说明：木马Vodoo开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1433<br />
服务：SQL<br />
说明：Microsoft的SQL服务开放的端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1492<br />
服务：stone-design-1<br />
说明：木马FTP99CMP开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1500<br />
服务：RPC client fixed port session queries<br />
说明：RPC客户固定端口会话查询<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1503<br />
服务：NetMeeting T.120<br />
说明：NetMeeting T.120<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1524<br />
服务：ingress<br />
说明：许多攻击脚本将安装一个后门SHELL于这个端口，尤其是针对SUN系统中Sendmail和RPC服务漏洞的脚本。如果刚安装了防火墙就看到在这个端口上的连接企图，很可能是上述原因。可以试试Telnet到用户的计算机上的这个端口，看看它是否会给你一个SHELL。连接到600/pcserver也存在这个问题。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1600<br />
服务：issd<br />
说明：木马Shivka-Burka开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1720<br />
服务：NetMeeting<br />
说明：NetMeeting H.233 call Setup。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1731<br />
服务：NetMeeting Audio Call Control<br />
说明：NetMeeting音频调用控制。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1807<br />
服务：[NULL]<br />
说明：木马SpySender开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1981<br />
服务：[NULL]<br />
说明：木马ShockRave开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1999<br />
服务：cisco identification port<br />
说明：木马BackDoor开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：2000<br />
服务：[NULL]<br />
说明：木马GirlFriend 1.3、Millenium 1.0开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：2001<br />
服务：[NULL]<br />
说明：木马Millenium 1.0、Trojan Cow开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：2023<br />
服务：xinuexpansion 4<br />
说明：木马Pass Ripper开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：2049<br />
服务：NFS<br />
说明：NFS程序常运行于这个端口。通常需要访问Portmapper查询这个服务运行于哪个端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：2115<br />
服务：[NULL]<br />
说明：木马Bugs开放此端口。</p>
<p>端口：2140、3150<br />
服务：[NULL]<br />
说明：木马Deep Throat 1.0/3.0开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：2500<br />
服务：RPC client using a fixed port session replication<br />
说明：应用固定端口会话复制的RPC客户<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：2583<br />
服务：[NULL]<br />
说明：木马Wincrash 2.0开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：2801<br />
服务：[NULL]<br />
说明：木马Phineas Phucker开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：3024、4092<br />
服务：[NULL]<br />
说明：木马WinCrash开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：3128<br />
服务：squid<br />
说明：这是squid HTTP代理服务器的默认端口。攻击者扫描这个端口是为了搜寻一个代理服务器而匿名访问Internet。也会看到搜索其他代理服务器的端口8000、8001、8080、8888。扫描这个端口的另一个原因是用户正在进入聊天室。其他用户也会检验这个端口以确定用户的机器是否支持代理。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：3129<br />
服务：[NULL]<br />
说明：木马Master Paradise开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：3150<br />
服务：[NULL]<br />
说明：木马The Invasor开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：3210、4321<br />
服务：[NULL]<br />
说明：木马SchoolBus开放此端口<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：3333<br />
服务：dec-notes<br />
说明：木马Prosiak开放此端口<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：3389<br />
服务：超级终端<br />
说明：WINDOWS 2000终端开放此端口。<br />
端口：3700<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
服务：[NULL]<br />
说明：木马Portal of Doom开放此端口<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：3996、4060<br />
服务：[NULL]<br />
说明：木马RemoteAnything开放此端口<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：4000<br />
服务：QQ客户端<br />
说明：腾讯QQ客户端开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：4092<br />
服务：[NULL]<br />
说明：木马WinCrash开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：4590<br />
服务：[NULL]<br />
说明：木马ICQTrojan开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：5000、5001、5321、50505<br />
服务：[NULL]<br />
说明：木马blazer5开放5000端口。木马Sockets de Troie开放5000、5001、5321、50505端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：5400、5401、5402<br />
服务：[NULL]<br />
说明：木马Blade Runner开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：5550<br />
服务：[NULL]<br />
说明：木马xtcp开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：5569<br />
服务：[NULL]<br />
说明：木马Robo-Hack开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：5632<br />
服务：pcAnywere<br />
说明：有时会看到很多这个端口的扫描，这依赖于用户所在的位置。当用户打开pcAnywere时，它会自动扫描局域网C类网以寻找可能的代理（这里的代理是指agent而不是proxy）。入侵者也会寻找开放这种服务的计算机。，所以应该查看这种扫描的源地址。一些搜寻pcAnywere的扫描包常含端口22的UDP数据包。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：5742<br />
服务：[NULL]<br />
说明：木马WinCrash1.03开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：6267<br />
服务：[NULL]<br />
说明：木马广外女生开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：6400<br />
服务：[NULL]<br />
说明：木马The tHing开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：6670、6671<br />
服务：[NULL]<br />
说明：木马Deep Throat开放6670端口。而Deep Throat 3.0开放6671端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：6883<br />
服务：[NULL]<br />
说明：木马DeltaSource开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：6969<br />
服务：[NULL]<br />
说明：木马Gatecrasher、Priority开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：6970<br />
服务：RealAudio<br />
说明：RealAudio客户将从服务器的6970-7170的UDP端口接收音频数据流。这是由TCP-7070端口外向控制连接设置的。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：7000<br />
服务：[NULL]<br />
说明：木马Remote Grab开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：7300、7301、7306、7307、7308<br />
服务：[NULL]<br />
说明：木马NetMonitor开放此端口。另外NetSpy1.0也开放7306端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：7323<br />
服务：[NULL]<br />
说明：Sygate服务器端。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：7626<br />
服务：[NULL]<br />
说明：木马Giscier开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：7789<br />
服务：[NULL]<br />
说明：木马ICKiller开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：8000<br />
服务：OICQ<br />
说明：腾讯QQ服务器端开放此端口。 &#8216;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：8010<br />
服务：Wingate<br />
说明：Wingate代理开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：8080<br />
服务：代理端口<br />
说明：WWW代理开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：9400、9401、9402<br />
服务：[NULL]<br />
说明：木马Incommand 1.0开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：9872、9873、9874、9875、10067、10167<br />
服务：[NULL]<br />
说明：木马Portal of Doom开放此端口<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：9989<br />
服务：[NULL]<br />
说明：木马iNi-Killer开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：11000<br />
服务：[NULL]<br />
说明：木马SennaSpy开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：11223<br />
服务：[NULL]<br />
说明：木马Progenic trojan开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：12076、61466<br />
服务：[NULL]<br />
说明：木马Telecommando开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：12223<br />
服务：[NULL]<br />
说明：木马Hack&#8217;99 KeyLogger开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：12345、12346<br />
服务：[NULL]<br />
说明：木马NetBus1.60/1.70、GabanBus开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：12361<br />
服务：[NULL]<br />
说明：木马Whack-a-mole开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：13223<br />
服务：PowWow<br />
说明：PowWow是Tribal Voice的聊天程序。它允许用户在此端口打开私人聊天的连接。这一程序对于建立连接非常具有攻击性。它会驻扎在这个TCP端口等回应。造成类似心跳间隔的连接请求。如果一个拨号用户从另一个聊天者手中继承了IP地址就会发生好象有很多不同的人在测试这个端口的情况。这一协议使用OPNG作为其连接请求的前4个字节。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：16969<br />
服务：[NULL]<br />
说明：木马Priority开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：17027<br />
服务：Conducent<br />
说明：这是一个外向连接。这是由于公司内部有人安装了带有Conducent&#8221;adbot&#8221;的共享软件。Conducent&#8221;adbot&#8221;是为共享软件显示广告服务的。使用这种服务的一种流行的软件是Pkware。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：19191<br />
服务：[NULL]<br />
说明：木马蓝色火焰开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：20000、20001<br />
服务：[NULL]<br />
说明：木马Millennium开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：20034<br />
服务：[NULL]<br />
说明：木马NetBus Pro开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：21554<br />
服务：[NULL]<br />
说明：木马GirlFriend开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：22222<br />
服务：[NULL]<br />
说明：木马Prosiak开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：23456<br />
服务：[NULL]<br />
说明：木马Evil FTP、Ugly FTP开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：26274、47262<br />
服务：[NULL]<br />
说明：木马Delta开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：27374<br />
服务：[NULL]<br />
说明：木马Subseven 2.1开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：30100<br />
服务：[NULL]<br />
说明：木马NetSphere开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：30303<br />
服务：[NULL]<br />
说明：木马Socket23开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：30999<br />
服务：[NULL]<br />
说明：木马Kuang开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：31337、31338<br />
服务：[NULL]<br />
说明：木马BO(Back Orifice)开放此端口。另外木马DeepBO也开放31338端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：31339<br />
服务：[NULL]<br />
说明：木马NetSpy DK开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：31666<br />
服务：[NULL]<br />
说明：木马BOWhack开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：33333<br />
服务：[NULL]<br />
说明：木马Prosiak开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：34324<br />
服务：[NULL]<br />
说明：木马Tiny Telnet Server、BigGluck、TN开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：40412<br />
服务：[NULL]<br />
说明：木马The Spy开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：40421、40422、40423、40426、<br />
服务：[NULL]<br />
说明：木马Masters Paradise开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：43210、54321<br />
服务：[NULL]<br />
说明：木马SchoolBus 1.0/2.0开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：44445<br />
服务：[NULL]<br />
说明：木马Happypig开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：50766<br />
服务：[NULL]<br />
说明：木马Fore开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：53001<br />
服务：[NULL]<br />
说明：木马Remote Windows Shutdown开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：65000<br />
服务：[NULL]<br />
说明：木马Devil 1.03开放此端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：88<br />
说明：Kerberos krb5。另外TCP的88端口也是这个用途。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：137<br />
说明：SQL Named Pipes encryption over other protocols name lookup(其他协议名称查找上的SQL命名管道加密技术)和SQL RPC encryption over other protocols name lookup(其他协议名称查找上的SQL RPC加密技术)和Wins NetBT name service(WINS NetBT名称服务)和Wins Proxy都用这个端口。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：161<br />
说明：Simple Network Management Protocol(SMTP)（简单网络管理协议）<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：162<br />
说明：SNMP Trap（SNMP陷阱）<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：445<br />
说明：Common Internet File System(CIFS)（公共Internet文件系统）<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：464<br />
说明：Kerberos kpasswd(v5)。另外TCP的464端口也是这个用途。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：500<br />
说明：Internet Key Exchange(IKE)（Internet密钥交换）<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1645、1812<br />
说明：Remot Authentication Dial-In User Service(RADIUS)authentication(Routing and Remote Access)(远程认证拨号用户服务)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1646、1813<br />
说明：RADIUS accounting(Routing and Remote Access)(RADIUS记帐（路由和远程访问）)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1701<br />
说明：Layer Two Tunneling Protocol(L2TP)(第2层隧道协议)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：1801、3527<br />
说明：Microsoft Message Queue Server(Microsoft消息队列服务器)。还有TCP的135、1801、2101、2103、2105也是同样的用途。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
端口：2504<br />
说明：Network Load Balancing(网络平衡负荷)<br />
0 通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口，当你试图使用一种通常的闭合端口<br />
连接它时将产生不同的结果。一种典型的扫描：使用IP地址为0.0.0.0，设置ACK位并在以太网层广播。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/315/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Netbeans5.0 Beat2 发布!</title>
		<link>http://welog.org/blog/314</link>
		<comments>http://welog.org/blog/314#comments</comments>
		<pubDate>Thu, 17 Nov 2005 06:34:19 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/netbeans50-beat2-%e5%8f%91%e5%b8%83/</guid>
		<description><![CDATA[[img]upload/netbeans.gif[/img]Netbeans5.0在今天又推出了他的第二个beta2版,相关的介绍我在之前的[1]中有提到,这里就不多细说了,从我目前使用过程中还没有这个beta版的新特性,有待继续发现..Netbeans5.0的正式版将于2006年一月推出，相磁的BUG如果顺得解决，相信Netbeans5.0应该是个很值得期待的IDE&#8230;&#8230; [img]upload/netbeans.gif[/img]Netbeans5.0在今天又推出了他的第二个beta2版,相关的介绍我在之前的[1]中有提到,这里就不多细说了,从我目前使用过程中还没有这个beta版的新特性,有待继续发现..Netbeans5.0的正式版将于2006年一月推出，相磁的BUG如果顺得解决，相信Netbeans5.0应该是个很值得期待的IDE&#8230;&#8230;..相关的特性如下:Developing NetBeans Modules Matisse GUI Builder Servers Web Frameworks Web Services Editor Enhancements Code Completion RefactoringVersion Control Debugging Other Usability Improvements New NetBeans Add-on Packs PTW:今天发现了著名的程序人蔡学鏞先生的blog(慾望‧程式,不过大陆这边好像不能访问)及在天龙资讯上的专栏书评，早在去年就拜读过蔡学鏞先生的爪哇夜未眠,JAVA深入浅出,受益非浅！之后也在CSDN上也经常能看到他的文章，不过基本上都是以前的作品！前天无意间从一个网站上看到了他的专栏书评(具体是哪个网站我记不清楚了)，虽然他评论的书籍很多我都没有看过，但为经后的学习提供了很大的帮助！！！！]]></description>
			<content:encoded><![CDATA[<p>[img]upload/netbeans.gif[/img]<br />Netbeans5.0在今天又推出了他的第二个beta2版,相关的介绍我在之前的[<a href="http://www.blueclassic.net/post/NetBeans_5.0.html">1</a>]中有提到,这里就不多细说了,从我目前使用过程中还没有这个beta版的新特性,有待继续发现..Netbeans5.0的正式版将于2006年一月推出，相磁的BUG如果顺得解决，相信Netbeans5.0应该是个很值得期待的IDE&#8230;&#8230;<br />
<span id="more-314"></span><br />
[img]upload/netbeans.gif[/img]<br />Netbeans5.0在今天又推出了他的第二个beta2版,相关的介绍我在之前的[<a href="http://www.blueclassic.net/post/NetBeans_5.0.html">1</a>]中有提到,这里就不多细说了,从我目前使用过程中还没有这个beta版的新特性,有待继续发现..Netbeans5.0的正式版将于2006年一月推出，相磁的BUG如果顺得解决，相信Netbeans5.0应该是个很值得期待的IDE&#8230;&#8230;..<br />相关的特性如下:<br /><a href="http://www.netbeans.org/community/releases/50/#creating"><strong><font color="#045491">Developing NetBeans Modules</font></strong></a> <br /><a href="http://www.netbeans.org/community/releases/50/#matisse"><strong><font color="#045491">Matisse GUI Builder</font></strong></a> <br /><a href="http://www.netbeans.org/community/releases/50/#servers"><strong><font color="#045491">Servers</font></strong></a> <br /><a href="http://www.netbeans.org/community/releases/50/#webframeworks"><strong><font color="#045491">Web Frameworks</font></strong></a> <br /><a href="http://www.netbeans.org/community/releases/50/#services"><strong><font color="#045491">Web Services</font></strong></a> <br /><a href="http://www.netbeans.org/community/releases/50/#editor"><strong><font color="#045491">Editor Enhancements</font></strong></a> <br /><a href="http://www.netbeans.org/community/releases/50/#completion"><strong><font color="#045491">Code Completion</font></strong></a> <br /><a href="http://www.netbeans.org/community/releases/50/#RF"><strong><font color="#045491">Refactoring</font></strong></a><br /><a href="http://www.netbeans.org/community/releases/50/#versioning"><strong><font color="#045491">Version Control</font></strong></a> <br /><a href="http://www.netbeans.org/community/releases/50/#debugging"><strong><font color="#045491">Debugging</font></strong></a> <br /><a href="http://www.netbeans.org/community/releases/50/#ui"><strong><font color="#045491">Other Usability Improvements</font></strong></a> <br /><a href="http://www.netbeans.org/community/releases/50/#addon"><strong><font color="#045491">New NetBeans Add-on Packs</font></strong></a> </p>
<p>PTW:今天发现了著名的程序人蔡学鏞先生的blog(<a href="http://city.udn.com/blog?JerryTsai">慾望‧程式</a>,不过大陆这边好像不能访问)及在天龙资讯上的<a href="https://web.tenlong.com.tw/Read/read.php">专栏书评</a>，早在去年就拜读过蔡学鏞先生的<a href="http://www.oreilly.com.tw/product_java.php?id=a105">爪哇夜未眠</a>,JAVA深入浅出,受益非浅！之后也在CSDN上也经常能看到他的文章，不过基本上都是以前的作品！前天无意间从一个网站上看到了他的专栏书评(具体是哪个网站我记不清楚了)，虽然他评论的书籍很多我都没有看过，但为经后的学习提供了很大的帮助！！！！</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/314/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Java-Tips: 新发现的一个JAVA站点!</title>
		<link>http://welog.org/blog/311</link>
		<comments>http://welog.org/blog/311#comments</comments>
		<pubDate>Mon, 14 Nov 2005 23:37:27 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java-tips-%e6%96%b0%e5%8f%91%e7%8e%b0%e7%9a%84%e4%b8%80%e4%b8%aajava%e7%ab%99%e7%82%b9/</guid>
		<description><![CDATA[这是一个刚发现的[URL=http://www.java-tips.org/]Java tips[/URL]网站,这个Java Tips站点类似于[URL=http://javaalmanac.com]javaalmanac.com[/URL],与javaalmanac比较Java tips有更巨大潜力因为javaalmanac只包括唯一API part; 而Java Tips除你能递交你的技巧用不同的类别支持的API之外。还有一个好处是网站曾经被更新和新技巧,它像[URL=http://java.blogeasy.com/]blogged[/URL]。你可以提供自己的技巧(当然如果你有足够时间的话). 这是一个刚发现的[URL=http://www.java-tips.org/]Java tips[/URL]网站,这个Java Tips站点类似于[URL=http://javaalmanac.com]javaalmanac.com[/URL],与javaalmanac比较Java tips有更巨大潜力因为javaalmanac只包括唯一API part; 而Java Tips除你能递交你的技巧用不同的类别支持的API之外。还有一个好处是网站曾经被更新和新技巧,它像[URL=http://java.blogeasy.com/]blogged[/URL]。你可以提供自己的技巧(当然如果你有足够时间的话),初看了一下JAVA中的很多方法和技巧这上面都有很好的解释及Examples.学习先!~~~~~~下面是Java tips上的70个Java Tips: Java SE Tips / java.lang How to use getenv() in Java SE 5.0 Introduction to Autoboxing Using the VarArgs Language Feature The Enhanced For Loop Introduction to Autoboxing Covariant Parameter Types Java SE Tips / java.applet How to play [...]]]></description>
			<content:encoded><![CDATA[<p>这是一个刚发现的[URL=http://www.java-tips.org/]Java tips[/URL]网站,这个Java Tips站点类似于[URL=http://javaalmanac.com]javaalmanac.com[/URL],与javaalmanac比较Java tips有更巨大潜力因为javaalmanac只包括唯一API part; 而Java Tips除你能递交你的技巧用不同的类别支持的API之外。还有一个好处是网站曾经被更新和新技巧,它像[URL=http://java.blogeasy.com/]blogged[/URL]。你可以提供自己的技巧(当然如果你有足够时间的话).<br />
<span id="more-311"></span><br />
这是一个刚发现的[URL=http://www.java-tips.org/]Java tips[/URL]网站,这个Java Tips站点类似于[URL=http://javaalmanac.com]javaalmanac.com[/URL],与javaalmanac比较Java tips有更巨大潜力因为javaalmanac只包括唯一API part; 而Java Tips除你能递交你的技巧用不同的类别支持的API之外。还有一个好处是网站曾经被更新和新技巧,它像[URL=http://java.blogeasy.com/]blogged[/URL]。你可以提供自己的技巧(当然如果你有足够时间的话),初看了一下JAVA中的很多方法和技巧这上面都有很好的解释及Examples.学习先!~~~~~~<br /><strong>下面是Java tips上的70个Java Tips: <br />Java SE Tips / java.lang </strong></p>
<ul>
<li><a href="http://www.java-tips.org/content/view/373/2/">How to use getenv() in Java SE 5.0 </a></li>
<li><a href="http://www.java-tips.org/content/view/479/2/">Introduction to Autoboxing </a></li>
<li><a href="http://www.java-tips.org/content/view/481/2/">Using the VarArgs Language Feature </a></li>
<li><a href="http://www.java-tips.org/content/view/480/2/">The Enhanced For Loop </a></li>
<li><a href="http://www.java-tips.org/content/view/479/2/">Introduction to Autoboxing </a></li>
<li><a href="http://www.java-tips.org/content/view/482/2/">Covariant Parameter Types </a></li>
</ul>
<p><strong>Java SE Tips / java.applet </strong></p>
<ul>
<li><a href="http://www.java-tips.org/content/view/427/2/">How to play a sound file in an Applet </a></li>
<li><a href="http://www.java-tips.org/content/view/428/2/">How to load and draw an Image in an Applet </a></li>
</ul>
<p><strong>Java SE Tips / java.awt </strong></p>
<ul>
<li><a href="http://www.java-tips.org/content/view/429/2/">How to exit an application when a Frame is closed </a></li>
<li><a href="http://www.java-tips.org/content/view/430/2/">How to hide a Frame when its close button has been clicked </a></li>
<li><a href="http://www.java-tips.org/content/view/431/2/">How to get all created Frames in your application </a></li>
<li><a href="http://www.java-tips.org/content/view/432/2/">How to remove the title bar of a Frame </a></li>
<li><a href="http://www.java-tips.org/content/view/433/2/">How to change the boundaries for a maximized Frame </a></li>
<li><a href="http://www.java-tips.org/content/view/434/2/">How to change the type of Cursor for a Component </a></li>
<li><a href="http://www.java-tips.org/content/view/435/2/">How to retrieve the size of the Screen in Java </a></li>
</ul>
<p><strong>Java SE Tips / org.w3c.dom </strong></p>
<ul>
<li><a href="http://www.java-tips.org/content/view/436/2/">Creating new DOM-builder to read XML documents </a></li>
<li><a href="http://www.java-tips.org/content/view/437/2/">Reading a DOM tree from XML document </a></li>
<li><a href="http://www.java-tips.org/content/view/438/2/">Creating a new DOM tree </a></li>
<li><a href="http://www.java-tips.org/content/view/439/2/">Accessing attributes of an element </a></li>
<li><a href="http://www.java-tips.org/content/view/440/2/">Accessing different types of DOM tree nodes </a></li>
<li><a href="http://www.java-tips.org/content/view/441/2/">Saving a DOM tree to XML file javax.xml.parsers (JAXP) </a></li>
<li><a href="http://www.java-tips.org/content/view/442/2/">Configuring DOM-builder factory to produce alternate implementation </a></li>
<li><a href="http://www.java-tips.org/content/view/443/2/">Enable/disable validation of input XML document via DOM-builder </a></li>
<li><a href="http://www.java-tips.org/content/view/444/2/">Enable/disable ignoring of element-content whitespaces in source XML document </a></li>
<li><a href="http://www.java-tips.org/content/view/445/2/">Enable/disable ignoring comments </a></li>
<li><a href="http://www.java-tips.org/content/view/446/2/">How to get reference to DocumentTraversal </a></li>
<li><a href="http://www.java-tips.org/content/view/447/2/">How to traverse the DOM tree as a list </a></li>
<li><a href="http://www.java-tips.org/content/view/448/2/">How to traverse the DOM tree using TreeWalker </a></li>
<li><a href="http://www.java-tips.org/content/view/449/2/">Custom complex filters for selecting nodes </a></li>
<li><a href="http://www.java-tips.org/content/view/450/2/">How to get reference to DocumentRange </a></li>
<li><a href="http://www.java-tips.org/content/view/451/2/">Using ranges in DOM tree </a></li>
<li><a href="http://www.java-tips.org/content/view/452/2/">How you access elements from document with namespaces </a></li>
<li><a href="http://www.java-tips.org/content/view/453/2/">How to create new DOM tree with fully qualified element names </a></li>
</ul>
<p><strong>Java SE Tips / java.util </strong></p>
<ul>
<li><a href="http://www.java-tips.org/content/view/426/2/">From Runtime.exec() to ProcessBuilder </a></li>
</ul>
<p><strong>Java SE Tips / java.nio </strong></p>
<ul>
<li><a href="http://www.java-tips.org/content/view/491/2/">How to create a file lock on a file </a></li>
<li><a href="http://www.java-tips.org/content/view/490/2/">How to copy one file to another through channel </a></li>
<li><a href="http://www.java-tips.org/content/view/489/2/">How to write to a channel with a ByteBuffer </a></li>
<li><a href="http://www.java-tips.org/content/view/488/2/">How to read from a channel with a ByteBuffer </a></li>
<li><a href="http://www.java-tips.org/content/view/487/2/">How to create a memory-mapped file </a></li>
<li><a href="http://www.java-tips.org/content/view/486/2/">How to convert interchangeably between a ByteBuffer and a byte array </a></li>
<li><a href="http://www.java-tips.org/content/view/485/2/">How to put bytes into a ByteBuffer </a></li>
<li><a href="http://www.java-tips.org/content/view/484/2/">How to get bytes from a ByteBuffer </a></li>
<li><a href="http://www.java-tips.org/content/view/483/2/">How to create a ByteBuffer </a></li>
</ul>
<p><strong>Java ME Tips / MIDP </strong></p>
<ul>
<li><a href="http://www.java-tips.org/content/view/356/39/">Connecting to databases like Mysql, SQL Server or Oracle on J2ME devices </a></li>
<li><a href="http://www.java-tips.org/content/view/424/39/">How to implement a sprite class in J2ME </a></li>
<li><a href="http://www.java-tips.org/content/view/425/39/">Detecting collision with sprites in J2ME </a></li>
<li><a href="http://www.java-tips.org/content/view/423/39/">How to use a tiled layer in J2ME </a></li>
<li><a href="http://www.java-tips.org/content/view/422/39/">Sending e-mail from a mobile device </a></li>
<li><a href="http://www.java-tips.org/content/view/421/39/">How to display Calendar in mobile device </a></li>
<li><a href="http://www.java-tips.org/content/view/420/39/">How to read MIDLET attributes at runtime </a></li>
<li><a href="http://www.java-tips.org/content/view/419/39/">How to write a Basic MIDLET </a></li>
<li><a href="http://www.java-tips.org/content/view/493/39/">Simple demo of using timers </a></li>
</ul>
<p><strong>Other API Tips / JDBC </strong></p>
<ul>
<li><a href="http://www.java-tips.org/content/view/374/29/">Impact of increase in FetchSize on JDBC </a></li>
</ul>
<p><strong>Other API Tips / JExcel </strong></p>
<ul>
<li><a href="http://www.java-tips.org/content/view/418/29/">How do I output an Excel file from a Servlet </a></li>
<li><a href="http://www.java-tips.org/content/view/417/29/">How do I read an Excel file uploaded through a Web </a></li>
<li><a href="http://www.java-tips.org/content/view/416/29/">How can I copy a worksheet in one workbook to a new worksheet in another workbook </a></li>
<li><a href="http://www.java-tips.org/content/view/415/29/">How do I get rid of OutOfMemory exceptions </a></li>
<li><a href="http://www.java-tips.org/content/view/414/29/">Converting Excel documents to CSV files </a></li>
<li><a href="http://www.java-tips.org/content/view/413/29/">Reading data from Excel documents at runtime </a></li>
<li><a href="http://www.java-tips.org/content/view/412/29/">How to create an Excel file </a></li>
</ul>
<p><strong>New Categories in Java Applications Section </strong></p>
<ul>
<li><a href="http://www.java-tips.org/content/category/8/87/44/">Image Viewer </a></li>
<li><a href="http://www.java-tips.org/content/category/8/88/44/">Version Control System </a></li>
<li><a href="http://www.java-tips.org/content/category/8/89/44/">Forum </a></li>
<li><a href="http://www.java-tips.org/content/category/8/90/44/">Photo Album Software </a></li>
<li><a href="http://www.java-tips.org/content/category/8/94/44/">Blogger </a></li>
<li><a href="http://www.java-tips.org/content/category/8/95/44/">Web Crawler </a></li>
</ul>
<p><strong>New Categories in Java Libraries Section </strong></p>
<ul>
<li><a href="http://www.java-tips.org/content/category/9/91/45/">Web Framework </a></li>
<li><a href="http://www.java-tips.org/content/category/9/92/45/">J2EE Framework </a></li>
<li><a href="http://www.java-tips.org/content/category/9/96/45/">Build Systems </a></li>
<li><a href="http://www.java-tips.org/content/category/9/99/45/">Web Browser </a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/311/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sun终于整出了中文版的Java API 文档!!</title>
		<link>http://welog.org/blog/309</link>
		<comments>http://welog.org/blog/309#comments</comments>
		<pubDate>Fri, 04 Nov 2005 01:35:54 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/sun%e7%bb%88%e4%ba%8e%e6%95%b4%e5%87%ba%e4%ba%86%e4%b8%ad%e6%96%87%e7%89%88%e7%9a%84java-api-%e6%96%87%e6%a1%a3/</guid>
		<description><![CDATA[[img]upload/sun.gif[/img]其实在刚开始学习JAVA的时候就一直在找中文JAVA API文档,API这东西经常要用到，英文再好也没有看着母语来得方便，必尽20多年对着的都是方块字嘛！再说中文地区的JAVA开发者不在少数吧，SUN早在之前就有了日文版及韩文版的API文档，也难怪论坛、MAIL、MSN里经常有朋友提起并强列要求SUN制作中文版的API文档。针对这个问题好几个论坛都做过调查，结果可想而知！不管SUN出于什么理由迟迟没有推出中文版的API文档，但这次借着SUN在中国举行的一系列技术大会及JAVA在语言使用排行榜上的一路彪升(见下图)，应该再也没有拒绝开发中文API文档的理由了吧！终于今天在sun的技术论坛上发布了中文API文档的正式版，虽然目前还只有java.lang和java.util类库的API,后面的类库还在继续翻译中 ，且给出了具体时间！相信在不久所有的类库都会翻译过来。看来SUN开始重视中文地区的用户了，这对JAVA开发者来说是好事同时对JAVA技术的推广也是好事，同理对SUN也是好事！哈哈哈~~~~早就应该出了嘛! [img]upload/sun.gif[/img]其实在刚开始学习JAVA的时候就一直在找中文JAVA API文档,API这东西经常要用到，英文再好也没有看着母语来得方便，必尽20多年对着的都是方块字嘛！再说中文地区的JAVA开发者不在少数吧，SUN早在之前就有了日文版及韩文版的API文档，也难怪论坛、MAIL、MSN里经常有朋友提起并强列要求SUN制作中文版的API文档。针对这个问题好几个论坛都做过调查，结果可想而知！不管SUN出于什么理由迟迟没有推出中文版的API文档，但这次借着SUN在中国举行的一系列技术大会及JAVA在语言使用排行榜上的一路彪升(见下图)，应该再也没有拒绝开发中文API文档的理由了吧！终于今天在sun的技术论坛上发布了中文API文档的正式版，虽然目前还只有java.lang和java.util类库的API,后面的类库还在继续翻译中 ，且给出了具体时间！相信在不久所有的类库都会翻译过来。看来SUN开始重视中文地区的用户了，这对JAVA开发者来说是好事同时对JAVA技术的推广也是好事，同理对SUN也是好事！哈哈哈~~~~早就应该出了嘛！ Sun 公司提供的Java API Docs是学习和使用Java语言中最经常使用的参考资料之一。但是长期以来此文档只有英文版，对于中国地区的Java开发者来说相当的不便。目前Sun 公司正在组织多方力量将此文档翻译成中文，并于近日在Sun 中国技术社区（http://gceclub.sun.com.cn/）正式发布java.lang和java.util类库API 文档的中文版，其他类库API文档的中文版也将于今后一段时间内陆续向中国地区的开发人员提供。在J2SE API文档（5.0版本）的汉化工作完成之后，Sun 中国技术社区还将开通Java API 文档中文版的打包下载服务。Java API　文档中文版发布计划 发布时间 相关类库 阅读/下载 2005/10/31 java.langjava.util 在线阅读 2005/12/31 java.awtjava.iojava.text 2006/02/28 java.swing 2006/03/31 java.appletjava.beansjava.mathsjava.netjava.niojava.rmijava.securityjava.sql javax.accessibility javax.activityjavax.crypto 2006/04/30 javax.imageiojavax.managementjavax.netjavax.namingjavax.printjavax.rmijavax.securityjavax.sound 2006/05/31 javax.sqljavax.transactionjavax.xmlorg.ietforg.xmlorg.w3corg.omg TIOBE2005年10月程序语言使用排行榜(信息来)十月头条: ColdFusion进入排行榜前20名 TIOBE程序语言使用排行榜是为了显示程序语言的最新流行程度，统计数据基于世界范围内的软件工程师，培训课程和第三方软件提供商所使用程序语言的数量，计算主要采用Google，MSN和Yahoo！搜索引擎的数据，每月更新一次。TIOBE程序语言使用排行榜并不是为了指出哪种语言是最好的或者大多数的代码是用哪种语言写就的，它只是为了帮助你评估你所使用的语言能否跟得上时代或者帮助你在进行新的软件开发时选择合适的语言。 1 Java 21.871% +4.82% A 2 C 18.773% +0.60% A 3 C++ 11.820% -3.75% A 4 [...]]]></description>
			<content:encoded><![CDATA[<p>[img]upload/sun.gif[/img]<br />其实在刚开始学习JAVA的时候就一直在找中文JAVA API文档,API这东西经常要用到，英文再好也没有看着母语来得方便，必尽20多年对着的都是方块字嘛！再说中文地区的JAVA开发者不在少数吧，SUN早在之前就有了日文版及韩文版的API文档，也难怪论坛、MAIL、MSN里经常有朋友提起并强列要求SUN制作中文版的API文档。针对这个问题好几个论坛都做过调查，结果可想而知！不管SUN出于什么理由迟迟没有推出中文版的API文档，但这次借着SUN在中国举行的一系列技术大会及JAVA在语言使用排行榜上的一路彪升(见下图)，应该再也没有拒绝开发中文API文档的理由了吧！终于今天在sun的技术论坛上发布了中文API文档的正式版，虽然目前还只有java.lang和java.util类库的API,后面的类库还在继续翻译中 ，且给出了具体时间！相信在不久所有的类库都会翻译过来。看来SUN开始重视中文地区的用户了，这对JAVA开发者来说是好事同时对JAVA技术的推广也是好事，同理对SUN也是好事！哈哈哈~~~~早就应该出了嘛!<br />
<span id="more-309"></span></p>
<p>[img]upload/sun.gif[/img]<br />其实在刚开始学习JAVA的时候就一直在找中文JAVA API文档,API这东西经常要用到，英文再好也没有看着母语来得方便，必尽20多年对着的都是方块字嘛！再说中文地区的JAVA开发者不在少数吧，SUN早在之前就有了日文版及韩文版的API文档，也难怪论坛、MAIL、MSN里经常有朋友提起并强列要求SUN制作中文版的API文档。针对这个问题好几个论坛都做过调查，结果可想而知！不管SUN出于什么理由迟迟没有推出中文版的API文档，但这次借着SUN在中国举行的一系列技术大会及JAVA在语言使用排行榜上的一路彪升(见下图)，应该再也没有拒绝开发中文API文档的理由了吧！终于今天在sun的技术论坛上发布了中文API文档的正式版，虽然目前还只有java.lang和java.util类库的API,后面的类库还在继续翻译中 ，且给出了具体时间！相信在不久所有的类库都会翻译过来。看来SUN开始重视中文地区的用户了，这对JAVA开发者来说是好事同时对JAVA技术的推广也是好事，同理对SUN也是好事！哈哈哈~~~~早就应该出了嘛！</p>
<p>Sun 公司提供的Java API Docs是学习和使用Java语言中最经常使用的参考资料之一。但是长期以来此文档只有英文版，对于中国地区的Java开发者来说相当的不便。目前Sun 公司正在组织多方力量将此文档翻译成中文，并于近日在Sun 中国技术社区（http://gceclub.sun.com.cn/）正式发布java.lang和java.util类库API 文档的中文版，其他类库API文档的中文版也将于今后一段时间内陆续向中国地区的开发人员提供。在J2SE API文档（5.0版本）的汉化工作完成之后，Sun 中国技术社区还将开通Java API 文档中文版的打包下载服务。<br />Java API　文档中文版发布计划</p>
<table cellspacing="2" cellpadding="2" border="0">
<tbody>
<tr>
<td>发布时间</td>
<td>相关类库</td>
<td>阅读/下载</p>
</td>
</tr>
<tr>
<td>2005/10/31</td>
<td>java.lang<br />java.util</p>
</td>
<td><a href="http://gceclub.sun.com.cn/download/Java_Docs/html/zh_CN/api/index.html">在线阅读</a></td>
</tr>
<tr>
<td>2005/12/31</td>
<td>java.awt<br />java.io<br />java.text</p>
</td>
<td></td>
</tr>
<tr>
<td>2006/02/28</td>
<td>java.swing</p>
</td>
<td></td>
</tr>
<tr>
<td>2006/03/31</td>
<td>
<pre>java.appletjava.beansjava.mathsjava.netjava.niojava.rmijava.securityjava.sql javax.accessibility javax.activityjavax.crypto
</pre>
</td>
<td></td>
</tr>
<tr>
<td>2006/04/30</td>
<td>
<pre>javax.imageiojavax.managementjavax.netjavax.namingjavax.printjavax.rmijavax.securityjavax.sound
</pre>
</td>
<td></td>
</tr>
<tr>
<td>2006/05/31</td>
<td>
<pre>javax.sqljavax.transactionjavax.xmlorg.ietforg.xmlorg.w3corg.omg
</pre>
</td>
</tr>
</tbody>
</table>
<p><strong>TIOBE2005年10月程序语言使用排行榜(信息来)<br /></strong><font color="#808080">十月头条: ColdFusion进入排行榜前20名</font> <br />TIOBE程序语言使用排行榜是为了显示程序语言的最新流行程度，统计数据基于世界范围内的软件工程师，培训课程和第三方软件提供商所使用程序语言的数量，计算主要采用Google，MSN和Yahoo！搜索引擎的数据，每月更新一次。<br />TIOBE程序语言使用排行榜并不是为了指出哪种语言是最好的或者大多数的代码是用哪种语言写就的，它只是为了帮助你评估你所使用的语言能否跟得上时代或者帮助你在进行新的软件开发时选择合适的语言。</p>
<table align="center" border="1">
<tbody>
<tr>
<td>1</td>
<td><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /></td>
<td>Java</td>
<td>21.871%</td>
<td>+4.82%</td>
<td>A</td>
</tr>
<tr>
<td>2</td>
<td><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /></td>
<td>C</td>
<td>18.773%</td>
<td>+0.60%</td>
<td>A</td>
</tr>
<tr>
<td>3</td>
<td><img alt="" src="http://www.b9527.net/i/Same.gif" border="0" /></td>
<td>C++</td>
<td>11.820%</td>
<td>-3.75%</td>
<td>A</td>
</tr>
<tr>
<td>4</td>
<td><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /></td>
<td>PHP</td>
<td>9.671%</td>
<td>+2.25%</td>
<td>A</td>
</tr>
<tr>
<td>5</td>
<td><img alt="" src="http://www.b9527.net/i/Same.gif" border="0" /></td>
<td>Perl</td>
<td>7.449%</td>
<td>-1.37%</td>
<td>A</td>
</tr>
<tr>
<td>6</td>
<td><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /></td>
<td>(Visual) Basic</td>
<td>6.896%</td>
<td>-2.86%</td>
<td>A</td>
</tr>
<tr>
<td>7</td>
<td><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /></td>
<td>C#</td>
<td>3.462%</td>
<td>+1.82%</td>
<td>A</td>
</tr>
<tr>
<td>8</td>
<td><img alt="" src="http://www.b9527.net/i/Same.gif" border="0" /></td>
<td>Python</td>
<td>2.882%</td>
<td>-1.56%</td>
<td>A</td>
</tr>
<tr>
<td>9</td>
<td><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /></td>
<td>JavaScript</td>
<td>2.036%</td>
<td>+0.77%</td>
<td>A</td>
</tr>
<tr>
<td>10</td>
<td><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /></td>
<td>Delphi/Kylix</td>
<td>1.495%</td>
<td>-2.97%</td>
<td>A</td>
</tr>
<tr>
<td>11</td>
<td><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /></td>
<td>SAS</td>
<td>1.300%</td>
<td>+0.23%</td>
<td>A</td>
</tr>
<tr>
<td>12</td>
<td><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /></td>
<td>PL/SQL</td>
<td>0.958%</td>
<td>-0.63%</td>
<td>A</td>
</tr>
<tr>
<td>13</td>
<td><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /></td>
<td>VB.NET</td>
<td>0.904%</td>
<td>+0.23%</td>
<td>A-</td>
</tr>
<tr>
<td>14</td>
<td><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /></td>
<td>COBOL</td>
<td>0.859%</td>
<td>+0.15%</td>
<td>A</td>
</tr>
<tr>
<td>15</td>
<td><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /></td>
<td>Lisp/Scheme</td>
<td>0.665%</td>
<td>+0.23%</td>
<td>A-</td>
</tr>
<tr>
<td>16</td>
<td><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /></td>
<td>Fortran</td>
<td>0.640%</td>
<td>+0.28%</td>
<td>B</td>
</tr>
<tr>
<td>17</td>
<td><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /></td>
<td>Ada</td>
<td>0.590%</td>
<td>+0.23%</td>
<td>B</td>
</tr>
<tr>
<td>18</td>
<td><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /></td>
<td>Pascal</td>
<td>0.567%</td>
<td>+0.10%</td>
<td>B</td>
</tr>
<tr>
<td>19</td>
<td><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Down.gif" border="0" /></td>
<td>IDL</td>
<td>0.505%</td>
<td>-0.13%</td>
<td>B</td>
</tr>
<tr>
<td>20</td>
<td><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /><img alt="" src="http://www.b9527.net/i/Up.gif" border="0" /></td>
<td>ColdFusion</td>
<td>0.424%</td>
<td>+0.27%</td>
<td>B</td>
</tr>
</tbody>
</table>
<p>图解<br />一些字段解释如下: </p>
<ul>
<li><strong>(排名)</strong>. 与去年同期相比的排名变化情况。 </li>
<li><strong>使用率</strong>. 我们用这个查询组合<strong>&#8216;+&quot;&lt;language&gt;<br />programming&quot; -tv -channel&#8217;</strong>来计算排行榜中的数据。主要计算过去12个月Google, MSN，Yahoo!<br />搜索引擎和Google新闻组的数据量。 </li>
<li><strong>(使用率)</strong>. 过去12个月来的变化情况。 </li>
<li><strong>评价</strong>. &quot;A&quot; 代表程序设计的主流语言，&quot;B&quot;代表非主流语言，&quot;A-&quot;和&quot;A&#8211;&quot;介于它们之间。如果一种语言使用率至少3个月高于<strong>0.7%</strong>，它就能获得&quot;A&quot;的评价此前的两个月分别得到&quot;A&#8211;&quot;和&quot;A-&quot;的评价。 </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/309/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>java桌面系统(suse linux 10)!</title>
		<link>http://welog.org/blog/305</link>
		<comments>http://welog.org/blog/305#comments</comments>
		<pubDate>Sat, 29 Oct 2005 16:25:55 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e6%a1%8c%e9%9d%a2%e7%b3%bb%e7%bb%9fsuse-linux-10/</guid>
		<description><![CDATA[&#160;好久没关注Linux了,才发现Novell (http://www.novell.com) 又在前段时间发布了suse linux10.0的新版本..记得SUSE Linux 9.3的时候就有很多用户反应相当强烈,这次的10.0应该有更出色的表现(好像有人在叫能取代Windows的桌面系统嘛)!有必要将自己目前的Redhat换成新版的suse linux10.0,虽然说法有点夸张,不过这个系统我一支很期待,So&#8230;..下载中&#8230;&#8230;. &#160;好久没关注Linux了,才发现Novell (http://www.novell.com) 又在前段时间发布了suse linux10.0的新版本..记得SUSE Linux 9.3的时候就有很多用户反应相当强烈,这次的10.0应该有更出色的表现(好像有人在叫能取代Windows的桌面系统嘛)!有必要将自己目前的Redhat换成新版的suse linux10.0,虽然说法有点夸张,不过这个系统我一支很期待,So&#8230;..下载中&#8230;&#8230;.如果你看见suse linux10.0的桌面表现，我想你也会动心地，而且支持多国语言版，并且开设了中文网站www.openSUSE.org.cn这里给出他的管方下载地址http://ftp.suse.com/pub/suse/i386/10.0/iso/，安装先~~~~~~！SUSE Linux 10的桌面功能包括最新版的Firefox网页浏览器，最新版兼容Windows的OpenOffice.org 2.0套件，电子邮件和即时信息客户端，图形设计、编辑和管理应用，以及重要的安全工具，包括垃圾屏蔽装置、防 病毒软件以及集成的防火墙。在诸多新功能中还包括Beagle桌面搜索引擎以及支持MP3的Amarok。 除了完整的桌面功能之外，SUSE Linux 10还提供1,500多个开源Linux应用及程序包，适用于高级网页寄存（Web Hosting）、应用和开发以及家庭网络，用户可以根据自身需要选择安装，其内容可谓丰富多彩。先让我们看看桌面： [img]http://www.novell.com/products/suselinux/img/screenshots/kde.png[/img] KDE desktop [img]http://www.novell.com/products/suselinux/img/screenshots/gnome.png[/img] GNOME desktop]]></description>
			<content:encoded><![CDATA[<p><img height="62" alt="suse linux10" hspace="" src="http://opensuse.org.cn/stylesheets/monobook/opensuse.gif" width="98" align="left" border="1" />&nbsp;好久没关注Linux了,才发现<a title="http://www.novell.com" href="http://www.novell.com/">Novell</a> (<em>http://www.novell.com</em>) 又在前段时间发布了suse linux10.0的新版本..<br />记得SUSE Linux 9.3的时候就有很多用户反应相当强烈,这次的10.0应该有更出色的表现(好像有人在叫能取代Windows的桌面系统嘛)!有必要将自己目前的Redhat换成新版的suse linux10.0,虽然说法有点夸张,不过这个系统我一支很期待,So&#8230;..下载中&#8230;&#8230;.<br />
<span id="more-305"></span></p>
<p><img height="62" alt="suse linux10" src="http://opensuse.org.cn/stylesheets/monobook/opensuse.gif" width="98" align="left" border="1" />&nbsp;好久没关注Linux了,才发现<a title="http://www.novell.com" href="http://www.novell.com/">Novell</a> (<em>http://www.novell.com</em>) 又在前段时间发布了suse linux10.0的新版本..<br />记得SUSE Linux 9.3的时候就有很多用户反应相当强烈,这次的10.0应该有更出色的表现(好像有人在叫能取代Windows的桌面系统嘛)!有必要将自己目前的Redhat换成新版的suse linux10.0,虽然说法有点夸张,不过这个系统我一支很期待,So&#8230;..下载中&#8230;&#8230;.<br />如果你看见suse linux10.0的桌面表现，我想你也会动心地，而且支持多国语言版，并且开设了中文网站<a href="http://www.openSUSE.org.cn">www.openSUSE.org.cn</a><br />这里给出他的管方下载地址<a href="http://ftp.suse.com/pub/suse/i386/10.0/iso/">http://ftp.suse.com/pub/suse/i386/10.0/iso/</a>，安装先~~~~~~！<br />SUSE Linux 10的桌面功能包括最新版的Firefox网页浏览器，最新版兼容Windows的OpenOffice.org 2.0套件，电子邮件和即时信息客户端，图形设计、编辑和管理应用，以及重要的安全工具，包括垃圾屏蔽装置、防 病毒软件以及集成的防火墙。在诸多新功能中还包括Beagle桌面搜索引擎以及支持MP3的Amarok。 <br />除了完整的桌面功能之外，SUSE Linux 10还提供1,500多个开源Linux应用及程序包，适用于高级网页寄存（Web Hosting）、应用和开发以及家庭网络，用户可以根据自身需要选择安装，其内容可谓丰富多彩。<br />先让我们看看桌面：<br />
[img]http://www.novell.com/products/suselinux/img/screenshots/kde.png[/img]<br />
KDE desktop<br />
[img]http://www.novell.com/products/suselinux/img/screenshots/gnome.png[/img]<br />
GNOME desktop</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/305/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google富可敌国!!!!</title>
		<link>http://welog.org/blog/300</link>
		<comments>http://welog.org/blog/300#comments</comments>
		<pubDate>Mon, 24 Oct 2005 19:26:59 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/google%e5%af%8c%e5%8f%af%e6%95%8c%e5%9b%bd/</guid>
		<description><![CDATA[Google的超强业绩一举引发google股价大幅飙升。21日，公司位于纳斯达克的股票上涨12%，报收于每股339.9美元，再度创下历史新高，比10月3日的前纪录整整高出6.6%。至此，google市值已经逼近1000亿美元大关，在硅谷惟有英特尔和思科堪与之匹敌。 Google的超强业绩一举引发google股价大幅飙升。21日，公司位于纳斯达克的股票上涨12%，报收于每股339.9美元，再度创下历史新高，比10月3日的前纪录整整高出6.6%。至此，google市值已经逼近1000亿美元大关，在硅谷惟有英特尔和思科堪与之匹敌。 从IPO时的85美元到如今猛涨340%，市值规模几与阿联酋GDP旗鼓相当，这一切都发生在令人难以置信的14个月内，难怪华尔街的分析精英们自始至终都没能搭准google的&#8220;脉搏&#8221;，算上这回已是连续5度大幅低估公司的经营业绩了。 google的崛起代表了传统商业营销平台从纸媒和广播向网络转变的革命性趋势。目前，google的收入几乎全部来自于广告，越来越多的商家对这种目标客户极为明确的搜索广告模式趋之若鹜。 &#8220;google正在不断创造新的利润增长点，但即便只依靠付费搜索这一项就足以使其在短期内保持他人难以企及的增长速度。&#8221;Hoefer &#38; Arnett分析师Martin Pyykkonen说。 &#8220;google的非凡业绩让我们更坚信高科技产业已生机重现。&#8221;Man证券公司首席交易专家TimBiggam说：&#8220;通常第四季度是科技股一年里表现最佳的时期，google很可能在纳斯达克引领一波年末集体上扬的大行情。&#8221; 恐怖！！！！Google创造了一个人的业绩神话的同时下个神话会是什么呢，人们还会看走眼吗？而号称&#8220;中国Google&#8221;的百度呢:Google疯涨，百度趁机伸个了&#8220;懒腰&#8221;，股价蹿了6%，摸高到70美元，因为在美国人眼里，百度是&#8220;中国的Google&#8221;。尴尬的是，Google是在创造新的价格纪录，而百度市值比最辉煌时相差了至少16亿美元 。百度的差距&#8212;人们没感觉到它的野心： 百度上市后的种种举动，多数只是对Google、雅虎入侵的一种反抗手段，它似乎没有挑战QQ、新浪或者微软中国的欲望，它还没让百度彻底成为中国网民生活的一部分，它似乎在&#8220;为搜索而搜索&#8221;&#8212;一句话，百度在中国还不够&#8220;革命&#8221;。 &#8220;投机革命&#8221;，这肯定是一种最高深的投资手段。1988年，在那个&#8220;PC时代&#8221;刚刚兴起的岁月，如果一位美国股民花8块多买了一股戴尔股票，并能无意中保存至今的话，这一股戴尔股票的价值是3885美元，这是只属于&#8220;革命者&#8221;的财富神话。这个神话，在Google身上已能隐约看到。 对百度，对那些中国自己的创业英雄来说，以后目标不妨定得再高点，哪怕是偷偷的。历史无数次证明，&#8220;伟大公司&#8221;的宿命是要开创一个时代、改变&#8220;一大堆人&#8221;的生活，而中国恰恰有这样的土壤，这里有13亿人口，有大量没有实现的梦想。]]></description>
			<content:encoded><![CDATA[<p><img width="143" height="59" align="left" src="http://www.google.com/images/google_sm.gif" alt="" />Google的超强业绩一举引发google股价大幅飙升。21日，公司位于纳斯达克的股票上涨12%，报收于每股339.9美元，再度创下历史新高，比10月3日的前纪录整整高出6.6%。至此，google市值已经逼近1000亿美元大关，在硅谷惟有<strong>英特尔</strong>和<strong>思科</strong>堪与之匹敌。<br />
<span id="more-300"></span><br />
<img width="143" height="59" align="left" src="http://www.google.com/images/google_sm.gif" alt="" />Google的超强业绩一举引发google股价大幅飙升。21日，公司位于纳斯达克的股票上涨12%，报收于每股339.9美元，再度创下历史新高，比10月3日的前纪录整整高出6.6%。至此，google市值已经逼近1000亿美元大关，在硅谷惟有<strong>英特尔</strong>和<strong>思科</strong>堪与之匹敌。</p>
<p>从IPO时的85美元到如今猛涨340%，<em>市值规模几与阿联酋GDP旗鼓相当</em>，这一切都发生在令人难以置信的14个月内，难怪华尔街的分析精英们自始至终都没能搭准google的&ldquo;脉搏&rdquo;，算上这回已是连续5度大幅低估公司的经营业绩了。</p>
<ul>
<li>google的崛起代表了传统商业营销平台从纸媒和广播向网络转变的革命性趋势。目前，google的收入几乎全部来自于广告，越来越多的商家对这种目标客户极为明确的搜索广告模式趋之若鹜。</li>
<li>
<p>&ldquo;google正在不断创造新的利润增长点，但即便只依靠付费搜索这一项就足以使其在短期内保持他人难以企及的增长速度。&rdquo;Hoefer &amp;  Arnett分析师Martin Pyykkonen说。</p>
</li>
<li>
<p>&ldquo;google的非凡业绩让我们更坚信高科技产业已生机重现。&rdquo;Man证券公司首席交易专家TimBiggam说：&ldquo;通常第四季度是科技股一年里表现最佳的时期，google很可能在纳斯达克引领一波年末集体上扬的大行情。&rdquo;</p>
</li>
</ul>
<p><strong><font color="#ff0000">恐怖！！！！Google创造了一个人的业绩神话的同时下个神话会是什么呢，人们还会看走眼吗？<br /></font></strong><br />而号称&ldquo;中国Google&rdquo;的百度呢:<br />Google疯涨，百度趁机伸个了&ldquo;懒腰&rdquo;，股价蹿了6%，摸高到70美元，因为在美国人眼里，百度是&ldquo;中国的Google&rdquo;。尴尬的是，Google是在创造新的价格纪录，而百度市值比最辉煌时相差了至少16亿美元 。<br /><strong>百度的差距&mdash;人们没感觉到它的野心：<br /></strong></p>
<ul>
<li>百度上市后的种种举动，多数只是对Google、雅虎入侵的一种反抗手段，它似乎没有挑战QQ、新浪或者微软中国的欲望，它还没让百度彻底成为中国网民生活的一部分，它似乎在&ldquo;为搜索而搜索&rdquo;&mdash;一句话，百度在中国还不够&ldquo;革命&rdquo;。</li>
<li>&ldquo;投机革命&rdquo;，这肯定是一种最高深的投资手段。1988年，在那个&ldquo;PC时代&rdquo;刚刚兴起的岁月，如果一位美国股民花8块多买了一股戴尔股票，并能无意中保存至今的话，这一股戴尔股票的价值是3885美元，这是只属于&ldquo;革命者&rdquo;的财富神话。这个神话，在Google身上已能隐约看到。</li>
<li>
<p>对百度，对那些中国自己的创业英雄来说，以后目标不妨定得再高点，哪怕是偷偷的。历史无数次证明，&ldquo;伟大公司&rdquo;的宿命是要开创一个时代、改变&ldquo;一大堆人&rdquo;的生活，而中国恰恰有这样的土壤，这里有13亿人口，有大量没有实现的梦想。</p>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/300/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>几本不错的JAVA书籍！</title>
		<link>http://welog.org/blog/296</link>
		<comments>http://welog.org/blog/296#comments</comments>
		<pubDate>Fri, 21 Oct 2005 18:19:09 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%87%a0%e6%9c%ac%e4%b8%8d%e9%94%99%e7%9a%84java%e4%b9%a6%e7%b1%8d%ef%bc%81/</guid>
		<description><![CDATA[网上收藏了一些好的书籍，将整理好陆续发上来。不过有的文件很大，先不管了能放几本是几本吧！As popular as the Struts Framework for building web applications with Servlets and JSPs is becoming, the online documentation is inadequate, focusing on the most basic functionality and leaving out information crucial to developers writing today&#8217;s complex web applications. O&#8217;Reilly&#8217;s Programming Jakarta Struts was written by Chuck Cavaness after his internet company decided to adopt [...]]]></description>
			<content:encoded><![CDATA[<p><img width="145" height="190" align="left" src="/FCKeditor/0596006519.s.gif" alt="" /> 网上收藏了一些好的书籍，将整理好陆续发上来。不过有的文件很大，先不管了能放几本是几本吧！<br /><font>As popular as the Struts Framework for building web applications with Servlets  and JSPs is becoming, the online documentation is inadequate, focusing on the  most basic functionality and leaving out information crucial to developers  writing today&#8217;s complex web applications. O&#8217;Reilly&#8217;s <em>Programming Jakarta Struts</em> was written by  Chuck Cavaness after his internet company decided to adopt the framework, then  spent months really figuring out how to use it to its fullest potential. He  calls the books, &quot;the culmination of lessons learned (the hard way) while  building our application.&quot; Readers will benefit from the real-world, &quot;this is  how to do it&quot; approach Cavaness takes to developing complex enterprise  applications using Struts, and his focus on the 1.1 version of the Framework  makes this the most up-to-date book available.</p>
<p>下载地址：</font><a href="upload/oreilly_programming_jakarta_struts.chm">oreilly &#8211; programming jakarta struts.chm</a></p>
<p>
<span id="more-296"></span><br />
<img width="145" height="190" align="left" src="/FCKeditor/0596006519.s.gif" alt="" /> 网上收藏了一些好的书籍，将整理好陆续发上来。不过有的文件很大，先不管了能放几本是几本吧！<br /><font>As popular as the Struts Framework for building web applications with Servlets  and JSPs is becoming, the online documentation is inadequate, focusing on the  most basic functionality and leaving out information crucial to developers  writing today&#8217;s complex web applications. O&#8217;Reilly&#8217;s <em>Programming Jakarta Struts</em> was written by  Chuck Cavaness after his internet company decided to adopt the framework, then  spent months really figuring out how to use it to its fullest potential. He  calls the books, &quot;the culmination of lessons learned (the hard way) while  building our application.&quot; Readers will benefit from the real-world, &quot;this is  how to do it&quot; approach Cavaness takes to developing complex enterprise  applications using Struts, and his focus on the 1.1 version of the Framework  makes this the most up-to-date book available.</p>
<p>下载地址：</font><a href="upload/oreilly_programming_jakarta_struts.chm">oreilly &#8211; programming jakarta struts.chm</a></p>
<p><strong>OO过程以及UML的应用(ppt格式) </strong><br />软件开发方面比较不错的文章，可以让我们了解面向对象开发过程，比较完带的介绍了软件工程从建模到需要分析及部署！</p>
<div>
<div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &bull;业务建模 </div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &bull;需求 </div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &bull;分析 </div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &bull;设计 </div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &bull;构建&nbsp; </div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &bull;测试 </div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &bull;部署</div>
</div>
</div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://upload/oouml.rar">下载：OO过程以及UML的应用(ppt格式)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/296/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JBuilder 2006下载</title>
		<link>http://welog.org/blog/295</link>
		<comments>http://welog.org/blog/295#comments</comments>
		<pubDate>Fri, 21 Oct 2005 17:55:11 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/jbuilder-2006%e4%b8%8b%e8%bd%bd/</guid>
		<description><![CDATA[&#160; JBuilder 2006全球领先的JAVA整合开发环境！基于Eclipse平台的Borland JBuilder 2006创造性引入P2P协同开发功能，使开发团队能够跨越地域的限制进行即时交互(chatting, editing, designing, and debugging)，实现虚拟化结队编程(Virtual Peer Programming)。&#160; 从Borland公布的Flash视频演示来看JBuilder 2006(Swing版本)。这一版本将完全基于Eclipse，并带有增强的依赖分析功能!看来Eclipse是真的做大了。。。Eclipse只是一个平台，现在很多产品都是基于Eclipse的，连IBM的WebSphere都是。同时新版2006速度也提升了，同时支持Weblogic 9.0。 &#160; JBuilder 2006全球领先的JAVA整合开发环境！基于Eclipse平台的Borland JBuilder 2006创造性引入P2P协同开发功能，使开发团队能够跨越地域的限制进行即时交互(chatting, editing, designing, and debugging)，实现虚拟化结队编程(Virtual Peer Programming)。&#160; 从Borland公布的Flash视频演示来看JBuilder 2006(Swing版本)。这一版本将完全基于Eclipse，并带有增强的依赖分析功能!看来Eclipse是真的做大了。。。Eclipse只是一个平台，现在很多产品都是基于Eclipse的，连IBM的WebSphere都是。同时新版2006速度也提升了，同时支持Weblogic 9.0。 软件名称：Borland JBuilder Enterprise 2006 企业版发行时间：2005.9月中旬数量：4CD 支持平台：Windows/Linux/Solaris官方网址：http://www.borland.com/us/products/jbuilder/index.html 下载地址： http://www.blogjava.net/Files/fidodido/JBuilder%202006.rar (要下的尽快吧!) Borland 发布 JBuilder 2006&#160;产品蓝图及新一代基于Eclipse 协作式开发环境 Borland 下一代 Java 开发解决方案将深化开发者在软件交付生命周期中的角色 &#8220;软件开发已踏入一个新时代。现时许多开发团队规模庞大，往往涉及多个不同的企业岗位，更横跨地域。开发者要更注重在团队中提高自身的技术水平和贡献。软件交付的成功取决于团队协作、交流、灵活性以及效率。Borland 下一代以开发员为中心的解决方案专为帮助个人和团队面对新时代的挑战。&#8221; JBuilder 发展蓝图：2006 和未来 　　自从1997年 JBuilder 问世以来，Borland 为企业 [...]]]></description>
			<content:encoded><![CDATA[<p><img height="32" src="http://www.borland.com/us/images/logo-area/borland_logo_nocountry.gif" width="131" align="left" alt="" />&nbsp;<!--StartFragment --> <strong>JBuilder 2006</strong>全球领先的JAVA整合开发环境！基于Eclipse平台的<a href="http://www.borland.com/us/products/jbuilder/index.html">Borland JBuilder 2006</a>创造性引入P2P协同开发功能，使开发团队能够跨越地域的限制进行即时交互(chatting, editing, designing, and debugging)，实现虚拟化结队编程(Virtual Peer Programming)。&nbsp;<!--StartFragment --> 从Borland公布的<a href="http://bdntv.borland.com/jbuilder/2006/jb2006_p2p.html">Flash视频演示</a>来看JBuilder 2006(Swing版本)。这一版本将完全基于Eclipse，并带有增强的依赖分析功能!看来Eclipse是真的做大了。。。Eclipse只是一个平台，现在很多产品都是基于Eclipse的，连IBM的WebSphere都是。同时新版2006速度也提升了，同时支持Weblogic 9.0。 </p>
<p><span id="more-295"></span></p>
<p><img height="32" alt="" src="http://www.borland.com/us/images/logo-area/borland_logo_nocountry.gif" width="131" align="left" />&nbsp;<!--StartFragment --> <strong>JBuilder 2006</strong>全球领先的JAVA整合开发环境！基于Eclipse平台的<a href="http://www.borland.com/us/products/jbuilder/index.html">Borland JBuilder 2006</a>创造性引入P2P协同开发功能，使开发团队能够跨越地域的限制进行即时交互(chatting, editing, designing, and debugging)，实现虚拟化结队编程(Virtual Peer Programming)。&nbsp;<!--StartFragment --> 从Borland公布的<a href="http://bdntv.borland.com/jbuilder/2006/jb2006_p2p.html">Flash视频演示</a>来看JBuilder 2006(Swing版本)。这一版本将完全基于Eclipse，并带有增强的依赖分析功能!看来Eclipse是真的做大了。。。Eclipse只是一个平台，现在很多产品都是基于Eclipse的，连IBM的WebSphere都是。同时新版2006速度也提升了，同时支持Weblogic 9.0。 </p>
<p><!--StartFragment -->软件名称：<strong>Borland JBuilder Enterprise 2006 企业版<br /></strong>发行时间：2005.9月中旬<br />数量：4CD <br />支持平台：Windows/Linux/Solaris<br />官方网址：<a href="http://www.borland.com/us/products/jbuilder/index.html">http://www.borland.com/us/products/jbuilder/index.html</a> <br />下载地址：<!--StartFragment --> <u><font color="#800080"><a href="http://www.blogjava.net/Files/fidodido/JBuilder%202006.rar">http://www.blogjava.net/Files/fidodido/JBuilder%202006.rar</a></font></u> (要下的尽快吧!)</p>
<p align="center"><img alt="Borland JBuilder 2006" src="http://www.9iv.com/down/softimg/2005-9-1810-18-25.gif" align="bottom" border="0" /></p>
<p align="center"><strong>Borland 发布 JBuilder 2006&nbsp;产品蓝图<br /></strong>及新一代基于Eclipse 协作式开发环境</p>
<p><em>Borland 下一代 Java 开发解决方案<br />将深化开发者在软件交付生命周期中的角色</em></p>
<p>&ldquo;软件开发已踏入一个新时代。现时许多开发团队规模庞大，往往涉及多个不同的企业岗位，更横跨地域。开发者要更注重在团队中提高自身的技术水平和贡献。软件交付的成功取决于团队协作、交流、灵活性以及效率。Borland 下一代以开发员为中心的解决方案专为帮助个人和团队面对新时代的挑战。&rdquo;</p>
<p><strong>JBuilder 发展蓝图：2006 和未来</strong></p>
<p align="left">　　自从1997年 JBuilder 问世以来，Borland 为企业 Java 开发者简化了使用Java标准及最新科技以更短时间创制品质更佳的软件。下一代 JBuilder 将秉承这优良传统，更进而针对管理分散团队、大型项目以及日益吃重的开发者角色等挑战。Borland JBuilder 产品线将发展成为更有助团队协作的开发者环境，并增加多种新功能，以提升个人和团队生产力，及增进跨地域的交流。</p>
<p align="left">JBuilder进一步提高实时可视性，让开发者一眼看清源码变更对应用的不同层次甚至整个项目的影响。这对于把软件开发变革成可管理及成功业务流程至为关键。</p>
<p align="left"><img alt="JBuilder 2006 下载" src="http://www.9iv.com/down/softimg/2005-9-1810-51-03.gif" align="bottom" border="0" /></p>
<p>JBuilder2006 Enterprise speeds EJB, Web, Web Services, XML, mobile, and database application development with two-way visual designers and rapid deployment to leading J2EE application servers, including BEA WebLogic, IBM WebSphere, Sybase EAServer, JBoss, and the integrated Borland Enterprise Server. Power productivity with innovative JSF, Struts, and Web Services designers, UML code visualization, peer-to-peer collaboration, distributed refactoring, code audits, enterprise unit testing, and support for multiple version-control systems. Build in quality with integrated Borland Optimizeit&trade; Enterprise Suite, featuring advanced profiling across J2EE application tiers &ndash; JDBC,&trade; Java Message Service (JMS&trade;), JNDI,&trade; JavaServer Pages (JSP), RMI, and EJB. Enterprise Edition also includes all the capabilities of the Developer Edition.</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/295/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>对Z-blog的一点想法！！</title>
		<link>http://welog.org/blog/293</link>
		<comments>http://welog.org/blog/293#comments</comments>
		<pubDate>Thu, 20 Oct 2005 22:35:23 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%af%b9z-blog%e7%9a%84%e4%b8%80%e7%82%b9%e6%83%b3%e6%b3%95%ef%bc%81%ef%bc%81/</guid>
		<description><![CDATA[&#160;Zoundry和Qumana10月都相续发布了新版的Blogging客户端工具&#160;,这给bloger人带来了很多方便，可以很方便地从桌面发布编辑，这是我一直&#8220;梦想&#8221;以久的事情(夸张一点),就不用每次因为写了半天的文章突然IE假死,浪费我的感情了&#8230;呵呵 Qumana发布其最新版的线下博客写作软件Qumana V2.0，其最大的功能特点就是你在写blog的时候，可以加入广告了，为你的博客带来收益。其广告是由&#8220;AdGenta&#8221;收集的，只要你下载了Qumana的软件（免费的哦），然而注册一个帐号，就可以在自己的BLOG上面加入广告了；你可以自由选择你所想要的广告类型，可以自由安排广告所要放置的位置。 &#160;Zoundry和Qumana10月都相续发布了新版的Blogging客户端工具&#160;,这给bloger人带来了很多方便，可以很方便地从桌面发布编辑，这是我一直&#8220;梦想&#8221;以久的事情(夸张一点),就不用每次因为写了半天的文章突然IE假死,浪费我的感情了&#8230;呵呵 Qumana发布其最新版的线下博客写作软件Qumana V2.0，其最大的功能特点就是你在写blog的时候，可以加入广告了，为你的博客带来收益。其广告是由&#8220;AdGenta&#8221;收集的，只要你下载了Qumana的软件（免费的哦），然而注册一个帐号，就可以在自己的BLOG上面加入广告了；你可以自由选择你所想要的广告类型，可以自由安排广告所要放置的位置。而广告收益是以点击率来计算了，而你可以拥有其中50%的收益，剩下的50%的收益归Qumana所有,QumanaV2.0支持很多blog host：Blogger、TypePad Moveable、Type Blogware、WordPress等，也支持由MoveableType、wordpress程序自己架设的BLOG。可惜俺的用不上，而且对中文支持不是很理想！到处是乱码！试了几次无果，不知道z.x是不是能想点办法处理一下xml-api~~~ Zoundry：这个软件支持很多著名的blog托管商和blog软件，包括MT和WP，但暂时不支持国内的blog托管商。zoundry支持 technorati 的 tag ，但不支持中文字符，我设置的中文字符它就是不给我上传，弄的我迷惑了半天，各位可以下载来试试，Z-blog好像支持这个功能，但需要WB editor的支持，新版对中文支持很好,一会试试!!其实这类软件就像Foxmail一样，只不过是针对blogger的，再过一阵子blog会不会像email一样普及呢？&#160; 另外今天正好看到Loveyuki写的一个MetaWeblog API 可以直接从flickr上发布文章，这个功能很实用，但同样需要API的支持，研究了半天，没找着办法，加之ASP能力有限所以这个工作还是让z-blog的作者z.x来了。如果z-blog的api能实现与这些离线软件接口兼容，那z-blog的Fans会增加很多哦～～～～～[img]http://www.i170.com/attach/EA6150A1-A166-4D8B-B8AC-BCB46B644171[/img]]]></description>
			<content:encoded><![CDATA[<p><img alt="" src="http://www.blueclassic.net/FCKeditor/Navigation_Bar_r1_c1.jpg" align="left" />&nbsp;<font color="#0066cc">Zoundry</font>和<a href="void(0);/*1129795163613*/">Qumana</a>10月都相续发布了新版的Blogging客户端工具&nbsp;,这给bloger人带来了很多方便，可以很方便地从桌面发布编辑，这是我一直&ldquo;梦想&rdquo;以久的事情(夸张一点),就不用每次因为写了半天的文章突然IE假死,浪费我的感情了&#8230;呵呵</p>
<p><a href="http://www.qumana.com/"><font color="#336699">Qumana</font></a>发布其最新版的线下博客写作软件<a href="http://www.qumana.com/download.htm"><font color="#336699">Qumana V2.0</font></a>，其最大的功能特点就是你在写blog的时候，可以加入广告了，为你的博客带来收益。其广告是由&ldquo;<a href="http://www.adgenta.com/"><font color="#336699">AdGenta</font></a>&rdquo;收集的，只要你下载了Qumana的软件（免费的哦），然而注册一个帐号，就可以在自己的BLOG上面加入广告了；你可以自由选择你所想要的广告类型，可以自由安排广告所要放置的位置。<br />
<span id="more-293"></span></p>
<p><img alt="" src="http://www.blueclassic.net/FCKeditor/Navigation_Bar_r1_c1.jpg" align="left" />&nbsp;<font color="#0066cc">Zoundry</font>和<a href="void(0);/*1129795163613*/">Qumana</a>10月都相续发布了新版的Blogging客户端工具&nbsp;,这给bloger人带来了很多方便，可以很方便地从桌面发布编辑，这是我一直&ldquo;梦想&rdquo;以久的事情(夸张一点),就不用每次因为写了半天的文章突然IE假死,浪费我的感情了&#8230;呵呵</p>
<p><a href="http://www.qumana.com/"><font color="#336699">Qumana</font></a>发布其最新版的线下博客写作软件<a href="http://www.qumana.com/download.htm"><font color="#336699">Qumana V2.0</font></a>，其最大的功能特点就是你在写blog的时候，可以加入广告了，为你的博客带来收益。其广告是由&ldquo;<a href="http://www.adgenta.com/"><font color="#336699">AdGenta</font></a>&rdquo;收集的，只要你下载了Qumana的软件（免费的哦），然而注册一个帐号，就可以在自己的BLOG上面加入广告了；你可以自由选择你所想要的广告类型，可以自由安排广告所要放置的位置。而广告收益是以点击率来计算了，而你可以拥有其中50%的收益，剩下的50%的收益归Qumana所有,QumanaV2.0支持很多blog host：Blogger、TypePad Moveable、Type Blogware、WordPress等，也支持由MoveableType、wordpress程序自己架设的BLOG。可惜俺的用不上，而且对中文支持不是很理想！到处是乱码！试了几次无果，不知道z.x是不是能想点办法处理一下xml-api~~~</p>
<p><a href="http://www.zoundry.com/images/zlogo-beta.png"><img height="56" alt="" src="http://www.zoundry.com/images/zlogo-beta.png" width="250" align="left" /><font color="#0066cc">Zoundry</font></a>：这个软件支持很多著名的blog托管商和blog软件，包括MT和WP，<br />但暂时不支持国内的blog托管商。<br />zoundry支持 technorati 的 tag ，但不支持中文字符，我设置的中文字符它就是不给我上传，弄的我迷惑了半天，各位可以下载来试试，Z-blog好像支持这个功能，但需要<a href="http://www.wbeditor.com/"><font color="#0000cc">WB editor</font></a>的支持，新版对中文支持很好,一会试试!!<br />其实这类软件就像Foxmail一样，只不过是针对blogger的，再过一阵子blog会不会像email一样普及呢？<br />&nbsp; 另外今天正好看到Loveyuki写的一个<font color="#800080"><u>MetaWeblog API </u></font><font color="#000000">可以直接从flickr上发布文章，这个功能很实用，但同样需要API的支持，研究了半天，没找着办法，加之ASP能力有限所以这个工作还是让z-blog的作者z.x来了。如果z-blog的api能实现与这些离线软件接口兼容，那z-blog的Fans会增加很多哦～～～～～<img alt="" src="/FCKeditor/editor/images/smiley/msn/tounge_smile.gif" /><br />[img]http://www.i170.com/attach/EA6150A1-A166-4D8B-B8AC-BCB46B644171[/img]</font></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/293/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Java-Class Loading</title>
		<link>http://welog.org/blog/292</link>
		<comments>http://welog.org/blog/292#comments</comments>
		<pubDate>Thu, 20 Oct 2005 01:22:52 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java-class-loading/</guid>
		<description><![CDATA[[img]upload/sun.gif[/img] 理解CLassLoader 如果你自己定义了一个 org.test.Object 。 你在程序中这样写： import ort.test.Object Object o = new String();&#160; 也许你欣然以为这样写没问题，但实际上你错了。&#160; 这样会报 ClassCastException, [img]upload/sun.gif[/img] 理解CLassLoader 如果你自己定义了一个 org.test.Object 。 你在程序中这样写： import ort.test.Object Object o = new String();&#160; 也许你欣然以为这样写没问题，但实际上你错了。&#160; 这样会报 ClassCastException, 一个Class在JVM中得标识是由它得 Package和类名决定得(也就是它的名称空间)所决定的。 &#160;org.test.Object&#160;并不等同于java.lang.Object&#160; 在java中，每个类都是java.lang.Class得实例。所有的类都可以这样自定义： java.lang.Class klass = Myclass.class;而实例化一个类，可以是：Myclass myclass = new Myclass() 也可以是： myclass.newInstance();&#160; &#160; 在JVM中。所有得类都由 java.lang.ClassLoader.以及它的子类加载的，我们在运行程序的时候，首先要从 JAVA_HOME/jre/rt.jar开始。&#160; 不过我们发现JDK文档里并没有介绍bootstrap.jar。 实际上bootstrap 是JDK之外得，它得方式和JVM的是不一样的。JDK中除了ClassLoader可以加载类之外，还有以下这些也可以。 java.net.URLClassLoader java.security.SecureClassLoader [...]]]></description>
			<content:encoded><![CDATA[<p>[img]upload/sun.gif[/img]<br />
理解CLassLoader<br />
如果你自己定义了一个 org.test.Object 。<br />
你在程序中这样写：<br />
import ort.test.Object<br />
Object o = new String();&nbsp; 也许你欣然以为这样写没问题，但实际上你错了。&nbsp;<br />
这样会报 ClassCastException,<br />
<span id="more-292"></span><br />
[img]upload/sun.gif[/img]</p>
<div><strong><font face="宋体">理解CLassLoader</font></strong> </div>
<div><font face="宋体">如果你自己定义了一个 org.test.Object 。</font> </div>
<div><font face="宋体">你在程序中这样写：</font> </div>
<div><font face="宋体">import ort.test.Object</font> </div>
<div><font face="宋体">Object o = new String();&nbsp; <br />也许你欣然以为这样写没问题，但实际上你错了。&nbsp;  </font></div>
<div><font face="宋体">这样会报 </font><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassCastException.html"><font face="宋体" color="#800080">ClassCastException</font></a><font face="宋体">,</font> </div>
<div>
<div><font face="宋体">一个Class在JVM中得标识是由它得 Package和类名决定得(也就是它的名称空间)所决定的。</font>  </div>
<div><font face="宋体">&nbsp;org.test.Object&nbsp;并不等同于java.lang.Object</font>&nbsp; </div>
</div>
<div><font face="宋体">在java中，每个类都是java.lang.Class得实例。所有的类都可以这样自定义：  <br /></font><code><font face="新宋体" color="#003366">java.lang.Class klass =  Myclass.class;<br /></font></code><code><font face="宋体" color="#003366">而实例化一个类，可以是：Myclass myclass  = new Myclass() 也可以是： myclass.newInstance();</font></code>&nbsp; </div>
<div>&nbsp; </div>
<div><font face="宋体">在JVM中。所有得类都由 </font><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html"><font face="宋体" color="#0000ff">java.lang.ClassLoader</font></a><font face="宋体">.以及它的子类加载的，我们在运行程序的时候，首先要从 JAVA_HOME/jre/rt.jar开始。&nbsp;  不过我们发现JDK文档里并没有介绍bootstrap.jar。 实际上bootstrap 是JDK之外得，它得方式和JVM的是不一样的。<br />JDK中除了ClassLoader可以加载类之外，还有以下这些也可以。</font> </div>
<ul>
<li><font face="宋体"><code><font face="新宋体" color="#003366">java.net.URLClassLoader</font></code> </font> </li>
<li><font face="宋体"><code><font face="新宋体" color="#003366">java.security.SecureClassLoader</font></code> </font> </li>
<li><font face="宋体"><code><font face="新宋体" color="#003366">java.rmi.server.RMIClassLoader</font></code> </font> </li>
<li><font face="宋体"><code><font face="新宋体" color="#003366">sun.applet.AppletClassLoader</font></code> </font></li>
</ul>
<div><strong><font face="宋体">Class Loaders工作原理</font></strong> </div>
<div><strong><font face="宋体">&nbsp; </font></strong></div>
<div><font face="宋体">&nbsp; 除了bootstrap之外，所有的Classloader都有个父类Class Loader  ,他们都是instanceof <font color="#003366">java.lang.ClassLoader </font></font></div>
<div>&nbsp; </div>
<div><font face="宋体" color="#003366">看看JDK1.5中的一个例子</font> </div>
<div><font face="宋体" color="#003366">假如有个方法loadClass</font>&nbsp; </div>
<div><font color="#003366">protected synchronized Class&lt;?&gt; loadClass  <br />&nbsp;&nbsp;&nbsp; (String name, boolean resolve) <br />&nbsp;&nbsp;&nbsp; throws ClassNotFoundException{  </p>
<p>&nbsp;&nbsp;&nbsp; // First check if the class is already loaded <br />&nbsp;&nbsp;&nbsp; Class c =  findLoadedClass(name); <br />&nbsp;&nbsp;&nbsp; if (c == null) { <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (parent != null) { <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c =  parent.loadClass(name, false); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else { <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c =  findBootstrapClass0(name); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch  (ClassNotFoundException e) { <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // If still not found, then invoke  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // findClass to find the class. <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c =  findClass(name); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp; if (resolve) { <br />&nbsp;&nbsp;&nbsp;  resolveClass(c); <br />&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp; return c; <br />}<br /><font face="宋体">&nbsp;</font></font> </div>
<div><font face="宋体" color="#003366">那设置它父类的方式有两种。</font> </div>
<div><font face="宋体" color="#003366">public class MyClassLoader extends ClassLoader{  <br />&nbsp;&nbsp;&nbsp; public MyClassLoader(){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  super(MyClassLoader.class.getClassLoader()); <br />&nbsp;&nbsp;&nbsp; } <br />}</font> </div>
<div><font face="宋体" color="#003366">或者</font> </div>
<div><font face="宋体" color="#003366">public class MyClassLoader extends ClassLoader{  <br />&nbsp;&nbsp;&nbsp; public MyClassLoader(){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super(getClass().getClassLoader());  <br />&nbsp;&nbsp;&nbsp; } <br />}</font>&nbsp; </div>
<div><font face="宋体" color="#003366">这里是首选第一种。 </font></div>
<div><font color="#003366"><font face="宋体">因为getClass()是在构造函数内部得方法，所以必须要有构造函数代码存在，但是如果不存在，那就找父类得classloader  一直往上找，直至找到到findBootstrapClass， 如果它也不存在得话，那时候findClass（）方法会被调用执行。。  （那时候会报一个ClassNotFoundException）<font color="#000000">。</font></font></font>&nbsp; </div>
<div><font color="#003366"><font face="宋体" color="#000000">来看看findClass()得代码</font></p>
<div><font face="宋体">&nbsp;&nbsp;&nbsp; protected Class&lt;?&gt; findClass(String name)  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throws ClassNotFoundException { <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new  ClassNotFoundException(name); <br />&nbsp;&nbsp;&nbsp; }</font> </div>
<div>&nbsp; </div>
<div><font face="宋体">在findClass() 方法内 class  loader要取得到得字节码（就是编译后*.class文件里得内容），也不一定就是.class文件，  这些字节码可以来自本地，也可以是系统，网络（借着这个你可以理解一下Cobra,RMI）,也可以是用</font><font face="宋体"><a href="http://jakarta.apache.org/bcel/"><font face="宋体" color="#0000ff">BCEL</font></a><font face="宋体">（Apache一个基于字节码得一个引擎库）<font color="#000000"> &#8230;等等。 一但字节码找到了。那时候就开始执行</font></font><font color="#003366"><font face="宋体">defineClass()方法。那时候ClassLoader便会定义出一个类来。 <br />&nbsp;  <br />每个ClassLoader出来的类都是不同的，  如果有两个ClassLoader载入两各相同的程序，defineClass()定义得两个类也是不同得。详细请看（</font><a href="http://java.sun.com/docs/books/jls/second_edition/html/jTOC.doc.html"><font face="宋体" color="#0000ff">Java language specification</font></a><font face="宋体">）</font></font></font>&nbsp; </div>
<p></font></div>
<div>&nbsp; </div>
<div><font face="宋体" color="#003366"><font color="#003366">下面有幅图画  展示了一个MyMainclass.class是如何装载执行的。（由多个classLoader加载同一个Target.class），－－－－  <br /></font><font color="#003366">根据上面得解析，既然由两个classLoader()载入Target.class得字节码  ，那defineClass()就会产生两个class的定义。</font><br /></font>&nbsp; </div>
<div><font face="宋体" color="#003366">所以很容易得出以下结论: <br />Target target1 = (Target)  target2;&nbsp;是不正确的&nbsp;。target1 和 target2是由两个不同的classloader定义的。 <br /></font></div>
<div>&nbsp; </div>
<div>&nbsp; </div>
<div>&nbsp; </div>
<div>
<div align="center"><font face="宋体"><img width="449" height="566" alt="" src="http://www.onjava.com/onjava/2005/01/26/graphics/Figure01_MultipleClassLoaders.JPG" /></font></div>
</div>
<div>&nbsp; </div>
<div><font face="宋体">具体请看</font><a href="http://www.onjava.com/pub/a/onjava/2003/11/12/classloader.html"><font face="宋体" color="#0000ff">Inside  Class Loaders</font></a><font face="宋体">（Andreas Schaefer）  <br /></font></p>
<div>&nbsp;</div>
<div><strong><font face="宋体">我们是否需要自定义的ClassLoader?</font></strong> </div>
<div>&nbsp; </div>
<div><font face="宋体">&nbsp;&nbsp;&nbsp; 理由之一： 如果我们自定义了ClassLoader，那我们便可以控制JVM的加载动作了。 <br />&nbsp;&nbsp;  <br />&nbsp;&nbsp; 上面说一个class标识是由于package+classname组成得。 对于所有实现java.io.<font color="#003366">Serializable</font>接口的类，都是由<font color="#003366">serialVersionUID<font color="#000000">管理这些类得版本(</font>RMI,JNDI,Security里都有这样一个ID)</font> 。它用64位的Hash来表示  (这个Hash由classname,filed,method组成)。从技术上讲如果classname,field,mehtod所构成的Hash都一样，那就会认为是同一个版本。  <br /></font></div>
<div><font face="宋体">&nbsp; 假设有这样一个情况，我们要写一个java 执行引擎（比如：用一个RMI  发布一个Server端程序，执行client的接口方法） ， &nbsp;既然要能执行，那引擎肯定要实现有Client所特定任务的接口（这里为TaskIntf）。&nbsp;  一但任务提交给执行引擎，Server要做的第一件事情就是要装载所有要执行的代码。 假设不同的终端递交了不同的代码。而偏偏又都是同样的包名，和同样的类名。  那服务器能否会辨别到底是那个Client提交过来的执行请求？</font>&nbsp; </div>
<div><font face="宋体">&nbsp; 现在出个问题：  如果在服务器端一个执行程序执行两个客户端提交同一个版本得代码，如何才让客户端会得到预期的执行结果？&nbsp;</font> </div>
<div><font face="宋体">&nbsp; 别以为这个很简单，下面先建个RMI玩玩。看看结果会是怎样。</font>&nbsp; </div>
<div>&nbsp; </div>
<div><font face="宋体">&nbsp; 本地文件如下图。</font> </div>
<div>&nbsp; </div>
<div>&nbsp; </div>
<div>
<div align="center"><font face="宋体"><img width="446" height="461" alt="" src="http://www.onjava.com/onjava/2005/01/26/graphics/Figure02_ExamplesFolderStructure.JPG" /><br /></font></div>
<div align="center"> </div>
</div>
<div align="center"> </div>
<div>
<div align="center"><em><font face="宋体">图&nbsp;2 程序目录结构 （本文中含代码）。</font></em></div>
</div>
<div>&nbsp; </div>
<div><font face="宋体">在samepath目录下，  有着两个version.Version.class，他们得包名类名都一样，唯一不同的是。</font> </div>
<div><font face="宋体">v1目录中的方法是：</font> </div>
<p><font face="宋体" color="#003366">&nbsp;&nbsp;&nbsp;  public void fx(){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log(&quot;this = &quot; + this + &quot;; Version.fx(1).&quot;);  <br />&nbsp;&nbsp;&nbsp; } <br /></font></p>
<div><font face="宋体">v2目录中的方法是：</font> </div>
<div><font face="宋体" color="#003366">&nbsp;&nbsp;&nbsp; public void fx(){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log(&quot;this = &quot;  + this + &quot;; Version.fx(2).&quot;); <br />&nbsp;&nbsp;&nbsp; }</font> </div>
<div>&nbsp; </div>
<div><font face="宋体">执行一下看看：</font> </div>
<div><font color="#003366"><font face="宋体">set  CLASSPATH=.;%CURRENT_ROOT%\v1;%CURRENT_ROOT%\v2 <br />%JAVA_HOME%\bin\java Test  结果如下图 <br /></font> </font></p>
<div align="center"><font face="宋体"><img width="428" height="193" alt="" src="http://www.onjava.com/onjava/2005/01/26/graphics/Figure03_ManyClassInPath1.JPG" /> </font></div>
<p><font color="#003366"></p>
<p><font face="宋体"><em>图&nbsp;3. </em>classPath得目录设为v1</font>&nbsp; </p>
<p></font></div>
<div><font face="宋体" color="#003366">切换到</font> </div>
<div><font face="宋体" color="#003366">set  CLASSPATH=.;%CURRENT_ROOT%\v2;%CURRENT_ROOT%\v1 <br />%JAVA_HOME%\bin\java Test  <br />结果如下图：</font> </div>
<div>
<div align="center"> </div>
<div align="center"><font face="宋体"><img width="428" height="192" alt="" src="http://www.onjava.com/onjava/2005/01/26/graphics/Figure04_ManyClassInPath2.JPG" /> </font></div>
<div align="center"><font face="宋体"><em>图&nbsp;4. </em>classpath目录设为v2</font></div>
</p>
<p>&nbsp; <font face="宋体">很明显，上面的例子中能从classpath中找到先后次序。如果我们把v1,v2的version.Version。都删调。而把他们打成一个<font color="#003366">myextension.jar包，放到java.ext.dirs目录下。。这时候就通过<em>ExtClassLoader</em><font color="#000000">来装载了，而不是AppClassLoader.</font></font></font> </p>
<p><font face="宋体">结果会是如下：</font> </p>
</div>
<div>
<div align="center"> </div>
<div align="center"><font face="宋体"><img width="429" height="158" alt="" src="http://www.onjava.com/onjava/2005/01/26/graphics/Figure05_ExtClassLoader.JPG" /> </font></div>
<p><font face="宋体"><em>图&nbsp;5. <code><font face="新宋体" color="#003366">AppClassLoader</font></code> and <code><font face="新宋体" color="#003366">ExtClassLoader</font></code></em></font> </p>
<p><font face="宋体">注意看 </font><a href="mailto:sun.misc.Launcher$ExtClassLoader@a9c85c"><font face="宋体" color="#0000ff">sun.misc.Launcher$ExtClassLoader@a9c85c</font></a><font face="宋体">  这说明是ExtClassLoader 加载了。</font>&nbsp; </p>
<p><font face="宋体">继续往下看，另外一个例子。&nbsp;在<em>differentversions</em>  目录下的例子，里面包含了RMI的ServerImpl这样一个执行引擎。Client实现了<font color="#003366">common.TaskIntf接口。 两个 client.TaskImpl分别如下：</font></font> </p>
<p><font face="宋体" color="#003366">&nbsp;&nbsp;&nbsp; static{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  log(&quot;client.TaskImpl.class.getClassLoader <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (v1) : &quot; +  TaskImpl.class.getClassLoader()); <br />&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp; public void execute(){  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log(&quot;this = &quot; + this + &quot;; execute(1)&quot;); <br />&nbsp;&nbsp;&nbsp; }</font> </p>
<p><font face="宋体">&nbsp;另一个则是：</font> </p>
<p><font face="宋体">&nbsp;&nbsp;&nbsp;&nbsp;</font><font face="宋体" color="#003366">&nbsp;static{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  log(&quot;client.TaskImpl.class.getClassLoader <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (v1) : &quot; +  TaskImpl.class.getClassLoader()); <br />&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;&nbsp;&nbsp; public void execute(){  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log(&quot;this = &quot; + this + &quot;; execute(2)&quot;); <br />&nbsp;&nbsp;&nbsp; } <br /></font></p>
<p><font face="宋体">这样子来执行（顺序随便，这里把<font color="#003366">  %CURRENT_ROOT%\client2放在前面</font>）：</font> </p>
<p><font face="宋体" color="#003366">CLASSPATH=%CURRENT_ROOT%\common;%CURRENT_ROOT%\server; <br />&nbsp;&nbsp;&nbsp;  %CURRENT_ROOT%\client2;%CURRENT_ROOT%\client1 <br />%JAVA_HOME%\bin\java  server.Server</font> </p>
<p><font face="宋体" color="#003366">先启动Server..</font> </p>
<p><font face="宋体" color="#003366">&nbsp; 分别把两个client提交给服务器执行， (即便执行程序中得client1.bat 和  client2.bat server监控屏幕如图6所示。)&nbsp;</font> </p>
<div align="center"><font face="宋体"><img width="429" height="252" alt="" src="http://www.onjava.com/onjava/2005/01/26/graphics/Figure06_ExecutionEngineServer.JPG" /> </font></div>
<p><font face="宋体"><em>图&nbsp;6. Execution Engine Server console</em></font> </p>
<p><em></em>&nbsp; </p>
<p><font face="宋体">再来看下面两个图（图7和图8），分别是client端得执行显示。 </font></p>
</div>
<div>
<div align="center"> </div>
<div align="center"><font color="#003366"><font face="宋体"><img width="429" height="169" alt="" src="http://www.onjava.com/onjava/2005/01/26/graphics/Figure07_ExecutionEngineClient1.JPG" /> </font></font></div>
<p><font color="#003366"></p>
<p><font color="#003366"><font face="宋体"><em><font color="#000000">图&nbsp;7. Execution Engine Client 1  console</font></em></font> </font></p>
<div>
<p><font face="宋体"><br /></font></p>
<div align="center"><font face="宋体"><img width="428" height="169" alt="" src="http://www.onjava.com/onjava/2005/01/26/graphics/Figure08_ExecutionEngineClient2.JPG" /> </font></div>
<p><font face="宋体"><em>图&nbsp;8. Execution Engine Client 2 console</em></font><em></em>&nbsp; </p>
<p><font face="宋体">纵观上面三次执行结果，发现由于服务器启动得时候使用了AppClassLoader.所以无论怎么样都是载入得是client2(因为client2的classpath次序比较在前)，</font>  </p>
<p><font face="宋体">这里client1 很郁闷，它在自己那执行明明是&nbsp; execute(1) 通过 RMI 发送给服务器端执行就成了  execute(2).. </font></p>
<p><font face="宋体">值得注意的是： 在client1,client2分别发送给服务器执行之后，服务器端显示的记录是：  <br />client.TaskImpl.class.getClassLoader(v2):sun.misc.lancuher@AppClassLoader@xxxx  zhiz只执行了一次。而</font><a href="mailto:this=client.TaskImpl@xxxxx"><font face="宋体" color="#0000ff">this=client.TaskImpl@xxxxx</font></a><font face="宋体">  execute(2);执行了两次</font> </p>
<p><font face="宋体">上面已经讲到过了，对于一个ClassLoader来讲 同样的page+className 只能定义一个  class,而不同的ClassLoader即便加载同一个page.className 也会定义不同的class</font> </p>
<p><em></em> <font face="宋体">到这里，我才发现，解决上面提出得那个问题似乎并不容易。：（。<br />那如何解决呢？答案就是－－－使用自定义得classLoader ..<br />如果各位等不急的话， 先请看（目录中 differentversionspush 里面的代码）<br />很显然，我们很有必要写自定义的classloader. <br /></font></p>
<p><font face="宋体"><strong>如何构造使用自定义的ClassLoader</strong>  </p>
<p>既然自定义的ClassLoader,能解决上述问题，那接下去看看，我们如何来使用自定义的ClassLoader。</font> </p>
<p><font face="宋体">结合本文种的原码－－－（在differentversionspush的目录里），有个FileSystemClassLoader，类图描述如下：</font>  </p>
<div align="center"><font face="宋体"><img width="400" height="630" alt="" src="http://www.onjava.com/onjava/2005/01/26/graphics/Figure09_CustomClassLoaderRelationships.JPG" /> </font></div>
<p><font face="宋体"><em>图9.</em></font> </p>
<p><em></em> <font face="宋体" color="#000000">看看他的方法 findClassBytes(String className);</font>  </p>
<p><font face="宋体">&nbsp;&nbsp;&nbsp; public byte[] findClassBytes(String className){  </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String pathName = currentRoot +  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File.separatorChar + className. <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  replace(&#8216;.&#8217;, File.separatorChar) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + &quot;.class&quot;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  FileInputStream inFile = new <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileInputStream(pathName);  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] classBytes = new <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  byte[inFile.available()]; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inFile.read(classBytes);  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return classBytes; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch  (java.io.IOException ioEx){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp; }  </p>
<p>&nbsp;&nbsp;&nbsp; public Class findClass(String name)throws <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ClassNotFoundException{ </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] classBytes =  findClassBytes(name); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (classBytes==null){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw  new ClassNotFoundException(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  return defineClass(name, classBytes, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0, classBytes.length);  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;&nbsp;&nbsp; public Class findClass(String name, byte[]  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; classBytes)throws ClassNotFoundException{ </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if  (classBytes==null){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new ClassNotFoundException(  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;(classBytes==null)&quot;); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else{  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return defineClass(name, classBytes, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0,  classBytes.length); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;&nbsp;&nbsp; public void  execute(String codeName, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] code){ </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class klass =  null; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; klass = findClass(codeName, code);  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TaskIntf task = (TaskIntf) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  klass.newInstance(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; task.execute(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  catch(Exception exception){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exception.printStackTrace();  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp; } <br /></font></p>
<p><font face="宋体">这个类FileSystemClassLoader 被client使用了，用来定义class，  并且把它把client.TaskImpl(v1)转化为 byte[], 然后 byte[]发送到RMI  Server执行。（上面讲了defineClass()能够执行任何字节码，来自编译后的文件，网络甚至是BCEL 字节码引擎库）,&nbsp;&nbsp; 在Server端  ，又可以通过FileSystemClassLoader 以为byte[]的形式定义出 client.TaskImpl。</font> </p>
<p>&nbsp; <font face="宋体">请看Client端的代码：</font> </p>
<p><font face="宋体" color="#000099">public class Client{ </p>
<p>&nbsp;&nbsp;&nbsp; public static  void main (String[] args){ </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] code =  getClassDefinition <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&quot;client.TaskImpl&quot;); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  serverIntf.execute(&quot;client.TaskImpl&quot;, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; code); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(RemoteException remoteException){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  remoteException.printStackTrace(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;&nbsp;&nbsp;  private static byte[] getClassDefinition <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (String codeName){  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String userDir = System.getProperties(). <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  getProperty(&quot;BytePath&quot;); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileSystemClassLoader fscl1 = null;  </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fscl1 = new FileSystemClassLoader  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (userDir); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  catch(FileNotFoundException <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fileNotFoundException){  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fileNotFoundException.printStackTrace(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }  <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return fscl1.findClassBytes(codeName); <br />&nbsp;&nbsp;&nbsp; } <br />}</font> </p>
<p><font face="宋体">在RMI服务器端ServerImpl&nbsp;程序里，&nbsp;接受到来自client的字节码（byte[]），于是FileSystemClassLoader  会从byte[]构造出一个class, 实例话，并且执行。  </p>
<p>有一点要注意：每次接收到一个client的请求，FileSystemClassLoader都会重新实例化（执行结果中可以看出来），这就意味着，client.Impl不在是在classpath中被找到的，而是通过FileSystemClassLoader  的findClass() 来执行deFineClass()，这样每次 FileSystemClassLoader&nbsp;都是创建新的实例，，自然  deFine出来的class也是不同的。 这样，我们就能在RMI的执行中区分出 这两个class来。（client.TaskImpl ！=  client.TaskImp&nbsp;&nbsp;在上篇就已经得出结论了。&nbsp;） </p>
<p></font></p>
<p><font face="宋体">看看服务器端的执行代码：</font> </p>
<p><font face="宋体" color="#000099">public void execute(String codeName, byte[]  code)throws RemoteException{ </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileSystemClassLoader  fileSystemClassLoader = null; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  fileSystemClassLoader = new FileSystemClassLoader(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  fileSystemClassLoader.execute(codeName, code); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  catch(Exception exception){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new  RemoteException(exception.getMessage()); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp; }</font> </p>
<p>&nbsp; <font face="宋体">服务器端的执行结果：</font> </p>
<div align="center"><font face="宋体"><img width="428" height="251" alt="" src="http://www.onjava.com/onjava/2005/01/26/graphics/Figure10_CustomEngineServer.JPG" /> </font></div>
<p><font face="宋体"><em>图10，服务器端显示</em></font> </p>
<p><em><font face="宋体">下面两图分别是客户端显示的。</font></em> </p>
<div align="center"><font face="宋体"><img width="429" height="183" alt="" src="http://www.onjava.com/onjava/2005/01/26/graphics/Figure11_CustomEngineClient1.JPG" /> </font></div>
<p><font face="宋体"><em>图11. client1的执行显示</em></font> </p>
<p><em></em></p>
<p></p>
<div align="center"><font face="宋体"><img width="427" height="181" alt="" src="http://www.onjava.com/onjava/2005/01/26/graphics/Figure12_CustomEngineClient2.JPG" /> </font></div>
<p><font face="宋体"><em>图12. client2执行结果</em></font> </p>
<p>&nbsp; <br /><font face="宋体">哈，上面洋洋洒洒那么多，总算是一步一步的教会了大家 如何在同一个VM虚拟机中，执行&ldquo;不同版本&rdquo;的代码  。（这些代码有同样的类名和包名）。</font></p>
</div>
<p></font></div>
</div>
<p><font><font face="宋体">资源文件： <br /></font></p>
<li><a href="http://www.onjava.com/onjava/2005/01/26/examples/InternalsOfClassloadingSrc.zip"><font face="宋体" color="#0000ff">Sample code</font></a><font face="宋体">  for this article </font> </li>
<li><a href="http://java.sun.com/j2se/1.5.0/docs/api/"><font face="宋体" color="#0000ff">JDK 1.5 API Docs</font></a><font face="宋体"> </font> </li>
<li><font face="宋体">The </font><a href="http://java.sun.com/docs/books/jls/second_edition/html/jTOC.doc.html"><font face="宋体" color="#0000ff">Java language  specification</font></a><font face="宋体"> </font> </li>
<li><font face="宋体">&quot;</font><a href="http://java.sun.com/docs/books/tutorial/ext/basics/load.html"><font face="宋体" color="#0000ff">Understanding Extension Class Loading  </font></a><font face="宋体">&quot; in the Java tutorial </font> </li>
<li><font face="宋体">&quot;</font><a href="http://www.onjava.com/pub/a/onjava/2003/11/12/classloader.html"><font face="宋体" color="#0000ff">Inside Class Loaders</font></a><font face="宋体">&quot; from </font><a href="http://www.onjava.com/"><font face="宋体" color="#0000ff">ONJava</font></a><font face="宋体"> </font> </li>
<li><font face="宋体">&quot;</font><a href="http://www.onjava.com/pub/a/onjava/2004/06/30/classloader2.html"><font face="宋体" color="#0000ff">Inside Class Loaders:  Debugging</font></a><font face="宋体">&quot; from </font><a href="http://www.onjava.com/"><font face="宋体" color="#0000ff">ONJava</font></a><font face="宋体"> </font> </li>
<li><font face="宋体">&quot;</font><a href="http://www.javaworld.com/javaqa/2003-05/02-qa-0523-version.html"><font face="宋体" color="#0000ff">What version is your Java  code?</font></a><font face="宋体">&quot; from </font><a href="http://www.javaworld.com/"><font face="宋体" color="#0000ff">JavaWorld</font></a><font face="宋体"> </font> </li>
<li><font face="宋体">&quot;</font><a href="http://www.theserverside.com/articles/article.tss?l=ClassLoading"><font face="宋体" color="#0000ff"> Understanding J2EE Application Server  Class Loading Architectures</font></a><font face="宋体">&quot; from </font><a href="http://www.theserverside.com/"><font face="宋体" color="#0000ff">TheServerSide</font></a><font face="宋体"> </font> </li>
<li><a href="http://jakarta.apache.org/bcel/"><font face="宋体" color="#0000ff">Byte Code Engineering Library</font></a><font face="宋体"> </font> </li>
<li><a href="http://www.manning.com/neward3"><font face="宋体" color="#0000ff">Server-Based Java Programming</font></a><font face="宋体"> by Ted  Neward </font></li>
<p></font></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/292/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>中国文学巨匠巴金在上海去世!</title>
		<link>http://welog.org/blog/289</link>
		<comments>http://welog.org/blog/289#comments</comments>
		<pubDate>Tue, 18 Oct 2005 18:10:59 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e4%b8%ad%e5%9b%bd%e6%96%87%e5%ad%a6%e5%b7%a8%e5%8c%a0%e5%b7%b4%e9%87%91%e5%9c%a8%e4%b8%8a%e6%b5%b7%e5%8e%bb%e4%b8%96/</guid>
		<description><![CDATA[[IMG]upload/bajing.gif[/IMG] [B]巴老的离去,无疑是中国文学界一大损失.现在物欲横流的社会太需要他的精神去支持我们新一代青年时时不要忘记那段沉痛的历史,时时要提醒自己要改造社会, 不让历史重演.物质失去可在短时间内恢复,而精神的失去,只会让社会陷入泥淖,几代人都会迷失方向.巴老&#8211;引领我们的一盏灯幻灭了.请在天堂为我们指引,我也会为您祝福,祈祷.巴老一路好走![/B] [IMG]upload/bajing.gif[/IMG] [B]巴老的离去,无疑是中国文学界一大损失.现在物欲横流的社会太需要他的精神去支持我们新一代青年时时不要忘记那段沉痛的历史,时时要提醒自己要改造社会, 不让历史重演.物质失去可在短时间内恢复,而精神的失去,只会让社会陷入泥淖,几代人都会迷失方向.巴老&#8211;引领我们的一盏灯幻灭了.请在天堂为我们指引,我也会为您祝福,祈祷.巴老一路好走![/B] 巴金，原名李尧棠、字芾甘，笔名佩竿、余一、王文慧等，于1904年11月25日出生在四川省成都市正通顺街一个官宦家庭。 巴金在1927年初赴法国留学，在那里写成了处女作&#8211;长篇小说《灭亡》，笔名开始使用&#8221;巴金&#8221;。 笔名“巴金” &#8220;巴金&#8221;这个笔名分别取自俄国无政府主义者、革命分子巴库宁和克罗波特金的头一个字与最后一个字。 巴金于1928年底回到上海，从事创作和翻译工作。 巴金的著作甚丰，有《巴金文集》14卷；1987年又开始出版《巴金全集》。主要作品有长篇小说： &#8220;爱情三部曲&#8221;：《雾》、《雨》、《电》 &#8220;激流三部曲&#8221;：《家》、《春》、《秋》 &#8220;抗战三部曲&#8221;：《火》之一、二、三 文坛巨匠 巴金去世前曾担任中国全国政协副主席和中国作家协会主席等职务，其小说《家》、《春》、《秋》、《寒夜》等文学作品已成为中国近现代文学的经典。 巴金的代表作，在几代华人读者中最具影响的作品是&#8221;激流三部曲&#8221;，即《家》、《春》、《秋》。 巴金本人在&#8221;十年文革&#8221;中曾遭受批判，并被关进&#8221;牛棚&#8221;。晚年的巴金提倡&#8221;讲真话&#8221;，在二十世纪八十年代中期以后出版了《随想录》之《病中集》、《无题集》等作品，深入反思文革和历次政治运动所造成的伤害。 据报道，在巴金去世前一个月，中国全国政协主席贾庆林曾前往华东医院前往看望。 贾庆林表示，巴金是&#8221;&#8216;五四&#8217;新文化运动以来的最有影响的作家之一，是二十世纪中国杰出的文学大师、中国现当代文坛巨匠，是中国共产党的老朋友&#8221;。]]></description>
			<content:encoded><![CDATA[<p>[IMG]upload/bajing.gif[/IMG]<br />
[B]巴老的离去,无疑是中国文学界一大损失.现在物欲横流的社会太需要他的精神去支持我们新一代青年时时不要忘记那段沉痛的历史,时时要提醒自己要改造社会, 不让历史重演.物质失去可在短时间内恢复,而精神的失去,只会让社会陷入泥淖,几代人都会迷失方向.巴老&#8211;引领我们的一盏灯幻灭了.请在天堂为我们指引,我也会为您祝福,祈祷.巴老一路好走![/B]<br />
<span id="more-289"></span><br />
[IMG]upload/bajing.gif[/IMG]</p>
<p>[B]巴老的离去,无疑是中国文学界一大损失.现在物欲横流的社会太需要他的精神去支持我们新一代青年时时不要忘记那段沉痛的历史,时时要提醒自己要改造社会, 不让历史重演.物质失去可在短时间内恢复,而精神的失去,只会让社会陷入泥淖,几代人都会迷失方向.巴老&#8211;引领我们的一盏灯幻灭了.请在天堂为我们指引,我也会为您祝福,祈祷.巴老一路好走![/B]</p>
<p>巴金，原名李尧棠、字芾甘，笔名佩竿、余一、王文慧等，于1904年11月25日出生在四川省成都市正通顺街一个官宦家庭。<br />
巴金在1927年初赴法国留学，在那里写成了处女作&#8211;长篇小说《灭亡》，笔名开始使用&#8221;巴金&#8221;。<br />
笔名“巴金”<br />
&#8220;巴金&#8221;这个笔名分别取自俄国无政府主义者、革命分子巴库宁和克罗波特金的头一个字与最后一个字。<br />
巴金于1928年底回到上海，从事创作和翻译工作。<br />
巴金的著作甚丰，有《巴金文集》14卷；1987年又开始出版《巴金全集》。主要作品有长篇小说： </p>
<p>&#8220;爱情三部曲&#8221;：《雾》、《雨》、《电》 </p>
<p>&#8220;激流三部曲&#8221;：《家》、《春》、《秋》 </p>
<p>&#8220;抗战三部曲&#8221;：《火》之一、二、三<br />
文坛巨匠<br />
巴金去世前曾担任中国全国政协副主席和中国作家协会主席等职务，其小说《家》、《春》、《秋》、《寒夜》等文学作品已成为中国近现代文学的经典。 </p>
<p>巴金的代表作，在几代华人读者中最具影响的作品是&#8221;激流三部曲&#8221;，即《家》、《春》、《秋》。 </p>
<p>巴金本人在&#8221;十年文革&#8221;中曾遭受批判，并被关进&#8221;牛棚&#8221;。晚年的巴金提倡&#8221;讲真话&#8221;，在二十世纪八十年代中期以后出版了《随想录》之《病中集》、《无题集》等作品，深入反思文革和历次政治运动所造成的伤害。 </p>
<p>据报道，在巴金去世前一个月，中国全国政协主席贾庆林曾前往华东医院前往看望。 </p>
<p>贾庆林表示，巴金是&#8221;&#8216;五四&#8217;新文化运动以来的最有影响的作家之一，是二十世纪中国杰出的文学大师、中国现当代文坛巨匠，是中国共产党的老朋友&#8221;。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/289/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Java之Tomcat 配置</title>
		<link>http://welog.org/blog/278</link>
		<comments>http://welog.org/blog/278#comments</comments>
		<pubDate>Wed, 12 Oct 2005 05:20:11 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e4%b9%8btomcat-%e9%85%8d%e7%bd%ae/</guid>
		<description><![CDATA[[IMG]upload/sun.gif[/IMG] 今天下载了5.5.12版的TOMCAT,折腾了半天才知道TOMCAT5.0.28之后就没有了默认的admin模块,还以为我的配置哪出错了(花了半小时没找出原因:()。下面是网上当的一些关于TOMCAT配置方面的技巧，对相关的配置方法在没有改动原文的同时也做了适当修改，已红色字标记。目前使用的是最新的jdk为1.5+tomcat5.5.12这里只给出简单的配置。 JDK1.5： JAVA_HOME=c:\j2sdk1.5 classp&#8230; [IMG]upload/sun.gif[/IMG] 今天下载了5.5.12版的TOMCAT,折腾了半天才知道TOMCAT5.0.28之后就没有了默认的admin模块,还以为我的配置哪出错了(花了半小时没找出原因:()。下面是网上当的一些关于TOMCAT配置方面的技巧，对相关的配置方法在没有改动原文的同时也做了适当修改，已红色字标记。目前使用的是最新的jdk为1.5+tomcat5.5.12这里只给出简单的配置。 JDK1.5： JAVA_HOME=c:\j2sdk1.5 classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;（.;一定不能少，因为它代表当前路径) path=%JAVA_HOME%\bin Tomcat 5.5.12: CATALINA_HOME：c:\tomcat CATALINA_BASE：c:\tomcat TOMCAT_HOME: C:\Tomcat 修改classpath，classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet.jar; 启动tomcat，在IE中访问http://localhost:8080，如果看到tomcat的欢迎页面的话说明安装成功了。 下面可能会是经常出现和遇到的问题： 1.下载http://www.eu.apache.org/dist/jakarta/tomcat-5/ 这里注意，在jakarta-tomcat-5.0.28.exe以前是有默认的admin模块，在jakarta-tomcat-5.5.9.exe则没有安装默认的admin模块，这时http://127.0.0.1:8080/admin打开时则会出现 Tomcat&#8217;s administration web application is no longer installed by default. Download and install the &#8220;admin&#8221; package to use it. 因此我们现在需要下载&#8221;admin&#8221;package 包 把jakarta-tomcat-5.5.x.zip 与 jakarta-tomcat-5.5.x-compat.zip 与 jakarta-tomcat-5.5.x-admin.zip三个文件解压在同一个目录中(如果使用jdk1.4，才需要compat.zip用jdk1.5就可以免了这个。) [FONT-COLOR=Red]如果使用的是JDK1.5+tomcat5.5.12只需要将jakarta-tomcat-5.5.x-admin.zip文件解压到TOMCAT目录即可.[/FONT-COLOR] 2.修改jakarta-tomcat-5.5.x\conf\tomcat-users.xml. 添加管理员账号lizongbo，密码为lizongbopass[FONT-COLOR=Red].(一般在安装Tomcat的同时已提示输入用户名及密码,如果有设置此处可不做修改。)[/FONT-COLOR] 新xml如下： 有时在%CATALINA_HOME%\server\webapps\admin\WEB-INF\web.xml里面也要做些修改 Tomcat Server [...]]]></description>
			<content:encoded><![CDATA[<p>[IMG]upload/sun.gif[/IMG]<br />
今天下载了5.5.12版的TOMCAT,折腾了半天才知道TOMCAT5.0.28之后就没有了默认的admin模块,还以为我的配置哪出错了(花了半小时没找出原因:()。下面是网上当的一些关于TOMCAT配置方面的技巧，对相关的配置方法在没有改动原文的同时也做了适当修改，已红色字标记。目前使用的是最新的jdk为1.5+tomcat5.5.12这里只给出简单的配置。<br />
JDK1.5：<br />
JAVA_HOME=c:\j2sdk1.5<br />
classp&#8230;<br />
<span id="more-278"></span><br />
[IMG]upload/sun.gif[/IMG]<br />
今天下载了5.5.12版的TOMCAT,折腾了半天才知道TOMCAT5.0.28之后就没有了默认的admin模块,还以为我的配置哪出错了(花了半小时没找出原因:()。下面是网上当的一些关于TOMCAT配置方面的技巧，对相关的配置方法在没有改动原文的同时也做了适当修改，已红色字标记。目前使用的是最新的jdk为1.5+tomcat5.5.12这里只给出简单的配置。<br />
JDK1.5：<br />
JAVA_HOME=c:\j2sdk1.5<br />
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;（.;一定不能少，因为它代表当前路径)<br />
path=%JAVA_HOME%\bin</p>
<p>Tomcat 5.5.12:<br />
CATALINA_HOME：c:\tomcat<br />
CATALINA_BASE：c:\tomcat<br />
TOMCAT_HOME: C:\Tomcat<br />
修改classpath，classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet.jar; 启动tomcat，在IE中访问http://localhost:8080，如果看到tomcat的欢迎页面的话说明安装成功了。</p>
<p>下面可能会是经常出现和遇到的问题：<br />
1.下载http://www.eu.apache.org/dist/jakarta/tomcat-5/<br />
这里注意，在jakarta-tomcat-5.0.28.exe以前是有默认的admin模块，在jakarta-tomcat-5.5.9.exe则没有安装默认的admin模块，这时http://127.0.0.1:8080/admin打开时则会出现<br />
Tomcat&#8217;s administration web application is no longer installed by default. Download and install the &#8220;admin&#8221; package to use it.<br />
因此我们现在需要下载&#8221;admin&#8221;package 包<br />
把jakarta-tomcat-5.5.x.zip  与   jakarta-tomcat-5.5.x-compat.zip  与  jakarta-tomcat-5.5.x-admin.zip三个文件解压在同一个目录中(如果使用jdk1.4，才需要compat.zip用jdk1.5就可以免了这个。) [FONT-COLOR=Red]如果使用的是JDK1.5+tomcat5.5.12只需要将jakarta-tomcat-5.5.x-admin.zip文件解压到TOMCAT目录即可.[/FONT-COLOR]</p>
<p>2.修改jakarta-tomcat-5.5.x\conf\tomcat-users.xml.<br />
添加管理员账号lizongbo，密码为lizongbopass[FONT-COLOR=Red].(一般在安装Tomcat的同时已提示输入用户名及密码,如果有设置此处可不做修改。)[/FONT-COLOR]<br />
新xml如下：</p>
<p>有时在%CATALINA_HOME%\server\webapps\admin\WEB-INF\web.xml里面也要做些修改</p>
<p><!-- Security is active on entire directory --></p>
<p>    Tomcat Server Configuration Security Constraint</p>
<p>      Protected Area<br />
      <!-- Define the context-relative URL(s) to be protected --><br />
      *.jsp<br />
      *.do<br />
      *.html</p>
<p>      <!-- Anyone with one of the listed roles may access this area --><br />
      admin</p>
<p>  <!-- Login configuration uses form-based authentication --></p>
<p>    FORM<br />
    Tomcat Server Configuration Form-Based Authentication Area</p>
<form>
<form>/login.jsp</form>
<form>/error.jsp</form>
</p></form>
<p>  <!-- Security roles referenced by this web application --></p>
<p>      The role that is required to log in to the Administration Application</p>
<p>    admin</p>
<p>无论是 Authetication (身份验证还是 Authorization ( 权限管控都只有设置相关的admin ROLE,当你想要新增或修改相关的AA, 就必须修改这一个文件,来符合你的环境.</p>
<p>3.修改jakarta-tomcat-5.5.x\conf\server.xml来解决编码问题。<br />
(给Connector 添加URIEncoding参数，参考http://blog.csdn.net/darkxie/archive/2004/10/25/TOMCATAPP.aspx)<br />
(可以设置成GB18030)</p>
<p>[FONT-COLOR=Red]（这个还是比较头痛的问题，试了几种方法都不是太理想，有待继续解决，maxHttpHeaderSize=&#8221;8192&#8243;）[/FONT-COLOR]</p>
<p>4.启用支持gzip压缩.<br />
(http://www.linuxaid.com.cn/forum/showdoc.jsp?l=1&amp;i=81169)<br />
添加下列属性<br />
 compression=&#8221;on&#8221;<br />
      compressionMinSize=&#8221;2048&#8243;<br />
      noCompressionUserAgents=&#8221;gozilla, traviata&#8221;<br />
      compressableMimeType=&#8221;text/html,text/xml&#8221;</p>
<p>5.设置虚拟主机。<br />
在jakarta-tomcat-5.5.x\下建立文件夹vhost\www.mydomain.com。<br />
然后修改jakarta-tomcat-5.5.x\conf\server.xml</p>
<p>6.添加数据库驱动,更新mail.jar和actiovation.jar<br />
复制mysql-connector-java-3.0.16-ga-bin.jar,pg74.215.jdbc3.jar到 jakarta-tomcat-5.5.x\common\lib\<br />
还有javamail 1.3.2的mail.jar，jaf-1_0_2的 activation.jar<br />
msSQl 2000 JDBC sp3，msbase.jar,msutil,jar,mssqlserver.jar</p>
<p>7.配置SSL<br />
参考 http://jakarta.apache.org/tomcat/tomcat-5.5-doc/ssl-howto.html<br />
D:\j2sdk1.4.2_06\bin&gt;%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA<br />
输入keystore密码：  lizongbossl<br />
您的名字与姓氏是什么？<br />
  [tomcat5.5.x]：  tomcat5.5.x<br />
您的组织单位名称是什么？<br />
  [jakarta]：  jakarta<br />
您的组织名称是什么？<br />
  [apache]：  apache<br />
您所在的城市或区域名称是什么？<br />
  [hzcity]：  hzcity<br />
您所在的州或省份名称是什么？<br />
  [gdp]：  gdp<br />
该单位的两字母国家代码是什么<br />
  [CN]：  CN<br />
CN=tomcat5.5.x, OU=jakarta, O=apache, L=hzcity, ST=gdp, C=CN 正确吗？<br />
  [否]：  y</p>
<p>输入的主密码<br />
        （如果和 keystore 密码相同，按回车）：</p>
<p>(必须密码一致，因此直接回车)<br />
然后再把userhome(例如：C:\Documents and Settings\lizongbo\)下的.keystore复制到<br />
tomcat的conf\目录下。<br />
 (例如：D:\jakarta-tomcat-5.5.x\conf\.keystore<br />
配置jakarta-tomcat-5.5.x\conf\server.xml<br />
加上<br />
     <!--与先前设置的密码一致--></p>
<p>8.禁止文件目录列表，<br />
修改jakarta-tomcat-5.5.x\conf\web.xml，把listing设置为false</p>
<p>        default<br />
        org.apache.catalina.servlets.DefaultServlet</p>
<p>            debug<br />
            0</p>
<p>            listings<br />
            true</p>
<p>        1</p>
<p> 9.指定了自己的javaEncoding<br />
(参考 http://gceclub.sun.com.cn/staticcontent/html/sunone/app7/app7-dg-webapp/ch6/ch6-4.html </p>
<p>        jsp<br />
        org.apache.jasper.servlet.JspServlet</p>
<p>            fork<br />
            false</p>
<p>            javaEncoding<br />
            GB18030</p>
<p>            xpoweredBy<br />
            true</p>
<p>        3</p>
<p> 10.添加rar,iso等的mime-type映射<br />
避免在浏览器里直接打开。</p>
<p>mht<br />
text/x-mht</p>
<p>        rar<br />
        application/octet-stream</p>
<p>        iso<br />
        application/octet-stream</p>
<p>        ape<br />
        application/octet-stream</p>
<p>        rmvb<br />
        application/octet-stream</p>
<p>        ico<br />
        image/x-icon</p>
<p>10.1对html静态页面设置编码</p>
<p>  htm<br />
  text/html;charset=gb2312</p>
<p>  html<br />
  text/html;charset=gb2312</p>
<p>11.添加welcome-file-list，并调整顺序。</p>
<p>        index.jsp<br />
        index.html<br />
        index.htm<br />
        default.html<br />
        default.htm<br />
        default.jsp</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/278/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>eclipse3.1.1版本的中文包!</title>
		<link>http://welog.org/blog/277</link>
		<comments>http://welog.org/blog/277#comments</comments>
		<pubDate>Tue, 11 Oct 2005 20:55:03 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/eclipse311%e7%89%88%e6%9c%ac%e7%9a%84%e4%b8%ad%e6%96%87%e5%8c%85/</guid>
		<description><![CDATA[[IMG]upload/eclipse.gif[/IMG] eclipse中文包以经出来了，3.1.1才更新中文包也就出来了，有需要中文包的可以到官方网站下载。虽然目前用NetBeanst5.0做为IDE，但eclipse也还是要用的。 在到eclipse网站分别是：NLpack1-eclipse-SDK-3.1.1a-win32.zip和NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip二个文件，后者是前者的补充。好像现在的中文包中适合eclipse3&#8230; [IMG]upload/eclipse.gif[/IMG] eclipse中文包以经出来了，3.1.1才更新中文包也就出来了，有需要中文包的可以到官方网站下载。虽然目前用NetBeanst5.0做为IDE，但eclipse也还是要用的。 在到eclipse网站分别是：NLpack1-eclipse-SDK-3.1.1a-win32.zip和NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip二个文件，后者是前者的补充。好像现在的中文包中适合eclipse3.1.1版本，所以大家在更新的时候谨慎处理。其实eclipse3.1.1在功能上与3.1版也没多大的区别，特别是对插件兼容就更不敢恭维了。]]></description>
			<content:encoded><![CDATA[<p>[IMG]upload/eclipse.gif[/IMG]<br />
eclipse中文包以经出来了，3.1.1才更新中文包也就出来了，有需要中文包的可以到官方网站下载。虽然目前用NetBeanst5.0做为IDE，但eclipse也还是要用的。<br />
在到eclipse网站分别是：NLpack1-eclipse-SDK-3.1.1a-win32.zip和NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip二个文件，后者是前者的补充。好像现在的中文包中适合eclipse3&#8230;<br />
<span id="more-277"></span><br />
[IMG]upload/eclipse.gif[/IMG]<br />
eclipse中文包以经出来了，3.1.1才更新中文包也就出来了，有需要中文包的可以到官方网站下载。虽然目前用NetBeanst5.0做为IDE，但eclipse也还是要用的。<br />
在到eclipse网站分别是：NLpack1-eclipse-SDK-3.1.1a-win32.zip和NLpack1_FeatureOverlay-eclipse-SDK-3.1.1.zip二个文件，后者是前者的补充。好像现在的中文包中适合eclipse3.1.1版本，所以大家在更新的时候谨慎处理。其实eclipse3.1.1在功能上与3.1版也没多大的区别，特别是对插件兼容就更不敢恭维了。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/277/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NetBeans 越来越强大了!</title>
		<link>http://welog.org/blog/276</link>
		<comments>http://welog.org/blog/276#comments</comments>
		<pubDate>Mon, 10 Oct 2005 17:34:29 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/netbeans-%e8%b6%8a%e6%9d%a5%e8%b6%8a%e5%bc%ba%e5%a4%a7%e4%ba%86/</guid>
		<description><![CDATA[[IMG]upload/netbeans.gif[/IMG] NetBeans早在上个月就发布了NetBeans5.0测试版，下了一个一直没机会用。今天花了点时间安装试了试,5.0相对于4.1来说新增了不少功能,添加了一些对J2EE 5.0的新功能，J2SE 5.0的发布，几乎同时NetBeans就宣布了全面的新语法支持，并且发布了新的4.0版，以及同JDK的捆绑版；而Eclipse则花了相当一段时间来完善对J2SE 5.0新语法的兼容(Eclipse也在前几天发布&#8230; [IMG]upload/netbeans.gif[/IMG] NetBeans早在上个月就发布了NetBeans5.0测试版，下了一个一直没机会用。今天花了点时间安装试了试,5.0相对于4.1来说新增了不少功能,添加了一些对J2EE 5.0的新功能，J2SE 5.0的发布，几乎同时NetBeans就宣布了全面的新语法支持，并且发布了新的4.0版，以及同JDK的捆绑版；而Eclipse则花了相当一段时间来完善对J2SE 5.0新语法的兼容(Eclipse也在前几天发布了3.1的升级包,不知道都对哪些有所改进,[URL=http://www.b9527.net/?q=node/861]老康[/URL]那里有相关的介绍)，并且至今还没有哪个release版本的Eclipse JDT宣称100%支持J2SE 5.0。 5.0版引入了针对开发IDE模块的插件以及基于NetBeans平台的胖客户端应用的全面支持，新的直觉式GUI创建器Matisse，新的并且经过重新设计的对CVS的支持. Web框架:你可以很轻松地在5.0中使用JSF和Struts,5.0版在重构方面做了很大的强化。 5.0添加了JBoss 4和WebLogic 9支持,和在4.1中布署sjsas和tomcat一样的简单方便。 5.0版加强了对plugin的支持. 从体系结构上讲，Eclipse和NetBeans基本上走的是一致的路线：Platform + Java IDE + Plugins，也许最大的不同是Eclipse在某种程度上鼓励使用SWT，而NetBeans则是更&#8221;纯&#8221;的AWT/Swing。 Eclipse我也一直在用,但怕了每次更新电脑都要重新整理,搞得晕头转向,而NetBeans5.0比较干净些,加上现在支持plugin,应该够我用了.先试段时间吧,期待5.0的正式版&#8230;&#8230;.]]></description>
			<content:encoded><![CDATA[<p>[IMG]upload/netbeans.gif[/IMG]<br />
NetBeans早在上个月就发布了NetBeans5.0测试版，下了一个一直没机会用。今天花了点时间安装试了试,5.0相对于4.1来说新增了不少功能,添加了一些对J2EE 5.0的新功能，J2SE 5.0的发布，几乎同时NetBeans就宣布了全面的新语法支持，并且发布了新的4.0版，以及同JDK的捆绑版；而Eclipse则花了相当一段时间来完善对J2SE 5.0新语法的兼容(Eclipse也在前几天发布&#8230;<br />
<span id="more-276"></span><br />
[IMG]upload/netbeans.gif[/IMG]<br />
NetBeans早在上个月就发布了NetBeans5.0测试版，下了一个一直没机会用。今天花了点时间安装试了试,5.0相对于4.1来说新增了不少功能,添加了一些对J2EE 5.0的新功能，J2SE 5.0的发布，几乎同时NetBeans就宣布了全面的新语法支持，并且发布了新的4.0版，以及同JDK的捆绑版；而Eclipse则花了相当一段时间来完善对J2SE 5.0新语法的兼容(Eclipse也在前几天发布了3.1的升级包,不知道都对哪些有所改进,[URL=http://www.b9527.net/?q=node/861]老康[/URL]那里有相关的介绍)，并且至今还没有哪个release版本的Eclipse JDT宣称100%支持J2SE 5.0。<br />
    5.0版引入了针对开发IDE模块的插件以及基于NetBeans平台的胖客户端应用的全面支持，新的直觉式GUI创建器Matisse，新的并且经过重新设计的对CVS的支持.<br />
    Web框架:你可以很轻松地在5.0中使用JSF和Struts,5.0版在重构方面做了很大的强化。<br />
    5.0添加了JBoss 4和WebLogic 9支持,和在4.1中布署sjsas和tomcat一样的简单方便。<br />
    5.0版加强了对plugin的支持.</p>
<p>    从体系结构上讲，Eclipse和NetBeans基本上走的是一致的路线：Platform + Java IDE + Plugins，也许最大的不同是Eclipse在某种程度上鼓励使用SWT，而NetBeans则是更&#8221;纯&#8221;的AWT/Swing。<br />
Eclipse我也一直在用,但怕了每次更新电脑都要重新整理,搞得晕头转向,而NetBeans5.0比较干净些,加上现在支持plugin,应该够我用了.先试段时间吧,期待5.0的正式版&#8230;&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/276/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>WPS 回来了,大家支持民族软件！</title>
		<link>http://welog.org/blog/273</link>
		<comments>http://welog.org/blog/273#comments</comments>
		<pubDate>Fri, 23 Sep 2005 18:45:20 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/wps-%e5%9b%9e%e6%9d%a5%e4%ba%86%e5%a4%a7%e5%ae%b6%e6%94%af%e6%8c%81%e6%b0%91%e6%97%8f%e8%bd%af%e4%bb%b6%ef%bc%81/</guid>
		<description><![CDATA[[IMG]upload/wps2005.gif[/IMG] 这期的电脑报上星期日就到了,但一直放在桌面上没有时间看，以至于这期的都快到了，晕！在上期的内容很精彩，有ＩＴ业的西湖论剑，有Web2.0定义的对决，同时也是电脑报2006的试刊提前尝鲜。但这中间WPS这个让我们快遗忘了的曾经辉煌的Office又重新回来了,9.12日金山公司花了二年时间重新编写的WPS2005发布会，的确很佩服求伯君的执着、雷军的坚韧，在这个Microsoft office大行其道、在这个到处圈钱的年代还能把wps重新带回来，有这样的精神就值得我们敬佩![FONT-COLOR=Red][B]支持民族软件,同时也希望WPS再创巅峰!!!!!!![/B][/FONT-COLOR] [IMG]upload/wps2005.gif[/IMG] 这期的电脑报上星期日就到了,但一直放在桌面上没有时间看，以至于这期的都快到了，晕！在上期的内容很精彩，有ＩＴ业的西湖论剑，有Web2.0定义的对决，同时也是电脑报2006的试刊提前尝鲜。但这中间WPS这个让我们快遗忘了的曾经[URL=http://www.kingsoft.com/news/wpsnews/2005/09/21/65838.shtml]辉煌的Office又重新回来了[/URL],9.12日金山公司花了二年时间重新编写的WPS2005发布会，的确很佩服求伯君的执着、雷军的坚韧，在这个Microsoft office大行其道、在这个到处圈钱的年代还能把wps重新带回来，有这样的精神就值得我们敬佩,民族软件就要有像他们这样的执着的人。所以我得花点口水像大家推荐了&#8230;&#8230; 大家还记得wps1.0吗？这个当时辉煌一时的文字处理软件。我记得我刚入门电脑的时候用的就是wps的文字处理系统，而且当时的操作系统还是windows1.0，在漆黑的电脑屏上能用上有色的wps，当时好不兴奋．哈哈 这里是Wps的从1.0到现在的2005所有的版本图片。 [ALIGN-CENTER][IMG]http://img.kingsoft.com/publish/wps/special/review/images/wps01.jpg[/IMG] 国内早期接触计算机的人们一定非常熟悉这个界面[/ALIGN-CENTER] [ALIGN-center][IMG]http://img.kingsoft.com/publish/wps/special/review/images/wps03.jpg[/IMG] “盘古组件”标志着WPS向Windows平台的过渡(这个组件的失败对金山的打击很大)[/ALIGN-center] [ALIGN-center][IMG]http://img.kingsoft.com/publish/wps/img/0915/1994WPSNT.jpg[/IMG] 1994年WPS-NT产品包装图[/ALIGN-center] [ALIGN-CENTER][IMG]http://img.kingsoft.com/publish/wps/img/0915/1995pan.jpg[/IMG] 1995盘古办公系统包装图[/ALIGN-CENTER] [ALIGN-CENTER][IMG]http://img.kingsoft.com/publish/wps/img/0915/1997WPS97.jpg[/IMG] 1997WPS 97（专业版）[/ALIGN-CENTER] [ALIGN-CENTER] [IMG]http://img.kingsoft.com/publish/wps/special/review/images/wps05.jpg[/IMG] WPS2000[/ALIGN-CENTER] [ALIGN-CENTER][IMG]http://img.kingsoft.com/publish/wps/special/review/images/wps09.jpg[/IMG] WPS2003[/ALIGN-CENTER] [ALIGN-CENTER][IMG]http://img.kingsoft.com/publish/wps/special/review/images/wps10.jpg[/IMG] WPS2005[/ALIGN-CENTER] 金山用决胜巅峰之作来形容wps2005！是的，在这个人人用着Microsoft office的年代想让用户重新倒向WPS不是件容易的事，从wps2000到目前金山基本失去了国内大部分用户，有种“不成功，则成仁”的感觉。 这次的Wps 2005有很多特点： 1、件面完全克隆了Microsoft office。(谁让我们的用户对Microsoft office的感谢深呢？) 2、WPS2005体积很小,全套也只有15MB。Microsoft office现在都快进1GB了。(对于网络时候的人们这是个很好的想法，不用每次打开文档时到处找下载)。 3、目前wps2005全部免费下载,正版也只要20元. 4、完全兼容Microsoft office格式！(可惜的是没有数据库，这样一来我有时要用到acssas就不得不再装上Microsoft office，那样就可以完全舍弃Microsoft office了) 5、随需应动、无限扩展 跨Windows和Linux平台应用，二次开发接口高达250个类，无限扩展用户个性化定制和应用开发的需求 wps2005是回来了，但前题是她要把我们的用户也带回来，这么多有特色的功能，加上体恤用户，基本和microsoft没什么二样。大家还等什么，赶快[URL=http://telecom.kingbt.fds.kdn.kingsoft.com/union/emb/misc/d120wps60.12012.0.exe]下载[/URL]吧！[FONT-COLOR=Red][B]支持民族软件,同时也希望WPS再创巅峰!!!!!!![/B][/FONT-COLOR]]]></description>
			<content:encoded><![CDATA[<p>[IMG]upload/wps2005.gif[/IMG]<br />
这期的电脑报上星期日就到了,但一直放在桌面上没有时间看，以至于这期的都快到了，晕！在上期的内容很精彩，有ＩＴ业的西湖论剑，有Web2.0定义的对决，同时也是电脑报2006的试刊提前尝鲜。但这中间WPS这个让我们快遗忘了的曾经辉煌的Office又重新回来了,9.12日金山公司花了二年时间重新编写的WPS2005发布会，的确很佩服求伯君的执着、雷军的坚韧，在这个Microsoft office大行其道、在这个到处圈钱的年代还能把wps重新带回来，有这样的精神就值得我们敬佩![FONT-COLOR=Red][B]支持民族软件,同时也希望WPS再创巅峰!!!!!!![/B][/FONT-COLOR]<br />
<span id="more-273"></span><br />
[IMG]upload/wps2005.gif[/IMG]<br />
这期的电脑报上星期日就到了,但一直放在桌面上没有时间看，以至于这期的都快到了，晕！在上期的内容很精彩，有ＩＴ业的西湖论剑，有Web2.0定义的对决，同时也是电脑报2006的试刊提前尝鲜。但这中间WPS这个让我们快遗忘了的曾经[URL=http://www.kingsoft.com/news/wpsnews/2005/09/21/65838.shtml]辉煌的Office又重新回来了[/URL],9.12日金山公司花了二年时间重新编写的WPS2005发布会，的确很佩服求伯君的执着、雷军的坚韧，在这个Microsoft office大行其道、在这个到处圈钱的年代还能把wps重新带回来，有这样的精神就值得我们敬佩,民族软件就要有像他们这样的执着的人。所以我得花点口水像大家推荐了&#8230;&#8230;<br />
大家还记得wps1.0吗？这个当时辉煌一时的文字处理软件。我记得我刚入门电脑的时候用的就是wps的文字处理系统，而且当时的操作系统还是windows1.0，在漆黑的电脑屏上能用上有色的wps，当时好不兴奋．哈哈<br />
这里是Wps的从1.0到现在的2005所有的版本图片。<br />
[ALIGN-CENTER][IMG]http://img.kingsoft.com/publish/wps/special/review/images/wps01.jpg[/IMG]<br />
国内早期接触计算机的人们一定非常熟悉这个界面[/ALIGN-CENTER]</p>
<p>[ALIGN-center][IMG]http://img.kingsoft.com/publish/wps/special/review/images/wps03.jpg[/IMG]<br />
“盘古组件”标志着WPS向Windows平台的过渡(这个组件的失败对金山的打击很大)[/ALIGN-center]</p>
<p>[ALIGN-center][IMG]http://img.kingsoft.com/publish/wps/img/0915/1994WPSNT.jpg[/IMG]<br />
1994年WPS-NT产品包装图[/ALIGN-center]</p>
<p>[ALIGN-CENTER][IMG]http://img.kingsoft.com/publish/wps/img/0915/1995pan.jpg[/IMG]<br />
1995盘古办公系统包装图[/ALIGN-CENTER]</p>
<p>[ALIGN-CENTER][IMG]http://img.kingsoft.com/publish/wps/img/0915/1997WPS97.jpg[/IMG]<br />
1997WPS 97（专业版）[/ALIGN-CENTER]</p>
<p>[ALIGN-CENTER]<br />
[IMG]http://img.kingsoft.com/publish/wps/special/review/images/wps05.jpg[/IMG]<br />
WPS2000[/ALIGN-CENTER]</p>
<p>[ALIGN-CENTER][IMG]http://img.kingsoft.com/publish/wps/special/review/images/wps09.jpg[/IMG]<br />
WPS2003[/ALIGN-CENTER]</p>
<p>[ALIGN-CENTER][IMG]http://img.kingsoft.com/publish/wps/special/review/images/wps10.jpg[/IMG]<br />
WPS2005[/ALIGN-CENTER]</p>
<p>金山用决胜巅峰之作来形容wps2005！是的，在这个人人用着Microsoft office的年代想让用户重新倒向WPS不是件容易的事，从wps2000到目前金山基本失去了国内大部分用户，有种“不成功，则成仁”的感觉。<br />
这次的Wps 2005有很多特点：<br />
1、件面完全克隆了Microsoft office。(谁让我们的用户对Microsoft office的感谢深呢？)<br />
2、WPS2005体积很小,全套也只有15MB。Microsoft office现在都快进1GB了。(对于网络时候的人们这是个很好的想法，不用每次打开文档时到处找下载)。<br />
3、目前wps2005全部免费下载,正版也只要20元.<br />
4、完全兼容Microsoft office格式！(可惜的是没有数据库，这样一来我有时要用到acssas就不得不再装上Microsoft office，那样就可以完全舍弃Microsoft office了)<br />
5、随需应动、无限扩展<br />
跨Windows和Linux平台应用，二次开发接口高达250个类，无限扩展用户个性化定制和应用开发的需求</p>
<p>wps2005是回来了，但前题是她要把我们的用户也带回来，这么多有特色的功能，加上体恤用户，基本和microsoft没什么二样。大家还等什么，赶快[URL=http://telecom.kingbt.fds.kdn.kingsoft.com/union/emb/misc/d120wps60.12012.0.exe]下载[/URL]吧！[FONT-COLOR=Red][B]支持民族软件,同时也希望WPS再创巅峰!!!!!!![/B][/FONT-COLOR]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/273/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>李敖北大演讲全文（完整修订版）</title>
		<link>http://welog.org/blog/272</link>
		<comments>http://welog.org/blog/272#comments</comments>
		<pubDate>Fri, 23 Sep 2005 05:45:46 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e6%9d%8e%e6%95%96%e5%8c%97%e5%a4%a7%e6%bc%94%e8%ae%b2%e5%85%a8%e6%96%87%ef%bc%88%e5%ae%8c%e6%95%b4%e4%bf%ae%e8%ae%a2%e7%89%88%ef%bc%89/</guid>
		<description><![CDATA[今天下载了凤凰卫视版的李敖北大演讲的视屏文件[URL=http://bbmedia.qq.com/media/news/200509/0921liaobeida1.wmv](如果有兴趣的朋友可以下载看下)[/URL],不过都说视屏文件不是完整版，晚上看到有整理过的演讲全文(根据凤凰卫视直播视频及文字记录稿整理)。哈哈，李敖还真是厉害，把个北大校长及主任折腾得够戗（一场演讲而已，何必整成这副德行）。国人缺什么？缺的就是这种有胆量、敢说话的人! （2005年9月21日上午，北京大学世纪讲堂） 　　各位终于看到我了。（笑声，掌声） 　　主任，校长，总裁，（笑声）各位贵宾，各位老师，各位小朋友！（笑声） 　　来演讲紧不紧张，紧张，站在大庭广众面前，很多人，他可以指挥千军万马的军队，可是你让他讲几句话，他就song2了，不敢讲话。什么原因？胆小。美国打赢南北战争的将军格兰特，指挥千军万马打赢仗，林肯总统请他上台，给他勋章，让他讲几句话，他讲不出口。为什么？怕这玩意，一讲演就紧张。 　　前天晚上我编了一个故事，迷糊做梦的时候编了个故事：北京大学一个女孩子进了一个小房间，忽然看到一个男的在这个小房间里面，嘴巴里面念念有词，来回走动。这个女孩子就问他：“你在干吗？”他说我在背讲演稿。她说你在哪儿讲演，他说我要在北京大学讲演。女孩子问说你紧张吗，他说我不紧张。女孩子说：如果你不紧张，为什么你到女厕所来干什么。（笑声，掌声）这个人就是连战。（笑声，掌声） 　　台湾有一位歌星，很有名的女人，叫做崔台菁。你们不晓得这三个字的意思：崔是吹牛，台是台湾人，菁是青年人。台湾要靠混，靠这个能吹牛，又是台湾人，又是青年人来混，连战就是这种人。（笑声）他可以糊弄别人，糊弄不到我们可以糊弄你们，至少前一阵子糊弄你们。（笑声）今天一个重要的标准就是：你们觉得，任何人觉得连战讲演好的人，我就要警告你们了，（笑声）今天你们可能很失望。为什么呢？因为我无法花一个小时把你这个观念转过来，就是你已经上了连战的当以后，我很难把你转过来。（笑声，掌声） 　　我在这儿埋怨一个人，埋怨我的老板，凤凰电视台的刘长乐先生。（笑声）为什么要埋怨他，他把我鼓秋到北京来——（笑声）对不起，我一看到你们就讲了很多的乡音——鼓秋到北京来。可是我已经在中国大陆，在凤凰电视台上讲了有四百多场，你们对我相当的熟悉，用一个熟悉的眼光来看我，我今天要把这个讲演讲成功，这个是高难度的，你们对连战完全不了解，你们看到他吗。（笑声，掌声）所以对我熟悉，对我是个困难，这个困难是刘长乐老板造成的，所以我今天有所抱怨。 　　现在总要开始讲正题了。罗马教皇——现在说罗马教宗，我们那个时候，老一辈的人，还叫罗马教皇——庇护十二讲了一句话，他说你演讲的时候不能用稿子。为什么不能用稿子，用稿子表示你记不住，如果你自己都记不住，你怎么样让听众记得住呢？你这个演讲就失败了。所以大家看好，没稿子（敞开西装让观众看）（笑声，掌声），也没有小抄，可是我带了一些证据是有的，等一下会显摆证据。 　　我必须跟大家说：接下这个演讲的时候是刘长乐老板告诉我，一五一十，规格都告诉我。最后我就问他一句话，把他问得愣住了。我说有没有铺红地毯，我进门的时候有没有红地毯，他说你没有，克林顿有，连战有，你没有。我说为什么我没有，他说……（此时外面传来一阵喊声，）——他们是赞美我还是抗议啊？（笑声）——我说为什么我没有，他说，北大尊敬你，把你当成学术演讲，所以不铺红地毯。（回头问）校长，是不是这个意思？（笑声）主任呢，是不是？我说好，我就是在做学术演讲，讲得好就是学术演讲，讲不好，讲一半，铺红地毯还来得及啊。（笑声，掌声） 　　为什么我要这样说？因为不然人家说：北京大学势利眼，怎么可以给李敖不铺红地毯，给那些当官的，或者政治人物铺红地毯。大家知道，我在这儿，很多人眼睛看着我，说你李敖骂过国民党，骂过民进党，骂过老美，骂过小日本，今天你在北京，你敢不敢骂***。（笑声）看，很多人不怀好意哦，你看幸灾乐祸看着我。（笑声）我告诉你，我先不骂***，我先赞美***和国民党曾经打倒的一个势力，那个就是北洋军阀。为什么赞美北洋军阀？大家知道吗：北京大学怎么出来的？北洋军阀。什么人叫蔡元培校长做北京大学校长？那个时候蔡元培是国民党员的身份，是北洋军阀。北洋军阀有这个肚量把全国最好的这个大学交给跟他敌对的一个政治势力的手里，那个就是黎元鸿当时干的事情。我们现在骂北洋军阀，我们有什么资格骂北洋军阀呢？北洋军阀比我们肚量宽大得不得了。今天，除非把我李敖放这儿来做北大校长，（笑声）——对不起好像在抢副校长的位置——否则，我们就不要骂北洋军阀，我们要做历史性的反省。 　　今天我在这儿跟大家谈一些事情。我来出发以前，各方友好都劝着我，拉着我：这话别提，那话别说，都是这个话。刚才我在主任面前还讲了一句话，我说我来北大讲演分两类：一类呢就是金刚怒目，另外一类呢就菩萨低眉。你们待我还不错，今天开始菩萨一点儿。（笑声） 　　我看到有人不笑。为什么不笑？因为放不开。为什么放不开？心里有顾忌。我跟大家谈一件事情，在克林顿站在这个位置上的时候，他很大胆地引用了一句话，就是他说以前北京大学一位教授叫做胡适讲了一段话。这段话就是说：有人说你要为了国家牺牲你个人的自由，可是胡适说：争取你个人的自由，就是争取国家的自由。克林顿引证这句话的时候没引证完，他身边的那些顾问有问题。下边还一句话没引到，就是说，胡适说，一个真正的开明进步的国家，不是一群奴才造成的，是要有独立个性，有自由思考的人造成的。所以克林顿的演讲引证有错误。后来又来了一个人，又是连战，他在这个讲演场里面提到了四个字，有点犯忌讳的，可是事实上他提到了，叫做“自由主义”。各位，连战对自由主义的解释完全错误，他轻描淡写地说胡适把自由主义带到台湾，所以台湾有一股自由主义的学风，在学校里面流传下来了。我告诉各位，没这个事儿，没有人敢这样做，包括连战，他们都不敢这样做。所以自由主义这四个字虽然在连战的演讲里面，在北大的讲台上面出现了，我告诉你，没有这个东西。很多人说我李敖是自由主义者，说你自由主义者你在大陆，你在***统治的地区，我们要看你讲什么话，你要不要宣传自由主义。我告诉大家：我要宣传，可是内容跟你们所了解的有出入。什么是自由主义？自由主义我们看到学理上来讲，你出一本书，他出一本书，学理上非常的高深。对我而言，没那么复杂，自由主义只是两个部分：一部分是反求诸己的部分，一个部分是反求诸宪法的部分。 　　什么叫做反求诸己？我给大家讲一个故事。台湾过去在清朝统治之前是给郑成功来统治，这是了不起的中国民族英雄。郑成功他爸爸投降了，郑成功不肯投降，郑成功妈妈在福建被清朝的兵轮奸了。郑成功很痛苦，发现母亲被轮奸了，怎么办？我告诉你他怎么办，他把他母亲身体切开，注意啊，用水冲，冲洗他的母亲的尸体。他认为他母亲被轮奸以后，脏，这个女人脏了，他的母亲脏了。我们说奸污，奸是一个动作，污是一个结果。被奸污了，什么办法呢？用水来冲才能够解开郑成功自己心头的这个压力和痛苦，各位想想看。 　　在五四时代，在新文化运动时代，有一个问题只有胡适先生解决了，别人解决不了。就是有一个北大学生提出来，说他的一个朋友的姐姐被土匪抢走了，绑票了，当然，也发生了刚才我所说的那种不幸的结果。问北大的这些思想家们：你们怎么样解释这个现象？大家解释不出来，胡适先生做出解释。他说，如果有男人要讨这个被害的女孩子做太太，我们要尊敬这个男的。这是胡先生的话。胡先生意思是说：一个女人被强暴了，在生理上其实变化很小，手被撞了一下，被割了一下；心理上难过，所以如果有这个男的能够破除这种情节，这个男的了不起，我们应该尊敬他。 　　从郑成功的例子到胡适的例子，大家想想看，就是我们当自己被困扰的时候，我们如何能够解开。 　　俄国一个有名的小说家叫库普林，他写过一个小说《亚玛》。《亚玛》什么故事呢？是一个俄国的妓院里面，大家都在接客，忽然来了一个女孩子，如花似玉，漂亮得要死。当然很多人愿意跟她上床，她也赚了好多钱，红得不得了，一代名妓。有一天她跟其他的妓女聊天，她说：“姐妹们你们知道吗？我还是处女，我是处女啊。”那些姐妹们大家都笑起来，咯儿咯儿笑起来，说：“你是什么处女啊？我们整天卖的是什么？你怎么是处女啊？”这个女孩子说：“你们知道我是干什么的？我是***。为了我的党，为了我的主义，我们需要钱，需要我来卖，赚的这个钱来帮助我们的党。我们俄国要革命，我是在做一件伟大的卖身，可是我的精神上，我是处女。你们不了解我。” 　　大家注意到，有人说是唯物主义，你李敖站在这里，谈的全是唯心的。唯心主义，当我觉得我不是妓女，我就是处女，这是高度的唯心。有人会问我：你这话是不是跟马克思不同啊？我告诉大家：马克思就是一个典型的唯心论者。你们以为他唯物吗？我认为他唯心，尤其他抄别人东西的时候更唯心。（笑声）你们说：你李敖说马克思——我们北大还有学院，马克思学院（回头向主持人确认）——抄什么东西啊？大家核对核对看。英国的首相格兰斯顿演讲，马克思《资本论》里面引证，捏造了格兰斯顿的话，格兰斯顿没讲过这个话。亚当·斯密的一些话，马克思引证，没有讲过这些话。马克思说“工人无祖国”，这句话不是马克思说的，这句话是法国大革命时候那个英雄马拉讲的话。为什么我们这样都被马克思给骗了还不觉得呢？最重要的是，1890年8月5号，马克思的好朋友恩格斯写封信给舒密特，里面一段话说：马克思亲口告诉他，马克思不是马克思主义者。马克思自己都不信马克思主义，我们那么急干嘛？ 　　这话说来大家好像都不太笑，我告诉你：这就是我感到难过的一点。为什么？讲演者在这里最怕四样事情。第一样事情：人不来听；第二件事情：来听了跑去小便；第三个：小便以后不回来；（笑声）第四个：不鼓掌。（掌声）世界三大男高音，里面有个大胖子，他跟我同岁；那中间还有一个中胖子，叫做多明戈。多明戈一上台就这个姿势（扬起双臂），干什么？请你们鼓掌。为什么不鼓掌，因为我讲话太传神了，你们都忘了鼓掌了。鼓一次掌吧！（掌声）你们不习惯我这种讲话的方式，可是我必须说，我在讲这种方式。 　　今天我站在这里，大家说：你要不要骂***？刚才我说过，我先替北洋军阀讲了好话，让我替***讲一句好说。说你怎么这样敢替***讲好话？为什么我不敢？当***做了好事的时候，或者说，它没有做坏事的时候，我们为什么不把真相把它澄清出来？谁说***不许别人讲话？我抓一本书给你们看。谁说***不许讲话，（拿书）《毛泽东文集》：——当然你们会笑我：你在打着红旗反红旗，其实不是。我给你们看一段蛮有趣的，这一段你们可能都不看，我念一段给你们听——“我们有些同志听不得相反的意见，批评不得，这是很不对的。（笑声，掌声）有了错，一定要自我批评，要让人家讲话，让人批评。不负责任，怕负责任，不许人讲话，老虎屁股摸不得，凡是采取这种态度的人，十个就要十个失败。人总是要讲的，你老虎屁股摸不得吗？偏要摸。”（掌声）今天我在这儿，摸了老虎屁股，可是大家不要忘记：是老虎让我们摸它屁股的。（笑声） 　　这话你怎么讲啊？今天你们以为我在谈自由主义吗？我今天跟大家做一个重大的宣誓：我李敖放弃自由主义。为什么？我告诉大家，从18世纪19世纪以来，人类所梦想追求的自由主义那种追求方法都是这个自由那个自由。可是大家忘了，自由主义最重要的，刚才我说过，第一个层面是你心灵能不能解放。如果你心灵是郑成功式的，那你会把你自己困死，把你死掉的那个妈也整死，对不对？所以我认为心灵开放是重要的，这一部分自由主义叫做反求诸己，都是你自个的事情，你自个没有一个改革开放的自己，永远困扰自己。所以我说，真正的自由主义者没有人想做，因为太痛苦了，因为太难了，要有很高的文化水平才能做自由主义者，所以自由主义这一段叫做反求诸己的。反求诸己成功了，我自己才知道：我不是郑成功，我可能是那个《亚玛》里面的窑子，那个卖东西的窑子，就是我是处女，这是个重要的自由主义的部分。 　　另外一部分在什么呢？就是跟政府的关系，政府老是限制我们。我们人民对政府的关系有几种方式。第一种方式——你们北京话还好吗？有我好吗？大家说乡音未改，我没改，可能你们已经改了。为什么你们改了？北京变大了。很多三河县这些地方的声音混到北京话来了，所以你们讲的没有我讲的纯。——我告诉你，人民跟政府的关系，第一个关系就是政府这么坏，我不要活了，我ger3了。（笑声，掌声）什么人ger3了？你看，屈原就是，政府不好，我ger3了。（笑声）辛亥革命以前的杨笃生在英国跳海，就是我ger3了，我不要活了。最有名的一个英国的故事，一位英国的议员叫Aster，A-s-t-e-r，这个女的，她跟另外一个议员，有名的，叫做丘吉尔，吵架。Aster说：“你太可恶了。如果我是你太太，我就弄杯毒药给你。”丘吉尔说：“如果我是你丈夫，这毒药我就喝。”（笑声）这就是：我不要活了，有你这种太太我不要活了。所以，政府跟人民的关系，第一个关系，就是说：你政府太坏了，我ger3了，我不要活了。伯夷、叔齐最后饿死在首阳之山，就是ger3了。 　　第二个感觉是什么？是我颠儿了，什么颠儿了？就是跑了，撒丫子就跑。为什么颠儿了？我玩不过你。孔子说：危邦不入，乱邦不居。我走了，我去做美国人了，我不要跟你们在一起。在座的我的女儿，李文，Hedy Lee，就是这种类型的人。（笑声） 　　第三种呢？第三种就是什么？ger3了，颠儿了，第三种就是der2了。什么叫der2了？有一个台湾人，他住在北京很久，住在雍和宫附近，讲了一口京片子。他到北京大学来作客，副校长他们也照应过他，叫做林云，是个妖僧。他在答录机里面，你给他通电话，答录机，他说我是林云，我不在家，等会儿这个答录机der2一响，你就开始录音，你要告诉我的话，你就把它录进去。就是der2了，什么叫der2了，der2了就是说：你找不到我，你找不着我了，我猫起来了，你要找我找不到。中国的标准里面，是做隐士。这就在ger3了，颠儿了，der2了一种关系就是我藏起来了。（笑声）诸葛亮不就是der2了吗？可刘备找着他了，所以就不der2了。（笑声，掌声） 　　第四种是什么？第四种：song2了。什么叫song2？小时候我们在北京斗蛐蛐，就是蟋蟀，用老鼠的胡子逗它。斗来斗去，一个蟋蟀打不过另外一个了，你怎么逗它，它都不打，就是song2了。song2了就是：蔫了，我怕你了，我不跟你玩了。就是人民对政府态度：我怕你，我不跟你玩。 　　第五种是什么？第五种就是翻儿了。我火了，我跟你干上了，我气，生气了。什么时候会翻儿了？我告诉你：人民忍无可忍的时候，再找到一个节骨眼的题目就会翻儿。在1932年，美国就发生这么件事情：在第一次世界大战的时候，很多美国军人打死了。1918年世界大战结束，很多兵回来了，没打死，跟政府说：要钱，赔我们钱。政府说，你们现在年轻力壮，现在不给，到1945年，你们老了，再给这个钱。大家一听说，也好。结果1932年美国发生经济大恐慌，出事了。这些老兵憋不住了，跑到华盛顿广场，大家集合，由早到晚，由日到夜，由今天到明儿个，都不解散。中央政府广场被占领，好说歹说都不解散。所谓爱好人权、尊重人权的美国人，他们干什么？开出坦克车，一个将军叫做麦克阿瑟元帅，下边带了一个少将叫做巴顿将军，巴顿将军下边带了一个少校叫做艾森豪威尔，（笑声）干什么？开枪，放毒气，坦克车冲出来，多少人死掉了。为什么？政府不能忍耐人民在他的中央政府的广场里面盘踞不去。这种情形是美国的情形吗？是吗？不然。我给大家看看一个资料，大家看，这不是小抄。告诉你们这是什么东西：这就是当年《纽约时报》的头条新闻，（拿资料）讲到怎么样的开枪。你们看不清楚，没关系，反正证据在这儿，一会儿主任、校长，你们可以证明，这是真的，真玩意儿。（拿资料）看这个表，1932年美国，群众在中央政府盘踞不去，政府开枪；1953年德国，群众盘踞不去，开枪；1956年匈牙利，群众盘踞不去，开枪；1968年捷克，群众盘踞不去，开枪；1970年，美国又来了，又开枪。1970年，在美国Kent大学，K-e-n-t，Kent大学，开枪。你们看看那个有名的画片：学生躺在地上流血，一个小女孩在哭，得过普利策的新闻奖，就是这样。全世界任何政府在这个时候都是王八蛋。开枪对不对，当然不对，可是我们作为人民要想：逼他开枪，向住了，局面造成了，我们逼他开枪，我们要不要反省？我们为什么这么笨啊？太笨了。说有没有聪明的方法呢？我跟大家说什么是聪明的方法。 　　人民对政府不满，刚才我讲了，那五个样子。那五个情况都是消极的。消极的方法你不能够把政府摆平，你自己跟着受害。说我们争取言论自由，我告诉大家，没有人比我李敖，古往今来，争取言论自由最多的，我写过100多本书，有96本被查禁。（掌声）全世界古往今来古今中外，有没有一个人这么有耐心，锲而不舍，写了这么多禁书，而有这么一个王八蛋政府就盯着他不放，查禁他。我把我被查禁的书：书名、出版年月、被查禁的号码、被查禁的罪状，列了一个表。你们看看这个表，被查禁的表，有多长。你们看（展开手中的纸卷，几米长）（掌声）中国人讲著作等身，我长的个，高得跟我的书一边高：著作等身。当然，武大郎最容易著作等身。（笑声）我这个表已经超过我的身高了，能证明什么？我坐牢就坐牢，你们说，你有抱怨，你抱个屁怨，抱什么怨？有种写文章，干！你对***不满，写文章跟它干，大不了坐牢，坐吧。你们不愿意。为什么？聪明了。觉得你李敖傻，那么多年牢坐着干嘛。为什么？我们现在知道，有种觉悟。我告诉大家，我这书，写了这么多禁书并不能卖，写了以后就被抢走了。怎么办呢？在二渠道、三渠道……一百渠道，地摊上，跟那些黄色书刊一起卖。（笑声，掌声）为了一起卖，鱼目混珠，所以我出的书都是来个屁股，（举书）都是这样的，看起来很凉快，就是这种书。（笑声，掌声）我的读者根本不是我的读者，他是买黄色书刊，买错了就变成我的读者。（笑声，掌声）所以，我的读者里面有些人是色情狂。（笑声）你们有没有，我不知道，我来的那地方有这种现象。 　　我告诉大家，写言论自由争取以外是这个下场。那么我们革命了！项羽可以这样喊，楚霸王这样喊，你不能这样喊；李自成也可以这样喊，你不能这样喊。为什么？项羽楚霸王用的武器，李自成用的武器，跟统治者差不多：你有一把刀，我有一把刀；你一把扎枪，我一把扎枪；差不多。现在全世界任何政府的统治者，他来了，机关枪，哒哒哒，坦克车，咔咔咔，怎样？一点儿招都没有，输了。所以我说，人民要聪明，争取自由要靠智慧。大家看我那本小说写《北京法源寺》，今天下午我要去法源寺去看看，从来没去过那地方。为什么没去过能把这个小说写得神龙活现？这就是文学家嘛，就干这个的嘛。（笑声，掌声） 　　我讲我心里话给你们听，我一回头看，除了我们的刘长乐老板以外，主任跟校长都不太笑。（笑声）我一回头看，有点紧张。（笑声）他们不算本领，我告诉你，我在内地最佩服的一个人，姓丁，丁大官人，叫丁关根。你跟他讲，你跟他讨论问题绝对不笑，脸绷着一路绷到底，（笑声）我真的佩服。（掌声）中国历史上有个人，丁关根一样了不起的，叫包公。（笑声）包公特色就是不笑，所以宋朝人当时的谚语说“包丞笑，黄河清”，包公笑的时候，黄河都不浊了，水都清了，不可能的事情。 　　我今天要谈言论自由，大家怕这玩意儿，其实有什么好怕的？我举例给大家看，什么东西要开放言论自由，会更安全。今天，我今天在这儿，最要讲的一句话就是这句话。北欧，瑞典人，丹麦人，他们是全世界性开放最早的。那时候有A片，你们偷着看过A片啊，小电影啊。丹麦开放A片的那一年，全国的强奸犯罪率减少了16％，不强奸了，看A片就好了。（笑声）头一年全国偷看人家洗澡，窥视，偷看女生洗澡，当然女生也可以看男的了，减少了80％。大家觉得不可思议，按照我们的标准，一定有伤风化，破坏民心士气。我所佩服的一个将军，他ger3了，叫做许士友，以前南京军区的司令。南京军区不准看《红楼梦》，他说《红楼梦》那个书是吊膀子的书，不能看。现在，为什么不看《红楼梦》，就以为我们的思想会干净呢？现在告诉大家，瑞典的统计数字告诉了我们，强奸犯减少16％，偷窥狂减少了80％。当你开放小电影的时候，大家整天看，稀松平常，反倒没事了。言论自由本身，就是这么个玩意儿。我在台湾搞了这么多年的言论自由，结果怎么，整天查禁我的书，说你李敖闯祸，影响民心士气，现在，看到什么？我的书不禁了，可是也没事了。我拿张照片给大家看，（拿照片）我手指着一个老头子。这老头子前一阵子还来到北京，他是国民党的上将叫做许历农，当年做总政治部的主任。干嘛？专门查禁我的书。老相好，后来变成好朋友。我这手指着他，好像贫农在清算地主一样，指着他在骂他。后来他向我道歉，公开场合向我道歉，他说我们发现不查禁你这么多书，也不会亡党亡国。所以今天大家要聪明到知道：有些言论开放了以后，是火山一样的喷火口，让它喷出去。言论自由就好像看小电影、看A片一样，让他讲了，让他骂了，让他说了，老虎屁股让他摸了，没什么了不起。我认为这是今天我们的国家领导人最该知道的一点，可是今天他们知不知道，还不知道，为什么不知道，为什么克林顿讲演现场全体全国播出，为什么连战的演讲现场全体播出，我李敖在这儿为什么要想想看再播出？（笑声，掌声） 　　（拿资料）看看毛主席的词——好像又在打着红旗反红旗——“俏也不争春，只把春来报。待到山花烂漫时，她在丛中笑。”花都开了以后，我在花里面笑。可是我告诉你，毛主席的真相，他的第一次原稿不是这样的，他第一次原稿不是说“俏也不争春，只把春来报，待到山花烂漫时，她在丛中笑。”原稿在这儿，大家看“俏也不争春，只把春来报，待到山花烂漫时，她在旁边笑。”（笑声）她不在他里边，她是个旁观者。旁观者变成了在中间，大家知道，什么境界呢？你们看王国维写的诗，《人间词话》，有有我之境，有无我之境。现在女孩子穿的袜子是裤袜，一下子套上去了。以前女孩子穿的叫玻璃丝袜，玻璃丝袜套上去以后，在大腿中间还一个吊袜带吊着它。你把玻璃丝袜送给美国人，美国人很高兴：我有全世界最好的玻璃丝袜；你把这个同样一双袜子送给法国女人，法国女人说我有了全世界最漂亮的大腿。她把袜子穿上去了以后，她跟袜子立刻结合在一起，所以她有了全世界最漂亮的大腿；袜子没穿上以前，我有了全世界最漂亮的丝袜。你有了全世界最漂亮的丝袜，就是她在旁边笑；丝袜套上大腿，——不是毛主席的大腿（笑声）——就是她在丛中笑。 　　今天我来到这儿，香港一句俗话叫做“不是猛龙不过江”，我过江来了。我敢来，我是个自由主义者，我敢骂国民党，敢骂亲民党，敢骂老美，敢骂小日本。今天我来，不单是骂人，我也捧人，我捧了北洋军阀给你们看。我告诉各位，那个时候的北大怎么样对待政府：教育部公文来了退回、不看、拒绝，北大多狠啊，教育部的公文拒绝；教育部送来钱，钱来了，钱收下来。（笑声，掌声）现在的北大太孬了，在我看起来太孬了。什么原因？（掌声）怎么样可以不孬？我们的书记站起来，我们的校长站起来，登高一呼，像我们以前的老校长马寅初不就这样吗？（掌声）北大马寅初干了九年的校长，在国民党时代被关起来，被软禁。后来在北大做校长的时候，本来一开始哥俩好，跟毛泽东毛主席感情好得很，为了人口问题两个人看法变了。马寅初说中国人这样生下去我们都不得了了，我们的财富都给生掉了都给吃掉了；毛主席说，人多没关系，人多好办事。结果毛主席赢了，大家斗马寅初。马寅初，从校长室，大家贴大字报，贴海报，斗他，一路斗斗斗……斗到马寅初床前面那个墙，都贴满了大字报，斗他。可是马寅初说我不在乎，我要孤军奋战，我要干到死。结果马寅初没死，马寅初活了100岁，别人都死了，他还活着。（掌声）这就是北大精神，北大的教育。所以我说今天由北大开始，虽然毛主席说北京大学“池浅王八多”，是不是？（笑声）说北京大学“庙小妖风大，池浅王八多”，（笑声）多几个王八也不坏吧。（掌声） 　　我的讲演其实讲不完的，可是今天，重点，我的意思，大体上就说在这儿了。（拿书）这些书你们懒得看，我告诉你，我看得精得不得了，熟得不得了。念一段周总理的话给你们听，念一段给你们听，你们见识见识，看到没有：“人民大众是有充分的思想自由的。只要……，其他思想都可以存在。言论、出版、集会、结社都是……。毛泽东最正确的思想，当然要讲。不讲这些，别的思想我们也允许它的存在。”所以今天为什么我要替***讲好话？大家口口声声说***一党专政，不让人讲话，是错的。是一部分***把毛主席周总理的那个根本的精神给它过分紧缩了，才有今天的现象。所以我跟大家说，***有它自由的成分，过去被打压是一个错误，所以我们总觉得***是一党专制的，是错的。我们必须说，整个的原因出在原来的马克思——又来了——出在那里。 　　可是现在我们知道，要有中国式的社会主义。我请大家问问，社会主义不够，为什么上面要加个中国式的社会主义？社会主义不够，不灵了，可是不灵了说不出口，加了一个帽子，中国式的社会主义，不是吗？（掌声）我告诉各位，你们都不看毛选集，（拿书）都有这段话，《论十大关系》，毛泽东最重要的一篇文章。最后的一段话，你们听了绝对会惊心动魄，我念给你们听：&#8221;那些骂我们的，像龙云，像梁漱溟，我们要把它养起来”，养着让他骂我们，“让他们骂，骂得无理，我们反驳，骂得有理，我们接受。这对党，对人民，对社会主义比较有利。&#8221;毛泽东思想里面有一部分是真的懂这个道理的，结果我们把他“两个凡是”化了，把这一部分的毛泽东，我们给忽略了。 　　还有一个毛泽东，你们知道它是谁吗？我念给你们听：“***是历史上发生的。凡是历史上发生的东西，都要在历史上消灭。因此，***总有一天要消灭。”不许鼓掌。“***总有一天就是要消灭。消灭就是那么不舒服吗？我看很舒服。***，哪一天不要了，我看实在好。我们的任务就是要促使它们消灭得早一点。”（举书）（掌声）什么时候消灭？国民党的一个大员叫戴传贤，他说周朝人统治八百年，我们国民党统治至少一千年，结果国民党ger3了。（笑声）***到今天还存在，我愿意他——大家注意，我李敖说的——存在一千年。跟我们是什么关系啊？***讲两手策略，一手软的，一手硬的，抱住我们。我们也抱住它，让他活一千年，我们抱着它。***不是愿意为人民服务吗，我们就是人民，让他为我们服务。《辛巴达七航妖岛》，就是《天方夜谭》里面那个故事：辛巴达过河的时候，忽然一个老头子，扑一下，爬到他背上去，掐着他脖子，爬上去。干什么？让你背我，你跟着我走。结果辛巴达怎么样甩他都甩不掉，你要照顾他，你要养他。各位，我坦白告诉你们：我们希望***活一千年，我们在它背上一千年，抱着它，贴着它，哄着它，赖着它，奴役它，让它为我们服务。有什么不好？ 　　好，我们要打，我们不服气。我讲过：玩言论自由你们玩不过我了，要革命你们玩不过坦克车，不要再走这条路。说我们不搞这些，那搞什么？我们去ger3了，去颠儿了，去der2了，去song2了，然后去翻儿了，用这种无谓的情绪、不健康的情绪在家里生闷气，拍桌子，甩板凳，是错误的，我们要跟***合作。其实他们人太多了一点，现在***是6900万，比台湾人口多3倍，（笑声）太多了一点，可是没关系。你们要放弃自由，你们都是***，我们欢迎。可是我们还有老百姓啊，13亿人口跟6900万比起来是19：1，19个人里面有一个是***。我们广大的中国人民要干什么？我们放弃，放弃过去那种念头，就是我们要打天下，我们要跟你作对，反政府，都是错误的观点。为什么？为什么落伍？因为没有可行性，人民会吃亏。 　　***说，下一代的人比它聪明，下一代的***很聪明。我看到胡锦涛，我李敖这个小老弟，他们真的很聪明，可是不要忘了，我们也很聪明，这个时代对我们也很有利。大家都忘了，当年的威尔逊总统，他要看一本书的时候，看一本《圣经》，要跑去向人家借。林肯更惨，还要向人家借。我们中国的宋濂，走几里路才能借到一本书。像我们的王充，要到书店里看书，死背。为什么要死背呢，因为没有钱买书。所以，宋朝的王安石，——他的儿子叫王雱，打乒乓球那个pang1，上面是个雨水的雨字，下面是个方字，王雱——王安石跟他的好朋友刘贡父说：我儿子是神童，看书一遍就看会。刘贡父说：哪家儿子看两遍，都是一遍看会。为什么？只有有高度智慧的人才能念书。今天，我们就是这种人，你们，北京大学就是这种人，各位想想看。 　　等一下我把我爸爸在北大的文凭给你们看，我要送给校长，送给主任。那个时候毕业，1926年北大毕业，365个人。今天上万，3万，（回头问）对不对？你们学校这么多人，大家想想看。我小时候一个中学生后面跟着4000个文盲。我爸爸是北京大学的学生，你知道多红啊，多吃得开。可是我们想想看，今天你们的责任是什么，背后有这么多的人，他们在竞争上面竞争不过你。本来你们都是第一个，从出生就是胜利者：父亲母亲受胎的时候是两亿三亿的精子往前跑，最后除了双胞胎以外，一个精子中标，才出来我们嘛，对不对？你们一开始赢了3亿人，这次又赢了13亿，所以到了北京大学。不要忘记你们的责任，不要以为做自了汉就完了，不要以为到了美国得了博士就完了。我再给你讲一遍，大家可以看到：李文就是典型的例子，（笑声）到了美国得了博士，得到什么？会失落的。 　　所以我跟大家说，我们要拥抱***，尤其拥抱在他的背上面。***不喜欢笑，***太严肃，***钻牛角尖，***会把毛思想做狭窄的解释，我们把它放宽一点，这就是我今天的主要目的。我讲这一点很多人提心吊胆，包括我在内。人家说，你到大陆来要不要看长城，我说我可能没上了长城先进了秦城。（笑声，掌声） 　　现在没事，就告诉大家：今天人心大坏，形势大好。人心坏掉了，我告诉各位：我到台湾的时候，台湾人排着队，干嘛？纳税。我说我们交税都逃税，怎么你们还排队呢？当了兵还要放鞭炮庆祝当兵。我说我们是逃兵，你们怎么这么老实呢？台湾人变坏了，我告诉各位，你们要听真话吗？大陆人也变坏了，也不是以前的大陆人了。为什么我说我不伤感，我不能伤感。我看到的北京是什么北京？我到店里去的时候，他看我，知道我买不起这些东西，他会倒杯茶给我。那样彬彬有礼的北京已经没有了，现在是处处设防的北京。我认为当你对人处处设防的时候，人没有信心了，人变坏了。 　　今天我做个样板给大家看：我捐了35万块人民币给胡先生，要求给胡适在北大立个铜像。就是告诉大家，当年我们那样子打击胡适思想，其实胡适思想是最温和的，对我们是有利的。现在我们开始知道了，立个铜像给他。当年胡适在我穷困的时候送过1000块钱给我，我今天用了35万人民币，相当于150万台币，相当于1500倍来还胡先生这个人情，大家知道吗？你们是这种人吗？你们不是。你们可能有点钱，可能舍不得，觉得这个铜像不花也好，我花了。十天以前我离开，看到高金素梅去联合国宣布日本人的可恶的时候，我还送了她100万台币。各位想想看，不要以为我李敖有钱，我李敖是所谓台湾的“立法委员”，大家知道我在坐计程车吗？对我而言，真的做到了：富贵不能淫，贫贱不能移，威武不能屈，还有最后一项——时髦不能动。 　　我敢讲真的话，谢谢各位。（掌声） （回答现场观众提问） 问：李敖先生您好。（李敖：你好。（笑声））我来自政府管理学院，因为您这次来大陆是一次“神州文化之旅”，所以我的问题跟文化有关。我看过您的传记知道您年轻的时候曾经写过万字以上的长文，来主张中国的文化要全盘地西化。我不知道过了几十年之后，您现在是否仍然持有这种观点。而且，您的忘年交之一，也是我们非常尊敬的学者钱穆先生，他对中国的传统文化是非常推崇的。所以我的问题可以总结成一句话就是：您认为中国文化的发展方向应该是什么样的？是我们要继续地全盘西化，还是说保留原有文化的基础上吸收西方文化的精华，或者说还有其他的道路？谢谢您。 李敖：您刚刚谈到钱穆先生，我认识他。我在中学生的时候写信给他，纠正他的错误。他就是当年燕京大学的教授，你们都受了他的影响，为什么呢？因为燕京大学有一个湖，叫做未名湖，“未名”两个字就是钱穆起的。刚才你谈到的这部分，所谓全盘西化，这也算是一个我们现在政治正确里面的一个罪名，就是不可以搞全盘西化。可是我必须说，我们必须承认：我们是在全盘西化中最典型的例子，就是马克思，马克思就是全盘西化，因为他全是洋玩意儿，这就是我们无法完全避免。国防部你去问曹刚川部长，一定是，他现在不会搞什么刀枪剑戟，不会了，一定都是现代化的武器，这都是西方的玩意儿。当时林则徐在鸦片战争以后，他被发配到新疆。在路上，他写封信给他的一个好朋友，说这个信你不能发表。信里怎么说？他说：关公跟岳飞来了，都打不过英国人。为什么呢？因为英国人打我们，他炮打过来，我们被打到了；我们打他，打不着他，甚至看不见他。这种武器的悬殊，关公、岳飞来了，“关岳束手”，都没办法。这就是为什么我们要全盘西化的原因。过去为了政治的原因特别强调并且挖苦并且打击全盘西化，我必须说，现在可以缓和一点了。（掌声） 问：李敖先生您好。我是北京大学新闻与传播学院的学生。欢迎您到北大来。我想请问李敖先生，您作为一位具有独立精神和批判精神的知识分子，与大众传媒的合作是否影响到了您思考的独立性？谢谢。（掌声） 李敖：谁影响谁？（笑声）不错，我跟人家合作，人家会对我有所照顾，或者在双方合作的时候会考虑对方的立场。不过必须说刘长乐先生是个怪人，他有一个招儿和一个本领，就是我们打球一样打那个擦边球。就是很多话我们认为不能说的，他能够很技巧的让它说过去，而不出事。我觉得这是了不起的。并且我告诉大家，争取言论自由就是要用这种方法，就是你要说，说的别人能够听得进去。中国一句老话，叫做“情欲信而辞欲巧”。情，就是你的感情，你的事实，那个是真的，拿出来是真的；可是辞欲巧，要表达这些感情和事实的时候要讲求技巧，不是硬梆梆的，不是说“打倒***”，不是这样的，“我要抱住你。”（笑声，掌声） 问：李敖先生您好，非常荣幸有这次机会给您提问。在今年的早些时候，闵维方书记曾经提出这样一个观点，就是说对于那种——我记得不是特别清楚，反正大概意思就是说——对于有**言论的那些老师，应该清出课堂。我想您对这样的观点有什么评价？（掌声） 李敖：（扭头问主持人）我刚才没听清楚，所以我要请校长帮我打个小抄。我觉得作为大学，一个特色：什么言论都敢接受。怎么可以叫反动言论呢？怎么可以有反对言论上课堂呢？我告诉各位：医学院里不也教癌症吗？癌症这课我们也要上。所以我认为：把它当成癌症来看，而想出招来把它解决是很重要的，这是我的一个小的看法。所以我认为，在大学里面，没有什么说是可以害怕的，不能讲的，是不正确的。（掌声） 问：李敖先生您好，我是北京大学中国经济研究中心的老师。我相信您已经看到北大师生的热情了。我非常关心一个问题就是：您下一次什么时候来北大？（笑声）（李敖：我来干嘛？你叫我来干嘛？）您希望以什么形式与北大师生交流？（李敖：现在不在交流吗？）您下一次什么时候能够来北大？您希望以什么形式与北大师生交流？ 李敖：当胡锦涛请我做北大校长的时候我就来了。（掌声） 问：李敖先生您好。我是北京大学国际关系学院的学生，我想问您一个有关两岸关系的问题。因为前不久国民党举行了党主席的直选，您在选举的前夜，在王金平的造势大会上公开表示您不支持马英九作为国民党党主席。我想请问您，在马英九已经当选国民党党主席之后，您认为他的政策会对两岸关系有何影响？您对两岸关系的稳定和平发展有没有信心？谢谢。（掌声） 李敖：我来北京就是怕谈台湾问题，果然这个问题就追上来了。我跟你讲，这就是政治人物和思想人物的不同。马英九长了一个好脸蛋，人也是个好人，可是一辈子，我告诉你们，他不做事的。我们讲他“不粘锅”：什么好事也不做，什么坏事也不做，什么责任也不负，就是笑嘻嘻的来拉选票，很多票也就这样给他了。所以我们认为：能够做事的人是很重要的，摆个小脸蛋到处跑是不好的。所以我认为马英九他干错行了，他应该去演个电影或者做歌星都比较好，至少变个大色狼也比较好。（笑声，掌声） 问：李敖先生我非常尊重你，我也对你刚才那样说马英九先生我觉得好像不太公平。我想问一个文化的问题，你是怎样看待中国的屈原的那种文化的呢？屈原的文化与北大的精神有什么关联呢？谢谢。 [...]]]></description>
			<content:encoded><![CDATA[<p>今天下载了凤凰卫视版的李敖北大演讲的视屏文件[URL=http://bbmedia.qq.com/media/news/200509/0921liaobeida1.wmv](如果有兴趣的朋友可以下载看下)[/URL],不过都说视屏文件不是完整版，晚上看到有整理过的演讲全文(根据凤凰卫视直播视频及文字记录稿整理)。哈哈，李敖还真是厉害，把个北大校长及主任折腾得够戗（一场演讲而已，何必整成这副德行）。国人缺什么？缺的就是这种有胆量、敢说话的人!<br />
<span id="more-272"></span><br />
（2005年9月21日上午，北京大学世纪讲堂）</p>
<p>　　各位终于看到我了。（笑声，掌声）<br />
　　主任，校长，总裁，（笑声）各位贵宾，各位老师，各位小朋友！（笑声）<br />
　　来演讲紧不紧张，紧张，站在大庭广众面前，很多人，他可以指挥千军万马的军队，可是你让他讲几句话，他就song2了，不敢讲话。什么原因？胆小。美国打赢南北战争的将军格兰特，指挥千军万马打赢仗，林肯总统请他上台，给他勋章，让他讲几句话，他讲不出口。为什么？怕这玩意，一讲演就紧张。<br />
　　前天晚上我编了一个故事，迷糊做梦的时候编了个故事：北京大学一个女孩子进了一个小房间，忽然看到一个男的在这个小房间里面，嘴巴里面念念有词，来回走动。这个女孩子就问他：“你在干吗？”他说我在背讲演稿。她说你在哪儿讲演，他说我要在北京大学讲演。女孩子问说你紧张吗，他说我不紧张。女孩子说：如果你不紧张，为什么你到女厕所来干什么。（笑声，掌声）这个人就是连战。（笑声，掌声）<br />
　　台湾有一位歌星，很有名的女人，叫做崔台菁。你们不晓得这三个字的意思：崔是吹牛，台是台湾人，菁是青年人。台湾要靠混，靠这个能吹牛，又是台湾人，又是青年人来混，连战就是这种人。（笑声）他可以糊弄别人，糊弄不到我们可以糊弄你们，至少前一阵子糊弄你们。（笑声）今天一个重要的标准就是：你们觉得，任何人觉得连战讲演好的人，我就要警告你们了，（笑声）今天你们可能很失望。为什么呢？因为我无法花一个小时把你这个观念转过来，就是你已经上了连战的当以后，我很难把你转过来。（笑声，掌声）<br />
　　我在这儿埋怨一个人，埋怨我的老板，凤凰电视台的刘长乐先生。（笑声）为什么要埋怨他，他把我鼓秋到北京来——（笑声）对不起，我一看到你们就讲了很多的乡音——鼓秋到北京来。可是我已经在中国大陆，在凤凰电视台上讲了有四百多场，你们对我相当的熟悉，用一个熟悉的眼光来看我，我今天要把这个讲演讲成功，这个是高难度的，你们对连战完全不了解，你们看到他吗。（笑声，掌声）所以对我熟悉，对我是个困难，这个困难是刘长乐老板造成的，所以我今天有所抱怨。<br />
　　现在总要开始讲正题了。罗马教皇——现在说罗马教宗，我们那个时候，老一辈的人，还叫罗马教皇——庇护十二讲了一句话，他说你演讲的时候不能用稿子。为什么不能用稿子，用稿子表示你记不住，如果你自己都记不住，你怎么样让听众记得住呢？你这个演讲就失败了。所以大家看好，没稿子（敞开西装让观众看）（笑声，掌声），也没有小抄，可是我带了一些证据是有的，等一下会显摆证据。<br />
　　我必须跟大家说：接下这个演讲的时候是刘长乐老板告诉我，一五一十，规格都告诉我。最后我就问他一句话，把他问得愣住了。我说有没有铺红地毯，我进门的时候有没有红地毯，他说你没有，克林顿有，连战有，你没有。我说为什么我没有，他说……（此时外面传来一阵喊声，）——他们是赞美我还是抗议啊？（笑声）——我说为什么我没有，他说，北大尊敬你，把你当成学术演讲，所以不铺红地毯。（回头问）校长，是不是这个意思？（笑声）主任呢，是不是？我说好，我就是在做学术演讲，讲得好就是学术演讲，讲不好，讲一半，铺红地毯还来得及啊。（笑声，掌声）<br />
　　为什么我要这样说？因为不然人家说：北京大学势利眼，怎么可以给李敖不铺红地毯，给那些当官的，或者政治人物铺红地毯。大家知道，我在这儿，很多人眼睛看着我，说你李敖骂过国民党，骂过民进党，骂过老美，骂过小日本，今天你在北京，你敢不敢骂***。（笑声）看，很多人不怀好意哦，你看幸灾乐祸看着我。（笑声）我告诉你，我先不骂***，我先赞美***和国民党曾经打倒的一个势力，那个就是北洋军阀。为什么赞美北洋军阀？大家知道吗：北京大学怎么出来的？北洋军阀。什么人叫蔡元培校长做北京大学校长？那个时候蔡元培是国民党员的身份，是北洋军阀。北洋军阀有这个肚量把全国最好的这个大学交给跟他敌对的一个政治势力的手里，那个就是黎元鸿当时干的事情。我们现在骂北洋军阀，我们有什么资格骂北洋军阀呢？北洋军阀比我们肚量宽大得不得了。今天，除非把我李敖放这儿来做北大校长，（笑声）——对不起好像在抢副校长的位置——否则，我们就不要骂北洋军阀，我们要做历史性的反省。<br />
　　今天我在这儿跟大家谈一些事情。我来出发以前，各方友好都劝着我，拉着我：这话别提，那话别说，都是这个话。刚才我在主任面前还讲了一句话，我说我来北大讲演分两类：一类呢就是金刚怒目，另外一类呢就菩萨低眉。你们待我还不错，今天开始菩萨一点儿。（笑声）<br />
　　我看到有人不笑。为什么不笑？因为放不开。为什么放不开？心里有顾忌。我跟大家谈一件事情，在克林顿站在这个位置上的时候，他很大胆地引用了一句话，就是他说以前北京大学一位教授叫做胡适讲了一段话。这段话就是说：有人说你要为了国家牺牲你个人的自由，可是胡适说：争取你个人的自由，就是争取国家的自由。克林顿引证这句话的时候没引证完，他身边的那些顾问有问题。下边还一句话没引到，就是说，胡适说，一个真正的开明进步的国家，不是一群奴才造成的，是要有独立个性，有自由思考的人造成的。所以克林顿的演讲引证有错误。后来又来了一个人，又是连战，他在这个讲演场里面提到了四个字，有点犯忌讳的，可是事实上他提到了，叫做“自由主义”。各位，连战对自由主义的解释完全错误，他轻描淡写地说胡适把自由主义带到台湾，所以台湾有一股自由主义的学风，在学校里面流传下来了。我告诉各位，没这个事儿，没有人敢这样做，包括连战，他们都不敢这样做。所以自由主义这四个字虽然在连战的演讲里面，在北大的讲台上面出现了，我告诉你，没有这个东西。很多人说我李敖是自由主义者，说你自由主义者你在大陆，你在***统治的地区，我们要看你讲什么话，你要不要宣传自由主义。我告诉大家：我要宣传，可是内容跟你们所了解的有出入。什么是自由主义？自由主义我们看到学理上来讲，你出一本书，他出一本书，学理上非常的高深。对我而言，没那么复杂，自由主义只是两个部分：一部分是反求诸己的部分，一个部分是反求诸宪法的部分。<br />
　　什么叫做反求诸己？我给大家讲一个故事。台湾过去在清朝统治之前是给郑成功来统治，这是了不起的中国民族英雄。郑成功他爸爸投降了，郑成功不肯投降，郑成功妈妈在福建被清朝的兵轮奸了。郑成功很痛苦，发现母亲被轮奸了，怎么办？我告诉你他怎么办，他把他母亲身体切开，注意啊，用水冲，冲洗他的母亲的尸体。他认为他母亲被轮奸以后，脏，这个女人脏了，他的母亲脏了。我们说奸污，奸是一个动作，污是一个结果。被奸污了，什么办法呢？用水来冲才能够解开郑成功自己心头的这个压力和痛苦，各位想想看。<br />
　　在五四时代，在新文化运动时代，有一个问题只有胡适先生解决了，别人解决不了。就是有一个北大学生提出来，说他的一个朋友的姐姐被土匪抢走了，绑票了，当然，也发生了刚才我所说的那种不幸的结果。问北大的这些思想家们：你们怎么样解释这个现象？大家解释不出来，胡适先生做出解释。他说，如果有男人要讨这个被害的女孩子做太太，我们要尊敬这个男的。这是胡先生的话。胡先生意思是说：一个女人被强暴了，在生理上其实变化很小，手被撞了一下，被割了一下；心理上难过，所以如果有这个男的能够破除这种情节，这个男的了不起，我们应该尊敬他。<br />
　　从郑成功的例子到胡适的例子，大家想想看，就是我们当自己被困扰的时候，我们如何能够解开。<br />
　　俄国一个有名的小说家叫库普林，他写过一个小说《亚玛》。《亚玛》什么故事呢？是一个俄国的妓院里面，大家都在接客，忽然来了一个女孩子，如花似玉，漂亮得要死。当然很多人愿意跟她上床，她也赚了好多钱，红得不得了，一代名妓。有一天她跟其他的妓女聊天，她说：“姐妹们你们知道吗？我还是处女，我是处女啊。”那些姐妹们大家都笑起来，咯儿咯儿笑起来，说：“你是什么处女啊？我们整天卖的是什么？你怎么是处女啊？”这个女孩子说：“你们知道我是干什么的？我是***。为了我的党，为了我的主义，我们需要钱，需要我来卖，赚的这个钱来帮助我们的党。我们俄国要革命，我是在做一件伟大的卖身，可是我的精神上，我是处女。你们不了解我。”<br />
　　大家注意到，有人说是唯物主义，你李敖站在这里，谈的全是唯心的。唯心主义，当我觉得我不是妓女，我就是处女，这是高度的唯心。有人会问我：你这话是不是跟马克思不同啊？我告诉大家：马克思就是一个典型的唯心论者。你们以为他唯物吗？我认为他唯心，尤其他抄别人东西的时候更唯心。（笑声）你们说：你李敖说马克思——我们北大还有学院，马克思学院（回头向主持人确认）——抄什么东西啊？大家核对核对看。英国的首相格兰斯顿演讲，马克思《资本论》里面引证，捏造了格兰斯顿的话，格兰斯顿没讲过这个话。亚当·斯密的一些话，马克思引证，没有讲过这些话。马克思说“工人无祖国”，这句话不是马克思说的，这句话是法国大革命时候那个英雄马拉讲的话。为什么我们这样都被马克思给骗了还不觉得呢？最重要的是，1890年8月5号，马克思的好朋友恩格斯写封信给舒密特，里面一段话说：马克思亲口告诉他，马克思不是马克思主义者。马克思自己都不信马克思主义，我们那么急干嘛？<br />
　　这话说来大家好像都不太笑，我告诉你：这就是我感到难过的一点。为什么？讲演者在这里最怕四样事情。第一样事情：人不来听；第二件事情：来听了跑去小便；第三个：小便以后不回来；（笑声）第四个：不鼓掌。（掌声）世界三大男高音，里面有个大胖子，他跟我同岁；那中间还有一个中胖子，叫做多明戈。多明戈一上台就这个姿势（扬起双臂），干什么？请你们鼓掌。为什么不鼓掌，因为我讲话太传神了，你们都忘了鼓掌了。鼓一次掌吧！（掌声）你们不习惯我这种讲话的方式，可是我必须说，我在讲这种方式。<br />
　　今天我站在这里，大家说：你要不要骂***？刚才我说过，我先替北洋军阀讲了好话，让我替***讲一句好说。说你怎么这样敢替***讲好话？为什么我不敢？当***做了好事的时候，或者说，它没有做坏事的时候，我们为什么不把真相把它澄清出来？谁说***不许别人讲话？我抓一本书给你们看。谁说***不许讲话，（拿书）《毛泽东文集》：——当然你们会笑我：你在打着红旗反红旗，其实不是。我给你们看一段蛮有趣的，这一段你们可能都不看，我念一段给你们听——“我们有些同志听不得相反的意见，批评不得，这是很不对的。（笑声，掌声）有了错，一定要自我批评，要让人家讲话，让人批评。不负责任，怕负责任，不许人讲话，老虎屁股摸不得，凡是采取这种态度的人，十个就要十个失败。人总是要讲的，你老虎屁股摸不得吗？偏要摸。”（掌声）今天我在这儿，摸了老虎屁股，可是大家不要忘记：是老虎让我们摸它屁股的。（笑声）<br />
　　这话你怎么讲啊？今天你们以为我在谈自由主义吗？我今天跟大家做一个重大的宣誓：我李敖放弃自由主义。为什么？我告诉大家，从18世纪19世纪以来，人类所梦想追求的自由主义那种追求方法都是这个自由那个自由。可是大家忘了，自由主义最重要的，刚才我说过，第一个层面是你心灵能不能解放。如果你心灵是郑成功式的，那你会把你自己困死，把你死掉的那个妈也整死，对不对？所以我认为心灵开放是重要的，这一部分自由主义叫做反求诸己，都是你自个的事情，你自个没有一个改革开放的自己，永远困扰自己。所以我说，真正的自由主义者没有人想做，因为太痛苦了，因为太难了，要有很高的文化水平才能做自由主义者，所以自由主义这一段叫做反求诸己的。反求诸己成功了，我自己才知道：我不是郑成功，我可能是那个《亚玛》里面的窑子，那个卖东西的窑子，就是我是处女，这是个重要的自由主义的部分。<br />
　　另外一部分在什么呢？就是跟政府的关系，政府老是限制我们。我们人民对政府的关系有几种方式。第一种方式——你们北京话还好吗？有我好吗？大家说乡音未改，我没改，可能你们已经改了。为什么你们改了？北京变大了。很多三河县这些地方的声音混到北京话来了，所以你们讲的没有我讲的纯。——我告诉你，人民跟政府的关系，第一个关系就是政府这么坏，我不要活了，我ger3了。（笑声，掌声）什么人ger3了？你看，屈原就是，政府不好，我ger3了。（笑声）辛亥革命以前的杨笃生在英国跳海，就是我ger3了，我不要活了。最有名的一个英国的故事，一位英国的议员叫Aster，A-s-t-e-r，这个女的，她跟另外一个议员，有名的，叫做丘吉尔，吵架。Aster说：“你太可恶了。如果我是你太太，我就弄杯毒药给你。”丘吉尔说：“如果我是你丈夫，这毒药我就喝。”（笑声）这就是：我不要活了，有你这种太太我不要活了。所以，政府跟人民的关系，第一个关系，就是说：你政府太坏了，我ger3了，我不要活了。伯夷、叔齐最后饿死在首阳之山，就是ger3了。<br />
　　第二个感觉是什么？是我颠儿了，什么颠儿了？就是跑了，撒丫子就跑。为什么颠儿了？我玩不过你。孔子说：危邦不入，乱邦不居。我走了，我去做美国人了，我不要跟你们在一起。在座的我的女儿，李文，Hedy Lee，就是这种类型的人。（笑声）<br />
　　第三种呢？第三种就是什么？ger3了，颠儿了，第三种就是der2了。什么叫der2了？有一个台湾人，他住在北京很久，住在雍和宫附近，讲了一口京片子。他到北京大学来作客，副校长他们也照应过他，叫做林云，是个妖僧。他在答录机里面，你给他通电话，答录机，他说我是林云，我不在家，等会儿这个答录机der2一响，你就开始录音，你要告诉我的话，你就把它录进去。就是der2了，什么叫der2了，der2了就是说：你找不到我，你找不着我了，我猫起来了，你要找我找不到。中国的标准里面，是做隐士。这就在ger3了，颠儿了，der2了一种关系就是我藏起来了。（笑声）诸葛亮不就是der2了吗？可刘备找着他了，所以就不der2了。（笑声，掌声）<br />
　　第四种是什么？第四种：song2了。什么叫song2？小时候我们在北京斗蛐蛐，就是蟋蟀，用老鼠的胡子逗它。斗来斗去，一个蟋蟀打不过另外一个了，你怎么逗它，它都不打，就是song2了。song2了就是：蔫了，我怕你了，我不跟你玩了。就是人民对政府态度：我怕你，我不跟你玩。<br />
　　第五种是什么？第五种就是翻儿了。我火了，我跟你干上了，我气，生气了。什么时候会翻儿了？我告诉你：人民忍无可忍的时候，再找到一个节骨眼的题目就会翻儿。在1932年，美国就发生这么件事情：在第一次世界大战的时候，很多美国军人打死了。1918年世界大战结束，很多兵回来了，没打死，跟政府说：要钱，赔我们钱。政府说，你们现在年轻力壮，现在不给，到1945年，你们老了，再给这个钱。大家一听说，也好。结果1932年美国发生经济大恐慌，出事了。这些老兵憋不住了，跑到华盛顿广场，大家集合，由早到晚，由日到夜，由今天到明儿个，都不解散。中央政府广场被占领，好说歹说都不解散。所谓爱好人权、尊重人权的美国人，他们干什么？开出坦克车，一个将军叫做麦克阿瑟元帅，下边带了一个少将叫做巴顿将军，巴顿将军下边带了一个少校叫做艾森豪威尔，（笑声）干什么？开枪，放毒气，坦克车冲出来，多少人死掉了。为什么？政府不能忍耐人民在他的中央政府的广场里面盘踞不去。这种情形是美国的情形吗？是吗？不然。我给大家看看一个资料，大家看，这不是小抄。告诉你们这是什么东西：这就是当年《纽约时报》的头条新闻，（拿资料）讲到怎么样的开枪。你们看不清楚，没关系，反正证据在这儿，一会儿主任、校长，你们可以证明，这是真的，真玩意儿。（拿资料）看这个表，1932年美国，群众在中央政府盘踞不去，政府开枪；1953年德国，群众盘踞不去，开枪；1956年匈牙利，群众盘踞不去，开枪；1968年捷克，群众盘踞不去，开枪；1970年，美国又来了，又开枪。1970年，在美国Kent大学，K-e-n-t，Kent大学，开枪。你们看看那个有名的画片：学生躺在地上流血，一个小女孩在哭，得过普利策的新闻奖，就是这样。全世界任何政府在这个时候都是王八蛋。开枪对不对，当然不对，可是我们作为人民要想：逼他开枪，向住了，局面造成了，我们逼他开枪，我们要不要反省？我们为什么这么笨啊？太笨了。说有没有聪明的方法呢？我跟大家说什么是聪明的方法。<br />
　　人民对政府不满，刚才我讲了，那五个样子。那五个情况都是消极的。消极的方法你不能够把政府摆平，你自己跟着受害。说我们争取言论自由，我告诉大家，没有人比我李敖，古往今来，争取言论自由最多的，我写过100多本书，有96本被查禁。（掌声）全世界古往今来古今中外，有没有一个人这么有耐心，锲而不舍，写了这么多禁书，而有这么一个王八蛋政府就盯着他不放，查禁他。我把我被查禁的书：书名、出版年月、被查禁的号码、被查禁的罪状，列了一个表。你们看看这个表，被查禁的表，有多长。你们看（展开手中的纸卷，几米长）（掌声）中国人讲著作等身，我长的个，高得跟我的书一边高：著作等身。当然，武大郎最容易著作等身。（笑声）我这个表已经超过我的身高了，能证明什么？我坐牢就坐牢，你们说，你有抱怨，你抱个屁怨，抱什么怨？有种写文章，干！你对***不满，写文章跟它干，大不了坐牢，坐吧。你们不愿意。为什么？聪明了。觉得你李敖傻，那么多年牢坐着干嘛。为什么？我们现在知道，有种觉悟。我告诉大家，我这书，写了这么多禁书并不能卖，写了以后就被抢走了。怎么办呢？在二渠道、三渠道……一百渠道，地摊上，跟那些黄色书刊一起卖。（笑声，掌声）为了一起卖，鱼目混珠，所以我出的书都是来个屁股，（举书）都是这样的，看起来很凉快，就是这种书。（笑声，掌声）我的读者根本不是我的读者，他是买黄色书刊，买错了就变成我的读者。（笑声，掌声）所以，我的读者里面有些人是色情狂。（笑声）你们有没有，我不知道，我来的那地方有这种现象。<br />
　　我告诉大家，写言论自由争取以外是这个下场。那么我们革命了！项羽可以这样喊，楚霸王这样喊，你不能这样喊；李自成也可以这样喊，你不能这样喊。为什么？项羽楚霸王用的武器，李自成用的武器，跟统治者差不多：你有一把刀，我有一把刀；你一把扎枪，我一把扎枪；差不多。现在全世界任何政府的统治者，他来了，机关枪，哒哒哒，坦克车，咔咔咔，怎样？一点儿招都没有，输了。所以我说，人民要聪明，争取自由要靠智慧。大家看我那本小说写《北京法源寺》，今天下午我要去法源寺去看看，从来没去过那地方。为什么没去过能把这个小说写得神龙活现？这就是文学家嘛，就干这个的嘛。（笑声，掌声）<br />
　　我讲我心里话给你们听，我一回头看，除了我们的刘长乐老板以外，主任跟校长都不太笑。（笑声）我一回头看，有点紧张。（笑声）他们不算本领，我告诉你，我在内地最佩服的一个人，姓丁，丁大官人，叫丁关根。你跟他讲，你跟他讨论问题绝对不笑，脸绷着一路绷到底，（笑声）我真的佩服。（掌声）中国历史上有个人，丁关根一样了不起的，叫包公。（笑声）包公特色就是不笑，所以宋朝人当时的谚语说“包丞笑，黄河清”，包公笑的时候，黄河都不浊了，水都清了，不可能的事情。<br />
　　我今天要谈言论自由，大家怕这玩意儿，其实有什么好怕的？我举例给大家看，什么东西要开放言论自由，会更安全。今天，我今天在这儿，最要讲的一句话就是这句话。北欧，瑞典人，丹麦人，他们是全世界性开放最早的。那时候有A片，你们偷着看过A片啊，小电影啊。丹麦开放A片的那一年，全国的强奸犯罪率减少了16％，不强奸了，看A片就好了。（笑声）头一年全国偷看人家洗澡，窥视，偷看女生洗澡，当然女生也可以看男的了，减少了80％。大家觉得不可思议，按照我们的标准，一定有伤风化，破坏民心士气。我所佩服的一个将军，他ger3了，叫做许士友，以前南京军区的司令。南京军区不准看《红楼梦》，他说《红楼梦》那个书是吊膀子的书，不能看。现在，为什么不看《红楼梦》，就以为我们的思想会干净呢？现在告诉大家，瑞典的统计数字告诉了我们，强奸犯减少16％，偷窥狂减少了80％。当你开放小电影的时候，大家整天看，稀松平常，反倒没事了。言论自由本身，就是这么个玩意儿。我在台湾搞了这么多年的言论自由，结果怎么，整天查禁我的书，说你李敖闯祸，影响民心士气，现在，看到什么？我的书不禁了，可是也没事了。我拿张照片给大家看，（拿照片）我手指着一个老头子。这老头子前一阵子还来到北京，他是国民党的上将叫做许历农，当年做总政治部的主任。干嘛？专门查禁我的书。老相好，后来变成好朋友。我这手指着他，好像贫农在清算地主一样，指着他在骂他。后来他向我道歉，公开场合向我道歉，他说我们发现不查禁你这么多书，也不会亡党亡国。所以今天大家要聪明到知道：有些言论开放了以后，是火山一样的喷火口，让它喷出去。言论自由就好像看小电影、看A片一样，让他讲了，让他骂了，让他说了，老虎屁股让他摸了，没什么了不起。我认为这是今天我们的国家领导人最该知道的一点，可是今天他们知不知道，还不知道，为什么不知道，为什么克林顿讲演现场全体全国播出，为什么连战的演讲现场全体播出，我李敖在这儿为什么要想想看再播出？（笑声，掌声）<br />
　　（拿资料）看看毛主席的词——好像又在打着红旗反红旗——“俏也不争春，只把春来报。待到山花烂漫时，她在丛中笑。”花都开了以后，我在花里面笑。可是我告诉你，毛主席的真相，他的第一次原稿不是这样的，他第一次原稿不是说“俏也不争春，只把春来报，待到山花烂漫时，她在丛中笑。”原稿在这儿，大家看“俏也不争春，只把春来报，待到山花烂漫时，她在旁边笑。”（笑声）她不在他里边，她是个旁观者。旁观者变成了在中间，大家知道，什么境界呢？你们看王国维写的诗，《人间词话》，有有我之境，有无我之境。现在女孩子穿的袜子是裤袜，一下子套上去了。以前女孩子穿的叫玻璃丝袜，玻璃丝袜套上去以后，在大腿中间还一个吊袜带吊着它。你把玻璃丝袜送给美国人，美国人很高兴：我有全世界最好的玻璃丝袜；你把这个同样一双袜子送给法国女人，法国女人说我有了全世界最漂亮的大腿。她把袜子穿上去了以后，她跟袜子立刻结合在一起，所以她有了全世界最漂亮的大腿；袜子没穿上以前，我有了全世界最漂亮的丝袜。你有了全世界最漂亮的丝袜，就是她在旁边笑；丝袜套上大腿，——不是毛主席的大腿（笑声）——就是她在丛中笑。<br />
　　今天我来到这儿，香港一句俗话叫做“不是猛龙不过江”，我过江来了。我敢来，我是个自由主义者，我敢骂国民党，敢骂亲民党，敢骂老美，敢骂小日本。今天我来，不单是骂人，我也捧人，我捧了北洋军阀给你们看。我告诉各位，那个时候的北大怎么样对待政府：教育部公文来了退回、不看、拒绝，北大多狠啊，教育部的公文拒绝；教育部送来钱，钱来了，钱收下来。（笑声，掌声）现在的北大太孬了，在我看起来太孬了。什么原因？（掌声）怎么样可以不孬？我们的书记站起来，我们的校长站起来，登高一呼，像我们以前的老校长马寅初不就这样吗？（掌声）北大马寅初干了九年的校长，在国民党时代被关起来，被软禁。后来在北大做校长的时候，本来一开始哥俩好，跟毛泽东毛主席感情好得很，为了人口问题两个人看法变了。马寅初说中国人这样生下去我们都不得了了，我们的财富都给生掉了都给吃掉了；毛主席说，人多没关系，人多好办事。结果毛主席赢了，大家斗马寅初。马寅初，从校长室，大家贴大字报，贴海报，斗他，一路斗斗斗……斗到马寅初床前面那个墙，都贴满了大字报，斗他。可是马寅初说我不在乎，我要孤军奋战，我要干到死。结果马寅初没死，马寅初活了100岁，别人都死了，他还活着。（掌声）这就是北大精神，北大的教育。所以我说今天由北大开始，虽然毛主席说北京大学“池浅王八多”，是不是？（笑声）说北京大学“庙小妖风大，池浅王八多”，（笑声）多几个王八也不坏吧。（掌声）<br />
　　我的讲演其实讲不完的，可是今天，重点，我的意思，大体上就说在这儿了。（拿书）这些书你们懒得看，我告诉你，我看得精得不得了，熟得不得了。念一段周总理的话给你们听，念一段给你们听，你们见识见识，看到没有：“人民大众是有充分的思想自由的。只要……，其他思想都可以存在。言论、出版、集会、结社都是……。毛泽东最正确的思想，当然要讲。不讲这些，别的思想我们也允许它的存在。”所以今天为什么我要替***讲好话？大家口口声声说***一党专政，不让人讲话，是错的。是一部分***把毛主席周总理的那个根本的精神给它过分紧缩了，才有今天的现象。所以我跟大家说，***有它自由的成分，过去被打压是一个错误，所以我们总觉得***是一党专制的，是错的。我们必须说，整个的原因出在原来的马克思——又来了——出在那里。<br />
　　可是现在我们知道，要有中国式的社会主义。我请大家问问，社会主义不够，为什么上面要加个中国式的社会主义？社会主义不够，不灵了，可是不灵了说不出口，加了一个帽子，中国式的社会主义，不是吗？（掌声）我告诉各位，你们都不看毛选集，（拿书）都有这段话，《论十大关系》，毛泽东最重要的一篇文章。最后的一段话，你们听了绝对会惊心动魄，我念给你们听：&#8221;那些骂我们的，像龙云，像梁漱溟，我们要把它养起来”，养着让他骂我们，“让他们骂，骂得无理，我们反驳，骂得有理，我们接受。这对党，对人民，对社会主义比较有利。&#8221;毛泽东思想里面有一部分是真的懂这个道理的，结果我们把他“两个凡是”化了，把这一部分的毛泽东，我们给忽略了。<br />
　　还有一个毛泽东，你们知道它是谁吗？我念给你们听：“***是历史上发生的。凡是历史上发生的东西，都要在历史上消灭。因此，***总有一天要消灭。”不许鼓掌。“***总有一天就是要消灭。消灭就是那么不舒服吗？我看很舒服。***，哪一天不要了，我看实在好。我们的任务就是要促使它们消灭得早一点。”（举书）（掌声）什么时候消灭？国民党的一个大员叫戴传贤，他说周朝人统治八百年，我们国民党统治至少一千年，结果国民党ger3了。（笑声）***到今天还存在，我愿意他——大家注意，我李敖说的——存在一千年。跟我们是什么关系啊？***讲两手策略，一手软的，一手硬的，抱住我们。我们也抱住它，让他活一千年，我们抱着它。***不是愿意为人民服务吗，我们就是人民，让他为我们服务。《辛巴达七航妖岛》，就是《天方夜谭》里面那个故事：辛巴达过河的时候，忽然一个老头子，扑一下，爬到他背上去，掐着他脖子，爬上去。干什么？让你背我，你跟着我走。结果辛巴达怎么样甩他都甩不掉，你要照顾他，你要养他。各位，我坦白告诉你们：我们希望***活一千年，我们在它背上一千年，抱着它，贴着它，哄着它，赖着它，奴役它，让它为我们服务。有什么不好？<br />
　　好，我们要打，我们不服气。我讲过：玩言论自由你们玩不过我了，要革命你们玩不过坦克车，不要再走这条路。说我们不搞这些，那搞什么？我们去ger3了，去颠儿了，去der2了，去song2了，然后去翻儿了，用这种无谓的情绪、不健康的情绪在家里生闷气，拍桌子，甩板凳，是错误的，我们要跟***合作。其实他们人太多了一点，现在***是6900万，比台湾人口多3倍，（笑声）太多了一点，可是没关系。你们要放弃自由，你们都是***，我们欢迎。可是我们还有老百姓啊，13亿人口跟6900万比起来是19：1，19个人里面有一个是***。我们广大的中国人民要干什么？我们放弃，放弃过去那种念头，就是我们要打天下，我们要跟你作对，反政府，都是错误的观点。为什么？为什么落伍？因为没有可行性，人民会吃亏。<br />
　　***说，下一代的人比它聪明，下一代的***很聪明。我看到胡锦涛，我李敖这个小老弟，他们真的很聪明，可是不要忘了，我们也很聪明，这个时代对我们也很有利。大家都忘了，当年的威尔逊总统，他要看一本书的时候，看一本《圣经》，要跑去向人家借。林肯更惨，还要向人家借。我们中国的宋濂，走几里路才能借到一本书。像我们的王充，要到书店里看书，死背。为什么要死背呢，因为没有钱买书。所以，宋朝的王安石，——他的儿子叫王雱，打乒乓球那个pang1，上面是个雨水的雨字，下面是个方字，王雱——王安石跟他的好朋友刘贡父说：我儿子是神童，看书一遍就看会。刘贡父说：哪家儿子看两遍，都是一遍看会。为什么？只有有高度智慧的人才能念书。今天，我们就是这种人，你们，北京大学就是这种人，各位想想看。<br />
　　等一下我把我爸爸在北大的文凭给你们看，我要送给校长，送给主任。那个时候毕业，1926年北大毕业，365个人。今天上万，3万，（回头问）对不对？你们学校这么多人，大家想想看。我小时候一个中学生后面跟着4000个文盲。我爸爸是北京大学的学生，你知道多红啊，多吃得开。可是我们想想看，今天你们的责任是什么，背后有这么多的人，他们在竞争上面竞争不过你。本来你们都是第一个，从出生就是胜利者：父亲母亲受胎的时候是两亿三亿的精子往前跑，最后除了双胞胎以外，一个精子中标，才出来我们嘛，对不对？你们一开始赢了3亿人，这次又赢了13亿，所以到了北京大学。不要忘记你们的责任，不要以为做自了汉就完了，不要以为到了美国得了博士就完了。我再给你讲一遍，大家可以看到：李文就是典型的例子，（笑声）到了美国得了博士，得到什么？会失落的。<br />
　　所以我跟大家说，我们要拥抱***，尤其拥抱在他的背上面。***不喜欢笑，***太严肃，***钻牛角尖，***会把毛思想做狭窄的解释，我们把它放宽一点，这就是我今天的主要目的。我讲这一点很多人提心吊胆，包括我在内。人家说，你到大陆来要不要看长城，我说我可能没上了长城先进了秦城。（笑声，掌声）<br />
　　现在没事，就告诉大家：今天人心大坏，形势大好。人心坏掉了，我告诉各位：我到台湾的时候，台湾人排着队，干嘛？纳税。我说我们交税都逃税，怎么你们还排队呢？当了兵还要放鞭炮庆祝当兵。我说我们是逃兵，你们怎么这么老实呢？台湾人变坏了，我告诉各位，你们要听真话吗？大陆人也变坏了，也不是以前的大陆人了。为什么我说我不伤感，我不能伤感。我看到的北京是什么北京？我到店里去的时候，他看我，知道我买不起这些东西，他会倒杯茶给我。那样彬彬有礼的北京已经没有了，现在是处处设防的北京。我认为当你对人处处设防的时候，人没有信心了，人变坏了。<br />
　　今天我做个样板给大家看：我捐了35万块人民币给胡先生，要求给胡适在北大立个铜像。就是告诉大家，当年我们那样子打击胡适思想，其实胡适思想是最温和的，对我们是有利的。现在我们开始知道了，立个铜像给他。当年胡适在我穷困的时候送过1000块钱给我，我今天用了35万人民币，相当于150万台币，相当于1500倍来还胡先生这个人情，大家知道吗？你们是这种人吗？你们不是。你们可能有点钱，可能舍不得，觉得这个铜像不花也好，我花了。十天以前我离开，看到高金素梅去联合国宣布日本人的可恶的时候，我还送了她100万台币。各位想想看，不要以为我李敖有钱，我李敖是所谓台湾的“立法委员”，大家知道我在坐计程车吗？对我而言，真的做到了：富贵不能淫，贫贱不能移，威武不能屈，还有最后一项——时髦不能动。<br />
　　我敢讲真的话，谢谢各位。（掌声）</p>
<p>（回答现场观众提问）</p>
<p>问：李敖先生您好。（李敖：你好。（笑声））我来自政府管理学院，因为您这次来大陆是一次“神州文化之旅”，所以我的问题跟文化有关。我看过您的传记知道您年轻的时候曾经写过万字以上的长文，来主张中国的文化要全盘地西化。我不知道过了几十年之后，您现在是否仍然持有这种观点。而且，您的忘年交之一，也是我们非常尊敬的学者钱穆先生，他对中国的传统文化是非常推崇的。所以我的问题可以总结成一句话就是：您认为中国文化的发展方向应该是什么样的？是我们要继续地全盘西化，还是说保留原有文化的基础上吸收西方文化的精华，或者说还有其他的道路？谢谢您。</p>
<p>李敖：您刚刚谈到钱穆先生，我认识他。我在中学生的时候写信给他，纠正他的错误。他就是当年燕京大学的教授，你们都受了他的影响，为什么呢？因为燕京大学有一个湖，叫做未名湖，“未名”两个字就是钱穆起的。刚才你谈到的这部分，所谓全盘西化，这也算是一个我们现在政治正确里面的一个罪名，就是不可以搞全盘西化。可是我必须说，我们必须承认：我们是在全盘西化中最典型的例子，就是马克思，马克思就是全盘西化，因为他全是洋玩意儿，这就是我们无法完全避免。国防部你去问曹刚川部长，一定是，他现在不会搞什么刀枪剑戟，不会了，一定都是现代化的武器，这都是西方的玩意儿。当时林则徐在鸦片战争以后，他被发配到新疆。在路上，他写封信给他的一个好朋友，说这个信你不能发表。信里怎么说？他说：关公跟岳飞来了，都打不过英国人。为什么呢？因为英国人打我们，他炮打过来，我们被打到了；我们打他，打不着他，甚至看不见他。这种武器的悬殊，关公、岳飞来了，“关岳束手”，都没办法。这就是为什么我们要全盘西化的原因。过去为了政治的原因特别强调并且挖苦并且打击全盘西化，我必须说，现在可以缓和一点了。（掌声）</p>
<p>问：李敖先生您好。我是北京大学新闻与传播学院的学生。欢迎您到北大来。我想请问李敖先生，您作为一位具有独立精神和批判精神的知识分子，与大众传媒的合作是否影响到了您思考的独立性？谢谢。（掌声）</p>
<p>李敖：谁影响谁？（笑声）不错，我跟人家合作，人家会对我有所照顾，或者在双方合作的时候会考虑对方的立场。不过必须说刘长乐先生是个怪人，他有一个招儿和一个本领，就是我们打球一样打那个擦边球。就是很多话我们认为不能说的，他能够很技巧的让它说过去，而不出事。我觉得这是了不起的。并且我告诉大家，争取言论自由就是要用这种方法，就是你要说，说的别人能够听得进去。中国一句老话，叫做“情欲信而辞欲巧”。情，就是你的感情，你的事实，那个是真的，拿出来是真的；可是辞欲巧，要表达这些感情和事实的时候要讲求技巧，不是硬梆梆的，不是说“打倒***”，不是这样的，“我要抱住你。”（笑声，掌声）</p>
<p>问：李敖先生您好，非常荣幸有这次机会给您提问。在今年的早些时候，闵维方书记曾经提出这样一个观点，就是说对于那种——我记得不是特别清楚，反正大概意思就是说——对于有**言论的那些老师，应该清出课堂。我想您对这样的观点有什么评价？（掌声）</p>
<p>李敖：（扭头问主持人）我刚才没听清楚，所以我要请校长帮我打个小抄。我觉得作为大学，一个特色：什么言论都敢接受。怎么可以叫反动言论呢？怎么可以有反对言论上课堂呢？我告诉各位：医学院里不也教癌症吗？癌症这课我们也要上。所以我认为：把它当成癌症来看，而想出招来把它解决是很重要的，这是我的一个小的看法。所以我认为，在大学里面，没有什么说是可以害怕的，不能讲的，是不正确的。（掌声）</p>
<p>问：李敖先生您好，我是北京大学中国经济研究中心的老师。我相信您已经看到北大师生的热情了。我非常关心一个问题就是：您下一次什么时候来北大？（笑声）（李敖：我来干嘛？你叫我来干嘛？）您希望以什么形式与北大师生交流？（李敖：现在不在交流吗？）您下一次什么时候能够来北大？您希望以什么形式与北大师生交流？</p>
<p>李敖：当胡锦涛请我做北大校长的时候我就来了。（掌声）</p>
<p>问：李敖先生您好。我是北京大学国际关系学院的学生，我想问您一个有关两岸关系的问题。因为前不久国民党举行了党主席的直选，您在选举的前夜，在王金平的造势大会上公开表示您不支持马英九作为国民党党主席。我想请问您，在马英九已经当选国民党党主席之后，您认为他的政策会对两岸关系有何影响？您对两岸关系的稳定和平发展有没有信心？谢谢。（掌声）</p>
<p>李敖：我来北京就是怕谈台湾问题，果然这个问题就追上来了。我跟你讲，这就是政治人物和思想人物的不同。马英九长了一个好脸蛋，人也是个好人，可是一辈子，我告诉你们，他不做事的。我们讲他“不粘锅”：什么好事也不做，什么坏事也不做，什么责任也不负，就是笑嘻嘻的来拉选票，很多票也就这样给他了。所以我们认为：能够做事的人是很重要的，摆个小脸蛋到处跑是不好的。所以我认为马英九他干错行了，他应该去演个电影或者做歌星都比较好，至少变个大色狼也比较好。（笑声，掌声）</p>
<p>问：李敖先生我非常尊重你，我也对你刚才那样说马英九先生我觉得好像不太公平。我想问一个文化的问题，你是怎样看待中国的屈原的那种文化的呢？屈原的文化与北大的精神有什么关联呢？谢谢。</p>
<p>李敖：那就是典型的例子，我刚才讲过了：屈原就是属于我对政府不满，可是我的表达方法就是第一类的，我ger3了，就是那个。还是我听错了你的话？没有？就是这样子。所以我认为那是个弱者的表达，现在的人类要有不是弱者的表达，要使用清醒的，理性的并且快乐一点的表达。让我最后讲一个例子给大家看。我们都晓得王安石，王安石是在中国的鄞县，就是浙江宁波，做过官。做官的时候，他的小女儿很可怜，死在了任上。后来他调差了，他临走的时候，那天晚上，划个小船，到对面的坟上面给他的小女儿say good bye。后来写了一首诗，最后说：“今夜扁舟来诀汝”，今天晚上，我坐了陈水扁那小鬼的船，（笑声）来跟你说再见；“此生从此各西东”，从此我们见不到面了，什么原因？再也回不来了，为什么？回家乡好难的事情。大家看到唐朝人写诗，写了四万首诗，几乎有一半都是“天上明月光，疑是地上霜。举头望明月，低头思故乡”，都是思故乡。为什么思故乡呢？因为故乡对他们太遥远了，太难得了。为什么我现在我说我李敖不怀乡呢？我在台北有言在先：我这次回来，不是怀乡，没有乡愁；不是近乡，没有情怯；不是还乡，没有衣锦；不是林黛玉，没有眼泪。为什么我要这样？好像我没有乡愁，不是的，因为时代不该有乡愁，这是个错误的情绪。屈原是个错误的情绪，他对政府是个错误的态度。我希望我们有一种健康的快乐的态度来开创我们的未来。谢谢各位！（掌声）</p>
<p>　　（根据凤凰卫视直播视频及文字记录稿整理）</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/272/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>新新人类之-红孩儿大话火焰山</title>
		<link>http://welog.org/blog/258</link>
		<comments>http://welog.org/blog/258#comments</comments>
		<pubDate>Sat, 03 Sep 2005 03:21:18 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e6%96%b0%e6%96%b0%e4%ba%ba%e7%b1%bb%e4%b9%8b-%e7%ba%a2%e5%ad%a9%e5%84%bf%e5%a4%a7%e8%af%9d%e7%81%ab%e7%84%b0%e5%b1%b1/</guid>
		<description><![CDATA[[IMG]upload/redherd.gif[/IMG] 刚看了期待已久的国产动画片《红孩儿大话火焰山》，整个片子人物和场景融合的还算可以！动作也比较流畅，唐僧来一句Understands和中间那生硬蹩脚的配音都能理解！很明显，红孩儿大话火焰山面向的年龄层次是比较低的，所以说整个作品看下来感觉浅显易懂，没有什么特别值得深抠的人生哲理在里面。这多少有点遗憾.!!!是我要说一部成功的片子——尤其是动画片这个东西是作为艺术品的存在——它的包容力和它所能表现的东西绝对可以超过一个观众层，它完全可以同时被几个年龄层次的人所接受，不同年龄的人看到不同的侧面，吸取不同的东西。这才是将来中国动画主题的命线所在。不管怎么说国产的动画片也是在一步一步进步中，希望还能看到更好的国片！ [IMG]upload/redherd.gif[/IMG] 刚看了期待已久的国产动画片《红孩儿大话火焰山》，整个片子人物和场景融合的还算可以！动作也比较流畅，唐僧来一句Understands和中间那生硬蹩脚的配音都能理解！很明显，红孩儿大话火焰山面向的年龄层次是比较低的，所以说整个作品看下来感觉浅显易懂，没有什么特别值得深抠的人生哲理在里面。这多少有点遗憾.!!!是我要说一部成功的片子——尤其是动画片这个东西是作为艺术品的存在——它的包容力和它所能表现的东西绝对可以超过一个观众层，它完全可以同时被几个年龄层次的人所接受，不同年龄的人看到不同的侧面，吸取不同的东西。这才是将来中国动画主题的命线所在。不管怎么说国产的动画片也是在一步一步进步中，希望还能看到更好的国片！ 精彩剧照: [IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D65015F50DT20050809142310.jpg[/IMG] [IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D65011F50DT20050809142251.jpg[/IMG] [IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D65010F50DT20050809142246.jpg[/IMG] [IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D65007F50DT20050809142223.jpg[/IMG] [IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D65004F50DT20050809142206.jpg[/IMG] [IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D65002F50DT20050809142152.jpg[/IMG] 有点ＩＱ的悟空 [IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D64994F50DT20050809142107.jpg[/IMG] [IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D64975F50DT20050809142010.jpg[/IMG]]]></description>
			<content:encoded><![CDATA[<p>[IMG]upload/redherd.gif[/IMG]<br />
刚看了期待已久的国产动画片《红孩儿大话火焰山》，整个片子人物和场景融合的还算可以！动作也比较流畅，唐僧来一句Understands和中间那生硬蹩脚的配音都能理解！很明显，红孩儿大话火焰山面向的年龄层次是比较低的，所以说整个作品看下来感觉浅显易懂，没有什么特别值得深抠的人生哲理在里面。这多少有点遗憾.!!!是我要说一部成功的片子——尤其是动画片这个东西是作为艺术品的存在——它的包容力和它所能表现的东西绝对可以超过一个观众层，它完全可以同时被几个年龄层次的人所接受，不同年龄的人看到不同的侧面，吸取不同的东西。这才是将来中国动画主题的命线所在。不管怎么说国产的动画片也是在一步一步进步中，希望还能看到更好的国片！<br />
<span id="more-258"></span><br />
[IMG]upload/redherd.gif[/IMG]<br />
刚看了期待已久的国产动画片《红孩儿大话火焰山》，整个片子人物和场景融合的还算可以！动作也比较流畅，唐僧来一句Understands和中间那生硬蹩脚的配音都能理解！很明显，红孩儿大话火焰山面向的年龄层次是比较低的，所以说整个作品看下来感觉浅显易懂，没有什么特别值得深抠的人生哲理在里面。这多少有点遗憾.!!!是我要说一部成功的片子——尤其是动画片这个东西是作为艺术品的存在——它的包容力和它所能表现的东西绝对可以超过一个观众层，它完全可以同时被几个年龄层次的人所接受，不同年龄的人看到不同的侧面，吸取不同的东西。这才是将来中国动画主题的命线所在。不管怎么说国产的动画片也是在一步一步进步中，希望还能看到更好的国片！</p>
<p>精彩剧照:<br />
[IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D65015F50DT20050809142310.jpg[/IMG]</p>
<p>[IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D65011F50DT20050809142251.jpg[/IMG]</p>
<p>[IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D65010F50DT20050809142246.jpg[/IMG]</p>
<p>[IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D65007F50DT20050809142223.jpg[/IMG]</p>
<p>[IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D65004F50DT20050809142206.jpg[/IMG]</p>
<p>[IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D65002F50DT20050809142152.jpg[/IMG]<br />
有点ＩＱ的悟空</p>
<p>[IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D64994F50DT20050809142107.jpg[/IMG]</p>
<p>[IMG]http://image2.sina.com.cn/dongman/pic/redherd_jz/U54P55T4D64975F50DT20050809142010.jpg[/IMG]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/258/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>blog-city.com被封及安替博客</title>
		<link>http://welog.org/blog/243</link>
		<comments>http://welog.org/blog/243#comments</comments>
		<pubDate>Fri, 19 Aug 2005 05:48:57 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/blog-citycom%e8%a2%ab%e5%b0%81%e5%8f%8a%e5%ae%89%e6%9b%bf%e5%8d%9a%e5%ae%a2/</guid>
		<description><![CDATA[[IMG]upload/anti_small.gif[/IMG] 每天都习惯性的去浏览安替的博客，看有什么最新的新闻。今天打开时发生DNS错误，一开始以为自己的网络有问题，便刷新了N次和换了几个浏览器都无果后也就作罢了。想想应该是被封了，前段时间安替的博客没封我就决得奇怪了，我还一直为我们这边的IP段没被屏蔽而庆幸呢，但还是来了。今天得到了证实，安替的博客被封了，连blog-city.com也连同一起K了。封吧~~~~~~ [IMG]upload/anti_small.gif[/IMG] 每天都习惯性的去浏览安替的博客，看有什么最新的新闻。今天打开时发生DNS错误，一开始以为自己的网络有问题，便刷新了N次和换了几个浏览器都无果后也就作罢了。想想应该是被封了，前段时间安替的博客没封我就决得奇怪了，我还一直为我们这边的IP段没被屏蔽而庆幸呢，但还是来了。今天得到了证实，安替的博客被封了，连blog-city.com也连同一起被K了。封吧，封得了网络能封得了人心吗？~~~~~~ 现在ANTI又转战MSN Space了，我想这可不是一个有理想的地方，我想安在MSN Space的BLOG们得快搬家吧，有安替在下一个说不定就是MSN SPACE了~~~~~~ ANTI的新家 http://spaces.msn.com/members/mranti/Blog/ 相关评论： http://wozlog.net/archives/2005/08/17/132 http://www.rainbowsoft.org/zblog/post/blog-city_gfw_blocked.asp http://spaces.msn.com/members/likeyesterday/ http://ma-yue.net/archives/311 http://hengge.blogbus.com/logs/2005/08/1367925.html http://www.meimeiblog.com/blog/chouti/36272.htm http://pekingduck.org/archives/002813.php 国外参考 http://cyber.law.harvard.edu/globalvoices/2005/08&#8230; http://imagethief.com/china/archive/2005/08/17/3841.aspx http://www.asiapundit.com/2005/08/the_firewall_ex.html 参考阅读 http://madeinjune.net/blog/?p=79 http://www.asiapundit.com/2005/06/this_censorship.html http://gullyborg.typepad.com/weblog_archive/2005/06/banned_in_china.html http://www.deanesmay.com/posts/1119615859.shtml]]></description>
			<content:encoded><![CDATA[<p>[IMG]upload/anti_small.gif[/IMG]<br />
每天都习惯性的去浏览安替的博客，看有什么最新的新闻。今天打开时发生DNS错误，一开始以为自己的网络有问题，便刷新了N次和换了几个浏览器都无果后也就作罢了。想想应该是被封了，前段时间安替的博客没封我就决得奇怪了，我还一直为我们这边的IP段没被屏蔽而庆幸呢，但还是来了。今天得到了证实，安替的博客被封了，连blog-city.com也连同一起K了。封吧~~~~~~<br />
<span id="more-243"></span><br />
[IMG]upload/anti_small.gif[/IMG]</p>
<p>每天都习惯性的去浏览安替的博客，看有什么最新的新闻。今天打开时发生DNS错误，一开始以为自己的网络有问题，便刷新了N次和换了几个浏览器都无果后也就作罢了。想想应该是被封了，前段时间安替的博客没封我就决得奇怪了，我还一直为我们这边的IP段没被屏蔽而庆幸呢，但还是来了。今天得到了证实，安替的博客被封了，连blog-city.com也连同一起被K了。封吧，封得了网络能封得了人心吗？~~~~~~</p>
<p>现在ANTI又转战MSN Space了，我想这可不是一个有理想的地方，我想安在MSN Space的BLOG们得快搬家吧，有安替在下一个说不定就是MSN SPACE了~~~~~~</p>
<p>ANTI的新家</p>
<p>http://spaces.msn.com/members/mranti/Blog/</p>
<p>相关评论：</p>
<p>http://wozlog.net/archives/2005/08/17/132</p>
<p>http://www.rainbowsoft.org/zblog/post/blog-city_gfw_blocked.asp</p>
<p>http://spaces.msn.com/members/likeyesterday/</p>
<p>http://ma-yue.net/archives/311</p>
<p>http://hengge.blogbus.com/logs/2005/08/1367925.html</p>
<p>http://www.meimeiblog.com/blog/chouti/36272.htm</p>
<p>http://pekingduck.org/archives/002813.php</p>
<p>国外参考</p>
<p>http://cyber.law.harvard.edu/globalvoices/2005/08&#8230;</p>
<p>http://imagethief.com/china/archive/2005/08/17/3841.aspx</p>
<p>http://www.asiapundit.com/2005/08/the_firewall_ex.html</p>
<p>参考阅读</p>
<p>http://madeinjune.net/blog/?p=79</p>
<p>http://www.asiapundit.com/2005/06/this_censorship.html</p>
<p>http://gullyborg.typepad.com/weblog_archive/2005/06/banned_in_china.html</p>
<p>http://www.deanesmay.com/posts/1119615859.shtml</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/243/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>八十年代初出生的十大尴尬!</title>
		<link>http://welog.org/blog/242</link>
		<comments>http://welog.org/blog/242#comments</comments>
		<pubDate>Thu, 18 Aug 2005 06:15:40 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%85%ab%e5%8d%81%e5%b9%b4%e4%bb%a3%e5%88%9d%e5%87%ba%e7%94%9f%e7%9a%84%e5%8d%81%e5%a4%a7%e5%b0%b4%e5%b0%ac/</guid>
		<description><![CDATA[看来八十年代出生的人一出生就注定要背沉重的包袱，在这个本科满街走，硕士多过狗，博士还能抖一抖的时代，着实很尴尬。特别是眼下的就业形式，手上有一堆的证书也不能证明什么。又能证明什么呢？ 　　 [B]尴尬一：[/B]辛辛苦苦小学六年勤勤恳恳初中三年废寝忘食高中三年，眼看要走进考场却赶上国家扩招，任他猫猫狗狗也都能混个大学文凭，现在大学文凭算什么葱啊！(正好混了个) 　　[B]尴尬二：[/B]稀里糊涂大学混了四年，使尽浑身解数拿到英语四级、计算机****证，毕业证、学位证二证在手却怎么也找不&#8230; 看来八十年代出生的人一出生就注定要背沉重的包袱，在这个本科满街走，硕士多过狗，博士还能抖一抖的时代，着实很尴尬。特别是眼下的就业形式，手上有一堆的证书也不能证明什么。又能证明什么呢？ 　　 [B]尴尬一：[/B]辛辛苦苦小学六年勤勤恳恳初中三年废寝忘食高中三年，眼看要走进考场却赶上国家扩招，任他猫猫狗狗也都能混个大学文凭，现在大学文凭算什么葱啊！(正好混了个) 　　[B]尴尬二：[/B]稀里糊涂大学混了四年，使尽浑身解数拿到英语四级、计算机****证，毕业证、学位证二证在手却怎么也找不到如意的工作，有的连工作都找不到——刚毕业就失业。 (混了四年拿了几个证，现在的工作的感觉就是被骗了，谁叫我们都是“第一次”啊，现在的大学生值几个钱啊) 　　 [B]尴尬三：[/B]千辛万苦进了外商独资企业当白领，还是世界五百强，才发现原来中国现在遍地是外企，五百强有499家都在中国有分号。干白领的活承受巨大压力天天加班挣得比民工又多不了多少，稍微发点牢骚就有老外拍桌子：你他妈什么玩意儿，上午把你fire下午我就能找一个！(幸运没进外企) 　　 [B]尴尬四：[/B]福利分房早已成为昨日黄花，住房公积金少得可怜，又赶上无耻之徒畜牲一样遍地炒房，辛辛苦苦工作了一年，才发现如果不吃不喝睡大街衣麻袋一年攒的钱才能买四五平米住房，贷款住进新房一点都开心不起来——要换20年的贷款啊！(没敢想买房，只想把房租交上) 　　 [B]尴尬五：[/B]小时候教育要做个诚实的孩子，中学大学又普及诚信教育，工作后却不得不抽假烟、喝假酒、说假话，上了拿假文凭人的当，在假发票上签了字，最糟心的是——花钱叫了个小姐，一摸身上全是假的。(虽然假话到是不说，但假酒喝了不少，抽烟那叫人在江湖身不由己；倒是没叫过小姐，听到这两个字都起鸡皮疙瘩) 　　 [B]尴尬六：[/B]他们说计划经济的教育已经跟不上时代，他们说要普及素质教育，结果我们什么都得学，什么都刚摸到皮毛却连皮毛都不知道。一旦参加工作发现原来在学校里什么都没有学到，得花大把大把的钱去上这个班去考那个证。班上完了，证也考到了，发现自己还是一个二百五；(越来越觉得自己真是一个二百五) 　　 [B]尴尬七：[/B]电子信息产业高速发展，网上信息如潮如涌，不论是垃圾还是精华都让人疲惫不堪，没手机没电脑人家会觉得你生于陆拾年代，有人天天打游戏有人天天上网也有人天天在网上钓鱼——美人鱼出现的几率小于万分之一。(出现美人鱼，是人家的) 　　 [B]尴尬八：[/B]从小学完雷锋学赖宁，接着在学李素丽、孔繁森，之后还有济南交警还有抗洪英雄还有在异国他乡被炸死的记者还有……现在要学杨利伟——说一套做一套，表面文章做足了接着自私自利。 　　 [B]尴尬九：[/B]闯荡社会若干年发现一事无成一钱未赚一权未某，必不得已重新拾起书本泡在这个考前冲刺那个精华笔记那个制胜宝典那个某某密题中，希望能够再去学校混个更高一点的文凭出来好混日子；(回想起来在学校的日子叫爽啊，可惜没有珍惜，多希望上天再给一次机会，我会说…) 　　 [B]尴尬十：[/B]美好的生活属于谁呢？二十年前，“属于我，属于你，属于八十年代的新一辈“，十五年前“太阳是我们的，太阳是我们的，月亮……”，十年前“让我们期待明 天会更好！”，八年前“不经历风雨，则么能见彩虹，没有人能随随便便成功”，现在“我闭上眼睛就成天黑”。1990初生牛犊不怕虎，谁都没把八十年出生的人放在眼里。]]></description>
			<content:encoded><![CDATA[<p>看来八十年代出生的人一出生就注定要背沉重的包袱，在这个本科满街走，硕士多过狗，博士还能抖一抖的时代，着实很尴尬。特别是眼下的就业形式，手上有一堆的证书也不能证明什么。又能证明什么呢？<br />
　　   [B]尴尬一：[/B]辛辛苦苦小学六年勤勤恳恳初中三年废寝忘食高中三年，眼看要走进考场却赶上国家扩招，任他猫猫狗狗也都能混个大学文凭，现在大学文凭算什么葱啊！(正好混了个)</p>
<p>　　[B]尴尬二：[/B]稀里糊涂大学混了四年，使尽浑身解数拿到英语四级、计算机****证，毕业证、学位证二证在手却怎么也找不&#8230;<br />
<span id="more-242"></span><br />
看来八十年代出生的人一出生就注定要背沉重的包袱，在这个本科满街走，硕士多过狗，博士还能抖一抖的时代，着实很尴尬。特别是眼下的就业形式，手上有一堆的证书也不能证明什么。又能证明什么呢？<br />
　　   [B]尴尬一：[/B]辛辛苦苦小学六年勤勤恳恳初中三年废寝忘食高中三年，眼看要走进考场却赶上国家扩招，任他猫猫狗狗也都能混个大学文凭，现在大学文凭算什么葱啊！(正好混了个)</p>
<p>　　[B]尴尬二：[/B]稀里糊涂大学混了四年，使尽浑身解数拿到英语四级、计算机****证，毕业证、学位证二证在手却怎么也找不到如意的工作，有的连工作都找不到——刚毕业就失业。<br />
(混了四年拿了几个证，现在的工作的感觉就是被骗了，谁叫我们都是“第一次”啊，现在的大学生值几个钱啊)</p>
<p>　　 [B]尴尬三：[/B]千辛万苦进了外商独资企业当白领，还是世界五百强，才发现原来中国现在遍地是外企，五百强有499家都在中国有分号。干白领的活承受巨大压力天天加班挣得比民工又多不了多少，稍微发点牢骚就有老外拍桌子：你他妈什么玩意儿，上午把你fire下午我就能找一个！(幸运没进外企)</p>
<p>　　 [B]尴尬四：[/B]福利分房早已成为昨日黄花，住房公积金少得可怜，又赶上无耻之徒畜牲一样遍地炒房，辛辛苦苦工作了一年，才发现如果不吃不喝睡大街衣麻袋一年攒的钱才能买四五平米住房，贷款住进新房一点都开心不起来——要换20年的贷款啊！(没敢想买房，只想把房租交上)</p>
<p>　　 [B]尴尬五：[/B]小时候教育要做个诚实的孩子，中学大学又普及诚信教育，工作后却不得不抽假烟、喝假酒、说假话，上了拿假文凭人的当，在假发票上签了字，最糟心的是——花钱叫了个小姐，一摸身上全是假的。(虽然假话到是不说，但假酒喝了不少，抽烟那叫人在江湖身不由己；倒是没叫过小姐，听到这两个字都起鸡皮疙瘩)</p>
<p>　　 [B]尴尬六：[/B]他们说计划经济的教育已经跟不上时代，他们说要普及素质教育，结果我们什么都得学，什么都刚摸到皮毛却连皮毛都不知道。一旦参加工作发现原来在学校里什么都没有学到，得花大把大把的钱去上这个班去考那个证。班上完了，证也考到了，发现自己还是一个二百五；(越来越觉得自己真是一个二百五)</p>
<p>　　 [B]尴尬七：[/B]电子信息产业高速发展，网上信息如潮如涌，不论是垃圾还是精华都让人疲惫不堪，没手机没电脑人家会觉得你生于陆拾年代，有人天天打游戏有人天天上网也有人天天在网上钓鱼——美人鱼出现的几率小于万分之一。(出现美人鱼，是人家的)</p>
<p>　　 [B]尴尬八：[/B]从小学完雷锋学赖宁，接着在学李素丽、孔繁森，之后还有济南交警还有抗洪英雄还有在异国他乡被炸死的记者还有……现在要学杨利伟——说一套做一套，表面文章做足了接着自私自利。</p>
<p>　　 [B]尴尬九：[/B]闯荡社会若干年发现一事无成一钱未赚一权未某，必不得已重新拾起书本泡在这个考前冲刺那个精华笔记那个制胜宝典那个某某密题中，希望能够再去学校混个更高一点的文凭出来好混日子；(回想起来在学校的日子叫爽啊，可惜没有珍惜，多希望上天再给一次机会，我会说…)</p>
<p>　　 [B]尴尬十：[/B]美好的生活属于谁呢？二十年前，“属于我，属于你，属于八十年代的新一辈“，十五年前“太阳是我们的，太阳是我们的，月亮……”，十年前“让我们期待明 天会更好！”，八年前“不经历风雨，则么能见彩虹，没有人能随随便便成功”，现在“我闭上眼睛就成天黑”。1990初生牛犊不怕虎，谁都没把八十年出生的人放在眼里。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/242/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>腾讯新QQ在线挂级计划!!!!</title>
		<link>http://welog.org/blog/241</link>
		<comments>http://welog.org/blog/241#comments</comments>
		<pubDate>Tue, 16 Aug 2005 08:40:32 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e8%85%be%e8%ae%af%e6%96%b0qq%e5%9c%a8%e7%ba%bf%e6%8c%82%e7%ba%a7%e8%ae%a1%e5%88%92/</guid>
		<description><![CDATA[腾讯这下终于还是下了决定，想出了一个他自以为合理的办法。其实我想这样的方法本来就不应该存在，国家现不是正在建设节约型社会吗？现在折腾个这么个办法出来，不知道能否让Q迷们清醒一点！我是被每次用电高峰时电脑因为电压不稳而重启很光火（当然这不是绝对因素）~~~但也没办法，只能用“我很生气，后果不严重”来解气了~~~ 这就是他们/[FONT-COLOR=red]此方案将能够在维护用户原本的利益的前提下，最大化的避免非常规使用状态下的挂机现象。我们也希望此次调整能够从客观上引导网友绿色健康上网，倡导节能意识。[/FONT-COLOR]/客观上的绿色健康上网,还美其名曰“倡导节能意识”，看来还得谢谢腾讯让我们有了节能意识~我晕~ 腾讯这下终于还是下了决定，想出了一个他自以为合理的办法。其实我想这样的方法本来就不应该存在，国家现不是正在建设节约型社会吗？现在折腾个这么个办法出来，不知道能否让Q迷们清醒一点！我是被每次用电高峰时电脑因为电压不稳而重启很光火（当然这不是绝对因素）~~~但也没办法，只能用“我很生气，后果不严重”来解气了~~~ 这就是他们/[FONT-COLOR=red]此方案将能够在维护用户原本的利益的前提下，最大化的避免非常规使用状态下的挂机现象。我们也希望此次调整能够从客观上引导网友绿色健康上网，倡导节能意识。[/FONT-COLOR]/客观上的绿色健康上网,还美其名曰“倡导节能意识”，看来还得谢谢腾讯让我们有了节能意识~我晕~ 相关的办法如下： [CODE_LITE]腾讯公司今天正式推行新的QQ在线计划方案，新方案将计算时长的方式由原来的“以小时为单位”改为“以活跃天为单位”，以避免部分用户无谓的挂网升级。新方案实施后，用户只要当天2小时在线，便可计为一个活跃天数，得到相应积分，假若有网友一天挂机16个小时甚至更多，相应的也只能获得一个活跃天数的积分。 [/CODE_LITE] [FONT-COLOR=Red]为了有个可比性还是把挂Q的严重性补上，以示Q迷，你们在得了太阳后所付的代价~~~[/FONT-COLOR] [CODE_LITE]挂出“太阳”要耗507度电。以腾讯给出的升级时间公式计算，要挂到一个太阳(16级)，需要的时间是1520个小时，计63.3天。一般的台式电脑每3小时消耗一度电。要得到一个月亮，需在线140小时，耗电47度，而为了1520小时后的那个“太阳”，将消耗507度电。 [/CODE_LITE] [IMG]upload/qq4.gif[/IMG]]]></description>
			<content:encoded><![CDATA[<p>腾讯这下终于还是下了决定，想出了一个他自以为合理的办法。其实我想这样的方法本来就不应该存在，国家现不是正在建设节约型社会吗？现在折腾个这么个办法出来，不知道能否让Q迷们清醒一点！我是被每次用电高峰时电脑因为电压不稳而重启很光火（当然这不是绝对因素）~~~但也没办法，只能用“我很生气，后果不严重”来解气了~~~<br />
这就是他们/[FONT-COLOR=red]此方案将能够在维护用户原本的利益的前提下，最大化的避免非常规使用状态下的挂机现象。我们也希望此次调整能够从客观上引导网友绿色健康上网，倡导节能意识。[/FONT-COLOR]/客观上的绿色健康上网,还美其名曰“倡导节能意识”，看来还得谢谢腾讯让我们有了节能意识~我晕~<br />
<span id="more-241"></span><br />
腾讯这下终于还是下了决定，想出了一个他自以为合理的办法。其实我想这样的方法本来就不应该存在，国家现不是正在建设节约型社会吗？现在折腾个这么个办法出来，不知道能否让Q迷们清醒一点！我是被每次用电高峰时电脑因为电压不稳而重启很光火（当然这不是绝对因素）~~~但也没办法，只能用“我很生气，后果不严重”来解气了~~~<br />
这就是他们/[FONT-COLOR=red]此方案将能够在维护用户原本的利益的前提下，最大化的避免非常规使用状态下的挂机现象。我们也希望此次调整能够从客观上引导网友绿色健康上网，倡导节能意识。[/FONT-COLOR]/客观上的绿色健康上网,还美其名曰“倡导节能意识”，看来还得谢谢腾讯让我们有了节能意识~我晕~</p>
<p>相关的办法如下：<br />
[CODE_LITE]腾讯公司今天正式推行新的QQ在线计划方案，新方案将计算时长的方式由原来的“以小时为单位”改为“以活跃天为单位”，以避免部分用户无谓的挂网升级。新方案实施后，用户只要当天2小时在线，便可计为一个活跃天数，得到相应积分，假若有网友一天挂机16个小时甚至更多，相应的也只能获得一个活跃天数的积分。<br />
[/CODE_LITE]</p>
<p>[FONT-COLOR=Red]为了有个可比性还是把挂Q的严重性补上，以示Q迷，你们在得了太阳后所付的代价~~~[/FONT-COLOR]<br />
[CODE_LITE]挂出“太阳”要耗507度电。以腾讯给出的升级时间公式计算，要挂到一个太阳(16级)，需要的时间是1520个小时，计63.3天。一般的台式电脑每3小时消耗一度电。要得到一个月亮，需在线140小时，耗电47度，而为了1520小时后的那个“太阳”，将消耗507度电。<br />
[/CODE_LITE]</p>
<p>[IMG]upload/qq4.gif[/IMG]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/241/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>牢记历史,以史为镜,以史为鉴.</title>
		<link>http://welog.org/blog/240</link>
		<comments>http://welog.org/blog/240#comments</comments>
		<pubDate>Tue, 16 Aug 2005 06:32:27 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e7%89%a2%e8%ae%b0%e5%8e%86%e5%8f%b2%e4%bb%a5%e5%8f%b2%e4%b8%ba%e9%95%9c%e4%bb%a5%e5%8f%b2%e4%b8%ba%e9%89%b4/</guid>
		<description><![CDATA[今天是8月15日是日本战败60周年纪念日，我想这个日子应该永远记住，不是因为仇恨，而是让热爱和平的人们记住由战争带来的苦难。 [IMG]upload/19452005.gif[/IMG] [B][FONT-COLOR=Red]今天是8月15日是日本战败60周年纪念日，我想这个日子应该永远记住，不是因为仇恨，而是让热爱和平的人们记住由战争带来的苦难。[/FONT-COLOR][/B] [IMG]upload/19452005.gif[/IMG] [IMG]upload/s.jpg[/IMG] 《公元一千九百四十五年九月九日九时·南京》（油画） 陈坚/作 [IMG]upload/j.jpg[/IMG] 1945年8月15日中午，日本天皇发布诏书，宣布接受盟国的《波茨坦公告》，向盟国投降。]]></description>
			<content:encoded><![CDATA[<p>今天是8月15日是日本战败60周年纪念日，我想这个日子应该永远记住，不是因为仇恨，而是让热爱和平的人们记住由战争带来的苦难。<br />
[IMG]upload/19452005.gif[/IMG]<br />
<span id="more-240"></span><br />
[B][FONT-COLOR=Red]今天是8月15日是日本战败60周年纪念日，我想这个日子应该永远记住，不是因为仇恨，而是让热爱和平的人们记住由战争带来的苦难。[/FONT-COLOR][/B]<br />
[IMG]upload/19452005.gif[/IMG]</p>
<p>[IMG]upload/s.jpg[/IMG]<br />
《公元一千九百四十五年九月九日九时·南京》（油画） 陈坚/作</p>
<p>[IMG]upload/j.jpg[/IMG]<br />
1945年8月15日中午，日本天皇发布诏书，宣布接受盟国的《波茨坦公告》，向盟国投降。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/240/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>苹果操作系统被破解?</title>
		<link>http://welog.org/blog/238</link>
		<comments>http://welog.org/blog/238#comments</comments>
		<pubDate>Sat, 13 Aug 2005 02:38:59 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e8%8b%b9%e6%9e%9c%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e8%a2%ab%e7%a0%b4%e8%a7%a3/</guid>
		<description><![CDATA[[IMG]upload/200508121938495074.jpg[/IMG] [FONT-COLOR=Red][B]苹果操作系统被破解 现在就可兼容英特尔芯 [/B][/FONT-COLOR] [CODE_LITE]黑客日前已将苹果公司的Mac OS X操作系统成功破解，使之可以运行在非苹果硬件上。 据macworld报道，Macbidouille网站甚至还公布了视频剪辑，演示了整个破解过程。 据悉，经过破解后的操作系统可以成功运行在Mitac 8050D笔记本电脑上，而Mitac 8050D采用的是英特尔的奔腾处理器。据视频剪辑显示，Mac OS X在Mita&#8230; [IMG]upload/200508121938495074.jpg[/IMG] [FONT-COLOR=Red][B]苹果操作系统被破解 现在就可兼容英特尔芯 [/B][/FONT-COLOR] [CODE_LITE]黑客日前已将苹果公司的Mac OS X操作系统成功破解，使之可以运行在非苹果硬件上。 据macworld报道，Macbidouille网站甚至还公布了视频剪辑，演示了整个破解过程。 据悉，经过破解后的操作系统可以成功运行在Mitac 8050D笔记本电脑上，而Mitac 8050D采用的是英特尔的奔腾处理器。据视频剪辑显示，Mac OS X在Mitac 8050D笔记本上的运行速度相当快。 Macbidouille网站还称，在非苹果硬件上安装Mac OS X操作系统后，用户甚至可以查看处理器主频、缓存，以及操作系统的各项信息等。 [/CODE_LITE] 这条信息不知道是否是真的，昨天才说这个时代什么事都有可能发生。但如果是属实那APPLE这下要做不住了，也许又是一个忽悠~~~~]]></description>
			<content:encoded><![CDATA[<p>[IMG]upload/200508121938495074.jpg[/IMG]<br />
[FONT-COLOR=Red][B]苹果操作系统被破解 现在就可兼容英特尔芯 [/B][/FONT-COLOR]<br />
[CODE_LITE]黑客日前已将苹果公司的Mac OS X操作系统成功破解，使之可以运行在非苹果硬件上。<br />
据macworld报道，Macbidouille网站甚至还公布了视频剪辑，演示了整个破解过程。<br />
据悉，经过破解后的操作系统可以成功运行在Mitac 8050D笔记本电脑上，而Mitac 8050D采用的是英特尔的奔腾处理器。据视频剪辑显示，Mac OS X在Mita&#8230;<br />
<span id="more-238"></span><br />
[IMG]upload/200508121938495074.jpg[/IMG]<br />
[FONT-COLOR=Red][B]苹果操作系统被破解 现在就可兼容英特尔芯 [/B][/FONT-COLOR]<br />
[CODE_LITE]黑客日前已将苹果公司的Mac OS X操作系统成功破解，使之可以运行在非苹果硬件上。<br />
据macworld报道，Macbidouille网站甚至还公布了视频剪辑，演示了整个破解过程。<br />
据悉，经过破解后的操作系统可以成功运行在Mitac 8050D笔记本电脑上，而Mitac 8050D采用的是英特尔的奔腾处理器。据视频剪辑显示，Mac OS X在Mitac 8050D笔记本上的运行速度相当快。<br />
Macbidouille网站还称，在非苹果硬件上安装Mac OS X操作系统后，用户甚至可以查看处理器主频、缓存，以及操作系统的各项信息等。<br />
[/CODE_LITE]</p>
<p>这条信息不知道是否是真的，昨天才说这个时代什么事都有可能发生。但如果是属实那APPLE这下要做不住了，也许又是一个忽悠~~~~</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/238/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Google和百度是这样合并的~~~~</title>
		<link>http://welog.org/blog/234</link>
		<comments>http://welog.org/blog/234#comments</comments>
		<pubDate>Wed, 10 Aug 2005 00:40:29 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/google%e5%92%8c%e7%99%be%e5%ba%a6%e6%98%af%e8%bf%99%e6%a0%b7%e5%90%88%e5%b9%b6%e7%9a%84/</guid>
		<description><![CDATA[[IMG]upload/xinsrc_18208020910573282132181.gif[/IMG] 如果当初的GOOGLE真的收购了百度那他的LOGO会不会变成上面的样子呢，答案应该是否定的，但今天无意间发现“[URL=www.baigoodugle.com]百度Google[/URL]”及“[URL=www.baigoo.com]百狗[/URL]”二个网站，怎么看着是google和baidu的结合体呢？打开这个网站，正中央“baigoodugle”的标志俨然是百度与Google标志的结合（如上图）。难道百度上市了有和GOOGLE苟合的准备？我随便输入了几个关键词，打开一看还真是结合的很好哦，左右二边分别为GOOGLE和BAIDU的搜索结果！通过whois搜&#8230; [IMG]upload/xinsrc_18208020910573282132181.gif[/IMG] 如果当初的GOOGLE真的收购了百度那他的LOGO会不会变成这个样子呢，答案应该是否定的，但今天无意间打开了“[URL=www.baigoodugle.com]百度Google[/URL]”网站，怎么看着是google和baidu的结合体呢？打开这个网站，正中央“baigoodugle”的标志俨然是百度与Google标志的结合（如上图）。难道百度上市了有和GOOGLE合作的准备？我随便输入了几个关键词，打开一看还真是结合的很好哦，左右二边分别为GOOGLE和BAIDU的搜索结果！通过whois搜索了一下，这家伙应该是个加拿大华人~~~ [CODE_LITE] WHOIS information for baigoodugle.com: [whois.melbourneit.com] Domain Name&#8230;&#8230;&#8230;. baigoodugle.com Creation Date&#8230;&#8230;.. 2005-04-25 Registration Date&#8230;. 2005-04-25 Expiry Date&#8230;&#8230;&#8230;. 2006-04-25 Organisation Name&#8230;. Xiaobo Zhan Organisation Address. 461 Willibrord ST. Apt. 19 Organisation Address. Organisation Address. Montreal Organisation Address. H4G2T7 Organisation Address. Quebec Organisation Address. CANADA Admin Name&#8230;&#8230;&#8230;.. Xiaobo Zhan Admin Address&#8230;&#8230;.. 461 Willibrord [...]]]></description>
			<content:encoded><![CDATA[<p>[IMG]upload/xinsrc_18208020910573282132181.gif[/IMG]<br />
如果当初的GOOGLE真的收购了百度那他的LOGO会不会变成上面的样子呢，答案应该是否定的，但今天无意间发现“[URL=www.baigoodugle.com]百度Google[/URL]”及“[URL=www.baigoo.com]百狗[/URL]”二个网站，怎么看着是google和baidu的结合体呢？打开这个网站，正中央“baigoodugle”的标志俨然是百度与Google标志的结合（如上图）。难道百度上市了有和GOOGLE苟合的准备？我随便输入了几个关键词，打开一看还真是结合的很好哦，左右二边分别为GOOGLE和BAIDU的搜索结果！通过whois搜&#8230;<br />
<span id="more-234"></span><br />
[IMG]upload/xinsrc_18208020910573282132181.gif[/IMG]<br />
如果当初的GOOGLE真的收购了百度那他的LOGO会不会变成这个样子呢，答案应该是否定的，但今天无意间打开了“[URL=www.baigoodugle.com]百度Google[/URL]”网站，怎么看着是google和baidu的结合体呢？打开这个网站，正中央“baigoodugle”的标志俨然是百度与Google标志的结合（如上图）。难道百度上市了有和GOOGLE合作的准备？我随便输入了几个关键词，打开一看还真是结合的很好哦，左右二边分别为GOOGLE和BAIDU的搜索结果！通过whois搜索了一下，这家伙应该是个加拿大华人~~~<br />
[CODE_LITE]<br />
WHOIS information for baigoodugle.com:</p>
<p>[whois.melbourneit.com]</p>
<p>Domain Name&#8230;&#8230;&#8230;. baigoodugle.com<br />
  Creation Date&#8230;&#8230;.. 2005-04-25<br />
  Registration Date&#8230;. 2005-04-25<br />
  Expiry Date&#8230;&#8230;&#8230;. 2006-04-25<br />
  Organisation Name&#8230;. Xiaobo Zhan<br />
  Organisation Address. 461 Willibrord ST. Apt. 19<br />
  Organisation Address.<br />
  Organisation Address. Montreal<br />
  Organisation Address. H4G2T7<br />
  Organisation Address. Quebec<br />
  Organisation Address. CANADA</p>
<p>Admin Name&#8230;&#8230;&#8230;.. Xiaobo Zhan<br />
  Admin Address&#8230;&#8230;.. 461 Willibrord ST. Apt. 19<br />
  Admin Address&#8230;&#8230;..<br />
  Admin Address&#8230;&#8230;.. Montreal<br />
  Admin Address&#8230;&#8230;.. H4G2T7<br />
  Admin Address&#8230;&#8230;.. Quebec<br />
  Admin Address&#8230;&#8230;.. CANADA<br />
  Admin Email&#8230;&#8230;&#8230;. xiaobo.zhan@gmail.com<br />
  Admin Phone&#8230;&#8230;&#8230;. +1.5147692239<br />
  Admin Fax&#8230;&#8230;&#8230;&#8230; </p>
<p>Tech Name&#8230;&#8230;&#8230;&#8230; YahooDomains TechContact<br />
  Tech Address&#8230;&#8230;&#8230; 701 First Ave.<br />
  Tech Address&#8230;&#8230;&#8230;<br />
  Tech Address&#8230;&#8230;&#8230; Sunnyvale<br />
  Tech Address&#8230;&#8230;&#8230; 94089<br />
  Tech Address&#8230;&#8230;&#8230; CA<br />
  Tech Address&#8230;&#8230;&#8230; UNITED STATES<br />
  Tech Email&#8230;&#8230;&#8230;.. domain.tech@YAHOO-INC.COM<br />
  Tech Phone&#8230;&#8230;&#8230;.. +1.6198813096<br />
  Tech Fax&#8230;&#8230;&#8230;&#8230;. +1.6198813010<br />
  Name Server&#8230;&#8230;&#8230;. wsc1.jomax.net<br />
  Name Server&#8230;&#8230;&#8230;. wsc2.jomax.net<br />
[/CODE_LITE]</p>
<p>[IMG]upload/200508091817407746.gif[/IMG]<br />
同时我在网上也查找另外的个叫“[URL=http://www.baigoo.com]百狗[/URL]”的网站也是结合了GOOGLE和百度的双搜网站,不知道是不是同一个人注册的，如果那一天GOOGLE和百度真的合作了这家伙的确得有经济头脑。百度也上市了GOOGLE也进入中国了，阿里巴巴也要收购YAHOO中国了，这个八月中国的互联网还真是很热闹，好像没有什么不可能的哦。希望不要像kesoo说的像个气球~~~~</p>
<p>[CODE_LITE]“百狗”的创办人胡腾，据其介绍，该网站于8月4日才正式开通。胡腾表示，“百度Google”是一个加拿大华人做的，在今年4月份的时候他发现了这个网站，并试图和这个加拿大华人建立联系，想知道做百度和Google双搜的技术，后来没联系上。今年5月份，媒体传出Google有意收购百度，接下来Google全面开展在华业务，百度将在纳斯达克上市等一系列新闻不断刺激着胡腾，他相信未来Google和百度一定会有合作，做一个百度和Google双搜的网站说不定以后能卖个好价钱。[/CODE_LITE]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/234/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我也来参与Top 5 Funny Blog活动!!!</title>
		<link>http://welog.org/blog/233</link>
		<comments>http://welog.org/blog/233#comments</comments>
		<pubDate>Mon, 08 Aug 2005 09:41:41 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e6%88%91%e4%b9%9f%e6%9d%a5%e5%8f%82%e4%b8%8etop-5-funny-blog%e6%b4%bb%e5%8a%a8/</guid>
		<description><![CDATA[[IMG]upload/topblog.jpg[/IMG] 从老康那看到参与[URL=http://www.b9527.net/?q=node/740]Top 5 Funny Blog活动[/URL]，感觉[URL=http://blog.donews.com/biantaishabi/]biantaishabi[/URL]的这个想法很不错。如果每个BLOGER人都去参加[URL=http://www.postshow.net/top5funnyblogs/]Top 5 Funny Blog[/URL]，选出自己认为最好玩最有意思的BLOG！我们再从这TOP5中找出自己认为有价值的BLOG收藏，既增加了我们的信息量也扩大了知识面~~~~~这个，这个就是WEB2.0吧！！！不扯这些了，我也来show一下我的收藏吧~~~~ [IMG]upload/topblog.jpg[/IMG] 从老康那看到参与[URL=http://www.b9527.net/?q=node/740]Top 5 Funny Blog活动[/URL]，感觉[URL=http://blog.donews.com/biantaishabi/]biantaishabi[/URL]的这个想法很不错。如果每个BLOGER人都去参加[URL=http://www.postshow.net/top5funnyblogs/]Top 5 Funny Blog[/URL]，选出自己认为最好玩最有意思的BLOG！我们再从这TOP5中找出自己认为有价值的BLOG收藏，既增加了我们的信息量也扩大了知识面~~~~~这个，这个就是WEB2.0吧！！！不扯这些了，我也来show一下我的收藏吧~~~~ 1、[URL=http://www.dengjie.com/]Danger&#8217;s Blog[/URL]： 这可能是我接触的最早的一个BLOG，专注于研究FLASH、Flex、AS，关于FLASH的相关组件更新非常及时，并是常发表自己的FLASH教程，这也是我有一段时期对FLASH狂热的原因。哈哈~~~ 2、[URL=http://www.antiwave.net/]反波[/URL]： 用真实为盾牌抵御虚伪，以自由为利器刺向陈规。我们坚信，嘈杂纷乱的世界里，有一种声音可以让你触摸欢乐、感知力量。反对传统电波里的一切虚假、束缚、欺骗和铜臭……用声音播出来的叫播客，但播客反着播就不得不让人为之心动了，加上平客那搞笑灰色的风格让人为之喷饭~~~~如果他们能给出一套制作这样的声音播客教程，让我们这些没有专业设备的BLOGER也过一把播客瘾就好了。 　　 3、[URL=http://blog.javaresearch.org/]凌乱的轨迹[/URL]: 这家伙是个技术高手，研究JAVA及开源技术，他的每篇文章内容都有自己细致的见解，让我在学习JAVA过程中收益非浅！ 4、[URL=http://blog.sina.com.tw/]Lorenz[/URL]： Lorenz是T大的學生，喜歡職棒、閱讀和打壘球。這裡是發表對於國內時事的淺顯觀點，還有對於威瑪共和研究的心得，之所以是威瑪，因為大家都熟悉他的燦爛文化，但對於影響如此深遠的政治，在台灣卻還是值得開發的園地。請各位在這裡隨心所欲的聊，交流讓彼此成長。几个为数不多的台湾BLOGER，虽然对政治不感举，但他的文章让我也能了解一下岛内的许多新闻！！ 5、[URL=http://www.52blog.org/]五月—没有鱼的海[/URL]： 这是一个音乐BLOGER，他的站更新很快，让我能听到不同风格的音乐！ 这是我从一堆BLOG里选出的一些自认为有代表性的BLOGER，这次的活动主要是推荐自己喜欢的收藏所以blog界的那些精英，keso、anti、王建硕呀在这里就不占位置了哈哈！~~~他本就是每天都去的地方所以这里就省去了~~ Technorati Tags: top5funnyblog]]></description>
			<content:encoded><![CDATA[<p>[IMG]upload/topblog.jpg[/IMG]<br />
从老康那看到参与[URL=http://www.b9527.net/?q=node/740]Top 5 Funny Blog活动[/URL]，感觉[URL=http://blog.donews.com/biantaishabi/]biantaishabi[/URL]的这个想法很不错。如果每个BLOGER人都去参加[URL=http://www.postshow.net/top5funnyblogs/]Top 5 Funny Blog[/URL]，选出自己认为最好玩最有意思的BLOG！我们再从这TOP5中找出自己认为有价值的BLOG收藏，既增加了我们的信息量也扩大了知识面~~~~~这个，这个就是WEB2.0吧！！！不扯这些了，我也来show一下我的收藏吧~~~~<br />
<span id="more-233"></span><br />
[IMG]upload/topblog.jpg[/IMG]<br />
从老康那看到参与[URL=http://www.b9527.net/?q=node/740]Top 5 Funny Blog活动[/URL]，感觉[URL=http://blog.donews.com/biantaishabi/]biantaishabi[/URL]的这个想法很不错。如果每个BLOGER人都去参加[URL=http://www.postshow.net/top5funnyblogs/]Top 5 Funny Blog[/URL]，选出自己认为最好玩最有意思的BLOG！我们再从这TOP5中找出自己认为有价值的BLOG收藏，既增加了我们的信息量也扩大了知识面~~~~~这个，这个就是WEB2.0吧！！！不扯这些了，我也来show一下我的收藏吧~~~~</p>
<p>1、[URL=http://www.dengjie.com/]Danger&#8217;s Blog[/URL]：<br />
    这可能是我接触的最早的一个BLOG，专注于研究FLASH、Flex、AS，关于FLASH的相关组件更新非常及时，并是常发表自己的FLASH教程，这也是我有一段时期对FLASH狂热的原因。哈哈~~~</p>
<p>2、[URL=http://www.antiwave.net/]反波[/URL]：<br />
    用真实为盾牌抵御虚伪，以自由为利器刺向陈规。我们坚信，嘈杂纷乱的世界里，有一种声音可以让你触摸欢乐、感知力量。反对传统电波里的一切虚假、束缚、欺骗和铜臭……用声音播出来的叫播客，但播客反着播就不得不让人为之心动了，加上平客那搞笑灰色的风格让人为之喷饭~~~~如果他们能给出一套制作这样的声音播客教程，让我们这些没有专业设备的BLOGER也过一把播客瘾就好了。<br />
　　<br />
3、[URL=http://blog.javaresearch.org/]凌乱的轨迹[/URL]:<br />
    这家伙是个技术高手，研究JAVA及开源技术，他的每篇文章内容都有自己细致的见解，让我在学习JAVA过程中收益非浅！</p>
<p>4、[URL=http://blog.sina.com.tw/]Lorenz[/URL]：<br />
    Lorenz是T大的學生，喜歡職棒、閱讀和打壘球。這裡是發表對於國內時事的淺顯觀點，還有對於威瑪共和研究的心得，之所以是威瑪，因為大家都熟悉他的燦爛文化，但對於影響如此深遠的政治，在台灣卻還是值得開發的園地。請各位在這裡隨心所欲的聊，交流讓彼此成長。几个为数不多的台湾BLOGER，虽然对政治不感举，但他的文章让我也能了解一下岛内的许多新闻！！</p>
<p>5、[URL=http://www.52blog.org/]五月—没有鱼的海[/URL]：<br />
    这是一个音乐BLOGER，他的站更新很快，让我能听到不同风格的音乐！</p>
<p>这是我从一堆BLOG里选出的一些自认为有代表性的BLOGER，这次的活动主要是推荐自己喜欢的收藏所以blog界的那些精英，keso、anti、王建硕呀在这里就不占位置了哈哈！~~~他本就是每天都去的地方所以这里就省去了~~</p>
<p>Technorati Tags: <a href="http://www.technorati.com/tag/top5funnyblog" rel="tag">top5funnyblog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/233/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>久违的冠军！！！</title>
		<link>http://welog.org/blog/232</link>
		<comments>http://welog.org/blog/232#comments</comments>
		<pubDate>Mon, 08 Aug 2005 07:20:04 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e4%b9%85%e8%bf%9d%e7%9a%84%e5%86%a0%e5%86%9b%ef%bc%81%ef%bc%81%ef%bc%81/</guid>
		<description><![CDATA[[img]upload/Img226591723.jpg[/img] 今天下午老姐打电话告诉我说：“正在进行的足球比赛有一个18号球员很像我”，晕我从[URL=http://sports.tom.com]世青赛[/URL]到现在的[URL=http://sports.tom.com]东亚四强赛[/URL]一直在关注国青的几个队员，我怎么就没发现18号郜林长的像我呢？哈哈~~~也是因为这些国青队在世青赛上的表现让我继续找到了关注他们的理由，这次的四强赛前二场都是看了TOM的文字直播，原因是央[U... [img]upload/Img226591723.jpg[/img] 今天下午老姐打电话告诉我说：&#8220;正在进行的足球比赛有一个18号球员很像我&#8221;，晕我从[URL=http://sports.tom.com]世青赛[/URL]到现在的[URL=http://sports.tom.com]东亚四强赛[/URL]一直在关注国青的几个队员，我怎么就没发现18号郜林长的像我呢？哈哈~~~也是因为这些国青队在世青赛上的表现让我继续找到了关注他们的理由，这次的四强赛前二场都是看了TOM的文字直播，原因是央[URL=http://sports.tom.com/1569/1573/200583-658751.html]视五套的转播权[/URL]被地方台给黑了。是的，中国队这次捧回了四强赛的冠军，让我们这些球迷在这严热的夏天着实解了解闷气！(第一场的裁判的不公，第二场窝窝囊囊，最后一场还算是比较流畅。)虽然拿了冠军但同样要面队这样一个事实:我们拼杀的对手居然是人家的二线三线，你可以说我们在海外的球员也没有归队，但这支球队就是2008年奥运会的主力队员。但在场上技战术水平最差的一支。在与实力已经大打折扣的对手交手时，中国队所表现出的控制比赛的能力偏弱，在传接球的技术环节上薄弱，在相遇保护和接应的意识上不足，整场比赛下来，中国球员大部分时间是在为了补漏和抢截奔跑，没有依靠战术意识很强的传接球来解决问题。在日韩两队面前，中国队这个方面的弱点暴露得更加彻底，尤其是在与日本队的比赛当中，不少中国球员出现了抽筋现象，体现了体能消耗的无序和过度。在亚洲，依靠身体踢球的球队已经没有多少市场了，目前的中国队还在单纯地依靠身体来踢球，还没有在理念上有彻底的改变。此前，我们曾经说韩国球员靠精神品质、日本球员靠技战术，朝鲜球员靠拼搏精神，但是这种传统的评价已经过时了。中国足球不得不面对被对手拉下的尴尬。]]></description>
			<content:encoded><![CDATA[<p>[img]upload/Img226591723.jpg[/img]<br />
今天下午老姐打电话告诉我说：“正在进行的足球比赛有一个18号球员很像我”，晕我从[URL=http://sports.tom.com]世青赛[/URL]到现在的[URL=http://sports.tom.com]东亚四强赛[/URL]一直在关注国青的几个队员，我怎么就没发现18号郜林长的像我呢？哈哈~~~也是因为这些国青队在世青赛上的表现让我继续找到了关注他们的理由，这次的四强赛前二场都是看了TOM的文字直播，原因是央[U...<br />
<span id="more-232"></span><br />
[img]upload/Img226591723.jpg[/img] 今天下午老姐打电话告诉我说：&ldquo;正在进行的足球比赛有一个18号球员很像我&rdquo;，晕我从[URL=http://sports.tom.com]世青赛[/URL]到现在的[URL=http://sports.tom.com]东亚四强赛[/URL]一直在关注国青的几个队员，我怎么就没发现18号郜林长的像我呢？哈哈~~~也是因为这些国青队在世青赛上的表现让我继续找到了关注他们的理由，这次的四强赛前二场都是看了TOM的文字直播，原因是央[URL=http://sports.tom.com/1569/1573/200583-658751.html]视五套的转播权[/URL]被地方台给黑了。是的，中国队这次捧回了四强赛的冠军，让我们这些球迷在这严热的夏天着实解了解闷气！(第一场的裁判的不公，第二场窝窝囊囊，最后一场还算是比较流畅。)虽然拿了冠军但同样要面队这样一个事实:我们拼杀的对手居然是人家的二线三线，你可以说我们在海外的球员也没有归队，但这支球队就是2008年奥运会的主力队员。但在场上技战术水平最差的一支。在与实力已经大打折扣的对手交手时，中国队所表现出的控制比赛的能力偏弱，在传接球的技术环节上薄弱，在相遇保护和接应的意识上不足，整场比赛下来，<font>中国球员大部分时间是在为了补漏和抢截奔跑，没有依靠战术意识很强的传接球来解决问题。在日韩两队面前，中国队这个方面的弱点暴露得更加彻底，尤其是在与日本队的比赛当中，不少中国球员出现了抽筋现象，体现了体能消耗的无序和过度。在亚洲，依靠身体踢球的球队已经没有多少市场了，目前的中国队还在单纯地依靠身体来踢球，还没有在理念上有彻底的改变。此前，我们曾经说韩国球员靠精神品质、日本球员靠技战术，朝鲜球员靠拼搏精神，但是这种传统的评价已经过时了。中国足球不得不面对被对手拉下的尴尬。</font></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/232/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>好久没更新了，都快报废了~~~</title>
		<link>http://welog.org/blog/231</link>
		<comments>http://welog.org/blog/231#comments</comments>
		<pubDate>Mon, 08 Aug 2005 01:37:10 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%a5%bd%e4%b9%85%e6%b2%a1%e6%9b%b4%e6%96%b0%e4%ba%86%ef%bc%8c%e9%83%bd%e5%bf%ab%e6%8a%a5%e5%ba%9f%e4%ba%86/</guid>
		<description><![CDATA[百度昨夜在纳斯达克上市，开盘价为66美元，收盘价为122.54美元，上涨了95.54美元，涨幅达到353.85%。盘中最低价为60美元，最高价为151.21美元，交易量为22,646,533股。 百度首席执行官李彦宏拥有百度25.8%的股份，价值9.2亿美元。百度最大股东Draper Fisher Jurvetson是一家硅谷风险投资公司，拥有百度28.1%股份，价值10亿美元。 好久没更新了，虽然每天都有时间待在电脑前，不过整的都是LINUX、JAVA的一些东西！每次想起更新的时候都有心无力，电脑里的JAVA程序爆长了可这个BLOG荒废了，看来想坚持还是有困难地，补上先~~~~~~~~ 一、百度八月五日在纳斯达克上市了。 &#160;&#160;&#160;&#160; 前段时间还说GOOGLE要收购百度，没想到这么快跑北美上市了，股价翻了几翻，看来这样的确是比让GOOGLE收购了好！不管网络上有对百度的种种不满的说法（也包括我），但上市了是个好事(起码是个国产货嘛)，上市了也能让他的搜索变得更规范更合理，但是否百度股价飞涨=百度成功目前不还好定论。哈哈，图标多了一个保险~~~ &#160;&#160;&#160; 相关的阅读记录：百度的狂欢&#160; 百度创造中国概念股IPO神话&#160;&#160; 快评：百度上市股价猛涨 中国,百度,NASDAQ!&#160; 百度的疯狂处女秀&#160;百度疯掉了？&#160;&#160;&#160;&#160;&#160;&#160;&#160; 百度之夜，挑战想象&#160; 百度昨夜在纳斯达克上市，开盘价为66美元，收盘价为122.54美元，上涨了95.54美元，涨幅达到353.85%。盘中最低价为60美元，最高价为151.21美元，交易量为22,646,533股。 百度首席执行官李彦宏拥有百度25.8%的股份，价值9.2亿美元。百度最大股东Draper Fisher Jurvetson是一家硅谷风险投资公司，拥有百度28.1%股份，价值10亿美元。 二、微软的Microsoft Internet Explorer 7.0 Beta1发布测试版~ &#160;&#160;&#160;&#160;&#160; 我下直用的是Firefox，微软的IE经常假死让我受不了，不过新版发布尝鲜&#8230;&#8230;.安装了试了一下，已知的新功能有RSS阅读(支持RDF及RSS但是不支持ATOM)、标签页浏览(Tabbed Browsing)。其它的如CSS、disabled还没来得及测试~~。这只是测试版，正式版出来应该有改进，不然火弧在这点上就占上风了~~ Internet Explorer 7最新截图，IE图标有所改变 [img]http://wedia.net/upimg/ie7_capture_1.jpg[/img] 附IE7下载地址：http://file.mydrivers.com/tools/others/IE7-WindowsXP-x86-enu.exe]]></description>
			<content:encoded><![CDATA[<p><img height="82" alt="百度纳市" src="http://www.b9527.net/i/baidu_nasdaq.gif" width="219" align="left">百度昨夜在纳斯达克上市，开盘价为66美元，收盘价为122.54美元，上涨了95.54美元，涨幅达到353.85%。盘中最低价为60美元，最高价为151.21美元，交易量为22,646,533股。 </p>
<p>百度首席执行官李彦宏拥有百度25.8%的股份，价值9.2亿美元。百度最大股东Draper Fisher Jurvetson是一家硅谷风险投资公司，拥有百度28.1%股份，价值10亿美元。</p>
<p><span id="more-231"></span></p>
<p>好久没更新了，虽然每天都有时间待在电脑前，不过整的都是LINUX、JAVA的一些东西！每次想起更新的时候都有心无力，电脑里的JAVA程序爆长了可这个BLOG荒废了，看来想坚持还是有困难地，补上先~~~~~~~~</p>
<p>一、百度八月五日在纳斯达克上市了。<br />
&nbsp;&nbsp;&nbsp;&nbsp; 前段时间还说GOOGLE要收购百度，没想到这么快跑北美上市了，股价翻了几翻，看来这样的确是比让GOOGLE收购了好！不管网络上有对百度的种种不满的说法（也包括我），但上市了是个好事(起码是个国产货嘛)，上市了也能让他的搜索变得更规范更合理，但是否<a title=" 如果成功=很多财富，那么，成功只和哪些因素相关？和哪些因素并不相关？[baidu;sayings] " href="http://blog.donews.com/liuren/archive/2005/08/06/497239.aspx">百度股价飞涨=百度成功</a>目前不还好定论。哈哈，图标多了一个保险~~~<br />
&nbsp;&nbsp;&nbsp; 相关的阅读记录：<a title=" 哦买哥，是我疯了，还是这个世界？这个猪头公司一年才挣三千万耶，开盘第一天，收了三十亿？中国的古狗，他凭什么和古狗争？因为他过滤敏感字更胜一筹？还是说下载mp3更方便？就连这个mp3，不也刚被中国政府关了吗？何况，哪怕古狗，80跑到300，还不到300%，也用了一年的功夫——人家的市场占有率可是响当当的第一！[baidu] " href="http://spaces.msn.com/members/xlmeetc/Blog/cns!1pMF1zZ4snQVn-Gl6XCaBL0w!388.entry"><font color="#0066ff">百度的狂欢</font></a>&nbsp; <a href="http://www.solaryf.com/article.asp?id=85"><font color="#224488">百度创造中国概念股IPO神话</font></a>&nbsp;&nbsp; <font color="#224488">快评：百度上市股价猛涨 <a title=" 众多的赞溢之词,都离不了chinese google,除了页面风格较类似之外,其他再也找不到百度跟Google有什么类似的地方,商业模式,主营思路都不1样,百度不是Google在中国的影子,尽管他们两个在背影上看起来有点像,...,但,百度就是百度!![baidu] " href="http://loverty.org/2005/08/nasdaq.html"><font color="#0066ff">中国,百度,NASDAQ!</font></a></font><font color="#000000">&nbsp; <a title=" 坦白说，从我个人角度看，BAIDU的疯狂飙升并不是归功于他具有多伟大的业绩，更多是百度首次公开招股的承销商们——高盛、瑞士信贷第一波士顿以及Piper Jaffray。还有不清楚他们用的哪家公司给他们做的IR（投资人关系），也确实非常厉害啊。[baidu] " href="http://blog.donews.com/panxin/archive/2005/08/06/496894.aspx"><font color="#0066ff">百度的疯狂处女秀</font></a>&nbsp;<a title=" 我觉得类似百度股票的这样子疯涨，一般在国内股票市场才能见到；为什么？是因为有人自己炒作，想套取股民的钱，然后圈钱走人。百度是否有这种可能呢？我觉得可能性更大。[baidu] " href="http://spaces.msn.com/members/sogwhite/Blog/cns!1pMXbaloi7YJbz4pLeV9yzcw!641.entry"><font color="#0066ff">百度疯掉了？</font></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a title=" 华尔街挤满了一个个十足理性的数学脑袋，这些脑袋集中起来却是一个疯狂的市场。疯狂的资本背后，是人性的贪婪。[baidu] " href="http://spaces.msn.com/members/laolu/Blog/cns!1pQaeOjreyr0EcTIjgLimIBw!244.entry"><font color="#0066ff">百度之夜，挑战想象</font></a>&nbsp; </font></p>
<p><img height="82" alt="百度纳市" src="http://www.b9527.net/i/baidu_nasdaq.gif" width="219" align="left">百度昨夜在纳斯达克上市，开盘价为66美元，收盘价为122.54美元，上涨了95.54美元，涨幅达到353.85%。盘中最低价为60美元，最高价为151.21美元，交易量为22,646,533股。 </p>
<p>百度首席执行官李彦宏拥有百度25.8%的股份，价值9.2亿美元。百度最大股东Draper Fisher Jurvetson是一家硅谷风险投资公司，拥有百度28.1%股份，价值10亿美元。</p>
<p>二、微软的Microsoft Internet Explorer 7.0 Beta1发布测试版~<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我下直用的是Firefox，微软的IE经常假死让我受不了，不过新版发布尝鲜&#8230;&#8230;.安装了试了一下，已知的新功能有RSS阅读(支持RDF及RSS但是不支持ATOM)、标签页浏览(Tabbed Browsing)。其它的如CSS、disabled还没来得及测试~~。这只是测试版，正式版出来应该有改进，不然火弧在这点上就占上风了~~<br />
Internet Explorer 7最新截图，IE图标有所改变<br />
[img]http://wedia.net/upimg/ie7_capture_1.jpg[/img]<br />
<br />
附IE7下载地址：<a title="http://file.mydrivers.com/tools/others/IE7-WindowsXP-x86-enu.exe" href="http://file.mydrivers.com/tools/others/IE7-WindowsXP-x86-enu.exe" rel="external">http://file.mydrivers.com/tools/others/IE7-WindowsXP-x86-enu.exe</a></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/231/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JAVA2 中 jar 文件的应用</title>
		<link>http://welog.org/blog/223</link>
		<comments>http://welog.org/blog/223#comments</comments>
		<pubDate>Wed, 20 Jul 2005 06:35:45 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java2-%e4%b8%ad-jar-%e6%96%87%e4%bb%b6%e7%9a%84%e5%ba%94%e7%94%a8/</guid>
		<description><![CDATA[我想ＪＡＶＡ的爱好者，尤其是初学者大都有过这样的经历，就是喜欢ＪＡＶＡ编程语言（每个人的情况可能不一样），但是有时候总会觉得JAVA的优点便是她的“致命”的缺点。大家的信念依旧是“一次编译，到处运行”但是就是因为这一点ＪＡＶＡ失去了好多。虽然有JBuilder这样优秀的开发工具，但是有时还是很难入手的（因为他们的体系太复杂，对于一般人来说会有一点的难度，当想开发应用程序的时候）。因为“跨平台性”所以JAVA语言或者说JDK不支持产生.exe文件的相应的ＡＰＩ（因为生成．ｅｘｅ文件总要和系统的硬件&#8230; 我想ＪＡＶＡ的爱好者，尤其是初学者大都有过这样的经历，就是喜欢ＪＡＶＡ编程语言（每个人的情况可能不一样），但是有时候总会觉得JAVA的优点便是她的“致命”的缺点。大家的信念依旧是“一次编译，到处运行”但是就是因为这一点ＪＡＶＡ失去了好多。虽然有JBuilder这样优秀的开发工具，但是有时还是很难入手的（因为他们的体系太复杂，对于一般人来说会有一点的难度，当想开发应用程序的时候）。因为“跨平台性”所以JAVA语言或者说JDK不支持产生.exe文件的相应的ＡＰＩ（因为生成．ｅｘｅ文件总要和系统的硬件相关，这是JAVA语言所不容许的）。不过你也没有必要失望，你可以使用JBuilder 或者IBM和软软的支持ＪＡＶＡ语言开发的工具就行程序开发与设计，或者采用ＪＡＶＡ的．ｊａｒ技术进行相关的操作，即生成“双击就可以运行的．ｊａｒ文件”，这不失一件很好的事情。总之，jar 文件还是很管用的。 一、制作jar文件 在制作.jar 文件之前你必须先编译好你的.java文件。假设我们的文件目录是c:\java\myJava\hello\Hello.java 现在假设Hello.java的文件内容为： /* * * Hello.java * */ public class Hello { public static void mian(String[] args){ System.out.println(&#8220;Hello, World !&#8221;); } } 在进行.jar 制作的时候你必须把路径切换到Hello.java 所在的文件目录的外一层文件夹(.jar文件要在Dos才能创建（windows平台）)，即myJava 运行如下的命令可以把当前文件夹下的所有内容都包含在.jar 文件内。 c:\java\myJava&#62;jar cf Hello.jar . 说明一下：命令行中 jar 是生成.jar文件的程序的调用接口。 cf 是一对可选项（options）后面的Hello.jar 就是我们给文件取的名字了，最后一个点号（.）指示工具将当前目录下的所有文件都放进jar文件，jar工具进行地归操作，当文件夹中含有不止一个文件时。 二、察看jar文件 其实，jar文件是采用WinZip 的格式进行文件压缩的，所以你可采用WinZip 解压缩文件的，还可以利用如下的命令行察看： c:\java\myJava&#62;jar tf Hello.jar 你会看到本地机子里的jvm 的版本以及其生产厂家信息 还有 Main-Class: Hello.Hello [...]]]></description>
			<content:encoded><![CDATA[<p>我想ＪＡＶＡ的爱好者，尤其是初学者大都有过这样的经历，就是喜欢ＪＡＶＡ编程语言（每个人的情况可能不一样），但是有时候总会觉得JAVA的优点便是她的“致命”的缺点。大家的信念依旧是“一次编译，到处运行”但是就是因为这一点ＪＡＶＡ失去了好多。虽然有JBuilder这样优秀的开发工具，但是有时还是很难入手的（因为他们的体系太复杂，对于一般人来说会有一点的难度，当想开发应用程序的时候）。因为“跨平台性”所以JAVA语言或者说JDK不支持产生.exe文件的相应的ＡＰＩ（因为生成．ｅｘｅ文件总要和系统的硬件&#8230;<br />
<span id="more-223"></span><br />
我想ＪＡＶＡ的爱好者，尤其是初学者大都有过这样的经历，就是喜欢ＪＡＶＡ编程语言（每个人的情况可能不一样），但是有时候总会觉得JAVA的优点便是她的“致命”的缺点。大家的信念依旧是“一次编译，到处运行”但是就是因为这一点ＪＡＶＡ失去了好多。虽然有JBuilder这样优秀的开发工具，但是有时还是很难入手的（因为他们的体系太复杂，对于一般人来说会有一点的难度，当想开发应用程序的时候）。因为“跨平台性”所以JAVA语言或者说JDK不支持产生.exe文件的相应的ＡＰＩ（因为生成．ｅｘｅ文件总要和系统的硬件相关，这是JAVA语言所不容许的）。不过你也没有必要失望，你可以使用JBuilder 或者IBM和软软的支持ＪＡＶＡ语言开发的工具就行程序开发与设计，或者采用ＪＡＶＡ的．ｊａｒ技术进行相关的操作，即生成“双击就可以运行的．ｊａｒ文件”，这不失一件很好的事情。总之，jar 文件还是很管用的。</p>
<p>一、制作jar文件</p>
<p>在制作.jar 文件之前你必须先编译好你的.java文件。假设我们的文件目录是c:\java\myJava\hello\Hello.java<br />
现在假设Hello.java的文件内容为：</p>
<p>/*<br />
*<br />
* Hello.java<br />
*<br />
*/</p>
<p>public class Hello {</p>
<p>public static void mian(String[] args){</p>
<p>System.out.println(&#8220;Hello, World !&#8221;);</p>
<p>}</p>
<p>}</p>
<p>在进行.jar 制作的时候你必须把路径切换到Hello.java 所在的文件目录的外一层文件夹(.jar文件要在Dos才能创建（windows平台）)，即myJava<br />
运行如下的命令可以把当前文件夹下的所有内容都包含在.jar 文件内。</p>
<p>c:\java\myJava&gt;jar cf Hello.jar .</p>
<p>说明一下：命令行中 jar 是生成.jar文件的程序的调用接口。 cf 是一对可选项（options）后面的Hello.jar 就是我们给文件取的名字了，最后一个点号（.）指示工具将当前目录下的所有文件都放进jar文件，jar工具进行地归操作，当文件夹中含有不止一个文件时。</p>
<p>二、察看jar文件<br />
其实，jar文件是采用WinZip 的格式进行文件压缩的，所以你可采用WinZip 解压缩文件的，还可以利用如下的命令行察看：</p>
<p>c:\java\myJava&gt;jar tf Hello.jar<br />
你会看到本地机子里的jvm 的版本以及其生产厂家信息<br />
还有 Main-Class: Hello.Hello 等信息。</p>
<p>三、把文件移到你喜欢的目录<br />
假设你想把jar 文件移到目录：d:\Java2\myFirst 下面，请运行如下的命令：<br />
d:\Java2\myFirst&gt; jar xf c:\java\Hello.jar<br />
说明一下：jar 文件可以封闭，就意味着指定的包中的每一个类必须包含在同一个目录下。</p>
<p>四：内容清单 manifest.fm<br />
manifest.fm 文件是由键值对组成的。其中包含前面所说的jvm 的版本号 / 创建他的厂商等。</p>
<p>五、增加清单的内容<br />
当若我们编辑了如下的一个addContents.txt 文件</p>
<p>Name: myJava\Hello\<br />
Sealed: true</p>
<p>则可以通过如下命令把其加入到我们的清单文件中：</p>
<p>c:\java\myJava&gt;jar umf addContents.txt Hello.jar </p>
<p>六、运行jar文件</p>
<p>你可以通过以下的方式来运行jar文件：<br />
c:\java\myJava&gt;java -classpath . -jar Hello.jar</p>
<p>说明：需要命令的 -classpath . 部分是因为类的路径环境变量中没有（.）路径。</p>
<p>也可以<br />
c:\java\myJava\Hello&gt;java -jar Hello.jar</p>
<p>如果你的电脑是windows xp 版本 你还可以直接到你的c:\java\myJava\Hello 下双击Hello.jar 文件 但是你看不到运行的结果<br />
（图形界面程序可以这样运行），在windows 2000 上面,jar 文件被视作.zip 文件所以你一双击他就会把你的文件解压，而不是运行文件。所以你只有采用命令行的方式了。</p>
<p>运行命令之后，你会看到在你的屏幕上显示的<br />
Hello, World !<br />
字样。</p>
<p>结束语：</p>
<p>到这里我们jar 文件的创建和运行等相关的介绍算结束了。你可以试着去验证一下。然后创建复杂的程序，比如具有界面的高级程序。</p>
<p>如果你对jar 文件 很感兴趣 或者 想对她有更深刻的了解那么你可以在dos 低下敲入 jar 察看更多的帮助信息和许多options 的解释。</p>
<p>jar 帮组文档内容：</p>
<p>C:\&gt;jar </p>
<p>用法：jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 &#8230;<br />
选项：<br />
-c 创建新的存档<br />
-t 列出存档内容的列表<br />
-x 展开存档中的命名的（或所有的〕文件<br />
-u 更新已存在的存档<br />
-v 生成详细输出到标准输出上<br />
-f 指定存档文件名<br />
-m 包含来自标明文件的标明信息<br />
-0 只存储方式；未用ZIP压缩格式<br />
-M 不产生所有项的清单（manifest〕文件<br />
-i 为指定的jar文件产生索引信息<br />
-C 改变到指定的目录，并且包含下列文件：<br />
如果一个文件名是一个目录，它将被递归处理。<br />
清单（manifest〕文件名和存档文件名都需要被指定，按&#8217;m&#8217; 和 &#8216;f&#8217;标志指定的相同顺序。<br />
示例1：将两个class文件存档到一个名为 &#8216;classes.jar&#8217; 的存档文件中：<br />
jar cvf classes.jar Foo.class Bar.class<br />
示例2：用一个存在的清单（manifest）文件 &#8216;mymanifest&#8217; 将 foo/ 目录下的所有<br />
文件存档到一个名为 &#8216;classes.jar&#8217; 的存档文件中：<br />
jar cvfm classes.jar mymanifest -C foo/ .</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/223/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>J2SE相关类及方法作下小结</title>
		<link>http://welog.org/blog/221</link>
		<comments>http://welog.org/blog/221#comments</comments>
		<pubDate>Tue, 19 Jul 2005 04:54:24 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/j2se%e7%9b%b8%e5%85%b3%e7%b1%bb%e5%8f%8a%e6%96%b9%e6%b3%95%e4%bd%9c%e4%b8%8b%e5%b0%8f%e7%bb%93/</guid>
		<description><![CDATA[昨天把J2SE相关的部分组件重新认识了一下，今天对JAVA相关的类及方法作下小结，用简单的程序表达相关类及方法的运用，这样比文字的应该更容易理解。 [B]CLASSPATH[/B] 1)将某个特定包使用的所有.class文件都放在一个目录下 2)CLASSPATH包含一个或多个目录，它们作为一种特殊的根使用，从这里展开对.class文件的搜索 －自动编译 －冲突 －Classpath的陷阱 －用import来改变行为 [... 昨天把J2SE相关的部分组件重新认识了一下，今天对JAVA相关的类及方法作下小结，用简单的程序表达相关类及方法的运用，这样比文字的应该更容易理解。 [B]CLASSPATH[/B] 1)将某个特定包使用的所有.class文件都放在一个目录下 2)CLASSPATH包含一个或多个目录，它们作为一种特殊的根使用，从这里展开对.class文件的搜索 －自动编译 －冲突 －Classpath的陷阱 －用import来改变行为 [B]类成员的访问属性[/B] 针对类内的每个成员的每个定义，Java访问属性public，protected和private都放在它们的前面－－无论是数据成员还是方法 －“Friendly”（缺省包） －public：界面访问（accessor/mutator） －private：不能接触！ －protected：“某种友好” [B]类的访问控制[/B] 1)一个编译单元（文件）中只能有一个public的类。因此一个编译单元只有一个唯一的公共界面，其余的类都是“friendly”的。public类的名字必须和文件的名字一样 2)可以，尽管很少见，一个编译单元没有一个public类，所有的类都是“friendly”的，那么文件名可以任意起 -Case:Lunch.java //: Lunch.java //Demonstrates class access specifiers. //Make a class effectively private with private constructors: class Soup { private Soup() {} // (1)Allow creation via static method: public static [...]]]></description>
			<content:encoded><![CDATA[<p>昨天把J2SE相关的部分组件重新认识了一下，今天对JAVA相关的类及方法作下小结，用简单的程序表达相关类及方法的运用，这样比文字的应该更容易理解。</p>
<p>[B]CLASSPATH[/B]<br />
   1)将某个特定包使用的所有.class文件都放在一个目录下<br />
   2)CLASSPATH包含一个或多个目录，它们作为一种特殊的根使用，从这里展开对.class文件的搜索<br />
     －自动编译<br />
     －冲突<br />
     －Classpath的陷阱<br />
     －用import来改变行为</p>
<p>[...<br />
<span id="more-221"></span><br />
昨天把J2SE相关的部分组件重新认识了一下，今天对JAVA相关的类及方法作下小结，用简单的程序表达相关类及方法的运用，这样比文字的应该更容易理解。</p>
<p>[B]CLASSPATH[/B]<br />
   1)将某个特定包使用的所有.class文件都放在一个目录下<br />
   2)CLASSPATH包含一个或多个目录，它们作为一种特殊的根使用，从这里展开对.class文件的搜索<br />
     －自动编译<br />
     －冲突<br />
     －Classpath的陷阱<br />
     －用import来改变行为</p>
<p>[B]类成员的访问属性[/B]<br />
   针对类内的每个成员的每个定义，Java访问属性public，protected和private都放在它们的前面－－无论是数据成员还是方法<br />
   －“Friendly”（缺省包）<br />
   －public：界面访问（accessor/mutator）<br />
   －private：不能接触！<br />
   －protected：“某种友好”</p>
<p>[B]类的访问控制[/B]<br />
   1)一个编译单元（文件）中只能有一个public的类。因此一个编译单元只有一个唯一的公共界面，其余的类都是“friendly”的。public类的名字必须和文件的名字一样<br />
   2)可以，尽管很少见，一个编译单元没有一个public类，所有的类都是“friendly”的，那么文件名可以任意起<br />
   -Case:Lunch.java<br />
   //: Lunch.java<br />
   //Demonstrates class access specifiers.<br />
   //Make a class effectively private with private constructors:<br />
   class Soup {<br />
      private Soup() {}</p>
<p>      // (1)Allow creation via static method:<br />
      public static Soup makeSoup() {<br />
        return new Soup();<br />
      }</p>
<p>      // (2)Create a static object and return a reference upon request.<br />
      // (The &#8220;Singleton&#8221; pattern):</p>
<p>   }</p>
<p>[B]赋值[/B]<br />
   1)当&#8221;from one object to another&#8221;赋值，实际上是将句柄从一个地方赋值到另一个地方<br />
   -Case:Assignment.java<br />
   //:Assignment.java<br />
   //Assignment with objects is a bit tricky<br />
   class Number {<br />
      int i;<br />
   }</p>
<p>   public class Assignment {<br />
      public static void main(String [] args){<br />
        Number n1 = new Number();<br />
        Number n2 = new Number();<br />
        n1.i = 9;<br />
        n2.i = 47;<br />
        System.out.println(&#8220;1: n1.i: &#8221; + n1.i + &#8220;, n2.i: &#8221; + n2.i);<br />
        n1 = n2;<br />
        System.out.println(&#8220;2: n1.i: &#8221; + n1.i + &#8220;, n2.i: &#8221; + n2.i);<br />
        n1.i = 27;<br />
        System.out.println(&#8220;3: n1.i: &#8221; + n1.i + &#8220;, n2.i: &#8221; + n2.i);<br />
      }<br />
   }<br />
   2)将一个对象传递到方法内部时，也是赋值<br />
   -Case:PassObject.java<br />
   //:PassObject.java<br />
   //Passing objects to methods can be a bit tricky<br />
   class Letter{<br />
      char c;<br />
   }</p>
<p>   public class PassObject {<br />
      static void f(Letter y){<br />
        y.c = &#8216;z&#8217;;<br />
      }</p>
<p>      public static void main(String [] args) {<br />
        Letter x = new Letter();<br />
        x.c = &#8216;a&#8217;;<br />
        System.out.println(&#8220;1: x.c: &#8221; + x.c);<br />
        f(x);<br />
        System.out.println(&#8220;2: x.c: &#8221; + x.c);<br />
      }<br />
   }</p>
<p>[B]关系运算符[/B]<br />
   关系运算符==和!=页能对任何对象进行，但是它们的含义常常使人迷惑<br />
   -Case:Equivalence.java<br />
   //:Equivalence.java<br />
   public class Equivalence {<br />
      public static void main(String [] args) {<br />
        Integer n1 = new Integer(47);<br />
        Integer n2 = new Integer(47);<br />
        System.out.println(n1 == n2);<br />
        System.out.println(n1 != n2);<br />
      }<br />
   }<br />
[B]String运算符+[/B]<br />
   +运算符可以用来连接字符串<br />
   int x = 0, y = 1, z = 2;<br />
   String sString = &#8220;x, y, z&#8221;;<br />
   System.out.println(sString + x + y + z);<br />
   System.out.println(y + z + sString);<br />
[B]Break和continue[/B]<br />
   1)A plain continue goes to the top of the innermost loop and continues.<br />
   2)A labeled continue goes to the label and re-enters the loop right after that label.<br />
   3)A break &#8220;drops out of the bottom&#8221; of the loop.<br />
   4)A labeled break drops out of the bottom of the end of the loop denoted by the label.<br />
   -Case:LabeledFor.java<br />
   //:LabeledFor.java<br />
   //Java &#8220;labeled for loop&#8221;<br />
   public class LabeledFor {<br />
      public static void main(String [] args) {<br />
        int i = 0;<br />
        outer: //Can&#8217;t have statements here<br />
        for (; true; ) { //infinite loop<br />
          inner: //Can&#8217;t have statements here<br />
          for (; i </p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/221/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JAVA组件整理！</title>
		<link>http://welog.org/blog/220</link>
		<comments>http://welog.org/blog/220#comments</comments>
		<pubDate>Mon, 18 Jul 2005 04:39:56 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e7%bb%84%e4%bb%b6%e6%95%b4%e7%90%86%ef%bc%81/</guid>
		<description><![CDATA[今天拿起案头的JAVA书籍，重新进入我为完成的JAVA之旅。学习的过程也是反思的一个过程，只有这样才能让自己学习和认识更多的东西。花了点时间大概地翻看了一下前面的知识，并对Java 语言各版本的组件、可选包和扩展包的部分列表（也就是组成这个平台的复杂部件），也给出了简短描述和参考资料链接，算是回顾一下前在所学的知识，也可以及时&#8230; 今天拿起案头的JAVA书籍，重新进入我为完成的JAVA之旅。学习的过程也是反思的一个过程，只有这样才能让自己学习和认识更多的东西。花了点时间大概地翻看了一下前面的知识，并对分成二个部分对（J2SE/J2EE）相关组件、可选包和扩展包的部分列表（也就是组成这个平台的复杂部件），也给出了简短描述和参考资料链接，算是回顾一下前在所学的知识，对有些还不是很清楚的也可以及时弥补一下！（PS：题外话，真心的希望大家节约用电，因为电力不足电脑重启二次日志写了三次，三峡开了几个机组缺电有增无减。唉，不说了！节约用水和节约用电都是很重要的事。） J2SE 中的技术： Java Access Bridge 用于 Microsoft Windows,它起到了网桥的作用，允许基于 Windows 的辅助技术与 Java Accessibility API 进行交互（请参阅&#8220;为可访问性编码&#8221;。） JavaBeans Component Architecture 是平台独立的规范，它为 Java 平台定义了一套标准组件软件 API。（请参阅&#8220;Reflecting, introspecting, and customizing JavaBeans&#8221;。） Javadoc 是一种工具，用于从源代码的 doc 注释中生成 HTML 格式的 API 文档。（请参阅&#8220;Java 理论和实践：我必须对那些内容进行文档编制吗？&#8221;。） Java Foundation Classes (Swing) (JFC) 是 Java 类库的集合，它支持为基于 Java 的客户机应用程序构建 GUI 和图形功能。（请参阅&#8220;Java 2 用户界面&#8221;。） Java Platform Debugger Architecture [...]]]></description>
			<content:encoded><![CDATA[<p>今天拿起案头的JAVA书籍，重新进入我为完成的JAVA之旅。学习的过程也是反思的一个过程，只有这样才能让自己学习和认识更多的东西。花了点时间大概地翻看了一下前面的知识，并对Java 语言各版本的组件、可选包和扩展包的部分列表（也就是组成这个平台的复杂部件），也给出了简短描述和参考资料链接，算是回顾一下前在所学的知识，也可以及时&#8230;<br />
<span id="more-220"></span></p>
<p>今天拿起案头的JAVA书籍，重新进入我为完成的JAVA之旅。学习的过程也是反思的一个过程，只有这样才能让自己学习和认识更多的东西。花了点时间大概地翻看了一下前面的知识，并对分成二个部分对（J2SE/J2EE）相关组件、可选包和扩展包的部分列表（也就是组成这个平台的复杂部件），也给出了简短描述和参考资料链接，算是回顾一下前在所学的知识，对有些还不是很清楚的也可以及时弥补一下！（PS：题外话，真心的<font>希望大家节约用电</font>，因为电力不足电脑重启二次日志写了三次，三峡开了几个机组缺电有增无减。唉，不说了！节约用水和节约用电都是很重要的事。）</p>
<p><b>J2SE 中的技术：</b></p>
<ul>
<li><b>Java Access Bridge</b> 用于 Microsoft Windows,它起到了网桥的作用，允许基于 Windows 的辅助技术与 Java Accessibility API 进行交互（请参阅&ldquo;<a href="http://www-128.ibm.com/developerworks/cn/java/j-access/"><font color="#5c81a7">为可访问性编码</font></a>&rdquo;。）
    </li>
<li><b>JavaBeans Component Architecture</b> 是平台独立的规范，它为 Java 平台定义了一套标准组件软件 API。（请参阅&ldquo;<a href="http://www.ibm.com/developerworks/java/library/j-introspect/"><font color="#5c81a7">Reflecting, introspecting, and customizing JavaBeans</font></a>&rdquo;。）
    </li>
<li><b>Javadoc</b> 是一种工具，用于从源代码的 doc 注释中生成 HTML 格式的 API 文档。（请参阅&ldquo;<a href="http://www-128.ibm.com/developerworks/cn/java/j-jtp0821/"><font color="#996699">Java 理论和实践：我必须对那些内容进行文档编制吗？</font></a>&rdquo;。）
    </li>
<li><b>Java Foundation Classes (Swing)</b> (JFC) 是 Java 类库的集合，它支持为基于 Java 的客户机应用程序构建 GUI 和图形功能。（请参阅&ldquo;<a href="http://www-128.ibm.com/developerworks/cn/java/j-j2int/"><font color="#996699">Java 2 用户界面</font></a>&rdquo;。）
    </li>
<li><b>Java Platform Debugger Architecture</b> (JPDA) 是 Java 2 的调试支持基础设施。JPDA 包括三层 API： </li>
<ul>
<li>JDI (Java Debug Interface)是一种支持远程调试的高级别编程语言接口。 </li>
<li>JDWP (Java Debug Wire Protocol) 定义在调试过程和调试器前端之间传输的信息和请求的格式。 </li>
<li>JVMDI (Java Virtual Machine Debug Interface) 是低级别本地接口，定义了调试时 JVM 必须提供的服务。 （请参阅&ldquo;<a href="http://www-128.ibm.com/developerworks/cn/java/j-djc06173/"><font color="#5c81a7"> 软件开发的未来 </font></a>&rdquo;。）</li>
</ul>
<li><b>Java 2D API</b> 是用于高级 2D 图形和成像（为图像合成和 alpha 通道图像提供广泛支持）的类集合，是提供正确的色彩空间定义和转换的类集合，是面向显示的成像操作符的集合。（请参阅教程&ldquo;<a href="http://www-900.ibm.com/developerworks/cn/cnedu.nsf/java-onlinecourse-bytitle/689AA2D89ACDE518C8256C43000BC6DD?OpenDocument"><font color="#5c81a7">Java 2D简介</font></a>&rdquo;。）
    </li>
<li><b>Java Web Start</b> 使您可以通过单击而无需经历安装过程来下载和启动功能完善的应用程序（如电子表格），从而简化 Java 应用程序的部署。（请参阅&ldquo;<a href="http://www-128.ibm.com/developerworks/cn/java/j-webstart/"><font color="#5c81a7">Java Web Start</font></a>&rdquo;。）
    </li>
<li><b>Java Database Connectivity</b> (JDBC) 是一种 API，使您可以从 Java 内访问大多数表格式数据源，它提供了大多数 SQL 数据库的跨 DBMS 连通性，以及对其他表格式数据源的访问（如电子表格或平面文件）。（请参阅&ldquo;<a href="http://www-128.ibm.com/developerworks/cn/java/j-jdbcnew/"><font color="#5c81a7">JDBC 3.0 有什么新特性</font></a>&rdquo;。）
    </li>
<li><b>Remote Method Invocation</b> (RMI) 提供引导命名服务，不会改变类型，并使用对象序列化使编程人员能够创建基于 Java 技术的分布式应用程序，在该应用程序中，可以从不同主机上的其他 Java 虚拟机上调用远程 Java 对象的方法。（请参阅教程&ldquo;<a href="http://www-900.ibm.com/developerworks/cn/cnedu.nsf/java-onlinecourse-bytitle/40A4A92C2F1C8A95C8256CD40035BAA1?OpenDocument"><font color="#5c81a7">分布式对象 101－使用RMI和CORBA </font></a>&rdquo;。）
    </li>
<li><b>Java Advanced Imaging</b> (JAI) 是一种 API，提供了面向对象的接口的集合，这些接口支持简单的高级编程模型，使得开发人员可以很容易地操纵图像。（请参阅&ldquo;<a href="http://www-128.ibm.com/developerworks/cn/java/j-jspdwj/"><font color="#5c81a7">利用 JSP 代码管理您的图像</font></a>&rdquo;。）
    </li>
<li><b>Java Authentication and Authorization Service</b> (JAAS) 是一个包，它启用服务，通过实现标准 Pluggable Authentication Module (PAM) 框架的 Java 版本，通过支持基于用户的授权，对用户进行验证和执行访问控制。（请参阅教程&ldquo;<a href="http://www-900.ibm.com/developerworks/cn/cnedu.nsf/java-onlinecourse-bytitle/2DBEBC316EDDA154C8256C4F00062FE9?OpenDocument"><font color="#5c81a7">Java 安全性 第二部分 认证与授权</font></a>&rdquo;；&ldquo;<a href="http://www-128.ibm.com/developerworks/cn/java/j-jaas/"><font color="#5c81a7">扩展 JAAS 实现类实例级授权</font></a>&rdquo;也是很好的信息来源。）
    </li>
<li><b>Java Cryptography Extension</b> (JCE) 是一个包集合，提供了加密、密钥生成和协议以及 Message Authentication Code (MAC) 算法的框架和实现。它提供了对称、非对称、分组和流密码的加密支持，并支持安全流和密封对象。（请参阅教程&ldquo;<a href="http://www-900.ibm.com/developerworks/cn/cnedu.nsf/java-onlinecourse-bytitle/01C1E1766DA030FFC8256C4100296C04?OpenDocument"><font color="#5c81a7">Java 安全性第一部分 密码学基础</font></a>&rdquo;。）
    </li>
<li><b>Java Data Objects</b> (JDO) 是持久性的基于标准接口的 Java 模型抽象，它允许编程人员直接将 Java 域模型实例存储到持久存储（数据库）中，可能替代直接文件输入输出、序列化、JDBC 和 EJB Bean Managed Persistence (BMP) 或 Container Managed Persistence (CMP) Entity Bean 等方法。（请参阅教程&ldquo;<a href="http://www-900.ibm.com/developerworks/cn/cnedu.nsf/java-onlinecourse-bytitle/69DD26F06AFD3010C8256C39000A4D40?OpenDocument"><font color="#5c81a7">Java 数据对象上机实践</font></a>&rdquo;。）
    </li>
<li><b>Java Management Extensions</b> (JMX) 提供的工具用于构建分布式、基于 Web 的、模块化和动态应用程序，以便管理和监视设备、应用程序和服务驱动的网络。（请参阅由三部分组成的&ldquo;<a href="http://www-128.ibm.com/developerworks/cn/java/j-jmx1/"><font color="#5c81a7">从黑箱到企业，第 1 部分：管理，JMX 1.1 样式</font></a>&rdquo;。）
    </li>
<li><b>Java Media Framework</b> (JMF) 允许音频、视频和其他基于时间的媒体添加到 Java 应用程序和 applet 中。（请参阅教程&ldquo;<a href="http://www.ibm.com/developerworks/java/edu/j-dw-javajmf-i.html?S_TACT=104AHW02"><font color="#5c81a7">Java Media Framework 基础</font></a>&rdquo;。）
    </li>
<li><b>Java Naming and Directory Interface</b> (JNDI) 是一种标准扩展包，为企业中的多个命名和目录服务提供具有统一接口的 Java 应用程序，允许不同种类的企业命名和目录服务的无缝连通性。（请参阅&ldquo;<a href="http://www-128.ibm.com/developerworks/cn/java/j-ejb0924/"><font color="#5c81a7">EJB 最佳实践：工业强度的 JNDI 优化</font></a>&rdquo;。）
    </li>
<li><b>Java Secure Socket Extensions</b> (JSSE) 是启用安全 Internet 通信的包集合，实现 SSL (Secure Sockets Layer) 和 TLS (Transport Layer Security) 协议的 Java 版本，并包括数据加密、服务器验证、消息完整性和可选客户机验证的功能。（请参阅教程&ldquo;<a href="http://www-900.ibm.com/developerworks/cn/cnedu.nsf/java-onlinecourse-bytitle/B06F7E71828758D7C8256C00002E2A00?OpenDocument"><font color="#5c81a7">将 JSSE 用于安全套接字通信</font></a>&rdquo;。）
    </li>
<li><b>Java Speech API</b> (JSAPI) 允许 Java 应用程序将语音技术合并到用户接口中。JSAPI 定义了跨平台的 API，以支持命令和控制识别程序、听写系统和语音合成器。（请参阅&ldquo;<a href="http://www-128.ibm.com/developerworks/cn/java/j-j2int/"><font color="#996699">The Java 2 user interface</font></a>&rdquo;部分。）
    </li>
<li><b>Java 3D</b> 是一种 API，通过提供支持简单高级编程模型的一组面向对象的接口，开发人员可以使用它容易地将可伸缩的平台独立的 3D 图形合并到 Java 应用程序中。（请参阅教程&ldquo;<a href="http://www-900.ibm.com/developerworks/cn/cnedu.nsf/java-onlinecourse-bytitle/E456E366F6E3FBFE48256B51002C6946?OpenDocument"><font color="#5c81a7">Java 3D 探奇 </font></a>&rdquo;。） </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/220/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>浮澡的心理之分析!</title>
		<link>http://welog.org/blog/219</link>
		<comments>http://welog.org/blog/219#comments</comments>
		<pubDate>Sun, 17 Jul 2005 05:49:23 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e6%b5%ae%e6%be%a1%e7%9a%84%e5%bf%83%e7%90%86%e4%b9%8b%e5%88%86%e6%9e%90/</guid>
		<description><![CDATA[昨天刚说到我有浮澡的心理，今天就看到有相关的文章！看来这不是我无中生有的，是原本就存在着的，看来有必要好好研究解决才行！ 我想这二句说得很到位： [FONT-COLOR=Red]“浮躁”，让很多人，陷入了不可自拔的越陷越深的循环[/FONT-COLOR] [FONT-COLOR=Red]“浮躁”，也让很多人，在经过几年的奔波后，发现什么也没有学到[/FONT-COLOR] 知识是需要沉淀的；思想也是在不断的学习、磨练中走向成熟的；而技术也是在不断的创造中开拓的,关注作者下一篇的劝导篇！这&#8230; 昨天刚说到我有浮澡的心理，今天就看到有相关的文章！看来这不是我无中生有的，是原本就存在着的，看来有必要好好研究解决才行！ 我想这二句说得很到位： [FONT-COLOR=Red]“浮躁”，让很多人，陷入了不可自拔的越陷越深的循环[/FONT-COLOR] [FONT-COLOR=Red]“浮躁”，也让很多人，在经过几年的奔波后，发现什么也没有学到[/FONT-COLOR] 知识是需要沉淀的；思想也是在不断的学习、磨练中走向成熟的；而技术也是在不断的创造中开拓的,关注作者下一篇的劝导篇！这让我想到了很多&#8230;.. [B]小议学习java的浮躁心态-引出篇[/B] “切忌浮躁”——我想这是在任何学习方法中，都会特意提出来的。 在国内的几个论坛也混了几年，甚至眼看着曾经轰轰烈烈的javaunion从成长到消失。在javaunion ,chinajavaworld,dev2dev,javaresearch,cn-java等论坛上，也相遇或结识了很多java爱好者，有经验丰富者，也有初出茅庐者。 其实，国内技术论坛，是个很奇怪很有意思的地方。从这里成长了一批批的开发者，但也从这里消失了一批批的开发者。犹记得javaunion论坛曾经的一篇名为“为什么两年前的问题，依然在今天还在重复的问”的帖子，引起了很大的争论和深思。这个问题的探讨，不是本篇的主题，拿到这里来，只是作为一个引子，引出我今天要说的话题。不过，建议大家回头可以想一想。 其实，在接触的java爱好者中，还是初学者居多，而其中不乏有“好高骛远，心浮气躁”者。先举个例子吧，这个例子就发生在我身边，我的一个朋友身上。我想，这样的例子，在很多人身上都有可能发生，如果不加注意的话。 事情是这样的： 我的一位好友，他以前是学asp的，毕业后也从事的是asp网页编程工作。大家也知道了，最近两年，asp编程越来越少了（当然待遇也普遍走低，而这时候，java却在逐渐的火爆）。他说他想转java，问我该怎么学。我说“先看书吧，看完书再说”，借了他一本《java核心技术——基础篇》，并告诉他，哪些是应该先看的，哪些是需要仔细看得，哪些是需要多看几遍的。可是，第三天就跑过来告诉我，他去了一家用java开发的公司，说公司用ejb编程，并说他也开始用ejb编程了。（后来，我才知道他是照着别人的例子依葫芦画瓢了）。 如果事情到这里的时候，接下来，俺们这位A兄，如果抽时间能够将java基础好好弥补，一些j2ee体系或者api知识补充一下，发展前景就很不错了。 可惜的是，半年以后，这位朋友，依然停留用ejb依葫芦画瓢的编程上，半点开创性的编程都没有。（我想，应该说，是没有内容可以让他扩充了吧）。不过，更可惜的是，他至今还似乎没有意识到这些，甚至在与朋友们交谈的时候，他还会自豪的说“他用了ejb”。 这个故事到这里的时候，是个悲惨的结局，至少目前是的。我的这位朋友，面对java，也只会告诉别人“他用了ejb”。 今年，包括明年将召开的“Java One”大会，都有一个共同的主题——推广Java的普及。其实，这也变相的告诉了我们，至少在现在，java的初学者还是很多，而且今后步入这一行业的初学者也会更多。 越迟的进入java这个领域，对大多数来说，就会面对更大的竞争压力，因为你的同行比你早进入了半年。 当一位新进入的初学者还在看java面向对象的概念的时候，发现同行们已经在看的是jsp/servlet了，而这个行业已经在流行ejb了。心急如焚的这位，就开始匆忙的学习jsp。匆忙的配置好tomcat，匆忙的写了两个成功jsp页面后，发现身边很多同事开始热衷ejb了，于是又开始匆忙了编ejb。写了没几天，突然发现原来很流行struts——struts是什么东东呢，于是又开始匆忙的学。学了没几天，出去一聚会，发现身边的人，都在聊什么java设计模式。于是一拍脑袋，又开始学设计模式······ 也许我写的有些夸张了，不过，现实中真的不乏有这样的情况。 当然，这个行业的发展也过于迅速，很多东东，我们刚刚了解的时候，就需要去应用它了。 “浮躁”，让很多人，陷入了不可自拔的越陷越深的循环 “浮躁”，也让很多人，在经过几年的奔波后，发现什么也没有学到 《Thinking in Java》从它出世的那一刻起，就被赋予了java图书中的圣典。他成为圣典，并不是它说了多少知识，多少api。它只说了更多的“基础知识”，它告诉和重复说的，就是“这里是基石，你将站在这里，看的更远” 今天匆忙的写了这篇“引出篇”，接下来还打算写两篇“分析篇”“劝导篇”。在此有言语错误的地方，望斧正。 同时，也真诚的希望，大家在学习java的时候，切忌浮躁。知识是需要沉淀的；思想也是在不断的学习、磨练中走向成熟的；而技术也是在不断的创造中开拓的。 [B]小议学习java的浮躁心态-分析篇[/B] 知识是需要沉淀的；思想也是在不断的学习、磨练中走向成熟的；而技术也是在不断的创造中开拓的。 在《引出篇》中，我简单的举了一个身边的例子，以及夸张的描述了一个浮躁学习的状态。这些只简单的点出了浮躁心态的表象，那么现在让我们来分析一些根源。 在《引出篇》的议论中，有朋友提到“软件业的浮躁”一词，也建议在“分析篇”中从这方面分析一下。有关“软件业”之类的议论，在各大论坛或网站上比比皆是，有抱有积极心态的，有唉声叹气的，有发牢骚的，也有打抱不平的——但这些远远超越了本篇的主题，也超越了我作为一名开发者的眼光。 正如题目所说的那样——“小议”。从自己说起，从自己的角度说起，从自己身边更多的java开发者说起。 其实，现实中，绝大多数开发者，都有或多或少的浮躁心态，真正能够保持“稳重、矜持”的还是很少。因为在刚开始学习java的时候，难免会走些弯路，走些错路；在经验越来越丰富的时候，也难免会因为一两次的成功而骄傲。 接下来主要从三个方面阐述： （一） 转行中的浮躁心态 （二） 初学java的浮躁心态 （三） 经验越来越多，而引出的浮躁心态 （一）转行中的浮躁心态 在java开发者中，不乏有从其他领域转行过来的。不论是因为自主转行，还是因为公司转型而造成的转行。 1、从自主转行说起 先从自主转行说起吧，这主要包括两类开发者： 一类是以学生为主的，特别是以学计算机软件专业的为主。转行时期大多在大三下或大四上，因为那时候要找工作了。这两年，从java的就业形势来说，还是比较好的。很多原先学vb,vc的就开始转java了。 一类是刚刚工作的为主。转行期，大多在毕业一两年左右。具体表现在，工作一两年后，发现所从事的行业越来越不景气，所从事的语言越来越不好找工作，而这时候，java正在逐渐火爆起来。于是开始学习java，为转行或跳槽作准备。 从这些“自主转行”的java开发者中，我们可以看出，转行很大一方面是有“利益”驱动的。不论是为获得一个好就业机会，还是为了获取一份好的薪水。这个无可厚非，俺自己曾经学习java就是因为为了就业。 但是正因为这样，学习java很可能就带有很大的“行业流行性”。比如现在很流行struts，就会有很多人刚接触java，就开始一窝蜂的学struts，不论当时是否明白servlet，是否明白java/io。 [...]]]></description>
			<content:encoded><![CDATA[<p>昨天刚说到我有浮澡的心理，今天就看到有相关的文章！看来这不是我无中生有的，是原本就存在着的，看来有必要好好研究解决才行！<br />
我想这二句说得很到位：<br />
[FONT-COLOR=Red]“浮躁”，让很多人，陷入了不可自拔的越陷越深的循环[/FONT-COLOR]<br />
[FONT-COLOR=Red]“浮躁”，也让很多人，在经过几年的奔波后，发现什么也没有学到[/FONT-COLOR]<br />
知识是需要沉淀的；思想也是在不断的学习、磨练中走向成熟的；而技术也是在不断的创造中开拓的,关注作者下一篇的劝导篇！这&#8230;<br />
<span id="more-219"></span><br />
昨天刚说到我有浮澡的心理，今天就看到有相关的文章！看来这不是我无中生有的，是原本就存在着的，看来有必要好好研究解决才行！<br />
我想这二句说得很到位：<br />
[FONT-COLOR=Red]“浮躁”，让很多人，陷入了不可自拔的越陷越深的循环[/FONT-COLOR]<br />
[FONT-COLOR=Red]“浮躁”，也让很多人，在经过几年的奔波后，发现什么也没有学到[/FONT-COLOR]<br />
知识是需要沉淀的；思想也是在不断的学习、磨练中走向成熟的；而技术也是在不断的创造中开拓的,关注作者下一篇的劝导篇！这让我想到了很多&#8230;..</p>
<p>[B]小议学习java的浮躁心态-引出篇[/B]<br />
“切忌浮躁”——我想这是在任何学习方法中，都会特意提出来的。</p>
<p>在国内的几个论坛也混了几年，甚至眼看着曾经轰轰烈烈的javaunion从成长到消失。在javaunion ,chinajavaworld,dev2dev,javaresearch,cn-java等论坛上，也相遇或结识了很多java爱好者，有经验丰富者，也有初出茅庐者。</p>
<p>其实，国内技术论坛，是个很奇怪很有意思的地方。从这里成长了一批批的开发者，但也从这里消失了一批批的开发者。犹记得javaunion论坛曾经的一篇名为“为什么两年前的问题，依然在今天还在重复的问”的帖子，引起了很大的争论和深思。这个问题的探讨，不是本篇的主题，拿到这里来，只是作为一个引子，引出我今天要说的话题。不过，建议大家回头可以想一想。</p>
<p>其实，在接触的java爱好者中，还是初学者居多，而其中不乏有“好高骛远，心浮气躁”者。先举个例子吧，这个例子就发生在我身边，我的一个朋友身上。我想，这样的例子，在很多人身上都有可能发生，如果不加注意的话。</p>
<p>事情是这样的：</p>
<p>我的一位好友，他以前是学asp的，毕业后也从事的是asp网页编程工作。大家也知道了，最近两年，asp编程越来越少了（当然待遇也普遍走低，而这时候，java却在逐渐的火爆）。他说他想转java，问我该怎么学。我说“先看书吧，看完书再说”，借了他一本《java核心技术——基础篇》，并告诉他，哪些是应该先看的，哪些是需要仔细看得，哪些是需要多看几遍的。可是，第三天就跑过来告诉我，他去了一家用java开发的公司，说公司用ejb编程，并说他也开始用ejb编程了。（后来，我才知道他是照着别人的例子依葫芦画瓢了）。</p>
<p>如果事情到这里的时候，接下来，俺们这位A兄，如果抽时间能够将java基础好好弥补，一些j2ee体系或者api知识补充一下，发展前景就很不错了。</p>
<p>可惜的是，半年以后，这位朋友，依然停留用ejb依葫芦画瓢的编程上，半点开创性的编程都没有。（我想，应该说，是没有内容可以让他扩充了吧）。不过，更可惜的是，他至今还似乎没有意识到这些，甚至在与朋友们交谈的时候，他还会自豪的说“他用了ejb”。</p>
<p>这个故事到这里的时候，是个悲惨的结局，至少目前是的。我的这位朋友，面对java，也只会告诉别人“他用了ejb”。</p>
<p>今年，包括明年将召开的“Java One”大会，都有一个共同的主题——推广Java的普及。其实，这也变相的告诉了我们，至少在现在，java的初学者还是很多，而且今后步入这一行业的初学者也会更多。</p>
<p>越迟的进入java这个领域，对大多数来说，就会面对更大的竞争压力，因为你的同行比你早进入了半年。</p>
<p>当一位新进入的初学者还在看java面向对象的概念的时候，发现同行们已经在看的是jsp/servlet了，而这个行业已经在流行ejb了。心急如焚的这位，就开始匆忙的学习jsp。匆忙的配置好tomcat，匆忙的写了两个成功jsp页面后，发现身边很多同事开始热衷ejb了，于是又开始匆忙了编ejb。写了没几天，突然发现原来很流行struts——struts是什么东东呢，于是又开始匆忙的学。学了没几天，出去一聚会，发现身边的人，都在聊什么java设计模式。于是一拍脑袋，又开始学设计模式······</p>
<p>也许我写的有些夸张了，不过，现实中真的不乏有这样的情况。</p>
<p>当然，这个行业的发展也过于迅速，很多东东，我们刚刚了解的时候，就需要去应用它了。</p>
<p>“浮躁”，让很多人，陷入了不可自拔的越陷越深的循环</p>
<p>“浮躁”，也让很多人，在经过几年的奔波后，发现什么也没有学到</p>
<p>《Thinking in Java》从它出世的那一刻起，就被赋予了java图书中的圣典。他成为圣典，并不是它说了多少知识，多少api。它只说了更多的“基础知识”，它告诉和重复说的，就是“这里是基石，你将站在这里，看的更远”</p>
<p>今天匆忙的写了这篇“引出篇”，接下来还打算写两篇“分析篇”“劝导篇”。在此有言语错误的地方，望斧正。</p>
<p>同时，也真诚的希望，大家在学习java的时候，切忌浮躁。知识是需要沉淀的；思想也是在不断的学习、磨练中走向成熟的；而技术也是在不断的创造中开拓的。</p>
<p>[B]小议学习java的浮躁心态-分析篇[/B] </p>
<p>知识是需要沉淀的；思想也是在不断的学习、磨练中走向成熟的；而技术也是在不断的创造中开拓的。</p>
<p>在《引出篇》中，我简单的举了一个身边的例子，以及夸张的描述了一个浮躁学习的状态。这些只简单的点出了浮躁心态的表象，那么现在让我们来分析一些根源。</p>
<p>在《引出篇》的议论中，有朋友提到“软件业的浮躁”一词，也建议在“分析篇”中从这方面分析一下。有关“软件业”之类的议论，在各大论坛或网站上比比皆是，有抱有积极心态的，有唉声叹气的，有发牢骚的，也有打抱不平的——但这些远远超越了本篇的主题，也超越了我作为一名开发者的眼光。</p>
<p>正如题目所说的那样——“小议”。从自己说起，从自己的角度说起，从自己身边更多的java开发者说起。</p>
<p>其实，现实中，绝大多数开发者，都有或多或少的浮躁心态，真正能够保持“稳重、矜持”的还是很少。因为在刚开始学习java的时候，难免会走些弯路，走些错路；在经验越来越丰富的时候，也难免会因为一两次的成功而骄傲。 </p>
<p>接下来主要从三个方面阐述：</p>
<p>（一） 转行中的浮躁心态</p>
<p>（二） 初学java的浮躁心态</p>
<p>（三） 经验越来越多，而引出的浮躁心态</p>
<p>（一）转行中的浮躁心态</p>
<p>在java开发者中，不乏有从其他领域转行过来的。不论是因为自主转行，还是因为公司转型而造成的转行。</p>
<p>1、从自主转行说起</p>
<p>先从自主转行说起吧，这主要包括两类开发者：</p>
<p>一类是以学生为主的，特别是以学计算机软件专业的为主。转行时期大多在大三下或大四上，因为那时候要找工作了。这两年，从java的就业形势来说，还是比较好的。很多原先学vb,vc的就开始转java了。 一类是刚刚工作的为主。转行期，大多在毕业一两年左右。具体表现在，工作一两年后，发现所从事的行业越来越不景气，所从事的语言越来越不好找工作，而这时候，java正在逐渐火爆起来。于是开始学习java，为转行或跳槽作准备。</p>
<p>从这些“自主转行”的java开发者中，我们可以看出，转行很大一方面是有“利益”驱动的。不论是为获得一个好就业机会，还是为了获取一份好的薪水。这个无可厚非，俺自己曾经学习java就是因为为了就业。</p>
<p>但是正因为这样，学习java很可能就带有很大的“行业流行性”。比如现在很流行struts，就会有很多人刚接触java，就开始一窝蜂的学struts，不论当时是否明白servlet，是否明白java/io。</p>
<p>这种浮躁心态，很容易受外界环境影响。也很容易在后来的学习矫正，当然也很容易犯下面（三）提到的因为经验越来越多而浮躁的错误。</p>
<p>有一句很哲理性的话，叫“我们生存在这个环境，为了生存，我们首先就必须适应这个环境”。面对这种浮躁心态，我们也许暂时只能说——“如果你有时间，请回过头去，花些时间，看看java基础。哪怕只是业余的时间，抽空看看”</p>
<p>2、从公司转型说起<br />
然后让我们来看看因为公司转型而造成的转行吧。</p>
<p>公司为了发展，转型是一种较为正常的商业性行为，不论是从java转到vc，还是从vc转到java。反正结局一样，转行了。下面让我们来看看会存在什么样的浮躁心态。</p>
<p>最主要的表现在，经过简单的培训后，能用java开发，满足公司应用了。这时候，开发者会认为java不过如此简单：反正vc和java都是面向对象，反正jsp和asp都是编程，久而之久，这就心态就会蔓延，再结果就是不思进取。再加上很流行一种说法“重要的是思想，用什么语言无所谓”。</p>
<p>面对这种情况，还有些不好处理的就是，受先前经验的影响，一般人很难去劝解这类转行者：举个例子吧，比如你学习了java一年，你的一位转行的同事先前做了几年其他语言的开发工作，现在开始转行java。这个时候，如果你如告诉他，该这么学习java，该注意这个那个。那么你会获得什么呢？除了获得别人的翻白眼，估计很难获取其他的了（当然，如果运气好，如果那位同事是个谦逊的人，说不定是另一番情景）</p>
<p>当然。对于一些很有扎实基本功，思想也很活跃的开发者来说。转行java不过是用另一种语言而已。虽然java的体系很庞杂，不过对于他们来说，了解或应用，只是时间问题而已。</p>
<p>（二）初学java的浮躁心态<br />
初学习java的爱好者或开发者，大多数是比较虚心学习的。但是在学习过程中，很容易受到其他开发者误导，或行业风向的影响，当然也会受到自己一些“急功心切”心理的影响。</p>
<p>1、 因为要学的太多，而浮躁的<br />
java现在的体系结构越来越庞大（与之相关的xml，web service也在飞速的发展），光J2SE就有十几种core api，更不用说J2EE的应用了。一下子面对这么多的api，很多初学者会面临“如何起步，如何入手”的问题。而又有很多初学者，在学了一两个api后，就开始“囫囵吞枣”的学习了。</p>
<p>很多人，在rmi都还模糊不清的时候，就去大谈什么ejb。在web app还不知道是什么，就到处问“如何配置weblogic”。在论坛上，不乏这样的人。</p>
<p>现在的java的分支越来越多，有些api又可能有多种实现包。作为开发者，不论是初学者还是经验丰富者，我们都不可能在短时间内，掌握所有（甚至大部分）。但是，现实中的应用，大多情况下，需要多种组件或api的组合，这又需要多方面的学习，而且需要在较短时间能够将api熟练的应用。这时候就是扎实基本功和学习能力的体现了。<br />
2、因为一两次的成功，而浮躁的</p>
<p>在论坛上，经常会碰到这样的问帖——“我学完了jsp，下面该学什么”。其实，很多初学者，问这样问题也是无心之失，也是对新知识的渴望。就像一个漂流在四顾茫茫的海中央，如果这时候没有人指引，确实很难自己弄清楚该向什么方向游了。但是，对于任何一个开发者来说，应该永远不要说“学完了”。</p>
<p>可惜，现实中，存在很多的开发者，总在一两次的成功后，变得越来越浮躁。</p>
<p>正如我在《引出篇》中所举的那个例子，在用jsp写了几个页面，就认为掌握了jsp；用jdbc会操作了数据库，就认为差不多可以了；依葫芦画瓢写个ejb，就自诩掌握了ejb的，大有人在。<br />
（三）经验越来越多，而引出的浮躁心态<br />
如果这时候，还有些浮躁。真的有些遗憾了。</p>
<p>对于经验越来越丰富的java开发者来说，经历了初学的动荡期，应该都比较成熟稳重了。这时候还会造成浮躁的心态，我想最大的可能性就是一种骄傲心态的直接表现。</p>
<p>有关骄傲的话题，俺就不要说了吧。</p>
<p>面对这种情况，只能一句话了——“山外青山楼外楼”。</p>
<p>本来还想接着写些有关“（四）学术氛围误导的浮躁心态”这一节的。可是想一想，有些自己也是含含糊糊，毕竟眼光还没有那么高的层次，也就打住了。</p>
<p>现实中，我想远比我提到的情况要多，这些也仅仅个人的一些感想，难免有些思想不够全面。如有言词不妥之处，望斧正。</p>
<p>写到这里，想起了小学时候，前黑板的墙上总是贴着八个大字——“好好学习，天天向上”。<br />
顺便说一句，说这么多“假骄戒躁”的话，不是让大家太过于小心翼翼，也不是一定要按部就班的学习。现实中，未尝不可以看看java就学jsp。但是在学习新东西的时候，应该注意提醒自己“不断的弥补基础的缺陷”。这一段话，原本准备放在后续《劝导篇》中的。只因为在《引出篇》的议论中，有网友提到过这么一句——“至今还没有学习J2EE的部分，总觉得J2SE学得不好”。我想这样的心态，也大可不必。纵然j2ee很多是需要构架在j2se的基础上，但是未必需要将j2se十几个core api都搞通后才去学什么j2ee api（比如jsp,servlet甚至ejb）。</p>
<p>本文引用通告地址： http://blog.csdn.net/ssll2826/services/trackbacks/426529.aspx</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/219/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>关于这几天的记录！</title>
		<link>http://welog.org/blog/218</link>
		<comments>http://welog.org/blog/218#comments</comments>
		<pubDate>Sat, 16 Jul 2005 03:14:28 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%85%b3%e4%ba%8e%e8%bf%99%e5%87%a0%e5%a4%a9%e7%9a%84%e8%ae%b0%e5%bd%95%ef%bc%81/</guid>
		<description><![CDATA[因为以前的虚拟主机访问速度不是太理想，所以更换了新网的.net空间！不知道是什么原因，网站经常无法访问！这次是第二次了，我不想评论新网服务器质量的好坏，但没有尽到应有的责任，最起码的一份相关的邮件也没有，这就是新网吗？这次的解释是服务器因为硬件故障，重新调整！暂且接受他的这种解释吧，我希望这样的情况不要再出现第三次了。 网站现在总算恢复了，打开首页发现GOOGLE调整了我网站的RP值，从原来的0变成了现在的4，总算不在为看到PAGERANK=0心寒了！算是个不小的奖励，高兴一下！ 这段时间要&#8230; 因为以前的虚拟主机访问速度不是太理想，所以更换了新网的.net空间！不知道是什么原因，网站经常无法访问！这次是第二次了，我不想评论新网服务器质量的好坏，但没有尽到应有的责任，最起码的一份相关的邮件也没有，这就是新网吗？这次的解释是服务器因为硬件故障，重新调整！暂且接受他的这种解释吧，我希望这样的情况不要再出现第三次了。 网站现在总算恢复了，打开首页发现GOOGLE调整了我网站的RP值，从原来的0变成了现在的4，总算不在为看到PAGERANK=0心寒了！算是个不小的奖励，高兴一下！ 这段时间要学习及处理的事情很多，记录于此！ 随着Google Maps的推出，最近不断有了一些新的与Google Maps相结合的应用。 发现.探索.分享你去的地方 43 Places Google Maps功能扩展的几个例子 Bloger地图 更多的一些Google Maps应用介绍 HOW TO GPS Tag Photos: Flickr, Mappr, Google Earth Google Maps API 书架上摆放的JAVA书籍好长时间没打招呼了，每次总能找到各种理由把它遗忘在那个角落，不知道是天气太热还是自己太浮澡了（怎么又找上理由了），总不能安下心。也许这就是自己的一大漏洞吧，得快打上补丁，不然是很危险地。 下面这些是这几个月要啃并得消化的东西：总之这个暑假够我折腾的了！：（ XMLBasic&#160; 道德情操论 时间管理学（也许这才是我最优先撑握的技术） Eclipse从入门到精通 Tomcat与Java Web开发技术详解 。。。。。。。。。]]></description>
			<content:encoded><![CDATA[<p>因为以前的虚拟主机访问速度不是太理想，所以更换了新网的.net空间！不知道是什么原因，网站经常无法访问！这次是第二次了，我不想评论新网服务器质量的好坏，但没有尽到应有的责任，最起码的一份相关的邮件也没有，这就是新网吗？这次的解释是服务器因为硬件故障，重新调整！暂且接受他的这种解释吧，我希望这样的情况不要再出现第三次了。<br />
网站现在总算恢复了，打开首页发现GOOGLE调整了我网站的RP值，从原来的0变成了现在的4，总算不在为看到PAGERANK=0心寒了！算是个不小的奖励，高兴一下！<br />
这段时间要&#8230;<br />
<span id="more-218"></span></p>
<p>因为以前的虚拟主机访问速度不是太理想，所以更换了新网的.net空间！不知道是什么原因，网站经常无法访问！这次是第二次了，我不想评论新网服务器质量的好坏，但没有尽到应有的责任，最起码的一份相关的邮件也没有，这就是新网吗？这次的解释是服务器因为硬件故障，重新调整！暂且接受他的这种解释吧，我希望这样的情况不要再出现第三次了。<img src="/FCKeditor/editor/images/smiley/msn/sad_smile.gif"></p>
<p>网站现在总算恢复了，打开首页发现GOOGLE调整了我网站的RP值，从原来的0变成了现在的4，总算不在为看到PAGERANK=0心寒了！算是个不小的奖励，高兴一下！</p>
<p>这段时间要学习及处理的事情很多，记录于此！<br />
<font>随着Google Maps的推出，最近不断有了一些新的与Google Maps相结合的应用。</font><br />
<a href="http://afanti.railscn.com/">发现.探索.分享你去的地方</a><br />
<a href="http://www.43places.com/">43 Places</a><br />
<a href="http://home.donews.com/donews/article/8/80079.html">Google Maps功能扩展的几个例子</a><br />
<a href="http://www.flashanywhere.net/map.cfm">Bloger地图</a><br />
<a href="http://www.lifehacker.com/software/search-engines/google-map-applications-roundup-111996.php">更多的一些Google Maps应用介绍</a><br />
<a href="http://www.makezine.com/blog/archive/2005/07/how_to_gps_tag.html">HOW TO GPS Tag Photos: Flickr, Mappr, Google Earth</a></p>
<p><a href="http://www.google.com/apis/maps/">Google Maps API</a> </p>
<p>
书架上摆放的JAVA书籍好长时间没打招呼了，每次总能找到各种理由把它遗忘在那个角落，不知道是天气太热还是自己太浮澡了（怎么又找上理由了），总不能安下心。也许这就是自己的一大漏洞吧，得快打上补丁，不然是很危险地。<br />
下面这些是这几个月要啃并得消化的东西：总之这个暑假够我折腾的了！：（<br />
<font>XMLBasic&nbsp;</font></p>
<p><font>道德情操论 </font></p>
<p><font>时间管理学（也许这才是我最优先撑握的技术）<br />
</font></p>
<table cellspacing="0" cellpadding="0" width="95%" align="center" border="0">
<tbody>
<tr>
<td valign="top" colspan="2"><strong>Eclipse从入门到精通</strong></td>
</tr>
<tr>
<td valign="top" align="center" width="145"><img alt=""></td>
</tr>
</tbody>
</table>
<p>
</p>
<table cellspacing="0" cellpadding="0" width="95%" align="center" border="0">
<tbody>
<tr>
<td valign="top" colspan="2"><strong>Tomcat与Java Web开发技术详解</strong></td>
</tr>
<tr>
<td valign="top" align="center" width="145"><img alt=""></td>
</tr>
</tbody>
</table>
<p><font></font></p>
<p><font>。。。。。。。。。<br />
</font></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/218/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sun认证Java程序员5.0升级版本</title>
		<link>http://welog.org/blog/216</link>
		<comments>http://welog.org/blog/216#comments</comments>
		<pubDate>Fri, 08 Jul 2005 20:09:14 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/sun%e8%ae%a4%e8%af%81java%e7%a8%8b%e5%ba%8f%e5%91%9850%e5%8d%87%e7%ba%a7%e7%89%88%e6%9c%ac/</guid>
		<description><![CDATA[JAVA对(J2SE)5.0以前通过SCJP的用户进行一次升级考试,我不知道这种升级有什么意义! (J2SE)5.0的确有很大的改进,但SCJP原本就是考核Java语言的基本语法和结构,(J2SE)5.0对这些特性没有改变吧!!!!!认证学校又多了一项收取费用的方式..哈~~~~~~~不说了,下面是JAVA考试的流程图! JAVA对(J2SE)5.0以前通过SCJP的用户进行一次升级考试,我不知道这种升级有什么意义! (J2SE)5.0的确有很大的改进,但SCJP原本就是考核Java语言的基本语法和结构,(J2SE)5.0对这些特性没有改变吧!!!!!认证学校又多了一项收取费用的方式..哈~~~~~~~不说了,下面是JAVA考试的流程图! [IMG]upload/01.JPG[/IMG] &#160; 升级版价值 &#160;&#160;&#160;&#160;Java 2平台标准版( J2SE) 5.0被认为是Java平台及程序设计语言自十年前发明以来最重要的里程碑。 Java 2平台标准版Sun认证程序员(SCJP)考试是业界首屈一指的Java技术认证， 其考试范围已包括了J2SE 5.0所具有的改进和新特性。 用户现在可以在授权的Prometric 考试中心参加最新的认证考试。考试代码为CX-310-055。 &#160;&#160;&#160;&#160;除了一般的SCJP 5.0认证考试以外，六月份还将在此计划中提供ePractice考试(WGS-PREX-J055C)、 一套10个实际问题的考试(WGS-PREX-J055-10)以及升级考试(CX-310-056)。 目标学员 &#160;&#160;&#160;&#160;这一认证计划的目标学员是那些希望充分展现并运用Java 程序设计语言的知识与技能的程序员与开发人员。Sun公司向那些具有一到多年编程经验， 并且至少有6-12个月使用J2SE技能的学员推荐J2SE 5.0版本。 &#160;&#160;&#160;&#160;如您已经参加了5.0之前版本的SCJP认证考试并成功取得认证的学员可以参加升级考试，以获取最新的技能。 认证的定位 &#160;&#160;&#160;&#160;SCJP考试是Sun公司Java技术认证考试中的基础性认证。 通过此项认证即能清楚表明此程序员理解了Java程序设计语言的基本语法和结构， 并能使用J2SE 5.0创建在服务器和桌面系统上运行的Java技术应用程序。 获得此项认证将成为获取Sun公司其它高级Java技术认证的先决条件。 &#160;&#160;&#160;&#160;SCJP认证是首要的Java程序设计认证，它在全球范围内得到了赞许和业界认可。 认证杂志的Ed Tittel说过：&#34;Sun公司最为人所知的认证就是Java 2平台的Sun认证程序员考试(SCJP)， 不仅仅因为它是其它多数Java认证的先决条件，而且也因为其它的认证主办者也认可或需要这项认证。&#34; 认证要求 1. 参加者必须通过一项基本的考试，获得SCJP 资格。 考试代码： CX-310-055 Prometric 考试代码： 310-055 题目类型： 多选题和拖放题 先决条件： 72 提供考试： 59% (72 题中答对42 题 [...]]]></description>
			<content:encoded><![CDATA[<p>JAVA对(J2SE)5.0以前通过SCJP的用户进行一次升级考试,我不知道这种升级有什么意义! (J2SE)5.0的确有很大的改进,但SCJP原本就是考核Java语言的基本语法和结构,(J2SE)5.0对这些特性没有改变吧!!!!!认证学校又多了一项收取费用的方式..哈~~~~~~~不说了,下面是JAVA考试的流程图!<br />
<span id="more-216"></span></p>
<p>JAVA对(J2SE)5.0以前通过SCJP的用户进行一次升级考试,我不知道这种升级有什么意义! (J2SE)5.0的确有很大的改进,但SCJP原本就是考核<font size="2">Java语言的基本语法和结构,(J2SE)5.0对这些特性没有改变吧!!!!!认证学校又多了一项收取费用的方式..哈~~~~~~~不说了,下面是JAVA考试的流程图! </font></p>
<p>[IMG]upload/01.JPG[/IMG]</p>
<p>&nbsp;</p>
<table width="100%" border="0">
<tbody>
<tr>
<td bgcolor="#666699"><font face="Arial, Helvetica, sans-serif" color="#ffffff" size="2"><strong>升级版价值</strong></font></td>
</tr>
<tr>
<td><font face="Arial, H<br />
            elvetica, sans-serif" size="2"><br />
            &nbsp;&nbsp;&nbsp;&nbsp;Java 2平台标准版( J2SE) 5.0被认为是Java平台及程序设计语言自十年前发明以来最重要的里程碑。 Java 2平台标准版Sun认证程序员(SCJP)考试是业界首屈一指的Java技术认证， 其考试范围已包括了J2SE 5.0所具有的改进和新特性。 用户现在可以在授权的Prometric 考试中心参加最新的认证考试。考试代码为CX-310-055。 </p>
<p>            &nbsp;&nbsp;&nbsp;&nbsp;除了一般的SCJP 5.0认证考试以外，六月份还将在此计划中提供ePractice考试(WGS-PREX-J055C)、 一套10个实际问题的考试(WGS-PREX-J055-10)以及升级考试(CX-310-056)。 </p>
<p>            </font></td>
</tr>
</tbody>
</table>
<table width="100%" border="0">
<tbody>
<tr>
<td bgcolor="#666699"><font face="Arial, Helvetica, sans-serif" color="#ffffff" size="2"><strong>目标学员</strong></font></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif" size="2"><br />
            &nbsp;&nbsp;&nbsp;&nbsp;这一认证计划的目标学员是那些希望充分展现并运用Java 程序设计语言的知识与技能的程序员与开发人员。Sun公司向那些具有一到多年编程经验， 并且至少有6-12个月使用J2SE技能的学员推荐J2SE 5.0版本。 </p>
<p>            &nbsp;&nbsp;&nbsp;&nbsp;如您已经参加了5.0之前版本的SCJP认证考试并成功取得认证的学员可以参加升级考试，以获取最新的技能。 </p>
<p>            </font></td>
</tr>
</tbody>
</table>
<table width="100%" border="0">
<tbody>
<tr>
<td bgcolor="#666699"><font face="Arial, Helvetica, sans-serif" color="#ffffff" size="2"><strong>认证的定位</strong></font></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif" size="2"><br />
            &nbsp;&nbsp;&nbsp;&nbsp;SCJP考试是Sun公司Java技术认证考试中的基础性认证。 通过此项认证即能清楚表明此程序员理解了Java程序设计语言的基本语法和结构， 并能使用J2SE 5.0创建在服务器和桌面系统上运行的Java技术应用程序。 获得此项认证将成为获取Sun公司其它高级Java技术认证的先决条件。 </p>
<p>            &nbsp;&nbsp;&nbsp;&nbsp;SCJP认证是首要的Java程序设计认证，它在全球范围内得到了赞许和业界认可。 认证杂志的Ed Tittel说过：&quot;Sun公司最为人所知的认证就是Java 2平台的Sun认证程序员考试(SCJP)， 不仅仅因为它是其它多数Java认证的先决条件，而且也因为其它的认证主办者也认可或需要这项认证。&quot; </p>
<p>            </font></td>
</tr>
</tbody>
</table>
<table width="100%" border="0">
<tbody>
<tr>
<td bgcolor="#666699"><font face="Arial, Helvetica, sans-serif" color="#ffffff" size="2"><strong>认证要求</strong></font></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif" size="2">1. 参加者必须通过一项基本的考试，获得SCJP 资格。</font><font face="Arial, Helvetica, sans-serif"><br />
            </font></p>
<table width="69%" border="0">
<tbody>
<tr bgcolor="#cccccc">
<td width="39%"><font face="Arial, Helvetica, sans-serif" size="2">考试代码：</font></td>
<td width="61%"><font face="Arial, Helvetica, sans-serif" size="2">CX-310-055 </font></td>
</tr>
<tr bgcolor="#cccccc">
<td><font face="Arial, Helvetica, sans-serif" size="2">Prometric 考试代码：</font></td>
<td><font face="Arial, Helvetica, sans-serif" size="2">310-055 </font></td>
</tr>
<tr bgcolor="#cccccc">
<td><font face="Arial, Helvetica, sans-serif" size="2">题目类型：</font></td>
<td><font face="Arial, Helvetica, sans-serif" size="2">多选题和拖放题 </font></td>
</tr>
<tr bgcolor="#cccccc">
<td><font face="Arial, Helvetica, sans-serif" size="2">先决条件：</font></td>
<td><font face="Arial, Helvetica, sans-serif" size="2">72 </font></td>
</tr>
<tr bgcolor="#cccccc">
<td><font face="Arial, Helvetica, sans-serif" size="2">提供考试：</font></td>
<td><font face="Arial, Helvetica, sans-serif" size="2">59% (72 题中答对42 题 ) </font></td>
</tr>
<tr bgcolor="#cccccc">
<td><font face="Arial, Helvetica, sans-serif" size="2">先决条件： </font></td>
<td><font face="Arial, Helvetica, sans-serif" size="2">无 </font></td>
</tr>
<tr bgcolor="#cccccc">
<td><font face="Arial, Helvetica, sans-serif" size="2">提供考试： </font></td>
<td><font face="Arial, Helvetica, sans-serif" size="2">Prometric 全球范围的授权考试中心 </font></td>
</tr>
<tr bgcolor="#cccccc">
<td><font face="Arial, Helvetica, sans-serif" size="2">时间限制： </font></td>
<td><font face="Arial, Helvetica, sans-serif" size="2">175 分钟 </font></td>
</tr>
</tbody>
</table>
<p>            <font face="Arial, Helvetica, sans-serif"><font size="2">2. 参加者必须通过一项基本的考试，获得SCJP 资格。</font><br />
            </font></p>
<table width="69%" border="0">
<tbody>
<tr bgcolor="#cccccc">
<td width="39%"><font face="Arial, Helvetica, sans-serif" size="2">考试代码： </font></td>
<td width="61%"><font face="Arial, Helvetica, sans-serif" size="2">CX-310-056 </font></td>
</tr>
<tr bgcolor="#cccccc">
<td><font face="Arial, Helvetica, sans-serif" size="2">Prometric 考试代码： </font></td>
<td><font face="Arial, Helvetica, sans-serif" size="2">310-056 </font></td>
</tr>
<tr bgcolor="#cccccc">
<td><font face="Arial, Helvetica, sans-serif" size="2">题目类型： </font></td>
<td><font face="Arial, Helvetica, sans-serif" size="2">多选题和拖放题 </font></td>
</tr>
<tr bgcolor="#cccccc">
<td><font face="Arial, Helvetica, sans-serif" size="2">先决条件： </font></td>
<td><font face="Arial, Helvetica, sans-serif" size="2">Java 2 平台 Sun 认证程序员 ( 上一版 ) </font></td>
</tr>
<tr bgcolor="#cccccc">
<td><font face="Arial, Helvetica, sans-serif" size="2">提供考试： </font></td>
<td><font face="Arial, Helvetica, sans-serif" size="2">Prometric 全球范围的授权考试中心 </font></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p><font face="Arial, Helvetica, sans-serif"><br />
</font></p>
<table width="100%" border="0">
<tbody>
<tr>
<td bgcolor="#666699"><font face="Arial, Helvetica, sans-serif" color="#ffffff" size="2"><strong>考试准备方式</strong></font></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif"></font></p>
<table width="87%" border="0">
<tbody>
<tr bgcolor="#cccccc">
<td valign="top" width="35%"><font face="Arial, Helvetica, sans-serif" size="2">课程</font></td>
<td width="65%"><font face="Arial, Helvetica, sans-serif" size="2">有教员的培训;<br />
                        SL-275: Java程序设计语言<br />
                        基于Web的培训:<br />
                        WJB-275: Java程序设计语言<br />
                        WJO-2762: J2SE平台5.0开发员版：语言变化<br />
                        光盘培训:<br />
                        SL-275: Java程序设计语言</font></td>
</tr>
<tr bgcolor="#cccccc">
<td valign="top" width="35%"><font face="Arial, Helvetica, sans-serif" size="2">在线模拟考试</font></td>
<td width="65%"><font face="Arial, Helvetica, sans-serif" size="2"><b>WGS-PREX-J055C (2005年6月推出): </b><br />
                        Java2平台标准版5.0，Sun认证程序员ePractice认证考试 <br />
                        <b>WGS-PREX-J055-10 (2005年6月推出): </b><br />
                        Java2平台标准版5.0，Sun认证程序员模拟样题 </font></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p><font face="Arial, Helvetica, sans-serif"><br />
</font></p>
<table width="100%" border="0">
<tbody>
<tr>
<td bgcolor="#666699"><font face="Arial, Helvetica, sans-serif" color="#ffffff" size="2"><strong>认证途径</strong></font></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif"><font size="2">&nbsp;&nbsp;&nbsp;<font size="2">&nbsp;<font face="Arial, Helvetica, sans-serif">Sun最初对开发人员进行培训，让他们具有基本的Java 程序设计语言技能， 并通过Java 2平台Sun认证程序员考试进行验证。然后，开发人员可以参加更高级的或者更专业的认证来开拓自己的职业生涯，从事更加专业的工作，体现更大的价值。需要注意的是， 参加者若获得了Java 2平台（任何版本）的Sun认证程序员资格，就可以进行下列认证：<br />
            </font></font></font></p>
<ul>
<li><font face="Arial, Helvetica, sans-serif" size="2">Java 2平台标准版Sun认证开发人员 </font></li>
<li><font face="Arial, Helvetica, sans-serif" size="2">Java 2平台企业版Sun认证Web组件开发人员 </font></li>
<li><font face="Arial, Helvetica, sans-serif" size="2">Java 2平台企业版Sun认证业务组件开发人员 </font></li>
<li><font face="Arial, Helvetica, sans-serif" size="2">Java Web服务Sun认证开发人员 </font></li>
<li><font face="Arial, Helvetica, sans-serif" size="2">Java 2平台微型版Sun认证移动应用开发人员 </font></li>
</ul>
<p>            <font face="Arial, Helvetica, sans-serif" size="2"><br />
            (注意，获得SCJP资格并非是成为Java 2平台企业版Sun认证企业架构师的先决条件。) </font><font face="Arial, Helvetica, sans-serif" size="2"><br />
            </font><font face="Arial, Helvetica, sans-serif">&nbsp; </font></font></td>
</tr>
</tbody>
</table>
<table width="100%" border="0">
<tbody>
<tr>
<td bgcolor="#666699"><font face="Arial, Helvetica, sans-serif" color="#ffffff" size="2"><strong>其它内容</strong></font></td>
</tr>
<tr>
<td><font face="Arial, Helvetica, sans-serif">&nbsp;<a href="http://www.sun.com/training/certification/java/index.html"><font size="2">http://www.sun.com/training/certification/java/index.html</font></a><font size="2"></p>
<p>            &nbsp;对外用户网站上有考试的详细介绍和考试目的：</p>
<p>            &nbsp;<a href="http://www.sun.com/training/catalog/courses/CX-310-055.xml">http://www.sun.com/training/catalog/courses/CX-310-055.xml</a> <br />
            </font></font></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/216/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sohu的blog问卷调查</title>
		<link>http://welog.org/blog/211</link>
		<comments>http://welog.org/blog/211#comments</comments>
		<pubDate>Sat, 02 Jul 2005 06:31:17 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/sohu%e7%9a%84blog%e9%97%ae%e5%8d%b7%e8%b0%83%e6%9f%a5/</guid>
		<description><![CDATA[Sohu的blog问卷调查，今天才有时间把这个调查给完成了，不管怎么说统计的结果对于BLOGER人来说应该有所帮助！ Sohu的blog问卷调查，今天才有时间把这个调查给完成了，不管怎么说统计的结果对于BLOGER人来说应该有所帮助！ 1、对于Blog（博客），以下描述，最符合您的是： 请选择&#8230; 我已经开始写Blog了 没有写过Blog，但是我浏览过别人的Blog 我没写过也没有看过别人的Blog，但是很想试一试 听说过Blog，但不了解是什么东西 完全不知道Blog是什么东东，也没有试的打算 根据您的选择会出现不同的问卷部分，请您认真答卷，感谢合作。 基本使用情况调查 2、您第一个Blog已经注册多久了： 请选择&#8230; 不到1个月 1个月到半年 半年到1年 1年－2年 2年以上 不清楚/拒绝回答 3、您注册了多少个Blog？ 请选择&#8230; 有1个 有2个 有3个 有4个或更多 4、最近一周有更新过的Blog有多少个？ 请选择&#8230; 有1个 有2个 有3个 有4个或更多 5、您最近的1周更新了多少篇日志： 请选择&#8230; 7篇或7篇以上 5－6篇 3－4篇 1－2篇 1篇或者0篇 不清楚/拒绝回答 6、平均每天您花在写Blog上的时间有： 请选择&#8230; 半个小时以内（含半小时） 半个小时－1小时 1－2小时 2－3小时 3小时以上 7、您使用过以下哪些功能或工具（可多选）： 网摘（365key，狐摘 ，博采等） RSS Feed导入导出 Comments（在别人的Blog上留言，评论） Blogroll（Blog链接列表） Trackback（引用） RSS阅读软件（如：看天下，周博通等） [...]]]></description>
			<content:encoded><![CDATA[<p>Sohu的blog问卷调查，今天才有时间把这个调查给完成了，不管怎么说统计的结果对于BLOGER人来说应该有所帮助！<br />
<span id="more-211"></span></p>
<p><a href="http://it.sohu.com/s2005/bob.shtml"><img height="120" alt="sohu it vote for blogger" src="http://www.icebin.net/upload/voteit.jpg"></a></p>
<p>
</p>
<p><a href="http://it.sohu.com/s2005/bob.shtml"><font color="#0066ff">Sohu的blog问卷调查</font></a>，今天才有时间把这个调查给完成了，不管怎么说统计的结果对于BLOGER人来说应该有所帮助！</p>
<p><font color="#ff0000">1、</font><b><font color="#ff0000">对于Blog（博客），以下描述，最符合您的是：</font></b></p>
<p>请选择&#8230;<br />
我已经开始写Blog了<br />
没有写过Blog，但是我浏览过别人的Blog<br />
我没写过也没有看过别人的Blog，但是很想试一试<br />
听说过Blog，但不了解是什么东西<br />
完全不知道Blog是什么东东，也没有试的打算
 </p>
<div>
<div>根据您的选择会出现不同的问卷部分，请您认真答卷，感谢合作。</div>
</div>
<p>
</p>
<div><a name="G1_2_18">基本使用情况调查</a></p>
<div>
<h3>2、您第一个Blog已经注册多久了：<br />
请选择&#8230;<br />
不到1个月<br />
1个月到半年<br />
半年到1年<br />
1年－2年<br />
2年以上<br />
不清楚/拒绝回答<br />
 </h3>
</div>
<div>
<h3>3、您注册了多少个Blog？<br />
请选择&#8230;<br />
有1个<br />
有2个<br />
有3个<br />
有4个或更多<br />
 </h3>
</div>
<div>
<h3>4、最近一周有更新过的Blog有多少个？<br />
请选择&#8230;<br />
有1个<br />
有2个<br />
有3个<br />
有4个或更多<br />
 </h3>
</div>
<div>
<h3>5、您最近的1周更新了多少篇日志：<br />
请选择&#8230;<br />
7篇或7篇以上<br />
5－6篇<br />
3－4篇<br />
1－2篇<br />
1篇或者0篇<br />
不清楚/拒绝回答<br />
 </h3>
</div>
<div>
<h3>6、平均每天您花在写Blog上的时间有：<br />
请选择&#8230;<br />
半个小时以内（含半小时）<br />
半个小时－1小时<br />
1－2小时<br />
2－3小时<br />
3小时以上<br />
 </h3>
</div>
<div>
<h3>7、您使用过以下哪些功能或工具（可多选）：</h3>
<dl>
<dd><label for="C1_7_1_8">网摘（365key，狐摘 ，博采等）</label></dd>
<dd><label for="C1_7_1_9">RSS Feed导入导出</label></dd>
<dd><label for="C1_7_1_4">Comments（在别人的Blog上留言，评论）</label></dd>
<dd><label for="C1_7_1_2">Blogroll（Blog链接列表）</label></dd>
<dd><label for="C1_7_1_1">Trackback（引用）</label></dd>
<dd><label for="C1_7_1_5">RSS阅读软件（如：看天下，周博通等）</label></dd>
<dd><label for="C1_7_1_6">FeedBurner或Feedsky（一个RSS的缓存/路由器和聚合器）</label></dd>
<dd><label for="C1_7_1_3">在线RSS阅读器（如：topim，Bloglines，RSS博览）</label></dd>
<dd><label for="C1_7_1_7">Flickr（图片服务）</label></dd>
<dd><label for="C1_7_1_10">Tag（标签）</label></dd>
<dd><label for="C1_7_1_11">没听说以上东西/不明白这些选项是什么意思</label></dd>
</dl>
<p><Label>Trackback（引用）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>Blogroll（Blog链接列表）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>在线RSS阅读器（如：topim，Bloglines，RSS博览）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>Comments（在别人的Blog上留言，评论）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>RSS阅读软件（如：看天下，周博通等）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>FeedBurner或Feedsky（一个RSS的缓存/路由器和聚合器）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>Flickr（图片服务）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>网摘（365key，狐摘 ，博采等）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>RSS Feed导入导出</label></dd>
<p>&#8220;, &#8220;
<dd><Label>Tag（标签）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>没听说以上东西/不明白这些选项是什么意思</label></dd>
<p>&#8220;, &#8220;&#8221;);<br />
tarr = RandomOrder(Q_Order)<br />
for (var idx = 0; idx </p>
</div>
<div>
<h3>8、您通常在什么地点写Blog（可多选）：</h3>
<dl>
<dd><label for="C1_8_1_3">网吧、网校、网络咖啡厅</label></dd>
<dd><label for="C1_8_1_1">住所（包括自己家、亲戚家、朋友家、暂住地、宿舍等）</label></dd>
<dd><label for="C1_8_1_4">公共场所</label></dd>
<dd><label for="C1_8_1_2">办公室</label></dd>
<dd><label for="C1_8_1_5">其他：</label></dd>
</dl>
<p><Label>住所（包括自己家、亲戚家、朋友家、暂住地、宿舍等）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>办公室</label></dd>
<p>&#8220;, &#8220;
<dd><Label>网吧、网校、网络咖啡厅</label></dd>
<p>&#8220;, &#8220;
<dd><Label>公共场所</label></dd>
<p>&#8220;, &#8220;
<dd><Label>其他：</label></dd>
<p>&#8220;, &#8220;&#8221;);<br />
tarr = RandomOrder(Q_Order)<br />
for (var idx = 0; idx </p>
</div>
<div>
<h3>9、您通常在什么时间段写Blog（可多选）：</h3>
<dl>
<dd><label for="C1_9_1_1">零点－早上8点</label> </dd>
<dd><label for="C1_9_1_2">早上8点－中午12：00</label> </dd>
<dd><label for="C1_9_1_3">中午12：00－下午2：00</label> </dd>
<dd><label for="C1_9_1_4">下午2：00－下午6：00</label> </dd>
<dd><label for="C1_9_1_5">下午6：00－晚上9：00</label> </dd>
<dd><label for="C1_9_1_6">晚上9：00－晚上12：00</label> </dd>
<dd><label for="C1_9_1_7">不确定</label> </dd>
</dl>
</div>
<div>
<h3>10、您的Blog的主要内容是（可多选）：</h3>
<dl>
<dd><label for="C1_10_1_9">娱乐休闲（包括影视音乐，娱乐八卦等）</label></dd>
<dd><label for="C1_10_1_3">互联网相关技术和应用</label></dd>
<dd><label for="C1_10_1_2">IT业界</label></dd>
<dd><label for="C1_10_1_1">新闻时政，文史哲等</label></dd>
<dd><label for="C1_10_1_6">商业财经</label></dd>
<dd><label for="C1_10_1_5">感性生活（包括情感记录，生活琐碎，旅行散记等）</label></dd>
<dd><label for="C1_10_1_4">电脑技术（包括硬件软件，数字设计等）</label></dd>
<dd><label for="C1_10_1_7">教育学习</label></dd>
<dd><label for="C1_10_1_8">程序人生</label></dd>
<dd><label for="C1_10_1_10">其他：</label></dd>
</dl>
<p><Label>新闻时政，文史哲等</label></dd>
<p>&#8220;, &#8220;
<dd><Label>IT业界</label></dd>
<p>&#8220;, &#8220;
<dd><Label>互联网相关技术和应用</label></dd>
<p>&#8220;, &#8220;
<dd><Label>电脑技术（包括硬件软件，数字设计等）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>感性生活（包括情感记录，生活琐碎，旅行散记等）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>商业财经</label></dd>
<p>&#8220;, &#8220;
<dd><Label>教育学习</label></dd>
<p>&#8220;, &#8220;
<dd><Label>程序人生</label></dd>
<p>&#8220;, &#8220;
<dd><Label>娱乐休闲（包括影视音乐，娱乐八卦等）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>其他：</label></dd>
<p>&#8220;, &#8220;&#8221;);<br />
tarr = RandomOrder(Q_Order)<br />
for (var idx = 0; idx </p>
</div>
<p>Blogger群体分析</p>
<div>
<h3>以下对Blogger写作动机的描述中，那些比较符合您的实际情况：</h3>
<table cellspacing="1">
<tbody>
<tr>
<td></td>
<td>同意</td>
<td>基本同意</td>
<td>不太同意</td>
<td>不同意</td>
</tr>
<tr>
<td>11、备份自己的资料</td>
<p>            <label for="R1_11_2_1"></p>
<td></td>
<p>            </label><label for="R1_11_2_2"></p>
<td></td>
<p>            </label><label for="R1_11_2_3"></p>
<td></td>
<p>            </label><label for="R1_11_2_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>12、想要与别人分享自己的一些资源</td>
<p>            <label for="R1_11_3_1"></p>
<td></td>
<p>            </label><label for="R1_11_3_2"></p>
<td></td>
<p>            </label><label for="R1_11_3_3"></p>
<td></td>
<p>            </label><label for="R1_11_3_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>13、希望自己的观点获得别人的支持</td>
<p>            <label for="R1_11_4_1"></p>
<td></td>
<p>            </label><label for="R1_11_4_2"></p>
<td></td>
<p>            </label><label for="R1_11_4_3"></p>
<td></td>
<p>            </label><label for="R1_11_4_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>14、通过Blog辅助我的工作/学习</td>
<p>            <label for="R1_11_5_1"></p>
<td></td>
<p>            </label><label for="R1_11_5_2"></p>
<td></td>
<p>            </label><label for="R1_11_5_3"></p>
<td></td>
<p>            </label><label for="R1_11_5_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>15、表达自己情感的一个很好的方式</td>
<p>            <label for="R1_11_6_1"></p>
<td></td>
<p>            </label><label for="R1_11_6_2"></p>
<td></td>
<p>            </label><label for="R1_11_6_3"></p>
<td></td>
<p>            </label><label for="R1_11_6_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>16、与其他Bloggers进行交流</td>
<p>            <label for="R1_11_7_1"></p>
<td></td>
<p>            </label><label for="R1_11_7_2"></p>
<td></td>
<p>            </label><label for="R1_11_7_3"></p>
<td></td>
<p>            </label><label for="R1_11_7_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>17、我希望通过Blog成为一个圈子里的焦点人物</td>
<p>            <label for="R1_11_8_1"></p>
<td></td>
<p>            </label><label for="R1_11_8_2"></p>
<td></td>
<p>            </label><label for="R1_11_8_3"></p>
<td></td>
<p>            </label><label for="R1_11_8_4"></p>
<td></td>
<p>            </label><br />
        </tr>
</tbody>
</table>
</div>
<div>
<h3>以下使用Blog的行为描述，您的实际情况如何：</h3>
<table cellspacing="1">
<tbody>
<tr>
<td></td>
<td>符合</td>
<td>基本符合</td>
<td>不太符合</td>
<td>不符合</td>
</tr>
<tr>
<td>18、我把自己的Blog链接到某个Blog圈子</td>
<p>            <label for="R1_12_2_1"></p>
<td></td>
<p>            </label><label for="R1_12_2_2"></p>
<td></td>
<p>            </label><label for="R1_12_2_3"></p>
<td></td>
<p>            </label><label for="R1_12_2_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>19、我会关注我的Blog的点击率</td>
<p>            <label for="R1_12_3_1"></p>
<td></td>
<p>            </label><label for="R1_12_3_2"></p>
<td></td>
<p>            </label><label for="R1_12_3_3"></p>
<td></td>
<p>            </label><label for="R1_12_3_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>20、我会尽量在我的Blog上呈现更多的链接资源</td>
<p>            <label for="R1_12_4_1"></p>
<td></td>
<p>            </label><label for="R1_12_4_2"></p>
<td></td>
<p>            </label><label for="R1_12_4_3"></p>
<td></td>
<p>            </label><label for="R1_12_4_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>21、我希望我的Blog对别人有意义</td>
<p>            <label for="R1_12_5_1"></p>
<td></td>
<p>            </label><label for="R1_12_5_2"></p>
<td></td>
<p>            </label><label for="R1_12_5_3"></p>
<td></td>
<p>            </label><label for="R1_12_5_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>22、在Blog上我会有所选择、有所保留地表达想法</td>
<p>            <label for="R1_12_6_1"></p>
<td></td>
<p>            </label><label for="R1_12_6_2"></p>
<td></td>
<p>            </label><label for="R1_12_6_3"></p>
<td></td>
<p>            </label><label for="R1_12_6_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>
<div>23、</div>
<div>我会把文章整理得更有条理、写得更生动、增加趣味性</div>
</td>
<p>            <label for="R1_12_7_1"></p>
<td></td>
<p>            </label><label for="R1_12_7_2"></p>
<td></td>
<p>            </label><label for="R1_12_7_3"></p>
<td></td>
<p>            </label><label for="R1_12_7_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>
<div>24、</div>
<div>当我知道有人关注自己的Blog，会产生坚持的动力</div>
</td>
<p>            <label for="R1_12_8_1"></p>
<td></td>
<p>            </label><label for="R1_12_8_2"></p>
<td></td>
<p>            </label><label for="R1_12_8_3"></p>
<td></td>
<p>            </label><label for="R1_12_8_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>25、我在Blog上的写作都尽量地围绕一个大主题</td>
<p>            <label for="R1_12_9_1"></p>
<td></td>
<p>            </label><label for="R1_12_9_2"></p>
<td></td>
<p>            </label><label for="R1_12_9_3"></p>
<td></td>
<p>            </label><label for="R1_12_9_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>
<div>26、</div>
<div>我觉得Blog不仅仅用于抒发情感，更应该记录学习、专业知识方面的内容</div>
</td>
<p>            <label for="R1_12_10_1"></p>
<td></td>
<p>            </label><label for="R1_12_10_2"></p>
<td></td>
<p>            </label><label for="R1_12_10_3"></p>
<td></td>
<p>            </label><label for="R1_12_10_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>27、我希望我的Blog能引起共鸣</td>
<p>            <label for="R1_12_11_1"></p>
<td></td>
<p>            </label><label for="R1_12_11_2"></p>
<td></td>
<p>            </label><label for="R1_12_11_3"></p>
<td></td>
<p>            </label><label for="R1_12_11_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>28、我的Blog原创的贴子多过转载的帖子</td>
<p>            <label for="R1_12_12_1"></p>
<td></td>
<p>            </label><label for="R1_12_12_2"></p>
<td></td>
<p>            </label><label for="R1_12_12_3"></p>
<td></td>
<p>            </label><label for="R1_12_12_4"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>29、我不愿意让无关的人看到我的Blog</td>
<p>            <label for="R1_12_13_1"></p>
<td></td>
<p>            </label><label for="R1_12_13_2"></p>
<td></td>
<p>            </label><label for="R1_12_13_3"></p>
<td></td>
<p>            </label><label for="R1_12_13_4"></p>
<td></td>
<p>            </label><br />
        </tr>
</tbody>
</table>
</div>
<div>
<h3>30、您对您所认识大多数Blogger的信任程度是：<br />
请选择&#8230;<br />
完全不信<br />
不太信任<br />
半信半疑<br />
比较信任<br />
完全信任<br />
不知道/说不准<br />
 </h3>
</div>
<div>
<h3><a name="Q1_14">31、您主要使用那个Blog服务商的Blog服务：</a><br />
请选择&#8230;<br />
微软的 http://space.msn.com<br />
博客公社 http://Blog.Blogchina.com/<br />
中国博客网 http://www.Blogcn.com/<br />
和讯博客 http://Blog.hexun.com/<br />
CSDN Blog http://Blog.csdn.net<br />
Blogbus http://Blogbus.com/<br />
斗牛士 http://www.donews.net/<br />
博客动力 http://www.Blogdriver.com/<br />
天涯博客 http://www.tianyaBlog.com/<br />
歪酷博客 http://www.yculBlog.com/<br />
你的博客网 http://www.yourBlog.org/<br />
敏思博客 http://www.Blogms.com/<br />
天极博客 http://Blog.yesky.com/<br />
BC中文网 http://www.Blog.bcchinese.net/<br />
成长博客 http://Blog.cersp.com/<br />
China-Pub http://Blog.china-pub.com/<br />
ChinaUnix博客馆 http://Blog.chinaunix.net/<br />
财经博客 http://Blog.cnfol.com/<br />
FAR2000建筑部落 http://Blog.far2000.com/<br />
新线博客 http://Blog.freshwired.net/<br />
沪江博客 http://Blog.hjenglish.com/<br />
金山博客 http://Blog.kingsoft.com/<br />
E视网 http://Blog.netandtv.com/Blog/<br />
新浪Blog http://Blog.sina.com.cn/main/<br />
部落格男孩 http://Blogboy.net/<br />
BlogCup http://Blogcup.com/<br />
中国假日 http://china-holiday.com/<br />
我爱博客网 http://www.52Blog.net/<br />
柒零博客 http://www.70Blog.com/<br />
中国教育人博客 http://www.Blog.edu.cn/<br />
Blog.sh http://www.Blog.sh/<br />
中国教育博客网 http://www.Blog8748.com/Blog/<br />
博客中国人 http://www.Blogchinese.com/<br />
博客之家 http://www.Blogerhome.com/<br />
博客之家 http://www.Bloghome.cn/<br />
BlogJava http://www.Blogjava.net/<br />
Bloglong http://www.Bloglong.com/<br />
中华博客 http://www.cnBloger.com/<br />
友多博客 http://www.friendom.com/Blog/<br />
法律博客 http://www.fyfz.cn/<br />
艾幽博客 http://www.iiu.cn/<br />
电影博客 http://www.impdb.com/Blog/<br />
一抹微蓝 http://www.intoBlog.com/<br />
录客中国 http://www.lukecn.com/<br />
我爱我家博客网 http://www.oioj.net/Blog/<br />
SOHO小报 http://www.sohoxiaobao.com/chinese/<br />
土豆网 http://www.toodou.com/<br />
U博客 http://www.uBlog.com.cn/<br />
UC无限概念Blog http://www.ucBlog.com/<br />
北美中文博客 http://www.westca.com/Blogs/<br />
网友博客 http://Blog.wangyou.com/<br />
天天在线博客 http://Blog.116.com.cn/<br />
好博客 http://www.Blogok.net/<br />
毒蘑菇 http://www.domobo.com/<br />
博客园 http://www.cnBlogs.com/<br />
博客生活 http://www.cnweBlog.com/<br />
自己独立的空间<br />
其他的Blog服务商：<br />
  </h3>
</div>
<div>
<div>
<h3><a name="G1_15_16">32、您选择该Blog服务商的原因有（可多选）：</a></h3>
<dl>
<dd><label for="C1_15_1_1">&middot;稳定可靠</label></dd>
<dd><label for="C1_15_1_7">个性化做得很好</label></dd>
<dd><label for="C1_15_1_9">和我有联系的人较多使用</label></dd>
<dd><label for="C1_15_1_10">可以找到较多的新朋友</label></dd>
<dd><label for="C1_15_1_5">界面简洁</label></dd>
<dd><label for="C1_15_1_12">牛人最多</label></dd>
<dd><label for="C1_15_1_4">功能强大</label></dd>
<dd><label for="C1_15_1_13">用久了习惯了不打算换其他的</label></dd>
<dd><label for="C1_15_1_6">没有广告</label></dd>
<dd><label for="C1_15_1_11">人气最旺</label></dd>
<dd><label for="C1_15_1_8">较多的附加功能</label></dd>
<dd><label for="C1_15_1_3">空间大</label></dd>
<dd><label for="C1_15_1_2">&middot;访问速度快</label></dd>
<dd><label for="C1_15_1_14">其他：</label></dd>
</dl>
<p><Label>稳定可靠</label></dd>
<p>&#8220;, &#8220;
<dd><Label>访问速度快</label></dd>
<p>&#8220;, &#8220;
<dd><Label>空间大</label></dd>
<p>&#8220;, &#8220;
<dd><Label>功能强大</label></dd>
<p>&#8220;, &#8220;
<dd><Label>界面简洁</label></dd>
<p>&#8220;, &#8220;
<dd><Label>没有广告</label></dd>
<p>&#8220;, &#8220;
<dd><Label>个性化做得很好</label></dd>
<p>&#8220;, &#8220;
<dd><Label>较多的附加功能</label></dd>
<p>&#8220;, &#8220;
<dd><Label>和我有联系的人较多使用</label></dd>
<p>&#8220;, &#8220;
<dd><Label>可以找到较多的新朋友</label></dd>
<p>&#8220;, &#8220;
<dd><Label>人气最旺</label></dd>
<p>&#8220;, &#8220;
<dd><Label>牛人最多</label></dd>
<p>&#8220;, &#8220;
<dd><Label>用久了习惯了不打算换其他的</label></dd>
<p>&#8220;, &#8220;
<dd><Label>其他：</label></dd>
<p>&#8220;, &#8220;&#8221;);<br />
tarr = RandomOrder(Q_Order)<br />
for (var idx = 0; idx </p>
</div>
<div>
<h3>
<div>
<div>33、</div>
<div>请描述您对您目前所在Blog服务商的满意程度：（从1分－5分，满意度由低到高）</div>
<table cellspacing="1">
<tbody>
<tr>
<td></td>
<td>1分</td>
<td>2分</td>
<td>3分</td>
<td>4分</td>
<td>5分</td>
<td>无法评价</td>
</tr>
<tr>
<td>注册上手容易程度：</td>
<p>            <label for="R1_16_2_1"></p>
<td></td>
<p>            </label><label for="R1_16_2_2"></p>
<td></td>
<p>            </label><label for="R1_16_2_3"></p>
<td></td>
<p>            </label><label for="R1_16_2_4"></p>
<td></td>
<p>            </label><label for="R1_16_2_5"></p>
<td></td>
<p>            </label><label for="R1_16_2_6"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>用户界面友好程度：</td>
<p>            <label for="R1_16_3_1"></p>
<td></td>
<p>            </label><label for="R1_16_3_2"></p>
<td></td>
<p>            </label><label for="R1_16_3_3"></p>
<td></td>
<p>            </label><label for="R1_16_3_4"></p>
<td></td>
<p>            </label><label for="R1_16_3_5"></p>
<td></td>
<p>            </label><label for="R1_16_3_6"></p>
<td>&nbsp;</td>
<p>            </label><br />
        </tr>
<tr>
<td>访问速度：</td>
<p>            <label for="R1_16_4_1"></p>
<td></td>
<p>            </label><label for="R1_16_4_2"></p>
<td></td>
<p>            </label><label for="R1_16_4_3"></p>
<td></td>
<p>            </label><label for="R1_16_4_4"></p>
<td></td>
<p>            </label><label for="R1_16_4_5"></p>
<td></td>
<p>            </label><label for="R1_16_4_6"></p>
<td>&nbsp;</td>
<p>            </label><br />
        </tr>
<tr>
<td>服务的稳定性：</td>
<p>            <label for="R1_16_5_1"></p>
<td></td>
<p>            </label><label for="R1_16_5_2"></p>
<td></td>
<p>            </label><label for="R1_16_5_3"></p>
<td></td>
<p>            </label><label for="R1_16_5_4"></p>
<td></td>
<p>            </label><label for="R1_16_5_5"></p>
<td></td>
<p>            </label><label for="R1_16_5_6"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>个性化：</td>
<p>            <label for="R1_16_6_1"></p>
<td></td>
<p>            </label><label for="R1_16_6_2"></p>
<td></td>
<p>            </label><label for="R1_16_6_3"></p>
<td></td>
<p>            </label><label for="R1_16_6_4"></p>
<td></td>
<p>            </label><label for="R1_16_6_5"></p>
<td></td>
<p>            </label><label for="R1_16_6_6"></p>
<td>&nbsp;</td>
<p>            </label><br />
        </tr>
<tr>
<td>编辑管理功能：</td>
<p>            <label for="R1_16_7_1"></p>
<td></td>
<p>            </label><label for="R1_16_7_2"></p>
<td></td>
<p>            </label><label for="R1_16_7_3"></p>
<td></td>
<p>            </label><label for="R1_16_7_4"></p>
<td></td>
<p>            </label><label for="R1_16_7_5"></p>
<td></td>
<p>            </label><label for="R1_16_7_6"></p>
<td>&nbsp;</td>
<p>            </label><br />
        </tr>
<tr>
<td>附加功能：</td>
<p>            <label for="R1_16_8_1"></p>
<td></td>
<p>            </label><label for="R1_16_8_2"></p>
<td></td>
<p>            </label><label for="R1_16_8_3"></p>
<td></td>
<p>            </label><label for="R1_16_8_4"></p>
<td></td>
<p>            </label><label for="R1_16_8_5"></p>
<td></td>
<p>            </label><label for="R1_16_8_6"></p>
<td>&nbsp;</td>
<p>            </label><br />
        </tr>
<tr>
<td>与其他Bloger交流的方便程度：</td>
<p>            <label for="R1_16_9_1"></p>
<td></td>
<p>            </label><label for="R1_16_9_2"></p>
<td></td>
<p>            </label><label for="R1_16_9_3"></p>
<td></td>
<p>            </label><label for="R1_16_9_4"></p>
<td></td>
<p>            </label><label for="R1_16_9_5"></p>
<td></td>
<p>            </label><label for="R1_16_9_6"></p>
<td>&nbsp;</td>
<p>            </label><br />
        </tr>
<tr>
<td>对Blogger的推广服务：</td>
<p>            <label for="R1_16_10_1"></p>
<td></td>
<p>            </label><label for="R1_16_10_2"></p>
<td></td>
<p>            </label><label for="R1_16_10_3"></p>
<td></td>
<p>            </label><label for="R1_16_10_4"></p>
<td></td>
<p>            </label><label for="R1_16_10_5"></p>
<td></td>
<p>            </label><label for="R1_16_10_6"></p>
<td>&nbsp;</td>
<p>            </label><br />
        </tr>
<tr>
<td>扩展支持：</td>
<p>            <label for="R1_16_11_1"></p>
<td></td>
<p>            </label><label for="R1_16_11_2"></p>
<td></td>
<p>            </label><label for="R1_16_11_3"></p>
<td></td>
<p>            </label><label for="R1_16_11_4"></p>
<td></td>
<p>            </label><label for="R1_16_11_5"></p>
<td></td>
<p>            </label><label for="R1_16_11_6"></p>
<td>&nbsp;</td>
<p>            </label><br />
        </tr>
<tr>
<td>与Blogger的利益分享：</td>
<p>            <label for="R1_16_12_1"></p>
<td></td>
<p>            </label><label for="R1_16_12_2"></p>
<td></td>
<p>            </label><label for="R1_16_12_3"></p>
<td></td>
<p>            </label><label for="R1_16_12_4"></p>
<td></td>
<p>            </label><label for="R1_16_12_5"></p>
<td></td>
<p>            </label><label for="R1_16_12_6"></p>
<td>&nbsp;</td>
<p>            </label><br />
        </tr>
<tr>
<td>总体满意度：</td>
<p>            <label for="R1_16_13_1"></p>
<td></td>
<p>            </label><label for="R1_16_13_2"></p>
<td></td>
<p>            </label><label for="R1_16_13_3"></p>
<td></td>
<p>            </label><label for="R1_16_13_4"></p>
<td></td>
<p>            </label><label for="R1_16_13_5"></p>
<td></td>
<p>            </label><label for="R1_16_13_6"></p>
<td>&nbsp;</td>
<p>            </label><br />
        </tr>
</tbody>
</table>
<div>
<h3><a name="Q1_17">34、关于移动博客，您的了解程度是：</a></h3>
</div>
<p><label for="R1_17_1_1">没听说过</label> </div>
</h3>
</div>
</div>
<div>
<dl>
<dd><label for="R1_17_1_2">仅仅是听说过</label> </dd>
<dd><label for="R1_17_1_3">了解这个东西但是没有用过</label> </dd>
<dd><label for="R1_17_1_4">使用过但是现在已经不用了</label> </dd>
<dd><label for="R1_17_1_5">目前正在使用这项服务</label> </dd>
</dl>
</div>
<div>
<h3>35、你最愿意尝试以下哪些服务？（可多选）</h3>
<dl>
<dd><label for="C1_18_1_2">播客（共享自己的视频和音频文件）</label></dd>
<dd><label for="C1_18_1_1">移动博客（用手机来写网络日志）</label></dd>
<dd><label for="C1_18_1_4">与Blog服务商签约，有偿为该网站写Blog</label></dd>
<dd><label for="C1_18_1_5">购买Blog空间，使得自己的Blog更加个性化和更加稳定，功能更强</label></dd>
<dd><label for="C1_18_1_3">与Blog服务商分享广告带来的利益（在Blogger的空间里投放广告，按点击量付费给Blogger）</label></dd>
<dd><label for="C1_18_1_6">对以上服务都没有兴趣</label></dd>
<dd><label for="C1_18_1_7">其他：</label></dd>
</dl>
<p><Label>移动博客（用手机来写网络日志）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>播客（共享自己的视频和音频文件）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>与Blog服务商分享广告带来的利益（在Blogger的空间里投放广告，按点击量付费给Blogger）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>与Blog服务商签约，有偿为该网站写Blog</label></dd>
<p>&#8220;, &#8220;
<dd><Label>购买Blog空间，使得自己的Blog更加个性化和更加稳定，功能更强</label></dd>
<p>&#8220;, &#8220;
<dd><Label>对以上服务都没有兴趣</label></dd>
<p>&#8220;, &#8220;
<dd><Label>其他：</label></dd>
<p>&#8220;, &#8220;&#8221;);<br />
tarr = RandomOrder(Q_Order)<br />
for (var idx = 0; idx </p>
</div>
</div>
<div><a name="G1_19_24">Blog阅读群体分析</a></p>
<div>
<h3>36、您一般用哪些方式来阅读Blog（可多选）：</h3>
<dl>
<dd><label for="C1_19_1_3">使用RSS阅读软件（比如周伯通，看天下）</label></dd>
<dd><label for="C1_19_1_2">直接的网页浏览</label></dd>
<dd><label for="C1_19_1_1">使用在线RSS阅读器 （比如Bloglines，topim）</label></dd>
<dd><label for="C1_19_1_4">其他：</label></dd>
</dl>
<p><Label>使用在线RSS阅读器 （比如Bloglines，topim）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>直接的网页浏览</label></dd>
<p>&#8220;, &#8220;
<dd><Label>使用RSS阅读软件（比如周伯通，看天下）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>其他：</label></dd>
<p>&#8220;, &#8220;&#8221;);<br />
tarr = RandomOrder(Q_Order)<br />
for (var idx = 0; idx </p>
</div>
<div>
<h3>阅读体验调查</h3>
<table cellspacing="1">
<tbody>
<tr>
<td></td>
<td>符合</td>
<td>比较符合</td>
<td>不确定</td>
<td>不太符合</td>
<td>不符合</td>
</tr>
<tr>
<td>37、我喜欢主题集中的Blog</td>
<p>            <label for="R1_20_2_1"></p>
<td></td>
<p>            </label><label for="R1_20_2_2"></p>
<td></td>
<p>            </label><label for="R1_20_2_3"></p>
<td></td>
<p>            </label><label for="R1_20_2_4"></p>
<td></td>
<p>            </label><label for="R1_20_2_5"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>38、我希望通过阅读Blog可以了解其作者</td>
<p>            <label for="R1_20_3_1"></p>
<td></td>
<p>            </label><label for="R1_20_3_2"></p>
<td></td>
<p>            </label><label for="R1_20_3_3"></p>
<td></td>
<p>            </label><label for="R1_20_3_4"></p>
<td></td>
<p>            </label><label for="R1_20_3_5"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>39、我会经常寻找新的Blog</td>
<p>            <label for="R1_20_4_1"></p>
<td></td>
<p>            </label><label for="R1_20_4_2"></p>
<td></td>
<p>            </label><label for="R1_20_4_3"></p>
<td></td>
<p>            </label><label for="R1_20_4_4"></p>
<td></td>
<p>            </label><label for="R1_20_4_5"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>40、我会定期关注某些Blog</td>
<p>            <label for="R1_20_5_1"></p>
<td></td>
<p>            </label><label for="R1_20_5_2"></p>
<td></td>
<p>            </label><label for="R1_20_5_3"></p>
<td></td>
<p>            </label><label for="R1_20_5_4"></p>
<td></td>
<p>            </label><label for="R1_20_5_5"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>41、多数Blog的内容都比较杂乱无章</td>
<p>            <label for="R1_20_6_1"></p>
<td></td>
<p>            </label><label for="R1_20_6_2"></p>
<td></td>
<p>            </label><label for="R1_20_6_3"></p>
<td></td>
<p>            </label><label for="R1_20_6_4"></p>
<td></td>
<p>            </label><label for="R1_20_6_5"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>42、我喜欢信息量大的团体Blog</td>
<p>            <label for="R1_20_7_1"></p>
<td></td>
<p>            </label><label for="R1_20_7_2"></p>
<td></td>
<p>            </label><label for="R1_20_7_3"></p>
<td></td>
<p>            </label><label for="R1_20_7_4"></p>
<td></td>
<p>            </label><label for="R1_20_7_5"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>43、通过阅读Blog，我经常接触到一些新想法</td>
<p>            <label for="R1_20_8_1"></p>
<td></td>
<p>            </label><label for="R1_20_8_2"></p>
<td></td>
<p>            </label><label for="R1_20_8_3"></p>
<td></td>
<p>            </label><label for="R1_20_8_4"></p>
<td></td>
<p>            </label><label for="R1_20_8_5"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>44、我认为寻找符合自己需求的Blog比较困难</td>
<p>            <label for="R1_20_9_1"></p>
<td></td>
<p>            </label><label for="R1_20_9_2"></p>
<td></td>
<p>            </label><label for="R1_20_9_3"></p>
<td></td>
<p>            </label><label for="R1_20_9_4"></p>
<td></td>
<p>            </label><label for="R1_20_9_5"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>45、我会关注Blog评论中的各种说法</td>
<p>            <label for="R1_20_10_1"></p>
<td></td>
<p>            </label><label for="R1_20_10_2"></p>
<td></td>
<p>            </label><label for="R1_20_10_3"></p>
<td></td>
<p>            </label><label for="R1_20_10_4"></p>
<td></td>
<p>            </label><label for="R1_20_10_5"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>46、我认为Blog是某些主题的最佳信息来源</td>
<p>            <label for="R1_20_11_1"></p>
<td></td>
<p>            </label><label for="R1_20_11_2"></p>
<td></td>
<p>            </label><label for="R1_20_11_3"></p>
<td></td>
<p>            </label><label for="R1_20_11_4"></p>
<td></td>
<p>            </label><label for="R1_20_11_5"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>47、多数Blog的内容都比较肤浅</td>
<p>            <label for="R1_20_12_1"></p>
<td></td>
<p>            </label><label for="R1_20_12_2"></p>
<td></td>
<p>            </label><label for="R1_20_12_3"></p>
<td></td>
<p>            </label><label for="R1_20_12_4"></p>
<td></td>
<p>            </label><label for="R1_20_12_5"></p>
<td></td>
<p>            </label><br />
        </tr>
<tr>
<td>48、我会从Blog的链接上了解更多的相关信息</td>
<p>            <label for="R1_20_13_1"></p>
<td></td>
<p>            </label><label for="R1_20_13_2"></p>
<td></td>
<p>            </label><label for="R1_20_13_3"></p>
<td></td>
<p>            </label><label for="R1_20_13_4"></p>
<td></td>
<p>            </label><label for="R1_20_13_5"></p>
<td></td>
<p>            </label><br />
        </tr>
</tbody>
</table>
</div>
<div>
<h3>49、你经常读什么内容的Blog？（可多选）</h3>
<dl>
<dd><label for="C1_21_1_9">娱乐休闲（包括影视音乐，娱乐八卦等）</label></dd>
<dd><label for="C1_21_1_7">教育学习</label></dd>
<dd><label for="C1_21_1_3">互联网相关技术和应用</label></dd>
<dd><label for="C1_21_1_1">新闻时政，文史哲等</label></dd>
<dd><label for="C1_21_1_8">程序人生</label></dd>
<dd><label for="C1_21_1_5">感性生活（包括情感记录，生活琐碎，旅行散记等）</label></dd>
<dd><label for="C1_21_1_6">商业财经</label></dd>
<dd><label for="C1_21_1_4">电脑技术（包括硬件软件，数字设计等）</label></dd>
<dd><label for="C1_21_1_2">IT业界</label></dd>
<dd><label for="C1_21_1_10">其他：</label></dd>
</dl>
<p><Label>新闻时政，文史哲等</label></dd>
<p>&#8220;, &#8220;
<dd><Label>IT业界</label></dd>
<p>&#8220;, &#8220;
<dd><Label>互联网相关技术和应用</label></dd>
<p>&#8220;, &#8220;
<dd><Label>电脑技术（包括硬件软件，数字设计等）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>感性生活（包括情感记录，生活琐碎，旅行散记等）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>商业财经</label></dd>
<p>&#8220;, &#8220;
<dd><Label>教育学习</label></dd>
<p>&#8220;, &#8220;
<dd><Label>程序人生</label></dd>
<p>&#8220;, &#8220;
<dd><Label>娱乐休闲（包括影视音乐，娱乐八卦等）</label></dd>
<p>&#8220;, &#8220;
<dd><Label>其他：</label></dd>
<p>&#8220;, &#8220;&#8221;);<br />
tarr = RandomOrder(Q_Order)<br />
for (var idx = 0; idx </p>
</div>
<div>
<h3>50、您看Blog的原因是（可多选）：</h3>
<dl>
<dd><label for="C1_22_1_2">更快地获得新闻</label></dd>
<dd><label for="C1_22_1_1">能够从Blog上获得有益的信息</label></dd>
<dd><label for="C1_22_1_4">可以看到不加掩饰的各种观点</label></dd>
<dd><label for="C1_22_1_6">更个人化</label></dd>
<dd><label for="C1_22_1_5">观点的角度更好</label></dd>
<dd><label for="C1_22_1_3">获知最新趋势</label></dd>
<dd><label for="C1_22_1_7">其他：</label></dd>
</dl>
<p><Label>能够从Blog上获得有益的信息</label></dd>
<p>&#8220;, &#8220;
<dd><Label>更快地获得新闻</label></dd>
<p>&#8220;, &#8220;
<dd><Label>获知最新趋势</label></dd>
<p>&#8220;, &#8220;
<dd><Label>可以看到不加掩饰的各种观点</label></dd>
<p>&#8220;, &#8220;
<dd><Label>观点的角度更好</label></dd>
<p>&#8220;, &#8220;
<dd><Label>更个人化</label></dd>
<p>&#8220;, &#8220;
<dd><Label>其他：</label></dd>
<p>&#8220;, &#8220;&#8221;);<br />
tarr = RandomOrder(Q_Order)<br />
for (var idx = 0; idx </p>
</div>
<div>
<h3>51、您获知一个新的Blog的主要渠道是（可多选）：</h3>
<dl>
<dd><label for="C1_23_1_3">朋友推荐</label></dd>
<dd><label for="C1_23_1_1">搜索引擎</label></dd>
<dd><label for="C1_23_1_4">通过BSP（Blog服务提供商）的推荐</label></dd>
<dd><label for="C1_23_1_2">通过一个已知Blog上的链接资源</label></dd>
<dd><label for="C1_23_1_5">其他：</label></dd>
</dl>
<p><Label>搜索引擎</label></dd>
<p>&#8220;, &#8220;
<dd><Label>通过一个已知Blog上的链接资源</label></dd>
<p>&#8220;, &#8220;
<dd><Label>朋友推荐</label></dd>
<p>&#8220;, &#8220;
<dd><Label>通过BSP（Blog服务提供商）的推荐</label></dd>
<p>&#8220;, &#8220;
<dd><Label>其他：</label></dd>
<p>&#8220;, &#8220;&#8221;);<br />
tarr = RandomOrder(Q_Order)<br />
for (var idx = 0; idx </p>
</div>
<div>
<h3>52、对于Blog上的网络广告，以下描述，符合您的有（可多选）：</h3>
<dl>
<dd><label for="C1_24_1_2">如果Blog中的广告与Blog内容相关，我会点击</label></dd>
<dd><label for="C1_24_1_4">Blog中的广告影响了我的消费行为</label></dd>
<dd><label for="C1_24_1_3">如果广告形式新颖，我会点击</label></dd>
<dd><label for="C1_24_1_1">从来不去点击过Blog中的广告 </label></dd>
<dd><label for="C1_24_1_5">Blog中的广告和其他地方的广告没什么区别</label></dd>
<dd><label for="C1_24_1_6">拒绝回答/不清楚</label></dd>
</dl>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/211/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Eclipse 3.1试用</title>
		<link>http://welog.org/blog/210</link>
		<comments>http://welog.org/blog/210#comments</comments>
		<pubDate>Fri, 01 Jul 2005 06:50:09 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/eclipse-31%e8%af%95%e7%94%a8/</guid>
		<description><![CDATA[以下都是对Eclipse3.1新特性的摘要，可以看出Eclipse3.1的发布对于整个Java开源社区影响都非常巨大。特别是RCP，伴随着J2SE1.5和新的SWT，Java是否能够重新回到桌面上来？ Eclipse3.1中最重要的一个特性是：对J2SE5.0的全面支持，比如对泛型，新的注释（@Override,@interface等），enum类型，auto-boxing，新的for循环（类似于C#中的foreach）等的支持。这种支持是全方位的，包括底层的编译器、用户界面以及代码辅助上&#8230; 以下都是对Eclipse3.1新特性的摘要，可以看出Eclipse3.1的发布对于整个Java开源社区影响都非常巨大。特别是RCP，伴随着J2SE1.5和新的SWT，Java是否能够重新回到桌面上来？ Eclipse3.1中最重要的一个特性是：对J2SE5.0的全面支持，比如对泛型，新的注释（@Override,@interface等），enum类型，auto-boxing，新的for循环（类似于C#中的foreach）等的支持。这种支持是全方位的，包括底层的编译器、用户界面以及代码辅助上面都得以体现。 &#160;　　并且在对重构的支持上更加完美： &#160;　　比如对在array上的for循环重构为J2SE5.0中的新的for循环形式： 　　第二个特性是：对Ant的更好支持，包括：支持最新版本的Ant，以及一个Ant脚本调试器（如下图所示），以及改善了的编辑器。 　 　第三个特性是：Eclipse3.1将比以前的版本运行的更快并占用更少的资源。这无疑对于Javaer来说是个非常振奋人心的消息。 &#160;　　第四个特性：RCP（Rich Client Platform）。Eclipse3.1中的RCP最大的变化是一组用于创建，构造，部署RCP应用程序的向导和编辑器。使用RCP Delta Pack能够一次性创建所支持的所有平台的可部署包。如下图： 　　在Eclipse3.1中改善并增强了的UI的功能及外观。除此之外，另一个变化是SWT的图像，在Eclipse3.1中支持alpha-blending（alpha混合）, anti-aliasing（反锯齿）, paths for geometric shapes and lines, transformations，如下图：　　 第四个特性是：更多的新的插件将大大丰富Eclipse平台。 &#160;　　在Eclipse3.1中比较重要的插件有： &#160;　　最大的一个项目就是WTP（Web Tools Platform&#160; web工具平台），它预计在七月底发布新的版本。WTP现在拥有两个子项目，分别是：WST和JST。WST是Web Standard Tools的缩写，它为Web应用程序开发提供了公共的底层基础结构，并且为大量的web语言，如：HTML/XHMTL, CSS, JavaScript, Web services, SQL, XML, XSD, WSDL, 等等提供编辑工具，校验工具以及文档产生工具。同时能够发布、部署、运行以及调试，启动和停止目标服务器上的应用程序。如下图： 　　JST是J2EE Standard Tools的缩写，它是WST对于J2EE应用程序和服务器的扩展，包括一组简化使用J2EE API（JSP, JCA, JDBC, JTA, JMS, JMX, JNDI, Web services）开发的工具。它在WST的基础上支持J2EE servlet引擎和EJB容器，包括：Apache Tomcat, Apache [...]]]></description>
			<content:encoded><![CDATA[<p>以下都是对Eclipse3.1新特性的摘要，可以看出Eclipse3.1的发布对于整个Java开源社区影响都非常巨大。特别是RCP，伴随着J2SE1.5和新的SWT，Java是否能够重新回到桌面上来？</p>
<p>Eclipse3.1中最重要的一个特性是：对J2SE5.0的全面支持，比如对泛型，新的注释（@Override,@interface等），enum类型，auto-boxing，新的for循环（类似于C#中的foreach）等的支持。这种支持是全方位的，包括底层的编译器、用户界面以及代码辅助上&#8230;<br />
<span id="more-210"></span></p>
<p><font>以下都是对Eclipse3.1新特性的摘要，可以看出Eclipse3.1的发布对于整个Java开源社区影响都非常巨大。特别是RCP，伴随着J2SE1.5和新的SWT，Java是否能够重新回到桌面上来？</font></p>
<p><font>Eclipse3.1中最重要的一个特性是</font>：对J2SE5.0的全面支持，比如对泛型，新的注释（@Override,@interface等），enum类型，auto-boxing，新的for循环（类似于C#中的foreach）等的支持。这种支持是全方位的，包括底层的编译器、用户界面以及代码辅助上面都得以体现。 </p>
<p>&nbsp;　　并且在对重构的支持上更加完美： </p>
<p>&nbsp;　　比如对在array上的for循环重构为J2SE5.0中的新的for循环形式： <br />
<img height="177" alt="" src="http://dev.yesky.com/imagelist/05/06/38c92t854j14.jpg"><img height="152" alt="" src="http://dev.yesky.com/imagelist/05/06/1r60y9i6ixv8.jpg"></p>
<p>　　第二个特性是：对Ant的更好支持，包括：支持最新版本的Ant，以及一个Ant脚本调试器（如下图所示），以及改善了的编辑器。</p>
<p><img height="399" alt="" src="http://dev.yesky.com/imagelist/05/06/bg7e877e1n3l.jpg">　</p>
<p>　第三个特性是：Eclipse3.1将比以前的版本运行的更快并占用更少的资源。这无疑对于Javaer来说是个非常振奋人心的消息。 </p>
<p>&nbsp;　　第四个特性：RCP（Rich <a href="http://www.yesky.com/key/1880/161880.html">Client</a> Platform）。Eclipse3.1中的RCP最大的变化是一组用于创建，构造，部署RCP应用程序的向导和编辑器。使用RCP Delta Pack能够一次性创建所支持的所有平台的可部署包。如下图： <br />
<img height="715" alt="" src="http://dev.yesky.com/imagelist/05/06/c9cau0u24h03.jpg"></p>
<p>　　在Eclipse3.1中改善并增强了的UI的功能及外观。除此之外，另一个变化是SWT的图像，在Eclipse3.1中支持alpha-blending（alpha混合）, anti-aliasing（反锯齿）, paths for geometric shapes and lines, transformations，如下图：<img height="652" alt="" src="http://dev.yesky.com/imagelist/05/06/861nbzh9y5gy.jpg">　　</p>
<p>第四个特性是：更多的新的插件将大大丰富Eclipse平台。 </p>
<p>&nbsp;　　在Eclipse3.1中比较重要的插件有： </p>
<p>&nbsp;　　最大的一个项目就是WTP（Web Tools Platform&nbsp; web工具平台），它预计在七月底发布新的版本。WTP现在拥有两个子项目，分别是：WST和JST。WST是Web Standard Tools的缩写，它为Web应用程序开发提供了公共的底层基础结构，并且为大量的web语言，如：HTML/XHMTL, <a href="http://www.yesky.com/key/2720/147720.html">CSS</a>, JavaScript, Web services, <a href="http://www.yesky.com/key/1763/161763.html">SQL</a>, XML, XSD, WSDL, 等等提供编辑工具，校验工具以及文档产生工具。同时能够发布、部署、运行以及调试，启动和停止目标服务器上的应用程序。如下图： <img height="583" alt="" src="http://dev.yesky.com/imagelist/05/06/lnt17cd5h1a9.jpg"></p>
<p>　　JST是J2EE Standard Tools的缩写，它是WST对于J2EE应用程序和服务器的扩展，包括一组简化使用J2EE API（JSP, JCA, JDBC, JTA, JMS, JMX, JNDI, Web services）开发的工具。它在WST的基础上支持J2EE servlet引擎和EJB容器，包括：<a href="http://www.yesky.com/key/2539/147539.html">Apache</a> Tomcat, Apache Geronimo, 和 ObjectWeb Jonas。 </p>
<p>&nbsp;　　另一个重要的项目就是BIRT（<a href="http://www.yesky.com/key/4693/159693.html">Business</a> Intelligence and Reporting Tools），BIRT1.1将于7月发布，基于Eclipse3.1。 </p>
<p>　　还有就是TPTP（Eclipse Test and Performance Tools Platform）项目，也就是Hyades。它在7月将发布4.0版本，此版本将更好的集成JUnit。 </p>
<p>&nbsp;　　VE（Visual Editor）项目，在Eclipse3.1发布后大概两周将发布其1.1版本。 </p>
<p>&nbsp;　　AspectJ项目，新版本的AspectJ将支持J2SE5.0的所有特性，集成AspectWerkz风格的代码，更好的部署（尤其对于基于容器的环境），更快的性能，更广泛的IDE支持。 </p>
<p>&nbsp;　　以上都是对Eclipse3.1新特性的摘要，可以看出Eclipse3.1的发布对于整个Java开源社区影响都非常巨大。特别是RCP，伴随着J2SE1.5和新的SWT，Java是否能够重新回到桌面上来？</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/210/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google文件类型搜索支持的文件类型</title>
		<link>http://welog.org/blog/209</link>
		<comments>http://welog.org/blog/209#comments</comments>
		<pubDate>Fri, 01 Jul 2005 06:38:20 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/google%e6%96%87%e4%bb%b6%e7%b1%bb%e5%9e%8b%e6%90%9c%e7%b4%a2%e6%94%af%e6%8c%81%e7%9a%84%e6%96%87%e4%bb%b6%e7%b1%bb%e5%9e%8b/</guid>
		<description><![CDATA[Google可以针对特定文件类型进行搜索，支持以下几种常用软件的文件格式： Microsoft Office:doc, ppt, xls, rtf,mdb,chm PostScript:ps Flash:swf Corel WordPerfect:wp,wp4,wp5,wp6,wpd,wpg,wpf,wps Lotus 1-2-3:wks,123,12m,wk1,wk2,wk3,wk4 Pdf 更详细的Google使用技巧可以看： http://www.google.com/in&#8230; Google可以针对特定文件类型进行搜索，支持以下几种常用软件的文件格式： Microsoft Office:doc, ppt, xls, rtf,mdb,chm PostScript:ps Flash:swf Corel WordPerfect:wp,wp4,wp5,wp6,wpd,wpg,wpf,wps Lotus 1-2-3:wks,123,12m,wk1,wk2,wk3,wk4 Pdf 更详细的Google使用技巧可以看： http://www.google.com/intl/zh-CN/features.html [中文] http://www.google.com/features.html [英文] 浏览器窗口的实际大小 下表是两种常见浏览器的不同版本、不同窗口大小下的实际窗口尺寸: Browser Resolution Inner width IE 5+ Win 800&#215;600 ~780 IE 5 Mac 800&#215;600 ~748 IE 4.5 Mac 800&#215;600 ~744 Netscape [...]]]></description>
			<content:encoded><![CDATA[<p>Google可以针对特定文件类型进行搜索，支持以下几种常用软件的文件格式：<br />
Microsoft Office:doc, ppt, xls, rtf,mdb,chm<br />
PostScript:ps<br />
Flash:swf<br />
Corel WordPerfect:wp,wp4,wp5,wp6,wpd,wpg,wpf,wps<br />
Lotus 1-2-3:wks,123,12m,wk1,wk2,wk3,wk4<br />
Pdf<br />
更详细的Google使用技巧可以看：</p>
<p>http://www.google.com/in&#8230;</p>
<p><span id="more-209"></span></p>
<p>Google可以针对特定文件类型进行搜索，支持以下几种常用软件的文件格式：<br />
Microsoft Office:doc, ppt, xls, rtf,mdb,chm<br />
PostScript:ps<br />
Flash:swf<br />
Corel WordPerfect:wp,wp4,wp5,wp6,wpd,wpg,wpf,wps<br />
Lotus 1-2-3:wks,123,12m,wk1,wk2,wk3,wk4<br />
Pdf<br />
更详细的Google使用技巧可以看：<br />
<a href="http://www.google.com/intl/zh-CN/features.html">http://www.google.com/intl/zh-CN/features.html</a> [中文]<br />
<a href="http://www.google.com/features.html">http://www.google.com/features.html</a> [英文] 
</p>
<p><font color="#800000" size="5"><strong>浏览器窗口的实际大小</p>
<p></strong></font>下表是两种常见浏览器的不同版本、不同窗口大小下的实际窗口尺寸:<br />
Browser Resolution Inner width <br />
IE 5+ Win 800&#215;600 ~780 <br />
IE 5 Mac 800&#215;600 ~748 <br />
IE 4.5 Mac 800&#215;600 ~744 <br />
Netscape 6+ Win 800&#215;600 ~775 <br />
Netscape 6.2 Mac 800&#215;600 ~763 <br />
IE 5+ Win 1024&#215;768 ~1004 <br />
IE 5 Mac 1024&#215;768 ~972 <br />
IE 4.5 Mac 1024&#215;768 ~968 <br />
Netscape 6+ Win 1024&#215;768 ~1000 <br />
Netscape 6.2 Mac 1024&#215;768 ~987 <br />
下面的页面是一个测试页面，可以测试你的当前屏幕状态下浏览器窗口的大小:<br />
<a href="http://www.jbels-design.com/dwmx2004/browser_innen.htm">http://www.jbels-design.com/dwmx2004/browser_innen.htm</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/209/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>拒绝毒品 珍爱生命!</title>
		<link>http://welog.org/blog/206</link>
		<comments>http://welog.org/blog/206#comments</comments>
		<pubDate>Mon, 27 Jun 2005 07:02:45 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e6%8b%92%e7%bb%9d%e6%af%92%e5%93%81-%e7%8f%8d%e7%88%b1%e7%94%9f%e5%91%bd/</guid>
		<description><![CDATA[据统计，全国因吸毒造成的死亡人数累计达33975名，全国累计报告的89067名艾滋病毒感染者中因静脉注射感染的占41.3%。目前全球吸毒人数已超过2亿，每年有10万人因吸毒死亡、1000万人因吸毒丧失劳动能力。 [FONT-SIZE=5][B][FONT-COLOR=Red]拒绝毒品 珍爱生命![/FONT-COLOR][/B][/FONT-SIZE] 据统计，全国因吸毒造成的死亡人数累计达33975名，全国累计报告的89067名艾滋病毒感染者中因静脉注射感染的占41.3%。目前全球吸毒人数已超过2亿，每年有10万人因吸毒死亡、1000万人因吸毒丧失劳动能力。 [FONT-SIZE=5][B][FONT-COLOR=Red]拒绝毒品 珍爱生命![/FONT-COLOR][/B][/FONT-SIZE] [IMG]upload/xinsrc.jpg[/IMG] [IMG]upload/xinsr1.jpg[/IMG]]]></description>
			<content:encoded><![CDATA[<p>据统计，全国因吸毒造成的死亡人数累计达33975名，全国累计报告的89067名艾滋病毒感染者中因静脉注射感染的占41.3%。目前全球吸毒人数已超过2亿，每年有10万人因吸毒死亡、1000万人因吸毒丧失劳动能力。</p>
<p>[FONT-SIZE=5][B][FONT-COLOR=Red]拒绝毒品 珍爱生命![/FONT-COLOR][/B][/FONT-SIZE]<br />
<span id="more-206"></span><br />
据统计，全国因吸毒造成的死亡人数累计达33975名，全国累计报告的89067名艾滋病毒感染者中因静脉注射感染的占41.3%。目前全球吸毒人数已超过2亿，每年有10万人因吸毒死亡、1000万人因吸毒丧失劳动能力。</p>
<p>[FONT-SIZE=5][B][FONT-COLOR=Red]拒绝毒品 珍爱生命![/FONT-COLOR][/B][/FONT-SIZE]</p>
<p>[IMG]upload/xinsrc.jpg[/IMG]</p>
<p>[IMG]upload/xinsr1.jpg[/IMG]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/206/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如何在网页中嵌入流媒体文件</title>
		<link>http://welog.org/blog/205</link>
		<comments>http://welog.org/blog/205#comments</comments>
		<pubDate>Mon, 27 Jun 2005 06:53:48 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%a6%82%e4%bd%95%e5%9c%a8%e7%bd%91%e9%a1%b5%e4%b8%ad%e5%b5%8c%e5%85%a5%e6%b5%81%e5%aa%92%e4%bd%93%e6%96%87%e4%bb%b6/</guid>
		<description><![CDATA[Media Player两种版本播放器的嵌入代码，有相关说明(默认0为否,-1或1为是) 不过代码还不全面，没有判断浏览器版本的参数，可以参照其它几篇文章里提到的代码。 更多&#8230; 程序代码: &#60;object classid=&#34;clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95&#34; id=&#34;MediaPlayer1&#34; width=&#34;286&#34; height=&#34;225&#34;&#38;g&#8230; Media Player两种版本播放器的嵌入代码，有相关说明(默认0为否,-1或1为是) 不过代码还不全面，没有判断浏览器版本的参数，可以参照其它几篇文章里提到的代码。 更多&#8230; 程序代码: &#60;object classid=&#34;clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95&#34; id=&#34;MediaPlayer1&#34; width=&#34;286&#34; height=&#34;225&#34;&#62; &#60;param name=&#34;AudioStream&#34; value=&#34;-1&#34;&#62; &#60;param name=&#34;AutoSize&#34; value=&#34;-1&#34;&#62; &#60;!&#8211;是否自动调整播放大小&#8211;&#62; &#60;param name=&#34;AutoStart&#34; value=&#34;-1&#34;&#62; &#60;!&#8211;是否自动播放&#8211;&#62; &#60;param name=&#34;AnimationAtStart&#34; value=&#34;-1&#34;&#62; &#60;param name=&#34;AllowScan&#34; value=&#34;-1&#34;&#62; &#60;param name=&#34;AllowChangeDisplaySize&#34; value=&#34;-1&#34;&#62; &#60;param name=&#34;AutoRewind&#34; value=&#34;0&#34;&#62; &#60;param name=&#34;Balance&#34; value=&#34;0&#34;&#62; &#60;!&#8211;左右声道平衡,最左-9640,最右9640&#8211;&#62; &#60;param name=&#34;BaseURL&#34; value&#62; &#60;param name=&#34;BufferingTime&#34; value=&#34;15&#34;&#62; &#60;!&#8211;缓冲时间&#8211;&#62; &#60;param [...]]]></description>
			<content:encoded><![CDATA[<p>Media Player两种版本播放器的嵌入代码，有相关说明(默认0为否,-1或1为是)<br />
不过代码还不全面，没有判断浏览器版本的参数，可以参照其它几篇文章里提到的代码。<br />
更多&#8230;<br />
程序代码:<br />
&lt;object classid=&quot;clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95&quot; id=&quot;MediaPlayer1&quot; width=&quot;286&quot; height=&quot;225&quot;&amp;g&#8230;<br />
<span id="more-205"></span></p>
<p>Media Player两种版本播放器的嵌入代码，有相关说明(默认0为否,-1或1为是)<br />
不过代码还不全面，没有判断浏览器版本的参数，可以参照其它几篇文章里提到的代码。 <br />
更多&#8230;<br />
程序代码:</p>
<p>&lt;object classid=&quot;clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95&quot; id=&quot;MediaPlayer1&quot; width=&quot;286&quot; height=&quot;225&quot;&gt;<br />
&lt;param name=&quot;AudioStream&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;AutoSize&quot; value=&quot;-1&quot;&gt;<br />
&lt;!&#8211;是否自动调整播放大小&#8211;&gt;<br />
&lt;param name=&quot;AutoStart&quot; value=&quot;-1&quot;&gt;<br />
&lt;!&#8211;是否自动播放&#8211;&gt;<br />
&lt;param name=&quot;AnimationAtStart&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;AllowScan&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;AllowChangeDisplaySize&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;AutoRewind&quot; value=&quot;0&quot;&gt;<br />
&lt;param name=&quot;Balance&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;左右声道平衡,最左-9640,最右9640&#8211;&gt;<br />
&lt;param name=&quot;BaseURL&quot; value&gt;<br />
&lt;param name=&quot;BufferingTime&quot; value=&quot;15&quot;&gt;<br />
&lt;!&#8211;缓冲时间&#8211;&gt;<br />
&lt;param name=&quot;CaptioningID&quot; value&gt;<br />
&lt;param name=&quot;ClickToPlay&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;CursorType&quot; value=&quot;0&quot;&gt;<br />
&lt;param name=&quot;CurrentPosition&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;当前播放进度 -1 表示不变,0表示开头 单位是秒,比如10表示从第10秒处开始播放,值必须是-1.0或大于等于0&#8211;&gt;<br />
&lt;param name=&quot;CurrentMarker&quot; value=&quot;0&quot;&gt;<br />
&lt;param name=&quot;DefaultFrame&quot; value&gt;<br />
&lt;param name=&quot;DisplayBackColor&quot; value=&quot;0&quot;&gt;<br />
&lt;param name=&quot;DisplayForeColor&quot; value=&quot;16777215&quot;&gt;<br />
&lt;param name=&quot;DisplayMode&quot; value=&quot;0&quot;&gt;<br />
&lt;param name=&quot;DisplaySize&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;视频1-50%, 0-100%, 2-200%,3-全屏 其它的值作0处理,小数则采用四舍五入然后按前的处理&#8211;&gt;<br />
&lt;param name=&quot;Enabled&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;EnableContextMenu&quot; value=&quot;-1&quot;&gt;<br />
&lt;!-是否用右键弹出菜单控制&#8211;&gt;<br />
&lt;param name=&quot;EnablePositionControls&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;EnableFullScreenControls&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;EnableTracker&quot; value=&quot;-1&quot;&gt;<br />
&lt;!&#8211;是否允许拉动播放进度条到任意地方播放&#8211;&gt;<br />
&lt;param name=&quot;Filename&quot; value=&quot;您的音频地址&quot; valuetype=&quot;ref&quot;&gt;<br />
&lt;!&#8211;播放的文件地址&#8211;&gt;<br />
&lt;param name=&quot;InvokeURLs&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;Language&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;Mute&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;是否静音&#8211;&gt;<br />
&lt;param name=&quot;PlayCount&quot; value=&quot;10&quot;&gt;<br />
&lt;!&#8211;重复播放次数,0为始终重复&#8211;&gt;<br />
&lt;param name=&quot;PreviewMode&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;Rate&quot; value=&quot;1&quot;&gt;<br />
&lt;!&#8211;播放速率控制,1为正常,允许小数&#8211;&gt;<br />
&lt;param name=&quot;SAMIStyle&quot; value&gt;<br />
&lt;!&#8211;SAMI样式&#8211;&gt;<br />
&lt;param name=&quot;SAMILang&quot; value&gt;<br />
&lt;!&#8211;SAMI语言&#8211;&gt;<br />
&lt;param name=&quot;SAMIFilename&quot; value&gt;<br />
&lt;!&#8211;字幕ID&#8211;&gt;<br />
&lt;param name=&quot;SelectionStart&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;SelectionEnd&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;SendOpenStateChangeEvents&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;SendWarningEvents&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;SendErrorEvents&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;SendKeyboardEvents&quot; value=&quot;0&quot;&gt;<br />
&lt;param name=&quot;SendMouseClickEvents&quot; value=&quot;0&quot;&gt;<br />
&lt;param name=&quot;SendMouseMoveEvents&quot; value=&quot;0&quot;&gt;<br />
&lt;param name=&quot;SendPlayStateChangeEvents&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;ShowCaptioning&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;是否显示字幕,为一块黑色,下面会有一大块黑色,一般不显示&#8211;&gt;<br />
&lt;param name=&quot;ShowControls&quot; value=&quot;-1&quot;&gt;<br />
&lt;!&#8211;是否显示控制,比如播放,停止,暂停&#8211;&gt;<br />
&lt;param name=&quot;ShowAudioControls&quot; value=&quot;-1&quot;&gt;<br />
&lt;!&#8211;是否显示音量控制&#8211;&gt;<br />
&lt;param name=&quot;ShowDisplay&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;显示节目信息,比如版权等&#8211;&gt;<br />
&lt;param name=&quot;ShowGotoBar&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;是否启用上下文菜单&#8211;&gt;<br />
&lt;param name=&quot;ShowPositionControls&quot; value=&quot;-1&quot;&gt;<br />
&lt;!&#8211;是否显示往前往后及列表,如果显示一般也都是灰色不可控制&#8211;&gt;<br />
&lt;param name=&quot;ShowStatusBar&quot; value=&quot;-1&quot;&gt;<br />
&lt;!&#8211;当前播放信息,显示是否正在播放,及总播放时间和当前播放到的时间&#8211;&gt;<br />
&lt;param name=&quot;ShowTracker&quot; value=&quot;-1&quot;&gt;<br />
&lt;!&#8211;是否显示当前播放跟踪条,即当前的播放进度条&#8211;&gt;<br />
&lt;param name=&quot;TransparentAtStart&quot; value=&quot;-1&quot;&gt;<br />
&lt;param name=&quot;VideoBorderWidth&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;显示部的宽部,如果小于视频宽,则最小为视频宽,或者加大到指定值,并自动加大高度.此改变只改变四周的黑框大小,不改变视频大小&#8211;&gt;<br />
&lt;param name=&quot;VideoBorderColor&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;显示黑色框的颜色, 为RGB值,比如ffff00为黄色&#8211;&gt;<br />
&lt;param name=&quot;VideoBorder3D&quot; value=&quot;0&quot;&gt;<br />
&lt;param name=&quot;Volume&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;音量大小,负值表示是当前音量的减值,值自动会取绝对值,最大为0,最小为-9640&#8211;&gt;<br />
&lt;param name=&quot;WindowlessVideo&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;如果是0可以允许全屏,否则只能在窗口中查看&#8211;&gt;<br />
&lt;/object&gt;</p>
<p>
上面的这个播放器是老式的那种,新式播放器是在MediaPlayer9.0以后出现的,也就是说只有装了9.0或9.0以上的播放器才能正常使用的.</p>
<p>下面是新式播放器代码,相对以前的来说要简单很多:</p>
<p>程序代码:</p>
<p>&lt;object id=&quot;player&quot; height=&quot;64&quot; width=&quot;260&quot; classid=&quot;CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6&quot;&gt;<br />
&lt;param NAME=&quot;AutoStart&quot; VALUE=&quot;-1&quot;&gt;<br />
&lt;!&#8211;是否自动播放&#8211;&gt;<br />
&lt;param NAME=&quot;Balance&quot; VALUE=&quot;0&quot;&gt;<br />
&lt;!&#8211;调整左右声道平衡,同上面旧播放器代码&#8211;&gt;<br />
&lt;param name=&quot;enabled&quot; value=&quot;-1&quot;&gt;<br />
&lt;!&#8211;播放器是否可人为控制&#8211;&gt;<br />
&lt;param NAME=&quot;EnableContextMenu&quot; VALUE=&quot;-1&quot;&gt;<br />
&lt;!&#8211;是否启用上下文菜单&#8211;&gt;<br />
&lt;param NAME=&quot;url&quot; VALUE=&quot;音频地址&quot;&gt;<br />
&lt;!&#8211;播放的文件地址&#8211;&gt;<br />
&lt;param NAME=&quot;PlayCount&quot; VALUE=&quot;1&quot;&gt;<br />
&lt;!&#8211;播放次数控制,为整数&#8211;&gt;<br />
&lt;param name=&quot;rate&quot; value=&quot;1&quot;&gt;<br />
&lt;!&#8211;播放速率控制,1为正常,允许小数,1.0-2.0&#8211;&gt;<br />
&lt;param name=&quot;currentPosition&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;控件设置:当前位置&#8211;&gt;<br />
&lt;param name=&quot;currentMarker&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;控件设置:当前标记&#8211;&gt;<br />
&lt;param name=&quot;defaultFrame&quot; value=&quot;&quot;&gt;<br />
&lt;!&#8211;显示默认框架&#8211;&gt;<br />
&lt;param name=&quot;invokeURLs&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;脚本命令设置:是否调用URL&#8211;&gt;<br />
&lt;param name=&quot;baseURL&quot; value=&quot;&quot;&gt;<br />
&lt;!&#8211;脚本命令设置:被调用的URL&#8211;&gt;<br />
&lt;param name=&quot;stretchToFit&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;是否按比例伸展&#8211;&gt;<br />
&lt;param name=&quot;volume&quot; value=&quot;50&quot;&gt;<br />
&lt;!&#8211;默认声音大小0%-100%,50则为50%&#8211;&gt;<br />
&lt;param name=&quot;mute&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;是否静音&#8211;&gt;<br />
&lt;param name=&quot;uiMode&quot; value=&quot;mini&quot;&gt;<br />
&lt;!&#8211;播放器显示模式:Full显示全部;mini最简化;None不显示播放控制,只显示视频窗口;invisible全部不显示&#8211;&gt;<br />
&lt;param name=&quot;windowlessVideo&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;如果是0可以允许全屏,否则只能在窗口中查看&#8211;&gt;<br />
&lt;param name=&quot;fullScreen&quot; value=&quot;0&quot;&gt;<br />
&lt;!&#8211;开始播放是否自动全屏&#8211;&gt;<br />
&lt;param name=&quot;enableErrorDialogs&quot; value=&quot;-1&quot;&gt;<br />
&lt;!&#8211;是否启用错误提示报告&#8211;&gt;<br />
&lt;param name=&quot;SAMIStyle&quot; value&gt;<br />
&lt;!&#8211;SAMI样式&#8211;&gt;<br />
&lt;param name=&quot;SAMILang&quot; value&gt;<br />
&lt;!&#8211;SAMI语言&#8211;&gt;<br />
&lt;param name=&quot;SAMIFilename&quot; value&gt;<br />
&lt;!&#8211;字幕ID&#8211;&gt;<br />
&lt;/object&gt;</p>
<p>
总的说来,前后两种播放器有相同的地方也有不同的地方,不过要根据你的实际需要来选择播放器. </p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/205/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>体验Google Maps</title>
		<link>http://welog.org/blog/200</link>
		<comments>http://welog.org/blog/200#comments</comments>
		<pubDate>Wed, 22 Jun 2005 22:31:57 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e4%bd%93%e9%aa%8cgoogle-maps/</guid>
		<description><![CDATA[Google Maps在中国推出有一段时间了,今天试用了一把Google Maps，真的很裤，尤其是那个卫星效果图。 （http://maps.google.com/ 刚进去的时候就是一般的地图，和其他地方的Map没两样，但是点网页右上角的Satellite，立马就感受到不同了！）由于提供的地图服务仅有美国本土，纵观国内搜索引擎，提供地图服务的好像只有中搜，进入Google Maps 总体感觉不错，功能比较强，你能够从地图上很容易的找到怎样从一个地点到另一个地点的路线，能在地图上找附近的旅馆，&#8230; Google Maps在中国推出有一段时间了,今天试用了一把Google Maps，真的很裤，尤其是那个卫星效果图。 （http://maps.google.com/ 刚进去的时候就是一般的地图，和其他地方的Map没两样，但是点网页右上角的Satellite，立马就感受到不同了！）由于提供的地图服务仅有美国本土，纵观国内搜索引擎，提供地图服务的好像只有中搜，进入Google Maps 总体感觉不错，功能比较强，你能够从地图上很容易的找到怎样从一个地点到另一个地点的路线，能在地图上找附近的旅馆，还有一项不错的功能就是能直接搜索出某个区域pizza店的分布。真是太酷了,如果到时候国内的大城市也实现这样的近距离的鸟瞰图到哪去就不用愁着找不着厕所了,哈哈. 此外google的还支持快捷键，可以用+/-等键来调整地图的大小。 让我们一起感受一下!!! [URL=http://maps.google.com/maps?q=shanghai&#38;spn=0.128918,0.187626&#38;t=k&#38;hl=en]上海[/URL]、[URL=http://maps.google.com/maps?q=chongqing&#38;t=k&#38;hl=en]重庆[/URL]、[URL=http://maps.google.com/maps?q=guangzhou&#38;t=k&#38;hl=en]广州[/URL]、[URL=http://maps.google.com/maps?q=shenyang&#38;t=k&#38;hl=en]沈阳[/URL]、 [URL=http://maps.google.com/maps?ll=22.294693,114.172325&#38;spn=0.064459,0.093813&#38;t=k&#38;hl=en]香港[/URL]、[URL=http://maps.google.com/maps?q=taipei&#38;t=k&#38;hl=en]台北[/URL]可以看到街道和房屋。]]></description>
			<content:encoded><![CDATA[<p>Google Maps在中国推出有一段时间了,今天试用了一把Google Maps，真的很裤，尤其是那个卫星效果图。<br />
（http://maps.google.com/ 刚进去的时候就是一般的地图，和其他地方的Map没两样，但是点网页右上角的Satellite，立马就感受到不同了！）由于提供的地图服务仅有美国本土，纵观国内搜索引擎，提供地图服务的好像只有中搜，进入Google Maps 总体感觉不错，功能比较强，你能够从地图上很容易的找到怎样从一个地点到另一个地点的路线，能在地图上找附近的旅馆，&#8230;<br />
<span id="more-200"></span><br />
Google Maps在中国推出有一段时间了,今天试用了一把Google Maps，真的很裤，尤其是那个卫星效果图。<br />
（http://maps.google.com/ 刚进去的时候就是一般的地图，和其他地方的Map没两样，但是点网页右上角的Satellite，立马就感受到不同了！）由于提供的地图服务仅有美国本土，纵观国内搜索引擎，提供地图服务的好像只有中搜，进入Google Maps 总体感觉不错，功能比较强，你能够从地图上很容易的找到怎样从一个地点到另一个地点的路线，能在地图上找附近的旅馆，还有一项不错的功能就是能直接搜索出某个区域pizza店的分布。真是太酷了,如果到时候国内的大城市也实现这样的近距离的鸟瞰图到哪去就不用愁着找不着厕所了,哈哈.<br />
此外google的还支持快捷键，可以用+/-等键来调整地图的大小。</p>
<p>让我们一起感受一下!!!<br />
[URL=http://maps.google.com/maps?q=shanghai&amp;spn=0.128918,0.187626&amp;t=k&amp;hl=en]上海[/URL]、[URL=http://maps.google.com/maps?q=chongqing&amp;t=k&amp;hl=en]重庆[/URL]、[URL=http://maps.google.com/maps?q=guangzhou&amp;t=k&amp;hl=en]广州[/URL]、[URL=http://maps.google.com/maps?q=shenyang&amp;t=k&amp;hl=en]沈阳[/URL]、</p>
<p>[URL=http://maps.google.com/maps?ll=22.294693,114.172325&amp;spn=0.064459,0.093813&amp;t=k&amp;hl=en]香港[/URL]、[URL=http://maps.google.com/maps?q=taipei&amp;t=k&amp;hl=en]台北[/URL]可以看到街道和房屋。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/200/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>造您的个人Blog&#8211;&gt;&gt;&gt;成功品牌</title>
		<link>http://welog.org/blog/199</link>
		<comments>http://welog.org/blog/199#comments</comments>
		<pubDate>Wed, 22 Jun 2005 22:13:32 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e9%80%a0%e6%82%a8%e7%9a%84%e4%b8%aa%e4%ba%bablog-%e6%88%90%e5%8a%9f%e5%93%81%e7%89%8c/</guid>
		<description><![CDATA[俄亥俄州一家名为eStrategyOne的在线营销方案解决公司的经理Rich Ottum，围绕着Business Weblogs的营销策略，给出了十个步骤： 保持常新（Make it New）：你的Blog不仅仅是你的站点，你必须时不时提供新鲜的内容和独特的观点，你必须用心经营深入进去挖掘而不是用常规手段去随意放点什么敷衍读者。 发出自己的声音（Give it Voice）：你的Blog必须有一个坚定的呼声——来自真实个人的声音，对于某个事物你必须有自己的态度；对于你提供的信息和内容&#8230; 俄亥俄州一家名为eStrategyOne的在线营销方案解决公司的经理Rich Ottum，围绕着Business Weblogs的营销策略，给出了十个步骤： 保持常新（Make it New）：你的Blog不仅仅是你的站点，你必须时不时提供新鲜的内容和独特的观点，你必须用心经营深入进去挖掘而不是用常规手段去随意放点什么敷衍读者。 发出自己的声音（Give it Voice）：你的Blog必须有一个坚定的呼声——来自真实个人的声音，对于某个事物你必须有自己的态度；对于你提供的信息和内容，必须做到真实、广博、生动、高品位。 持续更新（Say it Often）：做到至少一个星期更新一次，隔几天最好。首先定位好你Blog聚焦在什么领域，关注于那个领域焦点的东西，能够引起人们注意和最大兴趣的；并且时不时提供独家信息。 尝试互动沟通（Ask for Feedback）：成功的Blog会鼓励读者们参与进去，利用评论机制或者留言反馈，不要害怕来自读者的批评和争辩，观察他们在说些什么，他们想潜在地表达什么，把握他们的喜好，利用他们的声音去更好地调整你的内容，这是个人进行客户关系管理最基本的要求。 分享信息资产（Share the Wealth）：要认识到你的读者来自各行各业，他们有着多样的兴趣，你应该最大化地提供他们所需要的信息，如某一主题的信息链接、相似内容的外部站点链接。 简洁为美（Keep it Simple）：花点时间，为你的Blog设计个简洁美观的页面，放弃那些花俏而不实的设计；真正把页面下载速度放在首位，让你的文本内容易于阅读，你的归类文档易于搜索。必须记住：简洁为美。 武装你的读者（Equip Your Readers）：不是人人都象你那样精通技术，你的读者们也许不知道XML，不知道RSS，不知道Blog延伸出的种种先进技术——你要做的，是用最大众化的语言告诉他们那些技术分别是什么，让他们懂得有哪些好处，提供给他们使用的方法，比如写个说明告诉他们如何利用RSS功能去使用 NewsReader，当然你必须首先告诉他们哪里去下载这个软件。最好能建立邮件列表，让你的读者们通过EMail与你的内容保持同步。 多渠道传播（Promote in Multiple Channels）：不是人人都懂得用Aggregator（新闻聚合器）去获取你Blog的信息，要注意利用传统方法去推广你的Blog，如在T- Shirt上印上你的站点、发送邮件的签名传播、在Blog目录站点登记。 与他人进行对话（Join Another Conversation）：你应该站起来走出去看看其他的Blog，不管你感不感兴趣，尝试与他们进行沟通交流，这样你会开阔视野开放思维——当然你在别人站点上留下的URL也是很好的推广。 要有耐心（Be Patient）：Blog技术并无大的创新之处,RSS也只是“推技术”的一个再利用；许多早先的网络应用者会谨慎地看待Blog和RSS，甚至不屑一顾，你必须以自己的实践去做个好的说服材料，去打动他们融入进来，从而推广了你的Blog和你自己——对你来说，那将是你的个人品牌。]]></description>
			<content:encoded><![CDATA[<p>俄亥俄州一家名为eStrategyOne的在线营销方案解决公司的经理Rich Ottum，围绕着Business Weblogs的营销策略，给出了十个步骤：</p>
<p>保持常新（Make it New）：你的Blog不仅仅是你的站点，你必须时不时提供新鲜的内容和独特的观点，你必须用心经营深入进去挖掘而不是用常规手段去随意放点什么敷衍读者。</p>
<p>发出自己的声音（Give it Voice）：你的Blog必须有一个坚定的呼声——来自真实个人的声音，对于某个事物你必须有自己的态度；对于你提供的信息和内容&#8230;<br />
<span id="more-199"></span><br />
俄亥俄州一家名为eStrategyOne的在线营销方案解决公司的经理Rich Ottum，围绕着Business Weblogs的营销策略，给出了十个步骤：</p>
<p>保持常新（Make it New）：你的Blog不仅仅是你的站点，你必须时不时提供新鲜的内容和独特的观点，你必须用心经营深入进去挖掘而不是用常规手段去随意放点什么敷衍读者。</p>
<p>发出自己的声音（Give it Voice）：你的Blog必须有一个坚定的呼声——来自真实个人的声音，对于某个事物你必须有自己的态度；对于你提供的信息和内容，必须做到真实、广博、生动、高品位。</p>
<p>持续更新（Say it Often）：做到至少一个星期更新一次，隔几天最好。首先定位好你Blog聚焦在什么领域，关注于那个领域焦点的东西，能够引起人们注意和最大兴趣的；并且时不时提供独家信息。</p>
<p>尝试互动沟通（Ask for Feedback）：成功的Blog会鼓励读者们参与进去，利用评论机制或者留言反馈，不要害怕来自读者的批评和争辩，观察他们在说些什么，他们想潜在地表达什么，把握他们的喜好，利用他们的声音去更好地调整你的内容，这是个人进行客户关系管理最基本的要求。 </p>
<p>分享信息资产（Share the Wealth）：要认识到你的读者来自各行各业，他们有着多样的兴趣，你应该最大化地提供他们所需要的信息，如某一主题的信息链接、相似内容的外部站点链接。</p>
<p>简洁为美（Keep it Simple）：花点时间，为你的Blog设计个简洁美观的页面，放弃那些花俏而不实的设计；真正把页面下载速度放在首位，让你的文本内容易于阅读，你的归类文档易于搜索。必须记住：简洁为美。</p>
<p>武装你的读者（Equip Your Readers）：不是人人都象你那样精通技术，你的读者们也许不知道XML，不知道RSS，不知道Blog延伸出的种种先进技术——你要做的，是用最大众化的语言告诉他们那些技术分别是什么，让他们懂得有哪些好处，提供给他们使用的方法，比如写个说明告诉他们如何利用RSS功能去使用 NewsReader，当然你必须首先告诉他们哪里去下载这个软件。最好能建立邮件列表，让你的读者们通过EMail与你的内容保持同步。 </p>
<p>多渠道传播（Promote in Multiple Channels）：不是人人都懂得用Aggregator（新闻聚合器）去获取你Blog的信息，要注意利用传统方法去推广你的Blog，如在T- Shirt上印上你的站点、发送邮件的签名传播、在Blog目录站点登记。 </p>
<p>与他人进行对话（Join Another Conversation）：你应该站起来走出去看看其他的Blog，不管你感不感兴趣，尝试与他们进行沟通交流，这样你会开阔视野开放思维——当然你在别人站点上留下的URL也是很好的推广。</p>
<p>要有耐心（Be Patient）：Blog技术并无大的创新之处,RSS也只是“推技术”的一个再利用；许多早先的网络应用者会谨慎地看待Blog和RSS，甚至不屑一顾，你必须以自己的实践去做个好的说服材料，去打动他们融入进来，从而推广了你的Blog和你自己——对你来说，那将是你的个人品牌。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/199/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>门户与SNS</title>
		<link>http://welog.org/blog/198</link>
		<comments>http://welog.org/blog/198#comments</comments>
		<pubDate>Tue, 21 Jun 2005 21:44:59 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e9%97%a8%e6%88%b7%e4%b8%8esns/</guid>
		<description><![CDATA[近些日子有些晕了，主要是想搞明白：门户网站能够和应该提供给用户什么，更进一步，娱乐互动门户能够和应该提供给用户什么服务。 一、首先把内容细分。文字、图片、音、视频、游戏、活动 二、频道细分。资讯类、互动类、服务类、产品类、活动类 三、我们的工作方式： Step1：寻找一个点，从我们的角度看我们的网站内容。 Step2：研究用户习惯，从用户的角度访问我们网站，发现用户的浏览习惯。 Step3：将我们寻找出的内容，按照用户的习惯推送给用户。 Step4：最终的表现形式。 如果按照Ke&#8230; 近些日子有些晕了，主要是想搞明白：门户网站能够和应该提供给用户什么，更进一步，娱乐互动门户能够和应该提供给用户什么服务。 一、首先把内容细分。文字、图片、音、视频、游戏、活动 二、频道细分。资讯类、互动类、服务类、产品类、活动类 三、我们的工作方式： Step1：寻找一个点，从我们的角度看我们的网站内容。 Step2：研究用户习惯，从用户的角度访问我们网站，发现用户的浏览习惯。 Step3：将我们寻找出的内容，按照用户的习惯推送给用户。 Step4：最终的表现形式。 如果按照Keso的看法，中国的互联网就是娱乐性的互联网。那么什么是娱乐？用户希望如何娱乐？ 其实从另一方面看，娱乐和互动是分不开的，娱乐一定是群众性的活动，只有一群人互动起来才会产生快乐，只有有回应的活动才能使人有满足感，孤零零的一个人能够自己和自己娱乐吗？不能。所以从娱乐牵扯出了互动，从互动就牵扯出了沟通、交流的方式，也就是社交型网络。 这样我们可能搞明白了社交型网络的一些问题，也就搞明白了互动和娱乐的困惑了。]]></description>
			<content:encoded><![CDATA[<p>近些日子有些晕了，主要是想搞明白：门户网站能够和应该提供给用户什么，更进一步，娱乐互动门户能够和应该提供给用户什么服务。<br />
一、首先把内容细分。文字、图片、音、视频、游戏、活动<br />
二、频道细分。资讯类、互动类、服务类、产品类、活动类<br />
三、我们的工作方式：<br />
Step1：寻找一个点，从我们的角度看我们的网站内容。<br />
Step2：研究用户习惯，从用户的角度访问我们网站，发现用户的浏览习惯。<br />
Step3：将我们寻找出的内容，按照用户的习惯推送给用户。<br />
Step4：最终的表现形式。<br />
如果按照Ke&#8230;<br />
<span id="more-198"></span><br />
近些日子有些晕了，主要是想搞明白：门户网站能够和应该提供给用户什么，更进一步，娱乐互动门户能够和应该提供给用户什么服务。<br />
一、首先把内容细分。文字、图片、音、视频、游戏、活动<br />
二、频道细分。资讯类、互动类、服务类、产品类、活动类<br />
三、我们的工作方式：<br />
Step1：寻找一个点，从我们的角度看我们的网站内容。<br />
Step2：研究用户习惯，从用户的角度访问我们网站，发现用户的浏览习惯。<br />
Step3：将我们寻找出的内容，按照用户的习惯推送给用户。<br />
Step4：最终的表现形式。<br />
如果按照Keso的看法，中国的互联网就是娱乐性的互联网。那么什么是娱乐？用户希望如何娱乐？<br />
其实从另一方面看，娱乐和互动是分不开的，娱乐一定是群众性的活动，只有一群人互动起来才会产生快乐，只有有回应的活动才能使人有满足感，孤零零的一个人能够自己和自己娱乐吗？不能。所以从娱乐牵扯出了互动，从互动就牵扯出了沟通、交流的方式，也就是社交型网络。<br />
这样我们可能搞明白了社交型网络的一些问题，也就搞明白了互动和娱乐的困惑了。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/198/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>祝天下的父亲节日快乐!!!</title>
		<link>http://welog.org/blog/197</link>
		<comments>http://welog.org/blog/197#comments</comments>
		<pubDate>Mon, 20 Jun 2005 01:34:26 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e7%a5%9d%e5%a4%a9%e4%b8%8b%e7%9a%84%e7%88%b6%e4%ba%b2%e8%8a%82%e6%97%a5%e5%bf%ab%e4%b9%90/</guid>
		<description><![CDATA[先给全天下的父亲说一声:&#8221;父亲节快乐&#8221;,有点惭愧,今天一整天都在忙着做东西把这样的一个节日都忘记了!打开朋友的日志才突然想起,唉先在这里对老爸说声对不起,我把您给忘了!!!接着就赶紧拿起电话,虽然没有像黄日华在广告里的那样,但一个电话一句问候对他们来说就满足了!!你呢?还记得今天是父亲节吗?如果没有就快抓起你手中的电话吧!!!!!!!爸爸,节日快乐!!!!! 先给全天下的父亲说一声:&#8221;父亲节快乐&#8221;,有点惭愧,今天一整天都在忙着做东西把这样的一个节日都忘记了!打开朋友的日志才突然想起,唉先在这里对老爸说声对不起,我把您给忘了!!!接着就赶紧拿起电话,虽然没有像黄日华在广告里的那样,但一个电话一句问候对他们来说就满足了!!你呢?还记得今天是父亲节吗?如果没有就快抓起你手中的电话吧!!!!!!!爸爸,节日快乐!!!!! [FLASH=400,300,True]upload/nkcr_85wb_father.swf[/FLASH]]]></description>
			<content:encoded><![CDATA[<p>先给全天下的父亲说一声:&#8221;父亲节快乐&#8221;,有点惭愧,今天一整天都在忙着做东西把这样的一个节日都忘记了!打开朋友的日志才突然想起,唉先在这里对老爸说声对不起,我把您给忘了!!!接着就赶紧拿起电话,虽然没有像黄日华在广告里的那样,但一个电话一句问候对他们来说就满足了!!你呢?还记得今天是父亲节吗?如果没有就快抓起你手中的电话吧!!!!!!!爸爸,节日快乐!!!!!<br />
<span id="more-197"></span><br />
先给全天下的父亲说一声:&#8221;父亲节快乐&#8221;,有点惭愧,今天一整天都在忙着做东西把这样的一个节日都忘记了!打开朋友的日志才突然想起,唉先在这里对老爸说声对不起,我把您给忘了!!!接着就赶紧拿起电话,虽然没有像黄日华在广告里的那样,但一个电话一句问候对他们来说就满足了!!你呢?还记得今天是父亲节吗?如果没有就快抓起你手中的电话吧!!!!!!!爸爸,节日快乐!!!!!</p>
<p>[FLASH=400,300,True]upload/nkcr_85wb_father.swf[/FLASH]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/197/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>中青4-1大胜巴拿马</title>
		<link>http://welog.org/blog/195</link>
		<comments>http://welog.org/blog/195#comments</comments>
		<pubDate>Sat, 18 Jun 2005 18:12:21 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e4%b8%ad%e9%9d%924-1%e5%a4%a7%e8%83%9c%e5%b7%b4%e6%8b%bf%e9%a9%ac/</guid>
		<description><![CDATA[荷兰世青赛B组第三轮赛事展开，已锁定小组出线名额的中国队对阵此前两战皆败的巴拿马，中国风暴再现赛场，凭借着周海滨、郜林、蒿俊闵和卢琳的各一粒入球，中国队4-1击败巴拿马。从而3战3胜以小组头名而强势晋级十六强，在另外一场比赛中，乌克兰2-2战平土耳其，以小组第2晋级。土耳其能否以成绩较好的第3名而晋级以及中国队在1／8比赛中的对手都要等到明日其他小组第3轮赛事全部结束后才能揭晓。 荷兰世青赛B组第三轮赛事展开，已锁定小组出线名额的中国队对阵此前两战皆败的巴拿马，中国风暴再现赛场，凭借着周海滨、郜林、蒿俊闵和卢琳的各一粒入球，中国队4-1击败巴拿马。从而3战3胜以小组头名而强势晋级十六强，在另外一场比赛中，乌克兰2-2战平土耳其，以小组第2晋级。土耳其能否以成绩较好的第3名而晋级以及中国队在1／8比赛中的对手都要等到明日其他小组第3轮赛事全部结束后才能揭晓。 [IMG]http://image2.sina.com.cn/ty/n/2005-06-18/U371P6T12D1619646F44DT20050618043010.jpg[/IMG] 问号依然很多。但我们确信，只要中青队上下能继续紧密合作，洞悉和解决自身问题，冷静谨慎，不为胜利冲昏头脑，保持他们令人叹服的精神战斗力，他们完全能在本届世青赛、以及未来征途中创造更多奇迹。 继续前进吧，中青队的小伙子！我们祝福你们能在将来血与火的考验中变得更加强大。我们期盼你们能给中国足球带来更多、更大的惊喜。]]></description>
			<content:encoded><![CDATA[<p>荷兰世青赛B组第三轮赛事展开，已锁定小组出线名额的中国队对阵此前两战皆败的巴拿马，中国风暴再现赛场，凭借着周海滨、郜林、蒿俊闵和卢琳的各一粒入球，中国队4-1击败巴拿马。从而3战3胜以小组头名而强势晋级十六强，在另外一场比赛中，乌克兰2-2战平土耳其，以小组第2晋级。土耳其能否以成绩较好的第3名而晋级以及中国队在1／8比赛中的对手都要等到明日其他小组第3轮赛事全部结束后才能揭晓。<br />
<span id="more-195"></span><br />
荷兰世青赛B组第三轮赛事展开，已锁定小组出线名额的中国队对阵此前两战皆败的巴拿马，中国风暴再现赛场，凭借着周海滨、郜林、蒿俊闵和卢琳的各一粒入球，中国队4-1击败巴拿马。从而3战3胜以小组头名而强势晋级十六强，在另外一场比赛中，乌克兰2-2战平土耳其，以小组第2晋级。土耳其能否以成绩较好的第3名而晋级以及中国队在1／8比赛中的对手都要等到明日其他小组第3轮赛事全部结束后才能揭晓。<br />
[IMG]http://image2.sina.com.cn/ty/n/2005-06-18/U371P6T12D1619646F44DT20050618043010.jpg[/IMG]</p>
<p>  问号依然很多。但我们确信，只要中青队上下能继续紧密合作，洞悉和解决自身问题，冷静谨慎，不为胜利冲昏头脑，保持他们令人叹服的精神战斗力，他们完全能在本届世青赛、以及未来征途中创造更多奇迹。<br />
继续前进吧，中青队的小伙子！我们祝福你们能在将来血与火的考验中变得更加强大。我们期盼你们能给中国足球带来更多、更大的惊喜。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/195/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网站恢复正常访问及这周相关记录！</title>
		<link>http://welog.org/blog/194</link>
		<comments>http://welog.org/blog/194#comments</comments>
		<pubDate>Fri, 17 Jun 2005 19:10:12 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e7%bd%91%e7%ab%99%e6%81%a2%e5%a4%8d%e6%ad%a3%e5%b8%b8%e8%ae%bf%e9%97%ae%e5%8f%8a%e8%bf%99%e5%91%a8%e7%9b%b8%e5%85%b3%e8%ae%b0%e5%bd%95%ef%bc%81/</guid>
		<description><![CDATA[网站关闭了几天，今天终于恢复访问了！ [B][FONT-COLOR=Red]中青队3：2乌克兰 两战两胜昂首晋级16强[/FONT-COLOR][/B] 进球：朱挺31&#8242;陈涛66&#8242;（点）崔鹏74&#8242;沃罗19&#8242;塔利夫69&#8242;（点） 网站关闭了几天，今天终于恢复访问了！ [B][FONT-COLOR=Red]中青队3：2乌克兰 两战两胜昂首晋级16强[/FONT-COLOR][/B] 进球：朱挺31&#8242;陈涛66&#8242;（点）崔鹏74&#8242;沃罗19&#8242;塔利夫69&#8242;（点） [IMG]http://news.xinhuanet.com/sports/2005-06/15/xinsrc_12206021507147502944817.jpg[/IMG] 无论最终结果如何，这支中青队都必将留在人们的记忆中，因为大赛前的动荡和各种传闻，因为他们比赛精彩的过程，更因为他们奉献的美妙入球。昨天与乌克兰的比赛，中国队又奉献了一个世界波，最终，他们以3比2击败乌克兰，以两战全胜的战绩从小组出线。后续的赛事我会进一步跟进，希望青年队给我们带来更多的精彩！！！ 上半场，中国队暴露出的问题是后卫之间空当太大，右后卫和右中卫之间的呼应也不够，正是因为这样的原因，克劳琛在下半场一开始就换下了郑涛。在加强防守的同时，中国队继续着边路进攻，第66分钟，中国队右路传中，球打在阿列夫手上，陈涛罚进点球。 两分钟后，乌克兰队的任意球击中立柱，跟进队员在与谭望嵩发生身体接触后倒地，裁判又吹了一个点球，朱挺因为对判罚有异议，被裁判红牌罚下，阿列夫罚进点球。虽然比对方少一人，但中青队在5分钟之后就再次取得领先，在一次角球战术中，崔鹏在中路抢点头球破门，这个进球给这场伟大的比赛画上了一个完美的句号。 [FONT-COLOR=Red]BLOG[B]更新到1.3版[/B][/FONT-COLOR] 因为我是从1.2升级到1.3,所以有些BUG正在解决，目前感觉1.3版只是多了一个TAG，新版应该还有更大的扩展空间，希望RainbowSoft多摸索下！呵 [FONT-COLOR=Red][B]推荐一个不错的网站！[/B][/FONT-COLOR] [IMG]upload/05-05-01.gif[/IMG] [FONT-COLOR=Red]网站名称 反波 [/FONT-COLOR] [URL=http://www2.antiwave.net/flypigs/pk/listen.php?ff=05-05-01.mp3&#38;nn=反波开播文艺晚会！]反波开播文艺晚会！[/URL] [B]用真实为盾牌抵御虚伪，以自由为利器刺向陈规。 我们坚信，嘈杂纷乱的世界里，有一种声音可以让你触摸欢乐、感知力量。 我们反对传统电波里的一切虚假、束缚、欺骗和铜臭…… 我们口沫横飞说音乐、心领神会说传媒、百无禁忌说段子，我们只说彼此听得懂的真心话……[/B] 由飞猪和平客创办的反波网，以一种播报的形式的传播“播客”,这是个新鲜的事物，会不带来下一个“播客”潮呢，让我们期待吧!]]></description>
			<content:encoded><![CDATA[<p>网站关闭了几天，今天终于恢复访问了！<br />
[B][FONT-COLOR=Red]中青队3：2乌克兰 两战两胜昂首晋级16强[/FONT-COLOR][/B]<br />
进球：朱挺31&#8242;陈涛66&#8242;（点）崔鹏74&#8242;沃罗19&#8242;塔利夫69&#8242;（点）<br />
<span id="more-194"></span><br />
网站关闭了几天，今天终于恢复访问了！<br />
[B][FONT-COLOR=Red]中青队3：2乌克兰 两战两胜昂首晋级16强[/FONT-COLOR][/B]<br />
进球：朱挺31&#8242;陈涛66&#8242;（点）崔鹏74&#8242;沃罗19&#8242;塔利夫69&#8242;（点）<br />
[IMG]http://news.xinhuanet.com/sports/2005-06/15/xinsrc_12206021507147502944817.jpg[/IMG]<br />
无论最终结果如何，这支中青队都必将留在人们的记忆中，因为大赛前的动荡和各种传闻，因为他们比赛精彩的过程，更因为他们奉献的美妙入球。昨天与乌克兰的比赛，中国队又奉献了一个世界波，最终，他们以3比2击败乌克兰，以两战全胜的战绩从小组出线。后续的赛事我会进一步跟进，希望青年队给我们带来更多的精彩！！！<br />
上半场，中国队暴露出的问题是后卫之间空当太大，右后卫和右中卫之间的呼应也不够，正是因为这样的原因，克劳琛在下半场一开始就换下了郑涛。在加强防守的同时，中国队继续着边路进攻，第66分钟，中国队右路传中，球打在阿列夫手上，陈涛罚进点球。<br />
    两分钟后，乌克兰队的任意球击中立柱，跟进队员在与谭望嵩发生身体接触后倒地，裁判又吹了一个点球，朱挺因为对判罚有异议，被裁判红牌罚下，阿列夫罚进点球。虽然比对方少一人，但中青队在5分钟之后就再次取得领先，在一次角球战术中，崔鹏在中路抢点头球破门，这个进球给这场伟大的比赛画上了一个完美的句号。 </p>
<p>[FONT-COLOR=Red]BLOG[B]更新到1.3版[/B][/FONT-COLOR]<br />
因为我是从1.2升级到1.3,所以有些BUG正在解决，目前感觉1.3版只是多了一个TAG，新版应该还有更大的扩展空间，希望RainbowSoft多摸索下！呵</p>
<p>[FONT-COLOR=Red][B]推荐一个不错的网站！[/B][/FONT-COLOR]<br />
[IMG]upload/05-05-01.gif[/IMG]<br />
[FONT-COLOR=Red]网站名称 反波 [/FONT-COLOR]<br />
[URL=http://www2.antiwave.net/flypigs/pk/listen.php?ff=05-05-01.mp3&amp;nn=反波开播文艺晚会！]反波开播文艺晚会！[/URL]</p>
<p>[B]用真实为盾牌抵御虚伪，以自由为利器刺向陈规。<br />
我们坚信，嘈杂纷乱的世界里，有一种声音可以让你触摸欢乐、感知力量。<br />
我们反对传统电波里的一切虚假、束缚、欺骗和铜臭……<br />
我们口沫横飞说音乐、心领神会说传媒、百无禁忌说段子，我们只说彼此听得懂的真心话……[/B]<br />
由飞猪和平客创办的反波网，以一种播报的形式的传播“播客”,这是个新鲜的事物，会不带来下一个“播客”潮呢，让我们期待吧!</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/194/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>世青赛-中国队首战胜土耳其!</title>
		<link>http://welog.org/blog/192</link>
		<comments>http://welog.org/blog/192#comments</comments>
		<pubDate>Sun, 12 Jun 2005 08:43:56 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e4%b8%96%e9%9d%92%e8%b5%9b-%e4%b8%ad%e5%9b%bd%e9%98%9f%e9%a6%96%e6%88%98%e8%83%9c%e5%9c%9f%e8%80%b3%e5%85%b6/</guid>
		<description><![CDATA[等到晚上11.30分，为的就是看中国队在世青赛上的首场表现。输嬴对我来说并不重要，因为国家队给了我无数次的失望后，对于我这个不算是准球迷来说打得像个样就不错了！我想很多球迷朋友应该和我有同样的感受。不过今晚真的让我很意外，意外的并不是2：1嬴了对手，而是这样的进球在中国足球史上没有先例的。高兴谈不上,心情比较舒畅而已.这也是为什么这么晚我打开电脑的原因了&#8230;. 等到晚上11.30分，为的就是看中国队在世青赛上的首场表现。输嬴对我来说并不重要，因为国家队给了我无数次的失望后，对于我这个不算是准球迷来说打得像个样就不错了！我想很多球迷朋友应该和我有同样的感受。不过今晚真的让我很意外，意外的并不是2：1嬴了对手，而是这样的进球在中国足球史上没有先例的。高兴谈不上,心情比较舒畅而已.这也是为什么这么晚我打开电脑的原因了&#8230;. 中国青年队首战对阵本组种子、欧洲亚军土耳其，[URL=http://sports.sina.com.cn/star/tanwangsong/]谭望嵩[/URL]在第22分钟率先入球，下半场大举压上的土耳其在第84分钟将比分扳平，就在人们都以为双方将握手言和的情况下，中国队在补时阶段由两名替补出场的球员完成绝杀，[URL=http://http://sports.sina.com.cn/star/dongfangzhuo/]董方卓[/URL]强突攻门赢得角球，[URL=http://sports.sina.com.cn/star/zhao_xuri/]赵旭日[/URL]外围凌空抽射挂角而入，最终中国青年队2-1胜出！ [B] [FONT-COLOR=Red]中国足球也能在最后时刻给对手致命一击，实数不易啊！为中国队喝彩，为中青队祝福！[/FONT-COLOR][/B] [IMG]http://photocdn.sohu.com/20050612/Img225907226.jpg[/IMG] &#8212;&#8211;]]></description>
			<content:encoded><![CDATA[<p>等到晚上11.30分，为的就是看中国队在世青赛上的首场表现。输嬴对我来说并不重要，因为国家队给了我无数次的失望后，对于我这个不算是准球迷来说打得像个样就不错了！我想很多球迷朋友应该和我有同样的感受。不过今晚真的让我很意外，意外的并不是2：1嬴了对手，而是这样的进球在中国足球史上没有先例的。高兴谈不上,心情比较舒畅而已.这也是为什么这么晚我打开电脑的原因了&#8230;.<br />
<span id="more-192"></span><br />
等到晚上11.30分，为的就是看中国队在世青赛上的首场表现。输嬴对我来说并不重要，因为国家队给了我无数次的失望后，对于我这个不算是准球迷来说打得像个样就不错了！我想很多球迷朋友应该和我有同样的感受。不过今晚真的让我很意外，意外的并不是2：1嬴了对手，而是这样的进球在中国足球史上没有先例的。高兴谈不上,心情比较舒畅而已.这也是为什么这么晚我打开电脑的原因了&#8230;.<br />
中国青年队首战对阵本组种子、欧洲亚军土耳其，[URL=http://sports.sina.com.cn/star/tanwangsong/]谭望嵩[/URL]在第22分钟率先入球，下半场大举压上的土耳其在第84分钟将比分扳平，就在人们都以为双方将握手言和的情况下，中国队在补时阶段由两名替补出场的球员完成绝杀，[URL=http://http://sports.sina.com.cn/star/dongfangzhuo/]董方卓[/URL]强突攻门赢得角球，[URL=http://sports.sina.com.cn/star/zhao_xuri/]赵旭日[/URL]外围凌空抽射挂角而入，最终中国青年队2-1胜出！<br />
[B]<br />
[FONT-COLOR=Red]中国足球也能在最后时刻给对手致命一击，实数不易啊！为中国队喝彩，为中青队祝福！[/FONT-COLOR][/B]<br />
[IMG]http://photocdn.sohu.com/20050612/Img225907226.jpg[/IMG]<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/192/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java中合并XML文档的设计与实现</title>
		<link>http://welog.org/blog/191</link>
		<comments>http://welog.org/blog/191#comments</comments>
		<pubDate>Sun, 12 Jun 2005 02:01:28 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e4%b8%ad%e5%90%88%e5%b9%b6xml%e6%96%87%e6%a1%a3%e7%9a%84%e8%ae%be%e8%ae%a1%e4%b8%8e%e5%ae%9e%e7%8e%b0/</guid>
		<description><![CDATA[　　 在XML应用中，最常用也最实用的莫过于XML文件的读写。由于XML语义比较严格，起始标记必须配对，所以合并XML文档并不像合并普通文件那样简单。在JAVA中，如何合并XML文档，下面介绍一种方法。 　　 在XML应用中，最常用也最实用的莫过于XML文件的读写。由于XML语义比较严格，起始标记必须配对，所以合并XML文档并不像合并普通文件那样简单。在JAVA中，如何合并XML文档，下面介绍一种方法。 [FONT-COLOR=Black][B]设计思想[/B][/FONT-COLOR] 　　 应用javax.xml.parsers包中的解析器解析得到两个XML文件的根元素，再采用递归的方式逐一复制被合并文件的元素。 [IMG]upload/200506111906057570.gif[/IMG] [FONT-COLOR=Black]实现过程[/FONT-COLOR] 　　 为了读写XML文件，需要导入如下JAVA包，&#8221;//&#8221;后为注释说明，笔者的环境是JDK1.3.1，在JDK 1.4.0中测试也通过。 [CODE_LITE]Import java.io. *; //Java基础包，包含各种IO操作 Import java.util. *; //Java基础包，包含各种标准数据结构操作 Import javax.xml.parsers. *; //XML解析器接口 Import org.w3c.dom. *; //XML的DOM实现 import org.apache.crimson.tree.XmlDocument;//写XML文件要用到 Import javax.xml.transform. *; Import javax.xml.transform.dom. *; Import javax.xml.transform.stream. *;[/CODE_LITE] 下面介绍合并XML文档的过程。先说明一下各个方法的作用。方法isMerging()有两个参数（分别是目标XML文件名和被合并的XML文件名），调用JAVA的解析器，获得两个要合并的XML文档的Document结构和根元素，并调用方法duplicate（）和方法write To()。当然，在XML文档的合并过程中，可以加入另外的一些判断条件，比如，当被合并XML文档不存在时，将如何处理，等等。 [CODE_LITE]Private Boolean is Merging (String mainFileName, String subFilename) throws Exception { 　 Boolean isOver [...]]]></description>
			<content:encoded><![CDATA[<p>　　 在XML应用中，最常用也最实用的莫过于XML文件的读写。由于XML语义比较严格，起始标记必须配对，所以合并XML文档并不像合并普通文件那样简单。在JAVA中，如何合并XML文档，下面介绍一种方法。<br />
<span id="more-191"></span><br />
　　 在XML应用中，最常用也最实用的莫过于XML文件的读写。由于XML语义比较严格，起始标记必须配对，所以合并XML文档并不像合并普通文件那样简单。在JAVA中，如何合并XML文档，下面介绍一种方法。</p>
<p>[FONT-COLOR=Black][B]设计思想[/B][/FONT-COLOR]</p>
<p>　　 应用javax.xml.parsers包中的解析器解析得到两个XML文件的根元素，再采用递归的方式逐一复制被合并文件的元素。 </p>
<p>[IMG]upload/200506111906057570.gif[/IMG]</p>
<p>[FONT-COLOR=Black]实现过程[/FONT-COLOR]</p>
<p>　　 为了读写XML文件，需要导入如下JAVA包，&#8221;//&#8221;后为注释说明，笔者的环境是JDK1.3.1，在JDK 1.4.0中测试也通过。</p>
<p>[CODE_LITE]Import java.io. *; //Java基础包，包含各种IO操作<br />
Import java.util. *; //Java基础包，包含各种标准数据结构操作<br />
Import javax.xml.parsers. *; //XML解析器接口<br />
Import org.w3c.dom. *; //XML的DOM实现<br />
import org.apache.crimson.tree.XmlDocument;//写XML文件要用到<br />
Import javax.xml.transform. *;<br />
Import javax.xml.transform.dom. *;<br />
Import javax.xml.transform.stream. *;[/CODE_LITE]</p>
<p>下面介绍合并XML文档的过程。先说明一下各个方法的作用。方法isMerging()有两个参数（分别是目标XML文件名和被合并的XML文件名），调用JAVA的解析器，获得两个要合并的XML文档的Document结构和根元素，并调用方法duplicate（）和方法write To()。当然，在XML文档的合并过程中，可以加入另外的一些判断条件，比如，当被合并XML文档不存在时，将如何处理，等等。</p>
<p>[CODE_LITE]Private Boolean is Merging (String mainFileName, String subFilename) throws Exception {<br />
　 Boolean isOver = false;<br />
　 DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance();<br />
　 Document Builder db = null;<br />
　 Try {<br />
　　 Db = dbf.newDocumentBuilder ();<br />
　 } Catch (ParserConfigurationException pce) {<br />
　　 System.err.println(pce); //出现异常时，输出异常信息<br />
　 }<br />
　 Document doc_main = null,doc_vice= null;<br />
　 //获取两个XML文件的Document。<br />
　 Try {<br />
　　 Doc_main = db.parse (mainFileName);<br />
　　 Doc_vice = db.parse (sub Filename);<br />
　 } Catch (DOM Exception dom) {<br />
　　 System.err.println (dom.getMessage ());<br />
　 } Catch (Exception ioe) {<br />
　　 System.err.println (ioe);<br />
　 }<br />
　 //获取两个文件的根元素。<br />
　 Element root_main = doc_main.getDocumentElement ();<br />
　 Element root_vice = doc_vice.getDocumentElement ();<br />
　 //下面添加被合并文件根节点下的每个元素<br />
　 Novelist message Items = root_vice.getChildNodes ();<br />
　 Int item_number = messageItems.getLength ();<br />
　 //如果去掉根节点下的第一个元素，比如，那么i从3开始。否则i从1开始。<br />
　 For (int i=1; i 0) nodevalue_root = (String) value_son.getNodeValue ();<br />
　 Text valuenode_root = null;<br />
　 If ((nodevalue_root! = null)&amp;&amp;(nodevalue_root.length () &gt;0)) valuenode_root = doc_dup.createTextNode (nodevalue_root);<br />
　 If (valuenode_root! = null &amp;&amp; valuenode_root.getLength () &gt;0) subITEM.appendChild (valuenode_root);<br />
　 //复制子结点<br />
　 Novelist sub_messageItems = son.getChildNodes ();<br />
　 int sub_item_number = sub_messageItems.getLength();<br />
　 if (sub_item_number </p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/191/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MSN扩大免费电邮容量</title>
		<link>http://welog.org/blog/190</link>
		<comments>http://welog.org/blog/190#comments</comments>
		<pubDate>Fri, 10 Jun 2005 00:46:23 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/msn%e6%89%a9%e5%a4%a7%e5%85%8d%e8%b4%b9%e7%94%b5%e9%82%ae%e5%ae%b9%e9%87%8f/</guid>
		<description><![CDATA[出去了一段时间，今天回来打开MSN！发现微软加大了电邮的容量，免费赠送从来都是生意人惯用的手段，如今的网络世界中人们最喜欢的赠品莫过于大容量的免费邮箱。微软的MSN计划将免费邮箱的容量提高到目前容量的125倍，全世界1.7亿Hotmail用户都可以享受这一服务。MSN此据直接GMAIL，不管怎么说二大巨头相斗对我们用户来说应该是件&#8221;好事&#8221;!（这年头,没事我们就偷着乐吧！） 出去了一段时间，今天回来打开MSN！发现微软加大了电邮的容量，由 2MB 增加到 250 MB！免费赠送从来都是生意人惯用的手段，如今的网络世界中人们最喜欢的赠品莫过于大容量的免费邮箱。微软的MSN计划将免费邮箱的容量提高到目前容量的125倍，全世界1.7亿Hotmail用户都可以享受这一服务。MSN此据直接GMAIL，不管怎么说二大巨头相斗对我们用户来说应该是件&#8221;好事&#8221;!（这年头,没事我们就偷着乐吧！） 相关内容如下： [FONT-COLOR=Black]最新消息！您的存储空间将在 8 月末增加 8 月末，我们将会增加您的 MSN® Hotmail® 帐户的存储空间，而您无需为此支付任何费用。这是我们为了改进客户体验而进行的一项措施。下面是关于此免费升级的一些详细信息： * 存储空间由 2MB 增加到 250 MB * 可以更长久地保留更多的电子邮件 * 自动升级 — 您无需进行任何操作 * 附件的大小由 1MB 增加到 10MB * 您可以和亲友共享较大的文件，如照片、音乐和视频文件 我们采取此项措施是为了表达对您的感谢，请在 8 月末查看您增加的存储空间。[/FONT-COLOR]]]></description>
			<content:encoded><![CDATA[<p>出去了一段时间，今天回来打开MSN！发现微软加大了电邮的容量，免费赠送从来都是生意人惯用的手段，如今的网络世界中人们最喜欢的赠品莫过于大容量的免费邮箱。微软的MSN计划将免费邮箱的容量提高到目前容量的125倍，全世界1.7亿Hotmail用户都可以享受这一服务。MSN此据直接GMAIL，不管怎么说二大巨头相斗对我们用户来说应该是件&#8221;好事&#8221;!（这年头,没事我们就偷着乐吧！）<br />
<span id="more-190"></span><br />
出去了一段时间，今天回来打开MSN！发现微软加大了电邮的容量，由 2MB 增加到 250 MB！免费赠送从来都是生意人惯用的手段，如今的网络世界中人们最喜欢的赠品莫过于大容量的免费邮箱。微软的MSN计划将免费邮箱的容量提高到目前容量的125倍，全世界1.7亿Hotmail用户都可以享受这一服务。MSN此据直接GMAIL，不管怎么说二大巨头相斗对我们用户来说应该是件&#8221;好事&#8221;!（这年头,没事我们就偷着乐吧！）</p>
<p>相关内容如下：<br />
[FONT-COLOR=Black]最新消息！您的存储空间将在 8 月末增加<br />
8 月末，我们将会增加您的 MSN® Hotmail® 帐户的存储空间，而您无需为此支付任何费用。这是我们为了改进客户体验而进行的一项措施。下面是关于此免费升级的一些详细信息：<br />
    * 存储空间由 2MB 增加到 250 MB<br />
    * 可以更长久地保留更多的电子邮件<br />
    * 自动升级 — 您无需进行任何操作<br />
    * 附件的大小由 1MB 增加到 10MB<br />
    * 您可以和亲友共享较大的文件，如照片、音乐和视频文件<br />
我们采取此项措施是为了表达对您的感谢，请在 8 月末查看您增加的存储空间。[/FONT-COLOR]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/190/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>谁将被MSN中文门户“谋杀”</title>
		<link>http://welog.org/blog/186</link>
		<comments>http://welog.org/blog/186#comments</comments>
		<pubDate>Thu, 02 Jun 2005 21:30:12 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e8%b0%81%e5%b0%86%e8%a2%abmsn%e4%b8%ad%e6%96%87%e9%97%a8%e6%88%b7%e2%80%9c%e8%b0%8b%e6%9d%80%e2%80%9d/</guid>
		<description><![CDATA[经过一段异常低调的操作之后，5月26日，微软[URL=http://www.msn.com.cn]MSN中文门户[/URL]正式发布。此前，早在2004年11月就曾传出微软将推出MSN中文门户网的消息。 业界惊讶地发现，MSN中文门户没有采用“新浪式”的新闻总汇方式，而是采取与合作伙伴共建内容频道的另类做法。另一方面，MSN也效法腾讯QQ，采用网站与个人即时通讯工具相结合的方法，登陆MSN的用户将“被迫”看到MSN中文网站内容。 经过一段异常低调的操作之后，5月26日，微软[URL=http://www.msn.com.cn]MSN中文门户[/URL]正式发布。此前，早在2004年11月就曾传出微软将推出MSN中文门户网的消息。 业界惊讶地发现，MSN中文门户没有采用“新浪式”的新闻总汇方式，而是采取与合作伙伴共建内容频道的另类做法。另一方面，MSN也效法腾讯QQ，采用网站与个人即时通讯工具相结合的方法，登陆MSN的用户将“被迫”看到MSN中文网站内容。 顺应新的理念并不一定代表成功，MSN中文门户在中国和可能遭到用户上网习惯、“水土不服”和政策面的三重狙击。 “（MSN）用户已经成了微软霸王升级下的绵羊，只有听从或被驱逐，没有其他选择——微软的霸王习气开始毕现，根本不考虑用户感受。”一位资深编辑人士针对MSN强行弹出式页面批评道。 梁春晓认为即时通讯工具MSN是其中文网站的最重要优势，利用MSN推广其网站是必然做法。但此举可能正撞上了国人的逆反心理，其效果很可能适得其反。 此外，MSN中文门户还需要时间尝试真正融入中国。和迅副总裁刘俊指出，大部分人都恐惧过早了，国内从几年前开始恐惧国外门户“入侵”，当时恐惧的对象是雅虎和AOL，但结果这两者在中国都未成大器，暴露出严重的“水土不服”症。不过刘俊也表示，中国人的爱国情节是帮不了国内门户们的。 另外，由于政策限制，MSN中文门户自己不能组织内容，目前其采用中青网作为主要内容供应商，显然有点势单力薄。 由于MSN中文门户现有的种种缺陷，给了中国本土门户们宝贵的时间，[FONT-COLOR=Red]“本土门户一定要有新的认识，与时俱进，才不至于被互联网发展大潮淘汰”[/FONT-COLOR]，梁春晓说。 PS:对手面镜子，只有通过这面镜子才能看出自己的模样，再不改可能就真的晚了哦！ &#8212;&#8211;]]></description>
			<content:encoded><![CDATA[<p>经过一段异常低调的操作之后，5月26日，微软[URL=http://www.msn.com.cn]MSN中文门户[/URL]正式发布。此前，早在2004年11月就曾传出微软将推出MSN中文门户网的消息。<br />
    业界惊讶地发现，MSN中文门户没有采用“新浪式”的新闻总汇方式，而是采取与合作伙伴共建内容频道的另类做法。另一方面，MSN也效法腾讯QQ，采用网站与个人即时通讯工具相结合的方法，登陆MSN的用户将“被迫”看到MSN中文网站内容。<br />
<span id="more-186"></span><br />
经过一段异常低调的操作之后，5月26日，微软[URL=http://www.msn.com.cn]MSN中文门户[/URL]正式发布。此前，早在2004年11月就曾传出微软将推出MSN中文门户网的消息。<br />
    业界惊讶地发现，MSN中文门户没有采用“新浪式”的新闻总汇方式，而是采取与合作伙伴共建内容频道的另类做法。另一方面，MSN也效法腾讯QQ，采用网站与个人即时通讯工具相结合的方法，登陆MSN的用户将“被迫”看到MSN中文网站内容。<br />
    顺应新的理念并不一定代表成功，MSN中文门户在中国和可能遭到用户上网习惯、“水土不服”和政策面的三重狙击。<br />
    “（MSN）用户已经成了微软霸王升级下的绵羊，只有听从或被驱逐，没有其他选择——微软的霸王习气开始毕现，根本不考虑用户感受。”一位资深编辑人士针对MSN强行弹出式页面批评道。<br />
    梁春晓认为即时通讯工具MSN是其中文网站的最重要优势，利用MSN推广其网站是必然做法。但此举可能正撞上了国人的逆反心理，其效果很可能适得其反。<br />
     此外，MSN中文门户还需要时间尝试真正融入中国。和迅副总裁刘俊指出，大部分人都恐惧过早了，国内从几年前开始恐惧国外门户“入侵”，当时恐惧的对象是雅虎和AOL，但结果这两者在中国都未成大器，暴露出严重的“水土不服”症。不过刘俊也表示，中国人的爱国情节是帮不了国内门户们的。<br />
    另外，由于政策限制，MSN中文门户自己不能组织内容，目前其采用中青网作为主要内容供应商，显然有点势单力薄。<br />
    由于MSN中文门户现有的种种缺陷，给了中国本土门户们宝贵的时间，[FONT-COLOR=Red]“本土门户一定要有新的认识，与时俱进，才不至于被互联网发展大潮淘汰”[/FONT-COLOR]，梁春晓说。<br />
PS:对手面镜子，只有通过这面镜子才能看出自己的模样，再不改可能就真的晚了哦！<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/186/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>六月第一天及相关记录</title>
		<link>http://welog.org/blog/185</link>
		<comments>http://welog.org/blog/185#comments</comments>
		<pubDate>Thu, 02 Jun 2005 00:20:04 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%85%ad%e6%9c%88%e7%ac%ac%e4%b8%80%e5%a4%a9%e5%8f%8a%e7%9b%b8%e5%85%b3%e8%ae%b0%e5%bd%95/</guid>
		<description><![CDATA[今天早上起床手机收到了一堆可爱的朋友们快乐的短信,今天六一哦！呵呵，看来这些人都还有着一颗童真的心呀,很难得.在这里祝所有的小朋友节日快乐，并祝所有保持可爱童心的兄弟姐妹们节日快乐。 这段时间因为答辩的事GMAIL有段时间没开了，定的快讯也没时间阅读，哇231条！有得我看的了，唉 Google快讯何时能够输出RSS呢，前几天看到一条报到可以利用Gmail输出的Atom来订阅Google快讯。因为Gmail早已提供了邮件的Feed输出，而最近Gmail的Feed现在也支持邮件中的Lable了&#8230; 今天早上起床手机收到了一堆可爱的朋友们快乐的短信,今天六一哦！呵呵，看来这些人都还有着一颗童真的心呀,很难得.在这里祝所有的小朋友节日快乐，并祝所有保持可爱童心的兄弟姐妹们节日快乐。 Z-BLOG发布了SP3，拿下来升级了，改了些代码，还在完善中。还是很期待Z-BLOG1.4版的发布.rainsoft要努力了！呵呵 这段时间因为答辩的事GMAIL有段时间没开了，定的快讯也没时间阅读，哇231条！有得我看的了，唉 Google快讯何时能够输出RSS呢，前几天看到一条报到可以利用Gmail输出的Atom来订阅Google快讯。因为Gmail早已提供了邮件的Feed输出，而最近Gmail的Feed现在也支持邮件中的Lable了，例如我订阅的Google快讯都放在Label为GoogleAlerts中，那么订阅地址就是：https://gmail.google.com/gmail/feed/atom/GoogleAlerts/ ，这样就可以在RSS阅读软件中订阅浏览了。]]></description>
			<content:encoded><![CDATA[<p>今天早上起床手机收到了一堆可爱的朋友们快乐的短信,今天六一哦！呵呵，看来这些人都还有着一颗童真的心呀,很难得.在这里祝所有的小朋友节日快乐，并祝所有保持可爱童心的兄弟姐妹们节日快乐。<br />
这段时间因为答辩的事GMAIL有段时间没开了，定的快讯也没时间阅读，哇231条！有得我看的了，唉<br />
Google快讯何时能够输出RSS呢，前几天看到一条报到可以利用Gmail输出的Atom来订阅Google快讯。因为Gmail早已提供了邮件的Feed输出，而最近Gmail的Feed现在也支持邮件中的Lable了&#8230;<br />
<span id="more-185"></span><br />
今天早上起床手机收到了一堆可爱的朋友们快乐的短信,今天六一哦！呵呵，看来这些人都还有着一颗童真的心呀,很难得.在这里祝所有的小朋友节日快乐，并祝所有保持可爱童心的兄弟姐妹们节日快乐。<br />
Z-BLOG发布了SP3，拿下来升级了，改了些代码，还在完善中。还是很期待Z-BLOG1.4版的发布.rainsoft要努力了！呵呵<br />
这段时间因为答辩的事GMAIL有段时间没开了，定的快讯也没时间阅读，哇231条！有得我看的了，唉<br />
Google快讯何时能够输出RSS呢，前几天看到一条报到可以利用Gmail输出的Atom来订阅Google快讯。因为Gmail早已提供了邮件的Feed输出，而最近Gmail的Feed现在也支持邮件中的Lable了，例如我订阅的Google快讯都放在Label为GoogleAlerts中，那么订阅地址就是：https://gmail.google.com/gmail/feed/atom/GoogleAlerts/ ，这样就可以在RSS阅读软件中订阅浏览了。</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/185/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>2005我们的记忆!!</title>
		<link>http://welog.org/blog/184</link>
		<comments>http://welog.org/blog/184#comments</comments>
		<pubDate>Tue, 31 May 2005 23:35:57 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/2005%e6%88%91%e4%bb%ac%e7%9a%84%e8%ae%b0%e5%bf%86/</guid>
		<description><![CDATA[[IMG]upload/2005us.jpg[/IMG] 在紧张的答辩结束之后，也宣告我们大学的最后一课告一段落！而接下来的话题是每个大学时代的人都会面对而又伤感的告别！既然话题每个经历过的人都能读懂,这里就不用说得太多了！听着音乐，和着图片应该比伤感的文字再能表达自己不是吗！！这叫有声音有图像的记忆！呵 [IMG]upload/2005us.jpg[/IMG] 在紧张的答辩结束之后，也宣告我们大学的最后一课告一段落！而接下来的话题是每个大学时代的人都会面对而又伤感的告别！既然话题每个经历过的人都能读懂,这里就不用说得太多了！听着音乐，和着图片应该比伤感的文字再能表达自己不是吗！！这叫有声音有图像的记忆！呵 参加了昨晚全班的聚会，第一次这么多人在一起吃饭、喝酒、喝歌、跳舞、K歌，应该说也给自己大学生活留下了美好的回忆！相关图片正在处理中，会尽快传上有趣的花絮~~~~~ [IMG]upload/frand.jpg[/IMG] [B][FONT-COLOR=Black]面对着岁月摆下的筵席，我们相互微笑殷勤地劝酒，仿佛所有没说的爱恋与不舍，都收藏在语句的背后。因为我们都已明白，此去再也没有比手中这一杯更醇更美的酒了。[/FONT-COLOR][/B] [img]upload/fotbll.jpg[/img] 告别了，那熟悉的球场~~~~ [IMG]upload/next.jpg[/IMG] 借用老师的一句祝福词,希望大家“幸福美满，事业有成，爱情多多”呵呵 [FLASH=0,0,True]upload/take.swf[/FLASH]]]></description>
			<content:encoded><![CDATA[<p>[IMG]upload/2005us.jpg[/IMG]<br />
在紧张的答辩结束之后，也宣告我们大学的最后一课告一段落！而接下来的话题是每个大学时代的人都会面对而又伤感的告别！既然话题每个经历过的人都能读懂,这里就不用说得太多了！听着音乐，和着图片应该比伤感的文字再能表达自己不是吗！！这叫有声音有图像的记忆！呵<br />
<span id="more-184"></span><br />
[IMG]upload/2005us.jpg[/IMG]<br />
在紧张的答辩结束之后，也宣告我们大学的最后一课告一段落！而接下来的话题是每个大学时代的人都会面对而又伤感的告别！既然话题每个经历过的人都能读懂,这里就不用说得太多了！听着音乐，和着图片应该比伤感的文字再能表达自己不是吗！！这叫有声音有图像的记忆！呵<br />
参加了昨晚全班的聚会，第一次这么多人在一起吃饭、喝酒、喝歌、跳舞、K歌，应该说也给自己大学生活留下了美好的回忆！相关图片正在处理中，会尽快传上有趣的花絮~~~~~</p>
<p>[IMG]upload/frand.jpg[/IMG]<br />
[B][FONT-COLOR=Black]面对着岁月摆下的筵席，我们相互微笑殷勤地劝酒，仿佛所有没说的爱恋与不舍，都收藏在语句的背后。因为我们都已明白，此去再也没有比手中这一杯更醇更美的酒了。[/FONT-COLOR][/B]</p>
<p>[img]upload/fotbll.jpg[/img]<br />
告别了，那熟悉的球场~~~~</p>
<p>[IMG]upload/next.jpg[/IMG]<br />
借用老师的一句祝福词,希望大家“幸福美满，事业有成，爱情多多”呵呵<br />
[FLASH=0,0,True]upload/take.swf[/FLASH]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/184/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>毕业／目标／理想／工作　我的2005</title>
		<link>http://welog.org/blog/182</link>
		<comments>http://welog.org/blog/182#comments</comments>
		<pubDate>Sat, 28 May 2005 02:33:08 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e6%af%95%e4%b8%9a%ef%bc%8f%e7%9b%ae%e6%a0%87%ef%bc%8f%e7%90%86%e6%83%b3%ef%bc%8f%e5%b7%a5%e4%bd%9c%e3%80%80%e6%88%91%e7%9a%842005/</guid>
		<description><![CDATA[[IMG]upload/fight.jpg[/IMG] 准备完了大学时代的最后一课，等待明天的检验！检验四年学习的成果，想想就快结束的校园生活，有种感慨！！这里先不说了，等我完成最后的任务回来再细说自己２００５下一个目标／理想／平台／．．．．．．&#8230; [IMG]upload/fight.jpg[/IMG] 准备完了大学时代的最后一课，等待明天的检验！检验四年学习的成果，想想就快结束的校园生活，有种感慨！！这里先不说了，等我完成最后的任务回来再细说自己２００５下一个目标／理想／平台／．．．．．． 听着音乐等着我回来吧！哈哈哈 [B][FONT-COLOR=Black]Here with me[/FONT-COLOR][/B] [MEDIA]http://61.144.45.103/file/englishsong1/Here with Me.mp3[/MEDIA] [B][FONT-COLOR=Black]Life for rent[/FONT-COLOR][/B] [MEDIA]http://www.9504.net/music/03-dido_-_life_for_rent.mp3[/MEDIA] [FONT-COLOR=Black][B]White flag[/B][/FONT-COLOR] [MEDIA]http://www.23freed.com/img/mic/WhiteFlag.mp3[/MEDIA] &#8212;&#8211;]]></description>
			<content:encoded><![CDATA[<p>[IMG]upload/fight.jpg[/IMG]<br />
准备完了大学时代的最后一课，等待明天的检验！检验四年学习的成果，想想就快结束的校园生活，有种感慨！！这里先不说了，等我完成最后的任务回来再细说自己２００５下一个目标／理想／平台／．．．．．．&#8230;<br />
<span id="more-182"></span><br />
[IMG]upload/fight.jpg[/IMG]<br />
准备完了大学时代的最后一课，等待明天的检验！检验四年学习的成果，想想就快结束的校园生活，有种感慨！！这里先不说了，等我完成最后的任务回来再细说自己２００５下一个目标／理想／平台／．．．．．．<br />
听着音乐等着我回来吧！哈哈哈</p>
<p>[B][FONT-COLOR=Black]Here with me[/FONT-COLOR][/B]<br />
[MEDIA]http://61.144.45.103/file/englishsong1/Here with Me.mp3[/MEDIA]</p>
<p>[B][FONT-COLOR=Black]Life for rent[/FONT-COLOR][/B]<br />
[MEDIA]http://www.9504.net/music/03-dido_-_life_for_rent.mp3[/MEDIA]</p>
<p>[FONT-COLOR=Black][B]White flag[/B][/FONT-COLOR]<br />
[MEDIA]http://www.23freed.com/img/mic/WhiteFlag.mp3[/MEDIA]</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/182/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>学习java应该去的20个英文网站</title>
		<link>http://welog.org/blog/168</link>
		<comments>http://welog.org/blog/168#comments</comments>
		<pubDate>Thu, 19 May 2005 05:01:33 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%ad%a6%e4%b9%a0java%e5%ba%94%e8%af%a5%e5%8e%bb%e7%9a%8420%e4%b8%aa%e8%8b%b1%e6%96%87%e7%bd%91%e7%ab%99/</guid>
		<description><![CDATA[这些网站的确对学习JAVA有很大帮助，有些还是第一次看到！#呵呵，留存于此有待研究！ http://www.javaalmanac.com Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处. http://www.onjava.com O&#8217;Reilly的Java网站. 每周都有新文章. http://java.sun.com 官方的Java开发者网站 每周都有新文章发表. http://www.developer.com/java 由Gamelan.com 维护的Java技术文章网站. http://www.java.net Sun公司维护的一个Java社区网站. http://www.builder.com Cnet的Builder.com网站 &#8211; 所有的技术文章, 以Java为主. http://www.ibm.com/developerworks/java &#8211; IBM的Developerworks技术网站; 这是其中的Java技术主页. http://www.javaworld.com &#8211; 最早的一个Java站点. 每周更新Java技术文章. http://www.devx.com/java &#8211; DevX维护的一个Java技术文章网站. http://www.fawcette.com/javapro &#8211; JavaPro在线杂志网站. http://www.sys-con.com/java &#8211; Java Developers Journal的在线杂志网站. http://www.javadesktop.org &#8211; 位于Java.net的一个Java桌面技术社区网站. http://www.theserverside.com &#8211; 这是一个讨论所有Java服务器端技术的网站. http://www.jars.com &#8211; 提供Java评论服务. 包括各种framework和应用程序. http://www.jguru.com &#8211; 一个非常棒的采用Q&#38;A形式的Java技术资源社区. http://www.javaranch.com &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>这些网站的确对学习JAVA有很大帮助，有些还是第一次看到！#呵呵，留存于此有待研究！<br />
<span id="more-168"></span></p>
<p>http://www.javaalmanac.com</p>
<p>Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处. </p>
<p>http://www.onjava.com</p>
<p>O&#8217;Reilly的Java网站. 每周都有新文章. </p>
<p>http://java.sun.com</p>
<p>官方的Java开发者网站 每周都有新文章发表. </p>
<p>http://www.developer.com/java</p>
<p>由Gamelan.com 维护的Java技术文章网站. </p>
<p>http://www.java.net</p>
<p>Sun公司维护的一个Java社区网站. </p>
<p>http://www.builder.com</p>
<p>Cnet的Builder.com网站 &#8211; 所有的技术文章, 以Java为主.</p>
<p>http://www.ibm.com/developerworks/java &#8211;<br />
IBM的Developerworks技术网站; 这是其中的Java技术主页. </p>
<p>http://www.javaworld.com &#8211;<br />
最早的一个Java站点. 每周更新Java技术文章. </p>
<p>http://www.devx.com/java &#8211;<br />
DevX维护的一个Java技术文章网站. </p>
<p>http://www.fawcette.com/javapro &#8211; JavaPro在线杂志网站.</p>
<p>http://www.sys-con.com/java &#8211; Java Developers Journal的在线杂志网站. </p>
<p>http://www.javadesktop.org &#8211; 位于Java.net的一个Java桌面技术社区网站. </p>
<p>http://www.theserverside.com &#8211; 这是一个讨论所有Java服务器端技术的网站. </p>
<p>http://www.jars.com &#8211; 提供Java评论服务. 包括各种framework和应用程序. </p>
<p>http://www.jguru.com &#8211; 一个非常棒的采用Q&amp;A形式的Java技术资源社区. </p>
<p>http://www.javaranch.com &#8211; 一个论坛，得到Java问题答案的地方，初学者的好去处。</p>
<p>http://www.ibiblio.org/javafaq/javafaq.html &#8211;<br />
comp.lang.java的FAQ站点 &#8211; 收集了来自comp.lang.java新闻组的问题和答案的分类目录. </p>
<p>http://java.sun.com/docs/books/tutorial/ &#8211;<br />
来自SUN公司的官方Java指南 &#8211; 对于了解几乎所有的java技术特性非常有帮助. </p>
<p>http://www.javablogs.com &#8211; 互联网上最活跃的一个Java Blog网站. </p>
<p>http://java.about.com/ &#8211; 来自About.com的Java新闻和技术文章网站.<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/168/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>为什么Java中继承多数是有害的!</title>
		<link>http://welog.org/blog/163</link>
		<comments>http://welog.org/blog/163#comments</comments>
		<pubDate>Fri, 13 May 2005 06:41:28 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e4%b8%ba%e4%bb%80%e4%b9%88java%e4%b8%ad%e7%bb%a7%e6%89%bf%e5%a4%9a%e6%95%b0%e6%98%af%e6%9c%89%e5%ae%b3%e7%9a%84/</guid>
		<description><![CDATA[[B]继承是对原有功能的扩展，而Stacks相对于ArrayList，功能只有减少而没有增加。而因为无法多重继承不得不使用接口以及面向接口的编程中，重造轮子的事情是屡见不鲜，不得不借助于各种Helper来解决这些重复的代码，但这样做不是破坏类的封装就是把简单的事情变得很复杂。 所以，我认为语言应该要提供一种辅助接口实现的语法.[/B] 大多数好的设计者象躲避瘟疫一样来避免使用实现继承(extends 关系)。实际上80%的代码应该完全用interfaces写，而不是通过extends。“Java设计模式”一书详细阐述了怎样用接口继承代替实现继承。这篇文章描述设计者为什么会这么作。 　　Extends是有害的；也许对于Charles Manson这个级别的不是，但是足够糟糕的它应该在任何可能的时候被避开。“JAVA设计模式”一书花了很大的部分讨论用interface继承代替实现继承。 　　好的设计者在他的代码中，大部分用interface，而不是具体的基类。本文讨论为什么设计者会这样选择，并且也介绍一些基于interface的编程基础。 　　接口（Interface）和类（Class）? 　　一次，我参加一个Java用户组的会议。在会议中，Jams Gosling（Java之父）做发起人讲话。在那令人难忘的Q&#38;A部分中，有人问他：“如果你重新构造Java，你想改变什么？”。“我想抛弃classes”他回答。在笑声平息后，它解释说，真正的问题不是由于class本身，而是实现继承(extends) 关系。接口继承（implements关系）是更好的。你应该尽可能的避免实现继承。 　　失去了灵活性 　　为什么你应该避免实现继承呢？第一个问题是明确的使用具体类名将你固定到特定的实现，给底层的改变增加了不必要的困难。 　　在当前的敏捷编程方法中，核心是并行的设计和开发的概念。在你详细设计程序前，你开始编程。这个技术不同于传统方法的形式&#8212;-传统的方式是设计应该在编码开始前完成&#8212;-但是许多成功的项目已经证明你能够更快速的开发高质量代码，相对于传统的按部就班的方法。但是在并行开发的核心是主张灵活性。你不得不以某一种方式写你的代码以至于最新发现的需求能够尽可能没有痛苦的合并到已有的代码中。 　　胜于实现你也许需要的特征，你只需实现你明确需要的特征，而且适度的对变化的包容。如果你没有这种灵活，并行的开发，那简直不可能。 　　对于Inteface的编程是灵活结构的核心。为了说明为什么，让我们看一下当使用它们的时候，会发生什么。考虑下面的代码： [CODE_LITE] f() { 　LinkedList list = new LinkedList(); 　//&#8230; 　g( list ); } g( LinkedList list ) { 　list.add( &#8230; ); 　g2( list ) } [/CODE_LITE]　　 假设一个对于快速查询的需求被提出，以至于这个LinkedList不能够解决。你需要用HashSet来代替它。在已有代码中，变化不能够局部化，因为你不仅仅需要修改f()也需要修改g()（它带有LinkedList参数），并且还有g()把列表传递给的任何代码。象下面这样重写代码: [CODE_LITE] f() { 　Collection list = new LinkedList(); 　//&#8230; 　g( list ); [...]]]></description>
			<content:encoded><![CDATA[<p>[B]继承是对原有功能的扩展，而Stacks相对于ArrayList，功能只有减少而没有增加。而因为无法多重继承不得不使用接口以及面向接口的编程中，重造轮子的事情是屡见不鲜，不得不借助于各种Helper来解决这些重复的代码，但这样做不是破坏类的封装就是把简单的事情变得很复杂。<br />
  所以，我认为语言应该要提供一种辅助接口实现的语法.[/B]<br />
<span id="more-163"></span><br />
大多数好的设计者象躲避瘟疫一样来避免使用实现继承(extends 关系)。实际上80%的代码应该完全用interfaces写，而不是通过extends。“Java设计模式”一书详细阐述了怎样用接口继承代替实现继承。这篇文章描述设计者为什么会这么作。 </p>
<p>　　Extends是有害的；也许对于Charles Manson这个级别的不是，但是足够糟糕的它应该在任何可能的时候被避开。“JAVA设计模式”一书花了很大的部分讨论用interface继承代替实现继承。 </p>
<p>　　好的设计者在他的代码中，大部分用interface，而不是具体的基类。本文讨论为什么设计者会这样选择，并且也介绍一些基于interface的编程基础。 </p>
<p>　　接口（Interface）和类（Class）? </p>
<p>　　一次，我参加一个Java用户组的会议。在会议中，Jams Gosling（Java之父）做发起人讲话。在那令人难忘的Q&amp;A部分中，有人问他：“如果你重新构造Java，你想改变什么？”。“我想抛弃classes”他回答。在笑声平息后，它解释说，真正的问题不是由于class本身，而是实现继承(extends) 关系。接口继承（implements关系）是更好的。你应该尽可能的避免实现继承。 </p>
<p>　　失去了灵活性 </p>
<p>　　为什么你应该避免实现继承呢？第一个问题是明确的使用具体类名将你固定到特定的实现，给底层的改变增加了不必要的困难。 </p>
<p>　　在当前的敏捷编程方法中，核心是并行的设计和开发的概念。在你详细设计程序前，你开始编程。这个技术不同于传统方法的形式&#8212;-传统的方式是设计应该在编码开始前完成&#8212;-但是许多成功的项目已经证明你能够更快速的开发高质量代码，相对于传统的按部就班的方法。但是在并行开发的核心是主张灵活性。你不得不以某一种方式写你的代码以至于最新发现的需求能够尽可能没有痛苦的合并到已有的代码中。 </p>
<p>　　胜于实现你也许需要的特征，你只需实现你明确需要的特征，而且适度的对变化的包容。如果你没有这种灵活，并行的开发，那简直不可能。 </p>
<p>　　对于Inteface的编程是灵活结构的核心。为了说明为什么，让我们看一下当使用它们的时候，会发生什么。考虑下面的代码：<br />
[CODE_LITE]</p>
<p>f()<br />
{<br />
　LinkedList list = new LinkedList();<br />
　//&#8230;<br />
　g( list );<br />
}</p>
<p>g( LinkedList list )<br />
{<br />
　list.add( &#8230; );<br />
　g2( list )<br />
}<br />
[/CODE_LITE]　　<br />
假设一个对于快速查询的需求被提出，以至于这个LinkedList不能够解决。你需要用HashSet来代替它。在已有代码中，变化不能够局部化，因为你不仅仅需要修改f()也需要修改g()（它带有LinkedList参数），并且还有g()把列表传递给的任何代码。象下面这样重写代码:<br />
[CODE_LITE]</p>
<p>f()<br />
{<br />
　Collection list = new LinkedList();<br />
　//&#8230;<br />
　g( list );<br />
}</p>
<p>g( Collection list )<br />
{<br />
　list.add( &#8230; );<br />
　g2( list )<br />
} </p>
<p>[/CODE_LITE]　　&#8217;<br />
这样修改Linked list成hash，可能只是简单的用new HashSet()代替new LinkedList()。就这样。没有其他的需要修改的地方。 </p>
<p>　　作为另一个例子，比较下面两段代码：<br />
[CODE_LITE]</p>
<p>f()<br />
{<br />
　Collection c = new HashSet();<br />
　//&#8230;<br />
　g( c );<br />
}</p>
<p>g( Collection c )<br />
{<br />
　for( Iterator i = c.iterator(); i.hasNext() )<br />
　　do_something_with( i.next() );<br />
} </p>
<p>　　和 </p>
<p>f2()<br />
{<br />
　Collection c = new HashSet();<br />
　//&#8230;<br />
　g2( c.iterator() );<br />
}</p>
<p>g2( Iterator i )<br />
{<br />
　while( i.hasNext() )<br />
　　do_something_with( i.next() );<br />
} </p>
<p>[/CODE_LITE]　　<br />
   g2()方法现在能够遍历Collection的派生，就像你能够从Map中得到的键值对。事实上，你能够写iterator，它产生数据，代替遍历一个Collection。你能够写iterator，它从测试的框架或者文件中得到信息。这会有巨大的灵活性。 </p>
<p>　　耦合 </p>
<p>　　对于实现继承，一个更加关键的问题是耦合&#8212;令人烦躁的依赖，就是那种程序的一部分对于另一部分的依赖。全局变量提供经典的例子，证明为什么强耦合会引起麻烦。例如，如果你改变全局变量的类型，那么所有用到这个变量的函数也许都被影响，所以所有这些代码都要被检查，变更和重新测试。而且，所有用到这个变量的函数通过这个变量相互耦合。也就是，如果一个变量值在难以使用的时候被改变，一个函数也许就不正确的影响了另一个函数的行为。这个问题显著的隐藏于多线程的程序。 </p>
<p>　　作为一个设计者，你应该努力最小化耦合关系。你不能一并消除耦合，因为从一个类的对象到另一个类的对象的方法调用是一个松耦合的形式。你不可能有一个程序，它没有任何的耦合。然而，你能够通过遵守OO规则，最小化一定的耦合（最重要的是，一个对象的实现应该完全隐藏于使用他的对象）。例如，一个对象的实例变量（不是常量的成员域），应该总是private。我意思是某段时期的，无例外的，不断的。（你能够偶尔有效地使用protected方法，但是protected实例变量是可憎的事）同样的原因你应该不用get/set函数&#8212;他们对于是一个域公用只是使人感到过于复杂的方式（尽管返回修饰的对象而不是基本类型值的访问函数是在某些情况下是由原因的，那种情况下，返回的对象类是一个在设计时的关键抽象）。 </p>
<p>　　这里，我不是书生气。在我自己的工作中，我发现一个直接的相互关系在我OO方法的严格之间，快速代码开发和容易的代码实现。无论什么时候我违反中心的OO原则，如实现隐藏，我结果重写那个代码（一般因为代码是不可调试的）。我没有时间重写代码，所以我遵循那些规则。我关心的完全实用?我对干净的原因没有兴趣。</p>
<p>脆弱的基类问题 </p>
<p>　　现在，让我们应用耦合的概念到继承。在一个用extends的继承实现系统中，派生类是非常紧密的和基类耦合，当且这种紧密的连接是不期望的。设计者已经应用了绰号“脆弱的基类问题”去描述这个行为。基础类被认为是脆弱的是，因为你在看起来安全的情况下修改基类，但是当从派生类继承时，新的行为也许引起派生类出现功能紊乱。你不能通过简单的在隔离下检查基类的方法来分辨基类的变化是安全的；而是你也必须看（和测试）所有派生类。而且，你必须检查所有的代码，它们也用在基类和派生类对象中，因为这个代码也许被新的行为所打破。一个对于基础类的简单变化可能导致整个程序不可操作。 </p>
<p>　　让我们一起检查脆弱的基类和基类耦合的问题。下面的类extends了Java的ArrayList类去使它像一个stack来运转：<br />
[CODE_LITE]<br />
class Stack extends ArrayList<br />
{<br />
　private int stack_pointer = 0;</p>
<p>　public void push( Object article )<br />
　{<br />
　　add( stack_pointer++, article );<br />
　}</p>
<p>　public Object pop()<br />
　{<br />
　　return remove( &#8211;stack_pointer );<br />
　}</p>
<p>　public void push_many( Object[] articles )<br />
　{<br />
　　for( int i = 0; i  high_water_mark )<br />
　　　high_water_mark = current_size;<br />
　　　super.push( article );<br />
　}</p>
<p>　publish Object pop()<br />
　{<br />
　　&#8211;current_size;<br />
　　return super.pop();<br />
　}</p>
<p>　public int maximum_size_so_far()<br />
　{<br />
　　return high_water_mark;<br />
　}<br />
} </p>
<p>[/CODE_LITE]<br />
　　这个新类运行的很好，至少是一段时间。不幸的是，这个代码发掘了一个事实，push_many()通过调用push()来运行。首先，这个细节看起来不是一个坏的选择。它简化了代码，并且你能够得到push()的派生类版本，甚至当Monitorable_stack通过Stack的参考来访问的时候，以至于high_water_mark能够正确的更新。</p>
<p>  [FONT-COLOR=Green]继承是对原有功能的扩展，而Stacks相对于ArrayList，功能只有减少而没有增加。<br />
  而因为无法多重继承不得不使用接口以及面向接口的编程中，重造轮子的事情是屡见不鲜，不得不借助于各种Helper来解决这些重复的代码，但这样做不是破坏类的封装就是把简单的事情变得很复杂。<br />
  所以，我认为语言应该要提供一种辅助接口实现的语法。<br />
  例如类ClassA实现了IA接口，这个接口有一个方法，假设是ExecuteReader，通过这个方法，实际上类A可以变出很多简化操作的方法，例如：ExecuteNonQuery、ExecuteScaler等。<br />
  大家都知道微软的做法把一模一样的代码每个类都写了一份。  </p>
<p>  如果可以提供这样的写法该多好：<br />
  DbCommandExtend implement IDbCommand<br />
  {<br />
   extend IDataReader ExecuteReader();</p>
<p>   object ExecuteScaler()<br />
   {<br />
   using ( IDataReader reader = base.ExecuteReader() )<br />
   {<br />
   if ( reader.Read() )<br />
   return reader[0];<br />
   else<br />
   return null;<br />
   }<br />
   }<br />
  }</p>
<p>  SqlCommand : IDbCommand implement IDbCommandExtend</p>
<p>  像IDataRecord这样的接口，想想吧。。。。[/FONT-COLOR]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/163/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>应网友要求重新配置一下jdk的环境变量</title>
		<link>http://welog.org/blog/159</link>
		<comments>http://welog.org/blog/159#comments</comments>
		<pubDate>Mon, 09 May 2005 05:04:51 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%ba%94%e7%bd%91%e5%8f%8b%e8%a6%81%e6%b1%82%e9%87%8d%e6%96%b0%e9%85%8d%e7%bd%ae%e4%b8%80%e4%b8%8bjdk%e7%9a%84%e7%8e%af%e5%a2%83%e5%8f%98%e9%87%8f/</guid>
		<description><![CDATA[根据网友的要求，重新再发一次JDK在2K，XP下的配置，希望对后来者有所帮助： 环境变量的设置已经测试demo 根据网友的要求，重新再发一次JDK在2K，XP下的配置，希望对后来者有所帮助： 环境变量的设置已经测试demo 关于jdk环境变量的配置： jdk版本：j2sdk1.4.2_04 首先安装jdk于C：盘根目录； 然后右健我的电脑，选择高级&#8212;&#62;环境变量，配置如下： JAVA_HOME=c:\j2sdk1.4.2_04; path=%JAVA_HOME%\bin; classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tool.jar; 确定完成。 测试代码： public class HelloWorld{ public static void main(String args[]){ System.out.println(&#8220;hello world !&#8221;) } } &#8212;&#8211;]]></description>
			<content:encoded><![CDATA[<p>根据网友的要求，重新再发一次JDK在2K，XP下的配置，希望对后来者有所帮助：<br />
环境变量的设置已经测试demo<br />
<span id="more-159"></span><br />
根据网友的要求，重新再发一次JDK在2K，XP下的配置，希望对后来者有所帮助：<br />
环境变量的设置已经测试demo</p>
<p>关于jdk环境变量的配置：</p>
<p>jdk版本：j2sdk1.4.2_04</p>
<p>首先安装jdk于C：盘根目录；</p>
<p>然后右健我的电脑，选择高级&#8212;&gt;环境变量，配置如下：</p>
<p>JAVA_HOME=c:\j2sdk1.4.2_04;</p>
<p>path=%JAVA_HOME%\bin;</p>
<p>classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tool.jar;</p>
<p>确定完成。</p>
<p>测试代码：</p>
<p>public class HelloWorld{<br />
  public static void main(String args[]){<br />
  System.out.println(&#8220;hello world !&#8221;)<br />
  }<br />
}</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/159/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux 平台安装 JDK + Tomcat 及配置环境</title>
		<link>http://welog.org/blog/157</link>
		<comments>http://welog.org/blog/157#comments</comments>
		<pubDate>Sun, 08 May 2005 03:16:22 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/linux-%e5%b9%b3%e5%8f%b0%e5%ae%89%e8%a3%85-jdk-tomcat-%e5%8f%8a%e9%85%8d%e7%bd%ae%e7%8e%af%e5%a2%83/</guid>
		<description><![CDATA[一直都是在WIN下操作写JAVA的,今天在LINUX下试了一下,发现LINUX对JAVA的支持也很到位,配置可能要过于复杂一点&#8230;&#8230;把配置的过程发布一下先!!! 安装JDK 从sun网站上直接下载JDK：http://java.sun.com/j2se/1.4.2/download.html 提供了两个下载： 注意，在下面的安装中，开头带#号的代表root用户在系统终端下的操作，实际操作时不用输入#号。 RPM in self-extracting file (j2s&#8230; 一直都是在WIN下操作写JAVA的,今天在LINUX下试了一下,发现LINUX对JAVA的支持也很到位,配置可能要过于复杂一点&#8230;&#8230;把配置的过程发布一下先!!! 安装JDK 从sun网站上直接下载JDK：http://java.sun.com/j2se/1.4.2/download.html 提供了两个下载： 注意，在下面的安装中，开头带#号的代表root用户在系统终端下的操作，实际操作时不用输入#号。 RPM in self-extracting file (j2sdk-1_4_2_04-linux-i586-rpm.bin, 32.77 MB)这个也是一个自解压文件， 解压后的文件是j2sdk-1_4_2_04-linux-i586-rpm包，执行rpm命令装到linux上就可以了。安装如下： #chmod +x ./j2sdk-1_4_2_04-linux-i586-rpm.bin # ./j2sdk-1_4_2_04-linux-i586-rpm.bin # rpm -ivh j2sdk-1_4_2_04-linux-i586-rpm 安装软件会将JDK自动安装到 /usr/java/j2sdk1.4.2_04目录下。 配置环境变量 修改所有用户的环境变量 # vi /etc/profile 在该文件的最后加入: #Java Environment export JAVA_HOME=/usr/java/j2sdk1.4.2_04 export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin: 为让新配置生效，运行： #source /etc/profile 测试，用文本编辑器写一个java程序来验证，保存在/root目录，文件名：HelloWorld.java，输入如下内容： public class HelloWorld{ [...]]]></description>
			<content:encoded><![CDATA[<p>一直都是在WIN下操作写JAVA的,今天在LINUX下试了一下,发现LINUX对JAVA的支持也很到位,配置可能要过于复杂一点&#8230;&#8230;把配置的过程发布一下先!!!<br />
安装JDK</p>
<p>从sun网站上直接下载JDK：http://java.sun.com/j2se/1.4.2/download.html 提供了两个下载：</p>
<p>注意，在下面的安装中，开头带#号的代表root用户在系统终端下的操作，实际操作时不用输入#号。</p>
<p> RPM in self-extracting file (j2s&#8230;<br />
<span id="more-157"></span><br />
一直都是在WIN下操作写JAVA的,今天在LINUX下试了一下,发现LINUX对JAVA的支持也很到位,配置可能要过于复杂一点&#8230;&#8230;把配置的过程发布一下先!!!<br />
安装JDK</p>
<p>从sun网站上直接下载JDK：http://java.sun.com/j2se/1.4.2/download.html 提供了两个下载：</p>
<p>注意，在下面的安装中，开头带#号的代表root用户在系统终端下的操作，实际操作时不用输入#号。</p>
<p> RPM in self-extracting file (j2sdk-1_4_2_04-linux-i586-rpm.bin, 32.77 MB)这个也是一个自解压文件，<br />
解压后的文件是j2sdk-1_4_2_04-linux-i586-rpm包，执行rpm命令装到linux上就可以了。安装如下：</p>
<p>#chmod +x ./j2sdk-1_4_2_04-linux-i586-rpm.bin<br />
# ./j2sdk-1_4_2_04-linux-i586-rpm.bin<br />
# rpm -ivh j2sdk-1_4_2_04-linux-i586-rpm</p>
<p>安装软件会将JDK自动安装到 /usr/java/j2sdk1.4.2_04目录下。</p>
<p>配置环境变量</p>
<p>修改所有用户的环境变量</p>
<p># vi /etc/profile</p>
<p>在该文件的最后加入:</p>
<p>#Java Environment<br />
export JAVA_HOME=/usr/java/j2sdk1.4.2_04<br />
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib:$JAVA_HOME/jre/lib<br />
export PATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin:</p>
<p>为让新配置生效，运行：</p>
<p>#source /etc/profile</p>
<p>测试，用文本编辑器写一个java程序来验证，保存在/root目录，文件名：HelloWorld.java，输入如下内容：</p>
<p>public class HelloWorld{<br />
   public static void main(String args[]){<br />
     System.out.println(&#8220;Hello，Wrold&#8221;);<br />
   }<br />
}</p>
<p>然后，在终端下执行：</p>
<p>#cd ~<br />
#javac HelloWorld.java<br />
#java HelloWorld</p>
<p>这时如果出现&#8221;Hello,World&#8221;，就说明你的JAVA编译、运行环境搭建好了。</p>
<p>安装Tomcat</p>
<p>我下的安装包是 jakarta-tomcat-5.0.19.tar.gz</p>
<p>#cp jakarta-tomcat-5.0.19.tar.gz /usr        先将文件拷至 /usr下<br />
#cd /usr<br />
#tar xvzf jakarta-tomcat-5.0.19.tar.gz        解压，会在 /usr生成一个jakarta-tomcat-5.0.19文件夹<br />
#ln -s jakarta-tomcat-5.0.19 tomcat          为方便使用，建一符号连接</p>
<p>编辑文件/etc/profile，在最后加入：<br />
export CATALINA_HOME=/usr/tomcat</p>
<p>在CLASSPATH变量中加入：<br />
$CATALINA_HOME/common/lib/servlet-api.jar$CATALINA_HOME/common/lib/jsp-api.jar</p>
<p>为方便使用，在PATH变量中加入：<br />
$CATALINA_HOME/bin</p>
<p>执行#source /etc/profile使配置生效，运行startup.sh启动tomcat</p>
<p>测试，在浏览器中输入：http://192.168.0.111:8080，(其中192.168.0.111是我的IP地址)若出现Tomcat的欢迎页面则安装成功。</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/157/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ICP备案终于注册成功了！庆祝一下！</title>
		<link>http://welog.org/blog/150</link>
		<comments>http://welog.org/blog/150#comments</comments>
		<pubDate>Wed, 27 Apr 2005 20:05:59 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/icp%e5%a4%87%e6%a1%88%e7%bb%88%e4%ba%8e%e6%b3%a8%e5%86%8c%e6%88%90%e5%8a%9f%e4%ba%86%ef%bc%81%e5%ba%86%e7%a5%9d%e4%b8%80%e4%b8%8b%ef%bc%81/</guid>
		<description><![CDATA[ICP备案信息注册都快一个星期了，本来还以为不能通过审核呢！今天打开看了一下终于还是通过了！！庆祝一下！！！ [IMG]upload/icp.JPG[/IMG] ICP备案信息注册都快一个星期了，本来还以为不能通过审核呢！今天打开看了一下终于还是通过了！！庆祝一下！！！ [IMG]upload/icp.JPG[/IMG]]]></description>
			<content:encoded><![CDATA[<p>ICP备案信息注册都快一个星期了，本来还以为不能通过审核呢！今天打开看了一下终于还是通过了！！庆祝一下！！！<br />
[IMG]upload/icp.JPG[/IMG]<br />
<span id="more-150"></span><br />
ICP备案信息注册都快一个星期了，本来还以为不能通过审核呢！今天打开看了一下终于还是通过了！！庆祝一下！！！<br />
[IMG]upload/icp.JPG[/IMG]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/150/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Java咖啡馆(1)——叹咖啡</title>
		<link>http://welog.org/blog/148</link>
		<comments>http://welog.org/blog/148#comments</comments>
		<pubDate>Tue, 26 Apr 2005 03:25:18 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e5%92%96%e5%95%a1%e9%a6%861%e2%80%94%e2%80%94%e5%8f%b9%e5%92%96%e5%95%a1/</guid>
		<description><![CDATA[[B]有人说，咖啡馆是一个叫人学会放慢步伐、享受生活的地方。这句话不无道理。港人常把饮咖啡称为“叹咖啡”，这个“叹”字就有欣赏、品味的含义，舒适的环境，自然是招徕顾客之道。香港虽然寸金尺土，但无论在闹市或是在风景区，都不难找到精巧雅致的咖啡馆，它们或具欧陆情怀，或富英式韵味，大都环境优美、摆设得体、席位舒适、气派不凡。[/B] 有人说，咖啡馆是一个叫人学会放慢步伐、享受生活的地方。这句话不无道理。港人常把饮咖啡称为“叹咖啡”，这个“叹”字就有欣赏、品味的含义，舒适的环境，自然是招徕顾客之道。香港虽然寸金尺土，但无论在闹市或是在风景区，都不难找到精巧雅致的咖啡馆，它们或具欧陆情怀，或富英式韵味，大都环境优美、摆设得体、席位舒适、气派不凡。 一、序言 　　许多人想学习编程，但不知道从哪里开始。在这个连载中，我将为你介绍Java编程技术，以及Java程序的开发方法，从零开始，循序渐进，希望能够让你亲自品味Java这种咖啡的香醇与浓郁。 如果说看完这个连载你便能全面掌握Java技术，我绝不敢打这样的保票。喝再多咖啡，我也无法把Java的博大精深浓缩成一个连载。咖啡馆本来就是休闲的地方，所以，我将有选择地为你介绍Java技术的重要组成部分，涉猎面广，但不见得都非常深入。所以，如果想真正在Java技术上有所造诣，也需要你自己的努力和汗水。毕竟，咖啡闻起来香，但本身是苦的，只有不嫌弃这点苦，才能品尝到真味道。 　　不过你也不必把这个连载看作古板的教程。Java技术从问世到如今，已有近10年的历史。在Java技术成长过程中，涌现了数不尽的英雄人物，帮助Java技术创造了史诗般的辉煌。在这个Java咖啡馆中，我们还准备了许多有趣的传记或故事，称之为“黄糖故事”。本来嘛，编程即创造，本身就有无穷乐趣。 二、什么是Java 　　或许你会把Java理解为印度尼西亚的爪哇岛，那里是早期印度－爪哇文化的中心，盛产具有良质酸味的阿拉比卡咖啡。然而在计算机业界中，一提起Java，人们的神经细胞就会立即兴奋起来，因为Sun的Java技术实在火得不得了！ 　　首先你应该理解人们说的Java究竟是指什么。先说明一下，如果你是初学者，下面某些新名词难免会让你打问号。我希望你能够耐心看完并努力去理解，因为，这些名词会对你理解并喜爱Java有相当帮助。 　　当人们谈起Java，他们或许是指这些概念中的一种: 　　★Sun公司的Java编程语言，一种面向对象的(Object Oriented，OO)编程语言。Java语言是C++和Smalltalk等计算机语言的衍生物。学习Java语言，类似于学习一门自然语言(比如英语)的语法。 　　★Java虚拟机(Java Virtual Machine，JVM)。Java语言编写的程序运行在虚拟机上， 而Java虚拟机是Java程序和操作系统间的中间层，所以Java程序可以运行在所有支持Java虚拟机的电子设备上(注意，不仅仅是个人电脑哦，电子设备还包括手机、PDA以及信息家电等)，而且不需要任何额外的操作，这是其他计算机语言无法比拟的优点。Sun公司推广Java的口号便是“一次编写，随处运行”，Java虚拟机便是这句口号的基石。 　　★Java应用程序编程接口(Application Programming Interface，API)。Java API是预先编写好提供给程序员调用的函数，比如磁盘读写、网络调用、绘制图形等。如果把Java语言比作一门自然语言的语法，那么API便是一部满是好文佳句的书籍，用它可以帮助我们更方便地进行写作而不必样样从头写起。 　　★Java技术的应用。“哇！你的这部手机支持Java呢！还是RPG游戏？！赶快给我玩，否则……”没错，由于Java语言创造性的优点，又是行业标准，所以受到各大企业的追捧，有广泛的应用。详细介绍请参考第三节。 黄糖故事 　　面向对象(Object Oriented，OO) 　　Java和C++语言中的面向对象编程机制被认为是继C、FORTRAN等过程式语言之后的又一大进步。使用OO开发软件，程序将更简单、更健壮，所以OO是迄今为止最成功的编程机制。实际上， Smalltalk才是第一个完全面向对象的动态计算机程序设计语言，Smalltalk的发明者Alan Kay今年4月19日还荣获2003年度有“计算机界诺贝尔奖”美誉的ACM图灵奖。值得一提的是，Alan Kay在投身计算机行业之前，曾经是职业音乐家，他的讲演以多姿多彩著称。 　　OO的学习曲线比较陡峭，所以，如果你已经掌握其他OO语言，那么学习Java便轻松许多，否则还是需要下一番功夫的。如果你没有接触过OO，也不用着急，我们将会在教程中慢慢接触OO。不过，千万不要知难而退而跳过OO这个重要环节。学习Java语法不难，但写出地道的OO代码，需要对OO有相当的领悟。 三、诱人的Java技术 　　首先我们谈谈Java技术。需要说明的是，与平时经常听到的或使用的C、C++、Visual Basic、Delphi等计算机语言不同，Java技术特指应用，而不是Java语言。 　　言归正传。Java技术是帮助你体验互联、享受互联的科技。Sun微系统公司(Sun Microsystems)1995年发明Java以来，Java技术广泛应用于各种设备，为你提供各种工具、信息以及好玩的游戏(见图1)。 　　1.商业应用 　　Java技术意味着商机。Java技术可以运行在几乎所有类型和规模的设备上，小到计算机芯片、蜂窝电话，大到超级计算机，无所不在。 　　超过1亿5千万的移动电话集成了Java技术；PDA和寻呼机中也用到Java技术；电子游戏机、电视机、网站等，也是Java技术的受益者；个人电脑都预装了Java平台(最新的Mac OS X终于能够支持Java了。Linux一贯支持Java。Windows本来支持Java，并且与Sun有法律合约，可是，当比尔·盖茨发现Java技术已经严重威胁到了微软自己的技术时，便悄悄在Windows XP中撤销了Java技术的集成。当然，这种拙劣的手段很快被发现，微软被Sun告上了法庭，不得不赔偿一大笔分手费，终于合法地使阴谋得逞。不敢直面惨淡的竞争，真是让人扼腕叹息。所以，Windows XP的用户需要安装Java的运行库才能够使用Java技术；连红色星球上也有Java技术的运用。 黄糖故事 　　Java技术与红色星球 　　当科学家们最后确认了“勇气”(Spirit)号探测器成功登陆火星之后，地球人都欢呼雀跃起来:“这真是一个伟大的创举！” 　　在美国加州帕赛迪纳国家宇航局的喷气推进实验室内，Java之父——James Gosling博士肯定感到他就像在家里一样，因为他周围全是Sun的工作站。“这显然是迄今为止Java应用中最酷的一举！”James Gosling博士高度赞扬说，“Java应用使公众可以实时观看、并下载火星图像。它让人们看到火星清晰的三维立体图像，还有一个模拟探测器。” 　　这一Java应用被称为Maestro。Java技术给美国宇航局带来了操纵“勇气”号简单易行的低成本方式。Sun实验室和NASA喷气推进实验室还正合作研发一个基于Java技术的控制系统，它将使未来的宇宙探测器在探测这个红色星球之时能够具有智能化的、独立进行决策的能力。 　　依托Java技术和Sun的服务器技术，Sun还与计算机业界中许多领头企业组成联盟，搭建了构架先进、运行可靠的业务系统，帮助企业、政府、教育机构等更方便、更有效地交流与合作。比如，中国人民保险公司的电子商务系统就是由Sun与Oracle(著名的数据库公司)与BEA(著名的中间件公司)共同组建的。瑞士银行、意大利造币厂等也都采用了Java技术。 　　实际上，我们身边的许多品牌都是Java技术的合作者，比如富士、惠普、摩托罗拉、诺基亚、松下、西门子等。你可以在Sun的网站上找到长长的列表。 　　2.移动通讯 　　是否还记得手机只能用来打电话的日子？感谢Java技术，如今支持Java技术的手机变得越来越可定制，手机游戏也越来越吸引人。 　　使用最新Java技术的手机，可以浏览应用程序、游戏、服务的列表，然后直接无线下载，即装即用，再也不会因为手机集成固定的几款游戏而玩腻。随着游戏商或者软件公司的不断发布，你每天都有新的游戏可玩、新的软件可用。 　　3.桌面应用 　　Java技术使得个人桌面电脑也变得更有趣、更互动。Windows？Mac [...]]]></description>
			<content:encoded><![CDATA[<p>[B]有人说，咖啡馆是一个叫人学会放慢步伐、享受生活的地方。这句话不无道理。港人常把饮咖啡称为“叹咖啡”，这个“叹”字就有欣赏、品味的含义，舒适的环境，自然是招徕顾客之道。香港虽然寸金尺土，但无论在闹市或是在风景区，都不难找到精巧雅致的咖啡馆，它们或具欧陆情怀，或富英式韵味，大都环境优美、摆设得体、席位舒适、气派不凡。[/B]<br />
<span id="more-148"></span><br />
有人说，咖啡馆是一个叫人学会放慢步伐、享受生活的地方。这句话不无道理。港人常把饮咖啡称为“叹咖啡”，这个“叹”字就有欣赏、品味的含义，舒适的环境，自然是招徕顾客之道。香港虽然寸金尺土，但无论在闹市或是在风景区，都不难找到精巧雅致的咖啡馆，它们或具欧陆情怀，或富英式韵味，大都环境优美、摆设得体、席位舒适、气派不凡。</p>
<p>一、序言<br />
　　许多人想学习编程，但不知道从哪里开始。在这个连载中，我将为你介绍Java编程技术，以及Java程序的开发方法，从零开始，循序渐进，希望能够让你亲自品味Java这种咖啡的香醇与浓郁。<br />
如果说看完这个连载你便能全面掌握Java技术，我绝不敢打这样的保票。喝再多咖啡，我也无法把Java的博大精深浓缩成一个连载。咖啡馆本来就是休闲的地方，所以，我将有选择地为你介绍Java技术的重要组成部分，涉猎面广，但不见得都非常深入。所以，如果想真正在Java技术上有所造诣，也需要你自己的努力和汗水。毕竟，咖啡闻起来香，但本身是苦的，只有不嫌弃这点苦，才能品尝到真味道。</p>
<p>　　不过你也不必把这个连载看作古板的教程。Java技术从问世到如今，已有近10年的历史。在Java技术成长过程中，涌现了数不尽的英雄人物，帮助Java技术创造了史诗般的辉煌。在这个Java咖啡馆中，我们还准备了许多有趣的传记或故事，称之为“黄糖故事”。本来嘛，编程即创造，本身就有无穷乐趣。<br />
二、什么是Java<br />
　　或许你会把Java理解为印度尼西亚的爪哇岛，那里是早期印度－爪哇文化的中心，盛产具有良质酸味的阿拉比卡咖啡。然而在计算机业界中，一提起Java，人们的神经细胞就会立即兴奋起来，因为Sun的Java技术实在火得不得了！</p>
<p>　　首先你应该理解人们说的Java究竟是指什么。先说明一下，如果你是初学者，下面某些新名词难免会让你打问号。我希望你能够耐心看完并努力去理解，因为，这些名词会对你理解并喜爱Java有相当帮助。</p>
<p>　　当人们谈起Java，他们或许是指这些概念中的一种:</p>
<p>　　★Sun公司的Java编程语言，一种面向对象的(Object Oriented，OO)编程语言。Java语言是C++和Smalltalk等计算机语言的衍生物。学习Java语言，类似于学习一门自然语言(比如英语)的语法。</p>
<p>　　★Java虚拟机(Java Virtual Machine，JVM)。Java语言编写的程序运行在虚拟机上， 而Java虚拟机是Java程序和操作系统间的中间层，所以Java程序可以运行在所有支持Java虚拟机的电子设备上(注意，不仅仅是个人电脑哦，电子设备还包括手机、PDA以及信息家电等)，而且不需要任何额外的操作，这是其他计算机语言无法比拟的优点。Sun公司推广Java的口号便是“一次编写，随处运行”，Java虚拟机便是这句口号的基石。</p>
<p>　　★Java应用程序编程接口(Application Programming Interface，API)。Java API是预先编写好提供给程序员调用的函数，比如磁盘读写、网络调用、绘制图形等。如果把Java语言比作一门自然语言的语法，那么API便是一部满是好文佳句的书籍，用它可以帮助我们更方便地进行写作而不必样样从头写起。</p>
<p>　　★Java技术的应用。“哇！你的这部手机支持Java呢！还是RPG游戏？！赶快给我玩，否则……”没错，由于Java语言创造性的优点，又是行业标准，所以受到各大企业的追捧，有广泛的应用。详细介绍请参考第三节。</p>
<p>黄糖故事<br />
　　面向对象(Object Oriented，OO)</p>
<p>　　Java和C++语言中的面向对象编程机制被认为是继C、FORTRAN等过程式语言之后的又一大进步。使用OO开发软件，程序将更简单、更健壮，所以OO是迄今为止最成功的编程机制。实际上， Smalltalk才是第一个完全面向对象的动态计算机程序设计语言，Smalltalk的发明者Alan Kay今年4月19日还荣获2003年度有“计算机界诺贝尔奖”美誉的ACM图灵奖。值得一提的是，Alan Kay在投身计算机行业之前，曾经是职业音乐家，他的讲演以多姿多彩著称。</p>
<p>　　OO的学习曲线比较陡峭，所以，如果你已经掌握其他OO语言，那么学习Java便轻松许多，否则还是需要下一番功夫的。如果你没有接触过OO，也不用着急，我们将会在教程中慢慢接触OO。不过，千万不要知难而退而跳过OO这个重要环节。学习Java语法不难，但写出地道的OO代码，需要对OO有相当的领悟。<br />
三、诱人的Java技术<br />
　　首先我们谈谈Java技术。需要说明的是，与平时经常听到的或使用的C、C++、Visual Basic、Delphi等计算机语言不同，Java技术特指应用，而不是Java语言。</p>
<p>　　言归正传。Java技术是帮助你体验互联、享受互联的科技。Sun微系统公司(Sun Microsystems)1995年发明Java以来，Java技术广泛应用于各种设备，为你提供各种工具、信息以及好玩的游戏(见图1)。</p>
<p>　　1.商业应用</p>
<p>　　Java技术意味着商机。Java技术可以运行在几乎所有类型和规模的设备上，小到计算机芯片、蜂窝电话，大到超级计算机，无所不在。</p>
<p>　　超过1亿5千万的移动电话集成了Java技术；PDA和寻呼机中也用到Java技术；电子游戏机、电视机、网站等，也是Java技术的受益者；个人电脑都预装了Java平台(最新的Mac OS X终于能够支持Java了。Linux一贯支持Java。Windows本来支持Java，并且与Sun有法律合约，可是，当比尔·盖茨发现Java技术已经严重威胁到了微软自己的技术时，便悄悄在Windows XP中撤销了Java技术的集成。当然，这种拙劣的手段很快被发现，微软被Sun告上了法庭，不得不赔偿一大笔分手费，终于合法地使阴谋得逞。不敢直面惨淡的竞争，真是让人扼腕叹息。所以，Windows XP的用户需要安装Java的运行库才能够使用Java技术；连红色星球上也有Java技术的运用。</p>
<p>黄糖故事<br />
　　Java技术与红色星球</p>
<p>　　当科学家们最后确认了“勇气”(Spirit)号探测器成功登陆火星之后，地球人都欢呼雀跃起来:“这真是一个伟大的创举！”</p>
<p>　　在美国加州帕赛迪纳国家宇航局的喷气推进实验室内，Java之父——James Gosling博士肯定感到他就像在家里一样，因为他周围全是Sun的工作站。“这显然是迄今为止Java应用中最酷的一举！”James Gosling博士高度赞扬说，“Java应用使公众可以实时观看、并下载火星图像。它让人们看到火星清晰的三维立体图像，还有一个模拟探测器。” </p>
<p>　　这一Java应用被称为Maestro。Java技术给美国宇航局带来了操纵“勇气”号简单易行的低成本方式。Sun实验室和NASA喷气推进实验室还正合作研发一个基于Java技术的控制系统，它将使未来的宇宙探测器在探测这个红色星球之时能够具有智能化的、独立进行决策的能力。</p>
<p>　　依托Java技术和Sun的服务器技术，Sun还与计算机业界中许多领头企业组成联盟，搭建了构架先进、运行可靠的业务系统，帮助企业、政府、教育机构等更方便、更有效地交流与合作。比如，中国人民保险公司的电子商务系统就是由Sun与Oracle(著名的数据库公司)与BEA(著名的中间件公司)共同组建的。瑞士银行、意大利造币厂等也都采用了Java技术。</p>
<p>　　实际上，我们身边的许多品牌都是Java技术的合作者，比如富士、惠普、摩托罗拉、诺基亚、松下、西门子等。你可以在Sun的网站上找到长长的列表。<br />
　　2.移动通讯</p>
<p>　　是否还记得手机只能用来打电话的日子？感谢Java技术，如今支持Java技术的手机变得越来越可定制，手机游戏也越来越吸引人。</p>
<p>　　使用最新Java技术的手机，可以浏览应用程序、游戏、服务的列表，然后直接无线下载，即装即用，再也不会因为手机集成固定的几款游戏而玩腻。随着游戏商或者软件公司的不断发布，你每天都有新的游戏可玩、新的软件可用。</p>
<p>　　3.桌面应用</p>
<p>　　Java技术使得个人桌面电脑也变得更有趣、更互动。Windows？Mac OS？Linux？无所谓，使用Java技术的程序可以运行于任何操作系统！同时，Java技术也能够提供从联网的角色扮演游戏到市场跟踪调查应用程序，一应俱全。</p>
<p>　　Java桌面系统(Sun Java Desktop System)是Sun公司基于Java技术的新一代桌面系统，结合了Sun技术驱动的最优秀的开源软件， 如GNOME桌面环境、StarOffice 办公套件、Mozilla浏览器、Evolution邮件与日历客户端、Java 2平台标准版等，是一个集成管理工具和开发工具、容易管理、高度安全的桌面客户系统，目标直指微软的Windows＋Office系统套装。毋庸置疑，Java桌面系统低廉的价格、出色的安全性和完整的商务功能，正是微软系统的软肋。为了新一代桌面系统的明天，Sun还启动了名为Looking Glass的高级项目。如若窗体透明并且立体使你可以同时操作多个窗体，你会有怎样的体验？随心所欲地在当前浏览网页上加上你的注释？你的CD或者电影数据库变成3D的电唱机(如图3)？在不远的将来，Sun将在Java桌面系统中加入这样的革新，给使用者带来更丰富的使用体验。</p>
<p>　　4.开发者</p>
<p>　　为了方便开发者，Sun把Java区分为J2SE(Java 2 Standard Edition)、J2EE(Java 2 Enterprise Edition)、J2ME(Java 2 Micro Edition)和Java Card四种平台。J2SE是所有Java技术的基础，不管开发人员要开发什么平台的Java应用程序，都必须先从J2SE学起。J2EE技术着重于企业服务器端的应用。J2ME主要针对嵌入式系统，包括手机、PDA等。针对手机应用程序的开发，Sun还提供了免费的J2ME Wireless Toolkit。Java Card技术用来开发可以植入IC智能卡中的应用程序。</p>
<p>　　以上四种平台的软件开发包(Software Development Kit，SDK)都是免费的，可以从Sun的网站下载。当然，只用SDK未免太不讲究，我们需要开发工具来提高开发效率。这样的工具叫做集成开发环境(Integrated Development Environment，IDE)。以往，Borland JBuilder和IBM Eclipse这两个IDE最受Java程序员的青睐，而Sun自己的IDE却名不见经传。2004年以后，Sun把自己的IDE摆放到重要的位置，努力推进NetBeans和Java Studio的开发。前者是完全用Java撰写的开放源代码的工具，而后者则是重量级的官方开发工具。Sun的开发工具可谓根正苗红，Java程序员终于可以沐浴Sun(阳光)普照了！</p>
<p>　　Java咖啡馆主要和J2SE打交道，当然不会略过J2EE和J2ME的知识，值得期待哦！<br />
四、Java语言的优势<br />
　　虽然Java技术是那么的诱人，前景也似乎非常光明，但是不是已经有了C、C++等广泛应用并且大获成功的语言了吗？微软不是又在大力推广他们的.Net技术吗？LISP、Prolog等人工智能语言在北美洲、欧洲的金融领域不是也有很大的应用吗？学习Java编程，是不是一个明智的选择呢？<br />
带着这些问题，让我们来看看Java的优势。</p>
<p>　　1.免费！</p>
<p>　　Sun免费提供用来开发Java应用程序的一切，你不必付任何的版税。或许你会将信将疑:资本家搞共产了？实际上，Sun在Java上的收益确实不大，远远比不过垄断Java应用服务器技术的IBM和BEA公司，似乎有替别人做嫁衣之嫌。对此，Sun董事长、总裁兼首席执行官Scott McNealy是这样解释的:“Sun并没有用Java赚钱，这就像使用英语不用上税一样，Sun并不通过Java本身来盈利，而是把Java应用到了业务中。”原来是放长线钓大鱼！</p>
<p>　　与Java本身相比，Java API更是可贵的免费财富。想使用Socket操作网络？API中有;想连接到SQL数据库？API中有;想给应用程序一个漂亮的用户界面？API中有;想要处理数字图形、播放音乐、解析字符串或者创建数字签名？API中全都有。</p>
<p>　　最后，Java发展了那么多年，优秀的Java教程、技术网站数不胜数。Sun本身就提供了免费的教程，足够自学的了。你可以在 http://java.sun.com/docs/books/tutorial/information/download.html下载这个教程。Bruce Eckel大师的名作Java编程思想(Thinking in java)更是不可不读的佳作，许多狂热爱好者甚至把它当做圣经一样一页一页仔细揣摩。你可到作者的主页http://www.BruceEckel.com免费下载此书的电子版。机械工业出版社也有引进台湾技术作家候捷的中译本，可惜不是免费。</p>
<p>　　或许你会问，有了那么多优秀的教程，还要你这个Java咖啡馆干什么呢？嗯哼，虽然那些教程和技术文章是如此优秀，但并不适合初学者。Java咖啡馆目的就在于帮助你打好Java技术的基础，掌握Java技术的主要脉络，帮助你迈出进入Java世界的第一步！</p>
<p>　　2.跨平台</p>
<p>　　“一次编写，随处运行”，Java系统可以运行在不同的操作系统和硬件上。随着Linux的持续增长以及Mac OSX完全支持Java技术，跨平台的特性变得越来越有分量。</p>
<p>　　由于Java跨平台，Java API自然也是平台统一的。对程序员而言，没有比统一的API函数能够让他们更欣慰的了——已经有了圆形的轮子，何必再从头发明轮子呢？我们拿Java API与C++的类库相比便可以知道它的可贵之处。有Windows编程经验的C++程序员肯定经历过被MFC(Microsoft Foundation Classes，微软基类库)折磨的日子，学习曲线陡峭，没有若干个月根本无法开始生产，一段时间不接触遗忘率又高。据说，即使在微软公司内部，除了MFC开发小组，谁都不乐意用它。即便你熟悉了MFC，能够顺利开发Windows应用程序，如果你要编写一个Linux应用程序，MFC又派不上用场了，你必须学习Linux下C++开发的一套库函数。还有UNIX、FreeBSD、Mac OS……你学得过来吗？反观Java API，操作系统，你爱谁是谁，只要编写一次便可随处运行！</p>
<p>　　3.在学术界获得了强有力的支持</p>
<p>　　由于免费、跨平台、Java语言本身技术先进，在高校中，Java 已经成为许多学科研究、课程和计算的首选语言，用Java做上机作业，一般都是鼓励的。据我所知，北大、清华许多院系的研究生入学考试都可以用Java语言答题。实际上，用Java来完成这些工作，大多数情况下要比用C或其他语言简洁得多，你可以把注意力集中在算法等核心部分，从而获得更高分数。</p>
<p>　　掌握Java技术的学生一般有更多的工作机会课余兼职，拿到更高报酬，不但减轻家里的负担，更可以让自己早日进入社会锻炼。所以，如果你还在求学，学习Java，一定没错的。</p>
<p>　　4.简单</p>
<p>　　与C++等语言相比较，语法上Java是简单的。</p>
<p>　　谢天谢地，Java提供了垃圾回收机制。以往C++的开发中，最容易出错误的地方便是内存管理，申请的内存用完以后必须释放，否则可使用的内存资源越来越少，直至耗尽系统资源而造成死机。而Java系统中，你可以任意申请内存，Java系统会在适当的时候自动释放无用的内存资源。这个神奇的机制叫做“垃圾回收”，节约了许多调试错误的时间。</p>
<p>　　在Java中，要写出低劣的代码也不是一件容易的事情。一方面，垃圾回收机制堵住了内存泄漏的可能性，另一方面就是异常捕捉机制，它强迫你做最坏的打算。编写程序时，难免会遇到一些意外，比如文件无法打开、网络读取失败等特殊情况。在C++等语言中是依靠返回值来判断的，如果一句句地检查返回值，那实在是太麻烦了。从而，程序员习惯性地忽略返回值的检查，并安慰自己一切都会好起来的。这便埋下了隐患。在Java中，Java的方法可以抛异常，而你必须应答异常，即使你不想进行任何操作。比如编写打开文件的代码，你不得不响应异常以防意外发生，否则程序根本不能够通过编译。未雨绸缪，使得Java系统更稳健。<br />
　5.企业应用的成熟平台</p>
<p>　　这是Java技术目前最活跃的两大领域之一。我们在前面Java技术介绍中已经提到了不少，这里仅关注跟我们切身相关的优势。</p>
<p>　　Java技术的企业应用旨在提升企业竞争力，所以Java技术受到了企业的欣赏，市场份额是同类技术中最大的。同时，Java开放标准，所以供应商众多。市面上有许多的应用服务器、工具与构件可以选择，从高端的BEA WebLogic、IBM WebSphere等商业软件，到Tomcat、JBoss等开源的免费工具，一应俱全。作为Java技术的初学者，不需要任何花费就能够进行Java企业应用的自我培训，以后若参与Java的商业项目开发，便可以无缝地把软件移植到高端的商业平台上去。反观.Net，想免费自学，不盗版是不可能的啦。</p>
<p>　　最后谈谈Java和Web服务。Web服务是软件互操作历史上的里程碑，是技术发展的重要方向，是你绝不能不了解的技术。Sun公司是Java语言的发明者，而作为一个开放的跨平台的技术体系，Java在Web服务的开发方面起着非常重要的作用。Sun被接纳为促进Web服务交互组织WS-I的董事成员后，作为活跃的参与者和业界的领导者，对Web服务互操作性的促进，有着相当重要的意义，也为Java技术的含金量加上了关键的砝码。</p>
<p>　　6.无线应用</p>
<p>　　这是Java技术目前最活跃的另一个领域，旨在提供更多、更方便的个性化服务的Java手机应用。未来几年内，势必将出现移动通讯运营商和移动设备应用软件的巨大商机和激烈竞争，并且该趋势很可能与电子政务、电子商务等其他发展相互影响。Java在手机市场的专有性和Java本身的开放性和标准性，使得越来越多的企业加入了Java阵营。</p>
<p>　　中国也不例外。2003年James Gosling博士首次来到中国，其中重要的一项工作便是与中国联通结盟。</p>
<p>黄糖故事<br />
　　Java之父——James Gosling博士</p>
<p>　　James Gosling博士以“Java技术之父”闻名于世。他是Java技术的创始人，作为Sun研究院院士，亲手设计了Java语言，完成了Java技术的原始编译器和虚拟机。在他的带领下，Java现已成为互联网的标准编程模式以及分布式企业级应用的事实标准，其跨平台的技术优势为网络计算带来了划时代的变革。目前，Gosling博士积极致力于软件开发工具的研究，以使软件开发工具的功能更强大，更容易为开发人员所使用，确保应用、服务开发的迅速完成。</p>
<p>　　实际上，手机游戏开发也是一项不错的职业与机遇，成功的例子已经不在少数哦。</p>
<p>　　7.开放的Java社团——Java Community Process，JCP</p>
<p>　　JCP是一个让Java出名的功臣。JCP创造了一个开放型论坛，让同好在此交换意见，探索、定义新的平台，群策群力。Java欢迎竞争，因为只有这样才能最大限度地提高领域内的技术，这点与对手微软.Net技术大相径庭。在Java的舞台上有很多演员，任何人都可以参与到JCP的过程中去，帮助Sun决定Java的发展和未来，同时也挑战自己的影响力。从而，你可以发现Java世界中新的名词层出不穷，远远走在规范之前。而在微软.Net技术的舞台上，你只能看到一个演员，那就是微软自己。</p>
<p>　　8.开源组织或者非盈利机构的支持</p>
<p>　　开源组织是无政府主义的梦想——没有政体，没有所属权，言论与行动自由，仅仅依靠渴望共享与交流的信仰及无私奉献来维系。Java世界中，开源组织与非盈利机构发挥到了极致，许多出色的工具都出自它们之手。比如JUnit、Cactus、Tomcat、Struts、JBoss、Eclipse、ANT、Xerces、Hibernate、Axis、AspectJ等等，许多工具还会出现在我们的咖啡馆中，扮演重要的角色。</p>
<p>　　Java世界中，便宜无好货绝对不成立，这些工具拥有足以和商业软件媲美的质量，很多商业IDE还集成了这些工具。对Java程序员而言，生活不单单会变得轻松，更重要的，你能够看到希望，有为大家贡献自己力量的机会！</p>
<p>五、小结<br />
　　看到这里，如果你能够有学习Java技术的冲动，我也心满意足了。选择一门语言是困难的，你必须有所取舍。即使你是坚定的微软技术迷，有时间也欢迎到这个咖啡馆小坐一会儿，叹一叹Java这别样的风情。</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/148/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GOOGLE AND BAIDU 今天的图片~</title>
		<link>http://welog.org/blog/146</link>
		<comments>http://welog.org/blog/146#comments</comments>
		<pubDate>Sat, 23 Apr 2005 05:40:48 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/google-and-baidu-%e4%bb%8a%e5%a4%a9%e7%9a%84%e5%9b%be%e7%89%87/</guid>
		<description><![CDATA[今天是世界日，看到GOOGLE上的图片是这样的！ [IMG]upload/earthday05.gif[/IMG] 今天是世界日，看到GOOGLE上的图片是这样的！ [IMG]upload/earthday05.gif[/IMG] PS：应该是让我们爱护自然！ 以前没看到百度在节日的时候用这些特别的图片，不过今天特别注意了一下发出也变了。 [IMG]upload/slogo_diqiuri.gif[/IMG]]]></description>
			<content:encoded><![CDATA[<p>今天是世界日，看到GOOGLE上的图片是这样的！<br />
[IMG]upload/earthday05.gif[/IMG]<br />
<span id="more-146"></span><br />
今天是世界日，看到GOOGLE上的图片是这样的！<br />
[IMG]upload/earthday05.gif[/IMG]<br />
PS：应该是让我们爱护自然！<br />
以前没看到百度在节日的时候用这些特别的图片，不过今天特别注意了一下发出也变了。<br />
[IMG]upload/slogo_diqiuri.gif[/IMG]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/146/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>50位GMAIL邀请!!!!</title>
		<link>http://welog.org/blog/145</link>
		<comments>http://welog.org/blog/145#comments</comments>
		<pubDate>Wed, 20 Apr 2005 19:09:32 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/50%e4%bd%8dgmail%e9%82%80%e8%af%b7/</guid>
		<description><![CDATA[我们希望您喜欢使用Gmail。我们一定会努力使之变得更好。同时，通过发送邀请函（由希望与自己关爱的人分享Gmail的用户发送），Gmail大家庭一直在不断地发展壮大。我们希望您也具有同样的意愿。只需填写如下表格，我们会向您的朋友和家人发送邀请函，这样他们就可以开设自己钟爱的Gmail帐户。 [B][FONT-COLOR=Green]发出GMAIL邀请,大家留下大名[/FONT-COLOR][/B] [FONT-COLOR=White][B]格 式[/B][/FONT-COLOR] 名字: 姓氏: 电子邮件: [CODE_LITE]我们希望您喜欢使用Gmail。我们一定会努力使之变得更好。同时，通过发送邀请函（由希望与自己关爱的人分享Gmail的用户发送），Gmail大家庭一直在不断地发展壮大。我们希望您也具有同样的意愿。只需填写如下表格，我们会向您的朋友和家人发送邀请函，这样他们就可以开设自己钟爱的Gmail帐户。[/CODE_LITE]]]></description>
			<content:encoded><![CDATA[<p>我们希望您喜欢使用Gmail。我们一定会努力使之变得更好。同时，通过发送邀请函（由希望与自己关爱的人分享Gmail的用户发送），Gmail大家庭一直在不断地发展壮大。我们希望您也具有同样的意愿。只需填写如下表格，我们会向您的朋友和家人发送邀请函，这样他们就可以开设自己钟爱的Gmail帐户。<br />
<span id="more-145"></span><br />
[B][FONT-COLOR=Green]发出GMAIL邀请,大家留下大名[/FONT-COLOR][/B]<br />
[FONT-COLOR=White][B]格 式[/B][/FONT-COLOR]<br />
  名字:<br />
  姓氏:<br />
  电子邮件:<br />
[CODE_LITE]我们希望您喜欢使用Gmail。我们一定会努力使之变得更好。同时，通过发送邀请函（由希望与自己关爱的人分享Gmail的用户发送），Gmail大家庭一直在不断地发展壮大。我们希望您也具有同样的意愿。只需填写如下表格，我们会向您的朋友和家人发送邀请函，这样他们就可以开设自己钟爱的Gmail帐户。[/CODE_LITE]</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/145/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>生成一个java编制的可执行文件</title>
		<link>http://welog.org/blog/144</link>
		<comments>http://welog.org/blog/144#comments</comments>
		<pubDate>Wed, 20 Apr 2005 18:00:45 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e7%94%9f%e6%88%90%e4%b8%80%e4%b8%aajava%e7%bc%96%e5%88%b6%e7%9a%84%e5%8f%af%e6%89%a7%e8%a1%8c%e6%96%87%e4%bb%b6/</guid>
		<description><![CDATA[将java编织成.class后，如果只是用java 命令来执行总觉得不是太过瘾，找个办法生成像exe文件一样用鼠标双击便可执行的文件，应该是很有趣的啊。本文主要介绍了一种生成java可执行程序的方法。 将java编织成.class后，如果只是用java 命令来执行总觉得不是太过瘾，找个办法生成像exe文件一样用鼠标双击便可执行的文件，应该是很有趣的啊。本文主要介绍了一种生成java可执行程序的方法。 这里我用了一个名字叫做exe4j的免费小软件，感觉不错。下面我将我把java的.class文件生成可执行文件的流程讲一下。 首先：将你要选择好你即将发布的.class文件就不用细说了，下面是创建jar文件，这里我用一个名字叫做test.class的文件来举例，另外注意还要编写一个确定main_class的文件manifest.mf，在这里mainfest.mf和test.class是在同一个目录下，然后使用如下命令 jar cvfm test.jar manifest.mf test 这样，一个test.jar文件就生成了，这里我就不细说jar的具体功能了。但为了确保成功，我们可以再用下面的指令执行一下刚刚生成的test.jar： java -jar test.jar 怎么样，是不是可以很顺利的进行？如果是，那我们就可以开始进行可执行文件的创建了。 下面打开exe4j，它的开始一个界面是这样的： 单击NEXT键，选择”JAR in EXE”mod按钮，单击NEXT； 出现下面画面，填写短名和文件输出的路径然后点击NEXT继续 你又会看到下面的画面，在这里你可以选择你要生成的可执行文件的类型，以及生成的可执行文件名称、可执行文件的图标等，我们在这里就选择GUI application，名字就根据自己的需要取一个，图标你可以自己在你的图标库里选一个你喜欢的，然后再NEXT再继续； 下一个画面如下，在这里填写Main class的名字，单击下面的绿色+选择所需的.jar文件,如果没有特殊要求我们就可以再继续了； 接下来是选择版本的画面，填写好自己的最大最小版本然后再继续 下面这个画面可以帮助你设一下你的文件执行的片头，增加其美观效果，选择自己喜欢的图片，写自己想写的文字，并可以根据需要调整文字的位置，再继续 下面是一个选择语言版本的界面选好后再继续 下面是一个短暂的等待， 然后就大功告成了，一个java写成的可执行文件就这样生成了 双击一下看看效果，迎面而来的是自己设置的开头效果，感觉怎么样，是不是犹如的春风拂 &#8212;&#8211;]]></description>
			<content:encoded><![CDATA[<p>将java编织成.class后，如果只是用java 命令来执行总觉得不是太过瘾，找个办法生成像exe文件一样用鼠标双击便可执行的文件，应该是很有趣的啊。本文主要介绍了一种生成java可执行程序的方法。<br />
<span id="more-144"></span></p>
<p><font size="3">将java编织成.class后，如果只是用java 命令来执行总觉得不是太过瘾，找个办法生成像exe文件一样用鼠标双击便可执行的文件，应该是很有趣的啊。本文主要介绍了一种生成java可执行程序的方法。</font></p>
<p><font size="3">这里我用了一个名字叫做exe4j的免费小软件，感觉不错。下面我将我把java的.class文件生成可执行文件的流程讲一下。</font></p>
<p><font size="3">首先：将你要选择好你即将发布的.class文件就不用细说了，下面是创建jar文件，这里我用一个名字叫做test.class的文件来举例，另外注意还要编写一个确定main_class的文件manifest.mf，在这里mainfest.mf和test.class是在同一个目录下，然后使用如下命令</font></p>
<p><font size="3">jar cvfm test.jar manifest.mf test</font></p>
<p><font size="3">这样，一个test.jar文件就生成了，这里我就不细说jar的具体功能了。但为了确保成功，我们可以再用下面的指令执行一下刚刚生成的test.jar：</font></p>
<p><font size="3">java -jar test.jar</font></p>
<p><font size="3">怎么样，是不是可以很顺利的进行？如果是，那我们就可以开始进行可执行文件的创建了。</font></p>
<p><font size="3">下面打开exe4j，它的开始一个界面是这样的：</font></p>
<p><img src="http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-291439280.jpg" /><font size="3"></font></p>
</p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3">单击NEXT键，选择”JAR in EXE”mod按钮，单击NEXT；</font></p>
<p><img src="http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-291439282.jpg" /><font size="3"></font></p>
<p><font size="3">出现下面画面，填写短名和文件输出的路径然后点击NEXT继续</font></p>
</p>
<p />
<p><font size="3"> </font></p>
<p />
<p><img height="366" src="http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-291439284.jpg" width="486" /><font size="3"></font></p>
<p><font size="3">你又会看到下面的画面，在这里你可以选择你要生成的可执行文件的类型，以及生成的可执行文件名称、可执行文件的图标等，我们在这里就选择GUI application，名字就根据自己的需要取一个，图标你可以自己在你的图标库里选一个你喜欢的，然后再NEXT再继续；</font></p>
</p>
<p />
<p><font size="3"> </font></p>
<p />
<p />
<p><font size="3"> </font></p>
<p />
<p><img src="http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-291439286.jpg" /><font size="3"></font></p>
</p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3">下一个画面如下，在这里填写Main class的名字，单击下面的绿色+选择所需的.jar文件,如果没有特殊要求我们就可以再继续了；</font></p>
</p>
<p />
<p><font size="3"> </font></p>
<p />
<p><img src="http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-291439288.jpg" /><font size="3"></font></p>
<p><font size="3">接下来是选择版本的画面，填写好自己的最大最小版本然后再继续</font></p>
</p>
<p />
<p><font size="3"> </font></p>
<p />
<p><img src="http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-2914392810.jpg" /><font size="3"></font></p>
</p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3">下面这个画面可以帮助你设一下你的文件执行的片头，增加其美观效果，选择自己喜欢的图片，写自己想写的文字，并可以根据需要调整文字的位置，再继续</font></p>
<p><img src="http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-2914392812.jpg" /><font size="3"></font></p>
<p><font size="3">下面是一个选择语言版本的界面选好后再继续</font></p>
</p>
<p />
<p><font size="3"> </font></p>
<p />
<p />
<p><font size="3"> </font></p>
<p />
<p />
<p><font size="3"> </font></p>
<p />
<p />
<p><font size="3"> </font></p>
<p />
<p />
<p><font size="3"> </font></p>
<p />
<p><img src="http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-2914392814.jpg" /><font size="3"></font></p>
<p><font size="3">下面是一个短暂的等待，</font></p>
<p><img src="http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-2914392816.jpg" /><font size="3"></font></p>
<p><font size="3">然后就大功告成了，一个java写成的可执行文件就这样生成了</font></p>
</p>
<p />
<p><font size="3"> </font></p>
<p />
<p><img height="380" src="http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-2914392818.jpg" width="482" /><font size="3"></font></p>
</p>
<p />
<p><font size="3"> </font></p>
<p />
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3">双击一下看看效果，迎面而来的是自己设置的开头效果，感觉怎么样，是不是犹如的春风拂</font></p>
<p><img height="386" src="http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-2914392820.png" width="478" /><font size="3"></font></p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3"> </font></p>
<p />
<p><font size="3"> </font></p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/144/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我眼中的Java经典书籍</title>
		<link>http://welog.org/blog/142</link>
		<comments>http://welog.org/blog/142#comments</comments>
		<pubDate>Tue, 19 Apr 2005 23:35:00 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e6%88%91%e7%9c%bc%e4%b8%ad%e7%9a%84java%e7%bb%8f%e5%85%b8%e4%b9%a6%e7%b1%8d/</guid>
		<description><![CDATA[以往我们说，“一流的公司定标准，二流的公司搞技术， 三流的公司做服务，末流的公司卖产品”，其实这话并非全无道理。厌恶M$的人不少，但嘴上骂归骂，底下照样用Windows， 赌咒发誓不用的也未必不想暗地里钻研一下其中的技术，再狠点，干脆只看Linux的字符界面，连X都不用。 From java.sun.com JavaTM 2 SDK, Standard Edition Documentation Version 1.4.2 [下载] JavaTM 2 Platform, Standard Edition, v 1.4.2 API Specification [下载] JavaTM 2 Platform Enterprise Edition, v 1.4 API Specification [下载] The Java Language Specification, Second Edition [下载] The JavaTM Virtual Machine Specification, Second Edition [下载] Java 2 Platform, Standard Edition, White [...]]]></description>
			<content:encoded><![CDATA[<p>以往我们说，“一流的公司定标准，二流的公司搞技术， 三流的公司做服务，末流的公司卖产品”，其实这话并非全无道理。厌恶M$的人不少，但嘴上骂归骂，底下照样用Windows， 赌咒发誓不用的也未必不想暗地里钻研一下其中的技术，再狠点，干脆只看Linux的字符界面，连X都不用。<br />
<span id="more-142"></span></p>
<p><strong><font color="#cc0000">From java.sun.com</p>
<p></font></strong><font size="-1"><a href="http://java.sun.com/j2se/1.4.2/docs/"><font color="#000000">Java<sup>TM</sup> 2 SDK, Standard Edition Documentation Version 1.4.2</font></a> [<a href="http://allimant.nerim.net/javadoc/jdk142-hh.zip"><font color="#000000">下载</font></a>] </p>
<p><a href="http://java.sun.com/j2se/1.4.2/docs/api/"><font color="#000000">Java<sup>TM</sup> 2 Platform, Standard Edition, v 1.4.2 API Specification</font></a> [<a href="http://allimant.nerim.net/javadoc/jdk142-hh.zip"><font color="#000000">下载</font></a>] </p>
<p><a href="http://java.sun.com/j2ee/1.4/docs/api/"><font color="#000000">Java<sup>TM</sup> 2 Platform Enterprise Edition, v 1.4 API Specification</font></a> [<a href="http://erzatz.free.fr/storage/j2sdkee131-hh.zip"><font color="#000000">下载</font></a>] </p>
<p><a href="http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html"><font color="#000000">The Java Language Specification, Second Edition</font></a> [<a href="http://erzatz.free.fr/storage/specs2.zip"><font color="#000000">下载</font></a>] </p>
<p><a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html"><font color="#000000">The Java<sup>TM</sup> Virtual Machine Specification, Second Edition</font></a> [<a href="ftp://ftp.javasoft.com/docs/specs/vmspec.2nded.html.zip"><font color="#000000">下载</font></a>] </p>
<p><a href="http://java.sun.com/docs/white/index.html"><font color="#000000">Java 2 Platform, Standard Edition, White Papers</font></a> </p>
<p><a href="http://java.sun.com/docs/books/tutorial/index.html"><font color="#000000">The Java Tutorial</font></a> [<a href="http://allimant.nerim.net/javadoc/tutorial-0311.zip"><font color="#000000">下载</font></a>] </p>
<p><a href="http://java.sun.com/j2ee/1.4/docs/tutorial/doc/"><font color="#000000">The J2EE 1.4 Tutorial</font></a> [<a href="http://allimant.nerim.net/javadoc/j2ee-tutorials.zip"><font color="#000000">下载</font></a>] </font></p>
<p><a href="http://java.sun.com/docs/books/tutorial/uiswing/"><font color="#000000">The Swing Tutorial</font></a> </p>
<p><a href="http://java.sun.com/docs/books/"><font color="#000000">SUN官方系列推荐书目</font></a> </p>
<p><strong><font color="#cc0000">Thinking in Java<br /></font>Java 编程思想</strong><br />by <i><a href="http://www.bruceeckel.com/"><font color="#000000">Bruce Eckel</font></a></i></p>
<p>
<table width="522">
<tbody>
<tr>
<td align="center" width="34%"><img height="110" src="http://www.kissjava.com/news/now/images/h00/h43/img200504051110302.gif" width="78" /><br /><font size="-1">第一版<br />京京工作室译本</p>
<p>[<a href="http://218.30.23.90/ebook/programme/thinkinjava.chm"><font color="#000000">下载</font></a>]</font></td>
<td align="center" width="33%"><img height="110" src="http://www.kissjava.com/news/now/images/h00/h43/img200504051110353.gif" width="78" /><br /><font size="-1">第二版<br /><a href="http://jjhou.csdn.net/"><font color="#000000">候捷</font></a>译本</p>
<p>[<a href="ftp://210.25.133.55/newbook/java2.rar"><font color="#000000">下载</font></a>（部分章节）]</font></td>
<td align="center" width="33%"><img height="110" src="http://www.kissjava.com/news/now/images/h00/h43/img200504051110414.jpg" width="78" /><br /><font size="-1">第三版<br />原版</p>
<p>[<a href="http://www.wgqqh.com/shhgs/book/tij3.chm"><font color="#000000">下载</font></a>] [<a href="http://www.wgqqh.com/shhgs/tij.html"><font color="#000000">翻译</font></a>（部分章节）]</font></td>
</tr>
<tr>
<td align="center" colspan="3"><font size="-1">[<a href="http://www.mindview.net/Books/TIJ/"><font color="#000000">本书主页</font></a>]</font></td>
</tr>
</tbody>
</table>
<p><font color="#cc0000" size="-1"><b><u>书评：</u></b></font> <font size="-1">(2004-5-28) <br />     说<a href="http://www.mindview.net/Books/TIJ/"><font color="#000000">TIJ</font></a>是“经典”想必不会有什么人反对，然而也许有人说这不是一本“适合新手读的书”。<br />     什么叫做“新手”？经常看到有人说，“我对Java很感兴趣”，“我打算学Java了”，but， 话锋一转——“我是新手”，“推荐本入门的书吧”。千禧年21岁生日的前两天， 在合肥黄山路上一个小书店里我买到了<a href="http://www.mindview.net/Books/TIJ/"><font color="#000000">TIJ</font></a>第一版， 从那以来的3年多时间里，我一直在学习这种技术（我不称其为“语言”），现在我还觉得自己是个新手。现在<a href="http://java.sun.com/j2ee/"><font color="#000000">J2EE</font></a>搞得这么火爆，我对<a href="http://java.sun.com/j2ee/"><font color="#000000">J2EE</font></a>还没什么了解， 不是说它不好（<a href="http://java.sun.com/"><font color="#000000">Java</font></a>的分布式应用得到了淋漓尽致的体现，怎么能说不好呢），因为核心部分我还有不少不明白的地方，设计模式上还不能像对古典OO一样理解得那么自然。跟风不是一种应有的学习心态，<a href="http://java.sun.com/"><font color="#000000">Java</font></a>与几k乃至几十k的月薪是否有关系我都不关心，因为仅仅是喜好，如同历史、足球和京剧一样…… <img src='http://welog.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> <br />     什么叫做“新手”？如果你对OO有一定的了解（最好是“理解”），用过一段时间C++， 甚至只需要用过C（这个还是要比较熟练di），<a href="http://www.mindview.net/Books/TIJ/"><font color="#000000">TIJ</font></a>就不算一个什么深不可测的“武林秘笈”， 甚至可以帮你更好地理解OO；如果没有一些OO的基础，那就有可能是“新手”，只是想要快些熟悉<a href="http://java.sun.com/"><font color="#000000">Java</font></a>环境和写法的话， 它对你来说还只是一门语言，书店任何一本“从入门到精通”之类的， 甚至是<a href="http://www.google.com/"><font color="#000000">google</font></a>估计都足以满足你的需求了。 说<a href="http://www.mindview.net/Books/TIJ/"><font color="#000000">TIJ</font></a>“不是一本适合新手读的书”，另一个原因是大部分读者都在谴责第一版京京工作室译本的翻译质量，术语的不一致，总之评语是“基本上毁了原书”。其实我在2000年底买的就是这本，感觉上并没有传说的那么糟糕，很多所谓“不一致”的术语基本上想一下都能知道作者本来的意思，当然，想要精读，而且e文不错的话，原版还是首选。<a href="http://jjhou.csdn.net/"><font color="#000000">候捷</font></a>译的第二版我没有仔细看过， 感觉台湾方面的术语和我们还是有一些差别的， 加上<a href="http://jjhou.csdn.net/"><font color="#000000">候捷</font></a>有点武文弄墨的爱好， 翻译过程中兴许还夹杂了一些艺术性的表达，呵呵～～～ 第三版在原来的基础上有了较大改变，把关于网络的一些部分删除了，好像是放到<a href="http://www.bruceeckel.com/"><font color="#000000">Eckel</font></a>的另一本书里了。<br /><strong><font color="#cc0000">Core Java 2<br /></font>Java 2 核心技术</strong><br />by <i><a href="http://www.horstmann.com/"><font color="#000000">Cay S. Horstmann</font></a></i> &amp; <i><a href="http://www.thecornells.com/"><font color="#000000">Gary Cornell</font></a></i></p>
<table width="522">
<tbody>
<tr>
<td align="center" width="50%"><img height="110" src="http://www.kissjava.com/news/now/images/h00/h43/img200504051110476.gif" width="78" /><br /><font size="-1">Vol 1: Fundamentals<br />第一卷：基础知识</font></td>
<td align="center" width="50%"><img height="110" src="http://www.kissjava.com/news/now/images/h00/h43/img200504051110477.gif" width="78" /><br /><font size="-1">Vol 2: Advanced Features<br />第二卷：高级特性</font></td>
</tr>
<tr>
<td align="center" colspan="2"><font size="-1">[<a href="http://www.horstmann.com/corejava.html"><font color="#000000">本书主页</font></a>]</font></td>
</tr>
</tbody>
</table>
<p><font color="#cc0000" size="-1"><b><u>书评：</u></b></font> <font size="-1">(2004-5-28) <br />     个人感觉Core Java不是那种可以整天捧在手上一遍又一遍直至翻到发旧的那种书，确切地说， 它更适合作为案头可备查阅的工具书。和<a href="http://www.mindview.net/Books/TIJ/"><font color="#000000">TIJ</font></a>不同，Core Java的侧重点放在<a href="http://java.sun.com/j2se/1.4.2/docs/api/"><font color="#000000">核心API</font></a>的使用，当你一时不知道某个类或组件怎么用时，除了查<a href="http://java.sun.com/j2se/1.4.2/docs/api/"><font color="#000000">API doc</font></a>以外，它也是个不错的选择。<br />     当然现成的例子别处还有不少，譬如<a href="http://java.sun.com/docs/books/tutorial/"><font color="#000000">The Java Tutorial</font></a>，<a href="http://javaalmanac.com/"><font color="#000000">Almanac</font></a>等，但有一本译成中文的手册常备在身边不是更好吗？<br /></font></font><font size="-1"><strong><font color="#cc0000">Java Network Programming<br /></font>Java 网络编程</strong><br />by <i>Elliotte Rusty Harold</i></p>
<table width="522">
<tbody>
<tr align="center">
<td><img height="110" src="http://www.kissjava.com/news/now/images/h00/h43/img200504051110559.gif" width="78" /><br /><font size="-1">[<a href="http://www.oreilly.com/catalog/javanp2/"><font color="#000000">本书主页</font></a>]</font> </td>
</tr>
</tbody>
</table>
<p><font color="#cc0000" size="-1"><b><u>书评：</u></b></font> <font size="-1">(2004-5-28) <br />     如果说Core Java是“大而全”的话，那么JNP就似乎应该称得上是“小而精”——其实也不算“小”了，它的内容真的是很丰富！不要忘记Harold的另一部名著“Java I/O”，这两本书几乎告诉你了有关于线程、<a href="http://java.sun.com/j2se/1.4.2/docs/guide/io/"><font color="#000000">I/O</font></a>、流操作、<a href="http://java.sun.com/j2se/1.4.2/docs/guide/net/"><font color="#000000">socket</font></a>等等一切……<br />     网络是实现分布式环境的基础，<a href="http://java.sun.com/"><font color="#000000">Java</font></a>既然声称是一种“跨平台的”“分布式计算语言”，网络应用与接口 必须足够健壮才行。幸运的是，<a href="http://java.sun.com/j2se/1.4.2/docs/api/"><font color="#000000">核心API</font></a>对包括<a href="http://java.sun.com/j2se/1.4.2/docs/guide/net/"><font color="#000000">socket</font></a>、<a href="http://java.sun.com/j2se/1.4.2/docs/guide/rmi/"><font color="#000000">RMI</font></a>的支持相当出色而且简单。 有人说<a href="http://java.sun.com/"><font color="#000000">Java</font></a>没有raw socket，因而无法进行IP层的访问，诚然如此，但这个代价却换得了<a href="http://java.sun.com/"><font color="#000000">Java</font></a>所更加注重的<a href="http://java.sun.com/j2se/1.4.2/docs/guide/security/"><font color="#000000">安全性</font></a>， 这是后话了……<br />     要是你不满足于仅仅照例子写一个自己的<a href="http://java.sun.com/j2se/1.4.2/docs/guide/net/"><font color="#000000">socket</font></a>实现，并且希望挖掘更多内幕的话，那么JNP想必不会让你失望。<br /></font><strong><font color="#cc0000">Graphic Java 2 &#8211; Mastering the JFC<br /></font>Java 2 图形设计</strong><br />by <i>David M. Geary</i></p>
<table width="522">
<tbody>
<tr>
<td align="center" width="50%"><img height="110" src="http://www.kissjava.com/news/now/images/h00/h43/img2005040511110911.jpg" width="78" /><br /><font size="-1">Vol 1: AWT<br />第一卷：AWT</font></td>
<td align="center" width="50%"><img height="110" src="http://www.kissjava.com/news/now/images/h00/h43/img2005040511111412.jpg" width="78" /><br /><font size="-1">Vol 2: Swing<br />第二卷：Swing</font></td>
</tr>
<tr>
<td align="center" colspan="2"><font size="-1">[本书主页 <a href="http://www.amazon.com/gp/reader/0130796662/ref=sib_dp_pt/102-8185550-1867348"><font color="#000000">1</font></a> <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0130796670/102-8185550-1867348?v=glance"><font color="#000000">2</font></a>]</font></td>
</tr>
</tbody>
</table>
<p><font color="#cc0000" size="-1"><b><u>书评：</u></b></font> <font size="-1">(2004-5-28) <br />     可能会有不少刚开始学程序设计的人醉心于花哨的GUI，我们不能说这是眼光短浅，图形界面设计并不是“a piece of cake”，现在的IDE还不能达到可视化的尽善尽美，我时常会为了实现界面上的一点小小的trick而花不少时间找代码。<a href="http://java.sun.com/"><font color="#000000">Java</font></a>生来就不适合做桌面系统吗？非也，以下内容可能会让你赞叹不已：<br />     ★<a href="http://www.sun.com/"><font color="#000000">SUN</font></a>正在极力打造的<a href="http://wwws.sun.com/software/javadesktopsystem/"><font color="#000000">Java Desktop System</font></a>★<br />     ★<a href="http://community.java.net/javadesktop/"><font color="#000000">JavaDesktop社区</font></a>★<br />     ★桌面应用程序集中营<a href="http://java.sun.com/products/jfc/tsc/sightings/"><font color="#000000">Swing Slightings</font></a>★<br />     如果你是一个热衷于GUI设计和图形图像处理的玩家，如果你希望深入了解<a href="http://java.sun.com/j2se/1.4.2/docs/guide/awt/"><font color="#000000">AWT</font></a>或<a href="http://java.sun.com/j2se/1.4.2/docs/guide/swing/"><font color="#000000">Swing</font></a>图形组件以及窗口事件模型，如果你还不满足这些，希望学习<a href="http://java.sun.com/j2se/1.4.2/docs/guide/2d/"><font color="#000000">Java 2D</font></a>这样的高级图形技术，这部书都是不错的选择。<br /></font><strong><font color="#cc0000">Java Security<br /></font>Java 安全</strong><br />by <i>Scott Oaks</i></p>
<table width="522">
<tbody>
<tr align="center">
<td><img height="110" src="http://www.kissjava.com/news/now/images/h00/h43/img2005040511111614.gif" width="78" /><br /><font size="-1">[<a href="http://www.oreilly.com/catalog/javasec2/"><font color="#000000">本书主页</font></a>]</font> </td>
</tr>
</tbody>
</table>
<p><font color="#cc0000" size="-1"><b><u>书评：</u></b></font> <font size="-1">(2004-5-29) <br />     因为自己专业上的原因，对<a href="http://java.sun.com/j2se/1.4.2/docs/guide/security/"><font color="#000000">安全性</font></a>需要作一点研究。<a href="http://java.sun.com/"><font color="#000000">Java</font></a>号称是“一种安全的平台”， 这种安全我想不仅是单单一个<a href="http://java.sun.com/j2se/1.4.2/docs/guide/security/spec/security-spec.doc1.html"><font color="#000000">sandbox模型</font></a>就能完全概括的，它还包括了许多成分，从核心级别到优秀的安全服务应用。要知道，<a href="http://java.sun.com/j2se/1.4.2/docs/guide/security/"><font color="#000000">安全性</font></a>是<a href="http://java.sun.com/j2ee/"><font color="#000000">J2EE</font></a>的一个重要支柱。<br />     本书与Helton所著Java Security Solutions都是研习<a href="http://java.sun.com/j2se/1.4.2/docs/guide/security/"><font color="#000000">Java安全性</font></a>的参考。 <br /><strong><font color="#cc0000">J2EE Security<br /></font></strong>by <i><a href="http://www.pankaj-k.net/"><font color="#000000">Pankaj Kumar</font></a></i></p>
<table width="522">
<tbody>
<tr align="center">
<td><img height="110" src="http://www.kissjava.com/news/now/images/h00/h43/img2005040511112216.jpg" width="78" /><br /><font size="-1">[<a href="http://www.j2ee-security.net/"><font color="#000000">本书主页</font></a>]</font> </td>
</tr>
</tbody>
</table>
<p><font color="#cc0000" size="-1"><b><u>书评：</u></b></font> <font size="-1">(2004-5-29) <br />     前些天刚从单位图书馆借到了这本书， 今年<a href="http://www.hp.com/"><font color="#000000">HP</font></a>刚出的新书，当然还没有中文版，看看封底， 哇，$49！我半个月的补助！不过看了一段时间，觉得写得还真是不错，作者提供了一些实用的工具程序， 功能比<a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/keytool.html"><font color="#000000">keytool</font></a>还要丰富。</font></font></p>
<p></font></p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/142/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>做网站，你的前途出路在那里？</title>
		<link>http://welog.org/blog/139</link>
		<comments>http://welog.org/blog/139#comments</comments>
		<pubDate>Tue, 19 Apr 2005 11:16:31 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%81%9a%e7%bd%91%e7%ab%99%ef%bc%8c%e4%bd%a0%e7%9a%84%e5%89%8d%e9%80%94%e5%87%ba%e8%b7%af%e5%9c%a8%e9%82%a3%e9%87%8c%ef%bc%9f/</guid>
		<description><![CDATA[[IMG=500,80,title]upload/11_084438_qnftyu.gif[/IMG] 无意中看到一篇文章~!转过来, 原文来自中国站长站论坛 [IMG=500,80,title]upload/11_084438_qnftyu.gif[/IMG] 无意中看到一篇文章~!转过来, 原文来自中国站长站论坛 做网站，你的前途出路在那里？ 大型娱乐站、旅游站、咨询站、门户站，中国某某第一站？？？？ 你知道你上面说的这几个字，如何能实现嘛？ 我来告诉你， 1年广告费用（价格都是2004年的） 首先， SINA 一天的首页 LOGO图片价格：15000/天 SOHU 一天的首页 LOGO图片价格：15000/天 163 一天的首页 LOGO图片价格：18000/天 SINA 一天的首页 通栏价格：16万/天 SOHU 一天的首页 通栏价格：15.2万/天 163 一天的首页 通栏价格：15.4万/天 SINA 首页 弹出页面价格：10万/小时 SOHU 首页 弹出页面价格：12万/小时 163 首页 弹出页面价格：11.5万/小时 SINA 首页 弹出窗口价格：13万/天 SOHU 首页 弹出窗口价格：14万/天 163 首页 弹出窗口价格：13万/天 SINA 所有用户邮件价格：12万/天 SOHU 所有用户邮件价格：10万/天 163 所有用户邮件价格：15万/天 这只是广告费用， [...]]]></description>
			<content:encoded><![CDATA[<p>[IMG=500,80,title]upload/11_084438_qnftyu.gif[/IMG]<br />
无意中看到一篇文章~!转过来, 原文来自中国站长站论坛<br />
<span id="more-139"></span><br />
[IMG=500,80,title]upload/11_084438_qnftyu.gif[/IMG]<br />
无意中看到一篇文章~!转过来, 原文来自中国站长站论坛</p>
<p>做网站，你的前途出路在那里？ </p>
<p>大型娱乐站、旅游站、咨询站、门户站，中国某某第一站？？？？</p>
<p>你知道你上面说的这几个字，如何能实现嘛？<br />
我来告诉你，<br />
1年广告费用（价格都是2004年的）</p>
<p>首先，<br />
SINA 一天的首页 LOGO图片价格：15000/天<br />
SOHU 一天的首页 LOGO图片价格：15000/天<br />
163 一天的首页 LOGO图片价格：18000/天</p>
<p>SINA 一天的首页 通栏价格：16万/天<br />
SOHU 一天的首页 通栏价格：15.2万/天<br />
163 一天的首页 通栏价格：15.4万/天</p>
<p>SINA 首页 弹出页面价格：10万/小时<br />
SOHU 首页 弹出页面价格：12万/小时<br />
163 首页 弹出页面价格：11.5万/小时</p>
<p>SINA 首页 弹出窗口价格：13万/天<br />
SOHU 首页 弹出窗口价格：14万/天<br />
163 首页 弹出窗口价格：13万/天 </p>
<p>SINA 所有用户邮件价格：12万/天<br />
SOHU 所有用户邮件价格：10万/天<br />
163 所有用户邮件价格：15万/天</p>
<p>这只是广告费用，</p>
<p>其次，你在机房的投资，</p>
<p>DELL 主服务器系统 40万/台（全套）<br />
IBM 主服务器系统 48万/台（全套）<br />
HP 没有主服务器系统 </p>
<p>你至少不上3台？1台网站，1台论坛，1台邮件</p>
<p>然后是人工，<br />
现在网络雇员的费用应该是</p>
<p>北京 高级管理人员 10-20万/月<br />
一般管理人员 1-5万/月<br />
技术骨干 50-200万/年<br />
一般技术 2000-5万/月<br />
普通维护 1000-8000/月<br />
普通雇员 600-2000月</p>
<p>上海 高级管理人员 20-40万/月<br />
一般管理人员 5万/月<br />
技术骨干 80-200万/年<br />
一般技术 5000-5万/月<br />
普通维护 3000-1万/月<br />
普通雇员 1000-4000月</p>
<p>而你的所谓门户，至少需要<br />
5个高级管理 财务/网络/技术/人事/客户<br />
5-10个技术骨干<br />
20个技术<br />
20个普通维护<br />
普通雇员建议不超过20</p>
<p>然后，计算得出你一年的投资成本为：500万-8000万RMB</p>
<p>计算你的赢利项目:</p>
<p>0.门户站？汗，不说你们也知道，<br />
1.旅游，你的本地有支柱实物产业嘛？比如酒店，宾馆，旅行社？<br />
2.信息广场？你们本地的信息港和人才市场的访问量是多少，剩下多少给你？<br />
3.网站建设？？这个要是能赚钱，那就奇怪了，任何搞网站的都知道，没有内部的人，没有关系，没有政府大企业的长期合同，搞网站建设不死也赚不了多少。<br />
4.礼品？网上商店？ 你知道现在有多少家吗？你打算推出什么特色来吸引客户？taobao?ebay?云网？等等大的卖家，都已经吃掉中国的9成市场了。<br />
5.网址站？你知道中国有多少网址站嘛？我不敢说自己能统计清楚，因为我根本就统计不出来数字，因为太多了，自己建立一个，当网站书签还可以。<br />
6.搜索站？技术在那里？全都是偷盗的，有什么意思？<br />
7.黄|色站？你简直不知道国外空间什么叫做黑？总之就是，钱给了，空间没有，或者是用不了多久，要不就是限制的很死，老是超过流量。就算你都没碰见，你以为搞黄站，就真的能赚多少钱？还有，安全？有的钱，有命花才可以啊，可别让国内CT抓到，否则&#8230;..<br />
8.短信站？你以为中国还有多少个傻子？？？<br />
9.广告联盟站？搞这个的，估计都把站长当做白痴了，你见过几个大站的个人网站，加入联盟的？<br />
10.游戏站？一个17173还不够，你们到底分析过17173的流量是为什么吗？那我告诉你，因为游戏新闻和攻略，可是你们的实力，能做到先17173更新吗？<br />
10-1.游戏外挂私服？这个偶没什么说的，用游戏就有外挂，看的远点的说，游戏公司甘心被你们这样搞吗？等国家游戏政策明了化，第一个倒霉的就是外挂站，然后就是私服.何况，这个赢利点也太小了，自己技术做不出外挂，做私服服务器贵，只是介绍等等，够难的，赢利回本难。<br />
11.博客？除非你真的有点文学功底，还有一群这样的朋友帮你，要不，没有特色，原创，也是完.<br />
12.下载站。别老是偷，这样是没前途的，看看人家天空为什么发展起来，最简单的道理，所有东西都是自己的，保证能下载，而且没什么太多广告烦人，不用注册，不用点广告才能下载<br />
13.大大小小的论坛站，建议没有特色就不要开论坛，否则，半年你就知道什么叫做惨淡经营了，看着自己论坛上空空的，就知道痛苦了<br />
14.其他的大大小小的，不是很多同类型的网站？能有几个真的混出来的，能站出来说我的站能养活我，养活我的网站。估计中国10成的网站里面，连0.1成都不到吧。</p>
<p>当然不能否定的是：<br />
如果你的广告能有预期的那么好，<br />
访问能有预期的那么好，<br />
产品卖的能有预期的那么好，</p>
<p>也就是说，你有大概3-20年的时间收回成本。</p>
<p>完了，个人看法，砖可以仍，</p>
<p>只是觉得你们这样，随便建一个网站，打上点东西，<br />
就叫<br />
什么什么全球<br />
什么什么亚洲<br />
什么什么中国<br />
什么什么唯一<br />
什么什么门户<br />
什么什么独创</p>
<p>的普通网站，不能放眼在实际情况，<br />
整和现在的网络气息，<br />
找到自己的突破口，</p>
<p>盲目的复制性<br />
HAO123</p>
<p>盲目的偷盗性<br />
新闻小偷</p>
<p>盲目的重合性<br />
是个论坛就有情感和灌水区</p>
<p>现在，是不可能建立一个网站，就赚钱的<br />
因为中国</p>
<p>只有一个 hao123 只有一个 17173<br />
而他们，一个被收购，一个被并购<br />
只有一个易趣，也只有一个taobao<br />
而他们，一个烧钱过亿，一个苦苦挣扎<br />
一个SOHU和一个163<br />
而他们，一个靠名气，一个靠游戏<br />
一个SINA和一个TOM<br />
而他们，一个是日本投资文化侵略(本站注：此说法有误)，一个是色|情新闻起家</p>
<p>要做，就要做别人没有的，和别人做的一样，<br />
在网络上，你能分到多少流量？</p>
<p>只是告诉大家，做网站，要理智，<br />
首先，你要爱一行，才能精通一行，不能是说赚钱，<br />
就来干，<br />
为了赚钱而赚钱的网站，有多少网民会信任经常来你的站呢？</p>
<p>需求决定供给，给网民真实的需要，<br />
他们才能拥护你的网站，</p>
<p>当有一天，你真能做到大站的时候，<br />
那种网民对你网站的认可，<br />
才是一种最大的 &#8220;赢利&#8221;<br />
是最值得 做网站的 去争取的，而为之努力的</p>
<p>网络最大的赢家是谁？<br />
网通和电信!!!!!!!!!!!!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/139/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Gmail升级到2G了！</title>
		<link>http://welog.org/blog/122</link>
		<comments>http://welog.org/blog/122#comments</comments>
		<pubDate>Sun, 03 Apr 2005 18:37:34 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/gmail%e5%8d%87%e7%ba%a7%e5%88%b02g%e4%ba%86%ef%bc%81/</guid>
		<description><![CDATA[好久没上用Gmail了！今天上去看了一下，发现我的MAIL变成2G了！哈哈看了一下功能，改进了很多，增加了可视化编辑器，不错！希望越做越好！ 好久没上用Gmail了！ 今天上去看了一下，发现我的MAIL变成2G了！哈哈 看了一下功能，改进了很多，增加了可视化编辑器，不错！ 希望越做越好！ &#8212;&#8211;]]></description>
			<content:encoded><![CDATA[<p>好久没上用Gmail了！<br />今天上去看了一下，发现我的MAIL变成2G了！哈哈<br />看了一下功能，改进了很多，增加了可视化编辑器，不错！<br />希望越做越好！<br />
<span id="more-122"></span><br />
好久没上用Gmail了！<br />
今天上去看了一下，发现我的MAIL变成2G了！哈哈<br />
看了一下功能，改进了很多，增加了可视化编辑器，不错！<br />
希望越做越好！</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/122/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>学会开放性的思维</title>
		<link>http://welog.org/blog/116</link>
		<comments>http://welog.org/blog/116#comments</comments>
		<pubDate>Sat, 19 Mar 2005 19:04:26 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%ad%a6%e4%bc%9a%e5%bc%80%e6%94%be%e6%80%a7%e7%9a%84%e6%80%9d%e7%bb%b4/</guid>
		<description><![CDATA[学会开放性的思维&#160;&#160;xpiloveyou(原作)&#160;&#160;在CSDN上看到这文章，引起一定程度的共鸣，共勉之。以下为转贴： 经常在论坛中看到一些问题：“我应该学习哪门语言？”“XX语言能做什么吗？”我对想对这类想法给一个我的见解。本文多少涉及到一些语言的评论，仅代表个人意见。 学会开放性的思维 xpiloveyou(原作) 在CSDN上看到这文章，引起一定程度的共鸣，共勉之。以下为转贴： 经常在论坛中看到一些问题：“我应该学习哪门语言？”“XX语言能做什么吗？”我对想对这类想法给一个我的见解。本文多少涉及到一些语言的评论，仅代表个人意见。 学会开放性的思维 我发现初学者最喜欢问的一个问题就是“我应该学什么语言？”。想不浪费时间学好一门语言然后就用这个语言解决所有问题。在提出我的见解前我先引用一段Eric Raymond的话： “如果你还不会任何计算机语言，我建议你从Python开始。它设计清晰，文档齐全，对初学者很合适。尽管是一门很好的初级语言，它不仅仅只是个玩具。它非常强大，灵活，也适合做大型项目。 但是记住，如果你只会一门语言，你将不会达到黑客所要求的技术水平，甚至也不能达到一个普通程序员的水平&#8212;你需要学会如何以一个通用的方法思考编程问题，独立于任何语言。要做一名真正的黑客，你需要学会如何在几天内通过一些手册，结合你现在所知，迅速掌握一门新语言。这意味着你应该学会几种不同的语言。如果要做一些重要的编程，你将不得不学习C语言，Unix的核心语言。其他对黑客而言比较重要的语言包括Perl和LISP。 Perl很实用，值得一学；它被广泛用于活动网页和系统管理，因此即便你从不用Perl写程序，至少也应该能读懂它。 LISP 值得学习是因为当你最终掌握了它你会得到丰富的经验；这些经验使你在以后的日子里成为一个更好的程序员，即使你实际上可能很少使用LISP本身。当然，实际上你最好四种都会。 (Python, C, Perl, an&#100; LISP). 除了是最重要的四种基本语言，它们还代表了四种非常不同的编程方法，每种都会让你受益非浅。” 大家看了这段话是否立刻就想按Eric Raymond的话从Pyton开始学习？或者学习他提出的四种中的C语言？且慢，我们注意这样几句话：“你需要学会如何以一个通用的方法思考编程问题，独立于任何语言。”“(Python, C, Perl, an&#100; LISP). 除了是最重要的四种基本语言，它们还代表了四种非常不同的编程方法，每种都会让你受益非浅。” 可以看出Eric Raymond提出四种语言实际是提出四种不同的编程思想。他想告诉大家的就是：开放的思维，不要局限在一个语言当中，即“通用的方法思考编程问题”。 也许有人反对说精通一门比懂很多而不精要好。确实我们必须精通一门，这个是可以根据自己需要来选择的。但不代表我们只需要学习一门语言，因为只懂一门语言很容易被它的局限性限制。C语言很灵活但是对数据的抽象处理不够。C++够强大也灵活了吧？它学习了C的灵活和高效以及Simula的抽象数据能力。可是C++的面向对象机制比不上Java。而当你学了Lisp以后你会发现原来程序还可以这样编，虽然C++也号称可扩展性，但Lisp的扩展性是C++所不能及的。而且Lisp是一种函数型语言，与面向机器的语言有着不同的思维方式，Java也从这里借用了不少思想。我觉得每一个语言都有最擅长的领域和不够的地方。没有一种语言真正通用，即使是C++，有些问题用C++来做实在有点吃力。这里一定有人有对C++痛苦的回忆。Java确实很优秀，适合分布式计算，但Java太安全了，可能不少有黑客气质的不喜欢它，因为它为了安全牺牲了很多灵活性。 我们应该学会开放性思维，看问题要看到最核心的问题，最根本的根本，而不会被其他的枝叶或表象所迷惑，做到这一步后才算比较成功。这样就会有一种分析问题的方法，学会怎么样把问题的表象剖开，看到它的本质。这时你碰到任何具体的问题，只要给点时间，都能轻而易举地解决。选择程序设计语言在这里只是选择不同工具。 并不是说工具不重要，但是如果没有一个很好的思想，那么这个工具你能用的好吗？而且解决一个问题并不是只有一种可能，或者这个问题的解决可能分几个部分而不同部分要不同的方法。这个时候没有开放性的思维，能解决好这个问题吗？就以Emacs为例。Emacs的底层代码是C写的而上层代码却是Lisp。也因此Emacs足够强大快速而且又有很强的可扩展性。如果仅采用单一的C编写，那么就是vi了。它很快也很灵活，但它扩展性怎么样？ 看到一些关于该选择什么语言的问题我觉得真可笑，不知道他们想的是学语言还是学着解决问题。我们学习编程只是为了学习写程序本身还是为了学会用编程解决问题呢？如果是前者，真好你是个历史学家，尤其是只用C和汇编的可以称为考古学家了。如果是后者，那么不必再问选择什么语言了，学会编程的思想最重要，选择一门语言然后学习它的思维方式。这时先选哪门就和应该上午吃苹果还是下午吃橘子一样了，你应该熟悉更多的工具。 补充一些就是独立于程序语言以外的编程思想，那就是算法，数据结构，和编码规范。不论你精通多少门语言，当遇到一个问题能否用最快最好的方法解决，那就是考验你的算法设计能力和数据结构的操作能力了。而用程序清晰的表述一个问题就是看你编码是否规范了。当你需要改进程序时你会发现一个编写清晰易读的程序维护起来要方便的多，这也有助于快速的解决问题。 &#8212;&#8211;]]></description>
			<content:encoded><![CDATA[<p>学会开放性的思维&nbsp;&nbsp;xpiloveyou(原作)&nbsp;<br />&nbsp;<br />在CSDN上看到这文章，引起一定程度的共鸣，共勉之。以下为转贴：</p>
<p>经常在论坛中看到一些问题：“我应该学习哪门语言？”“XX语言能做什么吗？”我对想对这类想法给一个我的见解。本文多少涉及到一些语言的评论，仅代表个人意见。<br />
<span id="more-116"></span><br />
学会开放性的思维  xpiloveyou(原作) </p>
<p>在CSDN上看到这文章，引起一定程度的共鸣，共勉之。以下为转贴：</p>
<p>经常在论坛中看到一些问题：“我应该学习哪门语言？”“XX语言能做什么吗？”我对想对这类想法给一个我的见解。本文多少涉及到一些语言的评论，仅代表个人意见。</p>
<p>学会开放性的思维</p>
<p>我发现初学者最喜欢问的一个问题就是“我应该学什么语言？”。想不浪费时间学好一门语言然后就用这个语言解决所有问题。在提出我的见解前我先引用一段Eric Raymond的话：</p>
<p>“如果你还不会任何计算机语言，我建议你从Python开始。它设计清晰，文档齐全，对初学者很合适。尽管是一门很好的初级语言，它不仅仅只是个玩具。它非常强大，灵活，也适合做大型项目。<br />
但是记住，如果你只会一门语言，你将不会达到黑客所要求的技术水平，甚至也不能达到一个普通程序员的水平&#8212;你需要学会如何以一个通用的方法思考编程问题，独立于任何语言。要做一名真正的黑客，你需要学会如何在几天内通过一些手册，结合你现在所知，迅速掌握一门新语言。这意味着你应该学会几种不同的语言。如果要做一些重要的编程，你将不得不学习C语言，Unix的核心语言。其他对黑客而言比较重要的语言包括Perl和LISP。 Perl很实用，值得一学；它被广泛用于活动网页和系统管理，因此即便你从不用Perl写程序，至少也应该能读懂它。 LISP 值得学习是因为当你最终掌握了它你会得到丰富的经验；这些经验使你在以后的日子里成为一个更好的程序员，即使你实际上可能很少使用LISP本身。当然，实际上你最好四种都会。 (Python, C, Perl, an&#100; LISP). 除了是最重要的四种基本语言，它们还代表了四种非常不同的编程方法，每种都会让你受益非浅。”</p>
<p>大家看了这段话是否立刻就想按Eric Raymond的话从Pyton开始学习？或者学习他提出的四种中的C语言？且慢，我们注意这样几句话：“你需要学会如何以一个通用的方法思考编程问题，独立于任何语言。”“(Python, C, Perl, an&#100; LISP). 除了是最重要的四种基本语言，它们还代表了四种非常不同的编程方法，每种都会让你受益非浅。” 可以看出Eric Raymond提出四种语言实际是提出四种不同的编程思想。他想告诉大家的就是：开放的思维，不要局限在一个语言当中，即“通用的方法思考编程问题”。</p>
<p>    也许有人反对说精通一门比懂很多而不精要好。确实我们必须精通一门，这个是可以根据自己需要来选择的。但不代表我们只需要学习一门语言，因为只懂一门语言很容易被它的局限性限制。C语言很灵活但是对数据的抽象处理不够。C++够强大也灵活了吧？它学习了C的灵活和高效以及Simula的抽象数据能力。可是C++的面向对象机制比不上Java。而当你学了Lisp以后你会发现原来程序还可以这样编，虽然C++也号称可扩展性，但Lisp的扩展性是C++所不能及的。而且Lisp是一种函数型语言，与面向机器的语言有着不同的思维方式，Java也从这里借用了不少思想。我觉得每一个语言都有最擅长的领域和不够的地方。没有一种语言真正通用，即使是C++，有些问题用C++来做实在有点吃力。这里一定有人有对C++痛苦的回忆。Java确实很优秀，适合分布式计算，但Java太安全了，可能不少有黑客气质的不喜欢它，因为它为了安全牺牲了很多灵活性。</p>
<p>我们应该学会开放性思维，看问题要看到最核心的问题，最根本的根本，而不会被其他的枝叶或表象所迷惑，做到这一步后才算比较成功。这样就会有一种分析问题的方法，学会怎么样把问题的表象剖开，看到它的本质。这时你碰到任何具体的问题，只要给点时间，都能轻而易举地解决。选择程序设计语言在这里只是选择不同工具。</p>
<p>并不是说工具不重要，但是如果没有一个很好的思想，那么这个工具你能用的好吗？而且解决一个问题并不是只有一种可能，或者这个问题的解决可能分几个部分而不同部分要不同的方法。这个时候没有开放性的思维，能解决好这个问题吗？就以Emacs为例。Emacs的底层代码是C写的而上层代码却是Lisp。也因此Emacs足够强大快速而且又有很强的可扩展性。如果仅采用单一的C编写，那么就是vi了。它很快也很灵活，但它扩展性怎么样？</p>
<p>看到一些关于该选择什么语言的问题我觉得真可笑，不知道他们想的是学语言还是学着解决问题。我们学习编程只是为了学习写程序本身还是为了学会用编程解决问题呢？如果是前者，真好你是个历史学家，尤其是只用C和汇编的可以称为考古学家了。如果是后者，那么不必再问选择什么语言了，学会编程的思想最重要，选择一门语言然后学习它的思维方式。这时先选哪门就和应该上午吃苹果还是下午吃橘子一样了，你应该熟悉更多的工具。</p>
<p>补充一些就是独立于程序语言以外的编程思想，那就是算法，数据结构，和编码规范。不论你精通多少门语言，当遇到一个问题能否用最快最好的方法解决，那就是考验你的算法设计能力和数据结构的操作能力了。而用程序清晰的表述一个问题就是看你编码是否规范了。当你需要改进程序时你会发现一个编写清晰易读的程序维护起来要方便的多，这也有助于快速的解决问题。<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/116/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>应聘java笔试时可能出现的问题</title>
		<link>http://welog.org/blog/128</link>
		<comments>http://welog.org/blog/128#comments</comments>
		<pubDate>Thu, 17 Mar 2005 21:42:55 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%ba%94%e8%81%98java%e7%ac%94%e8%af%95%e6%97%b6%e5%8f%af%e8%83%bd%e5%87%ba%e7%8e%b0%e7%9a%84%e9%97%ae%e9%a2%98/</guid>
		<description><![CDATA[[b]相信大家应聘的时候第一关就是笔试,即使是一位很有经验的工程师也不一定能够顺利通过,笔试不好,可能就无法进行面试,即使能够进行面试,考官对你的印象也不会很好,问的问题也会很多,估计很难吃的消,当然如果你是位很有经验的高手,也是有可能通过面试,但也会影响到你的待遇。[/b] 　　有可能有人会问,如果你真是个有一定开发经验的java工程师,怎么可能通不过笔试,其实这种可能性是存在的,而且很大,因为笔试的题目一般都很基础,有一些都是你平时不曾注意到的,可能你在开发中用到过,但不一定知道是什么,比如说:写jsp的肯定都用到过out,request等但不一定知道它们叫jsp的内置对象,如果考题问你:jsp的内置对象有哪些,你就不一定答的上来,再比如说:在开发javabean的时候一般都会用到ArrayList,HashMap等,但你不一定就知道ArrayList和Vector的区别,HashMap和Hashtable的区别,可能你在开发中都是混用,也不会报错,但效率会大大降低,如果在多线程开发中混用,可能就会产生错误.可能这些都是小问题,如果有一定基础,看看书就知道所以然了,但笔试中答不上来或答错就可能影响到你是否能够面试成功,如果面试公司是你非常想进的公司,因为这些细节问题而最终没能进去,岂不是很遗憾。 　　我写这篇文章就是让大部分的人少一份遗憾,多一份面试成功后的喜悦,也许有人会问:你才工作几年啊,就在这里作总结,你说的问题在笔试中可能出现吗?我要说的是我工作时间的确很短(2002年毕业),但大大小小的公司也面试了不少,有时候就是因为这些笔试上的小问题而没能进想进的公司,结果我自己总结了一下面试的得与失,重新看了看基础知识,结果成功应聘在一家很大的公司,拿着相同工作经验的比较高的工资,之所以我花时间要在这里总结,目的就是为了大家能进自己想进的公司,拿到自己要求的工资.也许这些总结比几篇技术文章带给你的收获都大,因为它直接和你的利益,前途挂钩.本文适用于有一定开发能力但java,j2ee基础欠扎实而又在找Java,jsp,j2ee开发,维护方面工作的朋友,如果你的时间充足建议还是全面的看看基础知识,如果时间紧张可以侧重看一下我下面列举出来的问题,最好能由点到面的看。 [b]相信大家应聘的时候第一关就是笔试,即使是一位很有经验的工程师也不一定能够顺利通过,笔试不好,可能就无法进行面试,即使能够进行面试,考官对你的印象也不会很好,问的问题也会很多,估计很难吃的消,当然如果你是位很有经验的高手,也是有可能通过面试,但也会影响到你的待遇。[/b] 　　有可能有人会问,如果你真是个有一定开发经验的java工程师,怎么可能通不过笔试,其实这种可能性是存在的,而且很大,因为笔试的题目一般都很基础,有一些都是你平时不曾注意到的,可能你在开发中用到过,但不一定知道是什么,比如说:写jsp的肯定都用到过out,request等但不一定知道它们叫jsp的内置对象,如果考题问你:jsp的内置对象有哪些,你就不一定答的上来,再比如说:在开发javabean的时候一般都会用到ArrayList,HashMap等,但你不一定就知道ArrayList和Vector的区别,HashMap和Hashtable的区别,可能你在开发中都是混用,也不会报错,但效率会大大降低,如果在多线程开发中混用,可能就会产生错误.可能这些都是小问题,如果有一定基础,看看书就知道所以然了,但笔试中答不上来或答错就可能影响到你是否能够面试成功,如果面试公司是你非常想进的公司,因为这些细节问题而最终没能进去,岂不是很遗憾。 　　我写这篇文章就是让大部分的人少一份遗憾,多一份面试成功后的喜悦,也许有人会问:你才工作几年啊,就在这里作总结,你说的问题在笔试中可能出现吗?我要说的是我工作时间的确很短(2002年毕业),但大大小小的公司也面试了不少,有时候就是因为这些笔试上的小问题而没能进想进的公司,结果我自己总结了一下面试的得与失,重新看了看基础知识,结果成功应聘在一家很大的公司,拿着相同工作经验的比较高的工资,之所以我花时间要在这里总结,目的就是为了大家能进自己想进的公司,拿到自己要求的工资.也许这些总结比几篇技术文章带给你的收获都大,因为它直接和你的利益,前途挂钩.本文适用于有一定开发能力但java,j2ee基础欠扎实而又在找Java,jsp,j2ee开发,维护方面工作的朋友,如果你的时间充足建议还是全面的看看基础知识,如果时间紧张可以侧重看一下我下面列举出来的问题,最好能由点到面的看。 好了,闲话不多说了,下面列举我笔试中遇到过的问题,以及这些问题的延伸,问题都比较基础,答案就不在这里说了,查查资料,看看书就能解决,我在此郑重声明:不是说懂了下面的问题就一定能够面试成功,就是什么高手了,就不用看书了,我的总结只是提高你笔试的成功率,在你基础不是很扎实,时间很紧的情况下帮助你成功笔试.切记:它不是万能的。 　　Java基础方面: 　　1、作用域public,protected,private,以及不写时的区别 　　2、ArrayList和Vector的区别,HashMap和Hashtable的区别 　　3、char型变量能不能定义为一个中文?为什么? 　　4、多线程有几种表示方法,都是什么?同步有几种实现方法,都是什么? 　　5、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么? 　　6、内部类的实现方式? 　　7、垃圾回收机制,如何优化程序? 　　8、float型float f=3.4是否正确? 　　Jsp方面 　　1、jsp有哪些内置对象?作用分别是什么? 　　2、jsp有哪些动作?作用分别是什么? 　　3、include的两种实现方式的区别? 　　4、两种跳转方式分别是什么?有什么区别? 　　Servlet方面 　　1、说一说Servlet的生命周期? 　　2、Servlet版本间(忘了问的是哪两个版本了)的不同? Jdbc、Jdo方面 　　1、可能会让你写一段Jdbc连Oracle的程序. 　　2、Class.forName的作用?为什么要用? 　　3、Jdo是什么? 　　Xml方面 　　1、xml有哪些解析技术?区别是什么? 　　2、你在项目中用到了xml技术的哪些方面?如何实现的? 　　3、用jdom解析xml文件时如何解决中文问题?如何解析? 　　EJB方面 　　1、EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别? 　　MVC方面 　　1、MVC的各个部分都有那些技术来实现?如何实现? 　　设计模式方面 　　1、开发中都用到了那些设计模式?用在什么场合? 　　JavaScript方面 　　1、如何校验数字型? 　　CORBA 　　1、CORBA是什么?用途是什么? 　　以上就是我的总结,可能不是全部,因为时间问题,如果能够记起来,我会再加上,有些问题描述的可能不准确,希望大家批评指正,问题都很基础,即使不知道,花上一点时间查找(csdn/java版)就能弄懂,希望对正在找工作的朋友有所帮助,有所提醒.一份正确率很高的笔试卷可能会为你的面试减轻负担,少问不少问题。 　　当然我还是要提醒从事软件开发,维护工作的朋友们要重视基础,善于总结和比较,对什么都能追根究底。 &#8212;&#8211;]]></description>
			<content:encoded><![CDATA[<p>[b]相信大家应聘的时候第一关就是笔试,即使是一位很有经验的工程师也不一定能够顺利通过,笔试不好,可能就无法进行面试,即使能够进行面试,考官对你的印象也不会很好,问的问题也会很多,估计很难吃的消,当然如果你是位很有经验的高手,也是有可能通过面试,但也会影响到你的待遇。[/b]</p>
<p>　　有可能有人会问,如果你真是个有一定开发经验的java工程师,怎么可能通不过笔试,其实这种可能性是存在的,而且很大,因为笔试的题目一般都很基础,有一些都是你平时不曾注意到的,可能你在开发中用到过,但不一定知道是什么,比如说:写jsp的肯定都用到过out,request等但不一定知道它们叫jsp的内置对象,如果考题问你:jsp的内置对象有哪些,你就不一定答的上来,再比如说:在开发javabean的时候一般都会用到ArrayList,HashMap等,但你不一定就知道ArrayList和Vector的区别,HashMap和Hashtable的区别,可能你在开发中都是混用,也不会报错,但效率会大大降低,如果在多线程开发中混用,可能就会产生错误.可能这些都是小问题,如果有一定基础,看看书就知道所以然了,但笔试中答不上来或答错就可能影响到你是否能够面试成功,如果面试公司是你非常想进的公司,因为这些细节问题而最终没能进去,岂不是很遗憾。</p>
<p>　　我写这篇文章就是让大部分的人少一份遗憾,多一份面试成功后的喜悦,也许有人会问:你才工作几年啊,就在这里作总结,你说的问题在笔试中可能出现吗?我要说的是我工作时间的确很短(2002年毕业),但大大小小的公司也面试了不少,有时候就是因为这些笔试上的小问题而没能进想进的公司,结果我自己总结了一下面试的得与失,重新看了看基础知识,结果成功应聘在一家很大的公司,拿着相同工作经验的比较高的工资,之所以我花时间要在这里总结,目的就是为了大家能进自己想进的公司,拿到自己要求的工资.也许这些总结比几篇技术文章带给你的收获都大,因为它直接和你的利益,前途挂钩.本文适用于有一定开发能力但java,j2ee基础欠扎实而又在找Java,jsp,j2ee开发,维护方面工作的朋友,如果你的时间充足建议还是全面的看看基础知识,如果时间紧张可以侧重看一下我下面列举出来的问题,最好能由点到面的看。<br />
<span id="more-128"></span><br />
[b]相信大家应聘的时候第一关就是笔试,即使是一位很有经验的工程师也不一定能够顺利通过,笔试不好,可能就无法进行面试,即使能够进行面试,考官对你的印象也不会很好,问的问题也会很多,估计很难吃的消,当然如果你是位很有经验的高手,也是有可能通过面试,但也会影响到你的待遇。[/b]</p>
<p>　　有可能有人会问,如果你真是个有一定开发经验的java工程师,怎么可能通不过笔试,其实这种可能性是存在的,而且很大,因为笔试的题目一般都很基础,有一些都是你平时不曾注意到的,可能你在开发中用到过,但不一定知道是什么,比如说:写jsp的肯定都用到过out,request等但不一定知道它们叫jsp的内置对象,如果考题问你:jsp的内置对象有哪些,你就不一定答的上来,再比如说:在开发javabean的时候一般都会用到ArrayList,HashMap等,但你不一定就知道ArrayList和Vector的区别,HashMap和Hashtable的区别,可能你在开发中都是混用,也不会报错,但效率会大大降低,如果在多线程开发中混用,可能就会产生错误.可能这些都是小问题,如果有一定基础,看看书就知道所以然了,但笔试中答不上来或答错就可能影响到你是否能够面试成功,如果面试公司是你非常想进的公司,因为这些细节问题而最终没能进去,岂不是很遗憾。</p>
<p>　　我写这篇文章就是让大部分的人少一份遗憾,多一份面试成功后的喜悦,也许有人会问:你才工作几年啊,就在这里作总结,你说的问题在笔试中可能出现吗?我要说的是我工作时间的确很短(2002年毕业),但大大小小的公司也面试了不少,有时候就是因为这些笔试上的小问题而没能进想进的公司,结果我自己总结了一下面试的得与失,重新看了看基础知识,结果成功应聘在一家很大的公司,拿着相同工作经验的比较高的工资,之所以我花时间要在这里总结,目的就是为了大家能进自己想进的公司,拿到自己要求的工资.也许这些总结比几篇技术文章带给你的收获都大,因为它直接和你的利益,前途挂钩.本文适用于有一定开发能力但java,j2ee基础欠扎实而又在找Java,jsp,j2ee开发,维护方面工作的朋友,如果你的时间充足建议还是全面的看看基础知识,如果时间紧张可以侧重看一下我下面列举出来的问题,最好能由点到面的看。</p>
<p>好了,闲话不多说了,下面列举我笔试中遇到过的问题,以及这些问题的延伸,问题都比较基础,答案就不在这里说了,查查资料,看看书就能解决,我在此郑重声明:不是说懂了下面的问题就一定能够面试成功,就是什么高手了,就不用看书了,我的总结只是提高你笔试的成功率,在你基础不是很扎实,时间很紧的情况下帮助你成功笔试.切记:它不是万能的。</p>
<p>　　Java基础方面:</p>
<p>　　1、作用域public,protected,private,以及不写时的区别</p>
<p>　　2、ArrayList和Vector的区别,HashMap和Hashtable的区别</p>
<p>　　3、char型变量能不能定义为一个中文?为什么?</p>
<p>　　4、多线程有几种表示方法,都是什么?同步有几种实现方法,都是什么?</p>
<p>　　5、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?</p>
<p>　　6、内部类的实现方式?</p>
<p>　　7、垃圾回收机制,如何优化程序?</p>
<p>　　8、float型float f=3.4是否正确?</p>
<p>　　Jsp方面</p>
<p>　　1、jsp有哪些内置对象?作用分别是什么?</p>
<p>　　2、jsp有哪些动作?作用分别是什么?</p>
<p>　　3、include的两种实现方式的区别?</p>
<p>　　4、两种跳转方式分别是什么?有什么区别?</p>
<p>　　Servlet方面</p>
<p>　　1、说一说Servlet的生命周期?</p>
<p>　　2、Servlet版本间(忘了问的是哪两个版本了)的不同?</p>
<p>Jdbc、Jdo方面</p>
<p>　　1、可能会让你写一段Jdbc连Oracle的程序.</p>
<p>　　2、Class.forName的作用?为什么要用?</p>
<p>　　3、Jdo是什么?</p>
<p>　　Xml方面</p>
<p>　　1、xml有哪些解析技术?区别是什么?</p>
<p>　　2、你在项目中用到了xml技术的哪些方面?如何实现的?</p>
<p>　　3、用jdom解析xml文件时如何解决中文问题?如何解析?</p>
<p>　　EJB方面</p>
<p>　　1、EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别?</p>
<p>　　MVC方面</p>
<p>　　1、MVC的各个部分都有那些技术来实现?如何实现?</p>
<p>　　设计模式方面</p>
<p>　　1、开发中都用到了那些设计模式?用在什么场合?</p>
<p>　　JavaScript方面</p>
<p>　　1、如何校验数字型?</p>
<p>　　CORBA</p>
<p>　　1、CORBA是什么?用途是什么? </p>
<p>　　以上就是我的总结,可能不是全部,因为时间问题,如果能够记起来,我会再加上,有些问题描述的可能不准确,希望大家批评指正,问题都很基础,即使不知道,花上一点时间查找(csdn/java版)就能弄懂,希望对正在找工作的朋友有所帮助,有所提醒.一份正确率很高的笔试卷可能会为你的面试减轻负担,少问不少问题。</p>
<p>　　当然我还是要提醒从事软件开发,维护工作的朋友们要重视基础,善于总结和比较,对什么都能追根究底。</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/128/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用JWhich工具管理CLASSPATH</title>
		<link>http://welog.org/blog/91</link>
		<comments>http://welog.org/blog/91#comments</comments>
		<pubDate>Tue, 15 Mar 2005 07:23:22 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e4%bd%bf%e7%94%a8jwhich%e5%b7%a5%e5%85%b7%e7%ae%a1%e7%90%86classpath/</guid>
		<description><![CDATA[从表面上看，Java的classpath（类路径）很简单，但一直以来它都是一个产生问题和混乱的根源。本文介绍classpath的基本知识、可能产生的问题，并提供了一个简单的classpath管理工具。&#160; 和Java类路径（classpath）打交道的过程中，开发者偶尔会遇到麻烦。这是因为，类装载器实际装入的是哪一个类有时并不显而易见，当应用程序的classpath包含大量的类和目录时，情况尤其严重。本文将提供一个工具，它能够显示出被装入类文件的绝对路径名。&#160; 从表面上看，Java的classpath（类路径）很简单，但一直以来它都是一个产生问题和混乱的根源。本文介绍classpath的基本知识、可能产生的问题，并提供了一个简单的classpath管理工具。 和Java类路径（classpath）打交道的过程中，开发者偶尔会遇到麻烦。这是因为，类装载器实际装入的是哪一个类有时并不显而易见，当应用程序的classpath包含大量的类和目录时，情况尤其严重。本文将提供一个工具，它能够显示出被装入类文件的绝对路径名。 一、Classpath基础 Java虚拟机（JVM）借助类装载器装入应用程序使用的类，具体装入哪些类根据当时的需要决定。CLASSPATH环境变量告诉类装载器到哪里去寻找第三方提供的类和用户定义的类。另外，你也可以使用JVM命令行参数-classpath分别为应用程序指定类路径，在-classpath中指定的类路径覆盖CLASSPATH环境变量中指定的值。 类路径中的内容可以是：文件的目录（包含不在包里面的类），包的根目录（包含已打包的类），包含类的档案文件（比如.zip文件或者.jar文件）。在Unix家族的系统上，类路径的各个项目由冒号分隔，在MS Windows系统上，它们由分号分隔。 类装载器以委托层次的形式组织，每一个类装载器有一个父类装载器。当一个类装载器被要求装载某个类时，它在尝试自己寻找类之前会把请求先委托给它的父类装载器。系统类装载器，即由安装在系统上的JDK或JRE提供的默认类装载器，通过CLASSPATH环境变量或者-classpath这个JVM命令行参数装入第三方提供的类或者用户定义的类。系统类装载器委托扩展类装载器装入使用Java Extension机制的类。扩展类装载器委托自举类装载器（bootstrap class loader）装入核心JDK类。 你可以自己开发特殊的类装载器，定制JVM如何动态地装入类。例如，大多数Servlet引擎使用定制的类装载器，动态地装入那些在classpath指定的目录内发生变化的类。 必须特别注意的是（也是令人吃惊的是），类装载器装入类的次序就是类在classpath中出现的次序。类装载器从classpath的第一项开始，依次检查每一个设定的目录和压缩文件，尝试找出待装入的类文件。当类装载器第一次找到具有指定名字的类时，它就把该类装入，classpath中所有余下的项目都被忽略。 看起来很简单，对吧？ 二、可能出现的问题 不管他们是否愿意承认，初学者和富有经验的Java开发者都一样，他们都曾经在某些时候（通常是在那些最糟糕的情形下）被冗长、复杂的classpath欺骗。应用程序所依赖的第三方类和用户定义类的数量逐渐增长，classpath也逐渐成了一个堆积所有可能的目录和档案文件名的地方。此时，类装载器首先装载的究竟是哪一个类也就不再显而易见。如果classpath中包含重复的类入口，这个问题尤其突出。前面已经提到，类装载器总是装载第一个它在classpath中找到的具有合适名字的类，从实际效果看，它“隐藏”了其他具有合适名字但在classpath中优先级较低的类。 如果不小心，你很容易掉进这个classpath的陷阱。当你结束了一天漫长的工作，最后为了让应用程序使用最好、最新的类，你把一个目录加入到了classpath，但与此同时，你却忘记了：在classpath的另一个具有更高优先级的目录下，存放着该类的另一个版本！ 三、一个简单的classpath工具 优先级问题是扁平路径声明方法与生俱来固有的问题，但它不是只有Java的classpath才有的问题。要解决这个问题，你只需站到富有传奇色彩的软件巨构的肩膀上：Unix操作系统有一个which命令，在命令参数中指定一个名字，which就会显示出当这个名字作为命令执行时执行文件的路径名。实际上，which命令是分析PATH变量，然后找出命令第一次出现的位置。对于Java的类路径管理来说，这应该也是一个好工具。在它的启发之下，我着手设计了一个Java工具JWhich。这个工具要求指定一个Java类的名字，然后根据classpath的指引，找出类装载器即将装载的类所在位置的绝对路径。 下面是一个JWhich的使用实例。它显示出当Java类装载器装载com.clarkware.ejb.ShoppingCartBean类时，该类第一次出现位置的绝对路径名，查找结果显示该类在某个目录下： &#62; java JWhich com.clarkware.ejb.ShoppingCartBean Class &#8216;com.clarkware.ejb.ShoppingCartBean&#8217; found in &#8216;/home/mclark/classes/com/clarkware/ejb/ShoppingCartBean.class&#8217; 下面是第二个JWhich的使用实例。它显示出当Java类装载器装载javax.servlet.http.HttpServlet类时，该类第一次出现位置的绝对路径名，查找结果显示该类在某个档案文件中： &#62; java JWhich javax.servlet.http.HttpServlet Class &#8216;javax.servlet.http.HttpServlet&#8217; found in &#8216;file:/home/mclark/lib/servlet.jar!/javax/servlet/http/HttpServlet.class&#8217; 四、JWhich的工作过程 要精确地测定classpath中哪一个类先被装载，你必须深入到类装载器的思考方法。事实上，具体实现的时候并没有听起来这么复杂——你只需直接询问类装载器就可以了！ 1: public class JWhich { 2: 3: /** 4: * 根据当前的classpath设置， 5: * [...]]]></description>
			<content:encoded><![CDATA[<p>从表面上看，Java的classpath（类路径）很简单，但一直以来它都是一个产生问题和混乱的根源。本文介绍classpath的基本知识、可能产生的问题，并提供了一个简单的classpath管理工具。&nbsp;</p>
<p>和Java类路径（classpath）打交道的过程中，开发者偶尔会遇到麻烦。这是因为，类装载器实际装入的是哪一个类有时并不显而易见，当应用程序的classpath包含大量的类和目录时，情况尤其严重。本文将提供一个工具，它能够显示出被装入类文件的绝对路径名。&nbsp;<br />
<span id="more-91"></span><br />
从表面上看，Java的classpath（类路径）很简单，但一直以来它都是一个产生问题和混乱的根源。本文介绍classpath的基本知识、可能产生的问题，并提供了一个简单的classpath管理工具。 </p>
<p>和Java类路径（classpath）打交道的过程中，开发者偶尔会遇到麻烦。这是因为，类装载器实际装入的是哪一个类有时并不显而易见，当应用程序的classpath包含大量的类和目录时，情况尤其严重。本文将提供一个工具，它能够显示出被装入类文件的绝对路径名。 </p>
<p>一、Classpath基础 </p>
<p>    Java虚拟机（JVM）借助类装载器装入应用程序使用的类，具体装入哪些类根据当时的需要决定。CLASSPATH环境变量告诉类装载器到哪里去寻找第三方提供的类和用户定义的类。另外，你也可以使用JVM命令行参数-classpath分别为应用程序指定类路径，在-classpath中指定的类路径覆盖CLASSPATH环境变量中指定的值。 </p>
<p>    类路径中的内容可以是：文件的目录（包含不在包里面的类），包的根目录（包含已打包的类），包含类的档案文件（比如.zip文件或者.jar文件）。在Unix家族的系统上，类路径的各个项目由冒号分隔，在MS Windows系统上，它们由分号分隔。 </p>
<p>    类装载器以委托层次的形式组织，每一个类装载器有一个父类装载器。当一个类装载器被要求装载某个类时，它在尝试自己寻找类之前会把请求先委托给它的父类装载器。系统类装载器，即由安装在系统上的JDK或JRE提供的默认类装载器，通过CLASSPATH环境变量或者-classpath这个JVM命令行参数装入第三方提供的类或者用户定义的类。系统类装载器委托扩展类装载器装入使用Java Extension机制的类。扩展类装载器委托自举类装载器（bootstrap class loader）装入核心JDK类。 </p>
<p>    你可以自己开发特殊的类装载器，定制JVM如何动态地装入类。例如，大多数Servlet引擎使用定制的类装载器，动态地装入那些在classpath指定的目录内发生变化的类。 </p>
<p>    必须特别注意的是（也是令人吃惊的是），类装载器装入类的次序就是类在classpath中出现的次序。类装载器从classpath的第一项开始，依次检查每一个设定的目录和压缩文件，尝试找出待装入的类文件。当类装载器第一次找到具有指定名字的类时，它就把该类装入，classpath中所有余下的项目都被忽略。 </p>
<p>    看起来很简单，对吧？ </p>
<p>二、可能出现的问题 </p>
<p>    不管他们是否愿意承认，初学者和富有经验的Java开发者都一样，他们都曾经在某些时候（通常是在那些最糟糕的情形下）被冗长、复杂的classpath欺骗。应用程序所依赖的第三方类和用户定义类的数量逐渐增长，classpath也逐渐成了一个堆积所有可能的目录和档案文件名的地方。此时，类装载器首先装载的究竟是哪一个类也就不再显而易见。如果classpath中包含重复的类入口，这个问题尤其突出。前面已经提到，类装载器总是装载第一个它在classpath中找到的具有合适名字的类，从实际效果看，它“隐藏”了其他具有合适名字但在classpath中优先级较低的类。 </p>
<p>    如果不小心，你很容易掉进这个classpath的陷阱。当你结束了一天漫长的工作，最后为了让应用程序使用最好、最新的类，你把一个目录加入到了classpath，但与此同时，你却忘记了：在classpath的另一个具有更高优先级的目录下，存放着该类的另一个版本！ </p>
<p>三、一个简单的classpath工具 </p>
<p>    优先级问题是扁平路径声明方法与生俱来固有的问题，但它不是只有Java的classpath才有的问题。要解决这个问题，你只需站到富有传奇色彩的软件巨构的肩膀上：Unix操作系统有一个which命令，在命令参数中指定一个名字，which就会显示出当这个名字作为命令执行时执行文件的路径名。实际上，which命令是分析PATH变量，然后找出命令第一次出现的位置。对于Java的类路径管理来说，这应该也是一个好工具。在它的启发之下，我着手设计了一个Java工具JWhich。这个工具要求指定一个Java类的名字，然后根据classpath的指引，找出类装载器即将装载的类所在位置的绝对路径。 </p>
<p>    下面是一个JWhich的使用实例。它显示出当Java类装载器装载com.clarkware.ejb.ShoppingCartBean类时，该类第一次出现位置的绝对路径名，查找结果显示该类在某个目录下： </p>
<p>&gt; java JWhich com.clarkware.ejb.ShoppingCartBean </p>
<p>Class &#8216;com.clarkware.ejb.ShoppingCartBean&#8217; found in<br />
&#8216;/home/mclark/classes/com/clarkware/ejb/ShoppingCartBean.class&#8217; </p>
<p>    下面是第二个JWhich的使用实例。它显示出当Java类装载器装载javax.servlet.http.HttpServlet类时，该类第一次出现位置的绝对路径名，查找结果显示该类在某个档案文件中： </p>
<p>&gt; java JWhich javax.servlet.http.HttpServlet </p>
<p>Class &#8216;javax.servlet.http.HttpServlet&#8217; found in<br />
&#8216;file:/home/mclark/lib/servlet.jar!/javax/servlet/http/HttpServlet.class&#8217; </p>
<p>四、JWhich的工作过程 </p>
<p>    要精确地测定classpath中哪一个类先被装载，你必须深入到类装载器的思考方法。事实上，具体实现的时候并没有听起来这么复杂——你只需直接询问类装载器就可以了！ </p>
<p>1: public class JWhich {<br />
2:<br />
3: /**<br />
4: * 根据当前的classpath设置，<br />
5: * 显示出包含指定类的类文件所在<br />
6: * 位置的绝对路径<br />
7: *<br />
8: * @param className<br />
9: */<br />
10: public static void which(String className) {<br />
11:<br />
12: if (!className.startsWith(&#8220;/&#8221;)) {<br />
13: className = &#8220;/&#8221; + className;<br />
14: }<br />
15: className = className.replace(&#8216;.&#8217;, &#8216;/&#8217;);<br />
16: className = className + &#8220;.class&#8221;;<br />
17:<br />
18: java.net.URL classUrl =<br />
19: new JWhich().getClass().getResource(className);<br />
20:<br />
21: if (classUrl != null) {<br />
22: System.out.println(&#8221; Class &#8216;&#8221; + className +<br />
23: &#8220;&#8216; found in  &#8216;&#8221; + classUrl.getFile() + &#8220;&#8216;&#8221;);<br />
24: } else {<br />
25: System.out.println(&#8221; Class &#8216;&#8221; + className +<br />
26: &#8220;&#8216; not found in  &#8216;&#8221; +<br />
27: System.getProperty(&#8220;java.class.path&#8221;) + &#8220;&#8216;&#8221;);<br />
28: }<br />
29: }<br />
30:<br />
31: public static void main(String args[]) {<br />
32: if (args.length &gt; 0) {<br />
33: JWhich.which(args[0]);<br />
34: } else {<br />
35: System.err.println(&#8220;Usage: java JWhich &#8220;);<br />
36: }<br />
37: }<br />
38: } </p>
<p>    首先，你必须稍微调整一下类的名字以便类装载器能够接受（12-16行）。在类的名字前面加上一个“/”表示要求类装载器对classpath中的类名字进行逐字精确匹配，而不是尝试隐含地加上调用类的包名字前缀。把所有“.”转换为“/”的目的是，按照类装载器的要求，把类名字格式化成一个合法的URL资源名。 </p>
<p>    接下来，程序向类装载器查询资源，这个资源的名字必须和经过适当格式化的类名字匹配（18-19行）。每一个Class对象维护着一个对装载它的ClassLoader对象的引用，所以这里是向装载JWhich类的类装载器查询。Class.getResource()方法实际上委托装入该类的类装载器，返回一个用于读取类文件资源的URL；或者，当指定的类名字不能在当前的classpath中找到时，Class.getResource()方法返回null。 </p>
<p>    最后，如果当前的classpath中能够找到指定的类，则程序显示包含该类的类文件所在位置的绝对路径名（21-24行）。作为一种调试辅助手段，如果当前classpath中不能找到指定的类，则程序获取java.class.path系统属性并显示当前的classpath（24-28行）。 </p>
<p>    很容易想象，在使用Servlet引擎classpath的Java Servlet中，或者在使用EJB服务器classpath的EJB组件中，上面这段简单的代码是如何运作。例如，如果JWhich类是由Servlet引擎的定制类装载器装入，那么程序将用Servlet引擎的类装载器去寻找指定的类。如果Servlet引擎的类装载器不能找到类文件，它将委托它的父类装载器。一般地，当JWhich被某个类装载器装入时，它能够找出当前类装载器以及所有其父类装载器所装入的所有类。 </p>
<p>    【结束语】如果需要是所有发明之母，那么帮助我们管理Java类路径的工具可以说迟到了很长时间。Java新闻组和邮件列表中充塞着许多有关classpath的问题，现在JWhich为我们提供了一个简单却强大的工具，帮助我们在任何环境中彻底玩转Java类路径. 【参考资源】 </p>
<p>JWhich的全功能版，包含一个classpath检验器： </p>
<p>http://www.clarkware.com/software/jwhich.zip</p>
<p>Sun JDK的官方文档，以及在各种官方支持的平台上有关classpath的说明： </p>
<p>http://java.sun.com/j2se/1.3/docs/t&#8230;ingclasses.html</p>
<p>关于在Windows和Unix上设置classpath的详细说明，参见： </p>
<p>Unix： </p>
<p>http://java.sun.com/j2se/1.3/docs/t.http://www.kissjava.com/doc/J2SE/javain/images/h00/h41/classpath.html</p>
<p>Windows： </p>
<p>http://java.sun.com/j2se/1.3/docs/t.http://www.kissjava.com/doc/J2SE/javain/images/h00/h41/classpath.html</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/91/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在客户端生成word文件</title>
		<link>http://welog.org/blog/90</link>
		<comments>http://welog.org/blog/90#comments</comments>
		<pubDate>Tue, 15 Mar 2005 07:22:46 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%9c%a8%e5%ae%a2%e6%88%b7%e7%ab%af%e7%94%9f%e6%88%90word%e6%96%87%e4%bb%b6/</guid>
		<description><![CDATA[在web-oa系统中,公文管理好象不可或缺,有时需要从数据库中查询一些数据以某种格式输出来，并以word文档的形式展现，有时许多word文档保存到数据库中的某个表的Blob字段里，服务器再把保存在Blob字段中的图片文件展现给用户。通过网上查找发现很少有关于此类的文章，现在整理起来供大家参考。 &#160; 在web-oa系统中,公文管理好象不可或缺,有时需要从数据库中查询一些数据以某种格式输出来，并以word文档的形式展现，有时许多word文档保存到数据库中的某个表的Blob字段里，服务器再把保存在Blob字段中的图片文件展现给用户。通过网上查找发现很少有关于此类的文章，现在整理起来供大家参考。 1 在client端直接生成word文档 在jsp页面上生成word文档非常简单，只需把contentType=”text/html”改为contentType=&#8221;application/msword; charset=gb2312&#8243;即可，代码如下: 通过设置可以使原来页面的内容在word中表现出来。 如果需要把word文档下载下来，只需在jsp页面上面加上如下代码： 其中filename.doc中filename是要下载的word文档的文件名，可以通过来自行定制，如下 .doc&#8221;); %&#62; 这样提供一个提示信息供用户选择如下图所示 小技巧：如果程序员需要在生成word文档的时候按照自己预先在word上设计好的格式，可以复制word格式然后粘贴到frontpage中，取html代码贴到jsp页面即可。 2 在客户端输出存在数据库中的word实体 这里只讨论在client输出oracle中BLOB字段中的word文档实体。其中调用了类getBlobBean，该类提供了从oracle中取出blob功能，代码如下： package yourpackage; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import o&#114;acle.sql.*; import beans.yourbeanpackage. getBlobBean; /** * Title: * Description: * Copyright: Copyright (c) 2004 * Company: * @author not attributable * @version 1.0 */ public class GetBlobServlet1 [...]]]></description>
			<content:encoded><![CDATA[<p>在web-oa系统中,公文管理好象不可或缺,有时需要从数据库中查询一些数据以某种格式输出来，并以word文档的形式展现，有时许多word文档保存到数据库中的某个表的Blob字段里，服务器再把保存在Blob字段中的图片文件展现给用户。通过网上查找发现很少有关于此类的文章，现在整理起来供大家参考。</p>
<p>&nbsp;<br />
<span id="more-90"></span><br />
在web-oa系统中,公文管理好象不可或缺,有时需要从数据库中查询一些数据以某种格式输出来，并以word文档的形式展现，有时许多word文档保存到数据库中的某个表的Blob字段里，服务器再把保存在Blob字段中的图片文件展现给用户。通过网上查找发现很少有关于此类的文章，现在整理起来供大家参考。</p>
<p>1 在client端直接生成word文档<br />
在jsp页面上生成word文档非常简单，只需把contentType=”text/html”改为contentType=&#8221;application/msword; charset=gb2312&#8243;即可，代码如下:</p>
<p>通过设置可以使原来页面的内容在word中表现出来。</p>
<p>如果需要把word文档下载下来，只需在jsp页面上面加上如下代码：</p>
<p>其中filename.doc中filename是要下载的word文档的文件名，可以通过来自行定制，如下</p>
<p>.doc&#8221;);</p>
<p>%&gt;</p>
<p>这样提供一个提示信息供用户选择如下图所示</p>
<p>小技巧：如果程序员需要在生成word文档的时候按照自己预先在word上设计好的格式，可以复制word格式然后粘贴到frontpage中，取html代码贴到jsp页面即可。</p>
<p>2 在客户端输出存在数据库中的word实体<br />
这里只讨论在client输出oracle中BLOB字段中的word文档实体。其中调用了类getBlobBean，该类提供了从oracle中取出blob功能，代码如下：</p>
<p>package yourpackage;</p>
<p>import javax.servlet.*;</p>
<p>import javax.servlet.http.*;</p>
<p>import java.io.*;</p>
<p>import java.util.*;</p>
<p>import o&#114;acle.sql.*;</p>
<p>import beans.yourbeanpackage. getBlobBean;</p>
<p>/**</p>
<p> *
<p>Title: </p>
<p> *
<p>Description: </p>
<p> *
<p>Copyright: Copyright (c) 2004</p>
<p> *
<p>Company: </p>
<p> * @author not attributable</p>
<p> * @version 1.0</p>
<p> */</p>
<p>public class GetBlobServlet1 extends HttpServlet {</p>
<p>//设置输出内容类型，这个设置很重要,否则客户端浏览器不能识别输出内容,导致弹出下载的对话框。</p>
<p>  private static final String CONTENT_TYPE = &#8220;application/msword;charset=gb2312&#8243;;</p>
<p>  //Initialize global variables</p>
<p>  public void init() throws ServletException {</p>
<p>  }</p>
<p>  //Process the HTTP Get request</p>
<p>  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {</p>
<p>    response.setContentType(CONTENT_TYPE);</p>
<p>    perform(request,response);</p>
<p>  }</p>
<p>  public void perform(HttpServletRequest request, HttpServletResponse response){</p>
<p>try{</p>
<p>//该类功能是从oracle哭中取出blob实体</p>
<p>      getBlobBean getBlob=new getBlobBean();</p>
<p>      OutputStream sos = response.getOutputStream();</p>
<p>      getBlob.connFunction();</p>
<p>oracle.sql.BLOB blob=getBlob.getBlob(&#8220;cehui&#8221;);</p>
<p>//输出word文档</p>
<p>if(blob!=null){</p>
<p>        InputStream pi = blob.getBinaryStream();</p>
<p>        int blobsize =(int)blob.length();</p>
<p>        byte[] blobbytes = new byte[blobsize];</p>
<p>        int bytesRead = 0;</p>
<p>        while ((bytesRead = pi.read(blobbytes)) != -1) {</p>
<p>          sos.write(blobbytes, 0, bytesRead);</p>
<p>        }</p>
<p>        pi.close();</p>
<p>        sos.flush();</p>
<p>        sos.close();</p>
<p>      }</p>
<p>      getBlob.dro&#112;ConnFunction();</p>
<p>    }catch(Exception e){</p>
<p>      System.out.println(e.toString());</p>
<p>    }</p>
<p>  }</p>
<p>  //Clean up resources</p>
<p>  public void destroy() {</p>
<p>  }</p>
<p>}</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/90/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>轻松胜任在Java中处理Excel表格</title>
		<link>http://welog.org/blog/88</link>
		<comments>http://welog.org/blog/88#comments</comments>
		<pubDate>Tue, 15 Mar 2005 07:21:37 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e8%bd%bb%e6%9d%be%e8%83%9c%e4%bb%bb%e5%9c%a8java%e4%b8%ad%e5%a4%84%e7%90%86excel%e8%a1%a8%e6%a0%bc/</guid>
		<description><![CDATA[概要 &#160;&#160;&#160;&#160;&#160;&#160;&#160;许多机构都使用微软Excel表格作为信息交换的方式，众多的非专业编程人员、商业分析师和项目经理都能熟练的运用该技术。而使用Java从Excel文档中分析、搜集、巩固数据的能力则证明是很有用途的。Jakarta&#160;POI(Poor&#160;Obfuscation&#160;Implementation，无困惑实现)使得程序员能够迅速完成这些任务。POI可以用来完成在纯Java中处理基于微软OLE（对象链接和嵌入）技术的文件格式到复合文档格式（如Microsoft&#160;Excel，Microsoft&#160;Word等软件使用的格式）的交换。本文对POI进行了剖析并说明了如何使用Java读写Microsoft&#160;Excel&#160;文档，还提供了一个使用POI&#160;API的有趣实例。 概要 许多机构都使用微软Excel表格作为信息交换的方式，众多的非专业编程人员、商业分析师和项目经理都能熟练的运用该技术。而使用Java从Excel文档中分析、搜集、巩固数据的能力则证明是很有用途的。Jakarta POI(Poor Obfuscation Implementation，无困惑实现)使得程序员能够迅速完成这些任务。POI可以用来完成在纯Java中处理基于微软OLE（对象链接和嵌入）技术的文件格式到复合文档格式（如Microsoft Excel，Microsoft Word等软件使用的格式）的交换。本文对POI进行了剖析并说明了如何使用Java读写Microsoft Excel 文档，还提供了一个使用POI API的有趣实例。 正文 无论你手头上的资料是资产平稳表、下载的帐户信息、帐单还是工资条，它们都可能最终输入Microsoft Excel备用。即使不是专业IT人士，人们也会得心应手的使用Excel这一数据交换技术。Jakarta POI API对Java程序员来说是一个实现轻松访问微软文档格式的妙方。Jakarta POI中最成熟的API就是HSSF（Horrible Spreadsheet Format）API，它用来访问Excel文档。 在本文中，我将带您一起领略创建和读取Excel文档，以及使用字体和单元格样式的各个步骤——这一切都在Java中完成。 POI 术语表 下面列出了和POI相关的关键术语： l POIFS (Poor Obfuscation Implementation File System): 读、写OLE到复合文档格式的API组。 l HSSF (Horrible Spreadsheet Format): 读写Microsoft Excel的API。 l HDF (Horrible document．nbspFormat): 读写Microsoft Word 97的API。 l HPSF (Horrible Property Set Format): 读取属性设定的API。 创建Excel文档 Jakarta [...]]]></description>
			<content:encoded><![CDATA[<p>概要</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;许多机构都使用微软Excel表格作为信息交换的方式，众多的非专业编程人员、商业分析师和项目经理都能熟练的运用该技术。而使用Java从Excel文档中分析、搜集、巩固数据的能力则证明是很有用途的。Jakarta&nbsp;POI(Poor&nbsp;Obfuscation&nbsp;Implementation，无困惑实现)使得程序员能够迅速完成这些任务。POI可以用来完成在纯Java中处理基于微软OLE（对象链接和嵌入）技术的文件格式到复合文档格式（如Microsoft&nbsp;Excel，Microsoft&nbsp;Word等软件使用的格式）的交换。本文对POI进行了剖析并说明了如何使用Java读写Microsoft&nbsp;Excel&nbsp;文档，还提供了一个使用POI&nbsp;API的有趣实例。<br />
<span id="more-88"></span><br />
概要</p>
<p>       许多机构都使用微软Excel表格作为信息交换的方式，众多的非专业编程人员、商业分析师和项目经理都能熟练的运用该技术。而使用Java从Excel文档中分析、搜集、巩固数据的能力则证明是很有用途的。Jakarta POI(Poor Obfuscation Implementation，无困惑实现)使得程序员能够迅速完成这些任务。POI可以用来完成在纯Java中处理基于微软OLE（对象链接和嵌入）技术的文件格式到复合文档格式（如Microsoft Excel，Microsoft Word等软件使用的格式）的交换。本文对POI进行了剖析并说明了如何使用Java读写Microsoft Excel 文档，还提供了一个使用POI API的有趣实例。</p>
<p>正文</p>
<p>       无论你手头上的资料是资产平稳表、下载的帐户信息、帐单还是工资条，它们都可能最终输入Microsoft Excel备用。即使不是专业IT人士，人们也会得心应手的使用Excel这一数据交换技术。Jakarta POI API对Java程序员来说是一个实现轻松访问微软文档格式的妙方。Jakarta POI中最成熟的API就是HSSF（Horrible Spreadsheet Format）API，它用来访问Excel文档。</p>
<p>       在本文中，我将带您一起领略创建和读取Excel文档，以及使用字体和单元格样式的各个步骤——这一切都在Java中完成。</p>
<p>POI 术语表</p>
<p>下面列出了和POI相关的关键术语：</p>
<p>l        POIFS (Poor Obfuscation Implementation File System): 读、写OLE到复合文档格式的API组。</p>
<p>l        HSSF (Horrible Spreadsheet Format): 读写Microsoft Excel的API。</p>
<p>l        HDF (Horrible document．nbspFormat): 读写Microsoft Word 97的API。</p>
<p>l        HPSF (Horrible Property Set Format): 读取属性设定的API。</p>
<p>创建Excel文档</p>
<p>Jakarta OPI能够用来程式化的创建Excel文档，主要步骤如下：</p>
<p>l        创建文件 workbook: HSSFWorkbook workbook = new HSSFWorkbook();</p>
<p>l        在 workbook中创建一个名为“Java Excels”的工作表worksheet:       HSSFSheet sheet = workbook.cr&#101;ateSheet(“Java Excels”);</p>
<p>l        在表sheet中创建新行row：HSSFRow row = sheet.cr&#101;ateRow((short)0);</p>
<p>l        在行row总创建单元格cell：HSSFCell cell = row.cr&#101;ateCell((short)0);</p>
<p>l        在单元格内置入内容：cell.setCellvalue(“Have a Cup of XL”);</p>
<p>l        将workbook写入文件：workbook.write(fileOutputStream);</p>
<p>从Excel文档中读取数据</p>
<p>在这个例子中，您将看到如何从Excel文档中读取数值。</p>
<p>让我们想象一个将要用到的Excel表格：</p>
<p>Employee Name<br />
 Specialization<br />
 Designation</p>
<p>Anbu<br />
 Programming<br />
 Senior Programmer</p>
<p>Jason<br />
 Banking Industry<br />
 Business Analyst</p>
<p>Ramesh<br />
 Databases<br />
 DBA</p>
<p>MackyB<br />
 Accounting<br />
 Delivery Head</p>
<p>读取Excel表的关键步骤：</p>
<p>l        创建一个对Excel文档的引用：HSSFWorkbook workbook= new HSSFWorkbook(new FileInputStream(fileToBeRead));</p>
<p>l        表的引用：缺省情况下，对Excel文档中的第一个表的引用标识为“0”：HSSFSheet sheet = workbook.getSheetAt(0)；一个表也可以通过它的名字来引用。我们假设这个表格的名字为“Sheet1”。它可以被这样引用：HSSFSheet sheet = workbook.getSheet(“Sheet1”);</p>
<p>l        引用行：HSSFRow row = sheet.getRow(0);</p>
<p>l        引用行中的一个单元格：HSSFCell cell = row.getCell((short)0);</p>
<p>l        取得单元格中的数据值：cell.getStringCellvalue();</p>
<p>实例：</p>
<p>现在假设我们想要得到一个Jar文件中所有公开方法和数据成员的信息，所有这些信息能够汇集到一个单独文件的表中最好。我们期望在表的第一列看到类的名称，第二列是字段，第三列为方法，每一列的头行都示以红色。</p>
<p>程序要完成如下动作：</p>
<p>l        解压缩Jar文件</p>
<p>l        读取Jar文件中所有的类文件代码</p>
<p>l        装载这些类</p>
<p>l        通过反射机制，得到方法和字段的名称</p>
<p>l        使用Jakarta POI将类的方法和字段等信息写入Excel表中</p>
<p>现在我们集中关注使用Jakarta POI最有意思的几步：</p>
<p>l        创建一个新的Excel文档：workbook = new HSSFWorkbook();</p>
<p>l        在Excel文档中创建一个工作表并为此表命名：sheet = workbook.cr&#101;ateSheet(“Java Class Info”);</p>
<p>l        设置头三列的宽度：sheet.setColumnWidth((short)0, (short)1000);</p>
<p>l        创建头行：HSSFRow row = sheet.cr&#101;ateRow((short)0);</p>
<p>l        创建字体和单元格的样式：</p>
<p>HSSFFont font = workbook.cr&#101;ateFont();</p>
<p>Font.setColor(HSSFFont.COLOR_RED);</p>
<p>Font.setBoldWeight(HSSFFont.BOLDWEIGHT_BOLD);</p>
<p>//cr&#101;ate the style</p>
<p>       HSSFCellStyle cellStyle = workbook.cr&#101;ateCellStyle();</p>
<p>       cellStyle.setFont(font);</p>
<p>l        使用单元格样式：</p>
<p>HSSFCell cell = row.cr&#101;ateCell((short) 0);</p>
<p>cell.setCellStyle(cellStyle);</p>
<p>cell.setCellType(HSSFCell.CELL_TYPE_STRING);</p>
<p>cell.setCellvalue(“Class Name”);</p>
<p>l        输出文件：</p>
<p>FileOutputStream fOut = new FileOutputStream(outputFile);</p>
<p>//Write the Excel sheet</p>
<p>workbook.write(fOut);</p>
<p>fOut.flush();</p>
<p>//Done deal. Close it.</p>
<p>       fOut.close();</p>
<p>总结</p>
<p>如本文所示，Java开发者无需再在面对Excel表格时畏缩不前了。我们能够轻松对付Excel文档。喝上一杯咖啡，把Excel置于脑后。</p>
<p>关于作者</p>
<p>Elango Sundaram是一位资深的Java程序员，致力于研究分布式计算体系、基于代理的技术和面向对象方法论。他拥有弗吉尼亚科技大学的硕士学位并撰写过Distributed computing using Jini和Websphere Studio Application Developer Tail Plug-in (for WSAD 4.0)。</p>
<p>参考文献</p>
<p>本文源代码的下载：</p>
<p>http://www.javaworld.com/javaworld/jw-03-2004/poi/jw-0322-poi.zip</p>
<p>Jakarta POI 站点: </p>
<p>http://jakarta.apache.org/poi/</p>
<p>更多关于POI, 请参考 &#8220;It&#8217;s POI-fect,&#8221; Tony Sintes (JavaWorld, May 2002): </p>
<p>http://www.javaworld.com/javaworld/javaqa/2002-05/01-qa-0503-excel3.html</p>
<p>更多Java工具 , 请浏览 JavaWorld 开发工具版：</p>
<p>http://www.javaworld.com/channel_content/jw-tools-index.shtml</p>
<p>更多开源工具, 请参考Erik Swenson&#8217;s Open Source Profile 专栏： </p>
<p>http://www.javaworld.com/columns/jw-opensource-index.shtml</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/88/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>浅谈 Java 中 this 的使用</title>
		<link>http://welog.org/blog/87</link>
		<comments>http://welog.org/blog/87#comments</comments>
		<pubDate>Tue, 15 Mar 2005 07:19:22 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e6%b5%85%e8%b0%88-java-%e4%b8%ad-this-%e7%9a%84%e4%bd%bf%e7%94%a8/</guid>
		<description><![CDATA[1.&#160;this是指当前对象自己。当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。如下面这个例子中: public&#160;class&#160;A&#160;{ 1. this是指当前对象自己。 当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。如下面这个例子中: public class A { String s = &#8220;Hello&#8221;; public A(String s) { System.out.println(&#8220;s = &#8221; + s); System.out.println(&#8220;1 -&#62; this.s = &#8221; + this.s); this.s = s; System.out.println(&#8220;2 -&#62; this.s = &#8221; + this.s); } public static void main(String[] args) { new A(&#8220;HelloWorld!&#8221;); } } 运行结果： s = HelloWorld! 1 [...]]]></description>
			<content:encoded><![CDATA[<p>1.&nbsp;this是指当前对象自己。<br />当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。如下面这个例子中:</p>
<p>public&nbsp;class&nbsp;A&nbsp;{<br />
<span id="more-87"></span><br />
1. this是指当前对象自己。<br />
当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。如下面这个例子中:</p>
<p>public class A {</p>
<p>String s = &#8220;Hello&#8221;;</p>
<p>public A(String s) {<br />
System.out.println(&#8220;s = &#8221; + s);<br />
System.out.println(&#8220;1 -&gt; this.s = &#8221; + this.s);<br />
this.s = s;<br />
System.out.println(&#8220;2 -&gt; this.s = &#8221; + this.s);<br />
}</p>
<p>public static void main(String[] args) {<br />
new A(&#8220;HelloWorld!&#8221;);<br />
}<br />
}</p>
<p>运行结果：</p>
<p>s = HelloWorld!<br />
1 -&gt; this.s = Hello<br />
2 -&gt; this.s = HelloWorld!</p>
<p>在这个例子中，构造函数A中，参数s与类A的变量s同名，这时如果直接对s进行操作则是对参数s进行操作。若要对类A的变量s进行操作就应该用this进行引用。运行结果的第一行就是直接对参数s进行打印结果；后面两行分别是对对象A的变量s进行操作前后的打印结果。</p>
<p>2. 把this作为参数传递<br />
当你要把自己作为参数传递给别的对象时，也可以用this。如：</p>
<p>public class A {<br />
public A() {<br />
new B(this).print();<br />
}</p>
<p>public void print() {<br />
System.out.println(&#8220;Hello from A!&#8221;);<br />
}<br />
}</p>
<p>public class B {<br />
A a;<br />
public B(A a) {<br />
this.a = a;<br />
}</p>
<p>public void print() {<br />
a.print();<br />
System.out.println(&#8220;Hello from B!&#8221;);<br />
}<br />
}</p>
<p>运行结果：<br />
Hello from A!<br />
Hello from B!</p>
<p>在这个例子中，对象A的构造函数中，用new B(this)把对象A自己作为参数传递给了对象B的构造函数。</p>
<p>3. 注意匿名类和内部类中的中的this。<br />
有时候，我们会用到一些内部类和匿名类。当在匿名类中用this时，这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和变量的话，则应该加上外部类的类名。如下面这个例子：</p>
<p>public class A {<br />
int i = 1;</p>
<p>public A() {<br />
Thread thread = new Thread() {<br />
public void run() {<br />
for(;;) {<br />
A.this.run();<br />
try {<br />
sleep(1000);<br />
} catch(InterruptedException ie) {<br />
}<br />
}<br />
}<br />
};<br />
thread.start();<br />
} </p>
<p>public void run() {<br />
System.out.println(&#8220;i = &#8221; + i);<br />
i++;<br />
}</p>
<p>public static void main(String[] args) throws Exception {<br />
new A();<br />
}</p>
<p>}</p>
<p>在上面这个例子中, thread 是一个匿名类对象，在它的定义中，它的 run 函数里用到了外部类的 run 函数。这时由于函数同名，直接调用就不行了。这时有两种办法，一种就是把外部的 run 函数换一个名字，但这种办法对于一个开发到中途的应用来说是不可取的。那么就可以用这个例子中的办法用外部类的类名加上 this 引用来说明要调用的是外部类的方法 run。<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/87/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于runtime exception和checked exception</title>
		<link>http://welog.org/blog/86</link>
		<comments>http://welog.org/blog/86#comments</comments>
		<pubDate>Tue, 15 Mar 2005 07:18:55 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%85%b3%e4%ba%8eruntime-exception%e5%92%8cchecked-exception/</guid>
		<description><![CDATA[&#8211;“捕获”它们的不同之处（原文作者：Tony&#160;Sintes） Java提供了两类主要的异常：runtime&#160;exception和checked&#160;exception。所有的checked&#160;exception是从java.lang.Exception类衍生出来的，而runtime&#160;exception则是从java.lang.RuntimeException或java.lang.Error类衍生出来的。 &#8211;“捕获”它们的不同之处 （原文作者：Tony Sintes） Java提供了两类主要的异常：runtime exception和checked exception。所有的checked exception是从java.lang.Exception类衍生出来的，而runtime exception则是从java.lang.RuntimeException或java.lang.Error类衍生出来的。 它们的不同之处表现在两方面：机制上和逻辑上。 一、机制上 它们在机制上的不同表现在两点：1.如何定义方法；2. 如何处理抛出的异常。请看下面CheckedException的定义： public class CheckedException extends Exception { public CheckedException() {} public CheckedException( String message ) { super( message ); }} 以及一个使用exception的例子： public class ExceptionalClass { public void method1() throws CheckedException { // &#8230; throw new CheckedException( &#8220;&#8230;出错了&#8221; ); } public void method2( [...]]]></description>
			<content:encoded><![CDATA[<p>&#8211;“捕获”它们的不同之处<br />（原文作者：Tony&nbsp;Sintes）</p>
<p>Java提供了两类主要的异常：runtime&nbsp;exception和checked&nbsp;exception。所有的checked&nbsp;exception是从java.lang.Exception类衍生出来的，而runtime&nbsp;exception则是从java.lang.RuntimeException或java.lang.Error类衍生出来的。<br />
<span id="more-86"></span><br />
&#8211;“捕获”它们的不同之处<br />
（原文作者：Tony Sintes）</p>
<p>Java提供了两类主要的异常：runtime exception和checked exception。所有的checked exception是从java.lang.Exception类衍生出来的，而runtime exception则是从java.lang.RuntimeException或java.lang.Error类衍生出来的。</p>
<p>它们的不同之处表现在两方面：机制上和逻辑上。</p>
<p>一、机制上</p>
<p>它们在机制上的不同表现在两点：1.如何定义方法；2. 如何处理抛出的异常。请看下面CheckedException的定义：</p>
<p>public class CheckedException extends Exception { public CheckedException() {} public CheckedException( String message ) { super( message ); }}</p>
<p>以及一个使用exception的例子：</p>
<p>public class ExceptionalClass { public void method1() throws CheckedException { // &#8230; throw new CheckedException( &#8220;&#8230;出错了&#8221; ); } public void method2( String arg ) { if( arg == null ) { throw new NullPointerException( &#8220;method2的参数arg是null!&#8221; ); } } public void method3() throws CheckedException { method1(); }}</p>
<p>你可能已经注意到了，两个方法method1()和method2()都会抛出exception，可是只有method1()做了声明。另外，method3()本身并不会抛出exception，可是它却声明会抛出CheckedException。在向你解释之前，让我们先来看看这个类的main()方法：</p>
<p>public static void main( String[] args ) { ExceptionalClass example = new ExceptionalClass(); try { example.method1(); example.method3(); } catch( CheckedException ex ) { } example.method2( null );}</p>
<p>在main()方法中，如果要调用method1()，你必须把这个调用放在try/catch程序块当中，因为它会抛出Checked exception。</p>
<p>相比之下，当你调用method2()时，则不需要把它放在try/catch程序块当中，因为它会抛出的exception不是checked exception，而是runtime exception。会抛出runtime exception的方法在定义时不必声明它会抛出exception。</p>
<p>现在，让我们再来看看method3()。它调用了method1()却没有把这个调用放在try/catch程序块当中。它是通过声明它会抛出method1()会抛出的exception来避免这样做的。它没有捕获这个exception，而是把它传递下去。实际上main()方法也可以这样做，通过声明它会抛出Checked exception来避免使用try/catch程序块（当然我们反对这种做法）。</p>
<p>小结一下：</p>
<p>* Runtime exceptions：</p>
<p>在定义方法时不需要声明会抛出runtime exception；<br />
在调用这个方法时不需要捕获这个runtime exception；<br />
runtime exception是从java.lang.RuntimeException或java.lang.Error类衍生出来的。</p>
<p>* Checked exceptions：</p>
<p>定义方法时必须声明所有可能会抛出的checked exception；<br />
在调用这个方法时，必须捕获它的checked exception，不然就得把它的exception传递下去；<br />
checked exception是从java.lang.Exception类衍生出来的。</p>
<p>二、逻辑上</p>
<p>从逻辑的角度来说，checked exceptions和runtime exception是有不同的使用目的的。checked exception用来指示一种调用方能够直接处理的异常情况。而runtime exception则用来指示一种调用方本身无法处理或恢复的程序错误。</p>
<p>checked exception迫使你捕获它并处理这种异常情况。以java.net.URL类的构建器(constructor)为例，它的每一个构建器都会抛出MalformedURLException。MalformedURLException就是一种checked exception。设想一下，你有一个简单的程序，用来提示用户输入一个URL，然后通过这个URL去下载一个网页。如果用户输入的URL有错误，构建器就会抛出一个exception。既然这个exception是checked exception，你的程序就可以捕获它并正确处理：比如说提示用户重新输入。</p>
<p>再看下面这个例子：</p>
<p>public void method() { int [] numbers = { 1, 2, 3 }; int sum = numbers[0] + numbers[3];}</p>
<p>在运行方法method()时会遇到ArrayIndexOutOfBoundsException（因为数组numbers的成员是从0到2）。对于这个异常，调用方无法处理/纠正。这个方法method()和上面的method2()一样，都是runtime exception的情形。上面我已经提到，runtime exception用来指示一种调用方本身无法处理/恢复的程序错误。而程序错误通常是无法在运行过程中处理的，必须改正程序代码。</p>
<p>总而言之，在程序的运行过程中一个checked exception被抛出的时候，只有能够适当处理这个异常的调用方才应该用try/catch来捕获它。而对于runtime exception，则不应当在程序中捕获它。如果你要捕获它的话，你就会冒这样一个风险：程序代码的错误(bug)被掩盖在运行当中无法被察觉。因为在程序测试过程中，系统打印出来的调用堆栈路径(StackTrace)往往使你更快找到并修改代码中的错误。有些程序员建议捕获runtime exception并纪录在log中，我反对这样做。这样做的坏处是你必须通过浏览log来找出问题，而用来测试程序的测试系统（比如Unit Test）却无法直接捕获问题并报告出来。</p>
<p>在程序中捕获runtime exception还会带来更多的问题：要捕获哪些runtime exception？什么时候捕获？runtime exception是不需要声明的，你怎样知道有没有runtime exception要捕获？你想看到在程序中每一次调用方法时，都使用try/catch程序块吗？<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/86/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>细说Java之util类</title>
		<link>http://welog.org/blog/85</link>
		<comments>http://welog.org/blog/85#comments</comments>
		<pubDate>Tue, 15 Mar 2005 07:18:26 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e7%bb%86%e8%af%b4java%e4%b9%8butil%e7%b1%bb/</guid>
		<description><![CDATA[　　线性表，链表，哈希表是常用的数据结构，在进行Java开发时，JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述，向读者阐述各个类的作用以及如何正确使用这些类。&#160; Collection├List 　　线性表，链表，哈希表是常用的数据结构，在进行Java开发时，JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述，向读者阐述各个类的作用以及如何正确使用这些类。 Collection ├List │├LinkedList │├ArrayList │└Vector │　└Stack └Set Map ├Hashtable ├HashMap └WeakHashMap Collection接口 　　Collection是最基本的集合接口，一个Collection代表一组Object，即Collection的元素（Elements）。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类，Java SDK提供的类都是继承自Collection的“子接口”如List和Set。 　　所有实现Collection接口的类都必须提供两个标准的构造函数：无参数的构造函数用于创建一个空的Collection，有一个Collection参数的构造函数用于创建一个新的Collection，这个新的Collection与传入的Collection有相同的元素。后一个构造函数允许用户复制一个Collection。 　　如何遍历Collection中的每一个元素？不论Collection的实际类型如何，它都支持一个iterator()的方法，该方法返回一个迭代子，使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下： 　　　　Iterator it = collection.iterator(); // 获得一个迭代子 　　　　while(it.hasNext()) { 　　　　　　Object obj = it.next(); // 得到下一个元素 　　　　} 　　由Collection接口派生的两个接口是List和Set。 List接口 　　List是有序的Collection，使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引（元素在List中的位置，类似于数组下标）来访问List中的元素，这类似于Java的数组。 和下面要提到的Set不同，List允许有相同的元素。 　　除了具有Collection接口必备的iterator()方法外，List还提供一个listIterator()方法，返回一个ListIterator接口，和标准的Iterator接口相比，ListIterator多了一些add()之类的方法，允许添加，删除，设定元素，还能向前或向后遍历。 　　实现List接口的常用类有LinkedList，ArrayList，Vector和Stack。 LinkedList类 　　LinkedList实现了List接口，允许null元素。此外LinkedList提供额外的get，remove，ins&#101;rt方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈（stack），队列（queue）或双向队列（deque）。 　　注意LinkedList没有同步方法。如果多个线程同时访问一个List，则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List： 　　　　List list = Collections.synchronizedList(new LinkedList(&#8230;)); ArrayList类 　　ArrayList实现了可变大小的数组。它允许所有元素，包括null。ArrayList没有同步。 size，isEmpty，get，set方法运行时间为常数。但是add方法开销为分摊的常数，添加n个元素需要O(n)的时间。其他的方法运行时间为线性。 　　每个ArrayList实例都有一个容量（Capacity），即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加，但是增长算法并没有定义。当需要插入大量元素时，在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。 　　和LinkedList一样，ArrayList也是非同步的（unsynchronized）。 Vector类 [...]]]></description>
			<content:encoded><![CDATA[<p>　　线性表，链表，哈希表是常用的数据结构，在进行Java开发时，JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述，向读者阐述各个类的作用以及如何正确使用这些类。&nbsp;</p>
<p>Collection<br />├List<br />
<span id="more-85"></span><br />
　　线性表，链表，哈希表是常用的数据结构，在进行Java开发时，JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述，向读者阐述各个类的作用以及如何正确使用这些类。 </p>
<p>Collection<br />
├List<br />
│├LinkedList<br />
│├ArrayList<br />
│└Vector<br />
│　└Stack<br />
└Set<br />
Map<br />
├Hashtable<br />
├HashMap<br />
└WeakHashMap</p>
<p>Collection接口<br />
　　Collection是最基本的集合接口，一个Collection代表一组Object，即Collection的元素（Elements）。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类，Java SDK提供的类都是继承自Collection的“子接口”如List和Set。<br />
　　所有实现Collection接口的类都必须提供两个标准的构造函数：无参数的构造函数用于创建一个空的Collection，有一个Collection参数的构造函数用于创建一个新的Collection，这个新的Collection与传入的Collection有相同的元素。后一个构造函数允许用户复制一个Collection。<br />
　　如何遍历Collection中的每一个元素？不论Collection的实际类型如何，它都支持一个iterator()的方法，该方法返回一个迭代子，使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下：<br />
　　　　Iterator it = collection.iterator(); // 获得一个迭代子<br />
　　　　while(it.hasNext()) {<br />
　　　　　　Object obj = it.next(); // 得到下一个元素<br />
　　　　}<br />
　　由Collection接口派生的两个接口是List和Set。</p>
<p>List接口<br />
　　List是有序的Collection，使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引（元素在List中的位置，类似于数组下标）来访问List中的元素，这类似于Java的数组。<br />
和下面要提到的Set不同，List允许有相同的元素。<br />
　　除了具有Collection接口必备的iterator()方法外，List还提供一个listIterator()方法，返回一个ListIterator接口，和标准的Iterator接口相比，ListIterator多了一些add()之类的方法，允许添加，删除，设定元素，还能向前或向后遍历。<br />
　　实现List接口的常用类有LinkedList，ArrayList，Vector和Stack。</p>
<p>LinkedList类<br />
　　LinkedList实现了List接口，允许null元素。此外LinkedList提供额外的get，remove，ins&#101;rt方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈（stack），队列（queue）或双向队列（deque）。<br />
　　注意LinkedList没有同步方法。如果多个线程同时访问一个List，则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List：<br />
　　　　List list = Collections.synchronizedList(new LinkedList(&#8230;));</p>
<p>ArrayList类<br />
　　ArrayList实现了可变大小的数组。它允许所有元素，包括null。ArrayList没有同步。<br />
size，isEmpty，get，set方法运行时间为常数。但是add方法开销为分摊的常数，添加n个元素需要O(n)的时间。其他的方法运行时间为线性。<br />
　　每个ArrayList实例都有一个容量（Capacity），即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加，但是增长算法并没有定义。当需要插入大量元素时，在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。<br />
　　和LinkedList一样，ArrayList也是非同步的（unsynchronized）。</p>
<p>Vector类<br />
　　Vector非常类似ArrayList，但是Vector是同步的。由Vector创建的Iterator，虽然和ArrayList创建的Iterator是同一接口，但是，因为Vector是同步的，当一个Iterator被创建而且正在被使用，另一个线程改变了Vector的状态（例如，添加或删除了一些元素），这时调用Iterator的方法时将抛出ConcurrentModificationException，因此必须捕获该异常。</p>
<p>Stack 类<br />
　　Stack继承自Vector，实现一个后进先出的堆栈。Stack提供5个额外的方法使得Vector得以被当作堆栈使用。基本的push和pop方法，还有peek方法得到栈顶的元素，empty方法测试堆栈是否为空，search方法检测一个元素在堆栈中的位置。Stack刚创建后是空栈。</p>
<p>Set接口<br />
　　Set是一种不包含重复的元素的Collection，即任意的两个元素e1和e2都有e1.equals(e2)=false，Set最多有一个null元素。<br />
　　很明显，Set的构造函数有一个约束条件，传入的Collection参数不能包含重复的元素。<br />
　　请注意：必须小心操作可变对象（Mutable Object）。如果一个Set中的可变元素改变了自身状态导致Object.equals(Object)=true将导致一些问题。</p>
<p>Map接口<br />
　　请注意，Map没有继承Collection接口，Map提供key到value的映射。一个Map中不能包含相同的key，每个key只能映射一个value。Map接口提供3种集合的视图，Map的内容可以被当作一组key集合，一组value集合，或者一组key-value映射。</p>
<p>Hashtable类<br />
　　Hashtable继承Map接口，实现一个key-value映射的哈希表。任何非空（non-null）的对象都可作为key或者value。<br />
　　添加数据使用put(key, value)，取出数据使用get(key)，这两个基本操作的时间开销为常数。<br />
Hashtable通过initial capacity和load factor两个参数调整性能。通常缺省的load factor 0.75较好地实现了时间和空间的均衡。增大load factor可以节省空间但相应的查找时间将增大，这会影响像get和put这样的操作。<br />
使用Hashtable的简单示例如下，将1，2，3放到Hashtable中，他们的key分别是”one”，”two”，”three”：<br />
　　　　Hashtable numbers = new Hashtable();<br />
　　　　numbers.put(“one”, new Integer(1));<br />
　　　　numbers.put(“two”, new Integer(2));<br />
　　　　numbers.put(“three”, new Integer(3));<br />
　　要取出一个数，比如2，用相应的key：<br />
　　　　Integer n = (Integer)numbers.get(“two”);<br />
　　　　System.out.println(“two = ” + n);<br />
　　由于作为key的对象将通过计算其散列函数来确定与之对应的value的位置，因此任何作为key的对象都必须实现hashCode和equals方法。hashCode和equals方法继承自根类Object，如果你用自定义的类当作key的话，要相当小心，按照散列函数的定义，如果两个对象相同，即obj1.equals(obj2)=true，则它们的hashCode必须相同，但如果两个对象不同，则它们的hashCode不一定不同，如果两个不同对象的hashCode相同，这种现象称为冲突，冲突会导致操作哈希表的时间开销增大，所以尽量定义好的hashCode()方法，能加快哈希表的操作。<br />
　　如果相同的对象有不同的hashCode，对哈希表的操作会出现意想不到的结果（期待的get方法返回null），要避免这种问题，只需要牢记一条：要同时复写equals方法和hashCode方法，而不要只写其中一个。<br />
　　Hashtable是同步的。</p>
<p>HashMap类<br />
　　HashMap和Hashtable类似，不同之处在于HashMap是非同步的，并且允许null，即null value和null key。，但是将HashMap视为Collection时（values()方法可返回Collection），其迭代子操作时间开销和HashMap的容量成比例。因此，如果迭代操作的性能相当重要的话，不要将HashMap的初始化容量设得过高，或者load factor过低。</p>
<p>WeakHashMap类<br />
　　WeakHashMap是一种改进的HashMap，它对key实行“弱引用”，如果一个key不再被外部所引用，那么该key可以被GC回收。</p>
<p>总结<br />
　　如果涉及到堆栈，队列等操作，应该考虑用List，对于需要快速插入，删除元素，应该使用LinkedList，如果需要快速随机访问元素，应该使用ArrayList。<br />
　　如果程序在单线程环境中，或者访问仅仅在一个线程中进行，考虑非同步的类，其效率较高，如果多个线程可能同时操作一个类，应该使用同步的类。<br />
　　要特别注意对哈希表的操作，作为key的对象要正确复写equals和hashCode方法。<br />
　　尽量返回接口而非实际的类型，如返回List而非ArrayList，这样如果以后需要将ArrayList换成LinkedList时，客户端代码不用改变。这就是针对抽象编程。<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/85/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java的中文编程与配置心得</title>
		<link>http://welog.org/blog/84</link>
		<comments>http://welog.org/blog/84#comments</comments>
		<pubDate>Tue, 15 Mar 2005 07:17:18 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e7%9a%84%e4%b8%ad%e6%96%87%e7%bc%96%e7%a8%8b%e4%b8%8e%e9%85%8d%e7%bd%ae%e5%bf%83%e5%be%97/</guid>
		<description><![CDATA[　　&#160;Java的中文问题历史悠久，连绵不绝，至今也没有完全解决，但是上有政策下有对策，我们总是有办法搞定它的。跟Java相关的中文问题主要有两类，一类是编程的问题，涉及到I/O，内码转换等。第二类是Java运行环境的配置，涉及字体，属性配置等。我刚刚用了一天的时间解决这些问题，觉得很有必要给自己写个备忘录之类的。&#160;我看还是从问题入手吧，这样不致于让大家打瞌睡。我想写个程序，这个程序有个基本功能就是显示文件内容，我用JTextArea来做显示的事情，程序简单的到家了，但是就是中文都是乱码。我的配置是JBuilder7，JBuilder自带的JDK1.3.3_b24，我自己装的JDK是JDK1.4.0_02_b02，都是主流的JDK。操作系统是英文Windows2000加中文支持包。&#160;　　　我尝试换JDK，1.3.3和1.4.0都不行，down一个最新的j2sdk-1_4_1-rc也是不行，好像不是JDK的问题，于是我就把精力集中到I/O的编码转换上，我查阅了网上若干关于JAVA中文问题的文章，把编码转换搞的倍儿清楚，可是怎么试，换什么编码折腾都不行，反而显示的更糟糕，当初还是乱的有些规矩，就是象在纯英文系统上显示的那样，好歹我还知道那是汉字，只是显示不出来，等我折腾编码，就变得都是问号了。唉，郁闷！&#160; 　　 Java的中文问题历史悠久，连绵不绝，至今也没有完全解决，但是上有政策下有对策，我们总是有办法搞定它的。跟Java相关的中文问题主要有两类，一类是编程的问题，涉及到I/O，内码转换等。第二类是Java运行环境的配置，涉及字体，属性配置等。我刚刚用了一天的时间解决这些问题，觉得很有必要给自己写个备忘录之类的。 我看还是从问题入手吧，这样不致于让大家打瞌睡。我想写个程序，这个程序有个基本功能就是显示文件内容，我用JTextArea来做显示的事情，程序简单的到家了，但是就是中文都是乱码。我的配置是JBuilder7，JBuilder自带的JDK1.3.3_b24，我自己装的JDK是JDK1.4.0_02_b02，都是主流的JDK。操作系统是英文Windows2000加中文支持包。 　　　我尝试换JDK，1.3.3和1.4.0都不行，down一个最新的j2sdk-1_4_1-rc也是不行，好像不是JDK的问题，于是我就把精力集中到I/O的编码转换上，我查阅了网上若干关于JAVA中文问题的文章，把编码转换搞的倍儿清楚，可是怎么试，换什么编码折腾都不行，反而显示的更糟糕，当初还是乱的有些规矩，就是象在纯英文系统上显示的那样，好歹我还知道那是汉字，只是显示不出来，等我折腾编码，就变得都是问号了。唉，郁闷！ 编码转换心得： 　　　 JAVA内部是UNICODE编码，在I/O时如果使用Reader/Writer就要发生编码转换，使用系统属性file.encoding作为编码方式。如果使用Stream就没有转换的事情了，那是Binary的数据。 　　　 有用的方法有：1。在Reader/Writer上加encoding的选项，注意编码的方向，在Reader中的encoding表示把数据从encoding转换成Unicode，writer就是把Unicode的字符转换成encoding格式的。2。用String.getByte()把字符串转换成指定编码。 　　　 常用的编码格式：ISO8859_1，这个是英文系统缺省的8bit编码，因为是8bit的，所以不会把汉字的高位删去，所以用它也是可以处理汉字的（我自己这么理解，总觉得有些不妥，但又不知道不妥在何处，还望高人指出）。GB2312和GBK，汉字编码，推荐使用GBK，它兼容GB2312并且支持更多汉字。UNICODE，一个大的字符集，不知是不是国际标准反正大家都支持，使用16位对每个字符编码，汉字虽然正合适，但英文却吃亏了，要用多一倍的空间来存储，所以很多人还是老大不乐意，写的程序不支持UNICODE。 　　　JSP/Servlet的中文问题有两种解决办法：1。不在程序中进行编码转换，把这个工作交给浏览器，方法就是用javac –encoding GBK *.java来编译所有的bean，然后在JSP页面上加 或者是在HTML中直接加： 到底加那个，试试就知道了，我也搞不清楚了。 2。在程序中指定编码，用javac –encoding ISO8859_1 *.java来编译所有的bean，在涉及到中文显示的程序上加 str=new String(str.getBytes(&#8220;ISO8859_1&#8243;)); 上面两种方法不能混用，意思就是要么就是GBK，要么就是ISO8859_1，从里到外都一样就好了。 数据库JDBC的中文问题，一般只要按照数据库指定的编码进行转换，比如按照ISO8859_1读，ISO8859_1写，一般就没什么问题了。 　　　 虽然有这些编码上的心得，但是并不能解决我的问题。看来我的程序输入输出用的都是ISO8859_1，我的问题跟编码没什么关系。是不是字体的问题呢？在Swing的组件中，字体总是那么几个，基本上是定死的，选那个都不行。但是我突然发现可以更改这些字体的配置，就是font.properties 这个文件，一般JDK都带了中文的字体配置文件，可能是font.properties.zh之类的，不同版本的JDK名字有些差别，你要做的就是用中文的配置覆盖font.properties文件。我满心欢喜的以为成功了，但是失败无情的又一次打击了我。不是这种方法不对，但是在Windows系统中，java能够比较自动的检查你的系统编码，使用最合适的字体配置文件，一般不需要你改动了，在JDK1.2之前确实是要这么改的，难怪那篇文章是JDK1.1的文档呢。 　　　 连font.properties也不灵了，唉，是不是JBuilder有问题呀？到了这儿，我不得不怀疑它了，虽然它从没让我失望过，我关掉JBuilder，拿起JDK命令行，哎呀！可爱的中文竟然出来了！简直是&#8230;..莫名其妙呀，因为JBuilder也是用的这个JDK呀？没理由呀，我再次打开JBuilder，运行，乱码！怪事&#8230;&#8230;.我来看看&#8230;..我把JBuilder里面的执行命令拷贝到DOS窗口里手动执行&#8230;.没有中文&#8230;..怪怪怪，我仔细对照我手敲的命令和JBuilder拷出来的命令，除了我用的是java它用的是javaw之外，别的几乎都一样，难道&#8230;&#8230;.这个java和javaw竟然会不一样？ 　　　 唉&#8230;&#8230;.要我说什么呢，答案就是这个了，javaw会使用与java不同的Local配置进行工作，导致了我一直看不到中文，而java就是好好的。JBuilder也是好好的，没有问题，调用javaw也不是它的错，难道你想每次运行或者调试的时候蹦出个DOS黑框么？呵呵。这是JDK的一个Bug，我在java的网站上查到这个bug，描述的情况跟我的一样，然后Sun说这个Bug已经修复了，嘿嘿，简直就是扯淡！修复个茄子！Bug编号是：4629351。不信可以去看看。 　　　 但是难道我就不能在JBuilder里面看我可爱的中文了吗？好像JBuilder5的时候还能选择是用java还是javaw，现在好像没法儿选了。怎么才能让javaw支持中文呢？经过又是一番苦苦查找，竟然没有什么结果，郁闷！正当苦闷之时，突然想起当初配置过UNIX下的TOMCAT，好像加了些启动参数，就能让tomcat支持中文了，赶快翻出以前的文档，啊，幸好我当初写了工作心得，要不然又抓瞎了。其实道理很简单，就是给JAVA虚拟机加上一些属性： -Dfile.encoding=GBK -Ddefault.client.encoding=GBK -Duser.language=zh -Duser.region=CN 把它跟在javaw的命令行后面当参数，哈哈，搞定！ 在JBuilder中选择Project-&#62;Project Properties-&#62;run-&#62;edit-&#62;VM Parameters，填上就行了！ 配置心得： 　　　 在JDK低版本和UNIX下，需要改动font.properties，让JAVA VM能够找到合适的字体来显示汉字。 　　　 目前为止，javaw有Bug，只使用英文的Local，需要给VM加上属性才行正常显示中文。 &#8212;&#8211;]]></description>
			<content:encoded><![CDATA[<p>　　&nbsp;Java的中文问题历史悠久，连绵不绝，至今也没有完全解决，但是上有政策下有对策，我们总是有办法搞定它的。跟Java相关的中文问题主要有两类，一类是编程的问题，涉及到I/O，内码转换等。第二类是Java运行环境的配置，涉及字体，属性配置等。我刚刚用了一天的时间解决这些问题，觉得很有必要给自己写个备忘录之类的。&nbsp;<br />我看还是从问题入手吧，这样不致于让大家打瞌睡。我想写个程序，这个程序有个基本功能就是显示文件内容，我用JTextArea来做显示的事情，程序简单的到家了，但是就是中文都是乱码。我的配置是JBuilder7，JBuilder自带的JDK1.3.3_b24，我自己装的JDK是JDK1.4.0_02_b02，都是主流的JDK。操作系统是英文Windows2000加中文支持包。&nbsp;<br />　　　我尝试换JDK，1.3.3和1.4.0都不行，down一个最新的j2sdk-1_4_1-rc也是不行，好像不是JDK的问题，于是我就把精力集中到I/O的编码转换上，我查阅了网上若干关于JAVA中文问题的文章，把编码转换搞的倍儿清楚，可是怎么试，换什么编码折腾都不行，反而显示的更糟糕，当初还是乱的有些规矩，就是象在纯英文系统上显示的那样，好歹我还知道那是汉字，只是显示不出来，等我折腾编码，就变得都是问号了。唉，郁闷！&nbsp;<br />
<span id="more-84"></span><br />
　　 Java的中文问题历史悠久，连绵不绝，至今也没有完全解决，但是上有政策下有对策，我们总是有办法搞定它的。跟Java相关的中文问题主要有两类，一类是编程的问题，涉及到I/O，内码转换等。第二类是Java运行环境的配置，涉及字体，属性配置等。我刚刚用了一天的时间解决这些问题，觉得很有必要给自己写个备忘录之类的。<br />
我看还是从问题入手吧，这样不致于让大家打瞌睡。我想写个程序，这个程序有个基本功能就是显示文件内容，我用JTextArea来做显示的事情，程序简单的到家了，但是就是中文都是乱码。我的配置是JBuilder7，JBuilder自带的JDK1.3.3_b24，我自己装的JDK是JDK1.4.0_02_b02，都是主流的JDK。操作系统是英文Windows2000加中文支持包。<br />
　　　我尝试换JDK，1.3.3和1.4.0都不行，down一个最新的j2sdk-1_4_1-rc也是不行，好像不是JDK的问题，于是我就把精力集中到I/O的编码转换上，我查阅了网上若干关于JAVA中文问题的文章，把编码转换搞的倍儿清楚，可是怎么试，换什么编码折腾都不行，反而显示的更糟糕，当初还是乱的有些规矩，就是象在纯英文系统上显示的那样，好歹我还知道那是汉字，只是显示不出来，等我折腾编码，就变得都是问号了。唉，郁闷！ </p>
<p>编码转换心得：<br />
　　　 JAVA内部是UNICODE编码，在I/O时如果使用Reader/Writer就要发生编码转换，使用系统属性file.encoding作为编码方式。如果使用Stream就没有转换的事情了，那是Binary的数据。<br />
　　　 有用的方法有：1。在Reader/Writer上加encoding的选项，注意编码的方向，在Reader中的encoding表示把数据从encoding转换成Unicode，writer就是把Unicode的字符转换成encoding格式的。2。用String.getByte()把字符串转换成指定编码。<br />
　　　 常用的编码格式：ISO8859_1，这个是英文系统缺省的8bit编码，因为是8bit的，所以不会把汉字的高位删去，所以用它也是可以处理汉字的（我自己这么理解，总觉得有些不妥，但又不知道不妥在何处，还望高人指出）。GB2312和GBK，汉字编码，推荐使用GBK，它兼容GB2312并且支持更多汉字。UNICODE，一个大的字符集，不知是不是国际标准反正大家都支持，使用16位对每个字符编码，汉字虽然正合适，但英文却吃亏了，要用多一倍的空间来存储，所以很多人还是老大不乐意，写的程序不支持UNICODE。<br />
　　　JSP/Servlet的中文问题有两种解决办法：1。不在程序中进行编码转换，把这个工作交给浏览器，方法就是用javac –encoding GBK *.java来编译所有的bean，然后在JSP页面上加 </p>
<p>或者是在HTML中直接加： </p>
<p>到底加那个，试试就知道了，我也搞不清楚了。<br />
2。在程序中指定编码，用javac –encoding ISO8859_1 *.java来编译所有的bean，在涉及到中文显示的程序上加<br />
str=new String(str.getBytes(&#8220;ISO8859_1&#8243;));<br />
上面两种方法不能混用，意思就是要么就是GBK，要么就是ISO8859_1，从里到外都一样就好了。<br />
数据库JDBC的中文问题，一般只要按照数据库指定的编码进行转换，比如按照ISO8859_1读，ISO8859_1写，一般就没什么问题了。 </p>
<p>　　　 虽然有这些编码上的心得，但是并不能解决我的问题。看来我的程序输入输出用的都是ISO8859_1，我的问题跟编码没什么关系。是不是字体的问题呢？在Swing的组件中，字体总是那么几个，基本上是定死的，选那个都不行。但是我突然发现可以更改这些字体的配置，就是font.properties 这个文件，一般JDK都带了中文的字体配置文件，可能是font.properties.zh之类的，不同版本的JDK名字有些差别，你要做的就是用中文的配置覆盖font.properties文件。我满心欢喜的以为成功了，但是失败无情的又一次打击了我。不是这种方法不对，但是在Windows系统中，java能够比较自动的检查你的系统编码，使用最合适的字体配置文件，一般不需要你改动了，在JDK1.2之前确实是要这么改的，难怪那篇文章是JDK1.1的文档呢。<br />
　　　 连font.properties也不灵了，唉，是不是JBuilder有问题呀？到了这儿，我不得不怀疑它了，虽然它从没让我失望过，我关掉JBuilder，拿起JDK命令行，哎呀！可爱的中文竟然出来了！简直是&#8230;..莫名其妙呀，因为JBuilder也是用的这个JDK呀？没理由呀，我再次打开JBuilder，运行，乱码！怪事&#8230;&#8230;.我来看看&#8230;..我把JBuilder里面的执行命令拷贝到DOS窗口里手动执行&#8230;.没有中文&#8230;..怪怪怪，我仔细对照我手敲的命令和JBuilder拷出来的命令，除了我用的是java它用的是javaw之外，别的几乎都一样，难道&#8230;&#8230;.这个java和javaw竟然会不一样？<br />
　　　 唉&#8230;&#8230;.要我说什么呢，答案就是这个了，javaw会使用与java不同的Local配置进行工作，导致了我一直看不到中文，而java就是好好的。JBuilder也是好好的，没有问题，调用javaw也不是它的错，难道你想每次运行或者调试的时候蹦出个DOS黑框么？呵呵。这是JDK的一个Bug，我在java的网站上查到这个bug，描述的情况跟我的一样，然后Sun说这个Bug已经修复了，嘿嘿，简直就是扯淡！修复个茄子！Bug编号是：4629351。不信可以去看看。<br />
　　　 但是难道我就不能在JBuilder里面看我可爱的中文了吗？好像JBuilder5的时候还能选择是用java还是javaw，现在好像没法儿选了。怎么才能让javaw支持中文呢？经过又是一番苦苦查找，竟然没有什么结果，郁闷！正当苦闷之时，突然想起当初配置过UNIX下的TOMCAT，好像加了些启动参数，就能让tomcat支持中文了，赶快翻出以前的文档，啊，幸好我当初写了工作心得，要不然又抓瞎了。其实道理很简单，就是给JAVA虚拟机加上一些属性：<br />
-Dfile.encoding=GBK -Ddefault.client.encoding=GBK -Duser.language=zh -Duser.region=CN<br />
把它跟在javaw的命令行后面当参数，哈哈，搞定！<br />
在JBuilder中选择Project-&gt;Project Properties-&gt;run-&gt;edit-&gt;VM Parameters，填上就行了！ </p>
<p>配置心得：<br />
　　　 在JDK低版本和UNIX下，需要改动font.properties，让JAVA VM能够找到合适的字体来显示汉字。<br />
　　　 目前为止，javaw有Bug，只使用英文的Local，需要给VM加上属性才行正常显示中文。 </p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/84/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java程序的加密和反加密</title>
		<link>http://welog.org/blog/83</link>
		<comments>http://welog.org/blog/83#comments</comments>
		<pubDate>Tue, 15 Mar 2005 07:15:53 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e7%a8%8b%e5%ba%8f%e7%9a%84%e5%8a%a0%e5%af%86%e5%92%8c%e5%8f%8d%e5%8a%a0%e5%af%86/</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;写在前面的话：写这篇文档的目的是让大家能更深入的了解Java技术，而不是教你怎么去破解Java程序；武器没有罪过，要看是好人用它还是坏人用它。 &#160;&#160;&#160;&#160;首先我们来看看Java程序的反加密，也就是通常所说的Crack过程，只有明白了这个过程，我们才能有效的对我们的程序进行加密。 写在前面的话：写这篇文档的目的是让大家能更深入的了解Java技术，而不是教你怎么去破解Java程序；武器没有罪过，要看是好人用它还是坏人用它。 首先我们来看看Java程序的反加密，也就是通常所说的Crack过程，只有明白了这个过程，我们才能有效的对我们的程序进行加密。 通常我们得到的Java程序的Crack包有两种，一种属于KeyGen（注册码生成器）、一种属于替换修改； 我们先看第一种，当我们找到一个应用程序的KeyGen的时候我们总是很佩服那个做出KeyGen的人，觉得他很厉害，但是你仔细分析一下，为什么他能做出KeyGen呢？只有他对这个Java程序的加密算法了解的非常清楚；这种人有哪些呢？一个是那个公司里面的人，那不可能，除非内讧，还又呢，就是猜想，反推，这个可能吗？呵呵，更不可能，那这个算法从哪里来呢？呵呵，往往泄漏秘密的就是秘密本身……回过头来想想，Java应用程序怎么知道你输入的注册码是否正确呢？呵呵，那你就该从应用程序入手…… 得到的它的加密算法，自然KeyGen就不在话下了……（但是这也有列外，如果它是用的公钥秘钥对加密的，就没有办法喽，只能用第二种方法。） 这种办法只适合对付只要一个注册号，别的什么都不要的情况，经典代表Borlan&#100; JBuilder &#38; Optimizeit Suite 再看第二种，为什么要用替换修改？我们是修改了那部分呢？不用想，肯定是License验证的部分，为什么我们不像上面的方法那样找加密算法呢？原因有两种：（1）使用上面的办法搞不定；（2）Java程序不仅要Key，还有其他的License配置；遇到这种情况，我们只要找到用于License验证的类，进行修改替换就行了。 这种办法使用于任何情况，经典代表BEA WebLogic 经过上面的分析，我们的问题就集中了，关键就是怎么找到用于License验证的部分或加密算法的部分，我们需要3个工具：一个是Sun公司提供的标准JVM：），一个是你的耐心和细心：），一个是Jad（经典Java反编译工具）。 第一步是定位，这也是最关键的一步，我们这里以Together For JBuilder Edition为例，启动Together，先看看长什么样子？喔，上来就问我要License；Ok，没关系，退出；找到Together的启动Bat文件，找到它的启动命令：java &#8230;..，OK，在Java启动的时候给一个参数：“ -Xrunhprof:cpu=times”，保存，在启动，还是要License，退出，这个时候，我们可以发现，在这个目录下多了一个“java.hprof.txt”文件，打开一看，就是我要的JVM的Dump文件，好多内容啊，没关系，慢慢看来。 我们可以看见这个文件里面有好多熟悉的东西啊：java.*/com.sun.*/javax.*等等，但这个不是我们关心的，我们要的是com.togethersoft.*或者是一些没有包名的zd.d等等。（这里插一句，几乎所有的Java应用程序都会混淆的，其实混淆的原理也很简单，我们后面再说。）先找找有没有License有关的，Serach一下，嘿嘿，果然，474行：com.togethersoft.together.impl.ide.license.LicenseSetup.execute([DashoPro-V2-050200]:Unknown line)，Ok上那堆classpath中的Jar包里面找一下吧（推荐用WinRAR），找到了之后用Jad反编译，一看，这个没有混淆，但是用了一个zae的类，这个看名字就知道混淆过了，先不理它，再看看下面一句IdeLicenseAccess.setLicense(zae1)，Ok接着找到IdeLicenseAccess，哈哈，就这点名堂，所有的License验证都是走的这个类，面向对象的思想不错，呵呵：） 定位定完了，接下来的事情就是按猜想的方法修改这两个类，屏蔽掉LicenseSetup里面execute方法的实际内容，修改IdeLicenseAccess，让多有的验证都返回true，然后编译，替换；不要高兴太早，这还没有完呢，要有责任心！！启动Together，果然，这下不要License了，有启动画面，进去了，但是一片灰色，怎么回事，一看控制台，一堆错，没关系，就怕不出错，查找根源，还有一个IdeLicenseUtil类出了问题，再反编译，修改，替换；这下搞定了。再启动，测试一下，OK。 就这样，一个Java应用程序搞定了。看看其实也很简单。 再来说说混淆，大家可能都知道没有经过混淆的Java的Class反编译回来连方法和变量的名字都不会变，这是什么原因呢？这就要追述到Class文件的结构了，简单来说，Class文件种包含又一个常数池（constant pool）这个里面就存放了变量和方法的名称等一下和Class相关的东西，我们通常所说的混淆就是用一种工具把这个常数池里面的东东弄的胡涂一点，这样就能骗过反编译器和你，呵呵：）这就是为什么有时候反编译回来的东西编译不过去的原因。 再回过头来说说Java程序的加密；从上面的两种方法来看，Java程序似乎是没有什么完美的办法进行加密的，其实不然，我们必须遵循一些原则，才能有效的保护你的产品。 原则一，尽量使用公钥和秘钥对进行加密； 原则二，不要在加密验证的部分使用面向对象思想：）把验证的方法写在程序的各个角落，并标注为private final void，让编译器替你处理成内联方法； 原则三，尽可能的大幅度混淆：）找个好点的混淆器； &#8212;&#8211;]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;写在前面的话：写这篇文档的目的是让大家能更深入的了解Java技术，而不是教你怎么去破解Java程序；武器没有罪过，要看是好人用它还是坏人用它。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;首先我们来看看Java程序的反加密，也就是通常所说的Crack过程，只有明白了这个过程，我们才能有效的对我们的程序进行加密。<br />
<span id="more-83"></span><br />
写在前面的话：写这篇文档的目的是让大家能更深入的了解Java技术，而不是教你怎么去破解Java程序；武器没有罪过，要看是好人用它还是坏人用它。</p>
<p>    首先我们来看看Java程序的反加密，也就是通常所说的Crack过程，只有明白了这个过程，我们才能有效的对我们的程序进行加密。</p>
<p>    通常我们得到的Java程序的Crack包有两种，一种属于KeyGen（注册码生成器）、一种属于替换修改；</p>
<p>    我们先看第一种，当我们找到一个应用程序的KeyGen的时候我们总是很佩服那个做出KeyGen的人，觉得他很厉害，但是你仔细分析一下，为什么他能做出KeyGen呢？只有他对这个Java程序的加密算法了解的非常清楚；这种人有哪些呢？一个是那个公司里面的人，那不可能，除非内讧，还又呢，就是猜想，反推，这个可能吗？呵呵，更不可能，那这个算法从哪里来呢？呵呵，往往泄漏秘密的就是秘密本身……回过头来想想，Java应用程序怎么知道你输入的注册码是否正确呢？呵呵，那你就该从应用程序入手…… 得到的它的加密算法，自然KeyGen就不在话下了……（但是这也有列外，如果它是用的公钥秘钥对加密的，就没有办法喽，只能用第二种方法。）</p>
<p>    这种办法只适合对付只要一个注册号，别的什么都不要的情况，经典代表Borlan&#100; JBuilder &amp; Optimizeit Suite</p>
<p>    再看第二种，为什么要用替换修改？我们是修改了那部分呢？不用想，肯定是License验证的部分，为什么我们不像上面的方法那样找加密算法呢？原因有两种：（1）使用上面的办法搞不定；（2）Java程序不仅要Key，还有其他的License配置；遇到这种情况，我们只要找到用于License验证的类，进行修改替换就行了。</p>
<p>    这种办法使用于任何情况，经典代表BEA WebLogic</p>
<p>    经过上面的分析，我们的问题就集中了，关键就是怎么找到用于License验证的部分或加密算法的部分，我们需要3个工具：一个是Sun公司提供的标准JVM：），一个是你的耐心和细心：），一个是Jad（经典Java反编译工具）。</p>
<p>    第一步是定位，这也是最关键的一步，我们这里以Together For JBuilder Edition为例，启动Together，先看看长什么样子？喔，上来就问我要License；Ok，没关系，退出；找到Together的启动Bat文件，找到它的启动命令：java &#8230;..，OK，在Java启动的时候给一个参数：“ -Xrunhprof:cpu=times”，保存，在启动，还是要License，退出，这个时候，我们可以发现，在这个目录下多了一个“java.hprof.txt”文件，打开一看，就是我要的JVM的Dump文件，好多内容啊，没关系，慢慢看来。</p>
<p>    我们可以看见这个文件里面有好多熟悉的东西啊：java.*/com.sun.*/javax.*等等，但这个不是我们关心的，我们要的是com.togethersoft.*或者是一些没有包名的zd.d等等。（这里插一句，几乎所有的Java应用程序都会混淆的，其实混淆的原理也很简单，我们后面再说。）先找找有没有License有关的，Serach一下，嘿嘿，果然，474行：com.togethersoft.together.impl.ide.license.LicenseSetup.execute([DashoPro-V2-050200]:Unknown line)，Ok上那堆classpath中的Jar包里面找一下吧（推荐用WinRAR），找到了之后用Jad反编译，一看，这个没有混淆，但是用了一个zae的类，这个看名字就知道混淆过了，先不理它，再看看下面一句IdeLicenseAccess.setLicense(zae1)，Ok接着找到IdeLicenseAccess，哈哈，就这点名堂，所有的License验证都是走的这个类，面向对象的思想不错，呵呵：）</p>
<p>    定位定完了，接下来的事情就是按猜想的方法修改这两个类，屏蔽掉LicenseSetup里面execute方法的实际内容，修改IdeLicenseAccess，让多有的验证都返回true，然后编译，替换；不要高兴太早，这还没有完呢，要有责任心！！启动Together，果然，这下不要License了，有启动画面，进去了，但是一片灰色，怎么回事，一看控制台，一堆错，没关系，就怕不出错，查找根源，还有一个IdeLicenseUtil类出了问题，再反编译，修改，替换；这下搞定了。再启动，测试一下，OK。</p>
<p>    就这样，一个Java应用程序搞定了。看看其实也很简单。</p>
<p>    再来说说混淆，大家可能都知道没有经过混淆的Java的Class反编译回来连方法和变量的名字都不会变，这是什么原因呢？这就要追述到Class文件的结构了，简单来说，Class文件种包含又一个常数池（constant pool）这个里面就存放了变量和方法的名称等一下和Class相关的东西，我们通常所说的混淆就是用一种工具把这个常数池里面的东东弄的胡涂一点，这样就能骗过反编译器和你，呵呵：）这就是为什么有时候反编译回来的东西编译不过去的原因。</p>
<p>    再回过头来说说Java程序的加密；从上面的两种方法来看，Java程序似乎是没有什么完美的办法进行加密的，其实不然，我们必须遵循一些原则，才能有效的保护你的产品。</p>
<p>    原则一，尽量使用公钥和秘钥对进行加密；<br />
    原则二，不要在加密验证的部分使用面向对象思想：）把验证的方法写在程序的各个角落，并标注为private final void，让编译器替你处理成内联方法；<br />
    原则三，尽可能的大幅度混淆：）找个好点的混淆器；<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/83/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在Java中使用正则表达式</title>
		<link>http://welog.org/blog/82</link>
		<comments>http://welog.org/blog/82#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:55:49 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%9c%a8java%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f/</guid>
		<description><![CDATA[　　jdk1.4中加入了java.util.regex包提供对正则表达式的支持。而且Java.lang.String类中的replaceAll和split函数也是调用的正则表达式来实现的。 　　正则表达式对字符串的操作主要包括：字符串匹配，指定字符串替换，指定字符串查找和字符串分割。下面就用一个例子来说明这些操作是如何实现的：&#160; 　　jdk1.4中加入了java.util.regex包提供对正则表达式的支持。而且Java.lang.String类中的replaceAll和split函数也是调用的正则表达式来实现的。 　　正则表达式对字符串的操作主要包括：字符串匹配，指定字符串替换，指定字符串查找和字符串分割。下面就用一个例子来说明这些操作是如何实现的： [code]＜%@ page import="java.util.regex.*"%＞ ＜% Pattern p=null; //正则表达式 Matcher m=null; //操作的字符串 boolean b; String s=null; StringBuffer sb=null; int i=0; //字符串匹配，这是不符合的 p = Pattern.compile("a*b"); m = p.matcher("baaaaab"); b = m.matches(); out.println(b+"＜br＞"); //字符串匹配，这是符合的 p = Pattern.compile("a*b"); m = p.matcher("aaaaab"); b = m.matches(); out.println(b+"＜br＞"); //字符串替换 p = Pattern.compile("ab"); m = p.matcher("aaaaab"); s = m.replaceAll("d"); out.println(s+"＜br＞"); [...]]]></description>
			<content:encoded><![CDATA[<p>　　jdk1.4中加入了java.util.regex包提供对正则表达式的支持。而且Java.lang.String类中的replaceAll和split函数也是调用的正则表达式来实现的。</p>
<p>　　正则表达式对字符串的操作主要包括：字符串匹配，指定字符串替换，指定字符串查找和字符串分割。下面就用一个例子来说明这些操作是如何实现的：&nbsp;<br />
<span id="more-82"></span><br />
　　jdk1.4中加入了java.util.regex包提供对正则表达式的支持。而且Java.lang.String类中的replaceAll和split函数也是调用的正则表达式来实现的。</p>
<p>　　正则表达式对字符串的操作主要包括：字符串匹配，指定字符串替换，指定字符串查找和字符串分割。下面就用一个例子来说明这些操作是如何实现的： </p>
<p>[code]＜%@ page import="java.util.regex.*"%＞<br />
＜%<br />
Pattern p=null; //正则表达式<br />
Matcher m=null; //操作的字符串<br />
boolean b;<br />
String s=null;<br />
StringBuffer sb=null;<br />
int i=0;<br />
//字符串匹配，这是不符合的<br />
p = Pattern.compile("a*b");<br />
m = p.matcher("baaaaab");<br />
b = m.matches();<br />
out.println(b+"＜br＞");<br />
//字符串匹配，这是符合的<br />
p = Pattern.compile("a*b");<br />
m = p.matcher("aaaaab");<br />
b = m.matches();<br />
out.println(b+"＜br＞");<br />
//字符串替换<br />
p = Pattern.compile("ab");<br />
m = p.matcher("aaaaab");<br />
s = m.replaceAll("d");<br />
out.println(s+"＜br＞");<br />
p = Pattern.compile("a*b");<br />
m = p.matcher("aaaaab");<br />
s = m.replaceAll("d");<br />
out.println(s+"＜br＞");<br />
p = Pattern.compile("a*b");<br />
m = p.matcher("caaaaab");<br />
s = m.replaceAll("d");<br />
out.println(s+"＜br＞");<br />
//字符串查找<br />
p = Pattern.compile("cat");<br />
m = p.matcher("one cat two cats in the yard");<br />
sb = new StringBuffer();<br />
while (m.find()) {<br />
m.appendReplacement(sb, "dog");<br />
i++;<br />
}<br />
m.appendTail(sb);<br />
out.println(sb.toString()+"＜br＞");<br />
out.println(i+"＜br＞");<br />
i=0;<br />
p = Pattern.compile("cat");<br />
m = p.matcher("one cat two ca tsi nthe yard");<br />
sb = new StringBuffer();<br />
while (m.find()) {<br />
m.appendReplacement(sb, "dog");<br />
i++;<br />
}<br />
m.appendTail(sb);<br />
out.println(sb.toString()+"＜br＞");<br />
out.println(i+"＜br＞");<br />
p = Pattern.compile("cat");<br />
m = p.matcher("one cat two cats in the yard");<br />
p=m.pattern();<br />
m = p.matcher("bacatab");<br />
b = m.matches();<br />
out.println(b+"＜br＞");<br />
s = m.replaceAll("dog");<br />
out.println(s+"＜br＞");<br />
i=0;<br />
p = Pattern.compile("(fds){2,}");<br />
m = p.matcher("dsa da fdsfds aaafdsafds aaf");<br />
sb = new StringBuffer();<br />
while (m.find()) {<br />
m.appendReplacement(sb, "dog");<br />
i++;<br />
}</p>
<p>m.appendTail(sb);<br />
out.println(sb.toString()+"＜br＞");<br />
out.println(i+"＜br＞");</p>
<p>p = Pattern.compile("cat");<br />
m = p.matcher("one cat two cats in the yard");<br />
sb = new StringBuffer();<br />
while (m.find()) {<br />
m.appendReplacement(sb, "＜font color=\"red\"＞cat＜/font＞");<br />
}<br />
m.appendTail(sb);<br />
out.println(sb.toString()+"＜br＞");<br />
String aa=sb.toString();<br />
out.println(aa+"＜br＞");<br />
//字符串分割<br />
p = Pattern.compile("a+");<br />
String[] a=p.split("caaaaaat");<br />
for(i=0;i＜a.length;i++)<br />
{<br />
out.println(a[i]+"＜br＞");<br />
}<br />
p = Pattern.compile("a+");<br />
a=p.split("c aa aaaa t",0);<br />
for(i=0;i＜a.length;i++)<br />
{<br />
out.println(a[i]+"＜br＞");<br />
}<br />
p = Pattern.compile(" +");<br />
a=p.split("c aa aaaa t",0);<br />
for(i=0;i＜a.length;i++)<br />
{<br />
out.println(a[i]+"＜br＞");<br />
}<br />
p = Pattern.compile("\\+");<br />
a=p.split("dsafasdfdsafsda+dsagfasdfa+sdafds");<br />
out.println(a.length+"＜br＞");<br />
for(i=0;i＜a.length;i++)<br />
{<br />
out.println(a[i]+"＜br＞");<br />
}<br />
%＞<br />
[/code]<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/82/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于多线程同步的初步教程</title>
		<link>http://welog.org/blog/81</link>
		<comments>http://welog.org/blog/81#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:46:32 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%85%b3%e4%ba%8e%e5%a4%9a%e7%ba%bf%e7%a8%8b%e5%90%8c%e6%ad%a5%e7%9a%84%e5%88%9d%e6%ad%a5%e6%95%99%e7%a8%8b-2/</guid>
		<description><![CDATA[[b]&#160;关于多线程同步的初步教程－－可重入锁的设计及使用&#160;[/b]&#160;&#160;&#160;&#160;&#160;中的Mutex是一个独占锁，只能有一个线程拥有该锁，并且即时是同一个线程，如果已经持有一个Mutex时，再次企图获取该锁时仍然会阻塞。有的时候我们需要锁能够像Java语言的synchronized那样，同一个线程可以重新进入，只要已经拥有了该锁，而不用在该锁上阻塞。我们可以对上篇中的Mutex的实现进行改造，实现一个可重入的锁－－ReentrantLock。这需要ReentrantLock中记录当前锁的拥有者（线程），同时设置一个整型变量，记录当前线程进入的次数。 [b] 关于多线程同步的初步教程－－可重入锁的设计及使用 [/b] 中的Mutex是一个独占锁，只能有一个线程拥有该锁，并且即时是同一个线程，如果已经持有一个Mutex时，再次企图获取该锁时仍然会阻塞。有的时候我们需要锁能够像Java语言的synchronized那样，同一个线程可以重新进入，只要已经拥有了该锁，而不用在该锁上阻塞。我们可以对上篇中的Mutex的实现进行改造，实现一个可重入的锁－－ReentrantLock。这需要ReentrantLock中记录当前锁的拥有者（线程），同时设置一个整型变量，记录当前线程进入的次数。 public class ReentrantLock implements Sync { protected Thread owner_ = null; protected long holds_ = 0; //&#8230;&#8230; } 在获取、释放锁时，首先判断该线程是否是锁的拥有者。如果是当前线程已经拥有该锁，则在每一次acquire()时增1，在release()时减1在次数减少到0时，说明该锁的当前拥有者已经完全释放该锁，不再拥有该锁。所以，将拥有者设置为null。如果当前线程不是锁的拥有者，那么在企图获取锁时在该锁上wait()，在release()方法中，如果拥有者已经完全释放锁，那么就将拥有者清零，并notify()其它线程。 public void acquire() throws InterruptedException { if (Thread.interrupted()) throw new InterruptedException(); Thread caller = Thread.currentThread(); synchronized(this) { // 在this上同步 if (caller == owner_) ++holds_; else { try { while (owner_ != [...]]]></description>
			<content:encoded><![CDATA[<p>[b]<br />&nbsp;关于多线程同步的初步教程－－可重入锁的设计及使用&nbsp;[/b]<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;中的Mutex是一个独占锁，只能有一个线程拥有该锁，并且即时是同一个线程，如果已经持有一个Mutex时，再次企图获取该锁时仍然会阻塞。有的时候我们需要锁能够像Java语言的synchronized那样，同一个线程可以重新进入，只要已经拥有了该锁，而不用在该锁上阻塞。我们可以对上篇中的Mutex的实现进行改造，实现一个可重入的锁－－ReentrantLock。这需要ReentrantLock中记录当前锁的拥有者（线程），同时设置一个整型变量，记录当前线程进入的次数。<br />
<span id="more-81"></span><br />
[b]<br />
 关于多线程同步的初步教程－－可重入锁的设计及使用 [/b]</p>
<p>    中的Mutex是一个独占锁，只能有一个线程拥有该锁，并且即时是同一个线程，如果已经持有一个Mutex时，再次企图获取该锁时仍然会阻塞。有的时候我们需要锁能够像Java语言的synchronized那样，同一个线程可以重新进入，只要已经拥有了该锁，而不用在该锁上阻塞。我们可以对上篇中的Mutex的实现进行改造，实现一个可重入的锁－－ReentrantLock。这需要ReentrantLock中记录当前锁的拥有者（线程），同时设置一个整型变量，记录当前线程进入的次数。</p>
<p>public class ReentrantLock implements Sync  {</p>
<p>  protected Thread owner_ = null;<br />
  protected long holds_ = 0;</p>
<p>  //&#8230;&#8230;</p>
<p>}</p>
<p>在获取、释放锁时，首先判断该线程是否是锁的拥有者。如果是当前线程已经拥有该锁，则在每一次acquire()时增1，在release()时减1在次数减少到0时，说明该锁的当前拥有者已经完全释放该锁，不再拥有该锁。所以，将拥有者设置为null。如果当前线程不是锁的拥有者，那么在企图获取锁时在该锁上wait()，在release()方法中，如果拥有者已经完全释放锁，那么就将拥有者清零，并notify()其它线程。</p>
<p>  public void acquire() throws InterruptedException {<br />
    if (Thread.interrupted()) throw new InterruptedException();<br />
    Thread caller = Thread.currentThread();<br />
    synchronized(this) { // 在this上同步<br />
      if (caller == owner_)<br />
        ++holds_;<br />
      else {<br />
        try {<br />
          while (owner_ != null) wait();<br />
          owner_ = caller;<br />
          holds_ = 1;<br />
        }<br />
        catch (InterruptedException ex) {<br />
          notify();<br />
          throw ex;<br />
        }<br />
      }<br />
    }<br />
  }</p>
<p>  public synchronized void release()  { //在this上同步<br />
    if (Thread.currentThread() != owner_)<br />
      throw new Error(&#8220;Illegal Lock usage&#8221;); </p>
<p>    if (&#8211;holds_ == 0) {<br />
      owner_ = null;<br />
      notify();<br />
    }<br />
  }</p>
<p>注意上面的代码要对owner_和holds_在this上进行同步，以解决在这两个变量上的竞态条件。attempt()方法实现和Mutex类似，也添加了锁拥有者的检查及计数：</p>
<p>  public boolean attempt(long msecs) throws InterruptedException {<br />
    if (Thread.interrupted()) throw new InterruptedException();<br />
    Thread caller = Thread.currentThread();<br />
    synchronized(this) {<br />
      if (caller == owner_) {<br />
        ++holds_;<br />
        return true;<br />
      }<br />
      else if (owner_ == null) {<br />
        owner_ = caller;<br />
        holds_ = 1;<br />
        return true;<br />
      }<br />
      else if (msecs  holds_)<br />
      throw new Error(&#8220;Illegal Lock usage&#8221;); </p>
<p>    holds_ -= n;<br />
    if (holds_ == 0) {<br />
      owner_ = null;<br />
      notify();<br />
    }<br />
  }</p>
<p>使用实例</p>
<p>Doug Lea的concurrent包现在已经给广泛使用，在JBoss的org.jboss.mx.loading.UnifiedLoaderRepository 中就使用了concurrent包中的ReentrantLock进行JBoss中的类装载中的同步控制。下面看org.jboss.mx.loading.UnifiedLoaderRepository中对ReentrantLock的使用：</p>
<p>public class UnifiedLoaderRepository<br />
        extends LoaderRepository<br />
        implements NotificationBroadca&#115;ter, UnifiedLoaderRepositoryMBean<br />
  {</p>
<p>       private ReentrantLock reentrantLock = new ReentrantLock(); //生成一个重入锁</p>
<p>       public Class loadClass(String name, boolean resolve, ClassLoader cl)<br />
throws ClassNotFoundException<br />
        {<br />
           try<br />
           {<br />
              try<br />
              {<br />
                 // Only one thread at a time can load classes<br />
                 // Pass the classloader to release its lock when blocking the thread<br />
                 // We cannot use synchronized (this), as we MUST release the lock<br />
                 // on the classloader. Change this only after discussion on the<br />
                 // developer&#8217;s list !<br />
                 synchronize(cl); //对传入的ClassLoader上进行同步</p>
<p>                 // This syncronized block is necessary to synchronize with add/removeClassLoader<br />
                 // See comments in add/removeClassLoader; we iterate on the classloaders, must avoid<br />
                 // someone removes o&#114; adds a classloader in the meanwhile.<br />
                 synchronized (this)<br />
                 {<br />
                    // Try the cache before anything else.<br />
                    Class cls = loadClassFromCache(name, cl);</p>
<p>                    // Found in cache, we&#8217;re done<br />
                    if (cls != null) {return cls;}</p>
<p>                    // Not found in cache, ask the calling classloader<br />
                    cls = loadClassFromClassLoader(name, resolve, cl);</p>
<p>                    // The calling classloader sees the class, we&#8217;re done<br />
                    if (cls != null) {return cls;}</p>
<p>                    // Not visible by the calling classloader, iterate on the other classloaders<br />
                    cls = loadClassFromRepository(name, resolve, cl);</p>
<p>                    // Some other classloader sees the class, we&#8217;re done<br />
                    if (cls != null) {return cls;}</p>
<p>                    // This class is not visible<br />
                    throw new ClassNotFoundException(name);<br />
                 }<br />
              }<br />
              finally<br />
              {<br />
                 unsynchronize(cl); //使用完毕后释放重入锁<br />
              }<br />
           }<br />
           catch (ClassCircularityError x)<br />
           {<br />
         //&#8230;&#8230;..<br />
         }<br />
     }<br />
     //&#8230;&#8230;&#8230;<br />
}</p>
<p>上面代码中的synchronize()和unsynchronize()方法如下：</p>
<p>     private void synchronize(ClassLoader cl)</p>
<p>      {</p>
<p>         // This method<br />
         // 1- must allow only one thread at a time,<br />
         // 2- must allow a re-entrant thread,<br />
         // 3- must unlock the given classloader waiting on it,<br />
         // 4- must not hold any other lock.<br />
         // If these 4 are not done, deadlock will happen.<br />
         // Point 3 is necessary to fix Jung&#8217;s RFE#4670071</p>
<p>         // Beware also that is possible that a classloader arrives here already locked<br />
         // (for example via loadClassInternal()) an&#100; here we cannot synchronize on &#8216;this&#8217;<br />
         // otherwise we deadlock in loadClass() wh&#101;re we first synchronize on &#8216;this&#8217; an&#100;<br />
         // then on the classloader (resource o&#114;dering problem).<br />
         // We solve this by using a reentrant lock.</p>
<p>         // Save an&#100; clear the interrupted state of the incoming thread<br />
         boolean threadWasInterrupted = Thread.currentThread().interrupted();<br />
         try<br />
         {<br />
            // Only one thread can pass this barrier<br />
            // Other will accumulate here an&#100; let passed one at a time to wait on the classloader,<br />
            // lik&#101; a dro&#112;ping sink<br />
            reentrantLock.acquire();</p>
<p>            while (!isThreadAllowed(Thread.currentThread()))<br />
            {<br />
               // This thread is not allowed to run (another one is already running)<br />
               // so I release() to let another thread to enter (will come here again)<br />
               // an&#100; they will wait on the classloader to release its lock.<br />
               // It is important that the wait below is not wait(0) since it may be<br />
               // possible that a notifyAll arrives before the wait.<br />
               // It is also important that this release() is outside the sync block on<br />
               // the classloader, to avoid deadlock with threads that triggered<br />
               // loadClassInternal(), locking the classloader</p>
<p>               reentrantLock.release();</p>
<p>               synchronized (cl)<br />
               {<br />
                  // Threads will wait here on the classloader object.<br />
                  // Waiting on the classloader is fundamental to workaround Jung&#8217;s RFE#4670071<br />
                  // However, we cannot wait(0), since it is possible that 2 threads will try to load<br />
                  // classes with different classloaders, so one will enter, the other wait, but<br />
                  // since they&#8217;re using different classloaders, nobody will wake up the waiting one.<br />
                  // So we wait for some time an&#100; then try again.</p>
<p>                  try {cl.wait(137);}<br />
                  catch (InterruptedException ignored) {}<br />
               }</p>
<p>               // A notifyAll() has been issued, all threads will accumulate here<br />
               // an&#100; only one at a time will pass, exactly equal to the barrier<br />
               // before the &#8216;while&#8217; statement (dro&#112;ping sink).<br />
               // Must be outside the synchronized block on the classloader to avoid that<br />
               // waiting on the reentrant lock will hold the lock on the classloader</p>
<p>               try<br />
               {<br />
                  reentrantLock.acquire();<br />
               }<br />
               catch (InterruptedException ignored)<br />
               {<br />
               }<br />
            }<br />
         }<br />
         catch(InterruptedException ignored)<br />
         {<br />
         }<br />
         finally<br />
         {<br />
            // I must keep track of the threads that entered, also of the reentrant ones,<br />
            // see unsynchronize()<br />
            increaseThreadsCount();</p>
<p>            // I release the lock, allowing another thread to enter.<br />
            // This new thread will not be allowed an&#100; will wait() on the classloader object,<br />
            // releasing its lock.<br />
            reentrantLock.release();</p>
<p>            // Restore the interrupted state of the thread<br />
            if( threadWasInterrupted )<br />
               Thread.currentThread().interrupt();<br />
         }<br />
      }</p>
<p>      private void unsynchronize(ClassLoader cl)<br />
      {<br />
         // Save an&#100; clear the interrupted state of the incoming thread<br />
         boolean threadWasInterrupted = Thread.currentThread().interrupted();<br />
         try<br />
         {<br />
            reentrantLock.acquire();</p>
<p>            // Reset the current thread only if we&#8217;re not reentrant<br />
            if (decreaseThreadsCount() == 0)<br />
            {<br />
               setCurrentThread(null);<br />
            }<br />
         }<br />
         catch (InterruptedException ignored)<br />
         {<br />
         }<br />
         finally<br />
         {<br />
            reentrantLock.release();</p>
<p>            // Notify all threads waiting on this classloader<br />
            // This notification must be after the reentrantLock&#8217;s release() to avoid this scenario:<br />
            // &#8211; Thread A is loading a class in the ULR<br />
            // &#8211; Thread B triggers a loadClassInternal which locks the UCL<br />
            // &#8211; Thread A calls unsynchronize, locks the reentrantLock<br />
            //    an&#100; waits to acquire the lock on the UCL<br />
            // &#8211; Thread B calls synchronize an&#100; waits to lock the reentrantLock<br />
            synchronized (cl)<br />
            {<br />
               cl.notifyAll();<br />
            }</p>
<p>            // Restore the interrupted state of the thread<br />
            if( threadWasInterrupted )<br />
               Thread.currentThread().interrupt();<br />
         }<br />
      }</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/81/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于多线程</title>
		<link>http://welog.org/blog/80</link>
		<comments>http://welog.org/blog/80#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:45:07 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%85%b3%e4%ba%8e%e5%a4%9a%e7%ba%bf%e7%a8%8b/</guid>
		<description><![CDATA[作者：我这里可以大概给你介绍一下，但对于每一种编程模型要看具体的示例是什么，而且我不可能给你罗列所有的代码，请谅解。&#160; 其实我们编程只要尽量站到比较高的层次，很多道理其实你会发现你已经懂了。&#160; 就多线程来说，我们开始设想只有两个线程（&#62;2时是不是算数学归纳法？）那么如果两个独立的线程会发生什么呢？&#160; 作者：我这里可以大概给你介绍一下，但对于每一种编程模型要看具体的示例是什么，而且我不可能给你罗列所有的代码，请谅解。 其实我们编程只要尽量站到比较高的层次，很多道理其实你会发现你已经懂了。 就多线程来说，我们开始设想只有两个线程（&#62;2时是不是算数学归纳法？）那么如果两个独立的线程会发生什么呢？ 1。当一个线程进入moniter（也就是说站用一个object），另一个线程只有等待或返回，而我们把返回就称为一种模式，这种模式的英文是Balking。 2。这两个线程可以是有序的执行，而不是让OS来调度，这时我们要用一个object来调度，这种模式称为Scheduler。（这个词及其含义其实OS中就有）。 3。如果这两个线程同时读一个资源，我们可以让他们执行，但如果同时写的话，你闭着眼睛都会知道可能出现问题，这时我们就要用另一种模式（Read/Write Lock）。 4。如果一个线程是为另一个线程服务的话，比如IE中负责数据传输的线程和界面显示的线程，当一个图片没有传完时，另一个线程就无法显示，至少是部分没有传完。那么这时我们要用一个模式称为生产者和消费者，英文是Producer-Consumer。 5。两个线程的消亡也可以不是完全又OS来控制的，这时我们需要给出一个条件，使得每个线程在符合条件是才消亡，也就是有序的消亡，我们称为Two-Phase Termination。 那么有这5个线程模型，基本上可以用到大多数编程任务中。我需要指出的三点是： 1。从高层次上我们可以再验证是否含盖了所有的情况。 2。其实模式不是完全固定的或者说象定律一样，而模式可以为不同的情况进行适当 的调整和组合，目的是为了简洁和高效。 3。学习模式是为了具备更好的分析问题的能力。 而似乎这些来自西方的技术，并且是目前的，我们有没有呢？其实我个人有个大胆的推测，我认为我们祖先的《孙子兵法》就是很好设计模式，因为它符合设计模式需要的基本特征，就是在特定的条件下，用某种特定的方式合理且高效的解决问题。只不过一是用在军事上，二是完备性方面我们还没研究。但我认为我们至少没有很好的扩展和进行类比式的应用，否则今天可能是我们中国人教外国人什么是设计模式。 类比的方法实际上是发明或发现的常用方法。不知能否让你感觉到其实外国的技术并不是那么的神秘，也许我们从自身的文化当中挖掘出的东西太少了。 &#8212;&#8211;]]></description>
			<content:encoded><![CDATA[<p>作者：我这里可以大概给你介绍一下，但对于每一种编程模型要看具体的示例是什么，而且我不可能给你罗列所有的代码，请谅解。&nbsp;</p>
<p>其实我们编程只要尽量站到比较高的层次，很多道理其实你会发现你已经懂了。&nbsp;</p>
<p>就多线程来说，我们开始设想只有两个线程（&gt;2时是不是算数学归纳法？）那么如果两个独立的线程会发生什么呢？&nbsp;<br />
<span id="more-80"></span><br />
作者：我这里可以大概给你介绍一下，但对于每一种编程模型要看具体的示例是什么，而且我不可能给你罗列所有的代码，请谅解。 </p>
<p>其实我们编程只要尽量站到比较高的层次，很多道理其实你会发现你已经懂了。 </p>
<p>就多线程来说，我们开始设想只有两个线程（&gt;2时是不是算数学归纳法？）那么如果两个独立的线程会发生什么呢？ </p>
<p>1。当一个线程进入moniter（也就是说站用一个object），另一个线程只有等待或返回，而我们把返回就称为一种模式，这种模式的英文是Balking。 </p>
<p>2。这两个线程可以是有序的执行，而不是让OS来调度，这时我们要用一个object来调度，这种模式称为Scheduler。（这个词及其含义其实OS中就有）。 </p>
<p>3。如果这两个线程同时读一个资源，我们可以让他们执行，但如果同时写的话，你闭着眼睛都会知道可能出现问题，这时我们就要用另一种模式（Read/Write Lock）。 </p>
<p>4。如果一个线程是为另一个线程服务的话，比如IE中负责数据传输的线程和界面显示的线程，当一个图片没有传完时，另一个线程就无法显示，至少是部分没有传完。那么这时我们要用一个模式称为生产者和消费者，英文是Producer-Consumer。 </p>
<p>5。两个线程的消亡也可以不是完全又OS来控制的，这时我们需要给出一个条件，使得每个线程在符合条件是才消亡，也就是有序的消亡，我们称为Two-Phase Termination。 </p>
<p>那么有这5个线程模型，基本上可以用到大多数编程任务中。我需要指出的三点是： </p>
<p>1。从高层次上我们可以再验证是否含盖了所有的情况。 </p>
<p>2。其实模式不是完全固定的或者说象定律一样，而模式可以为不同的情况进行适当 的调整和组合，目的是为了简洁和高效。 </p>
<p>3。学习模式是为了具备更好的分析问题的能力。 </p>
<p>而似乎这些来自西方的技术，并且是目前的，我们有没有呢？其实我个人有个大胆的推测，我认为我们祖先的《孙子兵法》就是很好设计模式，因为它符合设计模式需要的基本特征，就是在特定的条件下，用某种特定的方式合理且高效的解决问题。只不过一是用在军事上，二是完备性方面我们还没研究。但我认为我们至少没有很好的扩展和进行类比式的应用，否则今天可能是我们中国人教外国人什么是设计模式。 </p>
<p>类比的方法实际上是发明或发现的常用方法。不知能否让你感觉到其实外国的技术并不是那么的神秘，也许我们从自身的文化当中挖掘出的东西太少了。<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/80/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java 程序中的多线程</title>
		<link>http://welog.org/blog/79</link>
		<comments>http://welog.org/blog/79#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:44:18 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java-%e7%a8%8b%e5%ba%8f%e4%b8%ad%e7%9a%84%e5%a4%9a%e7%ba%bf%e7%a8%8b/</guid>
		<description><![CDATA[看一看开发和使用线程是多么容易 Neel&#160;V.&#160;KumarTerway.com&#160;软件工程师 看一看开发和使用线程是多么容易 Neel V. Kumar Terway.com 软件工程师 2000 年 3 月 内容： 为什么会排队等待？ 实现线程 高级多线程 不提倡使用的方法 调试线程 调试若干个线程 限制线程优先级 小结 参考资料 作者简介 在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多，这是因为 Java 编程语言提供了语言级的支持。本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观。读完本文以后，用户应该能够编写简单的多线程程序。 为什么会排队等待？ 下面的这个简单的 Java 程序完成四项不相关的任务。这样的程序有单个控制线程，控制在这四个任务之间线性地移动。此外，因为所需的资源 — 打印机、磁盘、数据库和显示屏 &#8212; 由于硬件和软件的限制都有内在的潜伏时间，所以每项任务都包含明显的等待时间。因此，程序在访问数据库之前必须等待打印机完成打印文件的任务，等等。如果您正在等待程序的完成，则这是对计算资源和您的时间的一种拙劣使用。改进此程序的一种方法是使它成为多线程的。 四项不相关的任务 class myclass { static public void main(String args[]) { print_a_file(); manipulate_another_file(); access_database(); [...]]]></description>
			<content:encoded><![CDATA[<p>看一看开发和使用线程是多么容易</p>
<p>Neel&nbsp;V.&nbsp;Kumar<br />Terway.com&nbsp;软件工程师<br />
<span id="more-79"></span><br />
看一看开发和使用线程是多么容易</p>
<p>Neel V. Kumar<br />
Terway.com 软件工程师<br />
2000 年 3 月</p>
<p>内容： </p>
<p>为什么会排队等待？<br />
实现线程<br />
高级多线程<br />
不提倡使用的方法<br />
调试线程<br />
调试若干个线程<br />
限制线程优先级<br />
小结<br />
参考资料<br />
作者简介 </p>
<p>在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多，这是因为 Java 编程语言提供了语言级的支持。本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观。读完本文以后，用户应该能够编写简单的多线程程序。</p>
<p>为什么会排队等待？<br />
下面的这个简单的 Java 程序完成四项不相关的任务。这样的程序有单个控制线程，控制在这四个任务之间线性地移动。此外，因为所需的资源 — 打印机、磁盘、数据库和显示屏 &#8212; 由于硬件和软件的限制都有内在的潜伏时间，所以每项任务都包含明显的等待时间。因此，程序在访问数据库之前必须等待打印机完成打印文件的任务，等等。如果您正在等待程序的完成，则这是对计算资源和您的时间的一种拙劣使用。改进此程序的一种方法是使它成为多线程的。</p>
<p>四项不相关的任务</p>
<p>class myclass {<br />
static public void main(String args[]) {<br />
    print_a_file();<br />
    manipulate_another_file();<br />
    access_database();<br />
    draw_picture_on_screen();<br />
    }<br />
}</p>
<p>在本例中，每项任务在开始之前必须等待前一项任务完成，即使所涉及的任务毫不相关也是这样。但是，在现实生活中，我们经常使用多线程模型。我们在处理某些任务的同时也可以让孩子、配偶和父母完成别的任务。例如，我在写信的同时可能打发我的儿子去邮局买邮票。用软件术语来说，这称为多个控制（或执行）线程。</p>
<p>可以用两种不同的方法来获得多个控制线程：</p>
<p>多个进程<br />
在大多数操作系统中都可以创建多个进程。当一个程序启动时，它可以为即将开始的每项任务创建一个进程，并允许它们同时运行。当一个程序因等待网络访问或用户输入而被阻塞时，另一个程序还可以运行，这样就增加了资源利用率。但是，按照这种方式创建每个进程要付出一定的代价：设置一个进程要占用相当一部分处理器时间和内存资源。而且，大多数操作系统不允许进程访问其他进程的内存空间。因此，进程间的通信很不方便，并且也不会将它自己提供给容易的编程模型。<br />
线程<br />
线程也称为轻型进程 (LWP)。因为线程只能在单个进程的作用域内活动，所以创建线程比创建进程要廉价得多。这样，因为线程允许协作和数据交换，并且在计算资源方面非常廉价，所以线程比进程更可取。线程需要操作系统的支持，因此不是所有的机器都提供线程。Java 编程语言，作为相当新的一种语言，已将线程支持与语言本身合为一体，这样就对线程提供了强健的支持。<br />
使用 Java 编程语言实现线程<br />
Java 编程语言使多线程如此简单有效，以致于某些程序员说它实际上是自然的。尽管在 Java 中使用线程比在其他语言中要容易得多，仍然有一些概念需要掌握。要记住的一件重要的事情是 main() 函数也是一个线程，并可用来做有用的工作。程序员只有在需要多个线程时才需要创建新的线程。</p>
<p>Thread 类<br />
Thread 类是一个具体的类，即不是抽象类，该类封装了线程的行为。要创建一个线程，程序员必须创建一个从 Thread 类导出的新类。程序员必须覆盖 Thread 的 run() 函数来完成有用的工作。用户并不直接调用此函数；而是必须调用 Thread 的 start() 函数，该函数再调用 run()。下面的代码说明了它的用法：</p>
<p>创建两个新线程</p>
<p>import java.util.*;</p>
<p>class TimePrinter extends Thread {<br />
    int pauseTime;<br />
    String name;<br />
    public TimePrinter(int x, String n) {<br />
        pauseTime = x;<br />
        name = n;<br />
    }</p>
<p>    public void run() {<br />
        while(true) {<br />
            try {<br />
                System.out.println(name + &#8220;:&#8221; + new<br />
                    Date(System.currentTimeMillis()));<br />
                Thread.sleep(pauseTime);<br />
            } catch(Exception e) {<br />
                System.out.println(e);<br />
            }<br />
        }<br />
    }</p>
<p>    static public void main(String args[]) {<br />
        TimePrinter tp1 = new TimePrinter(1000, &#8220;Fast Guy&#8221;);<br />
        tp1.start();<br />
        TimePrinter tp2 = new TimePrinter(3000, &#8220;Slow Guy&#8221;);<br />
        tp2.start();</p>
<p>    }<br />
}</p>
<p>在本例中，我们可以看到一个简单的程序，它按两个不同的时间间隔（1 秒和 3 秒）在屏幕上显示当前时间。这是通过创建两个新线程来完成的，包括 main() 共三个线程。但是，因为有时要作为线程运行的类可能已经是某个类层次的一部分，所以就不能再按这种机制创建线程。虽然在同一个类中可以实现任意数量的接口，但 Java 编程语言只允许一个类有一个父类。同时，某些程序员避免从 Thread 类导出，因为它强加了类层次。对于这种情况，就要 runnable 接口。</p>
<p>Runnable 接口<br />
此接口只有一个函数，run()，此函数必须由实现了此接口的类实现。但是，就运行这个类而论，其语义与前一个示例稍有不同。我们可以用 runnable 接口改写前一个示例。（不同的部分用黑体表示。） </p>
<p>创建两个新线程而不强加类层次</p>
<p>import java.util.*;</p>
<p>class TimePrinter implements Runnable {<br />
    int pauseTime;<br />
    String name;<br />
    public TimePrinter(int x, String n) {<br />
        pauseTime = x;<br />
        name = n;<br />
    }</p>
<p>    public void run() {<br />
        while(true) {<br />
            try {<br />
                System.out.println(name + &#8220;:&#8221; + new<br />
                    Date(System.currentTimeMillis()));<br />
                Thread.sleep(pauseTime);<br />
            } catch(Exception e) {<br />
                System.out.println(e);<br />
            }<br />
        }<br />
    }</p>
<p>    static public void main(String args[]) {<br />
        Thread t1 = new Thread(new TimePrinter(1000, &#8220;Fast Guy&#8221;));<br />
        t1.start();<br />
        Thread t2 = new Thread(new TimePrinter(3000, &#8220;Slow Guy&#8221;));<br />
        t2.start();</p>
<p>    }<br />
}</p>
<p>请注意，当使用 runnable 接口时，您不能直接创建所需类的对象并运行它；必须从 Thread 类的一个实例内部运行它。许多程序员更喜欢 runnable 接口，因为从 Thread 类继承会强加类层次。</p>
<p>synchronized 关键字<br />
到目前为止，我们看到的示例都只是以非常简单的方式来利用线程。只有最小的数据流，而且不会出现两个线程访问同一个对象的情况。但是，在大多数有用的程序中，线程之间通常有信息流。试考虑一个金融应用程序，它有一个 Account 对象，如下例中所示：</p>
<p>一个银行中的多项活动</p>
<p>public class Account {<br />
    String holderName;<br />
    float amount;<br />
    public Account(String name, float amt) {<br />
        holderName = name;<br />
        amount = amt;<br />
    }</p>
<p>    public void deposit(float amt) {<br />
        amount += amt;<br />
    }</p>
<p>    public void withdraw(float amt) {<br />
        amount -= amt;<br />
    }</p>
<p>    public float checkBalance() {<br />
        return amount;<br />
    }<br />
}</p>
<p>在此代码样例中潜伏着一个错误。如果此类用于单线程应用程序，不会有任何问题。但是，在多线程应用程序的情况中，不同的线程就有可能同时访问同一个 Account 对象，比如说一个联合帐户的所有者在不同的 ATM 上同时进行访问。在这种情况下，存入和支出就可能以这样的方式发生：一个事务被另一个事务覆盖。这种情况将是灾难性的。但是，Java 编程语言提供了一种简单的机制来防止发生这种覆盖。每个对象在运行时都有一个关联的锁。这个锁可通过为方法添加关键字 synchronized 来获得。这样，修订过的 Account 对象（如下所示）将不会遭受像数据损坏这样的错误：</p>
<p>对一个银行中的多项活动进行同步处理</p>
<p>public class Account {<br />
    String holderName;<br />
    float amount;<br />
    public Account(String name, float amt) {<br />
        holderName = name;<br />
        amount = amt;<br />
    }</p>
<p>    public synchronized void deposit(float amt) {<br />
        amount += amt;<br />
    }</p>
<p>    public synchronized void withdraw(float amt) {<br />
        amount -= amt;<br />
    }</p>
<p>    public float checkBalance() {<br />
        return amount;<br />
    }<br />
}</p>
<p>deposit() 和 withdraw() 函数都需要这个锁来进行操作，所以当一个函数运行时，另一个函数就被阻塞。请注意， checkBalance() 未作更改，它严格是一个读函数。因为 checkBalance() 未作同步处理，所以任何其他方法都不会阻塞它，它也不会阻塞任何其他方法，不管那些方法是否进行了同步处理。</p>
<p>Java 编程语言中的高级多线程支持</p>
<p>线程组<br />
线程是被个别创建的，但可以将它们归类到线程组中，以便于调试和监视。只能在创建线程的同时将它与一个线程组相关联。在使用大量线程的程序中，使用线程组组织线程可能很有帮助。可以将它们看作是计算机上的目录和文件结构。</p>
<p>线程间发信<br />
当线程在继续执行前需要等待一个条件时，仅有 synchronized 关键字是不够的。虽然 synchronized 关键字阻止并发更新一个对象，但它没有实现线程间发信。Object 类为此提供了三个函数：wait()、notify() 和 notifyAll()。以全球气候预测程序为例。这些程序通过将地球分为许多单元，在每个循环中，每个单元的计算都是隔离进行的，直到这些值趋于稳定，然后相邻单元之间就会交换一些数据。所以，从本质上讲，在每个循环中各个线程都必须等待所有线程完成各自的任务以后才能进入下一个循环。这个模型称为 屏蔽同步，下例说明了这个模型：</p>
<p>屏蔽同步</p>
<p>public class BSync {<br />
    int totalThreads;<br />
    int currentThreads;</p>
<p>    public BSync(int x) {<br />
        totalThreads = x;<br />
        currentThreads = 0;<br />
    }</p>
<p>    public synchronized void waitForAll() {<br />
        currentThreads++;<br />
        if(currentThreads </p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/79/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>彻底明白Java的多线程</title>
		<link>http://welog.org/blog/78</link>
		<comments>http://welog.org/blog/78#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:41:35 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%bd%bb%e5%ba%95%e6%98%8e%e7%99%bdjava%e7%9a%84%e5%a4%9a%e7%ba%bf%e7%a8%8b/</guid>
		<description><![CDATA[[b]彻底明白Java的多线程-实现多线程及线程的同步&#160;[/b]一．&#160;&#160;&#160;&#160;实现多线程 1.&#160;&#160;&#160;&#160;虚假的多线程例1： [b]彻底明白Java的多线程-实现多线程及线程的同步 [/b] 一． 实现多线程 1. 虚假的多线程 例1： public class TestThread { int i=0, j=0; public void go(int flag){ while(true){ try{ Thread.sleep(100); } catch(InterruptedException e){ System.out.println(&#8220;Interrupted&#8221;); } if(flag==0) i++; System.out.println(&#8220;i=&#8221; + i); } else{ j++; System.out.println(&#8220;j=&#8221; + j); } } } public static void main(String[] args){ new TestThread().go(0); new TestThread().go(1); } } 上面程序的运行结果为： i=1 [...]]]></description>
			<content:encoded><![CDATA[<p>[b]彻底明白Java的多线程-实现多线程及线程的同步&nbsp;[/b]<br />一．&nbsp;&nbsp;&nbsp;&nbsp;实现多线程</p>
<p>1.&nbsp;&nbsp;&nbsp;&nbsp;虚假的多线程<br />例1：<br />
<span id="more-78"></span><br />
[b]彻底明白Java的多线程-实现多线程及线程的同步 [/b]<br />
一．    实现多线程</p>
<p>1.    虚假的多线程<br />
例1：<br />
public class TestThread<br />
{<br />
    int i=0, j=0;<br />
    public void go(int flag){<br />
        while(true){<br />
            try{<br />
                Thread.sleep(100);<br />
            }<br />
            catch(InterruptedException e){<br />
                System.out.println(&#8220;Interrupted&#8221;);<br />
            }<br />
            if(flag==0)<br />
                i++;<br />
                System.out.println(&#8220;i=&#8221; + i);<br />
            }<br />
            else{<br />
                j++;<br />
                System.out.println(&#8220;j=&#8221; + j);<br />
            }<br />
        }<br />
    }<br />
    public static void main(String[] args){<br />
        new TestThread().go(0);<br />
        new TestThread().go(1);<br />
    }<br />
}</p>
<p>    上面程序的运行结果为：<br />
    i=1<br />
i=2<br />
i=3<br />
。。。<br />
结果将一直打印出I的值。我们的意图是当在while循环中调用sleep()时，另一个线程就将起动，打印出j的值，但结果却并不是这样。关于sleep()为什么不会出现我们预想的结果，在下面将讲到。<br />
2.    实现多线程<br />
通过继承class　Thread或实现Runnable接口，我们可以实现多线程<br />
2.1    通过继承class　Thread实现多线程<br />
class　Thread中有两个最重要的函数run()和start()。<br />
1)    run()函数必须进行覆写，把要在多个线程中并行处理的代码放到这个函数中。<br />
2)    虽然run()函数实现了多个线程的并行处理，但我们不能直接调用run()函数，而是通过调用start()函数来调用run()函数。在调用start()的时候，start()函数会首先进行与多线程相关的初始化（这也是为什么不能直接调用run()函数的原因），然后再调用run()函数。<br />
例2：<br />
public class TestThread extends Thread{<br />
    private static int threadCount = 0;<br />
    private int threadNum = ++threadCount;<br />
    private int i = 5;<br />
    public void run(){<br />
        while(true){<br />
            try{<br />
                Thread.sleep(100);　<br />
            }<br />
            catch(InterruptedException e){<br />
                System.out.println(&#8220;Interrupted&#8221;);<br />
            }<br />
            System.out.println(&#8220;Thread &#8221; + threadNum + &#8221; = &#8221; + i);<br />
            if(&#8211;i==0) return;<br />
        }<br />
    }<br />
    public static void main(String[] args){<br />
        for(int i=0; i</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/78/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于多线程同步的初步教程</title>
		<link>http://welog.org/blog/77</link>
		<comments>http://welog.org/blog/77#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:40:12 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%85%b3%e4%ba%8e%e5%a4%9a%e7%ba%bf%e7%a8%8b%e5%90%8c%e6%ad%a5%e7%9a%84%e5%88%9d%e6%ad%a5%e6%95%99%e7%a8%8b/</guid>
		<description><![CDATA[&#160;关于多线程同步的初步教程－－使用synchronized&#160;&#160;&#160;&#160;&#160;&#160;在编写一个类时，如果该类中的代码可能运行于多线程环境下，那么就要考虑同步的问题。在Java中内置了语言级的同步原语－－synchronized，这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序，是模拟银行中的多个线程同时对同一个储蓄账户进行存款、取款操作的。在程序中我们使用了一个简化版本的Account类，代表了一个银行账户的信息。在主程序中我们首先生成了1000个线程，然后启动它们，每一个线程都对John的账户进行存100元，然后马上又取出100元。这样，对于John的账户来说，最终账户的余额应该是还是1000元才对。然而运行的结果却超出我们的想像，首先来看看我们的演示代码： 关于多线程同步的初步教程－－使用synchronized 在编写一个类时，如果该类中的代码可能运行于多线程环境下，那么就要考虑同步的问题。在Java中内置了语言级的同步原语－－synchronized，这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序，是模拟银行中的多个线程同时对同一个储蓄账户进行存款、取款操作的。 在程序中我们使用了一个简化版本的Account类，代表了一个银行账户的信息。在主程序中我们首先生成了1000个线程，然后启动它们，每一个线程都对John的账户进行存100元，然后马上又取出100元。这样，对于John的账户来说，最终账户的余额应该是还是1000元才对。然而运行的结果却超出我们的想像，首先来看看我们的演示代码： class Account { String name; float amount; public Account(String name, float amount) { this.name = name; this.amount = amount; } public void deposit(float amt) { float tmp = amount; tmp += amt; try { Thread.sleep(100);//模拟其它处理所需要的时间，比如刷新数据库等 } catch (InterruptedException e) { // ignore } amount = tmp; } public void withdraw(float amt) [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;关于多线程同步的初步教程－－使用synchronized&nbsp;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;在编写一个类时，如果该类中的代码可能运行于多线程环境下，那么就要考虑同步的问题。在Java中内置了语言级的同步原语－－synchronized，这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序，是模拟银行中的多个线程同时对同一个储蓄账户进行存款、取款操作的。<br />在程序中我们使用了一个简化版本的Account类，代表了一个银行账户的信息。在主程序中我们首先生成了1000个线程，然后启动它们，每一个线程都对John的账户进行存100元，然后马上又取出100元。这样，对于John的账户来说，最终账户的余额应该是还是1000元才对。然而运行的结果却超出我们的想像，首先来看看我们的演示代码：<br />
<span id="more-77"></span><br />
关于多线程同步的初步教程－－使用synchronized </p>
<p>    在编写一个类时，如果该类中的代码可能运行于多线程环境下，那么就要考虑同步的问题。在Java中内置了语言级的同步原语－－synchronized，这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序，是模拟银行中的多个线程同时对同一个储蓄账户进行存款、取款操作的。<br />
在程序中我们使用了一个简化版本的Account类，代表了一个银行账户的信息。在主程序中我们首先生成了1000个线程，然后启动它们，每一个线程都对John的账户进行存100元，然后马上又取出100元。这样，对于John的账户来说，最终账户的余额应该是还是1000元才对。然而运行的结果却超出我们的想像，首先来看看我们的演示代码：</p>
<p>class Account {<br />
    String name;<br />
    float amount;</p>
<p>    public Account(String name, float amount) {<br />
        this.name = name;<br />
        this.amount = amount;<br />
    }</p>
<p>    public  void deposit(float amt) {<br />
        float tmp = amount;<br />
        tmp += amt;</p>
<p>        try {<br />
            Thread.sleep(100);//模拟其它处理所需要的时间，比如刷新数据库等<br />
        } catch (InterruptedException e) {<br />
            // ignore<br />
        }</p>
<p>        amount = tmp;<br />
    }</p>
<p>    public  void withdraw(float amt) {<br />
        float tmp = amount;<br />
        tmp -= amt;</p>
<p>        try {<br />
            Thread.sleep(100);//模拟其它处理所需要的时间，比如刷新数据库等<br />
        } catch (InterruptedException e) {<br />
            // ignore<br />
        }        </p>
<p>        amount = tmp;<br />
    }</p>
<p>    public float getBalance() {<br />
        return amount;<br />
    }<br />
}</p>
<p>public class AccountTest{<br />
    private static int NUM_OF_THREAD = 1000;<br />
    static Thread[] threads = new Thread[NUM_OF_THREAD];</p>
<p>    public static void main(String[] args){<br />
        final Account acc = new Account(&#8220;John&#8221;, 1000.0f);<br />
        for (int i = 0; ijava AccountTest<br />
Finally, John&#8217;s balance is:3900.0</p>
<p>E:\java\exer\bin&gt;java AccountTest<br />
Finally, John&#8217;s balance is:4900.0</p>
<p>E:\java\exer\bin&gt;java AccountTest<br />
Finally, John&#8217;s balance is:4700.0</p>
<p>E:\java\exer\bin&gt;java AccountTest<br />
Finally, John&#8217;s balance is:3900.0</p>
<p>E:\java\exer\bin&gt;java AccountTest<br />
Finally, John&#8217;s balance is:3900.0</p>
<p>E:\java\exer\bin&gt;java AccountTest<br />
Finally, John&#8217;s balance is:5200.0</p>
<p>为什么会出现这样的问题？这就是多线程中的同步的问题。在我们的程序中，Account中的amount会同时被多个线程所访问，这就是一个竞争资源，通常称作竞态条件。对于这样的多个线程共享的资源我们必须进行同步，以避免一个线程的改动被另一个线程所覆盖。在我们这个程序中，Account中的amount是一个竞态条件，所以所有对amount的修改访问都要进行同步，我们将deposit()和withdraw()方法进行同步，修改为：</p>
<p>    public synchronized void deposit(float amt) {<br />
        float tmp = amount;<br />
        tmp += amt;</p>
<p>        try {<br />
            Thread.sleep(1);//模拟其它处理所需要的时间，比如刷新数据库等<br />
        } catch (InterruptedException e) {<br />
            // ignore<br />
        }</p>
<p>        amount = tmp;<br />
    }</p>
<p>    public synchronized void withdraw(float amt) {<br />
        float tmp = amount;<br />
        tmp -= amt;</p>
<p>        try {<br />
            Thread.sleep(1);//模拟其它处理所需要的时间，比如刷新数据库等<br />
        } catch (InterruptedException e) {<br />
            // ignore<br />
        }        </p>
<p>        amount = tmp;<br />
    }</p>
<p>此时，再运行，我们就能够得到正确的结果了。Account中的getBalance()也访问了amount，为什么不对getBalance()同步呢？因为getBalance()并不会修改amount的值，所以，同时多个线程对它访问不会造成数据的混乱。<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/77/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>父类和子类转换浅谈篇</title>
		<link>http://welog.org/blog/76</link>
		<comments>http://welog.org/blog/76#comments</comments>
		<pubDate>Mon, 14 Mar 2005 15:38:42 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e7%88%b6%e7%b1%bb%e5%92%8c%e5%ad%90%e7%b1%bb%e8%bd%ac%e6%8d%a2%e6%b5%85%e8%b0%88%e7%af%87/</guid>
		<description><![CDATA[父类和子类转换浅谈篇(将子类对象赋值给父类对象) 最近对将子类对象赋值给父类对象有点心得,想和大家分享一下.但本人水平有限,请各位指正和批评.言归正传,下面是几个小例子,请大家看一看. 父类和子类转换浅谈篇(将子类对象赋值给父类对象) 最近对将子类对象赋值给父类对象有点心得,想和大家分享一下.但本人水平有限,请各位指正和批评.言归正传,下面是几个小例子,请大家看一看. 测试一父类：public class Supclass{public void print(){System.out.println(&#8220;this is 父类print()方法&#8221;+&#8221;&#8211;此时对象&#8221;+this.toString());}} 子类：public class Subclass extends Supclass{public static void main(String[] args){Supclass sup=new Subclass();sup.print();System.out.println(&#8220;此时对象&#8221;+sup.toString());}} 结果：this is 父类print()方法&#8211;此时对象是Subclass@126b249此时对象是Subclass@126b249说明：Supclass sup=new Subclass();虽然声明的对象是父类对象，但实际的内存空间是子类对象的。继承父类的方法public void print()被调用，输出的是子类对象名字解析。 结论：编译时声明的对象是父类对象，但运行时却是子类对象.子类没有重写父类的方法，则此 时的对象调用继承父类的方法。 测试二父类：public class Supclass{public void print(){System.out.println(&#8220;this is 父类print()方法&#8221;+&#8221;&#8211;此时对象&#8221;+this.toString());}} 子类：public class Subclass extends Supclass{public void print(){System.out.println(&#8220;this is 子类print()方法&#8221;+&#8221;&#8211;此时对象&#8221;+this.toString());}public static void main(String[] args){Supclass sup=new Subclass();sup.print();System.out.println(&#8220;此时对象&#8221;+sup.toString());}} 结果：this is [...]]]></description>
			<content:encoded><![CDATA[<p>父类和子类转换浅谈篇(将子类对象赋值给父类对象)</p>
<p>最近对将子类对象赋值给父类对象有点心得,想和大家分享一下.但本人水平有限,请各位指正和批评.<br />言归正传,下面是几个小例子,请大家看一看.</p>
<p><span id="more-76"></span></p>
<p>父类和子类转换浅谈篇(将子类对象赋值给父类对象)</p>
<p>最近对将子类对象赋值给父类对象有点心得,想和大家分享一下.但本人水平有限,请各位指正和批评.<br />言归正传,下面是几个小例子,请大家看一看.</p>
<p>测试一<br />父类：<br />public class Supclass<br />{<br />public void print()<br />{<br />System.out.println(&#8220;this is 父类print()方法&#8221;+&#8221;&#8211;此时对象&#8221;+this.toString());<br />}<br />}</p>
<p>子类：<br />public class Subclass extends Supclass<br />{<br />public static void main(String[] args)<br />{<br />Supclass sup=new Subclass();<br />sup.print();<br />System.out.println(&#8220;此时对象&#8221;+sup.toString());<br />}<br />}</p>
<p>结果：this is 父类print()方法&#8211;此时对象是Subclass@126b249<br />此时对象是Subclass@126b249<br />说明：<br />Supclass sup=new Subclass();<br />虽然声明的对象是父类对象，但实际的内存空间是子类对象的。<br />继承父类的方法public void print()被调用，输出的是子类对象名字解析。</p>
<p>结论：编译时声明的对象是父类对象，但运行时却是子类对象.子类没有重写父类的方法，则此 时的对象调用继承父类的方法。</p>
<p>测试二<br />父类：<br />public class Supclass<br />{<br />public void print()<br />{<br />System.out.println(&#8220;this is 父类print()方法&#8221;+&#8221;&#8211;此时对象&#8221;+this.toString());<br />}<br />}</p>
<p>子类：<br />public class Subclass extends Supclass<br />{<br />public void print()<br />{<br />System.out.println(&#8220;this is 子类print()方法&#8221;+&#8221;&#8211;此时对象&#8221;+this.toString());<br />}<br />public static void main(String[] args)<br />{<br />Supclass sup=new Subclass();<br />sup.print();<br />System.out.println(&#8220;此时对象&#8221;+sup.toString());<br />}<br />}</p>
<p>结果：this is 子类print()方法&#8211;此时对象是Subclass@126b249<br />此时对象是Subclass@126b249<br />说明：<br />我在上个例子的基础上，重写了父类的print()方法，此时的调用的是子类的print()方法。</p>
<p>结论：在上个例子结论的基础上，我得到了一个结论：此时对象运行时确实子类对象，如果子类没有从写父类的方法，<br />则此时的对象调用继承父类的方法；否则，此时的对象调用子类方法.</p>
<p>问题： 我们是不是可以从上面的测试得到的这样结论: 将子类对象赋值给父类对象(即Supclass sup=new Subclass()),<br />我们得到的就是子类对象,即sup就是子类对象??????<br />测试三<br />父类：<br />public class Supclass<br />{<br />protected String className=&#8221;父类属性&#8221;;<br />public void print()<br />{<br />System.out.println(&#8220;this is 父类print()方法&#8221;+&#8221;&#8211;此时对象&#8221;+this.toString());<br />}<br />}</p>
<p>子类：<br />public class Subclass extends Supclass<br />{<br />protected String className=&#8221;子类属性&#8221;;<br />public void print()<br />{<br />System.out.println(&#8220;this is 子类print()方法&#8221;+&#8221;&#8211;此时对象&#8221;+this.toString());<br />}<br />public static void main(String[] args)<br />{<br />Supclass sup=new Subclass();<br />System.out.println(&#8220;此时的属性时:&#8221;+sup.className);<br />}<br />}</p>
<p>结果：此时的属性时：父类属性</p>
<p>说明：我在第一个测试的基础上,给父类添了一个属性className,在子类重写了这个属性.<br />但我输出此时对象的属性时,却是父类的属性.<br />结论: 将子类对象赋值给父类对象,方法和属性和我们正统的继承关系很不一样.<br />问题:<br />此时对象究竟是子类对象,还是父类对象?</p>
<p>开始推测:<br />我在推测之前有几点须声明:<br />1.当我们new一个子类对象时,父类对象的构造函数同时也被执行,即父类的一些必要信息和子类对象共占一个内存空间,<br />当我们方法重写时,于是我们就能使用super这个指代父类的对象.</p>
<p>2.java中对象并不是完全的面向对象思想做的,即不是把一个对象的属性和方法同时封装到对象中.<br />而是对象有自己的属性,方法却是引用类中的方法,可以说它是把属性和类中方法的引用封装到对象中.<br />于是对象调用的方法不是自己的方法,而是类中方法.至于java为什么要这样做,我就不知道了.</p>
<p>3.当对象被加载到内存时,类先被加载到内存中,此后类应是一只留在内存中.至于类什么时候从内存中消失,我也不知道.<br />我想java一定有自己的回收机制,就像回收对象一样.</p>
<p>4.编译和与运行是完全不同的事.编译时主要做的是声明对象的类型,分配属性,检查语法错误等<br />运行时做的是,将对象加载内存(一般用new,反射也常用), 运行代码执行功能等.</p>
<p>5.若是读者您和我在这几点没有产生共鸣的话,或者说我们在这几点没用相同的认识的话,你会觉得我在胡说.<br />也许你会觉得我的专家分太低,就觉得我的可信程度就低.但我想说的是学不分先后,达者为先.<br />呵呵,我已准备好将我的专家分变为负值了,不胡扯了,我们继续.</p>
<p>推测:<br />1.当我们编译Supclass sup=new Subclass()时,sup对象被声明为Supclass类,于是sup对象的属性便是父类对象的属性的值,<br />它是编译时被确定好的.(声明4,可以对这段进行解释).这段话可以对测试三进行解释,即为什么此时对象的属性是父类对象的属性.</p>
<p>2.当我们运行Supclass sup=new Subclass()时,此时sup对象的内存空间是子类对象的内存空间(声明4,可以对这段进行解释),<br />注意此时sup对象的内存空间由两部分组成父类的一些必要信息和子类对象信息(声明1,可以对这段进行解释).<br />当我们不重写父类的方法时,由于此时内存空间已有父类的一些必要信息,所以继承父类的方法public void print()当然能被调用。<br />这段话可以对测试一进行解释.</p>
<p>3.接着2继续,若我们重写父类的方法时,由于sup对象的内存空间是子类对象的内存空间,子类的方法public void print()已被加载到内存中.<br />所以我们调用的是子类的方法public void print();如果你需要调用父类的被重写方法,需要用super.<br />这段话可以对测试二进行解释.<br />总结:<br />以下纯是个人观点:<br />将子类对象赋值给父类对象,所得到对象是这样的一个对象:<br />它是一个编译是为父类对象,但运行却是一个子类对象,具体特征如下.<br />1.被声明为父类对象<br />2.拥有父类属性<br />3.占用子类的内存空间<br />4.子类方法覆盖父类的方法时,此时对象调用的是子类的方法;否则,自动调用继承父类的方法.<br />5.我人认为这个对象既不是父类对象,也不是子类对象.当我们用到它的方法时,<br />我便把它看成子类对象;若用到它的属性时,我把它看成父类对象.<br />它是一个占用父类属性,而使用子类方法的对象.至于到底是什么对象,我认为还是得根据声明来,它应算是父类对象,但拥有子类方法.</p>
<p>想一想：<br />在测试三的基础上，我们如何取出子类的属性？？？？？</p>
<p>建议：<br />我可能由于自身的局限，不能深刻或不正确的表达了我的观点，希望大家多指教。<br />我建议大家看完一遍以后，先不要表示反对或赞同.如果你认为我胡说,你可以回帖子 指正,甚至骂我。<br />原因：可能你我由于认识不同，你认为我说的不对，于是你投了反对票，但过了一些<br />日子我们的认识相同了或更深刻了，你再想给我赞成投票，但你的投票机会已用完了，于是请您珍惜您的投票机会啊！！！</p>
<p class="zoundry_bw_tags">
  <!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --><br />
  <span class="ztags"><span class="ztagspace">Technorati</span> : <a href="http://technorati.com/tag/java" class="ztag" rel="tag">java</a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/76/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>在Java实现Dos中的文件操作命令功能</title>
		<link>http://welog.org/blog/74</link>
		<comments>http://welog.org/blog/74#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:32:43 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%9c%a8java%e5%ae%9e%e7%8e%b0dos%e4%b8%ad%e7%9a%84%e6%96%87%e4%bb%b6%e6%93%8d%e4%bd%9c%e5%91%bd%e4%bb%a4%e5%8a%9f%e8%83%bd/</guid>
		<description><![CDATA[&#160;这几天要对项目进行修改，主要是添加对文件操作的功能。如，删除一条信息后要同时删除它所带的附件。于是在空闲时间，决定把功能扩大一下，做一套用Java实现的Dos命令的简单版本。Java的IO中，要对文件进行操作用的是class　File（InputStream之类的我把它们视为是对文件内容进行操作的class）。所以，我们要用的的操作都是通过File这个类来实现的。下面，我们将实现所要的功能。一．&#160;&#160;&#160;&#160;File　Class1.&#160;&#160;&#160;&#160;class　File对象描述了所指定路径下的文件和目录的信息。通过File对象，可以查看某个路径下的文件和目录信息，并可操作路径下的文件和目录。 这几天要对项目进行修改，主要是添加对文件操作的功能。如，删除一条信息后要同时删除它所带的附件。于是在空闲时间，决定把功能扩大一下，做一套用Java实现的Dos命令的简单版本。Java的IO中，要对文件进行操作用的是class　File（InputStream之类的我把它们视为是对文件内容进行操作的class）。所以，我们要用的的操作都是通过File这个类来实现的。下面，我们将实现所要的功能。 一． File　Class 1. class　File对象描述了所指定路径下的文件和目录的信息。通过File对象，可以查看某个路径下的文件和目录信息，并可操作路径下的文件和目录。 2. class　File的应用 2.1 查看（查询）某个路径下的文件信息。 2.1.1 class　File的构造函数 class　File有两类构造函数，一类带有一个参数，用于产生一个描述参数所所指向的路径下的文件系统的对象；另一类带有两数，第一个参数表示路径，第二个参数表示子目录，用来产生描述第一个参数所指向的路径下的某个子目录的文件信息，子目录名称由第二个参数指定。如： File path = new File(“c:\\”);产生一个描述c:\下的文件信息的对象 File path = new File(“c:\\”, “test”);产生一个描述c:\的test子目录的文件信息的对象。 2.1.2 list()和list(FilenameFilter filter)函数 1) list()函数以String数组的形式返回一个File对象所描述的文件信息。返回的是路径下的所有文件和目录的文件名和目录名。 2) list(FilenameFilter filter)函数则提供了查询功能，通过它可能查询出满足特定条件的文件名和目录名。 2.1.3 用FinenameFilter接口进行文件或目录的查询 2.1.3.1. 这个接口只包含一个函数：boolean accept(File dir, String name)，第二个参数代表一个文件或目录的名称，第一个参数代表文件或目录所在的目录的名称。当返回true，表示文件满足查询条件，要被放入结果中；否则，表示文件不满足要求。 2.1.3.2. 工作原理 当调用某个File对象的list(FilenameFilter filter)函数时， 会对File对象中的每一个文件或目录调用参数filter中的accept()方法。在对一个文件或目录调用accept()函数时把它的名称以及一个描述它所在的目录的File对象作为参数传给accept()函数。 2.1.4 一个简单的实例 import java.io.File; import java.io.FilenameFilter; class DirList{ public void [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;<br />这几天要对项目进行修改，主要是添加对文件操作的功能。如，删除一条信息后要同时删除它所带的附件。于是在空闲时间，决定把功能扩大一下，做一套用Java实现的Dos命令的简单版本。Java的IO中，要对文件进行操作用的是class　File（InputStream之类的我把它们视为是对文件内容进行操作的class）。所以，我们要用的的操作都是通过File这个类来实现的。下面，我们将实现所要的功能。<br />一．&nbsp;&nbsp;&nbsp;&nbsp;File　Class<br />1.&nbsp;&nbsp;&nbsp;&nbsp;class　File对象描述了所指定路径下的文件和目录的信息。通过File对象，可以查看某个路径下的文件和目录信息，并可操作路径下的文件和目录。<br />
<span id="more-74"></span><br />
这几天要对项目进行修改，主要是添加对文件操作的功能。如，删除一条信息后要同时删除它所带的附件。于是在空闲时间，决定把功能扩大一下，做一套用Java实现的Dos命令的简单版本。Java的IO中，要对文件进行操作用的是class　File（InputStream之类的我把它们视为是对文件内容进行操作的class）。所以，我们要用的的操作都是通过File这个类来实现的。下面，我们将实现所要的功能。<br />
一．    File　Class<br />
1.    class　File对象描述了所指定路径下的文件和目录的信息。通过File对象，可以查看某个路径下的文件和目录信息，并可操作路径下的文件和目录。<br />
2.    class　File的应用<br />
2.1    查看（查询）某个路径下的文件信息。<br />
2.1.1    class　File的构造函数<br />
class　File有两类构造函数，一类带有一个参数，用于产生一个描述参数所所指向的路径下的文件系统的对象；另一类带有两数，第一个参数表示路径，第二个参数表示子目录，用来产生描述第一个参数所指向的路径下的某个子目录的文件信息，子目录名称由第二个参数指定。如：<br />
File path = new File(“c:\\”);产生一个描述c:\下的文件信息的对象<br />
File path = new File(“c:\\”, “test”);产生一个描述c:\的test子目录的文件信息的对象。<br />
2.1.2    list()和list(FilenameFilter filter)函数<br />
1)    list()函数以String数组的形式返回一个File对象所描述的文件信息。返回的是路径下的所有文件和目录的文件名和目录名。<br />
2)    list(FilenameFilter filter)函数则提供了查询功能，通过它可能查询出满足特定条件的文件名和目录名。<br />
2.1.3    用FinenameFilter接口进行文件或目录的查询<br />
2.1.3.1.    这个接口只包含一个函数：boolean accept(File dir, String name)，第二个参数代表一个文件或目录的名称，第一个参数代表文件或目录所在的目录的名称。当返回true，表示文件满足查询条件，要被放入结果中；否则，表示文件不满足要求。<br />
2.1.3.2.    工作原理<br />
当调用某个File对象的list(FilenameFilter filter)函数时， 会对File对象中的每一个文件或目录调用参数filter中的accept()方法。在对一个文件或目录调用accept()函数时把它的名称以及一个描述它所在的目录的File对象作为参数传给accept()函数。<br />
2.1.4    一个简单的实例<br />
import java.io.File;<br />
import java.io.FilenameFilter;<br />
class DirList{<br />
    public void printFile(String dir, String filter){<br />
        File path = new File(dir);<br />
        String[] fileList;<br />
        if(filter.length()==0){<br />
            System.out.println(&#8220;All file:&#8221;);<br />
            fileList = path.list();　//取得所有文件信息<br />
        }<br />
        else{<br />
            System.out.println(&#8220;All file including &#8221; + filter);<br />
            //取得满足查询条件的文件信息<br />
            fileList = path.list(new DirFilter(filter));<br />
        }<br />
        for(int i=0; i</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/74/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>认识class Class及其应用</title>
		<link>http://welog.org/blog/73</link>
		<comments>http://welog.org/blog/73#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:31:57 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e8%ae%a4%e8%af%86class-class%e5%8f%8a%e5%85%b6%e5%ba%94%e7%94%a8/</guid>
		<description><![CDATA[[b]一．&#160;&#160;&#160;&#160;Class类[/b] 1.&#160;&#160;&#160;&#160;class　Class对象描述了运行中的classes和interfaces。通过Class对象可以取得运行中的classes和interfaces的相关信息。2.&#160;&#160;&#160;&#160;每个class都有一个相应的Class对象。每个class的Class对象存储于编译后的class所在的文件中。所以，当JVM装载一个.class文件时就会装载一个Class对象。所以，一个class只有一个Class对象。 [b]一． Class类[/b] 1. class　Class对象描述了运行中的classes和interfaces。通过Class对象可以取得运行中的classes和interfaces的相关信息。 2. 每个class都有一个相应的Class对象。每个class的Class对象存储于编译后的class所在的文件中。所以，当JVM装载一个.class文件时就会装载一个Class对象。所以，一个class只有一个Class对象。 二． Class类的基本应用 1. 如何获取一个class的Class对象 1.1 通过Class.forName(classname)方法，该方法接收一个String参数，用以指定要生成哪个class的Class对象.，如Class.forName(“Dog”)。 1.2 通过类字面常量（class　literals）来获得。 1) 字面常量的形式为：classname.class。如Dog.class。 2) 对于基本类开，每种基本类型的外覆类都有一个名为TYPE的标准数据，能够产生一个指向相应的基本类型的Class对象的reference。如int.class等同于Integer.TYPE。 1.3 通过Object.getClass()方法来获得，如 Dog dog = new Dog(); dog.getClass(); 1.4 一个产生Class对象的例子 class Cat{ Cat() { System.out.println(&#8220;Init Cat()&#8221;); } static{ System.out.println(&#8220;Loading Cat&#8221;); } } class Dog{ Dog() { System.out.println(&#8220;Init Dog()&#8221;); } static{ System.out.println(&#8220;Loading Dog&#8221;); } } class [...]]]></description>
			<content:encoded><![CDATA[<p>[b]一．&nbsp;&nbsp;&nbsp;&nbsp;Class类[/b]</p>
<p>1.&nbsp;&nbsp;&nbsp;&nbsp;class　Class对象描述了运行中的classes和interfaces。通过Class对象可以取得运行中的classes和interfaces的相关信息。<br />2.&nbsp;&nbsp;&nbsp;&nbsp;每个class都有一个相应的Class对象。每个class的Class对象存储于编译后的class所在的文件中。所以，当JVM装载一个.class文件时就会装载一个Class对象。所以，一个class只有一个Class对象。<br />
<span id="more-73"></span><br />
[b]一．    Class类[/b]</p>
<p>1.    class　Class对象描述了运行中的classes和interfaces。通过Class对象可以取得运行中的classes和interfaces的相关信息。<br />
2.    每个class都有一个相应的Class对象。每个class的Class对象存储于编译后的class所在的文件中。所以，当JVM装载一个.class文件时就会装载一个Class对象。所以，一个class只有一个Class对象。</p>
<p>二．    Class类的基本应用</p>
<p>1.    如何获取一个class的Class对象</p>
<p>1.1    通过Class.forName(classname)方法，该方法接收一个String参数，用以指定要生成哪个class的Class对象.，如Class.forName(“Dog”)。<br />
1.2    通过类字面常量（class　literals）来获得。<br />
1)    字面常量的形式为：classname.class。如Dog.class。<br />
2)    对于基本类开，每种基本类型的外覆类都有一个名为TYPE的标准数据，能够产生一个指向相应的基本类型的Class对象的reference。如int.class等同于Integer.TYPE。<br />
1.3    通过Object.getClass()方法来获得，如<br />
Dog dog = new Dog();<br />
dog.getClass();</p>
<p>1.4    一个产生Class对象的例子<br />
class Cat{<br />
    Cat() { System.out.println(&#8220;Init Cat()&#8221;); }<br />
    static{<br />
        System.out.println(&#8220;Loading Cat&#8221;);<br />
    }<br />
}<br />
class Dog{<br />
    Dog() { System.out.println(&#8220;Init Dog()&#8221;); }<br />
    static{<br />
        System.out.println(&#8220;Loading Dog&#8221;);<br />
    }<br />
}<br />
class Duck{<br />
    Duck() { System.out.println(&#8220;Init Duck()&#8221;); }<br />
    static{<br />
        System.out.println(&#8220;Loading Duck&#8221;);<br />
    }<br />
}<br />
public class Test{<br />
    public static void main(String[] args){<br />
        System.out.println(&#8220;in main()&#8221;);<br />
        new Cat();<br />
        System.out.println(&#8220;After cr&#101;ate Cat()&#8221;);<br />
        try{<br />
            Class c1 = Class.forName(&#8220;Dog&#8221;);　//（1）<br />
            Class c2 = Dog.class; 　//（2）<br />
        }<br />
        catch(ClassNotFoundException cnfe){<br />
            cnfe.printStackTrace();<br />
        }<br />
        System.out.println(&#8220;After Class.forName(\&#8221;Dog\&#8221;)&#8221;);<br />
        Duck d = new Duck();<br />
        System.out.println(&#8220;After cr&#101;ate Duck()&#8221;);<br />
        Class c3 = d.getClass();<br />
        System.out.println(&#8220;After Class.forName(\&#8221;Duck\&#8221;)&#8221;);<br />
    }<br />
}</p>
<p>运行结果为：<br />
in main()<br />
Loading Cat<br />
Init Cat()<br />
After cr&#101;ate Cat()<br />
Loading Dog<br />
After Class.forName(&#8220;Dog&#8221;)<br />
Loading Duck<br />
Init Duck()<br />
After cr&#101;ate Duck()<br />
After Class.forName(&#8220;Duck&#8221;)<br />
        代码（1）（2）产生了class 　Dog的Class对象，但并没有产生class　Dog对象。<br />
        ＊＊：产生一个class的Class对象不会导致产生一个class对象</p>
<p>2.    用Classc对象进行类型比较</p>
<p>2.1.    直接比较<br />
两个Class对象不论是通过equals()函数还是直接用==运算符进行比较，比较的都是类型是否相同。<br />
2.2.    通过Class.isInstance(object)函数进行比较，如<br />
class Cat{}<br />
class Dog{}<br />
class Duck{}<br />
public class Test{<br />
    public static void main(String[] args){<br />
        Class c2, c3;<br />
        Duck d = new Duck();<br />
        c2 = Dog.class;<br />
        c3 = d.getClass();<br />
        System.out.println(&#8220;c2.isIntance(d)：&#8221; + (c2.isInstance(d)));<br />
        System.out.println(&#8220;c3.isIntance(d)：&#8221; + (c3.isInstance(d)));<br />
    }<br />
}</p>
<p>运行结果为：<br />
c2.isIntance(d)：false<br />
c3.isIntance(d)：true<br />
2.3.    通过instanceof关键字进行比较。但是两个处于不同的继承体系中的类对象和Class对象进行比较，会产生编译错误。<br />
class Cat{}<br />
class Dog{}<br />
class Duck{}<br />
public class Test{<br />
    public static void main(String[] args){<br />
        Class c3;<br />
        //Object d = new Duck();　（1）<br />
        Duck d = new Duck();　//（2）<br />
        c3 = d.getClass();<br />
        System.out.println(&#8220;d instanceof Dog：&#8221; + (d instanceof Dog));//（3）<br />
    }<br />
}</p>
<p>由于Duck和Dog处于两个不同的继承体系中，所以代码（3）会发生编译错误。如果把代码（2）注释掉，并去掉代码（1）的注释，编译将通过。这是因为所有class都是继承自Object的，所以Object与Dog处于同一个继承体系中，可以进行比较。<br />
2.4.    综合实例<br />
class Base{}<br />
class Derived{}<br />
public class Test{<br />
    public static void test(Object x){<br />
        System.out.println(&#8220;Testing x of type &#8221; +<br />
            x.getClass());<br />
        System.out.println(&#8220;x instanceof Base &#8221; +<br />
            (x instanceof Base));<br />
        System.out.println(&#8220;x instanceof Derived &#8221; +<br />
            (x instanceof Derived));<br />
        System.out.println(&#8220;Base.isInstance(x) &#8221; +<br />
            Base.class.isInstance(x));<br />
        System.out.println(&#8220;Derived.isInstance(x) &#8221; +<br />
            Derived.class.isInstance(x));<br />
        System.out.println(&#8220;x.getClass() == Base.class &#8221; +<br />
            (x.getClass() == Base.class));<br />
        System.out.println(&#8220;x.getClass() == Derived.class &#8221; +<br />
            (x.getClass() == Derived.class));<br />
        System.out.println(&#8220;x.getClass().equals(Base.class) &#8221; +<br />
            (x.getClass().equals(Base.class)));<br />
        System.out.println(&#8220;x.getClass().equals(Derived.class) &#8221; +<br />
            (x.getClass().equals(Derived.class)));<br />
    }<br />
    public static void main(String[] args){<br />
        test(new Base());<br />
        test(new Derived());<br />
    }<br />
}</p>
<p>运行结果为：<br />
Testing x of type class Base<br />
x instanceof Base true<br />
x instanceof Derived false<br />
Base.isInstance(x) true<br />
Derived.isInstance(x) false<br />
x.getClass() == Base.class true<br />
x.getClass() == Derived.class false<br />
x.getClass().equals(Base.class) true<br />
x.getClass().equals(Derived.class) false<br />
Testing x of type class Derived<br />
x instanceof Base false<br />
x instanceof Derived true<br />
Base.isInstance(x) false<br />
Derived.isInstance(x) true<br />
x.getClass() == Base.class false<br />
x.getClass() == Derived.class true<br />
x.getClass().equals(Base.class) false<br />
x.getClass().equals(Derived.class) true<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/73/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java中static、this、super、final用法(三)</title>
		<link>http://welog.org/blog/72</link>
		<comments>http://welog.org/blog/72#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:30:50 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e4%b8%adstatic%e3%80%81this%e3%80%81super%e3%80%81final%e7%94%a8%e6%b3%95%e4%b8%89/</guid>
		<description><![CDATA[三、final final在Java中并不常用，然而它却为我们提供了诸如在C语言中定义常量的功能，不仅如此，final还可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能，这些特点使final在Java中拥有了一个不可或缺的地位，也是学习Java时必须要知道和掌握的关键字之一。final成员当你在类中定义变量时，在其前面加上final关键字，那便是说，这个变量一旦被初始化便不可改变，这里不可改变的意思对基本类型来说是其值不可变，而对于对象变量来说其引用不可再变。其初始化可以在两个地方，一是其定义处，也就是说在final变量定义时直接给其赋值，二是在构造函数中。这两个地方只能选其一，要么在定义时给值，要么在构造函数中给值，不能同时既在定义时给了值，又在构造函数中给另外的值。下面这段代码演示了这一点： 三、final final在Java中并不常用，然而它却为我们提供了诸如在C语言中定义常量的功能，不仅如此，final还可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能，这些特点使final在Java中拥有了一个不可或缺的地位，也是学习Java时必须要知道和掌握的关键字之一。 final成员 当你在类中定义变量时，在其前面加上final关键字，那便是说，这个变量一旦被初始化便不可改变，这里不可改变的意思对基本类型来说是其值不可变，而对于对象变量来说其引用不可再变。其初始化可以在两个地方，一是其定义处，也就是说在final变量定义时直接给其赋值，二是在构造函数中。这两个地方只能选其一，要么在定义时给值，要么在构造函数中给值，不能同时既在定义时给了值，又在构造函数中给另外的值。下面这段代码演示了这一点： import java.util.List; import java.util.ArrayList; import java.util.LinkedList; public class Bat{ final PI=3.14; //在定义时便给址值 final int i; //因为要在构造函数中进行初始化，所以此处便不可再给值 final List list; //此变量也与上面的一样 Bat(){ i=100; list=new LinkedList(); } Bat(int ii,List l){ i=ii; list=l; } public static void main(String[] args){ Bat b=new Bat(); b.list.add(new Bat()); //b.i=25; //b.list=new ArrayList(); System.out.println(&#8220;I=&#8221;+b.i+&#8221; List Type:&#8221;+b.list.getClass()); b=new Bat(23,new [...]]]></description>
			<content:encoded><![CDATA[<p>三、final</p>
<p>final在Java中并不常用，然而它却为我们提供了诸如在C语言中定义常量的功能，不仅如此，final还可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能，这些特点使final在Java中拥有了一个不可或缺的地位，也是学习Java时必须要知道和掌握的关键字之一。<br />final成员<br />当你在类中定义变量时，在其前面加上final关键字，那便是说，这个变量一旦被初始化便不可改变，这里不可改变的意思对基本类型来说是其值不可变，而对于对象变量来说其引用不可再变。其初始化可以在两个地方，一是其定义处，也就是说在final变量定义时直接给其赋值，二是在构造函数中。这两个地方只能选其一，要么在定义时给值，要么在构造函数中给值，不能同时既在定义时给了值，又在构造函数中给另外的值。下面这段代码演示了这一点：<br />
<span id="more-72"></span><br />
三、final</p>
<p>final在Java中并不常用，然而它却为我们提供了诸如在C语言中定义常量的功能，不仅如此，final还可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能，这些特点使final在Java中拥有了一个不可或缺的地位，也是学习Java时必须要知道和掌握的关键字之一。<br />
final成员<br />
当你在类中定义变量时，在其前面加上final关键字，那便是说，这个变量一旦被初始化便不可改变，这里不可改变的意思对基本类型来说是其值不可变，而对于对象变量来说其引用不可再变。其初始化可以在两个地方，一是其定义处，也就是说在final变量定义时直接给其赋值，二是在构造函数中。这两个地方只能选其一，要么在定义时给值，要么在构造函数中给值，不能同时既在定义时给了值，又在构造函数中给另外的值。下面这段代码演示了这一点：<br />
import java.util.List;<br />
import java.util.ArrayList;<br />
import java.util.LinkedList;<br />
public class Bat{<br />
    final PI=3.14;          //在定义时便给址值<br />
    final int i;            //因为要在构造函数中进行初始化，所以此处便不可再给值<br />
    final List list;        //此变量也与上面的一样<br />
    Bat(){<br />
        i=100;<br />
        list=new LinkedList();<br />
    }<br />
    Bat(int ii,List l){<br />
        i=ii;<br />
        list=l;<br />
    }<br />
    public static void main(String[] args){<br />
        Bat b=new Bat();<br />
        b.list.add(new Bat());<br />
        //b.i=25;<br />
        //b.list=new ArrayList();<br />
        System.out.println(&#8220;I=&#8221;+b.i+&#8221; List Type:&#8221;+b.list.getClass());<br />
        b=new Bat(23,new ArrayList());<br />
        b.list.add(new Bat());<br />
        System.out.println(&#8220;I=&#8221;+b.i+&#8221; List Type:&#8221;+b.list.getClass());<br />
    }<br />
}</p>
<p>此程序很简单的演示了final的常规用法。在这里使用在构造函数中进行初始化的方法，这使你有了一点灵活性。如Bat的两个重载构造函数所示，第一个缺省构造函数会为你提供默认的值，重载的那个构造函数会根据你所提供的值或类型为final变量初始化。然而有时你并不需要这种灵活性，你只需要在定义时便给定其值并永不变化，这时就不要再用这种方法。在main方法中有两行语句注释掉了，如果你去掉注释，程序便无法通过编译，这便是说，不论是i的值或是list的类型，一旦初始化，确实无法再更改。然而b可以通过重新初始化来指定i的值或list的类型，输出结果中显示了这一点：<br />
I=100 List Type:class java.util.LinkedList<br />
I=23 List Type:class java.util.ArrayList<br />
还有一种用法是定义方法中的参数为final，对于基本类型的变量，这样做并没有什么实际意义，因为基本类型的变量在调用方法时是传值的，也就是说你可以在方法中更改这个参数变量而不会影响到调用语句，然而对于对象变量，却显得很实用，因为对象变量在传递时是传递其引用，这样你在方法中对对象变量的修改也会影响到调用语句中的对象变量，当你在方法中不需要改变作为参数的对象变量时，明确使用final进行声明，会防止你无意的修改而影响到调用方法。<br />
另外方法中的内部类在用到方法中的参变量时，此参变也必须声明为final才可使用，如下代码所示：<br />
public class INClass{<br />
   void innerClass(final String str){<br />
        class IClass{<br />
            IClass(){<br />
                System.out.println(str);<br />
            }<br />
        }<br />
        IClass ic=new IClass();<br />
    }<br />
  public static void main(String[] args){<br />
      INClass inc=new INClass();<br />
      inc.innerClass(&#8220;Hello&#8221;);<br />
  }<br />
}</p>
<p>final方法<br />
将方法声明为final，那就说明你已经知道这个方法提供的功能已经满足你要求，不需要进行扩展，并且也不允许任何从此类继承的类来覆写这个方法，但是继承仍然可以继承这个方法，也就是说可以直接使用。另外有一种被称为inline的机制，它会使你在调用final方法时，直接将方法主体插入到调用处，而不是进行例行的方法调用，例如保存断点，压栈等，这样可能会使你的程序效率有所提高，然而当你的方法主体非常庞大时，或你在多处调用此方法，那么你的调用主体代码便会迅速膨胀，可能反而会影响效率，所以你要慎用final进行方法定义。</p>
<p>final类<br />
当你将final用于类身上时，你就需要仔细考虑，因为一个final类是无法被任何人继承的，那也就意味着此类在一个继承树中是一个叶子类，并且此类的设计已被认为很完美而不需要进行修改或扩展。对于final类中的成员，你可以定义其为final，也可以不是final。而对于方法，由于所属类为final的关系，自然也就成了final型的。你也可以明确的给final类中的方法加上一个final，但这显然没有意义。<br />
下面的程序演示了final方法和final类的用法：<br />
final class final{<br />
    final String str=&#8221;final Data&#8221;;<br />
    public String str1=&#8221;non final data&#8221;;<br />
    final public void print(){<br />
        System.out.println(&#8220;final method.&#8221;);<br />
    }<br />
    public void what(){<br />
        System.out.println(str+&#8221;"+str1);<br />
    }<br />
}<br />
public class FinalDemo {   //extends final 无法继承<br />
    public static void main(String[] args){<br />
        final f=new final();<br />
        f.what();<br />
        f.print();<br />
    }<br />
}</p>
<p>从程序中可以看出，final类与普通类的使用几乎没有差别，只是它失去了被继承的特性。final方法与非final方法的区别也很难从程序行看出，只是记住慎用。<br />
final在设计模式中的应用<br />
在设计模式中有一种模式叫做不变模式，在Java中通过final关键字可以很容易的实现这个模式，在讲解final成员时用到的程序Bat.java就是一个不变模式的例子。如果你对此感兴趣，可以参考阎宏博士编写的《Java与模式》一书中的讲解。</p>
<p>到此为止，this,static,supert和final的使用已经说完了，如果你对这四个关键字已经能够大致说出它们的区别与用法，那便说明你基本已经掌握。然而，世界上的任何东西都不是完美无缺的，Java提供这四个关键字，给程序员的编程带来了很大的便利，但并不是说要让你到处使用，一旦达到滥用的程序，便适得其反，所以在使用时请一定要认真考虑。 </p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/72/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java中static、this、super、final用法(二)</title>
		<link>http://welog.org/blog/71</link>
		<comments>http://welog.org/blog/71#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:30:21 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e4%b8%adstatic%e3%80%81this%e3%80%81super%e3%80%81final%e7%94%a8%e6%b3%95%e4%ba%8c/</guid>
		<description><![CDATA[二、this&#160;&#38;&#160;super&#160;&#160;&#160;&#160;在中，我们讨论了static的种种用法，通过用static来定义方法或成员，为我们编程提供了某种便利，从某种程度上可以说它类似于C语言中的全局函数和全局变量。但是，并不是说有了这种便利，你便可以随处使用，如果那样的话，你便需要认真考虑一下自己是否在用面向对象的思想编程，自己的程序是否是面向对象的。好了，现在开始讨论this&#38;super这两个关键字的意义和用法。在Java中，this通常指当前对象，super则指父类的。当你想要引用当前对象的某种东西，比如当前对象的某个方法，或当前对象的某个成员，你便可以利用this来实现这个目的，当然，this的另一个用途是调用当前对象的另一个构造函数，这些马上就要讨论。如果你想引用父类的某种东西，则非super莫属。由于this与super有如此相似的一些特性和与生俱来的某种关系，所以我们在这一块儿来讨论，希望能帮助你区分和掌握它们两个。在一般方法中 二、this &#38; super 在中，我们讨论了static的种种用法，通过用static来定义方法或成员，为我们编程提供了某种便利，从某种程度上可以说它类似于C语言中的全局函数和全局变量。但是，并不是说有了这种便利，你便可以随处使用，如果那样的话，你便需要认真考虑一下自己是否在用面向对象的思想编程，自己的程序是否是面向对象的。好了，现在开始讨论this&#38;super这两个关键字的意义和用法。 在Java中，this通常指当前对象，super则指父类的。当你想要引用当前对象的某种东西，比如当前对象的某个方法，或当前对象的某个成员，你便可以利用this来实现这个目的，当然，this的另一个用途是调用当前对象的另一个构造函数，这些马上就要讨论。如果你想引用父类的某种东西，则非super莫属。由于this与super有如此相似的一些特性和与生俱来的某种关系，所以我们在这一块儿来讨论，希望能帮助你区分和掌握它们两个。 在一般方法中 最普遍的情况就是，在你的方法中的某个形参名与当前对象的某个成员有相同的名字，这时为了不至于混淆，你便需要明确使用this关键字来指明你要使用某个成员，使用方法是“this.成员名”，而不带this的那个便是形参。另外，还可以用“this.方法名”来引用当前对象的某个方法，但这时this就不是必须的了，你可以直接用方法名来访问那个方法，编译器会知道你要调用的是那一个。下面的代码演示了上面的用法： public class DemoThis{ private String name; private int age; DemoThis(String name,int age){ setName(name); //你可以加上this来调用方法，像这样：this.setName(name);但这并不是必须的 setAge(age); this.print(); } public void setName(String name){ this.name=name;//此处必须指明你要引用成员变量 } public void setAge(int age){ this.age=age; } public void print(){ System.out.println(&#8220;Name=&#8221;+name+&#8221; Age=&#8221;+age);//在此行中并不需要用this，因为没有会导致混淆的东西 } public static void main(String[] args){ DemoThis dt=new DemoThis(&#8220;Kevin&#8221;,&#8221;22&#8243;); } } 这段代码很简单，不用解释你也应该能看明白。在构造函数中你看到用this.print(),你完全可以用print()来代替它，两者效果一样。下面我们修改这个程序，来演示super的用法。 class [...]]]></description>
			<content:encoded><![CDATA[<p>二、this&nbsp;&amp;&nbsp;super<br />&nbsp;&nbsp;&nbsp;&nbsp;在中，我们讨论了static的种种用法，通过用static来定义方法或成员，为我们编程提供了某种便利，从某种程度上可以说它类似于C语言中的全局函数和全局变量。但是，并不是说有了这种便利，你便可以随处使用，如果那样的话，你便需要认真考虑一下自己是否在用面向对象的思想编程，自己的程序是否是面向对象的。好了，现在开始讨论this&amp;super这两个关键字的意义和用法。<br />在Java中，this通常指当前对象，super则指父类的。当你想要引用当前对象的某种东西，比如当前对象的某个方法，或当前对象的某个成员，你便可以利用this来实现这个目的，当然，this的另一个用途是调用当前对象的另一个构造函数，这些马上就要讨论。如果你想引用父类的某种东西，则非super莫属。由于this与super有如此相似的一些特性和与生俱来的某种关系，所以我们在这一块儿来讨论，希望能帮助你区分和掌握它们两个。<br />在一般方法中<br />
<span id="more-71"></span><br />
二、this &amp; super<br />
    在中，我们讨论了static的种种用法，通过用static来定义方法或成员，为我们编程提供了某种便利，从某种程度上可以说它类似于C语言中的全局函数和全局变量。但是，并不是说有了这种便利，你便可以随处使用，如果那样的话，你便需要认真考虑一下自己是否在用面向对象的思想编程，自己的程序是否是面向对象的。好了，现在开始讨论this&amp;super这两个关键字的意义和用法。<br />
在Java中，this通常指当前对象，super则指父类的。当你想要引用当前对象的某种东西，比如当前对象的某个方法，或当前对象的某个成员，你便可以利用this来实现这个目的，当然，this的另一个用途是调用当前对象的另一个构造函数，这些马上就要讨论。如果你想引用父类的某种东西，则非super莫属。由于this与super有如此相似的一些特性和与生俱来的某种关系，所以我们在这一块儿来讨论，希望能帮助你区分和掌握它们两个。<br />
在一般方法中<br />
最普遍的情况就是，在你的方法中的某个形参名与当前对象的某个成员有相同的名字，这时为了不至于混淆，你便需要明确使用this关键字来指明你要使用某个成员，使用方法是“this.成员名”，而不带this的那个便是形参。另外，还可以用“this.方法名”来引用当前对象的某个方法，但这时this就不是必须的了，你可以直接用方法名来访问那个方法，编译器会知道你要调用的是那一个。下面的代码演示了上面的用法：<br />
public class DemoThis{<br />
  private String name;<br />
  private int age;<br />
  DemoThis(String name,int age){<br />
    setName(name); //你可以加上this来调用方法，像这样：this.setName(name);但这并不是必须的<br />
    setAge(age);<br />
    this.print();<br />
  }<br />
  public void setName(String name){<br />
    this.name=name;//此处必须指明你要引用成员变量<br />
  }<br />
  public void setAge(int age){<br />
    this.age=age;<br />
  }<br />
  public void print(){<br />
    System.out.println(&#8220;Name=&#8221;+name+&#8221; Age=&#8221;+age);//在此行中并不需要用this，因为没有会导致混淆的东西<br />
  }<br />
  public static void main(String[] args){<br />
    DemoThis dt=new DemoThis(&#8220;Kevin&#8221;,&#8221;22&#8243;);<br />
  }<br />
}</p>
<p>这段代码很简单，不用解释你也应该能看明白。在构造函数中你看到用this.print(),你完全可以用print()来代替它，两者效果一样。下面我们修改这个程序，来演示super的用法。<br />
class Person{<br />
  public int c;<br />
  private String name;<br />
  private int age;<br />
  protected void setName(String name){<br />
    this.name=name;<br />
  }<br />
  protected void setAge(int age){<br />
    this.age=age;<br />
  }<br />
  protected void print(){<br />
    System.out.println(&#8220;Name=&#8221;+name+&#8221; Age=&#8221;+age);<br />
  }<br />
}<br />
public class DemoSuper extends Person{<br />
  public void print(){<br />
    System.out.println(&#8220;DemoSuper:&#8221;);<br />
    super.print();<br />
  }<br />
  public static void main(String[] args){<br />
    DemoSuper ds=new DemoSuper();<br />
    ds.setName(&#8220;kevin&#8221;);<br />
    ds.setAge(22);<br />
    ds.print();<br />
  }<br />
}</p>
<p>在DemoSuper中，重新定义的print方法覆写了父类的print方法，它首先做一些自己的事情，然后调用父类的那个被覆写了的方法。输出结果说明了这一点：<br />
DemoSuper:<br />
Name=kevin Age=22<br />
这样的使用方法是比较常用的。另外如果父类的成员可以被子类访问，那你可以像使用this一样使用它，用“super.父类中的成员名”的方式，但常常你并不是这样来访问父类中的成员名的。<br />
在构造函数中<br />
构造函数是一种特殊的方法，在对象初始化的时候自动调用。在构造函数中，this和super也有上面说的种种使用方式，并且它还有特殊的地方，请看下面的例子：<br />
class Person{<br />
  public static void prt(String s){<br />
    System.out.println(s);<br />
  }<br />
  Person(){<br />
    prt(&#8220;A Person.&#8221;);<br />
  }<br />
  Person(String name){<br />
    prt(&#8220;A person name is:&#8221;+name);<br />
  }<br />
}<br />
public class Chinese extends Person{<br />
  Chinese(){<br />
    super();  //调用父类构造函数（1）<br />
    prt(&#8220;A chinese.&#8221;);//(4)<br />
  }<br />
  Chinese(String name){<br />
    super(name);//调用父类具有相同形参的构造函数（2）<br />
    prt(&#8220;his name is:&#8221;+name);<br />
  }<br />
  Chinese(String name,int age){<br />
    this(name);//调用当前具有相同形参的构造函数（3）<br />
    prt(&#8220;his age is:&#8221;+age);<br />
  }<br />
  public static void main(String[] args){<br />
    Chinese cn=new Chinese();<br />
    cn=new Chinese(&#8220;kevin&#8221;);<br />
    cn=new Chinese(&#8220;kevin&#8221;,22);<br />
  }<br />
}</p>
<p>在这段程序中，this和super不再是像以前那样用“.”连接一个方法或成员，而是直接在其后跟上适当的参数，因此它的意义也就有了变化。super后加参数的是用来调用父类中具有相同形式的构造函数，如1和2处。this后加参数则调用的是当前具有相同参数的构造函数，如3处。当然，在Chinese的各个重载构造函数中，this和super在一般方法中的各种用法也仍可使用，比如4处，你可以将它替换为“this.prt”(因为它继承了父类中的那个方法）或者是“super.prt”（因为它是父类中的方法且可被子类访问），它照样可以正确运行。但这样似乎就有点画蛇添足的味道了。<br />
最后，写了这么多，如果你能对“this通常指代当前对象，super通常指代父类”这句话牢记在心，那么本篇便达到了目的，其它的你自会在以后的编程实践当中慢慢体会、掌握。另外关于本篇中提到的继承，请参阅相关Java教程。<br />
关于最后一个final的意义和用法，也会很快贴出，敬请阅读指正。<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/71/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java中static、this、super、final用法(一)</title>
		<link>http://welog.org/blog/70</link>
		<comments>http://welog.org/blog/70#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:29:41 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e4%b8%adstatic%e3%80%81this%e3%80%81super%e3%80%81final%e7%94%a8%e6%b3%95%e4%b8%80/</guid>
		<description><![CDATA[本篇旨在帮助准备学习Java以及刚接触Java的朋友认识、掌握和使用static、this、super、final这几个关键字的使用。Java博大精深，我也是一位正在学习和使用Java的爱好者，文中难免有不妥之处，欢迎指正。 一、static&#160;&#160;&#160;&#160;请先看下面这段程序： 本篇旨在帮助准备学习Java以及刚接触Java的朋友认识、掌握和使用static、this、super、final这几个关键字的使用。Java博大精深，我也是一位正在学习和使用Java的爱好者，文中难免有不妥之处，欢迎指正。 一、static 请先看下面这段程序： public class Hello{ public static void main(String[] args){ //(1) System.out.println(&#8220;Hello,world!&#8221;); //(2) } } 看过这段程序，对于大多数学过Java 的从来说，都不陌生。即使没有学过Java，而学过其它的高级语言，例如C，那你也应该能看懂这段代码的意思。它只是简单的输出“Hello,world”，一点别的用处都没有，然而，它却展示了static关键字的主要用法。 在1处，我们定义了一个静态的方法名为main，这就意味着告诉Java编译器，我这个方法不需要创建一个此类的对象即可使用。你还得你是怎么运行这个程序吗？一般，我们都是在命令行下，打入如下的命令(加下划线为手动输入)： javac Hello.java java Hello Hello,world! 这就是你运行的过程，第一行用来编译Hello.java这个文件，执行完后，如果你查看当前，会发现多了一个Hello.class文件，那就是第一行产生的Java二进制字节码。第二行就是执行一个Java程序的最普遍做法。执行结果如你所料。在2中，你可能会想，为什么要这样才能输出。好，我们来分解一下这条语句。（如果没有安装Java文档，请到Sun的官方网站浏览J2SE API）首先，System是位于java.lang包中的一个核心类，如果你查看它的定义，你会发现有这样一行：public static final PrintStream out;接着在进一步，点击PrintStream这个超链接，在METHOD页面，你会看到大量定义的方法，查找println，会有这样一行： public void println(String x)。好了，现在你应该明白为什么我们要那样调用了，out是System的一个静态变量，所以可以直接使用，而out所属的类有一个println方法。 静态方法 通常，在一个类中定义一个方法为static，那就是说，无需本类的对象即可调用此方法。如下所示： class Simple{ static void go(){ System.out.println(&#8220;Go&#8230;&#8221;); } } public class Cal{ public static void main(String[] args){ Simple.go(); [...]]]></description>
			<content:encoded><![CDATA[<p>本篇旨在帮助准备学习Java以及刚接触Java的朋友认识、掌握和使用static、this、super、final这几个关键字的使用。Java博大精深，我也是一位正在学习和使用Java的爱好者，文中难免有不妥之处，欢迎指正。</p>
<p>一、static<br />&nbsp;&nbsp;&nbsp;&nbsp;请先看下面这段程序：<br />
<span id="more-70"></span><br />
本篇旨在帮助准备学习Java以及刚接触Java的朋友认识、掌握和使用static、this、super、final这几个关键字的使用。Java博大精深，我也是一位正在学习和使用Java的爱好者，文中难免有不妥之处，欢迎指正。</p>
<p>一、static<br />
    请先看下面这段程序：<br />
  public class Hello{<br />
    public static void main(String[] args){ //(1)<br />
      System.out.println(&#8220;Hello,world!&#8221;);   //(2)<br />
    }<br />
  }</p>
<p>看过这段程序，对于大多数学过Java 的从来说，都不陌生。即使没有学过Java，而学过其它的高级语言，例如C，那你也应该能看懂这段代码的意思。它只是简单的输出“Hello,world”，一点别的用处都没有，然而，它却展示了static关键字的主要用法。<br />
在1处，我们定义了一个静态的方法名为main，这就意味着告诉Java编译器，我这个方法不需要创建一个此类的对象即可使用。你还得你是怎么运行这个程序吗？一般，我们都是在命令行下，打入如下的命令(加下划线为手动输入)：<br />
javac Hello.java<br />
java Hello<br />
Hello,world!<br />
这就是你运行的过程，第一行用来编译Hello.java这个文件，执行完后，如果你查看当前，会发现多了一个Hello.class文件，那就是第一行产生的Java二进制字节码。第二行就是执行一个Java程序的最普遍做法。执行结果如你所料。在2中，你可能会想，为什么要这样才能输出。好，我们来分解一下这条语句。（如果没有安装Java文档，请到Sun的官方网站浏览J2SE API）首先，System是位于java.lang包中的一个核心类，如果你查看它的定义，你会发现有这样一行：public static final PrintStream out;接着在进一步，点击PrintStream这个超链接，在METHOD页面，你会看到大量定义的方法，查找println，会有这样一行：<br />
public void println(String x)。好了，现在你应该明白为什么我们要那样调用了，out是System的一个静态变量，所以可以直接使用，而out所属的类有一个println方法。</p>
<p>静态方法<br />
通常，在一个类中定义一个方法为static，那就是说，无需本类的对象即可调用此方法。如下所示：<br />
class Simple{<br />
   static void go(){<br />
     System.out.println(&#8220;Go&#8230;&#8221;);<br />
   }<br />
}<br />
public class Cal{<br />
  public static void main(String[] args){<br />
    Simple.go();<br />
  }<br />
}</p>
<p>调用一个静态方法就是“类名.方法名”,静态方法的使用很简单如上所示。一般来说，静态方法常常为应用程序中的其它类提供一些实用工具所用，在Java的类库中大量的静态方法正是出于此目的而定义的。<br />
静态变量<br />
静态变量与静态方法类似。所有此类实例共享此静态变量，也就是说在类装载时，只分配一块存储空间，所有此类的对象都可以操控此块存储空间，当然对于final则另当别论了。看下面这段代码：class Value{<br />
  static int c=0;<br />
  static void inc(){<br />
    c++;<br />
  }<br />
}<br />
class Count{<br />
  public static void prt(String s){<br />
    System.out.println(s);<br />
  }<br />
  public static void main(String[] args){<br />
    Value v1,v2;<br />
    v1=new Value();<br />
    v2=new Value();<br />
    prt(&#8220;v1.c=&#8221;+v1.c+&#8221;  v2.c=&#8221;+v2.c);<br />
    v1.inc();<br />
    prt(&#8220;v1.c=&#8221;+v1.c+&#8221;  v2.c=&#8221;+v2.c);<br />
  }<br />
}<br />
结果如下：<br />
v1.c=0  v2.c=0<br />
v1.c=1  v2.c=1<br />
由此可以证明它们共享一块存储区。static变量有点类似于C中的全局变量的概念。值得探讨的是静态变量的初始化问题。我们修改上面的程序：class Value{<br />
  static int c=0;<br />
  Value(){<br />
    c=15;<br />
  }<br />
  Value(int i){<br />
    c=i;<br />
  }<br />
  static void inc(){<br />
    c++;<br />
  }<br />
}<br />
class Count{<br />
  public static void prt(String s){<br />
    System.out.println(s);<br />
  }<br />
    Value v=new Value(10);<br />
    static Value v1,v2;<br />
    static{<br />
      prt(&#8220;v1.c=&#8221;+v1.c+&#8221;  v2.c=&#8221;+v2.c);<br />
      v1=new Value(27);<br />
      prt(&#8220;v1.c=&#8221;+v1.c+&#8221;  v2.c=&#8221;+v2.c);<br />
      v2=new Value(15);<br />
      prt(&#8220;v1.c=&#8221;+v1.c+&#8221;  v2.c=&#8221;+v2.c);<br />
    }</p>
<p>  public static void main(String[] args){<br />
    Count ct=new Count();<br />
    prt(&#8220;ct.c=&#8221;+ct.v.c);<br />
    prt(&#8220;v1.c=&#8221;+v1.c+&#8221;  v2.c=&#8221;+v2.c);<br />
    v1.inc();<br />
    prt(&#8220;v1.c=&#8221;+v1.c+&#8221;  v2.c=&#8221;+v2.c);<br />
    prt(&#8220;ct.c=&#8221;+ct.v.c);<br />
  }<br />
}</p>
<p>运行结果如下：<br />
v1.c=0  v2.c=0<br />
v1.c=27  v2.c=27<br />
v1.c=15  v2.c=15<br />
ct.c=10<br />
v1.c=10  v2.c=10<br />
v1.c=11  v2.c=11<br />
ct.c=11<br />
这个程序展示了静态初始化的各种特性。如果你初次接触Java，结果可能令你吃惊。可能会对static后加大括号感到困惑。首先要告诉你的是，static定义的变量会优先于任何其它非static变量，不论其出现的顺序如何。正如在程序中所表现的，虽然v出现在v1和v2的前面，但是结果却是v1和v2的初始化在v的前面。在static{后面跟着一段代码，这是用来进行显式的静态变量初始化，这段代码只会初始化一次，且在类被第一次装载时。如果你能读懂并理解这段代码，会帮助你对static关键字的认识。在涉及到继承的时候，会先初始化父类的static变量，然后是子类的，依次类推。非静态变量不是本文的主题，在此不做详细讨论，请参考Think in Java中的讲解。<br />
静态类<br />
通常一个普通类不允许声明为静态的，只有一个内部类才可以。这时这个声明为静态的内部类可以直接作为一个普通类来使用，而不需实例一个外部类。如下代码所示：<br />
public class StaticCls{<br />
  public static void main(String[] args){<br />
    OuterCls.InnerCls oi=new OuterCls.InnerCls();<br />
  }<br />
}<br />
class OuterCls{<br />
  public static class InnerCls{<br />
    InnerCls(){<br />
      System.out.println(&#8220;InnerCls&#8221;);<br />
    }<br />
   }<br />
}</p>
<p>输出结果会如你所料：<br />
InnerCls<br />
和普通类一样。内部类的其它用法请参阅Think in Java中的相关章节，此处不作详解。<br />
关于另三篇文章（this,super,final）会陆续发表，敬请关注。 </p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/70/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个简单的自定义ClassLoader的实现</title>
		<link>http://welog.org/blog/65</link>
		<comments>http://welog.org/blog/65#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:21:53 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e4%b8%80%e4%b8%aa%e7%ae%80%e5%8d%95%e7%9a%84%e8%87%aa%e5%ae%9a%e4%b9%89classloader%e7%9a%84%e5%ae%9e%e7%8e%b0-2/</guid>
		<description><![CDATA[&#160;很多时候人们会使用一些自定义的ClassLoader&#160;,而不是使用系统的Class&#160;Loader。大多数时候人们这样做的原因是，他们在编译时无法预知运行时会需要那些Class。特别是在那些appserver中，比如tomcat,Avalon-phonix,Jboss中。或是程序提供一些plug-in的功能，用户可以在程序编译好之后再添加自己的功能，比如ant,&#160;jxta-shell等。定制一个ClassLoader很简单，一般只需要理解很少的几个方法就可以完成。一个最简单的自定义的ClassLoader从ClassLoader类继承而来。这里我们要做一个可以在运行时指定路径，加载这个路径下的class的ClassLoader。通常我们使用ClassLoader.loadClass(String):Class方法，通过给出一个类名，就会得到一个相应的Class实例。因此只要小小的改动这个方法，就可以实现我们的愿望了。 很多时候人们会使用一些自定义的ClassLoader ,而不是使用系统的Class Loader。大多数时候人们这样做的原因是，他们在编译时无法预知运行时会需要那些Class。特别是在那些appserver中，比如tomcat,Avalon-phonix,Jboss中。或是程序提供一些plug-in的功能，用户可以在程序编译好之后再添加自己的功能，比如ant, jxta-shell等。定制一个ClassLoader很简单，一般只需要理解很少的几个方法就可以完成。 一个最简单的自定义的ClassLoader从ClassLoader类继承而来。这里我们要做一个可以在运行时指定路径，加载这个路径下的class的ClassLoader。 通常我们使用ClassLoader.loadClass(String):Class方法，通过给出一个类名，就会得到一个相应的Class实例。因此只要小小的改动这个方法，就可以实现我们的愿望了。 源码： protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException { // First, check if the class has already been loaded Class c = findLoadedClass(name); if (c == null) { try { if (parent != null) { c = parent.loadClass(name, false); }else{ c = findBootstrapClass0(name); } }catch(ClassNotFoundException e){ [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;<br />很多时候人们会使用一些自定义的ClassLoader&nbsp;,而不是使用系统的Class&nbsp;Loader。大多数时候人们这样做的原因是，他们在编译时无法预知运行时会需要那些Class。特别是在那些appserver中，比如tomcat,Avalon-phonix,Jboss中。或是程序提供一些plug-in的功能，用户可以在程序编译好之后再添加自己的功能，比如ant,&nbsp;jxta-shell等。定制一个ClassLoader很简单，一般只需要理解很少的几个方法就可以完成。<br />一个最简单的自定义的ClassLoader从ClassLoader类继承而来。这里我们要做一个可以在运行时指定路径，加载这个路径下的class的ClassLoader。<br />通常我们使用ClassLoader.loadClass(String):Class方法，通过给出一个类名，就会得到一个相应的Class实例。因此只要小小的改动这个方法，就可以实现我们的愿望了。<br />
<span id="more-65"></span><br />
很多时候人们会使用一些自定义的ClassLoader ,而不是使用系统的Class Loader。大多数时候人们这样做的原因是，他们在编译时无法预知运行时会需要那些Class。特别是在那些appserver中，比如tomcat,Avalon-phonix,Jboss中。或是程序提供一些plug-in的功能，用户可以在程序编译好之后再添加自己的功能，比如ant, jxta-shell等。定制一个ClassLoader很简单，一般只需要理解很少的几个方法就可以完成。<br />
一个最简单的自定义的ClassLoader从ClassLoader类继承而来。这里我们要做一个可以在运行时指定路径，加载这个路径下的class的ClassLoader。<br />
通常我们使用ClassLoader.loadClass(String):Class方法，通过给出一个类名，就会得到一个相应的Class实例。因此只要小小的改动这个方法，就可以实现我们的愿望了。<br />
源码：<br />
protected synchronized Class loadClass(String name, boolean resolve)    throws ClassNotFoundException    {<br />
    // First, check if the class has already been loaded<br />
    Class c = findLoadedClass(name);<br />
    if (c == null) {<br />
        try {<br />
           if (parent != null) {<br />
              c = parent.loadClass(name, false);<br />
           }else{<br />
              c = findBootstrapClass0(name);<br />
           }<br />
        }catch(ClassNotFoundException e){<br />
            // If still not found, then call findClass in o&#114;der<br />
            // to find the class.<br />
           c = findClass(name);<br />
        }<br />
    }<br />
    if (resolve) {<br />
      resolveClass(c);<br />
    }<br />
    return c;<br />
}</p>
<p>Source from ClassLoader.java</p>
<p>First,check JavaAPI doc：上面指出了缺省的loadClass方法所做的几个步骤。<br />
1.    调用findLoadedClass(String):Class 检查一下这个class是否已经被加载过了，由于JVM 规范规定ClassLoader可以cache它所加载的Class，因此如果一个class已经被加载过的话，直接从cache中获取即可。<br />
2.    调用它的parent 的loadClass()方法，如果parent为空，这使用JVM内部的class loader（即著名的bootstrap classloader）。<br />
3.    如果上面两步都没有找到，调用findClass(String)方法来查找并加载这个class。<br />
后面还有一句话，在Java 1.2版本以后，鼓励用户通过继承findClass(String)方法实现自己的class loader而不是继承loadClass(String)方法。<br />
既然如此，那么我们就先这么做：）<br />
public class AnotherClassLoader extends ClassLoader {<br />
    private String baseDir;private static final Logger LOG =<br />
         Logger.getLogger(AnotherClassLoader.class);<br />
    public AnotherClassLoader (ClassLoader parent, String baseDir) {<br />
           super(parent);<br />
           this.baseDir = baseDir;<br />
    }<br />
    protected Class findClass(String name)<br />
            throws ClassNotFoundException {<br />
        LOG.debug(&#8220;findClass &#8221; + name);<br />
        byte[] bytes = loadClassBytes(name);<br />
        Class theClass = defineClass(name, bytes, 0, bytes.length);//A<br />
        if (theClass == null)<br />
            throw new ClassFormatError();<br />
        return theClass;<br />
    }<br />
    private byte[] loadClassBytes(String className) throws<br />
        ClassNotFoundException {<br />
        try {<br />
            String classFile = getClassFile(className);<br />
            FileInputStream fis = new FileInputStream(classFile);<br />
            FileChannel fileC = fis.getChannel();<br />
            ByteArrayOutputStream baos = new ByteArrayOutputStream();<br />
            WritableByteChannel outC = Channels.newChannel(baos);<br />
            ByteBuffer buffer = ByteBuffer.allocateDirect(1024);<br />
            while (true) {<br />
                int i = fileC.read(buffer);<br />
                if (i == 0 || i == -1) {<br />
                    break;<br />
                }<br />
                buffer.flip();<br />
                outC.write(buffer);<br />
                buffer.clear();<br />
            }<br />
            fis.close();<br />
            return baos.toByteArray();<br />
        } catch (IOException fnfe) {<br />
            throw new ClassNotFoundException(className);<br />
        }<br />
    }<br />
    private String getClassFile(String name) {<br />
        StringBuffer sb = new StringBuffer(baseDir);<br />
        name = name.replace(&#8216;.&#8217;, File.separatorChar) + &#8220;.class&#8221;;<br />
        sb.append(File.separator + name);<br />
        return sb.toString();<br />
    }<br />
}</p>
<p>[i]Ps:这里使用了一些JDK1.4的nio的代码：）[/i]<br />
很简单的代码，关键的地方就在A处，我们使用了defineClass方法，目的在于把从class文件中得到的二进制数组转换为相应的Class实例。defineClass是一个native的方法，它替我们识别class文件格式，分析读取相应的数据结构，并生成一个class实例。</p>
<p>还没完呢，我们只是找到了发布在某个目录下的class，还有资源呢。我们有时会用Class.getResource():URL来获取相应的资源文件。如果仅仅使用上面的ClassLoader是找不到这个资源的，相应的返回值为null。</p>
<p>同样我们看一下原来的ClassLoader内部的结构。<br />
public java.net.URL getResource(String name) {<br />
        name = resolveName(name);<br />
        ClassLoader cl = getClassLoader0();//这里<br />
        if (cl==null) {<br />
            // A system class.<br />
            return ClassLoader.getSystemResource(name);<br />
        }<br />
        return cl.getResource(name);}</p>
<p>原来是使用加载这个class的那个classLoader获取得资源。</p>
<p>public URL getResource(String name) {<br />
    URL url;<br />
    if (parent != null) {<br />
        url = parent.getResource(name);<br />
    } else {<br />
        url = getBootstrapResource(name);<br />
    }<br />
    if (url == null) {<br />
        url = findResource(name);//这里<br />
    }<br />
    return url;<br />
}</p>
<p>这样看来只要继承findResource(String)方法就可以了。修改以下我们的代码：</p>
<p>//新增的一个findResource方法<br />
protected URL findResource(String name) {<br />
        LOG.debug(&#8220;findResource &#8221; + name);<br />
        try {<br />
            URL url = super.findResource(name);<br />
            if (url != null)<br />
                return url;<br />
            url = new URL(&#8220;file:///&#8221; + converName(name));<br />
            //简化处理，所有资源从文件系统中获取<br />
            return url;<br />
        } catch (MalformedURLException mue) {<br />
            LOG.error(&#8220;findResource&#8221;, mue);<br />
            return null;<br />
        }<br />
}<br />
private String converName(String name) {<br />
        StringBuffer sb = new StringBuffer(baseDir);<br />
        name = name.replace(&#8216;.&#8217;, File.separatorChar);<br />
        sb.append(File.separator + name);<br />
        return sb.toString();<br />
}</p>
<p>好了，到这里一个简单的自定义的ClassLoader就做好了，你可以添加其他的调料（比如安全检查，修改class文件等），以满足你自己的口味：）<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/65/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在类被实例化前动态改变其静态常量</title>
		<link>http://welog.org/blog/63</link>
		<comments>http://welog.org/blog/63#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:04:30 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%9c%a8%e7%b1%bb%e8%a2%ab%e5%ae%9e%e4%be%8b%e5%8c%96%e5%89%8d%e5%8a%a8%e6%80%81%e6%94%b9%e5%8f%98%e5%85%b6%e9%9d%99%e6%80%81%e5%b8%b8%e9%87%8f/</guid>
		<description><![CDATA[&#160;&#160;被动态改变的类如下：public&#160;class&#160;ScrollImage&#160;implements&#160;Face&#160;{ 被动态改变的类如下： public class ScrollImage implements Face { private static String TEST = &#8220;TEST&#8221;; public static void change(String change){ TEST=change; } public void myFace(String describe) { } /** * Constructor for ScrollImage. */ public ScrollImage() { super(); System.out.println(&#8220;:))&#8221;+TEST); show(); } &#8230; 注意 通常使用new ScrollImage()时会输出：:))TEST 我的目的要通过类加载来改变它的输出，实际上是改变了静态常量的值，也相当于改变了任何一个实例对该常量的引用值。 先判断该类是否为我们需要动态改变的类 Class cImage; Object oImage; MyLoader loader = new MyLoader(); [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;<br />&nbsp;<br />被动态改变的类如下：<br />public&nbsp;class&nbsp;ScrollImage&nbsp;implements&nbsp;Face&nbsp;{<br />
<span id="more-63"></span><br />
被动态改变的类如下：<br />
public class ScrollImage implements Face {</p>
<p>private static String TEST = &#8220;TEST&#8221;;</p>
<p>public static void change(String change){<br />
TEST=change;<br />
}<br />
public void myFace(String describe) {<br />
}</p>
<p>/**<br />
* Constructor for ScrollImage.<br />
*/<br />
public ScrollImage() {<br />
super();<br />
System.out.println(&#8220;:))&#8221;+TEST);<br />
show();<br />
}<br />
&#8230;<br />
注意 通常使用new ScrollImage()时会输出：:))TEST<br />
我的目的要通过类加载来改变它的输出，实际上是改变了静态常量的值，也相当于改变了任何一个实例对该常量的引用值。</p>
<p>先判断该类是否为我们需要动态改变的类<br />
Class cImage;<br />
Object oImage;<br />
MyLoader loader = new MyLoader();</p>
<p>cImage =<br />
loader.load(&#8220;ScrollImage.class&#8221;, &#8220;cn.com.efly.swt.ScrollImage&#8221;);<br />
if (Face.class.isAssignableFrom(cImage))<br />
System.out.println(&#8220;:):)&#8221;);</p>
<p>改变它：<br />
String arg = &#8220;changed&#8221;;<br />
/**也可以通过直接访问常量来改变它，但是要修改常量的可见为public<br />
*My ClassLoader:<br />
*public class MyLoader extends ClassLoader {<br />
*    static int maxsize = 10000;<br />
*    public Class load(String namefile, String classname)<br />
*        throws java.lang.Exception {<br />
*        try {<br />
*            //进行判断这个class是否已经调入,已经有就直接返回,不然就调入<br />
*            Class ctmp = this.findLoadedClass(classname);<br />
*            System.out.println(ctmp.getName() + &#8221; is load&#8221;);<br />
*            return ctmp;<br />
*        } catch (Exception e) {<br />
*            //System.out.println(e);<br />
*        }<br />
*        java.io.FileInputStream in = new java.io.FileInputStream(namefile);<br />
*        byte[] classbyte = new byte[maxsize];<br />
*        //实际应用时完全可以对一个文件进行加解密处理,只要保证使用*defineClass时classbyte中<br />
*        //已经解密后的内容就可以<br />
*        int readsize;<br />
*        readsize = in.read(classbyte);<br />
*        // System.out.println(&#8220;读文件长:&#8221;+readsize);<br />
*        in.close();<br />
*        return defineClass(classname, classbyte, 0, readsize);<br />
*    }<br />
*}<br />
*/<br />
//cImage.getField(&#8220;TEST&#8221;).set(null,&#8221;Changed&#8221;);<br />
java.lang.reflect.Method change =<br />
cImage.getMethod(&#8220;change&#8221;, new Class[] { String.class });<br />
change.invoke(change, new Object[] { arg });<br />
实例化该类，可以看到结果：<br />
oImage = cImage.newInstance();<br />
结果输出： <img src='http://welog.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> :) <img src='http://welog.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )changed</p>
<p>总结：改方法可以用来解决一些特殊情况下遇到的问题，但是我不鼓励大家使用。在我新的设计中已经不考虑使用改方法，它对结构没有任何好处。</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/63/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>java的事件处理</title>
		<link>http://welog.org/blog/62</link>
		<comments>http://welog.org/blog/62#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:03:35 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e7%9a%84%e4%ba%8b%e4%bb%b6%e5%a4%84%e7%90%86/</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;在JAVA程序设计中，事件的处理是非常重要的，尤其是在需要自定义事件和设计JavaBean时.对事件的处理过程有一个完整的认识对于编程是很有帮助的。&#160;&#160;&#160;&#160;下面用一个演示性的例子来说明事件及其处理过程 一.事件的组成&#160; 在JAVA程序设计中，事件的处理是非常重要的，尤其是在需要自定义事件和设计JavaBean时.对事件的处理过程有一个完整的认识对于编程是很有帮助的。 下面用一个演示性的例子来说明事件及其处理过程 一.事件的组成 如果想要自定义一个事件，则必须提供一个事件的监听接口以及一个事件类。在JAVA中监听接口继承java.util.EventListener,事件类继承java.util.EventObject.很多基本的事件在编程环境中都已经提供可以很方便使用，但是在自定义事件中必须要要了解这些。 下面是一个事件类的代码,事件类可以向用户处理程序提供被监听类的信息 import java.util.*; public class PropertyEvent extends EventObject { public PropertyEvent(){} } 下面是监听接口的代码 import java.util.*; public interface PropertyListener extends EventListener { public void propertyChanged(PropertyEvent propertyEvent); } 二.事件的处理机制 下面是一段简要的被监听类代码，通过代码分析事件处理过程 import java.util.*; public class Exam { private int property; //listeners用来存放已注册的监听对象 private Set listeners= new HashSet(); &#8230;.. public void addListener(PropertyListener propertyListener){ //listeners必须保证只能被一个线程访问 [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;在JAVA程序设计中，事件的处理是非常重要的，尤其是在需要自定义事件和设计JavaBean时.对事件的处理过程有一个完整的认识对于编程是很有帮助的。<br />&nbsp;&nbsp;&nbsp;&nbsp;下面用一个演示性的例子来说明事件及其处理过程</p>
<p>一.事件的组成&nbsp;<br />
<span id="more-62"></span><br />
在JAVA程序设计中，事件的处理是非常重要的，尤其是在需要自定义事件和设计JavaBean时.对事件的处理过程有一个完整的认识对于编程是很有帮助的。<br />
    下面用一个演示性的例子来说明事件及其处理过程</p>
<p>一.事件的组成<br />
    如果想要自定义一个事件，则必须提供一个事件的监听接口以及一个事件类。在JAVA中监听接口继承java.util.EventListener,事件类继承java.util.EventObject.很多基本的事件在编程环境中都已经提供可以很方便使用，但是在自定义事件中必须要要了解这些。</p>
<p>下面是一个事件类的代码,事件类可以向用户处理程序提供被监听类的信息<br />
import java.util.*;<br />
public class PropertyEvent extends EventObject {<br />
   public PropertyEvent(){}<br />
}<br />
下面是监听接口的代码<br />
import java.util.*;</p>
<p>public interface PropertyListener extends EventListener {<br />
   public void propertyChanged(PropertyEvent propertyEvent);<br />
}</p>
<p>二.事件的处理机制</p>
<p>下面是一段简要的被监听类代码，通过代码分析事件处理过程<br />
import java.util.*;</p>
<p>public class Exam {<br />
  private int property;<br />
  //listeners用来存放已注册的监听对象<br />
  private Set listeners= new HashSet();<br />
  &#8230;..<br />
  public void addListener(PropertyListener propertyListener){<br />
    //listeners必须保证只能被一个线程访问<br />
    synchronized(listeners){<br />
      listeners.add(propertyListener);<br />
    }<br />
  }<br />
  public void firePropertyChange(){<br />
    Iterator iterator;<br />
    synchronized(listeners){<br />
      //将listeners中的类名放到iterator<br />
      iterator = new HashSet(listeners).iterator();<br />
    } </p>
<p>    //创建事件类<br />
    PropertyEvent propertyEvent = new PropertyEvent();<br />
    while(iterator.hasNext()){<br />
      PropertyListener propertyListener = (propertyListener) iterator.next();<br />
      //调用用户的事件处理程序<br />
      propertyListener.propertyChanged(propertyEvent);<br />
    }<br />
  }<br />
}<br />
    当属性值发生变化时，首先进行内部处理调用firePropertyChange方法，产生一个事件对象然后用事件对象为参数来调用用户的事件处理程序。</p>
<p>三.事件处理的使用<br />
    1.基本用法<br />
        public Exam exam;<br />
        exam.addListener(this);<br />
        public void propertyChange(PropertyEvent event){&#8230;}</p>
<p>       注：exam是被监听对象，this为监听对象，是已经实现了接口方法的当前类，addListener<br />
    将当前类注册到listeners.</p>
<p>    2.一个被监听对象可以有多个监听对象</p>
<p>    exam.addListener(listener1);<br />
    exam.addListener(listener2);<br />
        这样当exam的property发生变化时，actionListener1和actionListener2的处理程序都会<br />
      被调用。当然listener1和listener2必须都是已实现接口方法的类。</p>
<p>    3.被监听的对象也可以是实现了方法的接口<br />
        exam.addListener(<br />
        new PropertyListener(){<br />
           //用户定义事件处理过程<br />
           public void propertyChange(PropertyEvent event){<br />
         &#8230;<br />
           }<br />
    );<br />
      这种方法在实际编程中非常方便。<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/62/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个简单的自定义ClassLoader的实现</title>
		<link>http://welog.org/blog/61</link>
		<comments>http://welog.org/blog/61#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:02:07 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e4%b8%80%e4%b8%aa%e7%ae%80%e5%8d%95%e7%9a%84%e8%87%aa%e5%ae%9a%e4%b9%89classloader%e7%9a%84%e5%ae%9e%e7%8e%b0/</guid>
		<description><![CDATA[很多时候人们会使用一些自定义的ClassLoader&#160;,而不是使用系统的Class&#160;Loader。大多数时候人们这样做的原因是，他们在编译时无法预知运行时会需要那些Class。特别是在那些appserver中，比如tomcat,Avalon-phonix,Jboss中。或是程序提供一些plug-in的功能，用户可以在程序编译好之后再添加自己的功能，比如ant,&#160;jxta-shell等。定制一个ClassLoader很简单，一般只需要理解很少的几个方法就可以完成。一个最简单的自定义的ClassLoader从ClassLoader类继承而来。这里我们要做一个可以在运行时指定路径，加载这个路径下的class的ClassLoader。通常我们使用ClassLoader.loadClass(String):Class方法，通过给出一个类名，就会得到一个相应的Class实例。因此只要小小的改动这个方法，就可以实现我们的愿望了。源码： 很多时候人们会使用一些自定义的ClassLoader ,而不是使用系统的Class Loader。大多数时候人们这样做的原因是，他们在编译时无法预知运行时会需要那些Class。特别是在那些appserver中，比如tomcat,Avalon-phonix,Jboss中。或是程序提供一些plug-in的功能，用户可以在程序编译好之后再添加自己的功能，比如ant, jxta-shell等。定制一个ClassLoader很简单，一般只需要理解很少的几个方法就可以完成。 一个最简单的自定义的ClassLoader从ClassLoader类继承而来。这里我们要做一个可以在运行时指定路径，加载这个路径下的class的ClassLoader。 通常我们使用ClassLoader.loadClass(String):Class方法，通过给出一个类名，就会得到一个相应的Class实例。因此只要小小的改动这个方法，就可以实现我们的愿望了。 源码： protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException { // First, check if the class has already been loaded Class c = findLoadedClass(name); if (c == null) { try { if (parent != null) { c = parent.loadClass(name, false); }else{ c = findBootstrapClass0(name); } }catch(ClassNotFoundException e){ [...]]]></description>
			<content:encoded><![CDATA[<p>很多时候人们会使用一些自定义的ClassLoader&nbsp;,而不是使用系统的Class&nbsp;Loader。大多数时候人们这样做的原因是，他们在编译时无法预知运行时会需要那些Class。特别是在那些appserver中，比如tomcat,Avalon-phonix,Jboss中。或是程序提供一些plug-in的功能，用户可以在程序编译好之后再添加自己的功能，比如ant,&nbsp;jxta-shell等。定制一个ClassLoader很简单，一般只需要理解很少的几个方法就可以完成。<br />一个最简单的自定义的ClassLoader从ClassLoader类继承而来。这里我们要做一个可以在运行时指定路径，加载这个路径下的class的ClassLoader。<br />通常我们使用ClassLoader.loadClass(String):Class方法，通过给出一个类名，就会得到一个相应的Class实例。因此只要小小的改动这个方法，就可以实现我们的愿望了。<br />源码：<br />
<span id="more-61"></span><br />
很多时候人们会使用一些自定义的ClassLoader ,而不是使用系统的Class Loader。大多数时候人们这样做的原因是，他们在编译时无法预知运行时会需要那些Class。特别是在那些appserver中，比如tomcat,Avalon-phonix,Jboss中。或是程序提供一些plug-in的功能，用户可以在程序编译好之后再添加自己的功能，比如ant, jxta-shell等。定制一个ClassLoader很简单，一般只需要理解很少的几个方法就可以完成。<br />
一个最简单的自定义的ClassLoader从ClassLoader类继承而来。这里我们要做一个可以在运行时指定路径，加载这个路径下的class的ClassLoader。<br />
通常我们使用ClassLoader.loadClass(String):Class方法，通过给出一个类名，就会得到一个相应的Class实例。因此只要小小的改动这个方法，就可以实现我们的愿望了。<br />
源码：<br />
protected synchronized Class loadClass(String name, boolean resolve)    throws ClassNotFoundException    {<br />
    // First, check if the class has already been loaded<br />
    Class c = findLoadedClass(name);<br />
    if (c == null) {<br />
        try {<br />
           if (parent != null) {<br />
              c = parent.loadClass(name, false);<br />
           }else{<br />
              c = findBootstrapClass0(name);<br />
           }<br />
        }catch(ClassNotFoundException e){<br />
            // If still not found, then call findClass in o&#114;der<br />
            // to find the class.<br />
           c = findClass(name);<br />
        }<br />
    }<br />
    if (resolve) {<br />
      resolveClass(c);<br />
    }<br />
    return c;<br />
}</p>
<p>Source from ClassLoader.java</p>
<p>First,check JavaAPI doc：上面指出了缺省的loadClass方法所做的几个步骤。<br />
1.    调用findLoadedClass(String):Class 检查一下这个class是否已经被加载过了，由于JVM 规范规定ClassLoader可以cache它所加载的Class，因此如果一个class已经被加载过的话，直接从cache中获取即可。<br />
2.    调用它的parent 的loadClass()方法，如果parent为空，这使用JVM内部的class loader（即著名的bootstrap classloader）。<br />
3.    如果上面两步都没有找到，调用findClass(String)方法来查找并加载这个class。<br />
后面还有一句话，在Java 1.2版本以后，鼓励用户通过继承findClass(String)方法实现自己的class loader而不是继承loadClass(String)方法。<br />
既然如此，那么我们就先这么做：）<br />
public class AnotherClassLoader extends ClassLoader {<br />
    private String baseDir;private static final Logger LOG =<br />
         Logger.getLogger(AnotherClassLoader.class);<br />
    public AnotherClassLoader (ClassLoader parent, String baseDir) {<br />
           super(parent);<br />
           this.baseDir = baseDir;<br />
    }<br />
    protected Class findClass(String name)<br />
            throws ClassNotFoundException {<br />
        LOG.debug(&#8220;findClass &#8221; + name);<br />
        byte[] bytes = loadClassBytes(name);<br />
        Class theClass = defineClass(name, bytes, 0, bytes.length);//A<br />
        if (theClass == null)<br />
            throw new ClassFormatError();<br />
        return theClass;<br />
    }<br />
    private byte[] loadClassBytes(String className) throws<br />
        ClassNotFoundException {<br />
        try {<br />
            String classFile = getClassFile(className);<br />
            FileInputStream fis = new FileInputStream(classFile);<br />
            FileChannel fileC = fis.getChannel();<br />
            ByteArrayOutputStream baos = new ByteArrayOutputStream();<br />
            WritableByteChannel outC = Channels.newChannel(baos);<br />
            ByteBuffer buffer = ByteBuffer.allocateDirect(1024);<br />
            while (true) {<br />
                int i = fileC.read(buffer);<br />
                if (i == 0 || i == -1) {<br />
                    break;<br />
                }<br />
                buffer.flip();<br />
                outC.write(buffer);<br />
                buffer.clear();<br />
            }<br />
            fis.close();<br />
            return baos.toByteArray();<br />
        } catch (IOException fnfe) {<br />
            throw new ClassNotFoundException(className);<br />
        }<br />
    }<br />
    private String getClassFile(String name) {<br />
        StringBuffer sb = new StringBuffer(baseDir);<br />
        name = name.replace(&#8216;.&#8217;, File.separatorChar) + &#8220;.class&#8221;;<br />
        sb.append(File.separator + name);<br />
        return sb.toString();<br />
    }<br />
}</p>
<p>[i]Ps:这里使用了一些JDK1.4的nio的代码：）[/i]<br />
很简单的代码，关键的地方就在A处，我们使用了defineClass方法，目的在于把从class文件中得到的二进制数组转换为相应的Class实例。defineClass是一个native的方法，它替我们识别class文件格式，分析读取相应的数据结构，并生成一个class实例。</p>
<p>还没完呢，我们只是找到了发布在某个目录下的class，还有资源呢。我们有时会用Class.getResource():URL来获取相应的资源文件。如果仅仅使用上面的ClassLoader是找不到这个资源的，相应的返回值为null。</p>
<p>同样我们看一下原来的ClassLoader内部的结构。<br />
public java.net.URL getResource(String name) {<br />
        name = resolveName(name);<br />
        ClassLoader cl = getClassLoader0();//这里<br />
        if (cl==null) {<br />
            // A system class.<br />
            return ClassLoader.getSystemResource(name);<br />
        }<br />
        return cl.getResource(name);}</p>
<p>原来是使用加载这个class的那个classLoader获取得资源。</p>
<p>public URL getResource(String name) {<br />
    URL url;<br />
    if (parent != null) {<br />
        url = parent.getResource(name);<br />
    } else {<br />
        url = getBootstrapResource(name);<br />
    }<br />
    if (url == null) {<br />
        url = findResource(name);//这里<br />
    }<br />
    return url;<br />
}</p>
<p>这样看来只要继承findResource(String)方法就可以了。修改以下我们的代码：</p>
<p>//新增的一个findResource方法<br />
protected URL findResource(String name) {<br />
        LOG.debug(&#8220;findResource &#8221; + name);<br />
        try {<br />
            URL url = super.findResource(name);<br />
            if (url != null)<br />
                return url;<br />
            url = new URL(&#8220;file:///&#8221; + converName(name));<br />
            //简化处理，所有资源从文件系统中获取<br />
            return url;<br />
        } catch (MalformedURLException mue) {<br />
            LOG.error(&#8220;findResource&#8221;, mue);<br />
            return null;<br />
        }<br />
}<br />
private String converName(String name) {<br />
        StringBuffer sb = new StringBuffer(baseDir);<br />
        name = name.replace(&#8216;.&#8217;, File.separatorChar);<br />
        sb.append(File.separator + name);<br />
        return sb.toString();<br />
}</p>
<p>好了，到这里一个简单的自定义的ClassLoader就做好了，你可以添加其他的调料（比如安全检查，修改class文件等），以满足你自己的口味：）<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/61/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>深入剖析java类的构造方式</title>
		<link>http://welog.org/blog/60</link>
		<comments>http://welog.org/blog/60#comments</comments>
		<pubDate>Tue, 15 Mar 2005 06:00:56 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e6%b7%b1%e5%85%a5%e5%89%96%e6%9e%90java%e7%b1%bb%e7%9a%84%e6%9e%84%e9%80%a0%e6%96%b9%e5%bc%8f/</guid>
		<description><![CDATA[注意：本文已经在《共创软件》2002年第三期发表 概要：本文通过查看一个精心构造的类结构的运行输出和使用javap工具查看实际生成的java字节码（bytecode）向java程序员展示了一个类在运行时是如何构造生成的。 注意：本文已经在《共创软件》2002年第三期发表 概要：本文通过查看一个精心构造的类结构的运行输出和使用javap工具查看实际生成的java字节码（bytecode）向java程序员展示了一个类在运行时是如何构造生成的。 关键字： java 构造 javap 字节码 bytecode 按照java规范，一个类实例的构造过程是遵循以下顺序的： 1. 如果构造方法（constructor，也有翻译为构造器和构造函数的）是有参数的则进行参数绑定。 2. 内存分配将非静态成员赋予初始值（原始类型的成员的值为规定值，例如int型为0，float型为0.0f，boolean型为false；对象类型的初始值为null），静态成员是属于类对象而非类实例，所以类实例的生成不进行静态成员的构造或者初始化，后面将讲述静态成员的生成时间。 3. 如果构造方法中存在this()调用（可以是其它带参数的this()调用）则执行之，执行完毕后进入第6步继续执行，如果没有this调用则进行下一步。 4. 执行显式的super()调用（可以是其它带参数的super()调用）或者隐式的super()调用（缺省构造方法），此步骤又进入一个父类的构造过程并一直上推至Object对象的构造。 5. 执行类申明中的成员赋值和初始化块。 6. 执行构造方法中的其它语句。 现在来看看精心构造的一个实例： class Parent { int pm1; int pm2=10; int pm3=pmethod(); { System.out.println(&#8220;Parent&#8217;s instance initialize block&#8221;); } public static int spm1=10; static { System.out.println(&#8220;Parent&#8217;s static initialize block&#8221;); } Parent() { System.out.println(&#8220;Parent&#8217;s default constructor&#8221;); [...]]]></description>
			<content:encoded><![CDATA[<p>注意：本文已经在《共创软件》2002年第三期发表</p>
<p>概要：本文通过查看一个精心构造的类结构的运行输出和使用javap工具查看实际生成的java字节码（bytecode）向java程序员展示了一个类在运行时是如何构造生成的。<br />
<span id="more-60"></span><br />
注意：本文已经在《共创软件》2002年第三期发表</p>
<p>概要：本文通过查看一个精心构造的类结构的运行输出和使用javap工具查看实际生成的java字节码（bytecode）向java程序员展示了一个类在运行时是如何构造生成的。</p>
<p>    关键字： java 构造 javap 字节码 bytecode</p>
<p>    按照java规范，一个类实例的构造过程是遵循以下顺序的：<br />
1.    如果构造方法（constructor，也有翻译为构造器和构造函数的）是有参数的则进行参数绑定。<br />
2.    内存分配将非静态成员赋予初始值（原始类型的成员的值为规定值，例如int型为0，float型为0.0f，boolean型为false；对象类型的初始值为null），静态成员是属于类对象而非类实例，所以类实例的生成不进行静态成员的构造或者初始化，后面将讲述静态成员的生成时间。<br />
3.    如果构造方法中存在this()调用（可以是其它带参数的this()调用）则执行之，执行完毕后进入第6步继续执行，如果没有this调用则进行下一步。<br />
4.    执行显式的super()调用（可以是其它带参数的super()调用）或者隐式的super()调用（缺省构造方法），此步骤又进入一个父类的构造过程并一直上推至Object对象的构造。<br />
5.    执行类申明中的成员赋值和初始化块。<br />
6.    执行构造方法中的其它语句。</p>
<p>现在来看看精心构造的一个实例：</p>
<p>class Parent<br />
{<br />
  int pm1;<br />
  int pm2=10;<br />
  int pm3=pmethod();<br />
  {<br />
    System.out.println(&#8220;Parent&#8217;s instance initialize block&#8221;);<br />
  }<br />
  public static int spm1=10;<br />
  static<br />
  {<br />
    System.out.println(&#8220;Parent&#8217;s static initialize block&#8221;);<br />
  }</p>
<p>  Parent()<br />
  {<br />
    System.out.println(&#8220;Parent&#8217;s default constructor&#8221;);<br />
  }<br />
  static void staticmethod()<br />
  {<br />
    System.out.println(&#8220;Parent&#8217;s staticmethod&#8221;);<br />
  }</p>
<p>  int pmethod()<br />
  {<br />
    System.out.println(&#8220;Parent&#8217;s method&#8221;);<br />
    return 3;<br />
  }<br />
}</p>
<p>class Child extends Parent<br />
{<br />
  int cm1;<br />
  int cm2=10;<br />
  int cm3=cmethod();<br />
  Other co;<br />
  public static int scm1=10;<br />
  {<br />
    System.out.println(&#8220;Child&#8217;s instance initialize block&#8221;);<br />
  }<br />
  static<br />
  {<br />
    System.out.println(&#8220;Child&#8217;s static initialize block&#8221;);<br />
  }</p>
<p>  Child()<br />
  {<br />
      co=new Other();<br />
    System.out.println(&#8220;Child&#8217;s default constructor&#8221;);<br />
  }<br />
  Child(int m)<br />
  {<br />
      this();<br />
      cm1=m;<br />
    System.out.println(&#8220;Child&#8217;s self-define constructor&#8221;);<br />
  }<br />
  static void staticmethod()<br />
  {<br />
    System.out.println(&#8220;Child&#8217;s staticmethod&#8221;);<br />
  }</p>
<p>  int cmethod()<br />
  {<br />
    System.out.println(&#8220;Child&#8217;s method&#8221;);<br />
    return 3;<br />
  }</p>
<p>}</p>
<p>class Other<br />
{<br />
    int om1;<br />
    Other() {<br />
    System.out.println(&#8220;Other&#8217;s default constructor&#8221;);<br />
    }</p>
<p>}</p>
<p>public class InitializationTest<br />
{<br />
  public static void main(String args[])<br />
  {<br />
    Child c;<br />
    System.out.println(&#8220;program start&#8221;);<br />
    System.out.println(Child.scm1);<br />
    c= new Child(10);<br />
    System.out.println(&#8220;program end&#8221;);<br />
 }<br />
}</p>
<p>进入此文件所在的目录，然后<br />
编译此文件：javac InitializationTest.java<br />
运行此程序：java ?classpath . InitializationTest<br />
得到的结果是：<br />
program start<br />
Parent&#8217;s static initialize block<br />
Child&#8217;s static initialize block<br />
10<br />
Parent&#8217;s method<br />
Parent&#8217;s instance initialize block<br />
Parent&#8217;s default constructor<br />
Child&#8217;s method<br />
Child&#8217;s instance initialize block<br />
Other&#8217;s default constructor<br />
Child&#8217;s default constructor<br />
Child&#8217;s self-define constructor<br />
program end</p>
<p>如果没有看过上面的关于类的构造的说明，很容易让人误解为类的构造顺序是如下的结果（忽略参数绑定、内存分配和非静态成员的缺省值赋值）：<br />
1.    完成父类的非静态成员初始化赋值以及执行初始化块（这个的先后顺序取决于源文件中的书写顺序，可以将初始化块置于成员声明前，那么先执行的将是初始化块，将上面的代码稍稍变动一下就可以验证这一点。）<br />
2.    调用父类的构造方法完成父类构造。<br />
3.    完成非静态成员的初始化赋值以及执行初始化块。<br />
4.    调用构造方法完成对象的构造，执行构造方法体中的其它内容。</p>
<p>如果根据以上java规范中给出的顺序也可以合理的解释程序的输出结果，那么如何亲眼看到是规范中的顺序而不是以上根据程序的输出推断的顺序呢？<br />
下面就使用JDK自带的javap工具看看实际的顺序，这个工具是一个根据编译后的字节码生成一份字节码的助记符格式的文档的工具，就像根据机器码生成汇编代码那样。<br />
反编译：javap -c -classpath . Child<br />
输出的结果是（已经经过标记，交替使用黑体和斜体表示要讲解的每一块）：<br />
Compiled from InitializationTest.java<br />
class Child extends Parent {<br />
    int cm1;<br />
    int cm2;<br />
    int cm3;<br />
    Other co;<br />
    public static int scm1;<br />
    static {};<br />
    Child();<br />
    Child(int);<br />
    int cmethod();<br />
    static void staticmethod();<br />
}</p>
<p>Method static {}<br />
   0 bipush 10<br />
   2 putstatic #22<br />
   5 getstatic #20<br />
   8 ldc #5<br />
  10 invokevirtual #21<br />
  13 return</p>
<p>Method Child()<br />
   0 aload_0<br />
   1 invokespecial #14<br />
   4 aload_0<br />
   5 bipush 10<br />
   7 putfield #16<br />
  10 aload_0<br />
  11 aload_0<br />
  12 invokevirtual #18<br />
  15 putfield #17<br />
  18 getstatic #20<br />
  21 ldc #2<br />
  23 invokevirtual #21<br />
  26 aload_0<br />
  27 new #8<br />
  30 dup<br />
  31 invokespecial #13<br />
  34 putfield #19<br />
  37 getstatic #20<br />
  40 ldc #1<br />
  42 invokevirtual #21<br />
  45 return</p>
<p>Method Child(int)<br />
   0 aload_0<br />
   1 invokespecial #12<br />
   4 aload_0<br />
   5 iload_1<br />
   6 putfield #15<br />
   9 getstatic #20<br />
  12 ldc #4<br />
  14 invokevirtual #21<br />
  17 return</p>
<p>Method int cmethod()<br />
   0 getstatic #20<br />
   3 ldc #3<br />
   5 invokevirtual #21<br />
   8 iconst_3<br />
   9 ireturn</p>
<p>Method void staticmethod()<br />
   0 getstatic #20<br />
   3 ldc #6<br />
   5 invokevirtual #21<br />
   8 return</p>
<p>请仔细浏览一下这个输出并和源代码比较一下。<br />
下面解释如何根据这个输出得到类实例的实际的构造顺序，在开始说明前先解释一下输出的语句的格式，语句中最前面的一个数字是指令的偏移值，这个我们在此可以不管，第二项是指令助记符，可以从字面上大致看出指令的意思，例如 getstatic 指令将一个静态成员压入一个称为操作数堆栈（后续的指令就可以引用这个数据结构中的成员）的数据结构，而 invokevirtual 指令是调用java虚拟机方法，第三项是操作数（#号后面跟一个数字，实际上是类的成员的标记），有些指令没有这一项，因为有些指令如同汇编指令中的某些指令一样是不需要操作数的（可能是操作数是隐含的或者根本就不需要），这是java中的一个特色，如果你直接检查字节码，你会看到成员信息没有直接嵌入指令而是像所有由java类使用的常量那样存储在一个共享池中，将成员信息存储在一个常量池中可以减小字节码指令的大小，因为指令只需要存储常量池中的一个索引而不是整个常量，需要说明的是常量池中的项目的顺序是和编译器相关的，因此在你的环境中看到的可能和我上面给出的输出不完全一样，第四项是对前面的操作数的说明，实际的字节码中也是没有的，根据这个你能很清楚的得到实际上使用的是哪个成员或者调用的是哪个方法，这也是javap为我们提供的便利。说完上面这些你现在应该很容易看懂上面的结果和下面将要叙述的内容了。其它更进一步的有关java字节码的信息请自己查找资料。<br />
先看看最开始的部分，很像一个标准的c++类的声明，确实如此。成员声明的后面没有了成员初始化赋值语句和初始化块，那么这些语句何时执行的呢？先不要急，继续往下看。<br />
第二块，是一个Method static {}，对比看看第一部分，它被处理为一个静态的方法（从前面的Method可以看出），这就是源代码中的静态初始化块，从后面的语句可以看出它执行的就是System.out.println(&#8220;Child&#8217;s static initialize block&#8221;)语句，由于这个方法是没有方法名的，所以它不能被显式的调用，它在何处调用后面会有叙述。<br />
第三块，缺省构造方法的实现，这是本文的重点，下面详细讲解。由于源代码中的缺省构造方法没有显式调用this方法，因此没有this调用（对比看看下一块的有参的构造方法的前两句），同时也没有显式的super调用，那么隐式调用父类的缺省构造方法，也就是前两条语句（主要是语句invokespecial #14 ），它调用父类的构造方法，和这个类的构造相似（你可以使用javap ?c ?classpath . Parent反编译父类的字节码看看这个类的构造过程）；紧接着的是执行源代码中的第一条初始化赋值语句cm2=10（即接下来的三条语句，主要是bipush 10和putfield #15 ，此处回答了第一块中的疑问，即初始化赋值语句到哪儿去了。）；接下来是执行cm3=cmethod()（接下来的四条语句）；然后是执行初始化块中的内容System.out.println(&#8220;Child&#8217;s instance initialize block&#8221;)（接下来的三条语句）；java规范内部约定的内容至此执行完毕，开始执行构造方法的方法体中的内容，即co=new Other()（接下来的五条语句）和System.out.println(&#8220;Child&#8217;s default constructor&#8221;)（接下来的三条语句），最后方法执行完毕返回（最后一条语句return）。<br />
剩下的几块相信应该不用解释了吧，有参构造方法调用无参构造方法然后执行自己的方法体，成员方法cmethod执行一条打印语句然后返回一个常量3，静态方法staticmethod执行一条打印语句。<br />
另外需要说明一下的是你可以将有参构造方法中的this调用去掉，然后看看反编译的结果，你会发现两个构造方法非常的类似，如果你将两个构造方法的内容改为一样的，那么反编译后的生成也将是同样的。从这个可以说明本文开始的构造顺序的说明中构造方法中this调用的判断是在编译阶段就完成的，而不是在运行阶段（说明中的意思好像是这个判断是在运行时进行的）。<br />
对构造过程的另一个细节你可能还不相信，就是顺序中的第二条关于非静态成员的赋予缺省初始值（内存分配部分无法考证，这是java虚拟机自动完成的），这个你可以通过在子类Child的cmethod方法的最开始用 System.out.println(cm3)打印cm3的值（输出为0，其它类型成员的值可以通过类似的方法得到）。</p>
<p>下面来讲解另一个还没有解决的问题：静态成员初始化和静态初始化块的执行是在何时完成的？这个可以通过一个小小的试验推断得到：是在第一次使用该类对象时进行的（注意是类对象而不是类实例，对于类的公有静态成员可以直接通过类名进行访问，并不需要生成一个类实例，这就是一次类对象的使用而非类实例的使用，如果在生成第一个类实例前没有使用过该类对象，那么在构造第一个类实例前先完成类对象的构造（即完成静态成员初始化以及执行静态初始化块），然后再执行以上类实例的构造过程），试验的步骤如下：<br />
1.    修改main方法，将其中的System.out.println(Child.scm1)和c= new Child(10)都注释掉（不要删除，后面还需要用到这两个语句），编译运行程序，输出将只有program start和program end，这说明没有使用类对象也没有生成类实例时不进行静态成员的构造。<br />
2.    将System.out.println(Child.scm1)的注释取消，编译运行后输出多了父类和子类的静态初始化块部分的执行输出（使用子类的类对象将导致生成父类的类对象，父类先于子类构造）。<br />
3.    将System.out.println(Child.scm1)注释掉并取消c= new Child(10)的注释，编译运行后输出只比最开始没有注释任何语句时少了一条（输出Child.scm1的值10）</p>
<p>从以上的试验中我们可以得到前面的结论。<br />
本文至此可以说结束了，由于本人的java功底并不很扎实，java规范看得也不完整，因此文中可能有错误，如果您觉得某些地方有错误的话，欢迎通过mail联系。<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/60/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>操纵java数组</title>
		<link>http://welog.org/blog/59</link>
		<comments>http://welog.org/blog/59#comments</comments>
		<pubDate>Tue, 15 Mar 2005 05:59:58 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e6%93%8d%e7%ba%b5java%e6%95%b0%e7%bb%84/</guid>
		<description><![CDATA[&#160;如果你做过很多java程序，你可能对java集合类很熟悉，例如Vector和ArrayList。你可以创建一个集合并向其中增加元素： &#160;&#160;&#160;&#160;List&#160;lst&#160;=&#160;new&#160;ArrayList(); 如果你做过很多java程序，你可能对java集合类很熟悉，例如Vector和ArrayList。你可以创建一个集合并向其中增加元素： List lst = new ArrayList(); lst.add(new Integer(37)); 在这个特殊的范例中，一个整型值37用于构造一个Integer封装类对象，然后那个对象被加入到列表。 这个简单的范例展示集合的一个基础－他们用于操纵一列对象，其中的每个对象是一个类或者接口类型。因此，一个ArrayList可以包含Object,String,Float以及Runnable类型的对象。集合类不能用于原始数据类型的列表，例如整型数组。 如果你在你的程序中使用原始类型的数组，你如何操纵它们呢？这个技巧就给你展示几个你可以使用的技术。 第一个技术是排序。java.util.Arrays类包含一套排序和查找数组的类方法，例如： import java.util.Arrays; public class ArrayDemo1 { public static void main(String args[]) { int vec[] = {37, 47, 23, -5, 19, 56}; Arrays.sort(vec); for (int i = 0; i]]></description>
			<content:encoded><![CDATA[<p>&nbsp;<br />如果你做过很多java程序，你可能对java集合类很熟悉，例如Vector和ArrayList。你可以创建一个集合并向其中增加元素：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;lst&nbsp;=&nbsp;new&nbsp;ArrayList();<br />
<span id="more-59"></span><br />
如果你做过很多java程序，你可能对java集合类很熟悉，例如Vector和ArrayList。你可以创建一个集合并向其中增加元素：</p>
<p>    List lst = new ArrayList();</p>
<p>    lst.add(new Integer(37));</p>
<p>在这个特殊的范例中，一个整型值37用于构造一个Integer封装类对象，然后那个对象被加入到列表。</p>
<p>这个简单的范例展示集合的一个基础－他们用于操纵一列对象，其中的每个对象是一个类或者接口类型。因此，一个ArrayList可以包含Object,String,Float以及Runnable类型的对象。集合类不能用于原始数据类型的列表，例如整型数组。</p>
<p>如果你在你的程序中使用原始类型的数组，你如何操纵它们呢？这个技巧就给你展示几个你可以使用的技术。</p>
<p>第一个技术是排序。java.util.Arrays类包含一套排序和查找数组的类方法，例如：</p>
<p>    import java.util.Arrays;</p>
<p>    public class ArrayDemo1 {<br />
        public static void main(String args[]) {<br />
            int vec[] = {37, 47, 23, -5, 19, 56};<br />
            Arrays.sort(vec);<br />
            for (int i = 0; i </p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/59/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>克隆对象</title>
		<link>http://welog.org/blog/58</link>
		<comments>http://welog.org/blog/58#comments</comments>
		<pubDate>Tue, 15 Mar 2005 05:58:15 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%85%8b%e9%9a%86%e5%af%b9%e8%b1%a1/</guid>
		<description><![CDATA[&#160;假设在你的应用中使用一些对象，你如何拷贝你的对象呢？最明显的方法是讲一个对象简单的赋值给另一个，就像这样： &#160;&#160;&#160;&#160;obj2&#160;=&#160;obj1; 假设在你的应用中使用一些对象，你如何拷贝你的对象呢？最明显的方法是讲一个对象简单的赋值给另一个，就像这样： obj2 = obj1; 但是这个方法实际上没有拷贝对象而仅仅是拷贝了一个对象引用，换换言之，在你执行这个操作后仍然只有一个对象，但是多出了一个对该对象的引用。 如果这个看似明显的方法不能正常工作，那么如何实际的拷贝一个对象呢？为什么不试试Object.clone呢？这个方法对Object的所有子类都是可用的。例如： class A { private int x; public A(int i) { x = i; } } public class CloneDemo1 { public static void main(String args[]) throws CloneNotSupportedException { A obj1 = new A(37); A obj2 = (A)obj1.clone(); } } 这个代码引发一个编译错误，因为Object.clone是一个protected方法。那么再试一次，换一种方法： class A { private int x; public A(int [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;<br />假设在你的应用中使用一些对象，你如何拷贝你的对象呢？最明显的方法是讲一个对象简单的赋值给另一个，就像这样：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;obj2&nbsp;=&nbsp;obj1;<br />
<span id="more-58"></span><br />
假设在你的应用中使用一些对象，你如何拷贝你的对象呢？最明显的方法是讲一个对象简单的赋值给另一个，就像这样：</p>
<p>    obj2 = obj1;</p>
<p>但是这个方法实际上没有拷贝对象而仅仅是拷贝了一个对象引用，换换言之，在你执行这个操作后仍然只有一个对象，但是多出了一个对该对象的引用。</p>
<p>如果这个看似明显的方法不能正常工作，那么如何实际的拷贝一个对象呢？为什么不试试Object.clone呢？这个方法对Object的所有子类都是可用的。例如：</p>
<p>    class A {<br />
        private int x;<br />
        public A(int i) {<br />
            x = i;<br />
        }<br />
    }</p>
<p>    public class CloneDemo1 {<br />
        public static void main(String args[])<br />
          throws CloneNotSupportedException {<br />
            A obj1 = new A(37);<br />
            A obj2 = (A)obj1.clone();<br />
        }<br />
    }</p>
<p>这个代码引发一个编译错误，因为Object.clone是一个protected方法。那么再试一次，换一种方法：</p>
<p>    class A {<br />
        private int x;<br />
        public A(int i) {<br />
            x = i;<br />
        }<br />
        public Object clone() {<br />
            try {<br />
                return super.clone();<br />
            }<br />
            catch (CloneNotSupportedException e) {<br />
                throw new InternalError(e.toString());<br />
            }<br />
        }<br />
    }</p>
<p>    public class CloneDemo2 {<br />
        public static void main(String args[])<br />
          throws CloneNotSupportedException {<br />
            A obj1 = new A(37);<br />
            A obj2 = (A)obj1.clone();<br />
        }<br />
    }</p>
<p>在这个方法中，呢定义自己的clone方法，它扩展Object.clone方法，CloneDemo2可以编译，但是当你运行它时会抛出一个CloneNotSupportedException异常。</p>
<p>这里仍然缺少一些东西，你必须让那些包含clone方法的类实现Cloneable接口，就像这样：</p>
<p>    class A implements Cloneable {<br />
        private int x;<br />
        public A(int i) {<br />
            x = i;<br />
        }<br />
        public Object clone() {<br />
            try {<br />
                return super.clone();<br />
            }<br />
            catch (CloneNotSupportedException e) {<br />
                throw new InternalError(e.toString());<br />
            }<br />
        }<br />
        public int getx() {<br />
            return x;<br />
        }<br />
    }</p>
<p>    public class CloneDemo3 {<br />
        public static void main(String args[])<br />
          throws CloneNotSupportedException {<br />
            A obj1 = new A(37);<br />
            A obj2 = (A)obj1.clone();<br />
            System.out.println(obj2.getx());<br />
        }<br />
    }</p>
<p>成功了！CloneDemo3可以编译并产生期望的结果：</p>
<p>37    </p>
<p>你已经了解了必须显式的指定clone方法并且你的类必须实现Cloneable接口。Cloneable是“标记”接口的一个范例，接口自身不指定任何东西，但是，Object.clone检查类是否实现了它，如果没有就抛出一个CloneNotSupportedException异常。</p>
<p>Object.clone方法做简单的拷贝操作，将一个对象的所有成员变量拷贝到一个新的对象。在CloneDemo3中，A.clone调用Object.clone，然后Object.clone创建一个新的A对象并将已经存在的那个对象的成员变量的内容拷贝到那个新对象。</p>
<p>CloneDemo3中还有大量其他值得考虑的东西。其中之一就是你可以防止你写的类的用户拷贝那个类对象。为了做到这个，你可以不实现Cloneable接口，因此拷贝操作总会抛出异常。然而在大部分情况下为你的类规划和实现一个clone方法因而可以恰当的拷贝会更好。</p>
<p>另外一点就是你可以支持无条件的和有条件的拷贝。CloneDemo3是无条件的支持拷贝，clone方法不会传播CloneNotSupportedException异常。</p>
<p>一个更通用的方法是有条件的支持类拷贝。在这种情况下，对象自身可以被拷贝，但是对象的子类可能不能拷贝。对于有条件拷贝，clone方法必须申明它能够传播CloneNotSupportedException异常。有条件拷贝的一个范例是一个集合类的对象的元素只有在那些元素是可以拷贝的时候才能进行拷贝。</p>
<p>有条件拷贝的另外的一种方式是实现一个合适的clone方法但是不实现Cloneable接口。在这种情况下，如果愿意，子类可以支持拷贝操作。</p>
<p>拷贝操作可能是很棘手的，因为Object.clone做简单的对象成员拷贝，有时候这不是你期望的，例如：</p>
<p>    import java.util.*;</p>
<p>    class A implements Cloneable {<br />
        public HashMap map;<br />
        public A() {<br />
            map = new HashMap();<br />
            map.put(&#8220;key1&#8243;, &#8220;value1&#8243;);<br />
            map.put(&#8220;key2&#8243;, &#8220;value2&#8243;);<br />
        }<br />
        public Object clone() {<br />
            try {<br />
                return super.clone();<br />
            }<br />
            catch (CloneNotSupportedException e) {<br />
                throw new InternalError(e.toString());<br />
            }<br />
        }<br />
    }</p>
<p>    public class CloneDemo4 {<br />
        public static void main(String args[]) {<br />
            A obj1 = new A();<br />
            A obj2 = (A)obj1.clone();</p>
<p>            obj1.map.remove(&#8220;key1&#8243;);</p>
<p>            System.out.println(obj2.map.get(&#8220;key1&#8243;));<br />
        }<br />
    }</p>
<p>你可能希望CloneDemo4显示如下的结果：</p>
<p>value1</p>
<p>但是实际上它显示：</p>
<p>null</p>
<p>发生了什么事？在CloneDemo4中，一个对象包含一个HashMap引用，当对象被拷贝时，HashMap 引用也被拷贝了，这意味着拷贝生成的那个对象包含那个HashMap对象的原始引用。因此当原始对象中的HashMap的内容发生变化，拷贝生成的对象中的那个HashMap的内容也同时更新。</p>
<p>要修正这个问题，你可以让clone方法更完善：</p>
<p>    import java.util.*;</p>
<p>    class A implements Cloneable {<br />
        public HashMap map;<br />
        public A() {<br />
            map = new HashMap();<br />
            map.put(&#8220;key1&#8243;, &#8220;value1&#8243;);<br />
            map.put(&#8220;key2&#8243;, &#8220;value2&#8243;);<br />
        }<br />
        public Object clone() {<br />
            try {<br />
                A aobj = (A)super.clone();<br />
                aobj.map = (HashMap)map.clone();<br />
                return aobj;<br />
            }<br />
            catch (CloneNotSupportedException e) {<br />
                throw new InternalError(e.toString());<br />
            }<br />
        }<br />
    }</p>
<p>    public class CloneDemo5 {<br />
        public static void main(String args[]) {<br />
            A obj1 = new A();<br />
            A obj2 = (A)obj1.clone();</p>
<p>            obj1.map.remove(&#8220;key1&#8243;);</p>
<p>            System.out.println(obj2.map.get(&#8220;key1&#8243;));<br />
        }<br />
    }</p>
<p>Clone5Demo显示如下的期望的结果：</p>
<p>value1    </p>
<p>Clone5Demo调用super.clone创建一个A对象并拷贝map成员，然后调用HashMap.clone完成HashMap类型的拷贝。这个操作包含创建一个新的hash表并且从老的那个里面拷贝成员到那个新的hash表。</p>
<p>如果两个对象共享一个引用，就像CloneDemo4中的情况一样，那么通常你会遇到问题，除非那个引用是只读的，要避开这个问题，你需要实现clone方法处理这个问题。这种情况的另一种说法是<br />
Object.clone完成的是对象的“浅”拷贝，即简单的成员到成员的拷贝。它不做“深度”拷贝，即成员或者数组指向的对象的递归拷贝。</p>
<p>不使用&#8221;new CloneDemo5&#8243;创建一个对象，那么调用super.clone就是极度重要的。你应该在类层次的每一级上调用super.clone。这是因为每一级都可能有它自己的共享对象问题。如果你使用&#8221;new&#8221;而不是super.clone，那么你的代码对于那些从你的类继承的子类是不正确的，那些代码调用你的clone方法但是收到一个不正确的返回类型。</p>
<p>关于拷贝，另一个需要知道的事情是可以拷贝任何数组，只需简单的调用clone方法：</p>
<p>    public class CloneDemo6 {<br />
        public static void main(String args[]) {<br />
            int vec1[] = new int[]{1, 2, 3};<br />
            int vec2[] = (int[])vec1.clone();<br />
            System.out.println(vec2[0] + &#8221; &#8221; + vec2[1] +<br />
                &#8221; &#8221; + vec2[2]);<br />
        }<br />
    }</p>
<p>关于拷贝的最后一个重要的事情是：它是创建和初始化一个新对象的方式，但是它不同于调用一个构造方法。这个区别的一个例子是它事关空的final成员，也就是那些声明为&#8221;final&#8221;但是没有初始化的成员，它们只能在构造方法中被赋值。下面是一个空的final成员的用法：</p>
<p>    public class CloneDemo7 {</p>
<p>        private int a;<br />
        private int b;<br />
        private final long c;</p>
<p>        public CloneDemo7(int a, int b) {<br />
            this.a = a;<br />
            this.b = b;<br />
            this.c = System.currentTimeMillis();<br />
        }</p>
<p>        public static void main(String args[]) {<br />
            CloneDemo7 obj = new CloneDemo7(37, 47);<br />
        }<br />
    }</p>
<p>在CloneDemo7的构造方法中，一个final成员&#8221;c&#8221;从系统时钟中获得一个时戳。如果你拷贝这样的类型的值你想得到什么？Object.clone拷贝所有的成员变量，但是你想那个时戳成员被设置为当前系统时钟的值。然而，如果一个成员是final类型的，你只能在构造方法中设置那个成员，不能在clone方法中。下面是这个问题的例子：</p>
<p>    public class CloneDemo8 {</p>
<p>        private int a;<br />
        private int b;<br />
        private final long c;</p>
<p>        public CloneDemo8(int a, int b) {<br />
            this.a = a;<br />
            this.b = b;<br />
            this.c = System.currentTimeMillis();<br />
        }</p>
<p>        public CloneDemo8(CloneDemo8 obj) {<br />
            this.a = obj.a;<br />
            this.b = obj.b;<br />
            this.c = System.currentTimeMillis();<br />
        }</p>
<p>        public Object clone() throws CloneNotSupportedException {<br />
            //this.c = System.currentTimeMillis();<br />
            return super.clone();<br />
        }</p>
<p>        public static void main(String args[]) {<br />
            CloneDemo8 obj = new CloneDemo8(37, 47);<br />
            CloneDemo8 obj2 = new CloneDemo8(obj);<br />
        }<br />
    }</p>
<p>如果你想取消final成员的赋值语句那一行的注释程序就不能编译。对于这样的问题，我们不使用clone方法，范例程序使用拷贝构造方法。拷贝构造方法的参数是和它自身类型相同并实现合适的拷贝逻辑。（译者注：在实现拷贝构造方法时需要注意共享对象问题，由于范例中的其他两个成员都是原始类型所以没有问题，但是如果你自己的类的成员的类型是对象类型就不能使用直接赋值也要使用拷贝进行或者是其他合适的拷贝构造方法，但是如果你需要使用的类型没有拷贝方法或者合适的拷贝构造方法，那么你就不能写你自己的合适的拷贝构造方法或者拷贝方法，所辛的是java的核心类基本上不存在这个问题，但是你如果使用其他的人的类就不好说了，因此如果你写自己的类并想让很多人用，那么你一定要实现合适的拷贝方法）</p>
<p>也许你认为你可以不使用空final成员而是在声明那些final成员的时候马上使用系统时间来初始化解决这样的问题，就像下面这样：</p>
<p>    class A implements Cloneable {<br />
        final long x = System.currentTimeMillis();<br />
        public Object clone() {<br />
            try {<br />
                return super.clone();<br />
            }<br />
            catch (CloneNotSupportedException e) {<br />
                throw new InternalError(e.toString());<br />
            }<br />
        }<br />
    }</p>
<p>    public class CloneDemo9 {<br />
        public static void main(String args[]) {<br />
            A obj1 = new A();<br />
            // sleep 100 ms before doing clone,<br />
            // to ensure unique timestamp<br />
            try {<br />
                Thread.sleep(100);<br />
            }<br />
            catch (InterruptedException e) {<br />
                System.err.println(e);<br />
            }<br />
            A obj2 = (A)obj1.clone();<br />
            System.out.println(obj1.x + &#8221; &#8221; + obj2.x);<br />
        }<br />
    }</p>
<p>这样同样不能工作，当你运行这个程序，你可以看到obj1.x和obj2.x有相同的值。这指出当一个对象是拷贝生成的时候通常的对象初始化没有进行并且你不能在clone方法中设置final成员的值。因此如果简单的拷贝操作不能正确的初始化一个成员，你就不应该将它声明为final的。或者你需要使用拷贝构造方法作为拷贝的替代方法。（译者注：如果你将成员声明为private并且不提供修改它的值方法，那么效果和将它声明为final是相同的） </p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/58/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用零长度数组</title>
		<link>http://welog.org/blog/57</link>
		<comments>http://welog.org/blog/57#comments</comments>
		<pubDate>Tue, 15 Mar 2005 05:57:33 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e4%bd%bf%e7%94%a8%e9%9b%b6%e9%95%bf%e5%ba%a6%e6%95%b0%e7%bb%84/</guid>
		<description><![CDATA[假定写一个过滤数据的应用程序。例如，要得到整形数组中给定范围的数据，写一个方法除去数组中不符合条件的数据，返回一个新的数组。将如何实现这个方法呢，一种方法为：&#160;&#160;&#160;&#160;import&#160;java.util.*;&#160;&#160;&#160;&#160; 假定写一个过滤数据的应用程序。例如，要得到整形数组中给定范围的数据，写一个方法除去数组中不符合条件的数据，返回一个新的数组。 将如何实现这个方法呢，一种方法为： import java.util.*; public class ZeroDemo1 { // filter input array an&#100; throw away values // that are less than minval o&#114; greater than // maxval static int[] filterData(int indata[], int minval, int maxval) { // check parameters for errors if (indata == null) { throw new NullPointerException(&#8220;indata is null&#8221;); } if (maxval [...]]]></description>
			<content:encoded><![CDATA[<p>假定写一个过滤数据的应用程序。例如，要得到整形数组中给定范围的数据，写一个方法除去数组中不符合条件的数据，返回一个新的数组。<br />将如何实现这个方法呢，一种方法为：<br />&nbsp;&nbsp;&nbsp;&nbsp;import&nbsp;java.util.*;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span id="more-57"></span><br />
假定写一个过滤数据的应用程序。例如，要得到整形数组中给定范围的数据，写一个方法除去数组中不符合条件的数据，返回一个新的数组。<br />
将如何实现这个方法呢，一种方法为：<br />
    import java.util.*;</p>
<p>    public class ZeroDemo1 {</p>
<p>        // filter input array an&#100; throw away values<br />
        // that are less than minval o&#114; greater than<br />
        // maxval</p>
<p>        static int[] filterData(int indata[], int minval, int maxval) {</p>
<p>            // check parameters for errors </p>
<p>            if (indata == null) {<br />
                throw new NullPointerException(&#8220;indata is null&#8221;);<br />
            }<br />
            if (maxval = minval &amp;&amp; indata[ii]= minval &amp;&amp; indata[ii] </p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/57/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>类的研究</title>
		<link>http://welog.org/blog/56</link>
		<comments>http://welog.org/blog/56#comments</comments>
		<pubDate>Tue, 15 Mar 2005 05:56:56 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e7%b1%bb%e7%9a%84%e7%a0%94%e7%a9%b6/</guid>
		<description><![CDATA[1：在Java中使用继承　　面向对象的程序设计中最为强大的功能是类的继承，类的继承允许你在一个已经存在的类之上编写新的程序，例如，你想建立一个可在屏幕上显示并能填充它的矩形类，你可以从头开始或者利用旧的矩形类，下面的部分将向你介绍如何继承已存在的Rectangle类，而不需重写其中的代码。　　比如建立一个fillRect类，该类可以使用Rectangle类中所有已定义的数据和成员函数，如：width、height等数据和getArea等成员函数，就可是使用继承的方法来实现。使用extands关键字让Java程序员能够继承已有类的成员函数，为了继承Rectangle类，你必须引用旧的Rectangle类，你必须引用旧的Rectangle类，并且在新类的说明中引用它，比如： import&#160;Shapes.Rectangle; 1：在Java中使用继承 　　面向对象的程序设计中最为强大的功能是类的继承，类的继承允许你在一个已经存在的类之上编写新的程序，例如，你想建立一个可在屏幕上显示并能填充它的矩形类，你可以从头开始或者利用旧的矩形类，下面的部分将向你介绍如何继承已存在的Rectangle类，而不需重写其中的代码。 　　比如建立一个fillRect类，该类可以使用Rectangle类中所有已定义的数据和成员函数，如：width、height等数据和getArea等成员函数，就可是使用继承的方法来实现。使用extan&#100;s关键字让Java程序员能够继承已有类的成员函数，为了继承Rectangle类，你必须引用旧的Rectangle类，你必须引用旧的Rectangle类，并且在新类的说明中引用它，比如： import Shapes.Rectangle; class fillRect extan&#100;s Rectangle { &#8230;.. } 2：成员函数的重载 　　继承之后，如何使fillRect类比Rectangle类有所提高呢？我们可以用如下代码来实现一个新的drawRect成员函数，它将大大缩短代码，并能填充矩形，而不是仅仅画出矩形的轮廓： private String makeString(chr ch,int num) { StringBuffer str=new StringBuffer(); for(int i=num;i&#62;0;i&#8211;) str.append(ch); return str.toString(); } public void drawRect() { for(int i=height;i&#62;0;i&#8211;) System.out.println(makeString(&#8220;#&#8221;,width)); } 　　注意这里我们使用了StringBuffer类。之所以使用StringBuffer是因为String只能产生一个静态类型－－它的大小是不能改变的，而StringBuffer能够产生一个可变长度的字符串类型。 　　在这里，drawRect成员函数被重载了，通过使用相同的成员函数名字，你可以用新的成员函数来代替旧的成员函数。不过，那些被说明为final的成员函数是不能被重载的。 　　注意，你不必在新的类中包含那些与被继承类相同的代码，而只需要加入你想要的东西，但你必须建立一个新的构造成员函数，以区分这两个不同的类。 　　新类的全貌如下所示，你可以发现通过继承Rectangle类，代码变得非常简单明了。 class fillRect extan&#100;s Rectangle { public fillRect(int w,int h) { supper(w,h); private [...]]]></description>
			<content:encoded><![CDATA[<p>1：在Java中使用继承<br />　　面向对象的程序设计中最为强大的功能是类的继承，类的继承允许你在一个已经存在的类之上编写新的程序，例如，你想建立一个可在屏幕上显示并能填充它的矩形类，你可以从头开始或者利用旧的矩形类，下面的部分将向你介绍如何继承已存在的Rectangle类，而不需重写其中的代码。<br />　　比如建立一个fillRect类，该类可以使用Rectangle类中所有已定义的数据和成员函数，如：width、height等数据和getArea等成员函数，就可是使用继承的方法来实现。使用extands关键字让Java程序员能够继承已有类的成员函数，为了继承Rectangle类，你必须引用旧的Rectangle类，你必须引用旧的Rectangle类，并且在新类的说明中引用它，比如：</p>
<p>import&nbsp;Shapes.Rectangle;<br />
<span id="more-56"></span><br />
1：在Java中使用继承<br />
　　面向对象的程序设计中最为强大的功能是类的继承，类的继承允许你在一个已经存在的类之上编写新的程序，例如，你想建立一个可在屏幕上显示并能填充它的矩形类，你可以从头开始或者利用旧的矩形类，下面的部分将向你介绍如何继承已存在的Rectangle类，而不需重写其中的代码。<br />
　　比如建立一个fillRect类，该类可以使用Rectangle类中所有已定义的数据和成员函数，如：width、height等数据和getArea等成员函数，就可是使用继承的方法来实现。使用extan&#100;s关键字让Java程序员能够继承已有类的成员函数，为了继承Rectangle类，你必须引用旧的Rectangle类，你必须引用旧的Rectangle类，并且在新类的说明中引用它，比如：</p>
<p>import Shapes.Rectangle;</p>
<p>class fillRect extan&#100;s Rectangle<br />
{<br />
   &#8230;..</p>
<p>} </p>
<p>2：成员函数的重载<br />
　　继承之后，如何使fillRect类比Rectangle类有所提高呢？我们可以用如下代码来实现一个新的drawRect成员函数，它将大大缩短代码，并能填充矩形，而不是仅仅画出矩形的轮廓：</p>
<p>private String makeString(chr ch,int num)<br />
{<br />
  StringBuffer str=new StringBuffer();<br />
  for(int i=num;i&gt;0;i&#8211;)<br />
  str.append(ch);<br />
  return str.toString();<br />
} </p>
<p>public void drawRect()<br />
{<br />
  for(int i=height;i&gt;0;i&#8211;)</p>
<p>  System.out.println(makeString(&#8220;#&#8221;,width));<br />
} </p>
<p>　　注意这里我们使用了StringBuffer类。之所以使用StringBuffer是因为String只能产生一个静态类型－－它的大小是不能改变的，而StringBuffer能够产生一个可变长度的字符串类型。<br />
　　在这里，drawRect成员函数被重载了，通过使用相同的成员函数名字，你可以用新的成员函数来代替旧的成员函数。不过，那些被说明为final的成员函数是不能被重载的。<br />
　　注意，你不必在新的类中包含那些与被继承类相同的代码，而只需要加入你想要的东西，但你必须建立一个新的构造成员函数，以区分这两个不同的类。<br />
　　新类的全貌如下所示，你可以发现通过继承Rectangle类，代码变得非常简单明了。</p>
<p>class fillRect extan&#100;s Rectangle<br />
{<br />
   public fillRect(int w,int h)<br />
  {<br />
      supper(w,h);<br />
      private String makeString(char ch,int num)<br />
      {<br />
         StringBuffer str=new StringBuffer();<br />
         for(int i=num;i&gt;0;i&#8211;)<br />
         str.append(ch);<br />
         return str.toString();<br />
      }<br />
      public void drawRect()<br />
      {<br />
         for(int i=height;i&gt;0;i&#8211;)<br />
         System.out.printlm(makeString(&#8220;#&#8221;,width));<br />
      }<br />
  }<br />
} </p>
<p>3：使用接口<br />
　　Java可以创建一种称作接口(interface)的类，在这个类中，所有的成员函数都是抽象的，也就是说它们都只有说明没有定义，你可以如下所示来说明一个接口。<br />
public interface interfaceName<br />
//成员函数说明</p>
<p>　　接口中成员函数的缺省引用类型是private，接口（interface）的内部变量是不可更改的，并且总是static和final。<br />
　　通过使用关键字implement，你可以在定义类时继承一个接口。不过与extends不同的是，一个类可以同时继承多个接口。<br />
　　使用接口的优点在何处呢？通过创建一个接口，你可以说明一整套抽象的成员函数而无须去具体实现它，所有继承了这个接口的类，都将有着具有相同原形的成员函数。例如，你想所有的shapes都有一个draw()成员函数，你可以创建一个接口并且用Shape命名：</p>
<p>public interface Shape<br />
void draw();</p>
<p>　　现在，无论你何时创建一个继承自Shape的类，都将拥有一个成员函数draw()。</p>
<p>4：类的转换<br />
　　类的转换，与不同类型的变量之间的转换有相似之处，但并不一样。<br />
　　我们可以把一个父类的对象转换成一个子类对象，下面的代码说明一个类转换的例子，其中Y类是从X类继承而来的：</p>
<p>Y y=new Y();<br />
X x;<br />
x=y;</p>
<p>　　需要注意的是两个子类之间的转换是不可以的。</p>
<p>5：null,this和supper变量<br />
　　所有的类都有三种变量：null、this和supper。<br />
　　null变量不指向任何实际对象,而是指向一个空对象,如下例所示:</p>
<p>    Rectangle rect=null;</p>
<p>　　该例产生一个矩形类的变量，但不创建一个实际的对象。另外，假如一个成员函数需要一个对象作为参数时，你同样可以用null代替。<br />
　　this变量指向对象本身，一个类可以通过this变量来获得一个代表它自身的对象变量。<br />
　　supper变量是一个指向类父类构造成员函数的变量，你可以通过调用它，来迅速完成对子类的构造成员函数的设计。</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/56/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>java 中内部类的特性</title>
		<link>http://welog.org/blog/55</link>
		<comments>http://welog.org/blog/55#comments</comments>
		<pubDate>Tue, 15 Mar 2005 05:55:59 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java-%e4%b8%ad%e5%86%85%e9%83%a8%e7%b1%bb%e7%9a%84%e7%89%b9%e6%80%a7/</guid>
		<description><![CDATA[&#160;&#160;&#160;内部类就是定义在一个类内部的类，相当于C++中的嵌套类。例如下面定义一个内部类： class&#160;Parent{ 内部类就是定义在一个类内部的类，相当于C++中的嵌套类。例如下面定义一个内部类： class Parent { private StringBuffer sb1; int a; Parent() { sb1=new StringBuffer(&#8220;Hello java !&#8221;); a=10; } InnerCls pMethod(int r) { return new InnerCls(r); } private class InnerCls { int property1; InnerCls( int b) { property1=b; } public static int innerMethod() { sb1.append(&#8220;You are so beautiful!&#8221;) return proterty1* a; } } } //定义主类 [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;内部类就是定义在一个类内部的类，相当于C++中的嵌套类。例如下面定义一个内部类：</p>
<p>class&nbsp;Parent<br />{<br />
<span id="more-55"></span><br />
内部类就是定义在一个类内部的类，相当于C++中的嵌套类。例如下面定义一个内部类：</p>
<p>class Parent<br />
{<br />
   private StringBuffer sb1;<br />
   int a;<br />
   Parent()<br />
    {<br />
      sb1=new StringBuffer(&#8220;Hello java !&#8221;);<br />
      a=10;<br />
    }<br />
 InnerCls  pMethod(int r)<br />
  {<br />
    return new InnerCls(r);<br />
  }</p>
<p> private class InnerCls<br />
  { int property1;<br />
    InnerCls( int b)<br />
    {<br />
       property1=b;<br />
     }<br />
    public static int  innerMethod()<br />
    {<br />
     sb1.append(&#8220;You are so beautiful!&#8221;)<br />
     return proterty1* a;<br />
     }</p>
<p>  }</p>
<p>}<br />
//定义主类<br />
public class test<br />
{<br />
    public static void main(String args[])<br />
   {<br />
     Parent p1=new Parent();<br />
    InnerCls in1= p1.pMethod(int a=2)<br />
    in1.innerMethod();</p>
<p>  }<br />
}</p>
<p>注意：<br />
1 程序中创建外部类对象是并没有创建内部类的对象；<br />
2 内部类对象可以访问其外部类的任何成员<br />
3 内部类对其他外部是不可见的<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/55/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【Eclipse 3.0资料收集】</title>
		<link>http://welog.org/blog/50</link>
		<comments>http://welog.org/blog/50#comments</comments>
		<pubDate>Mon, 14 Mar 2005 05:18:28 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e3%80%90eclipse-30%e8%b5%84%e6%96%99%e6%94%b6%e9%9b%86%e3%80%91/</guid>
		<description><![CDATA[&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&#160;其中大部分内容没有证实！ 1.lomboz.301.zip与emf-sdo-runtime-2.0.0.zip(著名的开发J2ee的插件)下载网址：http://forge.objectweb.org/project/showfiles.php?group_id=97 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- 其中大部分内容没有证实！ 1.lomboz.301.zip与emf-sdo-runtime-2.0.0.zip(著名的开发J2ee的插件) 下载网址：http://forge.objectweb.org/project/showfiles.php?group_id=97 http://www.objectlearn.com/ Lomboz 可以做很多事情，是使用 Eclipse+JBoss 做 J2EE 的首选。 2.MyEclipse,最好的J2EE开发框架 http://www.myeclipseide.com/ContentExpress-display-ceid-47.html MyEclipse的注册码： for eclispe3.0版的： IceCraft VAR7ZL-819-56-54678656108018950 for eclispe2.1版的： IceCraft VAR7ZL-719-56-54678657538454123 3.Log4j或者Apache commons Logger最得力的助手就是 Log4j： 4.Easy Struts支持Struts的插件 (0.64版只支持Eclipse2.X) 是开放源代码组织sourceforge.net上的一个项目，目前最新的版本是0.64， http://easystruts.sourceforge.net/ 5.TomcatPlugin 支持Tomcat插件 http://www.sysdeo.com/eclipse/tomcatPlugin.html 6.SWT Designer 使GUI更cool，更in，更happy! http://www.swt-designer.com/ 7.XML Editor &#38; XSLT Debugger 编辑XML的插件 http://www.oxygenxml.com/ 8.支持Eclipse 3.0 的XML插件 http://www.xmlbuddy.com/ 9.XML Viewer Version: 1.1.7 [...]]]></description>
			<content:encoded><![CDATA[<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&nbsp;<br />其中大部分内容没有证实！</p>
<p>1.lomboz.301.zip与emf-sdo-runtime-2.0.0.zip(著名的开发J2ee的插件)<br />下载网址：http://forge.objectweb.org/project/showfiles.php?group_id=97<br />
<span id="more-50"></span><br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
其中大部分内容没有证实！</p>
<p>1.lomboz.301.zip与emf-sdo-runtime-2.0.0.zip(著名的开发J2ee的插件)<br />
下载网址：http://forge.objectweb.org/project/showfiles.php?group_id=97</p>
<p>http://www.objectlearn.com/</p>
<p>Lomboz 可以做很多事情，是使用 Eclipse+JBoss 做 J2EE 的首选。</p>
<p>2.MyEclipse,最好的J2EE开发框架 </p>
<p>http://www.myeclipseide.com/ContentExpress-display-ceid-47.html</p>
<p>MyEclipse的注册码：<br />
for eclispe3.0版的：<br />
IceCraft<br />
VAR7ZL-819-56-54678656108018950<br />
for eclispe2.1版的：<br />
IceCraft<br />
VAR7ZL-719-56-54678657538454123</p>
<p>3.Log4j或者Apache commons Logger最得力的助手就是 Log4j：</p>
<p>4.Easy Struts支持Struts的插件 (0.64版只支持Eclipse2.X)<br />
是开放源代码组织sourceforge.net上的一个项目，目前最新的版本是0.64，</p>
<p>http://easystruts.sourceforge.net/</p>
<p>5.TomcatPlugin 支持Tomcat插件</p>
<p>http://www.sysdeo.com/eclipse/tomcatPlugin.html</p>
<p>6.SWT Designer 使GUI更cool，更in，更happy!</p>
<p>http://www.swt-designer.com/</p>
<p>7.XML Editor &amp; XSLT Debugger 编辑XML的插件</p>
<p>http://www.oxygenxml.com/</p>
<p>8.支持Eclipse 3.0 的XML插件</p>
<p>http://www.xmlbuddy.com/</p>
<p>9.XML Viewer<br />
Version: 1.1.7</p>
<p>http://tabaquismo.freehosting.net/ignacio/eclipse/xmlview/index.html</p>
<p>10.UML Tool for Eclipse</p>
<p>http://www.visual-paradigm.com/download.php?shortName=sdeec</p>
<p>11.UML插件 Omondo的(支持eclipse 3.0 的studio 1.0 只试用20天)</p>
<p>http://www.omondo.com/</p>
<p>12.Eclipse加速插件KeepResident</p>
<p>http://suif.stanford.edu/pub/keepresident/</p>
<p>原理:利用两个 Windows API &#8211; SetProcessWorkingSetSize 与 VirtualLock (适用于 Windows 平台)。<br />
切换时果然快很多。<br />
官方建议最小值设定在 100 MB，最大值 250 MB 左右。</p>
<p>13.RMI Plugin for Eclipse 1.6.0 for Eclipse 3.0</p>
<p>http://www.genady.net/rmi</p>
<p>14.Eclipse插件使用links目录的用法：<br />
　 假设把插件安装在d:\myplugin目录中，则myplugin的目录结构一定要是这样的：<br />
　 d:\myplugin\eclipse\plugins\插件 及 d:\myplugin\eclipse\features\插件<br />
　 例如安装EclipseME插件到d:\myplugin目录中，则目录结构<br />
d:\myplugin\eclipse\plugins\eclipseme_0.4.5。<br />
　 再假设eclipse安装在d:\eclipse目录中，则在eclipse目录中创建名称为links的目录，在links目<br />
录中建立一个link文件，比如myplugin.link，该文件内容为path=d:\myplugin。<br />
　 启动eclipse，插件即安装上了，如果想暂时不启动插件，只需把myplugin.link文件删除即可。<br />
补充说明：<br />
　 1. 插件可以分别安装在多个自定义的目录中。<br />
　 2. 一个自定义目录可以安装多个插件。<br />
　 3. link文件的文件名及扩展名可以取任意名称，比如myplugin.txt，goodplugin都可以。<br />
　 4. link文件可以有多行path=插件目录，对应多个自定义插件目录，每一行的path参数都将生效。<br />
　 5. 在links目录也可以有多个link文件，每个link文件中的path参数都将生效。<br />
　 6. 插件目录可以使用相对路径，如果我们把myplugin目录创建在eclipse安装目录中，如上例中的<br />
d:\eclipse目录中，则只需设置path=myplugin即可。</p>
<p>15.plug-in网址：</p>
<p>http://www.eclipse-plugins.info/eclipse/index.jsp</p>
<p>http://www.eclipse-workbench.com/jsp/</p>
<p>http://eclipse-plugins.2y.net/eclipse/index.jsp （非常非常著名的插件更新网站）<br />
http://www.crionics.com/products/opensource/eclipse/eclipse.jsp （分类清楚）</p>
<p>http://www.eclipseplugincentral.com/</p>
<p>16.Preferences无法显示新安装的插件的解决办法<br />
删除C:\eclipse\configuration\org.eclipse.up&#100;ate下的platform.xml文件，重新启动Eclipse</p>
<p>17.总结<br />
当前世界上最新最实用的IDE环境Eclipse。加上分析设计工具eclipseUML、MVC构架的Struts、对象数据绑定构架OJB，<br />
Web系统的自动单元测试工具JUnit和HttpUnit，还有最普及的数据库MySQL，最流行的版本管理服务器CVS，<br />
和支持Java/JSP/servlet的最佳Web引擎tomcat ,jboss。</p>
<p>19.Eclipse的许可证是怎样的？<br />
现在Eclipse相关的许可证是大多数基于Common Public License (CPL)，CPL是一个为Open Source<br />
Initiative (OSI)所认可的许可证。由于Eclipse Foundation的建立，Eclipse的许可证将逐渐趋向于使<br />
用Eclipse Public License (EPL)，EPL是一个与CPL相类似的许可证，正在进行OSI的认证工作。此外，<br />
Eclipse还涉及到多个开源项目和各类许可证，主要有 Apache Software License、IBM Public License<br />
、Metro Link Public License和Mozilla Public License。个人无需太关心许可证的问题，企业在使用<br />
Eclipse进行开发之前，最好请法律界人士研究一下。<br />
各许可证的网址是：</p>
<p>http://www.eclipse.org/legal/cpl-v10.html</p>
<p>http://www.eclipse.org/legal/epl-v10.html</p>
<p>http://www.apache.org/licenses/LICENSE</p>
<p>http://oss.software.ibm.com/developerworks/opensource/license10.html</p>
<p>http://www.opengroup.org/openmotif/supporters/metrolink/license.html</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/50/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java性能优化技巧集锦</title>
		<link>http://welog.org/blog/48</link>
		<comments>http://welog.org/blog/48#comments</comments>
		<pubDate>Mon, 14 Mar 2005 05:06:18 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e6%80%a7%e8%83%bd%e4%bc%98%e5%8c%96%e6%8a%80%e5%b7%a7%e9%9b%86%e9%94%a6/</guid>
		<description><![CDATA[　　可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的，优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容：减小代码的体积，提高代码的运行效率。本文讨论的主要是如何提高代码的效率。 　　一、通用篇&#160; 　　可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的，优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容：减小代码的体积，提高代码的运行效率。本文讨论的主要是如何提高代码的效率。 　　一、通用篇 　　“通用篇”讨论的问题适合于大多数Java应用。 　　1.1 不用new关键词创建类的实例 　　用new关键词创建类的实例时，构造函数链中的所有构造函数都会被自动调用。但如果一个对象实现了Cloneable接口，我们可以调用它的clone()方法。clone()方法不会调用任何类构造函数。 　　在使用设计模式(Design Pattern)的场合，如果用Factory模式创建对象，则改用clone()方法创建新的对象实例非常简单。例如，下面是Factory模式的一个典型实现： [code] public static Credit getNewCredit() 　　{ 　　　return new Credit(); 　　} [/code] 　　改进后的代码使用clone()方法，如下所示： 　　 [code] private static Credit BaseCredit = new Credit(); 　　public static Credit getNewCredit() 　　{ 　　　return (Credit) BaseCredit.clone(); 　　} [/code] 　　上面的思路对于数组处理同样很有用。 　　1.2 使用非阻塞I/O 　　版本较低的JDK不支持非阻塞I/O API。为避免I/O阻塞，一些应用采用了创建大量线程的办法(在较好的情况下，会使用一个缓冲池)。这种技术可以在许多必须支持并发I/O流的应用中见到，如Web服务器、报价和拍卖应用等。然而，创建Java线程需要相当可观的开销。 　　JDK 1.4引入了非阻塞的I/O库(java.nio)。如果应用要求使用版本较早的JDK，在这里有一个支持非阻塞I/O的软件包。 　　1.3 慎用异常 　　异常对性能不利。抛出异常首先要创建一个新的对象。Throwable接口的构造函数调用名为fillInStackTrace()的本地(Native)方法，fillInStackTrace()方法检查堆栈，收集调用跟踪信息。只要有异常被抛出，VM就必须调整调用堆栈，因为在处理过程中创建了一个新的对象。 　　异常只能用于错误处理，不应该用来控制程序流程。 　　1.4 不要重复初始化变量 　　默认情况下，调用类的构造函数时， [...]]]></description>
			<content:encoded><![CDATA[<p>　　可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的，优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容：减小代码的体积，提高代码的运行效率。本文讨论的主要是如何提高代码的效率。</p>
<p>　　一、通用篇&nbsp;<br />
<span id="more-48"></span><br />
　　可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的，优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容：减小代码的体积，提高代码的运行效率。本文讨论的主要是如何提高代码的效率。</p>
<p>　　一、通用篇 </p>
<p>　　“通用篇”讨论的问题适合于大多数Java应用。</p>
<p>　　1.1 不用new关键词创建类的实例</p>
<p>　　用new关键词创建类的实例时，构造函数链中的所有构造函数都会被自动调用。但如果一个对象实现了Cloneable接口，我们可以调用它的clone()方法。clone()方法不会调用任何类构造函数。</p>
<p>　　在使用设计模式(Design Pattern)的场合，如果用Factory模式创建对象，则改用clone()方法创建新的对象实例非常简单。例如，下面是Factory模式的一个典型实现：</p>
<p>[code]    public static Credit getNewCredit()<br />
　　{</p>
<p>　　　return new Credit();</p>
<p>　　} </p>
<p>[/code]<br />
   　　改进后的代码使用clone()方法，如下所示：</p>
<p>　　    [code] private static Credit BaseCredit = new Credit();<br />
　　public static Credit getNewCredit() </p>
<p>　　{</p>
<p>　　　return (Credit) BaseCredit.clone();</p>
<p>　　} </p>
<p>[/code]<br />
   　　上面的思路对于数组处理同样很有用。</p>
<p>　　1.2 使用非阻塞I/O</p>
<p>　　版本较低的JDK不支持非阻塞I/O API。为避免I/O阻塞，一些应用采用了创建大量线程的办法(在较好的情况下，会使用一个缓冲池)。这种技术可以在许多必须支持并发I/O流的应用中见到，如Web服务器、报价和拍卖应用等。然而，创建Java线程需要相当可观的开销。</p>
<p>　　JDK 1.4引入了非阻塞的I/O库(java.nio)。如果应用要求使用版本较早的JDK，在这里有一个支持非阻塞I/O的软件包。</p>
<p>　　1.3 慎用异常</p>
<p>　　异常对性能不利。抛出异常首先要创建一个新的对象。Throwable接口的构造函数调用名为fillInStackTrace()的本地(Native)方法，fillInStackTrace()方法检查堆栈，收集调用跟踪信息。只要有异常被抛出，VM就必须调整调用堆栈，因为在处理过程中创建了一个新的对象。</p>
<p>　　异常只能用于错误处理，不应该用来控制程序流程。</p>
<p>　　1.4 不要重复初始化变量</p>
<p>　　默认情况下，调用类的构造函数时， Java会把变量初始化成确定的值：所有的对象被设置成null，整数变量(byte、short、int、long)设置成0，float和double变量设置成0.0，逻辑值设置成false。当一个类从另一个类派生时，这一点尤其应该注意，因为用new关键词创建一个对象时，构造函数链中的所有构造函数都会被自动调用。</p>
<p>　　1.5 尽量指定类的final修饰符</p>
<p>　　带有final修饰符的类是不可派生的。在Java核心API中，有许多应用final的例子，例如java.lang.String。为String类指定final防止了人们覆盖length()方法。</p>
<p>　　另外，如果指定一个类为final，则该类所有的方法都是final。Java编译器会寻找机会内联(inline)所有的final方法(这和具体的编译器实现有关)。此举能够使性能平均提高50%。</p>
<p>　　1.6 尽量使用局部变量</p>
<p>　　调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中，速度较快。其他变量，如静态变量、实例变量等，都在堆(Heap)中创建，速度较慢。另外，依赖于具体的编译器/JVM，局部变量还可能得到进一步优化。请参见《尽可能使用堆栈变量》。</p>
<p>　　1.7 乘法和除法</p>
<p>　　考虑下面的代码：</p>
<p>  　[code]　for (val = 0; val  0) </p>
<p>　　　{</p>
<p>　　　　try</p>
<p>　　　　{</p>
<p>　　　　　Thread.sleep(milliseconds);</p>
<p>　　　　}</p>
<p>　　　　// 暂停线程 </p>
<p>　　　　atch (Exception ex) {}</p>
<p>　　　}</p>
<p>　　　synchronized(lastOne.running) </p>
<p>　　　{</p>
<p>　　　　// 等待上一事件结束 </p>
<p>　　　　if (lastOne.time != time)</p>
<p>　　　　// 只处理最后一个事件 </p>
<p>　　　　　return; </p>
<p>　　　}</p>
<p>　　}}).start();</p>
<p>　　　}</p>
<p>　　　private static Hashtable e_queue = new Hashtable(); </p>
<p>　　　private static class LastOne </p>
<p>　　　{</p>
<p>　　public long time=0;</p>
<p>　　public Object running = new Object();</p>
<p>　　　}<br />
 [/code]</p>
<p>    3.6 使用双缓冲区</p>
<p>　　在屏幕之外的缓冲区绘图，完成后立即把整个图形显示出来。由于有两个缓冲区，所以程序可以来回切换。这样，我们可以用一个低优先级的线程负责画图，使得程序能够利用空闲的CPU时间执行其他任务。下面的伪代码片断示范了这种技术。</p>
<p>　　[code]Graphics myGraphics;<br />
　　Image myOffscreenImage = cr&#101;ateImage(size().width, size().height);</p>
<p>　　Graphics offscreenGraphics = myOffscreenImage.getGraphics(); </p>
<p>　　offscreenGraphics.drawImage(img, 50, 50, this);</p>
<p>　　myGraphics.drawImage(myOffscreenImage, 0, 0, this);<br />
 [/code]</p>
<p>    3.7 使用BufferedImage</p>
<p>　　Java JDK 1.2使用了一个软显示设备，使得文本在不同的平台上看起来相似。为实现这个功能，Java必须直接处理构成文字的像素。由于这种技术要在内存中大量地进行位复制操作，早期的JDK在使用这种技术时性能不佳。为解决这个问题而提出的Java标准实现了一种新的图形类型，即BufferedImage。</p>
<p>　　BufferedImage子类描述的图形带有一个可访问的图形数据缓冲区。一个BufferedImage包含一个ColorModel和一组光栅图形数据。这个类一般使用RGB(红、绿、蓝)颜色模型，但也可以处理灰度级图形。它的构造函数很简单，如下所示：</p>
<p>　　public BufferedImage (int width, int height, int imageType) </p>
<p>　　ImageType允许我们指定要缓冲的是什么类型的图形，比如5-位RGB、8-位RGB、灰度级等。</p>
<p>　　3.8 使用VolatileImage</p>
<p>　　许多硬件平台和它们的操作系统都提供基本的硬件加速支持。例如，硬件加速一般提供矩形填充功能，和利用CPU完成同一任务相比，硬件加速的效率更高。由于硬件加速分离了一部分工作，允许多个工作流并发进行，从而缓解了对CPU和系统总线的压力，使得应用能够运行得更快。利用VolatileImage可以创建硬件加速的图形以及管理图形的内容。由于它直接利用低层平台的能力，性能的改善程度主要取决于系统使用的图形适配器。VolatileImage的内容随时可能丢失，也即它是“不稳定的(volatile)”。因此，在使用图形之前，最好检查一下它的内容是否丢失。VolatileImage有两个能够检查内容是否丢失的方法：</p>
<p>　　public abstract int validate(GraphicsConfiguration gc);public abstract Boolean contentsLost(); </p>
<p>　　每次从VolatileImage对象复制内容或者写入VolatileImage时，应该调用validate()方法。contentsLost()方法告诉我们，自从最后一次validate()调用之后，图形的内容是否丢失。</p>
<p>　　虽然VolatileImage是一个抽象类，但不要从它这里派生子类。VolatileImage应该通过Component.cr&#101;ateVolatileImage()或者GraphicsConfiguration.cr&#101;ateCompatibleVolatileImage()方法创建。</p>
<p>　　3.9 使用Window Blitting</p>
<p>　　进行滚动操作时，所有可见的内容一般都要重画，从而导致大量不必要的重画工作。许多操作系统的图形子系统，包括WIN32 GDI、MacOS和X/Windows，都支持Window Blitting技术。Window Blitting技术直接在屏幕缓冲区中把图形移到新的位置，只重画新出现的区域。要在Swing应用中使用Window Blitting技术，设置方法如下：</p>
<p>　　setScrollMode(int mode); </p>
<p>　　在大多数应用中，使用这种技术能够提高滚动速度。只有在一种情形下，Window Blitting会导致性能降低，即应用在后台进行滚动操作。如果是用户在滚动一个应用，那么它总是在前台，无需担心任何负面影响。<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/48/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>java的学习网站收藏</title>
		<link>http://welog.org/blog/47</link>
		<comments>http://welog.org/blog/47#comments</comments>
		<pubDate>Mon, 14 Mar 2005 04:57:32 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e7%9a%84%e5%ad%a6%e4%b9%a0%e7%bd%91%e7%ab%99%e6%94%b6%e8%97%8f/</guid>
		<description><![CDATA[http://scjp.home.sohu.com/&#160;模拟试题&#160;http://scjp.myrice.com&#160;http://java.sun.com/products/jsp/faq.html&#160;http://www.sun.com.cn/education&#160;http://java.sun.com&#160; http://scjp.home.sohu.com/ 模拟试题 http://scjp.myrice.com http://java.sun.com/products/jsp/faq.html http://www.sun.com.cn/education http://java.sun.com http://java.sun.com/j2se/1.4/docs/api/index.html java官方网站的帮助 http://java.sun.com/j2se/1.4/docs/ http://java.sun.com/j2se/1.4/download.html#docs 可下载版本 http://java.sun.com/docs/windows_format.html winhelp格式的 http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html 这个是CodingConvension,就是编码规则。写Java代码，这个是最基本的，必看的资料。 http://61.140.76.55:8080/index.html 木棉数字校园网 http://www.cnkapok.com/course/c_bea3.html weblogic认证 http://www.bea.com.cn/channel/education/index.html http://www.servlets.com/docs/index.html http://my-wjl.scu.edu.cn/~xxuzi/ 极品SCJP http://my-wjl.scu.edu.cn/~xxuzi/ http://jdeveloper.myrice.com/ http://www.servlets.com/cos/index.html Java的上传Bean http://www.sawin.com.cn/dragon/manual/manualindex.htm http://61.144.28.245/hjc/web/doc/servlet-jsp/servlet-jsp4.html www.sybex.com www.mcp.com www.bbook.net www.bjbb.com www.medias.com.cn www.phei.com.cn http://www.justjavajobs.com/jjavj.nsf/autoj/ http://www.psclearn.com/ edge-china.com http://www.commission-junction.com/track/track.dll?AID=55509&#38;PID=499008&#38;URL=http%3A%2F%2Fwww%2Ejobsleuth%2Ecom%2Fregister%2Ecfm%3F%26ref%3D2261 http://suned.sun.com/USA/certification/java_news_faq.html http://suned.sun.com/USA/certification/progobj.html http://suned.sun.com/usa/cert_test.html http://www.java-cn.net/ http://dboy520.51.net/cgi-bin/javajia/ http://www.javalobby.org/ http://www.uni-koeln.de/themen/java/ http://www.javacats.com/US/articles/MultiThreading.html http://www.rstcorp.com/javasecurity/links.html http://www.playjavagames.com http://physicsweb.org/TIPTOP/VLAB/ http://www.eastjava.com/ http://rigauxf.waika9.com/ http://ww4.chatweb.net/javachat/ http://www.ajug.org/ [...]]]></description>
			<content:encoded><![CDATA[<p>http://scjp.home.sohu.com/&nbsp;模拟试题&nbsp;<br />http://scjp.myrice.com&nbsp;<br />http://java.sun.com/products/jsp/faq.html&nbsp;<br />http://www.sun.com.cn/education&nbsp;<br />http://java.sun.com&nbsp;</p>
<p><span id="more-47"></span><br />
http://scjp.home.sohu.com/ 模拟试题 </p>
<p>http://scjp.myrice.com</p>
<p>http://java.sun.com/products/jsp/faq.html</p>
<p>http://www.sun.com.cn/education</p>
<p>http://java.sun.com</p>
<p>http://java.sun.com/j2se/1.4/docs/api/index.html java官方网站的帮助 </p>
<p>http://java.sun.com/j2se/1.4/docs/</p>
<p>http://java.sun.com/j2se/1.4/download.html#docs 可下载版本<br />
http://java.sun.com/docs/windows_format.html winhelp格式的<br />
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html 这个是CodingConvension,就是编码规则。写Java代码，这个是最基本的，必看的资料。 </p>
<p>http://61.140.76.55:8080/index.html 木棉数字校园网<br />
http://www.cnkapok.com/course/c_bea3.html weblogic认证 </p>
<p>http://www.bea.com.cn/channel/education/index.html</p>
<p>http://www.servlets.com/docs/index.html</p>
<p>http://my-wjl.scu.edu.cn/~xxuzi/ 极品SCJP </p>
<p>http://my-wjl.scu.edu.cn/~xxuzi/</p>
<p>http://jdeveloper.myrice.com/</p>
<p>http://www.servlets.com/cos/index.html Java的上传Bean </p>
<p>http://www.sawin.com.cn/dragon/manual/manualindex.htm</p>
<p>http://61.144.28.245/hjc/web/doc/servlet-jsp/servlet-jsp4.html</p>
<p>www.sybex.com<br />
www.mcp.com<br />
www.bbook.net<br />
www.bjbb.com<br />
www.medias.com.cn<br />
www.phei.com.cn </p>
<p>http://www.justjavajobs.com/jjavj.nsf/autoj/</p>
<p>http://www.psclearn.com/</p>
<p>edge-china.com </p>
<p>http://www.commission-junction.com/track/track.dll?AID=55509&amp;PID=499008&amp;URL=http%3A%2F%2Fwww%2Ejobsleuth%2Ecom%2Fregister%2Ecfm%3F%26ref%3D2261</p>
<p>http://suned.sun.com/USA/certification/java_news_faq.html</p>
<p>http://suned.sun.com/USA/certification/progobj.html</p>
<p>http://suned.sun.com/usa/cert_test.html</p>
<p>http://www.java-cn.net/</p>
<p>http://dboy520.51.net/cgi-bin/javajia/</p>
<p>http://www.javalobby.org/</p>
<p>http://www.uni-koeln.de/themen/java/</p>
<p>http://www.javacats.com/US/articles/MultiThreading.html</p>
<p>http://www.rstcorp.com/javasecurity/links.html</p>
<p>http://www.playjavagames.com</p>
<p>http://physicsweb.org/TIPTOP/VLAB/</p>
<p>http://www.eastjava.com/</p>
<p>http://rigauxf.waika9.com/</p>
<p>http://ww4.chatweb.net/javachat/</p>
<p>http://www.ajug.org/</p>
<p>http://www.mste.uiuc.edu/java/</p>
<p>http://www.acm.org/crossroads/xrds4-2/serial.html</p>
<p>http://abc-java.com/</p>
<p>http://www.chatattack.net/</p>
<p>http://jazz.external.hp.com/src/java/</p>
<p>http://www.jerenajava.com/</p>
<p>http://www.central-java.com</p>
<p>http://www.acm.org/sigs/sigada/education/pages/ada_java.html</p>
<p>http://www.hoskinson.net/java/</p>
<p>http://java.areco.cz</p>
<p>http://www.javamud.org/</p>
<p>http://www.java.online.tr.tc/</p>
<p>http://www.engapplets.vt.edu/</p>
<p>国外： </p>
<p>http://sourceforge.net/projects/jfreechart/</p>
<p>http://www.titan-books.net/</p>
<p>http://www.jiveforum.com</p>
<p>http://www.theserverside.com</p>
<p>http://www.jdance.com</p>
<p>http://foundries.sourceforge.net/java</p>
<p>http://edocs.beasys.com/index.html</p>
<p>http://www.hostj2ee.com</p>
<p>http://www.hostjsp.com</p>
<p>http://www.onjava.com</p>
<p>http://ejbinfo.com</p>
<p>http://www.mgm-edv.de/ejbsig/ejbsig.html</p>
<p>http://www.uml-zone.com</p>
<p>http://www.jguru.com</p>
<p>http://www.ibm.com/developerworks</p>
<p>http://www.ibm.com/deveoperworks/cn ibm新推出一个websphere园地，内容也是很不错的。<br />
国内： </p>
<p>http://www.javaun&#105;on.com</p>
<p>http://www.javaun&#105;on.org</p>
<p>http://www.javaun&#105;on.net</p>
<p>http://www.huihoo.com</p>
<p>http://www.javadigest.net</p>
<p>http://drivejava.www2.cn4e.com</p>
<p>http://www.umlchina.com</p>
<p>http://www.drivejava.com</p>
<p>http://www.javaun&#105;on.org/ 中国Java阵线联盟<br />
http://www.javaun&#105;on.com Java阵线联盟(Java认证学习资料)<br />
http://www.chinajavaworld.com/ Java开发者(XML教程,模考试题1)<br />
http://javalovers.myetang.com Java爱好者<br />
http://www.cn-java.com 中文Java技术网站<br />
http://www.cnjavaclub.com/ 中国Java俱乐部<br />
http://www.52jsp.com/index.jsp 52JSP<br />
http://www.cnjsp.com/ 中国JSP网站<br />
http://www.jsp001.com/ JSP001<br />
http://www.china-jsp.net/ JSP新升代/也有ASP<br />
http://www.javaxforum.com javaxforum开发指南，SCJP认证资源<br />
http://www.pconline.com.cn/pcedu/empolder/wz/jsp/index.html pconline的一些教程<br />
http://adionline.myrice.com/ 阿迪在线<br />
http://216.239.33.100/search?q=cache:UiFo_1XVUN8C:members.aol.com/mnsjava/referate/AWTReferat/syntax.html+MenuShortcur&amp;hl=zh-CN //常用Java界面控件方法说明 </p>
<p>http://www.thejmaker.com/ Java控件<br />
http://www.jpowered.com/ Java控件 </p>
<p>http://www.javareport.com</p>
<p>http://www.javaworld.com</p>
<p>http://www.jiveforum.com/</p>
<p>http://www.theserverside.com/home/index.jsp</p>
<p>http://www.gcsuncenter.com/eforum.nsf/eForumFrameset?OpenFrameSet</p>
<p>http://www.esperanto.org.nz/jsp/jspfaq.html</p>
<p>http://www.zdnet.com/pcweek/stories/news/0,4153,410709,00.html</p>
<p>http://developer.netscape.com/viewsource/kuslich_jsp/kuslich_jsp.html</p>
<p>http://web2.java.sun.com/products/jsp/jsp-asp.html</p>
<p>开始http://developer.java.sun.com/<br />
学java怎能不去sun公司的站点？ </p>
<p>http://www.chinajavaworld.com/</p>
<p>站长的网站~~hoho~hoho~~ </p>
<p>http://www.5xsoft.com/index.html</p>
<p>http://www.mcsebraindumps.com/</p>
<p>http://www.mcsdun&#105;on.com/</p>
<p>http://www.helpwork.net/东西比较老</p>
<p>http://www.china-pub.com/computers/ebooknew/main.asp免费前三章</p>
<p>http://www.crackbest.com/工具解密、破解</p>
<p>http://www.nopayweb.com/computerbook/index.shtml英文</p>
<p>http://ebook.it-pc.com/</p>
<p>http://www.pediy.com/</p>
<p>http://www.tldp.org/LDP/lpg/node1.html</p>
<p>http://www.books24x7.com/home.asp</p>
<p>http://www.bestdown.com/</p>
<p>http://www.programfan.com/编程爱好者</p>
<p>http://automation.seu.edu.cn/auto/java/java_resource.htm</p>
<p>里面有Thinking in java 第一版（中文）、第二版（英文）以及很全的scjp认证资料 (最近可能有点问题） </p>
<p>http://person.longcity.net/home1/wenchund/index.htm</p>
<p>有JB5、JB6的破解码以及为数不多的java电子书籍 （也有问题） </p>
<p>http://www.java-cn.net/book/index.jsp</p>
<p>这里书比较多，包括《Thinking in java》、《java2编程详解》、《Jbuilder开发人员指南》、《Java程序设计技巧1001例》。。。还有一些简单程序的源代码 </p>
<p>http://www.mindview.net/</p>
<p>这是《Thinking in java》作者的主页，英文版的书也可以在这里下 </p>
<p>http://www.vvsoft.net/vvbkss/slctsingleline.asp?编程语言</p>
<p>这里的书很多，但是很乱，有时间的话自己找找吧 </p>
<p>http://www.cn-java.com/</p>
<p>http://www.jdon.com/index.html</p>
<p>http://www-900.ibm.com/developerworks</p>
<p>IBM关于java的站点 </p>
<p>http://www.csdn.net/develop/list_article.asp?bigclassid=6</p>
<p>CSDN文档中心的一些文章 </p>
<p>http://sourceforge.net/</p>
<p>http://drivejava.www2.cn4e.com/download/</p>
<p>java网校资源中心<br />
&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/47/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何提高自己的编程水平</title>
		<link>http://welog.org/blog/45</link>
		<comments>http://welog.org/blog/45#comments</comments>
		<pubDate>Sat, 12 Mar 2005 09:23:24 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e8%87%aa%e5%b7%b1%e7%9a%84%e7%bc%96%e7%a8%8b%e6%b0%b4%e5%b9%b3/</guid>
		<description><![CDATA[　　不知不觉做软件已经做了十年，有成功的喜悦，也有失败的痛苦，但总不敢称自己是高手，因为和我心目中真正的高手们比起来，还差的太远。世界上并没有成为高手的捷径，但一些基本原则是可以遵循的。&#160; 　　1.&#160;扎实的基础。数据结构、离散数学、编译原理，这些是所有计算机科学的基础，如果不掌握他们，很难写出高水平的程序。据我的观察，学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写，但当你发现写到一定程度很难再提高的时候，就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP，即使你再精通OOP，遇到一些基本算法的时候可能也会束手无策。&#160; 　　不知不觉做软件已经做了十年，有成功的喜悦，也有失败的痛苦，但总不敢称自己是高手，因为和我心目中真正的高手们比起来，还差的太远。世界上并没有成为高手的捷径，但一些基本原则是可以遵循的。 　　1. 扎实的基础。数据结构、离散数学、编译原理，这些是所有计算机科学的基础，如果不掌握他们，很难写出高水平的程序。据我的观察，学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写，但当你发现写到一定程度很难再提高的时候，就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP，即使你再精通OOP，遇到一些基本算法的时候可能也会束手无策。 　　2. 丰富的想象力。不要拘泥于固定的思维方式，遇到问题的时候要多想几种解决问题的方案，试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上，除计算机以外，多涉猎其他的学科，比如天文、物理、数学等等。另外，多看科幻电影也是一个很好的途径。 　　3. 最简单的是最好的。这也许是所有科学都遵循的一条准则，如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式：E=mc2。简单的方法更容易被人理解，更容易实现，也更容易维护。遇到问题时要优先考虑最简单的方案，只有简单方案不能满足要求时再考虑复杂的方案。 　　4. 不钻牛角尖。当你遇到障碍的时候，不妨暂时远离电脑，看看窗外的风景，听听轻音乐，和朋友聊聊天。当我遇到难题的时候会去玩游戏，而且是那种极暴力的打斗类游戏，当负责游戏的那部分大脑细胞极度亢奋的时候，负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候，我会发现那些难题现在竟然可以迎刃而解。 　　5. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程，即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念，一定要找到问题的答案，你才会付出精力去探索，即使最后没有得到答案，在过程中你也会学到很多东西。 　　6. 多与别人交流。三人行必有我师，也许在一次和别人不经意的谈话中，就可以迸出灵感的火花。多上上网，看看别人对同一问题的看法，会给你很大的启发。 　　7. 良好的编程风格。注意养成良好的习惯，代码的缩进编排，变量的命名规则要始终保持一致。大家都知道如何排除代码中错误，却往往忽视了对注释的排错。注释是程序的一个重要组成部分，它可以使你的代码更容易理解，而如果代码已经清楚地表达了你的思想，就不必再加注释了，如果注释和代码不一致，那就更加糟糕。 　　8. 韧性和毅力。这也许是&#8221;高手&#8221;和一般程序员最大的区别。A good programming is 99% sweat an&#100; 1% coffee。高手们并不是天才，他们是在无数个日日夜夜中磨练出来的。成功能给我们带来无比的喜悦，但过程却是无比的枯燥乏味。你不妨做个测试，找个10000以内的素数表，把它们全都抄下来，然后再检查三遍，如果能够不间断地完成这一工作，你就可以满足这一条。 　　这些是我这几年程序员生涯的一点体会，希望能够给大家有所帮助。 &#8212;&#8211;]]></description>
			<content:encoded><![CDATA[<p>　　不知不觉做软件已经做了十年，有成功的喜悦，也有失败的痛苦，但总不敢称自己是高手，因为和我心目中真正的高手们比起来，还差的太远。世界上并没有成为高手的捷径，但一些基本原则是可以遵循的。&nbsp;</p>
<p>　　1.&nbsp;扎实的基础。数据结构、离散数学、编译原理，这些是所有计算机科学的基础，如果不掌握他们，很难写出高水平的程序。据我的观察，学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写，但当你发现写到一定程度很难再提高的时候，就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP，即使你再精通OOP，遇到一些基本算法的时候可能也会束手无策。&nbsp;<br />
<span id="more-45"></span><br />
　　不知不觉做软件已经做了十年，有成功的喜悦，也有失败的痛苦，但总不敢称自己是高手，因为和我心目中真正的高手们比起来，还差的太远。世界上并没有成为高手的捷径，但一些基本原则是可以遵循的。 </p>
<p>　　1. 扎实的基础。数据结构、离散数学、编译原理，这些是所有计算机科学的基础，如果不掌握他们，很难写出高水平的程序。据我的观察，学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写，但当你发现写到一定程度很难再提高的时候，就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP，即使你再精通OOP，遇到一些基本算法的时候可能也会束手无策。 </p>
<p>　　2. 丰富的想象力。不要拘泥于固定的思维方式，遇到问题的时候要多想几种解决问题的方案，试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上，除计算机以外，多涉猎其他的学科，比如天文、物理、数学等等。另外，多看科幻电影也是一个很好的途径。 </p>
<p>　　3. 最简单的是最好的。这也许是所有科学都遵循的一条准则，如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式：E=mc2。简单的方法更容易被人理解，更容易实现，也更容易维护。遇到问题时要优先考虑最简单的方案，只有简单方案不能满足要求时再考虑复杂的方案。 </p>
<p>　　4. 不钻牛角尖。当你遇到障碍的时候，不妨暂时远离电脑，看看窗外的风景，听听轻音乐，和朋友聊聊天。当我遇到难题的时候会去玩游戏，而且是那种极暴力的打斗类游戏，当负责游戏的那部分大脑细胞极度亢奋的时候，负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候，我会发现那些难题现在竟然可以迎刃而解。 </p>
<p>　　5. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程，即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念，一定要找到问题的答案，你才会付出精力去探索，即使最后没有得到答案，在过程中你也会学到很多东西。 </p>
<p>　　6. 多与别人交流。三人行必有我师，也许在一次和别人不经意的谈话中，就可以迸出灵感的火花。多上上网，看看别人对同一问题的看法，会给你很大的启发。 </p>
<p>　　7. 良好的编程风格。注意养成良好的习惯，代码的缩进编排，变量的命名规则要始终保持一致。大家都知道如何排除代码中错误，却往往忽视了对注释的排错。注释是程序的一个重要组成部分，它可以使你的代码更容易理解，而如果代码已经清楚地表达了你的思想，就不必再加注释了，如果注释和代码不一致，那就更加糟糕。 </p>
<p>　　8. 韧性和毅力。这也许是&#8221;高手&#8221;和一般程序员最大的区别。A good programming is 99% sweat an&#100; 1% coffee。高手们并不是天才，他们是在无数个日日夜夜中磨练出来的。成功能给我们带来无比的喜悦，但过程却是无比的枯燥乏味。你不妨做个测试，找个10000以内的素数表，把它们全都抄下来，然后再检查三遍，如果能够不间断地完成这一工作，你就可以满足这一条。 </p>
<p>　　这些是我这几年程序员生涯的一点体会，希望能够给大家有所帮助。</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/45/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>好的JAVA风格(英译)</title>
		<link>http://welog.org/blog/44</link>
		<comments>http://welog.org/blog/44#comments</comments>
		<pubDate>Sat, 12 Mar 2005 09:21:38 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e5%a5%bd%e7%9a%84java%e9%a3%8e%e6%a0%bc%e8%8b%b1%e8%af%91/</guid>
		<description><![CDATA[介绍&#160;&#160;作为一个已经工作了很多年的软件开发者和咨询师，我看过大量形形色色的程序语言代码。其中有文雅的也有丑陋的，但是不幸的是，它们中大多数代码都是丑陋的。&#160;我希望能够说服你们，我的开发伙伴们，我们应该足够的重视我们的代码风格，尤其是那些在应用程序中提供用户接口和其他可视化部分的代码。在这两部分系列的第一部分，&#160;我会解释为什么我们应该关心我们的代码外观，然后阐述一些好的JAVA风格的一般要素。 &#160;为什么代码很重要尽管JAVA是用来写程序而不是散文，&#160;但它仍然被用来表达思想和观点的。而且，在调查中显示，那些思想和观点在实际中完成了很多事情。为编写出好的JAVA风格而担忧，似乎是在浪费时间，&#160;但实际上它对我们编写程序是很适宜的，因为它所要表达的思想和观点是格外清晰的。 介绍 作为一个已经工作了很多年的软件开发者和咨询师，我看过大量形形色色的程序语言代码。其中有文雅的也有丑陋的，但是不幸的是，它们中大多数代码都是丑陋的。 我希望能够说服你们，我的开发伙伴们，我们应该足够的重视我们的代码风格，尤其是那些在应用程序中提供用户接口和其他可视化部分的代码。在这两部分系列的第一部分， 我会解释为什么我们应该关心我们的代码外观，然后阐述一些好的JAVA风格的一般要素。 为什么代码很重要 尽管JAVA是用来写程序而不是散文， 但它仍然被用来表达思想和观点的。而且，在调查中显示，那些思想和观点在实际中完成了很多事情。为编写出好的JAVA风格而担忧，似乎是在浪费时间， 但实际上它对我们编写程序是很适宜的，因为它所要表达的思想和观点是格外清晰的。 这里提供一些理由，为什么要使用好的JAVA代码规范 一个软件产品的80%的生命期是在维护（maintenance）。 几乎没有一个软件在它的整个生命期里都是被它的作者来维护的。 使用好的风格提高了软件的可维护性。 如果源代码和软件产品是捆绑给客户的，作为产品的剩余部分，它应该有好的分包（well-packaged），足够清晰和专业的代码。 使用好的风格编写代码有以下几点好处： 提高了代码的可读性，持续性，和谐性。这些都能使代码能更容易的理解和维护。 使代码更容易被跟踪和调试，因为它是清晰的和持续的。 使你或另一个程序员在编写终止时更容易再继续下去，尤其在一个很长的时间后。 增加了代码预排（walkthroughs）的好处， 因为能让参入者更多的将焦点集中在代码正在做什么。 概要方针 使用好的JAVA风格并不困难， 但是它确实需要注意细节。下面是一些常用的概要指导方针： 使代码更清晰和更容易读 使代码更持续 使用显而易见的标识符名 逻辑地组织你的文件和类 每个文件只有一个类(这里不包括一些内部类) 使用80-90个字符的最大行宽 明智的使用空格来an&#100;/or其他分隔符 缩排上，使用空格（Space）来代替Tab Tabs vs. 空格 在编写代码时，“Tabs vs. 空格” 是一个严谨的观点。这里我并不是暗示只有一个正确的方法。我支持使用空格，因为它能保证我的代码在你的编辑器里和我的编辑器里看到的相同，反之矣然。如果你感觉使用空格来代替Tab&#8221;不是正确的&#8221;, 那么就使用Tab吧。 括号和缩进 在编写代码时，缩进风格(cf., Raymond, &#8220;Indent Style&#8221;)，或者放置括号(&#8220;{&#8221; 和 &#8220;}&#8221;) 和一些相关联的缩进代码，是另一个严谨的观点。象JAVA一样，有许多C风格的语言存在。我这里也不是暗示它们中哪一个更优先更好。在大多数本文的范例代码中，我使用了K&#38;R 风格，如果你不喜欢K&#38;R风格，那么就使用其他风格吧。 注释 在JAVA代码中你可以使用两种注释： Javadoc 注释 (也称为文档注释) 和执行注释。 [...]]]></description>
			<content:encoded><![CDATA[<p>介绍<br />&nbsp;&nbsp;作为一个已经工作了很多年的软件开发者和咨询师，我看过大量形形色色的程序语言代码。其中有文雅的也有丑陋的，但是不幸的是，它们中大多数代码都是丑陋的。&nbsp;我希望能够说服你们，我的开发伙伴们，我们应该足够的重视我们的代码风格，尤其是那些在应用程序中提供用户接口和其他可视化部分的代码。在这两部分系列的第一部分，&nbsp;我会解释为什么我们应该关心我们的代码外观，然后阐述一些好的JAVA风格的一般要素。</p>
<p>&nbsp;为什么代码很重要<br />尽管JAVA是用来写程序而不是散文，&nbsp;但它仍然被用来表达思想和观点的。而且，在调查中显示，那些思想和观点在实际中完成了很多事情。为编写出好的JAVA风格而担忧，似乎是在浪费时间，&nbsp;但实际上它对我们编写程序是很适宜的，因为它所要表达的思想和观点是格外清晰的。<br />
<span id="more-44"></span><br />
介绍<br />
  作为一个已经工作了很多年的软件开发者和咨询师，我看过大量形形色色的程序语言代码。其中有文雅的也有丑陋的，但是不幸的是，它们中大多数代码都是丑陋的。 我希望能够说服你们，我的开发伙伴们，我们应该足够的重视我们的代码风格，尤其是那些在应用程序中提供用户接口和其他可视化部分的代码。在这两部分系列的第一部分， 我会解释为什么我们应该关心我们的代码外观，然后阐述一些好的JAVA风格的一般要素。</p>
<p> 为什么代码很重要<br />
尽管JAVA是用来写程序而不是散文， 但它仍然被用来表达思想和观点的。而且，在调查中显示，那些思想和观点在实际中完成了很多事情。为编写出好的JAVA风格而担忧，似乎是在浪费时间， 但实际上它对我们编写程序是很适宜的，因为它所要表达的思想和观点是格外清晰的。</p>
<p>这里提供一些理由，为什么要使用好的JAVA代码规范</p>
<p>一个软件产品的80%的生命期是在维护（maintenance）。<br />
几乎没有一个软件在它的整个生命期里都是被它的作者来维护的。<br />
使用好的风格提高了软件的可维护性。<br />
如果源代码和软件产品是捆绑给客户的，作为产品的剩余部分，它应该有好的分包（well-packaged），足够清晰和专业的代码。</p>
<p>使用好的风格编写代码有以下几点好处：</p>
<p>提高了代码的可读性，持续性，和谐性。这些都能使代码能更容易的理解和维护。<br />
使代码更容易被跟踪和调试，因为它是清晰的和持续的。<br />
使你或另一个程序员在编写终止时更容易再继续下去，尤其在一个很长的时间后。<br />
增加了代码预排（walkthroughs）的好处， 因为能让参入者更多的将焦点集中在代码正在做什么。</p>
<p>概要方针<br />
使用好的JAVA风格并不困难， 但是它确实需要注意细节。下面是一些常用的概要指导方针：</p>
<p>使代码更清晰和更容易读<br />
使代码更持续<br />
使用显而易见的标识符名<br />
逻辑地组织你的文件和类<br />
每个文件只有一个类(这里不包括一些内部类)<br />
使用80-90个字符的最大行宽<br />
明智的使用空格来an&#100;/or其他分隔符<br />
缩排上，使用空格（Space）来代替Tab</p>
<p>Tabs vs. 空格<br />
在编写代码时，“Tabs vs. 空格” 是一个严谨的观点。这里我并不是暗示只有一个正确的方法。我支持使用空格，因为它能保证我的代码在你的编辑器里和我的编辑器里看到的相同，反之矣然。如果你感觉使用空格来代替Tab&#8221;不是正确的&#8221;, 那么就使用Tab吧。</p>
<p>括号和缩进<br />
在编写代码时，缩进风格(cf., Raymond, &#8220;Indent Style&#8221;)，或者放置括号(&#8220;{&#8221; 和 &#8220;}&#8221;) 和一些相关联的缩进代码，是另一个严谨的观点。象JAVA一样，有许多C风格的语言存在。我这里也不是暗示它们中哪一个更优先更好。在大多数本文的范例代码中，我使用了K&amp;R 风格，如果你不喜欢K&amp;R风格，那么就使用其他风格吧。</p>
<p>注释<br />
在JAVA代码中你可以使用两种注释： Javadoc 注释 (也称为文档注释) 和执行注释。 Javadoc注释能够被javadoc工具解压来制造一个API文档。执行注释是那些解释代码目的和方式的注释。在注释你的JAVA代码时请使用以下方针：</p>
<p>尽可能的使用Javadoc注释(在类和方法上，使之能最小化).<br />
多使用块注释，少使用//注释, 除非一些特殊的情况，如变量声明<br />
要记住：好注释是有帮助的，坏注释是麻烦的。</p>
<p>Example 1. Bad Comment Style</p>
<p> // applyRotAscii() &#8212; Apply ASCII ROT<br />
   private void applyRotAscii(){<br />
      try{<br />
         int rotLength = Integer.parseInt(rotationLengthField.getText().trim()); // get rot len<br />
         RotAscii cipher = new RotAscii(rotLength); // new cipher<br />
         textArea.setText(cipher.transform(textArea.getText())); // transform<br />
      }catch(Exception ex){<br />
         /* Show exception */<br />
         ExceptionDialog.show(this, &#8220;Invalid rotation length: &#8220;, ex); }<br />
   }</p>
<p>Example 2. Good Comment Style</p>
<p> /**<br />
    * Apply the ASCII rotation cipher to the user&#8217;s text. The length is retrieved<br />
    * from the rotation length field, an&#100; the user&#8217;s text is retrieved from the<br />
    * text area.<br />
    *<br />
    * @author Thornton Rose<br />
    */<br />
   private void applyRotAscii() {<br />
      int      rotLength = 0;  // rotation length<br />
      RotAscii cipher = null;  // ASCII rotation cipher</p>
<p>      try {<br />
         // Get rotation length field an&#100; convert to integer.</p>
<p>         rotLength = Integer.parseInt(rotationLengthField.getText().trim());</p>
<p>         // Create ASCII rotation cipher an&#100; transform the user&#8217;s text with it.</p>
<p>         cipher = new RotAscii(rotLength);<br />
         textArea.setText(cipher.transform(textArea.getText()));</p>
<p>       } catch(Exception ex) {<br />
         // Report the exception to the user.</p>
<p>         ExceptionDialog.show(this, &#8220;Invalid rotation length: &#8220;, ex);<br />
      }<br />
   }</p>
<p>块和语句<br />
使用下面的方针来编写块和语句：</p>
<p>一行只写一个语句<br />
控制语句总是使用{}这样的括号 (e.g., &#8216;if&#8217;).<br />
考虑在块的末尾使用一个注释 (e.g., } // end if), 尤其是长的或嵌套块<br />
在块的开头放置变量的声明语句<br />
总记得初始化变量<br />
如果你是个完美主义者，左对齐变量名<br />
在switch块里缩进case从句<br />
在操作符后留有空白<br />
在if, for, 或while语句中， 在括号“（”前留有空白<br />
在表达式中使用空白和插入语来增强可读性<br />
在for循环中的变量是个例外。 循环变量可能会在语句初始化部分被定义。 e.g., for (int i = 0; &#8230;).<br />
在块的末尾插入注释有助于你无意中跟踪到被删除的结尾括号“}”.</p>
<p>Example 3. Bad Block Style.</p>
<p>try{<br />
      for(int i=0;i</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/44/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JAVA规则开发篇</title>
		<link>http://welog.org/blog/43</link>
		<comments>http://welog.org/blog/43#comments</comments>
		<pubDate>Sat, 12 Mar 2005 09:19:24 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e8%a7%84%e5%88%99%e5%bc%80%e5%8f%91%e7%af%87/</guid>
		<description><![CDATA[JAVA规则开发篇&#160;&#160;&#160;本文介绍的JAVA规则的说明分为3个主要级别，本篇抛弃了平时开发中很少遇到的情况，那些用得比较少的以后再高级篇里面出现。并有六个有用的国际软件开发重要注意的有关String的问题，遵守了这些规则可以提高程序的效率、使代码又更好的可读性等。（1）&#160;如果有JDBC连接没有关掉的话，需要在&#34;finally&#34;方法中关掉如果数据库连接失败或者是没有释放连接，看上去无关紧要。但是其他的用户就需要用更长的时间等待连接，这样数据库利用效率就会下降。确保你的代码在任何情况下，包括出错或者程序异常终止的情况下都释放数据库连接。在&#34;finally&#34;方法中关掉连接，就可以确保这一点。错误示例： JAVA规则开发篇 本文介绍的JAVA规则的说明分为3个主要级别，本篇抛弃了平时开发中很少遇到的情况，那些用得比较少的以后再高级篇里面出现。并有六个有用的国际软件开发重要注意的有关String的问题，遵守了这些规则可以提高程序的效率、使代码又更好的可读性等。 （1） 如果有JDBC连接没有关掉的话，需要在&#8221;finally&#8221;方法中关掉 如果数据库连接失败或者是没有释放连接，看上去无关紧要。但是其他的用户就需要用更长的时间等待连接，这样数据库利用效率就会下降。确保你的代码在任何情况下，包括出错或者程序异常终止的情况下都释放数据库连接。在&#8221;finally&#8221;方法中关掉连接，就可以确保这一点。 错误示例： try { Statement stmt = con.cr&#101;ateStatement(); } catch(SQLException e) { e.printStackTrace(); } 正确示例： try { Statement stmt = con.cr&#101;ateStatement(); } finally { if (con != null &#38;&#38; !con.isClosed()) { con.close(); } } （2） 尽量避免使用&#8217;Thread.resume ()&#8217;, &#8216;Thread.stop ()&#8217;, &#8216;Thread.suspend ()&#8217;和 &#8216;Runtime.runFinalizersOnExit ()&#8217; 方法。 这些方法在平时的开发或者是教科书里面也有用到过，但是这些方法会导致四锁的倾向。一下有充足的资料来说明为什么不建议用上述方法。 参考：1.&#8221;java.lang.Thread&#8221; in the JDK API [...]]]></description>
			<content:encoded><![CDATA[<p>JAVA规则开发篇&nbsp;<br />&nbsp;&nbsp;本文介绍的JAVA规则的说明分为3个主要级别，本篇抛弃了平时开发中很少遇到的情况，那些用得比较少的以后再高级篇里面出现。并有六个有用的国际软件开发重要注意的有关String的问题，遵守了这些规则可以提高程序的效率、使代码又更好的可读性等。<br />（1）&nbsp;如果有JDBC连接没有关掉的话，需要在&quot;finally&quot;方法中关掉<br />如果数据库连接失败或者是没有释放连接，看上去无关紧要。但是其他的用户就需要用更长的时间等待连接，这样数据库利用效率就会下降。确保你的代码在任何情况下，包括出错或者程序异常终止的情况下都释放数据库连接。在&quot;finally&quot;方法中关掉连接，就可以确保这一点。<br />错误示例：<br />
<span id="more-43"></span><br />
JAVA规则开发篇<br />
  本文介绍的JAVA规则的说明分为3个主要级别，本篇抛弃了平时开发中很少遇到的情况，那些用得比较少的以后再高级篇里面出现。并有六个有用的国际软件开发重要注意的有关String的问题，遵守了这些规则可以提高程序的效率、使代码又更好的可读性等。<br />
（1） 如果有JDBC连接没有关掉的话，需要在&#8221;finally&#8221;方法中关掉<br />
如果数据库连接失败或者是没有释放连接，看上去无关紧要。但是其他的用户就需要用更长的时间等待连接，这样数据库利用效率就会下降。确保你的代码在任何情况下，包括出错或者程序异常终止的情况下都释放数据库连接。在&#8221;finally&#8221;方法中关掉连接，就可以确保这一点。<br />
错误示例：<br />
try {<br />
Statement stmt = con.cr&#101;ateStatement();<br />
} catch(SQLException e) {<br />
e.printStackTrace();<br />
}<br />
正确示例：<br />
try {<br />
Statement stmt = con.cr&#101;ateStatement();<br />
} finally {<br />
if (con != null &amp;&amp; !con.isClosed()) {<br />
con.close();<br />
}<br />
}</p>
<p>（2） 尽量避免使用&#8217;Thread.resume ()&#8217;, &#8216;Thread.stop ()&#8217;, &#8216;Thread.suspend ()&#8217;和 &#8216;Runtime.runFinalizersOnExit ()&#8217; 方法。<br />
这些方法在平时的开发或者是教科书里面也有用到过，但是这些方法会导致四锁的倾向。一下有充足的资料来说明为什么不建议用上述方法。<br />
参考：1.&#8221;java.lang.Thread&#8221; in the JDK API documentation<br />
2. http://java.sun.com/j2se/1.3/docs/guide/misc/threadPrimitiveDeprecation.html<br />
3.Paul Hyde: &#8220;Java Thread Programming&#8221;<br />
Sams, ISBN: 0-672-31585-8 pp. 270</p>
<p>（3） 在表示长整常量的时候，用L来代替l.<br />
因为l很容易和1混一起。<br />
错误示例：<br />
long temp = 23434l;<br />
正确示例：<br />
long temp = 23434L;<br />
参考：Ken Arnold, James Gosling: &#8220;The Java Programming Language Second Edition&#8221;Addison Wesley, 1997, pp.108</p>
<p>（4） 最好在jsp开头写一条注释<br />
在 jsp文件头上面写一条注释，这样可以帮助别人来理解你的代码。这条规则不仅适用于jsp，更是用于任何开发的文档。<br />
正确示例：</p>
<p>(5)明确的初始化一个构造类里面的所有的字段<br />
因为没有初始化的字段会是一个潜在的bug，所以最好初始化类里面的所有的字段。特别是静态的字段，最好在一开始就分配一个初始值<br />
错误示例：<br />
public class CSI {<br />
public CSI () {<br />
this (12);<br />
k = 0;<br />
}</p>
<p>public CSI (int val) {<br />
j = val;<br />
}</p>
<p>private int i = 5;<br />
private int j;<br />
private int k;<br />
}</p>
<p>正确示例：<br />
public class CSIFixed {<br />
public CSIFixed () {<br />
this (12);<br />
}</p>
<p>public CSIFixed (int val) {<br />
j = val;<br />
k = 0;<br />
}</p>
<p>private int i = 5;<br />
private int j;<br />
private int k;<br />
}<br />
参考：http://www.ambysoft.com/javaCodingStan&#100;ards.pdf</p>
<p>（6） 国际化开发建议：逻辑操作符不要再一个单个的字符的前面或者后面<br />
一个单个字符的前后不要用逻辑操作符，如果代码要在一个国家环境中运行的话。我们可以使用字符比较方法，这些方法使用统一字符比较标准来定义字符的属性的。<br />
错误示例：public class CLO {<br />
public boolean isLetter (char ch) {<br />
boolean _isLetter = ( ch &gt;= &#8216;a&#8217; &amp;&amp; ch = &#8216;A&#8217; &amp;&amp; ch </p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/43/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>面向对象的思维方法</title>
		<link>http://welog.org/blog/38</link>
		<comments>http://welog.org/blog/38#comments</comments>
		<pubDate>Fri, 11 Mar 2005 23:15:39 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e7%9a%84%e6%80%9d%e7%bb%b4%e6%96%b9%e6%b3%95/</guid>
		<description><![CDATA[我是从学习Java编程开始接触OOP(面向对象编程)，刚开始使用Java编写程序的时候感觉很别扭，因为我早以习惯用C来编写程序，很欣赏C的简洁性和高效性，喜欢C简练而表达能力丰富的风格，特别忍受不了Java运行起来慢吞吞的速度，相对冗长的代码，而且一个很简单的事情，要写好多类，一个类调用一个类，心里的抵触情绪很强。 我对Java的面向对象的特性琢磨良久，自认为有所领悟，也开始有意识的运用OOP风格来写程序，然而还是经常会觉得不知道应该怎样提炼类，面对一个具体的问题的时候，会觉得脑子里千头万绪的，不知道怎么下手，一不小心，又会回到原来的思路上去。 举个例子，要发广告邮件，广告邮件列表存在数据库里面。倘若用C来写的话，一般会这样思考，先把邮件内容读入，然后连接数据库，循环取邮件地址，调用本机的qmail的sendmail命令发送。 我是从学习Java编程开始接触OOP(面向对象编程)，刚开始使用Java编写程序的时候感觉很别扭，因为我早以习惯用C来编写程序，很欣赏C的简洁性和高效性，喜欢C简练而表达能力丰富的风格，特别忍受不了Java运行起来慢吞吞的速度，相对冗长的代码，而且一个很简单的事情，要写好多类，一个类调用一个类，心里的抵触情绪很强。 我对Java的面向对象的特性琢磨良久，自认为有所领悟，也开始有意识的运用OOP风格来写程序，然而还是经常会觉得不知道应该怎样提炼类，面对一个具体的问题的时候，会觉得脑子里千头万绪的，不知道怎么下手，一不小心，又会回到原来的思路上去。 举个例子，要发广告邮件，广告邮件列表存在数据库里面。倘若用C来写的话，一般会这样思考，先把邮件内容读入，然后连接数据库，循环取邮件地址，调用本机的qmail的sendmail命令发送。 然后考虑用Java来实现，既然是OOP，就不能什么代码都塞到main过程里面，于是就设计了三个类： 一个类是负责读取数据库，取邮件地址，调用qmail的sendmail命令发送； 一个类是读邮件内容，MIME编码成HTML格式的，再加上邮件头； 一个主类负责从命令读参数，处理命令行参数，调用发email的类。 把一件工作按照功能划分为3个模块分别处理，每个类完成一件模块任务。 仔细的分析一下，就会发现这样的设计完全是从程序员实现程序功能的角度来设计的，或者说，设计类的时候，是自低向上的，从机器的角度到现实世界的角度来分析问题的。因此在设计的时候，就已经把程序编程实现的细节都考虑进去了，企图从底层实现程序这样的出发点来达到满足现实世界的软件需求的目标。 这样的分析方法其实是不适用于Java这样面向对象的编程语言，因为，如果改用C语言，封装两个C函数，都会比Java实现起来轻松的多，逻辑上也清楚的多。 我觉得面向对象的精髓在于考虑问题的思路是从现实世界的人类思维习惯出发的，只要领会了这一点，就领会了面向对象的思维方法。 举一个非常简单的例子：假使现在需要写一个网页计数器，客户访问一次页面，网页计数器加1，计数器是这样来访问的 http://hostname/count.cgi?id=xxx 后台有一个数据库表，保存每个id（一个id对应一个被统计访问次数的页面）的计数器当前值，请求页面一次，对应id的计数器的字段加1(这里我们忽略并发更新数据库表，出现的表锁定的问题)。 如果按照一般从程序实现的角度来分析，我们会这样考虑：首先是从HTTP GET请求取到id，然后按照id查数据库表，获得某id对应的访问计数值，然后加1，更新数据库，最后向页面显示访问计数。 现在假设一个没有程序设计经验的人，他会怎样来思考这个问题的呢？他会提出什么样的需求呢？他很可能会这样想： 我需要有一个计数器，这个计数器应该有这样的功能，刷新一次页面，访问量就会加1，另外最好还有一个计数器清0的功能，当然计数器如果有一个可以设为任意值的功能的话，我就可以作弊了。 做为一个没有程序设计经验的人来说，他完全不会想到对数据库应该如何操作，对于HTTP变量该如何传递，他考虑问题的角度就是我有什么需求，我的业务逻辑是什么，软件应该有什么功能。 按照这样的思路(请注意，他的思路其实就是我们平时在生活中习惯的思维方式)，我们知道需要有一个计数器类 Counter，有一个必须的和两个可选的方法： getCount() // 取计数器值方法 resetCounter() // 计数器清0方法 setCount() // 设计数器为相应的值方法 把Counter类完整的定义如下： public class Counter { public int getCount(int id) {} public void resetCounter(int id) {} public void setCount(int id, int currentCount) {} [...]]]></description>
			<content:encoded><![CDATA[<p>我是从学习Java编程开始接触OOP(面向对象编程)，刚开始使用Java编写程序的时候感觉很别扭，因为我早以习惯用C来编写程序，很欣赏C的简洁性和高效性，喜欢C简练而表达能力丰富的风格，特别忍受不了Java运行起来慢吞吞的速度，相对冗长的代码，而且一个很简单的事情，要写好多类，一个类调用一个类，心里的抵触情绪很强。</p>
<p>我对Java的面向对象的特性琢磨良久，自认为有所领悟，也开始有意识的运用OOP风格来写程序，然而还是经常会觉得不知道应该怎样提炼类，面对一个具体的问题的时候，会觉得脑子里千头万绪的，不知道怎么下手，一不小心，又会回到原来的思路上去。</p>
<p>举个例子，要发广告邮件，广告邮件列表存在数据库里面。倘若用C来写的话，一般会这样思考，先把邮件内容读入，然后连接数据库，循环取邮件地址，调用本机的qmail的sendmail命令发送。<br />
<span id="more-38"></span><br />
我是从学习Java编程开始接触OOP(面向对象编程)，刚开始使用Java编写程序的时候感觉很别扭，因为我早以习惯用C来编写程序，很欣赏C的简洁性和高效性，喜欢C简练而表达能力丰富的风格，特别忍受不了Java运行起来慢吞吞的速度，相对冗长的代码，而且一个很简单的事情，要写好多类，一个类调用一个类，心里的抵触情绪很强。</p>
<p>我对Java的面向对象的特性琢磨良久，自认为有所领悟，也开始有意识的运用OOP风格来写程序，然而还是经常会觉得不知道应该怎样提炼类，面对一个具体的问题的时候，会觉得脑子里千头万绪的，不知道怎么下手，一不小心，又会回到原来的思路上去。</p>
<p>举个例子，要发广告邮件，广告邮件列表存在数据库里面。倘若用C来写的话，一般会这样思考，先把邮件内容读入，然后连接数据库，循环取邮件地址，调用本机的qmail的sendmail命令发送。</p>
<p>然后考虑用Java来实现，既然是OOP，就不能什么代码都塞到main过程里面，于是就设计了三个类：</p>
<p>一个类是负责读取数据库，取邮件地址，调用qmail的sendmail命令发送；<br />
一个类是读邮件内容，MIME编码成HTML格式的，再加上邮件头；<br />
一个主类负责从命令读参数，处理命令行参数，调用发email的类。</p>
<p>把一件工作按照功能划分为3个模块分别处理，每个类完成一件模块任务。</p>
<p>仔细的分析一下，就会发现这样的设计完全是从程序员实现程序功能的角度来设计的，或者说，设计类的时候，是自低向上的，从机器的角度到现实世界的角度来分析问题的。因此在设计的时候，就已经把程序编程实现的细节都考虑进去了，企图从底层实现程序这样的出发点来达到满足现实世界的软件需求的目标。</p>
<p>这样的分析方法其实是不适用于Java这样面向对象的编程语言，因为，如果改用C语言，封装两个C函数，都会比Java实现起来轻松的多，逻辑上也清楚的多。</p>
<p>我觉得面向对象的精髓在于考虑问题的思路是从现实世界的人类思维习惯出发的，只要领会了这一点，就领会了面向对象的思维方法。</p>
<p>举一个非常简单的例子：假使现在需要写一个网页计数器，客户访问一次页面，网页计数器加1，计数器是这样来访问的</p>
<p>http://hostname/count.cgi?id=xxx</p>
<p>后台有一个数据库表，保存每个id（一个id对应一个被统计访问次数的页面）的计数器当前值，请求页面一次，对应id的计数器的字段加1(这里我们忽略并发更新数据库表，出现的表锁定的问题)。</p>
<p>如果按照一般从程序实现的角度来分析，我们会这样考虑：首先是从HTTP GET请求取到id，然后按照id查数据库表，获得某id对应的访问计数值，然后加1，更新数据库，最后向页面显示访问计数。</p>
<p>现在假设一个没有程序设计经验的人，他会怎样来思考这个问题的呢？他会提出什么样的需求呢？他很可能会这样想：</p>
<p>我需要有一个计数器，这个计数器应该有这样的功能，刷新一次页面，访问量就会加1，另外最好还有一个计数器清0的功能，当然计数器如果有一个可以设为任意值的功能的话，我就可以作弊了。</p>
<p>做为一个没有程序设计经验的人来说，他完全不会想到对数据库应该如何操作，对于HTTP变量该如何传递，他考虑问题的角度就是我有什么需求，我的业务逻辑是什么，软件应该有什么功能。</p>
<p>按照这样的思路(请注意，他的思路其实就是我们平时在生活中习惯的思维方式)，我们知道需要有一个计数器类 Counter，有一个必须的和两个可选的方法：</p>
<p>getCount()   // 取计数器值方法<br />
resetCounter()   // 计数器清0方法<br />
setCount()   // 设计数器为相应的值方法</p>
<p>把Counter类完整的定义如下：</p>
<p>public class Counter {<br />
  public int getCount(int id) {}<br />
  public void resetCounter(int id) {}<br />
  public void setCount(int id, int currentCount) {}<br />
}</p>
<p>解决问题的框架已经有了，来看一下如何使用Counter。 在count.cgi里面调用Counter来计数，程序片断如下：</p>
<p>  //  这里从HTTP环境里面取id值<br />
   &#8230;<br />
  Counter myCounter = new Counter();  // 获得计数器<br />
  int currentCount = myCounter.getCount(id);  // 从计数器中取计数<br />
  //  这里向客户浏览器输出<br />
   &#8230;</p>
<p>程序的框架全都写好了，剩下的就是实现Counter类方法里面具体的代码了，此时才去考虑具体的程序语言实现的细节，比如，在getCount()方法里面访问数据库，更新计数值。</p>
<p>从上面的例子中看到，面向对象的思维方法其实就是我们在现实生活中习惯的思维方式，是从人类考虑问题的角度出发，把人类解决问题的思维方式逐步翻译成程序能够理解的思维方式的过程，在这个翻译的过程中，软件也就逐步被设计好了。</p>
<p>在运用面向对象的思维方法进行软件设计的过程中，最容易犯的错误就是开始分析的时候，就想到了程序代码实现的细节，因此封装的类完全是基于程序实现逻辑，而不是基于解决问题的业务逻辑。</p>
<p>学习JDBC编程的经典错误问法是：“我怎样封装对数据库的sel&#101;ct操作？”</p>
<p>面向对象的设计是基于解决业务问题的设计，而不是基于具体编程技术的设计。我不会去封装sel&#101;ct语句的，我只封装解决问题的业务逻辑，对数据库的读取是在业务逻辑的编码实现阶段才去考虑的问题。</p>
<p>回过头看上面那个发广告邮件的例子，应该如何应用面向对象的思维方法呢？</p>
<p>对于一个邮件来说，有邮件头，邮件体，和邮件地址这三个属性，发送邮件，需要一个发送的方法，另外还需要一个能把所有邮件地址列出来的方法。所以应该如下设计：</p>
<p>类JunkMail</p>
<p>属性：<br />
  head<br />
  body<br />
  address<br />
方法：<br />
  sendMail()    // 发送邮件<br />
  listAllMail() // 列邮件地址</p>
<p>用Java来表示：</p>
<p>public class JunkMail {<br />
  private String head;<br />
  private String body;<br />
  private String address;<br />
  public JunkMain() {   // 默认的类构造器<br />
     // 从外部配置文件读邮件头和邮件体<br />
     this.head=&#8230;;<br />
     this.body=&#8230;;<br />
  }</p>
<p>  public static boolean sendMail(String address) {<br />
     //  调用qmail，发送email<br />
  }</p>
<p>  public static Collection listAllMail() {<br />
     //  访问数据库，返回一个邮件地址集合<br />
  }<br />
}</p>
<p>当把JunkMail设计好了以后，再调用JunkMail类完成邮件的发送，将是非常轻松的事情。</p>
<p>如果说传统的面向过程的编程是符合机器运行指令的流程的话，那么面向对象的思维方法就是符合现实生活中人类解决问题的思维过程。</p>
<p>在面向对象的软件分析和设计的时候，要提醒自己，不要一上来就去想程序代码的实现，应该抛开具体编程语言的束缚，集中精力分析我们要实现的软件的业务逻辑，分析软件的业务流程，思考应该如何去描述和实现软件的业务。毕竟软件只是一个载体，业务才是我们真正要实现的目标。</p>
<p>但是在设计过程中，心里却往往在担心，如果我完全不去考虑程序代码的实现的话，那么我怎么知道我的设计一定合理呢？我怎么知道我设计的类、接口一定可以实现呢？所以经常可以看到的现象就是：</p>
<p>在设计过程中，虽然知道不能过早考虑代码实现，但是每设计一个类，一个接口，心里都要不知不觉的用自己熟悉的编程语言大概的评估一下，看看能否编出来，因此，一不小心，就会又回到按照程序功能实现的思路进行设计的老路上去了。</p>
<p>举个例子来说明，在做Web程序设计的时候，经常要遇到分页显示数据的情况。比如说需要把系统中所有的用户都列出来这样的功能。假设使用User类来表示用户，增加用户addUser()，删除用户del&#101;teUser()，查询所有用户listUsers()方法。而数据库中有一个user表，一条记录是一个用户的信息。下面考虑一下User类的方法的实现：</p>
<p>addUser()和del&#101;teUser()方法都好实现，就是对数据库增加记录和删除记录。对于listUsers()方法，其实就是对user表的sel&#101;ct，取出一个记录集。但是该怎么从listUsers()方法中得到所有用户的列表呢？</p>
<p>一个方法调用的返回值只有一个，没有多个，所以很多情况下采用的办法就是返回值定义为集合类型，比如Vector。这样就可以在listUsers()方法的具体代码实现的时候，从数据库依次取出一个个记录，插入到Vector里面来。在主程序里面，调用listUsers()方法可以返回一个Vector，然后再对Vector遍历操作，就可以得到用户列表了。</p>
<p>public class User {</p>
<p>  public static void addUser(&#8230;) {<br />
    //  数据库ins&#101;rt一条记录<br />
  }</p>
<p>  public static void del&#101;teUser(&#8230;) {<br />
    //  数据库del&#101;te一条记录<br />
  }</p>
<p>  public Vector listUsers(&#8230;) {<br />
    //  数据库sel&#101;ct结果放到一个集合里面<br />
  }<br />
}</p>
<p>这样的设计基本合理，但是仍然有点小问题。因为在设计的时候，就考虑到了用Java的集合类Vector来实现对不定长数据集的存放，因而违反了面向对象设计的一个原则：在设计的时候不应过早的考虑具体程序语言的实现。所以必须用抽象的方法，和具体实现无关的方法来表达业务逻辑。</p>
<p>我们知道，通常对具有集合特征的数据结构进行遍历通常可以使用next和hasNext方法，next实现取下一个用户，hasNext判断是否还有元素。 因此我们定义一个接口Iterator，这个接口中定义两个方法next和hasNext：</p>
<p>public interface Iterator {<br />
  public boolean hasNext() {}<br />
  public Object next()  {}<br />
}</p>
<p>而User类的listUses方法返回值改为Iterator接口的实现类:</p>
<p>public class User {<br />
  &#8230;<br />
  public Iterator listUsers() {<br />
  }<br />
  &#8230;<br />
}</p>
<p>这样就把User类的设计和具体的实现方法分离开了，因为此时任何实现了next()和hasNext()方法的类都可以做为listUsers的返回值，都可以被用来表达“用户列表”，而不仅仅可以使用Vector而已。比如，我可以用ArrayList来表达用户列表，因为ArrayList也实现了Iterator，当然我也可以自己专门写一个类来存放用户列表，只要实现next()和hasNext()方法就行了。</p>
<p>这样在具体的编写代码的时候，程序员具有了最大的灵活性，可以根据具体的情况，采用不同的编程方法来存放用户列表。特别是降低了程序的耦合度，提高了程序的可移植性。对于上面那个JunkMail的listAllMail()方法也同样应该改为接口类型。</p>
<p>然后，在主程序里面就这样来使用User类的listUsers方法：</p>
<p>User myUser = new User();<br />
Iterator iterator = myUser.listUsers();<br />
while (iterator.hasNext()) {<br />
  iterator.next();<br />
}</p>
<p>这样就可以完全不用考虑程序代码实现了，从高层次上把功能抽象出来，定义成为接口，同时又可以把系统设计的很合理，完全根据业务的需求来进行设计。</p>
<p>结语</p>
<p>通过上面的几个例子的设计说明，使用面向对象的思维方法，其实是一个把业务逻辑从具体的编程技术当中抽象出来的过程，而这个抽象的过程是自上而下的，非常符合人类的思维习惯，也就是先不考虑问题解决的细节，把问题的最主要的方面抽象成为一个简单的框架，集中精力思考如何解决主要矛盾，然后在解决问题的过程中，再把问题的细节分割成一个一个小问题，再专门去解决细节问题。</p>
<p>因而一旦牢牢的抓住了这一点，你就会发现在软件设计和开发过程中，你自己总是会不知不觉的运用面向对象的思维方法来设计和编写程序，并且程序的设计和开发也变得不再那么枯燥，而一个合理运用面向对象技术进行设计和架构的软件，更是具备了思维的艺术美感。</p>
<p>最后，愿面向对象的思维方法也能给您的程序设计之路带来创作的乐趣。</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/38/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JAVA/JSP学习系列之一</title>
		<link>http://welog.org/blog/36</link>
		<comments>http://welog.org/blog/36#comments</comments>
		<pubDate>Fri, 11 Mar 2005 22:41:03 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/javajsp%e5%ad%a6%e4%b9%a0%e7%b3%bb%e5%88%97%e4%b9%8b%e4%b8%80/</guid>
		<description><![CDATA[JAVA/JSP学习系列之一(JDK安装)&#160; 一、前言&#160; JAVA/JSP学习系列之一(JDK安装) 一、前言 　　 JDK(Java Development Kit )是一切java应用程序的基础，可以说，所有的java应用程序是构建在这个之上的。 它是一组API，也可以说是一些java Class。目前已经正式发布的最新版本是JDK1.3。考虑到我对linux不熟悉， 而且大多数都是在MS系统下，所以，在这里我用的是win2000。 二、下载，安装 　　 下载地址为JAVA官方站点：java.sun.com，国内也到处都是。 　　 Windows下，直接运行.exe文件，安装到一个目录，我这里用F:\jdk13作为例子。 三、配置 　　 桌面上选择“我的电脑”(右键) 　　 高级 　　 环境变量 在“系统变量”&#8212;&#62;“新建” ◎变量名输入：PATH ,变量值中输入： c:\j2sdk1.4.2_04\bin 然后确定。 　　 ◎变量名中输入：CLASSPATH，变量值中输入： .;C:\j2sdk1.4.2_04\LIB\dt.JAR;C:\j2sdk1.4.2_04\LIB\TOOLS.JAR;C:\JDK13\BIN;然后确定； 好了，配置完了，要重新启动计算机后，环境变量才能有效的。 四、测试 　　 (1)用文本编辑器写一个简单的java程序： public class HelloWorld { public static void main(String args[]) { System.out.println(&#8220;Hello World!&#8221;); } } 这个例子就是著名的“Hello World”，它的功能就是显示“Hello World”。 注意：该文件名称必须为“HelloWorld.java”，大小写也区分。细心的朋友会注意到就是和public class后的名字一样的。 [...]]]></description>
			<content:encoded><![CDATA[<p>JAVA/JSP学习系列之一(JDK安装)<br />&nbsp;</p>
<p>一、前言&nbsp;<br />
<span id="more-36"></span><br />
JAVA/JSP学习系列之一(JDK安装)</p>
<p>一、前言 </p>
<p>　　 JDK(Java Development Kit )是一切java应用程序的基础，可以说，所有的java应用程序是构建在这个之上的。<br />
它是一组API，也可以说是一些java Class。目前已经正式发布的最新版本是JDK1.3。考虑到我对linux不熟悉，<br />
而且大多数都是在MS系统下，所以，在这里我用的是win2000。 </p>
<p>二、下载，安装</p>
<p>　　 下载地址为JAVA官方站点：java.sun.com，国内也到处都是。</p>
<p>　　 Windows下，直接运行.exe文件，安装到一个目录，我这里用F:\jdk13作为例子。</p>
<p>三、配置</p>
<p>　　 桌面上选择“我的电脑”(右键)</p>
<p>　　 高级</p>
<p>　　 环境变量</p>
<p>     在“系统变量”&#8212;&gt;“新建”</p>
<p>       ◎变量名输入：PATH ,变量值中输入：</p>
<p>         c:\j2sdk1.4.2_04\bin 然后确定。</p>
<p>　　   ◎变量名中输入：CLASSPATH，变量值中输入：</p>
<p>         .;C:\j2sdk1.4.2_04\LIB\dt.JAR;C:\j2sdk1.4.2_04\LIB\TOOLS.JAR;C:\JDK13\BIN;然后确定；</p>
<p>好了，配置完了，要重新启动计算机后，环境变量才能有效的。</p>
<p>四、测试</p>
<p>　　 (1)用文本编辑器写一个简单的java程序：</p>
<p>public class HelloWorld {</p>
<p>public static void main(String args[]) {</p>
<p>System.out.println(&#8220;Hello World!&#8221;); </p>
<p>}</p>
<p>}</p>
<p>这个例子就是著名的“Hello World”，它的功能就是显示“Hello World”。</p>
<p>注意：该文件名称必须为“HelloWorld.java”，大小写也区分。细心的朋友会注意到就是和public class后的名字一样的。 </p>
<p>　　 (2)编译：在dos命令提示符下执行：（注意大小写） </p>
<p>javac HelloWorld.java </p>
<p>如果正常的话，将生成HelloWorld.class文件。</p>
<p>　　 (3)运行：在dos命令提示符下执行：（注意大小写） </p>
<p>java HelloWorld</p>
<p>这里有一个java初学者很有可能遇到的问题（不怕笑话，我也是）就是输入：</p>
<p>java HelloWorld.class</p>
<p>多了后面的.class，一定要注意，否则会出现下面的错误：</p>
<p>Exception in thread &#8220;main&#8221; java.lang.NoClassDefFoundError:HelloWorld/class</p>
<p>（本人猜想，是不是java翻译“.”的时候换成了“/”，或者是其他的本人不知道的原因）</p>
<p>好了，运行java HelloWorld应该会出现伟大的“Hello World”了。</p>
<p>到这一步，你已经成功配置好了JDK，可以开始漫长而痛苦(对于象我一样的，以前不懂java的朋友来说，可以用“痛苦”来形容，<br />
不理解的概念，不熟悉的java api&#8230;，不过，不要急，我将和大家一起慢慢入门，慢慢提高&#8230; &#8230;)的Java过程了。</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/36/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>java新手必读:Java学习的捷径</title>
		<link>http://welog.org/blog/35</link>
		<comments>http://welog.org/blog/35#comments</comments>
		<pubDate>Fri, 11 Mar 2005 22:38:35 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e6%96%b0%e6%89%8b%e5%bf%85%e8%af%bbjava%e5%ad%a6%e4%b9%a0%e7%9a%84%e6%8d%b7%e5%be%84/</guid>
		<description><![CDATA[1、jdk就是j2se,jdk1.1.8版本以后改成为j2se，下载地址：http://java.sun.com/j2se/downloads.html 　2、jre是java运行时环境（jdk1.3版本以后都包含jre）不用单独下载&#160; 3、设置环境变量&#160; 1、jdk就是j2se,jdk1.1.8版本以后改成为j2se，下载地址：http://java.sun.com/j2se/downloads.html 　2、jre是java运行时环境（jdk1.3版本以后都包含jre）不用单独下载 3、设置环境变量 　　安装了jdk以后，要配置环境变量 　　我的电脑-&#62;属性-&#62;高级-&#62;环境变量 　　添加以下环境变量(假定你的java安装在c:\jdk1.3） 　　java_home=c:\jdk1.3 　　classpath=.;c:\jdk1.3\lib\dt.jar;c:\jdk1.3\lib\tools.jar;（.;已经不能少，因为它代表当前路径) 　　path = c:\jdk1.3\bin 　　新开一个dos窗口，键入java和javac测试一下 　4、简单测试程序 　　代码: 　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 　　public class Test{ 　　　public static void main(String args[]){ 　　　　System.out.println(&#8220;Hello world!&#8221;); 　　 } 　　} 　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- 　　javac Test.java 　　java Test 　　5、java、j2ee、xml 开发常用工具介绍 　　j2sdk安装程序及Java API Doc 　　j2sdk-1_4_0 for win 　　j2sdk-1_4_0 for linux 　　j2sdk-1_4_0-doc 　　j2sdkee-1.3-doc 　　可去http://java.sun.com/j2ee/download.html下载 　　6、build工具 　　ant: Ant是一个基于java的跨平台的build工具。之所以Ant能跨平台，是因为Ant不再需要你编写shell命令，Ant的配置文件是基于XML的任务树，能让你运行各种各样的任务，任务的运行是由实现了特定任务接口的对象来完成的。 　　Http://jakarta.apache.org/ant 7、开发工具(IDE,集成开发环境) [...]]]></description>
			<content:encoded><![CDATA[<p>1、jdk就是j2se,jdk1.1.8版本以后改成为j2se，下载地址：http://java.sun.com/j2se/downloads.html</p>
<p>　2、jre是java运行时环境（jdk1.3版本以后都包含jre）不用单独下载&nbsp;</p>
<p>3、设置环境变量&nbsp;<br />
<span id="more-35"></span><br />
1、jdk就是j2se,jdk1.1.8版本以后改成为j2se，下载地址：http://java.sun.com/j2se/downloads.html</p>
<p>　2、jre是java运行时环境（jdk1.3版本以后都包含jre）不用单独下载 </p>
<p>3、设置环境变量 </p>
<p>　　安装了jdk以后，要配置环境变量<br />
　　我的电脑-&gt;属性-&gt;高级-&gt;环境变量<br />
　　添加以下环境变量(假定你的java安装在c:\jdk1.3） </p>
<p>　　java_home=c:\jdk1.3<br />
　　classpath=.;c:\jdk1.3\lib\dt.jar;c:\jdk1.3\lib\tools.jar;（.;已经不能少，因为它代表当前路径)<br />
　　path = c:\jdk1.3\bin </p>
<p>　　新开一个dos窗口，键入java和javac测试一下 </p>
<p>　4、简单测试程序 </p>
<p>　　代码:<br />
　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
　　public class Test{<br />
　　　public static void main(String args[]){<br />
　　　　System.out.println(&#8220;Hello world!&#8221;);<br />
　　 }<br />
　　}<br />
　　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
　　javac Test.java<br />
　　java Test </p>
<p>　　5、java、j2ee、xml 开发常用工具介绍 </p>
<p>　　j2sdk安装程序及Java API Doc<br />
　　j2sdk-1_4_0 for win<br />
　　j2sdk-1_4_0 for linux<br />
　　j2sdk-1_4_0-doc<br />
　　j2sdkee-1.3-doc </p>
<p>　　可去http://java.sun.com/j2ee/download.html下载 </p>
<p>　　6、build工具 </p>
<p>　　ant: Ant是一个基于java的跨平台的build工具。之所以Ant能跨平台，是因为Ant不再需要你编写shell命令，Ant的配置文件是基于XML的任务树，能让你运行各种各样的任务，任务的运行是由实现了特定任务接口的对象来完成的。<br />
　　Http://jakarta.apache.org/ant<br />
      7、开发工具(IDE,集成开发环境) </p>
<p>　　1、开发工具首选两种<br />
　　2、jbuilder&#8211;不用我多说了<br />
　　3、netBeans(下载地址www.netbeans.org,免费),forte也就是Sun EE和netbeans类似(估计是使用netbeans的原码改写而成), 但是netbeans(3.4版本)我觉得比较好用，可以和tomcat和cvs等集成，但是唯一不足的就是不能开发EJB,forte倒是可以，但是不能给出我们自己写的API(也就是.后出现的方法都是系统的，而我们自己写的方法出不来,faint) </p>
<p>　　其它开发工具 </p>
<p>　　Eclipse：号称未来能进行任何语言开发的IDE集大成者。 </p>
<p>　　Eclipse 是替代IBM Visual Age for Java（以下简称IVJ）的下一代IDE开发环境，但它未来的目标不仅仅是成为专门开发Java程序的IDE环境，根据Eclipse的体系结构，通过开发插件，它能扩展到任何语言的开发，甚至能成为图片绘制的工具。 </p>
<p>　　目前，Eclipse已经开始提供C语言开发的功能插件。更难能可贵的是，Eclipse是一个开放源代码的项目，任何人都可以下载Eclipse的源代码，并且在此基础上开发自己的功能插件。也就是说未来只要有人需要，就会有建立在Eclipse之上的COBOL，Perl，Python等语言的开发插件出现。 </p>
<p>　　同时可以通过开发新的插件扩展现有插件的功能，比如在现有的Java开发环境中加入Tomcat服务器插件。<br />
　　可以无限扩展，而且有着统一的外观，操作和系统资源管理，这也正是Eclipse的潜力所在。 </p>
<p>　　Http://www.eclipse.org </p>
<p>　　8、专业XML编辑工具 </p>
<p>　　XMLSPY：支持SOAP；支持Oracle XML Schema扩展；支持MSXML4等等；提供三种XML文档视图：结构显示和编辑，原码视图和支持CSS,XSL的预览。支持最新schema标准，可以根据schema校验XML文档可以将不同schema版本schema文档转换成符合最新schema规范的文档可以将DTDs, XML-Data, 或者BizTalk schemas 转换成W3C XML<br />
　　Schema从数据库连接（ADO,ODBC）中自动产生XML Schema可以直接访问数据库，提供数据库和XML之间的转换提供类似Office XP compatible的用户界面提供了更方便的用户界面定制方式.<br />
　　该编辑器支持所见即所得的文本编辑，基于form地数据输入，图形元素等，包括了一个图形化的XSLT产生器，可以针对schema或者DTD产生样式文档，最后应用于相应的XML文档。<br />
　　可去http://www.xmlspy.com/download.html 下载 </p>
<p>　　9、Framework </p>
<p>　　cocoon：XML　Framework<br />
　　Cocoon是采用100%纯Java编写的一个内容发布框架。<br />
　　Cocoon让你能采用W3C的最新技术(DOM、XML、XSL)来提供Web内容。<br />
　　新的Cocoon模式能将文档内容、样式、处理逻辑进行完全的分离，允许这三层能独立地设计、创建和管理， 从而减少了管理开销，加强了工作的重用性，减少了开发时间。<br />
　　来源：http://xml.apache.org/cocoon </p>
<p>　　9、struts：JSP　Framework </p>
<p>　　Struts是采用Java　Servlet/JavaServer　Pages技术，开发Web应用程序的开放源码的framework。<br />
　　采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。<br />
　　Struts有如下的主要功能：<br />
　　?包含一个controller　servlet，能将用户的请求发送到相应的Action对象。<br />
　　?JSP自由tag库，并且在controller　servlet中提供关联支持，帮助开发员创建交互式表单应用。<br />
　　?提供了一系列实用对象：XML处理、通过Java　reflection　APIs自动处理JavaBeans属性、国际化的提示和消息。<br />
　　来源：http://jakarta.apache.org/struts </p>
<p>　　10、turbine：Servlet　Framework </p>
<p>　　Turbine是基于servlet的framework，使有经验的Java开发员能快速地构建web应用。<br />
　　使用Turbine，可以通过创建使用特定服务来处理模板的Screen，<br />
　　来集成现有的模板技术（例如Velocity、Webmacro、Java Server Pages(JSP)、FreeMarker、cocoon）。 </p>
<p>  11、Demo </p>
<p>　　Java Pet Store: j2ee应用样例<br />
　　Java Pet Store是Java software蓝图规划的j2ee企业应用样例。<br />
　　它示范了怎样应用j2ee 平台的威力去构建一个灵活的、可伸展的跨平台企业应用。<br />
　　你可从java.sun.com/blueprints/enterprise/上获取最新的信息及学习资料，目前最新的版本是基于j2ee1.3的1.3_01。<br />
　　来源：http://java.sun.com/blueprints/enterprise/ </p>
<p>　　12、database </p>
<p>　　pointbase:进军企业级数据库市场的一只新军。<br />
　　PointBase 是第一个经过认证的100%纯Java数据库，可用于任何使用的Java 2 标准版虚拟机(JVM)的平台。<br />
　　来源：http://www.pointbase.com/ </p>
<p>　　13、j2ee server </p>
<p>　　1、j2sdkee1.3.1 referrence implement(j2ee参考实现）,sun的一个很好的学习j2ee的工具，记着，这是一个学习的工具，不是一个企业开发的工具，因为它的效率，安全等诸多问题，所以不能用它做项目或者产品。<br />
　　Http://java.sun.com/j2ee/download.html </p>
<p>　　2、weblogic和websphere 不用我多说了吧！<br />
　　3、sun one Application Server（前身是iplanet)&#8212;强烈推荐</p>
<p>　　里面是一个比较完成j2ee开发平台<br />
　　1、sun one studio 4 (前身forte)<br />
　　2、tomcat 4<br />
　　3、sun one application server 一个较棒的j2ee server<br />
　　4、和j2ee ri集成<br />
　　5、pointbase 是第一个经过认证的100%纯Java数据库 </p>
<p>　　这些工具可以够你开发任何java产品，最重要的是，它是一个免费的j2ee服务器，并且是免费的哦，比起jboss来说，不知道好到哪里去了哈哈，这下活该我发了！！！<br />
　　Http://wwws.sun.com/software/download/app_servers.html </p>
<p>　　14、UML工具<br />
　　1、Rational Rose 大哥大级别的UML设计工具，功能很强大。<br />
　　2、Together 可以认为是最好的java UML设计工具，可以根据类图同步生成java代码，设计完成后，系统的框架也出来了，爽啊！ </p>
<p>　　15、指导书籍 </p>
<p>　　1、入门书籍就不多介绍了<br />
　　看一些《从入门到精通》之类的书籍，《java编程思想》初学者不推荐<br />
　　2、java programmer推荐看《java编程思想》<br />
　　3、java designer推荐看《java与模式》(新书，中国人写的，不是翻译的，中   国人能写出这样有深意的IT书，很难得) </p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/35/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>java基础知识，转贴并学习</title>
		<link>http://welog.org/blog/34</link>
		<comments>http://welog.org/blog/34#comments</comments>
		<pubDate>Fri, 11 Mar 2005 22:36:31 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e5%9f%ba%e7%a1%80%e7%9f%a5%e8%af%86%ef%bc%8c%e8%bd%ac%e8%b4%b4%e5%b9%b6%e5%ad%a6%e4%b9%a0/</guid>
		<description><![CDATA[5、运行时异常与一般异常有何异同？异常表示程序运行过程中可能出现的非正常状态，运行时异常表示虚拟机的通常操作中可能遇到的异常，是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常，但是并不要求必须声明抛出未被捕获的运行时异常。6、说出Servlet的生命周期，并说出Servlet和CGI的区别。Servlet被服务器实例化后，容器运行其init方法，请求到达时运行其service方法，service方法自动派遣运行与请求对应的doXXX方法（doGet，doPost）等，当服务器决定将实例销毁的时候调用其destroy方法。与cgi的区别在于servlet处于服务器进程中，它通过多线程方式运行其service方法，一个实例可以服务于多个请求，并且其实例一般不会销毁，而CGI对每个请求都产生新的进程，服务完成后就销毁，所以效率上低于servlet。 5、运行时异常与一般异常有何异同？ 异常表示程序运行过程中可能出现的非正常状态，运行时异常表示虚拟机的通常操作中可能遇到的异常，是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常，但是并不要求必须声明抛出未被捕获的运行时异常。 6、说出Servlet的生命周期，并说出Servlet和CGI的区别。 Servlet被服务器实例化后，容器运行其init方法，请求到达时运行其service方法，service方法自动派遣运行与请求对应的doXXX方法（doGet，doPost）等，当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别在于servlet处于服务器进程中，它通过多线程方式运行其service方法，一个实例可以服务于多个请求，并且其实例一般不会销毁，而CGI对每个请求都产生新的进程，服务完成后就销毁，所以效率上低于servlet。 7、说出ArrayList,Vector, LinkedList的存储性能和特性 ArrayList和Vector都是使用数组方式存储数据，此数组元素数大于实际存储的数据以便增加和插入元素，它们都允许直接按序号索引元素，但是插入元素要涉及数组元素移动等内存操作，所以索引数据快而插入数据慢，Vector由于使用了synchronized方法（线程安全），通常性能上较ArrayList差，而LinkedList使用双向链表实现存储，按序号索引数据需要进行前向或后向遍历，但是插入数据时只需要记录本项的前后项即可，所以插入速度较快。 8、EJB是基于哪些技术实现的？并说出SessionBean和EntityBean的区别，StatefulBean和StatelessBean的区别。 EJB包括Session Bean、Entity Bean、Message Driven Bean，基于JNDI、RMI、JAT等技术实现。 SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作，例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。 对于客户机，SessionBean是一种非持久性对象，它实现某些在服务器上运行的业务逻辑。 对于客户机，EntityBean是一种持久性对象，它代表一个存储在持久性存储器中的实体的对象视图，或是一个由现有企业应用程序实现的实体。Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ，这两种的 Session Bean都可以将系统逻辑放在 method之中执行，不同的是 Stateful Session Bean 可以记录呼叫者的状态，因此通常来说，一个使用者会有一个相对应的 Stateful Session Bean 的实体。Stateless Session Bean 虽然也是逻辑组件，但是他却不负责记录使用者状态，也就是说当使用者呼叫 Stateless Session Bean 的时候，EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method。换言之，很可能数个使用者在执行某个 Stateless Session [...]]]></description>
			<content:encoded><![CDATA[<p>5、运行时异常与一般异常有何异同？<br />异常表示程序运行过程中可能出现的非正常状态，运行时异常表示虚拟机的通常操作中可能遇到的异常，是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常，但是并不要求必须声明抛出未被捕获的运行时异常。<br />6、说出Servlet的生命周期，并说出Servlet和CGI的区别。<br />Servlet被服务器实例化后，容器运行其init方法，请求到达时运行其service方法，service方法自动派遣运行与请求对应的doXXX方法（doGet，doPost）等，当服务器决定将实例销毁的时候调用其destroy方法。<br />与cgi的区别在于servlet处于服务器进程中，它通过多线程方式运行其service方法，一个实例可以服务于多个请求，并且其实例一般不会销毁，而CGI对每个请求都产生新的进程，服务完成后就销毁，所以效率上低于servlet。<br />
<span id="more-34"></span><br />
5、运行时异常与一般异常有何异同？<br />
异常表示程序运行过程中可能出现的非正常状态，运行时异常表示虚拟机的通常操作中可能遇到的异常，是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常，但是并不要求必须声明抛出未被捕获的运行时异常。<br />
6、说出Servlet的生命周期，并说出Servlet和CGI的区别。<br />
Servlet被服务器实例化后，容器运行其init方法，请求到达时运行其service方法，service方法自动派遣运行与请求对应的doXXX方法（doGet，doPost）等，当服务器决定将实例销毁的时候调用其destroy方法。<br />
与cgi的区别在于servlet处于服务器进程中，它通过多线程方式运行其service方法，一个实例可以服务于多个请求，并且其实例一般不会销毁，而CGI对每个请求都产生新的进程，服务完成后就销毁，所以效率上低于servlet。<br />
7、说出ArrayList,Vector, LinkedList的存储性能和特性<br />
ArrayList和Vector都是使用数组方式存储数据，此数组元素数大于实际存储的数据以便增加和插入元素，它们都允许直接按序号索引元素，但是插入元素要涉及数组元素移动等内存操作，所以索引数据快而插入数据慢，Vector由于使用了synchronized方法（线程安全），通常性能上较ArrayList差，而LinkedList使用双向链表实现存储，按序号索引数据需要进行前向或后向遍历，但是插入数据时只需要记录本项的前后项即可，所以插入速度较快。<br />
8、EJB是基于哪些技术实现的？并说出SessionBean和EntityBean的区别，StatefulBean和StatelessBean的区别。<br />
    EJB包括Session Bean、Entity Bean、Message Driven Bean，基于JNDI、RMI、JAT等技术实现。<br />
SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作，例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。<br />
对于客户机，SessionBean是一种非持久性对象，它实现某些在服务器上运行的业务逻辑。<br />
对于客户机，EntityBean是一种持久性对象，它代表一个存储在持久性存储器中的实体的对象视图，或是一个由现有企业应用程序实现的实体。Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ，这两种的 Session Bean都可以将系统逻辑放在 method之中执行，不同的是 Stateful Session Bean 可以记录呼叫者的状态，因此通常来说，一个使用者会有一个相对应的 Stateful Session Bean 的实体。Stateless Session Bean 虽然也是逻辑组件，但是他却不负责记录使用者状态，也就是说当使用者呼叫 Stateless Session Bean 的时候，EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method。换言之，很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时，会是同一个 Bean 的 Instance 在执行。从内存方面来看， Stateful Session Bean 与 Stateless Session Bean 比较， Stateful Session Bean 会消耗 J2EE Server 较多的内存，然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。<br />
20、EJB与JAVA BEAN的区别？<br />
Java Bean 是可复用的组件，对Java Bean并没有严格的规范，理论上讲，任何一个Java类都可以是一个Bean。但通常情况下，由于Java Bean是被容器所创建（如Tomcat）的，所以Java Bean应具有一个无参的构造器，另外，通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件，它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM，即分布式组件。它是基于Java的远程方法调用（RMI）技术的，所以EJB可以被远程访问（跨进程、跨计算机）。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中，EJB客户从不直接访问真正的EJB组件，而是通过其容器访问。EJB容器是EJB组件的代理，EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。</p>
<p>28、设计4个线程，其中两个线程每次对j增加1，另外两个线程对j每次减少1。写出程序。<br />
以下程序使用内部类实现线程，对j增减的时候没有考虑顺序问题。<br />
public class ThreadTest1{<br />
  private int j;<br />
  public static void main(String args[]){<br />
ThreadTest1 tt=new ThreadTest1();<br />
Inc inc=tt.new Inc();<br />
Dec dec=tt.new Dec();<br />
for(int i=0;i 0); // throws an AssertionError if a </p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/34/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java入门知识</title>
		<link>http://welog.org/blog/32</link>
		<comments>http://welog.org/blog/32#comments</comments>
		<pubDate>Fri, 11 Mar 2005 22:30:19 +0000</pubDate>
		<dc:creator>Airblue</dc:creator>
				<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://demo.thinkevolving.org/archives/java%e5%85%a5%e9%97%a8%e7%9f%a5%e8%af%86/</guid>
		<description><![CDATA[What&#160;is&#160;Java?&#160;Why&#160;Java?&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;大家学习Java有各自的理由，基本上Java是一个比较好的面向对象语言，api丰富&#160;&#160;&#160;是当前比较主流的编程语言，J2SE/J2ME/J2EE在各个开发领域都发展良好&#160;&#160;&#160;Java不会取代其他开发语言或开发平台，如c/c++/c#或Delphi/.NET&#160;&#160;&#160;没有最好的语言，只有某种应用场合下相对合适的语言&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; What is Java? Why Java? 大家学习Java有各自的理由，基本上Java是一个比较好的面向对象语言，api丰富 是当前比较主流的编程语言，J2SE/J2ME/J2EE在各个开发领域都发展良好 Java不会取代其他开发语言或开发平台，如c/c++/c#或Delphi/.NET 没有最好的语言，只有某种应用场合下相对合适的语言 JRE Java 2 Runtime Environment, Java 运行时环境 包括Java虚拟机(JVM),和必须的类库 它是运行Java程序和网页Applet的必备环境 它被包含在j2sdk中，也可以单独下载(约10M) 下载地址： http://java.sun.com/getjava/download.html JDK/SDK/J2SE Java 2 Software Development Kit, Stan&#100;ard Edtion 是开发Java的必备环境，包括编译器等工具和大量类库，一般IDE中也会自带 　下载地址：http://java.sun.com/j2se/downloads.html J2EE Java 2 Platform, Enterprise Edition 是Java在企业级应用的主要技术，也是目前Java最主要的应用场合 包括JAXP、JAXR、JAX-RPC、SAAJ、JAAS、JavaMail、JMS、JSF、JSP/Servlet等 开发J2EE,可以下载j2eesdk开发包，一般IDE中也会自带 相关链接：http://java.sun.com/j2ee J2ME Java 2 Platform, Macro Edition 是Java应用于嵌入式系统(如手机)的主要技术 相关链接：http://java.sun.com/j2me 开发方式 市面上的IDE(集成开发环境)可以极大的提高开发效率 但如果你初学Java,我们推荐用JDK+Editplus或UltraEdit 虽然简陋些,但却可以学的比较扎实 过早的依赖IDE只会让你对Java [...]]]></description>
			<content:encoded><![CDATA[<p>What&nbsp;is&nbsp;Java?&nbsp;Why&nbsp;Java?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;大家学习Java有各自的理由，基本上Java是一个比较好的面向对象语言，api丰富&nbsp;<br />&nbsp;&nbsp;是当前比较主流的编程语言，J2SE/J2ME/J2EE在各个开发领域都发展良好&nbsp;<br />&nbsp;&nbsp;Java不会取代其他开发语言或开发平台，如c/c++/c#或Delphi/.NET&nbsp;<br />&nbsp;&nbsp;没有最好的语言，只有某种应用场合下相对合适的语言&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span id="more-32"></span><br />
What is Java? Why Java?<br />
  大家学习Java有各自的理由，基本上Java是一个比较好的面向对象语言，api丰富<br />
  是当前比较主流的编程语言，J2SE/J2ME/J2EE在各个开发领域都发展良好<br />
  Java不会取代其他开发语言或开发平台，如c/c++/c#或Delphi/.NET<br />
  没有最好的语言，只有某种应用场合下相对合适的语言                                                                      </p>
<p>JRE<br />
  Java 2 Runtime Environment, Java 运行时环境<br />
  包括Java虚拟机(JVM),和必须的类库<br />
  它是运行Java程序和网页Applet的必备环境<br />
  它被包含在j2sdk中，也可以单独下载(约10M)<br />
  下载地址： http://java.sun.com/getjava/download.html </p>
<p>JDK/SDK/J2SE<br />
  Java 2 Software Development Kit, Stan&#100;ard Edtion<br />
  是开发Java的必备环境，包括编译器等工具和大量类库，一般IDE中也会自带<br />
　下载地址：http://java.sun.com/j2se/downloads.html </p>
<p>J2EE<br />
  Java 2 Platform, Enterprise Edition<br />
  是Java在企业级应用的主要技术，也是目前Java最主要的应用场合<br />
  包括JAXP、JAXR、JAX-RPC、SAAJ、JAAS、JavaMail、JMS、JSF、JSP/Servlet等<br />
  开发J2EE,可以下载j2eesdk开发包，一般IDE中也会自带<br />
  相关链接：http://java.sun.com/j2ee </p>
<p>J2ME<br />
  Java 2 Platform, Macro Edition<br />
  是Java应用于嵌入式系统(如手机)的主要技术<br />
  相关链接：http://java.sun.com/j2me </p>
<p>开发方式<br />
  市面上的IDE(集成开发环境)可以极大的提高开发效率<br />
  但如果你初学Java,我们推荐用JDK+Editplus或UltraEdit<br />
  虽然简陋些,但却可以学的比较扎实<br />
  过早的依赖IDE只会让你对Java API蜻蜓点水,一知半解.<br />
  甚至都未能掌握Java的基本语法<br />
  掌握了扎实的基础后，再选择一款IDE进行开发是很容易的 </p>
<p>  学习或使用Java,多查javadoc是很重要的(推荐使用JavaDOCHelper,类似MSDN的界面)<br />
  版上的不少问题,其实稍微查查便不是问题 </p>
<p>设置环境变量<br />
　安装了JDK以后，要配置环境变量<br />
  Windows 2000<br />
   　我的电脑-&gt;属性-&gt;高级-&gt;环境变量<br />
   　添加以下环境变量(假定你的java安装在d:\Java\j2sdk1.4.2）<br />
        变量名     值                  说明<br />
        JAVA_HOME  d:\Java\j2sdk1.4.2<br />
        CLASSPATH  .                   .表示当前目录，即搜索当前目录<br />
        PATH       &#8230;;%JAVA_HOME%\bin  &#8230;表示原来的PATH值<br />
     新开一个dos窗口，键入java和javac测试一下<br />
  Linux<br />
     以下为RedHat,bash为例 不同发行版略有不同,环境变量的设置详见Unix/Linux版<br />
     修改用户目录下的.bash_profile,如vi ~/.bash_profile<br />
     JAVA_HOME=/usr/local/java/j2sdk1.4.2<br />
     CLASSPATH=.<br />
     PATH=$PATH:$JAVA_HOME/bin<br />
     export JAVA_HOME CLASSPATH<br />
     重新登陆，使这个设置生效，在终端输入java  javac测试一下 </p>
<p>简单测试程序<br />
　代码:&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
　　public class Test{<br />
　　　public static void main(String[] args){<br />
　　　　System.out.println(&#8220;Hello world!&#8221;);<br />
　　 }<br />
　　}<br />
　&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
  用记事本等工具编写，保存成Test.java<br />
  注意，<br />
    如果你的windows设置&#8217;不显示已知扩展名&#8217;的话，<br />
    很有可能被保存成Test.java.txt<br />
  然后在命令行工具，cd到Test.java所在目录，执行<br />
　　 javac Test.java<br />
　　 java Test </p>
<p>关于Java的学习<br />
  入门Java，请看一本系统讲解Java的书籍<br />
  这方面的书，市面上很多，大同小异，无所谓挑那本<br />
  但尽量挑本面向高版本的讲解语法的书，千万不要选《VJ++入门到精通》之类<br />
  推荐的书籍如 Java in a Nutshell, Java大学教程，Java核心技术，Java编程思想等<br />
  系统学习Java的基本知识之余，一定要勤实践，自己给自己一些动手机会<br />
  适度的记住一些常用api,不要过分依赖IDE的代码提示 </p>
<p>开发工具                                                                                                                 </p>
<p> JBuilder<br />
    业界最主流的IDE之一，是Java开发工具的大哥大<br />
    目前最新版本 JBuilder 2005<br />
    无论开发j2se、j2me、j2ee还是xml/webservice，都是一把利器<br />
    Foundation Edition可免费下载，但功能较少<br />
    网上有流传企业版，为避免不必要的麻烦，请谨慎使用(尤其在公司)<br />
    相关链接：http://www.borlan&#100;.com/products/jbuilder </p>
<p> Eclipse<br />
    新兴的Java IDE，免费、开放源代码、跨平台、功能强大、运行速度快<br />
    同时可以通过开发新的插件扩展现有插件的功能，比如在现有的Java开发环境中加<br />
    入Tomcat服务器插件。<br />
    相关链接：http://www.eclipse.org </p>
<p> Ant<br />
    它是流行的Java build工具，&#8221;Everyone should use ant&#8221;<br />
    Ant不是一个IDE,但却可以做很多IDE的事,如编译/打包/部署/单元测试/CVS等<br />
    对于中等规模以上的项目，必定依赖很多类库和拥有复杂的包结构<br />
    使用Ant处理这些是极佳的选择<br />
    相关链接：http://ant.apache.org </p>
<p>JSP<br />
 Java Server Page,一种Java Web开发的一项技术,和javascript没有什么关系. </p>
<p>Servlet<br />
 先于jsp出现的动态网页技术,类似cgi,但使用多线程处理请求. </p>
<p>jsp/servlet与Java的关系<br />
 Servlet只是继承了HttpServlet的Java类,而jsp最终会被编译成Servlet并执行<br />
 很多在开发web时遇到的问题,其实和jsp/servlet本身没什么关系，而是普通的Java问<br />
题。 一个合格的jsp/servlet程序员首先应该是合格的Java程序员。<br />
 建议在学习和使用jsp/servlet前,先打下坚实的Java基础 </p>
<p> 以下问题不属于jsp/servlet范畴<br />
  .常用API的使用,诸如&#8221;如何把int变为String&#8221; &#8220;如何得到当前时间&#8221; &#8220;如何创建线程&#8221;<br />
  .JDBC的使用和相关注意事项,诸如&#8221;如何访问MySQL&#8221; &#8220;为什么我插入数据是乱码&#8221;<br />
  .其他J2EE技术的使用,诸如&#8221;如何使用JavaMail&#8221; &#8220;如何访问EJB&#8221; </p>
<p>推荐书籍<br />
 如果可能,请阅读一本系统的书籍来指导你学习这项技术<br />
 笔者只看过&#8221;JSP高级编程&#8221;(机械工业2001年,廖若雪)<br />
 其他大型出版社出版的书都应该不错,如Wrox,O&#8217;Reilly,或者国内出版社<br />
 挑书的时候最好选用jsp 1.2,servlet 2.3规范以上的书籍 </p>
<p>Tomcat<br />
 这个是个开放源代码的JSP/Servlet服务器,是jsp/servlet的参考实现,适合初学<br />
 主页http://jakarta.apache.org/tomcat/<br />
 Tomcat 4.1和Tomcat 5都是目前稳定版本,后者支持最新的jsp/servlet标准<br />
 建议下载zip版的,解压缩,运行bin/starup.bat即可出现服务器启动的界面<br />
 如果启动失败,请确定本机的Java环境已正确,参见JAVA_HOME和PATH的配置 </p>
<p> conf目录里是服务器的配置,webapps是部署网站的目录 </p>
<p>自己写的java class应该放哪里<br />
 假设你的index.jsp的位置是X:/test/index.jsp,  X:/test是你的项目目录<br />
 Test.class的位置应该是X:/test/WEB-INF/classes/Test.class </p>
<p>项目中的lib应该放哪里<br />
 X:/test/WEB-INF/lib/myLib.jar </p>
<p>如何写个servlet<br />
package testservlet; </p>
<p>import java.io.*;<br />
import javax.servlet.ServletException;<br />
import javax.servlet.http.*; </p>
<p>public class FooServlet extends HttpServlet {<br />
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)<br />
   throws ServletException, IOException {<br />
      resp.getWriter().println(&#8220;hi, I&#8217;m a servlet&#8221;);<br />
 }<br />
}<br />
编译这个类  javac -classpath servlet-api.jar FooServlet.java<br />
其中这个jar可以从tomcat-5.0.19\common\lib\servlet-api.jar获得<br />
编译后的class放在 X:/test/WEB-INF/classes/testservlet/FooServlet.class<br />
其中testservlet你包的名字,应尽量写package,避免莫名其妙的麻烦 </p>
<p>编译X:/test/WEB-INF/web.xml,修改为 </p>
<p>    test<br />
    testservlet.FooServlet </p>
<p>    test<br />
    /foobar </p>
<p>把这个程序部署到服务器上,比如把X:/test/*复制到tomcat/webapps/test/*<br />
打开浏览器访问 http://localhost:8080/test/foobar,顺利的话会看到一行文字 </p>
<p>jsp显示的是乱码怎么办<br />
 jsp的中文问题以下几种  //不包括jdbc读写数据库的中文问题<br />
 1. jsp中写了中文如
<p>中文</p>
<p>, 却不能显示<br />
       解决方法 在jsp第一行加入                                                                                         </p>
<p> 2. 表单中写了一个中文,如<br />
    却不能接受到<br />
       解决方法 在jsp或servlet中处理参数前加一条<br />
          request.setCharacterEncoding(&#8220;GB2312&#8243;); </p>
<p> 3. http://host/a.jsp?name=中文  这样的url中的name取不到<br />
       解决方法 应该使用java.net.URLEncoder类把这个字符串转成ascii                                                      </p>
<p>怎样实现文件上传<br />
 常见的Java文件上传api有<br />
    Jakarta Commons FileUpload http://jakarta.apache.org/commons/fileupload/<br />
    COS<br />
    SmartUpload<br />
 下载相关的文件,里面一般有demo的 </p>
<p>JSTL和EL<br />
 分别是Java Stan&#100;ard Tag Lib和Expression Language<br />
 可以大大简化常规的jsp开发,并让页面更简洁,而不是充斥着scriptlet</p>
<p>&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://welog.org/blog/32/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
