尘世

在尘世间

在观众里,

我看这尘世间的戏。

王侯将相,

才子佳人,

你方唱罢我登场,

都是聚散离合,

都是悲欢苦乐。

在演员中,

我看这尘世间的观众。

男女老少,

士农工商,

散去一场又来一场,

忽而哭的流涕,

忽而笑的俯仰。

在尘世间,

我当着观众当演员。

酒色财气,

名闻利养,

放不下来舍不去,

为功名利禄受辛苦,

为爱伤心落泪哭。

‌‌

兰花

她窗前的兰花开了

她窗前的兰花开了

纤瘦的身姿

娇柔照水

在微风中摇曳

一如弱柳扶行

她窗前的兰花开了

依旧似灵河岸边

潺潺的流水

恍恍惚惚

仍有三生石的依恋

她窗前的兰花开了

如中秋月下

寒塘中的鹤影

冰清玉洁

如葬过的花魂

她窗前的兰花开了

不胜羞怯

是天外的绛草

于无情中

乘愿又来

培养孩子独立思考的精神

在家庭教育上,谈不上什么经验和心得,因为我本人做的并不好,孩子教育的也不是太成功。但是,我觉得我所认可和崇尚的理念应该是没有大问题的,那就是一定要培养孩子独立思考的精神。
我们的成长过程中,很多人都被教育得人云亦云。或独立思考的能力薄弱,或不敢独立思考,或不敢表达自己的思考。在工作中,对某件事情的独立思考,才是真正被大家所尊重的,而并不是渊博的专业知识,也不是拼命上进的刻苦精神,不是熟练的工作技能,虽然这些毋庸置疑的重要。

孩子从来就不乏独立思考的精神,而且思考的深度也常常令人震撼。有一年夏天,女儿只有几岁大,我在家喝冰镇啤酒,酒杯外有很多冷凝的水珠。我把她叫过来说,“哎呀,你看水杯是不是漏了,怎么外面有好多水呀?”。她很认真的检查了一下水杯,发现水杯并没有漏。我就很诧异的问,“这水是从哪里来的呢?”她思考良久,突然很兴奋的告诉我们,“酒杯外面的水是暖瓶里面的水”。这个结论让我们都很费解,“为什么呢?”。女儿走过去,打开暖瓶盖,冒出了一些热气,“每次打开暖瓶,都会跑出来一些水,然后就跑到酒杯外面去了”。这个事情让我很震撼,不单是孩子独立思考的精神,思考达到的深度也是不可思议的。

其实作为家长,我们需要做的,就是尊重孩子的思考。女儿小的时候,喜欢看82版的西游记。有一回下班后,我爱人问我“唐僧总说四大皆空,四大是什么?”。我就说是地、水、火、风,并做了一些简单解释。但是我很奇怪,怎么想起来问这么个奇怪的问题?爱人说这是女儿看西游记的疑问。我很紧张,“你是怎么回答的?”,爱人就说“当时我就说不知道”。对,我们不知道的,就一定要说不懂、不知道,千万不要指责孩子问的有问题。

有时候,孩子思考中有疑问,我们也无法解答。往往就变的很不耐烦,指责孩子胡思乱想。其实,我们需要做的,除了自我的约束和克制,更重要的是加强思考和学习。有一次,女儿很认真的问我“唐僧为什么要去取经啊?”。这一下子把我问住了。是啊,我们确实一直在看唐僧取经的故事,但是从来没有想过唐僧为什么要去取经。当时我还没有读过原著,就拿电视剧里观音菩萨对唐太宗说的话解答,“能消无妄之灾,能度死人升天。”我们一家人讨论了一阵子,总觉得观音菩萨的理由不是太充分,不足以成为历经81难西天取经的理由。后来我阅读原著,一直带着这个疑问。最后发现,学习了很多东西,收获非常大。

我们的孩子们,都是问题宝宝。作为家长,我们需要做的,可能就是鼓励孩子的好奇和思考。遇到我们不知道的问题,就直接说不懂、不知道,让他继续思考。孩子们思考的问题太广泛、太深入了,我们不可能对每个问题都给出圆满的解答。独立思考的精神,不就是能让下一代超越我们的种子吗?

梦幻

无明樵楼鼓三更,

六道凡夫一夜梦。

无始劫来无量情,

纷纷不断万相生。

心中幻想多挂碍,

梦里人物难自醒。

持戒修福生实信,

皈依觉正皈依净。

Linux下的压缩解压缩命令

压缩

zip -r peigong.zip ./peigong

将当前目录下的所有文件和文件夹全部压缩成peigong.zip文件,-r表示递归压缩子目录下所有文件。

解压缩

unzip -o -d /home/peigong peigong.zip

peigong.zip文件解压到/home/peigong/

  1. **-o:**不提示的情况下覆盖文件。
  2. -d:-d /home/peigong指明将文件解压缩到/home/peigong目录下。

其他

zip -d peigong.zip smart.txt

删除压缩文件中smart.txt文件

zip -m peigong.zip ./rpm_info.txt

向压缩文件中peigong.zip中添加rpm_info.txt文件

Linux下的上传下载工具rz和sz

Linux下的上传下载工具rz和sz一般在 SecureCRT ssh中使用。

检查安装

验证方法:运行命令rz,如果弹出SecureCRT上传窗口,表示已经安装。

如果还没有安装,可以直接用yum安装:

yum install lrzsz -y

安装后,使用上述验证方法,验证安装是否成功。

命令使用

  1. 下载:sz filename
  2. 覆盖下载:sz -y filename
  3. 上传:rz
  4. 覆盖上传:rz -y

注意事项

  • 上传下载目录默认是SecureCRT安装目录下的upload/download目录,也可以在SecureCRT的“选项-会话选项-终端-X/Y/Zmodem”自行设置修改。
  • 在弹出SecureCRT上传窗口选中文件后,需要点击添加按钮,添加到发送的文件列表,然后再点击确定才能上传。
  • 如果上传失败,可能是没有权限,尝试一下sudo rz

学习F.I.S前端工具框架

NPM清单

fex-team/fis

FIS是专为解决前端开发中自动化工具、性能优化、模块化框架、开发规范、代码部署、开发流程等问题的工具框架。

  • 检查安装:npm view fis version
  • 工具安装:npm install -g fis

fouber/fis-postpackager-modjs

a postpackager plugin for fis to process map.json and create map.js for modjs

  • 检查安装:npm view fis-postpackager-modjs version
  • 工具安装:npm install -g fis-postpackager-modjs

fis-conf.js配置

//file : fis-conf.js
fis.config.set('modules.postpackager', 'modjs');
//settings
fis.config.set('settings.postpackager.modjs.subpath', 'pack/map.js');

fouber/fis-parser-less

A parser for fis to compile less file.

  • 检查安装:npm view fis-parser-less version
  • 工具安装:npm install -g fis-parser-less

clippit/fis-parser-dot

FIS Parser for doT.js template engine

  • 检查安装:npm view fis-parser-dot version
  • 工具安装:npm install -g fis-parser-dot

fex-team/fis-postprocessor-jswrapper

A postprocessor plugin for fis to wrap javascript with closure or amd define.

fis-conf.js配置

fis.config.merge({
    settings : {
        postprocessor : {
            jswrapper : {
                //wrap type. if omitted, it will wrap js file with '(function(){...})();'.
                type : 'amd',
                //you can use template also, ${content} means the file content
                //template : '!function(){${content}}();',
                //wrap all js file, default is false, wrap modular js file only.
                wrapAll : true
            }
        }
    }
});

或者通过 roadmap.path 局部配置

fis.config.set('roadmap.path', [
    {
        reg: '/page/**.js',
        jswrapper: {
            //wrap type. if omitted, it will wrap js file with '(function(){...})();'.
            type : 'amd',

            //you can use template also, ${content} means the file content
            //template : '!function(){${content}}();'
        }
    }
]);

fex-team/fis-spriter-csssprites

基于FIS的csssprites,对css文件,以及html文件css片段进行csssprites处理。支持repeat-x, repeat-y, background-position 和 background-size

依赖native插件node-images(xiangshouding/node-images)

  • 检查安装:npm view fis-spriter-csssprites version
  • 工具安装:npm install -g fis-spriter-csssprites

fex-team/fis-packager-depscombine

当设置 pack 的时候,同步依赖也会自动被打包进来。

  • 检查安装:npm view fis-packager-depscombine version
  • 工具安装:npm install -g fis-packager-depscombine

fis-conf.js配置

fis.config.set('modules.packager', 'depscombine');

hefangshi/fis-postpackager-simple

用于自动打包页面零散资源和应用打包资源的FIS插件

  • 自动将页面中声明的资源引用替换为pack中设置的资源
  • 自动将未打包的零散资源按照引用顺序打包,默认关闭

fouber/fis-parser-utc

A parser for fis to compile underscore template.

  • 检查安装:npm view fis-parser-utc version
  • 工具安装:npm install -g fis-parser-utc

F.I.S打包的特点

  • 一个资源不能被打包到多个包里面
  • fis的打包实际上是在建立一个资源表,并将其描述并产出为一份map.json文件,用户应该围绕着这份描述文件来设计前后端运行框架,从而实现运行时判断打包输出策略的架构。
  • 如果只要简单实现all-in-one打包,直接使用hefangshi/fis-postpackager-simple,会把pack设置之外的零碎文件打成一个。不设置pack,所有的零碎文件都打包成了一个。

参考链接

VI的常用操作

进入vi的命令

  • vi filename:打开或新建文件,并将光标置于第一行首
  • vi +n filename:打开文件,并将光标置于第n行首
  • vi + filename:打开文件,并将光标置于最后一行首
  • vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
  • vi -r filename:在上次正用vi编辑时发生系统崩溃,恢复filename
  • vi filename….filename:打开多个文件,依次进行编辑

最后行方式命令

  • :x:保存当前文件并退出
  • :q:退出vi
  • **:q!**:不保存文件并退出vi
  • :w:保存当前文件
  • :e filename:打开文件filename进行编辑
  • :n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
  • :n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
  • :n1,n2 d:将n1行到n2行之间的内容删除
  • :!command:执行shell命令command
  • :n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
  • :r!command:将命令command的输出结果放到当前行

移动光标类命令

  • h:光标左移一个字符
  • l:光标右移一个字符
  • space:光标右移一个字符
  • Backspace:光标左移一个字符
  • k或Ctrl+p:光标上移一行
  • j或Ctrl+n:光标下移一行
  • Enter:光标下移一行
  • w或W:光标右移一个字至字首
  • b或B:光标左移一个字至字首
  • e或E:光标右移一个字至字尾
  • **)**:光标移至句尾
  • **(**:光标移至句首
  • **}**:光标移至段落开头
  • **{**:光标移至段落结尾
  • nG:光标移至第n行首
  • **n+**:光标下移n行
  • **n-**:光标上移n行
  • **n$**:光标移至第n行尾
  • H:光标移至屏幕顶行
  • M:光标移至屏幕中间行
  • L:光标移至屏幕最后行
  • 0:(注意是数字零)光标移至当前行首
  • **$**:光标移至当前行尾

屏幕翻滚类命令

  • Ctrl+u:向文件首翻半屏
  • Ctrl+d:向文件尾翻半屏
  • Ctrl+f:向文件尾翻一屏
  • Ctrl+b;向文件首翻一屏
  • nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令

  • i:在光标前
  • I:在当前行首
  • a:光标后
  • A:在当前行尾
  • o:在当前行之下新开一行
  • O:在当前行之上新开一行
  • r:替换当前字符
  • R:替换当前字符及其后的字符,直至按ESC键
  • s:从当前光标位置处开始,以输入的文本替代指定数目的字符
  • S:删除指定数目的行,并以所输入文本代替之
  • ncw或nCW:修改指定数目的字
    -** nCC**:修改指定数目的行

删除命令

  • ndw或ndW:删除光标处开始及其后的n-1个字
  • do:删至行首
  • **d$**:删至行尾
  • ndd:删除当前行及其后n-1行
  • x或X:删除一个字符,x删除光标后的,而X删除光标前的
  • Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令

  • /pattern:从光标开始处向文件尾搜索pattern
  • ?pattern:从光标开始处向文件首搜索pattern
  • n:在同一方向重复上一次搜索命令
  • N:在反方向上重复上一次搜索命令
  • :s/p1/p2/g:将当前行中所有p1均用p2替代
  • :n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
  • :g/p1/s//p2/g:将文件中所有p1均用p2替换

选项设置

  • all:列出所有选项设置情况
  • term:设置终端类型
  • ignorance:在搜索中忽略大小写
  • list:显示制表位(Ctrl+I)和行尾标志($)
  • number:显示行号
  • report:显示由面向行的命令修改过的数目
  • terse:显示简短的警告信息
  • warn:在转到别的文件时若没保存当前文件则显示NO write信息
  • nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
  • nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
  • mesg:允许vi显示其他用户用write写到自己终端上的信息

寄存器操作

  • ?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
  • ?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
  • ?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
  • ?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
  • ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。