做 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 邮箱已经垃圾泛滥,因为曾经用来接收 CVS 更新,邮件列表,所以邮箱容量到了百分之三十多,最麻烦的是别人问完我邮箱地址还总要带上一句“这名啥意思啊”,算了,还是换个自己名字的邮箱吧,dongsheng@gmail.com 当然被无情的注册掉了,于是我用这个:
,在 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. 最后还要设置一下自己的马甲:

4. 启用 Gmail labs 里的 Filter import/export,把过滤器都导入到新邮箱。
这还只是个开始,我还得处理 Google Picasa,Google Reader,Google Maps(我存了大量地址)还有我所有的联系人资料,还好,这里的数据都可以导入导出。
我非常沮丧的发现,Google 已经无情的渗入到我生活中的每个部分,我的帐单,好友,工作,住址等等私密信息全部存储在 Google 这张网中,Google 的用户粘度比 Windows 强太多,没有 Windows,我用 Linux 或者 Mac 都能过得更好,但如果没有 Google 该怎么办?我有点忧虑了。
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 连接数]