<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.6.1" -->
<rss version="0.92">
<channel>
	<title>sban blog</title>
	<link>http://blog.sban.com.cn</link>
	<description>http://blog.sban.com.cn/feed</description>
	<lastBuildDate>Thu, 28 Aug 2008 01:58:57 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>sban : flex3全部快捷键一览</title>
		<description>flex3快捷键word文档下载：http://groups.google.com/group/flex5/web/flex-shortcuts.doc

sban 2008/8/28 于北京
Reserved From: http://blog.sban.com.cn/2008/08/28/flex-shortcuts.html
 </description>
		<link>http://blog.sban.com.cn/2008/08/28/flex-shortcuts.html</link>
			</item>
	<item>
		<title>sban : flexunit的使用</title>
		<description>本文主要介绍flexunit在flex project中测试应用，包括异步调用测试。

在这里下载unittest0.9。包括两部分，swc文件与doc文档。文档中没有示例。

在这里查看flexunit测试示例。在这里在线查看源码。在这里下载源码。

用flexunit测试flex应用，主要有如下几步：
一、下载flexunit，链接见上。添加flex project对unittest.swc的引用。
二、建立一个测试主页，类型为Application。这一页里必须包括一个flexunit.flexui.TestRunnerBase，它用于显示 测试结果。显然可以继承它，自定义外观。但无此必要。可以以模块为单位，每一个模块或每一个功能建立一个这样的测试页面。
三、针对不同类或方法，写测试程序。一般测试类单独成包。不要在原类中写返回TestCase或TestSunit的静态方法。

flexunit异步测试用到addAsync函数，该函数是对原event handler的封装。flexunit以此实现异步测试。

sban 2008年8月26于北京
原文链接：http://blog.sban.com.cn/2008/08/26/flex-unittest.html </description>
		<link>http://blog.sban.com.cn/2008/08/26/flex-unittest.html</link>
			</item>
	<item>
		<title>sban : module of ruby</title>
		<description>本文主要介绍ruby中module的使用方法。

模块在Ruby中起着极其重要的作用，其用module...end定义，定义与类类似。但与类不同的是：
一、模块不可以实例化。
二、模块不可以被继承。
模块其实是一些方法的集合。它的设计是要被其它类include，所以也不能被充许继承与实例化。

include用于在一个类中包括另一个模块定义的方法，而不需要重新定义。与ASP中的#include类似。
如果只是为该类的某一个对象包括特定的模块，也可以，用extend关键字。

module的功能在于三个：
一、功能相近相关的代码编在一个module中，便于基它类复用。Ruby其Mix-in的功能指模块可以内嵌于其它类中，实现的功能类似于C++的多继承，但比C++要简洁灵巧。但有一点，Mix-in以module为单位，不能单个Mix-in某module中的某方法。
二、Ruby中没有命名空间(namespace)一说，模块的名字便充当了这个角色。

在Flex SDK中，有一个文件mx.core.Version，这个文件不是类。如果自己写一个，也不要把它check进项目里，否则编译不过。若在Ruby写Version，则可以用module，如下：
文件：Version.rb：
module Version
  VERSION = '0.1';  #常量声明也不需要const关键字。
end

如何使用一个module？很简单，如下：
文件Animal.rb：
require 'Version'; 

class Animal
  include Version; 
  
  @name; #实例变量name
  
  def initialize
    @name = 'animal';
  end
  
  def bark
    print "current version is "+VERSION+"\n";
    ...</description>
		<link>http://blog.sban.com.cn/2008/08/20/module-of-ruby.html</link>
			</item>
	<item>
		<title>sban : ruby code standard</title>
		<description>本文主要讲Ruby中一些约定俗成的编码规范。

Ruby很灵活，写出来的程序不像Java那么呆板严谨。Ruby代码常不易于程序员之间交流。而公司一般为了便于管理，通常希望团队编码可以规范。或许为此，java一般常胜不衰。ruby虽然灵活，诞生十几年，未见风起。以下是一些在Ruby中常用的编码规范：

一、常量名称单词全部大写，间以下划线。如MAX_UNIQUE。这点与AS、C#同。
二、类名、模块名大写字母开头。
三、方法小写字母开头，间以下划线。
四、操作符一般两边留有空格，但!与~之后不留。此与AS、C#同。
五、Ruby中（）经常可以省略，建议不省略。
六、多用注释。一般多在单行代码后加#注释。
七、类变量以@@做前缀。实例变量以@开头。
在Ruby中什么是类变量，什么是实例变量？
在AS3或者C#中，我们常说的属性变量等同于Ruby中的实例变量。而常言的const变量在Ruby中是指类变量。后者多是大写单词组合，间以下划线。

sban 2008/8/20于北京
版权所有，欢迎转载。
原文链接：http://blog.sban.com.cn/2008/08/20/sban-ruby-code-standard.html </description>
		<link>http://blog.sban.com.cn/2008/08/20/sban-ruby-code-standard.html</link>
			</item>
	<item>
		<title>sban : personality of ruby grammer</title>
		<description>学一门语言有两步，一是语法，二是基本类库。至于OO，则在语言之外，与具体语言无关。本文主要介绍Ruby的语法与其它高级语言的不同之处。

Ruby的语法与其它高级语言有一些不同之处，主要如下：

一、以#做单行注释不足为奇。但以=begin与=end做多行注释，多少比起AS的/**与*/有些罗嗦。用ubuntu的同志一定很熟悉#注释，其常直接用于单句代码之后。

二、AS3,php5以直接以回车换行代码，因为其代码都是以;结尾，没有;编译器便不认为该行代码已结。ASP则用_。Ruby则是用\。

三、Ruby检查类型是用运算符defined?,此外用eql?比较对象的值，用equal?比较对象的内存地址。Ruby中返回值为布尔的函数或操作符，多数以？结尾。这不同与其它语言。

四、Ruby有区间的概念。2..4表示2、3、4。2...4表示2、3。

五、Ruby仍然以=赋值。但可以按顺序赋值。如a,b=b,a，a与b交换值。

六、在AS3中===表示全等。而在Ruby中，===表示右边对象是否在左边区间内，如(2..4)===3，则返回true。
七、这种复合运行符在AS3与C#均未见过。它比较两个对象的值，如ab，如果a>b则返回1，返之返回-1，相等返回0。从这里也可以看出，Ruby的运行符也是方法。

八、空值不是null。而是nil，这个英文单词也是空的意思，但比null更短，却让人看着不如null正统。在字典里，null是计算机语言，而nil不是。

九、$array </description>
		<link>http://blog.sban.com.cn/2008/08/20/sban-personality-of-ruby-grammer.html</link>
			</item>
	<item>
		<title>sban:绅士与狡黠，编程语言演化之道</title>
		<description>编程语言在不停的发展与进步。从面向过程到面向对象，这是时代的必然。

人们常说，javascript是基于对象的，不是面向对象的。但对于一个javascript高手，他的代码处处透露着面向对象的气息。javascript的魅力在于它是一门解析执行的客户端的动态语言。“客户端”赖于内嵌于浏览器，执行条件很低或没有。“动态语言”让js具有很大的灵活性。貌似很小，但很流行。

java依然是软件的主角，但它在慢慢褪去。java像一个绅士，在厅堂之上是一个绅士，在厨房里也是，甚至厕所。java是强类型静态语言，这决定了它的绅士风度。java的风起促成了设计模式的普及与发展。但有人已经开始厌倦java的大象式思维，稳键但笨重。

绅士不是台上唯一的主角，人们平常更多喝彩的是狡黠。

MS的Asp本身是一个很成功的语言。解析执行、弱类型，简单上手。相信asp的开发成本很低，但却带来了很好的市场效果。Asp.net貌似很强大，貌似应该比asp更成功，但却不然。以至于不少人都说MS在抄袭java。程序员在asp程序中尝试使用面向对象的编程编码习惯，我想这并一定代表asper需要强类型支持，甚至面向对象等。.net并没有给微软带来想象中的成功。微软开始尝试推出ironPython动态语言，似乎已经意识到了别的东西。引外，在.net3.5中，加入var关键字，并且可以不声明类型。lambda的被重视，也说明类型有时候需要让步于灵活。
actionscript2.0本身是一门弱类型语言，但经adobe改版后，它此处处表现得很“强”了。但在flash player api底部，我们看到，很多方式的参数却仍然是泛类型的。

php5虽然有其基本的类型，也可以强制变量类型。但它不是强类型语言。

C++与C#什么都想做，想把整个世界囊括其中包罗大象，但其稳重不如java，狡黠不如ruby，貌似走向了一条不归路。或许这也是MS推出动态语言的原因之一。

对于程序员用一门语言编一个程序，执行完了便结束了，何必要关心变量是什么类型，怎么这么烦繁，能不能让语言自己去管理这些。事实上ruby便是这样做的。但是很多时候，比如说在开发大型安全系统时，我们宁愿牺牲时间也要用大象式的思维保证程序不出问题，这时候强类型支持显得异常重要了。

敏捷开发我们需要动态语言。时下高级语言的特征都表明，面向对象是必须的，因为业务逻辑太复杂，非面向对象不能化繁为简。我们需要强类型支持，但也不要受此约束，在需要使用时可以使用便可以了，这一点php5的做法值得称道。而弱类型语言将会渐渐成为主流。actionscript与ruby当是开发ria应用的首选。

flex builder 3在编码时，如果不出某个方法或变量添加类型声明，默认则会报警告错误。我想，既然支持，就要从思想上也支持，警告就不如免了吧。如果哪一天adobe把flash player api给改了，不支持弱类型了，那我等as程序员真吐血。

原文：http://blog.sban.com.cn/2008/08/16/ruby-java-as-php-and-so-on.html
sban 2008/8/25于北京
版权所有，转载请注明作者及出处 </description>
		<link>http://blog.sban.com.cn/2008/08/16/ruby-java-as-php-and-so-on.html</link>
			</item>
	<item>
		<title>sban : ruby的安装及第一个程序</title>
		<description>ruby是一个了不起的语言，不用但心学了它会无用武之地。同as一样，它会逐渐为人所重视，I believe。

本文只介绍在windows下如何安装ruby学习、开发环境及第一个ruby程序：

什么是ruby?

Ruby是一种强大、快捷、纯面向对象的解释型脚本语言，由日本著名开源程序员Matz于1993年发布。Ruby从Perl, Eiffel,Smalltalk那里吸取了很多特性, 很适合处理文本以及管理系统任务等等。Ruby是开源的，这意味着我们每一个开源运动员都可以修改、分发它。Ruby主要有以下特征：

1、Ruby语法简单灵活，很猾黠。
2、Ruby的操作符是方法，可以重写。
3、像Smalltalk那样，一切全是对象。数字1是类Fixnum的一个实例。而在C#里，数字是值类型。
4、Ruby是解释型语言。可以在运行时动态添加、删除其属性、方法。有点像AS2。
5、Ruby有模块(Modules)的概念。模块是方法的集合，它是一个比多重继承更清晰的解决方案。
6、Ruby的程序块（blocks)可以做为参数传递给方法。
7、自动垃圾清理。
8、比起Perl，Python更容易写C扩展。
9、类型自动管理。对于一个数字，值较小的是Fixnum类型，值较大时则自动转为Bignum类型。Ruby的变量不需要事先声明，实例变量以@开头，全局变量以$开头，方法首字小写，类首字大写等等。
10、Ruby几乎可以支持所有操作系统。并且其多线程特性不因系统变化，哪怕是在MS-DOS系统里。

如何安装与使用ruby?

一，下载ruby 1.8.6，一会默认安装。

二，打开cmd，输入
ruby -v
如果出现如下版本信息，说明安装成功。
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

三，继续在cmd中输入
ruby -e 'print "hello ruby!"'
屏幕上将打印出hello ruby!。注：-e表示把后面语句按程序执行。

四，安装ruby时，自动安装了一个IDE编辑环境SciTE。如果希望它是中文界面，请下载另存为locale.properties至X:\bury\scite安装目录下，重启SciTE即可。

五，打开SciTE，输入print "hello ruby!"，保存为hello.rb。按F5执行，右栏将出现运行结果。

恭喜，完成了ruby第一步。

下面我们看一个问题，在C#里如果两个变量交换值怎么写？

int a=1,b=2;
c = a;
a = b;
b = c;

这样是不是很麻烦，在ruby只需这样便可以：
a=1;b=2
a,b = b,a
puts a,b

用SciTE输入以上代码，运行，将出现如下结果：

2
1

这没什么稀奇，在perl里也可以这样。ruby继承了perl，java，smalltalk等众多语言的优点。一点很有意思的话是，在ruby里一切都是对象。

sban 2008/8/25 于北京

原文链接：http://blog.sban.com.cn/2008/08/15/ruby-installing-and-the-first-programme.html

版权所有，欢迎转载，转载请注明作者及出处。 </description>
		<link>http://blog.sban.com.cn/2008/08/15/ruby-installing-and-the-first-programme.html</link>
			</item>
	<item>
		<title>sban:everyplayer v0.1 update member register and soundlist</title>
		<description>everyplayer v0.1版本更新。至此，everyplayer用户可以注册会员，编辑自己的乐单。

原地址http://everyplayer.cn/default.swf?lid=1 更改为　http://everyplayer.cn/default.swf?lid=3

详见：sban:everyplayer v0.1发布及demo </description>
		<link>http://blog.sban.com.cn/2008/08/12/sbaneveryplayer-v01-update-member-register-and-soundlist.html</link>
			</item>
</channel>
</rss>
