2005-08-30

跟我学XSL(三):XSL模板与匹配模式

  经过前几日的学习,我们学习了XHTML文档的编写和三个XSL元素,已能编写相当灵活的XSL文档,今天将学习的是XSL模板的编写。我们都知道,短的文档、程序十分好读,但当规模增大后,其复杂性也以更快的速度增加。


2005-08-29

SQL中的GROUP BY 子句

SQL中的GROUP BY子句 支持GROUP ING SETS,ROLLUP,CUBE选项。

GROUPING SETS

GROUPING SETS允许用户精确制定进行哪些特定的分组操作,如:
SELECT s#, p#, SUM(QTY) AS TOTQTY
FROM SP
GROUPING BY GROUPING SETS (s#, p#);

2005-08-28

Network monitoring with ngrep

Constant monitoring and troubleshooting are key to maintaining a network's availability. With ngrep, you can analyze network traffic in a manner similar to that of other network sniffers. However, unlike its brethern, ngrep can match regular expressions within the network packet payloads. By using its advanced string matching capabilities, ngrep can look for packets on specified ports and assist in tracking the usernames and passwords zipping off the network, as well as all Telnet attempts to the server.

2005-08-27

打开chm文件出错

最近发现当打开存放在网络硬盘上的chm文件时,chm文件的内容总是不能正确显示。昨天从http://linux.vbird.org 上下载了一个chm文件,存放到本地硬盘上也不能在我的机器上打开。把文件拷贝到另外一台Windows XP机器上,打开却没有问题。

察看了一下日志中的Application的记录,得到了下面的信息:

2005-08-26

Backup / Restore XP Activation

When you activate Windows XP, Microsoft stores the data in the Windows Product Activation database files wpa.dbl and Wpa.bak in the folder %systemroot%system32. If you change the motherboard or make significant hardware changes, XP will require you to reactive. But if you plan to reinstall XP on the same hardware, you can back up the activation status and then restore it after you reinstall and avoid the activation process. You can backup the Windows Product Activation database files to diskette. They are very small. A directory listing from my XP Pro workstation:

Apache日志解读

Apche日志系列(1):访问日志

想要知道什么人在什么时候浏览了网站的哪些内容吗?查看Apache的访问日志就可以知道。访问日志是Apache的标准日志,本文详细解释了访问日志的内容以及相关选项的配置。

一、访问日志的格式

Apache内建了记录服务器活动的功能,这就是它的日志功能。这个《Apache日志》系列文章介绍的就是Apache的访问日志、错误日志,以及如何分析日志数据,如何定制Apache日志,如何从日志数据生成统计报表等内容。

如果Apache的安装方式是默认安装,服务器一运行就会有两个日志文件生成。这两个文件是access_log(在Windows上是 access.log)和error_log(在Windows上是error.log)。采用默认安装方式时,这些文件可以在 /usr/local/apache/logs下找到;对于Windows系统,这些日志文件将保存在Apache安装目录的logs子目录。不同的包管理器会把日志文件放到各种不同的位置,所以你可能需要找找其他的地方,或者通过配置文件查看这些日志文件配置到了什么地方。

正如其名字所示,访问日志access_log记录了所有对Web服务器的访问活动。下面是访问日志中一个典型的记录:

216.35.116.91 - - [19/Aug/2000:14:47:37 -0400] "GET / HTTP/1.0" 200 654

这行内容由7项构成,上面的例子中有两项空白,但整行内容仍旧分成了7项。

第一项信息是远程主机的地址,即它表明访问网站的究竟是谁。在上面的例子中,访问网站的主机是216.35.116.91。随便说一句,这个地址属于一台名为si3001.inktomi.com的机器(要找出这个信息,可以使用nslookup工具查找DNS),inktomi.com是一家制作Web 搜索软件的公司。可以看出,仅仅从日志记录的第一项出发,我们就可以得到有关访问者的不少信息。

默认情况下,第一项信息只是远程主机的IP地址,但我们可以要求Apache查出所有的主机名字,并在日志文件中用主机名字来替代IP地址。然而,这种做法通常不值得推荐,因为它将极大地影响服务器记录日志的速度,从而也就减低了整个网站的效率。另外,有许多工具能够将日志文件中的IP地址转换成主机名字,因此要求Apache记录主机名字替代IP地址是得不偿失的。

然而,如果确实有必要让Apache找出远程主机的名字,那么我们可以使用如下指令:

HostNameLookups on

如果HostNameLookups设置成double而不是on,日志记录程序将对它找到的主机名字进行反向查找,验证该主机名字确实指向了原来出现的IP地址。默认情况下HostNameLookups设置为off。

上例日志记录中的第二项是空白,用一个“-”占位符替代。实际上绝大多数时候这一项都是如此。这个位置用于记录浏览者的标识,这不只是浏览者的登录名字,而是浏览者的email地址或者其他唯一标识符。这个信息由identd返回,或者直接由浏览器返回。很早的时候,那时Netscape 0.9还占据着统治地位,这个位置往往记录着浏览者的email地址。然而,由于有人用它来收集邮件地址和发送垃圾邮件,所以它未能保留多久,很久之前市场上几乎所有的浏览器就取消了这项功能。因此,到了今天,我们在日志记录的第二项看到email地址的机会已经微乎其微了。

日志记录的第三项也是空白。这个位置用于记录浏览者进行身份验证时提供的名字。当然,如果网站的某些内容要求用户进行身份验证,那么这项信息是不会空白的。但是,对于大多数网站来说,日志文件的大多数记录中这一项仍旧是空白的。

日志记录的第四项是请求的时间。这个信息用方括号包围,而且采用所谓的“公共日志格式”或“标准英文格式”。因此,上例日志记录表示请求的时间是2000年8月19日星期三14:47:37。时间信息最后的“-0400”表示服务器所处时区位于UTC之前的4小时。

日志记录的第五项信息或许是整个日志记录中最有用的信息,它告诉我们服务器收到的是一个什么样的请求。该项信息的典型格式是“METHOD RESOURCE PROTOCOL”,即“方法 资源 协议”。

在上例中,METHOD是GET,其他经常可能出现的METHOD还有POST和HEAD。此外还有不少可能出现的合法METHOD,但主要就是这三种。

RESOURCE是指浏览者向服务器请求的文档或URL。在这个例子中,浏览者请求的是“/”,即网站的主页或根。大多数情况下,“/”指向DocumentRoot目录的index.html文档,但根据服务器配置的不同它也可能指向其他文件。

PROTOCOL通常是HTTP,后面再加上版本号。版本号或者是1.0,或者是1.1,但出现1.0的时候比较多。我们知道,HTTP协议是Web得以工作的基础,HTTP/1.0是HTTP协议的早期版本,而1.1是最近的版本。当前大多数Web客户程序仍使用1.0版本的HTTP协议。

日志记录的第六项信息是状态代码。它告诉我们请求是否成功,或者遇到了什么样的错误。大多数时候,这项值是200,它表示服务器已经成功地响应浏览器的请求,一切正常。此处不准备给出状态代码的完整清单以及解释它们的含义,请参考相关资料了解这方面的信息。但一般地说,以2开头的状态代码表示成功,以3开头的状态代码表示由于各种不同的原因用户请求被重定向到了其他位置,以4开头的状态代码表示客户端存在某种错误以5开头的状态代码表示服务器遇到了某个错误

日志记录的第七项表示发送给客户端的总字节数。它告诉我们传输是否被打断(即,该数值是否和文件的大小相同)。把日志记录中的这些值加起来就可以得知服务器在一天、一周或者一月内发送了多少数据。

二、配置访问日志

访问日志文件的位置实际上是一个配置选项。如果我们检查httpd.conf配置文件,可以看到该文件中有如下这行内容:

CustomLog /usr/local/apache/logs/access_log common


注意,对于版本较早的Apache服务器,这行内容可能略有不同。它使用的可能不是CustomLog指令,而是TransferLog指令。如果你的服务器属于这类情况,建议你尽可能地早日升级服务器。

CustomLog指令指定了保存日志文件的具体位置以及日志的格式。至于如何定制日志文件的格式以及内容,我们将在这个《Apache日志》系列文章的后面几篇讨论。上面这行指令指定的是common日志格式,自从有了Web服务器开始,common格式就是它的标准格式。由此我们也可以理解,虽然几乎不再有任何客户程序向服务器提供用户的标识信息,但访问日志却还保留着第二项内容。

CustomLog指令中的路径是日志文件的路径。注意,由于日志文件是由HTTP用户打开的(用User指令指定),因此必须注意这个路径要有安全保证,防止该文件被随意改写。

《Apache日志》系列文章的后面几篇将继续介绍:Apache错误日志,定制日志的格式和内容,如何将日志内容写入指定的程序而不是文件,如何从日志文件获得一些非常有用的统计信息,等等。

Apche日志系列(2):错误日志

错误日志和访问日志一样也是Apache的标准日志。本文分析错误日志的内容,介绍如何设置和错误日志相关的选项,文档错误和CGI错误的分类,以及如何方便地查看日志内容,等等。

一、位置和内容

前文讨论了Apache的访问日志,包括它的内容、格式和如何设置访问日志有关的选项。本文我们要讨论的是另外一种Apache标准日志——错误日志。

错误日志无论在格式上还是在内容上都和访问日志不同。然而,错误日志和访问日志一样也提供丰富的信息,我们可以利用这些信息分析服务器的运行情况、哪里出现了问题。

错误日志的文件名字是error_log,但如果是Windows平台,则错误日志的文件名字是error.log。错误日志的位置可以通过ErrorLog指令设置:

ErrorLog logs/error.log

除非文件位置用“/”开头,否则这个文件位置是相对于ServerRoot目录的相对路径。如果Apache采用默认安装方式安装,那么错误日志的位置应该在/usr/local/apache/logs下。但是,如果Apache用某种包管理器安装,错误日志很可能在其他位置。

正如其名字所示,错误日志记录了服务器运行期间遇到的各种错误,以及一些普通的诊断信息,比如服务器何时启动、何时关闭等。

我们可以设置日志文件记录信息级别的高低,控制日志文件记录信息的数量和类型。这是通过LogLevel指令设置的,该指令默认设置的级别是error,即记录称得上错误的事件。有关该指令中允许设置的各种选项的完整清单,请参见http: //www.apache.org/docs/mod/core.html#loglevel 的Apache文档。

大多数情况下,我们在日志文件中见到的内容分属两类:文档错误和CGI错误。但是,错误日志中偶尔也会出现配置错误,另外还有前面提到的服务器启动和关闭信息。

二、文档错误

文档错误和服务器应答中的400系列代码相对应,最常见的就是404错误——Document Not Found(文档没有找到)。除了404错误以外,用户身份验证错误也是一种常见的错误。

404错误在用户请求的资源(即URL)不存在时出现,它可能是由于用户输入的URL错误,或者由于服务器上原来存在的文档因故被删除或移动。

顺便说一下,按照Jakob Nielson的意见,在不提供重定向或者其他补救措施的情况下,我们永远不应该移动或者删除Web网站的任何资源。Nielson的更多文章,请参见http://www.zdnet.com/devhead/alertbox/

当用户不能打开服务器上的文档时,错误日志中出现的记录如下所示:

[Fri Aug 18 22:36:26 2000] [error]


[client 192.168.1.6] File does not exist:

/usr/local/apache/bugletdocs/Img/south-korea.gif

可以看到,正如访问日志access_log文件一样,错误日志记录也分成多个项。

错误记录的开头是日期/时间标记,注意它们的格式和access_log中日期/时间的格式不同。access_log中的格式被称为“标准英文格式”,这或许是历史跟我们开的一个玩笑,但现在要改变它已经太迟了。

错误记录的第二项是当前记录的级别,它表明了问题的严重程度。这个级别信息可能是LogLevel指令的文档中所列出的任一级别(参见前面 LogLevel的链接),error级别处于warn级别和crit级别之间。404属于error错误级别,这个级别表示确实遇到了问题,但服务器还可以运行。

错误记录的第三项表示用户发出请求时所用的IP地址。

记录的最后一项才是真正的错误信息。对于404错误,它还给出了完整路径指示服务器试图访问的文件。当我们料想某个文件应该在目标位置却出现了404错误时,这个信息是非常有用的。此时产生这种错误的原因往往是由于服务器配置错误、文件实际所处的虚拟主机和我们料想的不同,或者其他一些意料不到的情况。

由于用户身份验证问题而出现的错误记录如下所示:

[Tue Apr 11 22:13:21 2000]

[error] [client 192.168.1.3] user rbowen@rcbowen.

com: authentication failure for "/cgi-bin/hirecareers/company.cgi":

password mismatch

注意,由于文档错误是用户请求的直接结果,因此它们在访问日志中也会有相应的记录。

三、CGI错误
错误日志最主要的用途或许是诊断行为异常的CGI程序。为了进一步分析和处理方便,CGI程序输出到STDERR(Standard Error,标准错误设备)的所有内容都将直接进入错误日志。这意味着,任何编写良好的CGI程序,如果出现了问题,错误日志就会告诉我们有关问题的详细信息。

然而,把CGI程序错误输出到错误日志也有它的缺点,错误日志中将出现许多没有标准格式的内容,这使得用错误日志自动分析程序从中分析出有用的信息变得相当困难。

下面是一个例子,它是调试Perl CGI代码时,错误日志中出现的一个错误记录:

[Wed Jun 14 16:16:37 2000] [error] [client 192.168.1.3] Premature


end of script headers: /usr/local/apache/cgi-bin/HyperCalPro/announcement.cgi

Global symbol "$rv" requires explicit package name at

/usr/local/apache/cgi-bin/HyperCalPro/announcement.cgi line 81.

Global symbol "%details" requires explicit package name at

/usr/local/apache/cgi-bin/HyperCalPro/announcement.cgi line 84.

Global symbol "$Config" requires explicit package name at

/usr/local/apache/cgi-bin/HyperCalPro/announcement.cgi line 133.

Execution of /usr/local/apache/cgi-bin/HyperCalPro/announcement.cgi

aborted due to compilation errors.

可以看到,CGI错误和前面的404错误格式相同,包含日期/时间、错误级别以及客户地址、错误信息。但这个CGI错误的错误信息有好几行,这往往会干扰一些错误日志分析软件的工作。

有了这个错误信息,即使是对Perl不太熟悉的人也能够找出许多有关错误的信息,例如至少可以方便地得知是哪几行代码出现了问题。Perl在报告程序错误方面的机制是相当完善的。当然,不同的编程语言输出到错误日志的信息会有所不同。

由于CGI程序运行环境的特殊性,如果没有错误日志的帮助,大多数CGI程序的错误都将很难解决。

有不少人在邮件列表或者新闻组中抱怨说自己有一个CGI程序,当打开网页时服务器却返回错误,比如“Internal Server Error”。我们可以肯定,这些人还没有看过服务器的错误日志,或者根本不知道错误日志的存在。决多大多数情况下,错误日志能够精确地指出CGI错误的所在以及如何修正这个错误。

四、查看日志文件

我常常告诉别人说,在进行开发的同时我会不断地检查服务器的日志,以便能够立即知道哪儿出了问题。但我得到的回答却往往是沉默。起先我以为这种沉默意味着“你当然得这样做”,后来我才发现这种沉默的真正含义是“我不知道别人的做法,但我自己是不干的。”

虽然如此,下面我们还是要看看如何方便地查看服务器日志文件。用telnet连接到服务器,然后输入下面的命令:

tail -f /usr/local/apache/logs/error_log

该命令将显示出日志文件的最后几行内容,如果有新的内容加入到日志文件,它还会立即显示出新加入的内容。

Windows用户也同样可以使用这种方法,比如可以使用各种为Windows提供的Unix工具软件包。我个人爱好一个称为AINTX的工具,它可以在http://maxx.mc.net/~jlh/nttools/index.htm 找到。

还有一种替代方法是使用下面的Perl代码,它利用了一个称为File::Tail的模块:

use File::Tail;


$file=File::Tail->new("/some/log/file");

while (defined($line=$file->read)) {

print "$line";

}

无论具体采用的是哪一种方法,同时打开多个终端窗口都是一种好习惯:比如在一个窗口中显示错误日志,在另一个窗口中显示访问日志。这样,我们就能够随时获知网站上发生的事情并立即予以解决。

在这个《Apache日志》系列的下一篇文章中,我们将讨论定制服务器日志,即如何在日志文件中记录所有我们想要的信息,排除所有我们不想要的信息。

在此之后,我们还将讨论日志文件的处理,即如何从日志文件生成统计报表。在最后几篇文章中,我们还将讨论如何把日志记录重定向到指定的程序而不是保存到日志文件,以便由程序实时地处理新生成的日志数据,比如将日志数据保存到数据库,或者当发生某些关键性错误时通过email把日志信息发送给系统管理员,等等。

Apche日志系列(3):定制日志

有时候我们需要定制Apache默认日志的格式和内容,比如增加或减少日志所记录的信息、改变默认日志文件的格式等。本文介绍可以用日志记录的所有信息,以及如何设置Apache使其记录这些信息。

一、定义日志格式(4月3日)

很久以前,日志文件只有一种格式,这就是“公共格式”,许多人已经习惯于使用这种格式。随后出现了定制日志格式,而且看起来定制日志格式更很受欢迎,即使公共日志格式本身也重新用定制日志格式定义。本文介绍的就是如何随心所欲地定制日志文件的格式、如何让日志文件记录自己想要的信息。

定制日志文件的格式涉及到两个指令,即LogFormat指令和CustomLog指令,默认httpd.conf文件提供了关于这两个指令的几个示例。

LogFormat指令定义格式并为格式指定一个名字,以后我们就可以直接引用这个名字。CustomLog指令设置日志文件,并指明日志文件所用的格式(通常通过格式的名字)。

LogFormat指令的功能是定义日志格式并为它指定一个名字。例如,在默认的httpd.conf文件中,我们可以找到下面这行代码:

LogFormat "%h %l %u %t "%r" %>s %b" common

该指令创建了一种名为“common”的日志格式,日志的格式在双引号包围的内容中指定。格式字符串中的每一个变量代表着一项特定的信息,这些信息按照格式串规定的次序写入到日志文件。

Apache文档已经给出了所有可用于格式串的变量及其含义,下面是其译文:

----------------------------------------------------------------------

%...a: 远程IP地址

%...A: 本地IP地址

%...B: 已发送的字节数,不包含HTTP头

%...b: CLF格式的已发送字节数量,不包含HTTP头。

例如当没有发送数据时,写入‘-’而不是0。

%e: 环境变量FOOBAR的内容

%...f: 文件名字

%...h: 远程主机

%...H 请求的协议

%i: Foobar的内容,发送给服务器的请求的标头行。

%...l: 远程登录名字(来自identd,如提供的话)

%...m 请求的方法

%n: 来自另外一个模块的注解“Foobar”的内容

%o: Foobar的内容,应答的标头行

%...p: 服务器响应请求时使用的端口

%...P: 响应请求的子进程ID。

%...q 查询字符串(如果存在查询字符串,则包含“?”后面的部分;否则,它是一个空字符串。)

%...r: 请求的第一行

%...s: 状态。对于进行内部重定向的请求,这是指*原来*请求的状态。如果用%...>s,则是指后来的请求。

%...t: 以公共日志时间格式表示的时间(或称为标准英文格式)

%t: 以指定格式format表示的时间

%...T: 为响应请求而耗费的时间,以秒计

%...u: 远程用户(来自auth;如果返回状态(%s)是401则可能是伪造的)

%...U: 用户所请求的URL路径

%...v: 响应请求的服务器的ServerName

%...V: 依照UseCanonicalName设置得到的服务器名字

------------------------------------------------------------------

在所有上面列出的变量中,“...”表示一个可选的条件。如果没有指定条件,则变量的值将以“-”取代。分析前面来自默认httpd.conf文件的 LogFormat指令示例,可以看出它创建了一种名为“common”的日志格式,其中包括:远程主机,远程登录名字,远程用户,请求时间,请求的第一行代码,请求状态,以及发送的字节数。

有时候我们只想在日志中记录某些特定的、已定义的信息,这时就要用到“...”。如果在“%”和变量之间放入了一个或者多个HTTP状态代码,则只有当请求返回的状态代码属于指定的状态代码之一时,变量所代表的内容才会被记录。例如,如果我们想要记录的是网站的所有无效链接,那么可以使用:


LogFormat %404{Referer}i BrokenLinks


反之,如果我们想要记录那些状态代码不等于指定值的请求,只需加入一个“!”符号即可:

LogFormat %!200U SomethingWrong


Apche日志系列(4):日志分析

尽管日志文件中包含着大量有用的信息,但这些信息只有在经过深入挖掘之后才能够最大限度地发挥作用。本文首先讨论了能够从日志文件获得的信息以及不能从日志文件获得的信息,然后介绍了几种优秀的日志分析工具以及如何自己编程分析日志文件。

一、可以得到哪些信息

在这个《Apache日志》系列文章的前面几篇中,我们讨论了Apache的标准日志文件——访问日志和错误日志,以及如何定制日志文件。本文接下来讨论如何分析日志文件获得宝贵的统计信息。

我们面临的问题是,虽然日志文件中包含了大量的信息,但这些信息对于我们管理、规划网站却没有多少直接的帮助。为了管理和规划网站,我们需要知道:有多少人浏览了网站,他们在看些什么,停留了多长时间,他们从哪里得知这个网站,等等。所有这些信息就隐藏于(或者可能隐藏于)日志文件之中。

就网站的经营者而言,他们还希望知道浏览者的姓名、地址、鞋子大小,甚至还有浏览者的信用卡号码,但这些信息都不可能从日志文件中得到。为此,作为技术人员的我们就必须知道如何向这些经营者解释清楚:这部分信息不仅不可能从日志文件获得,而且要获得这些信息的唯一方法是直接向浏览者本人询问,并作好被拒绝的准备。

有许多信息可以用日志文件来记录,其中包括:

远程机器的地址:“远程机器的地址”和“谁在浏览网站”差不多,但并不等同。具体地说,远程机器的地址告诉我们浏览者来自何方,比如它可能是buglet.rcbowen.com或者proxy01.aol.com。

浏览时间:浏览者何时开始访问网站?从这个问题的答案中我们能够了解不少情况。如果网站的大多数浏览者都在早上9:00和下午4:00之间访问网站,那么可以相信网站的浏览者大多数总在工作时间进行访问;如果访问记录大多出现在下午7:00到午夜之间,我们可以肯定浏览者一般在家里上网。当然,从单个访问记录能够得到的信息非常有限,但如果从数千个访问记录出发,我们就可以得到非常有用和重要的统计信息。

用户所访问的资源:网站的哪些部分最受用户欢迎?这些最受欢迎的部分就是我们应该继续加以发展的部分。网站的哪些部分总是受到冷落?网站中这些受到冷落的部分或许隐藏得太深,或许它们确实没有什么意思,此时我们就得想办法加以改进。当然,网站还有的内容,比如法律上的声明,虽然很少有人访问,但却不应该随便地改动它们。

无效链接:当然,日志文件还能够告诉我们哪些东西不能按照我们所想象地运行。网站中是否存在错误的链接?其他网站链接过来时有没有搞错URL?是否存在不能正常运行的CGI程序?是否有搜索引擎检索程序每秒发出数千个请求,从而影响了本网站的正常服务?这些问题的答案都可以从日志文件找到线索。

2005-08-25

0Day发布中的名词详解

Incl.Keygen--->包含有注册器

keygen only--->只含注册器

WinALL--->适用于所有版本Windows操作系统(一般是指95 98 ME 2000 XP 2003)

Trainer--->修改器

2005-08-24

服务器与客户端时间不同步

今天帮Marco的电脑(windows 2000)以本地管理员的身份设置了一下打印机。设置完毕推出后当,Marco以域用户的身份再次登陆时却得到错误:Es gibt Zeitunterschied zwischen Server und Client. Sie können Sich nicht anmelden.
重新启动电脑后再次登陆还是同样的出错提示。

Windows 2000公钥基础结构简述

1、概述

  Windwos 2000为电子商务提供了一个理想的平台, 其安全性(包括证书管理、 CA服务、 公用密钥基本体系), 保证了电子商务的开展。 结合Windows 2000的IIS 5.0服务, 可以快速创建一个网上电子商务的平台。

在网页里嵌入视频文件和音频文件

今天Amelie发邮件给我说,她在Ilias3的Lerneinheit里插入wmv和mp3格式的文件时,在她IE 6.0浏览器上,能听到wmv文件的声音,看不到视频,而mp3文件则听不到声音。并且两个多媒体文件都没有控制条出现。这样网页加载完毕,只能听到两个声音自动播放,用户不能控制播放。

2005-08-21

关于 Unicode 和字符集的最基础的知识(转载)

原文链接: http://www.joelonsoftware.com/printerFriendly/articles/Unicode.html

作者: Joel Spolsky

翻译、摘要: 木野狐(ChenRong2003[at]hotmail.com)

2005-08-18

从文件分辨影片的质量

很多0day发出的文件都有一些约定俗成。下面是关于各种电影的常见命名。
来源:huaye@TLF


很多网友问及文件名各部分是什么意思,以及质量如何。也看见有网友发表关于电影发布版本术语的解释,尚有不确切的地方。比如PROPER并不代表质量完
美,TS 或Telesync并非指从放影机转制。其实Telesync和CAM都是用digital
camera或camcorder在影院录制(俗称枪版),质量起伏很大。


下面是从VCDQuality.com转摘的关于这些术语的解释。中英文对照,因为错误总是难免的。

css大师Eric Meyer制作的一个幻灯片制作工具

Eric Meyer不愧为CSS的大师,制作的网页符合规范,并且非常漂亮。在他的网页上还发现了一个叫做s5(A Simple Standards-Based Slide Show System)的制作幻灯片的工具。这里还有一个用s5制作的介绍它的网页幻灯片。

2005-08-17

免费打电话的工具voip buster

今天在网上发现一个可以受限的免费打电话的软件,voipbuster。目前使用该软件可以免费拨打一分钟,一分钟后自动挂断。

SQL中删除表的选项

以前只知道用drop table 删除一个表,在看"An Introduction to database systems"时才发现其实还可以更一个选项RESTRICT/CASCADE。数据库这门课真是有很多东西值得去学,就连常用的SQL还有好多我都不会啊!

2005-08-15

由超级女生想到的

最近不论是看网上新闻,还是阅读多个Blog,还是别人MSN的显示都提醒着我超级女生的存在。这就是媒体的力量,不许你不知道,只许你不喜欢。于是联系了一下Qi Jin,复制了几个关于超级女生的娱乐新闻和一个比赛现场(所谓的6进5)录像来看。在观看时,我的手就几乎没停过,时不时地按我的右方向键,以快速跳过部分片段(感谢Kmplayer支持这个功能)。

2005-08-14

尝试使用www.365kit.com的服务

我记忆电话号码特别差,因此保存好通讯录对我来说十分重要。尽管我已经把outlook的联系人到处导出到了我的gmail账户里,但gmail也有不能访问的时候。狡兔还三窟呢,我还是把通讯录多方几个地方吧,只是希望运营商遵守商业道德不会向第三方公布这些联系人信息。于是今天在www.365kit.com注册了一个账户,用于管理我的联系人。

2005-08-13

PHP实现的通用语法高亮显示工具GeSHi

 GeSHi - Generic Syntax Highlighter,一个用PHP写的通用语法高亮显示工具。这儿有Demo可以看看。

语法高亮显示工具dp.SyntaxHighlighter

今天在网上发现一个用javascript写的开源项目dp.SyntaxHighlighter,用于高亮显示网页上的程序片断。该脚本能在IE 6.0和Firefox 1.0和Safari上正常运行,但不支持Opera。

2005-08-12

偷窥的年代

不过也许不紧要了,这到底是个偷窥的年代,越来越多的网络服务,可以帮助你更完整地去“偷窥”某个人,或者说,了解某个人:
1. MSN上,看看这家伙最近变幻的名字,或者他某一时刻正在听的歌曲
2. Technorati上,搜搜这个家伙,看看有哪些人说他,也许他的朋友会写到他
3. Flickr上,看看这家伙最近去了哪,跟哪个MM一起混,拍了啥PP
4. Douban上,瞧瞧这家伙最近读了什么书,听了什么歌,看了什么电影
5. Toodou上,如果这家伙上传了自己的东东,下一下看看听听无妨
6. Del.icio.us上,这家伙今天读了什么文章,或者储存了哪些好东东
7. Linkedin上,这家伙有没有更新简历,有没有炒老板跳槽,还是自己创业了?
8. 43Things上,这家伙最近打算干什么,赚钱还是泡MM?
9. 43Places上,这家伙又准备着去哪些地方花费银子呢?

又或者,
1. 如果他泡贴吧UUzone这样的社区,那么无妨看看他啥时候又登陆上来了,资料上都有的吧
2. 如果他用知道爱问这样的平台,只管去看的资料,看看这家伙都问了哪些问题求救,或者哪天上班无所事事,好心地回答了人家的问题

当然,必定少不了的是搜索引擎。

网络就是如此,走过的痕迹,总让人无处可逃;不过有些时候,途经网络,遇见也许只是偶尔。

2005-08-11

继续处理打印问题

今天在物理连接的打印机上测试发现,连续打印并不会让程序失去响应。可是如果打印到虚拟的打印机上,程序还是会常常失去响应。另外把程序发给Tamara测试,发现不能打印。我和Qi Jin折腾半天才发现是由于windows下的command在转换目录时当前目录并不会随之切换:
C:\Documents and Settings\jia>;cd D:\Downloads

C:\Documents and Settings\jia>
就是这样一个很小而不起眼的问题费了两个小时的时间。MS在这点上跟linux相比实在太差了。

特殊的IP地址介绍(转载)

来源:中国协议分析网

就像我们每个人都有一个身份证号码一样,网络里的每台电脑(更确切地说,是每一个设备的网络接口)都有一个IP地址用于标示自己。我们可能都知道这些地址由四个字节组成,用点分十进制表示以及它们的A,B,C分类等,然而,在总数大约为四十多亿个可用IP地址里,你知道下面一些常见的有特殊意义地址吗?我们一起来看看吧:

Visitors, a fast web log analyzer

今天在网上发现一个快速处理web server日志文件的免费工具vistors。它与以前用过用perl写的开源软件awstats相比,没有那么强大,却比较安全。自己以前就因为awstats的漏洞吃过亏,web server被人hack过。

2005-08-10

文件系统术语

日志文件系统 (JFS) 提供了基于日志的字节级文件系统,该文件系统是为面向事务的高性能系统而开发的。它具有可伸缩性和健壮性,与非日志文件系统相比,它的优点是其快速重启能力:JFS 能够在几秒或几分钟内就把文件系统恢复到一致状态。
虽然 JFS 主要是为满足服务器(从单处理器系统到高级多处理器和群集系统)的高吞吐量和可靠性需求而设计的,JFS 还可用于想得到高性能和可靠性的客户机配置。

vi常用命令

g/^M/s///g 去掉windows文件中行尾的 '^M' 字符

i:插入文字
a:在光标后面插入文字
o:新起一行
x:删除光标所在的字符
dd:删除整行
w:将光标置于文档开端
G:将光标置于文档结束
b:将光标置于当前词的开头
0(zero):将光标置于当前行的开头
$:将光标置于当前行的结束
G:将光标置于文档结束处
10G:将光标置于文档的第10行

ctrl+F:往前翻一屏
ctrl+B:往后翻一屏

/紧跟正则表达式
?紧跟正则表达式

d$: 删除从光标到当前行结束的字符
dG: 删除从光标到文档结束的字符

:进入扩展模式

:wq:存盘并退出vi
ZZ:

:1,$s/word1/word2/g 在全文中用word2替换word1
:1,$s/word1/word2/gc 在全文中用word2替换word1,要却确认

网络产品相关链接

硬件及系统基础:
Cisco各类线缆
http://www.cisco.com/univercd/cc/td...ing/cabling.htm

Cable Technology Technical Tips
http://www.cisco.com/warp/public/109

各种连接器:
http://www.hardwarebook.net/

WAN基础知识(包括FR、ATM、DDN等。中文版)
http://www.flamephoenix.net/network/index.htm

IOS 特性集向导 (Cisco IOS Feature Navigator)

http://tools.cisco.com/ITDIT/CFN/jsp/index.jsp

网络配置工具:对产品做配置时用。使用这个工具,可以正确的对产品进行配置。
http://www.cisco.com/order/apollo/configureHome.html

2600/3600内存计算工具

http://www.cisco.com/cgi-bin/Suppor...ale/mem-calc.pl

对于模块化的路由器(3600以下)模块的查找工具(注册用户使用)
http://www.cisco.com/pcgi-bin/findermsbsearch.pl

网管应用程序与操作系统的兼容表

http://www.cisco.com/public/sw-center/oscopat.html

产品比较站点
http://www.cisco.com/pcgi-bin/front...meo/compaare.pl

产品技术手册,功能、性能、参数及配置方法
http://www.cisco.com/univercd/cc/td...oduct/index.htm

Cisco End of Life Products
http://www.cisco.com/warp/public/cc...kt/gen/prodlit/

软件BUG站点(注册用户使用)
http://www.cisco.com/support/bugtools/

网络产品软件下载:通过这个站点,可以得到所需要的软件版本(注册用户使用)
http://www.cisco.com/cgi-bin/ibld/all.pl?i=support&c=3

产品购买手册
http://www.cisco.com/univercd/cc/td/doc/pcat/index.htm

公开报价下载站点

http://www.ultratechnology.net/full...?s=&columnid=28
http://www.cisco.com/cgi-bin/order/pricing_root.pl(注册用户使用)

销售工具中心(Sales Tools Central Home)
http://www.cisco.com/go/tools
http://www.cisco.com/warp/public/779/smbiz/service/

服务类型的划分及描述
http://www.cisco.com/public/support_solutions.shtml

怎样申请得到CISCO的服务
http://www.cisco.com/public/scc/

注册CCO帐号
http://www.cisco.com/register/

服务定单合同中心(注册用户使用)
http://www.cisco.com/cgi-bin/front....e=ContractAgent

查定单状态(注册用户使用)
http://www.cisco.com/cgi-bin/order/assistant.cgi

查定单到货时间
http://www.cisco.com/cgi-bin/front.x/leadtimes.cgi

关于解决方案

针对各种不同规模和类型的网络/公司采取的不同的解决方案
http://www.cisco.com/kobayashi/Solutions_root.shtml

大企业解决方案
http://www.cisco.com/warp/public/779/largeent

中型企业解决方案
http://www.cisco.com/warp/public/779/smbiz/

电信解决方案
http://www.cisco.com/warp/pblic/779/servpro/

http://www.netcraftsmen.net/welcher/

Cisco公司RFCs,Standards站点(注册用户使用)
http://www.cisco.com/warp/customer/459/index.shtml

公司技术文档的主页
http://www.cisco.com/univercd/home/home.htm

技术支持网站(注册用户使用)
http://www.cisco.com/cgi-bin/Suppor...x.pl?i=Hardware

技术支持中心站点(注册用户使用)
http://www.cisco.com/cgi-bin/ibld/view.pl?i=support

Technical Documents (就是Documents光盘的内容)
http://www.cisco.com/univercd/home/home.htm

Bug 查询工具
http://www.cisco.com/cgi-bin/Support/Bugtool/home.pl

IOS 命令搜索工具(IOS Command Lookup Tool)

http://www.cisco.com/support/Cmdlookup/ios-search.html

IOS软件各种版本配置方法和命令
http://www.cisco.com/univercd/cc/td...tware/index.htm

技术要点
http://www.cisco.com/public/technotes/serv_trips.shtml

http://www.cisco.com/warp/public/77...chnologies.html

硬件技术要点
http://www.cisco.com/public/technot..._platform.shtml

网络设备配置案例:针对一些实际案例对网络设备进行配置

http://www.cisoc.com/warp/public/700/tech_configs.html
http://www.cisco.com/warp/public/79...dial/index.html
http://www.cisco.com/public/technot..._features.shtml

常用问题(注册用户使用)
http://www.cisco.com/openf/openproj.shtml

经常问到的技术问题站点
http://www.cisco.com/warp/public/458/index.shtml
http://www.cisco.com/public/products_tech.shtml

故障解决帮助
http://te.cisco.com/cgi-bin/webisapi.dll?New,KB=TE

培训和谁认证的相关知识
http://www.cisco.com/warp/public/10/wwtraining/

公司在线技术讨论会站点
http://webevents.broadcast.com/cisco/ciscolive/home.asp

网络概念和设计基础知识介绍
http://www.cisco.com/unviercd/cc/td...intwk/index.htm

http://www.cisco.com/public/products_tech.shtml

VOD培训
http://www.cisco.com/login/ciscotv/index.shtml

Cisco University—Training
http://www.cisco.com/warp/public/10/ciscou/

E-LEARNING(注册用户使用)
http://www.cisco.com/warp/customer/...ning/elearning/

国内Cisco站点
http://www.ultratechnology.net/
http://www.net130.com/
http://www.networkroad.com/
http://www.cncisco.com/

国内Cisco论坛
http://www.ultratechnology.net/forums/
http://www.ciscofan.com/
http://bbs.net130.com/

光盘刻录

昨天一个朋友向我借德文版的Office,找了半天都没有找到。后来才想起我借给别人了,可是怎么也不记得借给谁了。望着我柜子里的一大堆自己刻录的CD/DVD,细细一想,从2000年底开始自己确实刻录了不少盘了。那时自己只有一台sony的笔记本,仅有一个普通的光驱。刻录机价格比较贵,也远远不像今这么普及。

我还记得第一张盘是在系里的机房里刻的。那时系里的机房还在V楼,机房里一共有两台电脑装有刻录机,还都是SCSI接口的。记不太清自己刻录的第一张盘是什么了,大概是欧洲的routeplaner之类的。记得当时使用xcdroast程序来刻录,只是那时的版本还不支持mutli session。

打印功能存在的问题

我们实现的打印功能存在一个问题,第一次打印时正常,可是当第二次打印时,程序总是失去相应。查看windows的日志报告,发现问题与netevent.dll有关,总是得到System级别的错误:

Ein Treiberpaket, das vom E/A-Teilsystem empfangen wurde, war ungültig. Die Daten sind das Paket.
Ereigniskennung: 6004


查看微软的知识库,发现了这篇文章提到引起该问题多是因为网卡的MAC地址中存在非法字符,并且涉及到的操作系统为windows NT系列,windows XP根本不在列。看来我们这个问题毫不相干。

2005-08-09

升级DVD刻录机的Firmware

前两天帮Shi Peng刻两张China Woche录像的DVD时就遇到我的DVD刻录机(NEC DVD_RW ND-1300A)不能识别Shi Peng的两张DVD-R,昨天帮北外(BFSU)的校友Zhou Haixia刻她拍摄的照片和电影时又遇到同样的问题,Nero提示illegal disk。在网上google了一下,其他人也有同样的问题。大部分的原因都是Firmware的版本太低,只需更新Firmware即可。于是到Fujitsu Siemens Computers 站点下了一个新的版本1.43把原来的1.06替换掉,问题就解决了。

随机取出数据

在mySQL需要从数据库的某个表中随机地取出 1 行数据或者多行数据,比如在网站首页的有个小板块随机显示 10 篇文章,可以用这个 SQL 语句:


SELECT * FROM doc_content ORDER BY rand( ) LIMIT 10;


测试数据表明,当有大数据量时使用下面的SQL语句比直接用 RAND() 的效率要高:



2005-08-08

一个防火墙启动/停止脚本


#!/bin/bash
# An enhanced stateful firewall for a workstation, laptop or router that isn't
# running any network services like a web server, SMTP server, ftp server, etc.
#change this to the name of the interface that provides your "uplink"
#(connection to the Internet)
UPLINK="eth1"

2005-08-04

我的简历

Dingjun Jia

姓名:贾定军
年龄:28


现居住地址:


Universitätsring 8 App. 204 54296 Trier Germany


联络电话: 0049 176 2406 4442


电子邮件:Dingjun Jia's E-Mail



学习经历:
















1990.09 - 1996.07


中国四川省泸州市泸县六中

1996.09 - 2000.07


中国北京外国语大学德语系(本科)

2000.10 -


德国特里尔大学 - 计算机系(研究生)

工作/实习经历摘要:












































1999.07 - 1999.07


Praktikum im CYTS (China Youth Travel Service)

2000.04 - 2000.08


Sachbearbeiter am Goethe-Institut Peking China

2002.11 - 2002.02


Softwarepraktikum am Lehrstuhl vom Prof. Meinel

2002.03 - 2003.06


Praktikum bei Olk Touristik GmbH

2003.06 -


HiWi für Medienwissenschaft an der Uni Trier

2003.06 -


Systemadministrator der E-Learning Plattformen StudIP und Ilias an der Uni Trier

2003.11 - 2004.04


HiWi am Europäischen Tourismus Institut

2003.11 - 2004.08


Studienprojekt mit dem mikrobiologischen Institut an der Universitätsklinik Bonn

2004.05 -


HiWi am Kompetenzzentrum an der Uni Trier

2005.07 -


Sonderforschungsbereich 600: Fremdheit und Armut

爱好:
兵乓球, 电影
奖励:
2004年德意志学术交流中心优秀外国留学生

2005-08-03

QBE

Query by Example(QBE)是一些数据库系统提供的数据库查询语言。作为查询语言QBE较之SQL对用户更友好。QBE源于20世纪70年代,由IBM开发,后来成为DB2的一步分。QBE多提供图形化的查询界面,如MS的Access就使用QBE查询access数据库,大多数的QBE实现并没有完全实现“完整关系”(relationale Vollständigkeit)。

SQL与tupelorietierten Relationenkalkül关系更紧密,而QBE则是建立在relationaler Domänenkalkül的基础上。QBE中的变量总是以下划线开始以却别与其它的字符串,并且变量总是与某个属性的取值范围绑定。

JDBC 与 SQLJ

JDBC(Java Database Connectivity)和SQLJ都可用于Java编程时与数据库打交道。JDBC具有较好的灵活性,能都处理动态生成的SQL语句,但是缺少类型检查,当SQL表达式有错误时,在执行时才能被发现和捕捉到。而SQLJ虽然灵活性较差,但在编译阶段就会检查SQL表达式的语法是否有错。SQLJ会在编译时就优化SQL查询,而JDBC中只有使用PreparedStatements语句才能达到。

以下是一个SQLJ的一个例子:

2005-08-02

SQL中的null值

null是一种特殊的值,存在与SQL中的各种数据类型中。当算术表达式中有一个参与运算的值为null时,则整个算术表达式的值为null。SQL的逻辑表达式的取值有三种:true,false和unkown。当参与比较的算子有取值为null时,则返回unkown值。当where条件返回的值为unkown时,这样的Tupel是不会计入SQL运算结果的。