<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-翠湖月色-随笔分类-杂录</title><link>http://www.blogjava.net/matthew2006/category/14018.html</link><description>No Buddha tree at all,And bright mirror nor.Now nothing at all,How dusts any more ? </description><language>zh-cn</language><lastBuildDate>Thu, 27 Dec 2007 13:54:25 GMT</lastBuildDate><pubDate>Thu, 27 Dec 2007 13:54:25 GMT</pubDate><ttl>60</ttl><item><title>个人电脑防御黑客-转</title><link>http://www.blogjava.net/matthew2006/archive/2007/12/27/170979.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Thu, 27 Dec 2007 11:51:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2007/12/27/170979.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/170979.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2007/12/27/170979.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/170979.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/170979.html</trackback:ping><description><![CDATA[大家好，现在攻击个人电脑的木马软件很多，功能比以前多了，使用也比以前方便多了，所以危害也比以前大了，奇奇发现很多人中了木马自己还不知道，我就写了
一点心得，给大家作个参考。要想使自己的电脑安全，就好扎好自己的篱笆，看好自己的门，电脑也有自己的门，我们叫它--- <br />
<br />
端口 <br />
你
在网络上冲浪，别人和你聊天，你发电子邮件，必须要有共同的协议，这个协议就是TCP/IP协议，任何网络软件的通讯都基于TCP/IP协议。如果把互联
网比作公路网，电脑就是路边的房屋，房屋要有门你才可以进出，TCP/IP协议规定，电脑可以有256乘以256扇门，即从0到65535号&#8220;门&#8221;，
TCP/IP协议把它叫作&#8220;端口&#8221;。当你发电子邮件的时候，E-mail软件把信件送到了邮件服务器的25号端口，当你收信的时候，E-mail软件是从
邮件服务器的110号端口这扇门进去取信的，你现在看到的我写的东西，是进入服务器的80端口。新安装好的个人电脑打开的端口号是139端口，你上网的时
候，就是通过这个端口与外界联系的。黑客不是神仙，他也是--- <br />
<br />
<br />
通过端口进入你的电脑 <br />
黑客是怎么样进入你的电脑的
呢？当然也是基于TCP/IP协议通过某个端口进入你的个人电脑的。如果你的电脑设置了共享目录，那么黑客就可以通过139端口进入你的电脑，注意！
WINDOWS有个缺陷，就算你的共享目录设置了多少长的密码，几秒钟时间就可以进入你的电脑，所以，你最好不要设置共享目录，不允许别人浏览你的电脑上
的资料。除了139端口以外，如果没有别的端口是开放的，黑客就不能入侵你的个人电脑。那么黑客是怎么样才会进到你的电脑中来的呢？答案是通过特洛伊木马
进入你的电脑。如果你不小心运行了特洛伊木马，你的电脑的某个端口就会开放，黑客就通过这个端口进入你的电脑。举个例子，有一种典型的木马软件，叫做
netspy.exe。如果你不小心运行了netspy.exe，那么它就会告诉WINDOWS，以后每次开电脑的时候都要运行它，然后，
netspy.exe又在你的电脑上开了一扇&#8220;门&#8221;，&#8220;门&#8221;的编号是7306端口，如果黑客知道你的7306端口是开放的话，就可以用软件偷偷进入到你的
电脑中来了。特洛伊木马本身就是为了入侵个人电脑而做的，藏在电脑中和工作的时候是很隐蔽的，它的运行和黑客的入侵，不会在电脑的屏幕上显示出任何痕迹。
WINDOWS本身没有监视网络的软件，所以不借助软件，是不知道特洛伊木马的存在和黑客的入侵。接下来，奇奇就让你利用软件---- <br />
<br />
<br />
如何发现自己电脑中的木马 <br />
奇
奇再以netspy.exe为例，现在知道netspy.exe打开了电脑的7306端口，要想知道自己的电脑是不是中netspy.exe，只要敲敲
7306这扇&#8220;门&#8221;就可以了。你先打开C:\WINDOWS\WINIPCFG.EXE程序，找到自己的IP地址（比如你的IP地址是
10.10.10.10），然后打开浏览器，在浏览器的地址栏中输入
http://10.10.10.10:7306/，如果浏览器告诉你连接不上，说明你的电脑的7306端口没有开放，如果浏览器能连接上，并且在浏览器
中跳出一排英文字，说的netspy.exe的版本，那么你的电脑中了netspy.exe木马了。这是最简单最直接的办法，但是需要你知道各种木马所开
放的端口，奇奇已知下列端口是木马开放的：7306、7307、7308、12345、12345、12346、31337、6680、8111、
9910。但是就算你熟悉了所有已知木马端口，也还是不能完全防范这些木马的，我们需要---- <br />
<br />
<br />
进一步查找木马 <br />
奇
奇曾经做了一个试验：我知道netspy.exe开放的是7306端口，于是我用工具把它的端口修改了，经过修改的木马开放的是7777端口了，你现在再
用老办法是找不到netspy.exe木马了。于是我们可以用扫描自己的电脑的办法看看电脑有多少端口开放着，并且再分析这些开放的端口。 <br />
前
面讲了电脑的端口是从0到65535为止，其中139端口是正常的，首先找个端口扫描器，奇奇推荐&#8220;代理猎手&#8221;，你上网以后，找到自己的IP地址，现在请
关闭正在运行的网络软件，因为可能开放的端口会被误认为是木马的端口，然后让代理猎手对0到65535端口扫描，如果除了139端口以外还有其他的端口开
放，那么很可能是木马造成的。 <br />
排除了139端口以外的端口，你可以进一步分析了，用浏览器进入这个端口看看，它会做出什么样的反映，你可以根据情况再判断了。 <br />
扫描这么多端口是不是很累，需要半个多小时傻等了，现在好了，我汉化了一个线程监视器，Tcpview.exe可以看电脑有什么端口是开放的，除了139端口以外，还有别的端口开放，你就可以分析了，如果判定自己的电脑中了木马，那么，你就得---- <br />
<br />
<br />
在硬盘上删除木马 <br />
最简单的办法当然是用杀毒软件删除木马了，Netvrv病毒防护墙可以帮你删除netspy.exe和bo.exe木马，但是不能删除netbus木马。 <br />
下面就netbus木马为例讲讲删除的经过。 <br />
简单介绍一下netbus木马，netbus木马的客户端有两种，开放的都是12345端口，一种以Mring.exe为代表（472,576字节），一种以SysEdit.exe为代表（494,592字节）。 <br />
Mring.exe
一旦被运行以后，Mring.exe就告诉WINDOWS，每次启动就将它运行，WINDOWS将它放在了注册表中，你可以打开C:\WINDOWS\
REGEDIT.EXE进入HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\
CurrentVersion\Run找到Mring.exe然后删除这个健值，你再到WINDOWS中找到Mring.exe删除。注意了，
Mring.exe可能会被黑客改变名字，字节长度也被改变了，但是在注册表中的位置不会改变，你可以到注册表的这个位置去找。 <br />
另外，你可以找包含有&#8220;netbus&#8221;字符的可执行文件，再看字节的长度，我查过了，WINDOWS和其他的一些应用软件没有包含&#8220;netbus&#8221;字符的，被你找到的文件多半就是Mring.exe的变种。 <br />
SysEdit.exe
被运行以后，并不加到WINDOWS的注册表中，也不会自动挂到其他程序中，于是有人认为这是傻瓜木马，奇奇倒认为这是最最可恶、最最阴险的木马。别的木
马被加到了注册表中，你就有痕迹可查了，就连专家们认为最最凶恶的BO木马也可以轻而易举地被我们从注册表中删除。 <br />
而SysEdit.exe
要是挂在其他的软件中，只要你不碰这个软件，SysEdit.exe也就不发作，一旦运行了被安装SysEdit.exe的程序，SysEdit.exe
也同时启动了。奇奇在自己的电脑中做了这样一个实验，将SysEdit.exe和C:\WINDOWS\SYSTEM\Abcwin.exe捆绑起来，
Abcwin.exe是智能ABC输入法，当我开启电脑到上网，只要没有打开智能ABC输入法打字聊天，SysEdit.exe也就没有被运行，你就不能
进入我的12345端口，如果我什么时候想打字了，一旦启动智能ABC输入法（Abcwin.exe），那么捆绑在Abcwin.exe上的
SysEdit.exe也同时被运行了，我的12345端口被打开，别人就可以黑到我的电脑中来了。同样道理，SysEdit.exe可以被捆绑到网络传
呼机、信箱工具等网络工具上，甚至可以捆绑到拨号工具上，电脑中的几百的程序中，你知道会在什么地方发现它吗？所以我说这是最最阴险的木马，让人防不胜
防。 <br />
有的时候知道自己中了netbus木马，特别是SysEdit.exe，能发现12345端口被开放，并且可以用netbus客户端软件
进入自己的电脑，却不知道木马在什么地方。这时候，你可以检视内存，请打开C:\WINDOWS\DRWATSON.EXE，然后对内存拍照，查看&#8220;高级
视图&#8221;中的&#8220;任务&#8221;标签，&#8220;程序&#8221;栏中列出的就是正在运行的程序，要是发现可疑的程序，再看&#8220;路径&#8221;栏，找到这个程序，分析它，你就知道是不是木马了。
SysEdit.exe虽然可以隐藏在其他的程序后面，但是在C:\WINDOWS\DRWATSON.EXE中还是暴露了。 <br />
<br />
好了，
来回顾一下，要知道自己的电脑中有没有木马，只要看看有没有可疑端口被开放，用代理猎手、Tcpview.exe都可以知道。要查找木马，一是可以到注册
表的指定位置去找，二是可以查找包含相应的可执行程序，比如，被开放的端口是7306，就找包含&#8220;netspy&#8221;的可执行程序，三是检视内存，看有没有可
以的程序在内存中。 <br />
你的电脑上的木马，来源有两种，一种是你自己不小心，运行了包含有木马的程序，另一种情况是，&#8220;网友&#8221;送给你&#8220;好玩&#8221;的程序。所以，你以后要小心了，要弄清楚了是什么程序再运行，安装容易排除难呀。?nbsp; <br />
排除了木马以后，你就可以监视端口，---- <br />
<br />
<br />
悄悄等待黑客的来临 <br />
介
绍两个软件，首先是NukeNabber，它是端口监视器，你告诉NukeNabber需要监视7306端口，如果有人接触这个端口，就马上报警。在别人
看来，你的电脑的7306端口是开放的，但是7306不是由netspy控制了，当NukeNabber发现有人接触7306端口或者试图进入你的
7306端口，马上报警，你可以在NukeNabber上面看到黑客对你做了些什么，黑客的IP地址是哪里，然后，你就可以反过来攻击黑客了。当
NukeNabber监视139的时候，你就可以知道谁在用IP炸弹炸你。另外提一下，如果NukeNabber告诉你不能监视7306端口，说这个端口
已经被占用了，那么说明你的电脑中存在netspy了。第二个软件就是Tcpview.exe，这个软件是线程监视器，你可以用它来查看有多少端口是开放
的，谁在和你通讯，对方的IP地址和端口分别是什么。 <br />
<br />
<br />
<img src ="http://www.blogjava.net/matthew2006/aggbug/170979.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2007-12-27 19:51 <a href="http://www.blogjava.net/matthew2006/archive/2007/12/27/170979.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>申请GMail邮件服务</title><link>http://www.blogjava.net/matthew2006/archive/2007/11/23/162505.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Thu, 22 Nov 2007 17:20:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2007/11/23/162505.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/162505.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2007/11/23/162505.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/162505.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/162505.html</trackback:ping><description><![CDATA[今天开通了GMail邮箱，Google的品质应该毋庸质疑，以后就作为主打Email地址了。如果你想申请，可以给我留言并附上现在的邮件地址，我会发邀请函给你。（貌视已经不需要邀请了） <br />
&#160;&#160; 下面贴几篇关于GMail使用的文章：<br />
&#160;&#160;&#160; <br />
&#160;&#160;&#160; GMail是一个伟大的服务，使用完全免费，容量巨大，有优秀的过滤功能和反垃圾邮件功能，支持加密访问，支持POP接收和邮件转发，还有许多其他强大的功能，我这里就介绍一下我在使用GMail系统的时候总结的一些常用的使用经验和技巧。（转自：月光博客）
<p>　　<strong>安全的连接Gmail</strong></p>
<p>　　通过SSL加密方式 <a target="_blank" href="https://gmail.google.com/">https://gmail.google.com</a> 来登陆Gmail，可以防止黑客通过Sniffer等工具窃听用户名和密码。</p>
<p>　　<strong>通过手机访问GMail</strong></p>
<p>　　GMail一个非常优秀的特点就是支持绝大多数手机登录，这使得人们可以随时随地访问自己的Gmail信箱，访问的时候只需在手机的网络浏览器中输入 <a target="_blank" href="http://m.gmail.com/">http://m.gmail.com</a> 即可。Gmail手机版提供了很多很&#8220;酷&#8221;的功能：界面能够针对手机自动进行优化，支持访问照片、Word文档和 .pdf文件等附件，如果Gmail联系人录入了电话号码，还可以通过电话答复邮件。Google对于访问GMail的手机不收取任何费用。</p>
<p>　　<strong>无穷多的GMail邮件地址</strong></p>
<p>
一个GMail的邮件地址，其实相当于无穷多的GMail邮件地址，通过邮件地址中的＋号可以衍生各种邮件地址，比如对于发送到username+
list1@gmail.com的邮件，系统会自动将邮件转到username@gmail.com，因此只要在GMail用户名后面加上一个&#8220;+&#8221;号，
就可以衍生出无穷多的邮件地址，这些地址都是你自己的。</p>
<p>　　使用这种邮件地址的好处是非常便于过滤，只需要针对不同的邮件地址就可以方便地分拣出不同用处的邮件。比如可以设置一个label1标签，通过过滤器的设置，所有发送到username+list1@gmail.com的邮件，会自动贴上label1标签。</p>
<p>　　<strong>发送邮件不包含IP地址</strong></p>
<p>　　通过Outlook客户端发送GMail邮件，发送的邮件内会记录发信人的IP地址，但是如果登录WEB上的GMail网站，然后在上面发送邮件，则发送的邮件中就不包含自己的IP地址。因此，如果你想隐藏IP发送邮件，就登录GMail吧。</p>
<p>　　<strong>通过RSS阅读器查看Gmail新邮件</strong></p>
<p>　　在RSS阅读器中，选择Feed地址为<a target="_blank" href="https://mail.google.com/mail/feed/atom">https://mail.google.com/mail/feed/atom</a>，然后提交您的Gmail地址和密码，即可在RSS中查看新的GMail邮件。</p>
<p>　　<strong>通过POP方式下载GMail邮件</strong></p>
<p>
以Outlook Express的客户端为例：首先在Gmail帐户中启用POP。然后打开Outlook
Express。单击&#8220;工具&#8221;菜单，然后选择&#8220;帐户...&#8221;。单击&#8220;添加&#8221;，然后单击&#8220;邮件...&#8221;，在&#8220;显示名：&#8221;字段中输入姓名，然后单击&#8220;下一
步&#8221;。在&#8220;电子邮件地址：&#8221;字段中输入 Gmail
电子邮件地址(username@gmail.com)，然后单击&#8220;下一步&#8221;。在&#8220;接收邮件（POP3, IMAP 或
HTTP）服务器：&#8221;字段中输入&#8220;pop.gmail.com&#8221;。在&#8220;发送邮件服务器
(SMTP)：&#8221;字段中输入&#8220;smtp.gmail.com&#8221;。单击&#8220;下一步&#8221;。在&#8220;帐户名：&#8221;字段中输入 Gmail
用户名（包括&#8220;@gmail.com&#8221;）。在&#8220;密码：&#8221;字段中输入 Gmail
密码，然后单击&#8220;下一步&#8221;。单击&#8220;完成&#8221;。突出显示&#8220;帐户&#8221;下的&#8220;pop.gmail.com&#8221;，并单击&#8220;属性&#8221;。单击&#8220;高级&#8221;标签。选中&#8220;发送邮件
（SMTP）&#8221;下&#8220;此服务器要求安全连接（SSL）&#8221;旁边的复选框。在&#8220;发送邮件（SMTP）：&#8221;字段中输入&#8220;465&#8221;。选中&#8220;接收邮件（POP3）&#8221;下
&#8220;此服务器要求安全连接 （SSL）&#8221;旁边的复选框。此端口将更改为
995。单击&#8220;服务器&#8221;标签，然后选中&#8220;我的服务器要求身份验证&#8221;旁边的复选框。单击&#8220;确定&#8221;。</p>
<p>　　后记：我上网有十年时间，使用了无数个
不同的邮件信箱，但自从我接触到了GMail后，我立刻放弃了其他所有的邮件而转用GMail，GMail是我所见到的史无前例的邮箱服务，我还没有发现
任何其他邮箱有能力超越GMail。可以说，几乎没有一个免费邮件敢同时支持POP接收和邮件转发，而GMail就敢这么做，何等气魄啊。单凭这一点，我
就可以立刻放弃其他的邮件而转用GMail。</p>
<p>另一篇：</p>
<p><font color="#000ff"><strong>高深Gmail技巧（有些技术难度）</strong></font></p>
<p>1，GMail Acc的id是不计算 "." 的，所以可以 a.b@gmail, ab@gmail 都是同一个邮箱。</p>
<p>2，它內建 filter 跟 label (webmail 有 label真少见到), 所以可以用 + 来帮助设置filter, 如
ab+list1@gmail 跟 ab+list2@gmail 都可以送到 ab@gmail, 然而 filter写一下就會把 +list1
跟 +list2 分开了。</p>
<p>比如对应label1,可以写From :id1@xxx.com To ab+list1@gmail.com这样，通过filter的设置 ，所有来自id1@xxx.com的邮件，会自动分拣到label中。</p>
<p>3，GMail是全 UTF-8 的系統，所以基本上它可正常处理多个国家的语言，但是有时候发过去的信件可能有乱码，比如yahoo的邮箱，收到的是乱码，但是只要点击IE/查看/编码/选择UTF-8编码，就可以正常显示了。</p>
<p>4，gmail的search暂时只支持英文，其他语言无效，相信未来会支持的更好一些。</p>
<p>5，GMail 目前是只认识 server "收到信的时间" 而非 Mail body claim 的时间。 这会有什么问题呢？ 有些人沒有 auto forward 的功能，所以会几天固定 去其它信箱手动转信到Gmail, 日期就全变一样了。</p>
<p>6，GMail 的 'conversation'
平常都是一起动作的，如果要删除其中的一些单个邮件是很麻烦的，不过有个办法，可以拆开来，点击 More options, 选择Trash
this messenger就ok了，就不会影响到整个conversation了。</p>
 <img src ="http://www.blogjava.net/matthew2006/aggbug/162505.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2007-11-23 01:20 <a href="http://www.blogjava.net/matthew2006/archive/2007/11/23/162505.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何在您的网站中加入“搜索本站功能”-转</title><link>http://www.blogjava.net/matthew2006/archive/2007/11/21/162085.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Wed, 21 Nov 2007 06:46:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2007/11/21/162085.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/162085.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2007/11/21/162085.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/162085.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/162085.html</trackback:ping><description><![CDATA[ 来源：Google黑板报，发表者：谭永锋 软件国际化工程师

许多网站都有"搜索本站"，对于很多网民来讲这是非常好用的功能，如果您希望方便、快捷的建立自己的站内搜索，不妨试试谷歌的" Google 指定域名搜索"。这样，您不必花费太多时间，就可以建立结果全部指向您自己网站的站内搜索。

一分钟加入"搜索本站"功能

要如何在您的网页上加入此项功能呢？很简单，只要在你的网页内加入下面一小段代码就好了：
（注意：下面假设 www.abcde.cn 网站为例）

<form action="http://www.google.cn/search" method="get">
<input name=" sitesearch " value=" www.abcde.cn" type="hidden">
<input name="ie " value="GB2312 " type="hidden">
<input onfocus="if( this.value=='用 Google 搜索本站') {this.value='' };" size="25" name="q" id="query" value="用 Google 搜索本站" type="text">
<input name="Search" value="搜索" attr="value" type="submit">
<input name=" hl " value=" zh-CN" type="hidden">
</form>

记住，要把上例中的" www.abcde.cn" 换成您的网站网址哦！

现在，用用你的搜索吧。

如果您的中文搜索送到 Google 后成了乱码，那可能是您的 ie 值设定不合您的网页编码造成的。

如果我的网站不是 GB2313 编码怎么办？

由于在中国很多网站使用的是 GB2313 编码，因此上例中用
<input name=" ie" value=" GB2312" type="hidden">

告知 Google 此搜索是从你的 GB2312 编码网页而来，如果你的网页不是用 GB2312 编码而是使用 UTF-8 编码，那请把该行换成：
<input name=" ie" value=" UTF-8" type="hidden">

如果你的网页编码是使用繁体中文的 Big5 编码，那请把该行换成
<input name=" ie " value="Big5 " type="hidden">

如何使用 Google 用 GB2313 编码显示搜索结果？

在一般如上的情况下，Google 是用 UTF-8 编码显示搜索结果的，如果你要 Google 用 GB2312 编码显示搜索结果，那么你可以加入下列这一行
<input name=" oe" value=" GB2312" type="hidden">

同理，是用下一行会使 Google 用 Big5 编码显示搜索结果

如何使 Google 用繁体中文显示操作信息？

以上的设定会让 Google 用简体中文显示操作信息，如果你要 Google 用繁体中文显示操作信息那请你把
<input name=" hl" value="zh-CN" type="hidden">

改成
<input name=" hl" value="zh-TW" type="hidden"> 即可。


参数参考：

name="sitesearch" ：告知 Google 你要搜索的指定网站或指定域名

name=" ie"：告知 Google 发送搜索词的网页编码，预设值为"UTF-8"，由于在中国很多网站是使用 GB2312 编码

* name =" oe" ：告知 Google 显示搜索的网页编码，预设值为"UTF-8",由于现代大部分机器都能支持"UTF-8"无误，因此你大概不需要调整次参数；
* name ="hl" ：告知 Google 显示搜索的网页语言。"zh-CN"为简体中文，"zh-TW"为繁体中文，"en"为英文。<img src ="http://www.blogjava.net/matthew2006/aggbug/162085.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2007-11-21 14:46 <a href="http://www.blogjava.net/matthew2006/archive/2007/11/21/162085.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《Nature》上给青年科研工作者的几条忠告(转)</title><link>http://www.blogjava.net/matthew2006/archive/2007/07/15/130345.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Sun, 15 Jul 2007 02:22:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2007/07/15/130345.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/130345.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2007/07/15/130345.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/130345.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/130345.html</trackback:ping><description><![CDATA[<p><strong><span>Scientist: Four golden lessons </span></strong></p>
<p><span>STEVEN WEINBERG</span></p>
<p>&nbsp;</p>
<p><span>Steven Weinberg is in the Department of Physics, the <st1:placetype w:st="on">University</st1:placetype> of <st1:placename w:st="on">Texas</st1:placename> at <st1:place w:st="on"><st1:city w:st="on">Austin</st1:city>, <st1:state w:st="on">Texas</st1:state> <st1:postalcode w:st="on">78712</st1:postalcode>, <st1:country-region w:st="on">USA</st1:country-region></st1:place>. This essay is based on a commencement talk given by the author at the Science Convocation at <st1:place w:st="on"><st1:placename w:st="on">McGill</st1:placename> <st1:placetype w:st="on">University</st1:placetype></st1:place> in June 2003.</span></p>
<p>&nbsp;</p>
<p><span>When I received my undergraduate degree — about a hundred years ago — the physics literature seemed to me a vast, unexplored ocean, every part of which I had to chart before beginning any research of my own. How could I do anything without knowing everything that had already been done? Fortunately, in my first year of graduate school, I had the good luck to fall into the hands of senior physicists who insisted, over my anxious objections, that I must start doing research, and pick up what I needed to know as I went along. It was sink or swim. To my surprise, I found that this works. I managed to get a quick PhD — though when I got it I knew almost nothing about physics. But I did learn one big thing:<strong><span> </span><span>that no one knows everything, and you don't have to.</span></strong></span></p>
<p>&nbsp;</p>
<p><span>Another lesson to be learned, to continue using my oceanographic metaphor, is that while you are swimming and not sinking you should aim for rough water. When I was teaching at the Massachusetts Institute of Technology in the late 1960s, a student told me that he wanted to go into general relativity rather than the area I was working on, elementary particle physics, because the principles of the former were well known, while the latter seemed like a mess to him. It struck me that he had just given a perfectly good reason for doing the opposite. Particle physics was an area where creative work could still be done. It really was a mess in the 1960s, but since that time the work of many theoretical and experimental physicists has been able to sort it out, and put everything (well, almost everything) together in a beautiful theory known as the standard model. <strong><span>My advice is to go for the messes — that's where the action is.</span></strong></span></p>
<p>&nbsp;</p>
<p><span>My third piece of advice is probably the hardest to take. It is to forgive yourself for wasting time. Students are only asked to solve problems that their professors (unless unusually cruel) know to be solvable. In addition, it doesn't matter if the problems are scientifically important — they have to be solved to pass the course. But in the real world, it's very hard to know which problems are important, and you never know whether at a given moment in history a problem is solvable. At the beginning of the twentieth century, several leading physicists, including Lorentz and Abraham, were trying to work out a theory of the electron. This was partly in order to understand why all attempts to detect effects of Earth's motion through the ether had failed. We now know that they were working on the wrong problem. At that time, no one could have developed a successful theory of the electron, because quantum mechanics had not yet been discovered. It took the genius of Albert Einstein in 1905 to realize that the right problem on which to work was the effect of motion on measurements of space and time. This led him to the special theory of relativity. As you will never be sure which are the right problems to work on, most of the time that you spend in the laboratory or at your desk will be wasted. <strong><span>If you want to be creative, then you will have to get used to spending most of your time not being creative, to being becalmed on the ocean of scientific knowledge.</span></strong></span></p>
<p>&nbsp;</p>
<p><strong><span>Finally, learn something about the history of science, or at a minimum the history of your own branch of science.</span></strong><span> The least important reason for this is that the history may actually be of some use to you in your own scientific work. For instance, now and then scientists are hampered by believing one of the over-simplified models of science that have been proposed by philosophers from Francis Bacon to Thomas Kuhn and Karl Popper. The best antidote to the philosophy of science is a knowledge of the history of science.<br><br>More importantly, the history of science can make your work seem more worthwhile to you. As a scientist, you're probably not going to get rich. Your friends and relatives probably won't understand what you're doing. And if you work in a field like elementary particle physics, you won't even have the satisfaction of doing something that is immediately useful. But you can get great satisfaction by recognizing that your work in science is a part of history.</span></p>
<p>&nbsp;</p>
<p><span>Look back 100 years, to 1903. How important is it now who was Prime Minister of Great Britain in 1903, or President of the <st1:country-region w:st="on"><st1:place w:st="on">United States</st1:place></st1:country-region>? What stands out as really important is that at <st1:place w:st="on"><st1:placename w:st="on">McGill</st1:placename> <st1:placetype w:st="on">University</st1:placetype></st1:place>, Ernest Rutherford and Frederick Soddy were working out the nature of radioactivity. This work (of course!) had practical applications, but much more important were its cultural implications. The understanding of radioactivity allowed physicists to explain how the Sun and Earth's cores could still be hot after millions of years. In this way, it removed the last scientific objection to what many geologists and paleontologists thought was the great age of the Earth and the Sun. After this, Christians and Jews either had to give up belief in the literal truth of the Bible or resign themselves to intellectual irrelevance. This was just one step in a sequence of steps from Galileo through <st1:city w:st="on">Newton</st1:city> and <st1:city w:st="on"><st1:place w:st="on">Darwin</st1:place></st1:city> to the present that, time after time, has weakened the hold of religious dogmatism. Reading any newspaper nowadays is enough to show you that this work is not yet complete. But it is civilizing work, of which scientists are able to feel proud.</span></p>
<p>&nbsp;</p>
<p><strong><span>《</span></strong><strong><span>Nature</span></strong><strong><span>》上给青年科研工作者的几条忠告</span></strong><strong></strong></p>
<p>&nbsp;</p>
<p><span>Steven Weinberg</span><span>：四条黄金忠告</span></p>
<p>&nbsp;</p>
<p><span>Steven Weinberg </span><span>现在得克萨斯大学物理系。本文以他</span><span> 2003</span><span>年</span><span>6</span><span>月在麦克基尔大学科学大会上的讲话为基础。</span></p>
<p>&nbsp;</p>
<p><span>当我得到大学学位的时候</span><span> </span><span>－</span><span> </span><span>那是百八十年前的事了</span><span> </span><span>－物理文献在我眼里就象一个未经探索的汪洋大海，我必须在勘测了它的每一个部分之后才能开始自己的研究。做任何事情之前怎么能不先了解所有已经做过了的工作呢？万幸的是，在我做研究生的第一年，我碰到了一些资深的物理学家，他们不顾我忧心忡忡的反对，坚持我应该开始进行研究，而在研究的过程中学习所需的东西。这可是生死悠关的事。我惊讶地发现他们的意见是可行的。我设法很快就拿到了一个博士学位</span><span> </span><span>－虽然我拿到博士学位时对物理学还几乎是一无所知。不过，我的确得到了一个很大的教益：<strong><span>没有人了解所有的知识，你也不必</span></strong>。</span></p>
<p>&nbsp;</p>
<p><span>另一个忠告就是，如果继续用我的海洋学的比喻的话，<strong><span>当你在大海中搏击而不是沉没时，应该到波涛汹涌的地方去</span></strong>。</span><span>19</span><span>世纪</span><span>60</span><span>年代末，我在麻省理工大学教书时，一个学生找我说，他想去做广义相对论领域的研究，而不愿意做我所在的领域－基本粒子物理学－方向的研究，原因是前者的原理已经很清楚，而后者在他看来则是一团乱麻。而在我看来这正是做相反决定的绝好理由。粒子物理学是一个还可以做创造性工作的领域。它在那个时候的确是乱麻一团，但是，从那时起，许多理论物理学家、试验物理学家的工作把这团乱麻梳理出来，将所有的（嗯，几乎所有的）知识纳入一个叫做标准模型的美丽的理论之中。我的忠告是：<strong><span>到混乱的地方去，那里才是行动所在的地方</span></strong>。</span></p>
<p>&nbsp;</p>
<p><span>我的第三个忠告可能是最难被接受的。这就是<strong><span>要原谅自己虚掷时光</span></strong>。要求学生们解决的问题<st1:personname w:st="on" ProductID="都是">都是</st1:personname>教授们知道可以得到解决的问题（除非教授非常地残酷）。而且，这些问题在科学上是否重要是无关紧要的，－必须解决他们以通过考试。但是在现实生活中，知道哪些问题重要是非常困难的，而且在历史某一特定时刻你根本无从知道某个问题是否有解。二十世纪初，几个重要的物理学家，包括</span><span> Lorentz </span><span>和</span><span> Abraham, </span><span>想创立一种电子理论。部分原因是为了理解为什么探测地球相对以太运动的所有尝试都失败了。我们现在知道，他们研究的问题不对。在当时，没有人能够创立一个成功的电子理论，因为量子力学尚未发现。需要到</span><span>1905</span><span>年，天才的爱因斯坦认识到正确的问题是运动在时间空间测量上的效应。沿着这条路线，他创立了相对论。因为你总也不能肯定哪个才是要研究的正确问题，你在实验室里，在书桌前的大部分时间是会虚掷的。</span></p>
<p>&nbsp;</p>
<p><span>如果你想要有创造性，你就必须习惯于大量时间不是创造性的，习惯于在科学知识的海洋上停滞不前。</span></p>
<p>&nbsp;</p>
<p><span>最后，<strong><span>学一点科学史，起码你所研究的学科的历史</span></strong>。至少学习科学史可能在你自己的科学研究中有点用。比如，科学家会不时因相信从培根到库恩、玻普这些哲学家所提出的过分简化的科学模型而受到桎梏。科学史的知识是科学哲学的最好解毒剂。</span></p>
<p>&nbsp;</p>
<p><span>更重要的是，科学史的知识可以使你觉得自己的工作更有意义。作为一个科学家，你很可能不会太富裕，你的朋友和亲人可能也不理解你正在做的事情。而如果你研究的是象基本粒子物理学这样的领域，你甚至没有是在从事一种马上就有用的工作所带来的满足。但是，认识到你进行的科学工作是历史的一部分则可以给你带来极大的满足。</span></p>
<p>&nbsp;</p>
<p><span>看看</span><span>100</span><span>年前，</span><span>1903</span><span>年。谁是</span><span>1903</span><span>年大英帝国的首相、谁是</span><span>1903</span><span>年美利坚合众国的总统在现在看来有多重要呢？真正凸现出重要性的是</span><span> 1903</span><span>年</span><span>Ernest Rutherford </span><span>和</span><span>Frederick Soddy </span><span>在</span><span>Mxxxxll </span><span>大学揭示了放射性的本质。这一工作（当然！）有实际的应用，但更加重要的是其文化含义。对放射性的理解使物理学家能够解释为什么几百万年以后太阳和地心仍是滚烫的。这样，就清除了许多地质学家和古生物学家认为地球和太阳存在了很长年代的最后一个科学上的障碍。从此以后，基督教徒和犹太教徒就不得不或者放弃圣经的直接真理性或者放弃理性。这只是从加利略到牛顿、达尔文，直到现在削弱宗教教条主义桎梏的一系列步伐中的一步。只要读读今天的任何一张报纸，你都会知道这一工作还没有完成。但是，这是一个文明化的工作，对这一工作科学家是可以感到骄傲的。</span><span> </span></p>
<img src ="http://www.blogjava.net/matthew2006/aggbug/130345.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2007-07-15 10:22 <a href="http://www.blogjava.net/matthew2006/archive/2007/07/15/130345.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BitTorrent 性能卓越的原因(转)</title><link>http://www.blogjava.net/matthew2006/archive/2007/05/17/118164.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Thu, 17 May 2007 12:27:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2007/05/17/118164.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/118164.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2007/05/17/118164.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/118164.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/118164.html</trackback:ping><description><![CDATA[BitTorrent 性能卓越的原因<br><br>概要<br>BitTorrent 文件发布系统采用针锋相对（tit_for_tat）的方法来达到帕累托有效，与当前已知的协作技术相比，它具有更高的活力。本文将解释BitTorrent 的用途，以及是怎样用经济学的方法来达到这个目标的。<br><br>1、BitTorrent 用来做什么？<br>当通过HTTP协议来下载一个文件的时候，所有的上载开销都在主机上。而使用 BitTorrent，当多个人同时下载同一个文件的时候，他们之间也相互为对方提供文件的部分片断的下载。这样，就把上载的开销分摊到每个下载者那里，也就可以在理论上支持无限多个下载者来下载同一个文件。<br>研究人员以前也在寻找一种达到这种效果的可实用的技术[3]。这种技术原来并没有在大的范围内运用过，因为逻辑和的问题非常棘手。如果仅仅计算哪些 peers 拥有文件的哪些片断以及这些片断应该被发送给谁，那么很难只产生比较小的系统开销。Peers之间的连接很少会超过几个小时，通常是几分钟而已。最后，有一个普遍的问题，就是公平性。<br>我们将解释BitTorrent 是如何很好的解决这些问题的。<br><br>1.1、BitTorrent接口<br>BitTorrent 的接口可能是最简单的。用户点击希望下载的文件的超级链接，然后会弹出一个标准的&#8220;保存到&#8221;对话框。此后，出现一个下载进度的窗口，在这个窗口中，除了显示下载速率外，还显示一个上载速率。BT在使用上非常简单，使得BT能广泛的被运用。<br><br>1.2、部署<br>决定采用BitTorrent的原因是因为有一些文件需要发布。而下载者使用 BitTorrent，是因为这是他们获取所需要的文件的唯一途径。下载者经常一完成下载，就停止为别人上载，虽然说，在BT 客户端完成下载之后，继续为别人提供一段时间的上载是一种礼貌的行为。标准的实现是让客户端一直保持上载，除非窗口被关闭。<br>在一个典型的部署中，未完成的下载者<br>一台主机负责提供原始的文件，下载者通过BT来下载这个文件。下载者在下载的同时，为其它人提供上载，最后，离开这个系统。<br><br>2、技术框架<br><br>2.1发布内容<br>为了部署 BT，首先将一个扩展名为 .torrent 的文件放在一个普通的web服务器上。.torrent文件包含了要共享的文件的信息，包括文件名、大小、文件的散列信息和一个指向tracker的url。Tracker负责帮助下载者能够获取其它下载者的信息。Tracker和下载者之间使用一种很简单的基于HTTP的协议进行交互，下载者告诉tracker自己要下载的文件、自己使用的端口以及类似的信息，tracker告诉下载者其它下载同样文件的下载者的联系信息。下载者利用这些信息相互之间建立连接。一个被成为&#8220;种子&#8221;的下载者，必须首先被启动，它知道完整的文件信息。对tracker和web服务器的带宽需求很低，而种子必须至少发送原始文件的一份完整拷贝。<br><br>译注：<br>P2P的核心思想就是没有服务器的概念，任何一个下载者既是client，又是server。<br>下载者从别人那里取文件的时候，称为下载，而为别人提供文件的时候，称为上载（传）。<br>为了完成一次部署，至少需要一个 tracker和一个seed。所谓tracker，是一个服务器，负责帮助peers之间相互建立连接。而seed，通常是第一个向tracker注册，然后它就开始进入循环，等待为别人提供文件，也就是说，第一个seed只负责上传文件。一旦有一个peer向tracker注册后，就可以取得seed的信息，从而与seed建立连接。从seed处读取文件。由于原始的文件，只有seed拥有，所有说，seed至少要上传原始文件的一份完整拷贝。如果又有一个peer加入进来，那么它可以同时和seed和前一个peer建立连接，然后从这两者处获取文件。<br><br>2.2对等发布<br>所有和文件下载相关的逻辑问题，通过 peers之间的交互来解决。一些关于下载和上传的速率的信息被发送给tracker，tracker搜集这些信息用于统计。Tracker的职责被严格限定为&#8220;帮助peers相互发现对方&#8221;。<br>尽管tracker是peers之间相互发现的唯一途径，也是peers之间相互协作的唯一地点，标准的tracker算法返回一个随机的 peers的列表。随机图具有非常强大的特性，许多的peer选择算法最终产生了一个幂律图，幂律图能以少量的搅拌来获得分片。注意，peers之间的连接都是双向传输的。<br>为了跟踪每个peers都拥有什么，BT将文件切割为固定大小的片（典型的大小是256k）。每个下载者必须通知其它peers，它拥有哪些片。为了验证文件的完整性，对每个片断都通过SHA1算法计算出它的hash信息，并保存在torrent文件中。Peers只有在检查了片断的完整性之后，才会通知其它peers它拥有这个片断。删除代码是一种被建议使用的帮助文件分布的技术，但是这种更简单的方法（既分片）也是可用的。<br>Peers不断的从它能连接到的peers那里下载文件片断。当然，它不能从没有跟它建立连接的peers那里下载任何东西。即使是建立了连接的peers，有的也并不包含它想要的片断，或者还不允许它去下载。关于不允许其它peers从它那里下载文件片断的策略，被称为 阻塞choking，后文将进行讨论。其它关于文件分布的方法通常都要用到麻烦的树结构，而且树叶的上载能力并没有被利用起来。简单的让 peers 宣布它拥有什么会导致不到 10 % 的带宽开支，却可以可靠的使用所有的上载能力。<br><br>2.3流水作业<br>构架在TCP之上的应用层协议，例如BT，很重要的一点是应该同时发送多个请求，以避免在两个片断发送之间的延迟，因为那样会严重影响传输速率。为了达到这种目的，BT将每个片断又进一步分为子片断，每个子片断的大小一般是16k，同时，它一直保持几个请求（通常是5个）被流水的同时发送。流水作业所选择的data（应该是指的同时发送的请求数目，也就是5个request）的依据是能使得大多数连接变得饱和。<br>译注：也就是说，每次发送5个请求，然后过一段时间，又发送5个请求。流水作业在HTTP 协议1.1版本中被广泛运用。<br><br>2.4片断选择<br>选择一个好的顺序来下载片断，对提高性能非常重要。一个差的片断选择算法可能导致所有的片断都处于下载中，或者另一种情况，没有任何片断被上载给其它 peers。<br><br>2.4.1严格的优先级<br>片断选择的第一个策略是：一旦请求了某个片断的子片断，那么该片断剩下的子片断优先被请求。这样，可以尽可能快的获得一个完整的片断<br><br>2.4.2最少的优先<br>对一个下载者来说，在选择下一个被下载的片断时，通常选择的是它的peers们所拥有的最少的那个片断，也就是所谓的&#8220;最少优先&#8221;。这种技术，确保了每个下载者都拥有它的peers们最希望得到的那些片断，从而一旦有需要，上载就可以开始。这也确保了那些越普通的片断越放在最后下载，从而减少了这样一种可能性，即某个peer当前正提供上载，而随后却没有任何的被别人感兴趣的片断了。<br><br>译注：<br>也就说说，每个peer都优先选择整个系统中最少的那些片断去下载，而那些在系统中相对较多的片断，放在后面下载，这样，整个系统就趋向于一种更优的状态。如果不用这种算法，大家都去下载最多的那些片断，那么这些片断就会在系统中分布的越来越多，而那些在系统中相对较少的片断仍然很少，最后，某些 peer 就不再拥有其它 peer 感兴趣的片断了，那么系统的参与者越来越少，整个系统的性能就下降。<br>在BT系统中，充分考虑了经济学的概念，处处从整个系统的性能出发，参与者越多，系统越优化。<br><br>信息理论显示除非种子上传了文件的所有片断，否则没有任何下载者可以完成所有文件的下载。如果在一个部署中，只有一个种子，而且种子的上载能力比它的大多数下载者都要差，那么，不同的下载者从种子那里下载不同的片断，性能就会变得比较好，因为，重复的下载浪费了种子获取更多信息的机会。&#8220;最少优先&#8221;使得下载者只从种子处下载新的片断（也就是整个系统中其它peer都没有的片断），因为，下载者能够看到其它peers那里已经有了种子已经上传的片断。<br><br>在某些部署中，原始的种子由于某些原因最终关闭，只好由剩下的这些下载者们来负责上传。这样显然会带来一个风险：某些片断任何一个下载者都不拥有。&#8220;最少优先&#8221;也很好的处理了这种情况。通过尽快的复制最少的片断，减少了这种由于当前的peers停止上载后带来的风险。<br><br>2.4.3随机的第一个片断<br>&#8220;最少优先&#8221;的一个例外是在下载刚开始的时候。此时，下载者没有任何片断可供上传，所以，需要尽快的获取一个完整的片断。而最少的片断，通常只有某一个peer拥有，所以，它可能比多个peers都拥有的那些片断下载的要慢。因此，第一个片断是随机选择的，直到第一个片断下载完成，才切换到&#8220;最少优先&#8221;的策略。<br><br>2.4.4最后阶段模式<br>有时候，从一个速率很慢的peer那里请求一个片断。在下载的中间阶段，这不是什么问题，但是却可能潜在的延迟下载的完成。为了防止这种情况，在最后阶段，peer向它的所有的peers们都发送某片断的子片断的请求，一旦某些子片断到了，那么就会向其它peer发送cancel 消息，取消对这些子片断的请求，以避免带宽的浪费。实际上，用这种方法并没有浪费多少带宽，而文件的结束部分也一直下载的非常快。<br><br>3 阻塞（choking）算法<br>BT并不集中分配资源。每个peer自己有责任来尽可能的提高它的下载速率。Peers从它可以连接的peers处下载文件，并根据对方提供的下载速率给予同等的上传回报（你敬我一尺，我敬你一丈）。对于合作者，提供上传服务，对于不合作的，就阻塞对方。所以说，阻塞是一种临时的拒绝上传策略，虽然上传停止了，但是下载仍然继续。在阻塞停止的时候，连接并不需要重新建立。<br>阻塞算法并不属于BT对等协议（指peers 之间交互的协议）的技术部分，但是对提高性能是必要的。一个好的阻塞算法应该利用所有可用的资源，为所有下载者提供一致可靠的下载速率，并适当惩罚那些只下载而不上传的peers。<br><br>3.1帕累托有效<br>帕累托有效是指资源配置已达到这样一种境地，即任何重新改变资源配置的方式，都不可能使一部分人在没有其他人受损的情况下受益。这一资源配置的状态，被称为&#8220;帕累托最优&#8221;（Pareto optimum）状态，或称为&#8220;帕累托有效&#8221;（Pareto efficient）<br>在计算机领域，寻求帕累托有效是一种本地优化算法<br>BitTorrent的阻塞算法，用一种针锋相对的方式来试图达到帕累托最优。（原文不太好翻译，我简化了）。Peers对那些向他提供上传服务的peers给予同样的回报，目的是希望在任何时候都有若干个连接正在进行着双向传输。<br><br>3.2 BitTorrent的阻塞算法<br>从技术层面上说，BT的每个peer一直与固定数量的其它 peers 保持疏通（通常是4个），所以问题就变成了哪些peers应该保持疏通？这种方法使得TCP的拥塞控制性能能够可靠的饱和上传容量。（也就是说，尽量让整个系统的上传能力达到最大）。<br>严格的根据当前的下载速率来决定哪些peers应该保持疏通。令人惊讶的是，计算当前下载速率是个大难题。当前的实现实质上是一个每隔20秒的轮询。而原来的算法是对一个长时间的网络传输进行总计，但这种方法很差劲，因为由于资源可用或者不可用，带宽会变化的很快。<br>为了避免因为频繁的阻塞和疏通 peers造成的资源浪费，BT每隔10秒计算一次哪个peer需要被阻塞，然后将这种状态保持到下一个10秒。10秒已经足够使得TCP来调整它的传输性能到最大。<br><br>3.3、optimistic unchoking<br>如果只是简单的为提供最好的下载速率的peers们提供上载，那么就没有办法来发现那些空闲的连接是否比当前正使用的连接更好。为了解决这个问题，在任何时候，每个peer都拥有一个称为&#8220;optimistic unchoking&#8221;的连接，这个连接总是保持疏通状态，而不管它的下载速率是怎样。每隔30秒，重新计算一次哪个连接应该是&#8220;optimistic unchoking&#8221;。30秒足以让上载能力达到最大，下载能力也相应的达到最大。这种和针锋相对类似的思想非常的伟大。&#8220;optimistic unchoking&#8221;非常和谐的与&#8220;囚徒困境&#8221;合作。<br><br>3.4、反对歧视<br>某些情况下，一个peer可能被它所有的peers都阻塞了，这种情况下，它将会保持较低的下载速率直到通过&#8220;optimistic unchoking&#8221;找到更好peers。为了减轻这种问题，如果一段时间过后，从某个peer那里一个片断也没有得到，那么这个peer认为自己被对方&#8220;怠慢&#8221;了，于是不再为对方提供上传，除非对方是&#8220;optimistic unchoking&#8221;。这种情况频繁发生，会导致多于一个的并发的&#8220;optimistic unchoking&#8221;。<br><br>3.5仅仅上传<br>一旦某个peer完成了下载，它不能再通过下载速率（因为下载速率已经为0了）来决定为哪些 peers 提供上载了。目前采用的解决办法是，优先选择那些从它这里得到更好的上载速率的peers。这样的理由是可以尽可能的利用上载带宽。<br><br>4、真实世界的体验<br>BitTorrent不仅仅早已经实现，而且早已经被广泛的使用，它为许多并发的下载者提供成百兆的文件下载。已知的最大的部署中，同时有超过1000个的下载者。当前的瓶颈（实际还没有达到）看来是tracker的带宽。它（trakcer的带宽）大概占用了带宽总量的千分之一，一些小的协议扩展可能会使它降到万分之一。<br><br>参考资料：<br><br>[1] E. Adar and B. A. Huberman. Free riding on gnutella. First Monday, 5(10), 2000.<br>[2] A.-L. Barab&#180;asi. Linked: The New Science of Networks.Perseus Publishing, 2002.<br>[3] M. Castro, P. Druschel, A.-M. Kermarrec, A. Nandi, A. Rowstron, and A. Singh. Splitstream: High-bandwidth content distribution in cooperative environments. In Proceedings of IPTPS03, Berkeley, USA, Feb. 2003.<br>[4] P. Maymounkov and D. Mazieres. Kademlia: A peer-to-peer information system based on the xormetric. In Proceedings of IPTPS02, Cambridge, USA, Mar. 2002.<br><br>原文见:http://tb.blog.csdn.net/TrackBack.aspx?PostId=376238
<img src ="http://www.blogjava.net/matthew2006/aggbug/118164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2007-05-17 20:27 <a href="http://www.blogjava.net/matthew2006/archive/2007/05/17/118164.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>word文档的页眉与页脚设置</title><link>http://www.blogjava.net/matthew2006/archive/2007/05/08/115871.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Tue, 08 May 2007 02:32:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2007/05/08/115871.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/115871.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2007/05/08/115871.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/115871.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/115871.html</trackback:ping><description><![CDATA[<p><span style="font-size: 14pt; font-family: Comic Sans MS;">这是我总结出来的设置页眉页脚的全过程:<br />
<br />
1、 在新的页眉页脚的第一页，第一个字前，如果有目录中的标题则将光标紧插在标题的第一个字前，点击&#8220;插入&#8221;—&#8220;分隔符&#8221;—&#8220;连续&#8221;，给文章分节；若要去掉某一节，则将光标插入到上一节的最后一个字那里，按&#8220;del键&#8221;删除空行直至该节被去掉。 <br />
2、 如果某一节页眉或页脚的设置不同，则双击页眉页脚，使之出现页眉页脚工具栏，或者点击&#8220;视图&#8221;—&#8220;页眉页脚&#8221;，使之出现工具栏，选择需要更改的页眉/页脚，点击工具栏中的 &#8220;与上一节的链接&#8221;，取消与上一节的链接，直至要更改的页眉或页脚的右上方没有&#8220;与上一节相同&#8221;字样。 <br />
3、 在要更改或设置的页眉页脚中添加你要添加的字样，关于设置页脚，点击工具栏中的&#8220;插入页码&#8221;－&#8220;设置页码格式&#8221;设置不同文字的页码，如果要接着上一节的页码，则&#8220;续前节&#8221;；若本节与上一节没有联系，则设置&#8220;起始页码&#8221;。如果页码要居中，则点击顶上方工具栏的&#8220;居中&#8221;。 <br />
4、 关于设置页眉，如果需要奇偶页有不同的设置，则点击工具栏中的&#8220;页面设置&#8221;－&#8220;版式&#8221;－&#8220;奇偶页不同&#8221;，应用于&#8220;本节&#8221;，然后分别设置不同的奇偶页。 <br />
5、 如果要去掉页眉，主要是去掉页眉下的那一条横线，选中要更改的页眉，点击&#8220;格式&#8221;－&#8220;边框和底纹&#8221;－&#8220;边框&#8221;－&#8220;无&#8221;，应用于&#8220;段落&#8221;。 </span></p>
<img src ="http://www.blogjava.net/matthew2006/aggbug/115871.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2007-05-08 10:32 <a href="http://www.blogjava.net/matthew2006/archive/2007/05/08/115871.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>word中自动生成目录和图标目录</title><link>http://www.blogjava.net/matthew2006/archive/2007/05/06/115591.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Sun, 06 May 2007 09:25:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2007/05/06/115591.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/115591.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2007/05/06/115591.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/115591.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/115591.html</trackback:ping><description><![CDATA[<br />
文档的目录生成：<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一． 定义目录标题的样式：先选定文章中的任意一篇的标题，对标题进行字体、字号、加粗、颜色等字体格式的定义及居中、左右缩进、行距等段落格式的定义。然后选择&#8220;格式&#8221;菜单中的&#8220;样式和格式&#8221;，新建一个样式。<br />
<br />
二． 设目录标题的样式：在文件中选中第一个目录标题的文本，从 &#8220;格式&#8221;菜单中选取&#8220;样式&#8221;选项，并从中选取刚才定义的样式,其它的目录标题文本也采用相同的方法处理。<br />
<br />
三． 插入目录：将光标移到要插入目录标题的位置，从&#8220;插入&#8221;菜单中选取&#8220;索引和目录&#8221;项，并选取&#8220;目录卡&#8221;，确定是否显示页码、前导符样式及显示级别。这样，在光标处就产生我们所需要的目录，该目录包含有所选文本的目录标题并产生相应的页码。<br />
<br />
四．目录的更新：如果以后在文章中的某处插入了新的内容，则其后的所有页码将全部发生变化，如果没有采用样式产生相应目录，还须将目录的页码全部手工更改一遍，使用以上方法后，只须选取目录，点鼠标右键，选择更新域，则目录的目录标题及相应页码将全部被更新。<br />
<br />
图表目录生成：<br />
<br />
1.在需要建立图表目录的图片上点右键，点选弹出菜单中的&#8220;题注（C）&#8230;&#8221;子菜单。<br />
<br />
2.这个时候你就需要&#8220;新建标签&#8221;。点击&#8220;新建标签（N）&#8230;&#8221;后，输入你想要的题注，比如&#8220;Figure&#8221;。<br />
<br />
3.&nbsp; 点&#8220;标签（L）&#8230;&#8221;后的下拉框，选中刚刚新建的题注&#8220;Figure&#8221;。这个时候，&#8220;题注（C）&#8230;&#8221;下面的文本框将显示&#8220;Figure 1&#8221;，你只需要在它的后面增加你自定义的图片的标题，再点击确定，就可以在这张图片上建立一个题注。（注意，Figure后面的数字是自动累加的。）<br />
<br />
4.对所有的图片进行如上操作，即可以对所有的图片建立题注。然后，下面开始利用我们已经建立好的图片题注来插入目录吧。<br />
<br />
5.点&#8220;插入&#8221;菜单。再选择&#8220;索引和目录&#8221;子菜单，选择&#8220;图表目录&#8221;选项卡，然后再配置如图所示相应的参数，就可以了。（这些参数需要你根据不同的文档对图表目录的要求来确定。）<br />
<p style="font-size: 14pt; color: rgb(0, 0, 0); font-family: Arial;">&nbsp;</p>
<img src ="http://www.blogjava.net/matthew2006/aggbug/115591.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2007-05-06 17:25 <a href="http://www.blogjava.net/matthew2006/archive/2007/05/06/115591.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>fun.xls.exe手动杀毒-转贴</title><link>http://www.blogjava.net/matthew2006/archive/2007/03/20/104928.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Tue, 20 Mar 2007 05:02:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2007/03/20/104928.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/104928.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2007/03/20/104928.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/104928.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/104928.html</trackback:ping><description><![CDATA[
		<p>fun.xls.exe 是 tel.xls.exe 的变种</p>
		<p>
				<strong>症状:</strong>
		</p>
		<p>1.鼠标右键点盘符出现"Auto"字样<br />2.无法显示隐藏文件</p>
		<p>
				<strong>杀毒方法<font color="#ff0000">：(</font><font color="#ff0000">切记：在操作过程中使用“右键-&gt;打开”，不可双击。)</font></strong>
		</p>
		<p>
				<font color="#0000ff">1.结束注册表中的fun.xls.exe的进程</font>（建议选中fun.xls.exe-&gt;右键-&gt;转到进程，查找到“algsrvs.exe” 单击它，再选择“结束进程”）</p>
		<p>2.删除文件：</p>
		<p>   C:\WINDOWS\system32\<font color="#000080"><font color="#ff0000">algsrvs.exe</font><br /></font>   C:\WINDOWS\system32\<font color="#ff0000">msfun80.exe</font><br />   C:\WINDOWS\system32\<font color="#ff0000">msime82.exe</font><br />   C:\WINDOWS\<font color="#ff0000">ufdata2000.log</font><br />3.删除注册表中的所有包含：fun.xls.exe的键值。用搜索!!<br />4.修改注册表<br />  <font color="#000080"><strong>   HKEY_LOCAL_MACHINE</strong></font><font color="#000080"><strong>\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL<br /></strong></font>   删除原来的[CheckedValue] 项，并新建同名dword项。改键值为1。<br />5. 工具-&gt;文件夹选项-&gt;查看，选中“<font color="#003300"><strong>显示所有文件和文件</strong></font>”夹并取消选中“<font color="#003300"><strong>隐藏受保护的操作系统文件</strong></font>”<br />6. 删除每个盘符下的隐藏文件：<br /><font color="#ff0000"><strong>     AUTORUN.INF<br />     fun.xls.exe</strong></font><br />7.重起电脑!</p>
<img src ="http://www.blogjava.net/matthew2006/aggbug/104928.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2007-03-20 13:02 <a href="http://www.blogjava.net/matthew2006/archive/2007/03/20/104928.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>老婆和老妈同时掉在了水里你会如何做呢？－转贴</title><link>http://www.blogjava.net/matthew2006/archive/2007/03/12/103369.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Mon, 12 Mar 2007 10:05:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2007/03/12/103369.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/103369.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2007/03/12/103369.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/103369.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/103369.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 很久没有写东西了，没有心思。找工作，写论文.....一个都没有着落。也许每个人到这个时候都是这样一符心境。但愿这郁闷的日子早点过去。。。。。。<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 />
和砷： <br />
老婆和老妈落水就落水吧，反正我爱的是钱，钱就是我的老婆，钱就是业那茁琛? <br />
我说老婆和老妈呀，你们就不能穿差一点的衣服再掉到河里呀，可惜了你们头上的那些金钗手饰呀！ <br />
—————「有啥你别有病，没啥你别没钱。」和呻一边看着他老婆和老妈慢慢地沉下去一边叹息着。 <br />
<br />
王勃： <br />
手心手背都是肉，老婆是自己最爱的人，老妈是自己最亲的人，怎么办呢？不管它，先跳下去，看看离谁最近就先救谁吧。 <br />
王勃扑通一声跳了下去。 <br />
—————「不好，我忘了自己不会游泳了。」王勃咕噜噜地喝了几口水，也慢慢地沉了下去。一代才子王勃就是因为此事溺水而死的。 <br />
<br />
孙悟空： <br />
俺是从石头缝里蹦出来的，没有老妈。所以不存在老妈落水的问题；俺是个和尚，没有老婆。所以不存在老婆落水的问题。 <br />
不存在老妈落水的问题，也不存在老婆落水的问题，就更不会存在老妈和老婆同时落水的问题。 <br />
这白痴的问题也不知道是哪个猪头想出来的，简直比俺师弟猪八戒还蠢。&lt;——这才是真正的答案啊!!<br />
</p>
<img src ="http://www.blogjava.net/matthew2006/aggbug/103369.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2007-03-12 18:05 <a href="http://www.blogjava.net/matthew2006/archive/2007/03/12/103369.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 搜索英文论文的网站</title><link>http://www.blogjava.net/matthew2006/archive/2006/12/17/88370.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Sun, 17 Dec 2006 12:43:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2006/12/17/88370.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/88370.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2006/12/17/88370.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/88370.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/88370.html</trackback:ping><description><![CDATA[
		<div>这里理出常用英文论文搜索网站：<br /><a class="contentlink" href="http://citeseer.ist.psu.edu/" target="_blank"><font color="#4455aa"><br />http://citeseer.ist.psu.edu/</font></a><br /><a class="contentlink" href="http://dblp.uni-trier.de/" target="_blank"><font color="#4455aa">http://dblp.uni-trier.de/</font></a><br /><a class="contentlink" href="http://www.computer.org/portal/site/ieeecs/index.jsp" target="_blank"><font color="#4455aa">http://www.computer.org/portal/site/ieeecs/index.jsp</font></a><br /><a class="contentlink" href="http://smealsearch2.psu.edu/index.html/" target="_blank"><font color="#4455aa">http://smealsearch2.psu.edu/index.html/</font></a><br /><a class="contentlink" href="http://portal.acm.org/portal.cfm" target="_blank"><font color="#4455aa">http://portal.acm.org/portal.cfm</font></a><br /><a class="contentlink" href="http://www.vldb.org/" target="_blank"><font color="#4455aa">http://www.vldb.org/</font></a><br /><br /><p>也可以使用google或yahoo 如：在搜索栏内输入keyword  site:citeseer.ist.psu.edu/ 另外keyword还可以用引号引起来，如：<br />"keyword1 keyword2"  site:citeseer.ist.psu.edu/<br /></p></div>
<img src ="http://www.blogjava.net/matthew2006/aggbug/88370.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2006-12-17 20:43 <a href="http://www.blogjava.net/matthew2006/archive/2006/12/17/88370.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>W3C工作流程 (W3C标准的各个级别）</title><link>http://www.blogjava.net/matthew2006/archive/2006/12/17/88369.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Sun, 17 Dec 2006 12:34:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2006/12/17/88369.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/88369.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2006/12/17/88369.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/88369.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/88369.html</trackback:ping><description><![CDATA[
		<p>1)Submission<br />我们平常向会议或者杂志投递论文叫“paper submission"，这里也一样。submission指由W3C member向www consortium投递自己的一个建议。w3c有可能决定不接收这个建议。</p>
		<p>2）Notes<br />如果IBM向W3C提了一个submission，而且w3c没有拒绝这个submission，那么它就进入Note阶段。Note的内容由IBM进行编辑修改，W3C是不管的。发表Note的时候，表示W3C还没有开始和这个submission有关的任何工作。</p>
		<p>3）Working Groups<br />Notes被W3C认可后，W3C会成立一个Working Group。Group包括W3C member和有兴趣的外界团队和个人。</p>
		<p>4）Working Draft<br />Draft会在w3c的站点上公布，并邀请公共的评论和意见。Working Draft一般不应该作为参考的资料，因为它还会经过大量的修改/更新，而且可能随时被废弃。比如现在WSDL2.0就还在Working Draft阶段，还会经过大量的修改。</p>
		<p>5）Candidate Recommendations<br />这个阶段是可选的，依据论题的复杂程度而定。它一般不应该作为参考的资料，因为它还会经过大量的修改/更新，而且可能随时被废弃。</p>
		<p>6）Proposed Recommendations<br />Proposed Recommendations是Working Groups工作的最后一个阶段。它有被继续修改的可能，但一般情况下，它很可能马上不做改动地成为w3c的recommendation.</p>
		<p>7)Recommendation<br />Proposed Recommendations经过了w3c member的检查和w3c的主席的盖章后，成为 w3c recommendation。它一般是一个稳定的规范，可以作为参考资料进行学习。</p>
<img src ="http://www.blogjava.net/matthew2006/aggbug/88369.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2006-12-17 20:34 <a href="http://www.blogjava.net/matthew2006/archive/2006/12/17/88369.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>generic host process for win32 services出错的问题－转贴</title><link>http://www.blogjava.net/matthew2006/archive/2006/12/16/88105.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Sat, 16 Dec 2006 01:42:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2006/12/16/88105.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/88105.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2006/12/16/88105.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/88105.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/88105.html</trackback:ping><description><![CDATA[转1：<br /><p>8月13日有很多人的电脑出现generic host process for win32 services出错的问题,一直没怎么注意,直到自己也出现问题..但网上找了很多方法都没用,只有自己想办法了..下面把方法公布一下<br />这是对方利用的漏洞补丁,装好就没事了<br /><a href="http://www.microsoft.com/china/technet/security/bulletin/MS06-040.mspx">http://www.microsoft.com/china/technet/security/bulletin/MS06-040.mspx</a><br />这里是手动处理的方法:</p><p>端口禁止的方法:<br />首先进入控制面板-管理工具-本地安全策略<br />第一步，点击“开始”菜单/设置/控制面板/管理工具，双击打开“本地安全策略”，选中“IP 安全策略，在本地计算机”，在右边窗格的空白位置右击鼠标，弹出快捷菜单，选择“创建 IP 安全策略”，于是弹出一个向导。在向导中点击“下一步”按钮，为新的安全策略命名；再按“下一步”，则显示“安全通信请求”画面，在画面上把“激活默认相应规则”左边的钩去掉，点击“完成”按钮就创建了一个新的IP 安全策略。 <br />第二步，右击该IP安全策略，在“属性”对话框中，把“使用添加向导”左边的钩去掉，然后单击“添加”按钮添加新的规则，随后弹出“新规则属性”对话框，在画面上点击“添加”按钮，弹出IP筛选器列表窗口；在列表中，首先把“使用添加向导”左边的钩去掉，然后再点击右边的“添加”按钮添加新的筛选器。 <br />第三步，进入“筛选器属性”对话框，首先看到的是寻址，源地址选“任何 IP 地址”，目标地址选“我的 IP 地址”；点击“协议”选项卡，在“选择协议类型”的下拉列表中选择“UDP”，然后在“到此端口”下的文本框中输入“1434”，点击“确定”按钮，这样就添加了一个屏蔽 TCP 1434（RPC）端口的筛选器，它可以防止外界通过1434端口连上你的电脑。 <br />点击“确定”后回到筛选器列表的对话框，可以看到已经添加了一条策略，建立好上述端口的筛选器，最后点击“确定”按钮。 <br />第四步，在“新规则属性”对话框中，选择“新 IP 筛选器列表”，然后点击其左边的圆圈上加一个点，表示已经激活，最后点击“筛选器操作”选项卡。在“筛选器操作”选项卡中，把“使用添加向导”左边的钩去掉，点击“添加”按钮，添加“阻止”操作：在“新筛选器操作属性”的“安全措施”选项卡中，选择“阻止”，然后点击“确定”按钮。</p><p>第五步、进入“新规则属性”对话框，点击“新筛选器操作”，其左边的圆圈会加了一个点，表示已经激活，点击“关闭”按钮，关闭对话框；最后回到“新IP安全策略属性”对话框，在“新的IP筛选器列表”左边打钩，按“确定”按钮关闭对话框。在“本地安全策略”窗口，用鼠标右击新添加的 IP 安全策略，然后选择“指派”。 <br />重启电脑<br />比起补丁来说,还是封端口让人放心..<br /><br />转2：<br />解决WINXP系统开机后弹出Generic host process for win32 services 遇到问题需要关闭！<br />     出现上面这个错误一般有三种情况。<br />      1.就是病毒。开机后会提示Generic Host Process for Win32 Services 遇到问题需要<br />      关闭”“Remote Rrocedure Call (RPC)服务意外终止，然后就自动重起电脑。一般该病毒会在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 下建立msblast.exe键值，还会在c:\windows\system32目录下会放置一个msblast.exe的木马程，解决方案如下：<br />       RPC漏洞<br />      详细描述:<br />       最近发现部分RPC在使用TCP/IP协议处理信息交换时不正确的处理畸形的消息导致存在一个安全漏洞。该漏洞影响使用RPC的DCOM接口，这个接口用来处理由客户端机器发送给服务器的DCOM对象激活请求(如UNC路径)。如果攻击者成功利用了该漏洞将获得本地系统权限，他将可以在系统上运行任意命令，如安装程序、查看或更改、删除数据或者是建立系统管理员权限的帐户等.<br />已发现的一个攻击现象：<br />        攻击者在用户注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 下建立一个叫“msupdate”(估计有变化)的键，键值一般为msblast.exeC:\windows\system32目录下会放置一个msblast.exe的木马程序.<br />另外受攻击者会出现“Generic Host Process for Win32 Services 遇到问题需要关闭”“Remote Rrocedure Call (RPC)服务意外终止，Windows必须立即重新启动”等错误信息而重启。<br />建议到<a href="http://www.microsoft.com/security/security_bulletins/ms03-026.asp" target="_blank">http://www.microsoft.com/security/security_bulletins/ms03-026.asp</a>下载相应补丁。如果已受攻击，建议先拔掉网线，在任务管理器中结束msblast.exe进程，清除注册表中的相应条目，删除system32下的木马程序，最后打补丁。<br /><br /><br />       第二种情况是排除病毒后，还出现这样的问题，一般都是IE组件在注册表中注册信息被破坏，可以按下面的方法去解决该问题：<br />       1。 在"开始"菜单中打开"运行"窗口，在其中输入"regsvr32 actxprxy.dll"，然后"确定"，接着会出现一个信息对话 框"DllRegisterServer in actxprxy.dll succeeded"，再次点击"确定"。<br />　　　2 再次打开"运行"窗口，输入"regsvr32 shdocvw.dll<br />　　　3 再次打开"运行"窗口，输入"regsvr32 oleaut32.dll<br />　　　4 再次打开"运行"窗口，输入"regsvr32 actxprxy.dll<br />　　　5 再次打开"运行"窗口，输入"regsvr32 mshtml.dll<br />　　　6 再次打开"运行"窗口，输入"regsvr32 msjava.dll<br />　　　7 再次打开"运行"窗口，输入"regsvr32 browseui.dll<br />　　　8 再次打开"运行"窗口，输入"regsvr32 urlmon.dll<br />      如果排除病毒问题后，做完上面的几个IE组件注册一般问题即可得到解决。<br /><br />      3.如果电脑有打印机，还可能是因为打印机驱动安装错误，也会造成这个错误。解决方法如下：<br />重装打印机驱动程序。<br />     一般情况下做到上面三步后，该问题即可得到全面解决。 <br /><br />【下载】KB894391，windows更新，适用2000以上的系统<br /><br />概述<br />Install this update to address an issue that may cause a "Generic Host Process" error message to be displayed after you install security update MS05-012, or cause attachment file names not to be displayed in Rich Text e-mail messages. After you install this update, you may have to restart your computer.<br /><br />不是关键更新，这个更新就是针对：在前一段时间许多朋友碰到的问题：Generic Host Process出现错误需要关闭。<br />xp:<br /><a href="http://download.microsoft.com/download/e/5/d/e5d36b32-6f7c-45c1-82a7-3fa483442bda/WindowsXP-KB894391-x86-CHS.exe" target="_blank">http://download.microsoft.com/download/e/5/d/e5d36b32-6f7c-45c1-82a7-3fa483442bda/WindowsXP-KB894391-x86-CHS.exe</a><br />2003sp1:<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c4b0d34c-2796-4be1-b509-c7aff9d593b0" target="_blank">http://www.microsoft.com/downloads/details.aspx?FamilyID=c4b0d34c-2796-4be1-b509-c7aff9d593b0</a>&amp;DisplayLang=zh-cn<br /><br /><br /><strong><span style="COLOR: red">如果你问题仍没解决，这里有几篇更详细的说明，想必问题一定能得到解决：</span></strong><br /><br /><a href="http://bbs.coralqq.com/thread-252431-1-2.html" target="_blank">http://bbs.coralqq.com/thread-252431-1-2.html</a><br /><br /><a href="http://bbs1.greedland.net/topic.php?topicId=849166&amp;forumId=19&amp;sortId=0&amp;enterSortId=0&amp;forumPage=1" target="_blank">http://bbs1.greedland.net/topic.php?topicId=849166&amp;forumId=19&amp;sortId=0&amp;enterSortId=0&amp;forumPage=1</a><br /><br /><br />==============================================================<br /><span style="COLOR: brown">病毒预警！（关于Generic Host Process for Win32 Services错误）</span><br /><br />从8月13日中午开始发现很多人出现了svchost.exe出现错误的情况，并且ADSL PPPOE连接失效，症状为任务栏中连接显示状态不正常，无法正常断开连接，无数据流量。任务栏声音按钮消失。同时声卡失效。<br />据某外国网站介绍 今天 截获了一个利用 MS06-040 漏洞的蠕虫病毒 并且主要攻击 win200系统<br />该病毒 在系统文件夹下释放 wgareg.exe 和wgavm.exe文件<br />该蠕虫会在系统中建立如下服务<br />服务名称 wgareg <br />服务描述 Windows Genuine Advantage Registration Service （windows正版 验证 服务）<br />描述 Ensures that your copy of Microsoft Windows is genuine and registered. Stopping or disabling this service will result in system instability. <br /><br />服务名称 wgavm<br />服务描述 Windows Genuine Advantage Validation Monitor <br />具体描述 Ensures that your copy of Microsoft Windows is genuine. Stopping or disabling this service will result in system instability..<br />可以看出来 是伪装 windows正版 验证的蠕虫 <br />并且病毒会自动使用TCP 18067端口 连接bbjj.househot.com ypgw.wallloan.com<br />由于此病毒来势汹汹 所以发布病毒预警！<br /><br />解决办法 赶快打上 MS06-040 补丁 <br />都是从外国网站翻译过来的 不一定对 仅供参考<br />附补丁地址 <br />1）Microsoft 安全公告 MS06-040 Server 服务中的漏洞可能允许远程执行代码 (921883)<br /><br /><a href="http://www.microsoft.com/downloads/info.aspx?na=90&amp;p=&amp;SrcDisplayLang=zh-cn&amp;SrcCategoryId=&amp;SrcFamilyId=2996b9b6-03ff-4636-861a-46b3eac7a305&amp;u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f3%2f1%2fb%2f31be1ef4-18e0-44a1-bc80-1753b8b43528%2fWindowsXP-KB921883-x86-CHS.exe" target="_blank">补丁下载</a>   补丁版本号：921883<br /><br />2）启动计算机, 或 DBCS 附件文件名称不显示 RTF 电子邮件中后收到 " 通用主机进程 " 错误信息<br /><br />地址：<br /><br /><a href="http://support.microsoft.com/?kbid=894391" target="_blank">http://support.microsoft.com/?kbid=894391</a><br /><br /><br /></p><img src ="http://www.blogjava.net/matthew2006/aggbug/88105.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2006-12-16 09:42 <a href="http://www.blogjava.net/matthew2006/archive/2006/12/16/88105.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在WIN XP里，为什么图片的缩略图不能显示图片内容？</title><link>http://www.blogjava.net/matthew2006/archive/2006/12/14/87822.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Thu, 14 Dec 2006 14:02:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2006/12/14/87822.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/87822.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2006/12/14/87822.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/87822.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/87822.html</trackback:ping><description><![CDATA[这是WINXP的图片预览功能，对应的控件是shimgvw.dll，现在你可以通过regsvr32命令重新注册控件来达到修复的目的。 <br />因为你的系统是WINXP <br />你在运行里面输入以下内容可以修复: <br />regsvr32 shimgvw.dll <br /><br />如果是WIN2000系统的话，那对应的空间就是thumbvw.dll，则要输入: <br />regsvr32 thumbvw.dll<img src ="http://www.blogjava.net/matthew2006/aggbug/87822.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2006-12-14 22:02 <a href="http://www.blogjava.net/matthew2006/archive/2006/12/14/87822.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于硬盘无法双击打开，必须右键选择“打开”问题的解决方案－转贴</title><link>http://www.blogjava.net/matthew2006/archive/2006/12/01/84924.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Fri, 01 Dec 2006 11:39:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2006/12/01/84924.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/84924.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2006/12/01/84924.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/84924.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/84924.html</trackback:ping><description><![CDATA[
		<span class="tpc_content">问题答案：中了“落雪病毒”<br /><br /><u><font color="blue"><b>解决方案A:</b></font></u><br /><br />最简单的，一个小工具,见附件<br /><br /><u><font color="blue"><b>解决方案B:</b></font></u><br /><br />打开注册表。 <br /><br />然后依次展开下列项： <br /><br />HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2 <br /><br />将子目录下所有带加号“+”的项依次展开，如果发现有一项叫做“command”的这就是被病毒篡改过的了。正常模式下这一项应该为“DropTarget”。 <br /><br />解决方案很简单，只需把“病变”的项从“AutoRun”(注意是从“AutoRun”)往下全部删除即可<br /><br /><u><font color="blue"><b>解决方案C: </b></font></u><br /><br />1终结WINLOGON.EXE<br />系统不能终结，下冰仞终结<br />2下载注册表修复工具RegFix.exe<br />将注册表修复工具RegFix.exe的后缀改为.scr。运行RegFix.scr，选择“全自动修复”，修复主要文件关联。<br />3删除下列文件<br />C:\WINDOWS\1.com<br />C:\WINDOWS\ExERoute.exe<br />C:\WINDOWS\explorer.com<br />C:\WINDOWS\finder.com<br />C:\WINDOWS\WINLOGON.EXE<br />C:\WINDOWS\Debug\DebugProgram.exe<br />C:\Program Files\Common Files\iexplore.pif<br />C:\Program Files\Internet Explorer\iexplore.com<br />C:\WINDOWS\system32\command.pif<br />C:\WINDOWS\system32\dxdiag.com<br />C:\WINDOWS\system32\finder.com<br />C:\WINDOWS\system32\MSCONFIG.COM<br />C:\WINDOWS\system32\regedit.com<br />C:\WINDOWS\system32\rundll32.com<br />D:\autorun.inf<br />D:\pagefile.pif<br />4清理注册表<br />HKEY_CLASSES_ROOT\.bfc\ShellNew<br />将"Command"="%SystemRoot%\\system32\\rundll32.com"改为"Command"="%SystemRoot%\\system32\\rundll32.exe"<br /><br />HKEY_CLASSES_ROOT\.lnk\ShellNew<br />删除"Command"="rundll32.com <br /><br />HKEY_CLASSES_ROOT\Applications\iexplore.exe\shell\open\command<br />将@="\"C:\\Program Files\\Internet Explorer\\IEXP1ORE.com\" %1"改为@="\"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE" %1"<br /><br />HKEY_CLASSES_ROOT\cplfile\shell\cplopen\command<br />将@="rundll32.com shell32.dll,Control_RunDLL \"%1\",%*"改为@="rundll32.exe shell32.dll,Control_RunDLL \"%1\",%*"<br /><br />HKEY_CLASSES_ROOT\dunfile\shell\open\command<br />将@="%SystemRoot%\\system32\\rundll32.com NETSHELL.DLL,InvokeDunFile %1"改为@="%SystemRoot%\\system32\\rundll32.exe NETSHELL.DLL,InvokeDunFile %1"<br /><br />HKEY_CLASSES_ROOT\htmlfile\shell\print\command<br />将@="rundll32.com %SystemRoot%\\system32\\mshtml.dll,PrintHTML \"%1\""改为@="rundll32.exe %SystemRoot%\\system32\\mshtml.dll,PrintHTML \"%1\""<br /><br />HKEY_CLASSES_ROOT\inffile\shell\Install\command<br />将@="%SystemRoot%\\System32\\rundll32.com setupapi,InstallHinfSection DefaultInstall 132 %1"该为@="%SystemRoot%\\System32\\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %1"<br /><br />HKEY_CLASSES_ROOT\InternetShortcut\shell\open\command<br />删除@="finder.com "<br /><br />HKEY_CLASSES_ROOT\scrfile\shell\install\command<br />删除@="finder.com"<br /><br />HKEY_CLASSES_ROOT\scriptletfile\Shell\Generate Typelib\command<br />删除@="\"C:\\WINDOWS\\system32\\finder.com\""<br /><br />HKEY_CLASSES_ROOT\telnet\shell\open\command<br />删除@="finder.com"<br /><br />HKEY_CLASSES_ROOT\Unknown\shell\openas\command<br />删除@="%SystemRoot%\\system32\\finder.com"<br /><br />HKEY_CLASSES_ROOT\winfiles\Shell\Open\Command<br />删除@="C:\\WINDOWS\\ExERoute.exe \"%1\" %*"<br /><br />HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run<br />删除"Torjan Program"="C:\\WINDOWS\\WINLOGON.EXE"<br /><br />HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices<br />删除"Torjan Program"="C:\\WINDOWS\\WINLOGON.EXE"<br /><br />HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon<br />将"Shell"="Explorer.exe 1"改为"Shell"="Explorer.exe</span>
		<br />
		<a href="http://www.yvvv.com/UploadFiles/2006-9/929113633.rar">UploadFiles/2006-9/929113633.rar</a>
<img src ="http://www.blogjava.net/matthew2006/aggbug/84924.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2006-12-01 19:39 <a href="http://www.blogjava.net/matthew2006/archive/2006/12/01/84924.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何准备软件工程师的面试－转贴</title><link>http://www.blogjava.net/matthew2006/archive/2006/11/25/83449.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Sat, 25 Nov 2006 07:18:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2006/11/25/83449.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/83449.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2006/11/25/83449.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/83449.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/83449.html</trackback:ping><description><![CDATA[（作者简介: 王忻，Google 工程师。北京出生，五岁时跟随父母移居美国。中学期间跳了三级，十五岁进入了加州理工大学，加入 Google 前曾在微软等公司工作。）<br />
<br />
六月份的时候，我曾经在黑板报上介绍过&#8220;<a href="http://googlechinablog.com/2006/06/blog-post_14.html" target="_blank"><font color="#336699">如何写一份好的工程师简历</font></a>&#8221;， 今天想跟大家来谈谈如何准备软件工程师的面试？假设，现在您的杀手简历 (killer resume)已经吸引了某大公司的注意并约你面试。那么接下来该如何准备呢？<br />
<br />
我在 Google（以前是微软）工作期间面试了不下300人，其中某些应聘者确实表现非凡，但有些却显得准备不足。当然许多面试准备不足的人最后依然获得了录用通知，因为他们本身确实才华出众。但如果应聘者能提前准备妥当，那么面试过程将更为保险和轻松。以下所列出的就是我根据多年经验总结得出的建议：<br />
<br />
1．使用相同的工具（如铅笔和纸张）和时间限制（例如半个小时）模拟面试训练<br />
<br />
Google和微软都会让应聘者在白板上手工解答编程问题，但通常大部分的应聘者都是习惯于在电脑上利用编程工具系统编写程序。因此面试的时候，某些应聘者离开了熟悉的电脑光标，站在白板前感觉手足无措不知该如何起行。又或者他们不习惯在编程之时旁边有人观看，这会让他们感到紧张而无法正常思考。<br />
<br />
在现实生活中，如果你想要横渡英吉利海峡，自然不能总是在室内游泳池练习。你必须投身于大海在波涛之中训练，在准备面试的时候也是如此。:)<br />
<br />
在面试开始之前你最好向招聘单位询问面试形式和面试问题。如果招聘单位让你在某个房间考试且仅提供没有汇编程序的编辑器，那么就应该在家中按照这种情景进行练习。如果招聘公司单位让你在白板上回答问题并会安排考官在旁监督，那么你就要找一位软件工程师来扮演考官配合你练习。即使找来的考官经验不如你也没有关系，他们依然能帮助你消除在他人面前出错所带来的紧张感，这样可以让你适应有人在旁边盯着看的面试氛围。<br />
<br />
如果你恰巧认识我并希望由我来帮你联系，那我的条件就是必须请我吃饭：如果你已经工作了就吃日本寿司大餐；如果你还是学生，那么吃比萨饼也可以。:)<br />
<br />
2．在面试过程中不要对细小错误耿耿于怀<br />
<br />
我曾不止一次的在面试过程中碰到这种情况：当应聘者知道编程问题后，他马上就想到了最佳的方案、确定了边界条件，然后开始编写程序。但在编写过程中，应聘者犯了诸如首先检查是不是操作顺序错误或忘记设定某变量等无关大局的小错误，当我指出其错误之后，应聘者立刻变得十分紧张，这种焦虑情绪影响了他在后面环节的正常发挥。<br />
<br />
其实这种恐惧心理完全不必要。一名优秀的程序员在编程过程中出现错误也是很正常的，就像是小提琴手在演奏高难度的巴赫交响乐时也会偶尔失误。音乐会的听众可能会觉察到这些错误，但是听众绝对不会因为这种细小失误就把出色的小提琴手看作是门外汉。<br />
<br />
即便应聘者彻底搞砸了某个编程问题，面试考官也可能会提出不同的问题并会容忍应聘者在某个问题上的失误。再退一步说，就算某次面试彻底失败，你也有机会在其它面试上补救。<br />
<br />
我的一位同事（一个项目的技术负责人）最近面试了一个人，在开始面试时他觉得面试者的交流方式存在问题，因此开始表现的相当不友好。但经过了整个面试过程后，面试者证明了自身的能力，而我的那位同事也成了那位面试者最坚定的支持者。在过去的一年中，我从未见过这位同事如此强烈的支持哪位面试者。<br />
<br />
所以，因此就算面试进展不顺，也务必坚持到底不要放弃。<br />
<br />
3．在面试过程中不要失礼<br />
<br />
这似乎是不用说的问题，但在面试过程中我确实碰到过影响很不好的失礼行为。曾有一位前来应聘软件工程师的人看到我就说：&#8220;哇，我真不敢相信你这么年轻！你看上去好小！！我觉得你才 18 岁！&#8221;<br />
<br />
面试者的这种言行实在要不得。<br />
<br />
面试者也要注意不要说出诸如此类的话：&#8220;哇，你真的就是考官吗？你看上去好老！&#8221;&#8220;哇，你真的是来面试我的，你看上去好胖！&#8221;（相信应该不会有人说这样的话）。<br />
<br />
在我的另外一次面试中，应聘者的手机在面试开始 15 分钟之后就响了，她没有理会，手机连续响了 20 秒，这样不免会对面试造成影响。5分钟之后，她的手机又响了，她依然没有理会；5分钟之后，手机第三次响起。最后她终于抓过手提包在里面翻出了手机。我想：&#8220;是时候关掉手机了，她在进来之前就应该把手机关掉。&#8221;但是她在手提包中拿出手机之后却旁若无人的打起电话来，而且就在面试过程中间！<br />
<br />
这种情况唯一可接受的理由就是他有什么非常紧急的事，但是即便情况如此，那么他也应该在面试开始之时就讲清楚，让面试官有所准备。<br />
<br />
4．不要在面试中喧宾夺主<br />
<br />
我曾经面试过几个应聘者，他们好像铁了心肠一定要告诉我他们最近的&#8220;超级项目&#8221;。当我开始发话他们就立刻打断：&#8220;我想让你了解我们近期处理的超级项目，10年之前当这个项目开始之时还默默无闻&#8230;&#8230;&#8221;，然后接下来的5分钟时间都在那里滔滔不绝唾沫横飞。<br />
<br />
有时应聘者好像打定主意要给每个考官详细描述其引以为豪的项目，然后一整天都在那里翻来覆去的说这个项目。<br />
<br />
记住：面试官在面试过程中有具体的问题需要询问。但是如果应聘者喧宾夺主，那么考官就可能无法获得充分的信息来做出判断，同时这种行为也会让考官觉得应聘者很难共事。<br />
<br />
如果你确实想谈论自己的项目，那么就应询问面试官：&#8220;我觉得最近的某某项目能充分体现我的能力，我能不能用 10分钟的时间来描述一下具体情况？&#8221;这样就会给面试官空间来调整面试过程，由此也避免毫无征兆就让面试离题万里。<br />
<br />
5．在回答需要具体答案的问题之时，记得首先要有总括性的发言<br />
<br />
有时我会问一个答案可以很简练的问题，例如：&#8220;在你的那个成功项目中总共有多少人参与？&#8221;但应聘者往往会就此打开话匣：&#8220;恩，张三参与了这个项目，他负责UI部分，当然我也会给他一些指导。李四也在项目中，她在宾州远程工作，负责后端服务器。两年之后我们又有新人王五加入&#8230;&#8230;&#8221;<br />
<br />
在应聘者滔滔不绝的讲了三分钟之后，我还是不知道这个项目到底有多少人参与。<br />
<br />
因此首先要简练的回答问题，然后再展开描述：&#8220;在我接手项目时有三个人，但当我离开项目时人数已经增加到12人。&#8221;<br />
<br />
当然如果能简练的回答问题，然后征询意见之后再展开论述那就更好了：&#8220;在我接手项目时有三个人，但当我离开项目时人数已经增加到 12 人。我可以讲一下各人在项目中的具体分工吗？&#8221;<br />
<br />
6．（不是特别重要）在面试中要衣着得体，舒适的商务便装是最佳的选择<br />
<br />
人们有时候会为衣着犯愁。但是最重要的是要让自己感觉舒适。如果需要具体的建议，那么我建议穿衬衫甚至T恤衫。对于某些公司（例如 Google），西装革履显然是太隆重了。<br />
<br />
这条建议不必太看中，因为面试官不会管应聘者穿什么。最好应该询问人事招聘部门穿什么合适，因为不同国家有不同习俗，就算美国东海岸和西海岸的公司着装文化也会有差别。像 Google 这样的公司在着装方面更加随意，因此如果你穿着&#8220;三件套&#8221;的经典西服去 Google面试，考官可能会有异样的感觉。因此如果你真的具备软件工程的本领，穿什么其实并不重要。某个应聘者曾经穿着皱巴巴脏兮兮的T恤就跑来面试，他的T恤衫上还有着许多破洞。但最后他还是拿到了录取通知（当然我绝不建议如此穿着）。<br />
<br />
最后的一个小故事<br />
<br />
最后我想讲一场极为尴尬的面试。在看完之后，我希望你能这样想：无论你的面试如何糟糕，你至少要比这位应聘者幸运。<br />
<br />
以前我还在微软的时候，我们通常会为应聘者准备一些饮料，某位暂称其为 Jeff 的应聘者要了一听百事可乐。我们走进面试房间后，他就在桌前坐下了。接下来我们简要的谈了谈他的工作经历，然后他开始在白板上解答编程问题，此时他还没有打开他的可乐。<br />
<br />
我们俩站在白板前，然后杰夫开始在上面写程序。在写程序之时他沉浸在对整体构架的思考中，下意识的退了一步来查看整个白板。在后退时他不小心碰到了桌子，放在桌上的百事可乐掉到了地上。<br />
<br />
因为可乐还没有打开，因此当可乐罐落地的时候，可乐罐炸开了。<br />
<br />
可乐罐在地上打转，泡沫喷的到处都是。你可以想象当时的场景，可乐喷到了墙上、书架还有我电脑的键盘上。我俩楞在那里，手都半伸着（根本来不及抓到可乐罐），眼睁睁的看着可乐弄得到处都是。<br />
<br />
我们花了 5 分钟的时间用纸巾来清理现场（虽然我的书本自那天之后都粘页了，而墙壁也不再是干净的了）。<br />
<br />
随后我们重新开始白板测试。杰夫此时已非常紧张（换了谁都会紧张吧？）。他写了几行程序，然后擦掉，然后再写。他是用自己的手擦拭白板而不是用板刷。他急得额头冒汗，然后他又用刚刚擦过白板的手擦汗。在面试过程结束之时，他的脸上布满了红色、绿色和蓝色的颜料。<br />
<br />
我说：&#8220;你的手上粘了很多颜料，我带你去卫生间洗洗吧，&#8221;然后我把他领到洗手间让他从镜中看到了自己的尊容。<br />
<br />
<img src ="http://www.blogjava.net/matthew2006/aggbug/83449.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2006-11-25 15:18 <a href="http://www.blogjava.net/matthew2006/archive/2006/11/25/83449.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何写一份好的工程师简历－转贴</title><link>http://www.blogjava.net/matthew2006/archive/2006/11/25/83448.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Sat, 25 Nov 2006 07:16:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2006/11/25/83448.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/83448.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2006/11/25/83448.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/83448.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/83448.html</trackback:ping><description><![CDATA[<font color="#666666">
<span class="byline-author">发表者：王忻，Google 工程师 </span>
<br />
<br />
</font>最近三年作为 Google（谷歌）的软件工程师，我每周会帮人事部门审查简历，决定要不要给他们面试。Google 这几年的发展让很多许多优秀的工程师都前来申请。到目前为止，我已经看了上千份简历，有些简历留下的印象比别的好很多。尤其是最近亲戚朋友常常问我如何修改他们的简历，所以我积累了一些常见的错误避免的提议，在此跟大家交流一下。<br />
<br />
<span style="font-weight: bold;">1．谈到你做过的技术时，应该提到用的程序语言、你的个人贡献和产品细节。</span><br />
<br />
有时我看到有人把过去的经验在简历上一笔带过，比如说：<br />
<br />
&#8226; 在三人小组里，为电子邮件软件写了些 features。<br />
<br />
这是远远不够的，看简历的人希望了解你做的工作的难度和对本公司有多少联系，所以你最好写的具体一些。譬如：<br />
<br />
&#8226; 用 C++ 语言写了网络电子邮件的自动 backups。在三人小组里，专门负责设计和写储存服务器。从设计开始， 一年后把这个功能 feature 的用户推到了三千。<br />
<br />
<span style="font-weight: bold;">2．多讲事实, 少用形容词。</span><br />
<br />
看简历的人读你的简历时，需要做判断，所以在简历里需要事实和数目。如果你写&#8220;迅速的提高了软件的操作效率&#8221;，看简历的人很难判断你成就的难度。但如果你写&#8220;在3个星期内，把软件的操作效率提高了40%&#8221; 就好多了。<br />
<br />
有些谦虚的朋友们不愿意把话说满，所以你也可以用这个办法。你如果说自己&#8220;突出&#8221;或&#8220;在项目上常常被请去救火&#8221;，听起来难免会有点骄傲。但你也可以用不能否认的事实来说明你的观点，如&#8220;《纽约日报》评这个产品为&#8216;突出&#8217;&#8221;，或&#8220;加入了三个原本已落后于计划的项目小组，但经过努力和组员一起把它们都按时完成了。&#8221;<br />
<span style="font-weight: bold;"><br />
3．你获得的奖、商业的荣誉或表扬、受用户欢迎的产品和你做过的有难度的业余项目都该包括在简历里。</span><br />
<br />
我有位朋友在硅谷一个著名的硬件公司做了六年，她设计的 IP phone（网络电话）为公司赚了上亿的收入，被公司与商业报道多次评了奖。我有一次在旧金山的高速公路上驾车时，看到路边有她产品的广告牌；还有一次我去上海度假时，竟然发现上海公路边上也有！<br />
<br />
不久，这位朋友决定换工作，请我看看她的简历。我惊讶的发现，她居然轻描淡写的写了一句-- "1998 &#8211; 2004：网络电话产品的硬件工程师组长" 和她的职责。<br />
<br />
"产品赢的奖呢？它为公司赚的钱呢？" 我追问到。<br />
<br />
"那些也该写吗？" 她说。<br />
<br />
当然该写。<br />
<br />
有人问，业余时间做的项目可不可以写？我觉得只要你的项目有代表性能说明对你的能力，都该包括。<br />
<br />
<span style="font-weight: bold;">4．分清主次，删掉相比之下不起眼的成绩，以免冲淡更加突出的成绩。</span><br />
<br />
有朋友问，写简历是不是写的越多越好？譬如：<br />
<br />
在甲公司做暑假实习生——<br />
* 改善电子游戏的数值分类算法， 减少了内存要求 10%。<br />
* 用 Java 写了 3000 行用户界面程序。<br />
* 每周做两小时的人工测试。<br />
<br />
你在申请软件工程师的职位时，我觉得前两点比较相关，第三点其实就不必写了。有时我看到有的简历里会提到，"按时完成了任务，产品符合原计划规格"。但读简历的人通常会认为这是理所当然的，而你把这些声明出来反而减弱简历的效果。<br />
<br />
写一份简历不容易，但写好了也会带来成就感 （和好工作！）。 Google （谷歌）在中国广召各方面的人才，你不妨可以给我们投个简历！我们不但在信息检索方面招雇工程师，还有计算机图形、用户界面、硬件、Windows、质量保证员和系统管理员等方面。更多信息，请您访问<a href="http://www.google.com/intl/zh-CN/jobs/index.html" target="_blank">这里</a>。 
<img src ="http://www.blogjava.net/matthew2006/aggbug/83448.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2006-11-25 15:16 <a href="http://www.blogjava.net/matthew2006/archive/2006/11/25/83448.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBuilder 2007 发布-转帖</title><link>http://www.blogjava.net/matthew2006/archive/2006/11/24/83164.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Fri, 24 Nov 2006 00:40:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2006/11/24/83164.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/83164.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2006/11/24/83164.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/83164.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/83164.html</trackback:ping><description><![CDATA[Borland 宣布发布JBuilder 2007 版本.<br /><br />JBuilder 2007 是基于Eclipse重新设计, 以一系列Eclipse插件的形式发布, 所以用户可以一起使用JBuilder 2007以及其他Eclipse插件.<br /><br />JBuilder 2007 包括<br />OptimizeIt for code profiling<br />Team Insight for integration with various collaboration and CI tools<br />LiveSource for UML modeling of Java projects<br />Visual EJB, for GUI design of EJB modules<br /><br />更早之前Borland表示将出售旗下IDE业务, 开始标志着JBuilder的没落, 今天发布的JBuilder 2007 甚至也是基于Eclipse平台. 而之前的Eclipse 5年回顾与10年展望 也展示了Eclipse的美好前景. 这是一个IDE新老霸主的强烈对比.<br /><br />不过, 既然是JBuilder 2007 是基于Eclipse搭建, 对开发者而言, 为何要使用JBuilder 2007 , 而不是直接使用Eclipse? 你会尝试一下JBuilder 2007 吗?<br /><br />官方站点:<br /><a href="http://www.borland.com/us/products/jbuilder/index.html">http://www.borland.com/us/products/jbuilder/index.html</a><br /><br /><script type="text/javascript"><!--
google_ad_client = "pub-7390275636631344";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//google_ad_channel ="3058601811";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_url = "008000";
google_color_text = "000000";
//--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><img src ="http://www.blogjava.net/matthew2006/aggbug/83164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2006-11-24 08:40 <a href="http://www.blogjava.net/matthew2006/archive/2006/11/24/83164.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EJB3.0：是脱胎换骨，还是重蹈覆辙？-转帖</title><link>http://www.blogjava.net/matthew2006/archive/2006/11/24/83160.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Fri, 24 Nov 2006 00:37:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2006/11/24/83160.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/83160.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2006/11/24/83160.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/83160.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/83160.html</trackback:ping><description><![CDATA[     今年EJB3.0规范已经正式发布了。Sun非常自信地向业界宣布，这个EJB版本将有效地减轻开发难度，通过使用EJB3.0，可以大大降低开发成本。但也有人批评说，Sun在EJB中加入了很多Java EE 5的新特性，如EJB3.0将使用注释(annotations)来进行配置。这将增加开发人员的学习成本，虽然从表面上是简单了，但实际上并没有明显降低开发难度。还有人批评Sun的EJB3.0的持久层架构抄袭了Hibernate。EJB3.0真的象他们所说的那样是Hibernate的翻版吗？EJB3.0是否能依靠它的新架构和Java EE 5的支持摆脱人们对EJB1.x和EJB2.x的恐惧呢？EJB3.0在未来是否能成为对象持久化的代名词呢？ <br /><br />EJB：刚刚诞生就被打入冷宫 <br /><br />     在Java发展史上，曾有过很多重要的时刻。如在上世纪末，也就是在1998年，JSP和EJB的诞生就是一个不同寻常的时刻。JSP在诞生后，就立刻引起了很多开发人员的注意，并很快成为了Web开发的主流。而几乎和它同时诞生的EJB1.0却一直倍受冷落。在EJB1.0诞生后的几年，Sun又推出了EJB2.0规范，不过它的命运也可EJB1.0差不多，还是没有翻身。这其中最大的原因，我想是因为Sun没有兑现它承诺而造成的。 <br /><br />    Sun在发布J2EE相关规范和产品时承诺，J2EE将会使开发变得更容易，从而会显著降低开发成本。但在J2EE发布时，满心欢喜的人们却发现，被认为是J2EE中最有价值的组成部分：EJB却是如此的复杂。在编写EJB时需要进行大量的配置，而且还需要实现一大堆的接口。这不但没有降低开发难度，反而成为很多开发人员的恶梦。 <br />在EJB2.x刚出来的几年，国内有很多程序员盲目跟风，但当时，他们中的大多数都只是停留在EJB的“名词”阶段。而当他们开始熟悉并使用EJB时，却发现并不是象他们想得那样美妙。 <br /><br />    不知道Sun的EJB设计人员是如何考虑的。本来通过很简单的方法就可以从数据库中得到数据，而EJB却要专门为其修一条一级的高输公路，将本来就不多的数据运了出来，这简直就是多此一举。 <br /><br />    在取数据时经过这样的周折，它的效率也大受影响。也许Sun当初根本就没考虑过它的效率。 <br /><br />    实体Bean在EJB2.0后就成为EJB最重要的一部分，但是它的概念重来就没清楚过。如Sun建议将业务逻辑代码放到会话Bean中，也就是说，前端应该直接访问会话Bean。而作为对数据直接封装的实体Bean却提供了远程接口，这也就意味着前端也可以直接访问实体Bean。这就与多程序应用结构不太符合。还有就是实体Bean既然是对数据的原始封装，那为什么要提供事务、安全这些业务逻辑层的功能。更不可思议的是实体Bean既然提供了本地接口，那又为什么不通过本地接口，而要通过JNDI查找呢？这些概念上的混淆使得EJB更加难以使用。 <br /><br />    近几年非常流行的SOA(Service-Oriented Architecture)模式为企业级应用提供了更好的解决方案。然而SOA中的核心：服务，却和这个自称是企业级的Java Bean的EJB没有什么太大的关系。众所周知，SOA里的服务一般是指Web Services。而实现Web Services的方式很多，如果使用Java实现，一般是使用普通的Java Bean来包装成Web Services。最多也就是使用个无状态的Session Bean。而EJB的其它功能，尤其是强大的实体Bean，却很少使用。这不能不说，EJB已经越来越名不副实<br /><br />异军突起：欲取EJB而代之 <br /><br />    虽然EJB过于复杂，使用它的开发人员比较少，这并不等于人们对企业级的服务的需求小。相反，随着企业信息化程度越来越高，对方便易用的企业级服务的需要与日俱增。 <br />在EJB规范中，关于实体Bean的描述是最多的。看上去实体Bean的功能十分强大，但实际上并非如此。实体Bean的主要功能是对数据进行包装，从而使数据持久化。但这个EJB中最重要的功能也是最虚弱的。本来很简单的功能Sun却定义了一大堆接口，而且不能通过实体Bean进行SQL级的查询，并且实体Bean必须得依托EJB容器才能使用。这些限制大大降低了实体Bean的使用价值。 <br /><br />    虽然实体Bean的难以使用让人望而却步，但对数据持久化的需求没有一天停止过。自从在进入二十一世纪以来，有许多类EJB类似但更容易使用的数据持久化组件开始成为开发人员的新宠。这其中比较流行的有Hibernate、JDO和TopLink。 <br /><br />    在这里Hibernate当仁不让地成为了最耀眼的明星。Hibernate不能不说是一个奇迹，它在不到3年的时间里，从一个不起眼的开源软件成为了今天业界瞩目的主流O/R映射框架，它的创始人Gavin King也一夜成名。而EJB在它诞生后的几年时间里，却骂声不断，它们之间形成了强烈的反差。当然，从技术角度来说，Hibernate的技术并不是最先进的，而Gavin King也不是什么绝顶高手。Hibernate之所以能发展得如此快，主要是因为Hibernate的开发难度比较EJB小，而且Hibernate的使用并不依赖于具体的容器，可以将Hibernate使用在B/S或C/S的任何Java环境上。 <br /><br />    而今年夏天投票通过的JDO2.0标准从某种程度而言，并不逊色于Hibernate当前的版本，有些功能甚至比Hibernate还要好，例如 JDO支持对类属性的惰性装载，而Hibernate要到3才支持，当前Hibernate仅仅支持类的惰性装载。 <br /><br />    TopLink是比较古老的O/R映射框架，自从它被Oracle收购后，对Oracle数据库有了更好的支持。但这种框架并不是开源的，而且售价不菲。 <br /><br />    这几种O/R映射框架大有取代EJB之势，而Sun由于已经有了EJB，也不可能再做一个和这些框架类似的东本和它们竞争。因此，Sun要想扭转EJB的颓势，必须要从EJB下手。而EJB1.x和EJB2.x都以失败而告终，那么EJB的下一个版本EJB3.0又会如何呢，Hibernate的创始人Gavin King的加入会使EJB3.0成为继Hibernate的下一个新宠吗？<br /><br />Sun最后的反击：EJB3.0 <br /><br />    EJB经过了长达8年的卧薪尝胆，被Sun称为最简单的EJB3.0框架终于在今天正式推出了。也许是Sun意识到了自己的失误，在自定EJB规范时将以前繁琐的部分基本都已经去掉了。EJB3.0看起来就好象新的框架一样(这一点从它的规范就可以看出，EJB3.0的规范文件比EJB2.0规范文件的尺寸小得多)。 <br /><br />     EJB3.0和Java EE 5几乎是同时发布的，因此，EJB3.0中使用了很多Java EE 5的新特性。如EJB3.0在定义Bean时（包括会话Bean和实体Bean），不再使用各种各样的接口，而是使用Java EE 5提供的注释（annotations）进行定义，无论什么样的企业级Bean只是一个加了相应注释的简单的Java对象（POJO）。不仅如此，EJB3.0中已经全面使用注释取代了接口。如定义<br />Bean的业务接口、O/R映射信息、资源引用信息等都使用注释进行描述。 <br /><br />    由于Hibernate的创始人Gavin King加入了EJB小组，负责制定EJB的O/R映射规范。因此，EJB3.0的O/R映射也十分类似Hibernate。这使得熟悉Hibernate的开发人员学习EJB3.0非常容易。这说明EJB3.0正在和Hibernate走向溶合。 <br /><br />    同时Hibernate也提供了两套API，一套是Hibernate本身的API，另外一套是和EJB3.0兼容的API。也就是说，只要使用Hibernate第二套API，就很容易将其使用Hibernate的程序移植到EJB3.0上。 <br /><br />    虽然EJB3.0刚刚发布，但已经有很多EJB服务器支持EJB3.0了，这其中跟得最紧的是JBoss，其次WebLogic、WebSphere等也随之跟进。因此，各大厂商还是对EJB3.0非常看好的。 <br /><br />    自从那些如Struts、Hibernate、Spring等轻量级的框架开始在市面上出现并流行时，很多开发人员开始跟随着这些开源大师的指挥棒的方向前进。EJB已经逐渐从人们的视线中淡出。但随着EJB3.0的问世，又将人们的视线拉了回来。毕竟，EJB出自Sun。如果它也能向Hibernate、JDO一样容易使用，那它是非常有前途的，至少我是这么认为的。现在EJB3.0已经和Hibernate在O/R映射上非常相似了，在未来，EJB3.0也许将成为轻量级框架的一员，让我们拭目以待吧！ <br /><img src ="http://www.blogjava.net/matthew2006/aggbug/83160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/matthew2006/" target="_blank">matthew</a> 2006-11-24 08:37 <a href="http://www.blogjava.net/matthew2006/archive/2006/11/24/83160.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>深圳和华为的文化冬天－转贴</title><link>http://www.blogjava.net/matthew2006/archive/2006/11/17/81675.html</link><dc:creator>matthew</dc:creator><author>matthew</author><pubDate>Fri, 17 Nov 2006 01:39:00 GMT</pubDate><guid>http://www.blogjava.net/matthew2006/archive/2006/11/17/81675.html</guid><wfw:comment>http://www.blogjava.net/matthew2006/comments/81675.html</wfw:comment><comments>http://www.blogjava.net/matthew2006/archive/2006/11/17/81675.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/matthew2006/comments/commentRss/81675.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/matthew2006/services/trackbacks/81675.html</trackback:ping><description><![CDATA[
		<font face="宋体" color="#000033">多少年后，当后来人从故纸堆里寻找中国的企业文化发展的痕迹时，有两个名字和一个词是无法回避的：任正非、华为和“狼文化”。<br />　　也许只有到多少年后，关于任正非提出的“狼文化”对中国企业乃至中国社会发展的影响才可能会有一个客观的评价。<br />　　任正非留给后人的文化产品肯定不仅仅是狼文化。他的《我的父亲母亲》、《北国之春》、《华为的冬天》等饱含感情和思辩的文章一定不仅仅是我们这代人争相传阅的，后来的研究者也许只能从这些文章中寻找任正非的性格、人品、经历的蛛丝马迹，因为任正非说过：这辈子都不会出自传和回忆录之类的文字。我相信他。<br />　　任正非是一个让很多中国企业家、中国人敬佩甚至崇拜的人。在一个时期让国人敬佩或崇拜并不是什么难事：社会、媒体炒作出的“唯富论”在我们生活的这个时代让一切富人都成为大家追捧的对象，一个又一个没有根据的富豪榜受到的关注远远超过有根有据的慈善榜、纳税榜、社会责任榜。但是，让象杨元庆、郭为、周鸿一这样众多知名的、性格迥异的企业家敬佩，在这个时代可能只有任正非。<br />　　我自己是在读到《我的父亲母亲》时对任正非产生敬佩之情的。在一个寒冷的深夜里，失去父亲不久的我坐在空荡的办公室里读到了这篇文章，还没读完就发现自己已是泪流满面。以后就很是关注华为和任正非，注意到了他提到的“狼性”，并且发现杨元庆这样的企业家对他提出的狼文化的顶礼膜拜。坦率地说，在一段时间内我很难把我读《我的父亲母亲》时对任正非的想象和提倡狼性的任正非统一起来，也有些弄不明白他被众多企业家敬佩的真正原因。在利润微薄、竞争激烈的PC行业里打拼的杨元庆对任的崇拜是可以理解的，那么象周鸿一这样的靠技术和聪明起家的、性格鲜明得有点张扬的企业家为什么也获佩任正非呢？<br />　　不仅仅在中国，任正非在世界企业界也享有广泛的声誉。2005年，任正非的名字与比尔•盖茨、史蒂夫•乔布斯等全球IT名人的名字一起出现在了美国 《时代周刊》评选的“2005年度全球最具影响力的100人”的名单上。从创立华为到带领它进入国际舞台，任正非一直以一个战略家的姿态导演着一个中国企业的骄傲。<br />　　客观地说，任正非的性格和思想决不是“狼性”就能概括的，他和他的华为的文化也不仅仅是“狼文化”。他脾气暴躁，但为人真诚，强调社会责任，也提倡和谐，重视情感，主张反思。他的管理思想和方法也是在不断完善，与时俱进。<br />　　但是，他在很长一段时间内最强调的无疑是“狼性”。由于他的强调，这种狼性被深深地印在华为所有员工的心里，并成为华为的标志文化；而由于“狼华为”的成功，“狼性”迅速成为中国企业乃至中国社会热捧和仿效的文化和观念。尽管从2000年以后，任正非已很少再提狼性，华为也经历着狼文化后遗症的痛苦折磨，但狼文化的影响之大之深已非一般文化现象可比。<br />　　狼行天下，自任正非始，自华为始。<br />　　2005年底，也是中国大多数地区的冬天，我来到了深圳。不过深圳这个南方海滨城市是没有冬天的。穿着单衣，和朋友走在深南大道上，不知怎么就谈到了华为，谈到了任正非，谈到了《华为的冬天》。我们试图伸出手，抓住华为的点点印象。<br />　　第一个印象是关于任正非的。即使是千百年后，无论华为已经消失还是更加强大，人们都不会不承认，军人出身的任正非用2万元起家创造了后来名震中外的华为，从行为上为他提出的中华有为作了很好的注脚。<br />　　第二个印象还是关于任正非的。企业创始人的主张和行为是企业文化的初始，这些行为和主张一旦被企业员工普遍认同并效仿和执行，企业文化就初具雏形了。而狼性也就这样升华为狼文化，成为华为文化的核心，也是华为成功的根本原因。最初，任正非说，所