知识的本质

April 19th, 2012

http://www.zreading.cn/archives/2887.html

抓住知识的本质是提升学习效率的重要方法。

从数量上说,现代社会的“知识”有两个特点,第一是“总量大”,第二是“增长快”,这两个特点合在一起就是人们常说的“知识爆炸”。但知识还有另外一个特点——相比表层知识的庞大数量和几何式增长,知识核心部分的发展要平缓得多。

以计算机领域为例,虽然计算机是二战以后发展最快的领域,但著名的黑客Paul Graham却说今天最先进的计算机技术在思想上和20世纪50年代并没有什么不同;在经济学领域,无论涉足到那一个分支,都无法离开亚当·斯密这个根 本;在管理学领域,尽管各种工具、方法层出不穷,但像价值链分析这样的方法仍然是根源性的;而从更大的范围上讲,思考问题的方式、解决问题的方法同样是相 对稳定不会过时的;甚至知识的发展也是有规律可循,并且这些规律同样是相对稳定的。

这些知识中相对“不变”的部分恰恰是知识中最关键的部分,一个人知道很多表层的知识,我们只会说他懂点“皮毛”,只有他掌握了“不变”的知识,我们 才会认为他有“学识”。而另一方面,由于知识的总量太大了,如果没有这些“不变”的知识,学习和创造就会成为不可能的事,我们常说“触类旁通”,其基础就 是“不变”的知识。

上面说的道理并不复杂,但执行起来却并不容易。在现实生活中,我们见到的懂点皮毛的人要远远多过功底深厚的人,究其原因,我觉得有以下几个:

首先,相比表层知识的具体,知识的本质部分总体上是相对抽象的。理解知识的本质,其难度比认识表层要高得多,陡峭的学习曲线经常会让人望而怯步;

第二,相比表层知识的“有用”,知识的本质部分往往很难立刻发现其实际用途。这并非功利不功利的问题,而是眼光的问题,追逐长远利益的人和只看得见 眼前利益的人对“有用”的认识往往是大相径庭的。但眼光长远的人之所以受到普遍的尊敬,一个重要的原因是他们是社会少数掌握着真正智慧的人。

第三,知识的本质经常会落实在一些常用、普通也因此容易被忽视的概念上,因为这些概念太常见了,我们经常以为自己懂这些概念,但实际上却是似是而非 的。比如经济学上最基本的成本、价格这些概念,现在随便看个报纸、听听新闻都能遇到很多次,但又有多少人去深究成本与价格的概念所指?当我弄清价格其实是 成本的一种特例——市场揭示出来的成本时,我是很吃惊的,既惊讶于这些概念内涵的深刻,也惊讶于我自己学习的疏忽。

写到这里,似乎应该总结几个方法去提升学习知识本质的能力,但想来想去并没有任何可以讨巧的方法,事实上,讨巧本身就是惰性的一种,而学习、创造的过程也就是克服惰性的过程,学习之苦也正是学习之甜。

左岸记:

大道至简,我们可以把知识的本质称为“上帝的知识”,那是所有知识的源头,拥有这种知识的人我们称其为智者。他们从生活而来,却洞察世间万象,于纷繁乱象之中拨云见日,我想他们一定具有非凡的洞察力。

1. 什么是洞察力?

洞察力并不是什么神奇的力量,也不是什么天才人士才拥有的能力,而是每个人都有的认知能力。

洞察力,是我们平时所说的创新能力、创意能力、创造能力、想象能力、策略能力的心理基础。

2. 洞察力在哪里?

每个人都有两套“认知–行为”系统。一套:可以称之为“反应”系统。还有一套,可以称之为“洞察”系统。

在“反应”系统中,人对事物的认知,主要来自于以往的“经验”,超出我们“经验”的东西,我们都会无法“反应”,我们要么抵触、要么惊慌失措。从某种角度来看,在“反应”系统中,看到的世界就是我们头脑中“经验”的世界,而非全部真实的世界。

而在“洞察”系统中,人对事物的认知,可以摆脱已有经验的束缚,直接发现事物内在的本质,并用这种发现去指导人的行为。所以从某种度角度来看,在“洞察”系统中,看到的世界是本质的世界、是真实的世界。

3. 进入“洞察模式”的困难所在

“反应”系统,是让我们人类能够在人类社会中、在大自然中高效率生存、生活的一种很好的模式。

我们在胎儿时期就启动了“反应”模式,所以“反应”模式是我们来到这个世界之前就已经开始运用了,所以人对这种模式有很强烈的依赖程度以及习惯性。

“洞察”模式的运用有两种模式:

一种是先天就会,很多人先天就会在某些方面不自觉地进入“洞察”模式。

有些人在艺术方面、有些人在科学方面、有些人在生意方面,这些人都会在这些方面取得成就。我把这种情况称之为“天赋”。

但是这种天赋只会不自觉的运用在某些方面,除了这些方面就不会用了。所以我们经常看到一些天才式的人物,在ta天才的领域是个天才,在其他方面就是个庸才,甚至是个蠢才。

还有一种就是后天通过深度阅读、自我觉悟、自我体验,发现自己的“洞察”模式,进入“洞察”模式。要做到这点就有一些困难,这些困难在于:

第一,在此之前我们都没有认识到,在我们的身体中还蕴含着一套“洞察”系统,因为没有认识到所以也就不存在发现与进入了。

第二,即使发现了自己洞察模式,真的要进入,也不是一件容易的事情。因为,我们的 “反应”系统实在太强大了,所以,需要通过持续自我训练,才能让我们做到,比如在某个方面成为真正的专家。因此在年级太小的时候还没法去训练,而年纪成熟 以后,“反应”系统又开始强大了,会阻止我们进入“洞察”系统。

发现“洞察”模式不容易,进入更不容易。

4、“洞察模式”对人的意义

之前的心理学研究都是对“反应”系统来研究的,从生物心理学的角度来看,人的心理是受到到基因、遗传以及社会环境两方面影响的,所以3岁看到老,这是很有科学原理,因为在“反应”系统中,婴儿时期建立的经验反应,会跟随ta一辈子。

所以,从“反应”系统来看人,人是宿命的,即使环境的影响也是有限的。

而一个人如果真正能够发现自己的“洞察”模式,并且进入“洞察”模式,那么,这个人就能完全改变自己,甚至是这个人的性格、秉性。因为ta已经不需要“反应”了,ta以往的经验也好、性格也好、秉性也好就不会发挥太多的作用了。

从某种意义来说,进入“洞察”系统等于重新启动另一个的你。

网络转载

帮我买个单【精彩,不得不转啊】

August 3rd, 2011

帮我买个单
——中国最佳故事

(作者只写了一页纸,己将中国社会的整个”结构”写了出来)

同学聚会,自从毕业后,好多同学都混得有模有样,我却默默无闻,在一家工厂当制图员,每月和丈夫一起靠着不多的收入共同撑着这个家。我本不打算去,可禁不 起同学们的一片盛情,只好答应。丈夫正在帮儿子复习功课,儿子就要上初中了,为了上一所好中学,这段时间丈夫没少操心,东奔西走,至今还没着落呢。
看了儿子一眼,我走出了家门。天安酒店是高级酒店,我走进包房的时候,同学们都已到齐。还没坐稳,一张张名片就飞了过来,一看一个个不是总经理就是带长 的,就连以前成绩总是甩尾的阿军也当上了派出所所长。望着服务小姐端上眼花缭乱的菜肴,我真感叹自己孤陋寡闻,光这一桌就足以抵我三个月的收入了。阿军像 宴席的主人一样不停地招呼大家吃,不时地为这个斟酒、为那个夹菜,嘴里还说:”只管吃,算我的。”大伙也没任何拘束,一 轮接一轮地交杯把盏、海阔天空地闲聊。酒足饭饱之后,天色已不早,此次聚会该结束了。可究竟谁埋单,我看大伙好像都没有要慷慨解囊的意思。这时候阿军掏出 手机,按了一串号码,然后说:”小李,今晚所里扫黄抓到人没有?哦!刚抓到———好!好! 随便送一个到天安酒店来给我埋单。”说完,他得意地把手机放进了口袋,一旁的同学跟着哄笑起来。
十五分钟不到,一个中年人就进来了,他看了账单,不禁皱了皱眉头,看来他身上的现钞也不足。他随即也拿出手机,拨了一串号码,说:”廖工吗?我是马校长 呀!你儿子要转学读我们学校的事,我今天就给你拍板定下来了……不过我今晚请朋友吃饭,你过来埋单好吗?在天安酒店203包厢……”二十分钟后,有人敲了 敲包厢的门,门被打开了。当我见到戴着副高度近眼镜的丈夫站在门口时,我晕倒了……
戴着高度近视眼镜的廖工到了天安酒店203包厢准备买单,服务小姐递过记菜单说:“先生您好!一共是玖仟拐佰拐拾拐元,如要刷卡请随我到楼下服务台。”廖 先生一听额头直冒汗,“天呐!哪有吃饭这么多钱的啊!我又没卡,又没带这么多现金,怎办呀?!”心里急着,脚步也不知不觉的随着服务小姐的牵引来到了服务 台旁边。突然肩膀被人拍了一下,廖先生转身一看,原来是衣着华贵、满身名牌的李女士。李女士一见廖先生显得特别的兴奋:“哎呀!亲爱的,你到这里吃饭也不 通知我一声,真是讨厌。”廖先生和李女士是一年前一个偶然的机会在网聊上认识,李女士有的是钱,只是缺少廖先生这么腼腆、好玩的红颜知己,于是李女士就霸 王硬上弓干脆把廖先生占为已有。她说:“你这么呆头呆脑的站在这里想干何事呀?”廖先生说:“请朋友吃饭,没带足钱焦急。”“多少?”“要9888元 呀。”“就这么个小事就把你急的,真是的!”李女士拿起手机也拨了一串号码嗲声嗲气说:“老公呀,在哪呀?我现在跟老同学吃饭忘了带钱,怎么办呢?就天安 酒店203,你马上过来!不多,就两万块。什么呀?你不过来我等下就上办公室找你!你看着办吧。”政法委书记、公安局长老吴挂了小三李女士电话,无奈的走 出会议室给派出所长阿军打了电话:“这样吧,我现在正主持《忠诚如山、感恩奉献》的主题大会,没办法走开,我有客人在天安酒店吃饭,你马上赶过去,203 包厢,先把单埋了,不得有误!”

心情日志, 网络转载

解决OSGI环境下spring自动扫描问题

August 2nd, 2011

参考地址:http://forum.springsource.org/archive/index.php/t-54188.html

在osgi环境下spring自动扫描 annotation装配有问题

<ctx:component-scan annotation-config=”true” base-package=”com.huateng.anhui.ota.mybatis.service” />

指定了包路径,但是spring并没有去扫描这些包,修改base-package=”*”可以正常工作,比较奇怪

集成mybatis-spring也有问题,也是不能自动扫描Mapper接口

<bean class=”org.mybatis.spring.mapper.MapperScannerConfigurer”>
<property name=”basePackage” value=”com.huateng.anhui.ota.mybatis.dao” />
</bean>

解决方案:

把输出bin目录加入到classpath:

然后自动扫描包就可以正常工作

Java相关, 技术文章

计算机中四种编码: 原码,补码,反码,移码的有关知识【转】

July 19th, 2011

本文将介绍计算机中四种编码: 原码,补码,反码,移码的有关知识。

计算机需要处理的信息包括数值信息以及各种符号,文字,图像语言等信息。但计算机内部的硬件只能表示两个状态0和1,计算机只能对二进制的数字信息进行传 送、处理。加工和存储,因此,在计算机的内部,各种信息都必须经过数字化编码后才能被传送加工和处理,必须对这些信息进行编码。
各种数值数 据在计算机中的表示的形式成为机器数,其特点是采用二进制计数制,数的符号用0、1表示,小数点则隐含表示而不占位置。机器数对应的实际数值称为数的真 值。小数点位置固定的数称为定点数,有无符号数和带符号数之分。计算机中的定点数只采用纯整数或者纯小数形式。
无符号数表示正数,在机器数中没有符号位。对于无符号数,若约定小数点的位置在机器数的最低位后,则是纯整数;若约定小数点的位置在机器数的最高位之前,则是纯小数。
对于带符号数,n位机器数的最高位Xs是表示正负的符号位,其余n-1位则表示数值。若约定小数点的位置在机器数的最低数值位之后,则是纯整数,若约定小数点的位置在机器数的最高位之前(符号位之后),则是纯小数。

带符号定点整数格式: Xs Xn-2 - – - X1 X0 .

带符号顶点小数格式: Xs. Xn-2 - – - X1 X0

(“.”为小数点位置)

1.原码表示

原码(true form)是最容易理解的一种数据编码表示,也称“符号-数值”表示法。
数值X的原码记为[X],如果机器字长为n(即采用n个二进制位表示数据),则最高位是符号位,0表示正号,1表示负号,其余n-1位表示数值的绝对值。数值0的原码表示有两种形式(假设n=8):

[+0]=0 0000000,[-0]=1 0000000

由于小数点约定的位置不同,计算机中的数据分为定点小数和定点整数,相应由两种形式的原码定义。

定点小数的原码定义如下:

[X]= X          ,   0<=X<1

1-X=1+|X|   ,  -1<X<=0

式中X表示真值,[X]表示真值X的原码。若X为正,则[X]与X相同;因为X为纯小数,且0<=X<1,所以最高位(符号位)为0,若X为负,则[X]为1+|X|,即最高位(符号位)为1,数值位为X的绝对值。课间原码体现了数据的绝对值,因此在乘除运算中常采用原码。

定点整数的原码定义如下:

[X]= X        ,           0<=X<2n-1

2n-1-X=2n-1+|X|  ,    -2n-1<X<=0

例:若机器字长n=8
[+35]=(00100011)2
[-35]=27-(-35)=(10000000)2+(00100011)2=(10100011)2

[+0.8125]=(0.1101000)2

[-0.8125]=1-(-0.8125)=(1.0000000)2+(0.1101000)2=(1.1101000)2

由定义可以得出原码的如下性质:
1.原码表示法用最高位表示符号位,符号位为0表示正,1表示负。数值部分就是原来的数值,即绝对值的真值。
2.真值0在原码表示中不唯一。由定义,[+0]=0 0000000,[-0]=1 0000000
3.假设机器字长为n,则
·原码表示的定点小数,其表示范围为: -(1-2-(n-1))~+(1-2-(n-1))
·原码表示的定点小数,其表示范围为:-(2n-1-1)~+(2n-1-1)

4.对于定点小数,当X>0时,0<[X]<1,当X<0时,1<[X]<2
对于n为定点整数,当X>0时,0<[X]<2n-1,当X<0时,2n-1<[X]<2n.
因此,负数的原码大于整数的原码。
5.由真值转换为原码,可将正数的符号位写0,负数符号位写1,数值位照写即可;由原码转换为真值,则将符号位0写成”+”,1写成”-”,数值位不变即可。

+ <—>0 ,- <—->1
真值X <—————————–>[X]
数值位不变

原码的优点:表示简单直观,机器数和真值间的相互转换很容易。用原码实现乘,除运算的规则很简单,可取其绝对值(原码的数值部分)直接运算,并遵循同号相乘除结果符号为正,异号为负的原则,单独处理符号位。
缺点:实现加减运算较为复杂。

2.补码表示

补码概念的引入:

-3 = +9 ( MOD 12 )
一个负数可以表示成一个正数对于一个数M的补数。

补码的定义:

设模为M,一个n为二进制数X的补码的一般定义为:

[X]= M + X  (M为2n)

上式是一个包含正负数在内的统一定义式。
·若X>0,则模作为超出的部分将被舍去,[X]=X,因而正数的补码就是其本身。
·若X<0,则[X]=M-|X|,[X]就是|X|以M为模的补数。

定点小数的补码定义如下:

[X]=  X=[X] ,0<=X<1

2+X = 2-|X|  ,-1<=X<0    (MOD 2).

定点整数的补码定义如下:

[X]= X = [X] ,      0<=X<2n-1

2n+X =2n-|X|   ,   -1<=X<0       (MOD 2)

例: 设机器字长为8位

[-35]补=28+(-35)=(1 0000 0000)2-(0010 0011)2=(1101 1101)2

[-0.8125]=2+(-0.8125)=(10.0000000)2-(0.1101000)2=(1.0011000)2

·补码的性质:

1.补码的符号位。

当0<=X<1时,[X]=X,因此有0<=[X]<1,可见[X]的形式必然为0.xxxx…x,所以符号位S=0。

当-1<=X<0时,[X]=2+X,因此有1<=[X]<2,可见[X]的形式必然为1.xxxx…x,所以符号位为S=1。
2.补码中0的表示

[0]=0,0的补码是唯一的,因此X与[X]一一对应。

3.补码的表示范围
假设字长为n,则用补码表示定点小数,其范围为 -1<=X<=+(1-2-(n-1)),用补码表示定点整数,范围为 -2-(n-1)<=X<=+(2n-1-1).

4.负数的补码值大于整数的补码值。

5.补码与真值、原码之间的相互转换。

当真值X>=0时,
+ <——-> 0
真值X  <———————————-> [X]=[X]
数值位不变

当真值X<0时,假设机器字长为n,由定义得:

[X]=2+X=1.111111..1 + X + 0.000000..1=1.111111..1-|X| +0.00000…1
n个1                    n-1个0          |X|按位取反          末位+1
由此可以得到负数X转换为补码的规则如下:将|X|的真值按位取反,末位+1。

反过来,由定义[X]=2+X,得 -X=2-[X],又因为 -X=|X|,因此有

|X|= -X=2-[X]=1.1111..1-[X]+0.00000..1
[X]按位取反       末位+1

而真值 X=-|X|,由此得出将负数X的补码[X]转换为真值X的规则如下:将负数的补码转换为真值时,只需将符号位写为负号”-”,补码的各位按位取反,末位+1即可。

当真值X<0时,
“-”  <——->1
真值X  <———————————–>[X]
数值按位取反,末位加1

当真值X<0时,
符号位1不变
[X]<————————————>[X]
数值按位取反,末位加一

另一种原码转换为补码的简便方法:数值部分自低位向高位搜索,第一个1以及其右的各位0保持不变,第一个1左边的各位按位取反。

证明:设数值部分为 X X X… X 1 0..00
_ _ _   _
按位取反后为:   X X X…X 0 1..11
_ _ _   _
末位+1:       X X X…X 1 0..00

·补码的符号位扩展:

在实际应用的过程中,有时需要扩充补码的位数。

1.要将n位纯小数补码变成2n位,只需在末尾添加n个0即可。

这个很好理解,例如[X]=0.0000001—->0.000000100000000

2.要将整数补码的模扩大 2n 倍,只需将[X]的符号位向左复制n位即可。

证明: [X1]=2n+X —> X=[X1]-2n;

[X2]=22n+  X   —>[X2]= 22n+  [X1]-2n
将X代入

=2n·2n+ [X1]-2n =(2n-1)·2n +     [X1]
合   并
n-1个1左移n位 加上[x1]补

·补码的算术右移(除2运算)

算术右移就是除2运算,即已知[X]补,求[X/2]补。

符号位不变
结论:  [X]———————————->[X/2]
按位右移一位

证明:   若X>=0

[X]= X —-> X/2= [X]/2,

[X/2]=[X]/2;       即X>=0时补码右移1位

若X<0

[X]=2n+X —>X=[X]-2n,—>X/2=[X]/2-2n-1

[X/2]= 2n +  X/2 = 2n + [X]/2 – 2n-1 = 2n-1 +   [X]/2.
1左移n-1位     [X]补右移一位
即X<0时[X/2]为补码右移1位+1<<(n-1)。

得证。

例: [X1]=0.1101010  则[X1/2]=0.0110101

[X2]=1.0100110 则[X2/2]=1.1010011

·补码的算术左移

算术左移就是乘2运算,与算术右移损失精度不同算术左移可能产生溢出。

末位补0
结论:  [X]补 <———————————->[2X]补
各位左移1位

证明:  [X]= 2+X, X=[X]-2.

2X=2[X]-4  ,[2X]=4 + 2X= 4 + 2[X]-4 =2[X]

得证。

例: [X1]=0.0110100 则[2X1]=0|0.1101000=0.1101000,未溢出。

[X2]=1.0010110 则[2X2]=1|0.0101100=0.0101100,溢出,因为乘2后符号变反。

3.反码表示

反码又称1的补码,下面分别给出定点小数和定点整数的反码定义。

设机器字长为n位,定点小数的反码定义如下:

[X]=   X             ,0<=X<1

2-2-(n-1)+X      ,-1<X<=0    (MOD(2-2-(n-1)))

式中X表示真值,[X]表示真值X的反码。

设机器字长为n位,定点整数的反码定义如下:

[X]=   X             ,0<=X<2n-1

2n-1+X         ,-2n-1<X<=0    (MOD(2n-1))

例:设机器字长n=8

[+35]=(00100011)2

[-35]=(28-1)+(-35)=(11111111)2-(00100011)2=(11011100)2

[+0.8125]=(0.1101000)2

[-0.8125]=(2-2-7)+(-0.8125)=(1.1111111)2-(0.1101000)2=(1.0010111)2

·反码有如下性质:

1.正数的反码与原码相同,负数的反码为该负数对应的原码符号位不变,数值位按位取反。因此,在反码表示中,最高位为符号位,0表示正,1表示负,这一点与原码相同。

2.反码中也有两种0的表示,由定义[+0]=00…0 ,[-0]=11…1,这使得反码与真值不能一一对应。

3.假设机器字长为n,则

·反码表示的定点小数,范围为 -(1-2-(n-1))~+(1-2-(n-1))

·反码表示的定点整数,范围为 -(2n-1-1)~+(2n-1-1)

4.负数的反码大于正数的反码,这一点与原码类似。

5.反码与原码的转换。

当X>=0时,由定义,真值X=原码=反码

符号位不变
当X<0时   [X] <—————————->[X]
数值位按位取反
证明:    只证X<0部分

[X] = 2n-1-X

[X]=2n -1 + X =  2n-1 + 2n-1 -1 -(-X)
和X的原码比较:        符号位不变     按  位  取  反


4.移码表示

计算机中常用移码来表示浮点数的阶码,阶码为整数,因此我们只介绍定点整数的移码表示。若机器字长为n位,则移码的定义如下:

[X]=2n-1 + X  ,    -2n-1<=X<2n-1

上式中X为真值,[X]表示真值X的移码,2n-1是一个固定的偏移值。

移码的性质:

1.移码的符号位。

当-2n-1<=X<0时,0<=[X]<2n-1,即符号位为0.

当0<=X<2n-1时,2n-1<=[X]<2n,即符号位为1.

因此,移码中用0表示负,用1表示正,这点与原码,补码,反码都不同。

2.移码中0的表示是唯一的。[0]=000…0

3.移码的表示范围为 -2n-1<=X<2n-1

4.[X]与X呈线性正比关系。

5.移码与补码的关系:

假设机器字长为n位,由定点整数移码与补码的定义:

[X]=  2n-1+X       , -2n-1<=X<2n-1

[X]=  X        ,  0<=X<2n-1

2n+X     , -2n-1<=X<0

·当X<0时,[X]=2n-1 + 2n-1+X =[X]+2n-1,即X<0时,将[X]的符号改为1即为[X],将[X]的符号改为0即为[X]移。

·当X>=0时,[X]= 2n-1 + X=2n-1+[X],即X<0时,将[X]的符号改为0即为[X],将[X]的符号改为1即为[X]移。

综合两方面,可得出结论,将即X<0时,将[X]的符号位取反即得[X],反之亦然。

符号位取反
[X]<——————–>[X]

转载请注明出处http://www.cppblog.com/RyanWang/archive/2010/02/17/107955.html

技术文章, 网络转载

版权声明的正确格式【转】

July 14th, 2011

版权声明的正确格式

看了不少朋友的个人网站,有一个小问题,似乎很多朋友都忽略了,那就是版权声明的写法。虽然那只是一小行字,不过作为设计师也好,作为个人的爱好也好,版权的标志都是满重要的。

从法律角度看,加入了伯尔尼公约的国家,版权保护是随着作品(无论是文字,还是图片)的问世的即刻就得到版权的保护的,并不是必须要声明。但是作为惯例,这一小行文字还是有很好加强意识,提醒浏览者,所观看的内容是受到版权保护的。

正确的格式应该是:Copyright [dates] by [author/owner]

© 通常可以代替Copyright, 但是不可以用(c)。 All Rights Reserved 在某些国家曾经是必须的,但是现在在大多数国家,都不是法律上必须有的字样。

参见下面几个正确的格式:

©1995-2004 Macromedia, Inc. All rights reserved.

©2004 Microsoft Corporation. All rights reserved.

Copyright © 2004 Adobe Systems Incorporated. All rights reserved.

©1995-2004 Eric A. and Kathryn S. Meyer. All Rights Reserved.

请注意标点符号和大小写的用法,这也是专业精神的一种体现。

现在流行some rights reserved:creativecommons.org

some rights reserved 和copyright 本身并不矛盾,但是其中的界限更多是一个道德问题,真正的保留一部分权力,是指给浏览者fair use 的权利,fair use的界定也决不是随便乱用,或者抄袭。

甚至说,除了copyright, 还有copyleft,它的定义是为了程序员开发能够共享源代码的一个方式,英文里free, 并不仅仅是免费。 而且这种的源码公开免费使用,和版权也一点都不冲突。请大家不要误解。

对于从网上下载素材,如音乐,图片等版权问题, 有朋友问这个问题,答案很简单,所有的这些都有版权问题。和这些作品的大小格式没有关系。

这也是为什么经典论坛不讨论下载的原因,包含字体,同时经典网站也希望其他的网站能尊重本站作者的版权。

版权是互相的,因为每个人都在随时的拥有着你所刚刚创造的作品的版权,哪怕你的涂鸦之作已经被丢进垃圾桶,严格意义上,那也不可以被人抄袭的。不然公司就不需要碎纸机了。

只有彼此的尊重,互相的尊重才能有真正意义上的共享,简单的拿来主义,或者因为我是经典的用户,所以别人就必须要尊重经典的版权,而我不必尊重别人的版权,是不会形成好的版权保护意识的。

版权其实并不意味着付费,和商业化也没有直接的关联。很多时候,你如果真想使用版权保护的内容,只要发封邮件,询问一下许可就可以, 大多数的情形下,个人用户是很喜欢甚至欣赏这样的礼貌和尊重的。

版权问题中很多的灰色地带,我想与其总是用法律的角度来要求用户,还不如让我们都从自己的道德来判断,从尊重的角度来取舍。

文档模板, 网络转载

软件版本号解析【转】

July 8th, 2011

1. 软件版本阶段说明

* Alpha版: 此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言,该版本软件的Bug较多,需要继续修改。
* Beta版: 该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除,此版本主要的修改对像是软件的UI。
* RC版: 该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几。
* Release版: 该版本意味“最终版本”,在前面版本的一系列测试版之后,终归会有一个正式版本,是最终交付用户使用的一个版本。该版本有时也称为标准版。一般情况下,Release不会以单词形式出现在软件封面上,取而代之的是符号(R)。

2. 版本命名规范

软件版本号由四部分组成,第一个1为主版本号,第二个1为子版本号,第三个1为阶段版本号,第四部分为日期版本号加希腊字母版本号,希腊字母版本号共有5种,分别为:base、alpha、beta、RC、release。例如:1.1.1.051021_beta。

3. 版本号定修改规则

* 主版本号(1):当功能模块有较大的变动,比如增加多个模块或者整体架构发生变化。此版本号由项目决定是否修改。
* 子版本号(1):当功能有一定的增加或变化,比如增加了对权限控制、增加自定义视图等功能。此版本号由项目决定是否修改。
* 阶段版本号(1):一般是 Bug 修复或是一些小的变动,要经常发布修订版,时间间隔不限,修复一个严重的bug即可发布一个修订版。此版本号由项目经理决定是否修改。
* 日期版本号(051021):用于记录修改项目的当前日期,每天对项目的修改都需要更改日期版本号。此版本号由开发人员决定是否修改。
* 希腊字母版本号(beta):此版本号用于标注当前版本的软件处于哪个开发阶段,当软件进入到另一个阶段时需要修改此版本号。此版本号由项目决定是否修改。

4. 文件命名规范

文件名称由四部分组成:第一部分为项目名称,第二部分为文件的描述,第三部分为当前软件的版本号,第四部分为文件阶段标识加文件后缀,例如:项目外 包平台测试报告1.1.1.051021_beta_b.xls,此文件为项目外包平台的测试报告文档,版本号为:1.1.1.051021_beta。

如果是同一版本同一阶段的文件修改过两次以上,则在阶段标识后面加以数字标识,每次修改数字加1,项目外包平台测试报告1.1.1.051021_beta_b1.xls。

当有多人同时提交同一份文件时,可以在阶段标识的后面加入人名或缩写来区别,例如:项目外包平台测试报告 1.1.1.051021_beta_b_LiuQi.xls。当此文件再次提交时也可以在人名或人名缩写的后面加入序号来区别,例如:项目外包平台测试 报告1.1.1.051021_beta_b_LiuQi2.xls。

5. 版本号的阶段标识

软件的每个版本中包括11个阶段,详细阶段描述如下:

阶段名称                            阶段标识
需求控制                               a
设计阶段                               b
编码阶段                               c
单元测试                               d
单元测试修改                        e
集成测试                               f
集成测试修改                        g
系统测试                               h
系统测试修改                        i
验收测试                               j
验收测试修改                        k

文档模板, 网络转载

近期计划重点

July 8th, 2011
  • SQL
  • CSS
  • JavaScript

最新动态

21个小故事,愿大家能有收获[转]

June 28th, 2011

1.甲去买烟,烟29元,但他没火柴,跟店员说:“顺便送一盒火柴吧。”店员没给。      
乙去买烟,烟29元,他也没火柴,跟店员说:“便宜一毛吧。”最后,他用这一毛买一盒火柴。      
这 是最简单的心理边际效应。第一种:店主认为自己在一个商品上赚钱了,另外一个没赚钱。赚钱感觉指数为1。第二种:店主认为两个商品都赚钱了,赚钱指数为 2。当然心理倾向第二种了。同样,这种心理还表现在买一送一的花招上,顾客认为有一样东西不用付钱,就赚了,其实都是心理边际效应在作怪。      
启示:变换一种方式往往能起到意想不到的效果! 通常很多事情换一种做法结果就不同了。人生道路上,改善心智模式和思维方式是很重要的。    

2. 有个小男孩,有一天妈妈带着他到杂货店去买东西,老板看到这个可爱的小孩,就打开一罐糖果,要小男孩自己拿一把糖果。但是这个男孩却没有任何动作。几次的 邀请之后,老板亲自抓了一大把糖果放进他的口袋中。回到家中,母亲好奇地问小男孩,为什么没有自己去抓糖果而要老板抓呢?小男孩回答很妙:“因为我的手比 较小呀!而老板的手比较大,所以他拿的一定比我拿的多很多!”    
启示:这是一个聪明的孩子,他知道自己的有限,而更重要的,他也知道别人比自己强。凡事不只靠自己的力量,学会适时地依靠他人,是一种谦卑,更是一种聪明。

3. 美国知名主持人林克莱特有一天访问一名小朋友,问他说:“你长大后想要当做什么呀?”小朋友天真地回答:“嗯……我要当飞机的驾驶员!”林克莱特接着问: “如果有一天,你的飞机飞到太平洋上空所有引擎都熄火了,你会怎么办?”小朋友想了想:“我会先告诉坐在飞机上的人绑好安全带,然后我挂上我的降落伞跳出 去。”当在场的观众笑得东倒西歪时,林克莱特继续注视着这孩子,想看他是不是自作聪明的家伙。没想到,接着孩子的两行热泪夺眶而出,这才使得林克莱特发觉 这孩子的悲悯之心远非笔墨所能形容。于是林克莱特问他说:为什么你要这么做?”小孩的答案透露了这个孩子真挚的想法:“我要去拿燃料,我还要回 来!!!”    
启示:这就是“听的艺术”。一是听话不要听一半。二是不要把自己的意思,投射到别人所说的话上头。要学会聆听,用心听,虚心听。  

4. 有两个和尚他们分别住在相邻的两座山上的庙里。这两座山之间有一条溪,于是这两个和尚每天都会在同一时间下山去溪边挑水,久而久之他么变成为了好朋友。就 这样时间在每天挑水中不知不觉已经过了五年。突然有一天左边这座山的和尚没有下山挑水,右边那座山的和尚心想:”他大概睡过头了。”便不以为意。哪知道第 二天左边这座山的和尚还是没有下山挑水,第三天也一样。过了一个星期还是一样,直到过了一个月右边那座山的和尚终于受不了,他心想:”我的朋友可能生病 了,我要过去拜访他,看看能帮上什么忙。”于是他便爬上了左边这座山,去探望他的老朋友。等他到了左边这座山的庙,看到他的老友之后大吃一惊,因为他的老 友正在庙前打太极拳,一点也不像一个月没喝水的人。他很好奇地问:”你已经一个月没有下山挑水了,难道你可以不用喝水吗?”左边这座山的和尚说:”来来 来,我带你去看。”于是他带着右边那座山的和尚走到庙的后院,指着一口井说:”这五年来,我每天做完功课后都会抽空挖这口井,即使有时很忙,能挖多少就算 多少。如今终于让我挖出井水,我就不用再下山挑水,我可以有更多时间练我喜欢的太极拳。”
启示:我们在公司领的薪水再多,那都是挑水。而把握下班后的时间挖一口属于自己的井,培养自己另一方面的实力,未来当我们年纪大了,体力拼不过年轻人了,依然还是有水喝,而且还能喝得很悠闲。

5. 有两个人相约到山上去寻找精美的石头,甲背了满满的一筐,乙的筐里只有一个他认为是最精美的石头。甲就笑乙:“你为什么只挑一个啊?”乙说:“漂亮的石头 虽然多,但我只选一个最精美的就够了。”甲笑而不语,下山的路上,甲感到负担越来越重,最后不得已不断地从一筐的石头中挑一个最差的扔下,到下山的时候他 的筐里结果只剩下一个石头!    
启示:人生中会有许多的东西,值得留恋,有的时候你应该学会去放弃。  

6. 有一家牙膏厂,产品优良,包装精美,受到顾客的喜爱,营业额连续10年递增,每年的增长率在10%~20%。可到了第11年,业绩停滞下来,以后两年也如 此。公司经理召开高级会议,商讨对策。会议中,公司总裁许诺说:谁能想出解决问题的办法,让公司的业绩增长,重奖10万元。有位年轻经理站起来,递给总裁 一张纸条,总裁看完后,马上签了一张10万元的支票给了这位经理。那张纸条上写着:将现在牙膏开口扩大1毫米。消费者每天早晨挤出同样长度的牙膏,开口扩 大了l毫米,每个消费者就多用1毫米宽的牙膏,每天的消费量将多出多少呢!公司立即更改包装。第14年,公司的营业额增加了32%。    
启示:面对生活中的变化,我们常常习惯过去的思维方法。其实只要你把心径扩大1毫米,你就会看到生活中的变化都有它积极的一面,充满了机遇和挑战

7. 一只火鸡和一头牛闲聊,火鸡说:我希望能飞到树顶,可我没有勇气。牛说:为什么不吃一点我的牛粪呢,他们很有营养。火鸡吃了一点牛粪,发现它确实给了它足 够的力量飞到第一根树枝,第二天,火鸡又吃了更多的牛粪,飞到第二根树枝,两个星期后,火鸡骄傲的飞到了树顶,但不久,一个农夫看到了它,迅速的把它从树 上射了下来。
启示:牛屎运让你达到顶峰,但不能让你留在那里。  

8.乌鸦站在树上,整天无所事事,兔子看见乌鸦,就问:我能像你一样,整天什么事都不用干吗?乌鸦说:当然,有什么不可以呢?于是,兔子在树下的空地上开始休息,忽然,一只狐狸出现了,它跳起来抓住兔子,把它吞了下去。
启示:如果你想站着什么事都不做,那你必须站的很高,非常高。 

9. 一只小鸟飞到南方去过冬。天很冷,小鸟几乎冻僵了。于是,飞到一大块空地上,一头牛经过那儿,拉了一堆牛粪在小鸟的身上,冻僵的小鸟躺在粪堆里,觉得很温 暖,渐渐苏醒过来,它温暖而舒服的躺着,不久唱起歌来,一只路过的野猫听到声音,走过去看个究竟,循着声音,野猫很快发现了躺在粪堆里的小鸟,把它拽出来 吃掉了。
启示:不是每个往你身上拉大粪的人都是你的敌人。也不是每个把你从粪堆里拉出来的人都是你的朋友,还有,当你躺在粪堆里时,最好把你的嘴闭上。

10. 从前,有两个饥饿的人得到了一位长者的恩赐:一根鱼竿和一篓鲜活硕大的鱼。其中,一个人要了一篓鱼,另一个人要了一根鱼竿,于是他们分道扬镳了。得到鱼的 人原地就用干柴搭起篝火煮起了鱼,他狼吞虎咽,还没有品出鲜鱼的肉香,转瞬间,连鱼带汤就被他吃了个精光,不久,他便饿死在空空的鱼篓旁。另一个人则提着 鱼竿继续忍饥挨饿,一步步艰难地向海边走去,可当他已经看到不远处那片蔚蓝色的海洋时,他浑身的最后一点力气也使完了,他也只能眼巴巴地带着无尽的遗憾撒 手人间。又有两个饥饿的人,他们同样得到了长者恩赐的一根鱼竿和一篓鱼。只是他们并没有各奔东西,而是商定共同去找寻大海,他俩每次只煮一条鱼,他们经过 遥远的跋涉,来到了海边,从此,两人开始了捕鱼为生的日子,几年后,他们盖起了房子,有了各自的家庭、子女,有了自己建造的渔船,过上了幸福安康的生活。
启示:一个人只顾眼前的利益,得到的终将是短暂的欢愉;一个人目标高远,但也要面对现实的生活。只有把理想和现实有机结合起来,才有可能成为一个成功之人。有时候,一个简单的道理,却足以给人意味深长的生命启示。

11. 孔子的一位学生在煮粥时,发现有肮脏的东西掉进锅里去了。他连忙用汤匙把它捞起来,正想把它倒掉时,忽然想到,一粥一饭都来之不易啊。于是便把它吃了。刚 巧孔子走进厨房,以为他在偷食,便教训了那位负责煮食的同学。经过解释,大家才恍然大悟。孔子很感慨的说:“我亲眼看见的事情也不确实,何况是道听途听 呢?”
启示:推销生意是一种组织性质的生意,因为人多,人事问题也多。我们不时听到是非难辨的话,如某公司攻击另一间公司,如是者往往令人混淆是非,影响信心。因此找出事情的真相,不是轻易相信谣言,辛辛苦苦建立的事业才不会毁于一旦。

12. 有位秀才第三次进京赶考,住在一个经常住的店里。考试前两天他做了三个梦,第一个梦是梦到自己在墙上种白菜,第二个梦是下雨天,他戴了斗笠还打伞,第三个 梦是梦到跟心爱的表妹躺在一起,但是背靠着背。这三个梦似乎有些深意,秀才第二天就赶紧去找算命的解梦。算命的一听,连拍大腿说:”你还是回家吧。你想 想,高墙上种菜不是白费劲吗?戴斗笠打雨伞不是多此一举吗?跟表妹躺在一张床上了,却背靠背,不是没戏吗?” 秀才一听,心灰意冷,回店收拾包袱准备回家。店老板非常奇怪,问:”不是明天才考试吗,今天你怎么就回乡了?”秀才如此这般说了一番,店老板乐了:”哟, 我也会解梦的。我倒觉得,你这次一定要留下来。你想想,墙上种菜不是高种吗?戴斗笠打伞不是说明你这次有备无患吗?跟你表妹背靠背躺在床上,不是说明你翻 身的时候就要到了吗?”秀才一听,更有道理,于是精神振奋地参加考试,居然中了个探花。
启示:积极的人,象太阳,照到哪里哪里亮,消极的人,象月亮,初一十五不一样。想法决定我们的生活,有什么样的想法,就有什么样的未来。

13. 有一天动物园管理员们发现袋鼠从笼子里跑出来了,于是开会讨论,一致认为是笼子的高度过低。所以它们决定将笼子的高度由原来的十公尺加高到二十公尺。结果 第二天他们发现袋鼠还是跑到外面来,所以他们又决定再将高度加高到三十公尺没想到隔天居然又看到袋鼠全跑到外面,于是管理员们大为紧张,决定一不做二不 休,将笼子的高度加高到一百公尺。一天长颈鹿和几只袋鼠们在闲聊,”你们看,这些人会不会再继续加高你们的笼子?”长颈鹿问。”很难说。”袋鼠说∶”如果 他们再继续忘记关门的话!”
启示:其实很多人都是这样,只知道有问题,却不能抓住问题的核心和根基。

14. 一天夜里,已经很晚了,一对年老的夫妻走进一家旅馆,他们想要一个房间。前台侍者回答说:”对不起,我们旅馆已经客满了,一间空房也没有剩下。”看着这对 老人疲惫的神情,侍者不忍心深夜让这对老人出门另找住宿。而且在这样一个小城,恐怕其他的旅店也早已客满打烊了,这对疲惫不堪的老人岂不会在深夜流落街 头?于是好心的侍者将这对老人引领到一个房间,说:”也许它不是最好的,但现在我只能做到这样了。”老人见眼前其实是一间整洁又干净的屋子,就愉快地住了 下来。第二天,当他们来到前台结账时,侍者却对他们说:”不用了,因为我只不过是把自己的屋子借给你们住了一晚–祝你们旅途愉快!”原来如此。侍者自己 一晚没睡,他就在前台值了一个通宵的夜班。两位老人十分感动。老头儿说:”孩子,你是我见到过的最好的旅店经营人。你会得到报答的。”侍者笑了笑,说这算 不了什么。他送老人出了门,转身接着忙自己的事,把这件事情忘了个一干二净。没想到有一天,侍者接到了一封信函,打开看,里面有一张去纽约的单程机票并有 简短附言,聘请他去做另一份工作。他乘飞机来到纽约,按信中所标明的路线来到一个地方,抬眼一看,一座金碧辉煌的大酒店耸立在他的眼前。原来,几个月前的 那个深夜,他接待的是一个有着亿万资产的富翁和他的妻子。富翁为这个侍者买下了一座大酒店,深信他会经营管理好这个大酒店。这就是全球赫赫有名的希尔顿饭 店首任经理的传奇故事。

15.有一位表演大师上场前,他的弟子告诉他鞋带松了。大师点头致谢,蹲下来仔细系好。 等到弟子转身后,又蹲下来将鞋带解松。有个旁观者看到了这一切,不解地问:”大师,您为什么又要将鞋带解松呢?”大师回答道:”因为我饰演的是一位劳累的 旅者,长途跋涉让他的鞋带松开,可以通过这个细节表现他的劳累憔悴.” “那你为什么不直接告诉你的弟子呢?”"他能细心地发现我的鞋带松了,并且热心地告诉我,我一定要保护他这种热情的积极性,及时地给他鼓励,至于为什么要 将鞋带解开,将来会有更多的机会教他表演,可以下一次再说啊。”
启示:人一个时间只能做一件事,懂抓重点,才是真正的人才。

16. 一个人在高山之巅的鹰巢里,抓到了一只幼鹰,他把幼鹰带回家,养在鸡笼里。这只幼鹰和鸡一起啄食、嬉闹和休息。它以为自己是一只鸡。这只鹰渐渐长大,羽翼 丰满了,主人想把它训练成猎鹰,可是由于终日和鸡混在一起,它已经变得和鸡完全一样,根本没有飞的愿望了。主人试了各种办法,都毫无效果,最后把它带到山 顶上,一把将它扔了出去。这只鹰像块石头似的,直掉下去,慌乱之中它拼命地扑打翅膀,就这样,它终于飞了起来!
启示:磨练召唤成功的力量。

17. 雨后,一只蜘蛛艰难地向墙上已经支离破碎的网爬去,由于墙壁潮湿,它爬到一定的高度,就会掉下来,它一次次地向上爬,一次次地又掉下来……第一个人看到 了,他叹了一口气,自言自语:”我的一生不正如这只蜘蛛吗?忙忙碌碌而无所得。”于是,他日渐消沉。第二个人看到了,他说:这只蜘蛛真愚蠢,为什么不从旁 边干燥的地方绕一下爬上去?我以后可不能像它那样愚蠢。于是,他变得聪明起来。第三个人看到了,他立刻被蜘蛛屡败屡战的精神感动了。于是,他变得坚强起 来。
启示:有成功心态者处处都能发觉成功的力量。

18.一个老人在高速行驶的火车上,不小心把刚买的新鞋从窗口掉了一只,周围的人倍感惋惜,不料老人立即把第二只鞋也从窗口扔了下去。这举动更让人大吃一惊。老人解释说:”这一只鞋无论多么昂贵,对我而言已经没有用了,如果有谁能捡到一双鞋子,说不定他还能穿呢!”
启示:成功者善于放弃。

19. 某大公司准备以高薪雇用一名小车司机,经过层层筛选和考试之后,只剩下三名技术最优良的竞争者。主考者问他们:”悬崖边有块金子,你们开着车去拿,觉得能 距离悬崖多近而又不至于掉落呢?”"二公尺。”第一位说。”半公尺。”第二位很有把握地说。”我会尽量远离悬崖,愈远愈好。”第三位说。结果这家公司录取 了第三位。
启示:不要和诱惑较劲,而应离得越远越好。

20.老和尚携小和尚游方,途遇一条河;见一女子 正想过河,却又不敢过。老和尚便主动背该女子趟过了河,然后放下女子,与小和尚继续赶路。小和尚不禁一路嘀咕:师父怎么了?竟敢背一女子过河?一路走,一 路想,最后终于忍不住了,说:师父,你犯戒了?怎么背了女人?老和尚叹道:我早已放下,你却还放不下!
启示:君子坦荡荡,小人常戚戚;心胸宽广,思想开朗,遇事拿得起、放得下,才能永远保持一种健康的心态。

21. 一个心理学教授到疯人院参观,了解疯子的生活状态。一天下来,觉得这些人疯疯癫癫,行事出人意料,可算大开眼界。想不到准备返回时,发现自己的车胎被人下 掉了。”一定是哪个疯子干的!”教授这样愤愤地想道,动手拿备胎准备装上。事情严重了。下车胎的人居然将螺丝也都下掉。没有螺丝有备胎也上不去啊!教授一 筹莫展。在他着急万分的时候,一个疯子蹦蹦跳跳地过来了,嘴里唱着不知名的欢乐歌曲。他发现了困境中的教授,停下来问发生了什么事。教授懒得理他,但出于 礼貌还是告诉了他。疯子哈哈大笑说:”我有办法!”他从每个轮胎上面下了一个螺丝,这样就拿到三个螺丝将备胎装了上去。教授惊奇感激之余,大为好奇:”请 问你是怎么想到这个办法的?” 疯子嘻嘻哈哈地笑道:”我是疯子,可我不是呆子啊!”
启示:其实,世上有许多的人,由于他们发现了工作中的乐趣,总会表现出与常人不一样的狂热,让人难以理解。许多人在笑话他们是疯子的时候,别人说不定还在笑他呆子呢。做人呆呆,处事聪明,在中国尤其不失为一种上佳做人姿态。

心情日志, 网络转载

BLOG得基本特征和功能要素[转]

June 27th, 2011

原文地址:http://blog.h3bbs.com/article.asp?id=180

打造完美理想的BLOG系统,特列举以下特征和功能,希望给所有BLOG程序编制者参考,如果还有需要补充的请多指教。

BLOG的基本特征和功能要素:

1、RSS-简称“聚合”

RSS 是一种技术规范的简称,不同的技术团体将其分别描述为:“Rich Site Summary”(丰富站点摘要)、“RDF Site Summary”(RDF站点摘要)或“Really Simple Syndication”(真正简易聚合)。在形式上,也分别有RSS技术的主导者、哈佛大学研究员Dave Winer的RSS 0.93、RSS2.0(Apple、News.com的出版商CNET Networks等支持),IBM软件工程师SamRuby 2003年发起的Atom(Google和Six Apart――Movable Type的拥有着支持)。不过本质上它们都是一种遵循W3C RDF规范的XML格式,是一种多用途、可扩展的元数据描述及联合推广格式。它允许互联网站点制作人员,为内容整合客户端提供选择性的、汇总过的Web内容。

RSS2.0规范原文

2、Trackback-引用通告

TrackBack最早是Movable上的功能,后来成为BLOG的标准配置,它是一种将全世界无数个Blog连接起来的功能。通过TrackBack,你可以在自己的Blog上就别人发表的某篇文章做评论和延伸,并通知对方你引用了它文章中的内容。只要对方的Blog也支持TrackBack,你在发布自己的文章时,将同时向对方Blog发出一个TrackBack Ping,向刊载被评论文章的服务器发送你写的Blog的地址、标题和部分征文。这样当其他人浏览那篇文章时,就能够看到你的部分评论和正文,感兴趣的话他们还可以通过链接阅读你评论的详细内容。同样,别人也可以使用TrackBack功能对你Blog中的某篇文章加以评论,在你的文章中留下相应的引申链接

3、Permailink-永久链接

给BLOG上每篇BLOG文章一个永久链接,这样便于他人长期引用,这样不管你的后台是动态程序,首页如何改变,但每篇BLOG的链接都是永久固定的,而且最好是htm等静态链接,这样还有利于搜索引擎的搜录。如果你实在做不到htm 静态链接,可以考虑采取URL REWRITING、PATH_INFO、服务器设置等方式将动态链接变为静态链接,将前台链接表现形式和后台程序分离开来,以后即使更换后台程序也不用担心了。

4、Comments-评论

也称作回复功能,用户可以借此对此BLOG进行评论,这是读者同BLOGGER相互交流的最直接渠道。

5、Archive-归档

也称作索引功能,通常都是按月份进行BLOG文件的归档(也有按分类归档的),便于大家在一个页面就查找到归档日期内的所有BLOG文章,通常都生成静态页面,这也是利于搜索引擎搜录的一个重要手段。

6、Calendar-日历

每个BLOG都可以看到的最基本的元素,这也是BLOG最基本的特征,根据日期可以检索到当日发表的BLOG。

以上是BLOG最基本的功能要素,如果以上6点都达不到,称为BLOG就有些牵强了。话虽如此,目前大部分都只支持了其中四、五项,这是BLOG程序设计者需要学习和改进的。

7、Style-个人定制风格

虽然BLOG最大程度的减少了发布者对于网页技术的需求门槛,但是BLOG鲜明的个人化特征要求发布者可以自定义自己的BLOG风格,因此BLOG具有自定义CSS或者SKIN的功能也是必不可少的。

8、CC-创作共用约定

创作共用约定是BLOG发布者尊重原创者所默认遵从的规则。当然这个并非必须,现在许多新兴的BLOGGER已经忘记或不知道这个约定。

创作共用(Creative Commons)允许拷贝、分发、呈现和表演当前作品,制作派生作品。但是必须遵守一下规则:署名。你必须明确标明作者的名字。非商业用途:你不可将当前作品用于商业目的。保持一致:如果你基于当前作品更改、变换或构造新作品,你应当按照与当前协议完全相同的协议分发最终作品。

对于任何二次使用或分发,你必须让其他人明确当前作品的授权条款,在得到作者的明确允许下,这里的某些条款可以放弃。

9、Catalog-分类

这个并非必须,但基本上BLOGGER都设置有不同的分类,用于区分自己BLOG文章的类别。

10、Search-搜索

基本功能,通常提供的都是简单模糊搜索,基本上已经够用了,所以这项功能也一直没有进行过特别的加强。

11、Statistic-统计

BLOG的基本统计数据,例如访问次数,在线人数,BLOG发表篇数,引用篇数,评论篇数,注册用户数。

12、Links-链接

放置一些友情链接。

13、Favorite-收藏

收藏一些有用的文章或链接。

14、Roll-交换链接

用于显示其他博客的链接,自己的博客也会同时显示在其他blog roll列表里,动态循环显示,有点象国内的文本链广告交换,国外的例子可以参看这里Blogrolling.com。

15、Visual Editor-可视化编辑器

早期都是使用文本,对于HTML标签制作起来就比较麻烦,最近BLOG程序已经普遍采用可视化的文章编辑器,方便BLOGGER更加有效的组织文章结构和显示效果。

16、Tag-标签

通常BLOG文章的分类只有一层,很少有多级分类,有时这也是许多信息量大的用户比较头疼的地方,实现多级分类功能还不如使用Tag功能,方便实用,也比较社会化。

17、AutoLink-自动链接

大家可以看到许多BLOG中许多网站、人名、名词、事件通常都加有超链接,也许很多人就奇怪,作者怎么又这么多精力呢,实际上是关键字自动转换超链接功能在起作用。作者在后台可以设置关键字及其指向的链接,添加文章时就会自动将普通文本关键字变为带超链接的显示方式,有的还可以将关键字进行指定字符转换。这其实也是BLOG一项重要的功能,可惜国内很多BLOG程序很少实现这一点。

18、Album-相册

用于分类上传各类图片,是BLOG的附属功能。

19、Antispam-反垃圾信息

目前的评论系统,容易产生垃圾广告和垃圾信息,需要在系统上对垃圾信息的发布进行限制,例如加入验证码等。

20、Keywords-关键字

通常用于新闻系统的相关文章,但是博客基本上都没有这项功能,对于分类过大,没有TAG功能的博客来讲,利用关键字自动获取相关文章还是很有必要的,实现起来也不难。

21、SN-社会化网络

目前除了rss的应用突飞猛进外,BLOG自身的发展似乎停滞不前了,而增强BLOG的SN功能,是BLOG功能拓展的重要途径。例如“团体博客”,BLOG浏览同好等,具体就不多说了,网上SN服务一大把,参考一下就知道哪些SN功能可以结合进来了。

22、Export-导出

用户数据的导出,例如文章、评论、引用等。

23、Management-管理

管理功能,设置BLOG的基本参数,设置和管理以上所有要素,数据库管理,后台各项内容的导出等。

开源项目, 网络转载

Mina框架之IoBuffer【转】

June 27th, 2011

原文:http://mina.apache.org/iobuffer.html

IoBuffer用于Mina应用程序。

这是一个JDK IoBuffer的替代品,Mina有两个原因没有直接使用:

  • 在填充数据的时候没有提供令人满意的getters 和putters 方法,即get/putString, 和get/putAsciiInt()
  • 很难写入一个可变长的数据到固定大小的Buffer中。

这 些将在Mina3中得到改进。Mina从nio ByteBuffer继承实现的自己的IoBuffer包的的主要原因是让buffers能够可扩展。这是一个很坏的决定。Buffers仅仅只是一个 buffers:一个在数据使用前存放零时数据的地方。有很多其他的解决方案存在,例如定义一个继承于NIO ByteBuffers列表的类(like defining a wrapper which relies on a list of NIO ByteBuffers)来代替拷贝一个buffer到一个更大容量的对象,仅仅因为我们想扩张buffer的容量。

IoBuffer的操作

分配一个新的Buffer

IoBuffer是一个抽象类,因此不能直接实例化。要使用IoBuffer我们需要两个allocate() 方法。

Java代码  收藏代码
  1. // 使用指定大小实例化一个新的Buffer, 并且可以定义他的类型 (direct 或 heap)
  2. public static IoBuffer allocate(int capacity, boolean direct)
  3. // 使用指定大小实例化一个新的Buffer
  4. public static IoBuffer allocate(int capacity)

allocate()方法拥有1个或2个参数,示例第一个拥有两个参数:

  • capacity – Buffer的容量
  • direct – Buffer的类型,ture获得一个单一的Buffer,false获得多个Buffer

默认的Buffer是由SimpleBufferAllocator创建。

另外一下代码也可以达到同样的效果

Java代码  收藏代码
  1. // 设置创建默认Buffer的类型,这里是heap.
  2. IoBuffer.setUseDirectBuffer(false);
  3. // 新建一个Buffer
  4. IoBuffer buf = IoBuffer.allocate(1024);

使用第二种方法之前你必须先指定Buffer类型,否则默认将是Heap。

创建自动扩展的Buffer

使用Java NIO的API创建一个可扩展的buffer并不容易,因为要为网络程序填充超过固定大小数据。因此IoBuffer引入autoExpand 属性,他能自动扩展Buffer限制了的容量大小。

Java代码  收藏代码
  1. IoBuffer buffer = IoBuffer.allocate(8);
  2. buffer.setAutoExpand(true);
  3. buffer.putString(“12345678″, encoder);
  4. // 往Buffer里加入更多内容
  5. buffer.put((byte)10);

在上例中如果encoder的数据比8字节大buffer的大小将重新设置。Buffer大小将会成倍增长,容量会在字符串最后的位置开始增加。其表现和StringBuffer非常相像。

创建自动缩减的Buffer

有一种情况就是为了节省内存而从Buffer中释放掉不使用的资源。IoBuffer提供了autoShrink 属性来达到这目的。如果autoShrink 设置启用,当调用compact() 方法后IoBuffer的容量将会减少一半,只有四分之一或者更少的容量会被用到。手动减少容量使用shrink() 方法。

Java代码  收藏代码
  1. IoBuffer buffer = IoBuffer.allocate(16);
  2. buffer.setAutoShrink(true);
  3. buffer.put((byte)1);
  4. System.out.println(“Initial Buffer capacity = ”+buffer.capacity());
  5. buffer.shrink();
  6. System.out.println(“Initial Buffer capacity after shrink = ”+buffer.capacity());
  7. buffer.capacity(32);
  8. System.out.println(“Buffer capacity after incrementing capacity to 32 = ”+buffer.capacity());
  9. buffer.shrink();
  10. System.out.println(“Buffer capacity after shrink= ”+buffer.capacity());

初始化容量是16字节,设置autoShrink属性为true

看看输出如下:

Initial Buffer capacity = 16
Initial Buffer capacity after shrink = 16
Buffer capacity after incrementing capacity to 32 = 32
Buffer capacity after shrink= 16

从输出结果我们可知:

  • 初始化Buffer的容量是16字节,也是Buffer的最小容量。
  • 调用shrink()方法后,容量依然是16字节,容量永远不会小于最小容量。
  • 当增加体积到32字节,体积变为32.
  • 调用shrink()方法后,容量减少到16字节,删去了多余的存储空间。

Buffer的分配

IoBufferAllocater专门Buffer的分配和管理。实现IoBufferAllocater接口后可控制Buffer的分配管理。Mina的以下类实现了IoBufferAllocater接口:

  • SimpleBufferAllocator(默认)- 任何时间创建一个新的Buffer
  • CachedBufferAllocator - 当buffer需要复用时缓存buffer

Java相关, 网络转载