Monday, March 21, 2011

Difference between BCL & FCL

BCL=Base Class Libraries which are part of the ECMA specification for Common Language Infrastructure (CLI). The CLR is Microsoft's an implementation of that. Rotor and Mono are other examples of implementations.

In .NET, Microsoft has taken the BCL and added to it all kinds of goodies like WinForms, Data, etc. This is called the FCL (Framework Class Library).

Really - how many gazillions of times have you seen this already?

Thursday, February 17, 2011

英语飙升的好方法

本文作者三年间从四级勉强及格到高级口译笔试210,口试232。找工作面试时给其口试的老外考官听了一分钟就说你的英语不用考了。­虽不敢说方法一定是最好的,但从现在开始随便谁不要再去找学习资料,­每天花两个钟头照说的做,坚持三个月的提高会超过你过去三年。

­听:­

网上比较有代表性的论坛是普特www.putclub.com上面的听力资源很丰富,沪江www.hjenglish.com和旺旺www.wwenglish.com上一些材料的也很不错,从中间随便挑一个网站坚持即可。但是千万不要一个个都听过来。记住,开始阶段100篇文章听一遍,不如一篇文章听100遍。如果基础比较弱,那么每天慢速VOA(大概比四级听力稍难一些)听两篇,每篇10遍以后再看原文,弄清楚每个单词的意思,看完以后再听10遍以上。保证两周以后你回去听四六级听力会很不耐烦。过了慢速就可以听常速了,还是精听为主泛听为辅。­

常速还不过瘾,可以去找talkshow来听,譬如Saturday Night,在优酷或者土豆上都有。­

不要问这样做有没有效果,我坚持了三个月,以后看美剧大部分时间不需要看字幕。­

顺便说下论坛的作用,上论坛不要问这个词什么意思这类低级问题,不要指望别人替你查字典,别人的时间也是时间。但是一个句子弄不懂,就不要自个儿纠结了,尽管去问。另外要懂得投桃报李,有能力也尽量去回答别人的问题,教学相长。­

­

说:­

说起来很奇妙,我起初也只是打算先过听力关,按照上面的步骤坚持了3个月,不过在听的同时跟着读,后来因为听的太烂太无聊,会跟着录音一起背,两个 月下来发现开口说英语变成了很自然的事情。回头来看,英语的口语真的是看似入门很难,但是真的进去了也就那么回事。不过高口训练的英汉对译还是很有用的, 实际上拿新概念的材料就可以做,无非是看这英文说汉语看着汉语说英文,然后再对照原文进行纠正。­

再强调一下,我不是生来语言高手,四级考了两次,现在周围人觉得我英语很牛,实际上只要我的方法谁都能学会,看你能不能坚持。­

­

读:­

读的一个基础是单词量,单词不够的话读书是痛苦不是享受。四级单词是最最最起码的要求,有了四级基础,语法还凑合的话,建议直接看上国外报纸网站看文章,建议看经济学人,www.economist.com,或者纽约时报www.nytimes.com每天不要看多,看一篇就够了。开始碰到生词会很多,感觉很难受,但是一定要坚持,碰到所有不会的单词,都要记下来弄懂。­

碰到不会的单词怎么办,查谷歌字典http://dict.google.com,或者 韦试辞典的在线版www.merriam-webster.com/­

单词如果今天记住明天忘怎么办,最简单的办法,找本专门的本子记下来,不要大本子,要可以随身带的那种;如果能经常上网,也可以试一下一起背单词这个网站www.17bdc.com,可以让你在线背单词,跟本子比最大好处就是不怕学习记录丢了,而且它有记忆曲线的功能可以提醒你复习。­

再说一点,英语阅读材料中,最简单的是专业文章,其次是新闻,最难的是小说。我花了一年多时间就毫不费力的可以读懂纽约时报,但是很久以后才能勉强读完Da Vinci Code。但是真的读完一本几百页的小说,带来的成就感是读几篇文章难以比拟的。­

­

写:­

这个其实要看个人目标了,如果是达到和他人书信email交流的目的,其实前面3个步骤下来,写已经完全不是问题了。­

如果还要追求文笔,可以去看看华尔街日报中文版http://www.cn.wsj.com/上的双语内容,可以通过比较来学习如何用于英语来进行正确和优美的表达。另外译言www.yeeyan.com也是不错的选择。­

­

这些网站是从网上找来的,希望大家好好利用:­

1.http://www.texun.cn/addrso/index.htm特训网:English Learning Websites­

2.http://broadcast-live.com/Live Radio and TV from Around the World­

3.http://www.nxenglish.com/voa01_1.aspxVOA Special English Introduction­

4.http://www.vocaboly.com/vocabulary-test/Various Vocabulary Test online­

20-40 quick- medium – thorough different levels of test­

5.http://www.tomx.com/listen/vocabulary/1402.htmlVOA Special English Vocabulary 1500­

6.http://tv.etshow.net/ETSHOW 网络电视其次推荐我和同事们一起收集的网址:(特别要强调一点:希望大家对这些资源要取之,学之,用之!因为If you don’t use it, you will lose it!)­

adventuretv,提供视频资料,内容多是各地的风土人情,很不错:http://www.adventuretv.com/­

纽约时报,网上看新闻的好地方http://www.nytimes.com/­

英文MP3下载的好地方http://www.mp3raid.com/archive/archive/m/2/­

英文剧本下载的好地方http://huajun.com/juben.htm­

一个个人主页,从这里可以在线收听新东方的25盘磁带http://www.intron.ac/study/toefl.html­

英文锁定,每日读图http://www.icansay.com/index.php?ChannelID=12­

英文锁定,综合学习网站,全面的英语教堂www.icansay.com­

旺旺英语网,英语语音电子杂志www.wwenglish.org­

Englishtown ,专业英语培训www.englishtown.com­

新东方网络课堂,名校在线 class.tol24.com­

疯狂英语俱乐部,李阳疯狂英语www.crazyenglish.org­

天英语,词汇中心 english.chinaschool.net­

时尚英语,丰富的学习资料www.oh100.com/huayuan/english­

当当当,免费英语学习资料www.downdowndown.net­

英语时空,英语文章大全www.yysk.net­

英语麦当劳,英语教学快餐 english23.6to23.com­

听世界,各级听力训练www.icanlisten.com­

Be Beyond,英美风土人情www.bebeyond.com.cn­

洪恩,英语学习的好去处www.hongen.com­

空中美语http://www.englishtide.com­

英国教育部和中国教育部联合搞的免费学习网站,适合初学英语者http://www.in2english.com.cn/­

GARFIELD官方网站www.garfield.com­

语法http://www.dailygrammar.com/­

大量的資料﹐非常不錯http://www.english.ac.cn/­

无忧雅思http://211.147.1.40

雅思的官方网站http://www.ielts.org/­

雅思考试网东西不多http://www.ieltsnet.net/index.htm­

关于雅思的一些资料http://www.rotolife.com/cgi-bin/newarticle/list.cgi?class=1&type=4

英文电影剧本站专题 提供14部电影英文剧本http://snowbear.3322.net/spelling/film.htm­

提供了24部英文电影剧本http://www.c2000.com.cn/mov/m4.asp­

提供了10部英文电影剧本http://goldnets.myrice.com/navi/50250.html­

子曰电影网的电影剧本下载太多了http://www.ziyue.com/downloads/s.php?type=s|http://www.21zx.net/movie/m4.htm­

银海网 下载电影剧本好多啊http://www.filmsea.com/download/_index.asp?swzm=a­

Screenplay电影剧本http://www.babelcn.com/ebook/screen/index1.htm­

这里的囊括了现在流行电影的剧本http://www.english.ac.cn/movies/playwright.htm­

一个教育网站提供的英文剧本下载http://www.dreamabroad.net/chinese/html/download/movie_01.html­

看电影学英语http://211.154.143.185/gate/gb/www.chenhen.com/html/english/speech/movie-english.htm­

听力专题­

一个很不错的英语学习网站,VOA资料很全http://zflyingbird.myetang.com/index.htm­

http://www.quancheng.org/tabwork/catelist.asp?cateid=23一些VOA新闻的文本­

http://www.icanlisten.com/standard_english/index.htm有一部分听力­

http://www.englishabc.net/ae/《美国习惯用语 Words & Idiom》是Voice of America推出的免费广播讲座­

http://mpfree.org/english/voamain.htm自由MP3的VOA资料下载不少哦­

http://edu.china.com/zh_cn/elearn/second/test/index.html中华网关于VOA的听力技巧的一些文章,当然也有别的好东东­

http://www.cgeng.com/memberarea/listen/listen.asp很不错的听力网站,有初级中级高级­

http://www.22av.net/免费的听力新闻,带文本­

http://www.xsrtvu.com/jiao/lgs/wangye/VOA1.htmVOA 英语广播收听技巧听VOA的朋友可以看看­

http://www.100steps.net/newsshow.php?serial=311&good=%CA%C7 2002年全国硕士研究生入学考试英语听力样题录音下载­

http://www.xsrtvu.com/jiao/lgs/wangye/VOA1.htmVOA英语广播收听技巧很不错的技巧文本­

http://www.english.ac.cn/listen/index.htm超酷的英语听力站,也是个老站点了,有如下内容:新概念英语 听力入门 现代文阅读 ESL-Lab分级测试 CNNSF新闻测试 《圣经》在线 ,强烈推荐­

http://putclub.6to23.com/普特英语听力网站­

http://www.oeol.net/“牛津英语在线” ( Oxford English On line )­

http://www.putclub.com/英语新闻听力Put English Club,网站主要由五个部分组成: A. 新闻英语;B. 英语教程;C. 资料下载; D. 科技英语; E. 普特论坛­

通用英语百句(视频)***http://www.ol.com.cn/class/train/english.htm­

CNN英语学习资源*****http://literacynet.org/cnnsf/­

现代交际英语(视频)****http://www.gz.supergnet.com/local_content/zhang/edu/index.html­

Monday, February 7, 2011

健康的午餐

健康的午餐盒包括什么?
报告指出每100份小学生的午餐饭盒有99份是不健康的且没有达到营养标准。
而健康的午餐应该包括什么又将去除什么?

根据食品标准局建议,一份健康的午餐应包含下面这些食物:
1. 鱼、肉、富含蛋白质的奶类
2. 富含碳水化合物的淀粉,象提供能量的全麦三明治
3. 水或牛奶饮品,稀释的果汁、酸奶饮料或水果冰砂也可

主要避免以下食物:
1. 甜食、巧克力
2. 零食,象含盐、糖、脂肪的薯片
3. 含糖并带气泡的饮料
4. 过度油炸食品和经过加工处理的肉类
5. 白色面包--如果孩子不喜欢棕色面包便选择了纯白的切片面包

=========================

热饭菜种类

她说,营养午餐应该从以下四个种类中组合:

一份蔬菜或沙拉,以及一份水果;

一份牛奶或牛奶类产品,比如牛奶、奶酪、酸奶;

一份肉类、鸡肉、鱼、鸡蛋、花生酱;

一份淀粉类食品,比如面包、大米、通心粉、面条或土豆。

Wednesday, January 26, 2011

MyHouse

1> 每1m地毯
材料费用: 79 = 19底 + 60上
人工费用: 50

Sunday, January 2, 2011

Maven生命周期及常用命令学习

一、 常用命令
mvn archetype:create
创建 Maven 项目
mvn compile
编译程序源代码,不编译test目录源代码。第一次运行时,会下载相关的依赖包,耗时较长。
mvn test-compile
编译测试代码,compile之后会生成target文件夹,主程序编译在classes下面,测试程序放在test-classes下。
mvn test
运行应用程序中的单元测试
mvn site
生成项目相关信息的网站
mvn clean
清除目标目录中的生成结果
mvn package
依据项目生成 jar 文件,打包之前会进行编译,测试。
mvn install
在本地 Repository 中安装 jar。
mvn eclipse:eclipse
生成 Eclipse 项目文件及包引用定义,注意,需确保定义Classpath Variables: M2_REPO,指向本地maven类库目录。
mvn eclipse:clean
清除Eclipse项目结构

二、 Maven的生命周期及其与之对应的命令:
validate:验证工程是否正确,所有需要的资源是否可用。
compile:编译项目的源代码。
test-compile:编译项目测试代码。
test:使用已编译的测试代码,测试已编译的源代码。
package:已发布的格式,如jar,将已编译的源代码打包。
integration-test:在集成测试可以运行的环境中处理和发布包。
verify:运行任何检查,验证包是否有效且达到质量标准。
install:把包安装在本地的repository中,可以被其他工程作为依赖来使用
deploy:在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
generate-sources:产生应用需要的任何额外的源代码,如xdoclet。

三、 调用maven
语法示例:
Mvn plugin:target [ -D选项1 –D选项2 分隔符]
Mvn help
Mvn –X …

四、 生成项目
1、 建一个 JAVA 项目 :
mvn archetype:create -DgroupId=com.demo -DartifactId=App
2、 建一个 web 项目 :
mvn archetype:create -DgroupId=com.demo -DartifactId=web-app -DarchetypeArtifactId=maven-archetype-webapp
3、 生成 Eclipse 项目
普通 Eclipse 项目执行 : mvn eclipse:eclipse
Eclipse WTP 项目执行 : mvn eclipse:eclipse –Dwtpversion=1.0

4、 Maven 标准项目结构:
目录 说明
/new-app/pom.xml Maven2项目文件
/new-app/src 源代码
/new-app/src/main/java Java代码树
/new-app/src/test/java Java单元测试
/new-app/src/main/resources Java classpath
/new-app/src/test/resources 单元测试资源
/new-app/target/classes 项目输出目录
/new-app/target/test-classes 项目测试输出目录
/new-app/target/dots 其他插件输出
/new-webapp/src/main/webapp Web应用目录

五、 编译项目的源代码:
Mvn compile
六、 单元测试/代码覆盖率计算:
Mvn test
七、 打包(jar,war):
Mvn package
编译,单元测试,物件打包,并将不需要的文件丢弃
八、 安装:
Mvn install

安装第三方jar包到本地库
Mvn install:install-file –Dfile=foo.jar –DgroupId=org.foosoft –DartifactId=foo –Dversion=1.2.3 –Dpackaging=jar

九、 清理:
Mvn cleanup

十、 POM文件:
1、 添加依赖:

Junit不会被打包

hotswap 用户手册

关于hotswap(该补丁的网址http://ssw.jku.at/dcevm/)

Hotswap 是一个允许在运行状态下无限制的修改加载类文件的Java虚拟机补丁。当前java虚拟机的动态加载机制只允许修改类的方法体,而打了hotswap补丁以后,可以增加,删除类属性,方法,甚至可以改变一个类的父类。

Hotswap补丁是基于GPL v2.0开源协议的。你可以通过windows,linux,mac os下载hotswap 补丁的源代码或者可执行文件。

安装hotswap

警告: 该补丁目前还处于试验阶段. 当该补丁用于调试java程序使用是,是相当稳定的。但我们不提倡在生产环境中使用该补丁。

现在提供了 32, 64 Windows虚拟机, 32 Mac OS (从这里获得), 和32 Linux 虚拟机的补丁. 所有的修改基于 JDK7-b102版本。

安装程序

该补丁不仅能打在java7上,且打到java 6上,也一样正常工作。

在windows 启动安装程序,在控制台输入:
> java -jar dcevm-0.2-win.jar

在Mac OS启动安装程序,终端输入:
$ sudo java -jar dcevm-0.2-mac.jar

在Mac OS启动安装程序,终端输入:
$ sudo java -jar dcevm-0.2-linux.jar

安装程序会替换掉java下 bin/client/jvm.dll 和 bin/server/jvm.dll ,并将以后的jvm.dll备份到相应目录下。还会将dcevm.jar 加到lib/ext/ 目录.

图一:hotswap补丁安装界面。

执行上述命令后,就会出现图一界面,选择将要安装该补丁的java目录,单击安装就可以了。

Ps:如果你的Linux没有图形界面,您可以从这里下载已经打好补丁的java。

使用hotswap调试java程序

  1. 首先用修改后的java以debug模式启动 java程序。
  2. 使用eclipse连接到该java进程(也可以直接在eclipse中以debug方式启动)
  3. 现在在eclipse 工程下面针对class文件的任何修改将会直接反映到java程序中去。

hotswap在淘宝

令我们高兴的是,淘宝开发人员对该技术有着强烈的兴趣,目前已有如下团队使用的该补丁:Mytaobao开发团队,TDDL(Rtools)开发团队,HSF开发团队,交易中心等团队。

我们期待你的加入。

Ps:如果你使用HSF_JETTY插件,你只要通过升级就hsf_jetty,不用手动安装,就可以使用该patch。我们并会在接下来实现spring,webx配置文件的不重启动态替换。尽情期待。

高质量软件,从点点滴滴做起

写这篇文章的想法产生在昨天晚上读《面向对象分析与设计》的时候,我渐渐发现我们这个小组不知不觉地贯彻了很多非常有价值的实践经验,这些点点滴滴都对我 们的最终的产品质量产生了或大或小的影响,保证我们的系统不会出现重大的故障。我想有必要将这些“隐性知识”稍微总结一下,以供参考和记录。

从过程的连续光谱来看,我们大概处于中间位置偏左的位置,更偏向一个轻量级团队的敏捷过程,但是也包含计划驱动过程中的因素。我们的小组是自管理的,没有 专门的QA和SA,我们自己去想出最好的工作方法,但是在执行中我们的计划还是相对确定的,每个季度做什么都会有一个比较明确的计划和里程碑,并且对问题 领域都相对熟悉;我们的过程是迭代式,一般一个季度至少会交付一个稳定可执行的新版本,我们在文档上做的不是特别好,很多都依赖于团队成员之间的“隐性知 识”;同时我们对问题的改进基本还是有一个流程和机制,会持续的跟踪问题并改进。

下面分阶段总结下我们的一些实践经验。

一、分析和设计阶段

1、在这个阶段,我们会明确准备做什么,界定问题的边界,对功能进行一个取舍。一般在一个版本完成之后会马上开始这个过程。大家都想一想接下来做什么,经过几轮PK后确定重要紧急的事情优先做,定义下一个版本的功能列表

2、功能列表出来之后,我们会针对每个功能提出各种方案做比较,在此期间,我们会邀请更大团队范围内的专家参与方案和设计的评审,剔除不切实际以及明显有缺陷的方案,针对一些风险点提出改进建议和防范措施。

3、在设计方案出来之后,我们会分配功能的开发任务,根据每个开发人员熟悉的领域,自主领取或者被动分配任务。这个过程不是一成不变的,考虑到团队内部知识交流的必要性,也可能让不熟悉某个领域的人去做他不熟悉的事情。

二、构造阶段

1、整个系统已经有一个关键的抽象机制,针对我们的服务器有一个核心的pipeline机制,针对我们的客户端,有一个核心的发送消息流程。将所有的功能模块组织在这个关键机制周围,形成一个强有力的整体。

2、开发完成不仅仅意味着功能代码的完成,还包括测试代码:单元测试和集成测试。如果你没办法做到全面的覆盖,那就要求必须覆盖运行的关键路径和极端场景。

3、单元测试我们使用JUnit,适当使用Mock可以简化测试。但是Mock对象如果太多,也许会失去测试的价值,这里有一个权衡。

4、在整个构造过程中,我们贯彻每日构建、持续集成的原则。使用hudson做持续集成,时刻关注测试状况,有问题及时反馈给开发者。

5、有一个功能强大的集成测试框架,模拟实际环境做各种测试,它的目的是尽量在接近真实状况下去执行系统并尽早暴露问题。

6、每个功能完成之后,立即发起review,请同事和你一起复审代码。复审代码的作用不仅是发现bug,改良设计,也是一个知识交流的最佳途径。我们经常能通过代码审查发现一些设计上的缺陷,以及功能实现上的BUG。我们团队应该说是非常看重代码审查的作用。

7、使用findbugs和clover等工具,分析代码质量并改进。

8、在发布之前,做一次集中的代码review,每个人介绍下自己的功能实现代码和设计,一般我们会申请一个会议室和投影仪,并邀请团队之外的人加入review。

9、在发布之前,有一个系统的压测流程,针对每个版本更新压测方案,并预留一到两周的时间做性能压测。压测不仅能尽早暴露性能隐患,还可以发现系统在特殊情况下的一些BUG。压测除了关注系统的吞吐量、GC情况之外,还应该关注硬件的性能指标。

三、发布和总结
1、发布之前,最好让使用我们系统的用户使用新版本做一个回归测试,一方面是测试兼容性,一方面也可以及早发现BUG。

2、我们的发布流程:线下、beta、线上。每个阶段通常都持续一到两周,才会进行到下一阶段。并且是从相对不重要的系统,到关键系统的顺序进行发布。

3、发布之后,通过日志、运行时监控、用户反馈等方式收集系统运行状况,发现BUG,修正BUG,补充测试,测试通过,重新发布。

4、每个版本发布后,需要总结下本次发布过程中遇到的所有BUG以及经验教训,并提出可能的改进建议。

5、需要一个跟踪线上问题的BUG跟踪系统,可以用JIRA之类的trace软件。跟踪不仅是记录,最好列出解决的时间点,在哪个版本确定解决,甚至确定交给谁去解决,并持续跟进。