博客园 - eng308
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=136588
2013-02-18T08:39:01Z
eng308
https://www.cnblogs.com/eng308/
feed.cnblogs.com
https://www.cnblogs.com/eng308/archive/2013/02/18/2915915.html
LMAX架构 - eng308
转载:http://www.jdon.com/42452Martin Fowler最近的一篇文章:LMAX架构。LMAX是一种新型零售金融交易平台,它能够以很低的延迟(latency)产生大量交易(吞吐量). 这个系统是建立在JVM平台上,核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单. 业务逻辑处理器完全是运行在内存中(in-memory),使用事件源驱动方式(event sourcing). 业务逻辑处理器的核心是Disruptors,这是一个并发组件,能够在无锁的情况下实现网络的Queue并发操作。他们的研究表明,现在的所谓高性能研究方向似乎和现代CPU设计是相左的。(见
2013-02-18T08:36:00Z
2013-02-18T08:36:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】转载:http://www.jdon.com/42452Martin Fowler最近的一篇文章:LMAX架构。LMAX是一种新型零售金融交易平台,它能够以很低的延迟(latency)产生大量交易(吞吐量). 这个系统是建立在JVM平台上,核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单. 业务逻辑处理器完全是运行在内存中(in-memory),使用事件源驱动方式(event sourcing). 业务逻辑处理器的核心是Disruptors,这是一个并发组件,能够在无锁的情况下实现网络的Queue并发操作。他们的研究表明,现在的所谓高性能研究方向似乎和现代CPU设计是相左的。(见 <a href="https://www.cnblogs.com/eng308/archive/2013/02/18/2915915.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/09/30/1839661.html
一个形象的TCP与UDP - eng308
把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。 你应该能理解,TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议。虽然TCP和UDP都是用来传输其他协议的,它们却有一个显著的不同:TCP提供有保证的数据传输,而UDP不提供。这意味着T...
2010-09-30T10:06:00Z
2010-09-30T10:06:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。 你应该能理解,TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议。虽然TCP和UDP都是用来传输其他协议的,它们却有一个显著的不同:TCP提供有保证的数据传输,而UDP不提供。这意味着T... <a href="https://www.cnblogs.com/eng308/archive/2010/09/30/1839661.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/08/28/1810656.html
Quartz.NET作业调度框架详解 - eng308
Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11:...
2010-08-28T01:27:00Z
2010-08-28T01:27:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11:... <a href="https://www.cnblogs.com/eng308/archive/2010/08/28/1810656.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/07/29/1787784.html
WIN7局域网共享设置解决方案 - eng308
WIN7系统的网络功能比XP有了进一步的增强,使用起来也相对清晰。但是由于做了很多表面优化的工作,使得底层的网络设置对于习惯了XP系统的人来说变得很不适应,其中局域网组建就是一个很大的问题。默认安装系统后不但同组内的WIN7系统互相不能共享访问,而且最头疼的问题是组内的XP系统计算机更难互访。针对这个问题,从网络上收集了一些这方面的资料,结合自己在调试过程中的情况,通过以下步骤基本能够解决XP与W...
2010-07-29T04:53:00Z
2010-07-29T04:53:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】WIN7系统的网络功能比XP有了进一步的增强,使用起来也相对清晰。但是由于做了很多表面优化的工作,使得底层的网络设置对于习惯了XP系统的人来说变得很不适应,其中局域网组建就是一个很大的问题。默认安装系统后不但同组内的WIN7系统互相不能共享访问,而且最头疼的问题是组内的XP系统计算机更难互访。针对这个问题,从网络上收集了一些这方面的资料,结合自己在调试过程中的情况,通过以下步骤基本能够解决XP与W... <a href="https://www.cnblogs.com/eng308/archive/2010/07/29/1787784.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/07/25/1784809.html
负载均衡服务器Session共享的解决方案 - eng308
在ASP.NET的程序中要使用Session对象时,必须确保页面的@page指令中EnableSessionState属性是True或者 Readonly,并且在web.config文件中正确的设置了SessionState属性。 ASP.NET中Session的状态保持是由web.config文件中的标记下的标记的mode属性来决定的。该属性有四种可能的值:Off、Inproc、StateSe...
2010-07-25T12:18:00Z
2010-07-25T12:18:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】在ASP.NET的程序中要使用Session对象时,必须确保页面的@page指令中EnableSessionState属性是True或者 Readonly,并且在web.config文件中正确的设置了SessionState属性。 ASP.NET中Session的状态保持是由web.config文件中的标记下的标记的mode属性来决定的。该属性有四种可能的值:Off、Inproc、StateSe... <a href="https://www.cnblogs.com/eng308/archive/2010/07/25/1784809.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/06/04/1751735.html
SQL SERVER性能优化综述 - eng308
近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对SQL SERVER6.5以前的版本或者ORACLE是适用的)的信息,只好自己根据以前的经验和测试结果进行总结了。 我始终认为,一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段...
2010-06-04T13:03:00Z
2010-06-04T13:03:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对SQL SERVER6.5以前的版本或者ORACLE是适用的)的信息,只好自己根据以前的经验和测试结果进行总结了。 我始终认为,一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段... <a href="https://www.cnblogs.com/eng308/archive/2010/06/04/1751735.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/06/04/1751732.html
ASP.NET常用的26个优化性能方法 - eng308
1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源。ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响。系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求。连接池的大小是有限的,如果在连接池达到最大...
2010-06-04T12:59:00Z
2010-06-04T12:59:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源。ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响。系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求。连接池的大小是有限的,如果在连接池达到最大... <a href="https://www.cnblogs.com/eng308/archive/2010/06/04/1751732.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/06/01/1748824.html
SQL Server 2005中的类型与C#中的类型对应关系 - eng308
<Language From="SQL" To="C#"> <Type From="bigint" To="long" /> <Type From="binary" To="object" /> <Type From="bit" To="bool" /> <Type From="char" To="string" /> <Type ...
2010-06-01T01:33:00Z
2010-06-01T01:33:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】<Language From="SQL" To="C#"> <Type From="bigint" To="long" /> <Type From="binary" To="object" /> <Type From="bit" To="bool" /> <Type From="char" To="string" /> <Type ... <a href="https://www.cnblogs.com/eng308/archive/2010/06/01/1748824.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/05/23/1742175.html
经典海量jQuery插件 - eng308
海量的jQuery插件帖,很经典,不知道什么时候开始流传,很早以前就收藏过,为了工作方便还是发了一份放在日志里面。其中有些已经无法访问,或许是文件移除,或许是被封锁。大家分享的东西,没什么特别的可说的,唯有感谢无私分享的人们。大家在使用的时候注意jQuery包的版本问题,最好是使用相同的版本,因为使用了高版本很有可能出现或多或少的问题。并且其中英文插件在转换成中文时注意编码,推荐utf-8。jQu...
2010-05-23T10:48:00Z
2010-05-23T10:48:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】海量的jQuery插件帖,很经典,不知道什么时候开始流传,很早以前就收藏过,为了工作方便还是发了一份放在日志里面。其中有些已经无法访问,或许是文件移除,或许是被封锁。大家分享的东西,没什么特别的可说的,唯有感谢无私分享的人们。大家在使用的时候注意jQuery包的版本问题,最好是使用相同的版本,因为使用了高版本很有可能出现或多或少的问题。并且其中英文插件在转换成中文时注意编码,推荐utf-8。jQu... <a href="https://www.cnblogs.com/eng308/archive/2010/05/23/1742175.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/04/01/1702184.html
百万数据查询优化技巧三十则(转) - eng308
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t wh...
2010-04-01T05:18:00Z
2010-04-01T05:18:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t wh... <a href="https://www.cnblogs.com/eng308/archive/2010/04/01/1702184.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/03/28/1699031.html
IIS应用程序池假死、自动重启以及iis权限等解决办法 - eng308
网络上有关iis的问题和相关解决方案,多不胜搜,但很多都比较零散,没有系统的解决方案;另外,有些解决方法,似是而非,不能找到其中的问题关键点,本人平时对于服务器的应用上也有点实践,因此,今天稍稍总结一点平时遇到地问题和解决方法,特别是对iis的特殊权限引起问题、iis应用程序池假死问题和比较罕见的iis重启命令和自动重启办法。其它相关问题,继续关注本博。一、2003应用程序池自动死了,不能恢复了,...
2010-03-28T13:02:00Z
2010-03-28T13:02:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】网络上有关iis的问题和相关解决方案,多不胜搜,但很多都比较零散,没有系统的解决方案;另外,有些解决方法,似是而非,不能找到其中的问题关键点,本人平时对于服务器的应用上也有点实践,因此,今天稍稍总结一点平时遇到地问题和解决方法,特别是对iis的特殊权限引起问题、iis应用程序池假死问题和比较罕见的iis重启命令和自动重启办法。其它相关问题,继续关注本博。一、2003应用程序池自动死了,不能恢复了,... <a href="https://www.cnblogs.com/eng308/archive/2010/03/28/1699031.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/02/26/1674097.html
缩短IIS应用池回收时间,减少IIS假死 - eng308
IIS日志: 应用程序:ISAPI 'C:\WINDOWS\system32\inetsrv\asp.dll' 报告它自身有问题,原因如下: 'ASP 不正常,因为执行请求的 100% 被挂起,而且请求队列已经使用了 0%。'。 关于server 2003+IIS6 出现 'ASP 不正常,因为执行请求的 100% 被挂起 现像如下: 站点无法打开,或者打开很慢.HTML可以打开.重新...
2010-02-26T03:14:00Z
2010-02-26T03:14:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】IIS日志: 应用程序:ISAPI 'C:\WINDOWS\system32\inetsrv\asp.dll' 报告它自身有问题,原因如下: 'ASP 不正常,因为执行请求的 100% 被挂起,而且请求队列已经使用了 0%。'。 关于server 2003+IIS6 出现 'ASP 不正常,因为执行请求的 100% 被挂起 现像如下: 站点无法打开,或者打开很慢.HTML可以打开.重新... <a href="https://www.cnblogs.com/eng308/archive/2010/02/26/1674097.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/02/08/1665835.html
C# 设计模式之单例模式 - eng308
单例(单件)模式的五种实现。通过一个计数器的例子调用验证一下。把下面的代码直接拷进vs下,运行就可以了。(控制台应用程序)using System;using System.Collections.Generic;using System.Text;using System.Threading;namespace NetFarmwork{ class NetFarmwork { static vo...
2010-02-08T05:00:00Z
2010-02-08T05:00:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】单例(单件)模式的五种实现。通过一个计数器的例子调用验证一下。把下面的代码直接拷进vs下,运行就可以了。(控制台应用程序)using System;using System.Collections.Generic;using System.Text;using System.Threading;namespace NetFarmwork{ class NetFarmwork { static vo... <a href="https://www.cnblogs.com/eng308/archive/2010/02/08/1665835.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/02/06/1664771.html
ASP.NET 开源CMS汇总 - eng308
列举出自己见过的asp.net开源cms,方便初学者入门学习,如果有更好的开源cms请在评论中推荐,谢谢!1. DotNetNuke(ASP.NET 2.0) 个人推荐深入研究DotNetNuke是一个Web应用框架的理想,为创建和部署的项目,如商业网站,企业内联网和外联网,在网上出版门户,并定制垂直应用软件。 方便用户-DotNetNuke旨在使用户可以更轻松地管理所有方面的项目。 下载网址:...
2010-02-05T17:30:00Z
2010-02-05T17:30:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】列举出自己见过的asp.net开源cms,方便初学者入门学习,如果有更好的开源cms请在评论中推荐,谢谢!1. DotNetNuke(ASP.NET 2.0) 个人推荐深入研究DotNetNuke是一个Web应用框架的理想,为创建和部署的项目,如商业网站,企业内联网和外联网,在网上出版门户,并定制垂直应用软件。 方便用户-DotNetNuke旨在使用户可以更轻松地管理所有方面的项目。 下载网址:... <a href="https://www.cnblogs.com/eng308/archive/2010/02/06/1664771.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/02/06/1664770.html
ASP.NET 工厂模式 - eng308
一、引子 话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)看来这人比较爱国,没有日本车),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上Audi后他说“开奥迪车!”。 你一定说:这人有病!直接说开车不就行了?...
2010-02-05T17:27:00Z
2010-02-05T17:27:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】一、引子 话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)看来这人比较爱国,没有日本车),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上Audi后他说“开奥迪车!”。 你一定说:这人有病!直接说开车不就行了?... <a href="https://www.cnblogs.com/eng308/archive/2010/02/06/1664770.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/02/03/1662908.html
SQL注入攻击 - eng308
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。SQL注入...
2010-02-03T10:25:00Z
2010-02-03T10:25:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。SQL注入... <a href="https://www.cnblogs.com/eng308/archive/2010/02/03/1662908.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/02/03/1662461.html
ACCESS转化成sql - eng308
ACCESS转化成SQL2000需要注意的问题-数据库知识多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项 一,首先,我说的是在ACCESS2000,SQL2000之间转换,其他的我也还没有尝试过,希望大家多多试验,肯定是有办法的; 二,转换的方法 1,打开&...
2010-02-03T02:37:00Z
2010-02-03T02:37:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】ACCESS转化成SQL2000需要注意的问题-数据库知识多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项 一,首先,我说的是在ACCESS2000,SQL2000之间转换,其他的我也还没有尝试过,希望大家多多试验,肯定是有办法的; 二,转换的方法 1,打开&... <a href="https://www.cnblogs.com/eng308/archive/2010/02/03/1662461.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/02/03/1662459.html
ASP对很长的文章做分页输出 - eng308
利用统计文章字数,然后达到一定字数就截断输出,但是分页的内容就会在莫名其妙的地方截断,不是很友好。很简单,在要截断的地方附近找下面的符号:;’”?。!;'".!如果后面存在<p>或<br>就分页。主要是要研究文章的格式。<%if Request.ServerVariables("Content_Length") > 0 thenconte...
2010-02-03T02:33:00Z
2010-02-03T02:33:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】利用统计文章字数,然后达到一定字数就截断输出,但是分页的内容就会在莫名其妙的地方截断,不是很友好。很简单,在要截断的地方附近找下面的符号:;’”?。!;'".!如果后面存在<p>或<br>就分页。主要是要研究文章的格式。<%if Request.ServerVariables("Content_Length") > 0 thenconte... <a href="https://www.cnblogs.com/eng308/archive/2010/02/03/1662459.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2010/02/03/1662443.html
用js控制多个Flash的连续播 - eng308
前段时间在做一个网站的时候,客户要求在首页能循环播放几个视频,我因考虑到在首页播放视频会对打开首页的速度有很大影响(视频文件都是上百兆的),所以建议客户将视频转换成SWF格式的flash(一个200M左右的AVI格式视频,转换后才4M),现在问题来了。如何知道一个flash放完了?无法知道它是否播放完毕你又如何能去让其播放下一个flash?后来在网上搜了下,大多数回答是通过在flash的最后一下播...
2010-02-03T02:21:00Z
2010-02-03T02:21:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】前段时间在做一个网站的时候,客户要求在首页能循环播放几个视频,我因考虑到在首页播放视频会对打开首页的速度有很大影响(视频文件都是上百兆的),所以建议客户将视频转换成SWF格式的flash(一个200M左右的AVI格式视频,转换后才4M),现在问题来了。如何知道一个flash放完了?无法知道它是否播放完毕你又如何能去让其播放下一个flash?后来在网上搜了下,大多数回答是通过在flash的最后一下播... <a href="https://www.cnblogs.com/eng308/archive/2010/02/03/1662443.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/eng308/archive/2009/12/14/1623528.html
一个ASP.NET长文章分页显示函数 - eng308
1、后台实现代码: 页面加载处理信息: 代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--protectedvoidPage_Load(objectsender,EventArgse){//测试数据stringstr="两年多的坚持推动最终换来圆...
2009-12-14T03:16:00Z
2009-12-14T03:16:00Z
eng308
https://www.cnblogs.com/eng308/
【摘要】1、后台实现代码: 页面加载处理信息: 代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--protectedvoidPage_Load(objectsender,EventArgse){//测试数据stringstr="两年多的坚持推动最终换来圆... <a href="https://www.cnblogs.com/eng308/archive/2009/12/14/1623528.html" target="_blank">阅读全文</a>