• perl: alias a function

    日期:2009-10-20 | 分类:Coding

    sub foo {
    #do something
    }
    sub bar {
    goto &foo;
    }

    这样调用bar的话就会和调用foo完全一样,就连调用堆栈里面也没有调过bar的痕迹

    perl真是太神奇了,只要你想得出的都做得到

  • js字符转义备忘

    日期:2009-10-19 | 分类:Coding

    好吧,又是令人痛恨的js。现在用perl写个Tenjin模板库的wrapper,变量付进去,会需要到不同格式间的转换。

    sub txt2htmljs {
        my ($content) = @_;
        $content =~ s/"/"/gs;
        $content =~ s/\\/\\\\/gs;
        $content =~ s/'/\\'/gs;
        $content =~ s/(\r?\n)/\\n/gs;
        return $content;
    }


    sub txt2js {
        my ($content) = @_;
        $content =~ s/\\/\\\\/gs;
        $content =~ s/"/\\"/gs;
        $content =~ s/'/\\'/gs;
        $content =~ s/(\r?\n)/\\n/gs;
        return $content;
    }

    以上两个函数的区别在于,前一个是给模板里的html元素的js回调用的,比如onClick="foo('[== $STR =]')",这种。后一个是给模板里的纯的js用的,就比如<script>里面写的var bar='[== $STR =]'。

    我不是专业web开发者,以上还没充分测试过的,用不了请反馈给我

  • I hate js

    日期:2009-03-10 | 分类:Coding

    一个备忘, always use parseInt (str, radix), in case we meet something like '08'

    http://www.kenegozi.com/Blog/2008/07/12/int-dot-parse-parseint.aspx

  • svn log的诡异问题

    日期:2009-01-26 | 分类:Coding

    自己建了个svn方便开发用,使用svnserve作为服务端,配了用户认证,自己用用户登录,另外还有匿名用户读权限。但是发现只能在我自己的working copy根目录上运行svn log,而且没有log message出来;在子目录运行svn log的话就说"item is not readable"

    网上查了一下,知道要把svnserve.conf里面的匿名用户访问改为anon-access = none才行。好像这样没什么道理。

  • flac2mp3脚本

    日期:2007-10-17 | 分类:Coding

    我硬盘上flac比较多,但是当要把音乐放到palm上面去听的时候,自然想为SD卡省一些空间,于是写了这个批量转换的脚本。

    需要: flac、 lame ,支持通配符, 自动把处理文件名,转换后的文件放在当前目录下。

    #!/bin/bash
    if [ $# -lt 1 ]; then
    echo "Usage: $0 [-b bitrate] [file] ..."
    echo " $0 [file] ..."
    echo "Default mp3 bitrate is 128"
    exit
    fi

    if [ "$1" == "-b" ]; then
    BITRATE=$2
    START_ARG=3
    else
    BITRATE=128
    START_ARG=1
    fi
    COUNT=$START_ARG

    while [ $COUNT -lt $# ]
    do
    ls "$(eval "echo \${$COUNT}")"|awk -F. '{
    printf "flac -d -c \"%s\"|lame -b '$BITRATE' - \"%s.mp3\";", $0, $1
    }'
    let COUNT+=1
    done |/bin/bash

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

    ps: 如果某命令里有通配符的参数的话,shell会用该目录下面的文件名来替换掉有通配符的这一部分命令行。例如ls *,  实际上ls接到的参数不是一个*,  而是有n个代表文件名的参数。