﻿<?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/ywsky/category/17180.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 07:44:16 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 07:44:16 GMT</pubDate><ttl>60</ttl><item><title>TOMCAT：禁止TOMCAT目录访问</title><link>http://www.blogjava.net/ywsky/archive/2006/12/13/87524.html</link><dc:creator>心远</dc:creator><author>心远</author><pubDate>Wed, 13 Dec 2006 08:44:00 GMT</pubDate><guid>http://www.blogjava.net/ywsky/archive/2006/12/13/87524.html</guid><wfw:comment>http://www.blogjava.net/ywsky/comments/87524.html</wfw:comment><comments>http://www.blogjava.net/ywsky/archive/2006/12/13/87524.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ywsky/comments/commentRss/87524.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ywsky/services/trackbacks/87524.html</trackback:ping><description><![CDATA[
		<p align="left">在运行程序中，有时在IE上直接打入一个目录名，会将出现当前目录的所有文件，这样一来就大不安全了。为了禁止<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">TOMCAT</b><b style="COLOR: black; BACKGROUND-COLOR: #a0ffff">目录访问</b>。我们可以在<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">TOMCAT</b>的服务中进行设置。</p>
		<p align="left">1：打开\<b style="COLOR: black; BACKGROUND-COLOR: #ffff66">Tomcat</b> 5.0\conf\web.xml;</p>
		<p align="left">2:在文件中：</p>
		<p align="left"> &lt;servlet&gt;<br />        &lt;servlet-name&gt;default&lt;/servlet-name&gt;<br />        &lt;servlet-class&gt;<br />          org.apache.catalina.servlets.DefaultServlet<br />        &lt;/servlet-class&gt;<br />        &lt;init-param&gt;<br />            &lt;param-name&gt;debug&lt;/param-name&gt;<br />            &lt;param-value&gt;0&lt;/param-value&gt;<br />        &lt;/init-param&gt;<br />        <strong>&lt;init-param&gt;<br />            &lt;param-name&gt;listings&lt;/param-name&gt;<br />            &lt;param-value&gt;false&lt;/param-value&gt;<br />        &lt;/init-param&gt;<br /></strong>        &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br />    &lt;/servlet&gt;</p>
		<p align="left">
				<strong>将上面的listings的属性设为false就行了。</strong>
		</p>
<img src ="http://www.blogjava.net/ywsky/aggbug/87524.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ywsky/" target="_blank">心远</a> 2006-12-13 16:44 <a href="http://www.blogjava.net/ywsky/archive/2006/12/13/87524.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>  有效编写软件的75条建议  【转】</title><link>http://www.blogjava.net/ywsky/archive/2006/12/10/86669.html</link><dc:creator>心远</dc:creator><author>心远</author><pubDate>Sun, 10 Dec 2006 05:20:00 GMT</pubDate><guid>http://www.blogjava.net/ywsky/archive/2006/12/10/86669.html</guid><wfw:comment>http://www.blogjava.net/ywsky/comments/86669.html</wfw:comment><comments>http://www.blogjava.net/ywsky/archive/2006/12/10/86669.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ywsky/comments/commentRss/86669.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ywsky/services/trackbacks/86669.html</trackback:ping><description><![CDATA[
		<p>1. 你们的项目组使用源代码管理工具了么？<br />　　　　应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS。</p>
		<p>　　 2. 你们的项目组使用缺陷管理系统了么？<br />　　　　应该用。ClearQuest太复杂，我的推荐是BugZilla。 </p>
		<p>　　3. 你们的测试组还在用Word写测试用例么？<br />　　　　不要用Word写测试用例（Test Case）。应该用一个专门的系统，可以是Test Manager，也可以是自己开发一个ASP.NET的小网站。主要目的是Track和Browse。</p>
		<p>　　4. 你们的项目组有没有建立一个门户网站？<br />　　　　要有一个门户网站，用来放Contact Info、Baselined Schedule、News等等。推荐Sharepoint Portal Server 2003来实现，15分钟就搞定。买不起SPS 2003可以用WSS (Windows Sharepoint Service)。 </p>
		<p>　　5. 你们的项目组用了你能买到最好的工具么？<br />　　　　应该用尽量好的工具来工作。比如，应该用VS.NET而不是Notepad来写C#。用Notepad写程序多半只是一种炫耀。但也要考虑到经费，所以说是“你能买到最好的”。 </p>
		<p>　　6. 你们的程序员工作在安静的环境里么？<br />　　　　需要安静环境。这点极端重要，而且要保证每个人的空间大于一定面积。 </p>
		<p>　　7. 你们的员工每个人都有一部电话么？<br />　　　 需要每人一部电话。而且电话最好是带留言功能的。当然，上这么一套带留言电话系统开销不小。不过至少每人一部电话要有，千万别搞得经常有人站起来喊：“某某某电话”。《人件》里面就强烈谴责这种做法。 </p>
		<p>　　8. 你们每个人都知道出了问题应该找谁么？<br />　　　　应该知道。任何一个Feature至少都应该有一个Owner，当然，Owner可以继续Dispatch给其他人。</p>
		<p>　　9. 你遇到过有人说“我以为…”么？<br />　　　　要消灭“我以为”。Never assume anything。 </p>
		<p>　　10. 你们的项目组中所有的人都坐在一起么？<br />　　　　需要。我反对Virtual Team，也反对Dev在美国、Test在中国这种开发方式。能坐在一起就最好坐在一起，好处多得不得了。 </p>
		<p>　　11. 你们的进度表是否反映最新开发进展情况？ <br />　　　　应该反映。但是，应该用Baseline的方法来管理进度表：维护一份稳定的Schedule，再维护一份最新更改。Baseline的方法也应该用于其它的Spec。Baseline是变更管理里面的一个重要手段。</p>
		<p>　　12. 你们的工作量是先由每个人自己估算的么？<br />　　　　应该让每个人自己估算。要从下而上估算工作量，而不是从上往下分派。除非有其他原因，比如政治任务工期固定等。 </p>
		<p>　　13. 你们的开发人员从项目一开始就加班么？<br />　　　　不要这样。不要一开始就搞疲劳战。从项目一开始就加班，只能说明项目进度不合理。当然，一些对日软件外包必须天天加班，那属于剥削的范畴。 </p>
		<p>　　14. 你们的项目计划中Buffer Time是加在每个小任务后面的么？<br />　　　　不要。Buffer Time加在每个小任务后面，很容易轻易的就被消耗掉。Buffer Time要整段的加在一个Milestone或者checkpoint前面。 </p>
		<p>　　15. 值得再多花一些时间，从95%做到100%好值得，非常值得。<br />　　　　尤其当项目后期人困马乏的时候，要坚持。这会给产品带来质的区别。 </p>
		<p>　　16. 登记新缺陷时，是否写清了重现步骤？<br />　　　　要。这属于Dev和Test之间的沟通手段。面对面沟通需要，详细填写Repro Steps也需要。 </p>
		<p>　　17. 写新代码前会把已知缺陷解决么？<br />　　　　要。每个人的缺陷不能超过10个或15个，否则必须先解决老的bug才能继续写新代码。 </p>
		<p>　　18. 你们对缺陷的轻重缓急有事先的约定么？<br />　　　　必须有定义。Severity要分1、2、3，约定好：蓝屏和Data Lost算Sev 1，Function Error算Sev 2，界面上的算Sev 3。但这种约定可以根据产品质量现状适当进行调整。</p>
		<p>　　19. 你们对意见不一的缺陷有三国会议么？<br />　　　　 必须要有。要有一个明确的决策过程。这类似于CCB (Change Control Board)的概念。 </p>
		<p>　　20. 所有的缺陷都是由登记的人最后关闭的么？ <br />　　　　Bug应该由Opener关闭。Dev不能私自关闭Bug。 </p>
		<p>　　21. 你们的程序员厌恶修改老的代码么？<br />　　　　厌恶是正常的。解决方法是组织Code Review，单独留出时间来。XP也是一个方法。</p>
		<p>　　22. 你们项目组有Team Morale Activity么？<br />　　　　每个月都要搞一次，吃饭、唱歌、Outing、打球、开卡丁车等等，一定要有。不要剩这些钱。 </p>
		<p>　　23. 你们项目组有自己的Logo么？<br />　　　　要有自己的Logo。至少应该有自己的Codename。 </p>
		<p>　　24. 你们的员工有印有公司Logo的T-Shirt么？<br />　　　　要有。能增强归属感。当然，T-Shirt要做的好看一些，最好用80支的棉来做。别没穿几次就破破烂烂的。</p>
		<p>　　25. 总经理至少每月参加次项目组会议要的。<br />　　　　要让team member觉得高层关注这个项目。</p>
		<p>　　26. 你们是给每个Dev开一个分支么？<br />　　　　反对。Branch的管理以及Merge的工作量太大，而且容易出错。 </p>
		<p>　　27. 有人长期不Check-In代码么？<br />　　　　不可以。对大部分项目来说，最多两三天就应该Check-In。 </p>
		<p>　　28. 在Check-In代码时都填写注释了么？<br />　　　　要写的，至少一两句话，比如“解决了Bug No.225”。如果往高处拔，这也算做“配置审计”的一部分。</p>
		<p>　　29. 有没有设定每天Check-In的最后期限？<br />　　　　要的，要明确Check-In Deadline。否则会Build Break。 </p>
		<p>　　30. 你们能把所有源码一下子编译成安装文件吗？ <br />　　　　要的。这是每日编译（Daily Build）的基础。而且必须要能够做成自动的。 </p>
		<p>　　31. 你们的项目组做每日编译么？<br />　　当然要做。有三样东西是软件项目/产品开发必备的：1. bug management; 2. source control; 3. daily build。 </p>
		<p>　　32. 你们公司有没有积累一个项目风险列表？<br />　　　　要。Risk Inventory。否则，下个项目开始的时候，又只能拍脑袋分析Risk了。</p>
		<p>　　33. 设计越简单越好越简单越好。<br />　　　　设计时候多一句话，将来可能就带来无穷无尽的烦恼。应该从一开始就勇敢的砍。这叫scope management。 </p>
		<p>　　34. 尽量利用现有的产品、技术、代码千万别什么东西都自己Coding。BizTalk和Sharepoint就是最好的例子，有这两个作为基础，可以把起点提高很多。或者可以尽量多用现成的Control之类的。或者尽量用XML，而不是自己去Parse一个文本文件；尽量用RegExp，而不是自己从头操作字符串，等等等等。这就是“软件复用”的体现。</p>
		<p>　　35. 你们会隔一段时间就停下来夯实代码么？<br />　　　　要。最好一个月左右一次。传言去年年初Windows组在Stevb的命令下停过一个月增强安全。Btw，“夯”这个字念“hang”，第一声。 </p>
		<p>　　36. 你们的项目组每个人都写Daily Report么？<br />　　　　要写。五分钟就够了，写10句<br /> 37. 你们的项目经理会发出Weekly Report么？<br />　　　　　要。也是为了沟通。内容包括目前进度，可能的风险，质量状况，各种工作的进展等。</p>
		<p>　　 38. 你们项目组是否至少每周全体开会一次？<br />　　　　　要。一定要开会。程序员讨厌开会，但每个礼拜开会时间加起来至少应该有4小时。包括team meeting, spec review meeting, bug triage meeting。千万别大家闷头写code。 </p>
		<p>　　39. 你们项目组的会议、讨论都有记录么？<br />　　　　会前发meeting request和agenda，会中有人负责主持和记录，会后有人负责发meeting minutes，这都是effective meeting的要点。而且，每个会议都要形成agreements和action items。</p>
		<p>　　 40. 其他部门知道你们项目组在干什么么？<br />　　　　要发一些Newsflash给整个大组织。Show your team’s value。否则，当你坐在电梯里面，其他部门的人问：“你们在干嘛”，你回答“ABC项目”的时候，别人全然不知，那种感觉不太好。</p>
		<p>
				<br />41. 通过Email进行所有正式沟通 <br />　　　　Email的好处是免得抵赖。但也要避免矫枉过正，最好的方法是先用电话和当面说，然后Email来确认。 </p>
		<p>　　42. 为项目组建立多个Mailing Group <br />　　　　如果在AD+Exchange里面，就建Distribution List。比如，我会建ABC Project Core Team，ABC Project Dev Team，ABC Project All Testers，ABC Project Extended Team等等。这样发起Email来方便，而且能让该收到email的人都收到、不该收到不被骚扰。 </p>
		<p>　　43. 每个人都知道哪里可以找到全部的文档么？<br />　　　　应该每个人都知道。这叫做知识管理（Knowledge Management）。最方便的就是把文档放在一个集中的File Share，更好的方法是用Sharepoint。 </p>
		<p>　　44. 你做决定、做变化时，告诉大家原因了么？<br />　　　　要告诉大家原因。Empower team member的手段之一是提供足够的information，这是MSF一开篇的几个原则之一。的确如此，tell me why是人之常情，tell me why了才能有understanding。中国人做事喜欢搞限制，限制信息，似乎能够看到某一份文件的人就是有身份的人。大错特错。权威、权力，不在于是不是能access information/data，而在于是不是掌握资源。 </p>
		<p>　　45. Stay agile and expect change 要这样。<br />　　　　需求一定会变的，已经写好的代码一定会被要求修改的。做好心理准备，对change不要抗拒，而是expect change。 </p>
		<p>　　46. 你们有没有专职的软件测试人员？<br />　　　　要有专职测试。如果人手不够，可以peer test，交换了测试。千万别自己测试自己的。 </p>
		<p>　　47. 你们的测试有一份总的计划来规定做什么和怎么做么？<br />　　　　 这就是Test Plan。要不要做性能测试？要不要做Usability测试？什么时候开始测试性能？测试通过的标准是什么？用什么手段，自动的还是手动的？这些问题需要用Test Plan来回答。</p>
		<p>　　 48. 你是先写Test Case然后再测试的么？<br />　　　　应该如此。应该先设计再编程、先test case再测试。当然，事情是灵活的。我有时候在做第一遍测试的同时补上test case。至于先test case再开发，我不喜欢，因为不习惯，太麻烦，至于别人推荐，那试试看也无妨。 </p>
		<p>　　49. 你是否会为各种输入组合创建测试用例？<br />　　　　不要，不要搞边界条件组合。当心组合爆炸。有很多test case工具能够自动生成各种边界条件的组合——但要想清楚，你是否有时间去运行那么多test case。 </p>
		<p>　　50. 你们的程序员能看到测试用例么？<br />　　　　要。让Dev看到Test Case吧。我们都是为了同一个目的走到一起来的：提高质量。</p>
		<p>　　 51. 你们是否随便抓一些人来做易用性测试？ <br />　　　　要这么做。自己看自己写的程序界面，怎么看都是顺眼的。这叫做审美疲劳——臭的看久了也就不臭了，不方便的永久了也就习惯了。 <br />　　52. 你对自动测试的期望正确么？<br />　　　　别期望太高。依我看，除了性能测试以外，还是暂时先忘掉“自动测试”吧，忘掉WinRunner和LoadRunner吧。对于国内的软件测试的现状来说，只能“矫枉必须过正”了。</p>
		<p>　　53. 你们的性能测试是等所有功能都开发完才做的么？<br />　　　　不能这样。性能测试不能被归到所谓的“系统测试”阶段。早测早改正，早死早升天。</p>
		<p>　　54. 你注意到测试中的杀虫剂效应了么？<br />　　　　虫子有抗药性，Bug也有。发现的新Bug越来越少是正常的。这时候，最好大家交换一下测试的area，或者用用看其他工具和手法，就又会发现一些新bug了。</p>
		<p>　　 55. 你们项目组中有人能说出产品的当前整体质量情况么？<br />　　　　要有。当老板问起这个产品目前质量如何，Test Lead/Manager应该负责回答。 </p>
		<p>　　56. 你们有单元测试么？<br />　　　　单元测试要有的。不过没有单元测试也不是不可以，我做过没有单元测试的项目，也做成功了——可能是侥幸，可能是大家都是熟手的关系。还是那句话，软件工程是非常实践、非常工程、非常灵活的一套方法，某些方法在某些情况下会比另一些方法好，反之亦然。 </p>
		<p>　　57. 你们的程序员是写完代码就扔过墙的么？<br />　　　　大忌。写好一块程序以后，即便不做单元测试，也应该自己先跑一跑。虽然有了专门的测试人员，做开发的人也不可以一点测试都不做。微软还有Test Release Document的说法，程序太烂的话，测试有权踢回去。</p>
		<p>　　 58. 你们的程序中所有的函数都有输入检查么？<br />　　　　不要。虽然说做输入检查是write secure code的要点，但不要做太多的输入检查，有些内部函数之间的参数传递就不必检查输入了，省点功夫。同样的道理，未必要给所有的函数都写注释。写一部分主要的就够了。</p>
		<p>　　 59. 产品有统一的错误处理机制和报错界面么？<br />　　　　要有。最好能有统一的error message，然后每个error message都带一个error number。这样，用户可以自己根据error number到user manual里面去看看错误的具体描述和可能原因，就像SQL Server的错误那样。同样，ASP.NET也要有统一的Exception处理。可以参考有关的Application Block。</p>
		<p>　　60. 你们有统一的代码书写规范么？<br />　　　　要有。Code Convention很多，搞一份来发给大家就可以了。当然，要是有FxCop这种工具来检查代码就更好了。 </p>
		<p>　　61. 你们的每个人都了解项目的商业意义么？<br />　　　　要。这是Vision的意思。别把项目只当成工作。有时候要想着自己是在为中国某某行业的信息化作先驱者，或者时不时的告诉team member，这个项目能够为某某某国家部门每年节省多少多少百万的纳税人的钱，这样就有动力了。平凡的事情也是可以有个崇高的目标的。</p>
		<p>　　 62. 产品各部分的界面和操作习惯一致么？<br />　　　　要这样。要让用户觉得整个程序好像是一个人写出来的那样。</p>
		<p>　　 63. 有可以作为宣传亮点的Cool Feature么？<br />　　　　要。这是增强团队凝聚力、信心的。而且，“一俊遮百丑”，有亮点就可以掩盖一些问题。这样，对于客户来说，会感觉产品从质量角度来说还是acceptable的。或者说，cool feature或者说亮点可以作为质量问题的一个事后弥补措施。 </p>
		<p>　　 64. 尽可能缩短产品的启动时间要这样。<br />　　　　　软件启动时间（Start-Up time）是客户对性能好坏的第一印象。</p>
		<p>　　 65. 不要过于注重内在品质而忽视了第一眼的外在印象程序员容易犯这个错误：太看重性能、稳定性、存储效率，但忽视了外在感受。而高层经理、客户正相反。这两方面要兼顾，协调这些是PM的工作。</p>
		<p>　　 66. 你们根据详细产品功能说明书做开发么？<br />　　　　要这样。要有设计才能开发，这是必须的。设计文档，应该说清楚这个产品会怎么运行，应该采取一些讲故事的方法。设计的时候千万别钻细节，别钻到数据库、代码等具体实现里面去，那些是后面的事情，一步步来不能着急。</p>
		<p>　 　67. 开始开发和测试之前每个人都仔细审阅功能设计么？<br />　　　　要做。Function Spec review是用来统一思想的。而且，review过以后形成了一致意见，将来再也没有人可以说“你看，当初我就是反对这么设计的，现在吃苦头了吧”</p>
		<p>　　68. 所有人都始终想着The Whole Image么？<br />　　　　要这样。项目里面每个人虽然都只是在制造一片叶子，但每个人都应该知道自己在制造的那片叶子所在的树是怎么样子的。我反对软件蓝领，反对过分的把软件制造看成流水线、车间。参见第61条。</p>
		<p>　　 69. Dev工作的划分是单纯纵向或横向的么？<br />　　　　不能单纯的根据功能模块分，或者单纯根据表现层、中间层、数据库层分。我推荐这么做：首先根据功能模块分，然后每个“层”都有一个Owner来Review所有人的设计和代码，保证consistency。 </p>
		<p>　　70. 你们的程序员写程序设计说明文档么？<br />　　　　要。不过我听说微软的程序员1999年以前也不写。所以说，写不写也不是绝对的，偷懒有时候也是可以的。参见第56条。</p>
		<p>　　71. 你在招人面试时让他写一段程序么？<br />　　　　要的。我最喜欢让人做字符串和链表一类的题目。这种题目有很多循环、判断、指针、递归等，既不偏向过于考算法，也不偏向过于考特定的API。</p>
		<p>　　72. 你们有没有技术交流讲座？<br />　　　　要的。每一两个礼拜搞一次内部的Tech Talk或者Chalk Talk吧。让组员之间分享技术心得，这笔花钱送到外面去培训划算。</p>
		<p>　　73. 你们的程序员都能专注于一件事情么？<br />　　　　要让程序员专注一件事。例如说，一个部门有两个项目和10个人，一种方法是让10个人同时参加两个项目，每个项目上每个人都花50%时间；另一种方法是5个人去项目A，5个人去项目B，每个人都100%在某一个项目上。我一定选后面一种。这个道理很多人都懂，但很多领导实践起来就把属下当成可以任意拆分的资源了。 </p>
		<p>　　74. 你们的程序员会夸大完成某项工作所需要的时间么？<br />　　　　会的，这是常见的，尤其会在项目后期夸大做某个change所需要的时间，以次来抵制change。解决的方法是坐下来慢慢磨，磨掉程序员的逆反心理，一起分析，并把估算时间的颗粒度变小。 </p>
		<p>　　75. 尽量不要用Virtual Heads 最好不要用Virtual Heads。<br />　　　　Virtual heads意味着resource is not secure，shared resource会降低resource的工作效率，容易增加出错的机会，会让一心二用的人没有太多时间去review spec、review design。一个dedicated的人，要强过两个只能投入50%时间和精力的人。我是吃过亏的：7个part time的tester，发现的Bug和干的活，加起来还不如两个full-time的。参见第73条。73条是针对程序员的，75条是针对Resource Manager的。</p>
		<p> <br />　转:http://www.uml.org.cn/UMLForum/200604142.htm<br /></p>
<img src ="http://www.blogjava.net/ywsky/aggbug/86669.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ywsky/" target="_blank">心远</a> 2006-12-10 13:20 <a href="http://www.blogjava.net/ywsky/archive/2006/12/10/86669.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript进阶之变量篇 </title><link>http://www.blogjava.net/ywsky/archive/2006/12/10/86668.html</link><dc:creator>心远</dc:creator><author>心远</author><pubDate>Sun, 10 Dec 2006 05:16:00 GMT</pubDate><guid>http://www.blogjava.net/ywsky/archive/2006/12/10/86668.html</guid><wfw:comment>http://www.blogjava.net/ywsky/comments/86668.html</wfw:comment><comments>http://www.blogjava.net/ywsky/archive/2006/12/10/86668.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ywsky/comments/commentRss/86668.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ywsky/services/trackbacks/86668.html</trackback:ping><description><![CDATA[
		<p>1、关于变量的声名 <br />大家都知道javascript是可以隐式声名变量的。但要注意，隐式声名变量总是被创建为全局变量。看以下代码，情愿javascript语言强制声明变量。建议大家一定要var声明变量。 </p>
		<p>
				<br />代码<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;  <br />function test(){   <br />    var a=222;   <br /> document.writeln(a);   <br />}   <br />test();   <br />document.writeln(a);   <br />&lt;/SCRIPT&gt;  </p>
		<p> </p>
		<p>代码<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;  <br />function test(){   <br />    a=222;   <br /> document.writeln(a);   <br />}   <br />test();   <br />document.writeln(a);   <br />&lt;/SCRIPT&gt;   </p>
		<p>2、关于变量的作用域 <br />猜猜以下代码输出什么。 </p>
		<p>代码<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;  <br />var x='000';   <br />document.writeln(x);   <br />a();   <br />function a(){   <br />    var x='aaa';   <br /> function b(){   <br />     document.writeln(x);   <br />        var x='bbb';   <br />  document.writeln(x);   <br /> }   <br /> b();   <br />    document.writeln(x);   <br />}   <br />&lt;/SCRIPT&gt;  </p>
		<p>
				<br />如果你的答案是 000 undefined bbb aaa。恭喜，ok.当代码用到x变量时，先从函数块（权威指南中用调用对象来解释）中找，如果找不到，从上一级函数块找，直到找到，如果知道顶层代码（指var x='000';的位置）还没找到定义，代码会报未定义错误。</p>
		<p>改一下代码，得到 000 undefined 111 111 </p>
		<p>
				<br />代码<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;  <br />var x='000';   <br />document.writeln(x);   <br />a();   <br />function a(){   <br /> function b(){   <br />     document.writeln(x);   <br />  document.writeln(x);   <br /> }   <br /> document.writeln(x);   <br /> var x='111';   <br /> b();    <br />}   <br />&lt;/SCRIPT&gt;  </p>
		<p>
				<br />3、新的问题 <br />变量个作用域清楚了，注意上面的代码。为什么我的function a()定义以前就可以调用a函数了，而我的var x='111';前“不可以用”x啊？？？ <br />让我把我的理解一一道来 <br />首先：以下代码让我相信javascript有个预编译过程，不是完全按照顺序解释执行的。 </p>
		<p>代码<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;  <br />a();   <br />function a(){   <br />    alert();   <br />}   <br />&lt;/SCRIPT&gt;  </p>
		<p>
				<br />个人理解这个预编译过程不会象java/c#那样把代码编译成虚拟机认识的语言，更不会象vb，vc那样编译成更底层的语言。猜想只是把这个函数预装载到这段函数执行的全局环境中，在这个执行环境中，该函数被标识定义过，可以直接使用了。（看到网上很多人写的AOP的javascript实现,其实这个预编译过程才是翻译元数据最佳时候，可惜就javascript语言来讲，是有些落伍了）</p>
		<p>这个文章主要讲变量的一些问题。变量说了，为什么函数可以，我变量就不可以呢。 </p>
		<p>
				<br />代码<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;  <br />document.writeln(a);   <br />var a=0;   <br />&lt;/SCRIPT&gt;  </p>
		<p>
				<br />为什么我要输出undefined呢？为什么我a就不可以预编译一把呢？ <br />大家看看以下两段代码会输出什么呢啊？？？ </p>
		<p>代码<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;  <br />document.writeln(a);   <br />a=0;   <br />&lt;/SCRIPT&gt;  </p>
		<p> </p>
		<p>代码<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;  <br />document.writeln(a);   <br />&lt;/SCRIPT&gt;   </p>
		<p>
				<br />可能你运行试了，可能你本来就知道，a未定义。哈哈哈，好了。 <br />现在我确信var a=0;被javascript解释器“预编译过”，至少是记录下来了。甚至把它的值设置为 undefined。“undefined”这个词名字取的很是让人误解，怎么能叫未定义呢，分明是javascript中所有变量的初始化值。关于null与undefined的比较我实在不愿提了。 <br />注意上面两段代码还反映一个现象。隐式声明的变量是在解释的时候才把自己定义为全局变量的。</p>
		<p>关于函数与变量javascript预编译的不同处理，大家可以与java class的加载过程比较下。java也是对基本类型设出值，对象为null的。（不往远扯了） <br />4、区别未定义变量和未附值变量 </p>
		<p>
				<br />代码<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;  <br />var a;   <br />document.writeln(a);   <br />&lt;/SCRIPT&gt;  </p>
		<p> </p>
		<p>代码<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;  <br />document.writeln(a);   <br />&lt;/SCRIPT&gt;  </p>
		<p>
				<br />未定义变量和未附值变量 权威指南中文版 定义的。通过第三条分析，我觉得变量就应该以 定义和未定义变量区别。未附值变量和undefined有点冲突，javascript不是强类型语言，没发附默认值，才来了个undefined。 <br />5、基本类型和引用类型 <br />熟悉java的朋友可能这部分很清楚。没啥 <br />说头。 <br />6、javascript的垃圾回收 <br />关于这部分内容一直没见着个权威说法。在javascript权威指南中有两小节提到这个问题。 <br />对于字符串、对象、数据这些没有固定大小，必须为它们动态的分配内存，但什么时候回收这些内存呢？javascript使用和java一样的garbage collection的方法。 </p>
		<p>代码<br />var s="hello";   <br />var u=s.toUpperCase();   <br />s=u;  </p>
		<p>
				<br />运行这段代码后，"hello"没有变量会再用到他，这是"hello"的存储空间的被垃圾回收了。对于javascript的垃圾回收，你唯一要关心的是，它一定会进行，不要对内存担心。 <br />注意，javascript不提供任何的强制垃圾回收或释放内存的运算附或语句。 <br />javascript的delete运算附和C++中的不同。 </p>
		<p>代码<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;  <br />var o=new Object();   <br />o.name="zkj";   <br />o.age=25;   <br />o.bir=new Date();   <br />for(var key in o){   <br />document.writeln(key+':'+o[key]+'&lt;/br&gt;');   <br />}   <br />document.writeln('delete o.bir&lt;/br&gt;');   <br />delete o.bir;   <br />for(var key in o){   <br />document.writeln(key+':'+o[key]+'&lt;/br&gt;');   <br />}   <br />&lt;/SCRIPT&gt;  </p>
		<p>
				<br />7、作为属性的变量 <br />猜猜以下代码会输出什么。 </p>
		<p>
				<br />代码<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;  <br />var x=100;   <br />document.writeln(x);   <br />add(x);   <br />document.writeln('&lt;/br&gt;------------------------&lt;/br&gt;');   <br />var x=200;   <br />document.writeln(x);   <br />add(x);   <br />function add(x){   <br />    document.writeln(x);    <br />    var x=300;   <br />    document.writeln(x);    <br />    var x=400;   <br />    document.writeln(x);   <br />}   <br />&lt;/SCRIPT&gt;  </p>
		<p>
				<br />估计很多人能得出正确答案 <br />100 100 300 400 <br />------------------------ <br />200 200 300 400 <br />但这里我想引入 全局对象和调用对象的 概念（javascript权威指南是这么翻译滴） </p>
		<p>
				<br />代码<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt;  <br />var x=100;   //我们在全局对象中加了个属性x. 对比   <br /> //var o=new Object();o.x=100;   <br />document.writeln(this.x);//用this访问全局对象   <br />add(this.x);//把全局对象的属性值传递对函数中   <br />document.writeln('&lt;/br&gt;------------------------&lt;/br&gt;');   <br />this.x=200;//把全局变量中的x属性修改掉   <br />document.writeln(window.x);   <br />add(window.x);   <br />function add(x){   <br />    //假设有个局部对象，调用对象，函数调用过程中的对象   <br />//  temp   temp.x=${传入的值}   <br />    document.writeln(x); //哦这打印的可是参数中的值，也就是temp.x=this.x   <br />//的值,   <br />    var x=300;//把调用对象变量的签名给覆盖了.   <br />    document.writeln(x); //打印修改过的值。 temp.x   <br /> var x=400;//temp.x=400  <br />    document.writeln(x);   <br />}   <br />&lt;/SCRIPT&gt;  </p>
		<p>
				<br />在函数的调用过程中，假设有个调用对象存在，把函数的参数，和函数内的临时变量当成这个调用对象的属性。当然这个调用对象的生命周期很短。 <br />注意，当我们访问全局变量的属性入x的时候，不必要用this.x 或window.x访问，当在有&lt;frame&gt;&lt;iframe&gt;的页面时会出现混淆。 <br />关于函数的详细讨论我后续会详细讨论。</p>
		<p> </p>
		<p>　　　　　　　　　　文章来自：<a href="http://www.javaeye.com/article/19506">http://www.javaeye.com/article/19506</a><br /></p>
<img src ="http://www.blogjava.net/ywsky/aggbug/86668.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ywsky/" target="_blank">心远</a> 2006-12-10 13:16 <a href="http://www.blogjava.net/ywsky/archive/2006/12/10/86668.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat web开发中的中文问题(一)</title><link>http://www.blogjava.net/ywsky/archive/2006/11/19/82017.html</link><dc:creator>心远</dc:creator><author>心远</author><pubDate>Sun, 19 Nov 2006 04:00:00 GMT</pubDate><guid>http://www.blogjava.net/ywsky/archive/2006/11/19/82017.html</guid><wfw:comment>http://www.blogjava.net/ywsky/comments/82017.html</wfw:comment><comments>http://www.blogjava.net/ywsky/archive/2006/11/19/82017.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ywsky/comments/commentRss/82017.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ywsky/services/trackbacks/82017.html</trackback:ping><description><![CDATA[中文乱码一直是困扰我们的一个很大的问题，也是很多开发人员希望解决的问题。 本系列文章中采用的环境为Tomcat5.0 + JDK1.5 +mysql5.0。统一编码为UTF-8<br /><br />本篇主要是解决jsp页面之间的post和get方法中出现的乱码问题，不涉及struts等框架。<br /><br />（一）<font face="Verdana"><font size="2">tomcat的j2ee实现对表单提交即post方式提示时处理参数采用缺省的iso-8859-1来处理<br />我们现在新建2个页面，在eclipse IDE中，eclipse对jsp文件的默认编码</font></font><font face="Verdana"><font size="2">iso-8859-1，可以通过设置调整为UTF-8。<br />打开window-&gt; preferences,如下图所示：<br /><img _fcksavedurl="http://p.blog.csdn.net/images/p_blog_csdn_net/yw2007/1.GIF" src="http://p.blog.csdn.net/images/p_blog_csdn_net/yw2007/1.GIF" /><br />将用红线框出来的select选择utf8的。<br /><br />新建的2个页面分别为login.jsp和result.jsp；login.jsp提交一个name给result.jsp，result.jsp负责显示就行。<br />login.jsp的页面如下图所示（采用post提交）：<br /><img _fcksavedurl="http://p.blog.csdn.net/images/p_blog_csdn_net/yw2007/2.GIF" src="http://p.blog.csdn.net/images/p_blog_csdn_net/yw2007/2.GIF" /><br />result.jsp的处理代码如下：<br /><img _fcksavedurl="http://p.blog.csdn.net/images/p_blog_csdn_net/yw2007/3.GIF" src="http://p.blog.csdn.net/images/p_blog_csdn_net/yw2007/3.GIF" /><br />将标记1行和标记2行都去掉的话在页面上就会出现中文乱码，标记1和标记2保留一个就可以解决这个问题。<br /><br />（二）get方式的解决办法<br />对于form表单采用get方法提交，我们可以采用以下的转换来正常显示中文<br />name = new String(name.getBytes("iso8859_1"),"UTF-8");<br /><br />但是如果对于http://localhost:8000/test/result.jsp?name=中文这种提交，上面的方法就没有效果了。<br />对于后者，我们的解决方案是：将Tomcat 5.0\conf目录下的server.xml文件中的<br />&lt;!-- Define a non-SSL Coyote HTTP/1.1 Connector on the port specified<br />         during installation --&gt;<br />    &lt;Connector <br />port="8000"               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"<br />               enableLookups="false" redirectPort="8443" acceptCount="100"<br />               debug="0" connectionTimeout="20000" <br />               disableUploadTimeout="true"<br />    URIEncoding="UTF-8" /&gt;<br /><br />后面添加了URIEncoding="UTF-8" <br /><br />这样我们就解决了get方式的乱码问题。</font></font><img src="file:///C:/DOCUME%7E1/yw2007/LOCALS%7E1/Temp/moz-screenshot.jpg" _fcksavedurl="file:///C:/DOCUME~1/yw2007/LOCALS~1/Temp/moz-screenshot.jpg" alt="" /><img src ="http://www.blogjava.net/ywsky/aggbug/82017.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ywsky/" target="_blank">心远</a> 2006-11-19 12:00 <a href="http://www.blogjava.net/ywsky/archive/2006/11/19/82017.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2006年10大变态站名网站排名 （转）</title><link>http://www.blogjava.net/ywsky/archive/2006/11/15/81213.html</link><dc:creator>心远</dc:creator><author>心远</author><pubDate>Wed, 15 Nov 2006 04:08:00 GMT</pubDate><guid>http://www.blogjava.net/ywsky/archive/2006/11/15/81213.html</guid><wfw:comment>http://www.blogjava.net/ywsky/comments/81213.html</wfw:comment><comments>http://www.blogjava.net/ywsky/archive/2006/11/15/81213.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ywsky/comments/commentRss/81213.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ywsky/services/trackbacks/81213.html</trackback:ping><description><![CDATA[第一名：妈妈说……<br />入选原因：单看了两个域名就让人觉得变态“妈妈说就算你<a onmouseover="showTooltip('dHTMLToolTip',event,'http://www.adparter.com/dispatcher.do?trades=359052','西安同心网络技术有限公司&lt;br&gt;','西安网站建设，域名注册，虚拟主机&lt;br&gt;服务器托管，窄告注册服务商，租用&lt;br&gt;www.ebweb.net.cn','                  本消息由AdParter.com提供','#ffffff', '#ffffff', '#ff0000', '2000')" style="BORDER-RIGHT: #ff6600 0px dotted; BORDER-TOP: #ff6600 0px dotted; BORDER-LEFT: #ff6600 0px dotted; COLOR: #ff0000; BORDER-BOTTOM: #ff6600 3px dotted" href="http://www.adparter.com/dispatcher.do?trades=359052" target="http://www.adparter.com/dispatcher.do?trades=359052">注册</a>的域名再长google都能搜索出来”(mamashuojiusuannizhucedeyumingzaichanggoogledounengsousuochulai.cn)和“妈妈说就算你注册的域名再长baidu都能搜索出来”(mamashuojiusuannizhucedeyumingzaichangbaidudounengsousuochulai.cn)。变态理由这里不便多说了。<br />变态指数：★★★★★<br /><br />第二名：deyeb(www.deyeb.com)<br />入选原因：一个中国网站却没有一个中国名字，一个连外国人都不<a onmouseover="showTooltip('dHTMLToolTip',event,'http://www.adparter.com/dispatcher.do?trades=359058','学习高教自考没有不知道&lt;br&gt;','向导学校有十二年高教自考办学经验，&lt;br&gt;年培训上万人,北京每八名高教自考学&lt;br&gt;www.xdschool.com','                  本消息由AdParter.com提供','#ffffff', '#ffffff', '#ff0000', '2000')" style="BORDER-RIGHT: #ff6600 0px dotted; BORDER-TOP: #ff6600 0px dotted; BORDER-LEFT: #ff6600 0px dotted; COLOR: #ff0000; BORDER-BOTTOM: #ff6600 3px dotted" href="http://www.adparter.com/dispatcher.do?trades=359058" target="http://www.adparter.com/dispatcher.do?trades=359058">知道</a>什么意思的生造词。虽然创始人董一萌说是<a href="http://ss.deyeb.cn/article.asp?id=44" target="_blank">妙手偶得</a>，但是连他自己都不知道怎么读。据说世界上也没有一个人能看三次就记住这个单词。做为中国第一个社会化搜索<a onmouseover="showTooltip('dHTMLToolTip',event,'http://www.adparter.com/dispatcher.do?trades=359057','3D引擎, 起点引擎能加速&lt;br&gt;','国内第一家商业3D引擎公司&lt;br&gt;产品起点引擎(Origo Engi...&lt;br&gt;www.tuyasoft.com ','                  本消息由AdParter.com提供','#ffffff', '#ffffff', '#ff0000', '2000')" style="BORDER-RIGHT: #ff6600 0px dotted; BORDER-TOP: #ff6600 0px dotted; BORDER-LEFT: #ff6600 0px dotted; COLOR: #ff0000; BORDER-BOTTOM: #ff6600 3px dotted" href="http://www.adparter.com/dispatcher.do?trades=359057" target="http://www.adparter.com/dispatcher.do?trades=359057">引擎</a>，有这样的站名可见变态。<br />变态指数：★★★★☆ <br /><br />第三名：Utube(www. utube.com)<br />入选原因：虽然因为读音酷似youtube的大名而给utube带来不少损失，但2006年却因为youtube而名声大增，可谓败也萧何，成也萧何。<br />变态指数：★★★★☆<br /><br />第四名：BBmao(www.bbmao.com)<br />入选原因：bbmao的入选得益于它的“<a href="http://ss.deyeb.cn/article.asp?id=34" target="_blank">绯闻</a>”，前不久有爆料称bbmao的“<a onmouseover="showTooltip('dHTMLToolTip',event,'http://www.adparter.com/dispatcher.do?trades=359059','感受“非常新加坡”魅力－国外&lt;br&gt;','东南亚的活力之都-新加坡洋溢着无限...&lt;br&gt;充分体现了东西方完美的交汇&lt;br&gt;www.visitsingapore.com','                  本消息由AdParter.com提供','#ffffff', '#ffffff', '#ff0000', '2000')" style="BORDER-RIGHT: #ff6600 0px dotted; BORDER-TOP: #ff6600 0px dotted; BORDER-LEFT: #ff6600 0px dotted; COLOR: #ff0000; BORDER-BOTTOM: #ff6600 3px dotted" href="http://www.adparter.com/dispatcher.do?trades=359059" target="http://www.adparter.com/dispatcher.do?trades=359059">国外</a>男友”是Dogpile，最近有人朋友发现bbmao与ppgou似乎有什么瓜葛。Bbmao作为步deyeb后中国第二大社会化搜索，却如此“绯闻缠身”让我们无比惊讶。<br />变态指数：★★★☆☆<br /><br />第五名：Google(www.google.com)<br />入选原因：大名鼎鼎的google，其实是源于拼写错误。Google的名气和一个错误拼写，我们很难想象能够联系在一起。《Google故事》为我们揭露这一事实，使google<a onmouseover="showTooltip('dHTMLToolTip',event,'http://www.adparter.com/dispatcher.do?trades=359053','北京清华万博（安定门）&lt;br&gt;','暑假电脑培训－北京清华网络工程师职...&lt;br&gt;帮助众多毕业生成功就业&lt;br&gt;www.wnt-adm.com','                  本消息由AdParter.com提供','#ffffff', '#ffffff', '#ff0000', '2000')" style="BORDER-RIGHT: #ff6600 0px dotted; BORDER-TOP: #ff6600 0px dotted; BORDER-LEFT: #ff6600 0px dotted; COLOR: #ff0000; BORDER-BOTTOM: #ff6600 3px dotted" href="http://www.adparter.com/dispatcher.do?trades=359053" target="http://www.adparter.com/dispatcher.do?trades=359053">成功</a>入选2006年度十大站名排行。<br />变态指数：★★★☆☆<br /><br />第六名：5d6d(www.5d6d.com)和uu 1001(www.uu1001.com)<br />入选原因：国内知名PHP论坛分别推出免费论坛<a onmouseover="showTooltip('dHTMLToolTip',event,'http://www.adparter.com/dispatcher.do?trades=359044','圣亚瑟服装服饰－套装&lt;br&gt;','亚瑟王服装集团除了一线品牌亚瑟王服...&lt;br&gt;还设有不同规模档次的套装&lt;br&gt;www.king1551.com ','                  本消息由AdParter.com提供','#ffffff', '#ffffff', '#ff0000', '2000')" style="BORDER-RIGHT: #ff6600 0px dotted; BORDER-TOP: #ff6600 0px dotted; BORDER-LEFT: #ff6600 0px dotted; COLOR: #ff0000; BORDER-BOTTOM: #ff6600 3px dotted" href="http://www.adparter.com/dispatcher.do?trades=359044" target="http://www.adparter.com/dispatcher.do?trades=359044">服务</a>，Discuz开通了5d6d.com，PHPWind开通了uu1001.com。这两个公司推出相似服务，相似的时间推出，连域名的<a onmouseover="showTooltip('dHTMLToolTip',event,'http://www.adparter.com/dispatcher.do?trades=359055','做flash卡通动画制作&lt;br&gt;','北京妙动数码,专业flash动画公...&lt;br&gt;中央美院资深创意团队&lt;br&gt;www.goodog.com.cn','                  本消息由AdParter.com提供','#ffffff', '#ffffff', '#ff0000', '2000')" style="BORDER-RIGHT: #ff6600 0px dotted; BORDER-TOP: #ff6600 0px dotted; BORDER-LEFT: #ff6600 0px dotted; COLOR: #ff0000; BORDER-BOTTOM: #ff6600 3px dotted" href="http://www.adparter.com/dispatcher.do?trades=359055" target="http://www.adparter.com/dispatcher.do?trades=359055">创意</a>都是相似。这两个域名在域名大师眼中肯定觉得非常的丑，数字加字母，还要分别死撤上<a onmouseover="showTooltip('dHTMLToolTip',event,'http://www.adparter.com/dispatcher.do?trades=359048','蓝诺科技 移动, 联通, 网..&lt;br&gt;','北京蓝诺科技提供移动,联通,网通&lt;br&gt;正规短信群发,软件免费,软件功..&lt;br&gt;www.it151.com ','                  本消息由AdParter.com提供','#ffffff', '#ffffff', '#ff0000', '2000')" style="BORDER-RIGHT: #ff6600 0px dotted; BORDER-TOP: #ff6600 0px dotted; BORDER-LEFT: #ff6600 0px dotted; COLOR: #ff0000; BORDER-BOTTOM: #ff6600 3px dotted" href="http://www.adparter.com/dispatcher.do?trades=359048" target="http://www.adparter.com/dispatcher.do?trades=359048">移动</a>动感地带的“我的领地”和联通<a onmouseover="showTooltip('dHTMLToolTip',event,'http://www.adparter.com/dispatcher.do?trades=359046','中国客服网 &lt;br&gt;','行业资讯 客服社区 行业分类 客服...&lt;br&gt;按产品名称搜索 按企业服务店搜索&lt;br&gt;www.kf178.com','                  本消息由AdParter.com提供','#ffffff', '#ffffff', '#ff0000', '2000')" style="BORDER-RIGHT: #ff6600 0px dotted; BORDER-TOP: #ff6600 0px dotted; BORDER-LEFT: #ff6600 0px dotted; COLOR: #ff0000; BORDER-BOTTOM: #ff6600 3px dotted" href="http://www.adparter.com/dispatcher.do?trades=359046" target="http://www.adparter.com/dispatcher.do?trades=359046">客服</a>“1001”。<br />变态指数：★★☆☆☆<br /><br />第七名： 公司PK（www.gongsi<a onmouseover="showTooltip('dHTMLToolTip',event,'http://www.adparter.com/dispatcher.do?trades=359045','源于PK,忠于PK|比客窝-PKO...&lt;br&gt;','网站PK,比较购物,PK比较&lt;br&gt;与其逃避中遍体鳞伤,不如勇敢站上P...&lt;br&gt;www.pkooo.com','                  本消息由AdParter.com提供','#ffffff', '#ffffff', '#ff0000', '2000')" style="BORDER-RIGHT: #ff6600 0px dotted; BORDER-TOP: #ff6600 0px dotted; BORDER-LEFT: #ff6600 0px dotted; COLOR: #ff0000; BORDER-BOTTOM: #ff6600 3px dotted" href="http://www.adparter.com/dispatcher.do?trades=359045" target="http://www.adparter.com/dispatcher.do?trades=359045">pk</a>.com）<br />入选原因：一家蛮有趣的网站，本意是让用户分享个人有趣的<a onmouseover="showTooltip('dHTMLToolTip',event,'http://www.adparter.com/dispatcher.do?trades=359054','易邮邮件YMailser&lt;br&gt;','网易163/126，&lt;br&gt;Gmail一样的跨Windows&lt;br&gt;www.yiii.net','                  本消息由AdParter.com提供','#ffffff', '#ffffff', '#ff0000', '2000')" style="BORDER-RIGHT: #ff6600 0px dotted; BORDER-TOP: #ff6600 0px dotted; BORDER-LEFT: #ff6600 0px dotted; COLOR: #ff0000; BORDER-BOTTOM: #ff6600 3px dotted" href="http://www.adparter.com/dispatcher.do?trades=359054" target="http://www.adparter.com/dispatcher.do?trades=359054">邮件</a>，但是为什么叫作“公司PK”，虽然<a onmouseover="showTooltip('dHTMLToolTip',event,'http://www.adparter.com/dispatcher.do?trades=359062','找爱如潮水―用雅虎音乐搜&lt;br&gt;','雅虎音乐搜索，1800万&lt;br&gt;流行音乐，随意畅听！&lt;br&gt;music.yahoo.com.cn','                  本消息由AdParter.com提供','#ffffff', '#ffffff', '#ff0000', '2000')" style="BORDER-RIGHT: #ff6600 0px dotted; BORDER-TOP: #ff6600 0px dotted; BORDER-LEFT: #ff6600 0px dotted; COLOR: #ff0000; BORDER-BOTTOM: #ff6600 3px dotted" href="http://www.adparter.com/dispatcher.do?trades=359062" target="http://www.adparter.com/dispatcher.do?trades=359062">爱</a>转发有趣邮件的都是IT公司员工，但是也不至于要公司PK啊。<br />变态指数：★★☆☆☆<br /><br />第八名：蚂蚁社区(www.maayee.com)<br />入选原因：一般人都肯定不知道“maayee”与“妈啊野鹅”、“马啊野鹅”有什么<a onmouseover="showTooltip('dHTMLToolTip',event,'http://www.adparter.com/dispatcher.do?trades=359056','openBC国际商务关系网&lt;br&gt;','找到150万商务人士，150万商机&lt;br&gt;150万买家，150万工作机会&lt;br&gt;www.openbc.com','                  本消息由AdParter.com提供','#ffffff', '#ffffff', '#ff0000', '2000')" style="BORDER-RIGHT: #ff6600 0px dotted; BORDER-TOP: #ff6600 0px dotted; BORDER-LEFT: #ff6600 0px dotted; COLOR: #ff0000; BORDER-BOTTOM: #ff6600 3px dotted" href="http://www.adparter.com/dispatcher.do?trades=359056" target="http://www.adparter.com/dispatcher.do?trades=359056">关系</a>，google告诉我们“maayee”的名字其实是不对的，“您是不是要找：妈啊野鹅 马啊野鹅”。<br />变态指数：★☆☆☆☆<br /><br />第九名：校内网(www.xiaonei.com) <br />入选原因：变态原因不是校内本身名字变态，也不是因为校内模仿了facebook，最主要是因为校内牛，又加上刚刚纳入千橡旗下，一大批站名模仿秀尾随其后：校内网（www.xiaonei.net）非正宗校内，在校网（www.zaixiao.com）非正宗校内，大名鼎鼎的chinaren也搞出一个校内网（xiaonei.chinaren.com）。谁在导演这真假校内网呢？<br />变态指数：★☆☆☆☆<br /><br />第十名：土豆网(www.tudou.com)<br />入选原因：土豆上线以后，大家一直质疑，为什么土豆不叫“tudou”而是“toodou”呢？据gary说，土豆差点成了豆腐网，但是被注册了。现在土豆换成tudou了，谜底解开。用户2006年后不用再BT猜测了。<br />变态指数：☆☆☆☆☆<br /><img src ="http://www.blogjava.net/ywsky/aggbug/81213.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ywsky/" target="_blank">心远</a> 2006-11-15 12:08 <a href="http://www.blogjava.net/ywsky/archive/2006/11/15/81213.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Google搜索指令大全(转载)</title><link>http://www.blogjava.net/ywsky/archive/2006/11/15/81212.html</link><dc:creator>心远</dc:creator><author>心远</author><pubDate>Wed, 15 Nov 2006 04:03:00 GMT</pubDate><guid>http://www.blogjava.net/ywsky/archive/2006/11/15/81212.html</guid><wfw:comment>http://www.blogjava.net/ywsky/comments/81212.html</wfw:comment><comments>http://www.blogjava.net/ywsky/archive/2006/11/15/81212.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ywsky/comments/commentRss/81212.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ywsky/services/trackbacks/81212.html</trackback:ping><description><![CDATA[
		<p class="storycontent">1）逻辑与/或：AND、OR</p>
		<div class="storycontent">
				<ul>
						<li>注意AND、OR必须大写，否则会被认为是普通的单词，而不是搜索指令。<br /></li>
						<li>与普通编程语言不一样的是，OR指令优先于AND指令。<br /></li>
						<li>简写：AND指令一般以空格代替，不明确写出。另外AND指令还可以用+代替。OR指令可用|代替。<br /></li>
				</ul>
		</div>
		<ul>
				<li>样例：Inverted OR Signature files OR file OR index，它等同于 (Inverted OR Signature) (files OR file OR index) </li>
		</ul>
		<br />
		<p>2）逻辑非：-</p>
		<ul>
				<li>样例：搜索引擎 历史 -文化 -中国历史 -世界历史 </li>
		</ul>
		<br />
		<p>3）完整匹配："…"</p>
		<ul>
				<li>样例："world war I" 表示搜索一次世界大战。 </li>
		</ul>
		<br />
		<p>4）通配符：*?</p>
		<ul>
				<li>与我们通常的习惯一致，“*”代表一连串字符，“?”代表单个字符。<br /></li>
				<li>样例：progr?m<br /></li>
				<li>提示：不要指望Google可用通过progr?m搜索到program，因为progr和m分别被当作一个独立的单词，并且这两个单词之间允许出现一个字符，如此而已。<br /></li>
		</ul>
		<br />
		<p>5）site: 在某个网站或域名下搜索</p>
		<ul>
				<li>样例：搜索引擎 技巧 site:edu.cn<br /></li>
				<li>这表示要在中文教育科研网站（edu.cn）上关于搜索引擎技巧的页面。 </li>
		</ul>
		<br />
		<p>6）filetype: 搜索某种类型的文件</p>
		<ul>
				<li>样例：filetype:pdf<br /></li>
				<li>这表示只搜索pdf文件。 </li>
		</ul>
		<br />
		<p>7）in指令: 位置关键词查找。</p>
		<ul>
				<li>intitle: 在网页标题中查找。这通常对讨论比较多的热门话题很有效。例如：intitle:"GeForce 7800"+测试<br /></li>
				<li>allintitle: 该指令属于排他指令，不能与其他指令混用。<br /><ul><br /><li>例如：allintitile:"GeForce 7800" 测试 与 intitle:"GeForce 7800"+测试 的含义一致。但是，allintitile是排他的，不能加上其他非intitle方面的限制条件。<br /></li><li>注意：在这里，你会发现用+代替AND指令是很有意思的。如果没有+指令，我们就需要写：intitle:"GeForce 7800" intitle:测试，因为Google不支持这样的写法：intitle:("GeForce 7800" 测试) </li></ul><br /></li>
				<li>inurl: 在网页的url地址中查找。例如：inurl:dowload 表示查找url中包含download的网页。<br /></li>
				<li>allinurl: inurl的排他指令。<br /></li>
				<li>inanchor: 在网页的链接锚中查找。<br /><ul><br /><li>需要注意区别于inurl：inurl是网页本身的url地址，而inanchor是在外部用于指向该url地址的文本（&lt;a&gt;…&lt;/a&gt;之间文本）中找。<br /></li><li>例如：inanchor:download，你可能会发现有<a class="l" href="http://www.amazesoft.com/" xxxxxxxxxxx="return clk(this.href,'','','res','3','&amp;sig2=E-aLseqNjot1rhhI781mnQ')"><span xxxxx="color:#551a8b;"><font color="#006aba">FlashGet最佳的下载管理程式</font></span></a>，而该页面中根本就没有download字样。 </li></ul><br /></li>
				<li>allinanchor: inanchor的排他指令。<br /></li>
				<li>intext: 在正文中检索。<br /></li>
				<li>allintext: intext的排他指令。 </li>
		</ul>
		<br />
		<p>8）link: 搜索所有链接到某个URL地址的网页</p>
		<ul>
				<li>最重要的用途：迅速判断一个网页的“热度”。<br /></li>
				<li>例如：link:www.newhua.com 表示所有指向“华军软件园”外部链接。<br /></li>
				<li>注意：和其他指令类似，link:和url之间不能有空格。之所以特别指出这一点，是因为网上有教程说link和allinurl等一样，是排他指令，中间可以有空格。我不太了解Google搜索指令的发展历史，只能猜测曾经如此。<br /></li>
		</ul>
		<br />
		<p>9）related: 寻找某网页的“类似网页”。</p>
		<ul>
				<li>例如：related:www.newhua.com 表示找和“华军软件园”类似的网页。<br /></li>
				<li>这条指令其实Google自己用得很广泛，只是可能没有引起你的注意罢了。在Google的每条搜索结果中，均有一个“类似网页”的链接。就是它了。<br /></li>
		</ul>
		<br />
		<p>10）cache: 网页快照（略）。</p>
		<br />
		<p>11）daterange: 据说可以限定网页的更新时间。但是我没有试出来。</p>
		<br />
		<p>12）数值范围：<low></low>..</p>
		<ul>
				<li>例如：数码相机 600..900 万像素 3000..4000 元<br /></li>
				<li>注意：“900”与“万”之间必须有空格。</li>
		</ul>
<img src ="http://www.blogjava.net/ywsky/aggbug/81212.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ywsky/" target="_blank">心远</a> 2006-11-15 12:03 <a href="http://www.blogjava.net/ywsky/archive/2006/11/15/81212.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>各种Blog及BSP的RSS Feed快速侦探法 </title><link>http://www.blogjava.net/ywsky/archive/2006/11/13/80874.html</link><dc:creator>心远</dc:creator><author>心远</author><pubDate>Mon, 13 Nov 2006 04:54:00 GMT</pubDate><guid>http://www.blogjava.net/ywsky/archive/2006/11/13/80874.html</guid><wfw:comment>http://www.blogjava.net/ywsky/comments/80874.html</wfw:comment><comments>http://www.blogjava.net/ywsky/archive/2006/11/13/80874.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ywsky/comments/commentRss/80874.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ywsky/services/trackbacks/80874.html</trackback:ping><description><![CDATA[
		<p>如果您还不知道RSS，那您还不能称得上一个博客阅读者。这都2006年了，手里怎么也得有一两个趁手的在线阅读和离线阅读的武器。而RSS就是武器的弹药。</p>
		<p>RSS是啥，有什么用，能不能靠它赚钱，这里通通不谈，与本文无关。我们是只捞干的，只讲关键。另外，有不少阅读程序可以直接侦察出feed，只要给出blog地址就行，这就简化了找feed的过程，当然，也减少了您自己做侦探的乐趣。</p>
		<p>您看好了一个博客，比如ak47的，如果标注了有feedburner的或者feedsky的RSS，优先订阅这样的feed。比如ak47的，推荐您订阅<a href="http://feed.feedsky.com/ak47it"><font color="#6ba4dc">http://feed.feedsky.com/ak47it</font></a>，或者是<a href="http://feeds.feedburner.com/Ak47It"><font color="#6ba4dc">http://feeds.feedburner.com/Ak47It</font></a>都可以。万一有什么意外，博客地址改变，但是RSS Feed的地址可以继续，各位订户完全不用关心博客搬家这样的事情。</p>
		<p>如果没有这样的说明，只能靠猜测了，比如使用wordpress的现在占了很大比例，比如my donews，只要在首页地址后面加上feed就好了，比如ak47的就是<a href="http://my.donews.com/ak47/feed/"><font color="#6ba4dc">http://my.donews.com/ak47/feed/</font></a>。除非这位使用wordpress的大哥突发奇想改变了地址，这样的尝试一般是肯定行。比如douban的blog，使用的就是wordpress，它的rss就是http://blog.douban.com/feed/。另外告诉大家，wordpress还有一个feed地址，使用的是atom输出格式，就是feed的后面再加上atom就可以了，比如这样的<a href="http://my.donews.com/ak47/feed/atom"><font color="#6ba4dc">http://my.donews.com/ak47/feed/atom</font></a>。</p>
		<p> </p>
		<p>其它的php blog程序相对占有量要小一些，比如有人用drupal，可以试着加node/feed/，比如官网就是http://drupal.org/node/feed/</p>
		<p>另外一个占有量较大的程序是perl写的MovableType，简称MT，以前ak47也用过，它的订阅地址一般是blog网址加上index.xml就可以了，比如http://www.thinkjam.org/mercury/index.xml这样。</p>
		<p>下面是BSP了，首先就是blogspot也就是google blogger。它的Feed地址很好记，类似这样的http://blogname.blogspot.com/atom.xml<br />没错，就是网址后面加上atom.xml就是了，包括google黑板报都可以使用这样的格式(http://googlechinablog.com/atom.xml)，因为atom就是google搞出来的，自己不eat dog food没道理啊。</p>
		<p>新浪的博客没有什么简化的形式，哪怕你是成龙徐静蕾，都是9527这样的，比如写《武林外传》的宁财神，就是这样的feed，<a href="http://blog.sina.com.cn/myblog/index_rss.php?uid=1494848464"><font color="#6ba4dc">http://blog.sina.com.cn/myblog/index_rss.php?uid=1494848464</font></a><br />这可真是到了数字时代了，人就用数字来指代好了。</p>
		<p>blogbus的也很简单，http://chapi.blogbus.com/index.rdf，也就是后面加上index.rdf就好了。</p>
		<p>163博客的是后面加上rss，比如这样的http://blog.163.com/zm9983/rss/</p>
		<p>微软live spaces的RSS也很简单，首页网址后面加上feed.rss就行了，比如这样的<a href="http://sunxiunan.spaces.live.com/feed.rss"><font color="#6ba4dc">http://sunxiunan.spaces.live.com/feed.rss</font></a></p>
		<p>搜狐的也很简单，但是订阅链接很搞笑，非要加上搜狗订阅前缀，直接用blog首页地址后面加上rss就好了。<br />http://liuhaiming.blog.sohu.com/rss</p>
		<p>donews blog的也简单，其实所有使用.text这个asp blog程序的都一样，http://blog.donews.com/limodou/Rss.aspx，也就是后面加上Rss.aspx就好了。</p>
<img src ="http://www.blogjava.net/ywsky/aggbug/80874.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ywsky/" target="_blank">心远</a> 2006-11-13 12:54 <a href="http://www.blogjava.net/ywsky/archive/2006/11/13/80874.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>