strace的应用

查看程序在运行中读写哪些文件:
strace -e open 程序 2>&1
寻找不能打开某个文件的原因:
strace -e open,access 2>&1 | grep 文件

查看正在运行的程序:
strace -p 程序ID

分析所花时间:
strace -c -p 程序ID

分析网络连接状况:
strace -e poll,select,connect,recvfrom,sendto nc www.baidu.com 80

JavaScript:使用字符串构架

String.prototype.format = function() {
var formatted = this;
for(var i = 0; i < arguments.length; i++) {
var regexp = new RegExp(‘\\{‘ + i + ‘\\}’, ‘gi’);
formatted = formatted.replace(regexp, arguments[i]);
}
return formatted;
};

使用举例:

var template = “{0}你好,你爱{1}吗?”;

alert(template.format(“小白”, “中国”));

Perl:合并多个文件(纯Perl)

use strict;
use warnings;
use IO::File;

my $dir    = “D:\\temp”;
my $suffix = “.log”;
my $target = “D:\\out.log”;
my @files  = ();

# 选择需要合并的文件,如在D:\temp下的*.log文件

opendir( my $dir_fh, $dir ) or die “Failed to open directory $dir: $!\n”;
while ( my $file = readdir($dir_fh) ) {
if ( $file =~ m/$suffix$/ ) {
push( @files, $file );
}
}
closedir($dir_fh);

# 合并所有被选中的文件
my $target_fh = new IO::File ” > $target ”
or print STDERR “Failed to create target file $target: $!\n”;
foreach (@files) {
my $file = $_;
my $fh   = new IO::File ” < $file ”
or print STDERR “Failed to open file $file: $!\n”;
print $target_fh (<$fh>);
undef $fh;
}
undef $target_fh;

Apache HTTPD Server:显示文件夹内容

  1. 打开”httpd.conf”文件
  2. 例如:在/shared网址下公开C:/temp里的文件

Alias /shared “C:/temp”
<Directory “C:/temp”>
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>
安全警告:不适当的公开文件夹内容会造成安全隐患。请使用VPN,密码保护或IP域防御等安全措施。 (请参考Apache2.2 mod_authz_host:Allow from <IP>)

Apache HTTPD Server:内存缓存的使用

  1. 打开httpd.conf文件
  2. 开启”cache_module”,”expires_module”,”headers_module”还有”mem_cache_module”组件(去掉它们前面的’#’字符)
  3. 在httpd.conf里插入以下行(缓存文件类型:图片,文本,缓存大小:10MB)

<IfModule headers_module>
<filesMatch “\.(ico\|png\|gif\|css\|js\|html)$”>
Header set Cache-Control “max-age=2592000, public”
</filesMatch>
Header unset ETag
Header unset Last-Modified
</IfModule>
FileETag None
<IfModule expires_module>
ExpiresActive On
ExpiresByType image/x-icon “access plus 2592000 seconds”
ExpiresByType image/png “access plus 2592000 seconds”
ExpiresByType image/gif “access plus 2592000 seconds”
ExpiresByType text/css “access plus 2592000 seconds”
ExpiresByType text/html “access plus 2592000 seconds”
</IfModule>
<IfModule mem_cache_module>
CacheEnable mem /
MCacheSize 10240
</IfModule>

jQuery-tablesorter:自定义表列排序

http://tablesorter.com/docs/example-parsers.html

例:日期表列格式:“2011-11-04 00:00:00.000”

添加单元格解析器“custom_date”。在format函数里把日期字符串转换为数字。

$.tablesorter.addParser({
            id: ‘custom_date’,
            is: function(s) {
                return false;  // 关闭自动转换
            },
            format: function(s) {
                return parseInt(s.replace(/^[^1-9]*/,”).replace(/[^0-9]*/g,”)); // 转换为数字
            },
            type: ‘numeric’  // 应用数字类排序
});

应用时把表列的“sorter”属性指定为“custom_date”:

$(“my_table”).tablesorter({

    headers: {

         0: { sorter : ‘custom_date’ }

    }

});