准备用英文版的Thinking in Patterns学习设计模式

今天,正式把这本电子书的快捷方式放在桌面上,另外,下载安装了firefox的划词翻译插件:DictCN 2.2,用来翻译生词。

现在,网上已经有了这本电子书的中文版,但我还是想看英文版,因为想一举两得,既学了设计模式,又学了英语。我会把学习过程中碰到的包括语言在内的问题记下来。

现在,单位的事情不多,可以用这个时间认真学习一下设计模式。不过,单位的机器已经失盗,自己的那台老古董装的是文本模式的redhat linux 9.0,有空的时候在上面看看文章和网页还行,可就是碰到生词没有办法划词翻译。有点不爽。但是也只有将就了。

路还是要走的,不能因为怕走错路就一直呆在原地不动。学设计模式,开始吧。

如何安装Firefox扩展文件?(转帖)

如何安装Firefox扩展文件? (转自:http://www.firefox-china.com/edu/2006/26.html

文档来源:firefox-火狐浏览器 文档作者: 火狐 发布时间:2006-06-24

扩展文件通常是xpi文件格式(以.xpi结尾).有三种安装方法:

1,直接拖拽到Firefox浏览器的窗口里或扩展窗口里

2,点击  '菜单"--"工具"--''扩展'',把.xpi文件拖进弹出窗口里,稍后就可以看到Firefox会询问你是否要安装这个插件,点击是,并重启Firefox浏览器

3,鼠标右键点xpi文件,选打开方式,在打开方式里选firefox,设置关联。以后只要双击xpi文件就自动安装了

Eclipse使用技巧(转)

转自:(http://www.javaresearch.org/article/57437.htm

用了eclipse有一段时间了,就是没有系统的学习过。下面这篇转帖不错,看了下觉得有收藏价值就贴在这里了。

正文

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

Eclipse使用技巧

jiqimiao1982 转贴   更新:2006-11-04 12:45:09  版本: 1.0  

热键篇:

Template:Alt + .

修改处:Window->Preference->Workbench->Keys->Command->Edit->Content Assist。

个人习惯:Shift+SPACE(空白)。

简易说明:编辑程序代码时,打sysout +Template启动键,就

会自动出现:System.out.println(); 。

设定Template的格式:窗口->喜好设定->Java->编辑器->模板。

程序代码自动排版:Ctrl+Shift+F

修改处:窗口->喜好设定->工作台->按键->程序代码->格式。

个人习惯:Alt+Z。

自动排版设定:窗口->喜好设定->Java->程序代码格式制作程序。

样式页面->将插入tab(而非空格键)以内缩,该选项取消勾选

,下面空格数目填4,这样在自动编排时会以空格4作缩排。

快速执行程序:Ctrl + F11

个人习惯:ALT+X

修改处:窗口->喜好设定->工作台->按键->执行->启动前一次的启动作业。

简易说明:第一次执行时,它会询问您执行模式,

设置好后,以后只要按这个热键,它就会快速执行。

<ALT+Z(排版完)、ATL+X(执行)>..我觉得很顺手^___^

自动汇入所需要的类别:Ctrl+Shift+O

简易说明:

假设我们没有Import任何类别时,当我们在程序里打入:

BufferedReader buf =

new BufferedReader(new InputStreamReader(System.in));

此时Eclipse会警示说没有汇入类别,这时我们只要按下Ctrl+Shift+O

,它就会自动帮我们Import类别。

查看使用类别的原始码:Ctrl+鼠标左键点击

简易说明:可以看到您所使用类别的原始码。

将选取的文字批注起来:Ctrl+/

简易说明:Debug时很方便。

修改处:窗口->喜好设定->工作台->按键->程序代码->批注

将选取的文字取消批注:Ctrl+简易说明:同上。

修改处:窗口->喜好设定->工作台->按键->程序代码->取消批注

视景切换:Ctrl+F8

个人习惯:Alt+S。

修改处:窗口->喜好设定->工作台->按键->窗口->下一个视景。

简易说明:可以方便我们快速切换编辑、除错等视景。

3.0里Ctrl+Alt+H可以看到调用当前member的方法,而且可以一层一层上去.

Ctrl+O可以快速切到其他方法.

密技篇:

一套Eclipse可同时切换,英文、繁体、简体显示:

1.首先要先安装完中文化包。

2.在桌面的快捷方式后面加上参数即可,

英文-> -nl "zh_US"

繁体-> -nl "zh_TW"

简体-> -nl "zh_CN"。

(其它语系以此类推)

像我2.1.2中文化后,我在我桌面的Eclipse快捷方式加入参数-n1 "zh_US"。

"C:\Program Files\eclipse\eclipse.exe" -n "zh_US"

接口就会变回英文语系噜。

利用Eclipse,在Word编辑文书时可不必将程序代码重新编排:

将Eclipse程序编辑区的程序代码整个复制下来(Ctrl+C),直接贴(Ctrl+V)到

Word或WordPad上,您将会发现在Word里的程序代码格式,跟Eclipse

所设定的完全一样,包括字型、缩排、关键词颜色。我曾试过JBuilder

、GEL、NetBeans...使用复制贴上时,只有缩排格式一样,字型、颜

色等都不会改变。

外挂篇:

外挂安装:将外挂包下载回来后,将其解压缩后,您会发现features、

plugins这2个数据夹,将里面的东西都复制或移动到Eclipse的features

、plugins数据夹内后,重新启动Eclipse即可。

让Eclipse可以像JBuilderX一样使用拖拉方式建构GUI的外挂:

1.Jigloo SWT/Swing GUI Builder :

http://cloudgarden.com/jigloo/index.html

下载此版本:Jigloo plugin for Eclipse (using Java 1.4 or 1.5)

安装后即可由档案->新建->其它->GUI Form选取要建构的GUI类型。

2.Eclipse Visual Editor Project:

http://www.eclipse.org/vep/

点选下方Download Page,再点选Latest Release 0.5.0进入下载。

除了VE-runtime-0.5.0.zip要下载外,以下这2个也要:

EMF build 1.1.1: (build page) (download zip)

GEF Build 2.1.2: (build page) (download zip)

我只测试过Eclipse 2.1.2版本,使用上是OK的!

3.0版本以上的使用者,请下载:

Eclipse build I20040324:

1.0.0 Stream Integration Build I20040325 Thu, 25 Mar 2004 -- 12:09 (-0500)

1.0.0 Stream Nightly Build N20040323a Tue, 23 Mar 2004 -- 13:53 (-0500)

注意:3.0以上版本,仅build I20040324可正常使用。

安装成功后,即可由新建->Java->AWT与Swing里选择

所要建构的GUI类型开始进行设计。VE必须配合着对应

版本,才能正常使用,否则即使安装成功,使用上仍会

有问题。

使用Eclipse来开发JSP程序:

外挂名称:lomboz(下载页面)

http://forge.objectweb.org/project/showfiles.php?group_id=97

请选择适合自己版本的lomboz下载,lomboz.212.p1.zip表示2.1.2版,

lomboz.3m7.zip表示M7版本....以此类推。

lomboz安装以及设置教学:

Eclipse开发JSP-教学文件

Java转exe篇:

实现方式:Eclipse搭配JSmooth(免费)。

1.先由Eclipse制作包含Manifest的JAR。

制作教学

2.使用JSmooth将做好的JAR包装成EXE。

JSmooth下载页面:

http://jsmooth.sourceforge.net/index.php

3.制作完成的exe文件,可在有装置JRE的Windows上执行。

Eclipse-Java编辑器最佳设定:

编辑器字型设定:工作台->字型->Java编辑器文字字型。

(建议设定Courier New -regular 10)

编辑器相关设定:窗口->喜好设定->Java->编辑器

外观:显示行号、强调对称显示的方括号、强调显示现行行、

显示打印边距,将其勾选,Tab宽度设4,打印编距字段设80。

程序代码协助:采预设即可。

语法:可设定关键词、字符串等等的显示颜色。

附注:采预设即可。

输入:全部字段都勾选。

浮动说明:采预设即可。

导览:采预设即可。

使自动排版排出来的效果,最符合Java设计惯例的设定:

自动排版设定:窗口->喜好设定->Java->程序代码制作格式。

换行:全部不勾选。

分行:行长度上限设:80。

样式:只将强制转型后插入空白勾选。

内缩空格数目:设为4。

Eclipse的教学文件:

扩充Eclipse的Java 开发工具(中文)

使用Eclipse开发J2EE 应用程序(中文)

使用Eclipse平台进行除错(中文)

用Eclipse进行XML 开发(中文)

开发Eclipse外挂程序(中文)

国际化您的Eclipse外挂程序(英文)

将Swing编辑器加入Eclipse(英文)

如何测试你的Eclipse plug-in符合国际市场需求(英文)

Eclipse的相关网站:

http://eclipse-plugins.2y.net/eclipse/index.jsp

http://www.eclipseplugincentral.com/

Eclipse相关教学[简体]

                                                             转帖完毕

restart english diary writing

The spare in the past month, I was doing some changing on website: relocate our website, rewrite the homepage, do the 301 redirection, cut the old struts dynic navigation system, and rewrite the navigation system of website, etc..

So, I almost forgot writing english diary, even learning english in any way.

Engish is a very useful tool, this can't be changed, must learn it persistly.

How to learn it?

1, Learning some thing about program which written in english, like Eric's Thinking in Pattern. I have ever known a famous game programer named "Feng Yun" haven said:"If you want to learn a program techniqe, a best way is to read a relative book written in english." He says: In this way, you must study every part of the book. I think he is right.

2, See some english film and TV program, I have mete a method at http://seawan.nyist.net/kle/index.php;

3, Restarting reading yahoo news at my mobile phone through GPRS.

There are many ways to do a thing, but for me, maybe the simplest way is the best way for me. The persistent is the most important thing, not only for learning english.

世界上什么最大?

您先不要看我后面的回答,自己先想一下,看是不是“英雄所见略同”:)

我的答案是“心”最大,不是有句古话叫“人心不足蛇吞象”吗?当然这是一句贬义的。也许有的朋友会说宇宙最大。宇宙还不是“心”想出来的。

为什么“心”最大呢?“心”还可以把一点小事变成大事,一个平凡的人变得伟大。不是说:“千里送鹅毛,礼轻仁义重”吗?鹅毛虽小,但是它承载的情义是太深了。还有,如果有同样两个人施舍10块钱,一个人自己温饱不足,一个人家财万贯,您说他们谁更伟大呢?

为什么会想到这个,是因为今天早上女儿的一件小事触动了我。今天早上,我在外面买了点馒头当早餐。吃着吃着,女儿忽然拿起一个馒头说:这个馒头给婆婆爷爷吃。家里有人不以为然,而我则坚决支持女儿,让她把馒头给婆婆爷爷送去。一颗幼小的心灵萌发的孝敬长辈的心,虽然只是一个馒头,难道不值得我们呵护和鼓励吗?

所以,我说“心”是最大的。引申到人与人相处,只要彼此的心意是好的,没有什么能够打破人们之间良好的相处。

在eclipse中javabean中的boolean型变量不要用"is"开头

在eclipse中(2.* 和 3.*)都试过,如果选定属性用eclipse的自动生成getter和setter 的方法,则在boolean类型中不能以is开头。如下面的

boolean b 和 boolean isB 自动产生的getter和setter都为:


public boolean isB() {

return b;

}

public void setB(boolean b) {

this.b = b;

}

下面试了在eclipse中多种类型的数据的自动生成getter和setter方法,方法是用鼠标选定要生成getter和setter的属性,再选择菜单中的:Source->Generate Getters and Setters...:


public class T {

private int isI;

private String isS;

private boolean b;

// private boolean isB;

private Boolean isBool;

public boolean isB() {

return b;

}

public void setB(boolean b) {

this.b = b;

}

public Boolean getIsBool() {

return isBool;

}

public void setIsBool(Boolean isBool) {

this.isBool = isBool;

}

public int getIsI() {

return isI;

}

public void setIsI(int isI) {

this.isI = isI;

}

public String getIsS() {

return isS;

}

public void setIsS(String isS) {

this.isS = isS;

}

}

搭建环境

一、安装Ruby

http://rubyinstaller.rubyforge.org/上下载最新的Ruby one-click Installer for windows。

所有选项都选择。一顿经典的next之后,我们就安装了Ruby。

二、使用Rubygems安装Rails

因为刚才经典的next,我们已经成功的安装了Rubygems,利用它可以安装Rails。

gem包含很多子命令和相应的选项,感兴趣的可以在dos窗口下输入gem -h来查看帮助。

好了,让我们用一条语句来安装Rails。

首先确保你的计算机连接到了internet。

在dos窗口下输入:gem install rails --remote

等待吧。。。

有yes or no的地方按“y”

三、数据库的选择

要说Rails对数据库的连接,用mysql吧,这可是官方推荐的。至于mysql安装与配置,再次不赘诉了。

现在,我们已经搭建了开发Rails应用的环境,马上就要开始Rails应用的编写了。呵呵

Ruby简介

Ruby 是由日本人松本行弘发明的一种面向对象的脚本语言。虽然很多语言都宣称自己是面向对象的,但是每种语言的解释都不一样,大多是以它们自己特有的方式来解释什么是面向对象,而实际情况中,这些面向对象语言又都采用了很多非面向对象的做法。以 Java 为例:如果你想对一个数字取绝对值,你会怎么做呢? java 的做法是

int c = Math.abs(-166);

也就是将一个数值传递给 Math 类的一个静态函数 abs 处理。为什么这么做?因为在 java 中, 数值是基本类型不是类。

而在 Ruby 中,任何事物都是类, 也就是说,数字 –166 就是对象,取绝对值这样的操作应该属于数字本身,所以”Ruby 方式”的做法就是:

c = -166.abs

这种做法是不是更直观一点。

接着我们来介绍一下 ruby 语言的一些简单特点。

如何定义函数

def hello(name)

result = "hello, " + name

return result

end

这就是一个最简单的函数定义。Ruby 以 def 开始一个函数定义,后跟着 函数名, 然后是 参数,但是参数不必非要放在括号中, 你可以这样定义 def hello name ,之所以要用括号是为了更清晰。在 ruby 中你可以用多种方式来完成同一件事情,这也是 ruby 的设计思想。

Hello 函数很简单, 将参数和 “hello, “字符串组合在一起,赋值给临时变量 result ,然后再返回 result。 你会注意到 result 变量并没有申明,因为在 ruby 中无需申明,变量在赋值中自动使用。 另外 ruby 中不需要使用 ; 来结束每个语言,只要保持每条语句在单独一行就可以。 Ruby 也不包含 {} 来定义块结构, if , when 函数都以一个 end 关键字来结束。缩进不是语法(python 程序员要失望了)。第一次使用ruby 我也有点不习惯,因为我认为python 语言的缩进语法可以使得阅读程序代码更容易一些。但是学习了一段时间后,我发现缩进语法并不是那么重要,Ruby 本身带来的帮助远比这个更重要。而且代码的易读性也不是由缩进来改善的.此外上面的代码还可以更简化。

def hello (name)

" hello, #{name}"

end

在 ruby 中,函数的最后一条语句如果是表达式,那么它就作为返回值。在上面的代码中,用到了另外一个概念,就是表达式插入,字符串可以用单引号和双引号来括起来。但是两者还是有一点区别。区别在于处理时间上的不同。如果使用单引号,那么处理的时间很短。如果使用双引号,那么你可以插入变量,表达式,还有就是转意字符的替换,最常见的是 \n,\t 等。 以上面的代码为例 字符串中插入了变量 name ,字符串中插入变量以 # 开始,变量放在{}中。 但是特殊变量可以不用 {}. 那么什么是特殊变量呢。这个也是 ruby 特别的地方。在 Ruby 中,全局变量以 $开头,静态变量,也就是类变量以 @@ 开头,实例变量以 @ 开头。如果在字符串中引用 实例变量,你可以这么写。

def hello

" hello, #@name"

end

关于变量和基本结构我们就简单介绍这些,下面我们要介绍一个重要的Ruby 概念。就是 interator (迭代器)。 这个概念遍布在很多 ruby 代码中,也是最常见的 ruby way 。正是因为 interator ,在 ruby 程序中,你很少会看到循环的使用。 举个最简单的例子,如何打印从 1 到 6 的结果。

在 java 等语言中,我们的实现方法是:

for(int i = 1; i<6;i++) {

System.out.println(i);

}

而在 ruby 中,一切皆为对象,数字本身就是对象(我们在前面已经介绍过了),数字本身有它自己的迭代器 times 。那么让我们看看它的实现。

6.times {|i| p i }

是不是很简单。

迭代器的概念很有趣,它是如何在 ruby 中实现的呢。每个函数可以不光带有参数,还可以在参数后面带一个代码块。代码块在ruby 中是以 {} 和 do end 来包围起来的。通常如果是单行使用 {} ,如果是多行这使用do end 。这并非强制,只是习惯性用法。

代码块和参数并不相同,它和函数的执行可以说是并行的,确切的说是接替进行。如果在函数内部如何在运行过程中碰到了 yield ,它就会将函数执行过程交给函数附带的代码块来执行,代码快执行完了,执行流程转到函数内部继续运行。似乎很难理解,以下面这段代码来理解可以会容易一些。

def callBlock

yield

yield

end

callBlock { puts "In the block" }

输出:

In the block

In the block

CallBlock 函数中只有两个 yield 语句,它在执行过程中将执行权交给 函数附带的 block 运行,block 输出字符串 "In the block" ,这样最终结果就是输出两行 "In the block" 。 在函数内部使用 yield 还可以带任意多参数。比如

yield a, b, c

这三个参数对应代码块中的三个参数 {|x,y,z| p x y z }

又有一位单位上的老革命去世了

继昨年单位上的一位我尊敬的老师60来岁就去世了,今天,刚一上班就听说了本单位的一位66岁的老革命在前天去世了。上午和单位的同事一起到殡仪馆参加了他的追悼会。

这位老革命生前性格还乐观,但是60岁左右刚退休就因为得糖尿病眼睛瞎了,而且听说因为家事一直也不是很开心。直到去世。具体情况不清楚,听说而已。

死亡是无情的,但又是绝对公正的。

死亡对于生者也许是很好的一个导师。