在提交源码前检测调试代码

做 Ajax 开发最大的痛苦就是调试不易,尤其是 PHP 脚本跟远程服务器交互中的调试更是不易,还好有 FirePHP,有热心人做了 FirePHP 的 Moodle 绑定,目前这个补丁还没有提交到 CVS,所以一不小心我就把调式代码放在源码里忘了去掉,然后别的开发者 update 以后就会得到一个未定义函数错误,必须想办法避免这个错误了。

首先在 vim 配置文件中加入

match ErrorMsg /echo_fb/

这将 echo_fb 函数标记为错误,警醒我提交前要去掉。这招显然不够狠,我要是连看都不看就把 vim 关了怎么办?最有效的办法还是在提交前用 grep 搜索文件,所有有了这个 shell 脚本:

ci (){
    if [ $# -eq 0 ]; then
        echo "CVS CHECKIN: No arguments entered.";
        return 1
    else
        echo "Checking in file(s): ${@:2}";
        echo "Working ...";
        if [ "$(grep "echo_fb" ${@:2})" ]; then
            echo 'Remove debug code firstly';
        else
            cvs ci -m "\"$1\"" ${@:2}
        fi

    fi
}

这样基本就没问题了。

换了 Gmail 帐户

以前用的 Gmail 邮箱已经垃圾泛滥,因为曾经用来接收 CVS 更新,邮件列表,所以邮箱容量到了百分之三十多,最麻烦的是别人问完我邮箱地址还总要带上一句“这名啥意思啊”,算了,还是换个自己名字的邮箱吧,dongsheng@gmail.com 当然被无情的注册掉了,于是我用这个:email logo,在 Google 注册用户名我就从来没顺心过。

Gmail 邮箱对我来说最有价值的功能是无敌的全文检索,我常用来搜索代码段来快速定位 Issue number(或者反过来),屡试不爽,所以把以前的邮件倒到新邮箱就是必须的任务。另外,我用以前邮箱注册了太多太多网络服务,所以得把没来得及修改联系邮箱的邮件转发到新邮箱:
1. 在 Accounts 标签里找 Get mail from other accounts,然后把前 Gmail 帐号加上,这个收取挺慢的,一次收 200 封,我从下午一直收到现在还差四千多封。
在我做这件变态的事的时候,我发现自己一点也不孤单:Migrate All Your Old Gmail to a New Gmail Address,还有 Consolidate Multiple Email Addresses with Gmail
2. 在 Forwarding and POP/IMAP 中设置新的邮件转发地址。
3. 最后还要设置一下自己的马甲:
undefined
4. 启用 Gmail labs 里的 Filter import/export,把过滤器都导入到新邮箱。

这还只是个开始,我还得处理 Google Picasa,Google Reader,Google Maps(我存了大量地址)还有我所有的联系人资料,还好,这里的数据都可以导入导出。

我非常沮丧的发现,Google 已经无情的渗入到我生活中的每个部分,我的帐单,好友,工作,住址等等私密信息全部存储在 Google 这张网中,Google 的用户粘度比 Windows 强太多,没有 Windows,我用 Linux 或者 Mac 都能过得更好,但如果没有 Google 该怎么办?我有点忧虑了。

[LCOTW] netstat

LCOTW (Linux Commands Of The Week) Tag 下是总结 Linux 常用命令的文章。

netstat 是用来检测网络信息的工具。
当直接在终端输入 netsate,可以看到两部分输出 Active Internet connections 和 Active UNIX domain sockets,其中 Proto 栏表示所使用的协议 RefCnt 引用计数使用本连接的进程数,State 表示接口状态。

显示已经建立的端口:

netstat -n

显示所有端口:

netstat -a

显示正在监听的端口:

netstat -lnep

p 选项表示显示 PID/Program
n 选项强制表示用数字显示地址,不进行解析
e 选项表示显示扩展信息,比不加 e 多了 user 和 inode 信息

显示本机路由表:

netstat -nr

显示接口信息:

netstat -i

netstat 常和 awk 结合来统计连接数:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

[via Nginx 0.5.31 + PHP 5.2.4(FastCGI)搭建可承受3万以上并发连接数,胜过Apache 10倍的Web服务器]

netstat -an |awk '/LISTEN/{next};/^tcp/{s=split($5, N,":"); \
A[N[s-1]]++} END{ for (a in A) print a, A[a]}'

[via 用awk过滤查看netstat 连接数]