2008-01
23

很短很好用,不过自己老是忘,干脆写下来吧。

当你有一大篇文字,没有换行(或者行宽太宽、太窄),并且段落之间用空行分开, 那么可以使用以下的技巧来重新分行。

:set tw=100         " textwidth,设置文本行宽度
:set fo+=mM         " formatoptions,设置自动换行的条件
gggqG


2007-11
04

用过之后第一感觉:太强大了,让那些商业的共享的软件都去死吧!

AviSynth,可以进行视频合成、编辑、添加字幕,支持所有格式(只要能播放出来), 甚至可以将图片转换为视频。

AviSynth的原理是通过一个脚本,将视频流、音频流处理之后再以流的方式输出。 输出流可以通过播放器直接播放,也可以利用ffmpeg、 VirtualDub等软件将流保存为各种视频格式。 而正是强大的脚本使它具有了强大了视频处理能力。

阅读全文 »

2007-09
17

相信有很多人都想架设自己的DNS服务器。我们知道世界上最好用的DNS服务器软件就是BIND; 但是我辈使用Windows操作系统的人就无福享用这Unix下的顶级软件了。

或者可以用Windows Server自带的DNS服务器试试? 需要安装Server版的Windows不说,麻烦的配置和令人迷惑的图形界面就够受的了。

难道就没有一个解决方案了吗?

柳暗花明又一村,突然发现BIND居然有Windows版,这这这………… 赶快下载下来试一下,居然成功地配好了DNS。

阅读全文 »

2007-09
16

昨天因为要将相机拍摄的视频刻录成VCD,于是上网找了好多MPEG的相关工具, 如切割、合并、格式转换等,大部分都是共享软件并且还有功能限制。 后来实在没办法了,想到了ffmpeg这个工具,抱着试试看的心情看了看帮助, 才发现原来真正的工具在这里!支持绝大多数常见的视频音频格式, 可以在各种格式之间随意转换,支持视频切割。所以说,真正好用的东西其实都是免费的。

ffmpeg的命令行格式如下:

ffmpeg [输入参数] -i 输入文件 [输出参数] 输出文件

这里仅举几个我用到的例子。

截取1分30秒到1分50秒的视频,格式不变。-ss指定起始时间,-t指定截取长度,-vcodec 和-acodec指定为copy表明不对源视频音频流做任何处理直接复制。

ffmpeg -ss 0:1:30 -t 0:0:20 -i input.mpg -vcodec copy -acodec copy output.mpg

mpg转换成vcd所用的视频格式。-ac 2表示将单声道音频转换成立体声。

ffmpeg -i input.mpg -target pal-vcd -ac 2 output.mpg

VCD要求视频大小为 352x240,而我们的视频大小为320x240,需要在两边加上黑边凑足352像素:

ffmpeg -i input.mpg -padleft 16 -padright 16 -padcolor 000000 -target pal-vcd -ac 2 output.mpg

将字幕合并到视频中,可以利用AviSynth,首先制作好srt格式字幕, 然后利用DIO's RelProducer GUI加载视频和字幕生成avs文件,再利用ffmpeg转换此avs文件:

ffmpeg -i input.avs output.mpg

合并视频流和音频流,可以先利用ffmpeg将mp3转换成wav:

ffmpeg -i input.mp3 output.wav

然后再利用VirtualDub合并之。



2007-08
30

这一篇是扫盲用的,主要讲解了几个最常用的函数IF、AND、OR、COUNT、COUNTA、COUNTIF和SUM, 会用的同学就可以跳过了。以后会逐渐讲解其他函数的应用。

1. 逻辑判断

逻辑判断所用的函数不多,IF、AND、OR三个就足以应付日常工作了。

IF函数可以用来转换值,如将1和0转换为OK和NG:

=IF(A1=1,"OK","NG")

与AND和OR组合使用可以判断多个条件,如判断是否是周末:

=IF(OR(WEEKDAY(A1)=0, WEEKDAY(A1)=6),"周末","工作日")

2. 统计数量的COUNT、COUNTA、COUNTIF

COUNT和COUNTA统计对象不同,COUNTA统计所有非空单元格的数量(包括出错的单元格), COUNT仅统计看起来像数字的单元格。

COUNTIF则可以添加搜索条件,这个特性可以用来做统计。如

=COUNTIF(F:F,"OK")     统计F列中OK的个数
=COUNTIF(F:F,"NG")     统计F列中NG的个数

3. 求和的SUM

这个函数简单得不能再简单了:

=SUM(A10:A254)         对A10~A254的范围求和

没了。别看Excel函数成百上千,常用的就这几个。充其量再加上其他几个信息函数, 如求日期的DATE、YEAR、MONTH、DAY、NOW、WEEKDAY,数值计算的FLOOR、INT、MOD、ROUND, 字符串操作的CHAR、LEFT、RIGHT、MID(具体使用方法参见帮助), 几乎可以应付全部的日常应用。

下面举几个例子来说明这些函数的应用。

1. 测试用例。一般测试用例的表格会是这样:

ABCDEF
1编号类别测试内容确认内容结果测试时间
21界面单击新建按钮建立新文档OK8/27
32界面单击保存按钮保存文档OK8/27
32界面单击另存为钮打开保存对话框NG8/27

那么统计OK和NG的个数就分别用

=COUNTIF(E:E,"OK")     统计OK个数
=COUNTIF(E:E,"NG")     统计NG个数

如果测试用例分成好几个工作表,那么可以在最前面加一个统计用的工作表,并用SUM求出所有用例的状况。

2. 日历。这个日历是用在项目进度管理上的,格式类似于下面这种横向的日历。

8月
1234567891011

可按以下格式输入:

ABCDEFG
18/1=A1+1=B1+1............
2=MONTH(A1)=IF(MONTH(B1)=MONTH(A1), "",MONTH(B1)...............
3=DAY(A1)=DAY(B1)...............
4=MID("日一二三四五六",WEEKDAY(A1),1)..................

然后隐藏掉第一行即可。


2008-2-14更新 回答读者妮妮的问题,讲解一下VLOOKUP函数的用法。

VLOOKUP用于查找信息,更确切地说,它用来“翻译”信息。比如员工名单上有员工号和姓名的对应关系, 那么给出一个员工号的列表,就可以通过VLOOKUP将其“翻译”成姓名列表。先来看个例子:

ABCD
1排行姓名排行姓名
21柯镇恶3=VLOOKUP(C2,$A$2:$B$8,2)
32朱聪3=VLOOKUP(C3,$A$2:$B$8,2)
43韩宝驹4=VLOOKUP(C4,$A$2:$B$8,2)
54南希仁7=VLOOKUP(C5,$A$2:$B$8,2)
65张阿生
76全金发
87韩小莹

这个表的$A$2:$B$8区域为参考数据(原始对应关系),C列为需要翻译的原始数据,D列为翻译结果。 具体的结果大家可以实际放到Excel里面执行一下。

VLOOKUP有三个参数,分别如下:

VLOOKUP(原始数据, 参考数据, 搜索结果在参考数据中的列位置)

Excel会在参考数据的第一列中搜索原始数据(上例中,在$A$2:$B$8的第一列即$A$2:$A$8中搜索原始数据C2), 找到后,返回第三个参数——列位置所对应的数据(上例中,在$A$2:$A$8中找到与C2相等的3之后, 返回3所对应的第2列——韩宝驹,这个“第2列”即为第三个参数)。

那么找不到时怎么办?其实VLOOKUP还有第四个参数,值为TRUE或FALSE,默认为TRUE。 取值TRUE时,VLOOKUP会返回不大于原始数据的最小值所对应的结果,例如=VLOOKUP(2.5,$A$2:$B$8,2,TRUE)会返回“朱聪” (朱聪的“2”为不大于2.5的最大值)。 取值为FALSE时,VLOOKUP会返回#N/A。

通常在处理字符串时,大多情况下希望在找不到时返回错误或空串。 这时可以为VLOOKUP加上第四个参数FALSE,再用ISNA函数将#N/A转换为空串。如:

[D2]=VLOOKUP(C2,$A$2:$B$8,2,FALSE)
[D3]=IF(ISNA(D2),"",D2)


2007-08
29

网上有很多关于如何制作漂亮的幻灯片的教程,而对Excel的美化则寥寥无几。 实际上Excel不仅仅是一个电子表格软件,它的单元格容易控制样式,操作方便, 因此使用Excel制作仅供阅读的电子文档也十分合适。 这就要求文档制作者必须懂得一些基本技巧,以制作出赏心悦目的电子文档来。

下面是我制作Excel格式电子文档时的一些经验,分享给大家。 希望大家都能够制作出漂亮的文档。

阅读全文 »

2007-07
22

今天介绍Excel的一个非常有趣(有时也有用)的功能:放大镜,它能将工作表上的任意区域放大缩小或者改变形状。

方法是,先选中区域,然后按住Shift键单击编辑菜单,选择粘贴图片链接,被选定的区域就会被当作图片粘贴进来, 然后你可以随意改变它的大小,如下图所示:

Excel放大镜

对源区域的任何修改都会即时反映到图片中,俨然就是个放大镜。它甚至可以放大源区域中的图形和图片:

Excel放大镜

那么这个功能有什么用呢?比如当你做了一张极其复杂的表格,想写一份说明文档教给别人如何使用时, 就可以利用这个功能了。



2007-06
16

这篇文章分析了Firefox插件对浏览速度的影响。我个人也一直很奇怪 为什么我的Firefox打开新窗口时速度要比别人慢很多,后来发现 是自己装了很多插件的原因。原文在这里

大部分Web程序开发者都喜欢Firefox,首要原因是因为它有丰富的插件, 像All-in-One Gestures、User Agent Switcher、Firebug、Greasemonkey、 WebDeveloper、ScrapBook等。

但是随着插件的增加,启动时间、页面显示时间也会变慢,其首要原因 就是插件,特别是部分插件会严重影响浏览速度。

那么,究竟是哪些插件影响了速度?能否通过数字进行比较? 这里给出了显示时间的测试结果。

阅读全文 »

2007-05
23

1. 行列转置。选择一片区域复制,然后在要粘贴的地方选择编辑->选择性粘贴, 勾选转置,你会发现行变成了列,列变成了行。记住它的快捷键:选中,Ctrl-C, 单击目的地,Alt-E, s, Alt-E,单击确定。

2. 公式转化成数值。有时使用一排公式算出结果后,想要删除原数据,但又要保留结果, 则可以先选中计算结果,复制,原地不动进行编辑->选择性粘贴,选择数值后确定。 键盘快捷方式:Ctrl-C,Alt-E,s,v,回车。

3. CSV转Excel。网页上的CSV如何快速输入到Excel中?先保存成.csv文件再用Excel打开, 不过太麻烦。应该直接复制所有内容,打开Excel,编辑->选择性粘贴,选文本,确定, 然后单击粘贴区域右下方的粘贴图标(如下图),选择使用文本导入向导, 适当选择即可。

excel-tips-02.png

4. 隐藏工作表。就像隐藏行和列一样,选择格式->工作表->隐藏,即可将当前显示的工作表隐藏起来。 一些常量值、列表数据、计算中的临时变量等,都可以放在一个临时工作表中, 制作完成后将临时工作表隐藏起来,就不会影响表格美观。 反过来,当你分析别人做的表格时发现引用了“不存在”的工作表, 试试格式->工作表->取消隐藏也许会有发现。

5. 给复杂的引用定义名称。选择你要引用的单元格或范围,然后插入->名称->定义, 即可为其定义一个简短的名称,以后在公式中就不必写成完整的“工作簿!单元格范围”的形式。

6. 多人共同编辑。选择工具->共享工作簿...,勾选其中的复选框,确定, 然后将你的Excel表格共享(通过Windows的共享功能)。别人就可以与你一同编辑表格, 每次保存时数据会自动合并。

7. 折叠部分行或列。选中你要折叠的几行,选择数据->组及分级显示->组合, 即可将选中的行折叠,如下图。

excel-tips-01.png

8. 输入提示,如下图的效果。方法是数据->有效性...,在输入信息标签页中设置。

excel-tips-03.png


2007-05
22

VMware相信大家都耳熟能详,不过估计大家用的都是价值200多刀的VMware Workstation版。 而VMware公司的另一个产品——VMware Server,不收取一分钱费用却能让你实现真正的虚拟服务器。

有关VMware Workstation版和VMware Server版的详细区别请参见 smalldust的这篇文章, 但是你需要知道的一点是,Server并不是为Workstation准备的服务器端 (这和通常意义上的Workstation和Server的概念不同), 两者是完全不同的两个产品。VMware Workstation能运行在2000、XP、Linux等各种操作系统上, 但缺点就是你无法远程控制虚拟机,因此你必须在你自己的电脑上使用它; 而VMware Server则只能运行在2000 Server、RedHat Linux Enterprise等服务器操作系统上, 但你可以远程控制虚拟机,因此你可以将安装在服务器上,虚拟出多台服务器, 以充分利用服务器资源。

我最近部署的一台服务器,单CPU志强3G,2G内存,两块75G SCSI硬盘,OS为RHEL4。 部署的目的是为了做软件测试,显然这样一台服务器仅用做软件测试太浪费了, 因此我通过VMware Server在其上虚拟了四个服务器,以便同时进行四种不同的测试任务。 请注意看下面这张图,这是VMware Server的监控程序,可以看到四台虚拟服务器 总共才消耗了23% CPU和286M内存,远未达到服务器的处理能力上限。 因此通过这个方法可以大大提高服务器利用率。

vmware-server-manager.png

通过VMware Console(下图),你可以远程控制服务器上的虚拟服务器, 就像在自己本机上使用VMware Workstation一样。

vmware-server-console.png

VMware Server可在vmware官方网站上免费下载。 注册用户后可以免费获取最多100个免费的许可证。