前一阵一直在做单片机的程序,由于串口不够,需要用IO口来模拟出一个串口。经过若干曲折并参考了一些现有的资料,基本上完成了。现在将完整的测试程序,以及其中一些需要总结的部分贴出来。
阅读全文

假设要发送一组数据 Send[10]
一般采用查询发送(循环发送)方式:
unsigned char Send[10]; //发送量
unsigned char i; //循环量
for(i=0;i<10;i++)
{
SBUF= Send[i]; //发送
while(TI==0); //等待发送完成
TI=0; //清标志
}
采用中断发送方式:
unsigned char Send[10]; //发送量
unsigned char num; //发送数据量
unsigned char *p; //发送用指针
//发送时:
num=10; //定义发送数据量
p=&Send ; //取首地址
SBUF=*p; //发送第一个数据,启动发送中断
//中断代码:
void ComInt() interrupt 4
{
if(RI) RI=0; //接收中断略;
if(TI) //发送中断处理
{
TI=0; //清标志
num--; //计数减1
p++; //指针加1
if(num >0) SBUF=*p; //数据继续发送至全部发完
}
}
中断发送优点:省去循环等待时间,以上面例子为例,9600bps时查询发送约占用单片机10ms多,而中断发送只占单片机几十微秒(单片机速度越快,占用时间越少)。
中断发送缺点:代码稍复杂,发送过程不易控制。
来源:http://mazhijing.blog.51cto.com/215535/197250
一般采用查询发送(循环发送)方式:
unsigned char Send[10]; //发送量
unsigned char i; //循环量
for(i=0;i<10;i++)
{
SBUF= Send[i]; //发送
while(TI==0); //等待发送完成
TI=0; //清标志
}
采用中断发送方式:
unsigned char Send[10]; //发送量
unsigned char num; //发送数据量
unsigned char *p; //发送用指针
//发送时:
num=10; //定义发送数据量
p=&Send ; //取首地址
SBUF=*p; //发送第一个数据,启动发送中断
//中断代码:
void ComInt() interrupt 4
{
if(RI) RI=0; //接收中断略;
if(TI) //发送中断处理
{
TI=0; //清标志
num--; //计数减1
p++; //指针加1
if(num >0) SBUF=*p; //数据继续发送至全部发完
}
}
中断发送优点:省去循环等待时间,以上面例子为例,9600bps时查询发送约占用单片机10ms多,而中断发送只占单片机几十微秒(单片机速度越快,占用时间越少)。
中断发送缺点:代码稍复杂,发送过程不易控制。
来源:http://mazhijing.blog.51cto.com/215535/197250
在使用php原生api连接mysql数据库的时候往往需要建立与本地mysql的多个连接,这个时候,mysql会为你多次连接返回同样的文件描述符。这本来是php对mysql连接的一种优化,对于同一台机器的不同数据库操作,提供统一的连接,避免大量的新连接,影响通讯效率。但如果不注意控制会出现问题。
问题:
如果在程序开始部分,对同一台机器的数据库建立了多个连接,例如使用mysql_connect 函数连接了本地数据库a与b,返回的都是资源描述符9(mysql_connect 的返回值)此后并没有任何查询操作,mysql会对这种sleep连接进行断开(可以设置wait_timeout来控制断开的等待时间),这个时候,对资源描述符9的连接已经断开,当你再要查询的时候,mysql会返回gone away的错误,errno代码为2600,此时你需要重新连接mysql,为了让php真正重新连接,而不是返回已经存在的断开的9号描述符,需要先调用mysql_close函数,结束已经断开的9号连接,然后再次调用mysql_connect进行连接。
此时问题出现了,调用mysql_close,打印mysql_close信息,返回的是true,说明关成功。再次mysql_connect后系统返回的仍旧是刚才断开的9号描述符,查询还会显示mysql gone away。正常情况下当调用mysql_close后,再次连接,系统会分配一个新的资源符。说明由于开始的时候多次连接返回相同的描述符对mysql_close调用产生了影响,没有真正断开资源描述符为9的连接。
原理猜想:
程序开始部分多次连接,php返回相同的资源描述符,同时维护一个描述符的引用计数,由于连接两次,引用计数为2,当调用mysql_close的时候,第一次调用会对引用计数-1,这个时候系统知道还有一个连接使用该资源描述符,所以不会真正断开连接,虽然这个连接由于超时了,已经不能使用。只有再次调用mysql_close的时候,引用计数再次-1,这次引用计数为0,mysql_close函数才会真正断开连接,再次使用mysql_connect函数的时候才会建立新的连接。
解决方法:
在调用mysql_connect时候给定最后一个参数 $new_link 为true,这样对相同参数调用返回不同的描述符,再次查询时候,如果发现gone away,调用mysql_close即可关闭这个连接,然后新建连接即可。
猜想:
在使用mysqli的时候好像没有出现过这种问题,因为在连接时候直接选择了不同的数据库,无需再单独选择数据库,这个时候系统返回的描述符可能因为连接的库不同直接就返回不同描述符,不会出现上面这种现象。这个待证实。
来源:http://hi.baidu.com/johntech/blog/item/d7d9390a8e232add63d986ed.html
问题:
如果在程序开始部分,对同一台机器的数据库建立了多个连接,例如使用mysql_connect 函数连接了本地数据库a与b,返回的都是资源描述符9(mysql_connect 的返回值)此后并没有任何查询操作,mysql会对这种sleep连接进行断开(可以设置wait_timeout来控制断开的等待时间),这个时候,对资源描述符9的连接已经断开,当你再要查询的时候,mysql会返回gone away的错误,errno代码为2600,此时你需要重新连接mysql,为了让php真正重新连接,而不是返回已经存在的断开的9号描述符,需要先调用mysql_close函数,结束已经断开的9号连接,然后再次调用mysql_connect进行连接。
此时问题出现了,调用mysql_close,打印mysql_close信息,返回的是true,说明关成功。再次mysql_connect后系统返回的仍旧是刚才断开的9号描述符,查询还会显示mysql gone away。正常情况下当调用mysql_close后,再次连接,系统会分配一个新的资源符。说明由于开始的时候多次连接返回相同的描述符对mysql_close调用产生了影响,没有真正断开资源描述符为9的连接。
原理猜想:
程序开始部分多次连接,php返回相同的资源描述符,同时维护一个描述符的引用计数,由于连接两次,引用计数为2,当调用mysql_close的时候,第一次调用会对引用计数-1,这个时候系统知道还有一个连接使用该资源描述符,所以不会真正断开连接,虽然这个连接由于超时了,已经不能使用。只有再次调用mysql_close的时候,引用计数再次-1,这次引用计数为0,mysql_close函数才会真正断开连接,再次使用mysql_connect函数的时候才会建立新的连接。
解决方法:
在调用mysql_connect时候给定最后一个参数 $new_link 为true,这样对相同参数调用返回不同的描述符,再次查询时候,如果发现gone away,调用mysql_close即可关闭这个连接,然后新建连接即可。
猜想:
在使用mysqli的时候好像没有出现过这种问题,因为在连接时候直接选择了不同的数据库,无需再单独选择数据库,这个时候系统返回的描述符可能因为连接的库不同直接就返回不同描述符,不会出现上面这种现象。这个待证实。
来源:http://hi.baidu.com/johntech/blog/item/d7d9390a8e232add63d986ed.html
一)一定要有True,及FILE_APPEND:
二)生成Curl Post格式的接口调试:
三)生成db的update加where的日志(Key作为数据库的字段,值为值,where也一样):
一行完成Curl的POST输出:
view plainprint?
echo "curl -d\"".http_build_query($data)."\" ".$url;
最近写一个infobright导入脚本的时候,需要判断文件超过一定大小2G时候,再建立一个文件,但在获取文件大小信息的时候,本来已经调用file_put_contents写入文件,但通过filesize获取文件大小的时候,大小还是没写入前的大小,后来发现原来php为了提高函数效率,会缓存之前文件信息,需调用 clearstatcache();来清除缓存,清除缓存后,再使用filesize函数获取的文件大小就正确了~~,正确调用过程如下:
file_put_contents($this->current_file, $data,FILE_APPEND);
clearstatcache();
if(filesize($this->current_file) > self::$file_max_size)
{
......
}
来源:http://hi.baidu.com/johntech/blog/item/50b23aebe3afb533b90e2d04.html
二)生成Curl Post格式的接口调试:
三)生成db的update加where的日志(Key作为数据库的字段,值为值,where也一样):
一行完成Curl的POST输出:
view plainprint?
echo "curl -d\"".http_build_query($data)."\" ".$url;
最近写一个infobright导入脚本的时候,需要判断文件超过一定大小2G时候,再建立一个文件,但在获取文件大小信息的时候,本来已经调用file_put_contents写入文件,但通过filesize获取文件大小的时候,大小还是没写入前的大小,后来发现原来php为了提高函数效率,会缓存之前文件信息,需调用 clearstatcache();来清除缓存,清除缓存后,再使用filesize函数获取的文件大小就正确了~~,正确调用过程如下:
file_put_contents($this->current_file, $data,FILE_APPEND);
clearstatcache();
if(filesize($this->current_file) > self::$file_max_size)
{
......
}
来源:http://hi.baidu.com/johntech/blog/item/50b23aebe3afb533b90e2d04.html
大家都知道,PHP中有个函数叫json_encode,可以对变量进行 JSON 编码。
使用这个函数就可以把AJAX请求的返回值给转换成JSON格式,方便处理啊。
可是这个返回值并不是真正意义上的Javascript的JSON对象。
从面向对象的角度来讲,一切皆是对象,呵呵。
所以,忘了从哪里扒下来的这个函数,分享出来方便大家使用。
最主要的是给自己加个念想。呵。毕竟曾经学习过。
function evalJson( jsonText )
{/*{{{*/
var jsonObject;
switch(typeof jsonText ){
case 'string':
try{
jsonObject = eval('('+jsonText+')');
}
catch(e){
jsonObject = null;
}
break;
case 'object':
case 'number':
case 'boolean':
case 'function':
jsonObject = jsonText;
}
return jsonObject;
}/*}}}*/
传递过去的参数jsonTest就是通过PHP,json_encode函数处理后的返回结果。
这样,我们就可以用心爱的JSON来处理AJAX返回值了。呵呵。
来源:http://www.xiaoxiaozi.com/2009/04/02/39/
外带4pin转sata电源线
<?php
//IP转换成整数的函数
function IptoInt($ip)
{
$ipa=explode(".",$ip);
$ipn=$ipa[0]*16777216+$ipa[1]*65536+$ipa[2]*256+$ipa[3];
return $ipn;
}
// 整数还原成IP的函数
function InttoIp($value)
{
$bin = decbin($value);
$zeros = 32 - strlen($value);
for($i=0;$i<$zeros;$i++)
$bin = '0'.$bin;
$arr = str_split($bin,8);
$ip='';
for($i=0;$i<count($arr);$i++){
$ip .= bindec($arr[$i]).".";
}
$ip=substr($ip,0,strlen($ip)-1);
return $ip;
}
?>
<?php
echo IptoInt("192.168.0.1");
echo "\n";
echo IptoInt("255.255.255.255");
?>
//IP转换成整数的函数
function IptoInt($ip)
{
$ipa=explode(".",$ip);
$ipn=$ipa[0]*16777216+$ipa[1]*65536+$ipa[2]*256+$ipa[3];
return $ipn;
}
// 整数还原成IP的函数
function InttoIp($value)
{
$bin = decbin($value);
$zeros = 32 - strlen($value);
for($i=0;$i<$zeros;$i++)
$bin = '0'.$bin;
$arr = str_split($bin,8);
$ip='';
for($i=0;$i<count($arr);$i++){
$ip .= bindec($arr[$i]).".";
}
$ip=substr($ip,0,strlen($ip)-1);
return $ip;
}
?>
<?php
echo IptoInt("192.168.0.1");
echo "\n";
echo IptoInt("255.255.255.255");
?>
比如这个:255.255.255.255这个,掏出windows计数器,运行:输入calc
对应二进制是32个1:11111111111111111111111111111111 选择二进制输入32个1:
然后转为十进制:也就是点十进制。
结果为:4294967295
对应二进制是32个1:11111111111111111111111111111111 选择二进制输入32个1:
然后转为十进制:也就是点十进制。
结果为:4294967295
php计算的结果:
[~]# php ip.php
3232235521
4294967295
3232235521
4294967295
说明这个长整形就是这样转的,呵呵。
美国甲骨文总裁艾里克森被母校哈佛大学邀请回校为学弟、学妹们讲述自己的成功之道,结果他的讲演没有结束就被主持人请下了台,终止了他的演讲,为什么呢?我告诉大家一下他演讲的基本内容你就明白为什么了?
“我是甲骨文软件公司创始人艾里克森,现在个人的财富有260亿美圆,我的公司是世界第二大软件公司,我们的业务遍布全球,我在哈佛上大学但是没有毕业,没有得到哈佛的文凭,因为我知道在这里学习不到什么创业立身的东西,什么我自动退学了,你们要想取得像我一样的成绩,你们就不要在这里学习了,赶紧创业吧。其实不只我是这样,全球首富比尔.盖茨在哈佛也没有毕业,苹果公司的史迪夫.乔布斯也没有大学毕业,年轻的迈克尔.戴尔也没有大学毕业就创造了戴尔电脑公司,谷歌公司的两个创办人也没有大学毕业,你们要发财还呆在这里干什么呢?......”
你如果是会议的主持人你也会把这个狂人请下台的,尽管他讲演的内容都是真实的,原因就是在学校你不能鼓动学生退学,否则大学如何办下去?
艾里克森讲的东西是准确的,他没有从理论上总结他们这些人成功的真实原因,我知道他们成功的真实原因:财富与文凭的悖论。
我们如果知道经济的基本原理:市场运行的不确定性,就知道“财富与文凭的悖论”是正确的,
香港的李嘉诚、霍英东、李肇基、郑裕彤等人没有什么大学文凭,可是他们创造财富的能力大家都认可,他们可以左右香港的经济,也为全球的华人挣足了脸面。台湾的王永庆等等一大批创业者有什么文凭?大陆在改革开放后出现的富豪们有几个是大学文凭?如华为公司的任正非,中国大陆有很多高校创办的企业,都是不死不活,没有一个成功的也是一个证明。
市场运行的不确定性决定了创业者必须有天赋和决断能力,这些都不是大学可以叫给你的,这需要历练和思考,经验只能来自于社会。
说的远一点,世界有名望的作家有哪一个是大学文学系毕业的?没有吧。这是我的发现,可能有遗漏,有谁能告诉我哪个著名作家是毕业于大学文学系的?
“富不过三代”有一定的根据,就是后来的企业继承人都受到了良好的教育,在因该决断的时候想的东西与大学学到的东西不一致,要产生犹豫不决的情况,而当他们决断是时机一丧失,决断后产生的后果是一场灾难。说的再简单一点,荣氏家族的两个创办人都没有什么大学问,却创造了世界级的企业,而他们的孙辈都受到了良好的大学教育,现在又如何呢?王安电脑公司在20世纪80年代是世界第二名,仅次于IBM公司,他的继承人受到的教育远远超越他的创办人王安先生,不幸的是公司早已经破产,知道这个公司的人只能是经济史的研究者了。
我说以上话的目的不是说大学教育没有作用,大学教育培养的是管理人员,是按照程序操作的人才,不是创业者,按照程序操作的人好培养,真正能够创业的人很难遇到,而这正是现在中国发展最缺乏的人才,中国的创造能力不足也就可以理解了。
“我是甲骨文软件公司创始人艾里克森,现在个人的财富有260亿美圆,我的公司是世界第二大软件公司,我们的业务遍布全球,我在哈佛上大学但是没有毕业,没有得到哈佛的文凭,因为我知道在这里学习不到什么创业立身的东西,什么我自动退学了,你们要想取得像我一样的成绩,你们就不要在这里学习了,赶紧创业吧。其实不只我是这样,全球首富比尔.盖茨在哈佛也没有毕业,苹果公司的史迪夫.乔布斯也没有大学毕业,年轻的迈克尔.戴尔也没有大学毕业就创造了戴尔电脑公司,谷歌公司的两个创办人也没有大学毕业,你们要发财还呆在这里干什么呢?......”
你如果是会议的主持人你也会把这个狂人请下台的,尽管他讲演的内容都是真实的,原因就是在学校你不能鼓动学生退学,否则大学如何办下去?
艾里克森讲的东西是准确的,他没有从理论上总结他们这些人成功的真实原因,我知道他们成功的真实原因:财富与文凭的悖论。
我们如果知道经济的基本原理:市场运行的不确定性,就知道“财富与文凭的悖论”是正确的,
香港的李嘉诚、霍英东、李肇基、郑裕彤等人没有什么大学文凭,可是他们创造财富的能力大家都认可,他们可以左右香港的经济,也为全球的华人挣足了脸面。台湾的王永庆等等一大批创业者有什么文凭?大陆在改革开放后出现的富豪们有几个是大学文凭?如华为公司的任正非,中国大陆有很多高校创办的企业,都是不死不活,没有一个成功的也是一个证明。
市场运行的不确定性决定了创业者必须有天赋和决断能力,这些都不是大学可以叫给你的,这需要历练和思考,经验只能来自于社会。
说的远一点,世界有名望的作家有哪一个是大学文学系毕业的?没有吧。这是我的发现,可能有遗漏,有谁能告诉我哪个著名作家是毕业于大学文学系的?
“富不过三代”有一定的根据,就是后来的企业继承人都受到了良好的教育,在因该决断的时候想的东西与大学学到的东西不一致,要产生犹豫不决的情况,而当他们决断是时机一丧失,决断后产生的后果是一场灾难。说的再简单一点,荣氏家族的两个创办人都没有什么大学问,却创造了世界级的企业,而他们的孙辈都受到了良好的大学教育,现在又如何呢?王安电脑公司在20世纪80年代是世界第二名,仅次于IBM公司,他的继承人受到的教育远远超越他的创办人王安先生,不幸的是公司早已经破产,知道这个公司的人只能是经济史的研究者了。
我说以上话的目的不是说大学教育没有作用,大学教育培养的是管理人员,是按照程序操作的人才,不是创业者,按照程序操作的人好培养,真正能够创业的人很难遇到,而这正是现在中国发展最缺乏的人才,中国的创造能力不足也就可以理解了。
互联网很大,圈子很小---腾讯凶猛之我见
最近老是有人说我们腾讯,哈哈,我也来写两笔,以凑个热闹, 我个人认为是Tencent有把五个指头握成一个拳头,这五个指头分别是:
1.用户体验,快速迭代
2.数据挖掘是重武器?数据为王
3.重事实,看观点,商业与我如浮云烟
4.低调的华丽,意境方能高远
5.人才储备加公司文化的厚积薄发
-----------------------------------------------------------------------------------------
很多人说腾讯不是一个创新的公司,我觉得我有一点看法,顺便写一下大概:
什么叫创新呢?你创新一个看看,似乎很困难吧?不要为了创新而创新,我们要做有用创新,模仿其本质也是创新,不是吗?超越了前面的对手和产品,那更是创新,是吧!商业本是一个胜者为王的和战争相仿的一个严肃的游戏,创新仅仅是游戏规则中的一个较为重要的环节,而它绝对不是全部,所以,不创新可能失败,但是创新未必成功。
好的产品未必需要标新立异,腾讯赢在用户体验上,它把每个产品都做得稳定好用,这还不够,它要做的是一个平台,一个平台下的精细化服务,原因很简单:用户不会在乎你创新了什么,也不会在乎更不知道谁是原创,谁是模仿,在乎的是好不好用,方便不方便,能不能发掘其内在的需求和人性的一些东西,这就完全足够了。也是其最本质的东西,那就是用户习惯,谁前期修改了用户的习惯,进而演化为良好的用户体验,我想如果一个用户没有什么习惯,就来体验你的产品,那就会对你的产品大打折扣,额外的用户习惯是在潜移默化中培养出来的,需要精细耕作,而超越其他同类产品的能力,那就是腾讯最大的创新,存在即是合理,失败便是零蛋,赢是最终的目的,但它也不是商业的全部归宿,谢谢。 jackxiang
最近老是有人说我们腾讯,哈哈,我也来写两笔,以凑个热闹, 我个人认为是Tencent有把五个指头握成一个拳头,这五个指头分别是:
1.用户体验,快速迭代
2.数据挖掘是重武器?数据为王
3.重事实,看观点,商业与我如浮云烟
4.低调的华丽,意境方能高远
5.人才储备加公司文化的厚积薄发
-----------------------------------------------------------------------------------------
很多人说腾讯不是一个创新的公司,我觉得我有一点看法,顺便写一下大概:
什么叫创新呢?你创新一个看看,似乎很困难吧?不要为了创新而创新,我们要做有用创新,模仿其本质也是创新,不是吗?超越了前面的对手和产品,那更是创新,是吧!商业本是一个胜者为王的和战争相仿的一个严肃的游戏,创新仅仅是游戏规则中的一个较为重要的环节,而它绝对不是全部,所以,不创新可能失败,但是创新未必成功。
好的产品未必需要标新立异,腾讯赢在用户体验上,它把每个产品都做得稳定好用,这还不够,它要做的是一个平台,一个平台下的精细化服务,原因很简单:用户不会在乎你创新了什么,也不会在乎更不知道谁是原创,谁是模仿,在乎的是好不好用,方便不方便,能不能发掘其内在的需求和人性的一些东西,这就完全足够了。也是其最本质的东西,那就是用户习惯,谁前期修改了用户的习惯,进而演化为良好的用户体验,我想如果一个用户没有什么习惯,就来体验你的产品,那就会对你的产品大打折扣,额外的用户习惯是在潜移默化中培养出来的,需要精细耕作,而超越其他同类产品的能力,那就是腾讯最大的创新,存在即是合理,失败便是零蛋,赢是最终的目的,但它也不是商业的全部归宿,谢谢。 jackxiang
mysql> select left(now(),7);
+---------------+
| left(now(),7) |
+---------------+
| 2010-09 |
+---------------+
1 row in set (0.00 sec)
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2010-09-21 13:40:37 |
+---------------------+
1 row in set (0.00 sec
+---------------+
| left(now(),7) |
+---------------+
| 2010-09 |
+---------------+
1 row in set (0.00 sec)
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2010-09-21 13:40:37 |
+---------------------+
1 row in set (0.00 sec
select left(FTime,10),count(*) from Tbl_User group by left(FTime,10) ;
+----------------+----------+
| left(FTime,10) | count(*) |
+----------------+----------+
| | 1044 |
| 2010-07-21 | 6 |
| 2010-07-22 | 2746 |
| 2010-07-23 | 10273 |
| 2010-07-24 | 7691 |
| 2010-07-25 | 6955 |
| 2010-07-26 | 7622 |
| 2010-07-27 | 2130 |
+----------------+----------+
注意下面查询语句的区别:
mysql> select left(FTime,10),count(*) from Tbl_User group by left(FTime,10) ;
+----------------+----------+
| left(FTime,10) | count(*) |
+----------------+----------+
| | 1 |
| 2010-07-13 | 7 |
| 2010-07-14 | 1 |
| 2010-07-15 | 1 |
| 2010-07-16 | 3 |
| 2010-07-20 | 2 |
| 2010-07-25 | 1 |
+----------------+----------+
7 rows in set (0.00 sec)
mysql> select FTime,count(*) from Tbl_User group by left(FTime,10) ;
+---------------------+----------+
| FTime | count(*) |
+---------------------+----------+
| | 1 |
| 2010-07-13 11:39:45 | 7 |
| 2010-07-14 11:50:20 | 1 |
| 2010-07-15 15:16:20 | 1 |
| 2010-07-16 16:11:39 | 3 |
| 2010-07-20 12:00:31 | 2 |
| 2010-07-25 19:16:08 | 1 |
+---------------------+----------+
FTime类型如下:
`FTime` varchar(32) collate utf8_bin NOT NULL,
所谓德,就是人顺应自然的安排而各有所得,它支配万物,使万物各得其所尽其所能。
所谓仁,就是人与人的亲情关系,它包含慈爱,红会和同情之心,人之亲情顺其产生和形成。
所谓义,就是人所遵循的与实务相适应的原则,根据这种原则,奖赏善者惩罚恶着,从而建立功德,成就事业。
所谓礼,就是人日日身体力行,起早晚睡勤奋实践,形成人于人之间序长幼,别尊卑的一种伦理纲常。
所谓仁,就是人与人的亲情关系,它包含慈爱,红会和同情之心,人之亲情顺其产生和形成。
所谓义,就是人所遵循的与实务相适应的原则,根据这种原则,奖赏善者惩罚恶着,从而建立功德,成就事业。
所谓礼,就是人日日身体力行,起早晚睡勤奋实践,形成人于人之间序长幼,别尊卑的一种伦理纲常。
《素书·原始第一》白话译文
原文:
夫道、德、仁、义、礼,五者一体也。
道者:人之所蹈,使万物不知其所由。
德者:人之所得,使万物各德其所欲。
仁者:人之所亲,有慈慧恻隐之心,以遂其生成。
义者:人之所宜,赏善罚恶,以立功立事。
礼者:人之所履,夙兴夜寐,以成人伦之序。
夫欲为人之本,不可无一焉。
阅读全文
原文:
夫道、德、仁、义、礼,五者一体也。
道者:人之所蹈,使万物不知其所由。
德者:人之所得,使万物各德其所欲。
仁者:人之所亲,有慈慧恻隐之心,以遂其生成。
义者:人之所宜,赏善罚恶,以立功立事。
礼者:人之所履,夙兴夜寐,以成人伦之序。
夫欲为人之本,不可无一焉。

最近,昆曲《怜香伴》打着“纪念李渔四百周年”旗号上演。香港导演关锦鹏、“巾生魁首”汪世瑜、文化学者李银河、服装设计师郭培、化妆设计师毛戈平跨界合作,演出由有“物以稀为贵”的“男旦”的担纲,出品方更号称《怜香伴》是“国际艺术节翘首以盼”的一部佳作。
如是眼花缭乱的商业包装,如是华丽的演出阵容,原本以为能从中感受到中国古典美学,却不料,我第一次在剧场听到观众的嘲笑声,第一次感受到什么叫中国封建文化的糟粕,终于明白为什么戏剧史上对李渔的剧作一直评价不高。
《怜香伴》中,范家新妇崔笺云与曹家小姐语花一见钟情,赋诗唱和,同性相恋,几经周折同嫁范生。就同性恋感情展示,《怜香伴》仅是闻香、吟诗,便让两个女子倾心相许,十分肤浅。我看过的同性恋题材作品中,像曹雪芹《红楼梦》里戏子藕官和药官、蕊官的同性爱,是艰难环境下相依为命而产生的恋情;港片《自梳》里的意欢和玉环两个女子,屡经患难,相互扶持,从而有了刻骨铭心的爱。相对而言,崔笺云和曹语花的恋情平铺直叙,缺乏动人之处。
表面上,《怜香伴》是同性恋的故事,骨子里是男人的意淫。曹语花父亲有权有势,自然对无权无势的范生有利无弊,这分明是一生不得志、落魄江湖的李渔的梦想——娶美人,美人的家庭还能扶助自己的事业。在闺房之乐上,李渔写了范生与崔笺云的狎昵之态, 中国封建士大夫引以为乐,在今天看来则是低级趣味。总而言之,不论从情节,还是从文辞来说,《怜香伴》的剧本价值着实不高,也就难怪被尘封350年之久。
出剧场后,我脑海里想到的问题是,斥巨资打造《怜香伴》这样的戏,有什么意义?尽管《牡丹亭》、《西厢记》、《长生殿》也是谈情说爱,但剧本的深度、文辞的优美,亦可使今人陶醉。《怜香伴》这么一出即使在封建时代也不能登大雅之堂的戏,却在今天搬演。它那通体散发出封建残渣腐臭味儿,能给人们带来什么?即便从美学角度来说,男子气犹在的“男旦”表演谈不上美感;服装华贵,但整个舞台看去,颜色搭配不当,不是满台偏黄,就是满台偏青蓝,绝对不如《牡丹亭》杜丽娘粉红衣配柳梦梅粉蓝衣好看。
《怜香伴》这样的戏,只能作为高级酒吧的配乐,让酒客附庸风雅,而不能在艺术上感染众生。然而制作方却投重金于其中,大加渲染,可谓无任何意义
如是眼花缭乱的商业包装,如是华丽的演出阵容,原本以为能从中感受到中国古典美学,却不料,我第一次在剧场听到观众的嘲笑声,第一次感受到什么叫中国封建文化的糟粕,终于明白为什么戏剧史上对李渔的剧作一直评价不高。
《怜香伴》中,范家新妇崔笺云与曹家小姐语花一见钟情,赋诗唱和,同性相恋,几经周折同嫁范生。就同性恋感情展示,《怜香伴》仅是闻香、吟诗,便让两个女子倾心相许,十分肤浅。我看过的同性恋题材作品中,像曹雪芹《红楼梦》里戏子藕官和药官、蕊官的同性爱,是艰难环境下相依为命而产生的恋情;港片《自梳》里的意欢和玉环两个女子,屡经患难,相互扶持,从而有了刻骨铭心的爱。相对而言,崔笺云和曹语花的恋情平铺直叙,缺乏动人之处。
表面上,《怜香伴》是同性恋的故事,骨子里是男人的意淫。曹语花父亲有权有势,自然对无权无势的范生有利无弊,这分明是一生不得志、落魄江湖的李渔的梦想——娶美人,美人的家庭还能扶助自己的事业。在闺房之乐上,李渔写了范生与崔笺云的狎昵之态, 中国封建士大夫引以为乐,在今天看来则是低级趣味。总而言之,不论从情节,还是从文辞来说,《怜香伴》的剧本价值着实不高,也就难怪被尘封350年之久。
出剧场后,我脑海里想到的问题是,斥巨资打造《怜香伴》这样的戏,有什么意义?尽管《牡丹亭》、《西厢记》、《长生殿》也是谈情说爱,但剧本的深度、文辞的优美,亦可使今人陶醉。《怜香伴》这么一出即使在封建时代也不能登大雅之堂的戏,却在今天搬演。它那通体散发出封建残渣腐臭味儿,能给人们带来什么?即便从美学角度来说,男子气犹在的“男旦”表演谈不上美感;服装华贵,但整个舞台看去,颜色搭配不当,不是满台偏黄,就是满台偏青蓝,绝对不如《牡丹亭》杜丽娘粉红衣配柳梦梅粉蓝衣好看。
《怜香伴》这样的戏,只能作为高级酒吧的配乐,让酒客附庸风雅,而不能在艺术上感染众生。然而制作方却投重金于其中,大加渲染,可谓无任何意义