关于vim使用

从删除空行说起:

命令:

这里面包含三部分:

1: g

2: /^$/

3: d

关于 :g 的使用参看:

global 用于重复执行一条命令,  ‘d’ 就是delete,相当于选择模式匹配的部分,然后执行一个d命令,也可以是:

如下命令是怎么解释的呢:

‘s’ 是一个替换命令,后面是其参数,可以适当选择合适的分隔符,如把所有的 /data1 替换为 /data2:

这里使用 ‘/’ 做分隔符显然不太合适,使用 # 就省得对 ‘/’  做转义了

关于rsyslog

1. rsyslog的tcp远程记录日志,如果远程主机端口宕掉,可以配置成先写本地文件队列,配置如下:

注意: 指定的目录需要手动创建

每个tcp端口可以配置一个队列文件,队列文件不是实时写入到,当服务stop到时候(或者bufer满到时候)才会生成队列文件,配置多个tcp到队列文件如下:

 

javascript 之 call、apply、new

首先,我们给出一段代码:

 

下面有几中使用方式:

1.  直接执行函数,利用函数的返回值

2. 使用new来创建对象

3. 使用apply来创建对象

4. 使用call来创建对象

使用call和apply的区别在于传递参数的方式不同

 

结论:

1. 这里面只有第一种使用方法是不可取的(或者说的错误的)

2. 第二种方式容易被覆盖,所以也很少有使用,除非就不期望出现多个相同功能的对象

3. 第三、四种方式都比较容易扩展方法,被广泛使用

4. 这里的 init方法需要根据需要来决定是否公开

 

 

linux shell 数组建立及使用技巧

摘自: http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html

Linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在数组方面一些操作进行的总结。

1.数组定义

一对括号表示是数组,数组元素用“空格”符号分割开。

 

2.数组读取与赋值

得到长度

用${#数组名[@或*]} 可以得到数组长度

读取

 

用${数组名[下标]} 下标是从0开始  下标是:*或者@ 得到整个数组内容

赋值:

直接通过 数组名[下标] 就可以对其进行引用赋值,如果下标不存在,自动添加新一个数组元素

删除:

直接通过:unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据。

 

3.特殊使用

分片:

 

直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,上面例子:c 就是一个新数据。

替换:

 

调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。

 

从上面讲到的,大家可以发现linux shell 的数组已经很强大了,常见的操作已经绰绰有余了。

Canvas与SVG

<canvas>是一个新的HTML元素,这个元素可以被Script语言(通常是JavaScript)用来绘制图形。例如可以用它来画图、合成图象、或做简单的(和不那么简单的)动画。右面的图象展示了一些<canvas>的应用示例,我们将会在此教程中看到他们的实现。

<canvas>最先在苹果公司(Apple)的Mac OS X Dashboard上被引入,而后被应用于Safari。基于Gecko1.8的浏览器,例如Firefox 1.5,也支持这个新元素。元素<canvas>WhatWG Web applications 1.0也就是大家都知道的HTML 5标准规范的一部分。

 

SVG 是Scalable Vector Graphics(可伸缩矢量图形)的首字母缩写,是一种XML语言的矢量图形格式。svg图形非常灵活,可以是静态的,可以是动态的,也可以进行交互或 者动画。svg图形的样式可以通过CSS指定,其动态行为可以利用svg DOM或者javascript实现。此外svg文件中的文字是可以被读取的(这一点对于搜索引擎的优化很有意义)。在html页面中插入svg图形也非常简单。

 

Canvas与SVG是两种截然不同的在浏览器中呈现丰富图像信息的网络技术,如何在 SVG 和 Canvas 之间进行选择。

本文给出了一些相关资料,里面分析的已经很详细了:

http://technet.microsoft.com/zh-cn/library/gg193983%28v=vs.85%29.aspx

http://blogs.msdn.com/b/weizhong/archive/2011/07/16/canvas-svg.aspx

http://hi.baidu.com/ulquiorra_sifo/item/10db350e7faf0dd42f4c6b52

Canvas教程: https://developer.mozilla.org/zh-CN/docs/Canvas_tutorial

 

JS刷新页面的三种方法

Location 对象的三个方法可以刷新页面

属性 描述 IE F O
assign() 加载新的文档。 4 1 9
reload() 重新加载当前文档。 4 1 9
replace() 用新的文档替换当前文档。 4 1 9

assign定义和用法

assign() 方法可加载一个新的文档。

语法

 

reload定义和用法

reload() 方法用于重新加载当前文档。

语法

说明

如果该方法没有规定参数,或者参数是 false,它就会用 HTTP 头 If-Modified-Since 来检测服务器上的文档是否已改变。如果文档已改变,reload() 会再次下载该文档。如果文档未改变,则该方法将从缓存中装载文档。这与用户单击浏览器的刷新按钮的效果是完全一样的。

如果把该方法的参数设置为 true,那么无论文档的最后修改日期是什么,它都会绕过缓存,从服务器上重新下载该文档。

 

replace定义和用法

replace() 方法可用一个新文档取代当前文档。

语法

说明

replace() 方法不会在 History 对象中生成一个新的记录。当使用该方法时,新的 URL 将覆盖 History 对象中的当前记录。

 

实际使用:

1. 如果不期望用户能后退,使用replace(newURL)

2. 如果不期望使用缓存,使用reload(true)

3. 如果期望可以后退,使用assign(newURL)

 

附:

可以使用 location.href = newURL; 的方式来刷新页面,这个类似于上面的哪一种行为呢?(好像是assign?)

关于windows进程 mDNSResponder.exe

该程序一般安装在: C:\Program Files\Bonjour\mDNSResponder.exe

那么,Bonjour 是个什么东西呢?

Bonjour,原名Rendezvous,是苹果电脑公司在其开发的操作系统Mac OS X10.2版本之后引入的服务器搜索协议所使用的一个商标名。适用于LAN, Bonjour使用多点传送域名系统服务记录来定位各种设备,比如打印机或者其他计算机,以及另外设备上的服务。 Bonjour 一词在法语中是常见问候语,意思为“早安/午安”。