firefox2.0 地址栏搜索

一个我经常使用的功能,就是在firefox地址栏直接输入想找的东西,然后会自动调用google的“手气不错”,非常实用,在找一些开源软件是非常准确的(一般官方网站都排在结果第一个),例如输入mplayer,会自动跳到 http://www.mplayerhq.hu/
实在等不及了,装了一个rc2版本,感觉良好,可是这个功能没了!

解决方法:
地址栏输入:about:config
搜索 keyword.URL
修改值为:http://www.google.com/search?hl=zh-CN&btnI=%E6%89%8B%E6%B0%94%E4%B8%8D%E9%94%99&lr=&q=
搞定。

一个常见的xml解析错误解决方法

反正就是莫名其妙的错误,特别是utf-8的页面,出现这种情况的原因大概因为utf-8的编码格式是变长的,规则比较烦,中途少了一个字节或者多了一个字节就容易出现这类问题,后来用ultraedit查看,发现很诡异,都是那种单字节的字符引起的,一些控制码,反正不管怎样,替换掉这些东西就可以了,这些字符本来也不是用来看的。

$xml = preg_replace(‘#[\x00-\x08\x0e-\x1f\x7f]+#’, ”, $xml);

bash 中的正则表达式

类似

$ps ax | grep -v grep | grep httpd | tr -s ‘ ‘ | cut -d ‘ ‘ -f1

的方法来取得pid确实还挺好用的,不过今天要取得这个程序执行了多长时间,这个就麻烦了,因为时间中间有空格
翻了半天的man还是没好的解决方案,换了台机器,ubuntu 的,发现 ps 有不小的区别,可以这样:

$ps -eo pid,lstart,args | grep httpd | grep -v grep
2374 Wed Sep 13 00:41:59 2006 /usr/local/httpd/bin/httpd -k restart
2469 Wed Sep 13 00:42:03 2006 /usr/local/httpd/bin/httpd -k restart
22470 Wed Sep 13 00:42:03 2006 /usr/local/httpd/bin/httpd -k restart
22472 Wed Sep 13 00:42:03 2006 /usr/local/httpd/bin/httpd -k restart
22474 Wed Sep 13 00:42:03 2006 /usr/local/httpd/bin/httpd -k restart

其中最前面的数字是pid 中间 Wed Sep 13 00:41:59 2006 是开始时间,后面的所有是”args” (linux下面的ps有lstart这个参数)
这个就麻烦了,args自然只是为了匹配进程特征,中间的时间才是我要的东西。
再找找关于grep的说明(这些小工具都强到一种境界,据说一个sed就写了一本书),一个 -o 参数搞定

$pid=ps -eo pid,lstart,args | grep httpd | grep -v grep | egrep -o ^\ ?[0-9]+\

注意最后有一个空格 “\ ” 这样比较保险一点
发现出来的内容

2374
2469
22470
22472
22474

有空格,加一个 tr:

$pid=ps -eo pid,lstart,args | grep httpd | grep -v grep | egrep -o ^\ ?[0-9]+\ | tr -d ‘ ‘

同理时间也就简单了:

$ps -eo pid,lstart,args | grep httpd | grep -v grep | egrep -o \ [A-Z][a-zA-Z0-9\ :]+\ [0-9]{4}

转换成时间戳:

$ps -eo pid,lstart,args | grep httpd | grep -v grep | egrep -o \ [A-Z][a-zA-Z0-9\ :]+\ [0-9]{4} | ……

操,卡住了,做的时候都是传的变量。。。

幸好高人(hightman)指点

$ps -eo pid,lstart,args | grep httpd | grep -v grep | egrep -o \ [A-Z][a-zA-Z0-9\ :]+\ [0-9]{4} | xargs -ishit date -d “shit” +%s
1157349945
1158050727
1158144618
1158145964
1158147191

在MacosX安装fontconfig-2遇到的问题

make install 遇到这样的提示

dyld: Symbol not found: _FSPathMakeRef
Referenced from: /usr/local/lib/libfreetype.6.dylib
Expected in: flat namespace

实际上是运行 fc-cache 时出现的问题,实际上就是freetype没有安装好,只要重新安装一次freetype,在 ./configure 加上一句 –with-old-mac-fonts 然后 make clean;make;make install 搞定。

我是看这里找到的解决方法:
http://mail-index.netbsd.org/pkgsrc-bugs/2006/06/28/0019.html